@heyramzi/ui 6.1.0 → 8.0.0

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.
Files changed (332) hide show
  1. package/COMPONENTS.md +32 -40
  2. package/README.md +10 -4
  3. package/package.json +31 -29
  4. package/scripts/sync-shadcn.mjs +29 -16
  5. package/scripts/sync-transitions.mjs +11 -11
  6. package/src/ai/ai-button/AiButton.svelte +86 -0
  7. package/src/ai/ai-button/index.ts +4 -0
  8. package/src/ai/confirmation/Confirmation.svelte +8 -8
  9. package/src/ai/confirmation/confirmation-context.svelte.ts +2 -2
  10. package/src/ai/generation-progress/GenerationProgress.svelte +354 -0
  11. package/src/ai/generation-progress/index.ts +7 -0
  12. package/src/ai/index.ts +16 -24
  13. package/src/ai/prompt-input/PromptInput.svelte +19 -1
  14. package/src/ai/prompt-input/PromptInputSubmit.svelte +9 -3
  15. package/src/ai/reasoning/Reasoning.svelte +11 -8
  16. package/src/ambient.d.ts +4 -0
  17. package/src/animations/README.md +17 -17
  18. package/src/animations/index.css +3 -14
  19. package/src/animations/upstream-coverage.test.ts +1 -1
  20. package/src/components/copy/clipboard.test.ts +206 -0
  21. package/src/components/copy/clipboard.ts +49 -0
  22. package/src/components/copy/copied.svelte.ts +39 -0
  23. package/src/components/copy/copy-button.svelte +175 -0
  24. package/src/components/copy/copy-button.test.ts +110 -0
  25. package/src/components/copy/index.ts +3 -0
  26. package/src/components/data-table/data-table.test.ts +134 -0
  27. package/src/components/data-table/data-table.ts +77 -0
  28. package/src/components/data-table/index.ts +20 -0
  29. package/src/components/data-table/infinite-scroll.svelte +69 -0
  30. package/src/components/data-table/pagination.svelte +62 -0
  31. package/src/components/data-table/row-arrow.svelte +28 -0
  32. package/src/components/data-table/row-context-menu.svelte +106 -0
  33. package/src/components/data-table/row-context-menu.test.ts +18 -0
  34. package/src/components/data-table/sortable-head.svelte +56 -0
  35. package/src/components/data-table/table-skeleton.svelte +83 -0
  36. package/src/components/hold-to-confirm/hold-to-confirm.svelte +232 -0
  37. package/src/components/hold-to-confirm/index.ts +1 -0
  38. package/src/components/icon/icon.svelte +23 -0
  39. package/src/components/icon/index.ts +1 -0
  40. package/src/components/language-flag/index.ts +1 -0
  41. package/src/components/language-flag/language-flag.svelte +60 -0
  42. package/src/components/list-page/detail-empty.svelte +50 -0
  43. package/src/components/list-page/detail-header.svelte +107 -0
  44. package/src/components/list-page/detail-panel.svelte +90 -0
  45. package/src/components/list-page/detail-row.svelte +36 -0
  46. package/src/components/list-page/detail-stack.svelte +33 -0
  47. package/src/components/list-page/empty-state.svelte +91 -0
  48. package/src/components/list-page/filter-item.svelte +49 -0
  49. package/src/components/list-page/filter-popover.svelte +88 -0
  50. package/src/components/list-page/filter-section.ts +12 -0
  51. package/src/components/list-page/grouped-list.svelte +116 -0
  52. package/src/components/list-page/index.ts +28 -0
  53. package/src/components/list-page/list-page-shell.svelte +195 -0
  54. package/src/components/list-page/list-table.ts +19 -0
  55. package/src/components/list-page/master-detail.svelte +206 -0
  56. package/src/components/list-page/master-detail.test.ts +37 -0
  57. package/src/components/list-page/notice-bar.svelte +68 -0
  58. package/src/components/list-page/prev-next.svelte +104 -0
  59. package/src/components/list-page/queue-rail.ts +25 -0
  60. package/src/components/list-page/rail-body.svelte +29 -0
  61. package/src/components/list-page/rail-empty.svelte +51 -0
  62. package/src/components/list-page/rail-head.svelte +49 -0
  63. package/src/components/list-page/rail-row.svelte +163 -0
  64. package/src/components/list-page/section-host.ts +24 -0
  65. package/src/components/list-page/section-label.svelte +39 -0
  66. package/src/components/list-page/step.test.ts +21 -0
  67. package/src/components/list-page/step.ts +10 -0
  68. package/src/components/list-page/toolbar-search.svelte +63 -0
  69. package/src/components/list-page/toolbar-trigger.ts +23 -0
  70. package/src/components/list-page/types.ts +1 -0
  71. package/src/components/locale-switch/index.ts +1 -0
  72. package/src/components/locale-switch/locale-switch.svelte +59 -0
  73. package/src/components/mark/index.ts +1 -0
  74. package/src/components/mark/mark.svelte +70 -0
  75. package/src/components/open-in/index.ts +6 -0
  76. package/src/components/open-in/open-in.svelte +106 -0
  77. package/src/components/picker/index.ts +4 -0
  78. package/src/components/picker/mark-picker.svelte +84 -0
  79. package/src/components/picker/picker.svelte +143 -0
  80. package/src/components/picker/trigger.ts +42 -0
  81. package/src/components/picker/types.ts +26 -0
  82. package/src/components/segmented/animated-tabs.svelte +175 -0
  83. package/src/components/segmented/collapse.test.ts +49 -0
  84. package/src/components/segmented/collapse.ts +39 -0
  85. package/src/components/segmented/index.ts +41 -0
  86. package/src/components/segmented/section-runs.svelte +79 -0
  87. package/src/components/segmented/segment.svelte +106 -0
  88. package/src/components/segmented/segmented-filter.svelte +125 -0
  89. package/src/components/segmented/segmented-nav.svelte +82 -0
  90. package/src/components/segmented/segmented-overflow.svelte +85 -0
  91. package/src/components/segmented/segmented-track.svelte +181 -0
  92. package/src/components/segmented/segmented.test.ts +20 -0
  93. package/src/components/segmented/segmented.ts +80 -0
  94. package/src/components/star-rating-input/index.ts +9 -0
  95. package/src/components/star-rating-input/star-rating-input.svelte +256 -0
  96. package/src/components/svg/index.ts +1 -0
  97. package/src/components/svg/svg.svelte +9 -0
  98. package/src/effects/border-beam/BorderBeam.svelte +1 -1
  99. package/src/effects/image-comparison/ImageComparison.css +42 -8
  100. package/src/effects/image-comparison/ImageComparison.svelte +138 -21
  101. package/src/effects/image-comparison/compare.test.ts +17 -0
  102. package/src/effects/image-comparison/compare.ts +5 -0
  103. package/src/effects/interactive-hover-button/InteractiveHoverButton.svelte +338 -0
  104. package/src/effects/magic-card/MagicCard.css +47 -0
  105. package/src/effects/magic-card/MagicCard.svelte +57 -0
  106. package/src/effects/marquee/Marquee.css +27 -1
  107. package/src/effects/marquee/Marquee.svelte +67 -3
  108. package/src/effects/reveal/index.ts +2 -1
  109. package/src/effects/reveal/observe.test.ts +60 -0
  110. package/src/effects/reveal/observe.ts +33 -1
  111. package/src/effects/reveal/types.ts +7 -0
  112. package/src/effects/theme-toggle/ThemeToggle.css +199 -6
  113. package/src/effects/theme-toggle/ThemeToggle.svelte +51 -26
  114. package/src/gallery.test.ts +52 -0
  115. package/src/index.ts +5 -1
  116. package/src/lib/panel.ts +7 -1
  117. package/src/lib/sliding-pill.ts +68 -0
  118. package/src/lib/theme-transition.ts +41 -13
  119. package/src/lib/tone.ts +48 -0
  120. package/src/shadcn/accordion/accordion-trigger.svelte +15 -6
  121. package/src/shadcn/alert/alert.svelte +3 -1
  122. package/src/shadcn/badge/badge.svelte +8 -7
  123. package/src/shadcn/breadcrumb/breadcrumb-ellipsis.svelte +2 -2
  124. package/src/shadcn/breadcrumb/breadcrumb-separator.svelte +2 -2
  125. package/src/shadcn/calendar/calendar-month-select.svelte +2 -2
  126. package/src/shadcn/calendar/calendar-next-button.svelte +2 -2
  127. package/src/shadcn/calendar/calendar-prev-button.svelte +2 -2
  128. package/src/shadcn/calendar/calendar-year-select.svelte +2 -2
  129. package/src/shadcn/calendar/calendar.svelte +6 -0
  130. package/src/shadcn/code-block/code-block-actions.svelte +23 -0
  131. package/src/shadcn/code-block/code-block-content.svelte +55 -0
  132. package/src/shadcn/code-block/code-block-copy-button.svelte +10 -0
  133. package/src/shadcn/code-block/code-block-footer.svelte +20 -0
  134. package/src/shadcn/code-block/code-block-header.svelte +23 -0
  135. package/src/shadcn/code-block/code-block-line.svelte +71 -0
  136. package/src/shadcn/code-block/code-block-title.svelte +23 -0
  137. package/src/shadcn/code-block/code-block.svelte +47 -0
  138. package/src/shadcn/code-block/index.ts +42 -0
  139. package/src/shadcn/command/index.ts +3 -0
  140. package/src/shadcn/field/index.ts +3 -0
  141. package/src/shadcn/field/simple-field.svelte +71 -0
  142. package/src/shadcn/field/simple-field.test.ts +47 -0
  143. package/src/shadcn/hooks/highlighter.ts +132 -0
  144. package/src/shadcn/hooks/use-highlighted-code.svelte.ts +98 -0
  145. package/src/shadcn/kbd/index.ts +10 -0
  146. package/src/shadcn/kbd/kbd-group.svelte +20 -0
  147. package/src/shadcn/kbd/kbd.svelte +23 -0
  148. package/src/shadcn/message-scroller/index.ts +28 -0
  149. package/src/shadcn/message-scroller/message-scroller-button.svelte +52 -0
  150. package/src/shadcn/message-scroller/message-scroller-content.svelte +17 -0
  151. package/src/shadcn/message-scroller/message-scroller-item.svelte +22 -0
  152. package/src/shadcn/message-scroller/message-scroller-provider.svelte +7 -0
  153. package/src/shadcn/message-scroller/message-scroller-viewport.svelte +20 -0
  154. package/src/shadcn/message-scroller/message-scroller.svelte +20 -0
  155. package/src/shadcn/radio-group/radio-group-item.svelte +3 -2
  156. package/src/shadcn/sheet/sheet-content.svelte +1 -0
  157. package/src/shadcn/sheet/sheet.css +48 -0
  158. package/src/shadcn/sonner/sonner.svelte +7 -10
  159. package/src/shadcn/tabs/tabs-list.svelte +13 -2
  160. package/src/shadcn/tabs/tabs-trigger.svelte +1 -1
  161. package/src/shadcn/toggle-group/toggle-group.svelte +10 -3
  162. package/src/shadcn/trace/index.ts +29 -0
  163. package/src/shadcn/trace/trace-collapsible-content.svelte +29 -0
  164. package/src/shadcn/trace/trace-collapsible-trigger.svelte +29 -0
  165. package/src/shadcn/trace/trace-collapsible.svelte +20 -0
  166. package/src/shadcn/trace/trace-description.svelte +20 -0
  167. package/src/shadcn/trace/trace-icon.svelte +24 -0
  168. package/src/shadcn/trace/trace-line.svelte +31 -0
  169. package/src/shadcn/trace/trace-title.svelte +20 -0
  170. package/src/shadcn/trace/trace.svelte +23 -0
  171. package/src/ai/composer/Composer.css +0 -108
  172. package/src/ai/composer/Composer.svelte +0 -111
  173. package/src/ai/composer/index.ts +0 -10
  174. package/src/ai/conversation/Conversation.svelte +0 -28
  175. package/src/ai/conversation/ConversationContent.svelte +0 -35
  176. package/src/ai/conversation/ConversationEmptyState.svelte +0 -46
  177. package/src/ai/conversation/ConversationScrollButton.svelte +0 -51
  178. package/src/ai/conversation/index.ts +0 -33
  179. package/src/ai/conversation/stick-to-bottom-context.svelte.ts +0 -131
  180. package/src/animations/accordion.css +0 -58
  181. package/src/animations/icon-swap.css +0 -43
  182. package/src/animations/notification-badge.css +0 -81
  183. package/src/animations/panel.css +0 -86
  184. package/src/animations/reasoning-stream.css +0 -49
  185. package/src/animations/skeleton-reveal.css +0 -97
  186. package/src/animations/streaming-text.css +0 -31
  187. package/src/animations/tabs-sliding.css +0 -83
  188. package/src/animations/texts-reveal.css +0 -70
  189. package/src/animations/tooltip.css +0 -72
  190. package/src/animations/view-transition-reveal.ts +0 -74
  191. package/src/charts/animated-value.css +0 -7
  192. package/src/charts/animated-value.svelte +0 -110
  193. package/src/charts/area-chart.css +0 -29
  194. package/src/charts/area-chart.svelte +0 -195
  195. package/src/charts/bar-chart.css +0 -119
  196. package/src/charts/bar-chart.svelte +0 -269
  197. package/src/charts/charts.css +0 -201
  198. package/src/charts/crosshair.svelte +0 -35
  199. package/src/charts/donut-chart.css +0 -56
  200. package/src/charts/donut-chart.svelte +0 -158
  201. package/src/charts/edge-fade.svelte +0 -43
  202. package/src/charts/edge-fade.ts +0 -16
  203. package/src/charts/figure.css +0 -100
  204. package/src/charts/figure.svelte +0 -122
  205. package/src/charts/gauge-chart.css +0 -94
  206. package/src/charts/gauge-chart.svelte +0 -303
  207. package/src/charts/hover-band.test.ts +0 -30
  208. package/src/charts/hover-band.ts +0 -21
  209. package/src/charts/hover-focus.svelte +0 -85
  210. package/src/charts/index.ts +0 -30
  211. package/src/charts/legend.css +0 -131
  212. package/src/charts/legend.svelte +0 -112
  213. package/src/charts/line-chart.css +0 -26
  214. package/src/charts/line-chart.svelte +0 -256
  215. package/src/charts/motion.ts +0 -19
  216. package/src/charts/number-chart.css +0 -168
  217. package/src/charts/number-chart.svelte +0 -177
  218. package/src/charts/primitives/chart-container.svelte +0 -57
  219. package/src/charts/primitives/chart-style.svelte +0 -36
  220. package/src/charts/primitives/chart-tooltip.svelte +0 -161
  221. package/src/charts/primitives/chart-utils.ts +0 -54
  222. package/src/charts/primitives/index.ts +0 -11
  223. package/src/charts/reveal.svelte +0 -61
  224. package/src/charts/ring-chart.css +0 -96
  225. package/src/charts/ring-chart.svelte +0 -158
  226. package/src/charts/sparkline.css +0 -45
  227. package/src/charts/sparkline.svelte +0 -140
  228. package/src/charts/stat-card.css +0 -103
  229. package/src/charts/stat-card.svelte +0 -267
  230. package/src/charts/time-series-chart.css +0 -28
  231. package/src/charts/time-series-chart.svelte +0 -179
  232. package/src/charts/trend-pill.css +0 -38
  233. package/src/charts/trend-pill.svelte +0 -48
  234. package/src/lib/hooks/is-mobile.svelte.ts +0 -11
  235. package/src/lib/utils.ts +0 -45
  236. package/src/showcase/AiSection.svelte +0 -157
  237. package/src/showcase/AnimationsSection.svelte +0 -1658
  238. package/src/showcase/ChartsSection.svelte +0 -458
  239. package/src/showcase/EffectsSection.svelte +0 -152
  240. package/src/showcase/ShadcnSection.svelte +0 -27
  241. package/src/showcase/ShowcaseImport.svelte +0 -126
  242. package/src/showcase/ShowcaseList.svelte +0 -132
  243. package/src/showcase/ShowcaseNav.svelte +0 -247
  244. package/src/showcase/ShowcaseSection.svelte +0 -112
  245. package/src/showcase/ShowcaseShell.svelte +0 -55
  246. package/src/showcase/ShowcaseStage.svelte +0 -342
  247. package/src/showcase/ShowcaseVariant.svelte +0 -109
  248. package/src/showcase/assets/image-reveal/art-1.jpg +0 -0
  249. package/src/showcase/assets/image-reveal/art-2.jpg +0 -0
  250. package/src/showcase/assets/image-reveal/art-3.jpg +0 -0
  251. package/src/showcase/check.svg +0 -1
  252. package/src/showcase/chevron-arms.svg +0 -2
  253. package/src/showcase/chevron-down.svg +0 -1
  254. package/src/showcase/copy.svg +0 -2
  255. package/src/showcase/demos/ai/confirmation.svelte +0 -59
  256. package/src/showcase/demos/ai/conversation.svelte +0 -59
  257. package/src/showcase/demos/ai/loading-state.svelte +0 -19
  258. package/src/showcase/demos/ai/prompt-input.svelte +0 -57
  259. package/src/showcase/demos/ai/reasoning.svelte +0 -19
  260. package/src/showcase/demos/ai/thinking-dots.svelte +0 -15
  261. package/src/showcase/demos/ai/voice-waveform.svelte +0 -24
  262. package/src/showcase/demos/effects/animated-beam.svelte +0 -50
  263. package/src/showcase/demos/effects/animated-group.svelte +0 -47
  264. package/src/showcase/demos/effects/border-beam-default.svelte +0 -20
  265. package/src/showcase/demos/effects/border-beam-line.svelte +0 -20
  266. package/src/showcase/demos/effects/border-beam-mono.svelte +0 -20
  267. package/src/showcase/demos/effects/border-beam-sunset.svelte +0 -20
  268. package/src/showcase/demos/effects/image-comparison.svelte +0 -25
  269. package/src/showcase/demos/effects/image-reveal.svelte +0 -49
  270. package/src/showcase/demos/effects/in-view.svelte +0 -41
  271. package/src/showcase/demos/effects/integrations-hub.svelte +0 -82
  272. package/src/showcase/demos/effects/magnetic.svelte +0 -31
  273. package/src/showcase/demos/effects/marquee.svelte +0 -33
  274. package/src/showcase/demos/effects/progressive-blur.svelte +0 -47
  275. package/src/showcase/demos/effects/spotlight.svelte +0 -40
  276. package/src/showcase/demos/effects/text-effect.svelte +0 -55
  277. package/src/showcase/demos/shadcn/accordion.svelte +0 -45
  278. package/src/showcase/demos/shadcn/alert-dialog.svelte +0 -23
  279. package/src/showcase/demos/shadcn/alert.svelte +0 -30
  280. package/src/showcase/demos/shadcn/attachment.svelte +0 -71
  281. package/src/showcase/demos/shadcn/avatar.svelte +0 -30
  282. package/src/showcase/demos/shadcn/badge.svelte +0 -26
  283. package/src/showcase/demos/shadcn/breadcrumb.svelte +0 -34
  284. package/src/showcase/demos/shadcn/bubble.svelte +0 -36
  285. package/src/showcase/demos/shadcn/button.svelte +0 -11
  286. package/src/showcase/demos/shadcn/calendar.svelte +0 -8
  287. package/src/showcase/demos/shadcn/card.svelte +0 -39
  288. package/src/showcase/demos/shadcn/checkbox.svelte +0 -39
  289. package/src/showcase/demos/shadcn/collapsible.svelte +0 -20
  290. package/src/showcase/demos/shadcn/command.svelte +0 -48
  291. package/src/showcase/demos/shadcn/context-menu.svelte +0 -54
  292. package/src/showcase/demos/shadcn/demo-harness.svelte +0 -12
  293. package/src/showcase/demos/shadcn/demos.test.ts +0 -20
  294. package/src/showcase/demos/shadcn/dialog.svelte +0 -38
  295. package/src/showcase/demos/shadcn/dropdown-menu.svelte +0 -59
  296. package/src/showcase/demos/shadcn/empty.svelte +0 -29
  297. package/src/showcase/demos/shadcn/field.svelte +0 -115
  298. package/src/showcase/demos/shadcn/hover-card.svelte +0 -32
  299. package/src/showcase/demos/shadcn/index.ts +0 -358
  300. package/src/showcase/demos/shadcn/input-otp.svelte +0 -19
  301. package/src/showcase/demos/shadcn/input.svelte +0 -5
  302. package/src/showcase/demos/shadcn/label.svelte +0 -11
  303. package/src/showcase/demos/shadcn/marker.svelte +0 -30
  304. package/src/showcase/demos/shadcn/message.svelte +0 -75
  305. package/src/showcase/demos/shadcn/popover.svelte +0 -36
  306. package/src/showcase/demos/shadcn/progress.svelte +0 -13
  307. package/src/showcase/demos/shadcn/radio-group.svelte +0 -19
  308. package/src/showcase/demos/shadcn/scroll-area.svelte +0 -18
  309. package/src/showcase/demos/shadcn/select.svelte +0 -29
  310. package/src/showcase/demos/shadcn/separator.svelte +0 -12
  311. package/src/showcase/demos/shadcn/sheet.svelte +0 -48
  312. package/src/showcase/demos/shadcn/skeleton.svelte +0 -11
  313. package/src/showcase/demos/shadcn/slider.svelte +0 -7
  314. package/src/showcase/demos/shadcn/sonner.svelte +0 -18
  315. package/src/showcase/demos/shadcn/spinner.svelte +0 -11
  316. package/src/showcase/demos/shadcn/switch.svelte +0 -9
  317. package/src/showcase/demos/shadcn/table.svelte +0 -76
  318. package/src/showcase/demos/shadcn/tabs.svelte +0 -62
  319. package/src/showcase/demos/shadcn/textarea.svelte +0 -5
  320. package/src/showcase/demos/shadcn/toggle-group.svelte +0 -18
  321. package/src/showcase/demos/shadcn/toggle.svelte +0 -14
  322. package/src/showcase/demos/shadcn/tooltip.svelte +0 -13
  323. package/src/showcase/heart.svg +0 -1
  324. package/src/showcase/index.ts +0 -38
  325. package/src/showcase/kit.test.ts +0 -72
  326. package/src/showcase/kit.ts +0 -17
  327. package/src/showcase/plus.svg +0 -1
  328. package/src/showcase/showcase-shell.css +0 -91
  329. package/src/showcase/stacked-section.css +0 -15
  330. package/src/showcase/success-check.svg +0 -1
  331. package/src/showcase/types.ts +0 -29
  332. package/src/svg-raw.d.ts +0 -7
