@dryui/ui 1.7.4 → 1.9.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 (385) hide show
  1. package/dist/accordion/accordion.meta.d.ts +8 -0
  2. package/dist/accordion/accordion.meta.js +7 -0
  3. package/dist/adjust/adjust.meta.d.ts +8 -0
  4. package/dist/adjust/adjust.meta.js +7 -0
  5. package/dist/alert/alert.meta.d.ts +8 -0
  6. package/dist/alert/alert.meta.js +7 -0
  7. package/dist/alert-dialog/alert-dialog.meta.d.ts +8 -0
  8. package/dist/alert-dialog/alert-dialog.meta.js +7 -0
  9. package/dist/alpha-slider/alpha-slider.meta.d.ts +8 -0
  10. package/dist/alpha-slider/alpha-slider.meta.js +7 -0
  11. package/dist/app-frame/app-frame.meta.d.ts +8 -0
  12. package/dist/app-frame/app-frame.meta.js +7 -0
  13. package/dist/aspect-ratio/aspect-ratio.meta.d.ts +8 -0
  14. package/dist/aspect-ratio/aspect-ratio.meta.js +7 -0
  15. package/dist/aurora/aurora.meta.d.ts +8 -0
  16. package/dist/aurora/aurora.meta.js +7 -0
  17. package/dist/avatar/avatar.meta.d.ts +8 -0
  18. package/dist/avatar/avatar.meta.js +7 -0
  19. package/dist/avatar/avatar.svelte +2 -1
  20. package/dist/backdrop/backdrop.meta.d.ts +8 -0
  21. package/dist/backdrop/backdrop.meta.js +7 -0
  22. package/dist/badge/badge.meta.d.ts +8 -0
  23. package/dist/badge/badge.meta.js +7 -0
  24. package/dist/badge/badge.svelte +17 -0
  25. package/dist/badge/badge.svelte.d.ts +6 -0
  26. package/dist/beam/beam.meta.d.ts +8 -0
  27. package/dist/beam/beam.meta.js +7 -0
  28. package/dist/border-beam/border-beam.meta.d.ts +8 -0
  29. package/dist/border-beam/border-beam.meta.js +7 -0
  30. package/dist/breadcrumb/breadcrumb.meta.d.ts +8 -0
  31. package/dist/breadcrumb/breadcrumb.meta.js +7 -0
  32. package/dist/button/button.meta.d.ts +8 -0
  33. package/dist/button/button.meta.js +7 -0
  34. package/dist/button/button.svelte +57 -2
  35. package/dist/button/button.svelte.d.ts +10 -1
  36. package/dist/button/index.d.ts +3 -1
  37. package/dist/button-group/button-group.meta.d.ts +8 -0
  38. package/dist/button-group/button-group.meta.js +7 -0
  39. package/dist/calendar/calendar.meta.d.ts +8 -0
  40. package/dist/calendar/calendar.meta.js +7 -0
  41. package/dist/card/card-content.svelte +1 -1
  42. package/dist/card/card-footer.svelte +1 -1
  43. package/dist/card/card-header.svelte +1 -1
  44. package/dist/card/card-root.svelte +28 -18
  45. package/dist/card/card-root.svelte.d.ts +1 -0
  46. package/dist/card/card.meta.d.ts +8 -0
  47. package/dist/card/card.meta.js +7 -0
  48. package/dist/carousel/carousel.meta.d.ts +8 -0
  49. package/dist/carousel/carousel.meta.js +7 -0
  50. package/dist/chart/chart.meta.d.ts +8 -0
  51. package/dist/chart/chart.meta.js +7 -0
  52. package/dist/chat-thread/chat-thread.meta.d.ts +8 -0
  53. package/dist/chat-thread/chat-thread.meta.js +7 -0
  54. package/dist/checkbox/checkbox.meta.d.ts +8 -0
  55. package/dist/checkbox/checkbox.meta.js +7 -0
  56. package/dist/chip/chip.meta.d.ts +8 -0
  57. package/dist/chip/chip.meta.js +7 -0
  58. package/dist/chip-group/chip-group-label.svelte +26 -0
  59. package/dist/chip-group/chip-group-label.svelte.d.ts +8 -0
  60. package/dist/chip-group/chip-group-root.svelte +47 -9
  61. package/dist/chip-group/chip-group-root.svelte.d.ts +2 -0
  62. package/dist/chip-group/chip-group.meta.d.ts +8 -0
  63. package/dist/chip-group/chip-group.meta.js +18 -0
  64. package/dist/chip-group/index.d.ts +4 -1
  65. package/dist/chip-group/index.js +3 -1
  66. package/dist/chromatic-aberration/chromatic-aberration.meta.d.ts +8 -0
  67. package/dist/chromatic-aberration/chromatic-aberration.meta.js +7 -0
  68. package/dist/chromatic-shift/chromatic-shift.meta.d.ts +8 -0
  69. package/dist/chromatic-shift/chromatic-shift.meta.js +7 -0
  70. package/dist/clipboard/clipboard.meta.d.ts +8 -0
  71. package/dist/clipboard/clipboard.meta.js +7 -0
  72. package/dist/code-block/code-block.meta.d.ts +8 -0
  73. package/dist/code-block/code-block.meta.js +7 -0
  74. package/dist/collapsible/collapsible.meta.d.ts +8 -0
  75. package/dist/collapsible/collapsible.meta.js +7 -0
  76. package/dist/color-picker/color-picker.meta.d.ts +8 -0
  77. package/dist/color-picker/color-picker.meta.js +7 -0
  78. package/dist/combobox/combobox.meta.d.ts +8 -0
  79. package/dist/combobox/combobox.meta.js +7 -0
  80. package/dist/command-palette/command-palette-dialog-root.svelte +2 -1
  81. package/dist/command-palette/command-palette-item.svelte +1 -1
  82. package/dist/command-palette/command-palette.meta.d.ts +8 -0
  83. package/dist/command-palette/command-palette.meta.js +7 -0
  84. package/dist/container/container.meta.d.ts +8 -0
  85. package/dist/container/container.meta.js +7 -0
  86. package/dist/context-menu/context-menu-content.svelte +2 -1
  87. package/dist/context-menu/context-menu.meta.d.ts +8 -0
  88. package/dist/context-menu/context-menu.meta.js +7 -0
  89. package/dist/data-grid/data-grid.meta.d.ts +8 -0
  90. package/dist/data-grid/data-grid.meta.js +7 -0
  91. package/dist/date-field/date-field.meta.d.ts +8 -0
  92. package/dist/date-field/date-field.meta.js +7 -0
  93. package/dist/date-picker/date-picker.meta.d.ts +8 -0
  94. package/dist/date-picker/date-picker.meta.js +7 -0
  95. package/dist/date-range-picker/date-range-picker.meta.d.ts +8 -0
  96. package/dist/date-range-picker/date-range-picker.meta.js +7 -0
  97. package/dist/date-time-input/date-time-input.meta.d.ts +8 -0
  98. package/dist/date-time-input/date-time-input.meta.js +7 -0
  99. package/dist/description-list/description-list.meta.d.ts +8 -0
  100. package/dist/description-list/description-list.meta.js +7 -0
  101. package/dist/diagram/diagram.meta.d.ts +8 -0
  102. package/dist/diagram/diagram.meta.js +7 -0
  103. package/dist/dialog/dialog.meta.d.ts +8 -0
  104. package/dist/dialog/dialog.meta.js +7 -0
  105. package/dist/displacement/displacement.meta.d.ts +8 -0
  106. package/dist/displacement/displacement.meta.js +7 -0
  107. package/dist/drag-and-drop/drag-and-drop.meta.d.ts +8 -0
  108. package/dist/drag-and-drop/drag-and-drop.meta.js +7 -0
  109. package/dist/drawer/drawer.meta.d.ts +8 -0
  110. package/dist/drawer/drawer.meta.js +7 -0
  111. package/dist/drop-zone/drop-zone.meta.d.ts +8 -0
  112. package/dist/drop-zone/drop-zone.meta.js +7 -0
  113. package/dist/dropdown-menu/dropdown-menu-content.svelte +4 -2
  114. package/dist/dropdown-menu/dropdown-menu.meta.d.ts +8 -0
  115. package/dist/dropdown-menu/dropdown-menu.meta.js +7 -0
  116. package/dist/enter/enter.meta.d.ts +8 -0
  117. package/dist/enter/enter.meta.js +7 -0
  118. package/dist/enter/index.d.ts +1 -0
  119. package/dist/enter/index.js +1 -0
  120. package/dist/exit/exit.meta.d.ts +8 -0
  121. package/dist/exit/exit.meta.js +7 -0
  122. package/dist/exit/index.d.ts +1 -0
  123. package/dist/exit/index.js +1 -0
  124. package/dist/field/field-root.svelte +7 -0
  125. package/dist/field/field-root.svelte.d.ts +1 -0
  126. package/dist/field/field.meta.d.ts +8 -0
  127. package/dist/field/field.meta.js +7 -0
  128. package/dist/fieldset/fieldset.meta.d.ts +8 -0
  129. package/dist/fieldset/fieldset.meta.js +7 -0
  130. package/dist/file-select/file-select.meta.d.ts +8 -0
  131. package/dist/file-select/file-select.meta.js +7 -0
  132. package/dist/file-upload/file-upload.meta.d.ts +8 -0
  133. package/dist/file-upload/file-upload.meta.js +7 -0
  134. package/dist/flip-card/flip-card.meta.d.ts +8 -0
  135. package/dist/flip-card/flip-card.meta.js +7 -0
  136. package/dist/float-button/float-button.meta.d.ts +8 -0
  137. package/dist/float-button/float-button.meta.js +7 -0
  138. package/dist/focus-trap/focus-trap.meta.d.ts +8 -0
  139. package/dist/focus-trap/focus-trap.meta.js +7 -0
  140. package/dist/format-bytes/format-bytes.meta.d.ts +8 -0
  141. package/dist/format-bytes/format-bytes.meta.js +7 -0
  142. package/dist/format-date/format-date.meta.d.ts +8 -0
  143. package/dist/format-date/format-date.meta.js +7 -0
  144. package/dist/format-date/format-date.svelte +1 -0
  145. package/dist/format-number/format-number.meta.d.ts +8 -0
  146. package/dist/format-number/format-number.meta.js +7 -0
  147. package/dist/gauge/gauge.meta.d.ts +8 -0
  148. package/dist/gauge/gauge.meta.js +7 -0
  149. package/dist/glass/glass.meta.d.ts +8 -0
  150. package/dist/glass/glass.meta.js +7 -0
  151. package/dist/glow/glow.meta.d.ts +8 -0
  152. package/dist/glow/glow.meta.js +7 -0
  153. package/dist/god-rays/god-rays.meta.d.ts +8 -0
  154. package/dist/god-rays/god-rays.meta.js +7 -0
  155. package/dist/gradient-mesh/gradient-mesh.meta.d.ts +8 -0
  156. package/dist/gradient-mesh/gradient-mesh.meta.js +7 -0
  157. package/dist/halftone/halftone.meta.d.ts +8 -0
  158. package/dist/halftone/halftone.meta.js +7 -0
  159. package/dist/heading/heading.meta.d.ts +8 -0
  160. package/dist/heading/heading.meta.js +7 -0
  161. package/dist/heading/heading.svelte +28 -6
  162. package/dist/heading/heading.svelte.d.ts +1 -0
  163. package/dist/heading/index.d.ts +6 -0
  164. package/dist/hotkey/hotkey.meta.d.ts +8 -0
  165. package/dist/hotkey/hotkey.meta.js +7 -0
  166. package/dist/hover-card/hover-card.meta.d.ts +8 -0
  167. package/dist/hover-card/hover-card.meta.js +7 -0
  168. package/dist/icon/icon.meta.d.ts +8 -0
  169. package/dist/icon/icon.meta.js +7 -0
  170. package/dist/icon/icon.svelte +1 -0
  171. package/dist/icon-swap/icon-swap.meta.d.ts +8 -0
  172. package/dist/icon-swap/icon-swap.meta.js +7 -0
  173. package/dist/icon-swap/icon-swap.svelte +47 -0
  174. package/dist/icon-swap/icon-swap.svelte.d.ts +9 -0
  175. package/dist/icon-swap/index.d.ts +1 -0
  176. package/dist/icon-swap/index.js +1 -0
  177. package/dist/image/image.meta.d.ts +8 -0
  178. package/dist/image/image.meta.js +7 -0
  179. package/dist/image/image.svelte +2 -1
  180. package/dist/image-comparison/image-comparison.meta.d.ts +8 -0
  181. package/dist/image-comparison/image-comparison.meta.js +7 -0
  182. package/dist/index.d.ts +8 -1
  183. package/dist/index.js +7 -0
  184. package/dist/infinite-scroll/infinite-scroll.meta.d.ts +8 -0
  185. package/dist/infinite-scroll/infinite-scroll.meta.js +7 -0
  186. package/dist/input/input.meta.d.ts +8 -0
  187. package/dist/input/input.meta.js +7 -0
  188. package/dist/input-group/input-group.meta.d.ts +8 -0
  189. package/dist/input-group/input-group.meta.js +7 -0
  190. package/dist/internal/menu-item.svelte +1 -4
  191. package/dist/internal/modal-content.svelte +3 -2
  192. package/dist/kbd/kbd.meta.d.ts +8 -0
  193. package/dist/kbd/kbd.meta.js +7 -0
  194. package/dist/label/label.meta.d.ts +8 -0
  195. package/dist/label/label.meta.js +7 -0
  196. package/dist/link/link.meta.d.ts +8 -0
  197. package/dist/link/link.meta.js +7 -0
  198. package/dist/link-preview/link-preview.meta.d.ts +8 -0
  199. package/dist/link-preview/link-preview.meta.js +7 -0
  200. package/dist/list/list.meta.d.ts +8 -0
  201. package/dist/list/list.meta.js +7 -0
  202. package/dist/listbox/listbox.meta.d.ts +8 -0
  203. package/dist/listbox/listbox.meta.js +7 -0
  204. package/dist/logo-mark/logo-mark.meta.d.ts +8 -0
  205. package/dist/logo-mark/logo-mark.meta.js +7 -0
  206. package/dist/map/map.meta.d.ts +8 -0
  207. package/dist/map/map.meta.js +7 -0
  208. package/dist/markdown-renderer/markdown-renderer.meta.d.ts +8 -0
  209. package/dist/markdown-renderer/markdown-renderer.meta.js +7 -0
  210. package/dist/marquee/marquee.meta.d.ts +8 -0
  211. package/dist/marquee/marquee.meta.js +7 -0
  212. package/dist/mask-reveal/mask-reveal.meta.d.ts +8 -0
  213. package/dist/mask-reveal/mask-reveal.meta.js +7 -0
  214. package/dist/mega-menu/mega-menu.meta.d.ts +8 -0
  215. package/dist/mega-menu/mega-menu.meta.js +7 -0
  216. package/dist/menubar/menubar-content.svelte +2 -1
  217. package/dist/menubar/menubar-item.svelte +1 -4
  218. package/dist/menubar/menubar.meta.d.ts +8 -0
  219. package/dist/menubar/menubar.meta.js +7 -0
  220. package/dist/motion/enter.d.ts +10 -0
  221. package/dist/motion/enter.js +36 -0
  222. package/dist/motion/enter.svelte +28 -0
  223. package/dist/motion/enter.svelte.d.ts +10 -0
  224. package/dist/motion/exit.svelte +20 -0
  225. package/dist/motion/exit.svelte.d.ts +7 -0
  226. package/dist/motion/index.d.ts +7 -0
  227. package/dist/motion/index.js +5 -0
  228. package/dist/motion/leave.d.ts +9 -0
  229. package/dist/motion/leave.js +32 -0
  230. package/dist/motion/motion.meta.d.ts +8 -0
  231. package/dist/motion/motion.meta.js +7 -0
  232. package/dist/motion/stagger.svelte +29 -0
  233. package/dist/motion/stagger.svelte.d.ts +9 -0
  234. package/dist/multi-select-combobox/multi-select-combobox.meta.d.ts +8 -0
  235. package/dist/multi-select-combobox/multi-select-combobox.meta.js +7 -0
  236. package/dist/navigation-menu/navigation-menu.meta.d.ts +8 -0
  237. package/dist/navigation-menu/navigation-menu.meta.js +7 -0
  238. package/dist/noise/noise.meta.d.ts +8 -0
  239. package/dist/noise/noise.meta.js +7 -0
  240. package/dist/notification-center/notification-center.meta.d.ts +8 -0
  241. package/dist/notification-center/notification-center.meta.js +7 -0
  242. package/dist/number-input/number-input.meta.d.ts +8 -0
  243. package/dist/number-input/number-input.meta.js +7 -0
  244. package/dist/numeric/index.d.ts +1 -0
  245. package/dist/numeric/index.js +1 -0
  246. package/dist/numeric/numeric.meta.d.ts +8 -0
  247. package/dist/numeric/numeric.meta.js +7 -0
  248. package/dist/numeric/numeric.svelte +49 -0
  249. package/dist/numeric/numeric.svelte.d.ts +9 -0
  250. package/dist/option-picker/option-picker.meta.d.ts +8 -0
  251. package/dist/option-picker/option-picker.meta.js +7 -0
  252. package/dist/pagination/pagination.meta.d.ts +8 -0
  253. package/dist/pagination/pagination.meta.js +7 -0
  254. package/dist/phone-input/phone-input.meta.d.ts +8 -0
  255. package/dist/phone-input/phone-input.meta.js +7 -0
  256. package/dist/pin-input/pin-input.meta.d.ts +8 -0
  257. package/dist/pin-input/pin-input.meta.js +7 -0
  258. package/dist/popover/popover-content.svelte +2 -1
  259. package/dist/popover/popover.meta.d.ts +8 -0
  260. package/dist/popover/popover.meta.js +7 -0
  261. package/dist/portal/portal.meta.d.ts +8 -0
  262. package/dist/portal/portal.meta.js +7 -0
  263. package/dist/progress/progress.meta.d.ts +8 -0
  264. package/dist/progress/progress.meta.js +7 -0
  265. package/dist/progress-ring/progress-ring.meta.d.ts +8 -0
  266. package/dist/progress-ring/progress-ring.meta.js +7 -0
  267. package/dist/prompt-input/prompt-input.meta.d.ts +8 -0
  268. package/dist/prompt-input/prompt-input.meta.js +7 -0
  269. package/dist/qr-code/qr-code.meta.d.ts +8 -0
  270. package/dist/qr-code/qr-code.meta.js +7 -0
  271. package/dist/radio-group/radio-group.meta.d.ts +8 -0
  272. package/dist/radio-group/radio-group.meta.js +7 -0
  273. package/dist/range-calendar/range-calendar.meta.d.ts +8 -0
  274. package/dist/range-calendar/range-calendar.meta.js +7 -0
  275. package/dist/rating/rating.meta.d.ts +8 -0
  276. package/dist/rating/rating.meta.js +7 -0
  277. package/dist/relative-time/relative-time.meta.d.ts +8 -0
  278. package/dist/relative-time/relative-time.meta.js +7 -0
  279. package/dist/relative-time/relative-time.svelte +1 -0
  280. package/dist/reveal/reveal.meta.d.ts +8 -0
  281. package/dist/reveal/reveal.meta.js +7 -0
  282. package/dist/rich-text-editor/rich-text-editor.meta.d.ts +8 -0
  283. package/dist/rich-text-editor/rich-text-editor.meta.js +7 -0
  284. package/dist/scroll-area/scroll-area.meta.d.ts +8 -0
  285. package/dist/scroll-area/scroll-area.meta.js +7 -0
  286. package/dist/scroll-to-top/scroll-to-top.meta.d.ts +8 -0
  287. package/dist/scroll-to-top/scroll-to-top.meta.js +7 -0
  288. package/dist/segmented-control/segmented-control.meta.d.ts +8 -0
  289. package/dist/segmented-control/segmented-control.meta.js +7 -0
  290. package/dist/select/select.meta.d.ts +8 -0
  291. package/dist/select/select.meta.js +7 -0
  292. package/dist/separator/separator.meta.d.ts +8 -0
  293. package/dist/separator/separator.meta.js +7 -0
  294. package/dist/separator/separator.svelte +17 -1
  295. package/dist/separator/separator.svelte.d.ts +1 -1
  296. package/dist/shader-canvas/shader-canvas.meta.d.ts +8 -0
  297. package/dist/shader-canvas/shader-canvas.meta.js +7 -0
  298. package/dist/shimmer/shimmer.meta.d.ts +8 -0
  299. package/dist/shimmer/shimmer.meta.js +7 -0
  300. package/dist/sidebar/sidebar.meta.d.ts +8 -0
  301. package/dist/sidebar/sidebar.meta.js +7 -0
  302. package/dist/skeleton/skeleton.meta.d.ts +8 -0
  303. package/dist/skeleton/skeleton.meta.js +7 -0
  304. package/dist/slider/slider.meta.d.ts +8 -0
  305. package/dist/slider/slider.meta.js +7 -0
  306. package/dist/spacer/spacer.meta.d.ts +8 -0
  307. package/dist/spacer/spacer.meta.js +7 -0
  308. package/dist/sparkline/sparkline.meta.d.ts +8 -0
  309. package/dist/sparkline/sparkline.meta.js +7 -0
  310. package/dist/spinner/spinner.meta.d.ts +8 -0
  311. package/dist/spinner/spinner.meta.js +7 -0
  312. package/dist/splitter/splitter.meta.d.ts +8 -0
  313. package/dist/splitter/splitter.meta.js +7 -0
  314. package/dist/spotlight/spotlight.meta.d.ts +8 -0
  315. package/dist/spotlight/spotlight.meta.js +7 -0
  316. package/dist/stagger/index.d.ts +1 -0
  317. package/dist/stagger/index.js +1 -0
  318. package/dist/stagger/stagger.meta.d.ts +8 -0
  319. package/dist/stagger/stagger.meta.js +7 -0
  320. package/dist/star-rating/star-rating.meta.d.ts +8 -0
  321. package/dist/star-rating/star-rating.meta.js +7 -0
  322. package/dist/stepper/stepper.meta.d.ts +8 -0
  323. package/dist/stepper/stepper.meta.js +7 -0
  324. package/dist/svg/svg.meta.d.ts +8 -0
  325. package/dist/svg/svg.meta.js +7 -0
  326. package/dist/table/table.meta.d.ts +8 -0
  327. package/dist/table/table.meta.js +7 -0
  328. package/dist/table-of-contents/table-of-contents.meta.d.ts +8 -0
  329. package/dist/table-of-contents/table-of-contents.meta.js +7 -0
  330. package/dist/tabs/tabs.meta.d.ts +8 -0
  331. package/dist/tabs/tabs.meta.js +7 -0
  332. package/dist/tag/tag.meta.d.ts +8 -0
  333. package/dist/tag/tag.meta.js +7 -0
  334. package/dist/tags-input/tags-input.meta.d.ts +8 -0
  335. package/dist/tags-input/tags-input.meta.js +7 -0
  336. package/dist/text/index.d.ts +6 -0
  337. package/dist/text/text.meta.d.ts +8 -0
  338. package/dist/text/text.meta.js +7 -0
  339. package/dist/text/text.svelte +24 -3
  340. package/dist/text/text.svelte.d.ts +1 -0
  341. package/dist/textarea/textarea.meta.d.ts +8 -0
  342. package/dist/textarea/textarea.meta.js +7 -0
  343. package/dist/theme-toggle/theme-toggle.meta.d.ts +8 -0
  344. package/dist/theme-toggle/theme-toggle.meta.js +7 -0
  345. package/dist/themes/aurora.css +20 -0
  346. package/dist/themes/dark.css +49 -1
  347. package/dist/themes/default.css +162 -9
  348. package/dist/themes/midnight.css +20 -0
  349. package/dist/themes/terminal.css +20 -0
  350. package/dist/time-input/time-input.meta.d.ts +8 -0
  351. package/dist/time-input/time-input.meta.js +7 -0
  352. package/dist/timeline/timeline.meta.d.ts +8 -0
  353. package/dist/timeline/timeline.meta.js +7 -0
  354. package/dist/toast/toast-root.svelte +7 -3
  355. package/dist/toast/toast.meta.d.ts +8 -0
  356. package/dist/toast/toast.meta.js +7 -0
  357. package/dist/toggle/toggle.meta.d.ts +8 -0
  358. package/dist/toggle/toggle.meta.js +7 -0
  359. package/dist/toggle-group/toggle-group.meta.d.ts +8 -0
  360. package/dist/toggle-group/toggle-group.meta.js +7 -0
  361. package/dist/toolbar/toolbar.meta.d.ts +8 -0
  362. package/dist/toolbar/toolbar.meta.js +7 -0
  363. package/dist/tooltip/tooltip-content.svelte +2 -1
  364. package/dist/tooltip/tooltip.meta.d.ts +8 -0
  365. package/dist/tooltip/tooltip.meta.js +7 -0
  366. package/dist/tour/tour.meta.d.ts +8 -0
  367. package/dist/tour/tour.meta.js +7 -0
  368. package/dist/transfer/transfer.meta.d.ts +8 -0
  369. package/dist/transfer/transfer.meta.js +7 -0
  370. package/dist/tree/tree.meta.d.ts +8 -0
  371. package/dist/tree/tree.meta.js +7 -0
  372. package/dist/typing-indicator/typing-indicator.meta.d.ts +8 -0
  373. package/dist/typing-indicator/typing-indicator.meta.js +7 -0
  374. package/dist/typography/heading.svelte +2 -1
  375. package/dist/typography/text.svelte +12 -1
  376. package/dist/typography/typography.meta.d.ts +8 -0
  377. package/dist/typography/typography.meta.js +7 -0
  378. package/dist/video-embed/video-embed.meta.d.ts +8 -0
  379. package/dist/video-embed/video-embed.meta.js +7 -0
  380. package/dist/virtual-list/virtual-list.meta.d.ts +8 -0
  381. package/dist/virtual-list/virtual-list.meta.js +7 -0
  382. package/dist/visually-hidden/visually-hidden.meta.d.ts +8 -0
  383. package/dist/visually-hidden/visually-hidden.meta.js +7 -0
  384. package/package.json +37 -4
  385. package/skills/dryui/rules/theming.md +20 -0
