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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (695) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +80 -197
  3. package/dist/attachments/clickout.svelte.d.ts +4 -1
  4. package/dist/attachments/clickout.svelte.js +2 -1
  5. package/dist/components/accordion/accordion-root.svelte +61 -66
  6. package/dist/components/accordion/accordion-root.svelte.d.ts +2 -2
  7. package/dist/components/accordion/bond.svelte.d.ts +11 -10
  8. package/dist/components/accordion/bond.svelte.js +26 -16
  9. package/dist/components/accordion/item/accordion-item-body.svelte +8 -9
  10. package/dist/components/accordion/item/accordion-item-header.svelte +1 -14
  11. package/dist/components/accordion/item/accordion-item-indicator.svelte +1 -13
  12. package/dist/components/accordion/item/accordion-item-root.svelte +3 -14
  13. package/dist/components/accordion/item/bond.svelte.d.ts +32 -18
  14. package/dist/components/accordion/item/bond.svelte.js +88 -64
  15. package/dist/components/accordion/item/types.d.ts +4 -24
  16. package/dist/components/accordion/types.d.ts +5 -9
  17. package/dist/components/alert/alert-actions.svelte +0 -12
  18. package/dist/components/alert/alert-close-button.svelte +0 -12
  19. package/dist/components/alert/alert-content.svelte +0 -12
  20. package/dist/components/alert/alert-description.svelte +0 -12
  21. package/dist/components/alert/alert-icon.svelte +0 -12
  22. package/dist/components/alert/alert-root.svelte +56 -68
  23. package/dist/components/alert/alert-title.svelte +0 -12
  24. package/dist/components/alert/types.d.ts +12 -46
  25. package/dist/components/atom/html-atom.svelte +98 -95
  26. package/dist/components/atom/html-atom.svelte.d.ts +1 -2
  27. package/dist/components/atom/index.d.ts +1 -0
  28. package/dist/components/atom/index.js +1 -0
  29. package/dist/components/atom/types.d.ts +61 -10
  30. package/dist/components/atom/types.js +1 -1
  31. package/dist/components/atom/utils/base.d.ts +6 -0
  32. package/dist/components/atom/utils/base.js +8 -0
  33. package/dist/components/atom/utils/cache.d.ts +17 -0
  34. package/dist/components/atom/utils/cache.js +134 -0
  35. package/dist/components/atom/utils/classes.d.ts +14 -0
  36. package/dist/components/atom/utils/classes.js +42 -0
  37. package/dist/components/atom/utils/constants.d.ts +9 -0
  38. package/dist/components/atom/utils/constants.js +9 -0
  39. package/dist/components/atom/utils/index.d.ts +6 -0
  40. package/dist/components/atom/utils/index.js +5 -0
  41. package/dist/components/atom/utils/preset.d.ts +22 -0
  42. package/dist/components/atom/utils/preset.js +94 -0
  43. package/dist/components/atom/utils/props.d.ts +13 -0
  44. package/dist/components/atom/utils/props.js +60 -0
  45. package/dist/components/atom/utils/variants.d.ts +31 -0
  46. package/dist/components/atom/utils/variants.js +270 -0
  47. package/dist/components/avatar/types.d.ts +1 -6
  48. package/dist/components/badge/index.d.ts +1 -0
  49. package/dist/components/badge/types.d.ts +4 -7
  50. package/dist/components/button/button.svelte +31 -31
  51. package/dist/components/button/types.d.ts +9 -6
  52. package/dist/components/calendar/calendar-body.svelte +0 -1
  53. package/dist/components/calendar/calendar-day.svelte +99 -99
  54. package/dist/components/calendar/calendar-header.svelte +1 -1
  55. package/dist/components/calendar/calendar-root.svelte +206 -206
  56. package/dist/components/calendar/calendar-root.svelte.d.ts +1 -1
  57. package/dist/components/calendar/calendar-week-day.svelte +33 -33
  58. package/dist/components/calendar/types.d.ts +7 -10
  59. package/dist/components/card/card-body.svelte +0 -12
  60. package/dist/components/card/card-description.svelte +0 -12
  61. package/dist/components/card/card-footer.svelte +0 -12
  62. package/dist/components/card/card-header.svelte +0 -12
  63. package/dist/components/card/card-media.svelte +0 -12
  64. package/dist/components/card/card-root.svelte +80 -92
  65. package/dist/components/card/card-subtitle.svelte +0 -12
  66. package/dist/components/card/card-title.svelte +0 -12
  67. package/dist/components/card/types.d.ts +12 -51
  68. package/dist/components/checkbox/checkbox.svelte +65 -55
  69. package/dist/components/checkbox/checkbox.svelte.d.ts +1 -3
  70. package/dist/components/checkbox/index.d.ts +2 -0
  71. package/dist/components/checkbox/index.js +1 -0
  72. package/dist/components/checkbox/motion.d.ts +17 -0
  73. package/dist/components/checkbox/motion.js +34 -0
  74. package/dist/components/checkbox/types.d.ts +14 -7
  75. package/dist/components/chip/chip-close-button.svelte +33 -0
  76. package/dist/components/chip/chip-close-button.svelte.d.ts +4 -0
  77. package/dist/components/chip/chip.svelte +34 -41
  78. package/dist/components/chip/chip.svelte.d.ts +1 -3
  79. package/dist/components/chip/index.d.ts +2 -0
  80. package/dist/components/chip/index.js +2 -0
  81. package/dist/components/chip/types.d.ts +15 -8
  82. package/dist/components/collapsible/bond.svelte.d.ts +34 -24
  83. package/dist/components/collapsible/bond.svelte.js +73 -60
  84. package/dist/components/collapsible/collapsible-body.svelte +6 -13
  85. package/dist/components/collapsible/collapsible-header.svelte +1 -13
  86. package/dist/components/collapsible/collapsible-indicator.svelte +1 -13
  87. package/dist/components/collapsible/collapsible-root.svelte +55 -67
  88. package/dist/components/collapsible/types.d.ts +10 -22
  89. package/dist/components/combobox/bond.svelte.d.ts +13 -8
  90. package/dist/components/combobox/bond.svelte.js +30 -20
  91. package/dist/components/combobox/combobox-control.svelte +54 -66
  92. package/dist/components/combobox/combobox-item.svelte +50 -62
  93. package/dist/components/combobox/combobox-item.svelte.d.ts +0 -6
  94. package/dist/components/combobox/combobox-root.svelte +65 -65
  95. package/dist/components/combobox/combobox-root.svelte.d.ts +2 -2
  96. package/dist/components/combobox/combobox-selections.svelte +17 -17
  97. package/dist/components/combobox/combobox-trigger.svelte +34 -34
  98. package/dist/components/combobox/index.d.ts +1 -1
  99. package/dist/components/combobox/types.d.ts +6 -10
  100. package/dist/components/container/container.svelte +0 -12
  101. package/dist/components/container/index.d.ts +1 -0
  102. package/dist/components/container/types.d.ts +6 -12
  103. package/dist/components/context-menu/atoms.d.ts +4 -0
  104. package/dist/components/context-menu/atoms.js +4 -0
  105. package/dist/components/context-menu/context-menu-content.svelte +52 -0
  106. package/dist/components/context-menu/context-menu-content.svelte.d.ts +27 -0
  107. package/dist/components/context-menu/context-menu-root.svelte +8 -0
  108. package/dist/components/context-menu/context-menu-root.svelte.d.ts +4 -0
  109. package/dist/components/context-menu/context-menu-trigger.svelte +59 -0
  110. package/dist/components/context-menu/context-menu-trigger.svelte.d.ts +27 -0
  111. package/dist/components/context-menu/index.d.ts +2 -0
  112. package/dist/components/context-menu/index.js +2 -0
  113. package/dist/components/{contextmenu → context-menu}/types.d.ts +1 -6
  114. package/dist/components/datagrid/atoms.d.ts +11 -5
  115. package/dist/components/datagrid/atoms.js +11 -5
  116. package/dist/components/datagrid/bond.svelte.d.ts +29 -14
  117. package/dist/components/datagrid/bond.svelte.js +45 -33
  118. package/dist/components/datagrid/cell/bond.svelte.d.ts +29 -0
  119. package/dist/components/datagrid/cell/bond.svelte.js +42 -0
  120. package/dist/components/datagrid/cell/datagrid-cell.svelte +49 -0
  121. package/dist/components/datagrid/cell/datagrid-cell.svelte.d.ts +26 -0
  122. package/dist/components/datagrid/cell/index.d.ts +4 -0
  123. package/dist/components/datagrid/cell/index.js +4 -0
  124. package/dist/components/datagrid/col/index.d.ts +4 -0
  125. package/dist/components/datagrid/col/index.js +4 -0
  126. package/dist/components/datagrid/column/bond.svelte.d.ts +45 -0
  127. package/dist/components/datagrid/column/bond.svelte.js +76 -0
  128. package/dist/components/datagrid/{th/datagrid-th-sort-icon.svelte → column/datagrid-column-sort-icon.svelte} +6 -15
  129. package/dist/components/datagrid/{th/datagrid-th.svelte.d.ts → column/datagrid-column-sort-icon.svelte.d.ts} +6 -5
  130. package/dist/components/datagrid/{th/datagrid-th.svelte → column/datagrid-column.svelte} +27 -36
  131. package/dist/components/datagrid/column/datagrid-column.svelte.d.ts +26 -0
  132. package/dist/components/datagrid/column/index.d.ts +4 -0
  133. package/dist/components/datagrid/column/index.js +4 -0
  134. package/dist/components/datagrid/context.d.ts +2 -29
  135. package/dist/components/datagrid/context.js +4 -18
  136. package/dist/components/datagrid/datagrid-body.svelte +24 -21
  137. package/dist/components/datagrid/datagrid-body.svelte.d.ts +8 -15
  138. package/dist/components/datagrid/datagrid-checkbox.svelte +60 -63
  139. package/dist/components/datagrid/datagrid-checkbox.svelte.d.ts +1 -3
  140. package/dist/components/datagrid/datagrid-footer.svelte +27 -34
  141. package/dist/components/datagrid/datagrid-footer.svelte.d.ts +12 -12
  142. package/dist/components/datagrid/datagrid-header.svelte +10 -17
  143. package/dist/components/datagrid/datagrid-header.svelte.d.ts +12 -12
  144. package/dist/components/datagrid/datagrid-root.svelte +49 -59
  145. package/dist/components/datagrid/datagrid-root.svelte.d.ts +15 -14
  146. package/dist/components/datagrid/row/bond.svelte.d.ts +42 -0
  147. package/dist/components/datagrid/row/bond.svelte.js +72 -0
  148. package/dist/components/datagrid/{tr/datagrid-tr.css → row/datagrid-row.css} +1 -1
  149. package/dist/components/datagrid/row/datagrid-row.svelte +64 -0
  150. package/dist/components/datagrid/row/datagrid-row.svelte.d.ts +27 -0
  151. package/dist/components/datagrid/row/index.d.ts +4 -0
  152. package/dist/components/datagrid/row/index.js +4 -0
  153. package/dist/components/datagrid/types.d.ts +56 -116
  154. package/dist/components/date-picker/bond.svelte.d.ts +0 -12
  155. package/dist/components/date-picker/date-picker-calendar.svelte +58 -58
  156. package/dist/components/date-picker/date-picker-months.svelte +1 -1
  157. package/dist/components/date-picker/date-picker-root.svelte +96 -96
  158. package/dist/components/date-picker/date-picker-root.svelte.d.ts +1 -1
  159. package/dist/components/date-picker/date-picker-years.svelte +1 -1
  160. package/dist/components/date-picker/types.d.ts +6 -3
  161. package/dist/components/dialog/atoms.d.ts +1 -1
  162. package/dist/components/dialog/atoms.js +1 -1
  163. package/dist/components/dialog/bond.svelte.d.ts +66 -28
  164. package/dist/components/dialog/bond.svelte.js +136 -117
  165. package/dist/components/dialog/dialog-body.svelte +1 -13
  166. package/dist/components/dialog/dialog-close-button.svelte +0 -12
  167. package/dist/components/dialog/dialog-close.svelte +46 -0
  168. package/dist/components/dialog/dialog-close.svelte.d.ts +26 -0
  169. package/dist/components/dialog/dialog-content.svelte +6 -14
  170. package/dist/components/dialog/dialog-description.svelte +1 -13
  171. package/dist/components/dialog/dialog-footer.svelte +1 -13
  172. package/dist/components/dialog/dialog-header.svelte +1 -13
  173. package/dist/components/dialog/dialog-root.svelte +102 -82
  174. package/dist/components/dialog/dialog-title.svelte +1 -13
  175. package/dist/components/dialog/index.d.ts +3 -0
  176. package/dist/components/dialog/index.js +3 -0
  177. package/dist/components/dialog/motion.svelte.js +68 -26
  178. package/dist/components/dialog/types.d.ts +16 -51
  179. package/dist/components/divider/types.d.ts +1 -6
  180. package/dist/components/drawer/bond.svelte.d.ts +61 -36
  181. package/dist/components/drawer/bond.svelte.js +149 -121
  182. package/dist/components/drawer/drawer-backdrop.svelte +2 -13
  183. package/dist/components/drawer/drawer-body.svelte +1 -13
  184. package/dist/components/drawer/drawer-content.svelte +8 -15
  185. package/dist/components/drawer/drawer-content.svelte.d.ts +4 -1
  186. package/dist/components/drawer/drawer-description.svelte +1 -13
  187. package/dist/components/drawer/drawer-footer.svelte +1 -13
  188. package/dist/components/drawer/drawer-header.svelte +1 -13
  189. package/dist/components/drawer/drawer-root.svelte +97 -87
  190. package/dist/components/drawer/drawer-title.svelte +1 -13
  191. package/dist/components/drawer/motion.d.ts +59 -5
  192. package/dist/components/drawer/motion.js +133 -15
  193. package/dist/components/drawer/types.d.ts +15 -24
  194. package/dist/components/dropdown/atoms.d.ts +4 -8
  195. package/dist/components/dropdown/atoms.js +4 -9
  196. package/dist/components/dropdown/bond.svelte.d.ts +4 -53
  197. package/dist/components/dropdown/bond.svelte.js +4 -89
  198. package/dist/components/dropdown/dropdown-placeholder.svelte +0 -6
  199. package/dist/components/dropdown/dropdown-placeholder.svelte.d.ts +0 -6
  200. package/dist/components/dropdown/dropdown-query.svelte +31 -43
  201. package/dist/components/dropdown/dropdown-root.svelte +79 -79
  202. package/dist/components/dropdown/dropdown-root.svelte.d.ts +4 -4
  203. package/dist/components/dropdown/dropdown-selection.svelte +55 -55
  204. package/dist/components/dropdown/dropdown-selections.svelte +70 -70
  205. package/dist/components/dropdown/dropdown-trigger.svelte +30 -30
  206. package/dist/components/dropdown/index.d.ts +43 -7
  207. package/dist/components/dropdown/index.js +34 -6
  208. package/dist/components/dropdown/item/bond.svelte.d.ts +36 -0
  209. package/dist/components/dropdown/item/bond.svelte.js +85 -0
  210. package/dist/components/dropdown/item/controller.svelte.d.ts +1 -1
  211. package/dist/components/dropdown/item/dropdown-item.svelte +81 -107
  212. package/dist/components/dropdown/item/index.d.ts +11 -3
  213. package/dist/components/dropdown/item/index.js +10 -3
  214. package/dist/components/dropdown/types.d.ts +2 -67
  215. package/dist/components/dropdown-menu/atoms.d.ts +9 -0
  216. package/dist/components/dropdown-menu/atoms.js +9 -0
  217. package/dist/components/dropdown-menu/attachments.svelte.d.ts +2 -0
  218. package/dist/components/dropdown-menu/attachments.svelte.js +5 -0
  219. package/dist/components/dropdown-menu/bond.svelte.d.ts +68 -0
  220. package/dist/components/dropdown-menu/bond.svelte.js +173 -0
  221. package/dist/components/dropdown-menu/dropdown-menu-content.svelte +28 -0
  222. package/dist/components/dropdown-menu/dropdown-menu-content.svelte.d.ts +31 -0
  223. package/dist/components/dropdown-menu/dropdown-menu-root.svelte +14 -0
  224. package/dist/components/dropdown-menu/dropdown-menu-root.svelte.d.ts +4 -0
  225. package/dist/components/dropdown-menu/index.d.ts +7 -0
  226. package/dist/components/dropdown-menu/index.js +6 -0
  227. package/dist/components/dropdown-menu/item/bond.svelte.d.ts +26 -0
  228. package/dist/components/dropdown-menu/item/bond.svelte.js +54 -0
  229. package/dist/components/dropdown-menu/item/controller.svelte.d.ts +39 -0
  230. package/dist/components/dropdown-menu/item/controller.svelte.js +73 -0
  231. package/dist/components/dropdown-menu/item/dropdown-menu-item.svelte +75 -0
  232. package/dist/components/dropdown-menu/item/dropdown-menu-item.svelte.d.ts +32 -0
  233. package/dist/components/dropdown-menu/item/index.d.ts +3 -0
  234. package/dist/components/dropdown-menu/item/index.js +3 -0
  235. package/dist/components/dropdown-menu/item/types.d.ts +57 -0
  236. package/dist/components/dropdown-menu/item/types.js +1 -0
  237. package/dist/components/dropdown-menu/types.d.ts +3 -0
  238. package/dist/components/dropdown-menu/types.js +1 -0
  239. package/dist/components/element/html-element.svelte +114 -85
  240. package/dist/components/element/html-element.svelte.d.ts +1 -1
  241. package/dist/components/element/svg-element.svelte +88 -88
  242. package/dist/components/element/types.d.ts +32 -20
  243. package/dist/components/form/field/atoms.d.ts +1 -1
  244. package/dist/components/form/field/atoms.js +1 -1
  245. package/dist/components/form/field/bond.svelte.d.ts +29 -17
  246. package/dist/components/form/field/bond.svelte.js +73 -55
  247. package/dist/components/form/field/field-control.svelte +36 -12
  248. package/dist/components/form/field/field-control.svelte.d.ts +12 -22
  249. package/dist/components/form/field/field-helper-text.svelte +23 -0
  250. package/dist/components/form/field/field-helper-text.svelte.d.ts +26 -0
  251. package/dist/components/form/field/field-label.svelte +6 -8
  252. package/dist/components/form/field/field-label.svelte.d.ts +2 -2
  253. package/dist/components/form/field/field-root.svelte +18 -8
  254. package/dist/components/form/form-root.svelte +66 -66
  255. package/dist/components/form/types.d.ts +34 -58
  256. package/dist/components/icon/icon.svelte +40 -40
  257. package/dist/components/icon/types.d.ts +4 -7
  258. package/dist/components/image/index.d.ts +2 -0
  259. package/dist/components/image/index.js +2 -1
  260. package/dist/components/index.d.ts +13 -0
  261. package/dist/components/index.js +13 -0
  262. package/dist/components/input/atoms.d.ts +19 -1
  263. package/dist/components/input/atoms.js +19 -1
  264. package/dist/components/input/color/color-control.svelte +197 -0
  265. package/dist/components/input/color/color-control.svelte.d.ts +4 -0
  266. package/dist/components/input/color/index.d.ts +5 -0
  267. package/dist/components/input/color/index.js +5 -0
  268. package/dist/components/input/color/segment.svelte +240 -0
  269. package/dist/components/input/color/segment.svelte.d.ts +6 -0
  270. package/dist/components/input/color/shared.d.ts +23 -0
  271. package/dist/components/input/color/shared.js +349 -0
  272. package/dist/components/input/color/swatch.svelte +23 -0
  273. package/dist/components/input/color/swatch.svelte.d.ts +8 -0
  274. package/dist/components/input/color/types.d.ts +56 -0
  275. package/dist/components/input/color/types.js +2 -0
  276. package/dist/components/input/index.d.ts +1 -0
  277. package/dist/components/input/index.js +1 -0
  278. package/dist/components/input/input-control.svelte +3 -1
  279. package/dist/components/input/input-currency-control.svelte +189 -0
  280. package/dist/components/input/input-currency-control.svelte.d.ts +4 -0
  281. package/dist/components/input/input-email-control.svelte +128 -0
  282. package/dist/components/input/input-email-control.svelte.d.ts +4 -0
  283. package/dist/components/input/input-file-control.svelte +115 -0
  284. package/dist/components/input/input-file-control.svelte.d.ts +4 -0
  285. package/dist/components/input/input-icon.svelte +3 -3
  286. package/dist/components/input/input-icon.svelte.d.ts +1 -1
  287. package/dist/components/input/input-location.svelte +335 -0
  288. package/dist/components/input/input-location.svelte.d.ts +4 -0
  289. package/dist/components/input/input-number-control.svelte +107 -0
  290. package/dist/components/input/input-number-control.svelte.d.ts +6 -0
  291. package/dist/components/input/input-otp-control.svelte +206 -0
  292. package/dist/components/input/input-otp-control.svelte.d.ts +4 -0
  293. package/dist/components/input/input-password-control.svelte +91 -0
  294. package/dist/components/input/input-password-control.svelte.d.ts +3 -0
  295. package/dist/components/input/input-phone-control.svelte +394 -0
  296. package/dist/components/input/input-phone-control.svelte.d.ts +4 -0
  297. package/dist/components/input/input-placeholder.svelte.d.ts +1 -1
  298. package/dist/components/input/input-root.svelte +74 -74
  299. package/dist/components/input/input-text-control.svelte +64 -0
  300. package/dist/components/input/input-text-control.svelte.d.ts +4 -0
  301. package/dist/components/input/input-url-control.svelte +218 -0
  302. package/dist/components/input/input-url-control.svelte.d.ts +4 -0
  303. package/dist/components/input/time/datetime-control.svelte +281 -0
  304. package/dist/components/input/time/datetime-control.svelte.d.ts +5 -0
  305. package/dist/components/input/time/index.d.ts +6 -0
  306. package/dist/components/input/time/index.js +6 -0
  307. package/dist/components/input/time/segment.svelte +143 -0
  308. package/dist/components/input/time/segment.svelte.d.ts +6 -0
  309. package/dist/components/input/time/shared.d.ts +29 -0
  310. package/dist/components/input/time/shared.js +150 -0
  311. package/dist/components/input/time/time-control.svelte +237 -0
  312. package/dist/components/input/time/time-control.svelte.d.ts +3 -0
  313. package/dist/components/input/time/types.d.ts +34 -0
  314. package/dist/components/input/time/types.js +4 -0
  315. package/dist/components/input/types.d.ts +355 -17
  316. package/dist/components/kbd/index.d.ts +3 -0
  317. package/dist/components/kbd/index.js +3 -0
  318. package/dist/components/kbd/kbd.svelte +19 -0
  319. package/dist/components/kbd/kbd.svelte.d.ts +4 -0
  320. package/dist/components/kbd/shortcut.svelte +38 -0
  321. package/dist/components/kbd/shortcut.svelte.d.ts +4 -0
  322. package/dist/components/kbd/types.d.ts +20 -0
  323. package/dist/components/kbd/types.js +1 -0
  324. package/dist/components/label/types.d.ts +4 -7
  325. package/dist/components/layer/bond.svelte.d.ts +2 -2
  326. package/dist/components/layer/bond.svelte.js +1 -1
  327. package/dist/components/layer/index.d.ts +1 -0
  328. package/dist/components/layer/layer-inner.svelte +0 -12
  329. package/dist/components/layer/layer-inner.svelte.d.ts +1 -1
  330. package/dist/components/layer/layer-root.svelte +53 -65
  331. package/dist/components/layer/layer-root.svelte.d.ts +1 -1
  332. package/dist/components/layer/types.d.ts +6 -6
  333. package/dist/components/lazy/index.d.ts +1 -0
  334. package/dist/components/lazy/lazy.svelte +29 -29
  335. package/dist/components/lazy/types.d.ts +4 -4
  336. package/dist/components/link/index.d.ts +1 -0
  337. package/dist/components/link/types.d.ts +5 -6
  338. package/dist/components/list/index.d.ts +1 -0
  339. package/dist/components/list/types.d.ts +5 -6
  340. package/dist/components/menu/atoms.d.ts +2 -7
  341. package/dist/components/menu/atoms.js +2 -7
  342. package/dist/components/menu/bond.svelte.d.ts +9 -23
  343. package/dist/components/menu/bond.svelte.js +6 -0
  344. package/dist/components/menu/index.d.ts +40 -4
  345. package/dist/components/menu/index.js +26 -3
  346. package/dist/components/menu/item/bond.svelte.d.ts +27 -0
  347. package/dist/components/menu/item/bond.svelte.js +54 -0
  348. package/dist/components/menu/item/controller.svelte.d.ts +1 -1
  349. package/dist/components/menu/item/index.d.ts +5 -2
  350. package/dist/components/menu/item/index.js +4 -2
  351. package/dist/components/menu/item/menu-item.svelte +87 -103
  352. package/dist/components/menu/item/menu-item.svelte.d.ts +15 -14
  353. package/dist/components/menu/item/types.d.ts +5 -12
  354. package/dist/components/menu/menu-content.svelte +28 -40
  355. package/dist/components/menu/menu-content.svelte.d.ts +0 -6
  356. package/dist/components/menu/menu-root.svelte +15 -15
  357. package/dist/components/menu/menu-root.svelte.d.ts +1 -1
  358. package/dist/components/menu/types.d.ts +2 -6
  359. package/dist/components/popover/bond.svelte.d.ts +95 -39
  360. package/dist/components/popover/bond.svelte.js +212 -197
  361. package/dist/components/popover/index.d.ts +4 -1
  362. package/dist/components/popover/index.js +4 -1
  363. package/dist/components/popover/motion.svelte.d.ts +34 -0
  364. package/dist/components/popover/motion.svelte.js +135 -0
  365. package/dist/components/popover/popover-arrow.svelte +99 -110
  366. package/dist/components/popover/popover-arrow.svelte.d.ts +1 -2
  367. package/dist/components/popover/popover-content.svelte +86 -123
  368. package/dist/components/popover/popover-indicator.svelte +2 -13
  369. package/dist/components/popover/popover-indicator.svelte.d.ts +0 -6
  370. package/dist/components/popover/popover-overlay.svelte +98 -0
  371. package/dist/components/popover/popover-overlay.svelte.d.ts +4 -0
  372. package/dist/components/popover/popover-root.svelte +87 -49
  373. package/dist/components/popover/popover-root.svelte.d.ts +2 -1
  374. package/dist/components/popover/popover-trigger.svelte +44 -35
  375. package/dist/components/popover/strategies/floating.svelte +109 -0
  376. package/dist/components/popover/strategies/floating.svelte.d.ts +3 -0
  377. package/dist/components/popover/strategies/index.d.ts +1 -0
  378. package/dist/components/popover/strategies/index.js +1 -0
  379. package/dist/components/popover/strategy-types.d.ts +40 -0
  380. package/dist/components/popover/strategy-types.js +1 -0
  381. package/dist/components/popover/types.d.ts +17 -38
  382. package/dist/components/portal/active-portal.svelte +5 -4
  383. package/dist/components/portal/bond.svelte.d.ts +12 -8
  384. package/dist/components/portal/bond.svelte.js +25 -27
  385. package/dist/components/portal/index.d.ts +1 -0
  386. package/dist/components/portal/index.js +1 -0
  387. package/dist/components/portal/portal-inner.svelte +1 -13
  388. package/dist/components/portal/portal-inner.svelte.d.ts +1 -1
  389. package/dist/components/portal/portal-root.svelte +64 -76
  390. package/dist/components/portal/portal-root.svelte.d.ts +1 -1
  391. package/dist/components/portal/portals/bond.svelte.d.ts +2 -2
  392. package/dist/components/portal/portals/bond.svelte.js +2 -2
  393. package/dist/components/portal/teleport.svelte +47 -49
  394. package/dist/components/portal/teleport.svelte.d.ts +1 -2
  395. package/dist/components/portal/types.d.ts +7 -25
  396. package/dist/components/portal/utils.js +3 -3
  397. package/dist/components/portal/zlayer.svelte.d.ts +16 -0
  398. package/dist/components/portal/zlayer.svelte.js +25 -0
  399. package/dist/components/progress/index.d.ts +3 -0
  400. package/dist/components/progress/index.js +3 -0
  401. package/dist/components/progress/progress-circular.svelte +99 -0
  402. package/dist/components/progress/progress-circular.svelte.d.ts +6 -0
  403. package/dist/components/progress/progress-linear.svelte +66 -0
  404. package/dist/components/progress/progress-linear.svelte.d.ts +6 -0
  405. package/dist/components/progress/types.d.ts +18 -0
  406. package/dist/components/progress/types.js +1 -0
  407. package/dist/components/radio/index.d.ts +2 -0
  408. package/dist/components/radio/index.js +1 -0
  409. package/dist/components/radio/motion.d.ts +24 -0
  410. package/dist/components/radio/motion.js +59 -0
  411. package/dist/components/radio/radio.svelte +22 -12
  412. package/dist/components/radio/types.d.ts +5 -14
  413. package/dist/components/root/bond.svelte.d.ts +2 -2
  414. package/dist/components/root/bond.svelte.js +1 -1
  415. package/dist/components/root/root.svelte +82 -92
  416. package/dist/components/root/root.svelte.d.ts +2 -2
  417. package/dist/components/root/types.d.ts +4 -15
  418. package/dist/components/scrollable/atoms.d.ts +1 -0
  419. package/dist/components/scrollable/atoms.js +1 -0
  420. package/dist/components/scrollable/bond.svelte.d.ts +73 -189
  421. package/dist/components/scrollable/bond.svelte.js +195 -371
  422. package/dist/components/scrollable/scrollable-container.css +22 -22
  423. package/dist/components/scrollable/scrollable-container.svelte +54 -61
  424. package/dist/components/scrollable/scrollable-container.svelte.d.ts +12 -12
  425. package/dist/components/scrollable/scrollable-content.svelte +10 -17
  426. package/dist/components/scrollable/scrollable-content.svelte.d.ts +12 -12
  427. package/dist/components/scrollable/scrollable-root.svelte +94 -101
  428. package/dist/components/scrollable/scrollable-root.svelte.d.ts +12 -12
  429. package/dist/components/scrollable/scrollable-thumb.svelte +10 -45
  430. package/dist/components/scrollable/scrollable-thumb.svelte.d.ts +12 -12
  431. package/dist/components/scrollable/scrollable-track.svelte +9 -22
  432. package/dist/components/scrollable/scrollable-track.svelte.d.ts +12 -12
  433. package/dist/components/scrollable/types.d.ts +15 -38
  434. package/dist/components/select/atoms.d.ts +8 -0
  435. package/dist/components/select/atoms.js +8 -0
  436. package/dist/components/select/attachments.svelte.d.ts +2 -0
  437. package/dist/components/select/attachments.svelte.js +5 -0
  438. package/dist/components/select/bond.svelte.d.ts +52 -0
  439. package/dist/components/select/bond.svelte.js +112 -0
  440. package/dist/components/select/index.d.ts +11 -0
  441. package/dist/components/select/index.js +10 -0
  442. package/dist/components/select/item/attachments.svelte.d.ts +3 -0
  443. package/dist/components/select/item/attachments.svelte.js +6 -0
  444. package/dist/components/select/item/bond.svelte.d.ts +33 -0
  445. package/dist/components/select/item/bond.svelte.js +77 -0
  446. package/dist/components/select/item/controller.svelte.d.ts +39 -0
  447. package/dist/components/select/item/controller.svelte.js +105 -0
  448. package/dist/components/select/item/index.d.ts +5 -0
  449. package/dist/components/select/item/index.js +5 -0
  450. package/dist/components/select/item/select-item.svelte +81 -0
  451. package/dist/components/select/item/select-item.svelte.d.ts +25 -0
  452. package/dist/components/select/item/types.d.ts +29 -0
  453. package/dist/components/select/item/types.js +1 -0
  454. package/dist/components/select/runes.svelte.d.ts +10 -0
  455. package/dist/components/select/runes.svelte.js +15 -0
  456. package/dist/components/select/select-placeholder.svelte +34 -0
  457. package/dist/components/select/select-placeholder.svelte.d.ts +28 -0
  458. package/dist/components/select/select-root.svelte +80 -0
  459. package/dist/components/select/select-root.svelte.d.ts +30 -0
  460. package/dist/components/select/select-selection.svelte +55 -0
  461. package/dist/components/select/select-selection.svelte.d.ts +26 -0
  462. package/dist/components/select/select-selections.svelte +70 -0
  463. package/dist/components/select/select-selections.svelte.d.ts +5 -0
  464. package/dist/components/select/select-trigger.svelte +30 -0
  465. package/dist/components/select/select-trigger.svelte.d.ts +26 -0
  466. package/dist/components/select/types.d.ts +61 -0
  467. package/dist/components/select/types.js +1 -0
  468. package/dist/components/sidebar/bond.svelte.d.ts +10 -7
  469. package/dist/components/sidebar/bond.svelte.js +20 -15
  470. package/dist/components/sidebar/sidebar-content.svelte +6 -13
  471. package/dist/components/sidebar/sidebar-root.svelte +50 -41
  472. package/dist/components/sidebar/types.d.ts +10 -15
  473. package/dist/components/slider/index.d.ts +2 -0
  474. package/dist/components/slider/index.js +2 -0
  475. package/dist/components/slider/slider.svelte +164 -0
  476. package/dist/components/slider/slider.svelte.d.ts +6 -0
  477. package/dist/components/slider/types.d.ts +78 -0
  478. package/dist/components/slider/types.js +1 -0
  479. package/dist/components/stack/bond.svelte.d.ts +50 -0
  480. package/dist/components/stack/bond.svelte.js +180 -0
  481. package/dist/components/stack/index.d.ts +2 -0
  482. package/dist/components/stack/index.js +2 -0
  483. package/dist/components/stack/stack-item.svelte +44 -4
  484. package/dist/components/stack/stack-item.svelte.d.ts +6 -5
  485. package/dist/components/stack/stack-root.svelte +33 -4
  486. package/dist/components/stack/stack-root.svelte.d.ts +14 -5
  487. package/dist/components/stack/types.d.ts +11 -10
  488. package/dist/components/stepper/bond.svelte.d.ts +8 -7
  489. package/dist/components/stepper/bond.svelte.js +14 -11
  490. package/dist/components/stepper/step/README.md +97 -97
  491. package/dist/components/stepper/step/bond.svelte.d.ts +74 -63
  492. package/dist/components/stepper/step/bond.svelte.js +105 -69
  493. package/dist/components/stepper/step/step-body.svelte +39 -39
  494. package/dist/components/stepper/step/step-description.svelte +33 -33
  495. package/dist/components/stepper/step/step-header.svelte +34 -34
  496. package/dist/components/stepper/step/step-indicator.svelte +62 -62
  497. package/dist/components/stepper/step/step-root.svelte +42 -42
  498. package/dist/components/stepper/step/step-separator.svelte +48 -48
  499. package/dist/components/stepper/step/step-title.svelte +33 -33
  500. package/dist/components/stepper/step/types.d.ts +13 -57
  501. package/dist/components/stepper/stepper-body.svelte +31 -43
  502. package/dist/components/stepper/stepper-content.svelte +45 -45
  503. package/dist/components/stepper/stepper-footer.svelte +31 -31
  504. package/dist/components/stepper/stepper-header.svelte +27 -39
  505. package/dist/components/stepper/stepper-root.svelte +55 -61
  506. package/dist/components/stepper/types.d.ts +10 -36
  507. package/dist/components/swatch/index.d.ts +1 -0
  508. package/dist/components/swatch/index.js +1 -0
  509. package/dist/components/swatch/swatch.svelte +57 -0
  510. package/dist/components/swatch/swatch.svelte.d.ts +9 -0
  511. package/dist/components/switch/index.d.ts +2 -0
  512. package/dist/components/switch/index.js +2 -0
  513. package/dist/components/switch/switch.svelte +78 -0
  514. package/dist/components/switch/switch.svelte.d.ts +6 -0
  515. package/dist/components/switch/types.d.ts +43 -0
  516. package/dist/components/switch/types.js +1 -0
  517. package/dist/components/tabs/bond.svelte.d.ts +38 -19
  518. package/dist/components/tabs/bond.svelte.js +53 -46
  519. package/dist/components/tabs/tab/attachments.svelte.d.ts +5 -2
  520. package/dist/components/tabs/tab/attachments.svelte.js +4 -3
  521. package/dist/components/tabs/tab/bond.svelte.d.ts +35 -23
  522. package/dist/components/tabs/tab/bond.svelte.js +81 -56
  523. package/dist/components/tabs/tab/tab-body.svelte +61 -43
  524. package/dist/components/tabs/tab/tab-description.svelte +33 -33
  525. package/dist/components/tabs/tab/tab-header.svelte +61 -61
  526. package/dist/components/tabs/tab/tab-root.svelte +49 -50
  527. package/dist/components/tabs/tab/tab-root.svelte.d.ts +13 -35
  528. package/dist/components/tabs/tabs-body.svelte +37 -35
  529. package/dist/components/tabs/tabs-body.svelte.d.ts +1 -1
  530. package/dist/components/tabs/tabs-content.svelte +32 -51
  531. package/dist/components/tabs/tabs-header.svelte +32 -32
  532. package/dist/components/tabs/tabs-root.svelte +64 -56
  533. package/dist/components/tabs/types.d.ts +20 -37
  534. package/dist/components/textarea/types.d.ts +6 -12
  535. package/dist/components/toast/atoms.d.ts +1 -0
  536. package/dist/components/toast/atoms.js +1 -0
  537. package/dist/components/toast/attachments.svelte.d.ts +10 -2
  538. package/dist/components/toast/attachments.svelte.js +9 -1
  539. package/dist/components/toast/bond.svelte.d.ts +73 -0
  540. package/dist/components/toast/bond.svelte.js +132 -0
  541. package/dist/components/toast/index.d.ts +1 -0
  542. package/dist/components/toast/index.js +1 -0
  543. package/dist/components/toast/toast-close.svelte +47 -0
  544. package/dist/components/toast/toast-close.svelte.d.ts +26 -0
  545. package/dist/components/toast/toast-description.svelte +16 -24
  546. package/dist/components/toast/toast-description.svelte.d.ts +15 -19
  547. package/dist/components/toast/toast-root.svelte +36 -26
  548. package/dist/components/toast/toast-root.svelte.d.ts +16 -15
  549. package/dist/components/toast/toast-title.svelte +17 -22
  550. package/dist/components/toast/toast-title.svelte.d.ts +13 -13
  551. package/dist/components/toast/toaster.svelte.d.ts +38 -0
  552. package/dist/components/toast/toaster.svelte.js +107 -0
  553. package/dist/components/toast/types.d.ts +14 -31
  554. package/dist/components/tooltip/index.d.ts +1 -0
  555. package/dist/components/tooltip/tooltip-trigger.svelte +39 -39
  556. package/dist/components/tooltip/types.d.ts +5 -8
  557. package/dist/components/tree/bond.svelte.d.ts +28 -19
  558. package/dist/components/tree/bond.svelte.js +62 -53
  559. package/dist/components/tree/tree-body.svelte +6 -13
  560. package/dist/components/tree/tree-header.svelte +1 -13
  561. package/dist/components/tree/tree-header.svelte.d.ts +1 -1
  562. package/dist/components/tree/tree-indicator.svelte +1 -13
  563. package/dist/components/tree/tree-root.svelte +54 -66
  564. package/dist/components/tree/types.d.ts +4 -28
  565. package/dist/components/virtual/index.d.ts +2 -0
  566. package/dist/components/virtual/index.js +2 -0
  567. package/dist/components/virtual/types.d.ts +1 -6
  568. package/dist/constants/motion.d.ts +9 -0
  569. package/dist/constants/motion.js +9 -0
  570. package/dist/context/index.d.ts +1 -1
  571. package/dist/context/preset.svelte.d.ts +186 -3
  572. package/dist/context/preset.svelte.js +29 -3
  573. package/dist/runes/color-scheme.svelte.js +17 -5
  574. package/dist/shared/bond.svelte.d.ts +29 -3
  575. package/dist/shared/bond.svelte.js +126 -4
  576. package/dist/shared/index.d.ts +1 -1
  577. package/dist/shared/index.js +1 -1
  578. package/dist/shared/motion.d.ts +1 -0
  579. package/dist/shared/motion.js +2 -8
  580. package/dist/types/index.d.ts +4 -0
  581. package/dist/utils/index.d.ts +1 -1
  582. package/dist/utils/index.js +1 -1
  583. package/dist/utils/promise.svelte.d.ts +5 -0
  584. package/dist/utils/promise.svelte.js +17 -0
  585. package/dist/utils/variant.d.ts +10 -1
  586. package/dist/utils/variant.js +11 -1
  587. package/package.json +171 -48
  588. package/dist/components/accordion/accordion.stories.svelte +0 -70
  589. package/dist/components/accordion/accordion.stories.svelte.d.ts +0 -18
  590. package/dist/components/alert/alert.stories.svelte +0 -400
  591. package/dist/components/alert/alert.stories.svelte.d.ts +0 -3
  592. package/dist/components/atom/utils.d.ts +0 -37
  593. package/dist/components/atom/utils.js +0 -208
  594. package/dist/components/avatar/avatar.stories.svelte +0 -22
  595. package/dist/components/avatar/avatar.stories.svelte.d.ts +0 -26
  596. package/dist/components/badge/badge.stories.svelte +0 -12
  597. package/dist/components/badge/badge.stories.svelte.d.ts +0 -26
  598. package/dist/components/breadcrumb/breadcrumb.stories.svelte +0 -16
  599. package/dist/components/breadcrumb/breadcrumb.stories.svelte.d.ts +0 -26
  600. package/dist/components/button/button.stories.svelte +0 -27
  601. package/dist/components/button/button.stories.svelte.d.ts +0 -18
  602. package/dist/components/calendar/calendar.stories.svelte +0 -26
  603. package/dist/components/calendar/calendar.stories.svelte.d.ts +0 -26
  604. package/dist/components/card/card.stories.svelte +0 -133
  605. package/dist/components/card/card.stories.svelte.d.ts +0 -19
  606. package/dist/components/checkbox/checkbox.stories.svelte +0 -22
  607. package/dist/components/checkbox/checkbox.stories.svelte.d.ts +0 -6
  608. package/dist/components/collapsible/collapsible.stories.svelte +0 -172
  609. package/dist/components/collapsible/collapsible.stories.svelte.d.ts +0 -18
  610. package/dist/components/combobox/combobox.stories.svelte +0 -63
  611. package/dist/components/combobox/combobox.stories.svelte.d.ts +0 -3
  612. package/dist/components/container/container.stories.svelte +0 -20
  613. package/dist/components/container/container.stories.svelte.d.ts +0 -26
  614. package/dist/components/contextmenu/atoms.d.ts +0 -0
  615. package/dist/components/contextmenu/atoms.js +0 -1
  616. package/dist/components/contextmenu/contextmenu-trigger.svelte +0 -0
  617. package/dist/components/contextmenu/contextmenu-trigger.svelte.d.ts +0 -26
  618. package/dist/components/contextmenu/indext.d.ts +0 -0
  619. package/dist/components/contextmenu/indext.js +0 -1
  620. package/dist/components/datagrid/datagrid.stories.svelte +0 -72
  621. package/dist/components/datagrid/datagrid.stories.svelte.d.ts +0 -6
  622. package/dist/components/datagrid/td/bond.svelte.d.ts +0 -28
  623. package/dist/components/datagrid/td/bond.svelte.js +0 -40
  624. package/dist/components/datagrid/td/datagrid-td.svelte +0 -66
  625. package/dist/components/datagrid/td/datagrid-td.svelte.d.ts +0 -30
  626. package/dist/components/datagrid/td/index.d.ts +0 -2
  627. package/dist/components/datagrid/td/index.js +0 -2
  628. package/dist/components/datagrid/th/bond.svelte.d.ts +0 -38
  629. package/dist/components/datagrid/th/bond.svelte.js +0 -66
  630. package/dist/components/datagrid/th/datagrid-th-sort-icon.svelte.d.ts +0 -33
  631. package/dist/components/datagrid/th/index.d.ts +0 -2
  632. package/dist/components/datagrid/th/index.js +0 -2
  633. package/dist/components/datagrid/tr/bond.svelte.d.ts +0 -37
  634. package/dist/components/datagrid/tr/bond.svelte.js +0 -72
  635. package/dist/components/datagrid/tr/datagrid-tr.svelte +0 -90
  636. package/dist/components/datagrid/tr/datagrid-tr.svelte.d.ts +0 -28
  637. package/dist/components/datagrid/tr/index.d.ts +0 -2
  638. package/dist/components/datagrid/tr/index.js +0 -2
  639. package/dist/components/date-picker/date-picker.stories.svelte +0 -35
  640. package/dist/components/date-picker/date-picker.stories.svelte.d.ts +0 -3
  641. package/dist/components/dialog/dialog.stories.svelte +0 -64
  642. package/dist/components/dialog/dialog.stories.svelte.d.ts +0 -3
  643. package/dist/components/drawer/drawer.stories.svelte +0 -141
  644. package/dist/components/drawer/drawer.stories.svelte.d.ts +0 -3
  645. package/dist/components/dropdown/dropdown.stories.svelte +0 -127
  646. package/dist/components/dropdown/dropdown.stories.svelte.d.ts +0 -3
  647. package/dist/components/element/element.stories.svelte +0 -37
  648. package/dist/components/element/element.stories.svelte.d.ts +0 -3
  649. package/dist/components/form/field/field-errors.svelte +0 -9
  650. package/dist/components/form/field/field-errors.svelte.d.ts +0 -11
  651. package/dist/components/form/form.stories.svelte +0 -96
  652. package/dist/components/form/form.stories.svelte.d.ts +0 -18
  653. package/dist/components/image/image.stories.svelte +0 -20
  654. package/dist/components/image/image.stories.svelte.d.ts +0 -26
  655. package/dist/components/input/input.stories.svelte +0 -35
  656. package/dist/components/input/input.stories.svelte.d.ts +0 -18
  657. package/dist/components/label/label.stories.svelte +0 -15
  658. package/dist/components/label/label.stories.svelte.d.ts +0 -26
  659. package/dist/components/lazy/lazy.stories.svelte +0 -28
  660. package/dist/components/lazy/lazy.stories.svelte.d.ts +0 -19
  661. package/dist/components/link/link.stories.svelte +0 -15
  662. package/dist/components/link/link.stories.svelte.d.ts +0 -26
  663. package/dist/components/menu/menu.stories.svelte +0 -33
  664. package/dist/components/menu/menu.stories.svelte.d.ts +0 -3
  665. package/dist/components/popover/motion.d.ts +0 -6
  666. package/dist/components/popover/motion.js +0 -57
  667. package/dist/components/popover/popover.stories.svelte +0 -37
  668. package/dist/components/popover/popover.stories.svelte.d.ts +0 -3
  669. package/dist/components/qr-code/qr-code.stories.svelte +0 -18
  670. package/dist/components/qr-code/qr-code.stories.svelte.d.ts +0 -26
  671. package/dist/components/radio/radio-group.stories.svelte +0 -41
  672. package/dist/components/radio/radio-group.stories.svelte.d.ts +0 -6
  673. package/dist/components/radio/radio.stories.svelte +0 -17
  674. package/dist/components/radio/radio.stories.svelte.d.ts +0 -6
  675. package/dist/components/root/l0-portal.svelte +0 -8
  676. package/dist/components/root/l0-portal.svelte.d.ts +0 -26
  677. package/dist/components/root/l1-portal.svelte +0 -7
  678. package/dist/components/root/l1-portal.svelte.d.ts +0 -26
  679. package/dist/components/root/toasts-portal.svelte +0 -7
  680. package/dist/components/root/toasts-portal.svelte.d.ts +0 -26
  681. package/dist/components/scrollable/scrollable.stories.svelte +0 -116
  682. package/dist/components/scrollable/scrollable.stories.svelte.d.ts +0 -26
  683. package/dist/components/sidebar/sidebar.stories.svelte +0 -43
  684. package/dist/components/sidebar/sidebar.stories.svelte.d.ts +0 -3
  685. package/dist/components/stepper/stepper.stories.svelte +0 -264
  686. package/dist/components/stepper/stepper.stories.svelte.d.ts +0 -4
  687. package/dist/components/tabs/tabs.stories.svelte +0 -70
  688. package/dist/components/tabs/tabs.stories.svelte.d.ts +0 -3
  689. package/dist/components/toast/bond.d.ts +0 -35
  690. package/dist/components/toast/bond.js +0 -59
  691. package/dist/components/tooltip/tooltip.stories.svelte +0 -32
  692. package/dist/components/tooltip/tooltip.stories.svelte.d.ts +0 -3
  693. package/dist/components/tree/tree.stories.svelte +0 -142
  694. package/dist/components/tree/tree.stories.svelte.d.ts +0 -3
  695. /package/dist/components/{contextmenu → context-menu}/types.js +0 -0