@@ -1,23 +0,0 @@
1
- <script lang="ts">
2
- import * as AlertDialog from "../../../shadcn/alert-dialog/index.js";
3
- import { buttonVariants } from "../../../shadcn/button/index.js";
4
- </script>
5
-
6
- <AlertDialog.Root>
7
- <AlertDialog.Trigger class={buttonVariants({ variant: "outline" })}>
8
- Show Dialog
9
- </AlertDialog.Trigger>
10
- <AlertDialog.Content>
11
- <AlertDialog.Header>
12
- <AlertDialog.Title>Are you absolutely sure?</AlertDialog.Title>
13
- <AlertDialog.Description>
14
- This action cannot be undone. This will permanently delete your account and remove your data
15
- from our servers.
16
- </AlertDialog.Description>
17
- </AlertDialog.Header>
18
- <AlertDialog.Footer>
19
- <AlertDialog.Cancel>Cancel</AlertDialog.Cancel>
20
- <AlertDialog.Action>Continue</AlertDialog.Action>
21
- </AlertDialog.Footer>
22
- </AlertDialog.Content>
23
- </AlertDialog.Root>
@@ -1,30 +0,0 @@
1
- <script lang="ts">
2
- import AlertCircleIcon from "@lucide/svelte/icons/alert-circle";
3
- import CheckCircle2Icon from "@lucide/svelte/icons/check-circle-2";
4
- import PopcornIcon from "@lucide/svelte/icons/popcorn";
5
- import * as Alert from "../../../shadcn/alert/index.js";
6
- </script>
7
-
8
- <div class="grid w-full max-w-xl items-start gap-4">
9
- <Alert.Root>
10
- <CheckCircle2Icon />
11
- <Alert.Title>Success! Your changes have been saved</Alert.Title>
12
- <Alert.Description>This is an alert with icon, title and description.</Alert.Description>
13
- </Alert.Root>
14
- <Alert.Root>
15
- <PopcornIcon />
16
- <Alert.Title>This Alert has a title and an icon. No description.</Alert.Title>
17
- </Alert.Root>
18
- <Alert.Root variant="destructive">
19
- <AlertCircleIcon />
20
- <Alert.Title>Unable to process your payment.</Alert.Title>
21
- <Alert.Description>
22
- <p>Please verify your billing information and try again.</p>
23
- <ul class="list-inside list-disc text-sm">
24
- <li>Check your card details</li>
25
- <li>Ensure sufficient funds</li>
26
- <li>Verify billing address</li>
27
- </ul>
28
- </Alert.Description>
29
- </Alert.Root>
30
- </div>
@@ -1,71 +0,0 @@
1
- <script lang="ts">
2
- import FileCodeIcon from "@lucide/svelte/icons/file-code";
3
- import XIcon from "@lucide/svelte/icons/x";
4
- import * as Attachment from "../../../shadcn/attachment/index.js";
5
- import { Spinner } from "../../../shadcn/spinner/index.js";
6
-
7
- const images = [
8
- {
9
- name: "workspace.png",
10
- meta: "PNG · 820 KB",
11
- src: "https://images.unsplash.com/photo-1497366754035-f200968a6e72?w=900&auto=format&fit=crop&q=80",
12
- alt: "Workspace",
13
- },
14
- {
15
- name: "desk-reference.jpg",
16
- meta: "JPG · 1.1 MB",
17
- src: "https://images.unsplash.com/photo-1497215728101-856f4ea42174?w=900&auto=format&fit=crop&q=80",
18
- alt: "Desk",
19
- },
20
- {
21
- name: "office-reference.jpg",
22
- meta: "JPG · 940 KB",
23
- src: "https://images.unsplash.com/photo-1497366811353-6870744d04b2?w=900&auto=format&fit=crop&q=80",
24
- alt: "Office",
25
- },
26
- ];
27
- </script>
28
-
29
- <div class="mx-auto flex w-full max-w-sm flex-col gap-3 py-12">
30
- <Attachment.Group>
31
- {#each images as image (image.name)}
32
- <Attachment.Root orientation="vertical">
33
- <Attachment.Media variant="image">
34
- <img src={image.src} alt={image.alt} />
35
- </Attachment.Media>
36
- <Attachment.Content>
37
- <Attachment.Title>{image.name}</Attachment.Title>
38
- <Attachment.Description>{image.meta}</Attachment.Description>
39
- </Attachment.Content>
40
- </Attachment.Root>
41
- {/each}
42
- </Attachment.Group>
43
- <Attachment.Root state="uploading" class="w-full">
44
- <Attachment.Media>
45
- <Spinner />
46
- </Attachment.Media>
47
- <Attachment.Content>
48
- <Attachment.Title>sales-dashboard.pdf</Attachment.Title>
49
- <Attachment.Description>Uploading · 64%</Attachment.Description>
50
- </Attachment.Content>
51
- <Attachment.Actions>
52
- <Attachment.Action aria-label="Cancel upload">
53
- <XIcon />
54
- </Attachment.Action>
55
- </Attachment.Actions>
56
- </Attachment.Root>
57
- <Attachment.Root class="w-full">
58
- <Attachment.Media>
59
- <FileCodeIcon />
60
- </Attachment.Media>
61
- <Attachment.Content>
62
- <Attachment.Title>message-renderer.tsx</Attachment.Title>
63
- <Attachment.Description>TypeScript · 12 KB</Attachment.Description>
64
- </Attachment.Content>
65
- <Attachment.Actions>
66
- <Attachment.Action aria-label="Remove message-renderer.tsx">
67
- <XIcon />
68
- </Attachment.Action>
69
- </Attachment.Actions>
70
- </Attachment.Root>
71
- </div>
@@ -1,30 +0,0 @@
1
- <script lang="ts">
2
- import * as Avatar from "../../../shadcn/avatar/index.js";
3
- </script>
4
-
5
- <div class="flex flex-row flex-wrap items-center gap-12">
6
- <Avatar.Root>
7
- <Avatar.Image src="https://github.com/shadcn.png" alt="@shadcn" />
8
- <Avatar.Fallback>CN</Avatar.Fallback>
9
- </Avatar.Root>
10
- <Avatar.Root class="rounded-lg">
11
- <Avatar.Image src="https://github.com/evilrabbit.png" alt="@evilrabbit" />
12
- <Avatar.Fallback>ER</Avatar.Fallback>
13
- </Avatar.Root>
14
- <div
15
- class="flex -space-x-2 *:data-[slot=avatar]:ring-2 *:data-[slot=avatar]:ring-background *:data-[slot=avatar]:grayscale"
16
- >
17
- <Avatar.Root>
18
- <Avatar.Image src="https://github.com/shadcn.png" alt="@shadcn" />
19
- <Avatar.Fallback>CN</Avatar.Fallback>
20
- </Avatar.Root>
21
- <Avatar.Root>
22
- <Avatar.Image src="https://github.com/leerob.png" alt="@leerob" />
23
- <Avatar.Fallback>LR</Avatar.Fallback>
24
- </Avatar.Root>
25
- <Avatar.Root>
26
- <Avatar.Image src="https://github.com/evilrabbit.png" alt="@evilrabbit" />
27
- <Avatar.Fallback>ER</Avatar.Fallback>
28
- </Avatar.Root>
29
- </div>
30
- </div>
@@ -1,26 +0,0 @@
1
- <script lang="ts">
2
- import BadgeCheckIcon from "@lucide/svelte/icons/badge-check";
3
- import { Badge } from "../../../shadcn/badge/index.js";
4
- </script>
5
-
6
- <div class="flex flex-col items-center gap-2">
7
- <div class="flex w-full flex-wrap gap-2">
8
- <Badge>Badge</Badge>
9
- <Badge variant="secondary">Secondary</Badge>
10
- <Badge variant="destructive">Destructive</Badge>
11
- <Badge variant="outline">Outline</Badge>
12
- </div>
13
- <div class="flex w-full flex-wrap gap-2">
14
- <Badge variant="secondary" class="bg-blue-500 text-white dark:bg-blue-600">
15
- <BadgeCheckIcon />
16
- Verified
17
- </Badge>
18
- <Badge class="h-5 min-w-5 rounded-full px-1 font-mono tabular-nums">8</Badge>
19
- <Badge class="h-5 min-w-5 rounded-full px-1 font-mono tabular-nums" variant="destructive">
20
- 99
21
- </Badge>
22
- <Badge class="h-5 min-w-5 rounded-full px-1 font-mono tabular-nums" variant="outline">
23
- 20+
24
- </Badge>
25
- </div>
26
- </div>
@@ -1,34 +0,0 @@
1
- <script lang="ts">
2
- import * as Breadcrumb from "../../../shadcn/breadcrumb/index.js";
3
- import * as DropdownMenu from "../../../shadcn/dropdown-menu/index.js";
4
- </script>
5
-
6
- <Breadcrumb.Root>
7
- <Breadcrumb.List>
8
- <Breadcrumb.Item>
9
- <Breadcrumb.Link href="/">Home</Breadcrumb.Link>
10
- </Breadcrumb.Item>
11
- <Breadcrumb.Separator />
12
- <Breadcrumb.Item>
13
- <DropdownMenu.Root>
14
- <DropdownMenu.Trigger class="flex items-center gap-1">
15
- <Breadcrumb.Ellipsis class="size-4" />
16
- <span class="sr-only">Toggle menu</span>
17
- </DropdownMenu.Trigger>
18
- <DropdownMenu.Content align="start">
19
- <DropdownMenu.Item>Documentation</DropdownMenu.Item>
20
- <DropdownMenu.Item>Themes</DropdownMenu.Item>
21
- <DropdownMenu.Item>GitHub</DropdownMenu.Item>
22
- </DropdownMenu.Content>
23
- </DropdownMenu.Root>
24
- </Breadcrumb.Item>
25
- <Breadcrumb.Separator />
26
- <Breadcrumb.Item>
27
- <Breadcrumb.Link href="/docs/components">Components</Breadcrumb.Link>
28
- </Breadcrumb.Item>
29
- <Breadcrumb.Separator />
30
- <Breadcrumb.Item>
31
- <Breadcrumb.Page>Breadcrumb</Breadcrumb.Page>
32
- </Breadcrumb.Item>
33
- </Breadcrumb.List>
34
- </Breadcrumb.Root>
@@ -1,36 +0,0 @@
1
- <script lang="ts">
2
- import * as Bubble from "../../../shadcn/bubble/index.js";
3
- </script>
4
-
5
- <div class="flex w-full max-w-sm flex-col gap-8 py-12">
6
- <Bubble.Root align="end">
7
- <Bubble.Content>Hey there! what's up?</Bubble.Content>
8
- </Bubble.Root>
9
- <Bubble.Group>
10
- <Bubble.Root variant="muted">
11
- <Bubble.Content>Hey! Want to see chat bubbles?</Bubble.Content>
12
- </Bubble.Root>
13
- <Bubble.Root variant="muted">
14
- <Bubble.Content>
15
- I can group messages, switch sides, and keep the whole thread easy to scan.
16
- </Bubble.Content>
17
- <Bubble.Reactions role="img" aria-label="Reaction: thumbs up">
18
- <span>👍</span>
19
- </Bubble.Reactions>
20
- </Bubble.Root>
21
- </Bubble.Group>
22
- <Bubble.Root align="end">
23
- <Bubble.Content>Sure. Hit me with your best demo.</Bubble.Content>
24
- </Bubble.Root>
25
- <Bubble.Root variant="muted">
26
- <Bubble.Content>
27
- Yes. You are reading a demo that is demoing itself. Very meta. Very on-brand.
28
- </Bubble.Content>
29
- <Bubble.Reactions role="img" aria-label="Reactions: thumbs up, fire, eyes, and 2 more">
30
- <span>👍</span>
31
- <span>🔥</span>
32
- <span>👀</span>
33
- <span>+2</span>
34
- </Bubble.Reactions>
35
- </Bubble.Root>
36
- </div>
@@ -1,11 +0,0 @@
1
- <script lang="ts">
2
- import ArrowUpIcon from "@lucide/svelte/icons/arrow-up";
3
- import { Button } from "../../../shadcn/button/index.js";
4
- </script>
5
-
6
- <div class="flex flex-wrap items-center gap-2 md:flex-row">
7
- <Button variant="outline">Button</Button>
8
- <Button variant="outline" size="icon" aria-label="Submit">
9
- <ArrowUpIcon />
10
- </Button>
11
- </div>
@@ -1,8 +0,0 @@
1
- <script lang="ts">
2
- import { getLocalTimeZone, today } from "@internationalized/date";
3
- import { Calendar } from "../../../shadcn/calendar/index.js";
4
-
5
- let value = today(getLocalTimeZone());
6
- </script>
7
-
8
- <Calendar type="single" bind:value class="rounded-md border shadow-sm" captionLayout="dropdown" />
@@ -1,39 +0,0 @@
1
- <script lang="ts">
2
- import * as Card from "../../../shadcn/card/index.js";
3
- import { Button } from "../../../shadcn/button/index.js";
4
- import { Input } from "../../../shadcn/input/index.js";
5
- import { Label } from "../../../shadcn/label/index.js";
6
- </script>
7
-
8
- <Card.Root class="-my-4 w-full max-w-sm">
9
- <Card.Header>
10
- <Card.Title>Login to your account</Card.Title>
11
- <Card.Description>Enter your email below to login to your account</Card.Description>
12
- <Card.Action>
13
- <Button variant="link">Sign Up</Button>
14
- </Card.Action>
15
- </Card.Header>
16
- <Card.Content>
17
- <form>
18
- <div class="flex flex-col gap-6">
19
- <div class="grid gap-2">
20
- <Label for="email">Email</Label>
21
- <Input id="email" type="email" placeholder="m@example.com" required />
22
- </div>
23
- <div class="grid gap-2">
24
- <div class="flex items-center">
25
- <Label for="password">Password</Label>
26
- <a href="##" class="ms-auto inline-block text-sm underline-offset-4 hover:underline">
27
- Forgot your password?
28
- </a>
29
- </div>
30
- <Input id="password" type="password" required />
31
- </div>
32
- </div>
33
- </form>
34
- </Card.Content>
35
- <Card.Footer class="flex-col gap-2">
36
- <Button type="submit" class="w-full">Login</Button>
37
- <Button variant="outline" class="w-full">Login with Google</Button>
38
- </Card.Footer>
39
- </Card.Root>
@@ -1,39 +0,0 @@
1
- <script lang="ts">
2
- import { Checkbox } from "../../../shadcn/checkbox/index.js";
3
- import { Label } from "../../../shadcn/label/index.js";
4
- </script>
5
-
6
- <div class="flex flex-col gap-6">
7
- <div class="flex items-center gap-3">
8
- <Checkbox id="terms" />
9
- <Label for="terms">Accept terms and conditions</Label>
10
- </div>
11
- <div class="flex items-start gap-3">
12
- <Checkbox id="terms-2" checked />
13
- <div class="grid gap-2">
14
- <Label for="terms-2">Accept terms and conditions</Label>
15
- <p class="text-sm text-muted-foreground">
16
- By clicking this checkbox, you agree to the terms and conditions.
17
- </p>
18
- </div>
19
- </div>
20
- <div class="flex items-start gap-3">
21
- <Checkbox id="toggle" disabled />
22
- <Label for="toggle">Enable notifications</Label>
23
- </div>
24
- <Label
25
- class="flex items-start gap-3 rounded-lg border p-3 hover:bg-accent/50 has-[[aria-checked=true]]:border-blue-600 has-[[aria-checked=true]]:bg-blue-50 dark:has-[[aria-checked=true]]:border-blue-900 dark:has-[[aria-checked=true]]:bg-blue-950"
26
- >
27
- <Checkbox
28
- id="toggle-2"
29
- checked
30
- class="data-[state=checked]:border-blue-600 data-[state=checked]:bg-blue-600 data-[state=checked]:text-white dark:data-[state=checked]:border-blue-700 dark:data-[state=checked]:bg-blue-700"
31
- />
32
- <div class="grid gap-1.5 font-normal">
33
- <p class="text-sm leading-none font-medium">Enable notifications</p>
34
- <p class="text-sm text-muted-foreground">
35
- You can enable or disable notifications at any time.
36
- </p>
37
- </div>
38
- </Label>
39
- </div>
@@ -1,20 +0,0 @@
1
- <script lang="ts">
2
- import ChevronsUpDownIcon from "@lucide/svelte/icons/chevrons-up-down";
3
- import * as Collapsible from "../../../shadcn/collapsible/index.js";
4
- import { buttonVariants } from "../../../shadcn/button/index.js";
5
- </script>
6
-
7
- <Collapsible.Root class="w-[350px] space-y-2">
8
- <div class="flex items-center justify-between space-x-4 px-4">
9
- <h4 class="text-sm font-semibold">@huntabyte starred 3 repositories</h4>
10
- <Collapsible.Trigger class={buttonVariants({ variant: "ghost", size: "sm", class: "w-9 p-0" })}>
11
- <ChevronsUpDownIcon />
12
- <span class="sr-only">Toggle</span>
13
- </Collapsible.Trigger>
14
- </div>
15
- <div class="rounded-md border px-4 py-3 font-mono text-sm">@huntabyte/bits-ui</div>
16
- <Collapsible.Content class="space-y-2">
17
- <div class="rounded-md border px-4 py-3 font-mono text-sm">@melt-ui/melt-ui</div>
18
- <div class="rounded-md border px-4 py-3 font-mono text-sm">@sveltejs/svelte</div>
19
- </Collapsible.Content>
20
- </Collapsible.Root>
@@ -1,48 +0,0 @@
1
- <script lang="ts">
2
- import CalculatorIcon from "@lucide/svelte/icons/calculator";
3
- import CalendarIcon from "@lucide/svelte/icons/calendar";
4
- import CreditCardIcon from "@lucide/svelte/icons/credit-card";
5
- import SettingsIcon from "@lucide/svelte/icons/settings";
6
- import SmileIcon from "@lucide/svelte/icons/smile";
7
- import UserIcon from "@lucide/svelte/icons/user";
8
- import * as Command from "../../../shadcn/command/index.js";
9
- </script>
10
-
11
- <Command.Root class="rounded-lg border shadow-md md:min-w-[450px]">
12
- <Command.Input placeholder="Type a command or search..." />
13
- <Command.List>
14
- <Command.Empty>No results found.</Command.Empty>
15
- <Command.Group heading="Suggestions">
16
- <Command.Item>
17
- <CalendarIcon />
18
- <span>Calendar</span>
19
- </Command.Item>
20
- <Command.Item>
21
- <SmileIcon />
22
- <span>Search Emoji</span>
23
- </Command.Item>
24
- <Command.Item disabled>
25
- <CalculatorIcon />
26
- <span>Calculator</span>
27
- </Command.Item>
28
- </Command.Group>
29
- <Command.Separator />
30
- <Command.Group heading="Settings">
31
- <Command.Item>
32
- <UserIcon />
33
- <span>Profile</span>
34
- <Command.Shortcut>⌘P</Command.Shortcut>
35
- </Command.Item>
36
- <Command.Item>
37
- <CreditCardIcon />
38
- <span>Billing</span>
39
- <Command.Shortcut>⌘B</Command.Shortcut>
40
- </Command.Item>
41
- <Command.Item>
42
- <SettingsIcon />
43
- <span>Settings</span>
44
- <Command.Shortcut>⌘S</Command.Shortcut>
45
- </Command.Item>
46
- </Command.Group>
47
- </Command.List>
48
- </Command.Root>
@@ -1,54 +0,0 @@
1
- <script lang="ts">
2
- import * as ContextMenu from "../../../shadcn/context-menu/index.js";
3
-
4
- let showBookmarks = $state(false);
5
- let showFullURLs = $state(true);
6
-
7
- let value = $state("pedro");
8
- </script>
9
-
10
- <ContextMenu.Root>
11
- <ContextMenu.Trigger
12
- class="flex h-[150px] w-[300px] items-center justify-center rounded-md border border-dashed text-sm"
13
- >
14
- Right click here
15
- </ContextMenu.Trigger>
16
- <ContextMenu.Content class="w-52">
17
- <ContextMenu.Item>
18
- Back
19
- <ContextMenu.Shortcut>⌘[</ContextMenu.Shortcut>
20
- </ContextMenu.Item>
21
- <ContextMenu.Item disabled>
22
- Forward
23
- <ContextMenu.Shortcut>⌘]</ContextMenu.Shortcut>
24
- </ContextMenu.Item>
25
- <ContextMenu.Item>
26
- Reload
27
- <ContextMenu.Shortcut>⌘R</ContextMenu.Shortcut>
28
- </ContextMenu.Item>
29
- <ContextMenu.Sub>
30
- <ContextMenu.SubTrigger>More Tools</ContextMenu.SubTrigger>
31
- <ContextMenu.SubContent class="w-48">
32
- <ContextMenu.Item>
33
- Save Page As...
34
- <ContextMenu.Shortcut>⇧⌘S</ContextMenu.Shortcut>
35
- </ContextMenu.Item>
36
- <ContextMenu.Item>Create Shortcut...</ContextMenu.Item>
37
- <ContextMenu.Item>Name Window...</ContextMenu.Item>
38
- <ContextMenu.Separator />
39
- <ContextMenu.Item>Developer Tools</ContextMenu.Item>
40
- </ContextMenu.SubContent>
41
- </ContextMenu.Sub>
42
- <ContextMenu.Separator />
43
- <ContextMenu.CheckboxItem bind:checked={showBookmarks}>Show Bookmarks</ContextMenu.CheckboxItem>
44
- <ContextMenu.CheckboxItem bind:checked={showFullURLs}>Show Full URLs</ContextMenu.CheckboxItem>
45
- <ContextMenu.Separator />
46
- <ContextMenu.RadioGroup bind:value>
47
- <ContextMenu.Group>
48
- <ContextMenu.Label>People</ContextMenu.Label>
49
- <ContextMenu.RadioItem value="pedro">Pedro Duarte</ContextMenu.RadioItem>
50
- <ContextMenu.RadioItem value="colm">Colm Tuite</ContextMenu.RadioItem>
51
- </ContextMenu.Group>
52
- </ContextMenu.RadioGroup>
53
- </ContextMenu.Content>
54
- </ContextMenu.Root>
@@ -1,12 +0,0 @@
1
- <script lang="ts">
2
- // What ShadcnSection puts around a demo, so the test mounts what the page
3
- // mounts: `input-group` reaches for a tooltip provider it does not create.
4
- import type { Component } from "svelte";
5
- import { TooltipProvider } from "../../../shadcn/tooltip/index.js";
6
-
7
- let { Comp }: { Comp: Component } = $props();
8
- </script>
9
-
10
- <TooltipProvider>
11
- <Comp />
12
- </TooltipProvider>
@@ -1,20 +0,0 @@
1
- // The demos are upstream's and arrive by script, so nothing reviews them before
2
- // they land. This is the gate: every one of them mounts and draws something.
3
- import { flushSync, mount, unmount } from "svelte";
4
- import { describe, expect, it } from "vite-plus/test";
5
- import Harness from "./demo-harness.svelte";
6
- import { SHADCN_DEMOS } from "./index.js";
7
-
8
- describe("shadcn demos", () => {
9
- for (const demo of SHADCN_DEMOS) {
10
- it(`${demo.name} renders`, () => {
11
- const target = document.createElement("div");
12
- document.body.appendChild(target);
13
- const app = mount(Harness, { target, props: { Comp: demo.Comp } });
14
- flushSync();
15
- expect(target.innerHTML.length).toBeGreaterThan(0);
16
- void unmount(app);
17
- target.remove();
18
- });
19
- }
20
- });
@@ -1,38 +0,0 @@
1
- <script lang="ts">
2
- import * as Dialog from "../../../shadcn/dialog/index.js";
3
- import { Button, buttonVariants } from "../../../shadcn/button/index.js";
4
- import { Input } from "../../../shadcn/input/index.js";
5
- import { Label } from "../../../shadcn/label/index.js";
6
- </script>
7
-
8
- <Dialog.Root>
9
- <form>
10
- <Dialog.Trigger type="button" class={buttonVariants({ variant: "outline" })}>
11
- Open Dialog
12
- </Dialog.Trigger>
13
- <Dialog.Content class="sm:max-w-[425px]">
14
- <Dialog.Header>
15
- <Dialog.Title>Edit profile</Dialog.Title>
16
- <Dialog.Description>
17
- Make changes to your profile here. Click save when you&apos;re done.
18
- </Dialog.Description>
19
- </Dialog.Header>
20
- <div class="grid gap-4">
21
- <div class="grid gap-3">
22
- <Label for="name-1">Name</Label>
23
- <Input id="name-1" name="name" defaultValue="Pedro Duarte" />
24
- </div>
25
- <div class="grid gap-3">
26
- <Label for="username-1">Username</Label>
27
- <Input id="username-1" name="username" defaultValue="@peduarte" />
28
- </div>
29
- </div>
30
- <Dialog.Footer>
31
- <Dialog.Close type="button" class={buttonVariants({ variant: "outline" })}>
32
- Cancel
33
- </Dialog.Close>
34
- <Button type="submit">Save changes</Button>
35
- </Dialog.Footer>
36
- </Dialog.Content>
37
- </form>
38
- </Dialog.Root>
@@ -1,59 +0,0 @@
1
- <script lang="ts">
2
- import * as DropdownMenu from "../../../shadcn/dropdown-menu/index.js";
3
- import { Button } from "../../../shadcn/button/index.js";
4
- </script>
5
-
6
- <DropdownMenu.Root>
7
- <DropdownMenu.Trigger>
8
- {#snippet child({ props })}
9
- <Button {...props} variant="outline">Open</Button>
10
- {/snippet}
11
- </DropdownMenu.Trigger>
12
- <DropdownMenu.Content class="w-56" align="start">
13
- <DropdownMenu.Label>My Account</DropdownMenu.Label>
14
- <DropdownMenu.Group>
15
- <DropdownMenu.Item>
16
- Profile
17
- <DropdownMenu.Shortcut>⇧⌘P</DropdownMenu.Shortcut>
18
- </DropdownMenu.Item>
19
- <DropdownMenu.Item>
20
- Billing
21
- <DropdownMenu.Shortcut>⌘B</DropdownMenu.Shortcut>
22
- </DropdownMenu.Item>
23
- <DropdownMenu.Item>
24
- Settings
25
- <DropdownMenu.Shortcut>⌘S</DropdownMenu.Shortcut>
26
- </DropdownMenu.Item>
27
- <DropdownMenu.Item>
28
- Keyboard shortcuts
29
- <DropdownMenu.Shortcut>⌘K</DropdownMenu.Shortcut>
30
- </DropdownMenu.Item>
31
- </DropdownMenu.Group>
32
- <DropdownMenu.Separator />
33
- <DropdownMenu.Group>
34
- <DropdownMenu.Item>Team</DropdownMenu.Item>
35
- <DropdownMenu.Sub>
36
- <DropdownMenu.SubTrigger>Invite users</DropdownMenu.SubTrigger>
37
- <DropdownMenu.SubContent>
38
- <DropdownMenu.Item>Email</DropdownMenu.Item>
39
- <DropdownMenu.Item>Message</DropdownMenu.Item>
40
- <DropdownMenu.Separator />
41
- <DropdownMenu.Item>More...</DropdownMenu.Item>
42
- </DropdownMenu.SubContent>
43
- </DropdownMenu.Sub>
44
- <DropdownMenu.Item>
45
- New Team
46
- <DropdownMenu.Shortcut>⌘+T</DropdownMenu.Shortcut>
47
- </DropdownMenu.Item>
48
- </DropdownMenu.Group>
49
- <DropdownMenu.Separator />
50
- <DropdownMenu.Item>GitHub</DropdownMenu.Item>
51
- <DropdownMenu.Item>Support</DropdownMenu.Item>
52
- <DropdownMenu.Item disabled>API</DropdownMenu.Item>
53
- <DropdownMenu.Separator />
54
- <DropdownMenu.Item>
55
- Log out
56
- <DropdownMenu.Shortcut>⇧⌘Q</DropdownMenu.Shortcut>
57
- </DropdownMenu.Item>
58
- </DropdownMenu.Content>
59
- </DropdownMenu.Root>
@@ -1,29 +0,0 @@
1
- <script lang="ts">
2
- import ArrowUpRightIcon from "@lucide/svelte/icons/arrow-up-right";
3
- import FolderCodeIcon from "@tabler/icons-svelte-runes/icons/folder-code";
4
- import * as Empty from "../../../shadcn/empty/index.js";
5
- import { Button } from "../../../shadcn/button/index.js";
6
- </script>
7
-
8
- <Empty.Root>
9
- <Empty.Header>
10
- <Empty.Media variant="icon">
11
- <FolderCodeIcon />
12
- </Empty.Media>
13
- <Empty.Title>No Projects Yet</Empty.Title>
14
- <Empty.Description>
15
- You haven't created any projects yet. Get started by creating your first project.
16
- </Empty.Description>
17
- </Empty.Header>
18
- <Empty.Content>
19
- <div class="flex gap-2">
20
- <Button>Create Project</Button>
21
- <Button variant="outline">Import Project</Button>
22
- </div>
23
- </Empty.Content>
24
- <Button variant="link" class="text-muted-foreground" size="sm">
25
- <a href="#/">
26
- Learn More <ArrowUpRightIcon class="inline" />
27
- </a>
28
- </Button>
29
- </Empty.Root>