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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (628) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +67 -197
  3. package/dist/attachments/clickout.svelte.d.ts +4 -1
  4. package/dist/attachments/clickout.svelte.js +2 -1
  5. package/dist/components/accordion/accordion-root.svelte +61 -66
  6. package/dist/components/accordion/accordion-root.svelte.d.ts +2 -2
  7. package/dist/components/accordion/bond.svelte.d.ts +11 -10
  8. package/dist/components/accordion/bond.svelte.js +26 -16
  9. package/dist/components/accordion/item/accordion-item-body.svelte +3 -1
  10. package/dist/components/accordion/item/accordion-item-header.svelte +1 -1
  11. package/dist/components/accordion/item/accordion-item-indicator.svelte +1 -1
  12. package/dist/components/accordion/item/accordion-item-root.svelte +3 -2
  13. package/dist/components/accordion/item/bond.svelte.d.ts +32 -18
  14. package/dist/components/accordion/item/bond.svelte.js +88 -64
  15. package/dist/components/accordion/item/types.d.ts +4 -24
  16. package/dist/components/accordion/types.d.ts +5 -9
  17. package/dist/components/alert/alert-root.svelte +68 -68
  18. package/dist/components/alert/types.d.ts +12 -46
  19. package/dist/components/atom/html-atom.svelte +84 -95
  20. package/dist/components/atom/html-atom.svelte.d.ts +1 -2
  21. package/dist/components/atom/index.d.ts +1 -0
  22. package/dist/components/atom/index.js +1 -0
  23. package/dist/components/atom/types.d.ts +52 -10
  24. package/dist/components/atom/types.js +1 -1
  25. package/dist/components/atom/utils.d.ts +10 -3
  26. package/dist/components/atom/utils.js +112 -45
  27. package/dist/components/avatar/types.d.ts +1 -6
  28. package/dist/components/badge/index.d.ts +1 -0
  29. package/dist/components/badge/types.d.ts +4 -7
  30. package/dist/components/button/button.svelte +31 -31
  31. package/dist/components/button/types.d.ts +9 -6
  32. package/dist/components/calendar/calendar-body.svelte +0 -1
  33. package/dist/components/calendar/calendar-day.svelte +99 -99
  34. package/dist/components/calendar/calendar-header.svelte +1 -1
  35. package/dist/components/calendar/calendar-root.svelte +206 -206
  36. package/dist/components/calendar/calendar-root.svelte.d.ts +1 -1
  37. package/dist/components/calendar/calendar-week-day.svelte +33 -33
  38. package/dist/components/calendar/types.d.ts +7 -10
  39. package/dist/components/card/card-root.svelte +92 -92
  40. package/dist/components/card/types.d.ts +12 -51
  41. package/dist/components/checkbox/checkbox.svelte +65 -55
  42. package/dist/components/checkbox/checkbox.svelte.d.ts +1 -3
  43. package/dist/components/checkbox/index.d.ts +2 -0
  44. package/dist/components/checkbox/index.js +1 -0
  45. package/dist/components/checkbox/motion.d.ts +17 -0
  46. package/dist/components/checkbox/motion.js +34 -0
  47. package/dist/components/checkbox/types.d.ts +14 -7
  48. package/dist/components/chip/chip-close-button.svelte +33 -0
  49. package/dist/components/chip/chip-close-button.svelte.d.ts +4 -0
  50. package/dist/components/chip/chip.svelte +34 -41
  51. package/dist/components/chip/chip.svelte.d.ts +1 -3
  52. package/dist/components/chip/index.d.ts +2 -0
  53. package/dist/components/chip/index.js +2 -0
  54. package/dist/components/chip/types.d.ts +15 -8
  55. package/dist/components/collapsible/bond.svelte.d.ts +34 -24
  56. package/dist/components/collapsible/bond.svelte.js +73 -60
  57. package/dist/components/collapsible/collapsible-body.svelte +1 -1
  58. package/dist/components/collapsible/collapsible-header.svelte +1 -1
  59. package/dist/components/collapsible/collapsible-indicator.svelte +1 -1
  60. package/dist/components/collapsible/collapsible-root.svelte +67 -67
  61. package/dist/components/collapsible/types.d.ts +10 -22
  62. package/dist/components/combobox/bond.svelte.d.ts +13 -8
  63. package/dist/components/combobox/bond.svelte.js +30 -20
  64. package/dist/components/combobox/combobox-control.svelte +66 -66
  65. package/dist/components/combobox/combobox-item.svelte +62 -62
  66. package/dist/components/combobox/combobox-root.svelte +65 -65
  67. package/dist/components/combobox/combobox-root.svelte.d.ts +2 -2
  68. package/dist/components/combobox/combobox-selections.svelte +17 -17
  69. package/dist/components/combobox/combobox-trigger.svelte +34 -34
  70. package/dist/components/combobox/types.d.ts +6 -10
  71. package/dist/components/container/index.d.ts +1 -0
  72. package/dist/components/container/types.d.ts +6 -12
  73. package/dist/components/context-menu/atoms.d.ts +4 -0
  74. package/dist/components/context-menu/atoms.js +4 -0
  75. package/dist/components/context-menu/context-menu-content.svelte +52 -0
  76. package/dist/components/context-menu/context-menu-content.svelte.d.ts +27 -0
  77. package/dist/components/context-menu/context-menu-root.svelte +8 -0
  78. package/dist/components/context-menu/context-menu-root.svelte.d.ts +4 -0
  79. package/dist/components/context-menu/context-menu-trigger.svelte +59 -0
  80. package/dist/components/context-menu/context-menu-trigger.svelte.d.ts +27 -0
  81. package/dist/components/context-menu/index.d.ts +2 -0
  82. package/dist/components/context-menu/index.js +2 -0
  83. package/dist/components/{contextmenu → context-menu}/types.d.ts +1 -6
  84. package/dist/components/datagrid/atoms.d.ts +11 -5
  85. package/dist/components/datagrid/atoms.js +11 -5
  86. package/dist/components/datagrid/bond.svelte.d.ts +29 -14
  87. package/dist/components/datagrid/bond.svelte.js +45 -33
  88. package/dist/components/datagrid/cell/bond.svelte.d.ts +29 -0
  89. package/dist/components/datagrid/cell/bond.svelte.js +42 -0
  90. package/dist/components/datagrid/cell/datagrid-cell.svelte +49 -0
  91. package/dist/components/datagrid/cell/datagrid-cell.svelte.d.ts +26 -0
  92. package/dist/components/datagrid/cell/index.d.ts +4 -0
  93. package/dist/components/datagrid/cell/index.js +4 -0
  94. package/dist/components/datagrid/col/index.d.ts +4 -0
  95. package/dist/components/datagrid/col/index.js +4 -0
  96. package/dist/components/datagrid/column/bond.svelte.d.ts +45 -0
  97. package/dist/components/datagrid/column/bond.svelte.js +76 -0
  98. package/dist/components/datagrid/{th/datagrid-th-sort-icon.svelte → column/datagrid-column-sort-icon.svelte} +3 -3
  99. package/dist/components/datagrid/{th/datagrid-th-sort-icon.svelte.d.ts → column/datagrid-column-sort-icon.svelte.d.ts} +3 -3
  100. package/dist/components/datagrid/{th/datagrid-th.svelte → column/datagrid-column.svelte} +27 -36
  101. package/dist/components/datagrid/column/datagrid-column.svelte.d.ts +26 -0
  102. package/dist/components/datagrid/column/index.d.ts +4 -0
  103. package/dist/components/datagrid/column/index.js +4 -0
  104. package/dist/components/datagrid/context.d.ts +2 -29
  105. package/dist/components/datagrid/context.js +4 -18
  106. package/dist/components/datagrid/datagrid-body.svelte +7 -20
  107. package/dist/components/datagrid/datagrid-body.svelte.d.ts +8 -15
  108. package/dist/components/datagrid/datagrid-checkbox.svelte +60 -63
  109. package/dist/components/datagrid/datagrid-checkbox.svelte.d.ts +1 -3
  110. package/dist/components/datagrid/datagrid-footer.svelte +27 -34
  111. package/dist/components/datagrid/datagrid-footer.svelte.d.ts +12 -12
  112. package/dist/components/datagrid/datagrid-header.svelte +10 -17
  113. package/dist/components/datagrid/datagrid-header.svelte.d.ts +12 -12
  114. package/dist/components/datagrid/datagrid-root.svelte +49 -59
  115. package/dist/components/datagrid/datagrid-root.svelte.d.ts +15 -14
  116. package/dist/components/datagrid/row/bond.svelte.d.ts +42 -0
  117. package/dist/components/datagrid/row/bond.svelte.js +72 -0
  118. package/dist/components/datagrid/{tr/datagrid-tr.css → row/datagrid-row.css} +1 -1
  119. package/dist/components/datagrid/row/datagrid-row.svelte +64 -0
  120. package/dist/components/datagrid/row/datagrid-row.svelte.d.ts +27 -0
  121. package/dist/components/datagrid/row/index.d.ts +4 -0
  122. package/dist/components/datagrid/row/index.js +4 -0
  123. package/dist/components/datagrid/types.d.ts +56 -116
  124. package/dist/components/date-picker/bond.svelte.d.ts +0 -12
  125. package/dist/components/date-picker/date-picker-calendar.svelte +58 -58
  126. package/dist/components/date-picker/date-picker-months.svelte +1 -1
  127. package/dist/components/date-picker/date-picker-root.svelte +96 -96
  128. package/dist/components/date-picker/date-picker-root.svelte.d.ts +1 -1
  129. package/dist/components/date-picker/date-picker-years.svelte +1 -1
  130. package/dist/components/date-picker/types.d.ts +6 -3
  131. package/dist/components/dialog/atoms.d.ts +1 -1
  132. package/dist/components/dialog/atoms.js +1 -1
  133. package/dist/components/dialog/bond.svelte.d.ts +66 -28
  134. package/dist/components/dialog/bond.svelte.js +136 -117
  135. package/dist/components/dialog/dialog-body.svelte +1 -1
  136. package/dist/components/dialog/dialog-close.svelte +58 -0
  137. package/dist/components/dialog/dialog-close.svelte.d.ts +26 -0
  138. package/dist/components/dialog/dialog-content.svelte +2 -2
  139. package/dist/components/dialog/dialog-description.svelte +1 -1
  140. package/dist/components/dialog/dialog-footer.svelte +1 -1
  141. package/dist/components/dialog/dialog-header.svelte +1 -1
  142. package/dist/components/dialog/dialog-root.svelte +102 -82
  143. package/dist/components/dialog/dialog-title.svelte +1 -1
  144. package/dist/components/dialog/motion.svelte.js +68 -26
  145. package/dist/components/dialog/types.d.ts +16 -51
  146. package/dist/components/divider/types.d.ts +1 -6
  147. package/dist/components/drawer/bond.svelte.d.ts +61 -36
  148. package/dist/components/drawer/bond.svelte.js +149 -121
  149. package/dist/components/drawer/drawer-backdrop.svelte +2 -1
  150. package/dist/components/drawer/drawer-body.svelte +1 -1
  151. package/dist/components/drawer/drawer-content.svelte +5 -5
  152. package/dist/components/drawer/drawer-content.svelte.d.ts +4 -1
  153. package/dist/components/drawer/drawer-description.svelte +1 -1
  154. package/dist/components/drawer/drawer-footer.svelte +1 -1
  155. package/dist/components/drawer/drawer-header.svelte +1 -1
  156. package/dist/components/drawer/drawer-root.svelte +96 -87
  157. package/dist/components/drawer/drawer-title.svelte +1 -1
  158. package/dist/components/drawer/motion.d.ts +59 -5
  159. package/dist/components/drawer/motion.js +133 -15
  160. package/dist/components/drawer/types.d.ts +15 -24
  161. package/dist/components/dropdown/atoms.d.ts +4 -8
  162. package/dist/components/dropdown/atoms.js +4 -9
  163. package/dist/components/dropdown/bond.svelte.d.ts +4 -53
  164. package/dist/components/dropdown/bond.svelte.js +4 -89
  165. package/dist/components/dropdown/dropdown-query.svelte +43 -43
  166. package/dist/components/dropdown/dropdown-root.svelte +79 -79
  167. package/dist/components/dropdown/dropdown-root.svelte.d.ts +4 -4
  168. package/dist/components/dropdown/dropdown-selection.svelte +55 -55
  169. package/dist/components/dropdown/dropdown-selections.svelte +70 -70
  170. package/dist/components/dropdown/dropdown-trigger.svelte +30 -30
  171. package/dist/components/dropdown/index.d.ts +43 -7
  172. package/dist/components/dropdown/index.js +34 -6
  173. package/dist/components/dropdown/item/bond.svelte.d.ts +36 -0
  174. package/dist/components/dropdown/item/bond.svelte.js +85 -0
  175. package/dist/components/dropdown/item/controller.svelte.d.ts +1 -1
  176. package/dist/components/dropdown/item/dropdown-item.svelte +81 -107
  177. package/dist/components/dropdown/item/index.d.ts +11 -3
  178. package/dist/components/dropdown/item/index.js +10 -3
  179. package/dist/components/dropdown/types.d.ts +2 -67
  180. package/dist/components/dropdown-menu/atoms.d.ts +9 -0
  181. package/dist/components/dropdown-menu/atoms.js +9 -0
  182. package/dist/components/dropdown-menu/attachments.svelte.d.ts +2 -0
  183. package/dist/components/dropdown-menu/attachments.svelte.js +5 -0
  184. package/dist/components/dropdown-menu/bond.svelte.d.ts +72 -0
  185. package/dist/components/dropdown-menu/bond.svelte.js +173 -0
  186. package/dist/components/dropdown-menu/dropdown-menu-content.svelte +40 -0
  187. package/dist/components/dropdown-menu/dropdown-menu-content.svelte.d.ts +37 -0
  188. package/dist/components/dropdown-menu/dropdown-menu-root.svelte +14 -0
  189. package/dist/components/dropdown-menu/dropdown-menu-root.svelte.d.ts +4 -0
  190. package/dist/components/dropdown-menu/index.d.ts +7 -0
  191. package/dist/components/dropdown-menu/index.js +6 -0
  192. package/dist/components/dropdown-menu/item/bond.svelte.d.ts +26 -0
  193. package/dist/components/dropdown-menu/item/bond.svelte.js +54 -0
  194. package/dist/components/dropdown-menu/item/controller.svelte.d.ts +39 -0
  195. package/dist/components/dropdown-menu/item/controller.svelte.js +73 -0
  196. package/dist/components/dropdown-menu/item/dropdown-menu-item.svelte +75 -0
  197. package/dist/components/dropdown-menu/item/dropdown-menu-item.svelte.d.ts +32 -0
  198. package/dist/components/dropdown-menu/item/index.d.ts +3 -0
  199. package/dist/components/dropdown-menu/item/index.js +3 -0
  200. package/dist/components/dropdown-menu/item/types.d.ts +57 -0
  201. package/dist/components/dropdown-menu/item/types.js +1 -0
  202. package/dist/components/dropdown-menu/types.d.ts +3 -0
  203. package/dist/components/dropdown-menu/types.js +1 -0
  204. package/dist/components/element/html-element.svelte +114 -85
  205. package/dist/components/element/html-element.svelte.d.ts +1 -1
  206. package/dist/components/element/svg-element.svelte +88 -88
  207. package/dist/components/element/types.d.ts +32 -20
  208. package/dist/components/form/field/atoms.d.ts +1 -1
  209. package/dist/components/form/field/atoms.js +1 -1
  210. package/dist/components/form/field/bond.svelte.js +0 -6
  211. package/dist/components/form/field/field-control.svelte +30 -9
  212. package/dist/components/form/field/field-control.svelte.d.ts +12 -22
  213. package/dist/components/form/field/field-helper-text.svelte +23 -0
  214. package/dist/components/form/field/field-helper-text.svelte.d.ts +26 -0
  215. package/dist/components/form/field/field-label.svelte +5 -7
  216. package/dist/components/form/field/field-label.svelte.d.ts +2 -2
  217. package/dist/components/form/field/field-root.svelte +17 -8
  218. package/dist/components/form/form-root.svelte +66 -66
  219. package/dist/components/form/types.d.ts +34 -58
  220. package/dist/components/icon/icon.svelte +40 -40
  221. package/dist/components/icon/types.d.ts +4 -7
  222. package/dist/components/image/index.d.ts +2 -0
  223. package/dist/components/image/index.js +2 -1
  224. package/dist/components/index.d.ts +11 -0
  225. package/dist/components/index.js +11 -0
  226. package/dist/components/input/atoms.d.ts +19 -1
  227. package/dist/components/input/atoms.js +19 -1
  228. package/dist/components/input/color/color-control.svelte +197 -0
  229. package/dist/components/input/color/color-control.svelte.d.ts +4 -0
  230. package/dist/components/input/color/index.d.ts +5 -0
  231. package/dist/components/input/color/index.js +5 -0
  232. package/dist/components/input/color/segment.svelte +240 -0
  233. package/dist/components/input/color/segment.svelte.d.ts +6 -0
  234. package/dist/components/input/color/shared.d.ts +23 -0
  235. package/dist/components/input/color/shared.js +349 -0
  236. package/dist/components/input/color/swatch.svelte +23 -0
  237. package/dist/components/input/color/swatch.svelte.d.ts +8 -0
  238. package/dist/components/input/color/types.d.ts +56 -0
  239. package/dist/components/input/color/types.js +2 -0
  240. package/dist/components/input/index.d.ts +1 -0
  241. package/dist/components/input/index.js +1 -0
  242. package/dist/components/input/input-control.svelte +3 -1
  243. package/dist/components/input/input-currency-control.svelte +189 -0
  244. package/dist/components/input/input-currency-control.svelte.d.ts +4 -0
  245. package/dist/components/input/input-email-control.svelte +128 -0
  246. package/dist/components/input/input-email-control.svelte.d.ts +4 -0
  247. package/dist/components/input/input-file-control.svelte +127 -0
  248. package/dist/components/input/input-file-control.svelte.d.ts +4 -0
  249. package/dist/components/input/input-icon.svelte.d.ts +1 -1
  250. package/dist/components/input/input-location.svelte +335 -0
  251. package/dist/components/input/input-location.svelte.d.ts +4 -0
  252. package/dist/components/input/input-number-control.svelte +114 -0
  253. package/dist/components/input/input-number-control.svelte.d.ts +6 -0
  254. package/dist/components/input/input-otp-control.svelte +206 -0
  255. package/dist/components/input/input-otp-control.svelte.d.ts +4 -0
  256. package/dist/components/input/input-password-control.svelte +91 -0
  257. package/dist/components/input/input-password-control.svelte.d.ts +3 -0
  258. package/dist/components/input/input-phone-control.svelte +394 -0
  259. package/dist/components/input/input-phone-control.svelte.d.ts +4 -0
  260. package/dist/components/input/input-placeholder.svelte.d.ts +1 -1
  261. package/dist/components/input/input-root.svelte +74 -74
  262. package/dist/components/input/input-text-control.svelte +59 -0
  263. package/dist/components/input/input-text-control.svelte.d.ts +4 -0
  264. package/dist/components/input/input-url-control.svelte +218 -0
  265. package/dist/components/input/input-url-control.svelte.d.ts +4 -0
  266. package/dist/components/input/time/datetime-control.svelte +281 -0
  267. package/dist/components/input/time/datetime-control.svelte.d.ts +5 -0
  268. package/dist/components/input/time/index.d.ts +6 -0
  269. package/dist/components/input/time/index.js +6 -0
  270. package/dist/components/input/time/segment.svelte +143 -0
  271. package/dist/components/input/time/segment.svelte.d.ts +6 -0
  272. package/dist/components/input/time/shared.d.ts +29 -0
  273. package/dist/components/input/time/shared.js +150 -0
  274. package/dist/components/input/time/time-control.svelte +237 -0
  275. package/dist/components/input/time/time-control.svelte.d.ts +3 -0
  276. package/dist/components/input/time/types.d.ts +34 -0
  277. package/dist/components/input/time/types.js +4 -0
  278. package/dist/components/input/types.d.ts +355 -17
  279. package/dist/components/label/types.d.ts +4 -7
  280. package/dist/components/layer/bond.svelte.d.ts +2 -2
  281. package/dist/components/layer/bond.svelte.js +1 -1
  282. package/dist/components/layer/index.d.ts +1 -0
  283. package/dist/components/layer/layer-inner.svelte.d.ts +1 -1
  284. package/dist/components/layer/layer-root.svelte +65 -65
  285. package/dist/components/layer/layer-root.svelte.d.ts +1 -1
  286. package/dist/components/layer/types.d.ts +6 -6
  287. package/dist/components/lazy/index.d.ts +1 -0
  288. package/dist/components/lazy/lazy.svelte +29 -29
  289. package/dist/components/lazy/types.d.ts +4 -4
  290. package/dist/components/link/index.d.ts +1 -0
  291. package/dist/components/link/types.d.ts +5 -6
  292. package/dist/components/list/index.d.ts +1 -0
  293. package/dist/components/list/types.d.ts +5 -6
  294. package/dist/components/menu/atoms.d.ts +2 -7
  295. package/dist/components/menu/atoms.js +2 -7
  296. package/dist/components/menu/bond.svelte.d.ts +9 -23
  297. package/dist/components/menu/bond.svelte.js +6 -0
  298. package/dist/components/menu/index.d.ts +40 -4
  299. package/dist/components/menu/index.js +26 -3
  300. package/dist/components/menu/item/bond.svelte.d.ts +27 -0
  301. package/dist/components/menu/item/bond.svelte.js +54 -0
  302. package/dist/components/menu/item/controller.svelte.d.ts +1 -1
  303. package/dist/components/menu/item/index.d.ts +5 -2
  304. package/dist/components/menu/item/index.js +4 -2
  305. package/dist/components/menu/item/menu-item.svelte +87 -103
  306. package/dist/components/menu/item/menu-item.svelte.d.ts +15 -14
  307. package/dist/components/menu/item/types.d.ts +5 -12
  308. package/dist/components/menu/menu-content.svelte +40 -40
  309. package/dist/components/menu/menu-root.svelte +15 -15
  310. package/dist/components/menu/menu-root.svelte.d.ts +1 -1
  311. package/dist/components/menu/types.d.ts +2 -6
  312. package/dist/components/popover/bond.svelte.d.ts +67 -39
  313. package/dist/components/popover/bond.svelte.js +159 -197
  314. package/dist/components/popover/index.d.ts +3 -1
  315. package/dist/components/popover/index.js +3 -1
  316. package/dist/components/popover/motion.d.ts +29 -1
  317. package/dist/components/popover/motion.js +128 -50
  318. package/dist/components/popover/popover-arrow.svelte +97 -110
  319. package/dist/components/popover/popover-arrow.svelte.d.ts +1 -2
  320. package/dist/components/popover/popover-content.svelte +159 -123
  321. package/dist/components/popover/popover-engine.svelte +118 -0
  322. package/dist/components/popover/popover-engine.svelte.d.ts +3 -0
  323. package/dist/components/popover/popover-indicator.svelte +2 -13
  324. package/dist/components/popover/popover-indicator.svelte.d.ts +0 -6
  325. package/dist/components/popover/popover-root.svelte +87 -49
  326. package/dist/components/popover/popover-root.svelte.d.ts +2 -1
  327. package/dist/components/popover/popover-trigger.svelte +35 -35
  328. package/dist/components/popover/strategies/floating.svelte +109 -0
  329. package/dist/components/popover/strategies/floating.svelte.d.ts +3 -0
  330. package/dist/components/popover/strategies/index.d.ts +1 -0
  331. package/dist/components/popover/strategies/index.js +1 -0
  332. package/dist/components/popover/strategy-types.d.ts +40 -0
  333. package/dist/components/popover/strategy-types.js +1 -0
  334. package/dist/components/popover/types.d.ts +10 -36
  335. package/dist/components/portal/active-portal.svelte +5 -4
  336. package/dist/components/portal/bond.svelte.d.ts +12 -8
  337. package/dist/components/portal/bond.svelte.js +25 -27
  338. package/dist/components/portal/index.d.ts +1 -0
  339. package/dist/components/portal/index.js +1 -0
  340. package/dist/components/portal/portal-inner.svelte +1 -1
  341. package/dist/components/portal/portal-inner.svelte.d.ts +1 -1
  342. package/dist/components/portal/portal-root.svelte +76 -76
  343. package/dist/components/portal/portal-root.svelte.d.ts +1 -1
  344. package/dist/components/portal/portals/bond.svelte.d.ts +2 -2
  345. package/dist/components/portal/portals/bond.svelte.js +2 -2
  346. package/dist/components/portal/teleport.svelte +47 -49
  347. package/dist/components/portal/teleport.svelte.d.ts +1 -2
  348. package/dist/components/portal/types.d.ts +7 -25
  349. package/dist/components/portal/utils.js +3 -3
  350. package/dist/components/portal/zlayer.svelte.d.ts +16 -0
  351. package/dist/components/portal/zlayer.svelte.js +25 -0
  352. package/dist/components/radio/index.d.ts +2 -0
  353. package/dist/components/radio/index.js +1 -0
  354. package/dist/components/radio/motion.d.ts +24 -0
  355. package/dist/components/radio/motion.js +59 -0
  356. package/dist/components/radio/radio.svelte +22 -12
  357. package/dist/components/radio/types.d.ts +5 -14
  358. package/dist/components/root/bond.svelte.d.ts +2 -2
  359. package/dist/components/root/bond.svelte.js +1 -1
  360. package/dist/components/root/root.svelte +82 -92
  361. package/dist/components/root/root.svelte.d.ts +2 -2
  362. package/dist/components/root/types.d.ts +4 -15
  363. package/dist/components/scrollable/atoms.d.ts +1 -0
  364. package/dist/components/scrollable/atoms.js +1 -0
  365. package/dist/components/scrollable/bond.svelte.d.ts +73 -189
  366. package/dist/components/scrollable/bond.svelte.js +195 -371
  367. package/dist/components/scrollable/scrollable-container.css +22 -22
  368. package/dist/components/scrollable/scrollable-container.svelte +66 -61
  369. package/dist/components/scrollable/scrollable-container.svelte.d.ts +12 -12
  370. package/dist/components/scrollable/scrollable-content.svelte +22 -17
  371. package/dist/components/scrollable/scrollable-content.svelte.d.ts +12 -12
  372. package/dist/components/scrollable/scrollable-root.svelte +106 -101
  373. package/dist/components/scrollable/scrollable-root.svelte.d.ts +12 -12
  374. package/dist/components/scrollable/scrollable-thumb.svelte +21 -45
  375. package/dist/components/scrollable/scrollable-thumb.svelte.d.ts +12 -12
  376. package/dist/components/scrollable/scrollable-track.svelte +21 -22
  377. package/dist/components/scrollable/scrollable-track.svelte.d.ts +12 -12
  378. package/dist/components/scrollable/types.d.ts +15 -38
  379. package/dist/components/select/atoms.d.ts +8 -0
  380. package/dist/components/select/atoms.js +8 -0
  381. package/dist/components/select/attachments.svelte.d.ts +2 -0
  382. package/dist/components/select/attachments.svelte.js +5 -0
  383. package/dist/components/select/bond.svelte.d.ts +56 -0
  384. package/dist/components/select/bond.svelte.js +112 -0
  385. package/dist/components/select/index.d.ts +11 -0
  386. package/dist/components/select/index.js +10 -0
  387. package/dist/components/select/item/attachments.svelte.d.ts +3 -0
  388. package/dist/components/select/item/attachments.svelte.js +6 -0
  389. package/dist/components/select/item/bond.svelte.d.ts +33 -0
  390. package/dist/components/select/item/bond.svelte.js +77 -0
  391. package/dist/components/select/item/controller.svelte.d.ts +39 -0
  392. package/dist/components/select/item/controller.svelte.js +105 -0
  393. package/dist/components/select/item/index.d.ts +5 -0
  394. package/dist/components/select/item/index.js +5 -0
  395. package/dist/components/select/item/select-item.svelte +81 -0
  396. package/dist/components/select/item/select-item.svelte.d.ts +25 -0
  397. package/dist/components/select/item/types.d.ts +29 -0
  398. package/dist/components/select/item/types.js +1 -0
  399. package/dist/components/select/runes.svelte.d.ts +10 -0
  400. package/dist/components/select/runes.svelte.js +15 -0
  401. package/dist/components/select/select-placeholder.svelte +40 -0
  402. package/dist/components/select/select-placeholder.svelte.d.ts +34 -0
  403. package/dist/components/select/select-root.svelte +80 -0
  404. package/dist/components/select/select-root.svelte.d.ts +30 -0
  405. package/dist/components/select/select-selection.svelte +55 -0
  406. package/dist/components/select/select-selection.svelte.d.ts +26 -0
  407. package/dist/components/select/select-selections.svelte +70 -0
  408. package/dist/components/select/select-selections.svelte.d.ts +5 -0
  409. package/dist/components/select/select-trigger.svelte +30 -0
  410. package/dist/components/select/select-trigger.svelte.d.ts +26 -0
  411. package/dist/components/select/types.d.ts +61 -0
  412. package/dist/components/select/types.js +1 -0
  413. package/dist/components/sidebar/bond.svelte.d.ts +10 -7
  414. package/dist/components/sidebar/bond.svelte.js +20 -15
  415. package/dist/components/sidebar/sidebar-content.svelte +1 -1
  416. package/dist/components/sidebar/sidebar-root.svelte +50 -41
  417. package/dist/components/sidebar/types.d.ts +10 -15
  418. package/dist/components/slider/index.d.ts +2 -0
  419. package/dist/components/slider/index.js +2 -0
  420. package/dist/components/slider/slider.svelte +164 -0
  421. package/dist/components/slider/slider.svelte.d.ts +6 -0
  422. package/dist/components/slider/types.d.ts +78 -0
  423. package/dist/components/slider/types.js +1 -0
  424. package/dist/components/stack/bond.svelte.d.ts +50 -0
  425. package/dist/components/stack/bond.svelte.js +174 -0
  426. package/dist/components/stack/index.d.ts +2 -0
  427. package/dist/components/stack/index.js +2 -0
  428. package/dist/components/stack/stack-item.svelte +40 -4
  429. package/dist/components/stack/stack-item.svelte.d.ts +6 -5
  430. package/dist/components/stack/stack-root.svelte +33 -4
  431. package/dist/components/stack/stack-root.svelte.d.ts +14 -5
  432. package/dist/components/stack/types.d.ts +11 -10
  433. package/dist/components/stepper/bond.svelte.d.ts +8 -7
  434. package/dist/components/stepper/bond.svelte.js +14 -11
  435. package/dist/components/stepper/step/README.md +97 -97
  436. package/dist/components/stepper/step/bond.svelte.d.ts +74 -63
  437. package/dist/components/stepper/step/bond.svelte.js +105 -69
  438. package/dist/components/stepper/step/step-body.svelte +39 -39
  439. package/dist/components/stepper/step/step-description.svelte +33 -33
  440. package/dist/components/stepper/step/step-header.svelte +34 -34
  441. package/dist/components/stepper/step/step-indicator.svelte +62 -62
  442. package/dist/components/stepper/step/step-root.svelte +42 -42
  443. package/dist/components/stepper/step/step-separator.svelte +48 -48
  444. package/dist/components/stepper/step/step-title.svelte +33 -33
  445. package/dist/components/stepper/step/types.d.ts +13 -57
  446. package/dist/components/stepper/stepper-body.svelte +31 -43
  447. package/dist/components/stepper/stepper-content.svelte +45 -45
  448. package/dist/components/stepper/stepper-footer.svelte +31 -31
  449. package/dist/components/stepper/stepper-header.svelte +27 -39
  450. package/dist/components/stepper/stepper-root.svelte +55 -61
  451. package/dist/components/stepper/types.d.ts +10 -36
  452. package/dist/components/swatch/index.d.ts +1 -0
  453. package/dist/components/swatch/index.js +1 -0
  454. package/dist/components/swatch/swatch.svelte +57 -0
  455. package/dist/components/swatch/swatch.svelte.d.ts +9 -0
  456. package/dist/components/switch/index.d.ts +2 -0
  457. package/dist/components/switch/index.js +2 -0
  458. package/dist/components/switch/switch.svelte +76 -0
  459. package/dist/components/switch/switch.svelte.d.ts +6 -0
  460. package/dist/components/switch/types.d.ts +43 -0
  461. package/dist/components/switch/types.js +1 -0
  462. package/dist/components/tabs/bond.svelte.d.ts +38 -19
  463. package/dist/components/tabs/bond.svelte.js +53 -46
  464. package/dist/components/tabs/tab/attachments.svelte.d.ts +5 -2
  465. package/dist/components/tabs/tab/attachments.svelte.js +4 -3
  466. package/dist/components/tabs/tab/bond.svelte.d.ts +35 -23
  467. package/dist/components/tabs/tab/bond.svelte.js +81 -56
  468. package/dist/components/tabs/tab/tab-body.svelte +61 -43
  469. package/dist/components/tabs/tab/tab-description.svelte +33 -33
  470. package/dist/components/tabs/tab/tab-header.svelte +61 -61
  471. package/dist/components/tabs/tab/tab-root.svelte +49 -50
  472. package/dist/components/tabs/tab/tab-root.svelte.d.ts +13 -35
  473. package/dist/components/tabs/tabs-body.svelte +39 -35
  474. package/dist/components/tabs/tabs-body.svelte.d.ts +1 -1
  475. package/dist/components/tabs/tabs-content.svelte +32 -51
  476. package/dist/components/tabs/tabs-header.svelte +32 -32
  477. package/dist/components/tabs/tabs-root.svelte +56 -56
  478. package/dist/components/tabs/types.d.ts +20 -37
  479. package/dist/components/textarea/types.d.ts +6 -12
  480. package/dist/components/toast/atoms.d.ts +1 -0
  481. package/dist/components/toast/atoms.js +1 -0
  482. package/dist/components/toast/index.d.ts +1 -0
  483. package/dist/components/toast/index.js +1 -0
  484. package/dist/components/toast/manager.svelte.d.ts +38 -0
  485. package/dist/components/toast/manager.svelte.js +82 -0
  486. package/dist/components/toast/toast-description.svelte.d.ts +1 -1
  487. package/dist/components/toast/toast-root-managed.svelte +64 -0
  488. package/dist/components/toast/toast-root-managed.svelte.d.ts +7 -0
  489. package/dist/components/toast/toast-root.svelte.d.ts +1 -1
  490. package/dist/components/toast/toast-title.svelte.d.ts +1 -1
  491. package/dist/components/toast/toast-toaster.svelte +42 -0
  492. package/dist/components/toast/toast-toaster.svelte.d.ts +4 -0
  493. package/dist/components/toast/types.d.ts +22 -31
  494. package/dist/components/tooltip/index.d.ts +1 -0
  495. package/dist/components/tooltip/tooltip-trigger.svelte +39 -39
  496. package/dist/components/tooltip/types.d.ts +5 -8
  497. package/dist/components/tree/bond.svelte.d.ts +28 -19
  498. package/dist/components/tree/bond.svelte.js +62 -53
  499. package/dist/components/tree/tree-body.svelte +1 -1
  500. package/dist/components/tree/tree-header.svelte +1 -1
  501. package/dist/components/tree/tree-header.svelte.d.ts +1 -1
  502. package/dist/components/tree/tree-indicator.svelte +1 -1
  503. package/dist/components/tree/tree-root.svelte +66 -66
  504. package/dist/components/tree/types.d.ts +4 -28
  505. package/dist/components/virtual/index.d.ts +2 -0
  506. package/dist/components/virtual/index.js +2 -0
  507. package/dist/components/virtual/types.d.ts +1 -6
  508. package/dist/constants/motion.d.ts +9 -0
  509. package/dist/constants/motion.js +9 -0
  510. package/dist/context/index.d.ts +1 -1
  511. package/dist/context/preset.svelte.d.ts +169 -2
  512. package/dist/runes/color-scheme.svelte.js +17 -5
  513. package/dist/shared/bond.svelte.d.ts +29 -3
  514. package/dist/shared/bond.svelte.js +126 -4
  515. package/dist/shared/index.d.ts +1 -1
  516. package/dist/shared/index.js +1 -1
  517. package/dist/shared/motion.d.ts +1 -0
  518. package/dist/shared/motion.js +2 -8
  519. package/dist/types/index.d.ts +4 -0
  520. package/dist/utils/index.d.ts +1 -1
  521. package/dist/utils/index.js +1 -1
  522. package/dist/utils/promise.svelte.d.ts +5 -0
  523. package/dist/utils/promise.svelte.js +17 -0
  524. package/dist/utils/variant.d.ts +10 -1
  525. package/dist/utils/variant.js +11 -1
  526. package/package.json +171 -48
  527. package/dist/components/accordion/accordion.stories.svelte +0 -70
  528. package/dist/components/accordion/accordion.stories.svelte.d.ts +0 -18
  529. package/dist/components/alert/alert.stories.svelte +0 -400
  530. package/dist/components/alert/alert.stories.svelte.d.ts +0 -3
  531. package/dist/components/avatar/avatar.stories.svelte +0 -22
  532. package/dist/components/avatar/avatar.stories.svelte.d.ts +0 -26
  533. package/dist/components/badge/badge.stories.svelte +0 -12
  534. package/dist/components/badge/badge.stories.svelte.d.ts +0 -26
  535. package/dist/components/breadcrumb/breadcrumb.stories.svelte +0 -16
  536. package/dist/components/breadcrumb/breadcrumb.stories.svelte.d.ts +0 -26
  537. package/dist/components/button/button.stories.svelte +0 -27
  538. package/dist/components/button/button.stories.svelte.d.ts +0 -18
  539. package/dist/components/calendar/calendar.stories.svelte +0 -26
  540. package/dist/components/calendar/calendar.stories.svelte.d.ts +0 -26
  541. package/dist/components/card/card.stories.svelte +0 -133
  542. package/dist/components/card/card.stories.svelte.d.ts +0 -19
  543. package/dist/components/checkbox/checkbox.stories.svelte +0 -22
  544. package/dist/components/checkbox/checkbox.stories.svelte.d.ts +0 -6
  545. package/dist/components/collapsible/collapsible.stories.svelte +0 -172
  546. package/dist/components/collapsible/collapsible.stories.svelte.d.ts +0 -18
  547. package/dist/components/combobox/combobox.stories.svelte +0 -63
  548. package/dist/components/combobox/combobox.stories.svelte.d.ts +0 -3
  549. package/dist/components/container/container.stories.svelte +0 -20
  550. package/dist/components/container/container.stories.svelte.d.ts +0 -26
  551. package/dist/components/contextmenu/atoms.d.ts +0 -0
  552. package/dist/components/contextmenu/atoms.js +0 -1
  553. package/dist/components/contextmenu/contextmenu-trigger.svelte +0 -0
  554. package/dist/components/contextmenu/contextmenu-trigger.svelte.d.ts +0 -26
  555. package/dist/components/contextmenu/indext.d.ts +0 -0
  556. package/dist/components/contextmenu/indext.js +0 -1
  557. package/dist/components/datagrid/datagrid.stories.svelte +0 -72
  558. package/dist/components/datagrid/datagrid.stories.svelte.d.ts +0 -6
  559. package/dist/components/datagrid/td/bond.svelte.d.ts +0 -28
  560. package/dist/components/datagrid/td/bond.svelte.js +0 -40
  561. package/dist/components/datagrid/td/datagrid-td.svelte +0 -66
  562. package/dist/components/datagrid/td/datagrid-td.svelte.d.ts +0 -30
  563. package/dist/components/datagrid/td/index.d.ts +0 -2
  564. package/dist/components/datagrid/td/index.js +0 -2
  565. package/dist/components/datagrid/th/bond.svelte.d.ts +0 -38
  566. package/dist/components/datagrid/th/bond.svelte.js +0 -66
  567. package/dist/components/datagrid/th/datagrid-th.svelte.d.ts +0 -26
  568. package/dist/components/datagrid/th/index.d.ts +0 -2
  569. package/dist/components/datagrid/th/index.js +0 -2
  570. package/dist/components/datagrid/tr/bond.svelte.d.ts +0 -37
  571. package/dist/components/datagrid/tr/bond.svelte.js +0 -72
  572. package/dist/components/datagrid/tr/datagrid-tr.svelte +0 -90
  573. package/dist/components/datagrid/tr/datagrid-tr.svelte.d.ts +0 -28
  574. package/dist/components/datagrid/tr/index.d.ts +0 -2
  575. package/dist/components/datagrid/tr/index.js +0 -2
  576. package/dist/components/date-picker/date-picker.stories.svelte +0 -35
  577. package/dist/components/date-picker/date-picker.stories.svelte.d.ts +0 -3
  578. package/dist/components/dialog/dialog.stories.svelte +0 -64
  579. package/dist/components/dialog/dialog.stories.svelte.d.ts +0 -3
  580. package/dist/components/drawer/drawer.stories.svelte +0 -141
  581. package/dist/components/drawer/drawer.stories.svelte.d.ts +0 -3
  582. package/dist/components/dropdown/dropdown.stories.svelte +0 -127
  583. package/dist/components/dropdown/dropdown.stories.svelte.d.ts +0 -3
  584. package/dist/components/element/element.stories.svelte +0 -37
  585. package/dist/components/element/element.stories.svelte.d.ts +0 -3
  586. package/dist/components/form/field/field-errors.svelte +0 -9
  587. package/dist/components/form/field/field-errors.svelte.d.ts +0 -11
  588. package/dist/components/form/form.stories.svelte +0 -96
  589. package/dist/components/form/form.stories.svelte.d.ts +0 -18
  590. package/dist/components/image/image.stories.svelte +0 -20
  591. package/dist/components/image/image.stories.svelte.d.ts +0 -26
  592. package/dist/components/input/input.stories.svelte +0 -35
  593. package/dist/components/input/input.stories.svelte.d.ts +0 -18
  594. package/dist/components/label/label.stories.svelte +0 -15
  595. package/dist/components/label/label.stories.svelte.d.ts +0 -26
  596. package/dist/components/lazy/lazy.stories.svelte +0 -28
  597. package/dist/components/lazy/lazy.stories.svelte.d.ts +0 -19
  598. package/dist/components/link/link.stories.svelte +0 -15
  599. package/dist/components/link/link.stories.svelte.d.ts +0 -26
  600. package/dist/components/menu/menu.stories.svelte +0 -33
  601. package/dist/components/menu/menu.stories.svelte.d.ts +0 -3
  602. package/dist/components/popover/popover.stories.svelte +0 -37
  603. package/dist/components/popover/popover.stories.svelte.d.ts +0 -3
  604. package/dist/components/qr-code/qr-code.stories.svelte +0 -18
  605. package/dist/components/qr-code/qr-code.stories.svelte.d.ts +0 -26
  606. package/dist/components/radio/radio-group.stories.svelte +0 -41
  607. package/dist/components/radio/radio-group.stories.svelte.d.ts +0 -6
  608. package/dist/components/radio/radio.stories.svelte +0 -17
  609. package/dist/components/radio/radio.stories.svelte.d.ts +0 -6
  610. package/dist/components/root/l0-portal.svelte +0 -8
  611. package/dist/components/root/l0-portal.svelte.d.ts +0 -26
  612. package/dist/components/root/l1-portal.svelte +0 -7
  613. package/dist/components/root/l1-portal.svelte.d.ts +0 -26
  614. package/dist/components/root/toasts-portal.svelte +0 -7
  615. package/dist/components/root/toasts-portal.svelte.d.ts +0 -26
  616. package/dist/components/scrollable/scrollable.stories.svelte +0 -116
  617. package/dist/components/scrollable/scrollable.stories.svelte.d.ts +0 -26
  618. package/dist/components/sidebar/sidebar.stories.svelte +0 -43
  619. package/dist/components/sidebar/sidebar.stories.svelte.d.ts +0 -3
  620. package/dist/components/stepper/stepper.stories.svelte +0 -264
  621. package/dist/components/stepper/stepper.stories.svelte.d.ts +0 -4
  622. package/dist/components/tabs/tabs.stories.svelte +0 -70
  623. package/dist/components/tabs/tabs.stories.svelte.d.ts +0 -3
  624. package/dist/components/tooltip/tooltip.stories.svelte +0 -32
  625. package/dist/components/tooltip/tooltip.stories.svelte.d.ts +0 -3
  626. package/dist/components/tree/tree.stories.svelte +0 -142
  627. package/dist/components/tree/tree.stories.svelte.d.ts +0 -3
  628. /package/dist/components/{contextmenu → context-menu}/types.js +0 -0
