@svelte-atoms/core 1.0.0-alpha.25 → 1.0.0-alpha.27

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 (354) hide show
  1. package/README.md +645 -645
  2. package/dist/components/accordion/accordion-root.svelte +61 -79
  3. package/dist/components/accordion/accordion-root.svelte.d.ts +2 -15
  4. package/dist/components/accordion/index.d.ts +2 -1
  5. package/dist/components/accordion/index.js +2 -1
  6. package/dist/components/accordion/item/accordion-item-body.svelte +42 -52
  7. package/dist/components/accordion/item/accordion-item-body.svelte.d.ts +2 -8
  8. package/dist/components/accordion/item/accordion-item-header.svelte +50 -56
  9. package/dist/components/accordion/item/accordion-item-header.svelte.d.ts +3 -20
  10. package/dist/components/accordion/item/accordion-item-indicator.svelte +50 -59
  11. package/dist/components/accordion/item/accordion-item-indicator.svelte.d.ts +2 -8
  12. package/dist/components/accordion/item/accordion-item-root.svelte +65 -79
  13. package/dist/components/accordion/item/accordion-item-root.svelte.d.ts +2 -12
  14. package/dist/components/accordion/item/index.d.ts +1 -0
  15. package/dist/components/accordion/item/types.d.ts +52 -0
  16. package/dist/components/accordion/item/types.js +1 -0
  17. package/dist/components/accordion/types.d.ts +21 -0
  18. package/dist/components/accordion/types.js +1 -0
  19. package/dist/components/alert/alert-actions.svelte +42 -52
  20. package/dist/components/alert/alert-actions.svelte.d.ts +3 -30
  21. package/dist/components/alert/alert-close-button.svelte +72 -79
  22. package/dist/components/alert/alert-close-button.svelte.d.ts +8 -35
  23. package/dist/components/alert/alert-content.svelte +42 -52
  24. package/dist/components/alert/alert-content.svelte.d.ts +3 -30
  25. package/dist/components/alert/alert-description.svelte +41 -51
  26. package/dist/components/alert/alert-description.svelte.d.ts +7 -10
  27. package/dist/components/alert/alert-icon.svelte +46 -56
  28. package/dist/components/alert/alert-icon.svelte.d.ts +2 -8
  29. package/dist/components/alert/alert-root.svelte +102 -118
  30. package/dist/components/alert/alert-root.svelte.d.ts +2 -13
  31. package/dist/components/alert/alert-title.svelte +41 -51
  32. package/dist/components/alert/alert-title.svelte.d.ts +2 -8
  33. package/dist/components/alert/index.d.ts +1 -0
  34. package/dist/components/alert/index.js +1 -0
  35. package/dist/components/alert/types.d.ts +85 -0
  36. package/dist/components/alert/types.js +1 -0
  37. package/dist/components/atom/html-atom.svelte +201 -217
  38. package/dist/components/atom/html-atom.svelte.d.ts +2 -22
  39. package/dist/components/atom/types.d.ts +7 -2
  40. package/dist/components/avatar/types.d.ts +7 -2
  41. package/dist/components/badge/badge.svelte +1 -1
  42. package/dist/components/badge/types.d.ts +7 -2
  43. package/dist/components/breadcrumb/breadcrumb-item.svelte +1 -1
  44. package/dist/components/breadcrumb/breadcrumb-root.svelte +1 -1
  45. package/dist/components/breadcrumb/breadcrumb-separator.svelte +1 -1
  46. package/dist/components/button/button.stories.svelte +57 -57
  47. package/dist/components/button/button.svelte +1 -1
  48. package/dist/components/button/button.svelte.d.ts +4 -1
  49. package/dist/components/button/index.d.ts +1 -0
  50. package/dist/components/button/index.js +1 -0
  51. package/dist/components/button/types.d.ts +8 -3
  52. package/dist/components/card/card-body.svelte +39 -45
  53. package/dist/components/card/card-body.svelte.d.ts +7 -4
  54. package/dist/components/card/card-description.svelte +41 -48
  55. package/dist/components/card/card-description.svelte.d.ts +7 -7
  56. package/dist/components/card/card-footer.svelte +41 -48
  57. package/dist/components/card/card-footer.svelte.d.ts +7 -4
  58. package/dist/components/card/card-header.svelte +41 -48
  59. package/dist/components/card/card-header.svelte.d.ts +7 -4
  60. package/dist/components/card/card-media.svelte +41 -48
  61. package/dist/components/card/card-media.svelte.d.ts +7 -4
  62. package/dist/components/card/card-root.svelte +91 -91
  63. package/dist/components/card/card-root.svelte.d.ts +1 -1
  64. package/dist/components/card/card-subtitle.svelte +41 -48
  65. package/dist/components/card/card-subtitle.svelte.d.ts +12 -9
  66. package/dist/components/card/card-title.svelte +45 -48
  67. package/dist/components/card/card-title.svelte.d.ts +12 -9
  68. package/dist/components/card/index.d.ts +1 -0
  69. package/dist/components/card/index.js +1 -0
  70. package/dist/components/card/types.d.ts +57 -2
  71. package/dist/components/checkbox/checkbox.svelte +39 -28
  72. package/dist/components/checkbox/types.d.ts +7 -2
  73. package/dist/components/collapsible/collapsible-body.svelte +39 -52
  74. package/dist/components/collapsible/collapsible-body.svelte.d.ts +2 -9
  75. package/dist/components/collapsible/collapsible-header.svelte +39 -52
  76. package/dist/components/collapsible/collapsible-header.svelte.d.ts +2 -9
  77. package/dist/components/collapsible/collapsible-indicator.svelte +50 -65
  78. package/dist/components/collapsible/collapsible-indicator.svelte.d.ts +3 -10
  79. package/dist/components/collapsible/collapsible-root.svelte +66 -85
  80. package/dist/components/collapsible/collapsible-root.svelte.d.ts +2 -14
  81. package/dist/components/collapsible/index.d.ts +1 -0
  82. package/dist/components/collapsible/index.js +1 -0
  83. package/dist/components/collapsible/types.d.ts +54 -0
  84. package/dist/components/collapsible/types.js +1 -0
  85. package/dist/components/combobox/atoms.d.ts +5 -1
  86. package/dist/components/combobox/atoms.js +5 -1
  87. package/dist/components/combobox/{combobox-input.svelte → combobox-control.svelte} +3 -3
  88. package/dist/components/combobox/{combobox-input.svelte.d.ts → combobox-control.svelte.d.ts} +3 -3
  89. package/dist/components/combobox/combobox-root.svelte +65 -68
  90. package/dist/components/combobox/combobox-root.svelte.d.ts +5 -18
  91. package/dist/components/combobox/combobox-trigger.svelte +1 -1
  92. package/dist/components/combobox/compobox-item.svelte +1 -1
  93. package/dist/components/combobox/index.d.ts +1 -0
  94. package/dist/components/combobox/index.js +1 -0
  95. package/dist/components/combobox/types.d.ts +25 -0
  96. package/dist/components/combobox/types.js +1 -0
  97. package/dist/components/container/container.svelte +1 -1
  98. package/dist/components/container/types.d.ts +7 -2
  99. package/dist/components/contextmenu/types.d.ts +8 -0
  100. package/dist/components/contextmenu/types.js +1 -0
  101. package/dist/components/datagrid/datagrid-body.svelte +37 -44
  102. package/dist/components/datagrid/datagrid-body.svelte.d.ts +17 -20
  103. package/dist/components/datagrid/datagrid-checkbox.svelte +101 -108
  104. package/dist/components/datagrid/datagrid-checkbox.svelte.d.ts +4 -6
  105. package/dist/components/datagrid/datagrid-footer.svelte +34 -34
  106. package/dist/components/datagrid/datagrid-footer.svelte.d.ts +1 -1
  107. package/dist/components/datagrid/datagrid-header.svelte +49 -49
  108. package/dist/components/datagrid/datagrid-header.svelte.d.ts +1 -1
  109. package/dist/components/datagrid/datagrid-root.svelte +59 -59
  110. package/dist/components/datagrid/datagrid-root.svelte.d.ts +1 -1
  111. package/dist/components/datagrid/datagrid.stories.svelte +75 -75
  112. package/dist/components/datagrid/td/datagrid-td.svelte +66 -80
  113. package/dist/components/datagrid/td/datagrid-td.svelte.d.ts +7 -16
  114. package/dist/components/datagrid/th/datagrid-th-sort-icon.svelte +1 -1
  115. package/dist/components/datagrid/th/datagrid-th.svelte +106 -127
  116. package/dist/components/datagrid/th/datagrid-th.svelte.d.ts +2 -20
  117. package/dist/components/datagrid/tr/bond.svelte.d.ts +3 -1
  118. package/dist/components/datagrid/tr/bond.svelte.js +4 -2
  119. package/dist/components/datagrid/tr/datagrid-tr.svelte +88 -103
  120. package/dist/components/datagrid/tr/datagrid-tr.svelte.d.ts +2 -18
  121. package/dist/components/datagrid/types.d.ts +85 -37
  122. package/dist/components/dialog/dialog-body.svelte +39 -45
  123. package/dist/components/dialog/dialog-body.svelte.d.ts +2 -2
  124. package/dist/components/dialog/dialog-close-button.svelte +58 -61
  125. package/dist/components/dialog/dialog-close-button.svelte.d.ts +7 -7
  126. package/dist/components/dialog/dialog-content.svelte +62 -71
  127. package/dist/components/dialog/dialog-content.svelte.d.ts +2 -2
  128. package/dist/components/dialog/dialog-description.svelte +40 -46
  129. package/dist/components/dialog/dialog-description.svelte.d.ts +2 -2
  130. package/dist/components/dialog/dialog-footer.svelte +39 -45
  131. package/dist/components/dialog/dialog-footer.svelte.d.ts +2 -2
  132. package/dist/components/dialog/dialog-header.svelte +39 -45
  133. package/dist/components/dialog/dialog-header.svelte.d.ts +2 -2
  134. package/dist/components/dialog/dialog-root.svelte +110 -120
  135. package/dist/components/dialog/dialog-root.svelte.d.ts +2 -10
  136. package/dist/components/dialog/dialog-title.svelte +41 -47
  137. package/dist/components/dialog/dialog-title.svelte.d.ts +7 -7
  138. package/dist/components/dialog/index.d.ts +1 -0
  139. package/dist/components/dialog/index.js +1 -0
  140. package/dist/components/dialog/types.d.ts +67 -0
  141. package/dist/components/dialog/types.js +1 -0
  142. package/dist/components/divider/types.d.ts +10 -0
  143. package/dist/components/divider/types.js +1 -0
  144. package/dist/components/drawer/drawer-backdrop.svelte +38 -47
  145. package/dist/components/drawer/drawer-backdrop.svelte.d.ts +3 -26
  146. package/dist/components/drawer/drawer-body.svelte +42 -56
  147. package/dist/components/drawer/drawer-body.svelte.d.ts +3 -16
  148. package/dist/components/drawer/drawer-content.svelte +42 -55
  149. package/dist/components/drawer/drawer-content.svelte.d.ts +3 -14
  150. package/dist/components/drawer/drawer-description.svelte +44 -57
  151. package/dist/components/drawer/drawer-description.svelte.d.ts +3 -14
  152. package/dist/components/drawer/drawer-footer.svelte +41 -54
  153. package/dist/components/drawer/drawer-footer.svelte.d.ts +3 -14
  154. package/dist/components/drawer/drawer-header.svelte +43 -56
  155. package/dist/components/drawer/drawer-header.svelte.d.ts +3 -14
  156. package/dist/components/drawer/drawer-root.svelte +93 -113
  157. package/dist/components/drawer/drawer-root.svelte.d.ts +3 -31
  158. package/dist/components/drawer/drawer-title.svelte +44 -57
  159. package/dist/components/drawer/drawer-title.svelte.d.ts +3 -14
  160. package/dist/components/drawer/index.d.ts +1 -0
  161. package/dist/components/drawer/index.js +1 -0
  162. package/dist/components/drawer/types.d.ts +86 -0
  163. package/dist/components/drawer/types.js +1 -0
  164. package/dist/components/dropdown/dropdown-placeholder.svelte +1 -1
  165. package/dist/components/dropdown/dropdown-query.svelte +54 -53
  166. package/dist/components/dropdown/dropdown-query.svelte.d.ts +11 -10
  167. package/dist/components/dropdown/dropdown-root.svelte +59 -59
  168. package/dist/components/dropdown/dropdown-trigger.svelte +41 -52
  169. package/dist/components/dropdown/dropdown-trigger.svelte.d.ts +1 -8
  170. package/dist/components/dropdown/dropdown-value.svelte +60 -62
  171. package/dist/components/dropdown/index.d.ts +1 -0
  172. package/dist/components/dropdown/index.js +1 -0
  173. package/dist/components/dropdown/item/bond.svelte.d.ts +4 -0
  174. package/dist/components/dropdown/item/bond.svelte.js +9 -0
  175. package/dist/components/dropdown/item/dropdown-item.svelte +10 -6
  176. package/dist/components/dropdown/types.d.ts +37 -0
  177. package/dist/components/dropdown/types.js +1 -0
  178. package/dist/components/element/html-element.svelte.d.ts +2 -14
  179. package/dist/components/element/svg-element.svelte.d.ts +2 -14
  180. package/dist/components/element/types.d.ts +14 -7
  181. package/dist/components/form/field/bond.svelte.d.ts +8 -0
  182. package/dist/components/form/field/bond.svelte.js +13 -1
  183. package/dist/components/form/field/field-control.svelte +48 -58
  184. package/dist/components/form/field/field-control.svelte.d.ts +5 -19
  185. package/dist/components/form/field/field-label.svelte +24 -31
  186. package/dist/components/form/field/field-label.svelte.d.ts +1 -2
  187. package/dist/components/form/field/field-root.svelte +59 -88
  188. package/dist/components/form/field/field-root.svelte.d.ts +5 -20
  189. package/dist/components/form/form.stories.svelte +3 -3
  190. package/dist/components/form/index.d.ts +1 -0
  191. package/dist/components/form/index.js +1 -0
  192. package/dist/components/form/types.d.ts +76 -0
  193. package/dist/components/form/types.js +1 -0
  194. package/dist/components/icon/icon.svelte +44 -55
  195. package/dist/components/icon/icon.svelte.d.ts +4 -29
  196. package/dist/components/icon/types.d.ts +11 -7
  197. package/dist/components/input/atoms.d.ts +5 -1
  198. package/dist/components/input/atoms.js +5 -1
  199. package/dist/components/input/index.d.ts +1 -0
  200. package/dist/components/input/index.js +1 -0
  201. package/dist/components/input/{input-value.svelte → input-control.svelte} +14 -24
  202. package/dist/components/input/input-control.svelte.d.ts +26 -0
  203. package/dist/components/input/input-icon.svelte +1 -1
  204. package/dist/components/input/input-icon.svelte.d.ts +1 -1
  205. package/dist/components/input/input-placeholder.svelte +54 -56
  206. package/dist/components/input/input-placeholder.svelte.d.ts +2 -19
  207. package/dist/components/input/input-root.svelte +5 -12
  208. package/dist/components/input/input-root.svelte.d.ts +3 -20
  209. package/dist/components/input/input.stories.svelte +2 -2
  210. package/dist/components/input/types.d.ts +33 -0
  211. package/dist/components/input/types.js +1 -0
  212. package/dist/components/label/index.d.ts +1 -0
  213. package/dist/components/label/index.js +1 -0
  214. package/dist/components/label/label.svelte +25 -41
  215. package/dist/components/label/label.svelte.d.ts +3 -27
  216. package/dist/components/label/types.d.ts +11 -0
  217. package/dist/components/label/types.js +1 -0
  218. package/dist/components/layer/layer-inner.svelte.d.ts +2 -19
  219. package/dist/components/layer/layer-root.svelte.d.ts +2 -19
  220. package/dist/components/layer/types.d.ts +11 -0
  221. package/dist/components/layer/types.js +1 -0
  222. package/dist/components/link/types.d.ts +8 -0
  223. package/dist/components/link/types.js +1 -0
  224. package/dist/components/list/list-group.svelte +1 -1
  225. package/dist/components/list/list-item.svelte +1 -1
  226. package/dist/components/list/list-root.svelte +6 -1
  227. package/dist/components/list/list-title.svelte +1 -1
  228. package/dist/components/list/types.d.ts +8 -0
  229. package/dist/components/list/types.js +1 -0
  230. package/dist/components/menu/index.d.ts +1 -0
  231. package/dist/components/menu/index.js +1 -0
  232. package/dist/components/menu/menu-list.svelte +1 -1
  233. package/dist/components/menu/types.d.ts +15 -0
  234. package/dist/components/menu/types.js +1 -0
  235. package/dist/components/popover/bond.svelte.d.ts +2 -0
  236. package/dist/components/popover/bond.svelte.js +1 -1
  237. package/dist/components/popover/index.d.ts +1 -0
  238. package/dist/components/popover/index.js +1 -0
  239. package/dist/components/popover/popover-arrow.svelte +111 -117
  240. package/dist/components/popover/popover-arrow.svelte.d.ts +3 -20
  241. package/dist/components/popover/popover-content.svelte +139 -147
  242. package/dist/components/popover/popover-content.svelte.d.ts +3 -17
  243. package/dist/components/popover/popover-indicator.svelte +1 -1
  244. package/dist/components/popover/popover-root.svelte +4 -18
  245. package/dist/components/popover/popover-root.svelte.d.ts +1 -15
  246. package/dist/components/popover/popover-trigger.svelte +3 -12
  247. package/dist/components/popover/popover-trigger.svelte.d.ts +2 -8
  248. package/dist/components/popover/types.d.ts +61 -0
  249. package/dist/components/popover/types.js +1 -0
  250. package/dist/components/portal/active-portal.svelte +8 -2
  251. package/dist/components/portal/active-portal.svelte.d.ts +2 -2
  252. package/dist/components/portal/index.d.ts +1 -0
  253. package/dist/components/portal/index.js +1 -0
  254. package/dist/components/portal/portal-inner.svelte +1 -1
  255. package/dist/components/portal/portal-inner.svelte.d.ts +2 -19
  256. package/dist/components/portal/portal-root.svelte +83 -88
  257. package/dist/components/portal/portal-root.svelte.d.ts +2 -22
  258. package/dist/components/portal/teleport.svelte +50 -49
  259. package/dist/components/portal/teleport.svelte.d.ts +5 -23
  260. package/dist/components/portal/types.d.ts +39 -0
  261. package/dist/components/portal/types.js +1 -0
  262. package/dist/components/radio/radio-group.stories.svelte +4 -4
  263. package/dist/components/radio/radio.svelte +109 -109
  264. package/dist/components/radio/radio.svelte.d.ts +14 -36
  265. package/dist/components/root/root.css +24 -66
  266. package/dist/components/root/root.svelte +121 -121
  267. package/dist/components/root/types.d.ts +8 -0
  268. package/dist/components/root/types.js +1 -0
  269. package/dist/components/scrollable/index.d.ts +1 -0
  270. package/dist/components/scrollable/index.js +1 -0
  271. package/dist/components/scrollable/scrollable-container.svelte +82 -89
  272. package/dist/components/scrollable/scrollable-container.svelte.d.ts +2 -6
  273. package/dist/components/scrollable/scrollable-content.svelte +41 -51
  274. package/dist/components/scrollable/scrollable-content.svelte.d.ts +1 -6
  275. package/dist/components/scrollable/scrollable-root.svelte +100 -120
  276. package/dist/components/scrollable/scrollable-root.svelte.d.ts +3 -19
  277. package/dist/components/scrollable/scrollable-thumb.svelte +75 -86
  278. package/dist/components/scrollable/scrollable-thumb.svelte.d.ts +1 -7
  279. package/dist/components/scrollable/scrollable-track.svelte +59 -70
  280. package/dist/components/scrollable/scrollable-track.svelte.d.ts +1 -7
  281. package/dist/components/scrollable/types.d.ts +62 -0
  282. package/dist/components/scrollable/types.js +1 -0
  283. package/dist/components/sidebar/index.d.ts +1 -0
  284. package/dist/components/sidebar/index.js +1 -0
  285. package/dist/components/sidebar/sidebar-content.svelte +2 -16
  286. package/dist/components/sidebar/sidebar-content.svelte.d.ts +2 -9
  287. package/dist/components/sidebar/sidebar-root.svelte +4 -23
  288. package/dist/components/sidebar/sidebar-root.svelte.d.ts +2 -13
  289. package/dist/components/sidebar/types.d.ts +30 -0
  290. package/dist/components/sidebar/types.js +1 -0
  291. package/dist/components/stack/stack-item.svelte +5 -1
  292. package/dist/components/stack/stack-root.svelte +5 -1
  293. package/dist/components/stack/stack-root.svelte.d.ts +2 -19
  294. package/dist/components/stack/types.d.ts +12 -0
  295. package/dist/components/stack/types.js +1 -0
  296. package/dist/components/tabs/index.d.ts +1 -0
  297. package/dist/components/tabs/index.js +1 -0
  298. package/dist/components/tabs/tab/tab-body.svelte +52 -61
  299. package/dist/components/tabs/tab/tab-body.svelte.d.ts +2 -8
  300. package/dist/components/tabs/tab/tab-description.svelte +41 -50
  301. package/dist/components/tabs/tab/tab-description.svelte.d.ts +2 -8
  302. package/dist/components/tabs/tab/tab-header.svelte +71 -81
  303. package/dist/components/tabs/tab/tab-header.svelte.d.ts +2 -11
  304. package/dist/components/tabs/tab/tab-root.svelte +86 -81
  305. package/dist/components/tabs/tabs-body.svelte +1 -1
  306. package/dist/components/tabs/tabs-header.svelte +1 -1
  307. package/dist/components/tabs/tabs-root.svelte +1 -1
  308. package/dist/components/tabs/types.d.ts +55 -0
  309. package/dist/components/tabs/types.js +1 -0
  310. package/dist/components/textarea/index.d.ts +1 -0
  311. package/dist/components/textarea/index.js +1 -0
  312. package/dist/components/textarea/textarea-input.svelte +2 -1
  313. package/dist/components/textarea/types.d.ts +28 -0
  314. package/dist/components/textarea/types.js +1 -0
  315. package/dist/components/toast/index.d.ts +1 -0
  316. package/dist/components/toast/index.js +1 -0
  317. package/dist/components/toast/toast-description.svelte +38 -44
  318. package/dist/components/toast/toast-description.svelte.d.ts +8 -34
  319. package/dist/components/toast/toast-root.svelte +61 -74
  320. package/dist/components/toast/toast-root.svelte.d.ts +4 -43
  321. package/dist/components/toast/toast-title.svelte +35 -43
  322. package/dist/components/toast/toast-title.svelte.d.ts +2 -34
  323. package/dist/components/toast/types.d.ts +40 -0
  324. package/dist/components/toast/types.js +1 -0
  325. package/dist/components/tooltip/types.d.ts +13 -0
  326. package/dist/components/tooltip/types.js +1 -0
  327. package/dist/components/tree/index.d.ts +1 -0
  328. package/dist/components/tree/index.js +1 -0
  329. package/dist/components/tree/tree-body.svelte +39 -50
  330. package/dist/components/tree/tree-body.svelte.d.ts +2 -10
  331. package/dist/components/tree/tree-header.svelte +54 -66
  332. package/dist/components/tree/tree-header.svelte.d.ts +3 -29
  333. package/dist/components/tree/tree-indicator.svelte +40 -50
  334. package/dist/components/tree/tree-indicator.svelte.d.ts +3 -9
  335. package/dist/components/tree/tree-root.svelte +65 -80
  336. package/dist/components/tree/tree-root.svelte.d.ts +2 -12
  337. package/dist/components/tree/types.d.ts +59 -0
  338. package/dist/components/tree/types.js +1 -0
  339. package/dist/components/virtual/types.d.ts +23 -0
  340. package/dist/components/virtual/types.js +1 -0
  341. package/dist/components/virtual/virtual-root.svelte +239 -258
  342. package/dist/components/virtual/virtual-root.svelte.d.ts +1 -18
  343. package/dist/context/preset.svelte.d.ts +1 -1
  344. package/llm/composition.md +395 -395
  345. package/llm/crafting.md +838 -838
  346. package/llm/motion.md +970 -970
  347. package/llm/philosophy.md +23 -23
  348. package/llm/preset-variant-integration.md +516 -516
  349. package/llm/preset.md +383 -383
  350. package/llm/styling.md +216 -216
  351. package/llm/usage.md +46 -46
  352. package/llm/variants.md +712 -712
  353. package/package.json +437 -437
  354. package/dist/components/input/input-value.svelte.d.ts +0 -19
