@dryui/ui 1.8.0 → 2.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 (419) 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-root.svelte +2 -2
  8. package/dist/alert-dialog/alert-dialog.meta.d.ts +8 -0
  9. package/dist/alert-dialog/alert-dialog.meta.js +7 -0
  10. package/dist/alpha-slider/alpha-slider.meta.d.ts +8 -0
  11. package/dist/alpha-slider/alpha-slider.meta.js +7 -0
  12. package/dist/app-frame/app-frame.meta.d.ts +8 -0
  13. package/dist/app-frame/app-frame.meta.js +7 -0
  14. package/dist/aspect-ratio/aspect-ratio.meta.d.ts +8 -0
  15. package/dist/aspect-ratio/aspect-ratio.meta.js +7 -0
  16. package/dist/aurora/aurora.meta.d.ts +8 -0
  17. package/dist/aurora/aurora.meta.js +7 -0
  18. package/dist/avatar/avatar.meta.d.ts +8 -0
  19. package/dist/avatar/avatar.meta.js +7 -0
  20. package/dist/avatar/avatar.svelte +4 -1
  21. package/dist/backdrop/backdrop.meta.d.ts +8 -0
  22. package/dist/backdrop/backdrop.meta.js +7 -0
  23. package/dist/badge/badge.meta.d.ts +8 -0
  24. package/dist/badge/badge.meta.js +7 -0
  25. package/dist/badge/badge.svelte +50 -31
  26. package/dist/badge/badge.svelte.d.ts +6 -0
  27. package/dist/beam/beam.meta.d.ts +8 -0
  28. package/dist/beam/beam.meta.js +7 -0
  29. package/dist/border-beam/border-beam.meta.d.ts +8 -0
  30. package/dist/border-beam/border-beam.meta.js +7 -0
  31. package/dist/breadcrumb/breadcrumb.meta.d.ts +8 -0
  32. package/dist/breadcrumb/breadcrumb.meta.js +7 -0
  33. package/dist/button/button.meta.d.ts +8 -0
  34. package/dist/button/button.meta.js +7 -0
  35. package/dist/button/button.svelte +91 -36
  36. package/dist/button/button.svelte.d.ts +7 -0
  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.meta.d.ts +8 -0
  59. package/dist/chip-group/chip-group.meta.js +18 -0
  60. package/dist/chromatic-aberration/chromatic-aberration.meta.d.ts +8 -0
  61. package/dist/chromatic-aberration/chromatic-aberration.meta.js +7 -0
  62. package/dist/chromatic-aberration/chromatic-aberration.svelte +2 -2
  63. package/dist/chromatic-shift/chromatic-shift.meta.d.ts +8 -0
  64. package/dist/chromatic-shift/chromatic-shift.meta.js +7 -0
  65. package/dist/clipboard/clipboard.meta.d.ts +8 -0
  66. package/dist/clipboard/clipboard.meta.js +7 -0
  67. package/dist/code-block/code-block.meta.d.ts +8 -0
  68. package/dist/code-block/code-block.meta.js +7 -0
  69. package/dist/collapsible/collapsible-root.svelte +3 -2
  70. package/dist/collapsible/collapsible.meta.d.ts +8 -0
  71. package/dist/collapsible/collapsible.meta.js +7 -0
  72. package/dist/collapsible/context.svelte.d.ts +1 -2
  73. package/dist/collapsible/context.svelte.js +1 -2
  74. package/dist/color-picker/color-picker-channel-input.svelte +1 -0
  75. package/dist/color-picker/color-picker.meta.d.ts +8 -0
  76. package/dist/color-picker/color-picker.meta.js +7 -0
  77. package/dist/combobox/combobox-content.svelte +1 -0
  78. package/dist/combobox/combobox-input-root.svelte +3 -3
  79. package/dist/combobox/combobox.meta.d.ts +8 -0
  80. package/dist/combobox/combobox.meta.js +7 -0
  81. package/dist/command-palette/command-palette-dialog-root.svelte +5 -4
  82. package/dist/command-palette/command-palette-item.svelte +3 -3
  83. package/dist/command-palette/command-palette.meta.d.ts +8 -0
  84. package/dist/command-palette/command-palette.meta.js +7 -0
  85. package/dist/container/container.meta.d.ts +8 -0
  86. package/dist/container/container.meta.js +7 -0
  87. package/dist/context-menu/context-menu-content.svelte +2 -1
  88. package/dist/context-menu/context-menu-root.svelte +2 -0
  89. package/dist/context-menu/context-menu.meta.d.ts +8 -0
  90. package/dist/context-menu/context-menu.meta.js +7 -0
  91. package/dist/data-grid/data-grid.meta.d.ts +8 -0
  92. package/dist/data-grid/data-grid.meta.js +7 -0
  93. package/dist/date-field/date-field-segment.svelte +26 -4
  94. package/dist/date-field/date-field.meta.d.ts +8 -0
  95. package/dist/date-field/date-field.meta.js +7 -0
  96. package/dist/date-picker/date-picker.meta.d.ts +8 -0
  97. package/dist/date-picker/date-picker.meta.js +7 -0
  98. package/dist/date-picker/datepicker-input-root.svelte +2 -0
  99. package/dist/date-range-picker/date-range-picker-root.svelte +2 -0
  100. package/dist/date-range-picker/date-range-picker.meta.d.ts +8 -0
  101. package/dist/date-range-picker/date-range-picker.meta.js +7 -0
  102. package/dist/date-time-input/date-time-input.meta.d.ts +8 -0
  103. package/dist/date-time-input/date-time-input.meta.js +7 -0
  104. package/dist/description-list/description-list.meta.d.ts +8 -0
  105. package/dist/description-list/description-list.meta.js +7 -0
  106. package/dist/diagram/diagram.meta.d.ts +8 -0
  107. package/dist/diagram/diagram.meta.js +7 -0
  108. package/dist/dialog/dialog-root.svelte +2 -2
  109. package/dist/dialog/dialog.meta.d.ts +8 -0
  110. package/dist/dialog/dialog.meta.js +7 -0
  111. package/dist/displacement/displacement.meta.d.ts +8 -0
  112. package/dist/displacement/displacement.meta.js +7 -0
  113. package/dist/drag-and-drop/drag-and-drop-root.svelte +34 -3
  114. package/dist/drag-and-drop/drag-and-drop.meta.d.ts +8 -0
  115. package/dist/drag-and-drop/drag-and-drop.meta.js +7 -0
  116. package/dist/drawer/drawer-root.svelte +2 -2
  117. package/dist/drawer/drawer.meta.d.ts +8 -0
  118. package/dist/drawer/drawer.meta.js +7 -0
  119. package/dist/drop-zone/drop-zone.meta.d.ts +8 -0
  120. package/dist/drop-zone/drop-zone.meta.js +7 -0
  121. package/dist/dropdown-menu/dropdown-menu-content.svelte +4 -2
  122. package/dist/dropdown-menu/dropdown-menu-root.svelte +2 -0
  123. package/dist/dropdown-menu/dropdown-menu.meta.d.ts +8 -0
  124. package/dist/dropdown-menu/dropdown-menu.meta.js +7 -0
  125. package/dist/enter/enter.meta.d.ts +8 -0
  126. package/dist/enter/enter.meta.js +7 -0
  127. package/dist/enter/index.d.ts +1 -0
  128. package/dist/enter/index.js +1 -0
  129. package/dist/exit/exit.meta.d.ts +8 -0
  130. package/dist/exit/exit.meta.js +7 -0
  131. package/dist/exit/index.d.ts +1 -0
  132. package/dist/exit/index.js +1 -0
  133. package/dist/field/field-root.svelte +10 -2
  134. package/dist/field/field-root.svelte.d.ts +1 -0
  135. package/dist/field/field.meta.d.ts +8 -0
  136. package/dist/field/field.meta.js +7 -0
  137. package/dist/fieldset/fieldset.meta.d.ts +8 -0
  138. package/dist/fieldset/fieldset.meta.js +7 -0
  139. package/dist/file-select/file-select-root.svelte +1 -0
  140. package/dist/file-select/file-select.meta.d.ts +8 -0
  141. package/dist/file-select/file-select.meta.js +7 -0
  142. package/dist/file-upload/file-upload-item.svelte +1 -0
  143. package/dist/file-upload/file-upload.meta.d.ts +8 -0
  144. package/dist/file-upload/file-upload.meta.js +7 -0
  145. package/dist/flip-card/flip-card.meta.d.ts +8 -0
  146. package/dist/flip-card/flip-card.meta.js +7 -0
  147. package/dist/float-button/float-button.meta.d.ts +8 -0
  148. package/dist/float-button/float-button.meta.js +7 -0
  149. package/dist/focus-trap/focus-trap.meta.d.ts +8 -0
  150. package/dist/focus-trap/focus-trap.meta.js +7 -0
  151. package/dist/format-bytes/format-bytes.meta.d.ts +8 -0
  152. package/dist/format-bytes/format-bytes.meta.js +7 -0
  153. package/dist/format-date/format-date.meta.d.ts +8 -0
  154. package/dist/format-date/format-date.meta.js +7 -0
  155. package/dist/format-date/format-date.svelte +1 -0
  156. package/dist/format-number/format-number.meta.d.ts +8 -0
  157. package/dist/format-number/format-number.meta.js +7 -0
  158. package/dist/gauge/gauge.meta.d.ts +8 -0
  159. package/dist/gauge/gauge.meta.js +7 -0
  160. package/dist/glass/glass.meta.d.ts +8 -0
  161. package/dist/glass/glass.meta.js +7 -0
  162. package/dist/glow/glow.meta.d.ts +8 -0
  163. package/dist/glow/glow.meta.js +7 -0
  164. package/dist/god-rays/god-rays.meta.d.ts +8 -0
  165. package/dist/god-rays/god-rays.meta.js +7 -0
  166. package/dist/gradient-mesh/gradient-mesh.meta.d.ts +8 -0
  167. package/dist/gradient-mesh/gradient-mesh.meta.js +7 -0
  168. package/dist/halftone/halftone.meta.d.ts +8 -0
  169. package/dist/halftone/halftone.meta.js +7 -0
  170. package/dist/heading/heading.meta.d.ts +8 -0
  171. package/dist/heading/heading.meta.js +7 -0
  172. package/dist/heading/heading.svelte +6 -2
  173. package/dist/hotkey/hotkey.meta.d.ts +8 -0
  174. package/dist/hotkey/hotkey.meta.js +7 -0
  175. package/dist/hover-card/hover-card.meta.d.ts +8 -0
  176. package/dist/hover-card/hover-card.meta.js +7 -0
  177. package/dist/icon/icon.meta.d.ts +8 -0
  178. package/dist/icon/icon.meta.js +7 -0
  179. package/dist/icon/icon.svelte +1 -0
  180. package/dist/icon-swap/icon-swap.meta.d.ts +8 -0
  181. package/dist/icon-swap/icon-swap.meta.js +7 -0
  182. package/dist/icon-swap/icon-swap.svelte +47 -0
  183. package/dist/icon-swap/icon-swap.svelte.d.ts +9 -0
  184. package/dist/icon-swap/index.d.ts +1 -0
  185. package/dist/icon-swap/index.js +1 -0
  186. package/dist/image/image.meta.d.ts +8 -0
  187. package/dist/image/image.meta.js +7 -0
  188. package/dist/image/image.svelte +4 -1
  189. package/dist/image-comparison/image-comparison.meta.d.ts +8 -0
  190. package/dist/image-comparison/image-comparison.meta.js +7 -0
  191. package/dist/index.d.ts +7 -0
  192. package/dist/index.js +7 -0
  193. package/dist/infinite-scroll/infinite-scroll.meta.d.ts +8 -0
  194. package/dist/infinite-scroll/infinite-scroll.meta.js +7 -0
  195. package/dist/input/input.meta.d.ts +8 -0
  196. package/dist/input/input.meta.js +7 -0
  197. package/dist/input-group/input-group.meta.d.ts +8 -0
  198. package/dist/input-group/input-group.meta.js +7 -0
  199. package/dist/internal/date-family-controller.svelte.d.ts +2 -1
  200. package/dist/internal/date-family-controller.svelte.js +4 -4
  201. package/dist/internal/menu-item.svelte +1 -4
  202. package/dist/internal/menu-root-state.svelte.d.ts +1 -0
  203. package/dist/internal/menu-root-state.svelte.js +2 -3
  204. package/dist/internal/modal-content.svelte +5 -2
  205. package/dist/internal/picker-popover-content.svelte +1 -0
  206. package/dist/kbd/kbd.meta.d.ts +8 -0
  207. package/dist/kbd/kbd.meta.js +7 -0
  208. package/dist/label/label.meta.d.ts +8 -0
  209. package/dist/label/label.meta.js +7 -0
  210. package/dist/link/link.meta.d.ts +8 -0
  211. package/dist/link/link.meta.js +7 -0
  212. package/dist/link-preview/link-preview-root.svelte +3 -3
  213. package/dist/link-preview/link-preview.meta.d.ts +8 -0
  214. package/dist/link-preview/link-preview.meta.js +7 -0
  215. package/dist/list/list.meta.d.ts +8 -0
  216. package/dist/list/list.meta.js +7 -0
  217. package/dist/listbox/listbox.meta.d.ts +8 -0
  218. package/dist/listbox/listbox.meta.js +7 -0
  219. package/dist/logo-mark/logo-mark.meta.d.ts +8 -0
  220. package/dist/logo-mark/logo-mark.meta.js +7 -0
  221. package/dist/logo-mark/logo-mark.svelte +1 -0
  222. package/dist/map/map.meta.d.ts +8 -0
  223. package/dist/map/map.meta.js +7 -0
  224. package/dist/markdown-renderer/markdown-renderer.meta.d.ts +8 -0
  225. package/dist/markdown-renderer/markdown-renderer.meta.js +7 -0
  226. package/dist/markdown-renderer/markdown-renderer.svelte +9 -3
  227. package/dist/markdown-renderer/markdown-renderer.svelte.d.ts +1 -1
  228. package/dist/marquee/marquee.meta.d.ts +8 -0
  229. package/dist/marquee/marquee.meta.js +7 -0
  230. package/dist/mask-reveal/mask-reveal.meta.d.ts +8 -0
  231. package/dist/mask-reveal/mask-reveal.meta.js +7 -0
  232. package/dist/mega-menu/mega-menu-item.svelte +4 -4
  233. package/dist/mega-menu/mega-menu.meta.d.ts +8 -0
  234. package/dist/mega-menu/mega-menu.meta.js +7 -0
  235. package/dist/menubar/menubar-content.svelte +3 -1
  236. package/dist/menubar/menubar-item.svelte +1 -4
  237. package/dist/menubar/menubar-menu.svelte +2 -2
  238. package/dist/menubar/menubar-root.svelte +1 -0
  239. package/dist/menubar/menubar.meta.d.ts +8 -0
  240. package/dist/menubar/menubar.meta.js +7 -0
  241. package/dist/motion/enter.d.ts +10 -0
  242. package/dist/motion/enter.js +36 -0
  243. package/dist/motion/enter.svelte +28 -0
  244. package/dist/motion/enter.svelte.d.ts +10 -0
  245. package/dist/motion/exit.svelte +20 -0
  246. package/dist/motion/exit.svelte.d.ts +7 -0
  247. package/dist/motion/index.d.ts +7 -0
  248. package/dist/motion/index.js +5 -0
  249. package/dist/motion/leave.d.ts +9 -0
  250. package/dist/motion/leave.js +32 -0
  251. package/dist/motion/motion.meta.d.ts +8 -0
  252. package/dist/motion/motion.meta.js +7 -0
  253. package/dist/motion/stagger.svelte +29 -0
  254. package/dist/motion/stagger.svelte.d.ts +9 -0
  255. package/dist/multi-select-combobox/multi-select-combobox-content.svelte +1 -0
  256. package/dist/multi-select-combobox/multi-select-combobox-item.svelte +2 -2
  257. package/dist/multi-select-combobox/multi-select-combobox-root-input.svelte +4 -3
  258. package/dist/multi-select-combobox/multi-select-combobox.meta.d.ts +8 -0
  259. package/dist/multi-select-combobox/multi-select-combobox.meta.js +7 -0
  260. package/dist/navigation-menu/context.svelte.d.ts +0 -2
  261. package/dist/navigation-menu/context.svelte.js +1 -2
  262. package/dist/navigation-menu/navigation-menu-item.svelte +5 -8
  263. package/dist/navigation-menu/navigation-menu.meta.d.ts +8 -0
  264. package/dist/navigation-menu/navigation-menu.meta.js +7 -0
  265. package/dist/noise/noise.meta.d.ts +8 -0
  266. package/dist/noise/noise.meta.js +7 -0
  267. package/dist/notification-center/notification-center-root.svelte +3 -3
  268. package/dist/notification-center/notification-center.meta.d.ts +8 -0
  269. package/dist/notification-center/notification-center.meta.js +7 -0
  270. package/dist/number-input/number-input.meta.d.ts +8 -0
  271. package/dist/number-input/number-input.meta.js +7 -0
  272. package/dist/numeric/index.d.ts +1 -0
  273. package/dist/numeric/index.js +1 -0
  274. package/dist/numeric/numeric.meta.d.ts +8 -0
  275. package/dist/numeric/numeric.meta.js +7 -0
  276. package/dist/numeric/numeric.svelte +49 -0
  277. package/dist/numeric/numeric.svelte.d.ts +9 -0
  278. package/dist/option-picker/option-picker.meta.d.ts +8 -0
  279. package/dist/option-picker/option-picker.meta.js +7 -0
  280. package/dist/pagination/pagination.meta.d.ts +8 -0
  281. package/dist/pagination/pagination.meta.js +7 -0
  282. package/dist/phone-input/phone-input.meta.d.ts +8 -0
  283. package/dist/phone-input/phone-input.meta.js +7 -0
  284. package/dist/pin-input/pin-input.meta.d.ts +8 -0
  285. package/dist/pin-input/pin-input.meta.js +7 -0
  286. package/dist/popover/popover-content.svelte +2 -1
  287. package/dist/popover/popover-root.svelte +3 -3
  288. package/dist/popover/popover.meta.d.ts +8 -0
  289. package/dist/popover/popover.meta.js +7 -0
  290. package/dist/portal/portal.meta.d.ts +8 -0
  291. package/dist/portal/portal.meta.js +7 -0
  292. package/dist/progress/progress.meta.d.ts +8 -0
  293. package/dist/progress/progress.meta.js +7 -0
  294. package/dist/progress-ring/progress-ring.meta.d.ts +8 -0
  295. package/dist/progress-ring/progress-ring.meta.js +7 -0
  296. package/dist/prompt-input/prompt-input.meta.d.ts +8 -0
  297. package/dist/prompt-input/prompt-input.meta.js +7 -0
  298. package/dist/qr-code/qr-code.meta.d.ts +8 -0
  299. package/dist/qr-code/qr-code.meta.js +7 -0
  300. package/dist/radio-group/radio-group.meta.d.ts +8 -0
  301. package/dist/radio-group/radio-group.meta.js +7 -0
  302. package/dist/radio-group/radio-group.svelte +2 -2
  303. package/dist/range-calendar/range-calendar.meta.d.ts +8 -0
  304. package/dist/range-calendar/range-calendar.meta.js +7 -0
  305. package/dist/rating/rating.meta.d.ts +8 -0
  306. package/dist/rating/rating.meta.js +7 -0
  307. package/dist/relative-time/relative-time.meta.d.ts +8 -0
  308. package/dist/relative-time/relative-time.meta.js +7 -0
  309. package/dist/relative-time/relative-time.svelte +1 -0
  310. package/dist/reveal/reveal.meta.d.ts +8 -0
  311. package/dist/reveal/reveal.meta.js +7 -0
  312. package/dist/rich-text-editor/rich-text-editor-content.svelte +14 -6
  313. package/dist/rich-text-editor/rich-text-editor-root.svelte +19 -9
  314. package/dist/rich-text-editor/rich-text-editor-root.svelte.d.ts +1 -0
  315. package/dist/rich-text-editor/rich-text-editor-toolbar-button-input.svelte +1 -0
  316. package/dist/rich-text-editor/rich-text-editor.meta.d.ts +8 -0
  317. package/dist/rich-text-editor/rich-text-editor.meta.js +7 -0
  318. package/dist/scroll-area/scroll-area.meta.d.ts +8 -0
  319. package/dist/scroll-area/scroll-area.meta.js +7 -0
  320. package/dist/scroll-to-top/scroll-to-top.meta.d.ts +8 -0
  321. package/dist/scroll-to-top/scroll-to-top.meta.js +7 -0
  322. package/dist/segmented-control/segmented-control.meta.d.ts +8 -0
  323. package/dist/segmented-control/segmented-control.meta.js +7 -0
  324. package/dist/select/select-root-input.svelte +3 -3
  325. package/dist/select/select.meta.d.ts +8 -0
  326. package/dist/select/select.meta.js +7 -0
  327. package/dist/separator/separator.meta.d.ts +8 -0
  328. package/dist/separator/separator.meta.js +7 -0
  329. package/dist/separator/separator.svelte +17 -1
  330. package/dist/separator/separator.svelte.d.ts +1 -1
  331. package/dist/shader-canvas/shader-canvas.meta.d.ts +8 -0
  332. package/dist/shader-canvas/shader-canvas.meta.js +7 -0
  333. package/dist/shimmer/shimmer.meta.d.ts +8 -0
  334. package/dist/shimmer/shimmer.meta.js +7 -0
  335. package/dist/sidebar/sidebar.meta.d.ts +8 -0
  336. package/dist/sidebar/sidebar.meta.js +7 -0
  337. package/dist/skeleton/skeleton.meta.d.ts +8 -0
  338. package/dist/skeleton/skeleton.meta.js +7 -0
  339. package/dist/slider/slider.meta.d.ts +8 -0
  340. package/dist/slider/slider.meta.js +7 -0
  341. package/dist/spacer/spacer.meta.d.ts +8 -0
  342. package/dist/spacer/spacer.meta.js +7 -0
  343. package/dist/sparkline/sparkline.meta.d.ts +8 -0
  344. package/dist/sparkline/sparkline.meta.js +7 -0
  345. package/dist/spinner/spinner.meta.d.ts +8 -0
  346. package/dist/spinner/spinner.meta.js +7 -0
  347. package/dist/splitter/splitter.meta.d.ts +8 -0
  348. package/dist/splitter/splitter.meta.js +7 -0
  349. package/dist/spotlight/spotlight.meta.d.ts +8 -0
  350. package/dist/spotlight/spotlight.meta.js +7 -0
  351. package/dist/stagger/index.d.ts +1 -0
  352. package/dist/stagger/index.js +1 -0
  353. package/dist/stagger/stagger.meta.d.ts +8 -0
  354. package/dist/stagger/stagger.meta.js +7 -0
  355. package/dist/star-rating/star-rating.meta.d.ts +8 -0
  356. package/dist/star-rating/star-rating.meta.js +7 -0
  357. package/dist/stepper/stepper.meta.d.ts +8 -0
  358. package/dist/stepper/stepper.meta.js +7 -0
  359. package/dist/svg/svg.meta.d.ts +8 -0
  360. package/dist/svg/svg.meta.js +7 -0
  361. package/dist/table/table.meta.d.ts +8 -0
  362. package/dist/table/table.meta.js +7 -0
  363. package/dist/table-of-contents/table-of-contents.meta.d.ts +8 -0
  364. package/dist/table-of-contents/table-of-contents.meta.js +7 -0
  365. package/dist/tabs/tabs.meta.d.ts +8 -0
  366. package/dist/tabs/tabs.meta.js +7 -0
  367. package/dist/tag/tag.meta.d.ts +8 -0
  368. package/dist/tag/tag.meta.js +7 -0
  369. package/dist/tags-input/tags-input-root.svelte +1 -0
  370. package/dist/tags-input/tags-input.meta.d.ts +8 -0
  371. package/dist/tags-input/tags-input.meta.js +7 -0
  372. package/dist/text/text.meta.d.ts +8 -0
  373. package/dist/text/text.meta.js +7 -0
  374. package/dist/textarea/textarea.meta.d.ts +8 -0
  375. package/dist/textarea/textarea.meta.js +7 -0
  376. package/dist/theme-toggle/theme-toggle.meta.d.ts +8 -0
  377. package/dist/theme-toggle/theme-toggle.meta.js +7 -0
  378. package/dist/themes/aurora.css +20 -0
  379. package/dist/themes/dark.css +40 -0
  380. package/dist/themes/default.css +162 -9
  381. package/dist/themes/midnight.css +20 -0
  382. package/dist/themes/terminal.css +20 -0
  383. package/dist/time-input/time-input.meta.d.ts +8 -0
  384. package/dist/time-input/time-input.meta.js +7 -0
  385. package/dist/timeline/timeline-title.svelte +6 -0
  386. package/dist/timeline/timeline.meta.d.ts +8 -0
  387. package/dist/timeline/timeline.meta.js +7 -0
  388. package/dist/toast/toast-root.svelte +8 -3
  389. package/dist/toast/toast.meta.d.ts +8 -0
  390. package/dist/toast/toast.meta.js +7 -0
  391. package/dist/toggle/toggle.meta.d.ts +8 -0
  392. package/dist/toggle/toggle.meta.js +7 -0
  393. package/dist/toggle-group/toggle-group.meta.d.ts +8 -0
  394. package/dist/toggle-group/toggle-group.meta.js +7 -0
  395. package/dist/toolbar/toolbar-root.svelte +1 -0
  396. package/dist/toolbar/toolbar.meta.d.ts +8 -0
  397. package/dist/toolbar/toolbar.meta.js +7 -0
  398. package/dist/tooltip/tooltip-content.svelte +2 -1
  399. package/dist/tooltip/tooltip-root.svelte +3 -3
  400. package/dist/tooltip/tooltip.meta.d.ts +8 -0
  401. package/dist/tooltip/tooltip.meta.js +7 -0
  402. package/dist/tour/tour.meta.d.ts +8 -0
  403. package/dist/tour/tour.meta.js +7 -0
  404. package/dist/transfer/transfer.meta.d.ts +8 -0
  405. package/dist/transfer/transfer.meta.js +7 -0
  406. package/dist/tree/tree.meta.d.ts +8 -0
  407. package/dist/tree/tree.meta.js +7 -0
  408. package/dist/typing-indicator/typing-indicator.meta.d.ts +8 -0
  409. package/dist/typing-indicator/typing-indicator.meta.js +7 -0
  410. package/dist/typography/typography.meta.d.ts +8 -0
  411. package/dist/typography/typography.meta.js +7 -0
  412. package/dist/video-embed/video-embed-button.svelte +1 -0
  413. package/dist/video-embed/video-embed.meta.d.ts +8 -0
  414. package/dist/video-embed/video-embed.meta.js +7 -0
  415. package/dist/virtual-list/virtual-list.meta.d.ts +8 -0
  416. package/dist/virtual-list/virtual-list.meta.js +7 -0
  417. package/dist/visually-hidden/visually-hidden.meta.d.ts +8 -0
  418. package/dist/visually-hidden/visually-hidden.meta.js +7 -0
  419. package/package.json +37 -4
