@svelte-atoms/core 1.0.0-alpha.41 → 1.0.0-alpha.44

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 (628) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +67 -197
  3. package/dist/attachments/clickout.svelte.d.ts +4 -1
  4. package/dist/attachments/clickout.svelte.js +2 -1
  5. package/dist/components/accordion/accordion-root.svelte +61 -66
  6. package/dist/components/accordion/accordion-root.svelte.d.ts +2 -2
  7. package/dist/components/accordion/bond.svelte.d.ts +11 -10
  8. package/dist/components/accordion/bond.svelte.js +26 -16
  9. package/dist/components/accordion/item/accordion-item-body.svelte +3 -1
  10. package/dist/components/accordion/item/accordion-item-header.svelte +1 -1
  11. package/dist/components/accordion/item/accordion-item-indicator.svelte +1 -1
  12. package/dist/components/accordion/item/accordion-item-root.svelte +3 -2
  13. package/dist/components/accordion/item/bond.svelte.d.ts +32 -18
  14. package/dist/components/accordion/item/bond.svelte.js +88 -64
  15. package/dist/components/accordion/item/types.d.ts +4 -24
  16. package/dist/components/accordion/types.d.ts +5 -9
  17. package/dist/components/alert/alert-root.svelte +68 -68
  18. package/dist/components/alert/types.d.ts +12 -46
  19. package/dist/components/atom/html-atom.svelte +84 -95
  20. package/dist/components/atom/html-atom.svelte.d.ts +1 -2
  21. package/dist/components/atom/index.d.ts +1 -0
  22. package/dist/components/atom/index.js +1 -0
  23. package/dist/components/atom/types.d.ts +52 -10
  24. package/dist/components/atom/types.js +1 -1
  25. package/dist/components/atom/utils.d.ts +10 -3
  26. package/dist/components/atom/utils.js +112 -45
  27. package/dist/components/avatar/types.d.ts +1 -6
  28. package/dist/components/badge/index.d.ts +1 -0
  29. package/dist/components/badge/types.d.ts +4 -7
  30. package/dist/components/button/button.svelte +31 -31
  31. package/dist/components/button/types.d.ts +9 -6
  32. package/dist/components/calendar/calendar-body.svelte +0 -1
  33. package/dist/components/calendar/calendar-day.svelte +99 -99
  34. package/dist/components/calendar/calendar-header.svelte +1 -1
  35. package/dist/components/calendar/calendar-root.svelte +206 -206
  36. package/dist/components/calendar/calendar-root.svelte.d.ts +1 -1
  37. package/dist/components/calendar/calendar-week-day.svelte +33 -33
  38. package/dist/components/calendar/types.d.ts +7 -10
  39. package/dist/components/card/card-root.svelte +92 -92
  40. package/dist/components/card/types.d.ts +12 -51
  41. package/dist/components/checkbox/checkbox.svelte +65 -55
  42. package/dist/components/checkbox/checkbox.svelte.d.ts +1 -3
  43. package/dist/components/checkbox/index.d.ts +2 -0
  44. package/dist/components/checkbox/index.js +1 -0
  45. package/dist/components/checkbox/motion.d.ts +17 -0
  46. package/dist/components/checkbox/motion.js +34 -0
  47. package/dist/components/checkbox/types.d.ts +14 -7
  48. package/dist/components/chip/chip-close-button.svelte +33 -0
  49. package/dist/components/chip/chip-close-button.svelte.d.ts +4 -0
  50. package/dist/components/chip/chip.svelte +34 -41
  51. package/dist/components/chip/chip.svelte.d.ts +1 -3
  52. package/dist/components/chip/index.d.ts +2 -0
  53. package/dist/components/chip/index.js +2 -0
  54. package/dist/components/chip/types.d.ts +15 -8
  55. package/dist/components/collapsible/bond.svelte.d.ts +34 -24
  56. package/dist/components/collapsible/bond.svelte.js +73 -60
  57. package/dist/components/collapsible/collapsible-body.svelte +1 -1
  58. package/dist/components/collapsible/collapsible-header.svelte +1 -1
  59. package/dist/components/collapsible/collapsible-indicator.svelte +1 -1
  60. package/dist/components/collapsible/collapsible-root.svelte +67 -67
  61. package/dist/components/collapsible/types.d.ts +10 -22
  62. package/dist/components/combobox/bond.svelte.d.ts +13 -8
  63. package/dist/components/combobox/bond.svelte.js +30 -20
  64. package/dist/components/combobox/combobox-control.svelte +66 -66
  65. package/dist/components/combobox/combobox-item.svelte +62 -62
  66. package/dist/components/combobox/combobox-root.svelte +65 -65
  67. package/dist/components/combobox/combobox-root.svelte.d.ts +2 -2
  68. package/dist/components/combobox/combobox-selections.svelte +17 -17
  69. package/dist/components/combobox/combobox-trigger.svelte +34 -34
  70. package/dist/components/combobox/types.d.ts +6 -10
  71. package/dist/components/container/index.d.ts +1 -0
  72. package/dist/components/container/types.d.ts +6 -12
  73. package/dist/components/context-menu/atoms.d.ts +4 -0
  74. package/dist/components/context-menu/atoms.js +4 -0
  75. package/dist/components/context-menu/context-menu-content.svelte +52 -0
  76. package/dist/components/context-menu/context-menu-content.svelte.d.ts +27 -0
  77. package/dist/components/context-menu/context-menu-root.svelte +8 -0
  78. package/dist/components/context-menu/context-menu-root.svelte.d.ts +4 -0
  79. package/dist/components/context-menu/context-menu-trigger.svelte +59 -0
  80. package/dist/components/context-menu/context-menu-trigger.svelte.d.ts +27 -0
  81. package/dist/components/context-menu/index.d.ts +2 -0
  82. package/dist/components/context-menu/index.js +2 -0
  83. package/dist/components/{contextmenu → context-menu}/types.d.ts +1 -6
  84. package/dist/components/datagrid/atoms.d.ts +11 -5
  85. package/dist/components/datagrid/atoms.js +11 -5
  86. package/dist/components/datagrid/bond.svelte.d.ts +29 -14
  87. package/dist/components/datagrid/bond.svelte.js +45 -33
  88. package/dist/components/datagrid/cell/bond.svelte.d.ts +29 -0
  89. package/dist/components/datagrid/cell/bond.svelte.js +42 -0
  90. package/dist/components/datagrid/cell/datagrid-cell.svelte +49 -0
  91. package/dist/components/datagrid/cell/datagrid-cell.svelte.d.ts +26 -0
  92. package/dist/components/datagrid/cell/index.d.ts +4 -0
  93. package/dist/components/datagrid/cell/index.js +4 -0
  94. package/dist/components/datagrid/col/index.d.ts +4 -0
  95. package/dist/components/datagrid/col/index.js +4 -0
  96. package/dist/components/datagrid/column/bond.svelte.d.ts +45 -0
  97. package/dist/components/datagrid/column/bond.svelte.js +76 -0
  98. package/dist/components/datagrid/{th/datagrid-th-sort-icon.svelte → column/datagrid-column-sort-icon.svelte} +3 -3
  99. package/dist/components/datagrid/{th/datagrid-th-sort-icon.svelte.d.ts → column/datagrid-column-sort-icon.svelte.d.ts} +3 -3
  100. package/dist/components/datagrid/{th/datagrid-th.svelte → column/datagrid-column.svelte} +27 -36
  101. package/dist/components/datagrid/column/datagrid-column.svelte.d.ts +26 -0
  102. package/dist/components/datagrid/column/index.d.ts +4 -0
  103. package/dist/components/datagrid/column/index.js +4 -0
  104. package/dist/components/datagrid/context.d.ts +2 -29
  105. package/dist/components/datagrid/context.js +4 -18
  106. package/dist/components/datagrid/datagrid-body.svelte +7 -20
  107. package/dist/components/datagrid/datagrid-body.svelte.d.ts +8 -15
  108. package/dist/components/datagrid/datagrid-checkbox.svelte +60 -63
  109. package/dist/components/datagrid/datagrid-checkbox.svelte.d.ts +1 -3
  110. package/dist/components/datagrid/datagrid-footer.svelte +27 -34
  111. package/dist/components/datagrid/datagrid-footer.svelte.d.ts +12 -12
  112. package/dist/components/datagrid/datagrid-header.svelte +10 -17
  113. package/dist/components/datagrid/datagrid-header.svelte.d.ts +12 -12
  114. package/dist/components/datagrid/datagrid-root.svelte +49 -59
  115. package/dist/components/datagrid/datagrid-root.svelte.d.ts +15 -14
  116. package/dist/components/datagrid/row/bond.svelte.d.ts +42 -0
  117. package/dist/components/datagrid/row/bond.svelte.js +72 -0
  118. package/dist/components/datagrid/{tr/datagrid-tr.css → row/datagrid-row.css} +1 -1
  119. package/dist/components/datagrid/row/datagrid-row.svelte +64 -0
  120. package/dist/components/datagrid/row/datagrid-row.svelte.d.ts +27 -0
  121. package/dist/components/datagrid/row/index.d.ts +4 -0
  122. package/dist/components/datagrid/row/index.js +4 -0
  123. package/dist/components/datagrid/types.d.ts +56 -116
  124. package/dist/components/date-picker/bond.svelte.d.ts +0 -12
  125. package/dist/components/date-picker/date-picker-calendar.svelte +58 -58
  126. package/dist/components/date-picker/date-picker-months.svelte +1 -1
  127. package/dist/components/date-picker/date-picker-root.svelte +96 -96
  128. package/dist/components/date-picker/date-picker-root.svelte.d.ts +1 -1
  129. package/dist/components/date-picker/date-picker-years.svelte +1 -1
  130. package/dist/components/date-picker/types.d.ts +6 -3
  131. package/dist/components/dialog/atoms.d.ts +1 -1
  132. package/dist/components/dialog/atoms.js +1 -1
  133. package/dist/components/dialog/bond.svelte.d.ts +66 -28
  134. package/dist/components/dialog/bond.svelte.js +136 -117
  135. package/dist/components/dialog/dialog-body.svelte +1 -1
  136. package/dist/components/dialog/dialog-close.svelte +58 -0
  137. package/dist/components/dialog/dialog-close.svelte.d.ts +26 -0
  138. package/dist/components/dialog/dialog-content.svelte +2 -2
  139. package/dist/components/dialog/dialog-description.svelte +1 -1
  140. package/dist/components/dialog/dialog-footer.svelte +1 -1
  141. package/dist/components/dialog/dialog-header.svelte +1 -1
  142. package/dist/components/dialog/dialog-root.svelte +102 -82
  143. package/dist/components/dialog/dialog-title.svelte +1 -1
  144. package/dist/components/dialog/motion.svelte.js +68 -26
  145. package/dist/components/dialog/types.d.ts +16 -51
  146. package/dist/components/divider/types.d.ts +1 -6
  147. package/dist/components/drawer/bond.svelte.d.ts +61 -36
  148. package/dist/components/drawer/bond.svelte.js +149 -121
  149. package/dist/components/drawer/drawer-backdrop.svelte +2 -1
  150. package/dist/components/drawer/drawer-body.svelte +1 -1
  151. package/dist/components/drawer/drawer-content.svelte +5 -5
  152. package/dist/components/drawer/drawer-content.svelte.d.ts +4 -1
  153. package/dist/components/drawer/drawer-description.svelte +1 -1
  154. package/dist/components/drawer/drawer-footer.svelte +1 -1
  155. package/dist/components/drawer/drawer-header.svelte +1 -1
  156. package/dist/components/drawer/drawer-root.svelte +96 -87
  157. package/dist/components/drawer/drawer-title.svelte +1 -1
  158. package/dist/components/drawer/motion.d.ts +59 -5
  159. package/dist/components/drawer/motion.js +133 -15
  160. package/dist/components/drawer/types.d.ts +15 -24
  161. package/dist/components/dropdown/atoms.d.ts +4 -8
  162. package/dist/components/dropdown/atoms.js +4 -9
  163. package/dist/components/dropdown/bond.svelte.d.ts +4 -53
  164. package/dist/components/dropdown/bond.svelte.js +4 -89
  165. package/dist/components/dropdown/dropdown-query.svelte +43 -43
  166. package/dist/components/dropdown/dropdown-root.svelte +79 -79
  167. package/dist/components/dropdown/dropdown-root.svelte.d.ts +4 -4
  168. package/dist/components/dropdown/dropdown-selection.svelte +55 -55
  169. package/dist/components/dropdown/dropdown-selections.svelte +70 -70
  170. package/dist/components/dropdown/dropdown-trigger.svelte +30 -30
  171. package/dist/components/dropdown/index.d.ts +43 -7
  172. package/dist/components/dropdown/index.js +34 -6
  173. package/dist/components/dropdown/item/bond.svelte.d.ts +36 -0
  174. package/dist/components/dropdown/item/bond.svelte.js +85 -0
  175. package/dist/components/dropdown/item/controller.svelte.d.ts +1 -1
  176. package/dist/components/dropdown/item/dropdown-item.svelte +81 -107
  177. package/dist/components/dropdown/item/index.d.ts +11 -3
  178. package/dist/components/dropdown/item/index.js +10 -3
  179. package/dist/components/dropdown/types.d.ts +2 -67
  180. package/dist/components/dropdown-menu/atoms.d.ts +9 -0
  181. package/dist/components/dropdown-menu/atoms.js +9 -0
  182. package/dist/components/dropdown-menu/attachments.svelte.d.ts +2 -0
  183. package/dist/components/dropdown-menu/attachments.svelte.js +5 -0
  184. package/dist/components/dropdown-menu/bond.svelte.d.ts +72 -0
  185. package/dist/components/dropdown-menu/bond.svelte.js +173 -0
  186. package/dist/components/dropdown-menu/dropdown-menu-content.svelte +40 -0
  187. package/dist/components/dropdown-menu/dropdown-menu-content.svelte.d.ts +37 -0
  188. package/dist/components/dropdown-menu/dropdown-menu-root.svelte +14 -0
  189. package/dist/components/dropdown-menu/dropdown-menu-root.svelte.d.ts +4 -0
  190. package/dist/components/dropdown-menu/index.d.ts +7 -0
  191. package/dist/components/dropdown-menu/index.js +6 -0
  192. package/dist/components/dropdown-menu/item/bond.svelte.d.ts +26 -0
  193. package/dist/components/dropdown-menu/item/bond.svelte.js +54 -0
  194. package/dist/components/dropdown-menu/item/controller.svelte.d.ts +39 -0
  195. package/dist/components/dropdown-menu/item/controller.svelte.js +73 -0
  196. package/dist/components/dropdown-menu/item/dropdown-menu-item.svelte +75 -0
  197. package/dist/components/dropdown-menu/item/dropdown-menu-item.svelte.d.ts +32 -0
  198. package/dist/components/dropdown-menu/item/index.d.ts +3 -0
  199. package/dist/components/dropdown-menu/item/index.js +3 -0
  200. package/dist/components/dropdown-menu/item/types.d.ts +57 -0
  201. package/dist/components/dropdown-menu/item/types.js +1 -0
  202. package/dist/components/dropdown-menu/types.d.ts +3 -0
  203. package/dist/components/dropdown-menu/types.js +1 -0
  204. package/dist/components/element/html-element.svelte +114 -85
  205. package/dist/components/element/html-element.svelte.d.ts +1 -1
  206. package/dist/components/element/svg-element.svelte +88 -88
  207. package/dist/components/element/types.d.ts +32 -20
  208. package/dist/components/form/field/atoms.d.ts +1 -1
  209. package/dist/components/form/field/atoms.js +1 -1
  210. package/dist/components/form/field/bond.svelte.js +0 -6
  211. package/dist/components/form/field/field-control.svelte +30 -9
  212. package/dist/components/form/field/field-control.svelte.d.ts +12 -22
  213. package/dist/components/form/field/field-helper-text.svelte +23 -0
  214. package/dist/components/form/field/field-helper-text.svelte.d.ts +26 -0
  215. package/dist/components/form/field/field-label.svelte +5 -7
  216. package/dist/components/form/field/field-label.svelte.d.ts +2 -2
  217. package/dist/components/form/field/field-root.svelte +17 -8
  218. package/dist/components/form/form-root.svelte +66 -66
  219. package/dist/components/form/types.d.ts +34 -58
  220. package/dist/components/icon/icon.svelte +40 -40
  221. package/dist/components/icon/types.d.ts +4 -7
  222. package/dist/components/image/index.d.ts +2 -0
  223. package/dist/components/image/index.js +2 -1
  224. package/dist/components/index.d.ts +11 -0
  225. package/dist/components/index.js +11 -0
  226. package/dist/components/input/atoms.d.ts +19 -1
  227. package/dist/components/input/atoms.js +19 -1
  228. package/dist/components/input/color/color-control.svelte +197 -0
  229. package/dist/components/input/color/color-control.svelte.d.ts +4 -0
  230. package/dist/components/input/color/index.d.ts +5 -0
  231. package/dist/components/input/color/index.js +5 -0
  232. package/dist/components/input/color/segment.svelte +240 -0
  233. package/dist/components/input/color/segment.svelte.d.ts +6 -0
  234. package/dist/components/input/color/shared.d.ts +23 -0
  235. package/dist/components/input/color/shared.js +349 -0
  236. package/dist/components/input/color/swatch.svelte +23 -0
  237. package/dist/components/input/color/swatch.svelte.d.ts +8 -0
  238. package/dist/components/input/color/types.d.ts +56 -0
  239. package/dist/components/input/color/types.js +2 -0
  240. package/dist/components/input/index.d.ts +1 -0
  241. package/dist/components/input/index.js +1 -0
  242. package/dist/components/input/input-control.svelte +3 -1
  243. package/dist/components/input/input-currency-control.svelte +189 -0
  244. package/dist/components/input/input-currency-control.svelte.d.ts +4 -0
  245. package/dist/components/input/input-email-control.svelte +128 -0
  246. package/dist/components/input/input-email-control.svelte.d.ts +4 -0
  247. package/dist/components/input/input-file-control.svelte +127 -0
  248. package/dist/components/input/input-file-control.svelte.d.ts +4 -0
  249. package/dist/components/input/input-icon.svelte.d.ts +1 -1
  250. package/dist/components/input/input-location.svelte +335 -0
  251. package/dist/components/input/input-location.svelte.d.ts +4 -0
  252. package/dist/components/input/input-number-control.svelte +114 -0
  253. package/dist/components/input/input-number-control.svelte.d.ts +6 -0
  254. package/dist/components/input/input-otp-control.svelte +206 -0
  255. package/dist/components/input/input-otp-control.svelte.d.ts +4 -0
  256. package/dist/components/input/input-password-control.svelte +91 -0
  257. package/dist/components/input/input-password-control.svelte.d.ts +3 -0
  258. package/dist/components/input/input-phone-control.svelte +394 -0
  259. package/dist/components/input/input-phone-control.svelte.d.ts +4 -0
  260. package/dist/components/input/input-placeholder.svelte.d.ts +1 -1
  261. package/dist/components/input/input-root.svelte +74 -74
  262. package/dist/components/input/input-text-control.svelte +59 -0
  263. package/dist/components/input/input-text-control.svelte.d.ts +4 -0
  264. package/dist/components/input/input-url-control.svelte +218 -0
  265. package/dist/components/input/input-url-control.svelte.d.ts +4 -0
  266. package/dist/components/input/time/datetime-control.svelte +281 -0
  267. package/dist/components/input/time/datetime-control.svelte.d.ts +5 -0
  268. package/dist/components/input/time/index.d.ts +6 -0
  269. package/dist/components/input/time/index.js +6 -0
  270. package/dist/components/input/time/segment.svelte +143 -0
  271. package/dist/components/input/time/segment.svelte.d.ts +6 -0
  272. package/dist/components/input/time/shared.d.ts +29 -0
  273. package/dist/components/input/time/shared.js +150 -0
  274. package/dist/components/input/time/time-control.svelte +237 -0
  275. package/dist/components/input/time/time-control.svelte.d.ts +3 -0
  276. package/dist/components/input/time/types.d.ts +34 -0
  277. package/dist/components/input/time/types.js +4 -0
  278. package/dist/components/input/types.d.ts +355 -17
  279. package/dist/components/label/types.d.ts +4 -7
  280. package/dist/components/layer/bond.svelte.d.ts +2 -2
  281. package/dist/components/layer/bond.svelte.js +1 -1
  282. package/dist/components/layer/index.d.ts +1 -0
  283. package/dist/components/layer/layer-inner.svelte.d.ts +1 -1
  284. package/dist/components/layer/layer-root.svelte +65 -65
  285. package/dist/components/layer/layer-root.svelte.d.ts +1 -1
  286. package/dist/components/layer/types.d.ts +6 -6
  287. package/dist/components/lazy/index.d.ts +1 -0
  288. package/dist/components/lazy/lazy.svelte +29 -29
  289. package/dist/components/lazy/types.d.ts +4 -4
  290. package/dist/components/link/index.d.ts +1 -0
  291. package/dist/components/link/types.d.ts +5 -6
  292. package/dist/components/list/index.d.ts +1 -0
  293. package/dist/components/list/types.d.ts +5 -6
  294. package/dist/components/menu/atoms.d.ts +2 -7
  295. package/dist/components/menu/atoms.js +2 -7
  296. package/dist/components/menu/bond.svelte.d.ts +9 -23
  297. package/dist/components/menu/bond.svelte.js +6 -0
  298. package/dist/components/menu/index.d.ts +40 -4
  299. package/dist/components/menu/index.js +26 -3
  300. package/dist/components/menu/item/bond.svelte.d.ts +27 -0
  301. package/dist/components/menu/item/bond.svelte.js +54 -0
  302. package/dist/components/menu/item/controller.svelte.d.ts +1 -1
  303. package/dist/components/menu/item/index.d.ts +5 -2
  304. package/dist/components/menu/item/index.js +4 -2
  305. package/dist/components/menu/item/menu-item.svelte +87 -103
  306. package/dist/components/menu/item/menu-item.svelte.d.ts +15 -14
  307. package/dist/components/menu/item/types.d.ts +5 -12
  308. package/dist/components/menu/menu-content.svelte +40 -40
  309. package/dist/components/menu/menu-root.svelte +15 -15
  310. package/dist/components/menu/menu-root.svelte.d.ts +1 -1
  311. package/dist/components/menu/types.d.ts +2 -6
  312. package/dist/components/popover/bond.svelte.d.ts +67 -39
  313. package/dist/components/popover/bond.svelte.js +159 -197
  314. package/dist/components/popover/index.d.ts +3 -1
  315. package/dist/components/popover/index.js +3 -1
  316. package/dist/components/popover/motion.d.ts +29 -1
  317. package/dist/components/popover/motion.js +128 -50
  318. package/dist/components/popover/popover-arrow.svelte +97 -110
  319. package/dist/components/popover/popover-arrow.svelte.d.ts +1 -2
  320. package/dist/components/popover/popover-content.svelte +159 -123
  321. package/dist/components/popover/popover-engine.svelte +118 -0
  322. package/dist/components/popover/popover-engine.svelte.d.ts +3 -0
  323. package/dist/components/popover/popover-indicator.svelte +2 -13
  324. package/dist/components/popover/popover-indicator.svelte.d.ts +0 -6
  325. package/dist/components/popover/popover-root.svelte +87 -49
  326. package/dist/components/popover/popover-root.svelte.d.ts +2 -1
  327. package/dist/components/popover/popover-trigger.svelte +35 -35
  328. package/dist/components/popover/strategies/floating.svelte +109 -0
  329. package/dist/components/popover/strategies/floating.svelte.d.ts +3 -0
  330. package/dist/components/popover/strategies/index.d.ts +1 -0
  331. package/dist/components/popover/strategies/index.js +1 -0
  332. package/dist/components/popover/strategy-types.d.ts +40 -0
  333. package/dist/components/popover/strategy-types.js +1 -0
  334. package/dist/components/popover/types.d.ts +10 -36
  335. package/dist/components/portal/active-portal.svelte +5 -4
  336. package/dist/components/portal/bond.svelte.d.ts +12 -8
  337. package/dist/components/portal/bond.svelte.js +25 -27
  338. package/dist/components/portal/index.d.ts +1 -0
  339. package/dist/components/portal/index.js +1 -0
  340. package/dist/components/portal/portal-inner.svelte +1 -1
  341. package/dist/components/portal/portal-inner.svelte.d.ts +1 -1
  342. package/dist/components/portal/portal-root.svelte +76 -76
  343. package/dist/components/portal/portal-root.svelte.d.ts +1 -1
  344. package/dist/components/portal/portals/bond.svelte.d.ts +2 -2
  345. package/dist/components/portal/portals/bond.svelte.js +2 -2
  346. package/dist/components/portal/teleport.svelte +47 -49
  347. package/dist/components/portal/teleport.svelte.d.ts +1 -2
  348. package/dist/components/portal/types.d.ts +7 -25
  349. package/dist/components/portal/utils.js +3 -3
  350. package/dist/components/portal/zlayer.svelte.d.ts +16 -0
  351. package/dist/components/portal/zlayer.svelte.js +25 -0
  352. package/dist/components/radio/index.d.ts +2 -0
  353. package/dist/components/radio/index.js +1 -0
  354. package/dist/components/radio/motion.d.ts +24 -0
  355. package/dist/components/radio/motion.js +59 -0
  356. package/dist/components/radio/radio.svelte +22 -12
  357. package/dist/components/radio/types.d.ts +5 -14
  358. package/dist/components/root/bond.svelte.d.ts +2 -2
  359. package/dist/components/root/bond.svelte.js +1 -1
  360. package/dist/components/root/root.svelte +82 -92
  361. package/dist/components/root/root.svelte.d.ts +2 -2
  362. package/dist/components/root/types.d.ts +4 -15
  363. package/dist/components/scrollable/atoms.d.ts +1 -0
  364. package/dist/components/scrollable/atoms.js +1 -0
  365. package/dist/components/scrollable/bond.svelte.d.ts +73 -189
  366. package/dist/components/scrollable/bond.svelte.js +195 -371
  367. package/dist/components/scrollable/scrollable-container.css +22 -22
  368. package/dist/components/scrollable/scrollable-container.svelte +66 -61
  369. package/dist/components/scrollable/scrollable-container.svelte.d.ts +12 -12
  370. package/dist/components/scrollable/scrollable-content.svelte +22 -17
  371. package/dist/components/scrollable/scrollable-content.svelte.d.ts +12 -12
  372. package/dist/components/scrollable/scrollable-root.svelte +106 -101
  373. package/dist/components/scrollable/scrollable-root.svelte.d.ts +12 -12
  374. package/dist/components/scrollable/scrollable-thumb.svelte +21 -45
  375. package/dist/components/scrollable/scrollable-thumb.svelte.d.ts +12 -12
  376. package/dist/components/scrollable/scrollable-track.svelte +21 -22
  377. package/dist/components/scrollable/scrollable-track.svelte.d.ts +12 -12
  378. package/dist/components/scrollable/types.d.ts +15 -38
  379. package/dist/components/select/atoms.d.ts +8 -0
  380. package/dist/components/select/atoms.js +8 -0
  381. package/dist/components/select/attachments.svelte.d.ts +2 -0
  382. package/dist/components/select/attachments.svelte.js +5 -0
  383. package/dist/components/select/bond.svelte.d.ts +56 -0
  384. package/dist/components/select/bond.svelte.js +112 -0
  385. package/dist/components/select/index.d.ts +11 -0
  386. package/dist/components/select/index.js +10 -0
  387. package/dist/components/select/item/attachments.svelte.d.ts +3 -0
  388. package/dist/components/select/item/attachments.svelte.js +6 -0
  389. package/dist/components/select/item/bond.svelte.d.ts +33 -0
  390. package/dist/components/select/item/bond.svelte.js +77 -0
  391. package/dist/components/select/item/controller.svelte.d.ts +39 -0
  392. package/dist/components/select/item/controller.svelte.js +105 -0
  393. package/dist/components/select/item/index.d.ts +5 -0
  394. package/dist/components/select/item/index.js +5 -0
  395. package/dist/components/select/item/select-item.svelte +81 -0
  396. package/dist/components/select/item/select-item.svelte.d.ts +25 -0
  397. package/dist/components/select/item/types.d.ts +29 -0
  398. package/dist/components/select/item/types.js +1 -0
  399. package/dist/components/select/runes.svelte.d.ts +10 -0
  400. package/dist/components/select/runes.svelte.js +15 -0
  401. package/dist/components/select/select-placeholder.svelte +40 -0
  402. package/dist/components/select/select-placeholder.svelte.d.ts +34 -0
  403. package/dist/components/select/select-root.svelte +80 -0
  404. package/dist/components/select/select-root.svelte.d.ts +30 -0
  405. package/dist/components/select/select-selection.svelte +55 -0
  406. package/dist/components/select/select-selection.svelte.d.ts +26 -0
  407. package/dist/components/select/select-selections.svelte +70 -0
  408. package/dist/components/select/select-selections.svelte.d.ts +5 -0
  409. package/dist/components/select/select-trigger.svelte +30 -0
  410. package/dist/components/select/select-trigger.svelte.d.ts +26 -0
  411. package/dist/components/select/types.d.ts +61 -0
  412. package/dist/components/select/types.js +1 -0
  413. package/dist/components/sidebar/bond.svelte.d.ts +10 -7
  414. package/dist/components/sidebar/bond.svelte.js +20 -15
  415. package/dist/components/sidebar/sidebar-content.svelte +1 -1
  416. package/dist/components/sidebar/sidebar-root.svelte +50 -41
  417. package/dist/components/sidebar/types.d.ts +10 -15
  418. package/dist/components/slider/index.d.ts +2 -0
  419. package/dist/components/slider/index.js +2 -0
  420. package/dist/components/slider/slider.svelte +164 -0
  421. package/dist/components/slider/slider.svelte.d.ts +6 -0
  422. package/dist/components/slider/types.d.ts +78 -0
  423. package/dist/components/slider/types.js +1 -0
  424. package/dist/components/stack/bond.svelte.d.ts +50 -0
  425. package/dist/components/stack/bond.svelte.js +174 -0
  426. package/dist/components/stack/index.d.ts +2 -0
  427. package/dist/components/stack/index.js +2 -0
  428. package/dist/components/stack/stack-item.svelte +40 -4
  429. package/dist/components/stack/stack-item.svelte.d.ts +6 -5
  430. package/dist/components/stack/stack-root.svelte +33 -4
  431. package/dist/components/stack/stack-root.svelte.d.ts +14 -5
  432. package/dist/components/stack/types.d.ts +11 -10
  433. package/dist/components/stepper/bond.svelte.d.ts +8 -7
  434. package/dist/components/stepper/bond.svelte.js +14 -11
  435. package/dist/components/stepper/step/README.md +97 -97
  436. package/dist/components/stepper/step/bond.svelte.d.ts +74 -63
  437. package/dist/components/stepper/step/bond.svelte.js +105 -69
  438. package/dist/components/stepper/step/step-body.svelte +39 -39
  439. package/dist/components/stepper/step/step-description.svelte +33 -33
  440. package/dist/components/stepper/step/step-header.svelte +34 -34
  441. package/dist/components/stepper/step/step-indicator.svelte +62 -62
  442. package/dist/components/stepper/step/step-root.svelte +42 -42
  443. package/dist/components/stepper/step/step-separator.svelte +48 -48
  444. package/dist/components/stepper/step/step-title.svelte +33 -33
  445. package/dist/components/stepper/step/types.d.ts +13 -57
  446. package/dist/components/stepper/stepper-body.svelte +31 -43
  447. package/dist/components/stepper/stepper-content.svelte +45 -45
  448. package/dist/components/stepper/stepper-footer.svelte +31 -31
  449. package/dist/components/stepper/stepper-header.svelte +27 -39
  450. package/dist/components/stepper/stepper-root.svelte +55 -61
  451. package/dist/components/stepper/types.d.ts +10 -36
  452. package/dist/components/swatch/index.d.ts +1 -0
  453. package/dist/components/swatch/index.js +1 -0
  454. package/dist/components/swatch/swatch.svelte +57 -0
  455. package/dist/components/swatch/swatch.svelte.d.ts +9 -0
  456. package/dist/components/switch/index.d.ts +2 -0
  457. package/dist/components/switch/index.js +2 -0
  458. package/dist/components/switch/switch.svelte +76 -0
  459. package/dist/components/switch/switch.svelte.d.ts +6 -0
  460. package/dist/components/switch/types.d.ts +43 -0
  461. package/dist/components/switch/types.js +1 -0
  462. package/dist/components/tabs/bond.svelte.d.ts +38 -19
  463. package/dist/components/tabs/bond.svelte.js +53 -46
  464. package/dist/components/tabs/tab/attachments.svelte.d.ts +5 -2
  465. package/dist/components/tabs/tab/attachments.svelte.js +4 -3
  466. package/dist/components/tabs/tab/bond.svelte.d.ts +35 -23
  467. package/dist/components/tabs/tab/bond.svelte.js +81 -56
  468. package/dist/components/tabs/tab/tab-body.svelte +61 -43
  469. package/dist/components/tabs/tab/tab-description.svelte +33 -33
  470. package/dist/components/tabs/tab/tab-header.svelte +61 -61
  471. package/dist/components/tabs/tab/tab-root.svelte +49 -50
  472. package/dist/components/tabs/tab/tab-root.svelte.d.ts +13 -35
  473. package/dist/components/tabs/tabs-body.svelte +39 -35
  474. package/dist/components/tabs/tabs-body.svelte.d.ts +1 -1
  475. package/dist/components/tabs/tabs-content.svelte +32 -51
  476. package/dist/components/tabs/tabs-header.svelte +32 -32
  477. package/dist/components/tabs/tabs-root.svelte +56 -56
  478. package/dist/components/tabs/types.d.ts +20 -37
  479. package/dist/components/textarea/types.d.ts +6 -12
  480. package/dist/components/toast/atoms.d.ts +1 -0
  481. package/dist/components/toast/atoms.js +1 -0
  482. package/dist/components/toast/index.d.ts +1 -0
  483. package/dist/components/toast/index.js +1 -0
  484. package/dist/components/toast/manager.svelte.d.ts +38 -0
  485. package/dist/components/toast/manager.svelte.js +82 -0
  486. package/dist/components/toast/toast-description.svelte.d.ts +1 -1
  487. package/dist/components/toast/toast-root-managed.svelte +64 -0
  488. package/dist/components/toast/toast-root-managed.svelte.d.ts +7 -0
  489. package/dist/components/toast/toast-root.svelte.d.ts +1 -1
  490. package/dist/components/toast/toast-title.svelte.d.ts +1 -1
  491. package/dist/components/toast/toast-toaster.svelte +42 -0
  492. package/dist/components/toast/toast-toaster.svelte.d.ts +4 -0
  493. package/dist/components/toast/types.d.ts +22 -31
  494. package/dist/components/tooltip/index.d.ts +1 -0
  495. package/dist/components/tooltip/tooltip-trigger.svelte +39 -39
  496. package/dist/components/tooltip/types.d.ts +5 -8
  497. package/dist/components/tree/bond.svelte.d.ts +28 -19
  498. package/dist/components/tree/bond.svelte.js +62 -53
  499. package/dist/components/tree/tree-body.svelte +1 -1
  500. package/dist/components/tree/tree-header.svelte +1 -1
  501. package/dist/components/tree/tree-header.svelte.d.ts +1 -1
  502. package/dist/components/tree/tree-indicator.svelte +1 -1
  503. package/dist/components/tree/tree-root.svelte +66 -66
  504. package/dist/components/tree/types.d.ts +4 -28
  505. package/dist/components/virtual/index.d.ts +2 -0
  506. package/dist/components/virtual/index.js +2 -0
  507. package/dist/components/virtual/types.d.ts +1 -6
  508. package/dist/constants/motion.d.ts +9 -0
  509. package/dist/constants/motion.js +9 -0
  510. package/dist/context/index.d.ts +1 -1
  511. package/dist/context/preset.svelte.d.ts +169 -2
  512. package/dist/runes/color-scheme.svelte.js +17 -5
  513. package/dist/shared/bond.svelte.d.ts +29 -3
  514. package/dist/shared/bond.svelte.js +126 -4
  515. package/dist/shared/index.d.ts +1 -1
  516. package/dist/shared/index.js +1 -1
  517. package/dist/shared/motion.d.ts +1 -0
  518. package/dist/shared/motion.js +2 -8
  519. package/dist/types/index.d.ts +4 -0
  520. package/dist/utils/index.d.ts +1 -1
  521. package/dist/utils/index.js +1 -1
  522. package/dist/utils/promise.svelte.d.ts +5 -0
  523. package/dist/utils/promise.svelte.js +17 -0
  524. package/dist/utils/variant.d.ts +10 -1
  525. package/dist/utils/variant.js +11 -1
  526. package/package.json +171 -48
  527. package/dist/components/accordion/accordion.stories.svelte +0 -70
  528. package/dist/components/accordion/accordion.stories.svelte.d.ts +0 -18
  529. package/dist/components/alert/alert.stories.svelte +0 -400
  530. package/dist/components/alert/alert.stories.svelte.d.ts +0 -3
  531. package/dist/components/avatar/avatar.stories.svelte +0 -22
  532. package/dist/components/avatar/avatar.stories.svelte.d.ts +0 -26
  533. package/dist/components/badge/badge.stories.svelte +0 -12
  534. package/dist/components/badge/badge.stories.svelte.d.ts +0 -26
  535. package/dist/components/breadcrumb/breadcrumb.stories.svelte +0 -16
  536. package/dist/components/breadcrumb/breadcrumb.stories.svelte.d.ts +0 -26
  537. package/dist/components/button/button.stories.svelte +0 -27
  538. package/dist/components/button/button.stories.svelte.d.ts +0 -18
  539. package/dist/components/calendar/calendar.stories.svelte +0 -26
  540. package/dist/components/calendar/calendar.stories.svelte.d.ts +0 -26
  541. package/dist/components/card/card.stories.svelte +0 -133
  542. package/dist/components/card/card.stories.svelte.d.ts +0 -19
  543. package/dist/components/checkbox/checkbox.stories.svelte +0 -22
  544. package/dist/components/checkbox/checkbox.stories.svelte.d.ts +0 -6
  545. package/dist/components/collapsible/collapsible.stories.svelte +0 -172
  546. package/dist/components/collapsible/collapsible.stories.svelte.d.ts +0 -18
  547. package/dist/components/combobox/combobox.stories.svelte +0 -63
  548. package/dist/components/combobox/combobox.stories.svelte.d.ts +0 -3
  549. package/dist/components/container/container.stories.svelte +0 -20
  550. package/dist/components/container/container.stories.svelte.d.ts +0 -26
  551. package/dist/components/contextmenu/atoms.d.ts +0 -0
  552. package/dist/components/contextmenu/atoms.js +0 -1
  553. package/dist/components/contextmenu/contextmenu-trigger.svelte +0 -0
  554. package/dist/components/contextmenu/contextmenu-trigger.svelte.d.ts +0 -26
  555. package/dist/components/contextmenu/indext.d.ts +0 -0
  556. package/dist/components/contextmenu/indext.js +0 -1
  557. package/dist/components/datagrid/datagrid.stories.svelte +0 -72
  558. package/dist/components/datagrid/datagrid.stories.svelte.d.ts +0 -6
  559. package/dist/components/datagrid/td/bond.svelte.d.ts +0 -28
  560. package/dist/components/datagrid/td/bond.svelte.js +0 -40
  561. package/dist/components/datagrid/td/datagrid-td.svelte +0 -66
  562. package/dist/components/datagrid/td/datagrid-td.svelte.d.ts +0 -30
  563. package/dist/components/datagrid/td/index.d.ts +0 -2
  564. package/dist/components/datagrid/td/index.js +0 -2
  565. package/dist/components/datagrid/th/bond.svelte.d.ts +0 -38
  566. package/dist/components/datagrid/th/bond.svelte.js +0 -66
  567. package/dist/components/datagrid/th/datagrid-th.svelte.d.ts +0 -26
  568. package/dist/components/datagrid/th/index.d.ts +0 -2
  569. package/dist/components/datagrid/th/index.js +0 -2
  570. package/dist/components/datagrid/tr/bond.svelte.d.ts +0 -37
  571. package/dist/components/datagrid/tr/bond.svelte.js +0 -72
  572. package/dist/components/datagrid/tr/datagrid-tr.svelte +0 -90
  573. package/dist/components/datagrid/tr/datagrid-tr.svelte.d.ts +0 -28
  574. package/dist/components/datagrid/tr/index.d.ts +0 -2
  575. package/dist/components/datagrid/tr/index.js +0 -2
  576. package/dist/components/date-picker/date-picker.stories.svelte +0 -35
  577. package/dist/components/date-picker/date-picker.stories.svelte.d.ts +0 -3
  578. package/dist/components/dialog/dialog.stories.svelte +0 -64
  579. package/dist/components/dialog/dialog.stories.svelte.d.ts +0 -3
  580. package/dist/components/drawer/drawer.stories.svelte +0 -141
  581. package/dist/components/drawer/drawer.stories.svelte.d.ts +0 -3
  582. package/dist/components/dropdown/dropdown.stories.svelte +0 -127
  583. package/dist/components/dropdown/dropdown.stories.svelte.d.ts +0 -3
  584. package/dist/components/element/element.stories.svelte +0 -37
  585. package/dist/components/element/element.stories.svelte.d.ts +0 -3
  586. package/dist/components/form/field/field-errors.svelte +0 -9
  587. package/dist/components/form/field/field-errors.svelte.d.ts +0 -11
  588. package/dist/components/form/form.stories.svelte +0 -96
  589. package/dist/components/form/form.stories.svelte.d.ts +0 -18
  590. package/dist/components/image/image.stories.svelte +0 -20
  591. package/dist/components/image/image.stories.svelte.d.ts +0 -26
  592. package/dist/components/input/input.stories.svelte +0 -35
  593. package/dist/components/input/input.stories.svelte.d.ts +0 -18
  594. package/dist/components/label/label.stories.svelte +0 -15
  595. package/dist/components/label/label.stories.svelte.d.ts +0 -26
  596. package/dist/components/lazy/lazy.stories.svelte +0 -28
  597. package/dist/components/lazy/lazy.stories.svelte.d.ts +0 -19
  598. package/dist/components/link/link.stories.svelte +0 -15
  599. package/dist/components/link/link.stories.svelte.d.ts +0 -26
  600. package/dist/components/menu/menu.stories.svelte +0 -33
  601. package/dist/components/menu/menu.stories.svelte.d.ts +0 -3
  602. package/dist/components/popover/popover.stories.svelte +0 -37
  603. package/dist/components/popover/popover.stories.svelte.d.ts +0 -3
  604. package/dist/components/qr-code/qr-code.stories.svelte +0 -18
  605. package/dist/components/qr-code/qr-code.stories.svelte.d.ts +0 -26
  606. package/dist/components/radio/radio-group.stories.svelte +0 -41
  607. package/dist/components/radio/radio-group.stories.svelte.d.ts +0 -6
  608. package/dist/components/radio/radio.stories.svelte +0 -17
  609. package/dist/components/radio/radio.stories.svelte.d.ts +0 -6
  610. package/dist/components/root/l0-portal.svelte +0 -8
  611. package/dist/components/root/l0-portal.svelte.d.ts +0 -26
  612. package/dist/components/root/l1-portal.svelte +0 -7
  613. package/dist/components/root/l1-portal.svelte.d.ts +0 -26
  614. package/dist/components/root/toasts-portal.svelte +0 -7
  615. package/dist/components/root/toasts-portal.svelte.d.ts +0 -26
  616. package/dist/components/scrollable/scrollable.stories.svelte +0 -116
  617. package/dist/components/scrollable/scrollable.stories.svelte.d.ts +0 -26
  618. package/dist/components/sidebar/sidebar.stories.svelte +0 -43
  619. package/dist/components/sidebar/sidebar.stories.svelte.d.ts +0 -3
  620. package/dist/components/stepper/stepper.stories.svelte +0 -264
  621. package/dist/components/stepper/stepper.stories.svelte.d.ts +0 -4
  622. package/dist/components/tabs/tabs.stories.svelte +0 -70
  623. package/dist/components/tabs/tabs.stories.svelte.d.ts +0 -3
  624. package/dist/components/tooltip/tooltip.stories.svelte +0 -32
  625. package/dist/components/tooltip/tooltip.stories.svelte.d.ts +0 -3
  626. package/dist/components/tree/tree.stories.svelte +0 -142
  627. package/dist/components/tree/tree.stories.svelte.d.ts +0 -3
  628. /package/dist/components/{contextmenu → context-menu}/types.js +0 -0
