@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
@@ -1,30 +1,31 @@
1
- import type { HTMLAttributes } from 'svelte/elements';
1
+ import { type Base } from '../atom';
2
+ import { ToastBond, ToastBondState, type ToastBondProps } from './bond.svelte';
2
3
  import type { ToastRootProps } from './types';
3
- declare function $$render<T extends keyof HTMLElementTagNameMap>(): {
4
- props: ToastRootProps<T, import("../atom").ComponentBase | import("../atom").SnippetBase> & HTMLAttributes<HTMLElementTagNameMap[T]>;
4
+ declare function $$render<E extends keyof HTMLElementTagNameMap = 'div', B extends Base = Base>(): {
5
+ props: ToastRootProps<E, B>;
5
6
  exports: {
6
- getBond: () => any;
7
+ getBond: () => ToastBond<ToastBondState<ToastBondProps>>;
7
8
  };
8
9
  bindings: "open";
9
10
  slots: {};
10
11
  events: {};
11
12
  };
12
- declare class __sveltets_Render<T extends keyof HTMLElementTagNameMap> {
13
- props(): ReturnType<typeof $$render<T>>['props'];
14
- events(): ReturnType<typeof $$render<T>>['events'];
15
- slots(): ReturnType<typeof $$render<T>>['slots'];
13
+ declare class __sveltets_Render<E extends keyof HTMLElementTagNameMap = 'div', B extends Base = Base> {
14
+ props(): ReturnType<typeof $$render<E, B>>['props'];
15
+ events(): ReturnType<typeof $$render<E, B>>['events'];
16
+ slots(): ReturnType<typeof $$render<E, B>>['slots'];
16
17
  bindings(): "open";
17
18
  exports(): {
18
- getBond: () => any;
19
+ getBond: () => ToastBond<ToastBondState<ToastBondProps>>;
19
20
  };
20
21
  }
21
22
  interface $$IsomorphicComponent {
22
- new <T extends keyof HTMLElementTagNameMap>(options: import('svelte').ComponentConstructorOptions<ReturnType<__sveltets_Render<T>['props']>>): import('svelte').SvelteComponent<ReturnType<__sveltets_Render<T>['props']>, ReturnType<__sveltets_Render<T>['events']>, ReturnType<__sveltets_Render<T>['slots']>> & {
23
- $$bindings?: ReturnType<__sveltets_Render<T>['bindings']>;
24
- } & ReturnType<__sveltets_Render<T>['exports']>;
25
- <T extends keyof HTMLElementTagNameMap>(internal: unknown, props: ReturnType<__sveltets_Render<T>['props']> & {}): ReturnType<__sveltets_Render<T>['exports']>;
26
- z_$$bindings?: ReturnType<__sveltets_Render<any>['bindings']>;
23
+ 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']>> & {
24
+ $$bindings?: ReturnType<__sveltets_Render<E, B>['bindings']>;
25
+ } & ReturnType<__sveltets_Render<E, B>['exports']>;
26
+ <E extends keyof HTMLElementTagNameMap = 'div', B extends Base = Base>(internal: unknown, props: ReturnType<__sveltets_Render<E, B>['props']> & {}): ReturnType<__sveltets_Render<E, B>['exports']>;
27
+ z_$$bindings?: ReturnType<__sveltets_Render<any, any>['bindings']>;
27
28
  }
28
29
  declare const ToastRoot: $$IsomorphicComponent;
29
- type ToastRoot<T extends keyof HTMLElementTagNameMap> = InstanceType<typeof ToastRoot<T>>;
30
+ type ToastRoot<E extends keyof HTMLElementTagNameMap = 'div', B extends Base = Base> = InstanceType<typeof ToastRoot<E, B>>;
30
31
  export default ToastRoot;
@@ -1,35 +1,30 @@
1
- <script lang="ts" generics="T extends keyof HTMLElementTagNameMap">
2
- import type { HTMLAttributes } from 'svelte/elements';
3
- import { HtmlAtom } from '../atom';
4
- import { ToastBond } from './bond';
1
+ <script lang="ts" generics="E extends keyof HTMLElementTagNameMap = 'p', B extends Base = Base">
2
+ import { HtmlAtom, type Base } from '../atom';
3
+ import { ToastBond } from './bond.svelte';
5
4
  import type { ToastTitleProps } from './types';
6
5
 
7
- const bond = ToastBond.get();
8
-
9
6
  let {
10
7
  class: klass = '',
8
+ as = 'p' as E,
9
+ preset = 'toast.title',
11
10
  children = undefined,
12
- onmount = undefined,
13
- ondestroy = undefined,
14
- animate = undefined,
15
- enter = undefined,
16
- exit = undefined,
17
- initial = undefined,
18
11
  ...restProps
19
- }: ToastTitleProps<T> & HTMLAttributes<HTMLElementTagNameMap[T]> = $props();
12
+ }: ToastTitleProps<E, B> = $props();
13
+
14
+ const bond = ToastBond.get();
15
+
16
+ const titleProps = $derived({
17
+ ...(bond?.title().spread ?? {}),
18
+ ...restProps
19
+ });
20
20
  </script>