@@ -0,0 +1,7 @@
1
+ /** DryUI agent metadata. Consumed by @dryui/mcp/load-component-meta. */
2
+ export default {
3
+ name: 'Stepper',
4
+ description: 'Step-by-step progress indicator',
5
+ category: 'navigation',
6
+ tags: ['steps', 'wizard', 'progress', 'workflow', 'multi-step', 'form']
7
+ };
@@ -0,0 +1,8 @@
1
+ /** DryUI agent metadata. Consumed by @dryui/mcp/load-component-meta. */
2
+ declare const _default: {
3
+ name: string;
4
+ description: string;
5
+ category: string;
6
+ tags: string[];
7
+ };
8
+ export default _default;
@@ -0,0 +1,7 @@
1
+ /** DryUI agent metadata. Consumed by @dryui/mcp/load-component-meta. */
2
+ export default {
3
+ name: 'Svg',
4
+ description: 'Accessible SVG wrapper with viewBox and aria-label defaults',
5
+ category: 'utility',
6
+ tags: ['svg', 'icon', 'graphic', 'accessible', 'vector']
7
+ };
@@ -0,0 +1,8 @@
1
+ /** DryUI agent metadata. Consumed by @dryui/mcp/load-component-meta. */
2
+ declare const _default: {
3
+ name: string;
4
+ description: string;
5
+ category: string;
6
+ tags: string[];
7
+ };
8
+ export default _default;
@@ -0,0 +1,7 @@
1
+ /** DryUI agent metadata. Consumed by @dryui/mcp/load-component-meta. */
2
+ export default {
3
+ name: 'Table',
4
+ description: 'Data table with header, body, footer sections',
5
+ category: 'display',
6
+ tags: ['data', 'table', 'grid', 'rows', 'columns']
7
+ };
@@ -0,0 +1,8 @@
1
+ /** DryUI agent metadata. Consumed by @dryui/mcp/load-component-meta. */
2
+ declare const _default: {
3
+ name: string;
4
+ description: string;
5
+ category: string;
6
+ tags: string[];
7
+ };
8
+ export default _default;
@@ -0,0 +1,7 @@
1
+ /** DryUI agent metadata. Consumed by @dryui/mcp/load-component-meta. */
2
+ export default {
3
+ name: 'TableOfContents',
4
+ description: 'Auto-generated table of contents from headings',
5
+ category: 'navigation',
6
+ tags: ['toc', 'navigation', 'headings', 'scroll-spy']
7
+ };
@@ -0,0 +1,8 @@
1
+ /** DryUI agent metadata. Consumed by @dryui/mcp/load-component-meta. */
2
+ declare const _default: {
3
+ name: string;
4
+ description: string;
5
+ category: string;
6
+ tags: string[];
7
+ };
8
+ export default _default;
@@ -0,0 +1,7 @@
1
+ /** DryUI agent metadata. Consumed by @dryui/mcp/load-component-meta. */
2
+ export default {
3
+ name: 'Tabs',
4
+ description: 'Tabbed content navigation',
5
+ category: 'navigation',
6
+ tags: ['tabs', 'nav', 'switch', 'panel']
7
+ };
@@ -0,0 +1,8 @@
1
+ /** DryUI agent metadata. Consumed by @dryui/mcp/load-component-meta. */
2
+ declare const _default: {
3
+ name: string;
4
+ description: string;
5
+ category: string;
6
+ tags: string[];
7
+ };
8
+ export default _default;
@@ -0,0 +1,7 @@
1
+ /** DryUI agent metadata. Consumed by @dryui/mcp/load-component-meta. */
2
+ export default {
3
+ name: 'Tag',
4
+ description: 'Small labeled tag element with color and variant support',
5
+ category: 'display',
6
+ tags: ['tag', 'label', 'chip', 'badge', 'category', 'status']
7
+ };
@@ -0,0 +1,8 @@
1
+ /** DryUI agent metadata. Consumed by @dryui/mcp/load-component-meta. */
2
+ declare const _default: {
3
+ name: string;
4
+ description: string;
5
+ category: string;
6
+ tags: string[];
7
+ };
8
+ export default _default;
@@ -0,0 +1,7 @@
1
+ /** DryUI agent metadata. Consumed by @dryui/mcp/load-component-meta. */
2
+ export default {
3
+ name: 'TagsInput',
4
+ description: 'Input for managing a list of tags',
5
+ category: 'input',
6
+ tags: ['form', 'tags', 'chips', 'multi', 'input']
7
+ };
@@ -7,6 +7,12 @@ export interface TextProps extends HTMLAttributes<HTMLElement> {
7
7
  font?: 'sans' | 'mono';
8
8
  weight?: 'normal' | 'medium' | 'semibold' | 'bold';
9
9
  variant?: 'default' | 'label';
10
+ /**
11
+ * Caps the rendered inline size in ch units so body copy wraps on ergonomic
12
+ * measure. `false` (default) keeps the existing behaviour of no cap.
13
+ * `narrow` ≈ 48ch, `default` ≈ 65ch, `wide` ≈ 80ch.
14
+ */
15
+ maxMeasure?: 'narrow' | 'default' | 'wide' | false;
10
16
  className?: HTMLAttributes<HTMLElement>['class'];
11
17
  children: Snippet;
12
18
  }
