shadcn-ui 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/.editorconfig +10 -0
- data/.prettierignore +43 -0
- data/.prettierrc.json +28 -0
- data/.rspec +1 -0
- data/.ruby-version +1 -0
- data/.vscode/settings.json +11 -0
- data/CHANGELOG.md +6 -0
- data/CODE_OF_CONDUCT.md +113 -0
- data/LICENSE.md +18 -0
- data/Procfile.dev +2 -0
- data/README.md +90 -0
- data/Rakefile +12 -0
- data/app/assets/builds/.keep +0 -0
- data/app/assets/config/manifest.js +5 -0
- data/app/assets/images/.keep +0 -0
- data/app/assets/stylesheets/application.scss +42 -0
- data/app/assets/stylesheets/application.tailwind.css +92 -0
- data/app/assets/stylesheets/lambda.light.scss +136 -0
- data/app/channels/application_cable/channel.rb +4 -0
- data/app/channels/application_cable/connection.rb +4 -0
- data/app/controllers/application_controller.rb +8 -0
- data/app/controllers/components_controller.rb +7 -0
- data/app/controllers/concerns/.keep +0 -0
- data/app/helpers/application_helper.rb +2 -0
- data/app/helpers/components/accordion_helper.rb +5 -0
- data/app/helpers/components/alert_dialog_helper.rb +6 -0
- data/app/helpers/components/alert_helper.rb +11 -0
- data/app/helpers/components/badge_helper.rb +20 -0
- data/app/helpers/components/button_helper.rb +20 -0
- data/app/helpers/components/card_helper.rb +5 -0
- data/app/helpers/components/checkbox_helper.rb +5 -0
- data/app/helpers/components/collapsible_helper.rb +6 -0
- data/app/helpers/components/dialog_helper.rb +14 -0
- data/app/helpers/components/dropdown_menu_helper.rb +23 -0
- data/app/helpers/components/hover_card_helper.rb +15 -0
- data/app/helpers/components/popover_helper.rb +15 -0
- data/app/helpers/components/seperator_helper.rb +6 -0
- data/app/helpers/components/textarea_helper.rb +13 -0
- data/app/helpers/components/toast_helper.rb +5 -0
- data/app/helpers/components/toggle_helper.rb +6 -0
- data/app/helpers/components/tooltip_helper.rb +15 -0
- data/app/helpers/components_helper.rb +7 -0
- data/app/helpers/examples_helper.rb +41 -0
- data/app/javascript/application.js +3 -0
- data/app/javascript/controllers/application.js +9 -0
- data/app/javascript/controllers/hello_controller.js +7 -0
- data/app/javascript/controllers/highlight_controller.js +9 -0
- data/app/javascript/controllers/index.js +11 -0
- data/app/javascript/controllers/tabs_controller.js +72 -0
- data/app/javascript/controllers/ui/accordion_controller.js +128 -0
- data/app/javascript/controllers/ui/checkbox_controller.js +17 -0
- data/app/javascript/controllers/ui/collapsible_controller.js +28 -0
- data/app/javascript/controllers/ui/dialog_controller.js +92 -0
- data/app/javascript/controllers/ui/dropdown_controller.js +25 -0
- data/app/javascript/controllers/ui/hover-card_controller.js +39 -0
- data/app/javascript/controllers/ui/popover_controller.js +27 -0
- data/app/javascript/controllers/ui/toast_controller.js +43 -0
- data/app/javascript/controllers/ui/toggle_controller.js +15 -0
- data/app/javascript/controllers/ui/tooltip_controller.js +3 -0
- data/app/javascript/controllers/ui/transition_controller.js +8 -0
- data/app/jobs/application_job.rb +7 -0
- data/app/mailers/application_mailer.rb +4 -0
- data/app/models/application_record.rb +3 -0
- data/app/models/concerns/.keep +0 -0
- data/app/views/application/index.html.erb +0 -0
- data/app/views/components/ui/_accordion.html.erb +40 -0
- data/app/views/components/ui/_alert.html.erb +55 -0
- data/app/views/components/ui/_alert_dialog.html.erb +20 -0
- data/app/views/components/ui/_badge.html.erb +1 -0
- data/app/views/components/ui/_button.html.erb +11 -0
- data/app/views/components/ui/_card.html.erb +13 -0
- data/app/views/components/ui/_checkbox.html.erb +37 -0
- data/app/views/components/ui/_collapsible.html.erb +38 -0
- data/app/views/components/ui/_dialog.html.erb +69 -0
- data/app/views/components/ui/_dropdown_menu.html.erb +9 -0
- data/app/views/components/ui/_hover_card.html.erb +18 -0
- data/app/views/components/ui/_popover.html.erb +19 -0
- data/app/views/components/ui/_separator.html.erb +4 -0
- data/app/views/components/ui/_textarea.html.erb +9 -0
- data/app/views/components/ui/_toast.html.erb +34 -0
- data/app/views/components/ui/_toggle.html.erb +3 -0
- data/app/views/components/ui/_tooltip.html.erb +18 -0
- data/app/views/components/ui/shared/_dialog_background.html.erb +7 -0
- data/app/views/components/ui/shared/_menu_item.html.erb +6 -0
- data/app/views/examples/authentication/index.html.erb +148 -0
- data/app/views/examples/components/accordion.html.erb +17 -0
- data/app/views/examples/components/alert-dialog.html.erb +24 -0
- data/app/views/examples/components/alert.html.erb +22 -0
- data/app/views/examples/components/badge.html.erb +30 -0
- data/app/views/examples/components/button.html.erb +33 -0
- data/app/views/examples/components/card.html.erb +156 -0
- data/app/views/examples/components/checkbox.html.erb +8 -0
- data/app/views/examples/components/collapsible.html.erb +24 -0
- data/app/views/examples/components/dialog/_usage.html.erb +28 -0
- data/app/views/examples/components/dialog/code/form.erb +48 -0
- data/app/views/examples/components/dialog/code/notifications.erb +83 -0
- data/app/views/examples/components/dialog/code/preview.erb +14 -0
- data/app/views/examples/components/dialog/code/usage.erb +8 -0
- data/app/views/examples/components/dialog.html.erb +148 -0
- data/app/views/examples/components/dropdown-menu.html.erb +26 -0
- data/app/views/examples/components/hover-card.html.erb +24 -0
- data/app/views/examples/components/popover.html.erb +34 -0
- data/app/views/examples/components/separator.html.erb +33 -0
- data/app/views/examples/components/textarea.html.erb +12 -0
- data/app/views/examples/components/toast.html.erb +15 -0
- data/app/views/examples/components/toggle.html.erb +12 -0
- data/app/views/examples/components/tooltip.html.erb +23 -0
- data/app/views/layouts/_sidebar.html.erb +270 -0
- data/app/views/layouts/application.html.erb +33 -0
- data/app/views/layouts/component.html.erb +35 -0
- data/app/views/layouts/documentation/_breadcrumb.html.erb +17 -0
- data/app/views/layouts/documentation/_component_header.html.erb +11 -0
- data/app/views/layouts/documentation/_examples.html.erb +80 -0
- data/app/views/layouts/documentation/_preview.html.erb +90 -0
- data/app/views/layouts/mailer.html.erb +13 -0
- data/app/views/layouts/mailer.text.erb +1 -0
- data/app/views/layouts/shared/_header.html.erb +164 -0
- data/config/application.rb +37 -0
- data/config/boot.rb +4 -0
- data/config/cable.yml +11 -0
- data/config/credentials.yml.enc +1 -0
- data/config/database.yml +25 -0
- data/config/environment.rb +5 -0
- data/config/environments/development.rb +70 -0
- data/config/environments/production.rb +93 -0
- data/config/environments/test.rb +60 -0
- data/config/importmap.rb +13 -0
- data/config/initializers/assets.rb +12 -0
- data/config/initializers/content_security_policy.rb +25 -0
- data/config/initializers/filter_parameter_logging.rb +8 -0
- data/config/initializers/inflections.rb +16 -0
- data/config/initializers/permissions_policy.rb +11 -0
- data/config/locales/en.yml +33 -0
- data/config/puma.rb +43 -0
- data/config/render.yml +9 -0
- data/config/routes.rb +7 -0
- data/config/storage.yml +34 -0
- data/config/tailwind.config.js +86 -0
- data/config.ru +6 -0
- data/db/seeds.rb +7 -0
- data/lib/assets/.keep +0 -0
- data/lib/generators/shadcn_ui_generator.rb +32 -0
- data/lib/shadcn-ui/shadcn-ui.rb +8 -0
- data/lib/shadcn-ui/version.rb +3 -0
- data/lib/tasks/.keep +0 -0
- data/log/.keep +0 -0
- data/package-lock.json +1014 -0
- data/package.json +8 -0
- data/public/404.html +67 -0
- data/public/422.html +67 -0
- data/public/500.html +66 -0
- data/public/android-chrome-192x192.png +0 -0
- data/public/android-chrome-512x512.png +0 -0
- data/public/apple-touch-icon-precomposed.png +0 -0
- data/public/apple-touch-icon.png +0 -0
- data/public/favicon-16x16.png +0 -0
- data/public/favicon-32x32.png +0 -0
- data/public/favicon.ico +0 -0
- data/public/og.jpg +0 -0
- data/public/robots.txt +1 -0
- data/sig/shadcn-ui.rbs +4 -0
- data/storage/.keep +0 -0
- data/tmp/.keep +0 -0
- data/tmp/pids/.keep +0 -0
- data/tmp/storage/.keep +0 -0
- data/vendor/.keep +0 -0
- data/vendor/javascript/.keep +0 -0
- metadata +214 -0
@@ -0,0 +1,14 @@
|
|
1
|
+
<%= render_dialog do %>
|
2
|
+
<%= dialog_trigger do %>
|
3
|
+
<%= render_button("Open Typography", variant: :outline) %>
|
4
|
+
<% end %>
|
5
|
+
<%= dialog_content do %>
|
6
|
+
<h2 class="mt-10 scroll-m-20 border-b pb-2 text-3xl font-semibold tracking-tight transition-colors first:mt-0">The King's Plan</h2>
|
7
|
+
<p class="leading-7 [&:not(:first-child)]:mt-6">
|
8
|
+
The king thought long and hard, and finally came up with
|
9
|
+
<a href="#" class="font-medium text-primary underline underline-offset-4">a brilliant plan</a>
|
10
|
+
: he would tax the jokes in the kingdom.
|
11
|
+
</p>
|
12
|
+
<blockquote class="mt-6 border-l-2 pl-6 italic">"After all," he said, "everyone enjoys a good joke, so it's only fair that they should pay for the privilege."</blockquote>
|
13
|
+
<% end %>
|
14
|
+
<% end %>
|
@@ -0,0 +1,148 @@
|
|
1
|
+
<%= render_component_header title: "Dialog",
|
2
|
+
description: "A window overlaid on either the primary window or another dialog window, rendering the content underneath inert." %>
|
3
|
+
|
4
|
+
<% content_for :preview, flush: true do %>
|
5
|
+
<div class="w-full flex justify-center">
|
6
|
+
<%= render_dialog do %>
|
7
|
+
<%= dialog_trigger do %>
|
8
|
+
<%= render_button("Open Typography", variant: :outline) %>
|
9
|
+
<% end %>
|
10
|
+
<%= dialog_content do %>
|
11
|
+
<h2 class="mt-10 scroll-m-20 border-b pb-2 text-3xl font-semibold tracking-tight transition-colors first:mt-0">The King's Plan</h2>
|
12
|
+
<p class="leading-7 [&:not(:first-child)]:mt-6">The king thought long and hard, and finally came up with <a href="#" class="font-medium text-primary underline underline-offset-4">a brilliant plan</a>: he would tax the jokes in the kingdom.</p>
|
13
|
+
<blockquote class="mt-6 border-l-2 pl-6 italic">"After all," he said, "everyone enjoys a good joke, so it's only fair that they should pay for the privilege."</blockquote>
|
14
|
+
<% end %>
|
15
|
+
<% end %>
|
16
|
+
</div>
|
17
|
+
<% end %>
|
18
|
+
|
19
|
+
<% content_for :code, flush: true do %>
|
20
|
+
<%= code_partial("dialog/code/preview", :erb) %>
|
21
|
+
<% end %>
|
22
|
+
|
23
|
+
<%= render_preview %>
|
24
|
+
|
25
|
+
<h2 class="font-heading scroll-m-20 border-b pb-2 text-2xl font-semibold tracking-tight first:mt-0" id="installation">Installation</h2>
|
26
|
+
|
27
|
+
<%= code_sample(language: "sh") do %>
|
28
|
+
rails generate shadcn-ui dialog
|
29
|
+
<% end %>
|
30
|
+
|
31
|
+
<h2 class="font-heading mt-12 scroll-m-20 border-b pb-2 mb-2 text-2xl font-semibold tracking-tight first:mt-0" id="usage"><a href="/docs/components/dialog#usage">Usage</a></h2>
|
32
|
+
|
33
|
+
<%= code_partial("dialog/code/usage", :erb) %>
|
34
|
+
|
35
|
+
<%= render_usage("dialog") %>
|
36
|
+
|
37
|
+
<div class="pb-12 pt-8">
|
38
|
+
<section>
|
39
|
+
<h2
|
40
|
+
class="font-heading mt-12 scroll-m-20 border-b pb-2 text-2xl font-semibold tracking-tight first:mt-0"
|
41
|
+
id="examples">
|
42
|
+
Examples
|
43
|
+
</h2>
|
44
|
+
|
45
|
+
<% content_for :examples, flush: true do %>
|
46
|
+
<div class="w-full flex justify-center">
|
47
|
+
<%= render_dialog do %>
|
48
|
+
<%= dialog_trigger do %>
|
49
|
+
<%= render_button("Open Notifications", variant: :outline) %>
|
50
|
+
<% end %>
|
51
|
+
<%= dialog_content do %>
|
52
|
+
<div class="bg-card text-card-foreground">
|
53
|
+
<div class="flex flex-col space-y-1.5 pb-3">
|
54
|
+
<h3 class="font-semibold leading-none tracking-tight">Notifications</h3>
|
55
|
+
<p class="text-sm text-muted-foreground">Choose what you want to be notified about.</p>
|
56
|
+
</div>
|
57
|
+
<div class=" pt-0 grid gap-1">
|
58
|
+
<div class="-mx-2 flex items-start space-x-4 rounded-md p-2 transition-all hover:bg-accent hover:text-accent-foreground"><svg width="15" height="15" viewBox="0 0 15 15" fill="none" xmlns="http://www.w3.org/2000/svg" class="mt-px h-5 w-5"><path d="M8.60124 1.25086C8.60124 1.75459 8.26278 2.17927 7.80087 2.30989C10.1459 2.4647 12 4.41582 12 6.79999V10.25C12 11.0563 12.0329 11.7074 12.7236 12.0528C12.931 12.1565 13.0399 12.3892 12.9866 12.6149C12.9333 12.8406 12.7319 13 12.5 13H8.16144C8.36904 13.1832 8.49997 13.4513 8.49997 13.75C8.49997 14.3023 8.05226 14.75 7.49997 14.75C6.94769 14.75 6.49997 14.3023 6.49997 13.75C6.49997 13.4513 6.63091 13.1832 6.83851 13H2.49999C2.2681 13 2.06664 12.8406 2.01336 12.6149C1.96009 12.3892 2.06897 12.1565 2.27638 12.0528C2.96708 11.7074 2.99999 11.0563 2.99999 10.25V6.79999C2.99999 4.41537 4.85481 2.46396 7.20042 2.3098C6.73867 2.17908 6.40036 1.75448 6.40036 1.25086C6.40036 0.643104 6.89304 0.150421 7.5008 0.150421C8.10855 0.150421 8.60124 0.643104 8.60124 1.25086ZM7.49999 3.29999C5.56699 3.29999 3.99999 4.86699 3.99999 6.79999V10.25L4.00002 10.3009C4.0005 10.7463 4.00121 11.4084 3.69929 12H11.3007C10.9988 11.4084 10.9995 10.7463 11 10.3009L11 10.25V6.79999C11 4.86699 9.43299 3.29999 7.49999 3.29999Z" fill="currentColor" fill-rule="evenodd" clip-rule="evenodd"></path></svg>
|
59
|
+
<div class="space-y-1">
|
60
|
+
<p class="text-sm font-medium leading-none">Everything</p>
|
61
|
+
<p class="text-sm text-muted-foreground">Email digest, mentions & all activity.</p>
|
62
|
+
</div>
|
63
|
+
</div>
|
64
|
+
<div class="-mx-2 flex items-start space-x-4 rounded-md bg-accent p-2 text-accent-foreground transition-all"><svg width="15" height="15" viewBox="0 0 15 15" fill="none" xmlns="http://www.w3.org/2000/svg" class="mt-px h-5 w-5"><path d="M7.5 0.875C5.49797 0.875 3.875 2.49797 3.875 4.5C3.875 6.15288 4.98124 7.54738 6.49373 7.98351C5.2997 8.12901 4.27557 8.55134 3.50407 9.31167C2.52216 10.2794 2.02502 11.72 2.02502 13.5999C2.02502 13.8623 2.23769 14.0749 2.50002 14.0749C2.76236 14.0749 2.97502 13.8623 2.97502 13.5999C2.97502 11.8799 3.42786 10.7206 4.17091 9.9883C4.91536 9.25463 6.02674 8.87499 7.49995 8.87499C8.97317 8.87499 10.0846 9.25463 10.8291 9.98831C11.5721 10.7206 12.025 11.8799 12.025 13.5999C12.025 13.8623 12.2376 14.0749 12.5 14.0749C12.7623 14.075 12.975 13.8623 12.975 13.6C12.975 11.72 12.4778 10.2794 11.4959 9.31166C10.7244 8.55135 9.70025 8.12903 8.50625 7.98352C10.0187 7.5474 11.125 6.15289 11.125 4.5C11.125 2.49797 9.50203 0.875 7.5 0.875ZM4.825 4.5C4.825 3.02264 6.02264 1.825 7.5 1.825C8.97736 1.825 10.175 3.02264 10.175 4.5C10.175 5.97736 8.97736 7.175 7.5 7.175C6.02264 7.175 4.825 5.97736 4.825 4.5Z" fill="currentColor" fill-rule="evenodd" clip-rule="evenodd"></path></svg>
|
65
|
+
<div class="space-y-1">
|
66
|
+
<p class="text-sm font-medium leading-none">Available</p>
|
67
|
+
<p class="text-sm text-muted-foreground">Only mentions and comments.</p>
|
68
|
+
</div>
|
69
|
+
</div>
|
70
|
+
<div class="-mx-2 flex items-start space-x-4 rounded-md p-2 transition-all hover:bg-accent hover:text-accent-foreground"><svg width="15" height="15" viewBox="0 0 15 15" fill="none" xmlns="http://www.w3.org/2000/svg" class="mt-px h-5 w-5"><path d="M13.3536 2.35355C13.5488 2.15829 13.5488 1.84171 13.3536 1.64645C13.1583 1.45118 12.8417 1.45118 12.6464 1.64645L10.6828 3.61012C9.70652 3.21671 8.63759 3 7.5 3C4.30786 3 1.65639 4.70638 0.0760002 7.23501C-0.0253338 7.39715 -0.0253334 7.60288 0.0760014 7.76501C0.902945 9.08812 2.02314 10.1861 3.36061 10.9323L1.64645 12.6464C1.45118 12.8417 1.45118 13.1583 1.64645 13.3536C1.84171 13.5488 2.15829 13.5488 2.35355 13.3536L4.31723 11.3899C5.29348 11.7833 6.36241 12 7.5 12C10.6921 12 13.3436 10.2936 14.924 7.76501C15.0253 7.60288 15.0253 7.39715 14.924 7.23501C14.0971 5.9119 12.9769 4.81391 11.6394 4.06771L13.3536 2.35355ZM9.90428 4.38861C9.15332 4.1361 8.34759 4 7.5 4C4.80285 4 2.52952 5.37816 1.09622 7.50001C1.87284 8.6497 2.89609 9.58106 4.09974 10.1931L9.90428 4.38861ZM5.09572 10.6114L10.9003 4.80685C12.1039 5.41894 13.1272 6.35031 13.9038 7.50001C12.4705 9.62183 10.1971 11 7.5 11C6.65241 11 5.84668 10.8639 5.09572 10.6114Z" fill="currentColor" fill-rule="evenodd" clip-rule="evenodd"></path></svg>
|
71
|
+
<div class="space-y-1">
|
72
|
+
<p class="text-sm font-medium leading-none">Ignoring</p>
|
73
|
+
<p class="text-sm text-muted-foreground">Turn off all notifications.</p>
|
74
|
+
</div>
|
75
|
+
</div>
|
76
|
+
</div>
|
77
|
+
</div>
|
78
|
+
<% end %>
|
79
|
+
<% end %>
|
80
|
+
</div>
|
81
|
+
<% end %>
|
82
|
+
|
83
|
+
<% content_for :code, flush: true do %>
|
84
|
+
<%= code_partial("dialog/code/notifications", :erb) %>
|
85
|
+
<% end %>
|
86
|
+
|
87
|
+
<%= render_example %>
|
88
|
+
|
89
|
+
<% content_for :examples, flush: true do %>
|
90
|
+
<div class="w-full flex justify-center">
|
91
|
+
<%= render_dialog do %>
|
92
|
+
<%= dialog_trigger do %>
|
93
|
+
<%= render_button("Dialog with Form", variant: :outline) %>
|
94
|
+
<% end %>
|
95
|
+
<%= dialog_content do %>
|
96
|
+
<div class="flex flex-col space-y-1.5 text-center sm:text-left">
|
97
|
+
<h2
|
98
|
+
id="radix-:r7m:"
|
99
|
+
class="text-lg font-semibold leading-none tracking-tight">
|
100
|
+
Edit profile
|
101
|
+
</h2>
|
102
|
+
<p
|
103
|
+
id="radix-:r7n:"
|
104
|
+
class="text-sm text-muted-foreground">
|
105
|
+
Make changes to your profile here. Click save when you're done.
|
106
|
+
</p>
|
107
|
+
</div>
|
108
|
+
<div class="grid gap-4 py-4">
|
109
|
+
<div class="grid grid-cols-4 items-center gap-4">
|
110
|
+
<label
|
111
|
+
class="text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70 text-right"
|
112
|
+
for="name">Name
|
113
|
+
</label>
|
114
|
+
<input
|
115
|
+
class="flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 col-span-3"
|
116
|
+
id="name"
|
117
|
+
value="Pedro Duarte">
|
118
|
+
</div>
|
119
|
+
<div class="grid grid-cols-4 items-center gap-4">
|
120
|
+
<label
|
121
|
+
class="text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70 text-right"
|
122
|
+
for="username">Username
|
123
|
+
</label>
|
124
|
+
<input
|
125
|
+
class="flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 col-span-3"
|
126
|
+
id="username"
|
127
|
+
value="@peduarte">
|
128
|
+
</div>
|
129
|
+
<div class="flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2">
|
130
|
+
<button class="inline-flex items-center justify-center rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 bg-primary text-primary-foreground hover:bg-primary/90 h-10 px-4 py-2"
|
131
|
+
type="submit">
|
132
|
+
Save changes
|
133
|
+
</button>
|
134
|
+
</div>
|
135
|
+
</div>
|
136
|
+
<% end %>
|
137
|
+
<% end %>
|
138
|
+
</div>
|
139
|
+
<% end %>
|
140
|
+
|
141
|
+
<% content_for :code, flush: true do %>
|
142
|
+
<%= code_partial("dialog/code/form", :erb) %>
|
143
|
+
<% end %>
|
144
|
+
|
145
|
+
<%= render_example %>
|
146
|
+
|
147
|
+
</section>
|
148
|
+
</div>
|
@@ -0,0 +1,26 @@
|
|
1
|
+
<%= render_component_header title: "Dropdown Menu",
|
2
|
+
description: "Displays a menu to the user — such as a set of actions or functions — triggered by a button." %>
|
3
|
+
|
4
|
+
<%= content_for :preview, flush: true do %>
|
5
|
+
<% render_dropdown_menu do %>
|
6
|
+
<%= dropdown_menu_trigger do %>
|
7
|
+
<%= render_button "Open Dropdown", variant: :outline %>
|
8
|
+
<% end %>
|
9
|
+
|
10
|
+
<%= dropdown_menu_content do %>
|
11
|
+
<%= dropdown_menu_label "My Account" %>
|
12
|
+
<%= render_separator class: "my-1" %>
|
13
|
+
<%= dropdown_menu_item "Profile" %>
|
14
|
+
<%= dropdown_menu_item do %>
|
15
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="mr-2 h-4 w-4">
|
16
|
+
<rect width="20" height="14" x="2" y="5" rx="2"></rect><line x1="2" x2="22" y1="10" y2="10"></line>
|
17
|
+
</svg>
|
18
|
+
<span>Billing</span>
|
19
|
+
<span class="ml-auto text-xs tracking-widest opacity-60">⌘B</span>
|
20
|
+
<% end %>
|
21
|
+
<%= dropdown_menu_item "Settings" %>
|
22
|
+
<% end %>
|
23
|
+
<% end %>
|
24
|
+
<% end %>
|
25
|
+
|
26
|
+
<%= render_preview %>
|
@@ -0,0 +1,24 @@
|
|
1
|
+
<%= render_component_header title: "Hover Card",
|
2
|
+
description: "For sighted users to preview content available behind a link." %>
|
3
|
+
|
4
|
+
<% content_for :preview, flush: true do %>
|
5
|
+
<%= render_hover_card do %>
|
6
|
+
<%= hover_card_trigger do %>
|
7
|
+
<%= content_tag :span, "@rails" %>
|
8
|
+
<% end %>
|
9
|
+
<%= hover_card_content do %>
|
10
|
+
<div class="grid gap-2">
|
11
|
+
<div class="space-y-2">
|
12
|
+
<h4 class="font-medium leading-none">Ruby on Rails</h4>
|
13
|
+
<p class="text-sm text-muted-foreground">The Web framework that changed the world.</p>
|
14
|
+
</div>
|
15
|
+
</div>
|
16
|
+
<% end %>
|
17
|
+
<% end %>
|
18
|
+
<% end %>
|
19
|
+
|
20
|
+
<% content_for :code, flush: true do %>
|
21
|
+
|
22
|
+
<% end %>
|
23
|
+
|
24
|
+
<%= render_preview %>
|
@@ -0,0 +1,34 @@
|
|
1
|
+
<%= render_component_header title: "Popover",
|
2
|
+
description: "Displays rich content in a portal, triggered by a button." %>
|
3
|
+
|
4
|
+
<% content_for :preview, flush: true do %>
|
5
|
+
<%= render_popover do %>
|
6
|
+
<%= popover_trigger do %>
|
7
|
+
<%= render_button "Open Popover", variant: :outline %>
|
8
|
+
<% end %>
|
9
|
+
<%= popover_content do %>
|
10
|
+
<div class="grid gap-4">
|
11
|
+
<div class="space-y-2">
|
12
|
+
<h4 class="font-medium leading-none">Dimensions</h4>
|
13
|
+
<p class="text-sm text-muted-foreground">Set the dimensions for the layer.</p>
|
14
|
+
</div>
|
15
|
+
<div class="grid gap-2">
|
16
|
+
<div class="grid grid-cols-3 items-center gap-4">
|
17
|
+
<label
|
18
|
+
class="text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"
|
19
|
+
for="width">Width</label><input
|
20
|
+
class="flex w-full rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 col-span-2 h-8"
|
21
|
+
id="width"
|
22
|
+
value="100%">
|
23
|
+
</div>
|
24
|
+
</div>
|
25
|
+
</div>
|
26
|
+
<% end %>
|
27
|
+
<% end %>
|
28
|
+
<% end %>
|
29
|
+
|
30
|
+
<% content_for :code, flush: true do %>
|
31
|
+
|
32
|
+
<% end %>
|
33
|
+
|
34
|
+
<%= render_preview %>
|
@@ -0,0 +1,33 @@
|
|
1
|
+
<!--prettier-ignore-->
|
2
|
+
|
3
|
+
<%= render "layouts/documentation/component_header",
|
4
|
+
title: "Seperator",
|
5
|
+
description: "Visually or semantically separates content." %>
|
6
|
+
<%= content_for :preview, flush: true do %>
|
7
|
+
<div>
|
8
|
+
<div class="space-y-1">
|
9
|
+
<h4 class="text-sm font-medium leading-none">Radix Primitives</h4>
|
10
|
+
<p class="text-sm text-muted-foreground">An open-source UI component library.</p>
|
11
|
+
</div>
|
12
|
+
<%= render_separator class: "my-4" %>
|
13
|
+
<div class="flex h-5 items-center space-x-4 text-sm">
|
14
|
+
<div>Blog</div>
|
15
|
+
<div
|
16
|
+
data-orientation="vertical"
|
17
|
+
role="none"
|
18
|
+
class="shrink-0 bg-border h-full w-[1px]"></div>
|
19
|
+
<div>Docs</div>
|
20
|
+
<div
|
21
|
+
data-orientation="vertical"
|
22
|
+
role="none"
|
23
|
+
class="shrink-0 bg-border h-full w-[1px]"></div>
|
24
|
+
<div>Source</div>
|
25
|
+
</div>
|
26
|
+
</div>
|
27
|
+
<% end %>
|
28
|
+
|
29
|
+
<%= render_preview %>
|
30
|
+
|
31
|
+
<h2 class="font-heading scroll-m-20 border-b pb-2 text-2xl font-semibold tracking-tight first:mt-0" id="installation">Installation</h2>
|
32
|
+
|
33
|
+
<h2 class="font-heading mt-12 scroll-m-20 border-b pb-2 mb-2 text-2xl font-semibold tracking-tight first:mt-0" id="usage"><a href="/docs/components/dialog#usage">Usage</a></h2>
|
@@ -0,0 +1,12 @@
|
|
1
|
+
<%= render_component_header title: "Textarea",
|
2
|
+
description: "Displays a form textarea or a component that looks like a textarea." %>
|
3
|
+
|
4
|
+
<% content_for :preview, flush: true do %>
|
5
|
+
<%= render_textarea name: "sample_textarea" %>
|
6
|
+
<% end %>
|
7
|
+
|
8
|
+
<% content_for :code, flush: true do %>
|
9
|
+
|
10
|
+
<% end %>
|
11
|
+
|
12
|
+
<%= render_preview %>
|
@@ -0,0 +1,15 @@
|
|
1
|
+
<%= render_component_header title: "Toast",
|
2
|
+
description: "A succinct message that is displayed temporarily." %>
|
3
|
+
|
4
|
+
<% content_for :preview, flush: true do %>
|
5
|
+
<%= render_button "Trigger Toast", variant: "outline", data: {controller: "ui--toast", action: "ui--toast#test"} %>
|
6
|
+
<%= render_toast header: "Scheduled: Catch up",
|
7
|
+
description: "Friday, February 10, 2023 at 5:57 PM",
|
8
|
+
action: render_button("Undo", variant: :outline) %>
|
9
|
+
<% end %>
|
10
|
+
|
11
|
+
<% content_for :code, flush: true do %>
|
12
|
+
|
13
|
+
<% end %>
|
14
|
+
|
15
|
+
<%= render_preview %>
|
@@ -0,0 +1,12 @@
|
|
1
|
+
<%= render_component_header title: "Toggle",
|
2
|
+
description: "A two-state button that can be either on or off." %>
|
3
|
+
|
4
|
+
<% content_for :preview, flush: true do %>
|
5
|
+
<%= render_toggle "𝐁" %>
|
6
|
+
<% end %>
|
7
|
+
|
8
|
+
<% content_for :code, flush: true do %>
|
9
|
+
|
10
|
+
<% end %>
|
11
|
+
|
12
|
+
<%= render_preview %>
|
@@ -0,0 +1,23 @@
|
|
1
|
+
<%= render_component_header title: "Tooltip",
|
2
|
+
description: "A popup that displays information related to an element when the element receives keyboard focus or the mouse hovers over it." %>
|
3
|
+
|
4
|
+
<% content_for :preview, flush: true do %>
|
5
|
+
<%= render_tooltip do %>
|
6
|
+
<%= tooltip_trigger do %>
|
7
|
+
<%= render_button "Hover", variant: :outline %>
|
8
|
+
<% end %>
|
9
|
+
<%= tooltip_content do %>
|
10
|
+
<div class="grid gap-2">
|
11
|
+
<div class="space-y-2">
|
12
|
+
<p class="text-sm text-muted-foreground">More will be revealed.</p>
|
13
|
+
</div>
|
14
|
+
</div>
|
15
|
+
<% end %>
|
16
|
+
<% end %>
|
17
|
+
<% end %>
|
18
|
+
|
19
|
+
<% content_for :code, flush: true do %>
|
20
|
+
|
21
|
+
<% end %>
|
22
|
+
|
23
|
+
<%= render_preview %>
|
@@ -0,0 +1,270 @@
|
|
1
|
+
<aside
|
2
|
+
class="fixed top-14 z-30 -ml-2 hidden h-[calc(100vh-3.5rem)] w-full shrink-0 md:sticky md:block">
|
3
|
+
<div
|
4
|
+
dir="ltr"
|
5
|
+
class="relative overflow-hidden h-full py-6 pl-8 pr-6 lg:py-8"
|
6
|
+
style="
|
7
|
+
position: relative;
|
8
|
+
--radix-scroll-area-corner-width: 0px;
|
9
|
+
--radix-scroll-area-corner-height: 0px;
|
10
|
+
">
|
11
|
+
<style>
|
12
|
+
[data-radix-scroll-area-viewport] {
|
13
|
+
scrollbar-width: none;
|
14
|
+
-ms-overflow-style: none;
|
15
|
+
-webkit-overflow-scrolling: touch;
|
16
|
+
}
|
17
|
+
[data-radix-scroll-area-viewport]::-webkit-scrollbar {
|
18
|
+
display: none;
|
19
|
+
}
|
20
|
+
</style>
|
21
|
+
<div
|
22
|
+
data-radix-scroll-area-viewport=""
|
23
|
+
class="h-full w-full rounded-[inherit]"
|
24
|
+
style="overflow: hidden scroll">
|
25
|
+
<div style="min-width: 100%; display: table">
|
26
|
+
<div class="w-full">
|
27
|
+
<div class="pb-4">
|
28
|
+
<h4 class="mb-1 rounded-md px-2 py-1 text-sm font-semibold">Getting Started</h4>
|
29
|
+
<div class="grid grid-flow-row auto-rows-max text-sm">
|
30
|
+
<a
|
31
|
+
class="group flex w-full items-center rounded-md border border-transparent px-2 py-1 hover:underline font-medium text-foreground"
|
32
|
+
target=""
|
33
|
+
rel=""
|
34
|
+
href="/docs">Introduction</a>
|
35
|
+
<a
|
36
|
+
class="group flex w-full items-center rounded-md border border-transparent px-2 py-1 hover:underline text-muted-foreground"
|
37
|
+
target=""
|
38
|
+
rel=""
|
39
|
+
href="/docs/installation">Installation</a>
|
40
|
+
<a
|
41
|
+
class="group flex w-full items-center rounded-md border border-transparent px-2 py-1 hover:underline text-muted-foreground"
|
42
|
+
target=""
|
43
|
+
rel=""
|
44
|
+
href="/docs/theming">Theming</a>
|
45
|
+
<a
|
46
|
+
class="group flex w-full items-center rounded-md border border-transparent px-2 py-1 hover:underline text-muted-foreground"
|
47
|
+
target=""
|
48
|
+
rel=""
|
49
|
+
href="/docs/dark-mode">Dark mode</a>
|
50
|
+
<a
|
51
|
+
class="group flex w-full items-center rounded-md border border-transparent px-2 py-1 hover:underline text-muted-foreground"
|
52
|
+
target=""
|
53
|
+
rel=""
|
54
|
+
href="/docs/changelog">Changelog</a>
|
55
|
+
<a
|
56
|
+
class="group flex w-full items-center rounded-md border border-transparent px-2 py-1 hover:underline text-muted-foreground"
|
57
|
+
target=""
|
58
|
+
rel=""
|
59
|
+
href="/docs/about">About</a>
|
60
|
+
</div>
|
61
|
+
</div>
|
62
|
+
<div class="pb-4">
|
63
|
+
<h4 class="mb-1 rounded-md px-2 py-1 text-sm font-semibold">Components</h4>
|
64
|
+
<div class="grid grid-flow-row auto-rows-max text-sm">
|
65
|
+
<a
|
66
|
+
class="group flex w-full items-center rounded-md border border-transparent px-2 py-1 hover:underline text-muted-foreground"
|
67
|
+
target=""
|
68
|
+
rel=""
|
69
|
+
href="/docs/components/accordion">✅ Accordion</a>
|
70
|
+
<a
|
71
|
+
class="group flex w-full items-center rounded-md border border-transparent px-2 py-1 hover:underline text-muted-foreground"
|
72
|
+
target=""
|
73
|
+
rel=""
|
74
|
+
href="/docs/components/alert">✅ Alert</a>
|
75
|
+
<a
|
76
|
+
class="group flex w-full items-center rounded-md border border-transparent px-2 py-1 hover:underline text-muted-foreground"
|
77
|
+
target=""
|
78
|
+
rel=""
|
79
|
+
href="/docs/components/alert-dialog">✅ Alert Dialog</a>
|
80
|
+
<span
|
81
|
+
class="group flex w-full items-center rounded-md border border-transparent px-2 py-1 hover:underline text-muted-foreground"
|
82
|
+
target=""
|
83
|
+
rel="">❌ Aspect Ratio</span>
|
84
|
+
<span
|
85
|
+
class="group flex w-full items-center rounded-md border border-transparent px-2 py-1 hover:underline text-muted-foreground"
|
86
|
+
target=""
|
87
|
+
rel=""
|
88
|
+
href="/docs/components/avatar">❌ Avatar</span>
|
89
|
+
<a
|
90
|
+
class="group flex w-full items-center rounded-md border border-transparent px-2 py-1 hover:underline text-muted-foreground"
|
91
|
+
target=""
|
92
|
+
rel=""
|
93
|
+
href="/docs/components/badge">✅ Badge</a>
|
94
|
+
<a
|
95
|
+
class="group flex w-full items-center rounded-md border border-transparent px-2 py-1 hover:underline text-muted-foreground"
|
96
|
+
target=""
|
97
|
+
rel=""
|
98
|
+
href="/docs/components/button">✅ Button</a>
|
99
|
+
<span
|
100
|
+
class="group flex w-full items-center rounded-md border border-transparent px-2 py-1 hover:underline text-muted-foreground"
|
101
|
+
target=""
|
102
|
+
rel=""
|
103
|
+
href="/docs/components/calendar">❌ Calendar</span>
|
104
|
+
<a
|
105
|
+
class="group flex w-full items-center rounded-md border border-transparent px-2 py-1 hover:underline text-muted-foreground"
|
106
|
+
target=""
|
107
|
+
rel=""
|
108
|
+
href="/docs/components/card">✅ Card</a>
|
109
|
+
<a
|
110
|
+
class="group flex w-full items-center rounded-md border border-transparent px-2 py-1 hover:underline text-muted-foreground"
|
111
|
+
target=""
|
112
|
+
rel=""
|
113
|
+
href="/docs/components/checkbox">✅ Checkbox</a>
|
114
|
+
<a
|
115
|
+
class="group flex w-full items-center rounded-md border border-transparent px-2 py-1 hover:underline text-muted-foreground"
|
116
|
+
target=""
|
117
|
+
rel=""
|
118
|
+
href="/docs/components/collapsible">✅ Collapsible</a>
|
119
|
+
<a
|
120
|
+
class="group flex w-full items-center rounded-md border border-transparent px-2 py-1 hover:underline text-muted-foreground"
|
121
|
+
target=""
|
122
|
+
rel=""
|
123
|
+
href="/docs/components/combobox">Combobox</a>
|
124
|
+
<a
|
125
|
+
class="group flex w-full items-center rounded-md border border-transparent px-2 py-1 hover:underline text-muted-foreground"
|
126
|
+
target=""
|
127
|
+
rel=""
|
128
|
+
href="/docs/components/command">Command</a>
|
129
|
+
<a
|
130
|
+
class="group flex w-full items-center rounded-md border border-transparent px-2 py-1 hover:underline text-muted-foreground"
|
131
|
+
target=""
|
132
|
+
rel=""
|
133
|
+
href="/docs/components/context-menu">Context Menu</a>
|
134
|
+
<a
|
135
|
+
class="group flex w-full items-center rounded-md border border-transparent px-2 py-1 hover:underline text-muted-foreground"
|
136
|
+
target=""
|
137
|
+
rel=""
|
138
|
+
href="/docs/components/data-table">Data Table</a>
|
139
|
+
<a
|
140
|
+
class="group flex w-full items-center rounded-md border border-transparent px-2 py-1 hover:underline text-muted-foreground"
|
141
|
+
target=""
|
142
|
+
rel=""
|
143
|
+
href="/docs/components/date-picker">Date Picker</a>
|
144
|
+
<a
|
145
|
+
class="group flex w-full items-center rounded-md border border-transparent px-2 py-1 hover:underline text-muted-foreground"
|
146
|
+
target=""
|
147
|
+
rel=""
|
148
|
+
href="/docs/components/dialog">✅ Dialog</a>
|
149
|
+
<a
|
150
|
+
class="group flex w-full items-center rounded-md border border-transparent px-2 py-1 hover:underline text-muted-foreground"
|
151
|
+
target=""
|
152
|
+
rel=""
|
153
|
+
href="/docs/components/dropdown-menu">Dropdown Menu</a>
|
154
|
+
<a
|
155
|
+
class="group flex w-full items-center rounded-md border border-transparent px-2 py-1 hover:underline text-muted-foreground"
|
156
|
+
target=""
|
157
|
+
rel=""
|
158
|
+
href="/docs/components/form">Form</a>
|
159
|
+
<a
|
160
|
+
class="group flex w-full items-center rounded-md border border-transparent px-2 py-1 hover:underline text-muted-foreground"
|
161
|
+
target=""
|
162
|
+
rel=""
|
163
|
+
href="/docs/components/hover-card">✅ Hover Card</a>
|
164
|
+
<a
|
165
|
+
class="group flex w-full items-center rounded-md border border-transparent px-2 py-1 hover:underline text-muted-foreground"
|
166
|
+
target=""
|
167
|
+
rel=""
|
168
|
+
href="/docs/components/input">Input</a>
|
169
|
+
<a
|
170
|
+
class="group flex w-full items-center rounded-md border border-transparent px-2 py-1 hover:underline text-muted-foreground"
|
171
|
+
target=""
|
172
|
+
rel=""
|
173
|
+
href="/docs/components/label">Label</a>
|
174
|
+
<a
|
175
|
+
class="group flex w-full items-center rounded-md border border-transparent px-2 py-1 hover:underline text-muted-foreground"
|
176
|
+
target=""
|
177
|
+
rel=""
|
178
|
+
href="/docs/components/menubar">Menubar</a>
|
179
|
+
<a
|
180
|
+
class="group flex w-full items-center rounded-md border border-transparent px-2 py-1 hover:underline text-muted-foreground"
|
181
|
+
target=""
|
182
|
+
rel=""
|
183
|
+
href="/docs/components/navigation-menu">Navigation Menu</a>
|
184
|
+
<a
|
185
|
+
class="group flex w-full items-center rounded-md border border-transparent px-2 py-1 hover:underline text-muted-foreground"
|
186
|
+
target=""
|
187
|
+
rel=""
|
188
|
+
href="/docs/components/popover">✅ Popover</a>
|
189
|
+
<a
|
190
|
+
class="group flex w-full items-center rounded-md border border-transparent px-2 py-1 hover:underline text-muted-foreground"
|
191
|
+
target=""
|
192
|
+
rel=""
|
193
|
+
href="/docs/components/progress">Progress</a>
|
194
|
+
<a
|
195
|
+
class="group flex w-full items-center rounded-md border border-transparent px-2 py-1 hover:underline text-muted-foreground"
|
196
|
+
target=""
|
197
|
+
rel=""
|
198
|
+
href="/docs/components/radio-group">Radio Group</a>
|
199
|
+
<a
|
200
|
+
class="group flex w-full items-center rounded-md border border-transparent px-2 py-1 hover:underline text-muted-foreground"
|
201
|
+
target=""
|
202
|
+
rel=""
|
203
|
+
href="/docs/components/scroll-area">Scroll Area</a>
|
204
|
+
<a
|
205
|
+
class="group flex w-full items-center rounded-md border border-transparent px-2 py-1 hover:underline text-muted-foreground"
|
206
|
+
target=""
|
207
|
+
rel=""
|
208
|
+
href="/docs/components/select">Select</a>
|
209
|
+
<a
|
210
|
+
class="group flex w-full items-center rounded-md border border-transparent px-2 py-1 hover:underline text-muted-foreground"
|
211
|
+
target=""
|
212
|
+
rel=""
|
213
|
+
href="/docs/components/separator">✅ Separator</a>
|
214
|
+
<a
|
215
|
+
class="group flex w-full items-center rounded-md border border-transparent px-2 py-1 hover:underline text-muted-foreground"
|
216
|
+
target=""
|
217
|
+
rel=""
|
218
|
+
href="/docs/components/sheet">Sheet</a>
|
219
|
+
<a
|
220
|
+
class="group flex w-full items-center rounded-md border border-transparent px-2 py-1 hover:underline text-muted-foreground"
|
221
|
+
target=""
|
222
|
+
rel=""
|
223
|
+
href="/docs/components/skeleton">Skeleton</a>
|
224
|
+
<a
|
225
|
+
class="group flex w-full items-center rounded-md border border-transparent px-2 py-1 hover:underline text-muted-foreground"
|
226
|
+
target=""
|
227
|
+
rel=""
|
228
|
+
href="/docs/components/slider">Slider</a>
|
229
|
+
<a
|
230
|
+
class="group flex w-full items-center rounded-md border border-transparent px-2 py-1 hover:underline text-muted-foreground"
|
231
|
+
target=""
|
232
|
+
rel=""
|
233
|
+
href="/docs/components/switch">Switch</a>
|
234
|
+
<a
|
235
|
+
class="group flex w-full items-center rounded-md border border-transparent px-2 py-1 hover:underline text-muted-foreground"
|
236
|
+
target=""
|
237
|
+
rel=""
|
238
|
+
href="/docs/components/table">Table</a>
|
239
|
+
<a
|
240
|
+
class="group flex w-full items-center rounded-md border border-transparent px-2 py-1 hover:underline text-muted-foreground"
|
241
|
+
target=""
|
242
|
+
rel=""
|
243
|
+
href="/docs/components/tabs">Tabs</a>
|
244
|
+
<a
|
245
|
+
class="group flex w-full items-center rounded-md border border-transparent px-2 py-1 hover:underline text-muted-foreground"
|
246
|
+
target=""
|
247
|
+
rel=""
|
248
|
+
href="/docs/components/textarea">✅ Textarea</a>
|
249
|
+
<a
|
250
|
+
class="group flex w-full items-center rounded-md border border-transparent px-2 py-1 hover:underline text-muted-foreground"
|
251
|
+
target=""
|
252
|
+
rel=""
|
253
|
+
href="/docs/components/toast">✅ Toast</a>
|
254
|
+
<a
|
255
|
+
class="group flex w-full items-center rounded-md border border-transparent px-2 py-1 hover:underline text-muted-foreground"
|
256
|
+
target=""
|
257
|
+
rel=""
|
258
|
+
href="/docs/components/toggle">✅ Toggle</a>
|
259
|
+
<a
|
260
|
+
class="group flex w-full items-center rounded-md border border-transparent px-2 py-1 hover:underline text-muted-foreground"
|
261
|
+
target=""
|
262
|
+
rel=""
|
263
|
+
href="/docs/components/tooltip">✅ Tooltip</a>
|
264
|
+
</div>
|
265
|
+
</div>
|
266
|
+
</div>
|
267
|
+
</div>
|
268
|
+
</div>
|
269
|
+
</div>
|
270
|
+
</aside>
|