@@ -35,6 +35,13 @@
35
35
  download?: boolean | string;
36
36
  /** Back-compat alias for `class` — matches Heading/Text ergonomics. Prefer `class`. */
37
37
  className?: HTMLButtonAttributes['class'];
38
+ /**
39
+ * Optical compensation for leading/trailing icons. When `'auto'` (default),
40
+ * the button trims its inline padding on the icon side by
41
+ * `--dry-optical-icon-offset` so the label reads visually centered against
42
+ * the icon. Set to `'off'` to disable the nudge.
43
+ */
44
+ optical?: 'auto' | 'off';
38
45
  /** Callback invoked with the rendered `<button>` or `<a>` element on mount, `null` on destroy. */
39
46
  ref?: (el: HTMLButtonElement | HTMLAnchorElement | null) => void;
40
47
  children: Snippet;
@@ -58,6 +65,7 @@
58
65
  onclick,
59
66
  class: classAttr,
60
67
  className = classAttr,
68
+ optical = 'auto',
61
69
  ref,
62
70
  children,
63
71
  ...rest
@@ -73,9 +81,33 @@
73
81
  (onclick as ((event: MouseEvent) => void) | undefined)?.(event);
74
82
  }
75
83
 
76
- function attachRef(node: HTMLButtonElement | HTMLAnchorElement) {
84
+ function syncIconEdgeAttrs(node: HTMLButtonElement | HTMLAnchorElement) {
85
+ const children = Array.from(node.children).filter(
86
+ (child): child is HTMLElement => child instanceof HTMLElement
87
+ );
88
+ const firstChild = children[0];
89
+ const lastChild = children[children.length - 1];
90
+
91
+ node.toggleAttribute('data-icon-start', firstChild?.hasAttribute('data-dry-icon') === true);
92
+ node.toggleAttribute('data-icon-end', lastChild?.hasAttribute('data-dry-icon') === true);
93
+ }
94
+
95
+ function attachButton(node: HTMLButtonElement | HTMLAnchorElement) {
77
96
  ref?.(node);
78
- return () => ref?.(null);
97
+ syncIconEdgeAttrs(node);
98
+
99
+ const observer = new MutationObserver(() => syncIconEdgeAttrs(node));
100
+ observer.observe(node, {
101
+ attributeFilter: ['data-dry-icon'],
102
+ attributes: true,
103
+ childList: true,
104
+ subtree: true
105
+ });
106
+
107
+ return () => {
108
+ observer.disconnect();
109
+ ref?.(null);
110
+ };
79
111
  }
80
112
  </script>
81
113
 
@@ -89,11 +121,15 @@
89
121
  {download}
90
122
  aria-disabled={disabled || undefined}
91
123
  data-disabled={disabled || undefined}
124
+ data-optical={optical}
125
+ data-dry-button
126
+ data-icon-start={undefined}
127
+ data-icon-end={undefined}
92
128
  tabindex={disabled ? -1 : undefined}
93
129
  {...variantAttrs({ variant, size, color })}
94
130
  class={className}
95
131
  onclick={handleLinkClick}
96
- {@attach attachRef}
132
+ {@attach attachButton}
97
133
  >
98
134
  {@render children()}
99
135
  </a>
@@ -102,11 +138,15 @@
102
138
  {type}
103
139
  {disabled}
104
140
  data-disabled={disabled || undefined}
141
+ data-optical={optical}
142
+ data-dry-button
143
+ data-icon-start={undefined}
144
+ data-icon-end={undefined}
105
145
  {...variantAttrs({ variant, size, color })}
106
146
  class={className}
107
147
  {onclick}
108
148
  {...rest}
109
- {@attach attachRef}
149
+ {@attach attachButton}
110
150
  >
111
151
  {@render children()}
112
152
  </button>
@@ -126,8 +166,7 @@
126
166
  display: inline-grid;
127
167
  }