@@ -0,0 +1,8 @@
1
+ /** DryUI agent metadata. Consumed by @dryui/mcp/load-component-meta. */
2
+ declare const _default: {
3
+ name: string;
4
+ description: string;
5
+ category: string;
6
+ tags: string[];
7
+ };
8
+ export default _default;
@@ -0,0 +1,7 @@
1
+ /** DryUI agent metadata. Consumed by @dryui/mcp/load-component-meta. */
2
+ export default {
3
+ name: 'Text',
4
+ description: 'Standalone body copy export for starter-kit typography',
5
+ category: 'display',
6
+ tags: ['text', 'copy', 'paragraph', 'typography']
7
+ };
@@ -10,6 +10,7 @@
10
10
  font?: 'sans' | 'mono';
11
11
  weight?: 'normal' | 'medium' | 'semibold' | 'bold';
12
12
  variant?: 'default' | 'label';
13
+ maxMeasure?: 'narrow' | 'default' | 'wide' | false;
13
14
  className?: HTMLAttributes<HTMLElement>['class'];
14
15
  children: Snippet;
15
16
  }
@@ -21,23 +22,28 @@
21
22
  font = 'sans',
22
23
  weight,
23
24
  variant = 'default',
25
+ maxMeasure = false,
24
26
  class: classAttr,
