Class: Views::Docs::NativeSelect
- Defined in:
- lib/ruby_ui/native_select/native_select_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_template ⇒ Object
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 76 77 78 79 80 81 82 |
# File 'lib/ruby_ui/native_select/native_select_docs.rb', line 4 def view_template component = "NativeSelect" div(class: "max-w-2xl mx-auto w-full py-10 space-y-10") do render Docs::Header.new(title: "Native Select", description: "A styled native HTML select element with consistent design system integration.") Heading(level: 2) { "Usage" } render Docs::VisualCodeExample.new(title: "Default", context: self) do <<~RUBY div(class: "grid w-full max-w-sm items-center gap-1.5") do NativeSelect do NativeSelectOption(value: "") { "Select a fruit" } NativeSelectOption(value: "apple") { "Apple" } NativeSelectOption(value: "banana") { "Banana" } NativeSelectOption(value: "blueberry") { "Blueberry" } NativeSelectOption(value: "pineapple") { "Pineapple" } end end RUBY end render Docs::VisualCodeExample.new(title: "Groups", description: "Use NativeSelectGroup to organize options into categories.", context: self) do <<~RUBY div(class: "grid w-full max-w-sm items-center gap-1.5") do NativeSelect do NativeSelectOption(value: "") { "Select a department" } NativeSelectGroup(label: "Engineering") do NativeSelectOption(value: "frontend") { "Frontend" } NativeSelectOption(value: "backend") { "Backend" } NativeSelectOption(value: "devops") { "DevOps" } end NativeSelectGroup(label: "Sales") do NativeSelectOption(value: "account_executive") { "Account Executive" } NativeSelectOption(value: "sales_development") { "Sales Development" } end end end RUBY end render Docs::VisualCodeExample.new(title: "Disabled", description: "Add the disabled attribute to the NativeSelect component to disable the select.", context: self) do <<~RUBY div(class: "grid w-full max-w-sm items-center gap-1.5") do NativeSelect(disabled: true) do NativeSelectOption(value: "") { "Select a fruit" } NativeSelectOption(value: "apple") { "Apple" } NativeSelectOption(value: "banana") { "Banana" } NativeSelectOption(value: "blueberry") { "Blueberry" } end end RUBY end render Docs::VisualCodeExample.new(title: "Invalid", description: "Use aria-invalid to show validation errors.", context: self) do <<~RUBY div(class: "grid w-full max-w-sm items-center gap-1.5") do NativeSelect(aria: {invalid: "true"}) do NativeSelectOption(value: "") { "Select a fruit" } NativeSelectOption(value: "apple") { "Apple" } NativeSelectOption(value: "banana") { "Banana" } NativeSelectOption(value: "blueberry") { "Blueberry" } end end RUBY end Heading(level: 2) { "Native Select vs Select" } div(class: "space-y-2 text-sm text-muted-foreground") do p { "NativeSelect: Choose for native browser behavior, superior performance, or mobile-optimized dropdowns." } p { "Select: Choose for custom styling, animations, or complex interactions." } end render Components::ComponentSetup::Tabs.new(component_name: component) render Docs::ComponentsTable.new(component_files(component)) end end |