128
168
 
129
- a,
130
- button {
169
+ [data-dry-button] {
131
170
  /* Resolve public button tokens without stomping inherited overrides. */
132
171
  --_dry-btn-accent: var(--dry-btn-accent, var(--dry-color-fill-brand));
133
172
  --_dry-btn-accent-fg: var(--dry-btn-accent-fg, var(--dry-color-text-brand));
@@ -209,9 +248,25 @@
209
248
  }
210
249
  }
211
250
 
251
+ /* ── Optical icon offset ───────────────────────────────────────────────────
252
+ When a button has a leading or trailing child marked with
253
+ `[data-dry-icon]`, trim the padding on that side by
254
+ `--dry-optical-icon-offset` so the label reads visually centered against
255
+ the icon. Consumers set `data-optical="off"` (via the `optical` prop)
256
+ to disable the nudge. Data-attribute selectors pierce Svelte style
257
+ scoping without needing `:global()`, which is banned by
258
+ `dryui/no-global`. */
259
+ [data-dry-button][data-optical='auto'][data-icon-start] {
260
+ padding-inline-start: calc(var(--_dry-btn-padding-x) - var(--dry-optical-icon-offset));
261
+ }
262
+
263
+ [data-dry-button][data-optical='auto'][data-icon-end] {
264
+ padding-inline-end: calc(var(--_dry-btn-padding-x) - var(--dry-optical-icon-offset));
265
+ }
266
+
212
267
  /* ── Variants ──────────────────────────────────────────────────────────────── */
