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

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 (695) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +80 -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 +8 -9
  10. package/dist/components/accordion/item/accordion-item-header.svelte +1 -14
  11. package/dist/components/accordion/item/accordion-item-indicator.svelte +1 -13
  12. package/dist/components/accordion/item/accordion-item-root.svelte +3 -14
  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-actions.svelte +0 -12
  18. package/dist/components/alert/alert-close-button.svelte +0 -12
  19. package/dist/components/alert/alert-content.svelte +0 -12
  20. package/dist/components/alert/alert-description.svelte +0 -12
  21. package/dist/components/alert/alert-icon.svelte +0 -12
  22. package/dist/components/alert/alert-root.svelte +56 -68
  23. package/dist/components/alert/alert-title.svelte +0 -12
  24. package/dist/components/alert/types.d.ts +12 -46
  25. package/dist/components/atom/html-atom.svelte +98 -95
  26. package/dist/components/atom/html-atom.svelte.d.ts +1 -2
  27. package/dist/components/atom/index.d.ts +1 -0
  28. package/dist/components/atom/index.js +1 -0
  29. package/dist/components/atom/types.d.ts +61 -10
  30. package/dist/components/atom/types.js +1 -1
  31. package/dist/components/atom/utils/base.d.ts +6 -0
  32. package/dist/components/atom/utils/base.js +8 -0
  33. package/dist/components/atom/utils/cache.d.ts +17 -0
  34. package/dist/components/atom/utils/cache.js +134 -0
  35. package/dist/components/atom/utils/classes.d.ts +14 -0
  36. package/dist/components/atom/utils/classes.js +42 -0
  37. package/dist/components/atom/utils/constants.d.ts +9 -0
  38. package/dist/components/atom/utils/constants.js +9 -0
  39. package/dist/components/atom/utils/index.d.ts +6 -0
  40. package/dist/components/atom/utils/index.js +5 -0
  41. package/dist/components/atom/utils/preset.d.ts +22 -0
  42. package/dist/components/atom/utils/preset.js +94 -0
  43. package/dist/components/atom/utils/props.d.ts +13 -0
  44. package/dist/components/atom/utils/props.js +60 -0
  45. package/dist/components/atom/utils/variants.d.ts +31 -0
  46. package/dist/components/atom/utils/variants.js +270 -0
  47. package/dist/components/avatar/types.d.ts +1 -6
  48. package/dist/components/badge/index.d.ts +1 -0
  49. package/dist/components/badge/types.d.ts +4 -7
  50. package/dist/components/button/button.svelte +31 -31
  51. package/dist/components/button/types.d.ts +9 -6
  52. package/dist/components/calendar/calendar-body.svelte +0 -1
  53. package/dist/components/calendar/calendar-day.svelte +99 -99
  54. package/dist/components/calendar/calendar-header.svelte +1 -1
  55. package/dist/components/calendar/calendar-root.svelte +206 -206
  56. package/dist/components/calendar/calendar-root.svelte.d.ts +1 -1
  57. package/dist/components/calendar/calendar-week-day.svelte +33 -33
  58. package/dist/components/calendar/types.d.ts +7 -10
  59. package/dist/components/card/card-body.svelte +0 -12
  60. package/dist/components/card/card-description.svelte +0 -12
  61. package/dist/components/card/card-footer.svelte +0 -12
  62. package/dist/components/card/card-header.svelte +0 -12
  63. package/dist/components/card/card-media.svelte +0 -12
  64. package/dist/components/card/card-root.svelte +80 -92
  65. package/dist/components/card/card-subtitle.svelte +0 -12
  66. package/dist/components/card/card-title.svelte +0 -12
  67. package/dist/components/card/types.d.ts +12 -51
  68. package/dist/components/checkbox/checkbox.svelte +65 -55
  69. package/dist/components/checkbox/checkbox.svelte.d.ts +1 -3
  70. package/dist/components/checkbox/index.d.ts +2 -0
  71. package/dist/components/checkbox/index.js +1 -0
  72. package/dist/components/checkbox/motion.d.ts +17 -0
  73. package/dist/components/checkbox/motion.js +34 -0
  74. package/dist/components/checkbox/types.d.ts +14 -7
  75. package/dist/components/chip/chip-close-button.svelte +33 -0
  76. package/dist/components/chip/chip-close-button.svelte.d.ts +4 -0
  77. package/dist/components/chip/chip.svelte +34 -41
  78. package/dist/components/chip/chip.svelte.d.ts +1 -3
  79. package/dist/components/chip/index.d.ts +2 -0
  80. package/dist/components/chip/index.js +2 -0
  81. package/dist/components/chip/types.d.ts +15 -8
  82. package/dist/components/collapsible/bond.svelte.d.ts +34 -24
  83. package/dist/components/collapsible/bond.svelte.js +73 -60
  84. package/dist/components/collapsible/collapsible-body.svelte +6 -13
  85. package/dist/components/collapsible/collapsible-header.svelte +1 -13
  86. package/dist/components/collapsible/collapsible-indicator.svelte +1 -13
  87. package/dist/components/collapsible/collapsible-root.svelte +55 -67
  88. package/dist/components/collapsible/types.d.ts +10 -22
  89. package/dist/components/combobox/bond.svelte.d.ts +13 -8
  90. package/dist/components/combobox/bond.svelte.js +30 -20
  91. package/dist/components/combobox/combobox-control.svelte +54 -66
  92. package/dist/components/combobox/combobox-item.svelte +50 -62
  93. package/dist/components/combobox/combobox-item.svelte.d.ts +0 -6
  94. package/dist/components/combobox/combobox-root.svelte +65 -65
  95. package/dist/components/combobox/combobox-root.svelte.d.ts +2 -2
  96. package/dist/components/combobox/combobox-selections.svelte +17 -17
  97. package/dist/components/combobox/combobox-trigger.svelte +34 -34
  98. package/dist/components/combobox/index.d.ts +1 -1
  99. package/dist/components/combobox/types.d.ts +6 -10
  100. package/dist/components/container/container.svelte +0 -12
  101. package/dist/components/container/index.d.ts +1 -0
  102. package/dist/components/container/types.d.ts +6 -12
  103. package/dist/components/context-menu/atoms.d.ts +4 -0
  104. package/dist/components/context-menu/atoms.js +4 -0
  105. package/dist/components/context-menu/context-menu-content.svelte +52 -0
  106. package/dist/components/context-menu/context-menu-content.svelte.d.ts +27 -0
  107. package/dist/components/context-menu/context-menu-root.svelte +8 -0
  108. package/dist/components/context-menu/context-menu-root.svelte.d.ts +4 -0
  109. package/dist/components/context-menu/context-menu-trigger.svelte +59 -0
  110. package/dist/components/context-menu/context-menu-trigger.svelte.d.ts +27 -0
  111. package/dist/components/context-menu/index.d.ts +2 -0
  112. package/dist/components/context-menu/index.js +2 -0
  113. package/dist/components/{contextmenu → context-menu}/types.d.ts +1 -6
  114. package/dist/components/datagrid/atoms.d.ts +11 -5
  115. package/dist/components/datagrid/atoms.js +11 -5
  116. package/dist/components/datagrid/bond.svelte.d.ts +29 -14
  117. package/dist/components/datagrid/bond.svelte.js +45 -33
  118. package/dist/components/datagrid/cell/bond.svelte.d.ts +29 -0
  119. package/dist/components/datagrid/cell/bond.svelte.js +42 -0
  120. package/dist/components/datagrid/cell/datagrid-cell.svelte +49 -0
  121. package/dist/components/datagrid/cell/datagrid-cell.svelte.d.ts +26 -0
  122. package/dist/components/datagrid/cell/index.d.ts +4 -0
  123. package/dist/components/datagrid/cell/index.js +4 -0
  124. package/dist/components/datagrid/col/index.d.ts +4 -0
  125. package/dist/components/datagrid/col/index.js +4 -0
  126. package/dist/components/datagrid/column/bond.svelte.d.ts +45 -0
  127. package/dist/components/datagrid/column/bond.svelte.js +76 -0
  128. package/dist/components/datagrid/{th/datagrid-th-sort-icon.svelte → column/datagrid-column-sort-icon.svelte} +6 -15
  129. package/dist/components/datagrid/{th/datagrid-th.svelte.d.ts → column/datagrid-column-sort-icon.svelte.d.ts} +6 -5
  130. package/dist/components/datagrid/{th/datagrid-th.svelte → column/datagrid-column.svelte} +27 -36
  131. package/dist/components/datagrid/column/datagrid-column.svelte.d.ts +26 -0
  132. package/dist/components/datagrid/column/index.d.ts +4 -0
  133. package/dist/components/datagrid/column/index.js +4 -0
  134. package/dist/components/datagrid/context.d.ts +2 -29
  135. package/dist/components/datagrid/context.js +4 -18
  136. package/dist/components/datagrid/datagrid-body.svelte +24 -21
  137. package/dist/components/datagrid/datagrid-body.svelte.d.ts +8 -15
  138. package/dist/components/datagrid/datagrid-checkbox.svelte +60 -63
  139. package/dist/components/datagrid/datagrid-checkbox.svelte.d.ts +1 -3
  140. package/dist/components/datagrid/datagrid-footer.svelte +27 -34
  141. package/dist/components/datagrid/datagrid-footer.svelte.d.ts +12 -12
  142. package/dist/components/datagrid/datagrid-header.svelte +10 -17
  143. package/dist/components/datagrid/datagrid-header.svelte.d.ts +12 -12
  144. package/dist/components/datagrid/datagrid-root.svelte +49 -59
  145. package/dist/components/datagrid/datagrid-root.svelte.d.ts +15 -14
  146. package/dist/components/datagrid/row/bond.svelte.d.ts +42 -0
  147. package/dist/components/datagrid/row/bond.svelte.js +72 -0
  148. package/dist/components/datagrid/{tr/datagrid-tr.css → row/datagrid-row.css} +1 -1
  149. package/dist/components/datagrid/row/datagrid-row.svelte +64 -0
  150. package/dist/components/datagrid/row/datagrid-row.svelte.d.ts +27 -0
  151. package/dist/components/datagrid/row/index.d.ts +4 -0
  152. package/dist/components/datagrid/row/index.js +4 -0
  153. package/dist/components/datagrid/types.d.ts +56 -116
  154. package/dist/components/date-picker/bond.svelte.d.ts +0 -12
  155. package/dist/components/date-picker/date-picker-calendar.svelte +58 -58
  156. package/dist/components/date-picker/date-picker-months.svelte +1 -1
  157. package/dist/components/date-picker/date-picker-root.svelte +96 -96
  158. package/dist/components/date-picker/date-picker-root.svelte.d.ts +1 -1
  159. package/dist/components/date-picker/date-picker-years.svelte +1 -1
  160. package/dist/components/date-picker/types.d.ts +6 -3
  161. package/dist/components/dialog/atoms.d.ts +1 -1
  162. package/dist/components/dialog/atoms.js +1 -1
  163. package/dist/components/dialog/bond.svelte.d.ts +66 -28
  164. package/dist/components/dialog/bond.svelte.js +136 -117
  165. package/dist/components/dialog/dialog-body.svelte +1 -13
  166. package/dist/components/dialog/dialog-close-button.svelte +0 -12
  167. package/dist/components/dialog/dialog-close.svelte +46 -0
  168. package/dist/components/dialog/dialog-close.svelte.d.ts +26 -0
  169. package/dist/components/dialog/dialog-content.svelte +6 -14
  170. package/dist/components/dialog/dialog-description.svelte +1 -13
  171. package/dist/components/dialog/dialog-footer.svelte +1 -13
  172. package/dist/components/dialog/dialog-header.svelte +1 -13
  173. package/dist/components/dialog/dialog-root.svelte +102 -82
  174. package/dist/components/dialog/dialog-title.svelte +1 -13
  175. package/dist/components/dialog/index.d.ts +3 -0
  176. package/dist/components/dialog/index.js +3 -0
  177. package/dist/components/dialog/motion.svelte.js +68 -26
  178. package/dist/components/dialog/types.d.ts +16 -51
  179. package/dist/components/divider/types.d.ts +1 -6
  180. package/dist/components/drawer/bond.svelte.d.ts +61 -36
  181. package/dist/components/drawer/bond.svelte.js +149 -121
  182. package/dist/components/drawer/drawer-backdrop.svelte +2 -13
  183. package/dist/components/drawer/drawer-body.svelte +1 -13
  184. package/dist/components/drawer/drawer-content.svelte +8 -15
  185. package/dist/components/drawer/drawer-content.svelte.d.ts +4 -1
  186. package/dist/components/drawer/drawer-description.svelte +1 -13
  187. package/dist/components/drawer/drawer-footer.svelte +1 -13
  188. package/dist/components/drawer/drawer-header.svelte +1 -13
  189. package/dist/components/drawer/drawer-root.svelte +97 -87
  190. package/dist/components/drawer/drawer-title.svelte +1 -13
  191. package/dist/components/drawer/motion.d.ts +59 -5
  192. package/dist/components/drawer/motion.js +133 -15
  193. package/dist/components/drawer/types.d.ts +15 -24
  194. package/dist/components/dropdown/atoms.d.ts +4 -8
  195. package/dist/components/dropdown/atoms.js +4 -9
  196. package/dist/components/dropdown/bond.svelte.d.ts +4 -53
  197. package/dist/components/dropdown/bond.svelte.js +4 -89
  198. package/dist/components/dropdown/dropdown-placeholder.svelte +0 -6
  199. package/dist/components/dropdown/dropdown-placeholder.svelte.d.ts +0 -6
  200. package/dist/components/dropdown/dropdown-query.svelte +31 -43
  201. package/dist/components/dropdown/dropdown-root.svelte +79 -79
  202. package/dist/components/dropdown/dropdown-root.svelte.d.ts +4 -4
  203. package/dist/components/dropdown/dropdown-selection.svelte +55 -55
  204. package/dist/components/dropdown/dropdown-selections.svelte +70 -70
  205. package/dist/components/dropdown/dropdown-trigger.svelte +30 -30
  206. package/dist/components/dropdown/index.d.ts +43 -7
  207. package/dist/components/dropdown/index.js +34 -6
  208. package/dist/components/dropdown/item/bond.svelte.d.ts +36 -0
  209. package/dist/components/dropdown/item/bond.svelte.js +85 -0
  210. package/dist/components/dropdown/item/controller.svelte.d.ts +1 -1
  211. package/dist/components/dropdown/item/dropdown-item.svelte +81 -107
  212. package/dist/components/dropdown/item/index.d.ts +11 -3
  213. package/dist/components/dropdown/item/index.js +10 -3
  214. package/dist/components/dropdown/types.d.ts +2 -67
  215. package/dist/components/dropdown-menu/atoms.d.ts +9 -0
  216. package/dist/components/dropdown-menu/atoms.js +9 -0
  217. package/dist/components/dropdown-menu/attachments.svelte.d.ts +2 -0
  218. package/dist/components/dropdown-menu/attachments.svelte.js +5 -0
  219. package/dist/components/dropdown-menu/bond.svelte.d.ts +68 -0
  220. package/dist/components/dropdown-menu/bond.svelte.js +173 -0
  221. package/dist/components/dropdown-menu/dropdown-menu-content.svelte +28 -0
  222. package/dist/components/dropdown-menu/dropdown-menu-content.svelte.d.ts +31 -0
  223. package/dist/components/dropdown-menu/dropdown-menu-root.svelte +14 -0
  224. package/dist/components/dropdown-menu/dropdown-menu-root.svelte.d.ts +4 -0
  225. package/dist/components/dropdown-menu/index.d.ts +7 -0
  226. package/dist/components/dropdown-menu/index.js +6 -0
  227. package/dist/components/dropdown-menu/item/bond.svelte.d.ts +26 -0
  228. package/dist/components/dropdown-menu/item/bond.svelte.js +54 -0
  229. package/dist/components/dropdown-menu/item/controller.svelte.d.ts +39 -0
  230. package/dist/components/dropdown-menu/item/controller.svelte.js +73 -0
  231. package/dist/components/dropdown-menu/item/dropdown-menu-item.svelte +75 -0
  232. package/dist/components/dropdown-menu/item/dropdown-menu-item.svelte.d.ts +32 -0
  233. package/dist/components/dropdown-menu/item/index.d.ts +3 -0
  234. package/dist/components/dropdown-menu/item/index.js +3 -0
  235. package/dist/components/dropdown-menu/item/types.d.ts +57 -0
  236. package/dist/components/dropdown-menu/item/types.js +1 -0
  237. package/dist/components/dropdown-menu/types.d.ts +3 -0
  238. package/dist/components/dropdown-menu/types.js +1 -0
  239. package/dist/components/element/html-element.svelte +114 -85
  240. package/dist/components/element/html-element.svelte.d.ts +1 -1
  241. package/dist/components/element/svg-element.svelte +88 -88
  242. package/dist/components/element/types.d.ts +32 -20
  243. package/dist/components/form/field/atoms.d.ts +1 -1
  244. package/dist/components/form/field/atoms.js +1 -1
  245. package/dist/components/form/field/bond.svelte.d.ts +29 -17
  246. package/dist/components/form/field/bond.svelte.js +73 -55
  247. package/dist/components/form/field/field-control.svelte +36 -12
  248. package/dist/components/form/field/field-control.svelte.d.ts +12 -22
  249. package/dist/components/form/field/field-helper-text.svelte +23 -0
  250. package/dist/components/form/field/field-helper-text.svelte.d.ts +26 -0
  251. package/dist/components/form/field/field-label.svelte +6 -8
  252. package/dist/components/form/field/field-label.svelte.d.ts +2 -2
  253. package/dist/components/form/field/field-root.svelte +18 -8
  254. package/dist/components/form/form-root.svelte +66 -66
  255. package/dist/components/form/types.d.ts +34 -58
  256. package/dist/components/icon/icon.svelte +40 -40
  257. package/dist/components/icon/types.d.ts +4 -7
  258. package/dist/components/image/index.d.ts +2 -0
  259. package/dist/components/image/index.js +2 -1
  260. package/dist/components/index.d.ts +13 -0
  261. package/dist/components/index.js +13 -0
  262. package/dist/components/input/atoms.d.ts +19 -1
  263. package/dist/components/input/atoms.js +19 -1
  264. package/dist/components/input/color/color-control.svelte +197 -0
  265. package/dist/components/input/color/color-control.svelte.d.ts +4 -0
  266. package/dist/components/input/color/index.d.ts +5 -0
  267. package/dist/components/input/color/index.js +5 -0
  268. package/dist/components/input/color/segment.svelte +240 -0
  269. package/dist/components/input/color/segment.svelte.d.ts +6 -0
  270. package/dist/components/input/color/shared.d.ts +23 -0
  271. package/dist/components/input/color/shared.js +349 -0
  272. package/dist/components/input/color/swatch.svelte +23 -0
  273. package/dist/components/input/color/swatch.svelte.d.ts +8 -0
  274. package/dist/components/input/color/types.d.ts +56 -0
  275. package/dist/components/input/color/types.js +2 -0
  276. package/dist/components/input/index.d.ts +1 -0
  277. package/dist/components/input/index.js +1 -0
  278. package/dist/components/input/input-control.svelte +3 -1
  279. package/dist/components/input/input-currency-control.svelte +189 -0
  280. package/dist/components/input/input-currency-control.svelte.d.ts +4 -0
  281. package/dist/components/input/input-email-control.svelte +128 -0
  282. package/dist/components/input/input-email-control.svelte.d.ts +4 -0
  283. package/dist/components/input/input-file-control.svelte +115 -0
  284. package/dist/components/input/input-file-control.svelte.d.ts +4 -0
  285. package/dist/components/input/input-icon.svelte +3 -3
  286. package/dist/components/input/input-icon.svelte.d.ts +1 -1
  287. package/dist/components/input/input-location.svelte +335 -0
  288. package/dist/components/input/input-location.svelte.d.ts +4 -0
  289. package/dist/components/input/input-number-control.svelte +107 -0
  290. package/dist/components/input/input-number-control.svelte.d.ts +6 -0
  291. package/dist/components/input/input-otp-control.svelte +206 -0
  292. package/dist/components/input/input-otp-control.svelte.d.ts +4 -0
  293. package/dist/components/input/input-password-control.svelte +91 -0
  294. package/dist/components/input/input-password-control.svelte.d.ts +3 -0
  295. package/dist/components/input/input-phone-control.svelte +394 -0
  296. package/dist/components/input/input-phone-control.svelte.d.ts +4 -0
  297. package/dist/components/input/input-placeholder.svelte.d.ts +1 -1
  298. package/dist/components/input/input-root.svelte +74 -74
  299. package/dist/components/input/input-text-control.svelte +64 -0
  300. package/dist/components/input/input-text-control.svelte.d.ts +4 -0
  301. package/dist/components/input/input-url-control.svelte +218 -0
  302. package/dist/components/input/input-url-control.svelte.d.ts +4 -0
  303. package/dist/components/input/time/datetime-control.svelte +281 -0
  304. package/dist/components/input/time/datetime-control.svelte.d.ts +5 -0
  305. package/dist/components/input/time/index.d.ts +6 -0
  306. package/dist/components/input/time/index.js +6 -0
  307. package/dist/components/input/time/segment.svelte +143 -0
  308. package/dist/components/input/time/segment.svelte.d.ts +6 -0
  309. package/dist/components/input/time/shared.d.ts +29 -0
  310. package/dist/components/input/time/shared.js +150 -0
  311. package/dist/components/input/time/time-control.svelte +237 -0
  312. package/dist/components/input/time/time-control.svelte.d.ts +3 -0
  313. package/dist/components/input/time/types.d.ts +34 -0
  314. package/dist/components/input/time/types.js +4 -0
  315. package/dist/components/input/types.d.ts +355 -17
  316. package/dist/components/kbd/index.d.ts +3 -0
  317. package/dist/components/kbd/index.js +3 -0
  318. package/dist/components/kbd/kbd.svelte +19 -0
  319. package/dist/components/kbd/kbd.svelte.d.ts +4 -0
  320. package/dist/components/kbd/shortcut.svelte +38 -0
  321. package/dist/components/kbd/shortcut.svelte.d.ts +4 -0
  322. package/dist/components/kbd/types.d.ts +20 -0
  323. package/dist/components/kbd/types.js +1 -0
  324. package/dist/components/label/types.d.ts +4 -7
  325. package/dist/components/layer/bond.svelte.d.ts +2 -2
  326. package/dist/components/layer/bond.svelte.js +1 -1
  327. package/dist/components/layer/index.d.ts +1 -0
  328. package/dist/components/layer/layer-inner.svelte +0 -12
  329. package/dist/components/layer/layer-inner.svelte.d.ts +1 -1
  330. package/dist/components/layer/layer-root.svelte +53 -65
  331. package/dist/components/layer/layer-root.svelte.d.ts +1 -1
  332. package/dist/components/layer/types.d.ts +6 -6
  333. package/dist/components/lazy/index.d.ts +1 -0
  334. package/dist/components/lazy/lazy.svelte +29 -29
  335. package/dist/components/lazy/types.d.ts +4 -4
  336. package/dist/components/link/index.d.ts +1 -0
  337. package/dist/components/link/types.d.ts +5 -6
  338. package/dist/components/list/index.d.ts +1 -0
  339. package/dist/components/list/types.d.ts +5 -6
  340. package/dist/components/menu/atoms.d.ts +2 -7
  341. package/dist/components/menu/atoms.js +2 -7
  342. package/dist/components/menu/bond.svelte.d.ts +9 -23
  343. package/dist/components/menu/bond.svelte.js +6 -0
  344. package/dist/components/menu/index.d.ts +40 -4
  345. package/dist/components/menu/index.js +26 -3
  346. package/dist/components/menu/item/bond.svelte.d.ts +27 -0
  347. package/dist/components/menu/item/bond.svelte.js +54 -0
  348. package/dist/components/menu/item/controller.svelte.d.ts +1 -1
  349. package/dist/components/menu/item/index.d.ts +5 -2
  350. package/dist/components/menu/item/index.js +4 -2
  351. package/dist/components/menu/item/menu-item.svelte +87 -103
  352. package/dist/components/menu/item/menu-item.svelte.d.ts +15 -14
  353. package/dist/components/menu/item/types.d.ts +5 -12
  354. package/dist/components/menu/menu-content.svelte +28 -40
  355. package/dist/components/menu/menu-content.svelte.d.ts +0 -6
  356. package/dist/components/menu/menu-root.svelte +15 -15
  357. package/dist/components/menu/menu-root.svelte.d.ts +1 -1
  358. package/dist/components/menu/types.d.ts +2 -6
  359. package/dist/components/popover/bond.svelte.d.ts +95 -39
  360. package/dist/components/popover/bond.svelte.js +212 -197
  361. package/dist/components/popover/index.d.ts +4 -1
  362. package/dist/components/popover/index.js +4 -1
  363. package/dist/components/popover/motion.svelte.d.ts +34 -0
  364. package/dist/components/popover/motion.svelte.js +135 -0
  365. package/dist/components/popover/popover-arrow.svelte +99 -110
  366. package/dist/components/popover/popover-arrow.svelte.d.ts +1 -2
  367. package/dist/components/popover/popover-content.svelte +86 -123
  368. package/dist/components/popover/popover-indicator.svelte +2 -13
  369. package/dist/components/popover/popover-indicator.svelte.d.ts +0 -6
  370. package/dist/components/popover/popover-overlay.svelte +98 -0
  371. package/dist/components/popover/popover-overlay.svelte.d.ts +4 -0
  372. package/dist/components/popover/popover-root.svelte +87 -49
  373. package/dist/components/popover/popover-root.svelte.d.ts +2 -1
  374. package/dist/components/popover/popover-trigger.svelte +44 -35
  375. package/dist/components/popover/strategies/floating.svelte +109 -0
  376. package/dist/components/popover/strategies/floating.svelte.d.ts +3 -0
  377. package/dist/components/popover/strategies/index.d.ts +1 -0
  378. package/dist/components/popover/strategies/index.js +1 -0
  379. package/dist/components/popover/strategy-types.d.ts +40 -0
  380. package/dist/components/popover/strategy-types.js +1 -0
  381. package/dist/components/popover/types.d.ts +17 -38
  382. package/dist/components/portal/active-portal.svelte +5 -4
  383. package/dist/components/portal/bond.svelte.d.ts +12 -8
  384. package/dist/components/portal/bond.svelte.js +25 -27
  385. package/dist/components/portal/index.d.ts +1 -0
  386. package/dist/components/portal/index.js +1 -0
  387. package/dist/components/portal/portal-inner.svelte +1 -13
  388. package/dist/components/portal/portal-inner.svelte.d.ts +1 -1
  389. package/dist/components/portal/portal-root.svelte +64 -76
  390. package/dist/components/portal/portal-root.svelte.d.ts +1 -1
  391. package/dist/components/portal/portals/bond.svelte.d.ts +2 -2
  392. package/dist/components/portal/portals/bond.svelte.js +2 -2
  393. package/dist/components/portal/teleport.svelte +47 -49
  394. package/dist/components/portal/teleport.svelte.d.ts +1 -2
  395. package/dist/components/portal/types.d.ts +7 -25
  396. package/dist/components/portal/utils.js +3 -3
  397. package/dist/components/portal/zlayer.svelte.d.ts +16 -0
  398. package/dist/components/portal/zlayer.svelte.js +25 -0
  399. package/dist/components/progress/index.d.ts +3 -0
  400. package/dist/components/progress/index.js +3 -0
  401. package/dist/components/progress/progress-circular.svelte +99 -0
  402. package/dist/components/progress/progress-circular.svelte.d.ts +6 -0
  403. package/dist/components/progress/progress-linear.svelte +66 -0
  404. package/dist/components/progress/progress-linear.svelte.d.ts +6 -0
  405. package/dist/components/progress/types.d.ts +18 -0
  406. package/dist/components/progress/types.js +1 -0
  407. package/dist/components/radio/index.d.ts +2 -0
  408. package/dist/components/radio/index.js +1 -0
  409. package/dist/components/radio/motion.d.ts +24 -0
  410. package/dist/components/radio/motion.js +59 -0
  411. package/dist/components/radio/radio.svelte +22 -12
  412. package/dist/components/radio/types.d.ts +5 -14
  413. package/dist/components/root/bond.svelte.d.ts +2 -2
  414. package/dist/components/root/bond.svelte.js +1 -1
  415. package/dist/components/root/root.svelte +82 -92
  416. package/dist/components/root/root.svelte.d.ts +2 -2
  417. package/dist/components/root/types.d.ts +4 -15
  418. package/dist/components/scrollable/atoms.d.ts +1 -0
  419. package/dist/components/scrollable/atoms.js +1 -0
  420. package/dist/components/scrollable/bond.svelte.d.ts +73 -189
  421. package/dist/components/scrollable/bond.svelte.js +195 -371
  422. package/dist/components/scrollable/scrollable-container.css +22 -22
  423. package/dist/components/scrollable/scrollable-container.svelte +54 -61
  424. package/dist/components/scrollable/scrollable-container.svelte.d.ts +12 -12
  425. package/dist/components/scrollable/scrollable-content.svelte +10 -17
  426. package/dist/components/scrollable/scrollable-content.svelte.d.ts +12 -12
  427. package/dist/components/scrollable/scrollable-root.svelte +94 -101
  428. package/dist/components/scrollable/scrollable-root.svelte.d.ts +12 -12
  429. package/dist/components/scrollable/scrollable-thumb.svelte +10 -45
  430. package/dist/components/scrollable/scrollable-thumb.svelte.d.ts +12 -12
  431. package/dist/components/scrollable/scrollable-track.svelte +9 -22
  432. package/dist/components/scrollable/scrollable-track.svelte.d.ts +12 -12
  433. package/dist/components/scrollable/types.d.ts +15 -38
  434. package/dist/components/select/atoms.d.ts +8 -0
  435. package/dist/components/select/atoms.js +8 -0
  436. package/dist/components/select/attachments.svelte.d.ts +2 -0
  437. package/dist/components/select/attachments.svelte.js +5 -0
  438. package/dist/components/select/bond.svelte.d.ts +52 -0
  439. package/dist/components/select/bond.svelte.js +112 -0
  440. package/dist/components/select/index.d.ts +11 -0
  441. package/dist/components/select/index.js +10 -0
  442. package/dist/components/select/item/attachments.svelte.d.ts +3 -0
  443. package/dist/components/select/item/attachments.svelte.js +6 -0
  444. package/dist/components/select/item/bond.svelte.d.ts +33 -0
  445. package/dist/components/select/item/bond.svelte.js +77 -0
  446. package/dist/components/select/item/controller.svelte.d.ts +39 -0
  447. package/dist/components/select/item/controller.svelte.js +105 -0
  448. package/dist/components/select/item/index.d.ts +5 -0
  449. package/dist/components/select/item/index.js +5 -0
  450. package/dist/components/select/item/select-item.svelte +81 -0
  451. package/dist/components/select/item/select-item.svelte.d.ts +25 -0
  452. package/dist/components/select/item/types.d.ts +29 -0
  453. package/dist/components/select/item/types.js +1 -0
  454. package/dist/components/select/runes.svelte.d.ts +10 -0
  455. package/dist/components/select/runes.svelte.js +15 -0
  456. package/dist/components/select/select-placeholder.svelte +34 -0
  457. package/dist/components/select/select-placeholder.svelte.d.ts +28 -0
  458. package/dist/components/select/select-root.svelte +80 -0
  459. package/dist/components/select/select-root.svelte.d.ts +30 -0
  460. package/dist/components/select/select-selection.svelte +55 -0
  461. package/dist/components/select/select-selection.svelte.d.ts +26 -0
  462. package/dist/components/select/select-selections.svelte +70 -0
  463. package/dist/components/select/select-selections.svelte.d.ts +5 -0
  464. package/dist/components/select/select-trigger.svelte +30 -0
  465. package/dist/components/select/select-trigger.svelte.d.ts +26 -0
  466. package/dist/components/select/types.d.ts +61 -0
  467. package/dist/components/select/types.js +1 -0
  468. package/dist/components/sidebar/bond.svelte.d.ts +10 -7
  469. package/dist/components/sidebar/bond.svelte.js +20 -15
  470. package/dist/components/sidebar/sidebar-content.svelte +6 -13
  471. package/dist/components/sidebar/sidebar-root.svelte +50 -41
  472. package/dist/components/sidebar/types.d.ts +10 -15
  473. package/dist/components/slider/index.d.ts +2 -0
  474. package/dist/components/slider/index.js +2 -0
  475. package/dist/components/slider/slider.svelte +164 -0
  476. package/dist/components/slider/slider.svelte.d.ts +6 -0
  477. package/dist/components/slider/types.d.ts +78 -0
  478. package/dist/components/slider/types.js +1 -0
  479. package/dist/components/stack/bond.svelte.d.ts +50 -0
  480. package/dist/components/stack/bond.svelte.js +180 -0
  481. package/dist/components/stack/index.d.ts +2 -0
  482. package/dist/components/stack/index.js +2 -0
  483. package/dist/components/stack/stack-item.svelte +44 -4
  484. package/dist/components/stack/stack-item.svelte.d.ts +6 -5
  485. package/dist/components/stack/stack-root.svelte +33 -4
  486. package/dist/components/stack/stack-root.svelte.d.ts +14 -5
  487. package/dist/components/stack/types.d.ts +11 -10
  488. package/dist/components/stepper/bond.svelte.d.ts +8 -7
  489. package/dist/components/stepper/bond.svelte.js +14 -11
  490. package/dist/components/stepper/step/README.md +97 -97
  491. package/dist/components/stepper/step/bond.svelte.d.ts +74 -63
  492. package/dist/components/stepper/step/bond.svelte.js +105 -69
  493. package/dist/components/stepper/step/step-body.svelte +39 -39
  494. package/dist/components/stepper/step/step-description.svelte +33 -33
  495. package/dist/components/stepper/step/step-header.svelte +34 -34
  496. package/dist/components/stepper/step/step-indicator.svelte +62 -62
  497. package/dist/components/stepper/step/step-root.svelte +42 -42
  498. package/dist/components/stepper/step/step-separator.svelte +48 -48
  499. package/dist/components/stepper/step/step-title.svelte +33 -33
  500. package/dist/components/stepper/step/types.d.ts +13 -57
  501. package/dist/components/stepper/stepper-body.svelte +31 -43
  502. package/dist/components/stepper/stepper-content.svelte +45 -45
  503. package/dist/components/stepper/stepper-footer.svelte +31 -31
  504. package/dist/components/stepper/stepper-header.svelte +27 -39
  505. package/dist/components/stepper/stepper-root.svelte +55 -61
  506. package/dist/components/stepper/types.d.ts +10 -36
  507. package/dist/components/swatch/index.d.ts +1 -0
  508. package/dist/components/swatch/index.js +1 -0
  509. package/dist/components/swatch/swatch.svelte +57 -0
  510. package/dist/components/swatch/swatch.svelte.d.ts +9 -0
  511. package/dist/components/switch/index.d.ts +2 -0
  512. package/dist/components/switch/index.js +2 -0
  513. package/dist/components/switch/switch.svelte +78 -0
  514. package/dist/components/switch/switch.svelte.d.ts +6 -0
  515. package/dist/components/switch/types.d.ts +43 -0
  516. package/dist/components/switch/types.js +1 -0
  517. package/dist/components/tabs/bond.svelte.d.ts +38 -19
  518. package/dist/components/tabs/bond.svelte.js +53 -46
  519. package/dist/components/tabs/tab/attachments.svelte.d.ts +5 -2
  520. package/dist/components/tabs/tab/attachments.svelte.js +4 -3
  521. package/dist/components/tabs/tab/bond.svelte.d.ts +35 -23
  522. package/dist/components/tabs/tab/bond.svelte.js +81 -56
  523. package/dist/components/tabs/tab/tab-body.svelte +61 -43
  524. package/dist/components/tabs/tab/tab-description.svelte +33 -33
  525. package/dist/components/tabs/tab/tab-header.svelte +61 -61
  526. package/dist/components/tabs/tab/tab-root.svelte +49 -50
  527. package/dist/components/tabs/tab/tab-root.svelte.d.ts +13 -35
  528. package/dist/components/tabs/tabs-body.svelte +37 -35
  529. package/dist/components/tabs/tabs-body.svelte.d.ts +1 -1
  530. package/dist/components/tabs/tabs-content.svelte +32 -51
  531. package/dist/components/tabs/tabs-header.svelte +32 -32
  532. package/dist/components/tabs/tabs-root.svelte +64 -56
  533. package/dist/components/tabs/types.d.ts +20 -37
  534. package/dist/components/textarea/types.d.ts +6 -12
  535. package/dist/components/toast/atoms.d.ts +1 -0
  536. package/dist/components/toast/atoms.js +1 -0
  537. package/dist/components/toast/attachments.svelte.d.ts +10 -2
  538. package/dist/components/toast/attachments.svelte.js +9 -1
  539. package/dist/components/toast/bond.svelte.d.ts +73 -0
  540. package/dist/components/toast/bond.svelte.js +132 -0
  541. package/dist/components/toast/index.d.ts +1 -0
  542. package/dist/components/toast/index.js +1 -0
  543. package/dist/components/toast/toast-close.svelte +47 -0
  544. package/dist/components/toast/toast-close.svelte.d.ts +26 -0
  545. package/dist/components/toast/toast-description.svelte +16 -24
  546. package/dist/components/toast/toast-description.svelte.d.ts +15 -19
  547. package/dist/components/toast/toast-root.svelte +36 -26
  548. package/dist/components/toast/toast-root.svelte.d.ts +16 -15
  549. package/dist/components/toast/toast-title.svelte +17 -22
  550. package/dist/components/toast/toast-title.svelte.d.ts +13 -13
  551. package/dist/components/toast/toaster.svelte.d.ts +38 -0
  552. package/dist/components/toast/toaster.svelte.js +107 -0
  553. package/dist/components/toast/types.d.ts +14 -31
  554. package/dist/components/tooltip/index.d.ts +1 -0
  555. package/dist/components/tooltip/tooltip-trigger.svelte +39 -39
  556. package/dist/components/tooltip/types.d.ts +5 -8
  557. package/dist/components/tree/bond.svelte.d.ts +28 -19
  558. package/dist/components/tree/bond.svelte.js +62 -53
  559. package/dist/components/tree/tree-body.svelte +6 -13
  560. package/dist/components/tree/tree-header.svelte +1 -13
  561. package/dist/components/tree/tree-header.svelte.d.ts +1 -1
  562. package/dist/components/tree/tree-indicator.svelte +1 -13
  563. package/dist/components/tree/tree-root.svelte +54 -66
  564. package/dist/components/tree/types.d.ts +4 -28
  565. package/dist/components/virtual/index.d.ts +2 -0
  566. package/dist/components/virtual/index.js +2 -0
  567. package/dist/components/virtual/types.d.ts +1 -6
  568. package/dist/constants/motion.d.ts +9 -0
  569. package/dist/constants/motion.js +9 -0
  570. package/dist/context/index.d.ts +1 -1
  571. package/dist/context/preset.svelte.d.ts +186 -3
  572. package/dist/context/preset.svelte.js +29 -3
  573. package/dist/runes/color-scheme.svelte.js +17 -5
  574. package/dist/shared/bond.svelte.d.ts +29 -3
  575. package/dist/shared/bond.svelte.js +126 -4
  576. package/dist/shared/index.d.ts +1 -1
  577. package/dist/shared/index.js +1 -1
  578. package/dist/shared/motion.d.ts +1 -0
  579. package/dist/shared/motion.js +2 -8
  580. package/dist/types/index.d.ts +4 -0
  581. package/dist/utils/index.d.ts +1 -1
  582. package/dist/utils/index.js +1 -1
  583. package/dist/utils/promise.svelte.d.ts +5 -0
  584. package/dist/utils/promise.svelte.js +17 -0
  585. package/dist/utils/variant.d.ts +10 -1
  586. package/dist/utils/variant.js +11 -1
  587. package/package.json +171 -48
  588. package/dist/components/accordion/accordion.stories.svelte +0 -70
  589. package/dist/components/accordion/accordion.stories.svelte.d.ts +0 -18
  590. package/dist/components/alert/alert.stories.svelte +0 -400
  591. package/dist/components/alert/alert.stories.svelte.d.ts +0 -3
  592. package/dist/components/atom/utils.d.ts +0 -37
  593. package/dist/components/atom/utils.js +0 -208
  594. package/dist/components/avatar/avatar.stories.svelte +0 -22
  595. package/dist/components/avatar/avatar.stories.svelte.d.ts +0 -26
  596. package/dist/components/badge/badge.stories.svelte +0 -12
  597. package/dist/components/badge/badge.stories.svelte.d.ts +0 -26
  598. package/dist/components/breadcrumb/breadcrumb.stories.svelte +0 -16
  599. package/dist/components/breadcrumb/breadcrumb.stories.svelte.d.ts +0 -26
  600. package/dist/components/button/button.stories.svelte +0 -27
  601. package/dist/components/button/button.stories.svelte.d.ts +0 -18
  602. package/dist/components/calendar/calendar.stories.svelte +0 -26
  603. package/dist/components/calendar/calendar.stories.svelte.d.ts +0 -26
  604. package/dist/components/card/card.stories.svelte +0 -133
  605. package/dist/components/card/card.stories.svelte.d.ts +0 -19
  606. package/dist/components/checkbox/checkbox.stories.svelte +0 -22
  607. package/dist/components/checkbox/checkbox.stories.svelte.d.ts +0 -6
  608. package/dist/components/collapsible/collapsible.stories.svelte +0 -172
  609. package/dist/components/collapsible/collapsible.stories.svelte.d.ts +0 -18
  610. package/dist/components/combobox/combobox.stories.svelte +0 -63
  611. package/dist/components/combobox/combobox.stories.svelte.d.ts +0 -3
  612. package/dist/components/container/container.stories.svelte +0 -20
  613. package/dist/components/container/container.stories.svelte.d.ts +0 -26
  614. package/dist/components/contextmenu/atoms.d.ts +0 -0
  615. package/dist/components/contextmenu/atoms.js +0 -1
  616. package/dist/components/contextmenu/contextmenu-trigger.svelte +0 -0
  617. package/dist/components/contextmenu/contextmenu-trigger.svelte.d.ts +0 -26
  618. package/dist/components/contextmenu/indext.d.ts +0 -0
  619. package/dist/components/contextmenu/indext.js +0 -1
  620. package/dist/components/datagrid/datagrid.stories.svelte +0 -72
  621. package/dist/components/datagrid/datagrid.stories.svelte.d.ts +0 -6
  622. package/dist/components/datagrid/td/bond.svelte.d.ts +0 -28
  623. package/dist/components/datagrid/td/bond.svelte.js +0 -40
  624. package/dist/components/datagrid/td/datagrid-td.svelte +0 -66
  625. package/dist/components/datagrid/td/datagrid-td.svelte.d.ts +0 -30
  626. package/dist/components/datagrid/td/index.d.ts +0 -2
  627. package/dist/components/datagrid/td/index.js +0 -2
  628. package/dist/components/datagrid/th/bond.svelte.d.ts +0 -38
  629. package/dist/components/datagrid/th/bond.svelte.js +0 -66
  630. package/dist/components/datagrid/th/datagrid-th-sort-icon.svelte.d.ts +0 -33
  631. package/dist/components/datagrid/th/index.d.ts +0 -2
  632. package/dist/components/datagrid/th/index.js +0 -2
  633. package/dist/components/datagrid/tr/bond.svelte.d.ts +0 -37
  634. package/dist/components/datagrid/tr/bond.svelte.js +0 -72
  635. package/dist/components/datagrid/tr/datagrid-tr.svelte +0 -90
  636. package/dist/components/datagrid/tr/datagrid-tr.svelte.d.ts +0 -28
  637. package/dist/components/datagrid/tr/index.d.ts +0 -2
  638. package/dist/components/datagrid/tr/index.js +0 -2
  639. package/dist/components/date-picker/date-picker.stories.svelte +0 -35
  640. package/dist/components/date-picker/date-picker.stories.svelte.d.ts +0 -3
  641. package/dist/components/dialog/dialog.stories.svelte +0 -64
  642. package/dist/components/dialog/dialog.stories.svelte.d.ts +0 -3
  643. package/dist/components/drawer/drawer.stories.svelte +0 -141
  644. package/dist/components/drawer/drawer.stories.svelte.d.ts +0 -3
  645. package/dist/components/dropdown/dropdown.stories.svelte +0 -127
  646. package/dist/components/dropdown/dropdown.stories.svelte.d.ts +0 -3
  647. package/dist/components/element/element.stories.svelte +0 -37
  648. package/dist/components/element/element.stories.svelte.d.ts +0 -3
  649. package/dist/components/form/field/field-errors.svelte +0 -9
  650. package/dist/components/form/field/field-errors.svelte.d.ts +0 -11
  651. package/dist/components/form/form.stories.svelte +0 -96
  652. package/dist/components/form/form.stories.svelte.d.ts +0 -18
  653. package/dist/components/image/image.stories.svelte +0 -20
  654. package/dist/components/image/image.stories.svelte.d.ts +0 -26
  655. package/dist/components/input/input.stories.svelte +0 -35
  656. package/dist/components/input/input.stories.svelte.d.ts +0 -18
  657. package/dist/components/label/label.stories.svelte +0 -15
  658. package/dist/components/label/label.stories.svelte.d.ts +0 -26
  659. package/dist/components/lazy/lazy.stories.svelte +0 -28
  660. package/dist/components/lazy/lazy.stories.svelte.d.ts +0 -19
  661. package/dist/components/link/link.stories.svelte +0 -15
  662. package/dist/components/link/link.stories.svelte.d.ts +0 -26
  663. package/dist/components/menu/menu.stories.svelte +0 -33
  664. package/dist/components/menu/menu.stories.svelte.d.ts +0 -3
  665. package/dist/components/popover/motion.d.ts +0 -6
  666. package/dist/components/popover/motion.js +0 -57
  667. package/dist/components/popover/popover.stories.svelte +0 -37
  668. package/dist/components/popover/popover.stories.svelte.d.ts +0 -3
  669. package/dist/components/qr-code/qr-code.stories.svelte +0 -18
  670. package/dist/components/qr-code/qr-code.stories.svelte.d.ts +0 -26
  671. package/dist/components/radio/radio-group.stories.svelte +0 -41
  672. package/dist/components/radio/radio-group.stories.svelte.d.ts +0 -6
  673. package/dist/components/radio/radio.stories.svelte +0 -17
  674. package/dist/components/radio/radio.stories.svelte.d.ts +0 -6
  675. package/dist/components/root/l0-portal.svelte +0 -8
  676. package/dist/components/root/l0-portal.svelte.d.ts +0 -26
  677. package/dist/components/root/l1-portal.svelte +0 -7
  678. package/dist/components/root/l1-portal.svelte.d.ts +0 -26
  679. package/dist/components/root/toasts-portal.svelte +0 -7
  680. package/dist/components/root/toasts-portal.svelte.d.ts +0 -26
  681. package/dist/components/scrollable/scrollable.stories.svelte +0 -116
  682. package/dist/components/scrollable/scrollable.stories.svelte.d.ts +0 -26
  683. package/dist/components/sidebar/sidebar.stories.svelte +0 -43
  684. package/dist/components/sidebar/sidebar.stories.svelte.d.ts +0 -3
  685. package/dist/components/stepper/stepper.stories.svelte +0 -264
  686. package/dist/components/stepper/stepper.stories.svelte.d.ts +0 -4
  687. package/dist/components/tabs/tabs.stories.svelte +0 -70
  688. package/dist/components/tabs/tabs.stories.svelte.d.ts +0 -3
  689. package/dist/components/toast/bond.d.ts +0 -35
  690. package/dist/components/toast/bond.js +0 -59
  691. package/dist/components/tooltip/tooltip.stories.svelte +0 -32
  692. package/dist/components/tooltip/tooltip.stories.svelte.d.ts +0 -3
  693. package/dist/components/tree/tree.stories.svelte +0 -142
  694. package/dist/components/tree/tree.stories.svelte.d.ts +0 -3
  695. /package/dist/components/{contextmenu → context-menu}/types.js +0 -0