@@ -1,25 +1,25 @@
1
1
  import type { ScrollableThumbProps } from './types';
2
- declare function $$render<T extends keyof HTMLElementTagNameMap>(): {
3
- props: ScrollableThumbProps<T>;
2
+ declare function $$render<E extends keyof HTMLElementTagNameMap = 'div', B extends import('./bond.svelte').ScrollableBond = import('./bond.svelte').ScrollableBond>(): {
3
+ props: ScrollableThumbProps<E, B>;
4
4
  exports: {};
5
5
  bindings: "";
6
6
  slots: {};
7
7
  events: {};
8
8
  };
9
- declare class __sveltets_Render<T extends keyof HTMLElementTagNameMap> {
10
- props(): ReturnType<typeof $$render<T>>['props'];
11
- events(): ReturnType<typeof $$render<T>>['events'];
12
- slots(): ReturnType<typeof $$render<T>>['slots'];
9
+ declare class __sveltets_Render<E extends keyof HTMLElementTagNameMap = 'div', B extends import('./bond.svelte').ScrollableBond = import('./bond.svelte').ScrollableBond> {
10
+ props(): ReturnType<typeof $$render<E, B>>['props'];
11
+ events(): ReturnType<typeof $$render<E, B>>['events'];
12
+ slots(): ReturnType<typeof $$render<E, B>>['slots'];
13
13
  bindings(): "";
14
14
  exports(): {};
15
15
  }
16
16
  interface $$IsomorphicComponent {
17
- new <T extends keyof HTMLElementTagNameMap>(options: import('svelte').ComponentConstructorOptions<ReturnType<__sveltets_Render<T>['props']>>): import('svelte').SvelteComponent<ReturnType<__sveltets_Render<T>['props']>, ReturnType<__sveltets_Render<T>['events']>, ReturnType<__sveltets_Render<T>['slots']>> & {
18
- $$bindings?: ReturnType<__sveltets_Render<T>['bindings']>;
19
- } & ReturnType<__sveltets_Render<T>['exports']>;
20
- <T extends keyof HTMLElementTagNameMap>(internal: unknown, props: ReturnType<__sveltets_Render<T>['props']> & {}): ReturnType<__sveltets_Render<T>['exports']>;
21
- z_$$bindings?: ReturnType<__sveltets_Render<any>['bindings']>;
17
+ new <E extends keyof HTMLElementTagNameMap = 'div', B extends import('./bond.svelte').ScrollableBond = import('./bond.svelte').ScrollableBond>(options: import('svelte').ComponentConstructorOptions<ReturnType<__sveltets_Render<E, B>['props']>>): import('svelte').SvelteComponent<ReturnType<__sveltets_Render<E, B>['props']>, ReturnType<__sveltets_Render<E, B>['events']>, ReturnType<__sveltets_Render<E, B>['slots']>> & {
18
+ $$bindings?: ReturnType<__sveltets_Render<E, B>['bindings']>;
19
+ } & ReturnType<__sveltets_Render<E, B>['exports']>;
20
+ <E extends keyof HTMLElementTagNameMap = 'div', B extends import('./bond.svelte').ScrollableBond = import('./bond.svelte').ScrollableBond>(internal: unknown, props: ReturnType<__sveltets_Render<E, B>['props']> & {}): ReturnType<__sveltets_Render<E, B>['exports']>;
21
+ z_$$bindings?: ReturnType<__sveltets_Render<any, any>['bindings']>;
22
22
  }
23
23
  declare const ScrollableThumb: $$IsomorphicComponent;
24
- type ScrollableThumb<T extends keyof HTMLElementTagNameMap> = InstanceType<typeof ScrollableThumb<T>>;
24
+ type ScrollableThumb<E extends keyof HTMLElementTagNameMap = 'div', B extends import('./bond.svelte').ScrollableBond = import('./bond.svelte').ScrollableBond> = InstanceType<typeof ScrollableThumb<E, B>>;
25
25
  export default ScrollableThumb;
@@ -1,21 +1,14 @@
1
- <script lang="ts" generics="T extends keyof HTMLElementTagNameMap">
1
+ <script lang="ts" generics="E extends keyof HTMLElementTagNameMap = 'div', B extends import('./bond.svelte').ScrollableBond = import('./bond.svelte').ScrollableBond">
2
2
  import type { ScrollableTrackProps } from './types';
3
3
  import { ScrollableBond } from './bond.svelte';
4
4
  import { HtmlAtom } from '../atom';
5
5
 
6
6
  let {
7
7
  class: klass = '',
8
-
9
- orientation = undefined,
10
- children = undefined,
11
- onmount = undefined,
12
- ondestroy = undefined,
13
- animate = undefined,
14
- enter = undefined,
15
- exit = undefined,
16
- initial = undefined,
8
+ orientation = 'vertical',
9
+ children,
17
10
  ...restProps
18
- }: ScrollableTrackProps<T> = $props();
11
+ }: ScrollableTrackProps<E, B> = $props();
19
12
 
20
13
  const bond = ScrollableBond.get();
21
14
 
@@ -25,19 +18,20 @@
25
18
 
26
19
  const hasYScroll = $derived(bond.state.props.scrollHeight > bond.state.props.clientHeight);
27
20
  const hasXScroll = $derived(bond.state.props.scrollWidth > bond.state.props.clientWidth);
28
-
29
21
  const hasScroll = $derived(hasXScroll || hasYScroll);
30
-
31
22
  const isOpen = $derived(bond?.state?.props?.open ?? true);
32
-
33
23
  const isScrolling = $derived(bond?.state?.props?.isScrolling ?? false);
34
24
 
35
- const trackProps = $derived(bond.track(orientation));
25
+ const trackProps = $derived({
26
+ ...(orientation === 'horizontal' ? bond.trackX().spread : bond.trackY().spread),
27
+ ...restProps
28
+ });
36
29
  </script>
37
30
 
38
31
  {#if (isOpen || isScrolling) && hasScroll}
39
32
  <HtmlAtom
40
33
  {bond}
34
+ as="div"
41
35
  preset="scrollable.track"
42
36
  class={[
43
37
  'scrollable-track bg-foreground/10 hover:bg-foreground/15 border-border absolute z-10 rounded transition-opacity',
@@ -45,14 +39,7 @@
45
39
  '$preset',
46
40
  klass
47
41
  ]}
48
- enter={enter?.bind(bond.state)}
49
- exit={exit?.bind(bond.state)}
50
- initial={initial?.bind(bond.state)}
51
- animate={animate?.bind(bond.state)}
52
- onmount={onmount?.bind(bond.state)}
53
- ondestroy={ondestroy?.bind(bond.state)}
54
42
  {...trackProps}
55
- {...restProps}
56
43
  >
57
44
  {@render children?.()}
58
45
  </HtmlAtom>
@@ -1,25 +1,25 @@
1
1
  import type { ScrollableTrackProps } from './types';
2
- declare function $$render<T extends keyof HTMLElementTagNameMap>(): {
3
- props: ScrollableTrackProps<T>;
2
+ declare function $$render<E extends keyof HTMLElementTagNameMap = 'div', B extends import('./bond.svelte').ScrollableBond = import('./bond.svelte').ScrollableBond>(): {
3
+ props: ScrollableTrackProps<E, B>;
4
4
  exports: {};
5
5
  bindings: "";
6
6
  slots: {};
7
7
  events: {};
8
8
  };
9
- declare class __sveltets_Render<T extends keyof HTMLElementTagNameMap> {
10
- props(): ReturnType<typeof $$render<T>>['props'];
11
- events(): ReturnType<typeof $$render<T>>['events'];
12
- slots(): ReturnType<typeof $$render<T>>['slots'];
9
+ declare class __sveltets_Render<E extends keyof HTMLElementTagNameMap = 'div', B extends import('./bond.svelte').ScrollableBond = import('./bond.svelte').ScrollableBond> {
10
+ props(): ReturnType<typeof $$render<E, B>>['props'];
11
+ events(): ReturnType<typeof $$render<E, B>>['events'];
12
+ slots(): ReturnType<typeof $$render<E, B>>['slots'];
13
13
  bindings(): "";
14
14
  exports(): {};
15
15
  }
16
16
  interface $$IsomorphicComponent {
17
- new <T extends keyof HTMLElementTagNameMap>(options: import('svelte').ComponentConstructorOptions<ReturnType<__sveltets_Render<T>['props']>>): import('svelte').SvelteComponent<ReturnType<__sveltets_Render<T>['props']>, ReturnType<__sveltets_Render<T>['events']>, ReturnType<__sveltets_Render<T>['slots']>> & {
18
- $$bindings?: ReturnType<__sveltets_Render<T>['bindings']>;
19
- } & ReturnType<__sveltets_Render<T>['exports']>;
20
- <T extends keyof HTMLElementTagNameMap>(internal: unknown, props: ReturnType<__sveltets_Render<T>['props']> & {}): ReturnType<__sveltets_Render<T>['exports']>;
21
- z_$$bindings?: ReturnType<__sveltets_Render<any>['bindings']>;
17
+ new <E extends keyof HTMLElementTagNameMap = 'div', B extends import('./bond.svelte').ScrollableBond = import('./bond.svelte').ScrollableBond>(options: import('svelte').ComponentConstructorOptions<ReturnType<__sveltets_Render<E, B>['props']>>): import('svelte').SvelteComponent<ReturnType<__sveltets_Render<E, B>['props']>, ReturnType<__sveltets_Render<E, B>['events']>, ReturnType<__sveltets_Render<E, B>['slots']>> & {
18
+ $$bindings?: ReturnType<__sveltets_Render<E, B>['bindings']>;
19
+ } & ReturnType<__sveltets_Render<E, B>['exports']>;
20
+ <E extends keyof HTMLElementTagNameMap = 'div', B extends import('./bond.svelte').ScrollableBond = import('./bond.svelte').ScrollableBond>(internal: unknown, props: ReturnType<__sveltets_Render<E, B>['props']> & {}): ReturnType<__sveltets_Render<E, B>['exports']>;
21
+ z_$$bindings?: ReturnType<__sveltets_Render<any, any>['bindings']>;
22
22
  }
23
23
  declare const ScrollableTrack: $$IsomorphicComponent;
24
- type ScrollableTrack<T extends keyof HTMLElementTagNameMap> = InstanceType<typeof ScrollableTrack<T>>;
24
+ type ScrollableTrack<E extends keyof HTMLElementTagNameMap = 'div', B extends import('./bond.svelte').ScrollableBond = import('./bond.svelte').ScrollableBond> = InstanceType<typeof ScrollableTrack<E, B>>;
25
25
  export default ScrollableTrack;
@@ -1,37 +1,14 @@
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, Override } from '../../types';
4
4
  import type { ScrollableBond } from './bond.svelte';
5
- /**
6
- * Extend this interface to add custom scrollable root properties in your application.
7
- */
8
- export interface ScrollableExtendProps {
5
+ export interface ScrollableSnippetProps extends SnippetProps {
6
+ scrollable: ScrollableBond;
9
7
  }
10
- /**
11
- * Extend this interface to add custom scrollable container properties in your application.
12
- */
13
- export interface ScrollableContainerExtendProps {
14
- }
15
- /**
16
- * Extend this interface to add custom scrollable content properties in your application.
17
- */
18
- export interface ScrollableContentExtendProps {
19
- }
20
- /**
21
- * Extend this interface to add custom scrollable track properties in your application.
22
- */
23
- export interface ScrollableTrackExtendProps {
24
- }
25
- /**
26
- * Extend this interface to add custom scrollable thumb properties in your application.
27
- */
28
- export interface ScrollableThumbExtendProps {
29
- }
30
- export interface ScrollableRootProps<E extends keyof HTMLElementTagNameMap = 'div', B extends Base = Base> extends Override<HtmlAtomProps<E, B>, {
31
- children?: Snippet<[{
32
- scrollable: ScrollableBond;
33
- }]>;
34
- }>, ScrollableExtendProps {
8
+ export type ScrollableChildren = Snippet<[ScrollableSnippetProps]>;
9
+ export interface ScrollableRootProps<E extends keyof HTMLElementTagNameMap = 'div', B extends Base = Base> extends Override<HtmlAtomProps<E, B, ScrollableChildren>, {
10
+ children?: ScrollableChildren;
11
+ }> {
35
12
  factory?: Factory<ScrollableBond>;
36
13
  scrollX?: number;
37
14
  scrollY?: number;
@@ -42,21 +19,21 @@ export interface ScrollableRootProps<E extends keyof HTMLElementTagNameMap = 'di
42
19
  disabled?: boolean;
43
20
  open?: boolean;
44
21
  }
45
- export interface ScrollableContainerProps<E extends keyof HTMLElementTagNameMap = 'div', B extends Base = Base> extends Override<HtmlAtomProps<E, B>, {
22
+ export interface ScrollableContainerProps<E extends keyof HTMLElementTagNameMap = 'div', B extends Base = Base> extends Override<HtmlAtomProps<E, B, ScrollableChildren>, {
46
23
  children?: Snippet;
47
- }>, ScrollableContainerExtendProps {
24
+ }> {
48
25
  }
49
- export interface ScrollableContentProps<E extends keyof HTMLElementTagNameMap = 'div', B extends Base = Base> extends Override<HtmlAtomProps<E, B>, {
26
+ export interface ScrollableContentProps<E extends keyof HTMLElementTagNameMap = 'div', B extends Base = Base> extends Override<HtmlAtomProps<E, B, ScrollableChildren>, {
50
27
  children?: Snippet;
51
- }>, ScrollableContentExtendProps {
28
+ }> {
52
29
  }
53
- export interface ScrollableTrackProps<E extends keyof HTMLElementTagNameMap = 'div', B extends Base = Base> extends Override<HtmlAtomProps<E, B>, {
30
+ export interface ScrollableTrackProps<E extends keyof HTMLElementTagNameMap = 'div', B extends Base = Base> extends Override<HtmlAtomProps<E, B, ScrollableChildren>, {
54
31
  children?: Snippet;
55
- }>, ScrollableTrackExtendProps {
32
+ }> {
56
33
  orientation: 'horizontal' | 'vertical';
57
34
  }
58
- export interface ScrollableThumbProps<E extends keyof HTMLElementTagNameMap = 'div', B extends Base = Base> extends Override<HtmlAtomProps<E, B>, {
35
+ export interface ScrollableThumbProps<E extends keyof HTMLElementTagNameMap = 'div', B extends Base = Base> extends Override<HtmlAtomProps<E, B, ScrollableChildren>, {
59
36
  children?: Snippet;
60
- }>, ScrollableThumbExtendProps {
37
+ }> {
61
38
  orientation: 'horizontal' | 'vertical';
62
39
  }
@@ -0,0 +1,8 @@
1
+ export { default as Root } from './select-root.svelte';
2
+ export { default as Item } from './item/select-item.svelte';
3
+ export { default as Trigger } from './select-trigger.svelte';
4
+ export { default as Placeholder } from './select-placeholder.svelte';
5
+ export { default as Selection } from './select-selection.svelte';
6
+ export { default as Selections } from './select-selections.svelte';
7
+ export { Arrow, Indicator } from '../popover/atoms';
8
+ export { Content, List, Divider, Title, Group } from '../dropdown-menu/atoms';
@@ -0,0 +1,8 @@
1
+ export { default as Root } from './select-root.svelte';
2
+ export { default as Item } from './item/select-item.svelte';
3
+ export { default as Trigger } from './select-trigger.svelte';
4
+ export { default as Placeholder } from './select-placeholder.svelte';
5
+ export { default as Selection } from './select-selection.svelte';
6
+ export { default as Selections } from './select-selections.svelte';
7
+ export { Arrow, Indicator } from '../popover/atoms';
8
+ export { Content, List, Divider, Title, Group } from '../dropdown-menu/atoms';
@@ -0,0 +1,2 @@
1
+ import { SelectBond } from './bond.svelte';
2
+ export declare function select(callback: (node: HTMLElement, bond?: SelectBond) => any): (node: HTMLElement) => any;
@@ -0,0 +1,5 @@
1
+ import { SelectBond } from './bond.svelte';
2
+ export function select(callback) {
3
+ const bond = SelectBond.get();
4
+ return (node) => callback(node, bond);
5
+ }
@@ -0,0 +1,52 @@
1
+ import { DropdownMenuBond, DropdownMenuBondState, DropdownMenuContentAtom, type DropdownMenuBondElements, type DropdownMenuBondProps } from '../dropdown-menu/bond.svelte';
2
+ import { BondAtom } from '../../shared/bond.svelte';
3
+ import type { SelectItemAtom } from './item/bond.svelte';
4
+ export type SelectStateProps = DropdownMenuBondProps & {
5
+ values?: string[];
6
+ value?: string;
7
+ labels?: string[];
8
+ label?: string;
9
+ multiple?: boolean;
10
+ keys?: string[];
11
+ readonly rest?: Record<string, unknown>;
12
+ };
13
+ export type SelectBondElements = DropdownMenuBondElements & {
14
+ placeholder?: HTMLElement;
15
+ };
16
+ declare class SelectContentAtom extends DropdownMenuContentAtom {
17
+ constructor(bond: SelectBond);
18
+ protected bond: SelectBond;
19
+ get attrs(): {
20
+ role: "listbox";
21
+ 'aria-multiselectable': boolean;
22
+ 'aria-activedescendant': string | undefined;
23
+ 'aria-orientation': "vertical";
24
+ 'data-active': boolean;
25
+ };
26
+ }
27
+ declare class SelectPlaceholderAtom extends BondAtom<SelectBond, HTMLElement> {
28
+ constructor(bond: SelectBond);
29
+ get attrs(): {
30
+ role: "group";
31
+ };
32
+ }
33
+ export declare class SelectBond<Props extends SelectStateProps = SelectStateProps, State extends SelectBondState<Props, any> = SelectBondState<Props, any>, Elements extends SelectBondElements = SelectBondElements, ItemData = unknown> extends DropdownMenuBond<Props, State, Elements> {
34
+ state: State & SelectBondState<Props, ItemData>;
35
+ constructor(state: State);
36
+ content(): SelectContentAtom;
37
+ item(): SelectItemAtom<unknown, SelectBond<SelectStateProps, SelectBondState<SelectStateProps, any>, SelectBondElements, unknown>>;
38
+ placeholder(): SelectPlaceholderAtom;
39
+ static get<Props extends SelectStateProps = SelectStateProps, State extends SelectBondState<Props, any> = SelectBondState<Props, any>, Elements extends SelectBondElements = SelectBondElements, ItemData = unknown>(): SelectBond<Props, State, Elements, ItemData> | undefined;
40
+ static set<Props extends SelectStateProps = SelectStateProps, State extends SelectBondState<Props, any> = SelectBondState<Props, any>, Elements extends SelectBondElements = SelectBondElements, ItemData = unknown>(context: SelectBond<Props, State, Elements, ItemData>): SelectBond<Props, State, Elements, ItemData>;
41
+ }
42
+ export declare class SelectBondState<Props extends SelectStateProps = SelectStateProps, ItemData = unknown> extends DropdownMenuBondState<Props> {
43
+ #private;
44
+ constructor(props: () => Props);
45
+ get selections(): SelectItemAtom<ItemData, SelectBond<SelectStateProps, SelectBondState<SelectStateProps, any>, SelectBondElements, unknown>>[];
46
+ registerItem(value: string, atom: SelectItemAtom<ItemData>): void;
47
+ unregisterItem(value: string): void;
48
+ select(ids: string[]): void;
49
+ unselect(ids: string[]): void;
50
+ protected updateLabels(): void;
51
+ }
52
+ export {};
@@ -0,0 +1,112 @@
1
+ import { untrack } from 'svelte';
2
+ import { SvelteMap } from 'svelte/reactivity';
3
+ import { DropdownMenuBond, DropdownMenuBondState, DropdownMenuContentAtom } from '../dropdown-menu/bond.svelte';
4
+ import { BondAtom } from '../../shared/bond.svelte';
5
+ const SELECT_ELEMENTS_KIND = {
6
+ placeholder: 'select-placeholder',
7
+ arrow: 'popover-arrow',
8
+ trigger: 'popover-trigger',
9
+ content: 'popover-content',
10
+ indicator: 'popover-indicator'
11
+ };
12
+ class SelectContentAtom extends DropdownMenuContentAtom {
13
+ constructor(bond) {
14
+ super(bond);
15
+ }
16
+ get attrs() {
17
+ const isMultiselect = untrack(() => this.bond.state.props).multiple ?? false;
18
+ const highlightedId = this.bond.state.highlightedItem?.id;
19
+ return {
20
+ ...super.attrs,
21
+ role: 'listbox',
22
+ 'aria-multiselectable': isMultiselect,
23
+ 'aria-activedescendant': highlightedId ? `item-${highlightedId}` : undefined,
24
+ 'aria-orientation': 'vertical'
25
+ };
26
+ }
27
+ }
28
+ // class SelectItemAtom extends DropdownMenuItemAtom<SelectBond> {
29
+ // constructor(bond: SelectBond) {
30
+ // super(bond);
31
+ // }
32
+ // declare protected bond: SelectBond;
33
+ // override get attrs() {
34
+ // return {
35
+ // ...super.attrs,
36
+ // role: 'option' as const
37
+ // };
38
+ // }
39
+ // }
40
+ class SelectPlaceholderAtom extends BondAtom {
41
+ constructor(bond) {
42
+ super(bond, 'placeholder');
43
+ }
44
+ get attrs() {
45
+ return {
46
+ ...super.attrs,
47
+ role: 'group'
48
+ };
49
+ }
50
+ }
51
+ export class SelectBond extends DropdownMenuBond {
52
+ constructor(state) {
53
+ super(state);
54
+ }
55
+ content() {
56
+ return this.atom('content', () => new SelectContentAtom(this));
57
+ }
58
+ item() {
59
+ return this.atom('item', () => new SelectItemAtom(this));
60
+ }
61
+ placeholder() {
62
+ return this.atom('placeholder', () => new SelectPlaceholderAtom(this));
63
+ }
64
+ static get() {
65
+ return DropdownMenuBond.get();
66
+ }
67
+ static set(context) {
68
+ return DropdownMenuBond.set(context);
69
+ }
70
+ }
71
+ export class SelectBondState extends DropdownMenuBondState {
72
+ #selectItems = new SvelteMap();
73
+ #selections = $derived(this.props.values?.map((value) => this.#selectItems.get(value)).filter(Boolean) ?? []);
74
+ constructor(props) {
75
+ super(props);
76
+ }
77
+ get selections() {
78
+ return this.#selections;
79
+ }
80
+ registerItem(value, atom) {
81
+ this.#selectItems.set(value, atom);
82
+ }
83
+ unregisterItem(value) {
84
+ this.#selectItems.delete(value);
85
+ }
86
+ select(ids) {
87
+ if (untrack(() => this.props.multiple)) {
88
+ // eslint-disable-next-line svelte/prefer-svelte-reactivity
89
+ const sequence = new Set(untrack(() => [...ids, ...(this.props.values ?? [])]));
90
+ this.props.values = [...sequence];
91
+ }
92
+ else {
93
+ const value = ids[0];
94
+ this.props.values = value ? [value] : [];
95
+ }
96
+ this.updateLabels();
97
+ }
98
+ unselect(ids) {
99
+ // eslint-disable-next-line svelte/prefer-svelte-reactivity
100
+ const sequence = new Set(untrack(() => this.props.values ?? []));
101
+ for (const v of ids) {
102
+ sequence.delete(v);
103
+ }
104
+ this.props.values = [...sequence];
105
+ this.updateLabels();
106
+ }
107
+ updateLabels() {
108
+ const labels = this.#selections.map((s) => s.label);
109
+ this.props.labels = labels;
110
+ this.props.label = labels[0] ?? '';
111
+ }
112
+ }
@@ -0,0 +1,11 @@
1
+ export * as Select from './atoms';
2
+ export { SelectBond, type SelectBondElements, SelectBondState, type SelectStateProps } from './bond.svelte';
3
+ export * from './item';
4
+ export { filterSelectData } from './runes.svelte';
5
+ /**
6
+ * @deprecated Use `filterSelectData` instead.
7
+ */
8
+ export { filterSelectData as filter } from './runes.svelte';
9
+ export * from './types';
10
+ export type { AnimatePopoverContentParams as AnimateSelectContentParams, animatePopoverContent as animateSelectContent } from '../popover/motion.svelte';
11
+ export { select } from './attachments.svelte';
@@ -0,0 +1,10 @@
1
+ export * as Select from './atoms';
2
+ export { SelectBond, SelectBondState } from './bond.svelte';
3
+ export * from './item';
4
+ export { filterSelectData } from './runes.svelte';
5
+ /**
6
+ * @deprecated Use `filterSelectData` instead.
7
+ */
8
+ export { filterSelectData as filter } from './runes.svelte';
9
+ export * from './types';
10
+ export { select } from './attachments.svelte';
@@ -0,0 +1,3 @@
1
+ import type { SelectBond } from '../bond.svelte';
2
+ import { SelectItemController } from './controller.svelte';
3
+ export declare function selectItem(callback: (node: HTMLElement, item?: SelectItemController, select?: SelectBond) => any): (node: HTMLElement) => any;
@@ -0,0 +1,6 @@
1
+ import { SelectItemController } from './controller.svelte';
2
+ export function selectItem(callback) {
3
+ const item = SelectItemController.get();
4
+ const bond = item?.select;
5
+ return (node) => callback(node, item, bond);
6
+ }
@@ -0,0 +1,33 @@
1
+ import { BondAtom } from '../../../shared/bond.svelte';
2
+ import type { SelectBond } from '../bond.svelte';
3
+ export type SelectItemAtomProps<T = unknown> = {
4
+ value: string;
5
+ label?: string;
6
+ data?: T;
7
+ id?: string;
8
+ };
9
+ export declare class SelectItemAtom<Data = unknown, B extends SelectBond = SelectBond> extends BondAtom<B, HTMLElement> {
10
+ #private;
11
+ constructor(props: () => SelectItemAtomProps<Data>, selectBond: B);
12
+ get id(): string;
13
+ get createdAt(): Date;
14
+ get props(): SelectItemAtomProps<Data>;
15
+ get value(): string;
16
+ get data(): Data | undefined;
17
+ get label(): string;
18
+ get isHighlighted(): boolean;
19
+ get isSelected(): boolean;
20
+ get attrs(): {
21
+ id: string;
22
+ role: string;
23
+ 'aria-selected': boolean;
24
+ 'data-selected': boolean;
25
+ 'data-highlighted': boolean;
26
+ };
27
+ get handlers(): {};
28
+ select(): void;
29
+ unselect(): void;
30
+ toggle(): void;
31
+ close(): void;
32
+ onmount(): () => void;
33
+ }
@@ -0,0 +1,77 @@
1
+ import { BondAtom } from '../../../shared/bond.svelte';
2
+ import { nanoid } from 'nanoid';
3
+ export class SelectItemAtom extends BondAtom {
4
+ #id;
5
+ #props;
6
+ #selectBond;
7
+ // eslint-disable-next-line svelte/prefer-svelte-reactivity
8
+ #createdAt = new Date();
9
+ constructor(props, selectBond) {
10
+ super(selectBond, `item-${props().value}`);
11
+ this.#props = props;
12
+ this.#selectBond = selectBond;
13
+ this.#id = props().id ?? nanoid();
14
+ }
15
+ get id() {
16
+ return this.#id;
17
+ }
18
+ get createdAt() {
19
+ return this.#createdAt;
20
+ }
21
+ get props() {
22
+ return this.#props();
23
+ }
24
+ get value() {
25
+ return this.props.value;
26
+ }
27
+ get data() {
28
+ return this.props.data;
29
+ }
30
+ get label() {
31
+ const element = (this.element?.querySelector('[data-label]') ?? this.element);
32
+ return element?.innerText ?? this.#props().label ?? '';
33
+ }
34
+ get isHighlighted() {
35
+ return this.#selectBond.state.highlightedItem?.id === this.id;
36
+ }
37
+ get isSelected() {
38
+ return this.#selectBond.state.props.values?.includes(this.value) ?? false;
39
+ }
40
+ get attrs() {
41
+ const itemId = `select-item-${this.id}`;
42
+ return {
43
+ ...super.attrs,
44
+ id: itemId,
45
+ role: 'option',
46
+ 'aria-selected': this.isSelected,
47
+ 'data-selected': this.isSelected,
48
+ 'data-highlighted': this.isHighlighted
49
+ };
50
+ }
51
+ get handlers() {
52
+ return {};
53
+ }
54
+ select() {
55
+ this.#selectBond?.state.select([this.value]);
56
+ }
57
+ unselect() {
58
+ this.#selectBond?.state.unselect([this.value]);
59
+ }
60
+ toggle() {
61
+ if (this.isSelected) {
62
+ this.unselect();
63
+ }
64
+ else {
65
+ this.select();
66
+ }
67
+ }
68
+ close() {
69
+ this.#selectBond?.state.close();
70
+ }
71
+ onmount() {
72
+ this.#selectBond?.state?.mountItem?.(this.value, this);
73
+ return () => {
74
+ this.#selectBond?.state?.unmountItem?.(this.value);
75
+ };
76
+ }
77
+ }
@@ -0,0 +1,39 @@
1
+ import type { DropdownMenuItemControllerInterface } from '../../dropdown-menu/item/controller.svelte';
2
+ export type SelectItemProps<T = unknown> = {
3
+ readonly id: string;
4
+ readonly value: string;
5
+ readonly label?: string;
6
+ readonly data?: T;
7
+ };
8
+ export declare class SelectItemController<T = unknown> implements DropdownMenuItemControllerInterface<SelectItemProps<T>> {
9
+ #private;
10
+ static CONTEXT_KEY: string;
11
+ constructor(props: () => SelectItemProps<T>);
12
+ get id(): string;
13
+ get createdAt(): Date;
14
+ get props(): SelectItemProps<T>;
15
+ get element(): HTMLElement | null;
16
+ get value(): string;
17
+ get data(): T | undefined;
18
+ get label(): string;
19
+ get isHighlighted(): boolean;
20
+ get isSelected(): boolean;
21
+ mount(): () => void;
22
+ unmount(): void;
23
+ destroy(): void;
24
+ select(): void;
25
+ unselect(): void;
26
+ toggle(): void;
27
+ close(): void;
28
+ share(): SelectItemController<T>;
29
+ elementProps(): {
30
+ readonly [x: symbol]: (node: HTMLElement) => () => void;
31
+ readonly id: string;
32
+ readonly role: "option";
33
+ readonly 'aria-selected': boolean;
34
+ readonly 'data-selected': boolean;
35
+ readonly 'data-highlighted': boolean;
36
+ };
37
+ static get<T = unknown>(): SelectItemController<T> | undefined;
38
+ static set<T = unknown>(item: SelectItemController<T>): SelectItemController<T>;
39
+ }