@@ -1,92 +1,92 @@
1
- <script lang="ts" generics="E extends keyof HTMLElementTagNameMap = 'div', B extends Base = Base">
2
- import { defineState } from '../../utils';
3
- import { defineProperty } from '../../utils/state';
4
- import { HtmlAtom, type Base } from '../atom';
5
- import { CardBond, CardBondState, type CardBondProps } from './bond.svelte';
6
- import type { CardRootProps } from './types';
7
- import './card.css';
8
-
9
- let {
10
- class: klass = '',
11
- disabled = false,
12
- factory = _factory,
13
- children = undefined,
14
- onclick = undefined,
15
- onkeydown = undefined,
16
- onmount = undefined,
17
- ondestroy = undefined,
18
- animate = undefined,
19
- enter = undefined,
20
- exit = undefined,
21
- initial = undefined,
22
- ...restProps
23
- }: CardRootProps<E, B> = $props();
24
-
25
- const bondProps = defineState<CardBondProps>(
26
- [
27
- defineProperty(
28
- 'disabled',
29
- () => disabled,
30
- (v) => {
31
- disabled = v;
32
- }
33
- ),
34
- defineProperty('rest', () => restProps)
35
- ],
36
- () => ({})
37
- );
38
- const bond = _factory(bondProps).share();
39
-
40
- // Disabled styles
41
- const disabledStyles = disabled ? 'opacity-50 cursor-not-allowed' : '';
42
-
43
- const rootProps = $derived({
44
- ...bond?.root(),
45
- ...restProps
46
- });
47
-
48
- function _factory(props: typeof bondProps) {
49
- const bondState = new CardBondState(() => props);
50
- return new CardBond(bondState);
51
- }
52
-
53
- function handleClick(event: MouseEvent) {
54
- if (disabled) return;
55
- onclick?.(event);
56
- }
57
-
58
- function handleKeydown(event: KeyboardEvent) {
59
- if (disabled) return;
60
- if (event.key === 'Enter' || event.key === ' ') {
61
- event.preventDefault();
62
- onclick?.(event as unknown as MouseEvent);
63
- }
64
- onkeydown?.(event);
65
- }
66
-
67
- export function getBond() {
68
- return bond;
69
- }
70
- </script>
71
-
72
- <HtmlAtom
73
- preset="card"
74
- class={[
75
- 'card bg-card border-border flex flex-col overflow-clip rounded-lg border shadow-sm',
76
- disabledStyles,
77
- '$preset',
78
- klass
79
- ]}
80
- {bond}
81
- enter={enter?.bind(bond.state)}
82
- exit={exit?.bind(bond.state)}
83
- initial={initial?.bind(bond.state)}
84
- animate={animate?.bind(bond.state)}
85
- onmount={onmount?.bind(bond.state)}
86
- ondestroy={ondestroy?.bind(bond.state)}
87
- onclick={handleClick}
88
- onkeydown={handleKeydown}
89
- {...rootProps}
90
- >
91
- {@render children?.({ card: bond })}
92
- </HtmlAtom>
1
+ <script lang="ts" generics="E extends keyof HTMLElementTagNameMap = 'div', B extends Base = Base">
2
+ import { defineState } from '../../utils';
3
+ import { defineProperty } from '../../utils/state';
4
+ import { HtmlAtom, type Base } from '../atom';
5
+ import { CardBond, CardBondState, type CardBondProps } from './bond.svelte';
6
+ import type { CardRootProps } from './types';
7
+ import './card.css';
8
+
9
+ let {
10
+ class: klass = '',
11
+ disabled = false,
12
+ factory = _factory,
13
+ children = undefined,
14
+ onclick = undefined,
15
+ onkeydown = undefined,
16
+ onmount = undefined,
17
+ ondestroy = undefined,
18
+ animate = undefined,
19
+ enter = undefined,
20
+ exit = undefined,
21
+ initial = undefined,
22
+ ...restProps
23
+ }: CardRootProps<E, B> = $props();
24
+
25
+ const bondProps = defineState<CardBondProps>(
26
+ [
27
+ defineProperty(
28
+ 'disabled',
29
+ () => disabled,
30
+ (v) => {
31
+ disabled = v;
32
+ }
33
+ ),
34
+ defineProperty('rest', () => restProps)
35
+ ],
36
+ () => ({})
37
+ );
38
+ const bond = _factory(bondProps).share();
39
+
40
+ // Disabled styles
41
+ const disabledStyles = disabled ? 'opacity-50 cursor-not-allowed' : '';
42
+
43
+ const rootProps = $derived({
44
+ ...bond?.root(),
45
+ ...restProps
46
+ });
47
+
48
+ function _factory(props: typeof bondProps) {
49
+ const bondState = new CardBondState(() => props);
50
+ return new CardBond(bondState);
51
+ }
52
+
53
+ function handleClick(event: MouseEvent) {
54
+ if (disabled) return;
55
+ onclick?.(event);
56
+ }
57
+
58
+ function handleKeydown(event: KeyboardEvent) {
59
+ if (disabled) return;
60
+ if (event.key === 'Enter' || event.key === ' ') {
61
+ event.preventDefault();
62
+ onclick?.(event as unknown as MouseEvent);
63
+ }
64
+ onkeydown?.(event);
65
+ }
66
+
67
+ export function getBond() {
68
+ return bond;
69
+ }
70
+ </script>
71
+
72
+ <HtmlAtom
73
+ preset="card"
74
+ class={[
75
+ 'card bg-card border-border flex flex-col overflow-clip rounded-lg border shadow-sm',
76
+ disabledStyles,
77
+ '$preset',
78
+ klass
79
+ ]}
80
+ {bond}
81
+ enter={enter?.bind(bond.state)}
82
+ exit={exit?.bind(bond.state)}
83
+ initial={initial?.bind(bond.state)}
84
+ animate={animate?.bind(bond.state)}
85
+ onmount={onmount?.bind(bond.state)}
86
+ ondestroy={ondestroy?.bind(bond.state)}
87
+ onclick={handleClick}
88
+ onkeydown={handleKeydown}
89
+ {...rootProps}
90
+ >
91
+ {@render children?.({ card: bond })}
92
+ </HtmlAtom>
@@ -1,68 +1,29 @@
1
1
  import type { Snippet } from 'svelte';