@@ -0,0 +1,270 @@
1
+ import { VARIANT_DEF_TAG } from '../../../utils';
2
+ import { getDefCacheMap, getCachedOwnKeys, getCompoundConditionKeys, hasOwnKeysCached, lruGet, lruSet, MAX_CACHE_SIZE } from './cache';
3
+ /**
4
+ * Builds a compact cache key from variant-relevant prop values without
5
+ * paying the cost of `JSON.stringify`. Variant prop values are almost always
6
+ * primitives (the keys of a variant map), so we serialize inline and only fall
7
+ * back to `JSON.stringify` for the rare object value.
8
+ */
9
+ function buildVariantKey(variantKeys, finalProps) {
10
+ let key = '';
11
+ for (const k of variantKeys) {
12
+ if (!(k in finalProps))
13
+ continue;
14
+ const v = finalProps[k];
15
+ // Discriminate type so e.g. `"true"` and `true` don't collide.
16
+ const t = typeof v;
17
+ if (v === undefined) {
18
+ key += k + '=u|';
19
+ }
20
+ else if (v === null) {
21
+ key += k + '=n|';
22
+ }
23
+ else if (t === 'string' || t === 'number' || t === 'boolean') {
24
+ key += k + '=' + t[0] + ':' + v + '|';
25
+ }
26
+ else {
27
+ key += k + '=o:' + JSON.stringify(v) + '|';
28
+ }
29
+ }
30
+ return key;
31
+ }
32
+ /**
33
+ * Resolves a `VariantDefinition` to a concrete `ResolvedProps` object.
34
+ *
35
+ * Results are cached in a per-definition LRU keyed by bond instance + a fast
36
+ * structural key over variant-relevant props, so the same inputs always return
37
+ * the same (reference-equal) object without re-computing.
38
+ */
39
+ export function resolveVariants(def, bond, props) {
40
+ const { variants: variantMap, compounds, defaults, class: baseClass } = def;
41
+ const finalProps = hasOwnKeysCached(defaults) ? { ...defaults, ...props } : props;
42
+ const variantKeys = getCachedOwnKeys(variantMap);
43
+ // Fast path: no variants or compounds — cached per `def` reference so
44
+ // repeated renders return the SAME object (preserves downstream identity).
45
+ if (variantKeys.length === 0 && !compounds?.length) {
46
+ const fastMap = getDefCacheMap(def, bond);
47
+ const fastHit = lruGet(fastMap, '');
48
+ if (fastHit !== undefined)
49
+ return fastHit;
50
+ const fastResult = { class: baseClass ? [baseClass] : [] };
51
+ lruSet(fastMap, '', fastResult, MAX_CACHE_SIZE);
52
+ return fastResult;
53
+ }
54
+ const cacheKey = buildVariantKey(variantKeys, finalProps);
55
+ const cacheMap = getDefCacheMap(def, bond);
56
+ const hit = lruGet(cacheMap, cacheKey);
57
+ if (hit !== undefined)
58
+ return hit;
59
+ const classes = [];
60
+ const attributes = {};
61
+ if (baseClass)
62
+ classes.push(baseClass);
63
+ if (variantMap) {
64
+ for (const key of variantKeys) {
65
+ const value = finalProps[key];
66
+ if (value === undefined)
67
+ continue;
68
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
69
+ const variantValue = variantMap[key]?.[value];
70
+ if (variantValue === undefined)
71
+ continue;
72
+ const resolved = typeof variantValue === 'function' ? variantValue(bond) : variantValue;
73
+ if (typeof resolved === 'string') {
74
+ classes.push(resolved);
75
+ }
76
+ else if (typeof resolved === 'object' && resolved !== null) {
77
+ if ('class' in resolved)
78
+ classes.push(resolved.class);
79
+ const syms = Object.getOwnPropertySymbols(resolved);
80
+ if (syms.length) {
81
+ const src = resolved;
82
+ for (const sym of syms)
83
+ attributes[sym] = src[sym];
84
+ }
85
+ }
86
+ }
87
+ }
88
+ if (compounds?.length) {
89
+ for (const compound of compounds) {
90
+ const compoundClass = compound.class;
91
+ const conditionKeys = getCompoundConditionKeys(compound);
92
+ let matches = true;
93
+ for (const key of conditionKeys) {
94
+ if (finalProps[key] !== compound[key]) {
95
+ matches = false;
96
+ break;
97
+ }
98
+ }
99
+ if (!matches)
100
+ continue;
101
+ if (compoundClass)
102
+ classes.push(compoundClass);
103
+ }
104
+ }
105
+ const result = { class: classes, ...attributes };
106
+ lruSet(cacheMap, cacheKey, result, MAX_CACHE_SIZE);
107
+ return result;
108
+ }
109
+ /**
110
+ * Cache constructed preset variant defs by `presetVariants` reference so the
111
+ * downstream per-def cache (`getDefCacheMap`) hits across renders.
112
+ */
113
+ const presetDefCache = new WeakMap();
114
+ function getOrBuildPresetDef(
115
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
116
+ presetVariants, presetClass,
117
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
118
+ presetCompounds,
119
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
120
+ presetDefaults) {
121
+ const cached = presetDefCache.get(presetVariants);
122
+ if (cached)
123
+ return cached;
124
+ const built = {
125
+ class: presetClass ?? '',
126
+ variants: presetVariants,
127
+ compounds: presetCompounds ?? [],
128
+ defaults: presetDefaults ?? {}
129
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
130
+ };
131
+ presetDefCache.set(presetVariants, built);
132
+ return built;
133
+ }
134
+ /**
135
+ * Merge cache: chained WeakMaps keyed by `(presetResolved, localVariants)`.
136
+ *
137
+ * Both inputs come from `resolveVariants` / `resolveLocalVariants`, which
138
+ * return reference-stable objects across renders. When neither flips, we
139
+ * return the SAME merged object every time — eliminating a fresh array+spread
140
+ * allocation on the hot path. Keys are weak so entries are GC'd whenever
141
+ * either input is unreachable.
142
+ */
143
+ const mergeCache = new WeakMap();
144
+ function getCachedMerge(presetResolved, localVariants) {
145
+ const inner = mergeCache.get(presetResolved);
146
+ return inner?.get(localVariants);
147
+ }
148
+ function setCachedMerge(presetResolved, localVariants, merged) {
149
+ let inner = mergeCache.get(presetResolved);
150
+ if (!inner) {
151
+ inner = new WeakMap();
152
+ mergeCache.set(presetResolved, inner);
153
+ }
154
+ inner.set(localVariants, merged);
155
+ }
156
+ /**
157
+ * Merges preset variant definitions with locally-supplied resolved variant props.
158
+ * Local values always take precedence; classes are concatenated (preset first).
159
+ */
160
+ export function mergeVariants(
161
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
162
+ presetVariants, presetClass,
163
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
164
+ presetCompounds,
165
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
166
+ presetDefaults, localVariants, bond, props) {
167
+ if (!presetVariants && !localVariants)
168
+ return undefined;
169
+ if (presetVariants && !localVariants) {
170
+ const variantDef = getOrBuildPresetDef(presetVariants, presetClass, presetCompounds, presetDefaults);
171
+ return resolveVariants(variantDef, bond, props);
172
+ }
173
+ if (!presetVariants && localVariants)
174
+ return localVariants;
175
+ const presetVariantDef = getOrBuildPresetDef(
176
+ // `presetVariants` is non-null in this branch (TS narrowing lost via `&&`).
177
+ presetVariants, presetClass, presetCompounds, presetDefaults);
178
+ const presetResolved = resolveVariants(presetVariantDef, bond, props);
179
+ // `localVariants` is guaranteed non-null in this branch.
180
+ const local = localVariants;
181
+ const cachedMerge = getCachedMerge(presetResolved, local);
182
+ if (cachedMerge !== undefined)
183
+ return cachedMerge;
184
+ const presetClasses = Array.isArray(presetResolved.class)
185
+ ? presetResolved.class
186
+ : [presetResolved.class];
187
+ const localClasses = Array.isArray(local.class) ? local.class : [local.class];
188
+ const merged = {
189
+ ...presetResolved,
190
+ ...local,
191
+ class: [...presetClasses, ...localClasses].filter(Boolean)
192
+ };
193
+ setCachedMerge(presetResolved, local, merged);
194
+ return merged;
195
+ }
196
+ const plainFnCacheBond = new WeakMap();
197
+ const plainFnCacheNoBond = new WeakMap();
198
+ function getPlainFnEntry(fn, bond) {
199
+ if (!bond)
200
+ return plainFnCacheNoBond.get(fn);
201
+ const inner = plainFnCacheBond.get(fn);
202
+ return inner?.get(bond);
203
+ }
204
+ function setPlainFnEntry(fn, bond, entry) {
205
+ if (!bond) {
206
+ plainFnCacheNoBond.set(fn, entry);
207
+ return;
208
+ }
209
+ let inner = plainFnCacheBond.get(fn);
210
+ if (!inner) {
211
+ inner = new WeakMap();
212
+ plainFnCacheBond.set(fn, inner);
213
+ }
214
+ inner.set(bond, entry);
215
+ }
216
+ function snapshotPrimitiveProps(props) {
217
+ let s = '';
218
+ const keys = Object.keys(props).sort();
219
+ for (const k of keys) {
220
+ const v = props[k];
221
+ const t = typeof v;
222
+ if (v === null) {
223
+ s += k + '=n|';
224
+ }
225
+ else if (t === 'string' || t === 'number' || t === 'boolean' || t === 'undefined') {
226
+ s += k + '=' + (t === 'undefined' ? 'u' : t[0]) + ':' + String(v) + '|';
227
+ }
228
+ else {
229
+ // Non-primitive value: cannot safely structural-compare — bail out.
230
+ return null;
231
+ }
232
+ }
233
+ return s;
234
+ }
235
+ /**
236
+ * Resolves locally-supplied `variants` to a `ResolvedProps` object.
237
+ *
238
+ * Handles three shapes:
239
+ * - A function tagged with `VARIANT_DEF_TAG` (created by `defineVariants`) → routed through the
240
+ * cached `resolveVariants` engine.
241
+ * - A plain function (manual/legacy) → called with a per-(fn, bond) snapshot
242
+ * cache so re-renders with the same primitive props return the same result
243
+ * reference. Falls back to direct invocation when props contain non-primitive
244
+ * values.
245
+ * - A raw `VariantDefinition` object → resolved through the cache.
246
+ */
247
+ export function resolveLocalVariants(
248
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
249
+ variants, bond, props) {
250
+ if (!variants)
251
+ return undefined;
252
+ if (typeof variants === 'function' && VARIANT_DEF_TAG in variants) {
253
+ const config = variants[VARIANT_DEF_TAG];
254
+ const resolvedConfig = typeof config === 'function' ? config(bond) : config;
255
+ return resolveVariants(resolvedConfig, bond, props);
256
+ }
257
+ if (typeof variants === 'function') {
258
+ const snapshot = snapshotPrimitiveProps(props);
259
+ if (snapshot !== null) {
260
+ const cached = getPlainFnEntry(variants, bond);
261
+ if (cached && cached.snapshot === snapshot)
262
+ return cached.result;
263
+ const result = variants(bond, props);
264
+ setPlainFnEntry(variants, bond, { snapshot, result });
265
+ return result;
266
+ }
267
+ return variants(bond, props);
268
+ }
269
+ return resolveVariants(variants, bond, props);
270
+ }
@@ -1,10 +1,5 @@
1
1
  import type { Component } from 'svelte';
