@soxa-ui/svelte 0.0.0-stage → 0.3.0-beta.1

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 (583) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +219 -2
  3. package/dist/adapter/common/RoleIcon.svelte +25 -0
  4. package/dist/adapter/common/RoleIcon.svelte.d.ts +13 -0
  5. package/dist/adapter/common/click-action.d.ts +7 -0
  6. package/dist/adapter/common/click-action.js +11 -0
  7. package/dist/adapter/common/createSvelteAdapterContext.d.ts +12 -0
  8. package/dist/adapter/common/createSvelteAdapterContext.js +11 -0
  9. package/dist/adapter/common/handlers.d.ts +6 -0
  10. package/dist/adapter/common/handlers.js +11 -0
  11. package/dist/adapter/common/icon.d.ts +11 -0
  12. package/dist/adapter/common/icon.js +22 -0
  13. package/dist/adapter/common/index.d.ts +8 -0
  14. package/dist/adapter/common/index.js +8 -0
  15. package/dist/adapter/common/naming.d.ts +3 -0
  16. package/dist/adapter/common/naming.js +6 -0
  17. package/dist/adapter/common/profile.d.ts +2 -0
  18. package/dist/adapter/common/profile.js +2 -0
  19. package/dist/adapter/common/root.d.ts +77 -0
  20. package/dist/adapter/common/root.js +88 -0
  21. package/dist/adapter/elevator/elevator.class.d.ts +13 -0
  22. package/dist/adapter/elevator/elevator.class.js +27 -0
  23. package/dist/adapter/elevator/index.d.ts +2 -0
  24. package/dist/adapter/elevator/index.js +2 -0
  25. package/dist/adapter/elevator/useElevator.d.ts +6 -0
  26. package/dist/adapter/elevator/useElevator.js +9 -0
  27. package/dist/adapter/index.d.ts +5 -0
  28. package/dist/adapter/index.js +5 -0
  29. package/dist/adapter/locale/LocaleProvider.svelte +21 -0
  30. package/dist/adapter/locale/LocaleProvider.svelte.d.ts +4 -0
  31. package/dist/adapter/locale/context.d.ts +6 -0
  32. package/dist/adapter/locale/context.js +12 -0
  33. package/dist/adapter/locale/index.d.ts +2 -0
  34. package/dist/adapter/locale/index.js +1 -0
  35. package/dist/adapter/locale/types.d.ts +7 -0
  36. package/dist/adapter/locale/types.js +1 -0
  37. package/dist/adapter/runtime/Dynamic.svelte +54 -0
  38. package/dist/adapter/runtime/Dynamic.svelte.d.ts +25 -0
  39. package/dist/adapter/runtime/Teleport.svelte +96 -0
  40. package/dist/adapter/runtime/Teleport.svelte.d.ts +5 -0
  41. package/dist/adapter/runtime/TextSpan.svelte +28 -0
  42. package/dist/adapter/runtime/TextSpan.svelte.d.ts +8 -0
  43. package/dist/adapter/runtime/field-text.d.ts +29 -0
  44. package/dist/adapter/runtime/field-text.js +45 -0
  45. package/dist/adapter/runtime/index.d.ts +8 -0
  46. package/dist/adapter/runtime/index.js +7 -0
  47. package/dist/adapter/runtime/root-style.svelte.d.ts +27 -0
  48. package/dist/adapter/runtime/root-style.svelte.js +105 -0
  49. package/dist/adapter/runtime/runs.d.ts +13 -0
  50. package/dist/adapter/runtime/runs.js +20 -0
  51. package/dist/adapter/runtime/state.d.ts +8 -0
  52. package/dist/adapter/runtime/state.js +28 -0
  53. package/dist/adapter/runtime/tag.d.ts +11 -0
  54. package/dist/adapter/runtime/tag.js +4 -0
  55. package/dist/adapter/runtime/types.d.ts +8 -0
  56. package/dist/adapter/runtime/types.js +1 -0
  57. package/dist/adapter/runtime/useAdapter.svelte.d.ts +62 -0
  58. package/dist/adapter/runtime/useAdapter.svelte.js +228 -0
  59. package/dist/adapter/toasts/index.d.ts +3 -0
  60. package/dist/adapter/toasts/index.js +2 -0
  61. package/dist/adapter/toasts/render.d.ts +3 -0
  62. package/dist/adapter/toasts/render.js +4 -0
  63. package/dist/adapter/toasts/types.d.ts +6 -0
  64. package/dist/adapter/toasts/types.js +1 -0
  65. package/dist/adapter/toasts/useToasts.d.ts +7 -0
  66. package/dist/adapter/toasts/useToasts.js +13 -0
  67. package/dist/components/accordion/Accordion.svelte +43 -0
  68. package/dist/components/accordion/Accordion.svelte.d.ts +4 -0
  69. package/dist/components/accordion/base.component.d.ts +5 -0
  70. package/dist/components/accordion/base.component.js +1 -0
  71. package/dist/components/accordion/index.d.ts +6 -0
  72. package/dist/components/accordion/index.js +7 -0
  73. package/dist/components/accordion/item/Item.svelte +84 -0
  74. package/dist/components/accordion/item/Item.svelte.d.ts +4 -0
  75. package/dist/components/accordion/item/base.component.d.ts +7 -0
  76. package/dist/components/accordion/item/base.component.js +1 -0
  77. package/dist/components/accordion/item/index.d.ts +3 -0
  78. package/dist/components/accordion/item/index.js +3 -0
  79. package/dist/components/accordion/item/setup.component.d.ts +57 -0
  80. package/dist/components/accordion/item/setup.component.js +15 -0
  81. package/dist/components/accordion/setup.component.d.ts +47 -0
  82. package/dist/components/accordion/setup.component.js +21 -0
  83. package/dist/components/button/Button.svelte +33 -0
  84. package/dist/components/button/Button.svelte.d.ts +4 -0
  85. package/dist/components/button/base.component.d.ts +7 -0
  86. package/dist/components/button/base.component.js +1 -0
  87. package/dist/components/button/index.d.ts +3 -0
  88. package/dist/components/button/index.js +3 -0
  89. package/dist/components/button/setup.component.d.ts +43 -0
  90. package/dist/components/button/setup.component.js +10 -0
  91. package/dist/components/calendar/Calendar.svelte +193 -0
  92. package/dist/components/calendar/Calendar.svelte.d.ts +4 -0
  93. package/dist/components/calendar/base.component.d.ts +5 -0
  94. package/dist/components/calendar/base.component.js +1 -0
  95. package/dist/components/calendar/index.d.ts +6 -0
  96. package/dist/components/calendar/index.js +7 -0
  97. package/dist/components/calendar/item/Item.svelte +31 -0
  98. package/dist/components/calendar/item/Item.svelte.d.ts +4 -0
  99. package/dist/components/calendar/item/base.component.d.ts +6 -0
  100. package/dist/components/calendar/item/base.component.js +1 -0
  101. package/dist/components/calendar/item/index.d.ts +3 -0
  102. package/dist/components/calendar/item/index.js +3 -0
  103. package/dist/components/calendar/item/setup.component.d.ts +21 -0
  104. package/dist/components/calendar/item/setup.component.js +15 -0
  105. package/dist/components/calendar/setup.component.d.ts +47 -0
  106. package/dist/components/calendar/setup.component.js +19 -0
  107. package/dist/components/check-box/CheckBox.svelte +66 -0
  108. package/dist/components/check-box/CheckBox.svelte.d.ts +4 -0
  109. package/dist/components/check-box/base.component.d.ts +7 -0
  110. package/dist/components/check-box/base.component.js +1 -0
  111. package/dist/components/check-box/index.d.ts +3 -0
  112. package/dist/components/check-box/index.js +3 -0
  113. package/dist/components/check-box/setup.component.d.ts +51 -0
  114. package/dist/components/check-box/setup.component.js +11 -0
  115. package/dist/components/component/base.component.d.ts +5 -0
  116. package/dist/components/component/base.component.js +1 -0
  117. package/dist/components/component/index.d.ts +1 -0
  118. package/dist/components/component/index.js +1 -0
  119. package/dist/components/component-view/ComponentView.svelte +25 -0
  120. package/dist/components/component-view/ComponentView.svelte.d.ts +4 -0
  121. package/dist/components/component-view/base.component.d.ts +5 -0
  122. package/dist/components/component-view/base.component.js +1 -0
  123. package/dist/components/component-view/index.d.ts +3 -0
  124. package/dist/components/component-view/index.js +3 -0
  125. package/dist/components/component-view/setup.component.d.ts +17 -0
  126. package/dist/components/component-view/setup.component.js +10 -0
  127. package/dist/components/control/base.component.d.ts +5 -0
  128. package/dist/components/control/base.component.js +1 -0
  129. package/dist/components/control/index.d.ts +2 -0
  130. package/dist/components/control/index.js +2 -0
  131. package/dist/components/control/setup.component.d.ts +42 -0
  132. package/dist/components/control/setup.component.js +10 -0
  133. package/dist/components/date-input/DateInput.svelte +75 -0
  134. package/dist/components/date-input/DateInput.svelte.d.ts +4 -0
  135. package/dist/components/date-input/base.component.d.ts +6 -0
  136. package/dist/components/date-input/base.component.js +1 -0
  137. package/dist/components/date-input/index.d.ts +3 -0
  138. package/dist/components/date-input/index.js +3 -0
  139. package/dist/components/date-input/setup.component.d.ts +51 -0
  140. package/dist/components/date-input/setup.component.js +11 -0
  141. package/dist/components/date-picker/DatePicker.svelte +159 -0
  142. package/dist/components/date-picker/DatePicker.svelte.d.ts +4 -0
  143. package/dist/components/date-picker/base.component.d.ts +6 -0
  144. package/dist/components/date-picker/base.component.js +1 -0
  145. package/dist/components/date-picker/index.d.ts +3 -0
  146. package/dist/components/date-picker/index.js +3 -0
  147. package/dist/components/date-picker/setup.component.d.ts +83 -0
  148. package/dist/components/date-picker/setup.component.js +11 -0
  149. package/dist/components/dialog/Dialog.svelte +90 -0
  150. package/dist/components/dialog/Dialog.svelte.d.ts +4 -0
  151. package/dist/components/dialog/base.component.d.ts +6 -0
  152. package/dist/components/dialog/base.component.js +1 -0
  153. package/dist/components/dialog/index.d.ts +3 -0
  154. package/dist/components/dialog/index.js +3 -0
  155. package/dist/components/dialog/setup.component.d.ts +57 -0
  156. package/dist/components/dialog/setup.component.js +10 -0
  157. package/dist/components/drag-and-drop/DragAndDrop.svelte +12 -0
  158. package/dist/components/drag-and-drop/DragAndDrop.svelte.d.ts +4 -0
  159. package/dist/components/drag-and-drop/base.component.d.ts +6 -0
  160. package/dist/components/drag-and-drop/base.component.js +1 -0
  161. package/dist/components/drag-and-drop/index.d.ts +3 -0
  162. package/dist/components/drag-and-drop/index.js +3 -0
  163. package/dist/components/drag-and-drop/setup.component.d.ts +10 -0
  164. package/dist/components/drag-and-drop/setup.component.js +11 -0
  165. package/dist/components/drawer/Drawer.svelte +69 -0
  166. package/dist/components/drawer/Drawer.svelte.d.ts +4 -0
  167. package/dist/components/drawer/base.component.d.ts +6 -0
  168. package/dist/components/drawer/base.component.js +1 -0
  169. package/dist/components/drawer/index.d.ts +3 -0
  170. package/dist/components/drawer/index.js +3 -0
  171. package/dist/components/drawer/setup.component.d.ts +57 -0
  172. package/dist/components/drawer/setup.component.js +10 -0
  173. package/dist/components/field/Field.svelte +58 -0
  174. package/dist/components/field/Field.svelte.d.ts +4 -0
  175. package/dist/components/field/base.component.d.ts +5 -0
  176. package/dist/components/field/base.component.js +1 -0
  177. package/dist/components/field/index.d.ts +3 -0
  178. package/dist/components/field/index.js +3 -0
  179. package/dist/components/field/setup.component.d.ts +17 -0
  180. package/dist/components/field/setup.component.js +11 -0
  181. package/dist/components/frame/Frame.svelte +28 -0
  182. package/dist/components/frame/Frame.svelte.d.ts +4 -0
  183. package/dist/components/frame/base.component.d.ts +5 -0
  184. package/dist/components/frame/base.component.js +1 -0
  185. package/dist/components/frame/index.d.ts +3 -0
  186. package/dist/components/frame/index.js +3 -0
  187. package/dist/components/frame/setup.component.d.ts +65 -0
  188. package/dist/components/frame/setup.component.js +10 -0
  189. package/dist/components/icon/Icon.svelte +22 -0
  190. package/dist/components/icon/Icon.svelte.d.ts +4 -0
  191. package/dist/components/icon/base.component.d.ts +5 -0
  192. package/dist/components/icon/base.component.js +1 -0
  193. package/dist/components/icon/index.d.ts +3 -0
  194. package/dist/components/icon/index.js +3 -0
  195. package/dist/components/icon/setup.component.d.ts +37 -0
  196. package/dist/components/icon/setup.component.js +10 -0
  197. package/dist/components/index.d.ts +43 -0
  198. package/dist/components/index.js +43 -0
  199. package/dist/components/input/Input.svelte +75 -0
  200. package/dist/components/input/Input.svelte.d.ts +4 -0
  201. package/dist/components/input/base.component.d.ts +7 -0
  202. package/dist/components/input/base.component.js +1 -0
  203. package/dist/components/input/index.d.ts +3 -0
  204. package/dist/components/input/index.js +3 -0
  205. package/dist/components/input/setup.component.d.ts +51 -0
  206. package/dist/components/input/setup.component.js +11 -0
  207. package/dist/components/input-control/base.component.d.ts +6 -0
  208. package/dist/components/input-control/base.component.js +1 -0
  209. package/dist/components/input-control/index.d.ts +2 -0
  210. package/dist/components/input-control/index.js +2 -0
  211. package/dist/components/input-control/setup.component.d.ts +50 -0
  212. package/dist/components/input-control/setup.component.js +10 -0
  213. package/dist/components/interactive/base.component.d.ts +5 -0
  214. package/dist/components/interactive/base.component.js +1 -0
  215. package/dist/components/interactive/index.d.ts +2 -0
  216. package/dist/components/interactive/index.js +2 -0
  217. package/dist/components/interactive/setup.component.d.ts +16 -0
  218. package/dist/components/interactive/setup.component.js +10 -0
  219. package/dist/components/item-row/ItemRow.svelte +43 -0
  220. package/dist/components/item-row/ItemRow.svelte.d.ts +4 -0
  221. package/dist/components/item-row/index.d.ts +2 -0
  222. package/dist/components/item-row/index.js +2 -0
  223. package/dist/components/item-row/setup.component.d.ts +43 -0
  224. package/dist/components/item-row/setup.component.js +10 -0
  225. package/dist/components/label/Label.svelte +38 -0
  226. package/dist/components/label/Label.svelte.d.ts +4 -0
  227. package/dist/components/label/base.component.d.ts +5 -0
  228. package/dist/components/label/base.component.js +1 -0
  229. package/dist/components/label/index.d.ts +3 -0
  230. package/dist/components/label/index.js +3 -0
  231. package/dist/components/label/setup.component.d.ts +17 -0
  232. package/dist/components/label/setup.component.js +10 -0
  233. package/dist/components/list-box/ListBox.svelte +87 -0
  234. package/dist/components/list-box/ListBox.svelte.d.ts +4 -0
  235. package/dist/components/list-box/base.component.d.ts +7 -0
  236. package/dist/components/list-box/base.component.js +1 -0
  237. package/dist/components/list-box/group/Group.svelte +27 -0
  238. package/dist/components/list-box/group/Group.svelte.d.ts +4 -0
  239. package/dist/components/list-box/group/base.component.d.ts +5 -0
  240. package/dist/components/list-box/group/base.component.js +1 -0
  241. package/dist/components/list-box/group/index.d.ts +3 -0
  242. package/dist/components/list-box/group/index.js +3 -0
  243. package/dist/components/list-box/group/setup.component.d.ts +17 -0
  244. package/dist/components/list-box/group/setup.component.js +11 -0
  245. package/dist/components/list-box/index.d.ts +8 -0
  246. package/dist/components/list-box/index.js +9 -0
  247. package/dist/components/list-box/item/Item.svelte +72 -0
  248. package/dist/components/list-box/item/Item.svelte.d.ts +4 -0
  249. package/dist/components/list-box/item/base.component.d.ts +7 -0
  250. package/dist/components/list-box/item/base.component.js +1 -0
  251. package/dist/components/list-box/item/index.d.ts +3 -0
  252. package/dist/components/list-box/item/index.js +3 -0
  253. package/dist/components/list-box/item/setup.component.d.ts +61 -0
  254. package/dist/components/list-box/item/setup.component.js +15 -0
  255. package/dist/components/list-box/setup.component.d.ts +47 -0
  256. package/dist/components/list-box/setup.component.js +22 -0
  257. package/dist/components/menu/Menu.svelte +54 -0
  258. package/dist/components/menu/Menu.svelte.d.ts +4 -0
  259. package/dist/components/menu/base.component.d.ts +6 -0
  260. package/dist/components/menu/base.component.js +1 -0
  261. package/dist/components/menu/checkbox-item/CheckboxItem.svelte +67 -0
  262. package/dist/components/menu/checkbox-item/CheckboxItem.svelte.d.ts +4 -0
  263. package/dist/components/menu/checkbox-item/base.component.d.ts +7 -0
  264. package/dist/components/menu/checkbox-item/base.component.js +1 -0
  265. package/dist/components/menu/checkbox-item/index.d.ts +3 -0
  266. package/dist/components/menu/checkbox-item/index.js +3 -0
  267. package/dist/components/menu/checkbox-item/setup.component.d.ts +53 -0
  268. package/dist/components/menu/checkbox-item/setup.component.js +15 -0
  269. package/dist/components/menu/group/Group.svelte +27 -0
  270. package/dist/components/menu/group/Group.svelte.d.ts +4 -0
  271. package/dist/components/menu/group/base.component.d.ts +5 -0
  272. package/dist/components/menu/group/base.component.js +1 -0
  273. package/dist/components/menu/group/index.d.ts +3 -0
  274. package/dist/components/menu/group/index.js +3 -0
  275. package/dist/components/menu/group/setup.component.d.ts +17 -0
  276. package/dist/components/menu/group/setup.component.js +11 -0
  277. package/dist/components/menu/index.d.ts +20 -0
  278. package/dist/components/menu/index.js +30 -0
  279. package/dist/components/menu/item/Item.svelte +48 -0
  280. package/dist/components/menu/item/Item.svelte.d.ts +4 -0
  281. package/dist/components/menu/item/base.component.d.ts +8 -0
  282. package/dist/components/menu/item/base.component.js +1 -0
  283. package/dist/components/menu/item/index.d.ts +3 -0
  284. package/dist/components/menu/item/index.js +3 -0
  285. package/dist/components/menu/item/setup.component.d.ts +53 -0
  286. package/dist/components/menu/item/setup.component.js +15 -0
  287. package/dist/components/menu/popover-item/PopoverItem.svelte +79 -0
  288. package/dist/components/menu/popover-item/PopoverItem.svelte.d.ts +4 -0
  289. package/dist/components/menu/popover-item/base.component.d.ts +7 -0
  290. package/dist/components/menu/popover-item/base.component.js +1 -0
  291. package/dist/components/menu/popover-item/index.d.ts +3 -0
  292. package/dist/components/menu/popover-item/index.js +3 -0
  293. package/dist/components/menu/popover-item/setup.component.d.ts +75 -0
  294. package/dist/components/menu/popover-item/setup.component.js +15 -0
  295. package/dist/components/menu/radio-group/RadioGroup.svelte +27 -0
  296. package/dist/components/menu/radio-group/RadioGroup.svelte.d.ts +4 -0
  297. package/dist/components/menu/radio-group/base.component.d.ts +5 -0
  298. package/dist/components/menu/radio-group/base.component.js +1 -0
  299. package/dist/components/menu/radio-group/index.d.ts +3 -0
  300. package/dist/components/menu/radio-group/index.js +3 -0
  301. package/dist/components/menu/radio-group/setup.component.d.ts +17 -0
  302. package/dist/components/menu/radio-group/setup.component.js +13 -0
  303. package/dist/components/menu/radio-item/RadioItem.svelte +64 -0
  304. package/dist/components/menu/radio-item/RadioItem.svelte.d.ts +4 -0
  305. package/dist/components/menu/radio-item/base.component.d.ts +8 -0
  306. package/dist/components/menu/radio-item/base.component.js +1 -0
  307. package/dist/components/menu/radio-item/index.d.ts +3 -0
  308. package/dist/components/menu/radio-item/index.js +3 -0
  309. package/dist/components/menu/radio-item/setup.component.d.ts +53 -0
  310. package/dist/components/menu/radio-item/setup.component.js +15 -0
  311. package/dist/components/menu/separator/Separator.svelte +22 -0
  312. package/dist/components/menu/separator/Separator.svelte.d.ts +4 -0
  313. package/dist/components/menu/separator/base.component.d.ts +5 -0
  314. package/dist/components/menu/separator/base.component.js +1 -0
  315. package/dist/components/menu/separator/index.d.ts +3 -0
  316. package/dist/components/menu/separator/index.js +3 -0
  317. package/dist/components/menu/separator/setup.component.d.ts +17 -0
  318. package/dist/components/menu/separator/setup.component.js +10 -0
  319. package/dist/components/menu/setup.component.d.ts +35 -0
  320. package/dist/components/menu/setup.component.js +19 -0
  321. package/dist/components/menu/submenu/Submenu.svelte +180 -0
  322. package/dist/components/menu/submenu/Submenu.svelte.d.ts +15 -0
  323. package/dist/components/menu/submenu/base.component.d.ts +7 -0
  324. package/dist/components/menu/submenu/base.component.js +1 -0
  325. package/dist/components/menu/submenu/index.d.ts +3 -0
  326. package/dist/components/menu/submenu/index.js +3 -0
  327. package/dist/components/menu/submenu/setup.component.d.ts +79 -0
  328. package/dist/components/menu/submenu/setup.component.js +21 -0
  329. package/dist/components/number-input/NumberInput.svelte +119 -0
  330. package/dist/components/number-input/NumberInput.svelte.d.ts +4 -0
  331. package/dist/components/number-input/base.component.d.ts +7 -0
  332. package/dist/components/number-input/base.component.js +1 -0
  333. package/dist/components/number-input/index.d.ts +3 -0
  334. package/dist/components/number-input/index.js +3 -0
  335. package/dist/components/number-input/setup.component.d.ts +51 -0
  336. package/dist/components/number-input/setup.component.js +11 -0
  337. package/dist/components/pagination/Pagination.svelte +80 -0
  338. package/dist/components/pagination/Pagination.svelte.d.ts +4 -0
  339. package/dist/components/pagination/base.component.d.ts +6 -0
  340. package/dist/components/pagination/base.component.js +1 -0
  341. package/dist/components/pagination/index.d.ts +3 -0
  342. package/dist/components/pagination/index.js +3 -0
  343. package/dist/components/pagination/item/Item.svelte +44 -0
  344. package/dist/components/pagination/item/Item.svelte.d.ts +4 -0
  345. package/dist/components/pagination/item/base.component.d.ts +6 -0
  346. package/dist/components/pagination/item/base.component.js +1 -0
  347. package/dist/components/pagination/item/index.d.ts +3 -0
  348. package/dist/components/pagination/item/index.js +3 -0
  349. package/dist/components/pagination/item/setup.component.d.ts +23 -0
  350. package/dist/components/pagination/item/setup.component.js +15 -0
  351. package/dist/components/pagination/setup.component.d.ts +47 -0
  352. package/dist/components/pagination/setup.component.js +19 -0
  353. package/dist/components/popover/Popover.svelte +72 -0
  354. package/dist/components/popover/Popover.svelte.d.ts +4 -0
  355. package/dist/components/popover/base.component.d.ts +6 -0
  356. package/dist/components/popover/base.component.js +1 -0
  357. package/dist/components/popover/index.d.ts +3 -0
  358. package/dist/components/popover/index.js +3 -0
  359. package/dist/components/popover/setup.component.d.ts +47 -0
  360. package/dist/components/popover/setup.component.js +10 -0
  361. package/dist/components/progress-linear/ProgressLinear.svelte +29 -0
  362. package/dist/components/progress-linear/ProgressLinear.svelte.d.ts +4 -0
  363. package/dist/components/progress-linear/base.component.d.ts +5 -0
  364. package/dist/components/progress-linear/base.component.js +1 -0
  365. package/dist/components/progress-linear/index.d.ts +3 -0
  366. package/dist/components/progress-linear/index.js +3 -0
  367. package/dist/components/progress-linear/setup.component.d.ts +33 -0
  368. package/dist/components/progress-linear/setup.component.js +10 -0
  369. package/dist/components/progress-spinner/ProgressSpinner.svelte +35 -0
  370. package/dist/components/progress-spinner/ProgressSpinner.svelte.d.ts +4 -0
  371. package/dist/components/progress-spinner/base.component.d.ts +5 -0
  372. package/dist/components/progress-spinner/base.component.js +1 -0
  373. package/dist/components/progress-spinner/index.d.ts +3 -0
  374. package/dist/components/progress-spinner/index.js +3 -0
  375. package/dist/components/progress-spinner/setup.component.d.ts +33 -0
  376. package/dist/components/progress-spinner/setup.component.js +10 -0
  377. package/dist/components/radio-group/RadioGroup.svelte +34 -0
  378. package/dist/components/radio-group/RadioGroup.svelte.d.ts +4 -0
  379. package/dist/components/radio-group/base.component.d.ts +5 -0
  380. package/dist/components/radio-group/base.component.js +1 -0
  381. package/dist/components/radio-group/index.d.ts +6 -0
  382. package/dist/components/radio-group/index.js +7 -0
  383. package/dist/components/radio-group/item/Item.svelte +51 -0
  384. package/dist/components/radio-group/item/Item.svelte.d.ts +4 -0
  385. package/dist/components/radio-group/item/base.component.d.ts +8 -0
  386. package/dist/components/radio-group/item/base.component.js +1 -0
  387. package/dist/components/radio-group/item/index.d.ts +3 -0
  388. package/dist/components/radio-group/item/index.js +3 -0
  389. package/dist/components/radio-group/item/setup.component.d.ts +49 -0
  390. package/dist/components/radio-group/item/setup.component.js +15 -0
  391. package/dist/components/radio-group/setup.component.d.ts +47 -0
  392. package/dist/components/radio-group/setup.component.js +19 -0
  393. package/dist/components/rating/Rating.svelte +57 -0
  394. package/dist/components/rating/Rating.svelte.d.ts +4 -0
  395. package/dist/components/rating/base.component.d.ts +6 -0
  396. package/dist/components/rating/base.component.js +1 -0
  397. package/dist/components/rating/index.d.ts +3 -0
  398. package/dist/components/rating/index.js +3 -0
  399. package/dist/components/rating/setup.component.d.ts +51 -0
  400. package/dist/components/rating/setup.component.js +11 -0
  401. package/dist/components/scroller/Scroller.svelte +67 -0
  402. package/dist/components/scroller/Scroller.svelte.d.ts +4 -0
  403. package/dist/components/scroller/base.component.d.ts +6 -0
  404. package/dist/components/scroller/base.component.js +1 -0
  405. package/dist/components/scroller/index.d.ts +3 -0
  406. package/dist/components/scroller/index.js +3 -0
  407. package/dist/components/scroller/setup.component.d.ts +43 -0
  408. package/dist/components/scroller/setup.component.js +10 -0
  409. package/dist/components/select/Select.svelte +143 -0
  410. package/dist/components/select/Select.svelte.d.ts +4 -0
  411. package/dist/components/select/base.component.d.ts +7 -0
  412. package/dist/components/select/base.component.js +1 -0
  413. package/dist/components/select/group/Group.svelte +27 -0
  414. package/dist/components/select/group/Group.svelte.d.ts +4 -0
  415. package/dist/components/select/group/base.component.d.ts +5 -0
  416. package/dist/components/select/group/base.component.js +1 -0
  417. package/dist/components/select/group/index.d.ts +3 -0
  418. package/dist/components/select/group/index.js +3 -0
  419. package/dist/components/select/group/setup.component.d.ts +17 -0
  420. package/dist/components/select/group/setup.component.js +11 -0
  421. package/dist/components/select/index.d.ts +8 -0
  422. package/dist/components/select/index.js +9 -0
  423. package/dist/components/select/item/Item.svelte +74 -0
  424. package/dist/components/select/item/Item.svelte.d.ts +4 -0
  425. package/dist/components/select/item/base.component.d.ts +7 -0
  426. package/dist/components/select/item/base.component.js +1 -0
  427. package/dist/components/select/item/index.d.ts +3 -0
  428. package/dist/components/select/item/index.js +3 -0
  429. package/dist/components/select/item/setup.component.d.ts +61 -0
  430. package/dist/components/select/item/setup.component.js +15 -0
  431. package/dist/components/select/setup.component.d.ts +85 -0
  432. package/dist/components/select/setup.component.js +21 -0
  433. package/dist/components/skeleton/Skeleton.svelte +32 -0
  434. package/dist/components/skeleton/Skeleton.svelte.d.ts +4 -0
  435. package/dist/components/skeleton/base.component.d.ts +5 -0
  436. package/dist/components/skeleton/base.component.js +1 -0
  437. package/dist/components/skeleton/index.d.ts +3 -0
  438. package/dist/components/skeleton/index.js +3 -0
  439. package/dist/components/skeleton/setup.component.d.ts +21 -0
  440. package/dist/components/skeleton/setup.component.js +10 -0
  441. package/dist/components/slider/Slider.svelte +68 -0
  442. package/dist/components/slider/Slider.svelte.d.ts +4 -0
  443. package/dist/components/slider/base.component.d.ts +6 -0
  444. package/dist/components/slider/base.component.js +1 -0
  445. package/dist/components/slider/index.d.ts +3 -0
  446. package/dist/components/slider/index.js +3 -0
  447. package/dist/components/slider/setup.component.d.ts +43 -0
  448. package/dist/components/slider/setup.component.js +11 -0
  449. package/dist/components/stylable/base.component.d.ts +5 -0
  450. package/dist/components/stylable/base.component.js +1 -0
  451. package/dist/components/stylable/index.d.ts +2 -0
  452. package/dist/components/stylable/index.js +2 -0
  453. package/dist/components/stylable/setup.component.d.ts +16 -0
  454. package/dist/components/stylable/setup.component.js +10 -0
  455. package/dist/components/switch/Switch.svelte +43 -0
  456. package/dist/components/switch/Switch.svelte.d.ts +4 -0
  457. package/dist/components/switch/base.component.d.ts +7 -0
  458. package/dist/components/switch/base.component.js +1 -0
  459. package/dist/components/switch/index.d.ts +3 -0
  460. package/dist/components/switch/index.js +3 -0
  461. package/dist/components/switch/setup.component.d.ts +51 -0
  462. package/dist/components/switch/setup.component.js +11 -0
  463. package/dist/components/table/Table.svelte +79 -0
  464. package/dist/components/table/Table.svelte.d.ts +4 -0
  465. package/dist/components/table/base.component.d.ts +6 -0
  466. package/dist/components/table/base.component.js +1 -0
  467. package/dist/components/table/column/Column.svelte +70 -0
  468. package/dist/components/table/column/Column.svelte.d.ts +4 -0
  469. package/dist/components/table/column/base.component.d.ts +6 -0
  470. package/dist/components/table/column/base.component.js +1 -0
  471. package/dist/components/table/column/index.d.ts +3 -0
  472. package/dist/components/table/column/index.js +3 -0
  473. package/dist/components/table/column/setup.component.d.ts +17 -0
  474. package/dist/components/table/column/setup.component.js +10 -0
  475. package/dist/components/table/index.d.ts +8 -0
  476. package/dist/components/table/index.js +9 -0
  477. package/dist/components/table/row/Row.svelte +74 -0
  478. package/dist/components/table/row/Row.svelte.d.ts +4 -0
  479. package/dist/components/table/row/base.component.d.ts +6 -0
  480. package/dist/components/table/row/base.component.js +1 -0
  481. package/dist/components/table/row/index.d.ts +3 -0
  482. package/dist/components/table/row/index.js +3 -0
  483. package/dist/components/table/row/setup.component.d.ts +23 -0
  484. package/dist/components/table/row/setup.component.js +15 -0
  485. package/dist/components/table/setup.component.d.ts +53 -0
  486. package/dist/components/table/setup.component.js +23 -0
  487. package/dist/components/tabs/Tabs.svelte +64 -0
  488. package/dist/components/tabs/Tabs.svelte.d.ts +4 -0
  489. package/dist/components/tabs/base.component.d.ts +7 -0
  490. package/dist/components/tabs/base.component.js +1 -0
  491. package/dist/components/tabs/content/Content.svelte +21 -0
  492. package/dist/components/tabs/content/Content.svelte.d.ts +4 -0
  493. package/dist/components/tabs/content/base.component.d.ts +5 -0
  494. package/dist/components/tabs/content/base.component.js +1 -0
  495. package/dist/components/tabs/content/index.d.ts +3 -0
  496. package/dist/components/tabs/content/index.js +3 -0
  497. package/dist/components/tabs/content/setup.component.d.ts +29 -0
  498. package/dist/components/tabs/content/setup.component.js +15 -0
  499. package/dist/components/tabs/index.d.ts +8 -0
  500. package/dist/components/tabs/index.js +9 -0
  501. package/dist/components/tabs/item/Item.svelte +74 -0
  502. package/dist/components/tabs/item/Item.svelte.d.ts +4 -0
  503. package/dist/components/tabs/item/base.component.d.ts +7 -0
  504. package/dist/components/tabs/item/base.component.js +1 -0
  505. package/dist/components/tabs/item/index.d.ts +3 -0
  506. package/dist/components/tabs/item/index.js +3 -0
  507. package/dist/components/tabs/item/setup.component.d.ts +57 -0
  508. package/dist/components/tabs/item/setup.component.js +15 -0
  509. package/dist/components/tabs/setup.component.d.ts +47 -0
  510. package/dist/components/tabs/setup.component.js +21 -0
  511. package/dist/components/tags/Tags.svelte +49 -0
  512. package/dist/components/tags/Tags.svelte.d.ts +4 -0
  513. package/dist/components/tags/base.component.d.ts +6 -0
  514. package/dist/components/tags/base.component.js +1 -0
  515. package/dist/components/tags/index.d.ts +6 -0
  516. package/dist/components/tags/index.js +7 -0
  517. package/dist/components/tags/item/Item.svelte +82 -0
  518. package/dist/components/tags/item/Item.svelte.d.ts +4 -0
  519. package/dist/components/tags/item/base.component.d.ts +7 -0
  520. package/dist/components/tags/item/base.component.js +1 -0
  521. package/dist/components/tags/item/index.d.ts +3 -0
  522. package/dist/components/tags/item/index.js +3 -0
  523. package/dist/components/tags/item/setup.component.d.ts +49 -0
  524. package/dist/components/tags/item/setup.component.js +15 -0
  525. package/dist/components/tags/setup.component.d.ts +47 -0
  526. package/dist/components/tags/setup.component.js +19 -0
  527. package/dist/components/textable/base.component.d.ts +5 -0
  528. package/dist/components/textable/base.component.js +1 -0
  529. package/dist/components/textable/index.d.ts +2 -0
  530. package/dist/components/textable/index.js +2 -0
  531. package/dist/components/textable/setup.component.d.ts +42 -0
  532. package/dist/components/textable/setup.component.js +10 -0
  533. package/dist/components/textarea/Textarea.svelte +42 -0
  534. package/dist/components/textarea/Textarea.svelte.d.ts +4 -0
  535. package/dist/components/textarea/base.component.d.ts +7 -0
  536. package/dist/components/textarea/base.component.js +1 -0
  537. package/dist/components/textarea/index.d.ts +3 -0
  538. package/dist/components/textarea/index.js +3 -0
  539. package/dist/components/textarea/setup.component.d.ts +55 -0
  540. package/dist/components/textarea/setup.component.js +11 -0
  541. package/dist/components/toasts/Toasts.svelte +58 -0
  542. package/dist/components/toasts/Toasts.svelte.d.ts +4 -0
  543. package/dist/components/toasts/base.component.d.ts +6 -0
  544. package/dist/components/toasts/base.component.js +1 -0
  545. package/dist/components/toasts/index.d.ts +3 -0
  546. package/dist/components/toasts/index.js +3 -0
  547. package/dist/components/toasts/item/Item.svelte +94 -0
  548. package/dist/components/toasts/item/Item.svelte.d.ts +4 -0
  549. package/dist/components/toasts/item/base.component.d.ts +6 -0
  550. package/dist/components/toasts/item/base.component.js +1 -0
  551. package/dist/components/toasts/item/index.d.ts +3 -0
  552. package/dist/components/toasts/item/index.js +3 -0
  553. package/dist/components/toasts/item/setup.component.d.ts +21 -0
  554. package/dist/components/toasts/item/setup.component.js +15 -0
  555. package/dist/components/toasts/setup.component.d.ts +25 -0
  556. package/dist/components/toasts/setup.component.js +21 -0
  557. package/dist/components/tooltip/Tooltip.svelte +37 -0
  558. package/dist/components/tooltip/Tooltip.svelte.d.ts +4 -0
  559. package/dist/components/tooltip/base.component.d.ts +6 -0
  560. package/dist/components/tooltip/base.component.js +1 -0
  561. package/dist/components/tooltip/index.d.ts +3 -0
  562. package/dist/components/tooltip/index.js +3 -0
  563. package/dist/components/tooltip/setup.component.d.ts +31 -0
  564. package/dist/components/tooltip/setup.component.js +10 -0
  565. package/dist/components/value-control/base.component.d.ts +6 -0
  566. package/dist/components/value-control/base.component.js +1 -0
  567. package/dist/components/value-control/index.d.ts +2 -0
  568. package/dist/components/value-control/index.js +2 -0
  569. package/dist/components/value-control/setup.component.d.ts +42 -0
  570. package/dist/components/value-control/setup.component.js +10 -0
  571. package/dist/components/virtual/Virtual.svelte +12 -0
  572. package/dist/components/virtual/Virtual.svelte.d.ts +4 -0
  573. package/dist/components/virtual/base.component.d.ts +6 -0
  574. package/dist/components/virtual/base.component.js +1 -0
  575. package/dist/components/virtual/index.d.ts +3 -0
  576. package/dist/components/virtual/index.js +3 -0
  577. package/dist/components/virtual/setup.component.d.ts +10 -0
  578. package/dist/components/virtual/setup.component.js +11 -0
  579. package/dist/index.d.ts +9 -0
  580. package/dist/index.js +5 -0
  581. package/dist/types.d.ts +41 -0
  582. package/dist/types.js +1 -0
  583. package/package.json +61 -4