213
268
 
214
- :is(a, button)[data-variant='solid'] {
269
+ [data-dry-button][data-variant='solid'] {
215
270
  --_dry-btn-bg: var(--dry-btn-bg, var(--_dry-btn-accent));
216
271
  --_dry-btn-color: var(--dry-btn-color, var(--_dry-btn-on-accent));
217
272
  --_dry-btn-border: var(--dry-btn-border, transparent);
@@ -226,7 +281,7 @@
226
281
  }
227
282
  }
228
283
 
229
- :is(a, button)[data-variant='outline'] {
284
+ [data-dry-button][data-variant='outline'] {
230
285
  --_dry-btn-bg: var(--dry-btn-bg, transparent);
231
286
  --_dry-btn-color: var(--dry-btn-color, var(--_dry-btn-accent-fg));
232
287
  --_dry-btn-border: var(--dry-btn-border, var(--_dry-btn-accent-stroke));
@@ -246,7 +301,7 @@
246
301
  }
247
302
  }
248
303
 
249
- :is(a, button)[data-variant='ghost'] {
304
+ [data-dry-button][data-variant='ghost'] {
250
305
  --_dry-btn-bg: var(--dry-btn-bg, transparent);
251
306
  --_dry-btn-color: var(--dry-btn-color, var(--_dry-btn-accent-fg));
252
307
  --_dry-btn-border: var(--dry-btn-border, transparent);
@@ -268,7 +323,7 @@
268
323
  }
269
324
  }