25
27
  className = classAttr,
26
28
  children,
27
29
  ...rest
28
30
  }: Props = $props();
31
+
32
+ let measure: 'narrow' | 'default' | 'wide' | undefined = $derived(
33
+ maxMeasure === false ? undefined : maxMeasure
34
+ );
29
35
  </script>
30
36
 
31
37
  {#if as === 'span'}
32
38
  <span
33
39
  class={className}
34
- {...variantAttrs({ color, size, font, weight: weight || undefined, variant })}
40
+ {...variantAttrs({ color, size, font, weight: weight || undefined, variant, measure })}
35
41
  {...rest}>{@render children()}</span
36
42
  >
37
43
  {:else if as === 'div'}
38
44
  <div
39
45
  class={className}
40
- {...variantAttrs({ color, size, font, weight: weight || undefined, variant })}
46
+ {...variantAttrs({ color, size, font, weight: weight || undefined, variant, measure })}
41
47
  {...rest}
42
48
  >
43
49
  {@render children()}
@@ -45,7 +51,7 @@
45
51
  {:else}
46
52
  <p
47
53
  class={className}
48
- {...variantAttrs({ color, size, font, weight: weight || undefined, variant })}
54
+ {...variantAttrs({ color, size, font, weight: weight || undefined, variant, measure })}
49
55
  {...rest}
50
56
  >
51
57
  {@render children()}
@@ -132,4 +138,19 @@
132
138
  letter-spacing: 0.05em;
133
139
  font-weight: 600;
134
140
  }