@@ -1,49 +1,47 @@
1
- <script module lang="ts">
2
- export type { TeleportProps } from './types';
3
- </script>
4
-
5
- <script lang="ts" generics="E extends HtmlElementTagName = 'div', B extends Base = Base">
6
- import type { HTMLAttributes } from 'svelte/elements';
7
- import type { TeleportProps } from './types';
8
- import { HtmlAtom, type Base } from '../atom';
9
- import type { HtmlElementTagName, HtmlElementType } from '../element';
10
- import { PortalsBond } from './portals';
11
- import { RootBond } from '../root/bond.svelte';
12
- import { port } from './utils';
13
-
14
- type Element = HtmlElementType<E>;
15
-
16
- let { portal, as, base, children, ...restProps }: TeleportProps<E, B> & HTMLAttributes<Element> =
17
- $props();
18
-
19
- const portalsBond = PortalsBond.get();
20
- const rootBond = RootBond.get();
21
-
22
- const portalBond = $derived.by(() => {
23
- if (typeof portal === 'string') {
24
- return portalsBond?.state?.get(portal!) ?? rootBond?.state?.getPortal(portal!);
25
- }
26
-
27
- return portal;
28
- });
29
-
30
- const targetElement = $derived(portalBond?.targetElement);
31
-
32
- function _port(node: HTMLElement) {
33
- const hidden = node.hidden;
34
-
35
- node.hidden = true;
36
-
37
- const unport = port(node, targetElement);
38
-
39
- node.hidden = hidden;
40
-
41
- return unport;
42
- }
43
- </script>
44
-
45
- {#if targetElement && portal}
46
- <HtmlAtom {@attach _port} as={as as E} {base} {...restProps}>
47
- {@render children?.({ portal: portalBond })}
48
- </HtmlAtom>
49
- {/if}
1
+ <script lang="ts" generics="E extends HtmlElementTagName = 'div', B extends Base = Base">
2
+ import type { HTMLAttributes } from 'svelte/elements';
3
+ import type { TeleportProps } from './types';
4
+ import { HtmlAtom, type Base } from '../atom';
5
+ import type { HtmlElementTagName, HtmlElementType } from '../element';
6
+ import { PortalsBond } from './portals';
7
+ import { RootBond } from '../root/bond.svelte';
8
+ import { port } from './utils';
9
+
10
+ type Element = HtmlElementType<E>;
11
+
12
+ let { portal, as, base, children, ...restProps }: TeleportProps<E, B> & HTMLAttributes<Element> =
13
+ $props();
14
+
15
+ const portalsBond = PortalsBond.get();
16
+ const rootBond = RootBond.get();
17
+
18
+ const portalBond = $derived.by(() => {
19
+ if (typeof portal === 'string') {
20
+ const p = portalsBond?.state.get(portal);
21
+ if(p) return p;
22
+
23
+ return rootBond?.state?.getPortal(portal!);
24
+ }
25
+
26
+ return portal;
27
+ });
28
+
29
+ const targetElement = $derived(portalBond?.targetElement);
30
+
31
+ const ui = $derived(targetElement ? content : undefined);
32
+
33
+ function teleport(node: HTMLElement) {
34
+
35
+ const unport = port(node, targetElement);
36
+
37
+ return unport;
38
+ }
39
+ </script>
40
+
41
+ {#snippet content()}
42
+ <HtmlAtom {@attach teleport} as={as as E} {base} {...restProps}>
43
+ {@render children?.({ portal: portalBond })}
44
+ </HtmlAtom>
45
+ {/snippet}
46
+
47
+ {@render ui?.()}
@@ -1,9 +1,8 @@
1
- export type { TeleportProps } from './types';
2
1
  import type { HTMLAttributes } from 'svelte/elements';
3
2
  import { type Base } from '../atom';
4
3
  import type { HtmlElementTagName, HtmlElementType } from '../element';
5
4
  declare function $$render<E extends HtmlElementTagName = 'div', B extends Base = Base>(): {
6
- props: import("../atom").HtmlAtomProps<E, B> & import("./types").TeleportExtendProps & {
5
+ props: import("../atom").HtmlAtomProps<E, B, import("./types").PortalChildren> & {
7
6
  portal?: string | import("./bond.svelte").PortalBond;
8
7
  } & HTMLAttributes<HtmlElementType<E>>;
9
8
  exports: {};
@@ -1,39 +1,21 @@
1
1
  import type { Snippet } from 'svelte';
2
- import type { HtmlAtomProps, Base } from '../atom';
2
+ import type { HtmlAtomProps, Base, SnippetProps } from '../atom';
3
3
  import type { Factory } from '../../types';
4
4
  import type { PortalBond } from './bond.svelte';
5
5
  import type { RootPortals } from '../root/root.svelte';
6
6
  import type { HtmlElementTagName } from '../element';
7
- /**
8
- * Extend this interface to add custom portal root properties in your application.
9
- */
10
- export interface PortalRootExtendProps {
7
+ export interface PortalSnippetProps extends SnippetProps {
8
+ portal: PortalBond;
11
9
  }
12
- /**
13
- * Extend this interface to add custom portal outer properties in your application.
14
- */
15
- export interface PortalOuterExtendProps {
16
- }
17
- /**
18
- * Extend this interface to add custom teleport properties in your application.
19
- */
20
- export interface TeleportExtendProps {
21
- }
22
- export type PortalRootProps<E extends keyof HTMLElementTagNameMap = 'div', B extends Base = Base> = Omit<HtmlAtomProps<E, B>, 'children'> & PortalRootExtendProps & {
10
+ export type PortalChildren = Snippet<[PortalSnippetProps]>;
11
+ export type PortalRootProps<E extends keyof HTMLElementTagNameMap = 'div', B extends Base = Base> = HtmlAtomProps<E, B, PortalChildren> & {
23
12
  name?: string;
24
13
  factory?: Factory<PortalBond>;
25
- children?: Snippet<[{
26
- portal: PortalBond;
27
- }]>;
28
14
  };
29
- export type PortalOuterProps<E extends keyof HTMLElementTagNameMap = 'div', B extends Base = Base> = HtmlAtomProps<E, B> & PortalOuterExtendProps & {
15
+ export type PortalOuterProps<E extends keyof HTMLElementTagNameMap = 'div', B extends Base = Base> = HtmlAtomProps<E, B, PortalChildren> & {
30
16
  id: RootPortals | (string & {});
31
17
  children?: Snippet;
32
18
  };
33
- export type TeleportProps<E extends HtmlElementTagName = 'div', B extends Base = Base> = HtmlAtomProps<E, B> & TeleportExtendProps & {
19
+ export type TeleportProps<E extends HtmlElementTagName = 'div', B extends Base = Base> = HtmlAtomProps<E, B, PortalChildren> & {
34
20
  portal?: string | PortalBond;
35
21
  };
36
- /**
37
- * @deprecated Use PortalRootExtendProps instead
38
- */
39
- export type PortalExtendProps = PortalRootExtendProps;
@@ -2,18 +2,18 @@ export function port(node, target = document.body) {
2
2
  if (!target) {
3
3
  throw Error('[actions] portal: Target element is undefined !');
4
4
  }
5
+ const opacity = node.style.opacity;
5
6
  if (node.parentElement !== target) {
6
- // node.hidden = true;
7
+ node.style.opacity = '0';
7
8
  // Check if element is already mounted on target
8
9
  if (node.parentElement !== target) {
9
10
  target.appendChild(node);
10
11
  requestAnimationFrame(() => {
11
- node.hidden = false;
12
+ node.style.opacity = opacity;
12
13
  });
13
14
  }
14
15
  }
15
16
  return () => {
16
- node.hidden = true;
17
17
  node.remove();
18
18
  };
19
19
  }
@@ -0,0 +1,16 @@
1
+ export declare const LAYER_BASE: {
2
+ readonly sidebar: 100;
3
+ readonly drawer: 200;
4
+ readonly dialog: 300;
5
+ readonly popover: 400;
6
+ readonly tooltip: 500;
7
+ };
8
+ export type LayerName = keyof typeof LAYER_BASE;
9
+ export declare class ZLayer {
10
+ #private;
11
+ constructor(base: number | LayerName, offset?: () => number);
12
+ get(): number;
13
+ share(): ZLayer;
14
+ static get: () => ZLayer;
15
+ static set: (context: ZLayer) => ZLayer;
16
+ }
@@ -0,0 +1,25 @@
1
+ import { createContext } from 'svelte';
2
+ const [get, set] = createContext();
3
+ export const LAYER_BASE = {
4
+ sidebar: 100,
5
+ drawer: 200,
6
+ dialog: 300,
7
+ popover: 400,
8
+ tooltip: 500
9
+ };
10
+ export class ZLayer {
11
+ #base;
12
+ #offset;
13
+ constructor(base, offset = () => 0) {
14
+ this.#base = typeof base === 'string' ? LAYER_BASE[base] : base;
15
+ this.#offset = offset;
16
+ }
17
+ get() {
18
+ return this.#base + this.#offset();
19
+ }
20
+ share() {
21
+ return ZLayer.set(this);
22
+ }
23
+ static get = get;
24
+ static set = set;
25
+ }
@@ -1,2 +1,4 @@
1
1
  export { default as Radio } from './radio.svelte';
2
2
  export { default as RadioGroup } from './radio-group.svelte';
3
+ export type { RadioSnippetProps, RadioChildren } from './types';
4
+ export * from './motion';
@@ -1,2 +1,3 @@
1
1
  export { default as Radio } from './radio.svelte';
2
2
  export { default as RadioGroup } from './radio-group.svelte';
3
+ export * from './motion';
@@ -0,0 +1,24 @@
1
+ import type { EasingFunction } from 'svelte/transition';
2
+ import type { TransitionFunction } from '../element';
3
+ export type AnimateRadioIndicatorParams = {
4
+ /** Animation duration in milliseconds (default: 200 for in, 150 for out) */
5
+ duration?: number;
6
+ /** Delay before animation starts in milliseconds (default: 0) */
7
+ delay?: number;
8
+ /** Custom easing function (default: cubicOut for in, cubicIn for out) */
9
+ easing?: EasingFunction;
10
+ };
11
+ /**
12
+ * Enter transition for radio indicator (check)
13
+ * Smooth scale and fade in
14
+ *
15
+ * Respects prefers-reduced-motion by using instant transition
16
+ */
17
+ export declare function animateRadioIndicatorIn(params?: AnimateRadioIndicatorParams): TransitionFunction<HTMLElement>;
18
+ /**
19
+ * Exit transition for radio indicator (uncheck)
20
+ * Quick scale and fade out
21
+ *
22
+ * Respects prefers-reduced-motion by using instant transition
23
+ */
24
+ export declare function animateRadioIndicatorOut(params?: AnimateRadioIndicatorParams): TransitionFunction<HTMLElement>;
@@ -0,0 +1,59 @@
1
+ import { cubicOut, cubicIn } from 'svelte/easing';
2
+ /**
3
+ * Check if user prefers reduced motion
4
+ */
5
+ function prefersReducedMotion() {
6
+ if (typeof window === 'undefined')
7
+ return false;
8
+ return window.matchMedia('(prefers-reduced-motion: reduce)').matches;
9
+ }
10
+ /**
11
+ * Enter transition for radio indicator (check)
12
+ * Smooth scale and fade in
13
+ *
14
+ * Respects prefers-reduced-motion by using instant transition
15
+ */
16
+ export function animateRadioIndicatorIn(params = {}) {
17
+ const { duration = 200, delay = 0, easing = cubicOut } = params;
18
+ return () => {
19
+ // If user prefers reduced motion, use instant transition
20
+ if (prefersReducedMotion()) {
21
+ return {
22
+ duration: 0,
23
+ delay: 0,
24
+ css: () => ''
25
+ };
26
+ }
27
+ return () => ({
28
+ duration,
29
+ delay,
30
+ easing,
31
+ css: (t) => `transform: scale(${t}); opacity: ${t};`
32
+ });
33
+ };
34
+ }
35
+ /**
36
+ * Exit transition for radio indicator (uncheck)
37
+ * Quick scale and fade out
38
+ *
39
+ * Respects prefers-reduced-motion by using instant transition
40
+ */
41
+ export function animateRadioIndicatorOut(params = {}) {
42
+ const { duration = 150, delay = 0, easing = cubicIn } = params;
43
+ return () => {
44
+ // If user prefers reduced motion, use instant transition
45
+ if (prefersReducedMotion()) {
46
+ return {
47
+ duration: 0,
48
+ delay: 0,
49
+ css: () => ''
50
+ };
51
+ }
52
+ return () => ({
53
+ duration,
54
+ delay,
55
+ easing,
56
+ css: (t) => `transform: scale(${t}); opacity: ${t};`
57
+ });
58
+ };
59
+ }
@@ -3,6 +3,7 @@
3
3
  import { Stack } from '../stack';
4
4
  import { toClassValue } from '../../utils';
5
5
  import { HtmlAtom, type Base } from '../atom';
6
+ import { animateRadioIndicatorIn, animateRadioIndicatorOut } from './motion';
6
7
 
7
8
  const radioGroupContext = getRadioGroupContext();
8
9
 
@@ -43,6 +44,8 @@
43
44
  const isReadonly = $derived(_readonly || readonly);
44
45
  const isChecked = $derived(proxy.current === value);
45
46
 
47
+ const checkedContentSnippet = $derived(isChecked ? checkedContent ? customCheckedContent: defaultCheckedContent : undefined);
48
+
46
49
  function handleChange(ev: Event) {
47
50
  const checked = (ev.currentTarget as HTMLInputElement)?.checked ?? false;
48
51
 
@@ -69,12 +72,28 @@
69
72
  }
70
73
  </script>
71
74
 
75
+ {#snippet defaultCheckedContent()}
76
+ <Stack.Item
77
+ class="rounded-inherit pointer-events-none size-full scale-[0.6] bg-current"
78
+ enter={animateRadioIndicatorIn()}
79
+ exit={animateRadioIndicatorOut()}
80
+ />
81
+ {/snippet}
82
+
83
+ {#snippet customCheckedContent()}
84
+ <HtmlAtom
85
+ class="rounded-inherit pointer-events-none size-full scale-[0.6] bg-current"
86
+ base={checkedContent}
87
+ enter={animateRadioIndicatorIn()}
88
+ exit={animateRadioIndicatorOut()}
89
+ />
90
+ {/snippet}
91
+
72
92
  <Stack.Root
73
93
  preset="radio"
74
94
  class={[
75
- 'text-foreground bg-input box-border inline-flex aspect-square size-4 max-h-fit max-w-fit cursor-pointer place-items-center rounded-full border p-0',
95
+ 'text-foreground bg-input box-border inline-flex aspect-square size-4 max-h-fit max-w-fit cursor-pointer place-items-center rounded-full border border-border p-0',
76
96
  isDisabled && 'pointer-events-none opacity-50',
77
- '$preset',
78
97
  toClassValue.apply(null, [klass, {}])
79
98
  ]}
80
99
  as="label"
@@ -96,14 +115,5 @@
96
115
  />
97
116
  </Stack.Item>
98
117
 
99
- {#if isChecked}
100
- {#if checkedContent}
101
- <HtmlAtom
102
- class="rounded-inherit pointer-events-none size-full scale-50 bg-current"
103
- base={checkedContent}
104
- />
105
- {:else}
106
- <Stack.Item class="rounded-inherit pointer-events-none size-full scale-50 bg-current" />
107
- {/if}
108
- {/if}
118
+ {@render checkedContentSnippet?.()}
109
119
  </Stack.Root>
@@ -1,16 +1,9 @@
1
1
  import { type Component, type Snippet } from 'svelte';
2
- import { type HtmlAtomProps } from '../atom';
3
- /**
4
- * Extend this interface to add custom radio properties in your application.
5
- */
6
- export interface RadioExtendProps {
2
+ import { type HtmlAtomProps, type SnippetProps } from '../atom';
3
+ export interface RadioSnippetProps extends SnippetProps {
7
4
  }
8
- /**
9
- * Extend this interface to add custom radio group properties in your application.
10
- */
11
- export interface RadioGroupExtendProps {
12
- }
13
- export interface RadioProps<T = string> extends HtmlAtomProps<'label'>, RadioExtendProps {
5
+ export type RadioChildren = Snippet<[RadioSnippetProps]>;
6
+ export interface RadioProps<T = string> extends HtmlAtomProps<'label', never, RadioChildren> {
14
7
  /**
15
8
  * The value of the radio button
16
9
  */
@@ -46,7 +39,6 @@ export interface RadioProps<T = string> extends HtmlAtomProps<'label'>, RadioExt
46
39
  /**
47
40
  * Child content (label text)
48
41
  */
49
- children?: Snippet<[]>;
50
42
  /**
51
43
  * Change event handler
52
44
  */
@@ -64,7 +56,7 @@ export interface RadioProps<T = string> extends HtmlAtomProps<'label'>, RadioExt
64
56
  type: 'boolean';
65
57
  }) => void;
66
58
  }
67
- export interface RadioGroupProps<T = string> extends HtmlAtomProps<'div'>, RadioGroupExtendProps {
59
+ export interface RadioGroupProps<T = string> extends HtmlAtomProps<'div', never, RadioChildren> {
68
60
  /**
69
61
  * The currently selected value
70
62
  */
@@ -88,7 +80,6 @@ export interface RadioGroupProps<T = string> extends HtmlAtomProps<'div'>, Radio
88
80
  /**
89
81
  * Child content (radio buttons)
90
82
  */
91
- children?: Snippet<[]>;
92
83
  /**
93
84
  * Input event handler triggered when the selected value changes
94
85
  */
@@ -1,5 +1,5 @@
1
- import type { PortalBond } from '../portal/bond.svelte.js';
2
- import { Bond, BondState, type BondStateProps } from '../../shared/bond.svelte.js';
1
+ import type { PortalBond } from '../portal/bond.svelte';
2
+ import { Bond, BondState, type BondStateProps } from '../../shared/bond.svelte';
3
3
  import type { Component } from 'svelte';
4
4
  export type RootStateProps<T extends Record<string, unknown> = Record<string, unknown>> = BondStateProps & {
5
5
  renderers?: {
@@ -1,6 +1,6 @@
1
1
  import { SvelteMap } from 'svelte/reactivity';
2
2
  import { getContext, setContext } from 'svelte';
3
- import { Bond, BondState } from '../../shared/bond.svelte.js';
3
+ import { Bond, BondState } from '../../shared/bond.svelte';
4
4
  export class RootBond extends Bond {
5
5
  static CONTEXT_KEY = '@atomic-sv/bonds/root';
6
6
  constructor(atom) {
@@ -1,92 +1,82 @@
1
- <script module lang="ts">
2
- export type RootPortals = 'root.l0' | 'root.l1' | 'root.l2' | 'root.l3';
3
- </script>
4
-
5
- <script lang="ts">
6
- import { cn, defineState, defineProperty } from '../../utils';
7
- import { ActivePortal, Portals } from '../portal';
8
- import { HtmlAtom as Atom } from '../atom';
9
- import { HtmlElement, SvgElement } from '../element';
10
- import { RootBond, RootBondState, type RootStateProps } from './bond.svelte';
11
- import L0Portal from './l0-portal.svelte';
12
- import L1Portal from './l1-portal.svelte';
13
- import type { RootProps } from './types';
14
-
15
- let {
16
- class: klass = '',
17
- base = undefined,
18
- children = undefined,
19
- portals = undefined,
20
- l0portal = undefined,
21
- l1portal = undefined,
22
- ...restProps
23
- }: RootProps = $props();
24
-
25
- let html: typeof HtmlElement | undefined = $state(HtmlElement);
26
- let svg: typeof SvgElement | undefined = $state(undefined);
27
-
28
- type Renderers = {
29
- html?: typeof HtmlElement;
30
- svg?: typeof SvgElement;
31
- };
32
-
33
- const renderers = defineState<Renderers>([
34
- defineProperty('html', () => {
35
- if (!html) {
36
- import('../element/html-element.svelte').then((mod) => {
37
- html = mod.default;
38
- });
39
- }
40
-
41
- return html;
42
- }),
43
- defineProperty('svg', () => {
44
- if (!svg) {
45
- import('../element/svg-element.svelte').then((mod) => {
46
- svg = mod.default;
47
- });
48
- }
49
-
50
- return svg;
51
- })
52
- ]);
53
-
54
- const bondProps = defineState<RootStateProps>([defineProperty('renderers', () => renderers)]);
55
-
56
- const bondState = new RootBondState(() => bondProps);
57
- const bond = new RootBond(bondState).share();
58
- </script>
59
-
60
- <Portals id="root">
61
- <Atom
62
- {@attach (node) => {
63
- bond.rootElement = node;
64
- }}
65
- {base}
66
- preset="root"
67
- class={cn(
68
- 'atom-root bg-background text-foreground relative flex h-full w-full flex-1 flex-col items-start justify-stretch font-sans',
69
- '$preset',
70
- klass
71
- )}
72
- {...restProps}
73
- >
74
- {#if l0portal}
75
- {@render l0portal?.()}
76
- {:else}
77
- <L0Portal />
78
- {/if}
79
-
80
- {#if l1portal}
81
- {@render l1portal?.()}
82
- {:else}
83
- <L1Portal />
84
- {/if}
85
-
86
- {@render portals?.()}
87
-
88
- <ActivePortal portal="root.l0">
89
- {@render children?.()}
90
- </ActivePortal>
91
- </Atom>
92
- </Portals>
1
+ <script module lang="ts">
2
+ export type RootPortals = 'root.l0';
3
+ </script>
4
+
5
+ <script lang="ts">
6
+ import { cn, defineState, defineProperty } from '../../utils';
7
+ import { ActivePortal, Portal, Portals } from '../portal';
8
+ import { HtmlAtom as Atom } from '../atom';
9
+ import { HtmlElement, SvgElement } from '../element';
10
+ import { RootBond, RootBondState, type RootStateProps } from './bond.svelte';
11
+ import type { RootProps } from './types';
12
+
13
+ let {
14
+ class: klass = '',
15
+ base = undefined,
16
+ children = undefined,
17
+ portal = undefined,
18
+ ...restProps
19
+ }: RootProps = $props();
20
+
21
+ let html: typeof HtmlElement | undefined = $state(HtmlElement);
22
+ let svg: typeof SvgElement | undefined = $state(undefined);
23
+
24
+ type Renderers = {
25
+ html?: typeof HtmlElement;
26
+ svg?: typeof SvgElement;
27
+ };
28
+
29
+ const renderers = defineState<Renderers>([
30
+ defineProperty('html', () => {
31
+ if (!html) {
32
+ import('../element/html-element.svelte').then((mod) => {
33
+ html = mod.default;
34
+ });
35
+ }
36
+
37
+ return html;
38
+ }),
39
+ defineProperty('svg', () => {
40
+ if (!svg) {
41
+ import('../element/svg-element.svelte').then((mod) => {
42
+ svg = mod.default;
43
+ });
44
+ }
45
+
46
+ return svg;
47
+ })
48
+ ]);
49
+
50
+ const bondProps = defineState<RootStateProps>([defineProperty('renderers', () => renderers)]);
51
+
52
+ const bondState = new RootBondState(() => bondProps);
53
+ const bond = new RootBond(bondState).share();
54
+ </script>
55
+
56
+ <Portals id="root">
57
+ <Atom
58
+ {@attach (node) => {
59
+ bond.rootElement = node;
60
+ }}
61
+ {base}
62
+ preset="root"
63
+ class={cn(
64
+ 'atom-root bg-background text-foreground relative flex h-full w-full flex-1 flex-col items-start justify-stretch font-sans',
65
+ '$preset',
66
+ klass
67
+ )}
68
+ {...restProps}
69
+ >
70
+ {#if portal}
71
+ {@render portal?.()}
72
+ {:else}
73
+ <Portal.Outer id="root.l0" class="pointer-events-none absolute inset-0 z-10 overflow-hidden">
74
+ <Portal.Inner />
75
+ </Portal.Outer>
76
+ {/if}
77
+
78
+ <ActivePortal portal="root.l0">
79
+ {@render children?.()}
80
+ </ActivePortal>
81
+ </Atom>
82
+ </Portals>
@@ -1,5 +1,5 @@
1
- export type RootPortals = 'root.l0' | 'root.l1' | 'root.l2' | 'root.l3';
1
+ export type RootPortals = 'root.l0';
2
2
  import type { RootProps } from './types';
3
- declare const Root: import("svelte").Component<RootProps<"div", import("../atom").ComponentBase | import("../atom").SnippetBase>, {}, "">;
3
+ declare const Root: import("svelte").Component<RootProps<"div", import("../atom").SnippetBase>, {}, "">;
4
4
  type Root = ReturnType<typeof Root>;
5
5
  export default Root;
@@ -1,25 +1,14 @@
1
- import type { HtmlAtomProps, Base } from '../atom';
1
+ import type { HtmlAtomProps, Base, SnippetProps } from '../atom';
2
2
  import type { Snippet } from 'svelte';
3
- /**
4
- * Extend this interface to add custom root properties in your application.
5
- */
6
- export interface RootExtendProps {
3
+ export interface RootSnippetProps extends SnippetProps {
7
4
  }
8
- export interface RootProps<E extends keyof HTMLElementTagNameMap = 'div', B extends Base = Base> extends HtmlAtomProps<E, B>, RootExtendProps {
5
+ export type RootChildren = Snippet<[RootSnippetProps]>;
6
+ export interface RootProps<E extends keyof HTMLElementTagNameMap = 'div', B extends Base = Base> extends HtmlAtomProps<E, B, RootChildren> {
9
7
  /**
10
8
  * Main content to render inside the root component.
11
9
  */
12
- children?: Snippet;
13
10
  /**
14
11
  * Custom portal configuration snippet.
15
12
  */
16
13
  portals?: Snippet;
17
- /**
18
- * Custom L0 portal snippet (z-10 layer for popovers).
19
- */
20
- l0portal?: Snippet;
21
- /**
22
- * Custom L1 portal snippet (z-12 layer).
23
- */
24
- l1portal?: Snippet;
25
14
  }