270
325
 
271
- :is(a, button)[data-variant='soft'] {
326
+ [data-dry-button][data-variant='soft'] {
272
327
  --_dry-btn-bg: var(--dry-btn-bg, var(--_dry-btn-accent-weak));
273
328
  --_dry-btn-color: var(--dry-btn-color, var(--_dry-btn-accent-fg));
274
329
  --_dry-btn-border: var(--dry-btn-border, transparent);
@@ -285,7 +340,7 @@
285
340
  }
286
341
  }
287
342
 
288
- :is(a, button)[data-variant='secondary'] {
343
+ [data-dry-button][data-variant='secondary'] {
289
344
  --_dry-btn-bg: var(--dry-btn-bg, transparent);
290
345
  --_dry-btn-color: var(--dry-btn-color, var(--_dry-btn-accent-fg));
291
346
  --_dry-btn-border: var(--dry-btn-border, var(--_dry-btn-accent-stroke));
@@ -304,7 +359,7 @@
304
359
  }
305
360
  }
306
361
 
307
- :is(a, button)[data-variant='bare'] {
362
+ [data-dry-button][data-variant='bare'] {
308
363
  --_dry-btn-bg: var(--dry-btn-bg, transparent);
309
364
  --_dry-btn-color: var(--dry-btn-color, inherit);
310
365
  --_dry-btn-border: var(--dry-btn-border, transparent);
@@ -320,7 +375,7 @@
320
375
  }
321
376
  }
