@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,85 +1,114 @@
1
- <script lang="ts" generics="T extends HtmlElementTagName">
2
- import { untrack } from 'svelte';
3
- import type { HTMLAttributes } from 'svelte/elements';
4
- import { createAttachmentKey } from 'svelte/attachments';
5
- import { cn, toClassValue } from '../../utils';
6
- import type { ElementType, HtmlElementProps, HtmlElementTagName } from './types';
7
-
8
- type Element = ElementType<T>;
9
-
10
- let {
11
- class: klass = '',
12
- as = 'div' as T,
13
- global = true,
14
- initial = undefined,
15
- enter = undefined,
16
- exit = undefined,
17
- animate = undefined,
18
- onmount = undefined,
19
- ondestroy = undefined,
20
- onintroend = undefined,
21
- children = undefined,
22
- ...restProps
23
- }: HtmlElementProps<T> & Omit<HTMLAttributes<Element>, keyof HtmlElementProps<T>> = $props();
24
-
25
- let node = $state<Element>();
26
- // If enter animation is defined, we want to wait for it first beafore running animate
27
- let hasEntered = $state(!(untrack(() => enter) ?? false));
28
-
29
- $effect(() => {
30
- if (!node) return;
31
-
32
- const unmount = untrack(() => onmount?.(node!));
33
-
34
- return () => {
35
- if (typeof unmount === 'function') unmount(node!);
36
- ondestroy?.(node!);
37
- };
38
- });
39
-
40
- $effect(() => {
41
- if(!hasEntered) return;
42
- if (!node) return;
43
-
44
- animate?.(node);
45
- });
46
-
47
- const elementProps = $derived({
48
- [createAttachmentKey()]: (n: Element) => {
49
- node = n;
50
- },
51
- onintroend: (ev: TransitionEvent) => {
52
- onintroend?.(ev);
53
- if (ev.defaultPrevented) return;
54
-
55
- hasEntered = true;
56
- },
57
- ...restProps
58
- }) as Record<string, any>;
59
-
60
- const transitionSnippet = $derived(global ? globalTransition : localTransition);
61
-
62
- function enterTransition(node: Element) {
63
- initial?.(node);
64
-
65
- return enter?.(node) ?? {};
66
- }
67
-
68
- function exitTransition(node: Element) {
69
- return exit?.(node) ?? {};
70
- }
71
- </script>
72
-
73
- {#snippet globalTransition()}
74
- <svelte:element this={as} class={cn(toClassValue(klass))} in:enterTransition|global out:exitTransition|global {...elementProps}>
75
- {@render children?.()}
76
- </svelte:element>
77
- {/snippet}
78
-
79
- {#snippet localTransition()}
80
- <svelte:element this={as} class={cn(toClassValue(klass))} in:enterTransition out:exitTransition {...elementProps}>
81
- {@render children?.()}
82
- </svelte:element>
83
- {/snippet}
84
-
85
- {@render transitionSnippet()}
1
+ <script lang="ts" generics="T extends HtmlElementTagName">
2
+ import { untrack } from 'svelte';
3
+ import type { HTMLAttributes } from 'svelte/elements';
4
+ import { cn, toClassValue } from '../../utils';
5
+ import type { ElementType, HtmlElementProps, HtmlElementTagName } from './types';
6
+
7
+ type Element = ElementType<T>;
8
+
9
+ let {
10
+ class: klass = '',
11
+ as = 'div' as T,
12
+ global = true,
13
+ initial = undefined,
14
+ enter = undefined,
15
+ exit = undefined,
16
+ animate = undefined,
17
+ onmount = undefined,
18
+ ondestroy = undefined,
19
+ onintroend = undefined,
20
+ onexitend = undefined,
21
+ children = undefined,
22
+ ...restProps
23
+ }: HtmlElementProps<T> & Omit<HTMLAttributes<Element>, keyof HtmlElementProps<T>> = $props();
24
+
25
+ let node = $state<Element>();
26
+ // If enter animation is defined, we want to wait for it first before running animate
27
+ let hasEntered = $state(!(untrack(() => enter) ?? false));
28
+ // Track whether initial() has been applied — must only fire once at mount
29
+ let hasInitialized = false;
30
+
31
+ $effect(() => {
32
+ if (!node) return;
33
+
34
+ const unmount = untrack(() => onmount?.(node!));
35
+
36
+ return () => {
37
+ if (typeof unmount === 'function') unmount(node!);
38
+ ondestroy?.(node!);
39
+ };
40
+ });
41
+
42
+ $effect(() => {
43
+ if (!hasEntered) return;
44
+ if (!node) return;
45
+
46
+ animate?.(node);
47
+ });
48
+
49
+ const attachFunction = (n: Element) => {
50
+ node = n;
51
+ };
52
+
53
+ const finalKlass = $derived(cn(toClassValue(klass)));
54
+ const hasTransitions = $derived(!!(enter ?? exit));
55
+ const transitionSnippet = $derived(
56
+ !hasTransitions ? bareElement : global ? globalTransition : localTransition
57
+ );
58
+
59
+ // Only include onintroend/onexitend when transitions are active —
60
+ // avoids attaching handlers that can never fire on bare elements.
61
+ const elementProps = $derived.by(() => {
62
+ const base = { ...restProps };
63
+ if (hasTransitions) {
64
+ base.onintroend = handleIntroEnd;
65
+ base.onoutroend = handleExitEnd;
66
+ }
67
+ return base as Record<string, any>;
68
+ });
69
+
70
+ function handleIntroEnd(ev: TransitionEvent) {
71
+ onintroend?.(ev);
72
+ if (ev.defaultPrevented) return;
73
+ hasEntered = true;
74
+ }
75
+
76
+ function handleExitEnd(ev: TransitionEvent) {
77
+ onexitend?.(ev);
78
+ }
79
+
80
+ function enterTransition(node: Element) {
81
+ return enter?.(node) ?? {};
82
+ }
83
+
84
+ function exitTransition(node: Element) {
85
+ return exit?.(node) ?? {};
86
+ }
87
+
88
+ function applyInitial(node: Element) {
89
+ if (!node) return;
90
+ if (hasInitialized) return;
91
+ hasInitialized = true;
92
+ untrack(() => initial?.(node!));
93
+ }
94
+ </script>
95
+
96
+ {#snippet bareElement()}
97
+ <svelte:element this={as} {@attach applyInitial} {@attach attachFunction} class={finalKlass} {...elementProps}>
98
+ {@render children?.()}
99
+ </svelte:element>
100
+ {/snippet}
101
+
102
+ {#snippet globalTransition()}
103
+ <svelte:element this={as} {@attach applyInitial} {@attach attachFunction} class={finalKlass} in:enterTransition|global out:exitTransition|global {...elementProps}>
104
+ {@render children?.()}
105
+ </svelte:element>
106
+ {/snippet}
107
+
108
+ {#snippet localTransition()}
109
+ <svelte:element this={as} {@attach applyInitial} {@attach attachFunction} class={finalKlass} in:enterTransition out:exitTransition {...elementProps}>
110
+ {@render children?.()}
111
+ </svelte:element>
112
+ {/snippet}
113
+
114
+ {@render transitionSnippet()}
@@ -1,7 +1,7 @@
1
1
  import type { HTMLAttributes } from 'svelte/elements';
2
2
  import type { ElementType, HtmlElementProps, HtmlElementTagName } from './types';
3
3
  declare function $$render<T extends HtmlElementTagName>(): {
4
- props: HtmlElementProps<T> & Omit<HTMLAttributes<ElementType<T>>, keyof HtmlElementProps<T>>;
4
+ props: HtmlElementProps<T, import("svelte").Snippet<[]>> & Omit<HTMLAttributes<ElementType<T>>, keyof HtmlElementProps<T, import("svelte").Snippet<[]>>>;
5
5
  exports: {};
6
6
  bindings: "";
7
7
  slots: {};
@@ -1,88 +1,88 @@
1
- <svelte:options namespace="svg" />
2
-
3
- <script lang="ts" generics="T extends SvgElementTagName">
4
- import { untrack } from 'svelte';
5
- import type { SVGAttributes } from 'svelte/elements';
6
- import { createAttachmentKey } from 'svelte/attachments';
7
- import { cn, toClassValue } from '../../utils';
8
- import type { ElementType, SvgElementProps, SvgElementTagName } from './types';
9
-
10
- type Element = ElementType<T>;
11
-
12
- let {
13
- class: klass = '',
14
- as="g",
15
- global = true,
16
- initial = undefined,
17
- enter = undefined,
18
- exit = undefined,
19
- animate = undefined,
20
- onmount = undefined,
21
- ondestroy = undefined,
22
- onintroend = undefined,
23
- children = undefined,
24
- ...restProps
25
- }: SvgElementProps<T> & Omit<SVGAttributes<Element>, keyof SvgElementProps<T>> = $props();
26
-
27
- let node = $state<Element>();
28
- // If enter animation is defined, we want to wait for it first beafore running animate
29
- let hasEntered = $state(!(untrack(() => enter) ?? false));
30
-
31
- $effect(() => {
32
- if (!node) return;
33
-
34
- const unmount = untrack(() => onmount?.(node!));
35
-
36
- return () => {
37
- if (typeof unmount === 'function') unmount(node!);
38
- ondestroy?.(node!);
39
- };
40
- });
41
-
42
- $effect(() => {
43
- if(!hasEntered) return;
44
- if (!node) return;
45
-
46
- animate?.(node);
47
- });
48
-
49
- const elementProps = $derived({
50
- [createAttachmentKey()]: (n: Element) => {
51
- node = n;
52
- },
53
- class: cn(toClassValue(klass)),
54
- onintroend: (ev: TransitionEvent) => {
55
- onintroend?.(ev);
56
- if (ev.defaultPrevented) return;
57
-
58
- hasEntered = true;
59
- },
60
- ...restProps
61
- }) as Record<string, any>;
62
-
63
- const transitionSnippet = $derived(global ? globalTransition : localTransition);
64
-
65
- function enterTransition(node: Element) {
66
- initial?.(node);
67
-
68
- return enter?.(node) ?? {};
69
- }
70
-
71
- function exitTransition(node: Element) {
72
- return exit?.(node) ?? {};
73
- }
74
- </script>
75
-
76
- {#snippet globalTransition()}
77
- <svelte:element this={as} class={cn(toClassValue(klass))} in:enterTransition|global out:exitTransition|global {...elementProps}>
78
- {@render children?.()}
79
- </svelte:element>
80
- {/snippet}
81
-
82
- {#snippet localTransition()}
83
- <svelte:element this={as} class={cn(toClassValue(klass))} in:enterTransition out:exitTransition {...elementProps}>
84
- {@render children?.()}
85
- </svelte:element>
86
- {/snippet}
87
-
88
- {@render transitionSnippet()}
1
+ <svelte:options namespace="svg" />
2
+
3
+ <script lang="ts" generics="T extends SvgElementTagName">
4
+ import { untrack } from 'svelte';
5
+ import type { SVGAttributes } from 'svelte/elements';
6
+ import { createAttachmentKey } from 'svelte/attachments';
7
+ import { cn, toClassValue } from '../../utils';
8
+ import type { ElementType, SvgElementProps, SvgElementTagName } from './types';
9
+
10
+ type Element = ElementType<T>;
11
+
12
+ let {
13
+ class: klass = '',
14
+ as="g",
15
+ global = true,
16
+ initial = undefined,
17
+ enter = undefined,
18
+ exit = undefined,
19
+ animate = undefined,
20
+ onmount = undefined,
21
+ ondestroy = undefined,
22
+ onintroend = undefined,
23
+ children = undefined,
24
+ ...restProps
25
+ }: SvgElementProps<T> & Omit<SVGAttributes<Element>, keyof SvgElementProps<T>> = $props();
26
+
27
+ let node = $state<Element>();
28
+ // If enter animation is defined, we want to wait for it first beafore running animate
29
+ let hasEntered = $state(!(untrack(() => enter) ?? false));
30
+
31
+ $effect(() => {
32
+ if (!node) return;
33
+
34
+ const unmount = untrack(() => onmount?.(node!));
35
+
36
+ return () => {
37
+ if (typeof unmount === 'function') unmount(node!);
38
+ ondestroy?.(node!);
39
+ };
40
+ });
41
+
42
+ $effect(() => {
43
+ if(!hasEntered) return;
44
+ if (!node) return;
45
+
46
+ animate?.(node);
47
+ });
48
+
49
+ const elementProps = $derived({
50
+ [createAttachmentKey()]: (n: Element) => {
51
+ node = n;
52
+ },
53
+ class: cn(toClassValue(klass)),
54
+ onintroend: (ev: TransitionEvent) => {
55
+ onintroend?.(ev);
56
+ if (ev.defaultPrevented) return;
57
+
58
+ hasEntered = true;
59
+ },
60
+ ...restProps
61
+ }) as Record<string, any>;
62
+
63
+ const transitionSnippet = $derived(global ? globalTransition : localTransition);
64
+
65
+ function enterTransition(node: Element) {
66
+ initial?.(node);
67
+
68
+ return enter?.(node) ?? {};
69
+ }
70
+
71
+ function exitTransition(node: Element) {
72
+ return exit?.(node) ?? {};
73
+ }
74
+ </script>
75
+
76
+ {#snippet globalTransition()}
77
+ <svelte:element this={as} class={cn(toClassValue(klass))} in:enterTransition|global out:exitTransition|global {...elementProps}>
78
+ {@render children?.()}
79
+ </svelte:element>
80
+ {/snippet}
81
+
82
+ {#snippet localTransition()}
83
+ <svelte:element this={as} class={cn(toClassValue(klass))} in:enterTransition out:exitTransition {...elementProps}>
84
+ {@render children?.()}
85
+ </svelte:element>
86
+ {/snippet}
87
+
88
+ {@render transitionSnippet()}
@@ -1,36 +1,48 @@
1
- import type { Snippet } from 'svelte';
2
1
  import type { HTMLAttributes, SVGAttributes } from 'svelte/elements';
3
2
  import type { TransitionConfig } from 'svelte/transition';
4
3
  import type { ClassValue } from '../../utils';
5
- export interface ElementProps<T extends ElementTagName> extends Record<string, unknown> {
4
+ import type { Snippet } from 'svelte';
5
+ export type HtmlElementTagName = keyof HTMLElementTagNameMap;
6
+ export type SvgElementTagName = keyof SVGElementTagNameMap;
7
+ export type ElementTagName = HtmlElementTagName | SvgElementTagName;
8
+ export type HtmlElementType<T extends HtmlElementTagName> = HTMLElementTagNameMap[T];
9
+ export type SvgElementType<T extends SvgElementTagName> = SVGElementTagNameMap[T];
10
+ export type ElementType<T> = T extends HtmlElementTagName ? HTMLElementTagNameMap[T] : T extends SvgElementTagName ? SVGElementTagNameMap[T] : never;
11
+ export type ElementAttributes<T extends ElementTagName> = T extends HtmlElementTagName ? HTMLAttributes<ElementType<T>> : T extends SvgElementTagName ? SVGAttributes<ElementType<T>> : never;
12
+ export interface TransitionFunction<T extends Element = Element> {
13
+ (node: T): Partial<TransitionConfig> | void;
14
+ }
15
+ export interface NodeFunction<T extends ElementTagName = ElementTagName> {
16
+ (node: ElementType<T>, ...args: any[]): any;
17
+ }
18
+ export interface ElementProps<T extends ElementTagName = ElementTagName> extends Record<string, unknown> {
19
+ /** CSS class binding (string, array, or computed) */
6
20
  class?: ClassValue | ClassValue[];
21
+ /** Change the HTML tag (use polymorphic components) */
7
22
  as?: T | (string & {});
23
+ /** Apply styles globally */
8
24
  global?: boolean;
25
+ /** Initial animation/setup on mount */
9
26
  initial?: NodeFunction<T>;
27
+ /** Enter transition */
10
28
  enter?: TransitionFunction<T>;
29
+ /** Exit transition */
11
30
  exit?: TransitionFunction<T>;
31
+ /** Animation function */
12
32
  animate?: NodeFunction<T>;
33
+ /** Lifecycle: on mount */
13
34
  onmount?: NodeFunction<T>;
35
+ /** Lifecycle: on destroy */
14
36
  ondestroy?: NodeFunction<T>;
15
- children?: Snippet<unknown[]>;
16
37
  [key: string]: unknown;
17
38
  }
18
- export type HtmlElementTagName = keyof HTMLElementTagNameMap;
19
- export type SvgElementTagName = keyof SVGElementTagNameMap;
20
- export interface HtmlElementProps<T extends HtmlElementTagName = 'div'> extends ElementProps<T> {
21
- children?: Snippet<[]>;
22
- }
23
- export interface SvgElementProps<T extends SvgElementTagName = 'g'> extends ElementProps<T> {
24
- children?: Snippet<[]>;
39
+ export interface HtmlElementEventProps {
40
+ /** Fired when enter transition ends */
41
+ onintroend?: (ev: TransitionEvent) => void;
42
+ /** Fired when exit transition ends */
43
+ onexitend?: (ev: TransitionEvent) => void;
25
44
  }
26
- export type ElementTagName = HtmlElementTagName | SvgElementTagName;
27
- export type HtmlElementType<T extends HtmlElementTagName> = HTMLElementTagNameMap[T];
28
- export type SvgElementType<T extends SvgElementTagName> = SVGElementTagNameMap[T];
29
- export type ElementType<T> = T extends HtmlElementTagName ? HTMLElementTagNameMap[T] : T extends SvgElementTagName ? SVGElementTagNameMap[T] : never;
30
- export type ElementAttributes<T extends ElementTagName> = T extends HtmlElementTagName ? HTMLAttributes<ElementType<T>> : T extends SvgElementTagName ? SVGAttributes<ElementType<T>> : never;
31
- export interface TransitionFunction<T extends ElementTagName> {
32
- (node: ElementType<T>): Partial<TransitionConfig> | (() => Partial<TransitionConfig>);
33
- }
34
- export interface NodeFunction<T extends ElementTagName> {
35
- (node: ElementType<T>, ...args: any[]): any;
45
+ export interface HtmlElementProps<T extends HtmlElementTagName = 'div', Children extends Snippet<unknown[]> = Snippet> extends ElementProps<T>, HtmlElementEventProps {
46
+ children?: Children;
36
47
  }
48
+ export type SvgElementProps<T extends SvgElementTagName = 'g'> = ElementProps<T>;
@@ -1,4 +1,4 @@
1
1
  export { default as Root } from './field-root.svelte';
2
2
  export { default as Label } from './field-label.svelte';
3
3
  export { default as Control } from './field-control.svelte';
4
- export { default as Errors } from './field-errors.svelte';
4
+ export { default as HelperText } from './field-helper-text.svelte';
@@ -1,4 +1,4 @@
1
1
  export { default as Root } from './field-root.svelte';
2
2
  export { default as Label } from './field-label.svelte';
3
3
  export { default as Control } from './field-control.svelte';
4
- export { default as Errors } from './field-errors.svelte';
4
+ export { default as HelperText } from './field-helper-text.svelte';
@@ -1,6 +1,5 @@
1
1
  import { getContext, setContext } from 'svelte';
2
2
  import { createAttachmentKey } from 'svelte/attachments';
3
- import { FormBond } from '../bond.svelte';
4
3
  import { Bond, BondState } from '../../../shared/bond.svelte';
5
4
  export class ZodValidationAdapter {
6
5
  validate(schema, value) {
@@ -98,13 +97,8 @@ export class FieldBondState extends BondState {
98
97
  #data = $state(undefined);
99
98
  #errors = $state([]);
100
99
  #isValidating = $state(false);
101
- #form;
102
100
  constructor(props) {
103
101
  super(props);
104
- this.#form = FormBond.get()?.state;
105
- if (!this.#form) {
106
- throw new Error('Form Context is undefined, FieldAtom must be used within a FormAtom context');
107
- }
108
102
  }
109
103
  get value() {
110
104
  return this.props.value;
@@ -1,4 +1,4 @@
1
- <script lang="ts" generics="B extends Base<{value: unknown}>">
1
+ <script lang="ts" generics="E extends keyof HTMLElementTagNameMap = 'div', B extends Base = Base">
2
2
  import { HtmlAtom, type Base } from '../../atom';
3
3
  import { FieldBond } from './bond.svelte';
4
4
  import type { FieldControlProps } from '../types';
@@ -16,33 +16,54 @@
16
16
  children = undefined,
17
17
  oninput = undefined,
18
18
  ...restProps
19
- }: FieldControlProps<B> = $props();
20
- const controlProps = $derived({ ...bond.control(), ...restProps });
19
+ }: FieldControlProps<E, B> = $props();
20
+ const controlProps = $derived.by(() => {
21
+ const raw = /** @type {Record<string, unknown>} */ (bond?.control?.() ?? {});
22
+ return {
23
+ ...raw,
24
+ ...restProps
25
+ };
26
+ });
21
27
 
22
- function handleInput(ev: CustomEvent, detail: any) {
23
- oninput?.(ev);
28
+ function handleInput(
29
+ ev: CustomEvent<{
30
+ value?: unknown;
31
+ files?: File[];
32
+ date?: Date | null;
33
+ number?: number;
34
+ checked?: boolean;
35
+ }>
36
+ ) {
37
+ oninput?.(ev, { value: ev?.detail?.value });
24
38
 
25
39
  if (ev.defaultPrevented) {
26
40
  return;
27
41
  }
28
42
 
43
+ const detail = ev?.detail ?? {};
44
+
45
+ if (!bond) {
46
+ return;
47
+ }
48
+
29
49
  bond.state.props.value = value = detail?.value;
30
50
  bond.state.props.files = files = detail?.files ?? [];
31
51
  bond.state.props.date = date = detail?.date ?? null;
32
- bond.state.props.number = number = detail?.number ?? null;
52
+ if (detail?.number !== undefined) {
53
+ bond.state.props.number = number = detail.number;
54
+ }
33
55
  bond.state.props.checked = checked = detail?.checked ?? false;
34
56
  }
35
57
  </script>
36
58
 
37
59
  <HtmlAtom
38
- {bond}
39
60
  {value}
40
61
  {checked}
41
62
  {name}
42
63
  preset="field.control"
43
64
  class={['flex items-center', '$preset', klass]}
44
- oninput={handleInput}
65
+ oninput={(ev: Event) => handleInput(ev as unknown as CustomEvent<{ value?: unknown; files?: File[]; date?: Date | null; number?: number; checked?: boolean }>)}
45
66
  {...controlProps}
46
67
  >
47
- {@render children?.()}
68
+ {@render children?.({ field: bond })}
48
69
  </HtmlAtom>
@@ -1,36 +1,26 @@
1
1
  import { type Base } from '../../atom';
2
2
  import type { FieldControlProps } from '../types';
3
- declare function $$render<B extends Base<{
4
- value: unknown;
5
- }>>(): {
6
- props: FieldControlProps<B>;
3
+ declare function $$render<E extends keyof HTMLElementTagNameMap = 'div', B extends Base = Base>(): {
4
+ props: FieldControlProps<E, B>;
7
5
  exports: {};
8
6
  bindings: "number" | "value" | "date" | "checked" | "files";
9
7
  slots: {};
10
8
  events: {};
11
9
  };
12
- declare class __sveltets_Render<B extends Base<{
13
- value: unknown;
14
- }>> {
15
- props(): ReturnType<typeof $$render<B>>['props'];
16
- events(): ReturnType<typeof $$render<B>>['events'];
17
- slots(): ReturnType<typeof $$render<B>>['slots'];
10
+ declare class __sveltets_Render<E extends keyof HTMLElementTagNameMap = 'div', B extends Base = Base> {
11
+ props(): ReturnType<typeof $$render<E, B>>['props'];
12
+ events(): ReturnType<typeof $$render<E, B>>['events'];
13
+ slots(): ReturnType<typeof $$render<E, B>>['slots'];
18
14
  bindings(): "number" | "value" | "date" | "checked" | "files";
19
15
  exports(): {};
20
16
  }
21
17
  interface $$IsomorphicComponent {
22
- new <B extends Base<{
23
- value: unknown;
24
- }>>(options: import('svelte').ComponentConstructorOptions<ReturnType<__sveltets_Render<B>['props']>>): import('svelte').SvelteComponent<ReturnType<__sveltets_Render<B>['props']>, ReturnType<__sveltets_Render<B>['events']>, ReturnType<__sveltets_Render<B>['slots']>> & {
25
- $$bindings?: ReturnType<__sveltets_Render<B>['bindings']>;
26
- } & ReturnType<__sveltets_Render<B>['exports']>;
27
- <B extends Base<{
28
- value: unknown;
29
- }>>(internal: unknown, props: ReturnType<__sveltets_Render<B>['props']> & {}): ReturnType<__sveltets_Render<B>['exports']>;
30
- z_$$bindings?: ReturnType<__sveltets_Render<any>['bindings']>;
18
+ new <E extends keyof HTMLElementTagNameMap = 'div', B extends Base = Base>(options: import('svelte').ComponentConstructorOptions<ReturnType<__sveltets_Render<E, B>['props']>>): import('svelte').SvelteComponent<ReturnType<__sveltets_Render<E, B>['props']>, ReturnType<__sveltets_Render<E, B>['events']>, ReturnType<__sveltets_Render<E, B>['slots']>> & {
19
+ $$bindings?: ReturnType<__sveltets_Render<E, B>['bindings']>;
20
+ } & ReturnType<__sveltets_Render<E, B>['exports']>;
21
+ <E extends keyof HTMLElementTagNameMap = 'div', B extends Base = Base>(internal: unknown, props: ReturnType<__sveltets_Render<E, B>['props']> & {}): ReturnType<__sveltets_Render<E, B>['exports']>;
22
+ z_$$bindings?: ReturnType<__sveltets_Render<any, any>['bindings']>;
31
23
  }
32
24
  declare const FieldControl: $$IsomorphicComponent;
33
- type FieldControl<B extends Base<{
34
- value: unknown;
35
- }>> = InstanceType<typeof FieldControl<B>>;
25
+ type FieldControl<E extends keyof HTMLElementTagNameMap = 'div', B extends Base = Base> = InstanceType<typeof FieldControl<E, B>>;
36
26
  export default FieldControl;
@@ -0,0 +1,23 @@
1
+ <script lang="ts" generics="E extends keyof HTMLElementTagNameMap = 'p', B extends Base = Base">
2
+ import { HtmlAtom, type Base } from '../../atom';
3
+ import { FieldBond } from './bond.svelte';
4
+ import type { FieldTextProps } from '../types';
5
+
6
+ const bond = FieldBond.get();
7
+
8
+ let {
9
+ class: klass = '',
10
+ as = 'p' as E,
11
+ children = undefined,
12
+ ...restProps
13
+ }: FieldTextProps<E, B> = $props();
14
+ </script>
15
+
16
+ <HtmlAtom
17
+ {as}
18
+ preset="field.helper-text"
19
+ class={['text-muted-foreground mt-1 text-xs', '$preset', klass]}
20
+ {...restProps}
21
+ >
22
+ {@render children?.({ field: bond })}
23
+ </HtmlAtom>