2
2
  import type { CardBond } from './bond.svelte';
3
- import type { HtmlAtomProps, Base } from '../atom';
3
+ import type { HtmlAtomProps, Base, SnippetProps } from '../atom';
4
4
  import type { Factory } from '../../types';
5
- /**
6
- * Extend this interface to add custom card root properties in your application.
7
- */
8
- export interface CardExtendProps {
5
+ export interface CardSnippetProps extends SnippetProps {
6
+ card: CardBond;
9
7
  }
10
- /**
11
- * Extend this interface to add custom card header properties in your application.
12
- */
13
- export interface CardHeaderExtendProps {
14
- }
15
- /**
16
- * Extend this interface to add custom card body/content properties in your application.
17
- */
18
- export interface CardBodyExtendProps {
19
- }
20
- /**
21
- * Extend this interface to add custom card footer properties in your application.
22
- */
23
- export interface CardFooterExtendProps {
24
- }
25
- /**
26
- * Extend this interface to add custom card title properties in your application.
27
- */
28
- export interface CardTitleExtendProps {
29
- }
30
- /**
31
- * Extend this interface to add custom card subtitle properties in your application.
32
- */
33
- export interface CardSubtitleExtendProps {
34
- }
35
- /**
36
- * Extend this interface to add custom card description properties in your application.
37
- */
38
- export interface CardDescriptionExtendProps {
39
- }
40
- /**
41
- * Extend this interface to add custom card media properties in your application.
42
- */
43
- export interface CardMediaExtendProps {
44
- }
45
- export interface CardRootProps<E extends keyof HTMLElementTagNameMap = 'div', B extends Base = Base> extends Omit<HtmlAtomProps<E, B>, 'children'>, CardExtendProps {
8
+ export type CardChildren = Snippet<[CardSnippetProps]>;
9
+ export interface CardRootProps<E extends keyof HTMLElementTagNameMap = 'div', B extends Base = Base> extends HtmlAtomProps<E, B, CardChildren> {
46
10
  disabled?: boolean;
47
11
  factory?: Factory<CardBond>;
48
- children?: Snippet<[{
49
- card: CardBond;
50
- }]>;
51
12
  onclick?: (event: MouseEvent) => void;
52
13
  onkeydown?: (event: KeyboardEvent) => void;
53
14
  }
54
- export interface CardHeaderProps<E extends keyof HTMLElementTagNameMap = 'div', B extends Base = Base> extends HtmlAtomProps<E, B>, CardHeaderExtendProps {
15
+ export interface CardHeaderProps<E extends keyof HTMLElementTagNameMap = 'div', B extends Base = Base> extends HtmlAtomProps<E, B, CardChildren> {
55
16
  }
56
- export interface CardBodyProps<E extends keyof HTMLElementTagNameMap = 'div', B extends Base = Base> extends HtmlAtomProps<E, B>, CardBodyExtendProps {
17
+ export interface CardBodyProps<E extends keyof HTMLElementTagNameMap = 'div', B extends Base = Base> extends HtmlAtomProps<E, B, CardChildren> {
57
18
  }
58
- export interface CardFooterProps<E extends keyof HTMLElementTagNameMap = 'div', B extends Base = Base> extends HtmlAtomProps<E, B>, CardFooterExtendProps {
19
+ export interface CardFooterProps<E extends keyof HTMLElementTagNameMap = 'div', B extends Base = Base> extends HtmlAtomProps<E, B, CardChildren> {
59
20
  }
60
- export interface CardTitleProps<E extends keyof HTMLElementTagNameMap = 'h3', B extends Base = Base> extends HtmlAtomProps<E, B>, CardTitleExtendProps {
21
+ export interface CardTitleProps<E extends keyof HTMLElementTagNameMap = 'h3', B extends Base = Base> extends HtmlAtomProps<E, B, CardChildren> {
61
22
  }
62
- export interface CardSubtitleProps<E extends keyof HTMLElementTagNameMap = 'p', B extends Base = Base> extends HtmlAtomProps<E, B>, CardSubtitleExtendProps {
23
+ export interface CardSubtitleProps<E extends keyof HTMLElementTagNameMap = 'p', B extends Base = Base> extends HtmlAtomProps<E, B, CardChildren> {
63
24
  }
64
- export interface CardDescriptionProps<E extends keyof HTMLElementTagNameMap = 'p', B extends Base = Base> extends HtmlAtomProps<E, B>, CardDescriptionExtendProps {
25
+ export interface CardDescriptionProps<E extends keyof HTMLElementTagNameMap = 'p', B extends Base = Base> extends HtmlAtomProps<E, B, CardChildren> {
65
26
  }
66
- export interface CardMediaProps<E extends keyof HTMLElementTagNameMap = 'div', B extends Base = Base> extends HtmlAtomProps<E, B>, CardMediaExtendProps {
27
+ export interface CardMediaProps<E extends keyof HTMLElementTagNameMap = 'div', B extends Base = Base> extends HtmlAtomProps<E, B, CardChildren> {
67
28
  }
68
29
  export type CardContentProps<E extends keyof HTMLElementTagNameMap = 'div', B extends Base = Base> = CardBodyProps<E, B>;
@@ -1,13 +1,11 @@
1
1
  <script lang="ts">
2
- import { circOut } from 'svelte/easing';
3
- import type { HTMLInputAttributes } from 'svelte/elements';
4
- import { scale } from 'svelte/transition';
5
2
  import { Icon } from '../icon';
6
3
  import { HtmlAtom } from '../atom';
7
4
  import CheckmarkRegularIcon from '../../icons/icon-checkmark.svelte';
8
- import { DURATION } from '../../shared';
9
5
  import type { CheckboxProps } from './types';
6
+ import { animateCheckboxIndicator } from './motion';
10
7
  import './checkbox.css';
8
+ import { Input } from '../input';
11
9
 
12
10
  let {
13
11
  class: klass = '',
@@ -29,8 +27,9 @@
29
27
  onfocus,
30
28
  onclick = undefined,
31
29
  ...restProps
32
- }: CheckboxProps & Exclude<HTMLInputAttributes, 'type'> = $props();
30
+ }: CheckboxProps = $props();
33
31
 
32
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
34
33
  let checkboxElement: HTMLInputElement | undefined = $state();
35
34
 
36
35
  // Computed state for visual representation
@@ -38,27 +37,34 @@
38
37
  const isIndeterminate = $derived(indeterminate === true);
39
38
  const showCheckmark = $derived(isChecked && !isIndeterminate);
40
39
 
40
+ const overlayContent = $derived(isIndeterminate ? indeterminateSnippet : showCheckmark ? checkedSnippet : undefined);
41
+
41
42
  function handleChange(ev: Event) {
42
43
  onchange?.(ev, {
43
- checked: checked,
44
- value: checked,
45
- type: 'boolean'
44
+ checked: checked
46
45
  });
47
46
  }
48
47
 
49
48
  function handleInput(ev: Event) {
50
49
  oninput?.(ev, {
51
- checked: checked,
52
- value: checked,
53
- type: 'boolean'
50
+ checked: checked
54
51
  });
55
52
  }
56
53
 
57
54
  function handleClick(ev: MouseEvent) {
58
55
  if (disabled) return;
56
+
57
+ // Check if click originated from the hidden input (via label click)
58
+ // If so, the input's bind:checked will handle the toggle
59
+ console.log(ev.target);
60
+ if (ev.target === checkboxElement) {
61
+ return;
62
+ }
59
63
 
64
+ // Let user's onclick handler run first
60
65
  onclick?.(ev);
61
66
 
67
+ // If user prevented default, don't toggle
62
68
  if (ev.defaultPrevented) {
63
69
  return;
64
70
  }
@@ -69,22 +75,64 @@
69
75
  indeterminate = false;
70
76
  checked = true;
71
77
  } else {
72
- // Toggle checked state
78
+ // Checked → unchecked or unchecked → checked
79
+ ev.stopPropagation(); // Prevent click from bubbling to label and toggling again
73
80
  checked = !checked;
74
81
  }
75
82
 
76
- // Trigger input event manually if needed
77
83
  handleInput(ev);
78
84
  }
79
85
  </script>
80
86
 
87
+ {#snippet indeterminateSnippet()}
88
+ <HtmlAtom
89
+ preset="checkbox.indeterminate"
90
+ class={[
91
+ 'checkbox-indeterminate pointer-events-none flex size-full scale-50 items-center justify-center rounded-inherit bg-current'
92
+ ]}
93
+ base={indeterminateContent}
94
+ enter={animateCheckboxIndicator()}
95
+ exit={animateCheckboxIndicator()}
96
+ />
97
+ {/snippet}
98
+
99
+ {#snippet customCheckedSnippet()}
100
+ <HtmlAtom
101
+ preset="checkbox.checkmark"
102
+ class={[
103
+ 'checkbox-indicator text-accent pointer-events-none flex h-full content-center items-center justify-center overflow-hidden p-0.5'
104
+ ]}
105
+ base={checkedContent}
106
+ enter={animateCheckboxIndicator()}
107
+ exit={animateCheckboxIndicator()}
108
+ />
109
+ {/snippet}
110
+
111
+ {#snippet defaultCheckedSnippet()}
112
+ <HtmlAtom
113
+ preset="checkbox.checkmark"
114
+ class={[
115
+ 'checkbox-indicator text-accent pointer-events-none flex h-full content-center items-center justify-center overflow-hidden p-0.5'
116
+ ]}
117
+ enter={animateCheckboxIndicator()}
118
+ exit={animateCheckboxIndicator()}
119
+ >
120
+ <Icon class="h-full p-0" src={CheckmarkRegularIcon} />
121
+ </HtmlAtom>
122
+ {/snippet}
123
+
124
+ {#snippet checkedSnippet()}
125
+ {@const content = checkedContent ? customCheckedSnippet : defaultCheckedSnippet}
126
+ {@render content?.()}
127
+ {/snippet}
128
+
81
129
  <!-- svelte-ignore a11y_click_events_have_key_events -->
82
130
  <!-- svelte-ignore a11y_no_noninteractive_element_interactions -->
83
- <HtmlAtom
131
+ <Input.Root
84
132
  preset="checkbox"
85
133
  as="div"
86
134
  class={[
87
- 'checkbox-root border-border outline-primary bg-input text-foreground aspect-square h-5 w-fit cursor-pointer rounded-sm border outline-0 outline-offset-2 transition-colors duration-100',
135
+ 'checkbox-root aspect-square shrink-0 text-foreground h-5 w-fit cursor-pointer rounded-sm outline-0 outline-offset-2 transition-colors duration-100',
88
136
  isChecked && 'bg-foreground',
89
137
  '$preset',
90
138
  klass,
@@ -117,43 +165,5 @@
117
165
  tabindex="-1"
118
166
  />
119
167
 
120
- {#if isIndeterminate}
121
- {#if indeterminateContent}
122
- <HtmlAtom
123
- preset="checkbox.indeterminate"
124
- class={[
125
- 'checkbox-indeterminate pointer-events-none flex size-full scale-50 items-center justify-center rounded-[inherit] bg-current'
126
- ]}
127
- base={indeterminateContent}
128
- />
129
- {:else}
130
- <HtmlAtom
131
- preset="checkbox.indeterminate"
132
- class={[
133
- 'checkbox-indeterminate pointer-events-none flex size-full scale-50 items-center justify-center rounded-[inherit] bg-current'
134
- ]}
135
- />
136
- {/if}
137
- {:else if showCheckmark}
138
- {#if checkedContent}
139
- <HtmlAtom
140
- preset="checkbox.checkmark"
141
- class={[
142
- 'checkbox-indicator text-accent pointer-events-none flex h-full content-center items-center justify-center overflow-hidden p-0.5'
143
- ]}
144
- base={checkedContent}
145
- />
146
- {:else}
147
- <HtmlAtom
148
- preset="checkbox.checkmark"
149
- class={[
150
- 'checkbox-indicator text-accent pointer-events-none flex h-full content-center items-center justify-center overflow-hidden p-0.5'
151
- ]}
152
- enter={(node) => scale(node, { duration: DURATION.fast, easing: circOut, start: 0.6 })}
153
- exit={(node) => scale(node, { duration: DURATION.fast, easing: circOut, start: 0.6 })}
154
- >
155
- <Icon class="h-full p-0" src={CheckmarkRegularIcon} />
156
- </HtmlAtom>
157
- {/if}
158
- {/if}
159
- </HtmlAtom>
168
+ {@render overlayContent?.()}
169
+ </Input.Root>
@@ -1,7 +1,5 @@
1
- import type { HTMLInputAttributes } from 'svelte/elements';
2
1
  import type { CheckboxProps } from './types';
3
2
  import './checkbox.css';
4
- type $$ComponentProps = CheckboxProps & Exclude<HTMLInputAttributes, 'type'>;
5
- declare const Checkbox: import("svelte").Component<$$ComponentProps, {}, "value" | "group" | "checked" | "indeterminate">;
3
+ declare const Checkbox: import("svelte").Component<CheckboxProps, {}, "value" | "group" | "checked" | "indeterminate">;
6
4
  type Checkbox = ReturnType<typeof Checkbox>;
7
5
  export default Checkbox;
@@ -1 +1,3 @@
1
1
  export { default as Checkbox } from './checkbox.svelte';
2
+ export type { CheckboxSnippetProps, CheckboxChildren } from './types';
3
+ export * from './motion';
@@ -1 +1,2 @@
1
1
  export { default as Checkbox } from './checkbox.svelte';
2
+ export * from './motion';
@@ -0,0 +1,17 @@
1
+ import type { EasingFunction } from 'svelte/transition';
2
+ import type { TransitionFunction } from '../element';
3
+ export type AnimateCheckboxIndicatorParams = {
4
+ /** Animation duration in milliseconds */
5
+ duration?: number;
6
+ /** Delay before animation starts in milliseconds (default: 0) */
7
+ delay?: number;
8
+ /** Custom easing function (default: cubicIn) */
9
+ easing?: EasingFunction;
10
+ };
11
+ /**
12
+ * Exit transition for checkbox indicator (uncheck/clear indeterminate)
13
+ * Quick scale and fade out
14
+ *
15
+ * Respects prefers-reduced-motion by using instant transition
16
+ */
17
+ export declare function animateCheckboxIndicator(params?: AnimateCheckboxIndicatorParams): TransitionFunction<HTMLElement>;
@@ -0,0 +1,34 @@
1
+ import { cubicIn } from 'svelte/easing';
2
+ /**
3
+ * Check if user prefers reduced motion
4
+ */
5
+ function prefersReducedMotion() {
6
+ if (typeof window === 'undefined')
7
+ return false;
8
+ return window.matchMedia('(prefers-reduced-motion: reduce)').matches;
9
+ }
10
+ /**
11
+ * Exit transition for checkbox indicator (uncheck/clear indeterminate)
12
+ * Quick scale and fade out
13
+ *
14
+ * Respects prefers-reduced-motion by using instant transition
15
+ */
16
+ export function animateCheckboxIndicator(params = {}) {
17
+ const { duration = 100, delay = 0, easing = cubicIn } = params;
18
+ return () => {
19
+ // If user prefers reduced motion, use instant transition
20
+ if (prefersReducedMotion()) {
21
+ return {
22
+ duration: 0,
23
+ delay: 0,
24
+ css: () => ''
25
+ };
26
+ }
27
+ return () => ({
28
+ duration,
29
+ delay,
30
+ easing,
31
+ css: (t) => `transform: scale(${t}); opacity: ${t};`
32
+ });
33
+ };
34
+ }
@@ -1,20 +1,27 @@
1
1
  import { type Component, type Snippet } from 'svelte';
2
- import { type HtmlAtomProps } from '../atom';
3
- /**
4
- * Extend this interface to add custom checkbox properties in your application.
5
- */
6
- export interface CheckboxExtendProps {
2
+ import { type HtmlAtomProps, type SnippetProps } from '../atom';
3
+ export interface CheckboxSnippetProps extends SnippetProps {
4
+ checked?: boolean;
5
+ indeterminate?: boolean;
7
6
  }
8
- export interface CheckboxProps extends HtmlAtomProps<'button'>, CheckboxExtendProps {
7
+ export type CheckboxChildren = Snippet<[CheckboxSnippetProps]>;
8
+ export interface CheckboxProps extends HtmlAtomProps<'button', never, CheckboxChildren> {
9
9
  value?: string;
10
10
  group?: string[];
11
11
  checked?: boolean;
12
12
  indeterminate?: boolean;
13
+ disabled?: boolean;
14
+ id?: string;
15
+ name?: string;
13
16
  checkedContent?: Component | Snippet;
14
17
  indeterminateContent?: Component | Snippet;
15
- children?: Snippet<[]>;
16
18
  onclick?: (ev?: Event) => void;
17
19
  onchange?: (ev?: Event, options?: {
18
20
  checked: boolean;
19
21
  }) => void;
22
+ oninput?: (ev?: Event, options?: {
23
+ checked: boolean;
24
+ }) => void;
25
+ onblur?: () => void;
26
+ onfocus?: () => void;
20
27
  }
@@ -0,0 +1,33 @@
1
+ <script lang="ts">
2
+ import { HtmlAtom } from '../atom';
3
+ import { Icon } from '../icon';
4
+ import type { ChipCloseButtonProps } from './types';
5
+ import CloseIcon from '../../icons/icon-close.svelte';
6
+
7
+ let {
8
+ class: klass = '',
9
+ preset = 'chip.close-button',
10
+ icon = undefined,
11
+ onclick = undefined,
12
+ ...restProps
13
+ }: ChipCloseButtonProps = $props();
14
+ </script>
15
+
16
+ <HtmlAtom
17
+ {preset}
18
+ as="button"
19
+ class={[
20
+ 'bg-foreground/0 hover:bg-foreground/5 active:bg-foreground/10 inline-flex aspect-square h-full cursor-pointer items-center justify-center rounded-xs p-0.5',
21
+ '$preset',
22
+ klass
23
+ ]}
24
+ type="button"
25
+ {onclick}
26
+ {...restProps}
27
+ >
28
+ {#if icon}
29
+ {@render icon?.()}
30
+ {:else}
31
+ <Icon src={CloseIcon} class="h-full" />
32
+ {/if}
33
+ </HtmlAtom>
@@ -0,0 +1,4 @@
1
+ import type { ChipCloseButtonProps } from './types';
2
+ declare const ChipCloseButton: import("svelte").Component<ChipCloseButtonProps, {}, "">;
3
+ type ChipCloseButton = ReturnType<typeof ChipCloseButton>;
4
+ export default ChipCloseButton;
@@ -1,41 +1,34 @@
1
- <script lang="ts">
2
- import type { HTMLAttributes } from 'svelte/elements';
3
- import { HtmlAtom } from '../atom';
4
- import { Icon } from '../icon';
5
- import type { ChipProps } from './types';
6
- import CloseIcon from '../../icons/icon-close.svelte';
7
-
8
- let {
9
- class: klass = '',
10
- preset = 'chip',
11
- children = undefined,
12
- icon = undefined,
13
- onclose = undefined,
14
- ...restProps
15
- }: ChipProps & HTMLAttributes<HTMLButtonElement> = $props();
16
- </script>
17
-
18
- <HtmlAtom
19
- {preset}
20
- as="div"
21
- class={[
22
- 'chip text-foreground bg-foreground/5 border-border hover:bg-foreground/10 active:bg-foreground/15 disabled:bg-muted disabled:text-muted-foreground w-fit cursor-pointer rounded-md px-3 py-1 transition-colors duration-100',
23
- '$preset',
24
- klass
25
- ]}
26
- {...restProps}
27
- >
28
- {@render children?.()}
29
-
30
- <button
31
- class="bg-foreground/0 hover:bg-foreground/5 active:bg-foreground/10 inline-flex aspect-square h-full cursor-pointer items-center justify-center rounded-xs p-0.5"
32
- type="button"
33
- onclick={onclose}
34
- >
35
- {#if icon}
36
- {@render icon?.()}
37
- {:else}
38
- <Icon src={CloseIcon} class="h-full" />
39
- {/if}
40
- </button>
41
- </HtmlAtom>
1
+ <script lang="ts">
2
+ import { HtmlAtom } from '../atom';
3
+ import type { ChipProps } from './types';
4
+ import ChipCloseButton from './chip-close-button.svelte';
5
+
6
+ let {
7
+ class: klass = '',
8
+ preset = 'chip',
9
+ children = undefined,
10
+ icon = undefined,
11
+ closeButton = undefined,
12
+ onclose = undefined,
13
+ ...restProps
14
+ }: ChipProps = $props();
15
+ </script>
16
+
17
+ <HtmlAtom
18
+ {preset}
19
+ as="div"
20
+ class={[
21
+ 'chip text-foreground bg-foreground/5 border-border hover:bg-foreground/10 active:bg-foreground/15 disabled:bg-muted disabled:text-muted-foreground w-fit cursor-pointer rounded-md px-3 py-1 transition-colors duration-100',
22
+ '$preset',
23
+ klass
24
+ ]}
25
+ {...restProps}
26
+ >
27
+ {@render children?.()}
28
+
29
+ {#if closeButton}
30
+ {@render closeButton?.()}
31
+ {:else}
32
+ <ChipCloseButton {icon} onclick={onclose} />
33
+ {/if}
34
+ </HtmlAtom>