141
+
142
+ /* ── Measure (max-inline-size) ─────────────────────────────────────────────
143
+ Body copy gets wider presets than Heading so paragraphs read well
144
+ without feeling cramped. */
145
+ [data-measure='narrow'] {
146
+ max-inline-size: 48ch;
147
+ }
148
+
149
+ [data-measure='default'] {
150
+ max-inline-size: 65ch;
151
+ }
152
+
153
+ [data-measure='wide'] {
154
+ max-inline-size: 80ch;
155
+ }
135
156
  </style>
@@ -7,6 +7,7 @@ interface Props extends HTMLAttributes<HTMLElement> {
7
7
  font?: 'sans' | 'mono';
8
8
  weight?: 'normal' | 'medium' | 'semibold' | 'bold';
9
9
  variant?: 'default' | 'label';
10
+ maxMeasure?: 'narrow' | 'default' | 'wide' | false;
10
11
  className?: HTMLAttributes<HTMLElement>['class'];
11
12
  children: Snippet;
12
13
  }
@@ -0,0 +1,8 @@
1
+ /** DryUI agent metadata. Consumed by @dryui/mcp/load-component-meta. */
2
+ declare const _default: {
3
+ name: string;
4
+ description: string;
5
+ category: string;
6
+ tags: string[];
7
+ };
8
+ export default _default;
@@ -0,0 +1,7 @@
1
+ /** DryUI agent metadata. Consumed by @dryui/mcp/load-component-meta. */
2
+ export default {
3
+ name: 'Textarea',
4
+ description: 'Multi-line text input',
5
+ category: 'input',
6
+ tags: ['form', 'text', 'multiline', 'textarea']
7
+ };
@@ -0,0 +1,8 @@
1
+ /** DryUI agent metadata. Consumed by @dryui/mcp/load-component-meta. */
2
+ declare const _default: {
3
+ name: string;
4
+ description: string;
5
+ category: string;
6
+ tags: string[];
7
+ };
8
+ export default _default;
@@ -0,0 +1,7 @@
1
+ /** DryUI agent metadata. Consumed by @dryui/mcp/load-component-meta. */
2
+ export default {
3
+ name: 'ThemeToggle',
4
+ description: 'Persisted light/dark theme switcher with system-preference fallback',
5
+ category: 'action',
6
+ tags: ['theme', 'dark-mode', 'light-mode', 'toggle', 'switcher', 'preference']
7
+ };
@@ -167,6 +167,26 @@
167
167
  --dry-shadow-brand: 0 4px 14px hsla(15, 90%, 70%, 0.18), 0 2px 6px hsla(15, 90%, 70%, 0.1);
168
168
  --dry-shadow-accent: 0 4px 14px hsla(38, 88%, 68%, 0.18), 0 2px 6px hsla(38, 88%, 68%, 0.1);
169
169
 
170
+ /* ─── Utility shadows — warm dark edge + ink layers ─────────────── */
171
+ --dry-shadow-sm:
172
+ 0px 0px 0px 1px hsla(30, 30%, 95%, 0.06), 0px 1px 2px -1px hsla(20, 40%, 5%, 0.45),
173
+ 0px 2px 4px 0px hsla(20, 40%, 5%, 0.35);
174
+ --dry-shadow-md:
175
+ 0px 0px 0px 1px hsla(30, 30%, 95%, 0.07), 0px 2px 4px -1px hsla(20, 40%, 5%, 0.5),
176
+ 0px 4px 8px -2px hsla(20, 40%, 5%, 0.35);
177
+ --dry-shadow-lg:
178
+ 0px 0px 0px 1px hsla(30, 30%, 95%, 0.08), 0px 4px 8px -2px hsla(20, 40%, 5%, 0.55),
179
+ 0px 8px 20px -4px hsla(20, 40%, 5%, 0.45);
180
+ --dry-shadow-xl:
181
+ 0px 0px 0px 1px hsla(30, 30%, 95%, 0.08), 0px 8px 16px -4px hsla(20, 40%, 5%, 0.6),
182
+ 0px 20px 40px -8px hsla(20, 40%, 5%, 0.5);
183
+ --dry-shadow-sm-hover:
184
+ 0px 0px 0px 1px hsla(30, 30%, 95%, 0.1), 0px 1px 2px -1px hsla(20, 40%, 5%, 0.5),
185
+ 0px 2px 4px 0px hsla(20, 40%, 5%, 0.4);
186
+ --dry-shadow-md-hover:
187
+ 0px 0px 0px 1px hsla(30, 30%, 95%, 0.1), 0px 2px 4px -1px hsla(20, 40%, 5%, 0.55),
188
+ 0px 4px 8px -2px hsla(20, 40%, 5%, 0.4);
189
+
170
190
  /* ─── Glass — dark warm frosted ───────────────────────────────── */
