Class: Views::Docs::Sheet

Inherits:
Base
  • Object
show all
Defined in:
lib/ruby_ui/sheet/sheet_docs.rb

Instance Method Summary collapse

Methods inherited from Base

#Alert, #AlertDescription, #AlertTitle, #Heading, #InlineCode, #InlineLink, #Text, #component_files, #docs_accordion_path, #docs_alert_dialog_path, #docs_alert_path, #docs_aspect_ratio_path, #docs_avatar_path, #docs_badge_path, #docs_installation_path, #docs_separator_path, #docs_sheet_path

Instance Method Details

#view_templateObject



4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
# File 'lib/ruby_ui/sheet/sheet_docs.rb', line 4

def view_template
  component = "Sheet"

  div(class: "max-w-2xl mx-auto w-full py-10 space-y-10") do
    render Docs::Header.new(title: "Sheet", description: "Extends the Sheet component to display content that complements the main content of the screen.")

    Heading(level: 2) { "Usage" }

    render Docs::VisualCodeExample.new(title: "Example", context: self) do
      "        Sheet do\n          SheetTrigger do\n            Button(variant: :outline) { \"Open Sheet\" }\n          end\n          SheetContent(class: 'sm:max-w-sm') do\n            SheetHeader do\n              SheetTitle { \"Edit profile\" }\n              SheetDescription { \"Make changes to your profile here. Click save when you're done.\" }\n            end\n\n            SheetMiddle do\n              label { \"Name\" }\n              Input(placeholder: \"Joel Drapper\") { \"Joel Drapper\" }\n              label { \"Email\" }\n              Input(placeholder: \"[email protected]\")\n            end\n            SheetFooter do\n              Button(variant: :outline, data: { action: 'click->ruby-ui--sheet-content#close' }) { \"Cancel\" }\n              Button(type: \"submit\") { \"Save\" }\n            end\n          end\n        end\n      RUBY\n    end\n\n    render Docs::VisualCodeExample.new(title: \"Side\", description: \"Use the side property to indicate the edge of the screen where the component will appear.\", context: self) do\n      <<~RUBY\n        div(class: 'grid grid-cols-2 gap-4') do\n          # -- TOP --\n          Sheet do\n            SheetTrigger do\n              Button(variant: :outline, class: 'w-full justify-center') { :top }\n            end\n            SheetContent(side: :top, class: (\"sm:max-w-sm\" if [:left, :right].include?(:top))) do\n              SheetHeader do\n                SheetTitle { \"Edit profile\" }\n                SheetDescription { \"Make changes to your profile here. Click save when you're done.\" }\n              end\n              Form do\n                SheetMiddle do\n                  label { \"Name\" }\n                  Input(placeholder: \"Joel Drapper\") { \"Joel Drapper\" }\n\n                  label { \"Email\" }\n                  Input(placeholder: \"[email protected]\")\n                end\n                SheetFooter do\n                  Button(variant: :outline, data: { action: 'click->ruby-ui--sheet-content#close' }) { \"Cancel\" }\n                  Button(type: \"submit\") { \"Save\" }\n                end\n              end\n            end\n          end\n        end\n      RUBY\n    end\n\n    render Components::ComponentSetup::Tabs.new(component_name: component)\n\n    render Docs::ComponentsTable.new(component_files(component))\n  end\nend\n"