21
21
 
22
22
  <HtmlAtom
23
+ {as}
23
24
  {bond}
24
- preset="toast.title"
25
- class={['border-border', '$preset', klass]}
26
- enter={enter?.bind(bond.state)}
27
- exit={exit?.bind(bond.state)}
28
- initial={initial?.bind(bond.state)}
29
- animate={animate?.bind(bond.state)}
30
- onmount={onmount?.bind(bond.state)}
31
- ondestroy={ondestroy?.bind(bond.state)}
32
- {...bond?.title(restProps)}
25
+ {preset}
26
+ class={['$preset', klass]}
27
+ {...titleProps}
33
28
  >
34
29
  {@render children?.({ toast: bond })}
35
30
  </HtmlAtom>
@@ -1,26 +1,26 @@
1
- import type { HTMLAttributes } from 'svelte/elements';
1
+ import { type Base } from '../atom';
2
2
  import type { ToastTitleProps } from './types';
3
- declare function $$render<T extends keyof HTMLElementTagNameMap>(): {
4
- props: ToastTitleProps<T, import("../atom").ComponentBase | import("../atom").SnippetBase> & HTMLAttributes<HTMLElementTagNameMap[T]>;
3
+ declare function $$render<E extends keyof HTMLElementTagNameMap = 'p', B extends Base = Base>(): {
4
+ props: ToastTitleProps<E, B>;
5
5
  exports: {};
6
6
  bindings: "";
7
7
  slots: {};
8
8
  events: {};
9
9
  };
10
- declare class __sveltets_Render<T extends keyof HTMLElementTagNameMap> {
11
- props(): ReturnType<typeof $$render<T>>['props'];
12
- events(): ReturnType<typeof $$render<T>>['events'];
13
- slots(): ReturnType<typeof $$render<T>>['slots'];
10
+ declare class __sveltets_Render<E extends keyof HTMLElementTagNameMap = 'p', 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'];
14
14
  bindings(): "";
15
15
  exports(): {};
16
16
  }
17
17
  interface $$IsomorphicComponent {
18
- new <T extends keyof HTMLElementTagNameMap>(options: import('svelte').ComponentConstructorOptions<ReturnType<__sveltets_Render<T>['props']>>): import('svelte').SvelteComponent<ReturnType<__sveltets_Render<T>['props']>, ReturnType<__sveltets_Render<T>['events']>, ReturnType<__sveltets_Render<T>['slots']>> & {
19
- $$bindings?: ReturnType<__sveltets_Render<T>['bindings']>;
20
- } & ReturnType<__sveltets_Render<T>['exports']>;
21
- <T extends keyof HTMLElementTagNameMap>(internal: unknown, props: ReturnType<__sveltets_Render<T>['props']> & {}): ReturnType<__sveltets_Render<T>['exports']>;
22
- z_$$bindings?: ReturnType<__sveltets_Render<any>['bindings']>;
18
+ new <E extends keyof HTMLElementTagNameMap = 'p', 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 = 'p', 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']>;
23
23
  }
24
24
  declare const ToastTitle: $$IsomorphicComponent;
25
- type ToastTitle<T extends keyof HTMLElementTagNameMap> = InstanceType<typeof ToastTitle<T>>;
25
+ type ToastTitle<E extends keyof HTMLElementTagNameMap = 'p', B extends Base = Base> = InstanceType<typeof ToastTitle<E, B>>;
26
26
  export default ToastTitle;
@@ -0,0 +1,38 @@
1
+ import { type Component } from 'svelte';
2
+ export type ToastType = 'info' | 'success' | 'error' | 'warning' | 'default';
3
+ export interface ToastItem<T = unknown> {
4
+ id: string;
5
+ type: ToastType;
6
+ duration: number;
7
+ dismissible: boolean;
8
+ component?: Component<{
9
+ item: ToastItem<T>;
10
+ }> | undefined;
11
+ data?: T | undefined;
12
+ }
13
+ export interface ToastOptions<T = unknown> {
14
+ id?: string;
15
+ duration?: number;
16
+ dismissible?: boolean;
17
+ /** Arbitrary payload accessible from a custom toast component via `item.data`. */
18
+ data?: T;
19
+ /** Custom component to render in place of the default toast layout. Receives `{ item }`. */
20
+ component?: Component<{
21
+ item: ToastItem<T>;
22
+ }>;
23
+ }
24
+ export declare class Toaster {
25
+ #private;
26
+ get toasts(): ToastItem[];
27
+ add<T = unknown>(type?: ToastType, options?: ToastOptions<T>): string;
28
+ dismiss(...ids: string[]): void;
29
+ /** Pause auto-dismiss timer (e.g. on pointerenter). */
30
+ pause(...ids: string[]): void;
31
+ /** Resume previously paused auto-dismiss timer. */
32
+ resume(...ids: string[]): void;
33
+ remove(...ids: string[]): void;
34
+ clear(): void;
35
+ share(): Toaster;
36
+ static get: () => Toaster;
37
+ static set: (context: Toaster) => Toaster;
38
+ }
@@ -0,0 +1,107 @@
1
+ import { createContext } from 'svelte';
2
+ import { nanoid } from 'nanoid';
3
+ import { SvelteMap } from 'svelte/reactivity';
4
+ const DEFAULT_DURATION = 4000;
5
+ const [get, set] = createContext();
6
+ export class Toaster {
7
+ #toasts = new SvelteMap();
8
+ #toastsArray = $derived([...this.#toasts.values()]);
9
+ // eslint-disable-next-line svelte/prefer-svelte-reactivity
10
+ #timers = new Map();
11
+ get toasts() {
12
+ return this.#toastsArray;
13
+ }
14
+ add(type = 'default', options = {}) {
15
+ const id = options.id ?? nanoid(8);
16
+ // If a toast with this id already exists, update it in place
17
+ const existing = this.#toasts.get(id);
18
+ if (existing) {
19
+ existing.type = type;
20
+ if (options.dismissible !== undefined)
21
+ existing.dismissible = options.dismissible;
22
+ if (options.data !== undefined)
23
+ existing.data = options.data;
24
+ if (options.component !== undefined)
25
+ existing.component = options.component;
26
+ if (options.duration !== undefined) {
27
+ existing.duration = options.duration;
28
+ if (options.duration > 0)
29
+ this.#startTimer(id, options.duration);
30
+ else
31
+ this.#clearTimer(id);
32
+ }
33
+ // Re-open if it was in the middle of closing
34
+ // if (!existing.bond.state.isOpen) existing.bond.state.open();
35
+ return id;
36
+ }
37
+ const duration = options.duration ?? DEFAULT_DURATION;
38
+ const dismissible = options.dismissible ?? true;
39
+ const item = {
40
+ id,
41
+ type,
42
+ duration,
43
+ dismissible,
44
+ data: options.data,
45
+ component: options.component
46
+ };
47
+ this.#toasts.set(id, item);
48
+ if (duration > 0)
49
+ this.#startTimer(id, duration);
50
+ return id;
51
+ }
52
+ dismiss(...ids) {
53
+ for (const id of ids) {
54
+ this.#clearTimer(id);
55
+ this.#toasts.delete(id);
56
+ }
57
+ }
58
+ /** Pause auto-dismiss timer (e.g. on pointerenter). */
59
+ pause(...ids) {
60
+ for (const id of ids) {
61
+ const t = this.#timers.get(id);
62
+ if (!t || t.handle === null)
63
+ continue;
64
+ clearTimeout(t.handle);
65
+ const elapsed = Date.now() - t.start;
66
+ t.remaining = Math.max(0, t.remaining - elapsed);
67
+ t.handle = null;
68
+ }
69
+ }
70
+ /** Resume previously paused auto-dismiss timer. */
71
+ resume(...ids) {
72
+ for (const id of ids) {
73
+ const t = this.#timers.get(id);
74
+ if (!t || t.handle !== null || t.remaining <= 0)
75
+ continue;
76
+ t.start = Date.now();
77
+ t.handle = setTimeout(() => this.dismiss(id), t.remaining);
78
+ }
79
+ }
80
+ remove(...ids) {
81
+ for (const id of ids) {
82
+ this.#clearTimer(id);
83
+ this.#toasts.delete(id);
84
+ }
85
+ }
86
+ clear() {
87
+ for (const id of [...this.#timers.keys()])
88
+ this.#clearTimer(id);
89
+ this.#toasts.clear();
90
+ }
91
+ #startTimer(id, ms) {
92
+ this.#clearTimer(id);
93
+ const handle = setTimeout(() => this.dismiss(id), ms);
94
+ this.#timers.set(id, { handle, start: Date.now(), remaining: ms });
95
+ }
96
+ #clearTimer(id) {
97
+ const t = this.#timers.get(id);
98
+ if (t?.handle != null)
99
+ clearTimeout(t.handle);
100
+ this.#timers.delete(id);
101
+ }
102
+ share() {
103
+ return Toaster.set(this);
104
+ }
105
+ static get = get;
106
+ static set = set;
107
+ }
@@ -1,40 +1,23 @@
1
1
  import type { Snippet } from 'svelte';
2
2
  import type { HtmlAtomProps, Base } from '../atom';
3
- import type { Override } from '../../types';
4
- import type { ToastBond } from './bond';
5
- /**
6
- * Extend this interface to add custom toast root properties in your application.
7
- */
8
- export interface ToastRootExtendProps {
3
+ import type { ToastBond, ToastBondProps } from './bond.svelte';
4
+ export interface ToastSnippetProps {
5
+ toast: ToastBond | undefined;
9
6
  }
10
- /**
11
- * Extend this interface to add custom toast title properties in your application.
12
- */
13
- export interface ToastTitleExtendProps {
14
- }
15
- /**
16
- * Extend this interface to add custom toast description properties in your application.
17
- */
18
- export interface ToastDescriptionExtendProps {
19
- }
20
- export interface ToastRootProps<E extends keyof HTMLElementTagNameMap = 'div', B extends Base = Base> extends Override<HtmlAtomProps<E, B>, {
21
- children?: Snippet<[{
22
- toast?: ToastBond;
23
- }]>;
24
- }>, ToastRootExtendProps {
7
+ export type ToastChildren = Snippet<[ToastSnippetProps]>;
8
+ export interface ToastRootProps<E extends keyof HTMLElementTagNameMap = 'div', B extends Base = Base> extends HtmlAtomProps<E, B, ToastChildren> {
9
+ open?: boolean;
10
+ disabled?: boolean;
25
11
  dismissible?: boolean;
12
+ /** Auto-dismiss duration in ms. Set to 0 to disable auto-dismiss. Default: 0. */
26
13
  duration?: number;
27
14
  onclose?: () => void;
15
+ /** Optional factory to construct a custom bond. */
16
+ factory?: (props: ToastBondProps) => ToastBond;
17
+ }
18
+ export interface ToastTitleProps<E extends keyof HTMLElementTagNameMap = 'p', B extends Base = Base> extends HtmlAtomProps<E, B, ToastChildren> {
28
19
  }
29
- export interface ToastTitleProps<E extends keyof HTMLElementTagNameMap = 'div', B extends Base = Base> extends Override<HtmlAtomProps<E, B>, {
30
- children?: Snippet<[{
31
- toast: ToastBond;
32
- }]>;
33
- }>, ToastTitleExtendProps {
20
+ export interface ToastDescriptionProps<E extends keyof HTMLElementTagNameMap = 'p', B extends Base = Base> extends HtmlAtomProps<E, B, ToastChildren> {
34
21
  }
35
- export interface ToastDescriptionProps<E extends keyof HTMLElementTagNameMap = 'div', B extends Base = Base> extends Override<HtmlAtomProps<E, B>, {
36
- children?: Snippet<[{
37
- toast?: ToastBond;
38
- }]>;
39
- }>, ToastDescriptionExtendProps {
22
+ export interface ToastCloseProps<E extends keyof HTMLElementTagNameMap = 'button', B extends Base = Base> extends HtmlAtomProps<E, B, ToastChildren> {
40
23
  }
@@ -1 +1,2 @@
1
1
  export * as Tooltip from './atoms';
2
+ export type { TooltipSnippetProps, TooltipChildren } from './types';
@@ -1,39 +1,39 @@
1
- <script lang="ts">
2
- import { PopoverBond } from '../popover/bond.svelte';
3
- import { Trigger } from '../popover/atoms';
4
-
5
- const popoverBond = PopoverBond.get();
6
-
7
- let { preset = 'tooltip.trigger', onmount, children, onclick = undefined, ...restProps } = $props();
8
-
9
- function tooltip(node: HTMLElement) {
10
- const onpointerenter = async () => {
11
- requestAnimationFrame(() => {
12
- popoverBond?.state.open();
13
- });
14
- node.addEventListener('pointerleave', onpointerleave);
15
- };
16
- const onpointerleave = () => {
17
- popoverBond?.state.close();
18
- node.removeEventListener('pointerleave', onpointerleave);
19
- };
20
-
21
- node.addEventListener('pointerenter', onpointerenter, { passive: true });
22
-
23
- const cleanup = () => {
24
- node.removeEventListener('pointerenter', onpointerenter);
25
- node.removeEventListener('pointerleave', onpointerleave);
26
- };
27
-
28
- const unmount = onmount?.(node);
29
-
30
- return () => {
31
- cleanup?.();
32
- unmount?.();
33
- };
34
- }
35
- </script>
36
-
37
- <Trigger preset={preset} onmount={tooltip} {onclick} {...restProps}>
38
- {@render children?.()}
39
- </Trigger>
1
+ <script lang="ts">
2
+ import { PopoverBond } from '../popover/bond.svelte';
3
+ import { Trigger } from '../popover/atoms';
4
+
5
+ const popoverBond = PopoverBond.get();
6
+
7
+ let { preset = 'tooltip.trigger', onmount, children, onclick = undefined, ...restProps } = $props();
8
+
9
+ function tooltip(node: HTMLElement) {
10
+ const onpointerenter = async () => {
11
+ requestAnimationFrame(() => {
12
+ popoverBond?.state.open();
13
+ });
14
+ node.addEventListener('pointerleave', onpointerleave);
15
+ };
16
+ const onpointerleave = () => {
17
+ popoverBond?.state.close();
18
+ node.removeEventListener('pointerleave', onpointerleave);
19
+ };
20
+
21
+ node.addEventListener('pointerenter', onpointerenter, { passive: true });
22
+
23
+ const cleanup = () => {
24
+ node.removeEventListener('pointerenter', onpointerenter);
25
+ node.removeEventListener('pointerleave', onpointerleave);
26
+ };
27
+
28
+ const unmount = onmount?.(node);
29
+
30
+ return () => {
31
+ cleanup?.();
32
+ unmount?.();
33
+ };
34
+ }
35
+ </script>
36
+
37
+ <Trigger preset={preset} onmount={tooltip} {onclick} {...restProps}>
38
+ {@render children?.()}
39
+ </Trigger>
@@ -1,13 +1,10 @@
1
1
  import type { Snippet } from 'svelte';
2
- import type { HtmlAtomProps, Base } from '../atom';
3
- /**
4
- * Extend this interface to add custom tooltip properties in your application.
5
- */
6
- export interface TooltipExtendProps {
2
+ import type { HtmlAtomProps, Base, SnippetProps } from '../atom';
3
+ export interface TooltipSnippetProps extends SnippetProps {
7
4
  }
8
- export interface TooltipTriggerProps<E extends keyof HTMLElementTagNameMap = 'div', B extends Base = Base> extends Omit<HtmlAtomProps<E, B>, 'children'>, TooltipExtendProps {
9
- content?: string | Snippet<[]>;
5
+ export type TooltipChildren = Snippet<[TooltipSnippetProps]>;
6
+ export interface TooltipTriggerProps<E extends keyof HTMLElementTagNameMap = 'div', B extends Base = Base> extends HtmlAtomProps<E, B, TooltipChildren> {
7
+ content?: string | Snippet<[TooltipSnippetProps]>;
10
8
  placement?: 'top' | 'bottom' | 'left' | 'right';
11
9
  delay?: number;
12
- children?: Snippet<[]>;
13
10
  }
@@ -1,4 +1,4 @@
1
- import { Bond, BondState, type BondStateProps } from '../../shared/bond.svelte';
1
+ import { Bond, BondState, BondAtom, type BondStateProps } from '../../shared/bond.svelte';
2
2
  export type TreeBondProps = BondStateProps & {
3
3
  open: boolean;
4
4
  disabled: boolean;
@@ -10,34 +10,42 @@ export type TreeBondElements = {
10
10
  body: HTMLElement;
11
11
  indicator: HTMLElement;
12
12
  };
13
- export declare class TreeBond<Props extends TreeBondProps = TreeBondProps, State extends TreeBondState<Props> = TreeBondState<Props>, Elements extends TreeBondElements = TreeBondElements> extends Bond<TreeBondProps, State, Elements> {
14
- #private;
15
- static CONTEXT_KEY: string;
16
- constructor(s: State);
17
- get parent(): this | undefined;
18
- share(): this;
19
- root(props?: Record<string, unknown>): {
20
- id: string;
13
+ declare class TreeRootAtom extends BondAtom<TreeBond, HTMLElement> {
14
+ constructor(bond: TreeBond);
15
+ get attrs(): {
21
16
  'aria-labelledby': string;
22
17
  'aria-expanded': boolean;
23
18
  'aria-disabled': boolean;
24
- 'aria-label': unknown;
25
- 'data-kind': string;
26
19
  };
27
- header(props?: Record<string, unknown>): {
28
- id: string;
20
+ }
21
+ declare class TreeHeaderAtom extends BondAtom<TreeBond, HTMLElement> {
22
+ constructor(bond: TreeBond);
23
+ get attrs(): {
29
24
  'aria-controls': string;
30
- 'data-kind': string;
31
25
  role: string;
32
26
  tabindex: number;
33
27
  };
34
- body(props?: Record<string, unknown>): {
35
- id: string;
36
- 'data-kind': string;
37
- role: string;
28
+ }
29
+ declare class TreeBodyAtom extends BondAtom<TreeBond, HTMLElement> {
30
+ constructor(bond: TreeBond);
31
+ get attrs(): {
32
+ role: "group";
38
33
  'aria-controlled-by': string;
39
34
  };
40
- indicator(props?: Record<string, unknown>): {};
35
+ }
36
+ declare class TreeIndicatorAtom extends BondAtom<TreeBond, HTMLElement> {
37
+ constructor(bond: TreeBond);
38
+ }
39
+ export declare class TreeBond<Props extends TreeBondProps = TreeBondProps, State extends TreeBondState<Props> = TreeBondState<Props>, Elements extends TreeBondElements = TreeBondElements> extends Bond<TreeBondProps, State, Elements> {
40
+ #private;
41
+ static CONTEXT_KEY: string;
42
+ constructor(s: State);
43
+ get parent(): this | undefined;
44
+ share(): this;
45
+ root(): TreeRootAtom;
46
+ header(): TreeHeaderAtom;
47
+ body(): TreeBodyAtom;
48
+ indicator(): TreeIndicatorAtom;
41
49
  static get(): TreeBond | undefined;
42
50
  static set(bond: TreeBond): TreeBond;
43
51
  }
@@ -47,3 +55,4 @@ export declare class TreeBondState<Props extends TreeBondProps> extends BondStat
47
55
  close(): void;
48
56
  toggle(): void;
49
57
  }
58
+ export {};
@@ -1,13 +1,64 @@
1
- import { createAttachmentKey } from 'svelte/attachments';
2
1
  import { getContext, setContext } from 'svelte';
3
- import { Bond, BondState } from '../../shared/bond.svelte';
2
+ import { Bond, BondState, BondAtom } from '../../shared/bond.svelte';
4
3
  import { untrack } from 'svelte';
5
4
  import { isBrowser } from '../../utils/dom.svelte';
5
+ class TreeRootAtom extends BondAtom {
6
+ constructor(bond) {
7
+ super(bond, 'root');
8
+ }
9
+ get attrs() {
10
+ const bond = this.bond;
11
+ const props = untrack(() => bond.state?.props);
12
+ const isOpen = props?.open ?? false;
13
+ const isDisabled = props?.disabled ?? false;
14
+ return {
15
+ ...super.attrs,
16
+ 'aria-labelledby': `tree-header-${bond.id}`,
17
+ 'aria-expanded': isOpen,
18
+ 'aria-disabled': isDisabled
19
+ };
20
+ }
21
+ }
22
+ class TreeHeaderAtom extends BondAtom {
23
+ constructor(bond) {
24
+ super(bond, 'header');
25
+ }
26
+ get attrs() {
27
+ const bond = this.bond;
28
+ const isButtonElement = isBrowser() ? bond.elements.header instanceof HTMLButtonElement : false;
29
+ const role = untrack(() => (isButtonElement ? '' : 'button'));
30
+ const tabindex = !isButtonElement || bond.state.props.disabled ? -1 : 0;
31
+ return {
32
+ ...super.attrs,
33
+ 'aria-controls': `tree-body-${bond.id}`,
34
+ role,
35
+ tabindex
36
+ };
37
+ }
38
+ }
39
+ class TreeBodyAtom extends BondAtom {
40
+ constructor(bond) {
41
+ super(bond, 'body');
42
+ }
43
+ get attrs() {
44
+ const bond = this.bond;
45
+ return {
46
+ ...super.attrs,
47
+ role: 'group',
48
+ 'aria-controlled-by': `tree-header-${bond.id}`
49
+ };
50
+ }
51
+ }
52
+ class TreeIndicatorAtom extends BondAtom {
53
+ constructor(bond) {
54
+ super(bond, 'indicator');
55
+ }
56
+ }
6
57
  export class TreeBond extends Bond {
7
58
  static CONTEXT_KEY = '@atoms/context/tree';
8
59
  #parent;
9
60
  constructor(s) {
10
- super(s);
61
+ super(s, 'tree');
11
62
  this.#parent = TreeBond.get();
12
63
  }
13
64
  get parent() {
@@ -16,59 +67,17 @@ export class TreeBond extends Bond {
16
67
  share() {
17
68
  return TreeBond.set(this);
18
69
  }
19
- root(props = {}) {
20
- const isOpen = this.state.props.open ?? false;
21
- const isDisabled = this.state.props.disabled ?? false;
22
- return {
23
- id: `tree-${this.id}`,
24
- 'aria-labelledby': `tree-header-${this.id}`,
25
- 'aria-expanded': isOpen,
26
- 'aria-disabled': isDisabled,
27
- 'aria-label': props['aria-label'],
28
- 'data-kind': 'tree',
29
- ...props,
30
- [createAttachmentKey()]: (node) => {
31
- this.elements.root = node;
32
- }
33
- };
70
+ root() {
71
+ return this.atom('root', () => new TreeRootAtom(this));
34
72
  }
35
- header(props = {}) {
36
- const isButtonElement = isBrowser() ? this.elements.header instanceof HTMLButtonElement : false;
37
- const role = untrack(() => {
38
- return isButtonElement ? '' : 'button';
39
- });
40
- const tabindex = !isButtonElement || this.state.props.disabled ? -1 : 0;
41
- return {
42
- id: `tree-header-${this.id}`,
43
- 'aria-controls': `tree-body-${this.id}`,
44
- 'data-kind': 'tree-header',
45
- role: role,
46
- tabindex: tabindex,
47
- ...props,
48
- [createAttachmentKey()]: (node) => {
49
- this.elements.header = node;
50
- }
51
- };
73
+ header() {
74
+ return this.atom('header', () => new TreeHeaderAtom(this));
52
75
  }
53
- body(props = {}) {
54
- return {
55
- id: `tree-body-${this.id}`,
56
- 'data-kind': 'tree-body',
57
- role: 'group',
58
- 'aria-controlled-by': `tree-header-${this.id}`,
59
- ...props,
60
- [createAttachmentKey()]: (node) => {
61
- this.elements.body = node;
62
- }
63
- };
76
+ body() {
77
+ return this.atom('body', () => new TreeBodyAtom(this));
64
78
  }
65
- indicator(props = {}) {
66
- return {
67
- ...props,
68
- [createAttachmentKey()]: (node) => {
69
- this.elements.indicator = node;
70
- }
71
- };
79
+ indicator() {
80
+ return this.atom('indicator', () => new TreeIndicatorAtom(this));
72
81
  }
73
82
  static get() {
74
83
  return getContext(TreeBond.CONTEXT_KEY);