@dryui/ui 2.0.2 → 4.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 (1078) hide show
  1. package/dist/accordion/accordion-button-trigger.svelte +1 -0
  2. package/dist/accordion/accordion-root.svelte +1 -1
  3. package/dist/adjust/adjust.svelte +12 -8
  4. package/dist/alpha-slider/alpha-slider-input.svelte +14 -13
  5. package/dist/app-frame/app-frame.svelte +4 -1
  6. package/dist/aspect-ratio/aspect-ratio.svelte +7 -6
  7. package/dist/aurora/aurora.svelte +144 -81
  8. package/dist/avatar/avatar.svelte +22 -15
  9. package/dist/badge/badge.svelte +8 -16
  10. package/dist/beam/beam.svelte +20 -21
  11. package/dist/button/button.svelte +47 -25
  12. package/dist/button/button.svelte.d.ts +14 -0
  13. package/dist/button-group/button-group.svelte +4 -5
  14. package/dist/calendar/calendar-button-grid.svelte +11 -4
  15. package/dist/calendar/calendar-button-grid.svelte.d.ts +2 -2
  16. package/dist/calendar/calendar-event-legend.svelte +63 -0
  17. package/dist/calendar/calendar-event-legend.svelte.d.ts +6 -0
  18. package/dist/calendar/calendar-header.svelte +3 -1
  19. package/dist/calendar/calendar-heading.svelte +21 -9
  20. package/dist/calendar/calendar-nav-button.svelte +15 -2
  21. package/dist/calendar/calendar-root.svelte +94 -11
  22. package/dist/calendar/calendar-root.svelte.d.ts +10 -1
  23. package/dist/calendar/calendar-week.svelte +515 -0
  24. package/dist/calendar/calendar-week.svelte.d.ts +12 -0
  25. package/dist/calendar/calendar.meta.js +2 -2
  26. package/dist/calendar/context.svelte.d.ts +19 -0
  27. package/dist/calendar/index.d.ts +11 -1
  28. package/dist/calendar/index.js +5 -1
  29. package/dist/calendar/types.d.ts +32 -0
  30. package/dist/calendar/types.js +1 -0
  31. package/dist/calendar/week-utils.d.ts +12 -0
  32. package/dist/calendar/week-utils.js +133 -0
  33. package/dist/carousel/carousel-button-dots.svelte +12 -6
  34. package/dist/carousel/carousel-root.svelte +201 -17
  35. package/dist/carousel/carousel-root.svelte.d.ts +1 -1
  36. package/dist/carousel/carousel-viewport.svelte +19 -1
  37. package/dist/chart/chart-bars.svelte +43 -19
  38. package/dist/chart/chart-donut.svelte +50 -23
  39. package/dist/chart/chart-root.svelte +19 -4
  40. package/dist/chart/chart-stacked-bar.svelte +3 -2
  41. package/dist/chart/series-color.d.ts +7 -0
  42. package/dist/chart/series-color.js +11 -0
  43. package/dist/chat-thread/chat-thread.svelte +15 -126
  44. package/dist/chat-thread/chat-thread.svelte.d.ts +4 -7
  45. package/dist/chat-thread/index.d.ts +4 -7
  46. package/dist/checkbox/checkbox-input.svelte +48 -41
  47. package/dist/chip/chip-button.svelte +14 -17
  48. package/dist/chip/chip-button.svelte.d.ts +2 -3
  49. package/dist/chip-group/chip-group-root.svelte +6 -4
  50. package/dist/chromatic-aberration/chromatic-aberration.svelte +9 -6
  51. package/dist/chromatic-shift/chromatic-shift.svelte +7 -8
  52. package/dist/code-block/code-block-button.svelte +72 -40
  53. package/dist/color-picker/color-picker-area.svelte +20 -25
  54. package/dist/color-picker/color-picker-channel-input.svelte +0 -1
  55. package/dist/color-picker/color-picker-input-hue-slider.svelte +12 -9
  56. package/dist/color-picker/color-picker-root.svelte +18 -17
  57. package/dist/color-picker/color-picker-swatch.svelte +17 -16
  58. package/dist/combobox/combobox-content.svelte +4 -15
  59. package/dist/combobox/combobox-input-root.svelte +6 -3
  60. package/dist/combobox/combobox-input-root.svelte.d.ts +2 -1
  61. package/dist/combobox/combobox-input.svelte +13 -10
  62. package/dist/combobox/combobox-item.svelte +9 -4
  63. package/dist/command-palette/command-palette-dialog-root.svelte +1 -0
  64. package/dist/command-palette/command-palette-item.svelte +7 -4
  65. package/dist/context-menu/context-menu-content.svelte +7 -15
  66. package/dist/data-grid/data-grid-button-input-column.svelte +2 -2
  67. package/dist/data-grid/data-grid-cell.svelte +1 -1
  68. package/dist/data-grid/data-grid-input-select-all.svelte +1 -1
  69. package/dist/data-grid/data-grid-input-select-cell.svelte +1 -1
  70. package/dist/date-field/date-field-segment.svelte +10 -12
  71. package/dist/date-picker/datepicker-button-calendar.svelte +2 -2
  72. package/dist/date-picker/datepicker-button-calendar.svelte.d.ts +2 -2
  73. package/dist/date-picker/index.d.ts +4 -1
  74. package/dist/date-range-picker/date-range-picker-button-calendar.svelte +2 -2
  75. package/dist/date-range-picker/date-range-picker-button-calendar.svelte.d.ts +2 -2
  76. package/dist/date-range-picker/date-range-picker-button-trigger.svelte +151 -40
  77. package/dist/date-range-picker/date-range-picker-button-trigger.svelte.d.ts +1 -0
  78. package/dist/date-range-picker/index.d.ts +4 -1
  79. package/dist/diagram/edge-routing.js +18 -7
  80. package/dist/diagram/layout.js +31 -16
  81. package/dist/displacement/displacement.svelte +29 -43
  82. package/dist/drag-and-drop/drag-and-drop-root.svelte +17 -5
  83. package/dist/drag-and-drop/index.d.ts +14 -1
  84. package/dist/drop-zone/drop-zone.svelte +7 -4
  85. package/dist/dropdown-menu/dropdown-menu-content.svelte +15 -16
  86. package/dist/field/field-description.svelte +6 -9
  87. package/dist/field/field-error.svelte +6 -10
  88. package/dist/file-select/file-select-root.svelte +77 -22
  89. package/dist/file-select/file-select-root.svelte.d.ts +4 -1
  90. package/dist/file-upload/file-upload-dropzone.svelte +21 -21
  91. package/dist/file-upload/file-upload-item.svelte +1 -2
  92. package/dist/file-upload/file-upload-list.svelte +1 -1
  93. package/dist/flip-card/flip-card-root.svelte +2 -2
  94. package/dist/float-button/context.svelte.d.ts +2 -0
  95. package/dist/float-button/float-button-action.svelte +41 -11
  96. package/dist/float-button/float-button-root.svelte +52 -13
  97. package/dist/float-button/float-button-trigger.svelte +25 -12
  98. package/dist/format-bytes/format-bytes.svelte +2 -5
  99. package/dist/format-date/format-date.svelte +2 -6
  100. package/dist/format-number/format-number.svelte +2 -6
  101. package/dist/gauge/gauge.svelte +9 -2
  102. package/dist/glass/glass.svelte +4 -3
  103. package/dist/glow/glow.svelte +0 -5
  104. package/dist/god-rays/god-rays.svelte +6 -6
  105. package/dist/gradient-mesh/gradient-mesh.svelte +52 -44
  106. package/dist/halftone/halftone.svelte +17 -28
  107. package/dist/heading/heading.svelte +0 -6
  108. package/dist/hover-card/hover-card-content.svelte +8 -5
  109. package/dist/hover-card/hover-card.meta.js +2 -2
  110. package/dist/icon/icon.svelte +24 -13
  111. package/dist/icon/icon.svelte.d.ts +2 -2
  112. package/dist/icon-swap/icon-swap.svelte +4 -3
  113. package/dist/icon-swap/icon-swap.svelte.d.ts +2 -1
  114. package/dist/image/image.svelte +5 -13
  115. package/dist/image-comparison/image-comparison.svelte +39 -45
  116. package/dist/index.d.ts +3 -5
  117. package/dist/index.js +1 -2
  118. package/dist/input/input.svelte +88 -9
  119. package/dist/input/input.svelte.d.ts +24 -1
  120. package/dist/internal/anchored-overlay-content.svelte.d.ts +12 -6
  121. package/dist/internal/anchored-overlay-content.svelte.js +13 -16
  122. package/dist/internal/calendar-event-layout.d.ts +53 -0
  123. package/dist/internal/calendar-event-layout.js +191 -0
  124. package/dist/internal/calendar-grid-button.svelte +618 -76
  125. package/dist/internal/calendar-grid-button.svelte.d.ts +2 -2
  126. package/dist/internal/calendar-grid-utils.d.ts +3 -0
  127. package/dist/internal/calendar-grid-utils.js +24 -0
  128. package/dist/internal/form-control-wrapper-attrs.d.ts +9 -0
  129. package/dist/internal/form-control-wrapper-attrs.js +1 -0
  130. package/dist/internal/menu-item.svelte +1 -0
  131. package/dist/internal/modal-content.svelte +2 -6
  132. package/dist/internal/motion.d.ts +1 -1
  133. package/dist/internal/motion.js +5 -2
  134. package/dist/internal/picker-popover-content.svelte +15 -17
  135. package/dist/kbd/kbd.svelte +1 -1
  136. package/dist/link/link.svelte +8 -5
  137. package/dist/link-preview/link-preview-content.svelte +12 -15
  138. package/dist/link-preview/link-preview-trigger.svelte +2 -5
  139. package/dist/listbox/listbox-item.svelte +13 -18
  140. package/dist/listbox/listbox-root.svelte +4 -9
  141. package/dist/logo-mark/logo-mark.svelte +31 -31
  142. package/dist/map/map-marker.svelte +2 -2
  143. package/dist/map/map-root.svelte +11 -2
  144. package/dist/markdown-renderer/markdown-renderer.svelte +141 -164
  145. package/dist/marquee/marquee.svelte +12 -13
  146. package/dist/mask-reveal/mask-reveal.svelte +14 -27
  147. package/dist/mega-menu/mega-menu-column.svelte +1 -1
  148. package/dist/mega-menu/mega-menu-link.svelte +7 -7
  149. package/dist/mega-menu/mega-menu-panel.svelte +18 -32
  150. package/dist/menubar/menubar-content.svelte +18 -20
  151. package/dist/menubar/menubar-item.svelte +1 -0
  152. package/dist/menubar/menubar-menu.svelte +1 -2
  153. package/dist/menubar/menubar-root.svelte +1 -12
  154. package/dist/motion/enter.svelte +15 -14
  155. package/dist/motion/enter.svelte.d.ts +2 -1
  156. package/dist/motion/exit.svelte +6 -5
  157. package/dist/motion/exit.svelte.d.ts +2 -1
  158. package/dist/motion/stagger.svelte +10 -9
  159. package/dist/motion/stagger.svelte.d.ts +2 -1
  160. package/dist/multi-select-combobox/multi-select-combobox-content.svelte +4 -15
  161. package/dist/multi-select-combobox/multi-select-combobox-input.svelte +6 -5
  162. package/dist/multi-select-combobox/multi-select-combobox-item.svelte +25 -31
  163. package/dist/multi-select-combobox/multi-select-combobox-root-input.svelte +19 -19
  164. package/dist/navigation-menu/navigation-menu-link.svelte +0 -1
  165. package/dist/noise/noise.svelte +20 -19
  166. package/dist/notification-center/notification-center-item.svelte +1 -1
  167. package/dist/notification-center/notification-center-panel.svelte +17 -19
  168. package/dist/number-input/number-input-button.svelte +78 -12
  169. package/dist/number-input/number-input-button.svelte.d.ts +15 -1
  170. package/dist/numeric/numeric.svelte +27 -12
  171. package/dist/numeric/numeric.svelte.d.ts +2 -1
  172. package/dist/option-picker/option-picker-item.svelte +8 -15
  173. package/dist/option-picker/option-picker-preview.svelte +34 -22
  174. package/dist/pagination/pagination-root.svelte +7 -0
  175. package/dist/pin-input/pin-input-root.svelte +2 -11
  176. package/dist/popover/popover-content.svelte +7 -4
  177. package/dist/progress/progress.svelte +2 -2
  178. package/dist/prompt-input/prompt-input-button-textarea.svelte +2 -10
  179. package/dist/qr-code/qr-code.svelte +78 -38
  180. package/dist/qr-code/qr-code.svelte.d.ts +1 -1
  181. package/dist/radio-group/radio-group-item-input.svelte +60 -14
  182. package/dist/radio-group/radio-group-item-input.svelte.d.ts +9 -2
  183. package/dist/range-calendar/index.d.ts +4 -1
  184. package/dist/range-calendar/range-calendar-grid-button.svelte +2 -2
  185. package/dist/range-calendar/range-calendar-grid-button.svelte.d.ts +2 -2
  186. package/dist/relative-time/relative-time.svelte +15 -15
  187. package/dist/reveal/reveal.svelte +12 -24
  188. package/dist/rich-text-editor/rich-text-editor-content.svelte +0 -3
  189. package/dist/rich-text-editor/rich-text-editor-toolbar-button-input.svelte +0 -1
  190. package/dist/scroll-to-top/scroll-to-top-button.svelte +5 -3
  191. package/dist/scroll-to-top/scroll-to-top-button.svelte.d.ts +2 -2
  192. package/dist/segmented-control/segmented-control-root.svelte +0 -3
  193. package/dist/select/select-content.svelte +15 -16
  194. package/dist/select/select-item.svelte +1 -0
  195. package/dist/select/select-root-input.svelte +5 -4
  196. package/dist/select/select-root-input.svelte.d.ts +2 -2
  197. package/dist/select/select-trigger-button.svelte +122 -16
  198. package/dist/select/select-trigger-button.svelte.d.ts +2 -2
  199. package/dist/shader-canvas/shader-canvas.svelte +11 -20
  200. package/dist/shimmer/shimmer.svelte +28 -25
  201. package/dist/skeleton/skeleton.svelte +18 -23
  202. package/dist/slider/slider-input.svelte +8 -7
  203. package/dist/sparkline/sparkline.svelte +1 -1
  204. package/dist/splitter/splitter-handle.svelte +3 -3
  205. package/dist/splitter/splitter-root.svelte +13 -12
  206. package/dist/spotlight/spotlight.svelte +30 -62
  207. package/dist/star-rating/star-rating-root.svelte +3 -4
  208. package/dist/stepper/stepper-step-button.svelte +2 -2
  209. package/dist/table-of-contents/table-of-contents-root.svelte +5 -16
  210. package/dist/tabs/tabs-content.svelte +7 -1
  211. package/dist/tag/tag-button.svelte +70 -64
  212. package/dist/tags-input/tags-input-root.svelte +2 -10
  213. package/dist/text/index.d.ts +2 -3
  214. package/dist/text/text.svelte +6 -12
  215. package/dist/text/text.svelte.d.ts +2 -3
  216. package/dist/textarea/textarea.svelte +91 -16
  217. package/dist/textarea/textarea.svelte.d.ts +20 -1
  218. package/dist/themes/aurora.css +106 -112
  219. package/dist/themes/component-defaults.css +47 -0
  220. package/dist/themes/dark.css +49 -223
  221. package/dist/themes/default.css +45 -175
  222. package/dist/themes/midnight.css +50 -65
  223. package/dist/themes/terminal.css +40 -74
  224. package/dist/time-input/time-input.svelte +5 -3
  225. package/dist/time-input/time-input.svelte.d.ts +2 -2
  226. package/dist/timeline/timeline-title.svelte +0 -6
  227. package/dist/toast/toast-root.svelte +10 -10
  228. package/dist/toggle/toggle-button.svelte +17 -6
  229. package/dist/toggle-group/toggle-group-root.svelte +3 -3
  230. package/dist/token-scope/index.d.ts +6 -0
  231. package/dist/token-scope/index.js +1 -0
  232. package/dist/token-scope/token-scope.meta.js +7 -0
  233. package/dist/toolbar/toolbar-root.svelte +4 -5
  234. package/dist/tooltip/tooltip-content.svelte +24 -13
  235. package/dist/tour/tour-root.css +6 -2
  236. package/dist/transfer/transfer-list-input.svelte +1 -2
  237. package/dist/transfer/transfer-root.svelte +0 -10
  238. package/dist/tree/tree-item-label.svelte +0 -2
  239. package/dist/tree/tree-root.svelte +7 -5
  240. package/dist/typography/blockquote.svelte +2 -2
  241. package/dist/typography/code.svelte +2 -2
  242. package/dist/typography/heading.svelte +2 -2
  243. package/dist/typography/index.d.ts +0 -1
  244. package/dist/typography/text.svelte +2 -13
  245. package/dist/video-embed/video-embed-button.svelte +9 -9
  246. package/package.json +13 -12
  247. package/src/accordion/accordion-button-trigger.svelte +60 -0
  248. package/src/accordion/accordion-content.svelte +37 -0
  249. package/src/accordion/accordion-item.svelte +62 -0
  250. package/src/accordion/accordion-root.svelte +61 -0
  251. package/src/accordion/accordion.meta.ts +7 -0
  252. package/src/accordion/context.svelte.ts +19 -0
  253. package/src/accordion/index.ts +41 -0
  254. package/src/adjust/adjust.meta.ts +7 -0
  255. package/src/adjust/adjust.svelte +71 -0
  256. package/src/adjust/index.ts +20 -0
  257. package/src/alert/alert.meta.ts +7 -0
  258. package/src/alert/alert.svelte +174 -0
  259. package/src/alert/index.ts +18 -0
  260. package/src/alert-dialog/alert-dialog-body.svelte +23 -0
  261. package/src/alert-dialog/alert-dialog-button-action.svelte +15 -0
  262. package/src/alert-dialog/alert-dialog-button-cancel.svelte +18 -0
  263. package/src/alert-dialog/alert-dialog-content.svelte +26 -0
  264. package/src/alert-dialog/alert-dialog-footer.svelte +29 -0
  265. package/src/alert-dialog/alert-dialog-header.svelte +26 -0
  266. package/src/alert-dialog/alert-dialog-overlay.svelte +34 -0
  267. package/src/alert-dialog/alert-dialog-root.svelte +31 -0
  268. package/src/alert-dialog/alert-dialog-trigger.svelte +56 -0
  269. package/src/alert-dialog/alert-dialog.meta.ts +7 -0
  270. package/src/alert-dialog/context.svelte.ts +11 -0
  271. package/src/alert-dialog/index.ts +43 -0
  272. package/src/alpha-slider/alpha-slider-input.svelte +165 -0
  273. package/src/alpha-slider/alpha-slider.meta.ts +7 -0
  274. package/src/alpha-slider/index.ts +10 -0
  275. package/src/app-frame/app-frame.meta.ts +8 -0
  276. package/src/app-frame/app-frame.svelte +141 -0
  277. package/src/app-frame/index.ts +10 -0
  278. package/src/aspect-ratio/aspect-ratio.meta.ts +7 -0
  279. package/src/aspect-ratio/aspect-ratio.svelte +29 -0
  280. package/src/aspect-ratio/index.ts +9 -0
  281. package/src/aurora/aurora.meta.ts +8 -0
  282. package/src/aurora/aurora.svelte +526 -0
  283. package/src/aurora/index.ts +24 -0
  284. package/src/avatar/avatar.meta.ts +7 -0
  285. package/src/avatar/avatar.svelte +213 -0
  286. package/src/avatar/index.ts +15 -0
  287. package/src/backdrop/backdrop.meta.ts +7 -0
  288. package/src/backdrop/backdrop.svelte +51 -0
  289. package/src/backdrop/index.ts +3 -0
  290. package/src/badge/badge.meta.ts +7 -0
  291. package/src/badge/badge.svelte +338 -0
  292. package/src/badge/index.ts +12 -0
  293. package/src/beam/beam.meta.ts +8 -0
  294. package/src/beam/beam.svelte +118 -0
  295. package/src/beam/index.ts +17 -0
  296. package/src/border-beam/border-beam.meta.ts +8 -0
  297. package/src/border-beam/border-beam.svelte +42 -0
  298. package/src/border-beam/index.ts +10 -0
  299. package/src/breadcrumb/breadcrumb-item.svelte +23 -0
  300. package/src/breadcrumb/breadcrumb-link.svelte +60 -0
  301. package/src/breadcrumb/breadcrumb-list.svelte +28 -0
  302. package/src/breadcrumb/breadcrumb-root.svelte +14 -0
  303. package/src/breadcrumb/breadcrumb-separator.svelte +25 -0
  304. package/src/breadcrumb/breadcrumb.meta.ts +7 -0
  305. package/src/breadcrumb/index.ts +44 -0
  306. package/src/button/button.meta.ts +7 -0
  307. package/src/button/button.svelte +675 -0
  308. package/src/button/index.ts +29 -0
  309. package/src/button-group/button-group.meta.ts +7 -0
  310. package/src/button-group/button-group.svelte +61 -0
  311. package/src/button-group/context.svelte.ts +15 -0
  312. package/src/button-group/index.ts +7 -0
  313. package/src/calendar/calendar-button-grid.svelte +58 -0
  314. package/src/calendar/calendar-button-next.svelte +13 -0
  315. package/src/calendar/calendar-button-prev.svelte +13 -0
  316. package/src/calendar/calendar-event-legend.svelte +63 -0
  317. package/src/calendar/calendar-header.svelte +28 -0
  318. package/src/calendar/calendar-heading.svelte +42 -0
  319. package/src/calendar/calendar-nav-button.svelte +39 -0
  320. package/src/calendar/calendar-root.svelte +211 -0
  321. package/src/calendar/calendar-week.svelte +515 -0
  322. package/src/calendar/calendar.meta.ts +7 -0
  323. package/src/calendar/context.svelte.ts +43 -0
  324. package/src/calendar/index.ts +57 -0
  325. package/src/calendar/types.ts +39 -0
  326. package/src/calendar/week-utils.ts +175 -0
  327. package/src/carousel/carousel-button-dots.svelte +74 -0
  328. package/src/carousel/carousel-button-next.svelte +13 -0
  329. package/src/carousel/carousel-button-prev.svelte +13 -0
  330. package/src/carousel/carousel-button-thumbnails.svelte +82 -0
  331. package/src/carousel/carousel-nav-button.svelte +31 -0
  332. package/src/carousel/carousel-root.svelte +432 -0
  333. package/src/carousel/carousel-slide.svelte +39 -0
  334. package/src/carousel/carousel-viewport.svelte +91 -0
  335. package/src/carousel/carousel.meta.ts +7 -0
  336. package/src/carousel/context.svelte.ts +22 -0
  337. package/src/carousel/index.ts +35 -0
  338. package/src/chart/chart-area.svelte +76 -0
  339. package/src/chart/chart-bars.svelte +102 -0
  340. package/src/chart/chart-donut.svelte +145 -0
  341. package/src/chart/chart-horizontal-bar.svelte +67 -0
  342. package/src/chart/chart-line.svelte +66 -0
  343. package/src/chart/chart-root.svelte +257 -0
  344. package/src/chart/chart-stacked-bar.svelte +77 -0
  345. package/src/chart/chart-x-axis.svelte +50 -0
  346. package/src/chart/chart-y-axis.svelte +71 -0
  347. package/src/chart/chart.meta.ts +7 -0
  348. package/src/chart/context.svelte.ts +29 -0
  349. package/src/chart/index.ts +86 -0
  350. package/src/chart/series-color.ts +12 -0
  351. package/src/chat-thread/chat-thread.meta.ts +7 -0
  352. package/src/chat-thread/chat-thread.svelte +97 -0
  353. package/src/chat-thread/index.ts +10 -0
  354. package/src/checkbox/checkbox-input.svelte +259 -0
  355. package/src/checkbox/checkbox.meta.ts +7 -0
  356. package/src/checkbox/index.ts +7 -0
  357. package/src/chip/chip-button.svelte +170 -0
  358. package/src/chip/chip.meta.ts +7 -0
  359. package/src/chip/index.ts +29 -0
  360. package/src/chip-group/chip-group-button-item.svelte +36 -0
  361. package/src/chip-group/chip-group-label.svelte +26 -0
  362. package/src/chip-group/chip-group-root.svelte +129 -0
  363. package/src/chip-group/chip-group.meta.ts +19 -0
  364. package/src/chip-group/context.svelte.ts +11 -0
  365. package/src/chip-group/index.ts +26 -0
  366. package/src/chromatic-aberration/chromatic-aberration.meta.ts +7 -0
  367. package/src/chromatic-aberration/chromatic-aberration.svelte +75 -0
  368. package/src/chromatic-aberration/index.ts +10 -0
  369. package/src/chromatic-shift/chromatic-shift.meta.ts +7 -0
  370. package/src/chromatic-shift/chromatic-shift.svelte +226 -0
  371. package/src/chromatic-shift/index.ts +5 -0
  372. package/src/clipboard/clipboard.meta.ts +7 -0
  373. package/src/clipboard/clipboard.svelte +38 -0
  374. package/src/clipboard/index.ts +3 -0
  375. package/src/code-block/code-block-button.svelte +371 -0
  376. package/src/code-block/code-block.meta.ts +7 -0
  377. package/src/code-block/highlighter/css.ts +387 -0
  378. package/src/code-block/highlighter/generic.ts +24 -0
  379. package/src/code-block/highlighter/index.ts +30 -0
  380. package/src/code-block/highlighter/svelte.ts +597 -0
  381. package/src/code-block/highlighter/types.ts +7 -0
  382. package/src/code-block/index.ts +11 -0
  383. package/src/collapsible/collapsible-button-trigger.svelte +50 -0
  384. package/src/collapsible/collapsible-content.svelte +57 -0
  385. package/src/collapsible/collapsible-root.svelte +48 -0
  386. package/src/collapsible/collapsible.meta.ts +7 -0
  387. package/src/collapsible/context.svelte.ts +10 -0
  388. package/src/collapsible/index.ts +30 -0
  389. package/src/color-picker/color-picker-area.svelte +181 -0
  390. package/src/color-picker/color-picker-button-eyedropper.svelte +61 -0
  391. package/src/color-picker/color-picker-channel-input.svelte +85 -0
  392. package/src/color-picker/color-picker-input-alpha-slider.svelte +144 -0
  393. package/src/color-picker/color-picker-input-hue-slider.svelte +146 -0
  394. package/src/color-picker/color-picker-input.svelte +129 -0
  395. package/src/color-picker/color-picker-root.svelte +185 -0
  396. package/src/color-picker/color-picker-swatch.svelte +116 -0
  397. package/src/color-picker/color-picker.meta.ts +7 -0
  398. package/src/color-picker/context.svelte.ts +19 -0
  399. package/src/color-picker/index.ts +45 -0
  400. package/src/combobox/combobox-content.svelte +124 -0
  401. package/src/combobox/combobox-empty.svelte +23 -0
  402. package/src/combobox/combobox-group.svelte +35 -0
  403. package/src/combobox/combobox-input-root.svelte +109 -0
  404. package/src/combobox/combobox-input.svelte +348 -0
  405. package/src/combobox/combobox-item.svelte +150 -0
  406. package/src/combobox/combobox.meta.ts +7 -0
  407. package/src/combobox/context.svelte.ts +22 -0
  408. package/src/combobox/index.ts +44 -0
  409. package/src/command-palette/command-palette-dialog-root.svelte +184 -0
  410. package/src/command-palette/command-palette-empty.svelte +30 -0
  411. package/src/command-palette/command-palette-group.svelte +37 -0
  412. package/src/command-palette/command-palette-input.svelte +91 -0
  413. package/src/command-palette/command-palette-item.svelte +100 -0
  414. package/src/command-palette/command-palette-list.svelte +52 -0
  415. package/src/command-palette/command-palette-separator.svelte +17 -0
  416. package/src/command-palette/command-palette.meta.ts +7 -0
  417. package/src/command-palette/context.svelte.ts +19 -0
  418. package/src/command-palette/index.ts +35 -0
  419. package/src/container/container.meta.ts +7 -0
  420. package/src/container/container.svelte +66 -0
  421. package/src/container/index.ts +10 -0
  422. package/src/context-menu/context-menu-content.svelte +114 -0
  423. package/src/context-menu/context-menu-group.svelte +15 -0
  424. package/src/context-menu/context-menu-item.svelte +27 -0
  425. package/src/context-menu/context-menu-label.svelte +15 -0
  426. package/src/context-menu/context-menu-root.svelte +26 -0
  427. package/src/context-menu/context-menu-separator.svelte +10 -0
  428. package/src/context-menu/context-menu-trigger.svelte +35 -0
  429. package/src/context-menu/context-menu.meta.ts +7 -0
  430. package/src/context-menu/context.svelte.ts +7 -0
  431. package/src/context-menu/index.ts +35 -0
  432. package/src/data-grid/context.svelte.ts +28 -0
  433. package/src/data-grid/data-grid-body.svelte +17 -0
  434. package/src/data-grid/data-grid-button-expand-trigger.svelte +45 -0
  435. package/src/data-grid/data-grid-button-input-column.svelte +263 -0
  436. package/src/data-grid/data-grid-button-pagination.svelte +130 -0
  437. package/src/data-grid/data-grid-cell.svelte +37 -0
  438. package/src/data-grid/data-grid-expandable-row.svelte +58 -0
  439. package/src/data-grid/data-grid-header.svelte +21 -0
  440. package/src/data-grid/data-grid-input-select-all.svelte +52 -0
  441. package/src/data-grid/data-grid-input-select-cell.svelte +40 -0
  442. package/src/data-grid/data-grid-root.svelte +229 -0
  443. package/src/data-grid/data-grid-row.svelte +38 -0
  444. package/src/data-grid/data-grid-table.svelte +21 -0
  445. package/src/data-grid/data-grid.meta.ts +7 -0
  446. package/src/data-grid/index.ts +75 -0
  447. package/src/date-field/context.svelte.ts +50 -0
  448. package/src/date-field/date-field-input-root.svelte +284 -0
  449. package/src/date-field/date-field-segment.svelte +180 -0
  450. package/src/date-field/date-field-separator.svelte +25 -0
  451. package/src/date-field/date-field.meta.ts +7 -0
  452. package/src/date-field/index.ts +23 -0
  453. package/src/date-picker/context.svelte.ts +27 -0
  454. package/src/date-picker/date-picker.meta.ts +7 -0
  455. package/src/date-picker/datepicker-button-calendar.svelte +58 -0
  456. package/src/date-picker/datepicker-button-trigger.svelte +72 -0
  457. package/src/date-picker/datepicker-content.svelte +35 -0
  458. package/src/date-picker/datepicker-input-root.svelte +137 -0
  459. package/src/date-picker/index.ts +27 -0
  460. package/src/date-range-picker/context.svelte.ts +30 -0
  461. package/src/date-range-picker/date-range-picker-button-calendar.svelte +96 -0
  462. package/src/date-range-picker/date-range-picker-button-preset.svelte +25 -0
  463. package/src/date-range-picker/date-range-picker-button-trigger.svelte +188 -0
  464. package/src/date-range-picker/date-range-picker-content.svelte +35 -0
  465. package/src/date-range-picker/date-range-picker-root.svelte +155 -0
  466. package/src/date-range-picker/date-range-picker.meta.ts +7 -0
  467. package/src/date-range-picker/index.ts +30 -0
  468. package/src/date-time-input/date-time-input.meta.ts +7 -0
  469. package/src/date-time-input/date-time-input.svelte +104 -0
  470. package/src/date-time-input/index.ts +7 -0
  471. package/src/description-list/description-list-description.svelte +23 -0
  472. package/src/description-list/description-list-item.svelte +34 -0
  473. package/src/description-list/description-list-root.svelte +22 -0
  474. package/src/description-list/description-list-term.svelte +23 -0
  475. package/src/description-list/description-list.meta.ts +7 -0
  476. package/src/description-list/index.ts +35 -0
  477. package/src/diagram/diagram.meta.ts +8 -0
  478. package/src/diagram/diagram.svelte +966 -0
  479. package/src/diagram/edge-routing.ts +782 -0
  480. package/src/diagram/index.ts +23 -0
  481. package/src/diagram/layout.ts +2024 -0
  482. package/src/diagram/types.ts +262 -0
  483. package/src/dialog/context.svelte.ts +10 -0
  484. package/src/dialog/dialog-body.svelte +23 -0
  485. package/src/dialog/dialog-close.svelte +18 -0
  486. package/src/dialog/dialog-content.svelte +18 -0
  487. package/src/dialog/dialog-footer.svelte +35 -0
  488. package/src/dialog/dialog-header.svelte +26 -0
  489. package/src/dialog/dialog-overlay.svelte +28 -0
  490. package/src/dialog/dialog-root.svelte +31 -0
  491. package/src/dialog/dialog-trigger.svelte +56 -0
  492. package/src/dialog/dialog.meta.ts +7 -0
  493. package/src/dialog/index.ts +39 -0
  494. package/src/displacement/displacement.meta.ts +7 -0
  495. package/src/displacement/displacement.svelte +139 -0
  496. package/src/displacement/index.ts +5 -0
  497. package/src/drag-and-drop/context.svelte.ts +21 -0
  498. package/src/drag-and-drop/drag-and-drop-group.svelte +37 -0
  499. package/src/drag-and-drop/drag-and-drop-handle.svelte +106 -0
  500. package/src/drag-and-drop/drag-and-drop-item.svelte +151 -0
  501. package/src/drag-and-drop/drag-and-drop-root.svelte +876 -0
  502. package/src/drag-and-drop/drag-and-drop.meta.ts +7 -0
  503. package/src/drag-and-drop/group-context.svelte.ts +20 -0
  504. package/src/drag-and-drop/index.ts +34 -0
  505. package/src/drawer/context.svelte.ts +11 -0
  506. package/src/drawer/drawer-body.svelte +33 -0
  507. package/src/drawer/drawer-close.svelte +18 -0
  508. package/src/drawer/drawer-dialog-content.svelte +18 -0
  509. package/src/drawer/drawer-footer.svelte +27 -0
  510. package/{dist/card/card-footer.svelte → src/drawer/drawer-header.svelte} +8 -10
  511. package/src/drawer/drawer-overlay.svelte +34 -0
  512. package/src/drawer/drawer-root.svelte +35 -0
  513. package/src/drawer/drawer-trigger.svelte +56 -0
  514. package/src/drawer/drawer.meta.ts +7 -0
  515. package/src/drawer/index.ts +43 -0
  516. package/src/drop-zone/drop-zone.meta.ts +7 -0
  517. package/src/drop-zone/drop-zone.svelte +95 -0
  518. package/src/drop-zone/index.ts +6 -0
  519. package/src/dropdown-menu/context.svelte.ts +7 -0
  520. package/src/dropdown-menu/dropdown-menu-content.svelte +137 -0
  521. package/src/dropdown-menu/dropdown-menu-group.svelte +15 -0
  522. package/src/dropdown-menu/dropdown-menu-item.svelte +27 -0
  523. package/src/dropdown-menu/dropdown-menu-label.svelte +15 -0
  524. package/src/dropdown-menu/dropdown-menu-root.svelte +26 -0
  525. package/src/dropdown-menu/dropdown-menu-separator.svelte +10 -0
  526. package/src/dropdown-menu/dropdown-menu-trigger.svelte +65 -0
  527. package/src/dropdown-menu/dropdown-menu.meta.ts +7 -0
  528. package/src/dropdown-menu/index.ts +35 -0
  529. package/src/enter/enter.meta.ts +8 -0
  530. package/src/enter/index.ts +1 -0
  531. package/src/exit/exit.meta.ts +8 -0
  532. package/src/exit/index.ts +1 -0
  533. package/src/field/field-description.svelte +38 -0
  534. package/src/field/field-error.svelte +40 -0
  535. package/src/field/field-root.svelte +98 -0
  536. package/src/field/field.meta.ts +7 -0
  537. package/src/field/index.ts +15 -0
  538. package/src/fieldset/fieldset-content.svelte +21 -0
  539. package/src/fieldset/fieldset-description.svelte +26 -0
  540. package/src/fieldset/fieldset-legend.svelte +26 -0
  541. package/src/fieldset/fieldset-root.svelte +27 -0
  542. package/src/fieldset/fieldset.meta.ts +7 -0
  543. package/src/fieldset/index.ts +35 -0
  544. package/src/file-select/context.svelte.ts +10 -0
  545. package/src/file-select/file-select-button-clear.svelte +37 -0
  546. package/src/file-select/file-select-button-trigger.svelte +26 -0
  547. package/src/file-select/file-select-root.svelte +168 -0
  548. package/src/file-select/file-select-value.svelte +43 -0
  549. package/src/file-select/file-select.meta.ts +7 -0
  550. package/src/file-select/index.ts +29 -0
  551. package/src/file-upload/context.svelte.ts +17 -0
  552. package/src/file-upload/file-upload-button-item-delete.svelte +36 -0
  553. package/src/file-upload/file-upload-button-trigger.svelte +31 -0
  554. package/src/file-upload/file-upload-dropzone.svelte +145 -0
  555. package/src/file-upload/file-upload-input-root.svelte +144 -0
  556. package/src/file-upload/file-upload-item.svelte +63 -0
  557. package/src/file-upload/file-upload-list.svelte +37 -0
  558. package/src/file-upload/file-upload.meta.ts +7 -0
  559. package/src/file-upload/index.ts +52 -0
  560. package/src/flip-card/context.svelte.ts +8 -0
  561. package/src/flip-card/flip-card-back.svelte +34 -0
  562. package/src/flip-card/flip-card-front.svelte +25 -0
  563. package/src/flip-card/flip-card-root.svelte +116 -0
  564. package/src/flip-card/flip-card.meta.ts +7 -0
  565. package/src/flip-card/index.ts +15 -0
  566. package/src/float-button/context.svelte.ts +10 -0
  567. package/src/float-button/float-button-action.svelte +56 -0
  568. package/src/float-button/float-button-root.svelte +102 -0
  569. package/src/float-button/float-button-trigger.svelte +43 -0
  570. package/src/float-button/float-button.meta.ts +7 -0
  571. package/src/float-button/index.ts +29 -0
  572. package/src/focus-trap/focus-trap.meta.ts +7 -0
  573. package/src/focus-trap/focus-trap.svelte +16 -0
  574. package/src/focus-trap/index.ts +3 -0
  575. package/src/format-bytes/format-bytes.meta.ts +7 -0
  576. package/src/format-bytes/format-bytes.svelte +60 -0
  577. package/src/format-bytes/index.ts +3 -0
  578. package/src/format-date/format-date.meta.ts +7 -0
  579. package/src/format-date/format-date.svelte +80 -0
  580. package/src/format-date/index.ts +3 -0
  581. package/src/format-number/format-number.meta.ts +7 -0
  582. package/src/format-number/format-number.svelte +59 -0
  583. package/src/format-number/index.ts +3 -0
  584. package/src/gauge/gauge.meta.ts +7 -0
  585. package/src/gauge/gauge.svelte +143 -0
  586. package/src/gauge/index.ts +2 -0
  587. package/src/glass/glass.meta.ts +7 -0
  588. package/src/glass/glass.svelte +49 -0
  589. package/src/glass/index.ts +11 -0
  590. package/src/glow/glow.meta.ts +7 -0
  591. package/src/glow/glow.svelte +60 -0
  592. package/src/glow/index.ts +15 -0
  593. package/src/god-rays/god-rays.meta.ts +8 -0
  594. package/src/god-rays/god-rays.svelte +132 -0
  595. package/src/god-rays/index.ts +17 -0
  596. package/src/gradient-mesh/gradient-mesh.meta.ts +7 -0
  597. package/src/gradient-mesh/gradient-mesh.svelte +302 -0
  598. package/src/gradient-mesh/index.ts +5 -0
  599. package/src/halftone/halftone.meta.ts +7 -0
  600. package/src/halftone/halftone.svelte +93 -0
  601. package/src/halftone/index.ts +14 -0
  602. package/src/heading/heading.meta.ts +7 -0
  603. package/src/heading/heading.svelte +120 -0
  604. package/src/heading/index.ts +17 -0
  605. package/src/hotkey/hotkey.meta.ts +7 -0
  606. package/src/hotkey/index.ts +2 -0
  607. package/src/hover-card/context.svelte.ts +1 -0
  608. package/src/hover-card/hover-card-content.svelte +121 -0
  609. package/src/hover-card/hover-card-root.svelte +11 -0
  610. package/src/hover-card/hover-card-trigger.svelte +109 -0
  611. package/src/hover-card/hover-card.meta.ts +7 -0
  612. package/src/hover-card/index.ts +19 -0
  613. package/src/icon/icon.meta.ts +7 -0
  614. package/src/icon/icon.svelte +92 -0
  615. package/src/icon/index.ts +11 -0
  616. package/src/icon-swap/icon-swap.meta.ts +7 -0
  617. package/src/icon-swap/icon-swap.svelte +48 -0
  618. package/src/icon-swap/index.ts +1 -0
  619. package/src/image/image.meta.ts +7 -0
  620. package/src/image/image.svelte +73 -0
  621. package/src/image/index.ts +3 -0
  622. package/src/image-comparison/image-comparison.meta.ts +7 -0
  623. package/src/image-comparison/image-comparison.svelte +272 -0
  624. package/src/image-comparison/index.ts +3 -0
  625. package/src/index.ts +863 -0
  626. package/src/infinite-scroll/index.ts +3 -0
  627. package/src/infinite-scroll/infinite-scroll.meta.ts +7 -0
  628. package/src/infinite-scroll/infinite-scroll.svelte +109 -0
  629. package/src/input/index.ts +8 -0
  630. package/src/input/input.meta.ts +7 -0
  631. package/src/input/input.svelte +261 -0
  632. package/src/input-group/context.svelte.ts +9 -0
  633. package/src/input-group/index.ts +45 -0
  634. package/src/input-group/input-group-action-button.svelte +29 -0
  635. package/src/input-group/input-group-input.svelte +57 -0
  636. package/src/input-group/input-group-prefix.svelte +43 -0
  637. package/src/input-group/input-group-root.svelte +108 -0
  638. package/src/input-group/input-group-select.svelte +70 -0
  639. package/src/input-group/input-group-separator.svelte +38 -0
  640. package/src/input-group/input-group-suffix.svelte +43 -0
  641. package/src/input-group/input-group.meta.ts +8 -0
  642. package/src/internal/anchored-overlay-content.svelte.ts +42 -0
  643. package/src/internal/calendar-event-layout.ts +294 -0
  644. package/src/internal/calendar-grid-button.svelte +805 -0
  645. package/src/internal/calendar-grid-utils.ts +123 -0
  646. package/src/internal/close-button-base.svelte +35 -0
  647. package/src/internal/color-aliases.ts +37 -0
  648. package/src/internal/date-family-controller.svelte.ts +165 -0
  649. package/src/internal/form-control-wrapper-attrs.ts +20 -0
  650. package/src/internal/menu-group.svelte +15 -0
  651. package/src/internal/menu-item.svelte +89 -0
  652. package/src/internal/menu-label.svelte +24 -0
  653. package/src/internal/menu-root-state.svelte.ts +73 -0
  654. package/src/internal/menu-separator.svelte +19 -0
  655. package/src/internal/modal-content.svelte +351 -0
  656. package/src/internal/motion.ts +85 -0
  657. package/src/internal/nav-arrow-button.svelte +42 -0
  658. package/src/internal/picker-popover-content.svelte +111 -0
  659. package/src/kbd/index.ts +9 -0
  660. package/src/kbd/kbd.meta.ts +7 -0
  661. package/src/kbd/kbd.svelte +56 -0
  662. package/src/label/index.ts +7 -0
  663. package/src/label/label.meta.ts +7 -0
  664. package/src/label/label.svelte +74 -0
  665. package/src/link/index.ts +7 -0
  666. package/src/link/link.meta.ts +7 -0
  667. package/src/link/link.svelte +104 -0
  668. package/src/link-preview/context.svelte.ts +15 -0
  669. package/src/link-preview/index.ts +19 -0
  670. package/src/link-preview/link-preview-content.svelte +87 -0
  671. package/src/link-preview/link-preview-root.svelte +72 -0
  672. package/src/link-preview/link-preview-trigger.svelte +61 -0
  673. package/src/link-preview/link-preview.meta.ts +7 -0
  674. package/src/list/context.svelte.ts +7 -0
  675. package/src/list/index.ts +27 -0
  676. package/src/list/list-item-icon.svelte +22 -0
  677. package/src/list/list-item-text.svelte +42 -0
  678. package/src/list/list-item.svelte +116 -0
  679. package/src/list/list-root.svelte +71 -0
  680. package/src/list/list-subheader.svelte +25 -0
  681. package/src/list/list.meta.ts +7 -0
  682. package/src/listbox/context.svelte.ts +10 -0
  683. package/src/listbox/index.ts +12 -0
  684. package/src/listbox/listbox-item.svelte +90 -0
  685. package/src/listbox/listbox-root.svelte +115 -0
  686. package/src/listbox/listbox.meta.ts +7 -0
  687. package/src/logo-mark/index.ts +12 -0
  688. package/src/logo-mark/logo-mark.meta.ts +7 -0
  689. package/src/logo-mark/logo-mark.svelte +154 -0
  690. package/src/map/context.svelte.ts +19 -0
  691. package/src/map/index.ts +77 -0
  692. package/src/map/map-controls.svelte +68 -0
  693. package/src/map/map-layer.svelte +101 -0
  694. package/src/map/map-marker.svelte +83 -0
  695. package/src/map/map-popup.svelte +71 -0
  696. package/src/map/map-root.svelte +244 -0
  697. package/src/map/map.meta.ts +7 -0
  698. package/src/markdown-renderer/index.ts +4 -0
  699. package/src/markdown-renderer/markdown-renderer.meta.ts +7 -0
  700. package/src/markdown-renderer/markdown-renderer.svelte +202 -0
  701. package/src/marquee/index.ts +3 -0
  702. package/src/marquee/marquee.meta.ts +7 -0
  703. package/src/marquee/marquee.svelte +218 -0
  704. package/src/mask-reveal/index.ts +5 -0
  705. package/src/mask-reveal/mask-reveal.meta.ts +7 -0
  706. package/src/mask-reveal/mask-reveal.svelte +214 -0
  707. package/src/mega-menu/context.svelte.ts +17 -0
  708. package/src/mega-menu/index.ts +31 -0
  709. package/src/mega-menu/mega-menu-button-trigger.svelte +37 -0
  710. package/src/mega-menu/mega-menu-column.svelte +34 -0
  711. package/src/mega-menu/mega-menu-item.svelte +51 -0
  712. package/src/mega-menu/mega-menu-link.svelte +137 -0
  713. package/src/mega-menu/mega-menu-panel.svelte +134 -0
  714. package/src/mega-menu/mega-menu-root.svelte +98 -0
  715. package/src/mega-menu/mega-menu.meta.ts +7 -0
  716. package/src/menubar/context.svelte.ts +24 -0
  717. package/src/menubar/index.ts +35 -0
  718. package/src/menubar/menubar-button-trigger.svelte +75 -0
  719. package/src/menubar/menubar-content.svelte +147 -0
  720. package/src/menubar/menubar-item.svelte +96 -0
  721. package/{dist/card/card-header.svelte → src/menubar/menubar-label.svelte} +6 -10
  722. package/src/menubar/menubar-menu.svelte +32 -0
  723. package/src/menubar/menubar-root.svelte +78 -0
  724. package/src/menubar/menubar-separator.svelte +17 -0
  725. package/src/menubar/menubar.meta.ts +7 -0
  726. package/src/motion/enter.svelte +29 -0
  727. package/src/motion/enter.ts +46 -0
  728. package/src/motion/exit.svelte +21 -0
  729. package/src/motion/index.ts +7 -0
  730. package/src/motion/leave.ts +41 -0
  731. package/src/motion/motion.meta.ts +8 -0
  732. package/src/motion/stagger.svelte +30 -0
  733. package/src/multi-select-combobox/context.svelte.ts +31 -0
  734. package/src/multi-select-combobox/index.ts +43 -0
  735. package/src/multi-select-combobox/multi-select-combobox-content.svelte +118 -0
  736. package/src/multi-select-combobox/multi-select-combobox-empty.svelte +28 -0
  737. package/src/multi-select-combobox/multi-select-combobox-group.svelte +33 -0
  738. package/src/multi-select-combobox/multi-select-combobox-input.svelte +161 -0
  739. package/src/multi-select-combobox/multi-select-combobox-item.svelte +140 -0
  740. package/src/multi-select-combobox/multi-select-combobox-root-input.svelte +286 -0
  741. package/src/multi-select-combobox/multi-select-combobox-selection-item.svelte +63 -0
  742. package/src/multi-select-combobox/multi-select-combobox-selection-list.svelte +29 -0
  743. package/src/multi-select-combobox/multi-select-combobox-selection-remove-button.svelte +36 -0
  744. package/src/multi-select-combobox/multi-select-combobox.meta.ts +7 -0
  745. package/src/navigation-menu/context.svelte.ts +18 -0
  746. package/src/navigation-menu/index.ts +50 -0
  747. package/src/navigation-menu/navigation-menu-content.svelte +55 -0
  748. package/src/navigation-menu/navigation-menu-item.svelte +35 -0
  749. package/src/navigation-menu/navigation-menu-link.svelte +49 -0
  750. package/src/navigation-menu/navigation-menu-list.svelte +47 -0
  751. package/src/navigation-menu/navigation-menu-root.svelte +46 -0
  752. package/src/navigation-menu/navigation-menu-trigger-button.svelte +62 -0
  753. package/src/navigation-menu/navigation-menu.meta.ts +7 -0
  754. package/src/noise/index.ts +15 -0
  755. package/src/noise/noise.meta.ts +7 -0
  756. package/src/noise/noise.svelte +179 -0
  757. package/src/notification-center/context.svelte.ts +24 -0
  758. package/src/notification-center/index.ts +28 -0
  759. package/src/notification-center/notification-center-group.svelte +30 -0
  760. package/src/notification-center/notification-center-item.svelte +70 -0
  761. package/src/notification-center/notification-center-panel.svelte +162 -0
  762. package/src/notification-center/notification-center-root.svelte +73 -0
  763. package/src/notification-center/notification-center-trigger-button.svelte +28 -0
  764. package/src/notification-center/notification-center.meta.ts +7 -0
  765. package/src/number-input/index.ts +7 -0
  766. package/src/number-input/number-input-button.svelte +222 -0
  767. package/src/number-input/number-input.meta.ts +7 -0
  768. package/src/numeric/index.ts +1 -0
  769. package/src/numeric/numeric.meta.ts +7 -0
  770. package/src/numeric/numeric.svelte +64 -0
  771. package/src/option-picker/context.svelte.ts +11 -0
  772. package/src/option-picker/index.ts +52 -0
  773. package/src/option-picker/option-picker-description.svelte +25 -0
  774. package/src/option-picker/option-picker-item.svelte +242 -0
  775. package/src/option-picker/option-picker-label.svelte +24 -0
  776. package/src/option-picker/option-picker-meta.svelte +24 -0
  777. package/src/option-picker/option-picker-preview.svelte +155 -0
  778. package/src/option-picker/option-picker-root.svelte +82 -0
  779. package/src/option-picker/option-picker.meta.ts +8 -0
  780. package/src/pagination/context.svelte.ts +12 -0
  781. package/src/pagination/index.ts +35 -0
  782. package/src/pagination/pagination-content.svelte +27 -0
  783. package/src/pagination/pagination-ellipsis.svelte +19 -0
  784. package/src/pagination/pagination-item.svelte +14 -0
  785. package/src/pagination/pagination-link-button.svelte +28 -0
  786. package/src/pagination/pagination-nav-button.svelte +28 -0
  787. package/src/pagination/pagination-next-button.svelte +13 -0
  788. package/src/pagination/pagination-previous-button.svelte +13 -0
  789. package/src/pagination/pagination-root.svelte +48 -0
  790. package/src/pagination/pagination.meta.ts +7 -0
  791. package/src/phone-input/index.ts +9 -0
  792. package/src/phone-input/phone-input-select.svelte +286 -0
  793. package/src/phone-input/phone-input.meta.ts +7 -0
  794. package/src/pin-input/context.svelte.ts +18 -0
  795. package/src/pin-input/index.ts +31 -0
  796. package/src/pin-input/pin-input-cell.svelte +117 -0
  797. package/src/pin-input/pin-input-group.svelte +24 -0
  798. package/src/pin-input/pin-input-root.svelte +315 -0
  799. package/src/pin-input/pin-input-separator.svelte +28 -0
  800. package/src/pin-input/pin-input.meta.ts +7 -0
  801. package/src/popover/context.svelte.ts +13 -0
  802. package/src/popover/index.ts +15 -0
  803. package/src/popover/popover-content.svelte +112 -0
  804. package/src/popover/popover-root.svelte +39 -0
  805. package/src/popover/popover-trigger.svelte +62 -0
  806. package/src/popover/popover.meta.ts +7 -0
  807. package/src/portal/index.ts +3 -0
  808. package/src/portal/portal.meta.ts +7 -0
  809. package/src/portal/portal.svelte +14 -0
  810. package/src/progress/index.ts +14 -0
  811. package/src/progress/progress.meta.ts +7 -0
  812. package/src/progress/progress.svelte +302 -0
  813. package/src/progress-ring/index.ts +8 -0
  814. package/src/progress-ring/progress-ring.meta.ts +7 -0
  815. package/src/progress-ring/progress-ring.svelte +169 -0
  816. package/src/prompt-input/index.ts +16 -0
  817. package/src/prompt-input/prompt-input-button-textarea.svelte +171 -0
  818. package/src/prompt-input/prompt-input.meta.ts +7 -0
  819. package/src/qr-code/index.ts +3 -0
  820. package/src/qr-code/qr-code.meta.ts +7 -0
  821. package/src/qr-code/qr-code.svelte +149 -0
  822. package/src/radio-group/context.svelte.ts +10 -0
  823. package/src/radio-group/index.ts +12 -0
  824. package/src/radio-group/radio-group-item-input.svelte +197 -0
  825. package/src/radio-group/radio-group.meta.ts +7 -0
  826. package/src/radio-group/radio-group.svelte +117 -0
  827. package/src/range-calendar/context.svelte.ts +22 -0
  828. package/src/range-calendar/index.ts +16 -0
  829. package/src/range-calendar/range-calendar-grid-button.svelte +77 -0
  830. package/src/range-calendar/range-calendar-root.svelte +146 -0
  831. package/src/range-calendar/range-calendar.meta.ts +7 -0
  832. package/src/rating/index.ts +7 -0
  833. package/src/rating/rating-button-input.svelte +265 -0
  834. package/src/rating/rating.meta.ts +7 -0
  835. package/src/relative-time/index.ts +3 -0
  836. package/src/relative-time/relative-time.meta.ts +7 -0
  837. package/src/relative-time/relative-time.svelte +71 -0
  838. package/src/reveal/index.ts +7 -0
  839. package/src/reveal/reveal.meta.ts +8 -0
  840. package/src/reveal/reveal.svelte +190 -0
  841. package/src/rich-text-editor/index.ts +19 -0
  842. package/src/rich-text-editor/rich-text-editor-content.svelte +184 -0
  843. package/src/rich-text-editor/rich-text-editor-root.svelte +213 -0
  844. package/src/rich-text-editor/rich-text-editor-toolbar-button-input.svelte +541 -0
  845. package/src/rich-text-editor/rich-text-editor.meta.ts +7 -0
  846. package/src/scroll-area/index.ts +3 -0
  847. package/src/scroll-area/scroll-area.meta.ts +7 -0
  848. package/src/scroll-area/scroll-area.svelte +85 -0
  849. package/src/scroll-to-top/index.ts +8 -0
  850. package/src/scroll-to-top/scroll-to-top-button.svelte +89 -0
  851. package/src/scroll-to-top/scroll-to-top.meta.ts +7 -0
  852. package/src/segmented-control/context.svelte.ts +10 -0
  853. package/src/segmented-control/index.ts +12 -0
  854. package/src/segmented-control/segmented-control-item-button.svelte +37 -0
  855. package/src/segmented-control/segmented-control-root.svelte +125 -0
  856. package/src/segmented-control/segmented-control.meta.ts +7 -0
  857. package/src/select/context.svelte.ts +17 -0
  858. package/src/select/index.ts +27 -0
  859. package/src/select/select-content.svelte +202 -0
  860. package/src/select/select-item.svelte +118 -0
  861. package/src/select/select-root-input.svelte +105 -0
  862. package/src/select/select-trigger-button.svelte +183 -0
  863. package/src/select/select-value.svelte +27 -0
  864. package/src/select/select.meta.ts +7 -0
  865. package/src/separator/index.ts +9 -0
  866. package/src/separator/separator.meta.ts +7 -0
  867. package/src/separator/separator.svelte +70 -0
  868. package/src/shader-canvas/index.ts +28 -0
  869. package/src/shader-canvas/presets.ts +212 -0
  870. package/src/shader-canvas/shader-canvas.meta.ts +7 -0
  871. package/src/shader-canvas/shader-canvas.svelte +115 -0
  872. package/src/shimmer/index.ts +10 -0
  873. package/src/shimmer/shimmer.meta.ts +7 -0
  874. package/src/shimmer/shimmer.svelte +125 -0
  875. package/src/sidebar/context.svelte.ts +10 -0
  876. package/src/sidebar/index.ts +66 -0
  877. package/src/sidebar/sidebar-content.svelte +43 -0
  878. package/src/sidebar/sidebar-footer.svelte +28 -0
  879. package/src/sidebar/sidebar-group-label.svelte +45 -0
  880. package/src/sidebar/sidebar-group.svelte +29 -0
  881. package/src/sidebar/sidebar-header.svelte +34 -0
  882. package/src/sidebar/sidebar-item.svelte +57 -0
  883. package/src/sidebar/sidebar-root.svelte +76 -0
  884. package/src/sidebar/sidebar-trigger-button.svelte +29 -0
  885. package/src/sidebar/sidebar.meta.ts +7 -0
  886. package/src/skeleton/index.ts +9 -0
  887. package/src/skeleton/skeleton.meta.ts +7 -0
  888. package/src/skeleton/skeleton.svelte +97 -0
  889. package/src/slider/index.ts +12 -0
  890. package/src/slider/slider-input.svelte +277 -0
  891. package/src/slider/slider.meta.ts +7 -0
  892. package/src/spacer/index.ts +8 -0
  893. package/src/spacer/spacer.meta.ts +7 -0
  894. package/src/spacer/spacer.svelte +84 -0
  895. package/src/sparkline/index.ts +3 -0
  896. package/src/sparkline/sparkline.meta.ts +7 -0
  897. package/src/sparkline/sparkline.svelte +113 -0
  898. package/src/spinner/index.ts +9 -0
  899. package/src/spinner/spinner.meta.ts +7 -0
  900. package/src/spinner/spinner.svelte +110 -0
  901. package/src/splitter/context.svelte.ts +11 -0
  902. package/src/splitter/index.ts +15 -0
  903. package/src/splitter/splitter-handle.svelte +171 -0
  904. package/src/splitter/splitter-panel.svelte +28 -0
  905. package/src/splitter/splitter-root.svelte +128 -0
  906. package/src/splitter/splitter.meta.ts +7 -0
  907. package/src/spotlight/index.ts +5 -0
  908. package/src/spotlight/spotlight.meta.ts +8 -0
  909. package/src/spotlight/spotlight.svelte +249 -0
  910. package/src/stagger/index.ts +1 -0
  911. package/src/stagger/stagger.meta.ts +8 -0
  912. package/src/star-rating/index.ts +16 -0
  913. package/src/star-rating/star-rating-root.svelte +109 -0
  914. package/src/star-rating/star-rating.meta.ts +7 -0
  915. package/src/stepper/context.svelte.ts +9 -0
  916. package/src/stepper/index.ts +23 -0
  917. package/src/stepper/stepper-list.svelte +37 -0
  918. package/src/stepper/stepper-root.svelte +51 -0
  919. package/src/stepper/stepper-separator.svelte +45 -0
  920. package/src/stepper/stepper-step-button.svelte +113 -0
  921. package/src/stepper/stepper.meta.ts +7 -0
  922. package/src/svg/index.ts +5 -0
  923. package/src/svg/svg.meta.ts +7 -0
  924. package/src/svg/svg.svelte +19 -0
  925. package/src/table/index.ts +39 -0
  926. package/src/table/table-body.svelte +14 -0
  927. package/src/table/table-caption.svelte +25 -0
  928. package/src/table/table-cell.svelte +24 -0
  929. package/src/table/table-footer.svelte +21 -0
  930. package/src/table/table-head.svelte +26 -0
  931. package/src/table/table-header.svelte +21 -0
  932. package/src/table/table-root.svelte +64 -0
  933. package/src/table/table-row.svelte +28 -0
  934. package/src/table/table.meta.ts +7 -0
  935. package/src/table-of-contents/context.svelte.ts +14 -0
  936. package/src/table-of-contents/index.ts +20 -0
  937. package/src/table-of-contents/table-of-contents-item.svelte +86 -0
  938. package/src/table-of-contents/table-of-contents-list.svelte +87 -0
  939. package/src/table-of-contents/table-of-contents-root.svelte +88 -0
  940. package/src/table-of-contents/table-of-contents.meta.ts +7 -0
  941. package/src/tabs/context.svelte.ts +16 -0
  942. package/src/tabs/index.ts +43 -0
  943. package/src/tabs/tabs-content.svelte +42 -0
  944. package/src/tabs/tabs-list.svelte +102 -0
  945. package/src/tabs/tabs-root.svelte +59 -0
  946. package/src/tabs/tabs-trigger-button.svelte +41 -0
  947. package/src/tabs/tabs.meta.ts +7 -0
  948. package/src/tag/index.ts +12 -0
  949. package/src/tag/tag-button.svelte +254 -0
  950. package/src/tag/tag.meta.ts +7 -0
  951. package/src/tags-input/context.svelte.ts +13 -0
  952. package/src/tags-input/index.ts +32 -0
  953. package/src/tags-input/tags-input-input.svelte +85 -0
  954. package/src/tags-input/tags-input-list.svelte +20 -0
  955. package/src/tags-input/tags-input-root.svelte +136 -0
  956. package/src/tags-input/tags-input-tag-delete-button.svelte +31 -0
  957. package/src/tags-input/tags-input-tag.svelte +61 -0
  958. package/src/tags-input/tags-input.meta.ts +7 -0
  959. package/src/text/index.ts +20 -0
  960. package/src/text/text.meta.ts +7 -0
  961. package/src/text/text.svelte +150 -0
  962. package/src/textarea/index.ts +7 -0
  963. package/src/textarea/textarea.meta.ts +7 -0
  964. package/src/textarea/textarea.svelte +210 -0
  965. package/src/theme-toggle/index.ts +30 -0
  966. package/src/theme-toggle/theme-controller.svelte.ts +171 -0
  967. package/src/theme-toggle/theme-flash.ts +39 -0
  968. package/src/theme-toggle/theme-toggle.meta.ts +7 -0
  969. package/src/theme-toggle/theme-toggle.svelte +199 -0
  970. package/src/themes/aurora.css +243 -0
  971. package/src/themes/component-defaults.css +47 -0
  972. package/src/themes/dark.css +317 -0
  973. package/src/themes/default.css +618 -0
  974. package/src/themes/midnight.css +147 -0
  975. package/src/themes/terminal.css +161 -0
  976. package/src/themes/token-scope.ts +1 -0
  977. package/src/time-input/index.ts +10 -0
  978. package/src/time-input/time-input.meta.ts +7 -0
  979. package/src/time-input/time-input.svelte +157 -0
  980. package/src/timeline/index.ts +40 -0
  981. package/src/timeline/timeline-content.svelte +22 -0
  982. package/src/timeline/timeline-description.svelte +22 -0
  983. package/src/timeline/timeline-icon.svelte +41 -0
  984. package/src/timeline/timeline-item.svelte +57 -0
  985. package/src/timeline/timeline-root.svelte +43 -0
  986. package/src/timeline/timeline-time.svelte +22 -0
  987. package/src/timeline/timeline-title.svelte +55 -0
  988. package/src/timeline/timeline.meta.ts +7 -0
  989. package/src/toast/context.svelte.ts +7 -0
  990. package/src/toast/index.ts +33 -0
  991. package/src/toast/toast-action-button.svelte +16 -0
  992. package/src/toast/toast-close-button.svelte +35 -0
  993. package/src/toast/toast-description.svelte +24 -0
  994. package/src/toast/toast-provider.svelte +120 -0
  995. package/src/toast/toast-root.svelte +169 -0
  996. package/src/toast/toast-title.svelte +25 -0
  997. package/src/toast/toast.meta.ts +7 -0
  998. package/src/toggle/index.ts +9 -0
  999. package/src/toggle/toggle-button.svelte +218 -0
  1000. package/src/toggle/toggle.meta.ts +7 -0
  1001. package/src/toggle-group/context.svelte.ts +12 -0
  1002. package/src/toggle-group/index.ts +18 -0
  1003. package/src/toggle-group/toggle-group-item-button.svelte +36 -0
  1004. package/src/toggle-group/toggle-group-root.svelte +106 -0
  1005. package/src/toggle-group/toggle-group.meta.ts +7 -0
  1006. package/src/token-scope/index.ts +8 -0
  1007. package/src/token-scope/token-scope.meta.ts +7 -0
  1008. package/src/toolbar/context.svelte.ts +6 -0
  1009. package/src/toolbar/index.ts +23 -0
  1010. package/src/toolbar/toolbar-button.svelte +16 -0
  1011. package/src/toolbar/toolbar-link.svelte +46 -0
  1012. package/src/toolbar/toolbar-root.svelte +100 -0
  1013. package/src/toolbar/toolbar-separator.svelte +33 -0
  1014. package/src/toolbar/toolbar.meta.ts +7 -0
  1015. package/src/tooltip/context.svelte.ts +14 -0
  1016. package/src/tooltip/index.ts +15 -0
  1017. package/src/tooltip/tooltip-content.svelte +106 -0
  1018. package/src/tooltip/tooltip-root.svelte +73 -0
  1019. package/src/tooltip/tooltip-trigger.svelte +74 -0
  1020. package/src/tooltip/tooltip.meta.ts +7 -0
  1021. package/src/tour/index.ts +12 -0
  1022. package/src/tour/tour-root.css +215 -0
  1023. package/src/tour/tour-root.css.d.ts +2 -0
  1024. package/src/tour/tour-root.svelte +19 -0
  1025. package/src/tour/tour-tooltip-button.svelte +48 -0
  1026. package/src/tour/tour.meta.ts +7 -0
  1027. package/src/transfer/context.svelte.ts +31 -0
  1028. package/src/transfer/index.ts +29 -0
  1029. package/src/transfer/transfer-actions-button.svelte +91 -0
  1030. package/src/transfer/transfer-item.svelte +35 -0
  1031. package/src/transfer/transfer-list-input.svelte +204 -0
  1032. package/src/transfer/transfer-root.svelte +145 -0
  1033. package/src/transfer/transfer.meta.ts +7 -0
  1034. package/src/tree/context.svelte.ts +24 -0
  1035. package/src/tree/index.ts +23 -0
  1036. package/src/tree/tree-item-children.svelte +51 -0
  1037. package/src/tree/tree-item-label.svelte +56 -0
  1038. package/src/tree/tree-item.svelte +63 -0
  1039. package/src/tree/tree-root.svelte +246 -0
  1040. package/src/tree/tree.meta.ts +7 -0
  1041. package/src/typing-indicator/index.ts +5 -0
  1042. package/src/typing-indicator/typing-indicator.meta.ts +7 -0
  1043. package/src/typing-indicator/typing-indicator.svelte +72 -0
  1044. package/src/typography/blockquote.svelte +24 -0
  1045. package/src/typography/code.svelte +25 -0
  1046. package/src/typography/heading.svelte +17 -0
  1047. package/src/typography/index.ts +30 -0
  1048. package/src/typography/text.svelte +25 -0
  1049. package/src/typography/typography.meta.ts +7 -0
  1050. package/src/video-embed/index.ts +3 -0
  1051. package/src/video-embed/video-embed-button.svelte +177 -0
  1052. package/src/video-embed/video-embed.meta.ts +7 -0
  1053. package/src/virtual-list/index.ts +3 -0
  1054. package/src/virtual-list/virtual-list.meta.ts +7 -0
  1055. package/src/virtual-list/virtual-list.svelte +239 -0
  1056. package/src/visually-hidden/index.ts +8 -0
  1057. package/src/visually-hidden/visually-hidden.meta.ts +7 -0
  1058. package/src/visually-hidden/visually-hidden.svelte +28 -0
  1059. package/dist/card/card-content.svelte +0 -32
  1060. package/dist/card/card-content.svelte.d.ts +0 -9
  1061. package/dist/card/card-footer.svelte.d.ts +0 -8
  1062. package/dist/card/card-header.svelte.d.ts +0 -8
  1063. package/dist/card/card-root.svelte +0 -184
  1064. package/dist/card/card-root.svelte.d.ts +0 -15
  1065. package/dist/card/card.meta.js +0 -7
  1066. package/dist/card/index.d.ts +0 -31
  1067. package/dist/card/index.js +0 -10
  1068. package/skills/dryui/SKILL.md +0 -308
  1069. package/skills/dryui/agents/openai.yaml +0 -10
  1070. package/skills/dryui/rules/accessibility.md +0 -215
  1071. package/skills/dryui/rules/composition.md +0 -500
  1072. package/skills/dryui/rules/compound-components.md +0 -312
  1073. package/skills/dryui/rules/design-brief.md +0 -59
  1074. package/skills/dryui/rules/design.md +0 -71
  1075. package/skills/dryui/rules/native-web-transitions.md +0 -99
  1076. package/skills/dryui/rules/svelte.md +0 -234
  1077. package/skills/dryui/rules/theming.md +0 -305
  1078. /package/dist/{card/card.meta.d.ts → token-scope/token-scope.meta.d.ts} +0 -0
