@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,115 +0,0 @@
1
- <script lang="ts">
2
- import * as Field from "../../../shadcn/field/index.js";
3
- import * as Select from "../../../shadcn/select/index.js";
4
- import { Button } from "../../../shadcn/button/index.js";
5
- import { Checkbox } from "../../../shadcn/checkbox/index.js";
6
- import { Input } from "../../../shadcn/input/index.js";
7
- import { Textarea } from "../../../shadcn/textarea/index.js";
8
-
9
- let month = $state<string>();
10
- let year = $state<string>();
11
- </script>
12
-
13
- <div class="w-full max-w-md">
14
- <form>
15
- <Field.Group>
16
- <Field.Set>
17
- <Field.Legend>Payment Method</Field.Legend>
18
- <Field.Description>All transactions are secure and encrypted</Field.Description>
19
- <Field.Group>
20
- <Field.Field>
21
- <Field.Label for="checkout-7j9-card-name-43j">Name on Card</Field.Label>
22
- <Input id="checkout-7j9-card-name-43j" placeholder="John Doe" required />
23
- </Field.Field>
24
- <div class="grid grid-cols-3 gap-4">
25
- <Field.Field class="col-span-2">
26
- <Field.Label for="checkout-7j9-card-number-uw1">Card Number</Field.Label>
27
- <Input id="checkout-7j9-card-number-uw1" placeholder="1234 5678 9012 3456" required />
28
- <Field.Description>Enter your 16-digit number.</Field.Description>
29
- </Field.Field>
30
- <Field.Field class="col-span-1">
31
- <Field.Label for="checkout-7j9-cvv">CVV</Field.Label>
32
- <Input id="checkout-7j9-cvv" placeholder="123" required />
33
- </Field.Field>
34
- </div>
35
- <div class="grid grid-cols-2 gap-4">
36
- <Field.Field>
37
- <Field.Label for="checkout-7j9-exp-month-ts6">Month</Field.Label>
38
- <Select.Root type="single" bind:value={month}>
39
- <Select.Trigger id="checkout-7j9-exp-month-ts6">
40
- <span>
41
- {month || "MM"}
42
- </span>
43
- </Select.Trigger>
44
- <Select.Content>
45
- <Select.Item value="01">01</Select.Item>
46
- <Select.Item value="02">02</Select.Item>
47
- <Select.Item value="03">03</Select.Item>
48
- <Select.Item value="04">04</Select.Item>
49
- <Select.Item value="05">05</Select.Item>
50
- <Select.Item value="06">06</Select.Item>
51
- <Select.Item value="07">07</Select.Item>
52
- <Select.Item value="08">08</Select.Item>
53
- <Select.Item value="09">09</Select.Item>
54
- <Select.Item value="10">10</Select.Item>
55
- <Select.Item value="11">11</Select.Item>
56
- <Select.Item value="12">12</Select.Item>
57
- </Select.Content>
58
- </Select.Root>
59
- </Field.Field>
60
- <Field.Field>
61
- <Field.Label for="checkout-7j9-exp-year-f59">Year</Field.Label>
62
- <Select.Root type="single" bind:value={year}>
63
- <Select.Trigger id="checkout-7j9-exp-year-f59">
64
- <span>
65
- {year || "YYYY"}
66
- </span>
67
- </Select.Trigger>
68
- <Select.Content>
69
- <Select.Item value="2024">2024</Select.Item>
70
- <Select.Item value="2025">2025</Select.Item>
71
- <Select.Item value="2026">2026</Select.Item>
72
- <Select.Item value="2027">2027</Select.Item>
73
- <Select.Item value="2028">2028</Select.Item>
74
- <Select.Item value="2029">2029</Select.Item>
75
- </Select.Content>
76
- </Select.Root>
77
- </Field.Field>
78
- </div>
79
- </Field.Group>
80
- </Field.Set>
81
- <Field.Separator />
82
- <Field.Set>
83
- <Field.Legend>Billing Address</Field.Legend>
84
- <Field.Description>
85
- The billing address associated with your payment method
86
- </Field.Description>
87
- <Field.Group>
88
- <Field.Field orientation="horizontal">
89
- <Checkbox id="checkout-7j9-same-as-shipping-wgm" checked={true} />
90
- <Field.Label for="checkout-7j9-same-as-shipping-wgm" class="font-normal">
91
- Same as shipping address
92
- </Field.Label>
93
- </Field.Field>
94
- </Field.Group>
95
- </Field.Set>
96
- <Field.Separator />
97
- <Field.Set>
98
- <Field.Group>
99
- <Field.Field>
100
- <Field.Label for="checkout-7j9-optional-comments">Comments</Field.Label>
101
- <Textarea
102
- id="checkout-7j9-optional-comments"
103
- placeholder="Add any additional comments"
104
- class="resize-none"
105
- />
106
- </Field.Field>
107
- </Field.Group>
108
- </Field.Set>
109
- <Field.Field orientation="horizontal">
110
- <Button type="submit">Submit</Button>
111
- <Button variant="outline" type="button">Cancel</Button>
112
- </Field.Field>
113
- </Field.Group>
114
- </form>
115
- </div>
@@ -1,32 +0,0 @@
1
- <script lang="ts">
2
- import CalendarDaysIcon from "@lucide/svelte/icons/calendar-days";
3
- import * as Avatar from "../../../shadcn/avatar/index.js";
4
- import * as HoverCard from "../../../shadcn/hover-card/index.js";
5
- </script>
6
-
7
- <HoverCard.Root>
8
- <HoverCard.Trigger
9
- href="https://github.com/sveltejs"
10
- target="_blank"
11
- rel="noreferrer noopener"
12
- class="rounded-sm underline-offset-4 hover:underline focus-visible:outline-2 focus-visible:outline-offset-8 focus-visible:outline-black"
13
- >
14
- @sveltejs
15
- </HoverCard.Trigger>
16
- <HoverCard.Content class="w-80">
17
- <div class="flex justify-between space-x-4">
18
- <Avatar.Root>
19
- <Avatar.Image src="https://github.com/sveltejs.png" />
20
- <Avatar.Fallback>SK</Avatar.Fallback>
21
- </Avatar.Root>
22
- <div class="space-y-1">
23
- <h4 class="text-sm font-semibold">@sveltejs</h4>
24
- <p class="text-sm">Cybernetically enhanced web apps.</p>
25
- <div class="flex items-center pt-2">
26
- <CalendarDaysIcon class="me-2 size-4 opacity-70" />
27
- <span class="text-xs text-muted-foreground"> Joined September 2022 </span>
28
- </div>
29
- </div>
30
- </div>
31
- </HoverCard.Content>
32
- </HoverCard.Root>
@@ -1,358 +0,0 @@
1
- /* Generated by scripts/sync-shadcn.mjs. Do not edit: the demos are upstream's
2
- * own, and the sync rewrites this list. */
3
- import type { Component } from "svelte";
4
- import AccordionDemo from "./accordion.svelte";
5
- import AlertDemo from "./alert.svelte";
6
- import AlertDialogDemo from "./alert-dialog.svelte";
7
- import AttachmentDemo from "./attachment.svelte";
8
- import AvatarDemo from "./avatar.svelte";
9
- import BadgeDemo from "./badge.svelte";
10
- import BreadcrumbDemo from "./breadcrumb.svelte";
11
- import BubbleDemo from "./bubble.svelte";
12
- import ButtonDemo from "./button.svelte";
13
- import CalendarDemo from "./calendar.svelte";
14
- import CardDemo from "./card.svelte";
15
- import CheckboxDemo from "./checkbox.svelte";
16
- import CollapsibleDemo from "./collapsible.svelte";
17
- import CommandDemo from "./command.svelte";
18
- import ContextMenuDemo from "./context-menu.svelte";
19
- import DialogDemo from "./dialog.svelte";
20
- import DropdownMenuDemo from "./dropdown-menu.svelte";
21
- import EmptyDemo from "./empty.svelte";
22
- import FieldDemo from "./field.svelte";
23
- import HoverCardDemo from "./hover-card.svelte";
24
- import InputDemo from "./input.svelte";
25
- import InputOtpDemo from "./input-otp.svelte";
26
- import LabelDemo from "./label.svelte";
27
- import MarkerDemo from "./marker.svelte";
28
- import MessageDemo from "./message.svelte";
29
- import PopoverDemo from "./popover.svelte";
30
- import ProgressDemo from "./progress.svelte";
31
- import RadioGroupDemo from "./radio-group.svelte";
32
- import ScrollAreaDemo from "./scroll-area.svelte";
33
- import SelectDemo from "./select.svelte";
34
- import SeparatorDemo from "./separator.svelte";
35
- import SheetDemo from "./sheet.svelte";
36
- import SkeletonDemo from "./skeleton.svelte";
37
- import SliderDemo from "./slider.svelte";
38
- import SonnerDemo from "./sonner.svelte";
39
- import SpinnerDemo from "./spinner.svelte";
40
- import SwitchDemo from "./switch.svelte";
41
- import TableDemo from "./table.svelte";
42
- import TabsDemo from "./tabs.svelte";
43
- import TextareaDemo from "./textarea.svelte";
44
- import ToggleDemo from "./toggle.svelte";
45
- import ToggleGroupDemo from "./toggle-group.svelte";
46
- import TooltipDemo from "./tooltip.svelte";
47
-
48
- export type ShadcnDemo = {
49
- name: string;
50
- title: string;
51
- note: string;
52
- path: string;
53
- Comp: Component;
54
- };
55
-
56
- export const SHADCN_DEMOS: ShadcnDemo[] = [
57
- {
58
- name: "accordion",
59
- title: "Accordion",
60
- note: "A vertically stacked set of interactive headings that each reveal a section of content.",
61
- path: 'import * as Accordion from "@heyramzi/ui/shadcn/accordion";',
62
- Comp: AccordionDemo,
63
- },
64
- {
65
- name: "alert",
66
- title: "Alert",
67
- note: "Displays a callout for user attention.",
68
- path: 'import * as Alert from "@heyramzi/ui/shadcn/alert";',
69
- Comp: AlertDemo,
70
- },
71
- {
72
- name: "alert-dialog",
73
- title: "Alert Dialog",
74
- note: "A modal dialog that interrupts the user with important content and expects a response.",
75
- path: 'import * as AlertDialog from "@heyramzi/ui/shadcn/alert-dialog";\nimport { buttonVariants } from "@heyramzi/ui/shadcn/button";',
76
- Comp: AlertDialogDemo,
77
- },
78
- {
79
- name: "attachment",
80
- title: "Attachment",
81
- note: "Displays a file or image attachment with media, metadata, upload state, and actions.",
82
- path: 'import * as Attachment from "@heyramzi/ui/shadcn/attachment";\nimport { Spinner } from "@heyramzi/ui/shadcn/spinner";',
83
- Comp: AttachmentDemo,
84
- },
85
- {
86
- name: "avatar",
87
- title: "Avatar",
88
- note: "An image element with a fallback for representing the user.",
89
- path: 'import * as Avatar from "@heyramzi/ui/shadcn/avatar";',
90
- Comp: AvatarDemo,
91
- },
92
- {
93
- name: "badge",
94
- title: "Badge",
95
- note: "Displays a badge or a component that looks like a badge.",
96
- path: 'import { Badge } from "@heyramzi/ui/shadcn/badge";',
97
- Comp: BadgeDemo,
98
- },
99
- {
100
- name: "breadcrumb",
101
- title: "Breadcrumb",
102
- note: "Displays the path to the current resource using a hierarchy of links.",
103
- path: 'import * as Breadcrumb from "@heyramzi/ui/shadcn/breadcrumb";\nimport * as DropdownMenu from "@heyramzi/ui/shadcn/dropdown-menu";',
104
- Comp: BreadcrumbDemo,
105
- },
106
- {
107
- name: "bubble",
108
- title: "Bubble",
109
- note: "Displays conversational content in a message bubble. Supports variants, alignment, grouping, reactions, and collapsible content.",
110
- path: 'import * as Bubble from "@heyramzi/ui/shadcn/bubble";',
111
- Comp: BubbleDemo,
112
- },
113
- {
114
- name: "button",
115
- title: "Button",
116
- note: "Displays a button or a component that looks like a button.",
117
- path: 'import { Button } from "@heyramzi/ui/shadcn/button";',
118
- Comp: ButtonDemo,
119
- },
120
- {
121
- name: "calendar",
122
- title: "Calendar",
123
- note: "A calendar component that allows users to select a date or a range of dates.",
124
- path: 'import { Calendar } from "@heyramzi/ui/shadcn/calendar";',
125
- Comp: CalendarDemo,
126
- },
127
- {
128
- name: "card",
129
- title: "Card",
130
- note: "Displays a card with header, content, and footer.",
131
- path: 'import * as Card from "@heyramzi/ui/shadcn/card";\nimport { Button } from "@heyramzi/ui/shadcn/button";\nimport { Input } from "@heyramzi/ui/shadcn/input";\nimport { Label } from "@heyramzi/ui/shadcn/label";',
132
- Comp: CardDemo,
133
- },
134
- {
135
- name: "checkbox",
136
- title: "Checkbox",
137
- note: "A control that allows the user to toggle between checked and not checked.",
138
- path: 'import { Checkbox } from "@heyramzi/ui/shadcn/checkbox";\nimport { Label } from "@heyramzi/ui/shadcn/label";',
139
- Comp: CheckboxDemo,
140
- },
141
- {
142
- name: "collapsible",
143
- title: "Collapsible",
144
- note: "An interactive component which expands/collapses a panel.",
145
- path: 'import * as Collapsible from "@heyramzi/ui/shadcn/collapsible";\nimport { buttonVariants } from "@heyramzi/ui/shadcn/button";',
146
- Comp: CollapsibleDemo,
147
- },
148
- {
149
- name: "command",
150
- title: "Command",
151
- note: "Command menu for search and quick actions.",
152
- path: 'import * as Command from "@heyramzi/ui/shadcn/command";',
153
- Comp: CommandDemo,
154
- },
155
- {
156
- name: "context-menu",
157
- title: "Context Menu",
158
- note: "Displays a menu of actions triggered by a right click.",
159
- path: 'import * as ContextMenu from "@heyramzi/ui/shadcn/context-menu";',
160
- Comp: ContextMenuDemo,
161
- },
162
- {
163
- name: "dialog",
164
- title: "Dialog",
165
- note: "A window overlaid on either the primary window or another dialog window, rendering the content underneath inert.",
166
- path: 'import * as Dialog from "@heyramzi/ui/shadcn/dialog";\nimport { Button, buttonVariants } from "@heyramzi/ui/shadcn/button";\nimport { Input } from "@heyramzi/ui/shadcn/input";\nimport { Label } from "@heyramzi/ui/shadcn/label";',
167
- Comp: DialogDemo,
168
- },
169
- {
170
- name: "dropdown-menu",
171
- title: "Dropdown Menu",
172
- note: "Displays a menu to the user — such as a set of actions or functions — triggered by a button.",
173
- path: 'import * as DropdownMenu from "@heyramzi/ui/shadcn/dropdown-menu";\nimport { Button } from "@heyramzi/ui/shadcn/button";',
174
- Comp: DropdownMenuDemo,
175
- },
176
- {
177
- name: "empty",
178
- title: "Empty",
179
- note: "Use the Empty component to display an empty state.",
180
- path: 'import * as Empty from "@heyramzi/ui/shadcn/empty";\nimport { Button } from "@heyramzi/ui/shadcn/button";',
181
- Comp: EmptyDemo,
182
- },
183
- {
184
- name: "field",
185
- title: "Field",
186
- note: "Combine labels, controls, and help text to compose accessible form fields and grouped inputs.",
187
- path: 'import * as Field from "@heyramzi/ui/shadcn/field";\nimport * as Select from "@heyramzi/ui/shadcn/select";\nimport { Button } from "@heyramzi/ui/shadcn/button";\nimport { Checkbox } from "@heyramzi/ui/shadcn/checkbox";\nimport { Input } from "@heyramzi/ui/shadcn/input";\nimport { Textarea } from "@heyramzi/ui/shadcn/textarea";',
188
- Comp: FieldDemo,
189
- },
190
- {
191
- name: "hover-card",
192
- title: "Hover Card",
193
- note: "For sighted users to preview content available behind a link.",
194
- path: 'import * as Avatar from "@heyramzi/ui/shadcn/avatar";\nimport * as HoverCard from "@heyramzi/ui/shadcn/hover-card";',
195
- Comp: HoverCardDemo,
196
- },
197
- {
198
- name: "input",
199
- title: "Input",
200
- note: "A text input component for forms and user data entry with built-in styling and accessibility features.",
201
- path: 'import { Input } from "@heyramzi/ui/shadcn/input";',
202
- Comp: InputDemo,
203
- },
204
- {
205
- name: "input-otp",
206
- title: "Input OTP",
207
- note: "Accessible one-time password component with copy-paste functionality.",
208
- path: 'import * as InputOTP from "@heyramzi/ui/shadcn/input-otp";',
209
- Comp: InputOtpDemo,
210
- },
211
- {
212
- name: "label",
213
- title: "Label",
214
- note: "Renders an accessible label associated with controls.",
215
- path: 'import { Checkbox } from "@heyramzi/ui/shadcn/checkbox";\nimport { Label } from "@heyramzi/ui/shadcn/label";',
216
- Comp: LabelDemo,
217
- },
218
- {
219
- name: "marker",
220
- title: "Marker",
221
- note: "Displays an inline status, system note, bordered row, or labeled separator in a conversation.",
222
- path: 'import * as Marker from "@heyramzi/ui/shadcn/marker";\nimport { Spinner } from "@heyramzi/ui/shadcn/spinner";',
223
- Comp: MarkerDemo,
224
- },
225
- {
226
- name: "message",
227
- title: "Message",
228
- note: "Displays a message in a conversation, with optional avatar, header, footer, and alignment.",
229
- path: 'import * as Avatar from "@heyramzi/ui/shadcn/avatar";\nimport * as Bubble from "@heyramzi/ui/shadcn/bubble";\nimport * as Marker from "@heyramzi/ui/shadcn/marker";\nimport * as Message from "@heyramzi/ui/shadcn/message";',
230
- Comp: MessageDemo,
231
- },
232
- {
233
- name: "popover",
234
- title: "Popover",
235
- note: "Displays rich content in a portal, triggered by a button.",
236
- path: 'import * as Popover from "@heyramzi/ui/shadcn/popover";\nimport { buttonVariants } from "@heyramzi/ui/shadcn/button";\nimport { Input } from "@heyramzi/ui/shadcn/input";\nimport { Label } from "@heyramzi/ui/shadcn/label";',
237
- Comp: PopoverDemo,
238
- },
239
- {
240
- name: "progress",
241
- title: "Progress",
242
- note: "Displays an indicator showing the completion progress of a task, typically displayed as a progress bar.",
243
- path: 'import { Progress } from "@heyramzi/ui/shadcn/progress";',
244
- Comp: ProgressDemo,
245
- },
246
- {
247
- name: "radio-group",
248
- title: "Radio Group",
249
- note: "A set of checkable buttons—known as radio buttons—where no more than one of the buttons can be checked at a time.",
250
- path: 'import * as RadioGroup from "@heyramzi/ui/shadcn/radio-group";\nimport { Label } from "@heyramzi/ui/shadcn/label";',
251
- Comp: RadioGroupDemo,
252
- },
253
- {
254
- name: "scroll-area",
255
- title: "Scroll Area",
256
- note: "Augments native scroll functionality for custom, cross-browser styling.",
257
- path: 'import { ScrollArea } from "@heyramzi/ui/shadcn/scroll-area";\nimport { Separator } from "@heyramzi/ui/shadcn/separator";',
258
- Comp: ScrollAreaDemo,
259
- },
260
- {
261
- name: "select",
262
- title: "Select",
263
- note: "Displays a list of options for the user to pick from—triggered by a button.",
264
- path: 'import * as Select from "@heyramzi/ui/shadcn/select";',
265
- Comp: SelectDemo,
266
- },
267
- {
268
- name: "separator",
269
- title: "Separator",
270
- note: "Visually or semantically separates content.",
271
- path: 'import { Separator } from "@heyramzi/ui/shadcn/separator";',
272
- Comp: SeparatorDemo,
273
- },
274
- {
275
- name: "sheet",
276
- title: "Sheet",
277
- note: "Extends the Dialog component to display content that complements the main content of the screen.",
278
- path: 'import * as Sheet from "@heyramzi/ui/shadcn/sheet";\nimport { Button } from "@heyramzi/ui/shadcn/button";\nimport { buttonVariants } from "@heyramzi/ui/shadcn/button";\nimport { Input } from "@heyramzi/ui/shadcn/input";\nimport { Label } from "@heyramzi/ui/shadcn/label";',
279
- Comp: SheetDemo,
280
- },
281
- {
282
- name: "skeleton",
283
- title: "Skeleton",
284
- note: "Use to show a placeholder while content is loading.",
285
- path: 'import { Skeleton } from "@heyramzi/ui/shadcn/skeleton";',
286
- Comp: SkeletonDemo,
287
- },
288
- {
289
- name: "slider",
290
- title: "Slider",
291
- note: "An input where the user selects a value from within a given range.",
292
- path: 'import { Slider } from "@heyramzi/ui/shadcn/slider";',
293
- Comp: SliderDemo,
294
- },
295
- {
296
- name: "sonner",
297
- title: "Sonner",
298
- note: "An opinionated toast component for Svelte.",
299
- path: 'import { Button } from "@heyramzi/ui/shadcn/button";',
300
- Comp: SonnerDemo,
301
- },
302
- {
303
- name: "spinner",
304
- title: "Spinner",
305
- note: "An indicator that can be used to show a loading state.",
306
- path: 'import { Spinner } from "@heyramzi/ui/shadcn/spinner";',
307
- Comp: SpinnerDemo,
308
- },
309
- {
310
- name: "switch",
311
- title: "Switch",
312
- note: "A control that allows the user to toggle between checked and not checked.",
313
- path: 'import { Label } from "@heyramzi/ui/shadcn/label";\nimport { Switch } from "@heyramzi/ui/shadcn/switch";',
314
- Comp: SwitchDemo,
315
- },
316
- {
317
- name: "table",
318
- title: "Table",
319
- note: "A responsive table component.",
320
- path: 'import * as Table from "@heyramzi/ui/shadcn/table";',
321
- Comp: TableDemo,
322
- },
323
- {
324
- name: "tabs",
325
- title: "Tabs",
326
- note: "A set of layered sections of content—known as tab panels—that are displayed one at a time.",
327
- path: 'import * as Card from "@heyramzi/ui/shadcn/card";\nimport * as Tabs from "@heyramzi/ui/shadcn/tabs";\nimport { Button } from "@heyramzi/ui/shadcn/button";\nimport { Input } from "@heyramzi/ui/shadcn/input";\nimport { Label } from "@heyramzi/ui/shadcn/label";',
328
- Comp: TabsDemo,
329
- },
330
- {
331
- name: "textarea",
332
- title: "Textarea",
333
- note: "Displays a form textarea or a component that looks like a textarea.",
334
- path: 'import { Textarea } from "@heyramzi/ui/shadcn/textarea";',
335
- Comp: TextareaDemo,
336
- },
337
- {
338
- name: "toggle",
339
- title: "Toggle",
340
- note: "A two-state button that can be either on or off.",
341
- path: 'import { Toggle } from "@heyramzi/ui/shadcn/toggle";',
342
- Comp: ToggleDemo,
343
- },
344
- {
345
- name: "toggle-group",
346
- title: "Toggle Group",
347
- note: "A set of two-state buttons that can be toggled on or off.",
348
- path: 'import * as ToggleGroup from "@heyramzi/ui/shadcn/toggle-group";',
349
- Comp: ToggleGroupDemo,
350
- },
351
- {
352
- name: "tooltip",
353
- title: "Tooltip",
354
- note: "A popup that displays information related to an element when the element receives keyboard focus or the mouse hovers over it.",
355
- path: 'import * as Tooltip from "@heyramzi/ui/shadcn/tooltip";\nimport { buttonVariants } from "@heyramzi/ui/shadcn/button";',
356
- Comp: TooltipDemo,
357
- },
358
- ];
@@ -1,19 +0,0 @@
1
- <script lang="ts">
2
- import * as InputOTP from "../../../shadcn/input-otp/index.js";
3
- </script>
4
-
5
- <InputOTP.Root maxlength={6}>
6
- {#snippet children({ cells })}
7
- <InputOTP.Group>
8
- {#each cells.slice(0, 3) as cell (cell)}
9
- <InputOTP.Slot {cell} />
10
- {/each}
11
- </InputOTP.Group>
12
- <InputOTP.Separator />
13
- <InputOTP.Group>
14
- {#each cells.slice(3, 6) as cell (cell)}
15
- <InputOTP.Slot {cell} />
16
- {/each}
17
- </InputOTP.Group>
18
- {/snippet}
19
- </InputOTP.Root>
@@ -1,5 +0,0 @@
1
- <script lang="ts">
2
- import { Input } from "../../../shadcn/input/index.js";
3
- </script>
4
-
5
- <Input type="email" placeholder="Email" class="max-w-xs" />
@@ -1,11 +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>
7
- <div class="flex items-center space-x-2">
8
- <Checkbox id="terms" />
9
- <Label for="terms">Accept terms and conditions</Label>
10
- </div>
11
- </div>
@@ -1,30 +0,0 @@
1
- <script lang="ts">
2
- import GitBranchIcon from "@lucide/svelte/icons/git-branch";
3
- import SearchIcon from "@lucide/svelte/icons/search";
4
- import * as Marker from "../../../shadcn/marker/index.js";
5
- import { Spinner } from "../../../shadcn/spinner/index.js";
6
- </script>
7
-
8
- <div class="flex w-full max-w-sm flex-col gap-8 py-12">
9
- <Marker.Root>
10
- <Marker.Icon>
11
- <GitBranchIcon />
12
- </Marker.Icon>
13
- <Marker.Content>Switched to a new branch</Marker.Content>
14
- </Marker.Root>
15
- <Marker.Root role="status">
16
- <Marker.Icon>
17
- <Spinner />
18
- </Marker.Icon>
19
- <Marker.Content class="shimmer">Thinking...</Marker.Content>
20
- </Marker.Root>
21
- <Marker.Root variant="separator">
22
- <Marker.Content>Conversation compacted</Marker.Content>
23
- </Marker.Root>
24
- <Marker.Root>
25
- <Marker.Icon>
26
- <SearchIcon />
27
- </Marker.Icon>
28
- <Marker.Content>Explored 4 files</Marker.Content>
29
- </Marker.Root>
30
- </div>
@@ -1,75 +0,0 @@
1
- <script lang="ts">
2
- import * as Avatar from "../../../shadcn/avatar/index.js";
3
- import * as Bubble from "../../../shadcn/bubble/index.js";
4
- import * as Marker from "../../../shadcn/marker/index.js";
5
- import * as Message from "../../../shadcn/message/index.js";
6
- </script>
7
-
8
- <div class="flex w-full max-w-sm flex-col gap-6 py-12">
9
- <Message.Root align="end">
10
- <Message.Avatar>
11
- <Avatar.Root>
12
- <Avatar.Image src="/avatars/10.png" alt="@me" />
13
- <Avatar.Fallback>ME</Avatar.Fallback>
14
- </Avatar.Root>
15
- </Message.Avatar>
16
- <Message.Content>
17
- <Bubble.Root>
18
- <Bubble.Content>Deploying to prod real quick.</Bubble.Content>
19
- </Bubble.Root>
20
- </Message.Content>
21
- </Message.Root>
22
- <Message.Root>
23
- <Message.Avatar>
24
- <Avatar.Root>
25
- <Avatar.Image src="/avatars/02.png" alt="@rabbit" />
26
- <Avatar.Fallback>R</Avatar.Fallback>
27
- </Avatar.Root>
28
- </Message.Avatar>
29
- <Message.Content>
30
- <Bubble.Root variant="muted">
31
- <Bubble.Content>It's 4:55 PM. On a Friday.</Bubble.Content>
32
- </Bubble.Root>
33
- </Message.Content>
34
- </Message.Root>
35
- <Message.Root align="end">
36
- <Message.Avatar>
37
- <Avatar.Root>
38
- <Avatar.Image src="/avatars/10.png" alt="@me" />
39
- <Avatar.Fallback>ME</Avatar.Fallback>
40
- </Avatar.Root>
41
- </Message.Avatar>
42
- <Message.Content>
43
- <Bubble.Root>
44
- <Bubble.Content>It's a one-line change.</Bubble.Content>
45
- </Bubble.Root>
46
- <Message.Footer>Delivered</Message.Footer>
47
- </Message.Content>
48
- </Message.Root>
49
- <Message.Root>
50
- <Message.Avatar>
51
- <Avatar.Root>
52
- <Avatar.Image src="/avatars/02.png" alt="@rabbit" />
53
- <Avatar.Fallback>R</Avatar.Fallback>
54
- </Avatar.Root>
55
- </Message.Avatar>
56
- <Message.Content>
57
- <Bubble.Group>
58
- <Bubble.Root variant="muted">
59
- <Bubble.Content>It's always a one-line change 😭.</Bubble.Content>
60
- </Bubble.Root>
61
- <Bubble.Root variant="muted">
62
- <Bubble.Content>Alright, let me take a look.</Bubble.Content>
63
- <Bubble.Reactions aria-label="Reactions: thumbs up">
64
- <span>👍</span>
65
- </Bubble.Reactions>
66
- </Bubble.Root>
67
- </Bubble.Group>
68
- </Message.Content>
69
- </Message.Root>
70
- <Marker.Root role="status">
71
- <Marker.Content class="shimmer">
72
- <span class="font-medium">Oliver</span> is typing...
73
- </Marker.Content>
74
- </Marker.Root>
75
- </div>