@@ -0,0 +1,8 @@
1
+ import type { Snippet } from 'svelte';
2
+ export type TTeleportProps = {
3
+ /** Селектор цели: `body`, `#layers`. */
4
+ to: string | undefined;
5
+ /** Рисовать на месте, без портала. */
6
+ disabled?: boolean;
7
+ children?: Snippet;
8
+ };
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,62 @@
1
+ /**
2
+ * useAdapter — binds an adapter context to Svelte, the counterpart of Vue's
3
+ * `useAdapter`.
4
+ *
5
+ * 1. Core → Svelte: a subscription to the binding state; a property read in a
6
+ * tracking context keeps its value in a raw rune
7
+ * 2. Svelte → Core: input props in an effect
8
+ * 3. The component is accepted: `adapter.attach()` at initialisation
9
+ * 4. Events go to the `onXxx` callback props, after the acceptance and until
10
+ * `detach`
11
+ * 5. The root, by an attachment: to `TElementPlugin`, to the component's
12
+ * `ref` and to the `rootElement` rune
13
+ * 6. Cleanup on destroy
14
+ *
15
+ * The collection facade is bound by `useCollectionAdapter`, before the
16
+ * component, and `joinBindings` joins it with the component's binding.
17
+ * AGENTS.md (Svelte), «Связка».
18
+ */
19
+ import type { IAdapterContext, IComponentContract, TAdapterState } from '@soxa-ui/setup';
20
+ import { type TJoinedState } from './state';
21
+ /** The props the component did not take; it takes `ref` from `$props()` itself. */
22
+ type TForwardProps<TProps extends object> = Omit<Partial<TProps>, 'children' | 'ctrl' | 'ref'>;
23
+ /** The root's receiver: the component's bindable `ref` prop, `(node) => (ref = node)`. */
24
+ export type TRootReceiver = (node: Element | null) => void;
25
+ export type TBinding<C extends IComponentContract = IComponentContract, TProps extends object = object, TState extends object = TAdapterState<C>> = {
26
+ readonly ctrl: C['instance'];
27
+ readonly state: TState;
28
+ /** The consumer's root attributes, with its attachments (symbol keys). */
29
+ readonly forwardProps: TForwardProps<TProps>;
30
+ /** The root bound to `TElementPlugin`; `null` before the render. */
31
+ readonly rootElement: Element | null;
32
+ /** The root's attachment: binds to `TElementPlugin`, then the component's `ref`. */
33
+ attachElement: (node: Element) => () => void;
34
+ /** Only the binding: for a root inside a wrapper (`toWrappedRootProps`). */
35
+ bindRef: (node: Element) => () => void;
36
+ /** Only the `ref`: for the root's wrapper. */
37
+ consumerRef: (node: Element) => () => void;
38
+ };
39
+ /** The binding of a collection facade: it has no `ctrl` and no root of its own. */
40
+ export type TCollectionBinding<TState extends object, TProps extends object = object> = {
41
+ readonly state: TState;
42
+ /** The attributes the facade leaves; `joinBindings` passes it the component's rest. */
43
+ forward: (props: TForwardProps<TProps>) => TForwardProps<TProps>;
44
+ };
45
+ /** `receive` is the root's receiver; an assembly without its own root (`setupControl`) has none. */
46
+ export declare function useAdapter<C extends IComponentContract, TProps extends object>(adapter: IAdapterContext<C>, getProps: () => TProps, receive?: TRootReceiver): TBinding<C, TProps>;
47
+ /**
48
+ * The adapter of a collection facade: its state and what it leaves of the
49
+ * attributes. No `ctrl` and no root: they are the component's, whose binding
50
+ * `joinBindings` joins the facade with. Bound before the component: the
51
+ * facade, accepted, writes into it, and that is its starting state.
52
+ */
53
+ export declare function useCollectionAdapter<F extends IComponentContract, TProps extends object>(facade: IAdapterContext<F>, getProps: () => TProps): TCollectionBinding<TAdapterState<F>, TProps>;
54
+ /**
55
+ * One binding of a component and its facades, for the markup: the state of
56
+ * all of them as one view, the attributes of the last facade (each takes its
57
+ * own from the rest of the previous one, the first from the component's),
58
+ * `ctrl` and the root of the component.
59
+ */
60
+ export declare function joinBindings<C extends IComponentContract, TProps extends object, TState extends object, TFacade extends object>(owner: TBinding<C, TProps, TState>, facade: TCollectionBinding<TFacade, TProps>): TBinding<C, TProps, TJoinedState<TFacade, TState>>;
61
+ export declare function joinBindings<C extends IComponentContract, TProps extends object, TState extends object, TFacade extends object, TOwnerFacade extends object>(owner: TBinding<C, TProps, TState>, facade: TCollectionBinding<TFacade, TProps>, ownerFacade: TCollectionBinding<TOwnerFacade, TProps>): TBinding<C, TProps, TJoinedState<TOwnerFacade, TJoinedState<TFacade, TState>>>;
62
+ export {};
@@ -0,0 +1,228 @@
1
+ /**
2
+ * useAdapter — binds an adapter context to Svelte, the counterpart of Vue's
3
+ * `useAdapter`.
4
+ *
5
+ * 1. Core → Svelte: a subscription to the binding state; a property read in a
6
+ * tracking context keeps its value in a raw rune
7
+ * 2. Svelte → Core: input props in an effect
8
+ * 3. The component is accepted: `adapter.attach()` at initialisation
9
+ * 4. Events go to the `onXxx` callback props, after the acceptance and until
10
+ * `detach`
11
+ * 5. The root, by an attachment: to `TElementPlugin`, to the component's
12
+ * `ref` and to the `rootElement` rune
13
+ * 6. Cleanup on destroy
14
+ *
15
+ * The collection facade is bound by `useCollectionAdapter`, before the
16
+ * component, and `joinBindings` joins it with the component's binding.
17
+ * AGENTS.md (Svelte), «Связка».
18
+ */
19
+ import { onDestroy, untrack } from 'svelte';
20
+ import { toInstanceState } from '@soxa-ui/setup';
21
+ import { SvelteProfile } from '../common';
22
+ import { joinState } from './state';
23
+ /** An assembly without its own root (`setupControl`): there is no one to give the node to. */
24
+ const NO_RECEIVER = () => { };
25
+ /**
26
+ * The own rune of a binding property a tracking context has read: a raw rune
27
+ * (`$state.raw`). The core hands out values, not handles on live state, and
28
+ * reports a change with a new value (AGENTS.md, «Контракт границы core →
29
+ * ui»). The deep `$state` rune wrapped everything composite in a proxy (the
30
+ * array of a table row's cells, each cell, its `aria` and `dataset`) with a
31
+ * source per key read, and there is nothing to watch: nobody changes them in
32
+ * place. In the table that was a third of a row's memory
33
+ * (benchmarks/table/svelte.md, 869fmcau7).
34
+ *
35
+ * `born` is the binding's version when the rune was made (see `TValues`).
36
+ */
37
+ class TRawValue {
38
+ born;
39
+ value = $state.raw();
40
+ constructor(value, born) {
41
+ this.born = born;
42
+ this.value = value;
43
+ }
44
+ }
45
+ /** `TValues` with the version in a raw rune. */
46
+ class TValueStore {
47
+ values = new Map();
48
+ version = $state.raw(0);
49
+ }
50
+ /** Whether the property has arrived; as an object property, a symbol never has. */
51
+ function has({ values }, name) {
52
+ return typeof name === 'string' && values.has(name);
53
+ }
54
+ /** Value of the property; read in a tracking context, a property without a rune gets one. */
55
+ function valueOf(target, name) {
56
+ if (!has(target, name))
57
+ return undefined;
58
+ const entry = target.values.get(name);
59
+ if (entry instanceof TRawValue)
60
+ return entry.value;
61
+ if ($effect.tracking())
62
+ target.values.set(name, new TRawValue(entry, target.version));
63
+ return entry;
64
+ }
65
+ /** New value from the subscription; the caller writes it untracked (see `useExchange`). */
66
+ function write(target, name, value) {
67
+ const entry = target.values.get(name);
68
+ if (!(entry instanceof TRawValue)) {
69
+ target.values.set(name, value);
70
+ }
71
+ else if (entry.value !== value) {
72
+ if (entry.born === target.version)
73
+ target.version++;
74
+ entry.value = value;
75
+ }
76
+ }
77
+ /**
78
+ * Binding state: a proxy over its properties, one handler for all bindings.
79
+ * A getter per property (a closure, its scopes and a pair of accessors) cost
80
+ * a table row kilobytes (benchmarks/table/svelte.md).
81
+ */
82
+ const STATE = {
83
+ get: valueOf,
84
+ has,
85
+ ownKeys: ({ values }) => [...values.keys()],
86
+ getOwnPropertyDescriptor: (target, name) => has(target, name)
87
+ ? {
88
+ value: valueOf(target, name),
89
+ enumerable: true,
90
+ configurable: true,
91
+ writable: false,
92
+ }
93
+ : undefined,
94
+ };
95
+ /** What `useAdapter` and `useCollectionAdapter` share. */
96
+ function useExchange(adapter, getProps) {
97
+ const exchange = adapter.connect(SvelteProfile);
98
+ const values = new TValueStore();
99
+ // 1. Subscribe right away, not in an effect: there are no effects on the
100
+ // server. The write is untracked: the core changes in the middle of
101
+ // rendering too
102
+ onDestroy(exchange.state.subscribe((name, value) => {
103
+ untrack(() => write(values, name, value));
104
+ }));
105
+ // 2. The effect reads all props, the binding writes only the changed ones
106
+ $effect(() => {
107
+ exchange.inputs.full(getProps());
108
+ });
109
+ // 3. The component's initialisation, on the server too, is its mount: a
110
+ // collection item joins the collection by the server markup, in DOM order
111
+ adapter.attach();
112
+ // 4. Events after the acceptance: what it writes is the starting state, as
113
+ // in the other adapters (benchmarks/parity/README.md). A component with
114
+ // collection facades binds them first: the facade, accepted, writes into
115
+ // the component (the months of Calendar's grids, Table's `dataset`). One
116
+ // subscription for the whole life, at initialisation, like the state: in an
117
+ // effect it began after the children, and the markup items that joined the
118
+ // collection while mounting never reached the consumer. The callback is
119
+ // read lazily and called untracked: an event comes in the middle of
120
+ // rendering too (an item joins inside the owner's block), and a consumer
121
+ // writing its state there would be an unsafe mutation for Svelte.
122
+ // `onDestroy` unsubscribes on the server, where effects do not run
123
+ const stop = exchange.events.listen((exportName, args) => {
124
+ untrack(() => {
125
+ const callback = Reflect.get(getProps(), exportName);
126
+ if (typeof callback === 'function')
127
+ callback(...args);
128
+ });
129
+ });
130
+ onDestroy(stop);
131
+ // The consumer stops on `detach`: it hears nothing once the teardown began,
132
+ // as in the other adapters (benchmarks/parity/README.md). `detach` comes
133
+ // from a pre-effect's teardown: Svelte destroys a block's effects in the
134
+ // order they were made, and a pre-effect is made at once, before the
135
+ // template's blocks, while `$effect` and `onDestroy` wait for the mount and
136
+ // come after them. Stopped in those, the consumer heard the children go (the
137
+ // markup items leaving the collection with an ever shorter list, the root's
138
+ // unbinding). A collection item is also detached by its collection, before
139
+ // the siblings go one by one (`TCollectionMembers`). The nodes are removed
140
+ // before any effect, so the blur of a removed node still reaches the
141
+ // consumer
142
+ adapter.events.on('detach', stop);
143
+ $effect.pre(() => () => adapter.detach());
144
+ // 6. One effect that tracks nothing: its teardown destroys the adapter
145
+ $effect(() => () => adapter.destroy());
146
+ return { exchange, state: new Proxy(values, STATE) };
147
+ }
148
+ /**
149
+ * What the binding did not take, plus the consumer's attachments: Svelte
150
+ * passes them as props with symbol keys, and the binding does not see them.
151
+ */
152
+ function forwardOf(exchange, props) {
153
+ const forward = exchange.forward(props);
154
+ for (const key of Object.getOwnPropertySymbols(props)) {
155
+ Reflect.set(forward, key, Reflect.get(props, key));
156
+ }
157
+ return forward;
158
+ }
159
+ /** `receive` is the root's receiver; an assembly without its own root (`setupControl`) has none. */
160
+ export function useAdapter(adapter, getProps, receive = NO_RECEIVER) {
161
+ const { exchange, state } = useExchange(adapter, getProps);
162
+ const forwardProps = $derived(forwardOf(exchange, getProps()));
163
+ let rootElement = $state.raw(null);
164
+ // 5. A tag change recreates the node: the cleanup unbinds the previous one
165
+ const bindRef = (node) => {
166
+ adapter.bindElement(node);
167
+ rootElement = node;
168
+ return () => {
169
+ adapter.bindElement(null);
170
+ rootElement = null;
171
+ };
172
+ };
173
+ // Untracked: the `bind:ref={get, set}` setter is consumer code, and what it
174
+ // reads would rerun the attachment
175
+ const consumerRef = (node) => {
176
+ untrack(() => receive(node));
177
+ return () => untrack(() => receive(null));
178
+ };
179
+ return {
180
+ ctrl: adapter.instance,
181
+ state: toInstanceState(state),
182
+ bindRef,
183
+ consumerRef,
184
+ get forwardProps() {
185
+ return forwardProps;
186
+ },
187
+ get rootElement() {
188
+ return rootElement;
189
+ },
190
+ attachElement(node) {
191
+ const unbind = bindRef(node);
192
+ const release = consumerRef(node);
193
+ return () => {
194
+ unbind();
195
+ release();
196
+ };
197
+ },
198
+ };
199
+ }
200
+ /**
201
+ * The adapter of a collection facade: its state and what it leaves of the
202
+ * attributes. No `ctrl` and no root: they are the component's, whose binding
203
+ * `joinBindings` joins the facade with. Bound before the component: the
204
+ * facade, accepted, writes into it, and that is its starting state.
205
+ */
206
+ export function useCollectionAdapter(facade, getProps) {
207
+ const { exchange, state } = useExchange(facade, getProps);
208
+ return {
209
+ state: toInstanceState(state),
210
+ forward: (props) => forwardOf(exchange, props),
211
+ };
212
+ }
213
+ export function joinBindings(owner, ...facades) {
214
+ const forwardProps = $derived(facades.reduce((rest, facade) => facade.forward(rest), owner.forwardProps));
215
+ return {
216
+ ctrl: owner.ctrl,
217
+ state: facades.reduce((state, facade) => joinState(facade.state, state), owner.state),
218
+ attachElement: owner.attachElement,
219
+ bindRef: owner.bindRef,
220
+ consumerRef: owner.consumerRef,
221
+ get forwardProps() {
222
+ return forwardProps;
223
+ },
224
+ get rootElement() {
225
+ return owner.rootElement;
226
+ },
227
+ };
228
+ }
@@ -0,0 +1,3 @@
1
+ export { useToasts } from './useToasts';
2
+ export { isToastRender } from './render';
3
+ export type { TToastRender } from './types';
@@ -0,0 +1,2 @@
1
+ export { useToasts } from './useToasts';
2
+ export { isToastRender } from './render';
@@ -0,0 +1,3 @@
1
+ import type { TToastRender } from './types';
2
+ /** Своё содержимое тоста — компонент Svelte, то есть функция. */
3
+ export declare function isToastRender(value: unknown): value is TToastRender;
@@ -0,0 +1,4 @@
1
+ /** Своё содержимое тоста — компонент Svelte, то есть функция. */
2
+ export function isToastRender(value) {
3
+ return typeof value === 'function';
4
+ }
@@ -0,0 +1,6 @@
1
+ import type { Component } from 'svelte';
2
+ import type { IToastsItem } from '@soxa-ui/core';
3
+ /** Своё содержимое тоста (`render`): ядро его не читает, тип даёт адаптер. */
4
+ export type TToastRender = Component<{
5
+ toast: IToastsItem;
6
+ }>;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,7 @@
1
+ import type { IToastsApi } from '@soxa-ui/core';
2
+ import type { TToastRender } from './types';
3
+ /**
4
+ * API тостов ближайшего `<Toasts>` — лифтом, поэтому только при
5
+ * инициализации компонента. Нет менеджера — ошибка, а не молчаливый `show`.
6
+ */
7
+ export declare function useToasts(): IToastsApi<TToastRender>;
@@ -0,0 +1,13 @@
1
+ import { TOASTS_ELEVATOR } from '@soxa-ui/setup';
2
+ import { useElevator } from '../elevator';
3
+ /**
4
+ * API тостов ближайшего `<Toasts>` — лифтом, поэтому только при
5
+ * инициализации компонента. Нет менеджера — ошибка, а не молчаливый `show`.
6
+ */
7
+ export function useToasts() {
8
+ const api = useElevator()(TOASTS_ELEVATOR).up();
9
+ if (!api) {
10
+ throw new Error('useToasts(): выше по дереву нет <Toasts>. Оберните приложение менеджером: <Toasts><App /></Toasts>');
11
+ }
12
+ return api;
13
+ }
@@ -0,0 +1,43 @@
1
+ <script lang="ts">
2
+ import { Dynamic, toRootProps } from '../../adapter'
3
+ import { AccordionItem } from './item'
4
+ import { setupAccordion } from './setup.component'
5
+ import type { AccordionProps } from './base.component'
6
+
7
+ let { ref = $bindable(), ...props }: AccordionProps = $props()
8
+ const mountId = $props.id()
9
+
10
+ const binding = setupAccordion(() => props, mountId, (node) => (ref = node))
11
+ const state = binding.state
12
+ </script>
13
+
14
+ <Dynamic
15
+ rendered={state.rendered}
16
+ tag="div"
17
+ attributes={toRootProps(state, [state.attrs], binding.forwardProps)}
18
+ attach={binding.attachElement}
19
+ >
20
+ {#if props.children}
21
+ {@render props.children()}
22
+ {:else}
23
+ {#each state.shown ?? [] as section (section.uid)}
24
+ {#snippet arrowIcon()}
25
+ {@render props['item-arrow-icon']?.({ item: section })}
26
+ {/snippet}
27
+ {#snippet leading()}{@render props['item-leading']?.({ item: section })}{/snippet}
28
+ {#snippet header(scope: { text: string; selected: boolean })}
29
+ {@render props.item?.({ ...scope, item: section })}
30
+ {/snippet}
31
+ {#snippet trailing()}{@render props['item-trailing']?.({ item: section })}{/snippet}
32
+ {#snippet content()}{@render props['item-content']?.({ item: section })}{/snippet}
33
+ <AccordionItem
34
+ ctrl={section}
35
+ arrow-icon={props['item-arrow-icon'] ? arrowIcon : undefined}
36
+ leading={props['item-leading'] ? leading : undefined}
37
+ header={props.item ? header : undefined}
38
+ trailing={props['item-trailing'] ? trailing : undefined}
39
+ children={props['item-content'] ? content : undefined}
40
+ />
41
+ {/each}
42
+ {/if}
43
+ </Dynamic>
@@ -0,0 +1,4 @@
1
+ import type { AccordionProps } from './base.component';
2
+ declare const Accordion: import("svelte").Component<AccordionProps, {}, "ref">;
3
+ type Accordion = ReturnType<typeof Accordion>;
4
+ export default Accordion;
@@ -0,0 +1,5 @@
1
+ import type { IAccordion } from '@soxa-ui/core';
2
+ import type { AccordionCollectionDescriptor, AccordionDescriptor } from '@soxa-ui/setup';
3
+ import type { EventProps, UseDomProps } from '../../types';
4
+ export type AccordionEventProps = EventProps<typeof AccordionDescriptor> & EventProps<typeof AccordionCollectionDescriptor>;
5
+ export type AccordionProps = UseDomProps<typeof AccordionDescriptor, IAccordion, AccordionEventProps>;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,6 @@
1
+ export * from './base.component';
2
+ export { setupAccordion } from './setup.component';
3
+ export * from './item';
4
+ export declare const Accordion: import("svelte").Component<import("./base.component").AccordionProps, {}, "ref"> & {
5
+ Item: import("svelte").Component<import("./item").AccordionItemProps, {}, "ref">;
6
+ };
@@ -0,0 +1,7 @@
1
+ import { withParts } from '@soxa-ui/setup';
2
+ import AccordionComponent from './Accordion.svelte';
3
+ import { AccordionItem } from './item';
4
+ export * from './base.component';
5
+ export { setupAccordion } from './setup.component';
6
+ export * from './item';
7
+ export const Accordion = withParts(AccordionComponent, { Item: AccordionItem });
@@ -0,0 +1,84 @@
1
+ <script lang="ts">
2
+ import type { Snippet } from 'svelte'
3
+ import { clickAction, Dynamic, roleIcon, toControlAttrs, toRootForward, toRootProps } from '../../../adapter'
4
+ import { Button } from '../../button'
5
+ import { Icon } from '../../icon'
6
+ import { setupAccordionItem } from './setup.component'
7
+ import type { AccordionItemAttributes, AccordionItemProps } from './base.component'
8
+
9
+ let { ref = $bindable(), ...props }: AccordionItemProps = $props()
10
+ const mountId = $props.id()
11
+
12
+ const binding = setupAccordionItem(() => props, mountId, (node) => (ref = node))
13
+ const state = binding.state
14
+ const context = binding.context
15
+ const toggle = clickAction(() => context?.adapters.selection.toggle())
16
+
17
+ const ARROW = roleIcon('arrowRight')
18
+ </script>
19
+
20
+ <!--
21
+ Класс стрелки — на обёртке, а не на иконке: тема поворачивает стрелку раскрытой секции по
22
+ `.so-accordion-item__arrow`, и подменённая слотом иконка поворачивается так же. Обёртка
23
+ стоит, пока на её стороне стрелка по умолчанию или задан слот.
24
+ -->
25
+ {#snippet arrow(side: 'start' | 'end', slot: Snippet<[{ item: typeof binding.ctrl }]> | undefined)}
26
+ {#if state.arrowPlacement === side}
27
+ <span class="so-accordion-item__arrow">
28
+ {#if slot}
29
+ {@render slot({ item: binding.ctrl })}
30
+ {:else}
31
+ <Icon embedded="accordion.arrow" tag={ARROW} size={state.size} />
32
+ {/if}
33
+ </span>
34
+ {/if}
35
+ {/snippet}
36
+
37
+ <Dynamic
38
+ rendered={state.rendered}
39
+ tag={state.tag}
40
+ attributes={toRootProps(
41
+ state,
42
+ [state.dataset, state.attrs],
43
+ toRootForward(binding.forwardProps),
44
+ )}
45
+ attach={binding.attachElement}
46
+ >
47
+ <Button
48
+ embedded="accordion.header"
49
+ type="button"
50
+ class="so-accordion-item__header"
51
+ view={state.view}
52
+ disabled={state.disabled}
53
+ size={state.size}
54
+ variant={state.variant}
55
+ {...state.aria}
56
+ {...toControlAttrs<AccordionItemAttributes>(binding.forwardProps)}
57
+ {@attach toggle}
58
+ >
59
+ {#snippet leading()}
60
+ {@render arrow('start', props['arrow-icon'])}{@render props.leading?.({
61
+ item: binding.ctrl,
62
+ })}
63
+ {/snippet}
64
+ {#if props.header}
65
+ {@render props.header({
66
+ item: binding.ctrl,
67
+ text: state.text ?? '',
68
+ selected: state.selected ?? false,
69
+ })}
70
+ {:else}
71
+ {state.text}
72
+ {/if}
73
+ {#snippet trailing()}
74
+ {@render props.trailing?.({ item: binding.ctrl })}{@render arrow(
75
+ 'end',
76
+ props['arrow-icon'],
77
+ )}
78
+ {/snippet}
79
+ </Button><div class="so-accordion-item__body">
80
+ <div class="so-accordion-item__content" {...state.contentAria}>
81
+ {@render props.children?.({ item: binding.ctrl })}
82
+ </div>
83
+ </div>
84
+ </Dynamic>
@@ -0,0 +1,4 @@
1
+ import type { AccordionItemProps } from './base.component';
2
+ declare const Item: import("svelte").Component<AccordionItemProps, {}, "ref">;
3
+ type Item = ReturnType<typeof Item>;
4
+ export default Item;
@@ -0,0 +1,7 @@
1
+ import type { IAccordionItem } from '@soxa-ui/core';
2
+ import type { AccordionCollectionItemDescriptor, AccordionItemDescriptor } from '@soxa-ui/setup';
3
+ import type { EventProps, TDomAttributes, UseDomProps } from '../../../types';
4
+ export type AccordionItemEventProps = EventProps<typeof AccordionItemDescriptor> & EventProps<typeof AccordionCollectionItemDescriptor>;
5
+ /** Атрибуты секции: класс и стиль — корню, остальное — заголовку. */
6
+ export type AccordionItemAttributes = TDomAttributes<typeof AccordionItemDescriptor, AccordionItemEventProps>;
7
+ export type AccordionItemProps = UseDomProps<typeof AccordionItemDescriptor, IAccordionItem, AccordionItemEventProps>;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,3 @@
1
+ export * from './base.component';
2
+ export { setupAccordionItem } from './setup.component';
3
+ export { default as AccordionItem } from './Item.svelte';
@@ -0,0 +1,3 @@
1
+ export * from './base.component';
2
+ export { setupAccordionItem } from './setup.component';
3
+ export { default as AccordionItem } from './Item.svelte';
@@ -0,0 +1,57 @@
1
+ import { type TRootReceiver } from '../../../adapter';
2
+ import type { AccordionItemProps } from './base.component';
3
+ export declare function setupAccordionItem(getProps: () => AccordionItemProps, mountId: string, receive: TRootReceiver): import("../../../adapter").TBinding<import("@soxa-ui/setup").TContextContract<import("@soxa-ui/core").IAccordionItem<import("@soxa-ui/core").IAccordionItemProps, import("@soxa-ui/core").TAccordionItemEvents>, {
4
+ props: object & {} & {} & {} & {
5
+ aria_label?: string | undefined;
6
+ aria_labelledBy?: string | undefined;
7
+ aria_describedBy?: string | undefined;
8
+ } & {} & {
9
+ id?: string | undefined;
10
+ } & {};
11
+ events: object & {
12
+ "element:ready": (element: Element) => void;
13
+ "element:removed": () => void;
14
+ } & {} & {
15
+ "action:click": (event: MouseEvent) => void;
16
+ "action:press": (event: MouseEvent) => void;
17
+ "action:focus": (event: FocusEvent) => void;
18
+ "action:blur": (event: FocusEvent) => void;
19
+ } & {
20
+ "aria:change:label": (payload: import("@soxa-ui/core").TValuePayload<string | undefined>) => void;
21
+ "aria:change:labelledBy": (payload: import("@soxa-ui/core").TValuePayload<string | undefined>) => void;
22
+ "aria:change:describedBy": (payload: import("@soxa-ui/core").TValuePayload<string | undefined>) => void;
23
+ } & {
24
+ "change:id": (payload: import("@soxa-ui/core").TValuePayload<string | undefined>) => void;
25
+ } & {};
26
+ outputs: object & {} & {} & {} & {} & {} & {} & {};
27
+ }>, AccordionItemProps, import("../../../adapter/runtime/state").TJoinedState<import("@soxa-ui/setup").TAdapterState<import("@soxa-ui/setup").TContextContract<import("@soxa-ui/core").TAccordionItemCollectionFacade, {
28
+ props: object;
29
+ events: object;
30
+ outputs: object;
31
+ }>>, import("@soxa-ui/setup").TAdapterState<import("@soxa-ui/setup").TContextContract<import("@soxa-ui/core").IAccordionItem<import("@soxa-ui/core").IAccordionItemProps, import("@soxa-ui/core").TAccordionItemEvents>, {
32
+ props: object & {} & {} & {} & {
33
+ aria_label?: string | undefined;
34
+ aria_labelledBy?: string | undefined;
35
+ aria_describedBy?: string | undefined;
36
+ } & {} & {
37
+ id?: string | undefined;
38
+ } & {};
39
+ events: object & {
40
+ "element:ready": (element: Element) => void;
41
+ "element:removed": () => void;
42
+ } & {} & {
43
+ "action:click": (event: MouseEvent) => void;
44
+ "action:press": (event: MouseEvent) => void;
45
+ "action:focus": (event: FocusEvent) => void;
46
+ "action:blur": (event: FocusEvent) => void;
47
+ } & {
48
+ "aria:change:label": (payload: import("@soxa-ui/core").TValuePayload<string | undefined>) => void;
49
+ "aria:change:labelledBy": (payload: import("@soxa-ui/core").TValuePayload<string | undefined>) => void;
50
+ "aria:change:describedBy": (payload: import("@soxa-ui/core").TValuePayload<string | undefined>) => void;
51
+ } & {
52
+ "change:id": (payload: import("@soxa-ui/core").TValuePayload<string | undefined>) => void;
53
+ } & {};
54
+ outputs: object & {} & {} & {} & {} & {} & {} & {};
55
+ }>>>> & {
56
+ context: import("@soxa-ui/core").TItemContext<import("@soxa-ui/core").IAccordionItem<import("@soxa-ui/core").IAccordionItemProps, import("@soxa-ui/core").TAccordionItemEvents>, import("@soxa-ui/core").TAccordionCollectionExtensions> | undefined;
57
+ };
@@ -0,0 +1,15 @@
1
+ import { AccordionCollectionItemDescriptor, AccordionItemDescriptor, TCollectionItemExtension, } from '@soxa-ui/setup';
2
+ import { createSvelteAdapterContext, joinBindings, useAdapter, useCollectionAdapter, useElevator, } from '../../../adapter';
3
+ export function setupAccordionItem(getProps, mountId, receive) {
4
+ const elevator = useElevator();
5
+ const props = getProps();
6
+ const adapter = createSvelteAdapterContext(AccordionItemDescriptor(), {
7
+ ctrl: props.ctrl,
8
+ props,
9
+ mountId,
10
+ });
11
+ const item = createSvelteAdapterContext(AccordionCollectionItemDescriptor(), { props, mountId }, { bundle: adapter.bundle }).use(TCollectionItemExtension, { adapter, elevator });
12
+ const itemBinding = useCollectionAdapter(item, getProps);
13
+ const owner = useAdapter(adapter, getProps, receive);
14
+ return Object.assign(joinBindings(owner, itemBinding), { context: item.instance.context });
15
+ }