171
191
  --dry-glass-tint: hsla(20, 14%, 12%, 0.7);
172
192
  --dry-glass-opacity: 62%;
@@ -157,6 +157,26 @@
157
157
  --dry-shadow-brand: 0 4px 14px hsla(230, 100%, 82%, 0.15), 0 2px 6px hsla(230, 100%, 82%, 0.1);
158
158
  --dry-shadow-accent: 0 4px 14px hsla(25, 85%, 68%, 0.15), 0 2px 6px hsla(25, 85%, 68%, 0.1);
159
159
 
160
+ /* ─── Utility shadows (dark) — edge reads white, layers stay ink ── */
161
+ --dry-shadow-sm:
162
+ 0px 0px 0px 1px rgba(255, 255, 255, 0.06), 0px 1px 2px -1px rgba(0, 0, 0, 0.4),
163
+ 0px 2px 4px 0px rgba(0, 0, 0, 0.3);
164
+ --dry-shadow-md:
165
+ 0px 0px 0px 1px rgba(255, 255, 255, 0.07), 0px 2px 4px -1px rgba(0, 0, 0, 0.45),
166
+ 0px 4px 8px -2px rgba(0, 0, 0, 0.3);
167
+ --dry-shadow-lg:
168
+ 0px 0px 0px 1px rgba(255, 255, 255, 0.08), 0px 4px 8px -2px rgba(0, 0, 0, 0.5),
169
+ 0px 8px 20px -4px rgba(0, 0, 0, 0.4);
170
+ --dry-shadow-xl:
171
+ 0px 0px 0px 1px rgba(255, 255, 255, 0.08), 0px 8px 16px -4px rgba(0, 0, 0, 0.55),
172
+ 0px 20px 40px -8px rgba(0, 0, 0, 0.5);
173
+ --dry-shadow-sm-hover:
174
+ 0px 0px 0px 1px rgba(255, 255, 255, 0.1), 0px 1px 2px -1px rgba(0, 0, 0, 0.45),
175
+ 0px 2px 4px 0px rgba(0, 0, 0, 0.35);
176
+ --dry-shadow-md-hover:
177
+ 0px 0px 0px 1px rgba(255, 255, 255, 0.1), 0px 2px 4px -1px rgba(0, 0, 0, 0.5),
178
+ 0px 4px 8px -2px rgba(0, 0, 0, 0.35);
179
+
160
180
  /* ─── Overlay backdrops ───────────────────────────────────────── */
161
181
  --dry-color-overlay-backdrop: hsla(0, 0%, 0%, 0.6);
162
182
  --dry-color-overlay-backdrop-strong: hsla(0, 0%, 0%, 0.75);
@@ -217,7 +237,15 @@
217
237
  --dry-grain-blend: soft-light;
218
238
  }
219
239
 