322
377
 
323
- :is(a, button)[data-variant='link'] {
378
+ [data-dry-button][data-variant='link'] {
324
379
  --_dry-btn-bg: var(--dry-btn-bg, transparent);
325
380
  --_dry-btn-color: var(--dry-btn-color, var(--_dry-btn-accent-fg));
326
381
  --_dry-btn-border: var(--dry-btn-border, transparent);
@@ -340,7 +395,7 @@
340
395
  }
341
396
  }
342
397
 
343
- :is(a, button)[data-variant='trigger'] {
398
+ [data-dry-button][data-variant='trigger'] {
344
399
  --_dry-btn-bg: var(--dry-btn-bg, transparent);
345
400
  --_dry-btn-color: var(--dry-btn-color, var(--dry-color-text-strong));
346
401
  --_dry-btn-border: var(--dry-btn-border, transparent);
@@ -363,7 +418,7 @@
363
418
  }
364
419
  }
365
420
 
366
- :is(a, button)[data-variant='nav'] {
421
+ [data-dry-button][data-variant='nav'] {
367
422
  --_dry-btn-bg: var(--dry-btn-bg, var(--dry-color-bg-raised));
368
423
  --_dry-btn-color: var(--dry-btn-color, var(--dry-color-text-strong));
369
424
  --_dry-btn-border: var(--dry-btn-border, var(--dry-color-stroke-weak));
@@ -381,7 +436,7 @@
381
436
  }
382
437
  }
383
438
 
384
- :is(a, button)[data-variant='tab'] {
439
+ [data-dry-button][data-variant='tab'] {
385
440
  --_dry-btn-bg: var(--dry-btn-bg, transparent);
386
441
  --_dry-btn-color: var(--dry-btn-color, var(--dry-color-text-weak));
387
442
  --_dry-btn-border: var(--dry-btn-border, transparent);
@@ -403,7 +458,7 @@
403
458
  }
404
459
  }
405
460
 
406
- :is(a, button)[data-variant='toggle'] {
461
+ [data-dry-button][data-variant='toggle'] {
407
462
  --_dry-btn-bg: var(--dry-btn-bg, transparent);
408
463
  --_dry-btn-color: var(--dry-btn-color, var(--dry-color-text-weak));
409
464
  --_dry-btn-border: var(--dry-btn-border, transparent);
@@ -420,7 +475,7 @@
420
475
  }
421
476
  }
422
477
 
423
- :is(a, button)[data-variant='pill'] {
478
+ [data-dry-button][data-variant='pill'] {
424
479
  --_dry-btn-bg: var(--dry-btn-bg, transparent);
425
480
  --_dry-btn-color: var(--dry-btn-color, var(--dry-color-text-weak));
426
481
  --_dry-btn-border: var(--dry-btn-border, transparent);
@@ -437,7 +492,7 @@
437
492
  }
438
493
  }
439
494
 