2
- /**
3
- * Extend this interface to add custom avatar properties in your application.
4
- */
5
- export interface AvatarExtendProps {
6
- }
7
- export interface AvatarProps extends AvatarExtendProps {
2
+ export interface AvatarProps {
8
3
  class?: string;
9
4
  src?: string | Component;
10
5
  alt?: string;
@@ -1,2 +1,3 @@
1
1
  export { default as Badge } from './badge.svelte';
2
2
  export type { BadgeProps } from './badge.svelte';
3
+ export type { BadgeSnippetProps, BadgeChildren } from './types';
@@ -1,10 +1,7 @@
1
- import type { HtmlAtomProps } from '../atom';
1
+ import type { HtmlAtomProps, SnippetProps } from '../atom';
2
2
  import type { Snippet } from 'svelte';
3
- /**
4
- * Extend this interface to add custom badge properties in your application.
5
- */
6
- export interface BadgeExtendProps {
3
+ export interface BadgeSnippetProps extends SnippetProps {
7
4
  }
8
- export interface BadgeProps extends HtmlAtomProps<'span'>, BadgeExtendProps {
9
- children?: Snippet<[]>;
5
+ export type BadgeChildren = Snippet<[BadgeSnippetProps]>;
6
+ export interface BadgeProps extends HtmlAtomProps<'span', never, BadgeChildren> {
10
7
  }
@@ -1,31 +1,31 @@
1
- <script lang="ts">
2
- import type { HTMLAttributes } from 'svelte/elements';
3
- import type { ButtonProps } from './types';
4
- import { HtmlAtom } from '../atom';
5
-
6
- let {
7
- class: klass = '',
8
- type = 'button',
9
- preset = 'button',
10
- children = undefined,
11
- ...restProps
12
- }: ButtonProps & HTMLAttributes<HTMLButtonElement> = $props();
13
-
14
- const buttonProps = $derived({
15
- ...restProps,
16
- type
17
- });
18
- </script>
19
-
20
- <HtmlAtom
21
- {preset}
22
- as="button"
23
- class={[
24
- 'button text-primary-foreground bg-primary border-border hover:bg-primary/95 active:bg-primary/90 disabled:bg-muted disabled:text-muted-foreground w-fit cursor-pointer rounded-md px-3 py-2 transition-colors duration-200',
25
- '$preset',
26
- klass
27
- ]}
28
- {...buttonProps}
29
- >
30
- {@render children?.()}
31
- </HtmlAtom>
1
+ <script lang="ts">
2
+ import type { HTMLAttributes } from 'svelte/elements';
3
+ import type { ButtonProps } from './types';
4
+ import { HtmlAtom } from '../atom';
5
+
6
+ let {
7
+ class: klass = '',
8
+ type = 'button',
9
+ preset = 'button',
10
+ children = undefined,
11
+ ...restProps
12
+ }: ButtonProps & HTMLAttributes<HTMLButtonElement> = $props();
13
+
14
+ const buttonProps = $derived({
15
+ ...restProps,
16
+ type
17
+ });
18
+ </script>
19
+
20
+ <HtmlAtom
21
+ {preset}
22
+ as="button"
23
+ class={[
24
+ 'button text-primary-foreground bg-primary border-border hover:bg-primary/95 active:bg-primary/90 disabled:bg-muted disabled:text-muted-foreground w-fit cursor-pointer rounded-md px-3 py-2 transition-colors duration-200',
25
+ '$preset',
26
+ klass
27
+ ]}
28
+ {...buttonProps}
29
+ >
30
+ {@render children?.()}
31
+ </HtmlAtom>
@@ -1,11 +1,14 @@
1
1
  import type { HtmlAtomProps } from '../atom/types';
2
- import type { Snippet } from 'svelte';
3
2
  /**
4
- * Extend this interface to add custom button properties in your application.
3
+ * Button component props with extensible snippet type
4
+ *
5
+ * Override snippet children in custom implementations:
6
+ * ```ts
7
+ * interface CustomButtonProps extends ButtonProps {
8
+ * children?: Snippet<[CustomButtonSnippetProps]>;
9
+ * }
10
+ * ```
5
11
  */
6
- export interface ButtonExtendProps {
7
- }
8
- export interface ButtonProps extends HtmlAtomProps<'button'>, ButtonExtendProps {
12
+ export interface ButtonProps extends HtmlAtomProps<'button'> {
9
13
  type?: 'button' | 'submit' | 'reset';
10
- children?: Snippet<[]>;
11
14
  }
@@ -98,7 +98,6 @@
98
98
  <CalendarDay
99
99
  {day}
100
100
  onclick={() => {
101
- console.log('day clicked', day.date);
102
101
  calendarBond?.state.selectStart(new Date(day.date));
103
102
  }}
104
103
  />
@@ -1,99 +1,99 @@
1
- <script lang="ts">
2
- import { isBefore, isSameDay, isWithinInterval } from 'date-fns';
3
- import { cn } from '../../utils';
4
- import { CalendarBond } from './bond.svelte';
5
- import type { CalendarDayProps } from './types';
6
- import { HtmlAtom } from '../atom';
7
- import './calendar-day.css';
8
-
9
- const calendarBond = CalendarBond.get();
10
-
11
- const selectedDateStart = $derived(calendarBond?.state.props.start);
12
- const selectedDateEnd = $derived(calendarBond?.state.props.end);
13
- const isRange = $derived(Array.isArray(calendarBond?.state.props.type === 'range'));
14
-
15
- let {
16
- class: klass = '',
17
- preset = 'calendar.day',
18
- day,
19
- as = 'button',
20
- children = undefined,
21
- onclick = handleClick,
22
- ...restProps
23
- }: CalendarDayProps = $props();
24
-
25
- const dayProps = $derived({
26
- ...calendarBond?.day(day),
27
- ...restProps
28
- });
29
-
30
- const isSelected = $derived.by(() => {
31
- if (selectedDateEnd && selectedDateStart) {
32
- return isWithinInterval(day.date, { end: selectedDateEnd, start: selectedDateStart });
33
- }
34
-
35
- return !!(selectedDateStart && isSameDay(day.date, selectedDateStart));
36
- });
37
-
38
- function handleClick() {
39
- if (day.disabled) return;
40
-
41
- if (isRange) {
42
- const start = calendarBond?.state.props.start;
43
- if (!start) {
44
- calendarBond?.state.selectStart(new Date(day.date));
45
- return;
46
- }
47
-
48
- if (isBefore(new Date(day.date), new Date(start))) {
49
- calendarBond?.state.selectStart(new Date(day.date));
50
- return;
51
- }
52
-
53
- calendarBond?.state.selectEnd(new Date(day.date));
54
- } else {
55
- calendarBond?.state.selectStart(new Date(day.date));
56
- }
57
- }
58
- </script>
59
-
60
- <HtmlAtom
61
- {as}
62
- {preset}
63
- class={[
64
- 'calendar-day text-foreground/80 border-border box-border aspect-square cursor-pointer border-b border-l',
65
- 'hover:bg-accent hover:text-accent-foreground',
66
- // State modifiers
67
- day.weekend && 'text-primary',
68
- day.today && 'font-semibold z-1',
69
- day.offmonth && 'text-muted-foreground/50 bg-muted/50 hover:text-muted-foreground/70',
70
- // Selected state (overrides above)
71
- isSelected && [
72
- 'bg-primary text-primary-foreground hover:bg-primary hover:text-primary-foreground transition-colors duration-100',
73
- day.offmonth && 'bg-primary/80',
74
- day.weekend && 'bg-primary/90',
75
- ],
76
- // Disabled state (applies opacity on top)
77
- day.disabled && 'pointer-events-none opacity-25',
78
- klass
79
- ]}
80
- data-disabled={day.disabled}
81
- data-prec={day.fromPreviousMonth}
82
- data-next={day.fromNextMonth}
83
- data-offmonth={day.offmonth}
84
- data-weekend={day.weekend}
85
- data-today={day.today}
86
- data-selected={isSelected}
87
- {onclick}
88
- {...dayProps}
89
- >
90
- {#if children}
91
- {@render children({
92
- calendar: calendarBond!
93
- })}
94
- {:else}
95
- <div class={cn("value flex items-center justify-center size-full transition-colors duration-100", day.today && ['outline-primary outline-2', isSelected && 'outline-offset-3'])}>
96
- <span>{day.dayOfMonth}</span>
97
- </div>
98
- {/if}
99
- </HtmlAtom>
1
+ <script lang="ts">
2
+ import { isBefore, isSameDay, isWithinInterval } from 'date-fns';
3
+ import { cn } from '../../utils';
4
+ import { CalendarBond } from './bond.svelte';
5
+ import type { CalendarDayProps } from './types';
6
+ import { HtmlAtom } from '../atom';
7
+ import './calendar-day.css';
8
+
9
+ const calendarBond = CalendarBond.get();
10
+
11
+ const selectedDateStart = $derived(calendarBond?.state.props.start);
12
+ const selectedDateEnd = $derived(calendarBond?.state.props.end);
13
+ const isRange = $derived(Array.isArray(calendarBond?.state.props.type === 'range'));
14
+
15
+ let {
16
+ class: klass = '',
17
+ preset = 'calendar.day',
18
+ day,
19
+ as = 'button',
20
+ children = undefined,
21
+ onclick = handleClick,
22
+ ...restProps
23
+ }: CalendarDayProps = $props();
24
+
25
+ const dayProps = $derived({
26
+ ...calendarBond?.day(day),
27
+ ...restProps
28
+ });
29
+
30
+ const isSelected = $derived.by(() => {
31
+ if (selectedDateEnd && selectedDateStart) {
32
+ return isWithinInterval(day.date, { end: selectedDateEnd, start: selectedDateStart });
33
+ }
34
+
35
+ return !!(selectedDateStart && isSameDay(day.date, selectedDateStart));
36
+ });
37
+
38
+ function handleClick() {
39
+ if (day.disabled) return;
40
+
41
+ if (isRange) {
42
+ const start = calendarBond?.state.props.start;
43
+ if (!start) {
44
+ calendarBond?.state.selectStart(new Date(day.date));
45
+ return;
46
+ }
47
+
48
+ if (isBefore(new Date(day.date), new Date(start))) {
49
+ calendarBond?.state.selectStart(new Date(day.date));
50
+ return;
51
+ }
52
+
53
+ calendarBond?.state.selectEnd(new Date(day.date));
54
+ } else {
55
+ calendarBond?.state.selectStart(new Date(day.date));
56
+ }
57
+ }
58
+ </script>
59
+
60
+ <HtmlAtom
61
+ {as}
62
+ {preset}
63
+ class={[
64
+ 'calendar-day text-foreground/80 border-border box-border aspect-square cursor-pointer border-b border-l',
65
+ 'hover:bg-accent hover:text-accent-foreground',
66
+ // State modifiers
67
+ day.weekend && 'text-primary',
68
+ day.today && 'font-semibold z-1',
69
+ day.offmonth && 'text-muted-foreground/50 bg-muted/50 hover:text-muted-foreground/70',
70
+ // Selected state (overrides above)
71
+ isSelected && [
72
+ 'bg-primary text-primary-foreground hover:bg-primary hover:text-primary-foreground transition-colors duration-100',
73
+ day.offmonth && 'bg-primary/80',
74
+ day.weekend && 'bg-primary/90',
75
+ ],
76
+ // Disabled state (applies opacity on top)
77
+ day.disabled && 'pointer-events-none opacity-25',
78
+ klass
79
+ ]}
80
+ data-disabled={day.disabled}
81
+ data-prec={day.fromPreviousMonth}
82
+ data-next={day.fromNextMonth}
83
+ data-offmonth={day.offmonth}
84
+ data-weekend={day.weekend}
85
+ data-today={day.today}
86
+ data-selected={isSelected}
87
+ {onclick}
88
+ {...dayProps}
89
+ >
90
+ {#if children}
91
+ {@render children({
92
+ calendar: calendarBond!
93
+ })}
94
+ {:else}
95
+ <div class={cn("value flex items-center justify-center size-full transition-colors duration-100", day.today && ['outline-primary outline-2', isSelected && 'outline-offset-3'])}>
96
+ <span>{day.dayOfMonth}</span>
97
+ </div>
98
+ {/if}
99
+ </HtmlAtom>
@@ -23,7 +23,7 @@
23
23
  )}
24
24
  {...headerProps}
25
25
  >
26
- {#each (currentMonth?.days ?? []).filter((d) => d.week == 1) as day}
26
+ {#each (currentMonth?.days ?? []).filter((d) => d.week == 1) as day, i (i)}
27
27
  <CalendarWeekDay isWeekend={day.weekend}>{day.name}</CalendarWeekDay>
28
28
  {/each}
29
29
  </HtmlAtom>