@@ -1,88 +1,83 @@
1
- <script module lang="ts">
2
- export type PortalOuterProps<
3
- E extends keyof HTMLElementTagNameMap = 'div',
4
- B extends Base = Base
5
- > = HtmlAtomProps<E, B> & {
6
- id: RootPortals | (string & {});
7
- children?: Snippet;
8
- };
9
- </script>
10
-
11
- <script lang="ts" generics="E extends keyof HTMLElementTagNameMap = 'div', B extends Base = Base">
12
- import type { Snippet } from 'svelte';
13
- import type { HTMLAttributes } from 'svelte/elements';
14
- import { PortalsBond, PortalBond, PortalState, type PortalStateProps } from '.';
15
- import { RootBond } from '../root';
16
- import type { RootPortals } from '../root/root.svelte';
17
- import {
18
- HtmlAtom,
19
- type ElementType,
20
- type HtmlAtomProps,
21
- type Base
22
- } from '../atom';
23
- import { defineProperty, defineState } from '../../utils';
24
-
25
- type Element = ElementType<E>;
26
-
27
- let {
28
- class: klass = '',
29
- id,
30
- factory = _factory,
31
- children = undefined,
32
- onmount = undefined,
33
- ondestroy = undefined,
34
- animate = undefined,
35
- enter = undefined,
36
- exit = undefined,
37
- initial = undefined,
38
- ...restProps
39
- }: PortalOuterProps<E, B> & HTMLAttributes<Element> = $props();
40
-
41
- const rootBond = RootBond.get();
42
- const portalsBond = PortalsBond.get();
43
-
44
- const bondProps = defineState<PortalStateProps>([defineProperty('id', () => id)]);
45
- const bond = factory(bondProps).share() as PortalBond;
46
-
47
- portalsBond?.state.set(id, bond);
48
-
49
- $effect(() => {
50
- if (rootBond) {
51
- rootBond.state.setPortal(id, bond);
52
- }
53
-
54
- return () => {
55
- portalsBond?.state.delete(id);
56
- bond.destroy();
57
- };
58
- });
59
-
60
- const rootProps = $derived({
61
- ...bond.root(),
62
- ...restProps
63
- });
64
-
65
- function _factory(props: typeof bondProps) {
66
- const portalState = new PortalState(() => props);
67
- return new PortalBond(portalState);
68
- }
69
-
70
- export function getBond() {
71
- return bond;
72
- }
73
- </script>
74
-
75
- <HtmlAtom
76
- {bond}
77
- preset="portal"
78
- class={['pointer-events-none', '$preset', klass]}
79
- enter={enter?.bind(bond.state)}
80
- exit={exit?.bind(bond.state)}
81
- initial={initial?.bind(bond.state)}
82
- animate={animate?.bind(bond.state)}
83
- onmount={onmount?.bind(bond.state)}
84
- ondestroy={ondestroy?.bind(bond.state)}
85
- {...rootProps}
86
- >
87
- {@render children?.()}
88
- </HtmlAtom>
1
+ <script module lang="ts">
2
+ export type { PortalOuterProps } from './types';
3
+ </script>
4
+
5
+ <script lang="ts" generics="E extends keyof HTMLElementTagNameMap = 'div', B extends Base = Base">
6
+ import type { Snippet } from 'svelte';
7
+ import type { HTMLAttributes } from 'svelte/elements';
8
+ import type { PortalOuterProps } from './types';
9
+ import { PortalsBond, PortalBond, PortalState, type PortalStateProps } from '.';
10
+ import { RootBond } from '../root';
11
+ import type { RootPortals } from '../root/root.svelte';
12
+ import {
13
+ HtmlAtom,
14
+ type ElementType,
15
+ type HtmlAtomProps,
16
+ type Base
17
+ } from '../atom';
18
+ import { defineProperty, defineState } from '../../utils';
19
+
20
+ type Element = ElementType<E>;
21
+
22
+ let {
23
+ class: klass = '',
24
+ id,
25
+ factory = _factory,
26
+ children = undefined,
27
+ onmount = undefined,
28
+ ondestroy = undefined,
29
+ animate = undefined,
30
+ enter = undefined,
31
+ exit = undefined,
32
+ initial = undefined,
33
+ ...restProps
34
+ }: PortalOuterProps<E, B> & HTMLAttributes<Element> = $props();
35
+
36
+ const rootBond = RootBond.get();
37
+ const portalsBond = PortalsBond.get();
38
+
39
+ const bondProps = defineState<PortalStateProps>([defineProperty('id', () => id)]);
40
+ const bond = factory(bondProps).share() as PortalBond;
41
+
42
+ portalsBond?.state.set(id, bond);
43
+
44
+ $effect(() => {
45
+ if (rootBond) {
46
+ rootBond.state.setPortal(id, bond);
47
+ }
48
+
49
+ return () => {
50
+ portalsBond?.state.delete(id);
51
+ bond.destroy();
52
+ };
53
+ });
54
+
55
+ const rootProps = $derived({
56
+ ...bond.root(),
57
+ ...restProps
58
+ });
59
+
60
+ function _factory(props: typeof bondProps) {
61
+ const portalState = new PortalState(() => props);
62
+ return new PortalBond(portalState);
63
+ }
64
+
65
+ export function getBond() {
66
+ return bond;
67
+ }
68
+ </script>
69
+
70
+ <HtmlAtom
71
+ {bond}
72
+ preset="portal"
73
+ class={['border-border pointer-events-none', '$preset', klass]}
74
+ enter={enter?.bind(bond.state)}
75
+ exit={exit?.bind(bond.state)}
76
+ initial={initial?.bind(bond.state)}
77
+ animate={animate?.bind(bond.state)}
78
+ onmount={onmount?.bind(bond.state)}
79
+ ondestroy={ondestroy?.bind(bond.state)}
80
+ {...rootProps}
81
+ >
82
+ {@render children?.()}
83
+ </HtmlAtom>
@@ -1,31 +1,11 @@
1
- export type PortalOuterProps<E extends keyof HTMLElementTagNameMap = 'div', B extends Base = Base> = HtmlAtomProps<E, B> & {
2
- id: RootPortals | (string & {});
3
- children?: Snippet;
4
- };
1
+ export type { PortalOuterProps } from './types';
5
2
  import type { Snippet } from 'svelte';