220
- .theme-auto {
240
+ /* When `.theme-auto` is combined with `data-theme="light"`, the explicit
241
+ `data-theme` wins — do NOT apply dark tokens under that combo, even on a
242
+ dark-preferring OS. Without this guard, `<html class="theme-auto" data-theme="light">`
243
+ on a dark OS would still resolve to dark tokens because the media query
244
+ below fires regardless of the attribute. Explicit `data-theme="dark"` is
245
+ already handled by the rule above; this class only drives the system-aware
246
+ auto behaviour when no explicit override is present (or when the override is
247
+ explicitly dark). */
248
+ .theme-auto:not([data-theme='light']) {
221
249
  @media (prefers-color-scheme: dark) {
222
250
  & {
223
251
  /* ─── Neutral ─────────────────────────────────────────────────── */
@@ -379,6 +407,26 @@
379
407
  0 4px 14px hsla(230, 100%, 82%, 0.15), 0 2px 6px hsla(230, 100%, 82%, 0.1);
380
408
  --dry-shadow-accent: 0 4px 14px hsla(25, 85%, 68%, 0.15), 0 2px 6px hsla(25, 85%, 68%, 0.1);
381
409
 
410
+ /* ─── Utility shadows (dark auto) ─────────────────────────────── */
411
+ --dry-shadow-sm:
412
+ 0px 0px 0px 1px rgba(255, 255, 255, 0.06), 0px 1px 2px -1px rgba(0, 0, 0, 0.4),
413
+ 0px 2px 4px 0px rgba(0, 0, 0, 0.3);
414
+ --dry-shadow-md:
415
+ 0px 0px 0px 1px rgba(255, 255, 255, 0.07), 0px 2px 4px -1px rgba(0, 0, 0, 0.45),
416
+ 0px 4px 8px -2px rgba(0, 0, 0, 0.3);
417
+ --dry-shadow-lg:
418
+ 0px 0px 0px 1px rgba(255, 255, 255, 0.08), 0px 4px 8px -2px rgba(0, 0, 0, 0.5),
419
+ 0px 8px 20px -4px rgba(0, 0, 0, 0.4);
420
+ --dry-shadow-xl:
421
+ 0px 0px 0px 1px rgba(255, 255, 255, 0.08), 0px 8px 16px -4px rgba(0, 0, 0, 0.55),
422
+ 0px 20px 40px -8px rgba(0, 0, 0, 0.5);
423
+ --dry-shadow-sm-hover:
424
+ 0px 0px 0px 1px rgba(255, 255, 255, 0.1), 0px 1px 2px -1px rgba(0, 0, 0, 0.45),
425
+ 0px 2px 4px 0px rgba(0, 0, 0, 0.35);
426
+ --dry-shadow-md-hover:
427
+ 0px 0px 0px 1px rgba(255, 255, 255, 0.1), 0px 2px 4px -1px rgba(0, 0, 0, 0.5),
428
+ 0px 4px 8px -2px rgba(0, 0, 0, 0.35);
429
+
382
430
  /* ─── Overlay backdrops ───────────────────────────────────────── */
383
431
  --dry-color-overlay-backdrop: hsla(0, 0%, 0%, 0.6);
384
432
  --dry-color-overlay-backdrop-strong: hsla(0, 0%, 0%, 0.75);
@@ -10,6 +10,8 @@ html {
10
10
  color: var(--dry-color-text-strong);
11
11
  background: var(--dry-color-bg-base);
12
12
  -webkit-font-smoothing: antialiased;
13
+ -moz-osx-font-smoothing: grayscale;
14
+ text-rendering: optimizeLegibility;
13
15
  }
14
16
 
15
17
  body {
@@ -17,6 +19,13 @@ body {
17
19
  min-height: 100dvh;
18
20
  }
19
21
 
22
+ :where(h1, h2, h3, h4, h5, h6) {
23
+ text-wrap: balance;
24
+ }
25
+ :where(p) {
26
+ text-wrap: pretty;
27
+ }
28
+
20
29
  code,
21
30
  pre,
22
31
  kbd,
@@ -221,6 +230,7 @@ samp {
221
230
 
222
231
  /* ─── Radius ──────────────────────────────────────────────────── */
223
232
  --dry-radius-none: 0;
233
+ --dry-radius-xs: 2px;
224
234
  --dry-radius-sm: 4px;
225
235
  --dry-radius-md: 8px;
226
236
  --dry-radius-lg: 8px;
@@ -228,6 +238,55 @@ samp {
228
238
  --dry-radius-2xl: 16px;
229
239
  --dry-radius-full: 9999px;
230
240
 
241
+ /* ─── Concentric radius ─────────────────────────────────────────
242
+ Per-container outer radii + the padding each container wraps
243
+ its children in. The derived `--dry-radius-nested-*` tokens
244
+ below are what children inside the padded region should use
245
+ so inner corners sit concentric with the outer edge. */
246
+ --dry-radius-card: var(--dry-radius-2xl);
247
+ --dry-radius-dialog: var(--dry-radius-2xl);
248
+ --dry-radius-popover: var(--dry-radius-xl);
249
+ --dry-radius-sheet: var(--dry-radius-2xl);
250
+ --dry-radius-toast: var(--dry-radius-lg);
251
+ --dry-radius-tooltip: var(--dry-radius-md);
252
+
253
+ --dry-padding-card: var(--dry-space-8);
254
+ --dry-padding-dialog: var(--dry-space-6);
255
+ --dry-padding-popover: var(--dry-space-2);
256
+ --dry-padding-sheet: var(--dry-space-6);
257
+ --dry-padding-toast: var(--dry-space-3);
258
+ --dry-padding-tooltip: var(--dry-space-2);
259
+ --dry-padding-field: var(--dry-space-4);
260
+
261
+ --dry-radius-nested-card: max(
262
+ var(--dry-radius-sm),
263
+ calc(var(--dry-radius-card) - var(--dry-padding-card))
264
+ );
265
+ --dry-radius-nested-dialog: max(
266
+ var(--dry-radius-sm),
267
+ calc(var(--dry-radius-dialog) - var(--dry-padding-dialog))
268
+ );
269
+ --dry-radius-nested-popover: max(
270
+ var(--dry-radius-xs),
271
+ calc(var(--dry-radius-popover) - var(--dry-padding-popover))
272
+ );
273
+ --dry-radius-nested-sheet: max(
274
+ var(--dry-radius-sm),
275
+ calc(var(--dry-radius-sheet) - var(--dry-padding-sheet))
276
+ );
277
+ --dry-radius-nested-toast: max(
278
+ var(--dry-radius-xs),
279
+ calc(var(--dry-radius-toast) - var(--dry-padding-toast))
280
+ );
281
+ --dry-radius-nested-tooltip: max(
282
+ var(--dry-radius-xs),
283
+ calc(var(--dry-radius-tooltip) - var(--dry-padding-tooltip))
284
+ );
285
+ --dry-radius-nested-field: max(
286
+ var(--dry-radius-sm),
287
+ calc(var(--dry-radius-md) - var(--dry-padding-field))
288
+ );
289
+
231
290
  /* ─── Typography ──────────────────────────────────────────────── */
232
291
  --dry-font-sans:
233
292
  ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto,
@@ -375,6 +434,50 @@ samp {
375
434
  --dry-stagger-step: 60ms;
376
435
  --dry-stagger-max: 8; /* cap delay so very long lists don't take forever */
377
436
 
437
+ /* ─── Entrance motion ──────────────────────────────────────────
438
+ Dramatic one-shot reveal (hero sections, page loads). Distinct
439
+ from `--dry-duration-entrance` which drives ambient component
440
+ mounts. `dry-enter` keyframe + `.dry-enter` class below consume
441
+ these tokens. */
442
+ --dry-enter-translate: 8px;
443
+ --dry-enter-blur: 5px;
444
+ --dry-enter-duration: 800ms;
445
+ --dry-enter-ease: cubic-bezier(0.25, 0.46, 0.45, 0.94);
446
+ --dry-enter-stagger-section: 100ms;
447
+ --dry-enter-stagger-word: 80ms;
448
+ --dry-enter-stagger-letter: 40ms;
449
+ --dry-enter-stagger-max: 16;
450
+
451
+ /* ─── Exit motion ──────────────────────────────────────────────
452
+ Subtle dismissal — small fixed offset, not full container
453
+ travel. Consumed by the `leave` Svelte transition and any
454
+ overlay primitive using `out:leave`. */
455
+ --dry-exit-translate: 12px;
456
+ --dry-exit-blur: 4px;
457
+ --dry-exit-duration: var(--dry-duration-slow);
458
+ --dry-exit-ease: var(--dry-ease-out);
459
+
460
+ /* ─── Icon swap ────────────────────────────────────────────────
461
+ Motion for `<IconSwap>` when one icon replaces another
462
+ (copy ↔ check, play ↔ pause). Uses the same retarget-friendly
463
+ transition as `[data-dry-icon-reveal]`. */
464
+ --dry-icon-swap-duration: var(--dry-duration-fast);
465
+ --dry-icon-swap-ease: var(--dry-ease-spring-snappy);
466
+ --dry-icon-swap-scale-out: 0.85;
467
+ --dry-icon-swap-blur-out: 2px;
468
+
469
+ /* ─── Optical offset ───────────────────────────────────────────
470
+ Small horizontal nudge used by `:has()` selectors on Button,
471
+ Chip, etc. to shift padding on the icon side so the label
472
+ reads visually centered. */
473
+ --dry-optical-icon-offset: 0.125rem;
474
+
475
+ /* ─── Numeric variant ──────────────────────────────────────────
476
+ Indirection layer so `.dry-tabular-nums` and the `Numeric`
477
+ primitive can be swapped to `slashed-zero tabular-nums` or
478
+ similar without a code sweep. */
479
+ --dry-numeric-variant: tabular-nums;
480
+
378
481
  /* ─── Glass surface ───────────────────────────────────────────── */
379
482
  --dry-glass-blur: 12px;
380
483
  --dry-glass-tint: var(--dry-color-bg-raised);
@@ -435,17 +538,29 @@ samp {
435
538
  --dry-tracking-wide: 0.05em;
436
539
  --dry-tracking-wider: 0.1em;
437
540
 
438
- /* ─── Utility shadows (fixed dark ink for depth across themes) ── */
439
- --dry-shadow-sm: 0 1px 2px 0 color-mix(in srgb, #020617 12%, transparent);
541
+ /* ─── Utility shadows three-layer shadow-as-border recipe ──────
542
+ Edge + close contact + ambient, so a raised surface reads as
543
+ raised without needing a solid border. Consumers: Card, Button,
544
+ and any raised chrome that used to pair border + subtle shadow.
545
+ Hover variants ramp the first two layers slightly. */
546
+ --dry-shadow-sm:
547
+ 0px 0px 0px 1px rgba(0, 0, 0, 0.06), 0px 1px 2px -1px rgba(0, 0, 0, 0.06),
548
+ 0px 2px 4px 0px rgba(0, 0, 0, 0.04);
440
549
  --dry-shadow-md:
441
- 0 4px 6px -1px color-mix(in srgb, #020617 18%, transparent),
442
- 0 2px 4px -2px color-mix(in srgb, #020617 14%, transparent);
550
+ 0px 0px 0px 1px rgba(0, 0, 0, 0.07), 0px 2px 4px -1px rgba(0, 0, 0, 0.08),
551
+ 0px 4px 8px -2px rgba(0, 0, 0, 0.04);
443
552
  --dry-shadow-lg:
444
- 0 10px 15px -3px color-mix(in srgb, #020617 24%, transparent),
445
- 0 4px 6px -4px color-mix(in srgb, #020617 18%, transparent);
553
+ 0px 0px 0px 1px rgba(0, 0, 0, 0.08), 0px 4px 8px -2px rgba(0, 0, 0, 0.08),
554
+ 0px 8px 20px -4px rgba(0, 0, 0, 0.06);
446
555
  --dry-shadow-xl:
447
- 0 20px 25px -5px color-mix(in srgb, #020617 30%, transparent),
448
- 0 8px 10px -6px color-mix(in srgb, #020617 22%, transparent);
556
+ 0px 0px 0px 1px rgba(0, 0, 0, 0.08), 0px 8px 16px -4px rgba(0, 0, 0, 0.1),
557
+ 0px 20px 40px -8px rgba(0, 0, 0, 0.08);
558
+ --dry-shadow-sm-hover:
559
+ 0px 0px 0px 1px rgba(0, 0, 0, 0.08), 0px 1px 2px -1px rgba(0, 0, 0, 0.08),
560
+ 0px 2px 4px 0px rgba(0, 0, 0, 0.06);
561
+ --dry-shadow-md-hover:
562
+ 0px 0px 0px 1px rgba(0, 0, 0, 0.09), 0px 2px 4px -1px rgba(0, 0, 0, 0.1),
563
+ 0px 4px 8px -2px rgba(0, 0, 0, 0.06);
449
564
 
450
565
  /* ─── Layers ──────────────────────────────────────────────────── */
451
566
  --dry-layer-overlay: 50;
@@ -509,6 +624,18 @@ samp {
509
624
  --dry-motion-opacity-enter: 1;
510
625
  --dry-motion-blur-enter: 0px;
511
626
  --dry-motion-scale-enter: 1;
627
+ --dry-enter-translate: 0px;
628
+ --dry-enter-blur: 0px;
629
+ --dry-enter-duration: 1ms;
630
+ --dry-enter-stagger-section: 0ms;
631
+ --dry-enter-stagger-word: 0ms;
632
+ --dry-enter-stagger-letter: 0ms;
633
+ --dry-exit-translate: 0px;
634
+ --dry-exit-blur: 0px;
635
+ --dry-exit-duration: 1ms;
636
+ --dry-icon-swap-duration: 0ms;
637
+ --dry-icon-swap-scale-out: 1;
638
+ --dry-icon-swap-blur-out: 0px;
512
639
  }
513
640
  }
514
641
 
@@ -569,7 +696,33 @@ samp {
569
696
  }
570
697
 
571
698
  .dry-tabular-nums {
572
- font-variant-numeric: tabular-nums;
699
+ font-variant-numeric: var(--dry-numeric-variant);
700
+ }
701
+
702
+ /* ─── Entrance animation ───────────────────────────────────────────
703
+ One-shot reveal for mounted content. Keyframes here are acceptable
704
+ (non-interactive, fires once on mount). Apply via:
705
+ - `<Enter index={n}>` / `<Stagger>` components.
706
+ - `in:enter={{ index }}` Svelte transition.
707
+ - `.dry-enter` + `style="--dry-enter-index: {n}"` for hand-rolled markup. */
708
+ @keyframes dry-enter {
709
+ from {
710
+ transform: translateY(var(--dry-enter-translate));
711
+ filter: blur(var(--dry-enter-blur));
712
+ opacity: 0;
713
+ }
714
+ }
715
+ .dry-enter {
716
+ animation: dry-enter var(--dry-enter-duration) var(--dry-enter-ease) both;
717
+ animation-delay: calc(
718
+ var(--dry-enter-stagger-section) * min(var(--dry-enter-index, 0), var(--dry-enter-stagger-max))
719
+ );
720
+ }
721
+ @media (prefers-reduced-motion: reduce) {
722
+ .dry-enter {
723
+ animation-duration: 1ms;
724
+ animation-delay: 0ms;
725
+ }
573
726
  }
574
727
 
575
728
  [data-dry-icon-reveal] {
@@ -65,6 +65,26 @@
65
65
  --dry-shadow-brand: 0 4px 20px hsla(250, 70%, 75%, 0.12), 0 2px 8px hsla(250, 70%, 75%, 0.08);
66
66
  --dry-shadow-accent: 0 4px 20px hsla(350, 60%, 70%, 0.12), 0 2px 8px hsla(350, 60%, 70%, 0.08);
67
67
 
68
+ /* ─── Utility shadows — dark edge + deep ink layers ─────────────── */
69
+ --dry-shadow-sm:
70
+ 0px 0px 0px 1px rgba(255, 255, 255, 0.06), 0px 1px 2px -1px hsla(240, 40%, 3%, 0.5),
71
+ 0px 2px 4px 0px hsla(240, 40%, 3%, 0.4);
72
+ --dry-shadow-md:
73
+ 0px 0px 0px 1px rgba(255, 255, 255, 0.07), 0px 2px 4px -1px hsla(240, 40%, 3%, 0.55),
74
+ 0px 4px 8px -2px hsla(240, 40%, 3%, 0.4);
75
+ --dry-shadow-lg:
76
+ 0px 0px 0px 1px rgba(255, 255, 255, 0.08), 0px 4px 8px -2px hsla(240, 40%, 3%, 0.6),
77
+ 0px 8px 20px -4px hsla(240, 40%, 3%, 0.5);
78
+ --dry-shadow-xl:
79
+ 0px 0px 0px 1px rgba(255, 255, 255, 0.08), 0px 8px 16px -4px hsla(240, 40%, 3%, 0.6),
80
+ 0px 20px 40px -8px hsla(240, 40%, 3%, 0.55);
81
+ --dry-shadow-sm-hover:
82
+ 0px 0px 0px 1px rgba(255, 255, 255, 0.1), 0px 1px 2px -1px hsla(240, 40%, 3%, 0.55),
83
+ 0px 2px 4px 0px hsla(240, 40%, 3%, 0.45);
84
+ --dry-shadow-md-hover:
85
+ 0px 0px 0px 1px rgba(255, 255, 255, 0.1), 0px 2px 4px -1px hsla(240, 40%, 3%, 0.6),
86
+ 0px 4px 8px -2px hsla(240, 40%, 3%, 0.45);
87
+
68
88
  /* ─── Glass — the hero feature of this theme ──────────────────── */
69
89
  --dry-glass-blur: 16px;
70
90
  --dry-glass-tint: hsla(240, 15%, 10%, 0.65);
@@ -64,6 +64,26 @@
64
64
  --dry-shadow-brand: 0 0 12px hsla(145, 80%, 50%, 0.15), 0 0 4px hsla(145, 80%, 50%, 0.1);
65
65
  --dry-shadow-accent: 0 0 12px hsla(45, 90%, 55%, 0.15), 0 0 4px hsla(45, 90%, 55%, 0.1);
66
66
 
67
+ /* ─── Utility shadows — thin edge, minimal layering (CRT feel) ─── */
68
+ --dry-shadow-sm:
69
+ 0px 0px 0px 1px rgba(255, 255, 255, 0.08), 0px 1px 2px -1px rgba(0, 0, 0, 0.55),
70
+ 0px 2px 4px 0px rgba(0, 0, 0, 0.4);
71
+ --dry-shadow-md:
72
+ 0px 0px 0px 1px rgba(255, 255, 255, 0.1), 0px 2px 4px -1px rgba(0, 0, 0, 0.6),
73
+ 0px 4px 8px -2px rgba(0, 0, 0, 0.4);
74
+ --dry-shadow-lg:
75
+ 0px 0px 0px 1px rgba(255, 255, 255, 0.12), 0px 4px 8px -2px rgba(0, 0, 0, 0.65),
76
+ 0px 8px 20px -4px rgba(0, 0, 0, 0.5);
77
+ --dry-shadow-xl:
78
+ 0px 0px 0px 1px rgba(255, 255, 255, 0.14), 0px 8px 16px -4px rgba(0, 0, 0, 0.7),
79
+ 0px 20px 40px -8px rgba(0, 0, 0, 0.6);
80
+ --dry-shadow-sm-hover:
81
+ 0px 0px 0px 1px rgba(255, 255, 255, 0.12), 0px 1px 2px -1px rgba(0, 0, 0, 0.6),
82
+ 0px 2px 4px 0px rgba(0, 0, 0, 0.45);
83
+ --dry-shadow-md-hover:
84
+ 0px 0px 0px 1px rgba(255, 255, 255, 0.14), 0px 2px 4px -1px rgba(0, 0, 0, 0.65),
85
+ 0px 4px 8px -2px rgba(0, 0, 0, 0.45);
86
+
67
87
  /* ─── Glass — minimal, tinted dark ────────────────────────────── */
68
88
  --dry-glass-blur: 8px;
69
89
  --dry-glass-tint: hsla(0, 0%, 4%, 0.85);
@@ -0,0 +1,8 @@
1
+ /** DryUI agent metadata. Consumed by @dryui/mcp/load-component-meta. */
2
+ declare const _default: {
3
+ name: string;
4
+ description: string;
5
+ category: string;
6
+ tags: string[];
7
+ };
8
+ export default _default;