@@ -1,308 +0,0 @@
1
- ---
2
- name: dryui
3
- description: 'Use when building UIs with DryUI (@dryui/ui) Svelte 5 components. Teaches correct patterns for compound components, theming, forms, and accessibility. Use the CLI as the default entry point; MCP mirrors the same workflow when available.'
4
- ---
5
-
6
- # DryUI
7
-
8
- Zero-dependency Svelte 5 components. All imports from `@dryui/ui`. Requires a theme CSS import. Svelte 5 runes only.
9
-
10
- **Tradeoff:** These rules bias toward correctness over speed. For throwaway prototypes, use judgment.
11
-
12
- ## UI Creation Pipeline
13
-
14
- DryUI work is explicit. Do the design thinking where the user can see it, then validate the result.
15
-
16
- 1. **User brief** — capture audience, job-to-be-done, product/domain, constraints, and any existing design direction.
17
- 2. **DESIGN.md identity** — read or create the local design identity before choosing components. Google-style `DESIGN.md` is a supported optional format, not a required dependency.
18
- 3. **DryUI lookup/plan** — use `dryui info`, `dryui compose`, or MCP `ask` to confirm component contracts, tokens, layout rules, and recipes.
19
- 4. **make-interfaces-feel-better polish intent pass** — state which polish details matter for this screen before implementation. This is an explicit planning step, not hidden taste.
20
- 5. **Implementation** — build with DryUI components, Svelte 5, grid layout, tokens, and accessible composition.
21
- 6. **Deterministic check** — run `dryui check [path]` or MCP `check` to catch contracts, accessibility, tokens, and CSS discipline.
22
- 7. **Visual review** — run `dryui check --visual <url>` or MCP `check` with `visualUrl`; include the make-interfaces-feel-better rubric in the review intent.
23
- 8. **Repair loop** — fix the highest-signal issues, then repeat deterministic check and visual review until the UI matches the brief.
24
-
25
- Precedence when guidance conflicts:
26
-
27
- 1. User intent and task constraints.
28
- 2. Local `DESIGN.md` identity.
29
- 3. DryUI component contracts, accessibility rules, and token/theming discipline.
30
- 4. Official Svelte MCP guidance for Svelte and SvelteKit syntax/framework questions.
31
- 5. make-interfaces-feel-better polish rubric.
32
-
33
- ## 1. Look Up Before You Write
34
-
35
- **Never guess a component API. Always verify first.**
36
-
37
- - Call `dryui info <component>` or `dryui compose "<query>"` before using any component for the first time. If MCP is available, `ask --scope component` and `ask --scope recipe` are equivalent.
38
- - Component APIs vary — `bind:value`, `bind:open`, `bind:checked` are NOT interchangeable
39
- - Compound vs simple, required parts, available props — all differ per component
40
- - If you skip the lookup, you'll write plausible-looking code that silently breaks
41
-
42
- The test: can you point to a `dryui info`, `dryui compose`, or `ask` call for every component or pattern in your output?
43
-
44
- ## 2. Everything is Compound Until Proven Otherwise
45
-
46
- **Use `.Root`. Always check.**
47
-
48
- Most DryUI components are compound — they require `<Card.Root>`, not `<Card>`. The bare name silently fails or renders wrong. Assume compound; verify with `dryui info <Component>` or `ask --scope component`.
49
-
50
- ```svelte
51
- <!-- Wrong -->
52
- <Card>content</Card>
53
- <!-- Right -->
54
- <Card.Root>content</Card.Root>
55
- ```
56
-
57
- Compound components are tracked in the manifest at `packages/mcp/src/component-catalog.ts`. Verify with `dryui info <Component>` or `ask --scope component` before you assume a bare name works, then use `.Root` and wrap the parts inside it.
58
-
59
- The test: every compound component in your markup uses `.Root`, and its parts are wrapped inside it. See `rules/compound-components.md` for the parts reference.
60
-
61
- ## 3. Let the Theme Do Its Job
62
-
63
- **Import it. Use its tokens. Don't fight it.**
64
-
65
- - Import `@dryui/ui/themes/default.css` (and `dark.css`) before any component use
66
- - Use `--dry-color-*` and `--dry-space-*` tokens — never hardcoded colors or spacing
67
- - Don't add decorative CSS (gradients, shadows, colored borders) — the theme handles appearance
68
- - Override semantic tokens (Tier 2) in `:root`, not component tokens (Tier 3)
69
- - Prefer `<html class="theme-auto">` — use `data-theme="light|dark"` only for explicit overrides
70
-
71
- ```css
72
- /* Wrong */
73
- .card {
74
- background: #6366f1;
75
- color: white;
76
- }
77
-
78
- /* Right */
79
- .card {
80
- background: var(--dry-color-fill-brand);
81
- color: var(--dry-color-text-strong);
82
- }
83
- ```
84
-
85
- The test: does your CSS contain zero hex colors, zero `rgb()` values, and zero inline styles?
86
-
87
- ## 4. Grid for Layout. Container for Width. @container for Responsive.
88
-
89
- **Nothing else.**
90
-
91
- - All layout is `display: grid` with `--dry-space-*` tokens in scoped `<style>`
92
- - `Container` (simple component, no `.Root`) for constrained content width
93
- - Use `@container` queries for responsive sizing — never `@media` for layout breakpoints
94
- - No flexbox. No inline styles. No `width`/`min-width`/`max-width` properties
95
-
96
- ```svelte
97
- <div class="layout">...</div>
98
-
99
- <style>
100
- .layout {
101
- display: grid;
102
- gap: var(--dry-space-4);
103
- }
104
- </style>
105
- ```
106
-
107
- The test: grep your output for `display: flex`, `style=`, `@media` — all should return nothing.
108
-
109
- ## 4A. Escape Hatches Mean Stop.
110
-
111
- **If lint or the compiler pushes you toward an escape hatch, the structure is usually wrong.**
112
-
113
- - Never add `:global()`, `!important`, `all: unset`, `<svelte:element>`, or `<!-- svelte-ignore ... -->` just to make a selector or warning go away
114
- - Never add `width`, `min-width`, `max-width`, `inline-size`, `min-inline-size`, or `max-inline-size` to solve layout pressure
115
- - Never use raw native elements outside their canonical DryUI component directories just because composition feels inconvenient
116
- - Never pass `class=` to DryUI components expecting it to style their internals; use wrapper elements, component props, `data-*` attributes, or `--dry-*` tokens instead
117
- - When blocked, restructure the markup instead: add a local wrapper, split explicit `{#if}` branches, move sizing to parent grid tracks, or promote the pattern into the canonical component where the raw element belongs
118
- - Treat `dryui/no-global`, `dryui/no-important`, `dryui/no-width`, `dryui/no-raw-native-element`, `dryui/no-css-ignore`, and `dryui/no-svelte-element` as design feedback, not obstacles to suppress
119
-
120
- The test: grep your output for `:global(`, `!important`, `all: unset`, `svelte-ignore`, `svelte:element`, raw `<button`, raw `<input`, raw `<select`, raw `<dialog`, raw `<hr`, raw `<table`, and `width:` — all should return nothing unless you are editing the canonical component that owns that native element.
121
-
122
- ## 5. Every Input Gets a Field.Root
123
-
124
- **Accessibility isn't optional.**
125
-
126
- - Wrap every form input in `Field.Root` with a `Label`
127
- - Use `AlertDialog` (not `Dialog`) for destructive confirmations
128
- - Add `aria-label` to every icon-only button
129
- - Use `type="submit"` on primary form action buttons
130
-
131
- ```svelte
132
- <!-- Wrong -->
133
- <label>Email</label>
134
- <Input bind:value={email} />
135
-
136
- <!-- Right -->
137
- <Field.Root>
138
- <Label>Email</Label>
139
- <Input bind:value={email} />
140
- </Field.Root>
141
- ```
142
-
143
- The test: every `<Input>`, `<Select.Root>`, `<Textarea>` is inside a `Field.Root` with a `Label` sibling.
144
-
145
- ## 6. Prefer DryUI Over Native HTML
146
-
147
- **If a DryUI component exists for it, use it.**
148
-
149
- `DatePicker` not `<input type="date">`. `Select.Root` not `<select>`. `Dialog.Root` not `<dialog>`. `Separator` not `<hr>`. `Button` not `<button>`. DryUI components handle theming and accessibility automatically — native elements don't.
150
-
151
- The test: search your markup for raw `<input`, `<select>`, `<dialog>`, `<button>`, `<hr>`, `<table>` — each should be a DryUI component instead.
152
-
153
- ## 7. Ask the Svelte MCP for Svelte Questions
154
-
155
- **DryUI owns components. `@sveltejs/mcp` owns the framework.**
156
-
157
- For Svelte 5 runes (`$state`, `$derived`, `$effect`, `$props`), snippets, SvelteKit load fns, `+page.server.ts` shape, form actions, and anything Svelte-syntax adjacent: call the official `svelte-autofixer` and `get-documentation` tools from `@sveltejs/mcp` before guessing from memory.
158
-
159
- - `dryui setup --install` registers `@sveltejs/mcp` by default; pass `--no-svelte-mcp` to skip.
160
- - If it's not registered, the fallback is the remote endpoint `https://mcp.svelte.dev/mcp` or a one-liner like `claude mcp add -t stdio -s user svelte -- npx -y @sveltejs/mcp`.
161
- - Scope split: DryUI `ask`/`check` cover component APIs, theming, composition, and validation. Svelte MCP covers the runtime, compiler, and framework idioms.
162
-
163
- The test: before writing non-trivial Svelte 5 or SvelteKit code, did you either (a) call `svelte-autofixer` / `get-documentation`, or (b) confirm the pattern is already covered by a DryUI recipe via `ask --scope recipe`?
164
-
165
- ## Quick Start
166
-
167
- **1. Install the CLI** so every subsequent command is short and fast:
168
-
169
- ```bash
170
- bun install -g @dryui/cli@latest # or: npm install -g @dryui/cli@latest
171
- ```
172
-
173
- **2. Start with bare `dryui`** when you want editor integration and feedback:
174
-
175
- ```bash
176
- dryui
177
- ```
178
-
179
- **3. Bootstrap or inspect the project** with the CLI:
180
-
181
- ```bash
182
- dryui init # existing project
183
- dryui init my-app # new project — scaffolds SvelteKit + DryUI in one step
184
- cd my-app && bun run dev
185
- ```
186
-
187
- This works for greenfield (empty directory), brownfield (existing non-SvelteKit project), and existing SvelteKit projects. On existing projects, `dryui install` prints the ordered plan and `dryui detect` verifies that setup is complete.
188
-
189
- > **No global install?** `bunx @dryui/cli <cmd>` and `npx -y @dryui/cli <cmd>` work anywhere without installing — same commands, just slower (re-fetches on each call).
190
-
191
- **4. Add the editor integration layer** after the CLI is working:
192
-
193
- - Claude Code: `claude plugin marketplace add rob-balfre/dryui && claude plugin install dryui@dryui` (plugin is the canonical Claude skill install path)
194
- - Codex (0.121.0+): `codex marketplace add rob-balfre/dryui`, then start `codex`, run `/plugins`, and install `DryUI` (plugin is the canonical Codex skill install path)
195
- - OpenCode: `npx degit rob-balfre/dryui/packages/ui/skills/dryui .opencode/skills/dryui` + add the `dryui` and `dryui-feedback` local MCP servers in `opencode.json` (OpenCode also loads `.agents/skills/dryui` and reads `AGENTS.md`)
196
- - Copilot/Cursor/Windsurf: `npx degit rob-balfre/dryui/packages/ui/skills/dryui .agents/skills/dryui` + add MCP config (see https://dryui.dev/tools)
197
-
198
- **5. Register the Svelte MCP companion.** `dryui setup --install` does this automatically for Copilot, Cursor, OpenCode, Windsurf, and Zed. For Claude Code run `claude mcp add -t stdio -s user svelte -- npx -y @sveltejs/mcp`; for Codex add `[mcp_servers.svelte] command = "npx", args = ["-y", "@sveltejs/mcp"]` to `~/.codex/config.toml`. See rule 7 above.
199
-
200
- ### Manual setup
201
-
202
- 1. `bun add @dryui/ui`
203
- 2. `bun add -d @dryui/lint` — enforces grid-only layout, bans flexbox/inline-style/width at build time. Without this step the CSS discipline rules are not enforced at build time, and only post-write `check` / CLI validation remain.
204
- 3. Wire the lint preprocessor in `svelte.config.js` (add `dryuiLint` as the **first** item in the `preprocess` array):
205
-
206
- ```js
207
- import { dryuiLint } from '@dryui/lint';
208
-
209
- /** @type {import('@sveltejs/kit').Config} */
210
- const config = {
211
- preprocess: [
212
- dryuiLint({
213
- strict: true,
214
- exclude: ['.svelte-kit/', '/dist/']
215
- })
216
- // keep any existing preprocessors after this
217
- ]
218
- };
219
-
220
- export default config;
221
- ```
222
-
223
- 4. Add `class="theme-auto"` to `<html>` in `src/app.html`
224
- 5. In root layout (`src/routes/+layout.svelte`), import themes:
225
- ```svelte
226
- <script>
227
- import '@dryui/ui/themes/default.css';
228
- import '@dryui/ui/themes/dark.css';
229
- </script>
230
- ```
231
- 6. Import `app.css` AFTER theme CSS if you have custom styles
232
-
233
- > `dryui init` applies all six steps automatically — prefer it over manual setup when you can.
234
-
235
- ## Bindable Props — Common Confusion
236
-
237
- Always verify with `dryui info <Component>` or `ask --scope component`, but these are the most common mistakes:
238
-
239
- - `bind:value` (Input, Select, Tabs...) vs `bind:checked` (Checkbox, Switch) vs `bind:pressed` (Toggle) vs `bind:open` (Dialog, Popover, Drawer...)
240
- - Select and Combobox support both `bind:value` and `bind:open`
241
- - ColorPicker also exposes `bind:alpha`; Transfer uses `bind:sourceItems` / `bind:targetItems`
242
- - Tour uses `bind:active`, not `bind:open`
243
-
244
- ## Tools
245
-
246
- Use these to look up APIs, discover components, plan setup, and validate code.
247
-
248
- ### Recommended workflow
249
-
250
- 1. Start from the user brief and local `DESIGN.md` identity, then resolve any component or recipe uncertainty with `dryui info <Component>` or `dryui compose "<query>"`. If MCP is available, `ask --scope component` and `ask --scope recipe` are the equivalent surface.
251
- 2. Before writing code, make an explicit make-interfaces-feel-better polish intent pass: text wrapping, radius, icon motion, numbers, transitions, entrances/exits, shadows, icon alignment, image edges, and token consistency.
252
- 3. Build the route or component with raw CSS grid, `Container` for constrained width, and `@container` for responsive layout.
253
- 4. Run `dryui check [path]` or MCP `check` after implementation to catch composition drift, layout violations, accessibility regressions, and token drift.
254
- 5. Run `dryui check --visual <url>` or MCP `check` with `visualUrl` for rendered review, then repair and repeat until the UI satisfies the brief.
255
- 6. Never guess component shape from memory. DryUI is intentionally strict, and the lookup cost is lower than rework.
256
-
257
- ### CLI (default entry point)
258
-
259
- Install once with `bun install -g @dryui/cli@latest` (or `npm install -g @dryui/cli@latest`), then use the short form below. Every command outputs TOON (token-optimized, agent-friendly) by default. Pass `--text` for human-readable plain text, `--json` where supported, or `--full` to disable truncation.
260
-
261
- ```bash
262
- dryui # default onboarding entry point
263
- dryui setup # explicit onboarding subcommand
264
- dryui init [path] [--pm bun] # Bootstrap SvelteKit + DryUI project
265
- dryui info <component> # Look up component API
266
- dryui compose "date input" # Composition guidance
267
- dryui detect [path] # Check project setup
268
- dryui install [path] # Print install plan
269
- dryui check [path] # Validate file, theme, directory, or workspace
270
- dryui check --visual <url> # Screenshot a URL and critique rendered polish
271
- dryui list # List components
272
- dryui tokens --category color # Browse design tokens
273
- dryui ambient # SessionStart context
274
- dryui install-hook --dry-run # Preview Claude hook wiring
275
- dryui feedback init # Feedback tooling setup
276
- ```
277
-
278
- Without a global install, prefix any command with `bunx @dryui/cli …` or `npx -y @dryui/cli …` — same behaviour, just slower (re-fetches on each call).
279
-
280
- ### MCP tools (same workflow in-editor)
281
-
282
- | Workflow | Tools |
283
- | -------------------- | ----------------------------------------------------------------- |
284
- | Project setup | `ask --scope setup ""` |
285
- | Lookup & composition | `ask --scope component`, `ask --scope recipe`, `ask --scope list` |
286
- | Validation | `check <file.svelte>`, `check <theme.css>` |
287
- | Audit | `check`, `check <directory>` |
288
- | Rendered UI | `check` with `visualUrl`, or direct `check-vision` |
289
-
290
- Categories: action, input, form, layout, navigation, overlay, display, feedback, interaction, utility
291
-
292
- ## Rule Files
293
-
294
- Read these when you need deeper guidance:
295
-
296
- - **`rules/compound-components.md`** — Parts lists, component selection table, common mistakes
297
- - **`rules/theming.md`** — Three-tier token system, dark mode, palette customization
298
- - **`rules/composition.md`** — Form patterns, page layouts, composition recipes
299
- - **`rules/accessibility.md`** — Field.Root, ARIA, focus management, pre-ship checklist
300
- - **`rules/svelte.md`** — Runes, snippets, native browser APIs, styling rules
301
- - **`rules/design.md`** — Minimal code, no premature abstraction, naming conventions
302
- - **`rules/design-brief.md`** — User brief, DESIGN.md identity, precedence, and polish review pipeline
303
- - **`rules/visual-effects-performance.md`** — Tiered budgets and implementation rules for shader, blur, glass, and pointer-reactive effects
304
- - **`rules/native-web-transitions.md`** — View Transition API, scroll animations, reduced-motion
305
-
306
- ---
307
-
308
- **These rules are working if:** every component traces to a lookup, diffs contain zero hardcoded colors, and the reviewer finds nothing.
@@ -1,10 +0,0 @@
1
- interface:
2
- display_name: 'DryUI'
3
- short_description: 'Zero-dependency Svelte 5 component library patterns'
4
- default_prompt: 'Use $dryui to build with correct compound components, theming, accessibility, and composition patterns.'
5
-
6
- dependencies:
7
- tools:
8
- - type: 'mcp'
9
- value: 'dryui'
10
- description: 'DryUI component lookup, validation, composition guidance, and project planning'
@@ -1,215 +0,0 @@
1
- # Accessibility
2
-
3
- ## Field.Root for Form Inputs
4
-
5
- Field.Root generates unique IDs and links Label to the input via `for`/`id` attributes. Always use it instead of raw `<label>` elements.
6
-
7
- ```svelte
8
- <!-- Incorrect: label not linked to input -->
9
- <label>Email</label>
10
- <Input bind:value={email} />
11
-
12
- <!-- Correct: Field.Root handles accessible linking -->
13
- <Field.Root>
14
- <Label>Email</Label>
15
- <Input bind:value={email} />
16
- </Field.Root>
17
- ```
18
-
19
- Field.Root also connects Description and Error parts via `aria-describedby`:
20
-
21
- ```svelte
22
- <Field.Root>
23
- <Label>Password</Label>
24
- <Input type="password" bind:value={password} />
25
- <Field.Description>Must be at least 8 characters.</Field.Description>
26
- <Field.Error>Password is too short.</Field.Error>
27
- </Field.Root>
28
- ```
29
-
30
- This produces the correct ARIA relationships automatically:
31
-
32
- - Label is linked to the input via `for`/`id`
33
- - Description is linked via `aria-describedby`
34
- - Error is linked via `aria-describedby` and sets `aria-invalid` on the input
35
-
36
- ## Dialog and AlertDialog
37
-
38
- ### Dialog
39
-
40
- Dialog traps focus inside the overlay. Always provide a title and a way to close.
41
-
42
- ```svelte
43
- <!-- Incorrect: dialog without header or close mechanism -->
44
- <Dialog.Root bind:open={show}>
45
- <Dialog.Content>
46
- <p>Some content</p>
47
- </Dialog.Content>
48
- </Dialog.Root>
49
-
50
- <!-- Correct: header provides accessible title, close button available -->
51
- <Dialog.Root bind:open={show}>
52
- <Dialog.Trigger>
53
- <Button>Open</Button>
54
- </Dialog.Trigger>
55
- <Dialog.Content>
56
- <Dialog.Header>Edit Profile</Dialog.Header>
57
- <Dialog.Body>
58
- <Field.Root>
59
- <Label>Name</Label>
60
- <Input bind:value={name} />
61
- </Field.Root>
62
- </Dialog.Body>
63
- <Dialog.Footer>
64
- <Button variant="outline" onclick={() => (show = false)}>Cancel</Button>
65
- <Button variant="solid">Save</Button>
66
- </Dialog.Footer>
67
- </Dialog.Content>
68
- </Dialog.Root>
69
- ```
70
-
71
- ### AlertDialog
72
-
73
- Use AlertDialog (not Dialog) for destructive confirmations. It requires explicit user action and cannot be dismissed by clicking the overlay.
74
-
75
- ```svelte
76
- <!-- Incorrect: using Dialog for destructive confirmation -->
77
- <Dialog.Root bind:open={showDelete}>
78
- <Dialog.Content>
79
- <p>Delete this item?</p>
80
- <Button onclick={handleDelete}>Delete</Button>
81
- </Dialog.Content>
82
- </Dialog.Root>
83
-
84
- <!-- Correct: AlertDialog with Action and Cancel parts -->
85
- <AlertDialog.Root>
86
- <AlertDialog.Trigger>
87
- <Button variant="outline">Delete</Button>
88
- </AlertDialog.Trigger>
89
- <AlertDialog.Content>
90
- <AlertDialog.Header>Delete Item</AlertDialog.Header>
91
- <AlertDialog.Body>
92
- <p>This action cannot be undone.</p>
93
- </AlertDialog.Body>
94
- <AlertDialog.Footer>
95
- <AlertDialog.Cancel>Cancel</AlertDialog.Cancel>
96
- <AlertDialog.Action>Delete</AlertDialog.Action>
97
- </AlertDialog.Footer>
98
- </AlertDialog.Content>
99
- </AlertDialog.Root>
100
- ```
101
-
102
- ## Button vs Anchor
103
-
104
- Use Button for actions. Use `<a>` for navigation.
105
-
106
- ```svelte
107
- <!-- Incorrect: anchor styled as action button -->
108
- <a href="#" onclick={handleSave}>Save</a>
109
-
110
- <!-- Correct: Button for actions -->
111
- <Button onclick={handleSave}>Save</Button>
112
-
113
- <!-- Correct: anchor for navigation -->
114
- <a href="/settings">Go to Settings</a>
115
- ```
116
-
117
- ## Icon-Only Buttons
118
-
119
- Always add `aria-label` to buttons that contain only an icon and no visible text.
120
-
121
- ```svelte
122
- <!-- Incorrect: icon button without accessible name -->
123
- <Button variant="ghost" onclick={toggleMenu}>
124
- <MenuIcon />
125
- </Button>
126
-
127
- <!-- Correct: aria-label provides accessible name -->
128
- <Button variant="ghost" onclick={toggleMenu} aria-label="Open menu">
129
- <MenuIcon />
130
- </Button>
131
- ```
132
-
133
- ## Avatar
134
-
135
- Always provide `alt` text for Avatar images.
136
-
137
- ```svelte
138
- <!-- Incorrect: no alt text -->
139
- <Avatar src="/photo.jpg" />
140
-
141
- <!-- Correct: descriptive alt text -->
142
- <Avatar src="/photo.jpg" alt="Jane Doe's profile photo" />
143
- ```
144
-
145
- ## Keyboard Navigation
146
-
147
- DryUI components handle keyboard navigation automatically:
148
-
149
- - **Tabs**: Arrow keys move between triggers, Enter/Space activates
150
- - **Accordion**: Arrow keys navigate triggers, Enter/Space toggles
151
- - **DropdownMenu**: Arrow keys navigate items, Enter selects, Escape closes
152
- - **Select**: Arrow keys navigate items, Enter selects, Escape closes
153
- - **Dialog/AlertDialog**: Tab cycles through focusable elements, Escape closes (Dialog only)
154
-
155
- No extra code needed for standard keyboard behavior. Avoid overriding `onkeydown` on these components unless you have a specific accessibility need.
156
-
157
- ## Form Submission
158
-
159
- Use `type="submit"` on the primary form action button so that pressing Enter in any input submits the form.
160
-
161
- ```svelte
162
- <!-- Incorrect: button without type, won't submit on Enter -->
163
- <form onsubmit={handleSubmit}>
164
- <Field.Root>
165
- <Label>Search</Label>
166
- <Input bind:value={query} />
167
- </Field.Root>
168
- <Button variant="solid" onclick={handleSubmit}>Search</Button>
169
- </form>
170
-
171
- <!-- Correct: type="submit" enables Enter key submission -->
172
- <form onsubmit={handleSubmit}>
173
- <Field.Root>
174
- <Label>Search</Label>
175
- <Input bind:value={query} />
176
- </Field.Root>
177
- <Button type="submit" variant="solid">Search</Button>
178
- </form>
179
- ```
180
-
181
- ## Loading States
182
-
183
- Use `disabled` and descriptive text or `aria-label` during loading states.
184
-
185
- ```svelte
186
- <!-- Incorrect: no indication of loading -->
187
- <Button onclick={save}>
188
- {#if saving}
189
- <Spinner />
190
- {:else}
191
- Save
192
- {/if}
193
- </Button>
194
-
195
- <!-- Correct: disabled and labeled during loading -->
196
- <Button onclick={save} disabled={saving} aria-label={saving ? 'Saving...' : undefined}>
197
- {#if saving}
198
- <Spinner /> Saving...
199
- {:else}
200
- Save
201
- {/if}
202
- </Button>
203
- ```
204
-
205
- ## Checklist
206
-
207
- Before shipping a page with DryUI components:
208
-
209
- 1. Every form input is wrapped in `Field.Root` with a `Label`
210
- 2. Every Dialog/AlertDialog has a header or `aria-label`
211
- 3. Every icon-only Button has `aria-label`
212
- 4. Destructive confirmations use `AlertDialog`, not `Dialog`
213
- 5. Primary form buttons use `type="submit"`
214
- 6. Avatar images have `alt` text
215
- 7. No `<a href="#">` used as action buttons