6
3
  import type { HTMLAttributes } from 'svelte/elements';
7
4
  import { PortalBond } from '.';
8
5
  import type { RootPortals } from '../root/root.svelte';
9
6
  import { type ElementType, type HtmlAtomProps, type Base } from '../atom';
10
7
  declare function $$render<E extends keyof HTMLElementTagNameMap = 'div', B extends Base = Base>(): {
11
- props: Record<string, unknown> & {
12
- [key: string]: unknown;
13
- class?: import("../../utils").ClassValue | import("../../utils").ClassValue[];
14
- as?: (string & {}) | E | undefined;
15
- global?: boolean;
16
- initial?: import("..").NodeFunction<E> | undefined;
17
- enter?: import("..").TransitionFunction<E> | undefined;
18
- exit?: import("..").TransitionFunction<E> | undefined;
19
- animate?: import("..").NodeFunction<E> | undefined;
20
- onmount?: import("..").NodeFunction<E> | undefined;
21
- ondestroy?: import("..").NodeFunction<E> | undefined;
22
- children?: Snippet;
23
- } & {
24
- bond?: import("../..").Bond;
25
- base?: B | undefined;
26
- preset?: import("../..").ModuleName | (string & {});
27
- variants?: import("../../utils").VariantDefinition<any> | ((bond: import("../..").Bond, variantProps: Record<string, any>) => Record<string, any>);
28
- } & {
8
+ props: HtmlAtomProps<E, B> & import("./types").PortalOuterExtendProps & {
29
9
  id: RootPortals | (string & {});
30
10
  children?: Snippet;
31
11
  } & HTMLAttributes<ElementType<E>>;
@@ -1,49 +1,50 @@
1
- <script module lang="ts">
2
- import { HtmlAtom, type HtmlAtomProps, type Base } from '../atom';
3
- import type { HtmlElementTagName, HtmlElementType } from '../element';
4
-
5
- export type TeleportProps<
6
- E extends HtmlElementTagName = 'div',
7
- B extends Base = Base
8
- > = HtmlAtomProps<E, B> & {
9
- portal?: string;
10
- };
11
- </script>
12
-
13
- <script lang="ts" generics="E extends HtmlElementTagName = 'div', B extends Base = Base">
14
- import type { HTMLAttributes } from 'svelte/elements';
15
- import { PortalsBond } from './portals';
16
- import { RootBond } from '../root/bond.svelte';
17
- import { port } from './utils';
18
-
19
- type Element = HtmlElementType<E>;
20
-
21
- let { portal, as, base, children, ...restProps }: TeleportProps<E, B> & HTMLAttributes<Element> =
22
- $props();
23
-
24
- const portalsBond = PortalsBond.get();
25
- const rootBond = RootBond.get();
26
-
27
- const portalBond = $derived(
28
- portalsBond?.state?.get(portal!) ?? rootBond?.state?.getPortal(portal!)
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 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 HtmlAtomProps, 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
+ import type { PortalBond } from '.';
14
+
15
+ type Element = HtmlElementType<E>;
16
+
17
+ let { portal, as, base, children, ...restProps }: TeleportProps<E, B> & HTMLAttributes<Element> =
18
+ $props();
19
+
20
+ const portalsBond = PortalsBond.get();
21
+ const rootBond = RootBond.get();
22
+
23
+ const portalBond = $derived.by(() => {
24
+ if (typeof portal === 'string') {
25
+ return portalsBond?.state?.get(portal!) ?? rootBond?.state?.getPortal(portal!);
26
+ }
27
+
28
+ return portal;
29
+ });
30
+
31
+ const targetElement = $derived(portalBond?.targetElement);
32
+
33
+ function _port(node: HTMLElement) {
34
+ const hidden = node.hidden;
35
+
36
+ node.hidden = true;
37
+
38
+ const unport = port(node, targetElement);
39
+
40
+ node.hidden = hidden;
41
+
42
+ return unport;
43
+ }
44
+ </script>
45
+
46
+ {#if targetElement && portal}
47
+ <HtmlAtom {@attach _port} as={as as E} {base} {...restProps}>
48
+ {@render children?.({ portal: portalBond })}
49
+ </HtmlAtom>
50
+ {/if}
@@ -1,29 +1,11 @@
1
+ export type { TeleportProps } from './types';
2
+ import type { HTMLAttributes } from 'svelte/elements';
1
3
  import { type HtmlAtomProps, type Base } from '../atom';
2
4
  import type { HtmlElementTagName, HtmlElementType } from '../element';
3
- export type TeleportProps<E extends HtmlElementTagName = 'div', B extends Base = Base> = HtmlAtomProps<E, B> & {
4
- portal?: string;
5
- };
6
- import type { HTMLAttributes } from 'svelte/elements';
5
+ import type { PortalBond } from '.';
7
6
  declare function $$render<E extends HtmlElementTagName = 'div', B extends Base = Base>(): {
8
- props: Record<string, unknown> & {
9
- [key: string]: unknown;
10
- class?: import("../..").ClassValue | import("../..").ClassValue[];
11
- as?: (string & {}) | E | undefined;
12
- global?: boolean;
13
- initial?: import("../element").NodeFunction<E> | undefined;
14
- enter?: import("../element").TransitionFunction<E> | undefined;
15
- exit?: import("../element").TransitionFunction<E> | undefined;
16
- animate?: import("../element").NodeFunction<E> | undefined;
17
- onmount?: import("../element").NodeFunction<E> | undefined;
18
- ondestroy?: import("../element").NodeFunction<E> | undefined;
19
- children?: import("svelte").Snippet;
20
- } & {
21
- bond?: import("../..").Bond;
22
- base?: B | undefined;
23
- preset?: import("../..").ModuleName | (string & {});
24
- variants?: import("../..").VariantDefinition<any> | ((bond: import("../..").Bond, variantProps: Record<string, any>) => Record<string, any>);
25
- } & {
26
- portal?: string;
7
+ props: HtmlAtomProps<E, B> & import("./types").TeleportExtendProps & {
8
+ portal?: string | PortalBond;
27
9
  } & HTMLAttributes<HtmlElementType<E>>;
28
10
  exports: {};
29
11
  bindings: "";
@@ -0,0 +1,39 @@
1
+ import type { Snippet } from 'svelte';
2
+ import type { HtmlAtomProps, Base } from '../atom';
3
+ import type { Factory } from '../../types';
4
+ import type { PortalBond } from './bond.svelte';
5
+ import type { RootPortals } from '../root/root.svelte';
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 {
11
+ }
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 & {
23
+ name?: string;
24
+ factory?: Factory<PortalBond>;
25
+ children?: Snippet<[{
26
+ portal: PortalBond;
27
+ }]>;
28
+ };
29
+ export type PortalOuterProps<E extends keyof HTMLElementTagNameMap = 'div', B extends Base = Base> = HtmlAtomProps<E, B> & PortalOuterExtendProps & {
30
+ id: RootPortals | (string & {});
31
+ children?: Snippet;
32
+ };
33
+ export type TeleportProps<E extends HtmlElementTagName = 'div', B extends Base = Base> = HtmlAtomProps<E, B> & TeleportExtendProps & {
34
+ portal?: string | PortalBond;
35
+ };
36
+ /**
37
+ * @deprecated Use PortalRootExtendProps instead
38
+ */
39
+ export type PortalExtendProps = PortalRootExtendProps;
@@ -0,0 +1 @@
1
+ export {};
@@ -20,22 +20,22 @@
20
20
  <div class="flex h-full w-full flex-col items-center justify-center">
21
21
  <RadioGroupComponent class="gap-4" name="choice" bind:value>
22
22
  <label class="flex items-center gap-2">
23
- <RadioComponent class="size-8 p-1.5" value="t1" />
23
+ <RadioComponent class="size-8" value="t1" />
24
24
  <div>Test 1</div>
25
25
  </label>
26
26
 
27
27
  <label class="flex items-center gap-2">
28
- <RadioComponent class="size-8 p-1.5" value="t2" />
28
+ <RadioComponent class="size-8" value="t2" />
29
29
  <div>Test 2</div>
30
30
  </label>
31
31
 
32
32
  <label class="flex items-center gap-2">
33
- <RadioComponent class="size-8 p-1.5" value="t3" />
33
+ <RadioComponent class="size-8" value="t3" />
34
34
  <div>Test 3</div>
35
35
  </label>
36
36
 
37
37
  <label class="flex items-center gap-2">
38
- <RadioComponent class="size-8 p-1.5" value="t4" />
38
+ <RadioComponent class="size-8" value="t4" />
39
39
  <div>Test 4</div>
40
40
  </label>
41
41
  </RadioGroupComponent>
@@ -1,109 +1,109 @@
1
- <script lang="ts" generics="B extends Base = Base">
2
- import { getRadioGroupContext } from './context';
3
- import { Stack } from '../stack';
4
- import { toClassValue } from '../../utils';
5
- import { HtmlAtom, type Base } from '../atom';
6
-
7
- const radioGroupContext = getRadioGroupContext();
8
-
9
- let {
10
- class: klass = '',
11
- value = $bindable(undefined),
12
- group = $bindable(),
13
- id = undefined,
14
- name = undefined,
15
- disabled = false,
16
- required = false,
17
- readonly = false,
18
- onchange = undefined,
19
- oninput = undefined,
20
- checkedContent = undefined,
21
- ...restProps
22
- } = $props();
23
-
24
- const _disabled = $derived(radioGroupContext?.disabled);
25
- const _required = $derived(radioGroupContext?.required);
26
- const _readonly = $derived(radioGroupContext?.readonly);
27
- const _name = $derived(radioGroupContext?.name);
28
-
29
- const proxy = {
30
- get current() {
31
- return radioGroupContext?.value ?? group;
32
- },
33
- set current(v) {
34
- group = v;
35
- if (radioGroupContext) {
36
- radioGroupContext.value = v;
37
- }
38
- }
39
- };
40
-
41
- const isDisabled = $derived(_disabled || disabled);
42
- const isRequired = $derived(_required || required);
43
- const isReadonly = $derived(_readonly || readonly);
44
- const isChecked = $derived(proxy.current === value);
45
-
46
- function handleChange(ev: Event) {
47
- const checked = (ev.currentTarget as HTMLInputElement)?.checked ?? false;
48
-
49
- onchange?.(ev, {
50
- checked,
51
- value: checked,
52
- type: 'boolean'
53
- });
54
- }
55
-
56
- function handleInput(ev: Event) {
57
- const currentTarget = ev.currentTarget as HTMLInputElement;
58
- const _checked = currentTarget?.checked ?? false;
59
-
60
- oninput?.(ev, {
61
- checked: _checked,
62
- value: _checked,
63
- type: 'boolean'
64
- });
65
-
66
- if (ev.defaultPrevented) {
67
- return;
68
- }
69
- }
70
- </script>
71
-
72
- <Stack.Root
73
- preset="radio"
74
- class={[
75
- 'text-foreground box-border inline-flex aspect-square size-4 max-w-fit cursor-pointer place-items-center rounded-full border p-[3px]',
76
- isDisabled && 'pointer-events-none opacity-50',
77
- '$preset',
78
- toClassValue.apply(null, [klass, {}])
79
- ]}
80
- as="label"
81
- {...restProps}
82
- >
83
- <Stack.Item class="pointer-events-none flex size-full">
84
- <input
85
- bind:group={proxy.current}
86
- {id}
87
- {value}
88
- class="pointer-events-auto size-0 opacity-0"
89
- type="radio"
90
- name={_name ?? name}
91
- disabled={isDisabled}
92
- required={isRequired}
93
- readonly={isReadonly}
94
- onchange={handleChange}
95
- oninput={handleInput}
96
- />
97
- </Stack.Item>
98
-
99
- {#if isChecked}
100
- {#if checkedContent}
101
- <HtmlAtom
102
- class="rounded-inherit pointer-events-none size-full bg-current"
103
- base={checkedContent}
104
- />
105
- {:else}
106
- <Stack.Item class="rounded-inherit pointer-events-none size-full bg-current"></Stack.Item>
107
- {/if}
108
- {/if}
109
- </Stack.Root>
1
+ <script lang="ts">
2
+ import { getRadioGroupContext } from './context';
3
+ import { Stack } from '../stack';
4
+ import { toClassValue } from '../../utils';
5
+ import { HtmlAtom, type Base } from '../atom';
6
+
7
+ const radioGroupContext = getRadioGroupContext();
8
+
9
+ let {
10
+ class: klass = '',
11
+ value = $bindable(undefined),
12
+ group = $bindable(),
13
+ id = undefined,
14
+ name = undefined,
15
+ disabled = false,
16
+ required = false,
17
+ readonly = false,
18
+ onchange = undefined,
19
+ oninput = undefined,
20
+ checkedContent = undefined,
21
+ ...restProps
22
+ } = $props();
23
+
24
+ const _disabled = $derived(radioGroupContext?.disabled);
25
+ const _required = $derived(radioGroupContext?.required);
26
+ const _readonly = $derived(radioGroupContext?.readonly);
27
+ const _name = $derived(radioGroupContext?.name);
28
+
29
+ const proxy = {
30
+ get current() {
31
+ return radioGroupContext?.value ?? group;
32
+ },
33
+ set current(v) {
34
+ group = v;
35
+ if (radioGroupContext) {
36
+ radioGroupContext.value = v;
37
+ }
38
+ }
39
+ };
40
+
41
+ const isDisabled = $derived(_disabled || disabled);
42
+ const isRequired = $derived(_required || required);
43
+ const isReadonly = $derived(_readonly || readonly);
44
+ const isChecked = $derived(proxy.current === value);
45
+
46
+ function handleChange(ev: Event) {
47
+ const checked = (ev.currentTarget as HTMLInputElement)?.checked ?? false;
48
+
49
+ onchange?.(ev, {
50
+ checked,
51
+ value: checked,
52
+ type: 'boolean'
53
+ });
54
+ }
55
+
56
+ function handleInput(ev: Event) {
57
+ const currentTarget = ev.currentTarget as HTMLInputElement;
58
+ const _checked = currentTarget?.checked ?? false;
59
+
60
+ oninput?.(ev, {
61
+ checked: _checked,
62
+ value: _checked,
63
+ type: 'boolean'
64
+ });
65
+
66
+ if (ev.defaultPrevented) {
67
+ return;
68
+ }
69
+ }
70
+ </script>
71
+
72
+ <Stack.Root
73
+ preset="radio"
74
+ class={[
75
+ 'text-foreground bg-input box-border inline-flex aspect-square size-4 max-w-fit cursor-pointer place-items-center rounded-full border p-0',
76
+ isDisabled && 'pointer-events-none opacity-50',
77
+ '$preset',
78
+ toClassValue.apply(null, [klass, {}])
79
+ ]}
80
+ as="label"
81
+ {...restProps}
82
+ >
83
+ <Stack.Item class="pointer-events-none flex size-full">
84
+ <input
85
+ bind:group={proxy.current}
86
+ {id}
87
+ {value}
88
+ class="pointer-events-auto size-0 opacity-0"
89
+ type="radio"
90
+ name={_name ?? name}
91
+ disabled={isDisabled}
92
+ required={isRequired}
93
+ readonly={isReadonly}
94
+ onchange={handleChange}
95
+ oninput={handleInput}
96
+ />
97
+ </Stack.Item>
98
+
99
+ {#if isChecked}
100
+ {#if checkedContent}
101
+ <HtmlAtom
102
+ class="rounded-inherit pointer-events-none size-1/2 bg-current"
103
+ base={checkedContent}
104
+ />
105
+ {:else}
106
+ <Stack.Item class="rounded-inherit pointer-events-none size-1/2 bg-current"></Stack.Item>
107
+ {/if}
108
+ {/if}
109
+ </Stack.Root>