440
- :is(a, button)[data-color='primary'] {
495
+ [data-dry-button][data-color='primary'] {
441
496
  --_dry-btn-accent: var(--dry-btn-accent, var(--dry-color-fill-brand));
442
497
  --_dry-btn-accent-fg: var(--dry-btn-accent-fg, var(--dry-color-text-brand));
443
498
  --_dry-btn-accent-stroke: var(--dry-btn-accent-stroke, var(--dry-color-stroke-brand));
@@ -446,7 +501,7 @@
446
501
  --_dry-btn-accent-active: var(--dry-btn-accent-active, var(--dry-color-fill-brand-active));
447
502
  }
448
503
 
449
- :is(a, button)[data-color='danger'] {
504
+ [data-dry-button][data-color='danger'] {
450
505
  --_dry-btn-accent: var(--dry-btn-accent, var(--dry-color-fill-error));
451
506
  --_dry-btn-accent-fg: var(--dry-btn-accent-fg, var(--dry-color-text-error));
452
507
  --_dry-btn-accent-stroke: var(--dry-btn-accent-stroke, var(--dry-color-stroke-error));
@@ -461,7 +516,7 @@
461
516
  light theme → near-black bg + white text; dark theme → white bg + near-black
462
517
  text. Any consumer token override (--dry-btn-bg etc.) still wins because the
463
518
  variant styles read from the public layer first. */
464
- :is(a, button)[data-color='ink'] {
519
+ [data-dry-button][data-color='ink'] {
465
520
  --_dry-btn-accent: var(--dry-btn-accent, var(--dry-color-bg-inverse));
466
521
  --_dry-btn-accent-fg: var(--dry-btn-accent-fg, var(--dry-color-text-inverse));
467
522
  --_dry-btn-accent-stroke: var(--dry-btn-accent-stroke, var(--dry-color-stroke-strong));
@@ -482,7 +537,7 @@
482
537
 
483
538
  /* ── Sizes ─────────────────────────────────────────────────────────────────── */
484
539
 
485
- :is(a, button)[data-size='sm'] {
540
+ [data-dry-button][data-size='sm'] {
486
541
  --_dry-btn-padding-x: var(--dry-btn-padding-x, var(--dry-space-3));
487
542
  --_dry-btn-padding-y: var(--dry-btn-padding-y, var(--dry-space-1_5));
488
543
  --_dry-btn-font-size: var(
@@ -493,7 +548,7 @@
493
548
  min-height: var(--dry-btn-min-height, var(--dry-space-8));
494
549
  }
495
550
 
496
- :is(a, button)[data-size='md'] {
551
+ [data-dry-button][data-size='md'] {
497
552
  --_dry-btn-padding-x: var(--dry-btn-padding-x, var(--dry-space-4));
498
553
  --_dry-btn-padding-y: var(--dry-btn-padding-y, var(--dry-space-2_5));
499
554
  --_dry-btn-font-size: var(
@@ -504,7 +559,7 @@
504
559
  min-height: var(--dry-btn-min-height, var(--dry-space-12));
505
560
  }
506
561
 
507
- :is(a, button)[data-size='lg'] {
562
+ [data-dry-button][data-size='lg'] {
508
563
  --_dry-btn-padding-x: var(--dry-btn-padding-x, var(--dry-space-6));
509
564
  --_dry-btn-padding-y: var(--dry-btn-padding-y, var(--dry-space-3));
510
565
  --_dry-btn-font-size: var(
@@ -517,7 +572,7 @@
517
572
 
518
573
  /* ── Icon-only sizes (square aspect ratio) ────────────────────────────── */
519
574
 
520
- :is(a, button)[data-size='icon'] {
575
+ [data-dry-button][data-size='icon'] {
521
576
  --_dry-btn-padding-x: var(--dry-btn-padding-x, 0);
522
577
  --_dry-btn-padding-y: var(--dry-btn-padding-y, 0);
523
578
  aspect-ratio: 1;
@@ -525,7 +580,7 @@
525
580
  --_dry-btn-radius: var(--dry-btn-radius, var(--dry-radius-md));
526
581
  }
527
582
 
528
- :is(a, button)[data-size='icon-sm'] {
583
+ [data-dry-button][data-size='icon-sm'] {
529
584
  --_dry-btn-padding-x: var(--dry-btn-padding-x, 0);
530
585
  --_dry-btn-padding-y: var(--dry-btn-padding-y, 0);
531
586
  aspect-ratio: 1;
@@ -537,7 +592,7 @@
537
592
  );
538
593
  }
539
594
 
540
- :is(a, button)[data-size='icon-lg'] {
595
+ [data-dry-button][data-size='icon-lg'] {
541
596
  --_dry-btn-padding-x: var(--dry-btn-padding-x, 0);
542
597
  --_dry-btn-padding-y: var(--dry-btn-padding-y, 0);
543
598
  aspect-ratio: 1;
@@ -551,47 +606,47 @@
551
606
 
552
607
  /* ── Button-group integration ─────────────────────────────────────── */
553
608
 
554
- .wrapper[data-in-group] :is(a, button) {
609
+ .wrapper[data-in-group] [data-dry-button] {
555
610
  border-radius: 0;
556
611
  }
557
612
 
558
613
  /* Horizontal: first child gets left radii */
559
- .wrapper[data-in-group][data-group-orientation='horizontal']:first-child :is(a, button) {
614
+ .wrapper[data-in-group][data-group-orientation='horizontal']:first-child [data-dry-button] {
560
615
  border-top-left-radius: var(--dry-button-group-radius);
561
616
  border-bottom-left-radius: var(--dry-button-group-radius);
562
617
  }
563
618
 
564
619
  /* Horizontal: last child gets right radii */
565
- .wrapper[data-in-group][data-group-orientation='horizontal']:last-child :is(a, button) {
620
+ .wrapper[data-in-group][data-group-orientation='horizontal']:last-child [data-dry-button] {
566
621
  border-top-right-radius: var(--dry-button-group-radius);
567
622
  border-bottom-right-radius: var(--dry-button-group-radius);
568
623
  }
569
624
 
570
625
  /* Horizontal: non-first child removes inline-start border */
571
- .wrapper[data-in-group][data-group-orientation='horizontal']:not(:first-child) :is(a, button) {
626
+ .wrapper[data-in-group][data-group-orientation='horizontal']:not(:first-child) [data-dry-button] {
572
627
  border-inline-start: 0;
573
628
  }
574
629
 
575
630
  /* Vertical: first child gets top radii */
576
- .wrapper[data-in-group][data-group-orientation='vertical']:first-child :is(a, button) {
631
+ .wrapper[data-in-group][data-group-orientation='vertical']:first-child [data-dry-button] {
577
632
  border-top-left-radius: var(--dry-button-group-radius);
578
633
  border-top-right-radius: var(--dry-button-group-radius);
579
634
  }
580
635
 
581
636
  /* Vertical: last child gets bottom radii */
582
- .wrapper[data-in-group][data-group-orientation='vertical']:last-child :is(a, button) {
637
+ .wrapper[data-in-group][data-group-orientation='vertical']:last-child [data-dry-button] {
583
638
  border-bottom-left-radius: var(--dry-button-group-radius);
584
639
  border-bottom-right-radius: var(--dry-button-group-radius);
585
640
  }
586
641
 
587
642
  /* Vertical: non-first child removes block-start border */
588
- .wrapper[data-in-group][data-group-orientation='vertical']:not(:first-child) :is(a, button) {
643
+ .wrapper[data-in-group][data-group-orientation='vertical']:not(:first-child) [data-dry-button] {
589
644
  border-block-start: 0;
590
645
  }
591
646
 
592
647
  /* Hover/focus z-index for grouped buttons */
593
- .wrapper[data-in-group]:hover :is(a, button),
594
- .wrapper[data-in-group]:focus-within :is(a, button) {
648
+ .wrapper[data-in-group]:hover [data-dry-button],
649
+ .wrapper[data-in-group]:focus-within [data-dry-button] {
595
650
  z-index: var(--dry-button-group-hover-z-index);
596
651
  position: relative;
597
652
  }
@@ -10,6 +10,13 @@ interface Props extends Omit<HTMLButtonAttributes, 'color'> {
10
10
  download?: boolean | string;
11
11
  /** Back-compat alias for `class` — matches Heading/Text ergonomics. Prefer `class`. */
12
12
  className?: HTMLButtonAttributes['class'];
13
+ /**
14
+ * Optical compensation for leading/trailing icons. When `'auto'` (default),
15
+ * the button trims its inline padding on the icon side by
16
+ * `--dry-optical-icon-offset` so the label reads visually centered against
17
+ * the icon. Set to `'off'` to disable the nudge.
18
+ */
19
+ optical?: 'auto' | 'off';
13
20
  /** Callback invoked with the rendered `<button>` or `<a>` element on mount, `null` on destroy. */
14
21
  ref?: (el: HTMLButtonElement | HTMLAnchorElement | null) => void;
15
22
  children: Snippet;
@@ -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: 'ButtonGroup',
4
+ description: 'Groups related buttons with shared styling',
5
+ category: 'action',
6
+ tags: ['button', 'group', 'toolbar', 'actions']
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: 'Calendar',
4
+ description: 'Interactive calendar grid for date navigation',
5
+ category: 'form',
6
+ tags: ['date', 'calendar', 'picker', 'month', 'locale']
7
+ };
@@ -16,7 +16,7 @@
16
16
 
17
17
  <style>
18
18
  [data-card-content] {
19
- padding: var(--dry-card-padding, var(--dry-space-8));
19
+ padding: var(--dry-card-padding, var(--dry-padding-card));
20
20
  overflow-x: auto;
21
21
  }
22
22
 
@@ -15,7 +15,7 @@
15
15
 
16
16
  <style>
17
17
  [data-card-footer] {
18
- padding: var(--dry-card-padding, var(--dry-space-8));
18
+ padding: var(--dry-card-padding, var(--dry-padding-card));
19
19
  border-top: 1px solid var(--dry-card-border, var(--dry-color-stroke-weak));
20
20
  }
21
21
 
@@ -15,7 +15,7 @@
15
15
 
16
16
  <style>
17
17
  [data-card-header] {
18
- padding: var(--dry-card-padding, var(--dry-space-8));
18
+ padding: var(--dry-card-padding, var(--dry-padding-card));
19
19
  border-bottom: 1px solid var(--dry-card-border, var(--dry-color-stroke-weak));
20
20
  }
21
21
 
@@ -10,6 +10,7 @@
10
10
  orientation?: 'vertical' | 'horizontal';
11
11
  variant?: 'default' | 'elevated' | 'interactive';
12
12
  size?: 'default' | 'sm';
13
+ bordered?: boolean;
13
14
  children: Snippet;
14
15
  }
15
16
 
@@ -20,6 +21,7 @@
20
21
  orientation,
21
22
  variant = 'default',
22
23
  size = 'default',
24
+ bordered = false,
23
25
  class: className,
24
26
  children,
25
27
  ...rest
@@ -32,6 +34,7 @@
32
34
  data-card
33
35
  data-selected={selected ? '' : undefined}
34
36
  data-orientation={orientation}
37
+ data-bordered={bordered ? '' : undefined}
35
38
  {...variantAttrs({
36
39
  variant: variant !== 'default' ? variant : undefined,
37
40
  size: size !== 'default' ? size : undefined
@@ -50,6 +53,7 @@
50
53
  data-card
51
54
  data-selected={selected ? '' : undefined}
52
55
  data-orientation={orientation}
56
+ data-bordered={bordered ? '' : undefined}
53
57
  {...variantAttrs({
54
58
  variant: variant !== 'default' ? variant : undefined,
55
59
  size: size !== 'default' ? size : undefined
@@ -63,22 +67,27 @@
63
67
  {/if}
64
68
 
65
69
  <style>
70
+ /* outer: var(--dry-radius-card); children inside the padded region use var(--dry-radius-nested-card). */
71
+
66
72
  [data-card] {
67
- --dry-card-radius: var(--dry-radius-2xl);
68
- --dry-radius-nested: max(
69
- var(--dry-radius-sm),
70
- calc(var(--dry-card-radius) - var(--dry-card-padding, var(--dry-space-8)))
71
- );
72
- --dry-btn-radius: var(--dry-radius-nested);
73
+ --dry-card-radius: var(--dry-radius-card);
74
+ --dry-card-padding: var(--dry-padding-card);
75
+ --dry-btn-radius: var(--dry-radius-nested-card);
73
76
 
74
77
  container-type: inline-size;
75
78
  display: grid;
76
79
  background: var(--dry-card-bg, var(--dry-surface-bg, var(--dry-color-bg-raised)));
80
+ border-radius: var(--dry-card-radius, var(--dry-surface-radius, var(--dry-radius-card)));
81
+ box-shadow: var(--dry-card-shadow, var(--dry-surface-shadow, var(--dry-shadow-sm)));
82
+ overflow: hidden;
83
+ transition: box-shadow var(--dry-duration-fast) var(--dry-ease-out);
84
+ }
85
+
86
+ /* ── Bordered escape hatch (retain the 1px border look) ────────────────── */
87
+
88
+ [data-card][data-bordered] {
77
89
  border: 1px solid
78
90
  var(--dry-card-border, var(--dry-surface-border, var(--dry-color-stroke-weak)));
79
- border-radius: var(--dry-card-radius, var(--dry-surface-radius, var(--dry-radius-2xl)));
80
- box-shadow: var(--dry-card-shadow, var(--dry-surface-shadow, var(--dry-shadow-raised)));
81
- overflow: hidden;
82
91
  }
83
92
 
84
93
  /* ── Selected state ────────────────────────────────────────────────────── */
@@ -93,7 +102,7 @@
93
102
  outline-offset: -2px;
94
103
  box-shadow:
95
104
  inset 0 0 0 1px var(--dry-card-selected-ring-color),
96
- var(--dry-card-shadow, var(--dry-surface-shadow, var(--dry-shadow-raised)));
105
+ var(--dry-card-shadow, var(--dry-surface-shadow, var(--dry-shadow-sm)));
97
106
  }
98
107
 
99
108
  /* ── Clickable card (button) ───────────────────────────────────────────── */
@@ -107,13 +116,12 @@
107
116
  text-align: inherit;
108
117
  cursor: pointer;
109
118
  transition:
110
- box-shadow var(--dry-duration-normal, 200ms) ease,
119
+ box-shadow var(--dry-duration-fast) var(--dry-ease-out),
111
120
  transform var(--dry-duration-fast, 100ms) ease;
112
121
  }
113
122
 
114
123
  button[data-card]:hover {
115
- box-shadow: var(--dry-shadow-md, 0 4px 6px -1px rgb(15 23 42 / 0.1));
116
- border-color: var(--dry-color-stroke-strong);
124
+ box-shadow: var(--dry-shadow-sm-hover);
117
125
  }
118
126
 
119
127
  button[data-card]:active {
@@ -135,11 +143,10 @@
135
143
  grid-auto-flow: column;
136
144
  }
137
145
 
138
- /* ── Variant: elevated (shadow-only separation, no border) ─────────────── */
146
+ /* ── Variant: elevated (shadow-only separation, stronger shadow) ───────── */
139
147
 
140
148
  [data-card][data-variant='elevated'] {
141
149
  --dry-card-bg: var(--dry-color-bg-overlay);
142
- border-color: transparent;
143
150
  --dry-card-shadow: var(--dry-shadow-md);
144
151
  }
145
152
 
@@ -148,13 +155,16 @@
148
155
  [data-card][data-variant='interactive'] {
149
156
  cursor: pointer;
150
157
  transition:
151
- box-shadow var(--dry-duration-normal) var(--dry-ease-default),
158
+ box-shadow var(--dry-duration-fast) var(--dry-ease-out),
152
159
  transform var(--dry-duration-fast) var(--dry-ease-default);
153
160
  }
154
161
 
155
162
  [data-card][data-variant='interactive']:hover {
156
- box-shadow: var(--dry-shadow-md);
157
- border-color: var(--dry-color-stroke-strong);
163
+ box-shadow: var(--dry-shadow-sm-hover);
164
+ }
165
+
166
+ [data-card][data-variant='elevated']:hover {
167
+ box-shadow: var(--dry-shadow-md-hover);
158
168
  }
159
169
 
160
170
  [data-card][data-variant='interactive']:active {
@@ -7,6 +7,7 @@ interface Props extends HTMLAttributes<HTMLElement> {
7
7
  orientation?: 'vertical' | 'horizontal';
8
8
  variant?: 'default' | 'elevated' | 'interactive';
9
9
  size?: 'default' | 'sm';
10
+ bordered?: boolean;
10
11
  children: Snippet;
11
12
  }
12
13
  declare const CardRoot: import("svelte").Component<Props, {}, "">;
@@ -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: 'Card',
4
+ description: 'Contained content surface with header/content/footer sections',
5
+ category: 'display',
6
+ tags: ['surface', 'container', 'content', '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: 'Carousel',
4
+ description: 'Scrollable content carousel with slide navigation',
5
+ category: 'display',
6
+ tags: ['slider', 'carousel', 'scroll', 'gallery', 'slideshow']
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: 'Chart',
4
+ description: 'SVG-based chart with bars, lines, and axes',
5
+ category: 'display',
6
+ tags: ['chart', 'graph', 'bar', 'line', 'data', 'visualization']
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: 'ChatThread',
4
+ description: 'Conversation thread container with restart action and auto-scroll behavior',
5
+ category: 'display',
6
+ tags: ['chat', 'thread', 'conversation', 'log']
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: 'Checkbox',
4
+ description: 'Boolean toggle input with indeterminate state',
5
+ category: 'input',
6
+ tags: ['form', 'toggle', 'boolean', 'check']
7
+ };