@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,180 @@
1
+ <script lang="ts" module>
2
+ import type { IMenuItem, TGroupSection, TMenuSubmenuEntries } from '@soxa-ui/core'
3
+ import { MenuGroup } from '../group'
4
+ import { MenuItem } from '../item'
5
+ import { MenuSeparator } from '../separator'
6
+ import MenuSubmenu from './Submenu.svelte'
7
+ import type { MenuSubmenuProps } from './base.component'
8
+
9
+ /** Что пунктам из данных нужно от состояния владельца — меню или подменю. */
10
+ type TItemsState = {
11
+ readonly sections?: ReadonlyArray<TGroupSection<IMenuItem>>
12
+ readonly submenus?: TMenuSubmenuEntries
13
+ readonly groupSeparators?: boolean
14
+ }
15
+
16
+ /** Слоты пунктов из данных — одни на все уровни: подменю получает их под теми же именами. */
17
+ type TItemSlots = Pick<
18
+ MenuSubmenuProps,
19
+ 'item' | 'item-leading' | 'item-trailing' | 'item-header' | 'item-arrow-icon' | 'item-content'
20
+ >
21
+
22
+ export { drawItems }
23
+ </script>
24
+
25
+ <script lang="ts">
26
+ import { clickAction, Dynamic, roleIcon, toControlAttrs, toRootForward, toRootProps } from '../../../adapter'
27
+ import { ItemRow } from '../../item-row'
28
+ import { Frame } from '../../frame'
29
+ import { Icon } from '../../icon'
30
+ import { setupMenuSubmenu } from './setup.component'
31
+ import type { MenuSubmenuAttributes } from './base.component'
32
+
33
+ let { ref = $bindable(), ...props }: MenuSubmenuProps = $props()
34
+ const mountId = $props.id()
35
+
36
+ const binding = setupMenuSubmenu(() => props, mountId, (node) => (ref = node))
37
+ const state = binding.state
38
+ const context = binding.context
39
+ const expand = clickAction(() => context?.adapters.menu.open())
40
+
41
+ const ARROW = roleIcon('arrowRight')
42
+ </script>
43
+
44
+ <!--
45
+ Пункты из данных — сниппет модуля, один на меню и подменю: инстансного `<script>` он
46
+ не видит, поэтому части меню и само подменю — импорты модуля.
47
+ -->
48
+ {#snippet drawItems(state: TItemsState, slots: TItemSlots)}
49
+ {#each state.sections ?? [] as section, index (section.key)}
50
+ {#if state.groupSeparators && index > 0}<MenuSeparator />{/if}{#if section.group}
51
+ <MenuGroup label={section.group.label}
52
+ >{@render drawSection(section, state, slots)}</MenuGroup
53
+ >
54
+ {:else}
55
+ {@render drawSection(section, state, slots)}
56
+ {/if}
57
+ {/each}
58
+ {/snippet}
59
+
60
+ {#snippet drawSection(section: TGroupSection<IMenuItem>, state: TItemsState, slots: TItemSlots)}
61
+ {#each section.items as item (item.uid)}
62
+ {@render drawItem(item, state, slots)}
63
+ {/each}
64
+ {/snippet}
65
+
66
+ <!--
67
+ Снятое с пунктом подменю Svelte читает и после ухода записи: спред пустой записи безопасен,
68
+ а `entry.ctrl` бросил бы. Проброс — только заданного слота: сниппет непрозрачен.
69
+ -->
70
+ {#snippet drawItem(item: IMenuItem, state: TItemsState, slots: TItemSlots)}
71
+ {@const entry = state.submenus?.get(item)}
72
+ {#snippet leading()}
73
+ {@render slots['item-leading']?.({ item })}
74
+ {/snippet}
75
+ {#snippet content(scope: { text: string })}
76
+ {@render slots.item?.({ ...scope, item })}
77
+ {/snippet}
78
+ {#snippet trailing()}
79
+ {@render slots['item-trailing']?.({ item })}
80
+ {/snippet}
81
+ {#snippet header(scope: { text: string; open: boolean })}
82
+ {@render slots['item-header']?.({ ...scope, item })}
83
+ {/snippet}
84
+ {#snippet arrow()}
85
+ {@render slots['item-arrow-icon']?.({ item })}
86
+ {/snippet}
87
+ {#snippet panel()}
88
+ {@render slots['item-content']?.({ item })}
89
+ {/snippet}
90
+ {#if entry}
91
+ <MenuSubmenu
92
+ {...entry}
93
+ leading={slots['item-leading'] ? leading : undefined}
94
+ header={slots['item-header'] ? header : undefined}
95
+ arrow-icon={slots['item-arrow-icon'] ? arrow : undefined}
96
+ children={slots['item-content'] ? panel : undefined}
97
+ item={slots.item}
98
+ item-leading={slots['item-leading']}
99
+ item-trailing={slots['item-trailing']}
100
+ item-header={slots['item-header']}
101
+ item-arrow-icon={slots['item-arrow-icon']}
102
+ item-content={slots['item-content']}
103
+ />
104
+ {:else}
105
+ <MenuItem
106
+ ctrl={item}
107
+ leading={slots['item-leading'] ? leading : undefined}
108
+ trailing={slots['item-trailing'] ? trailing : undefined}
109
+ children={slots.item ? content : undefined}
110
+ />
111
+ {/if}
112
+ {/snippet}
113
+
114
+ <!--
115
+ Открытость — `visible` панели, а не `rendered`: закрытие не должно вычищать коллекцию.
116
+ Пункты в панели читают лифт подменю: `Teleport` монтирует её с контекстами места.
117
+ Части и обёртка значка — вплотную: пробел между блоками Svelte оставил бы текст, а пустой
118
+ значок тема прячет по `:empty`.
119
+ -->
120
+ {#snippet arrowIcon()}
121
+ {#if props['arrow-icon']}
122
+ {@render props['arrow-icon']()}
123
+ {:else}
124
+ <Icon embedded="menu.arrow" tag={ARROW} size={state.size} />
125
+ {/if}
126
+ {/snippet}
127
+
128
+ <Dynamic
129
+ rendered={state.rendered}
130
+ tag={state.tag}
131
+ attributes={toRootProps(
132
+ state,
133
+ [state.dataset, state.attrs],
134
+ toRootForward(binding.forwardProps),
135
+ )}
136
+ attach={binding.attachElement}
137
+ >
138
+ <ItemRow
139
+ embedded="menu.row"
140
+ tag="div"
141
+ size={state.size}
142
+ disabled={state.disabled}
143
+ {...state.aria}
144
+ {...toControlAttrs<MenuSubmenuAttributes>(binding.forwardProps)}
145
+ {@attach expand}
146
+ >
147
+ {#snippet leading()}
148
+ <span class="so-menu-item__icon">{@render props.leading?.()}</span>
149
+ {/snippet}
150
+ {#if props.header}
151
+ {@render props.header({ text: state.text ?? '', open: state.open ?? false })}
152
+ {:else}
153
+ {state.text}
154
+ {/if}
155
+ {#snippet trailing()}
156
+ <span class="so-menu-item__arrow" aria-hidden="true">{@render arrowIcon()}</span>
157
+ {/snippet}
158
+ </ItemRow><Frame
159
+ embedded="menu.submenu-frame"
160
+ class={state.panelClasses}
161
+ tabindex={-1}
162
+ visible={state.visible && state.open}
163
+ strategy="fixed"
164
+ anchor_anchor={binding.rootElement}
165
+ anchor_placement="end-start"
166
+ {...state.panelAria}
167
+ {...state.dismiss_ownerAttribute}
168
+ >
169
+ <!-- Items from the panel's first opening on (`contentRendered`) -->
170
+ <div class="so-menu__list">
171
+ {#if state.contentRendered}
172
+ {#if props.children}
173
+ {@render props.children()}
174
+ {:else}
175
+ {@render drawItems(state, props)}
176
+ {/if}
177
+ {/if}
178
+ </div>
179
+ </Frame>
180
+ </Dynamic>
@@ -0,0 +1,15 @@
1
+ import type { IMenuItem, TGroupSection, TMenuSubmenuEntries } from '@soxa-ui/core';
2
+ import type { MenuSubmenuProps } from './base.component';
3
+ /** Что пунктам из данных нужно от состояния владельца — меню или подменю. */
4
+ type TItemsState = {
5
+ readonly sections?: ReadonlyArray<TGroupSection<IMenuItem>>;
6
+ readonly submenus?: TMenuSubmenuEntries;
7
+ readonly groupSeparators?: boolean;
8
+ };
9
+ /** Слоты пунктов из данных — одни на все уровни: подменю получает их под теми же именами. */
10
+ type TItemSlots = Pick<MenuSubmenuProps, 'item' | 'item-leading' | 'item-trailing' | 'item-header' | 'item-arrow-icon' | 'item-content'>;
11
+ export { drawItems };
12
+ declare const drawItems: (state: TItemsState, slots: TItemSlots) => ReturnType<import("svelte").Snippet>;
13
+ declare const Submenu: import("svelte").Component<MenuSubmenuProps, {}, "ref">;
14
+ type Submenu = ReturnType<typeof Submenu>;
15
+ export default Submenu;
@@ -0,0 +1,7 @@
1
+ import type { IMenuSubmenu } from '@soxa-ui/core';
2
+ import type { MenuCollectionItemDescriptor, MenuSubmenuCollectionDescriptor, MenuSubmenuDescriptor } from '@soxa-ui/setup';
3
+ import type { EventProps, TDomAttributes, UseDomProps } from '../../../types';
4
+ export type MenuSubmenuEventProps = EventProps<typeof MenuSubmenuDescriptor> & EventProps<typeof MenuCollectionItemDescriptor> & EventProps<typeof MenuSubmenuCollectionDescriptor>;
5
+ /** Атрибуты пункта с подменю: класс и стиль — корню, остальное — строке с `role="menuitem"`. */
6
+ export type MenuSubmenuAttributes = TDomAttributes<typeof MenuSubmenuDescriptor, MenuSubmenuEventProps>;
7
+ export type MenuSubmenuProps = UseDomProps<typeof MenuSubmenuDescriptor, IMenuSubmenu, MenuSubmenuEventProps>;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,3 @@
1
+ export * from './base.component';
2
+ export { setupMenuSubmenu } from './setup.component';
3
+ export { default as MenuSubmenu } from './Submenu.svelte';
@@ -0,0 +1,3 @@
1
+ export * from './base.component';
2
+ export { setupMenuSubmenu } from './setup.component';
3
+ export { default as MenuSubmenu } from './Submenu.svelte';
@@ -0,0 +1,79 @@
1
+ import { type TRootReceiver } from '../../../adapter';
2
+ import type { MenuSubmenuProps } from './base.component';
3
+ export declare function setupMenuSubmenu(getProps: () => MenuSubmenuProps, mountId: string, receive: TRootReceiver): import("../../../adapter").TBinding<import("@soxa-ui/setup").TContextContract<import("@soxa-ui/core").IMenuSubmenu, {
4
+ props: object & {} & {} & {} & {
5
+ aria_label?: string | undefined;
6
+ aria_labelledBy?: string | undefined;
7
+ aria_describedBy?: string | undefined;
8
+ } & {} & {} & {} & {} & {} & {
9
+ dismiss_enabled?: boolean | undefined;
10
+ } & {} & {} & {} & {
11
+ id?: string | undefined;
12
+ } & {};
13
+ events: object & {
14
+ "element:ready": (element: Element) => void;
15
+ "element:removed": () => void;
16
+ } & {} & {
17
+ "action:click": (event: MouseEvent) => void;
18
+ "action:press": (event: MouseEvent) => void;
19
+ "action:focus": (event: FocusEvent) => void;
20
+ "action:blur": (event: FocusEvent) => void;
21
+ } & {
22
+ "aria:change:label": (payload: import("@soxa-ui/core").TValuePayload<string | undefined>) => void;
23
+ "aria:change:labelledBy": (payload: import("@soxa-ui/core").TValuePayload<string | undefined>) => void;
24
+ "aria:change:describedBy": (payload: import("@soxa-ui/core").TValuePayload<string | undefined>) => void;
25
+ } & {} & {
26
+ "change:id": (payload: import("@soxa-ui/core").TValuePayload<string | undefined>) => void;
27
+ } & {} & {} & {} & {
28
+ "dismiss:dismiss": (event: MouseEvent | FocusEvent) => void;
29
+ "dismiss:change:enabled": (payload: import("@soxa-ui/core").TValuePayload<boolean>) => void;
30
+ } & {} & {} & {} & {};
31
+ outputs: object & {} & {} & {} & {} & {} & {
32
+ readonly listItem_highlighted: boolean;
33
+ } & {} & {} & {} & {
34
+ readonly dismiss_ownerAttribute: Record<string, string>;
35
+ } & {} & {} & {} & {} & {};
36
+ }>, MenuSubmenuProps, import("../../../adapter/runtime/state").TJoinedState<import("@soxa-ui/setup").TAdapterState<import("@soxa-ui/setup").TContextContract<import("@soxa-ui/core").TMenuCollectionFacade, {
37
+ props: object;
38
+ events: object;
39
+ outputs: object;
40
+ }>>, import("../../../adapter/runtime/state").TJoinedState<import("@soxa-ui/setup").TAdapterState<import("@soxa-ui/setup").TContextContract<import("@soxa-ui/core").TMenuItemCollectionFacade, {
41
+ props: object;
42
+ events: object;
43
+ outputs: object;
44
+ }>>, import("@soxa-ui/setup").TAdapterState<import("@soxa-ui/setup").TContextContract<import("@soxa-ui/core").IMenuSubmenu, {
45
+ props: object & {} & {} & {} & {
46
+ aria_label?: string | undefined;
47
+ aria_labelledBy?: string | undefined;
48
+ aria_describedBy?: string | undefined;
49
+ } & {} & {} & {} & {} & {} & {
50
+ dismiss_enabled?: boolean | undefined;
51
+ } & {} & {} & {} & {
52
+ id?: string | undefined;
53
+ } & {};
54
+ events: object & {
55
+ "element:ready": (element: Element) => void;
56
+ "element:removed": () => void;
57
+ } & {} & {
58
+ "action:click": (event: MouseEvent) => void;
59
+ "action:press": (event: MouseEvent) => void;
60
+ "action:focus": (event: FocusEvent) => void;
61
+ "action:blur": (event: FocusEvent) => void;
62
+ } & {
63
+ "aria:change:label": (payload: import("@soxa-ui/core").TValuePayload<string | undefined>) => void;
64
+ "aria:change:labelledBy": (payload: import("@soxa-ui/core").TValuePayload<string | undefined>) => void;
65
+ "aria:change:describedBy": (payload: import("@soxa-ui/core").TValuePayload<string | undefined>) => void;
66
+ } & {} & {
67
+ "change:id": (payload: import("@soxa-ui/core").TValuePayload<string | undefined>) => void;
68
+ } & {} & {} & {} & {
69
+ "dismiss:dismiss": (event: MouseEvent | FocusEvent) => void;
70
+ "dismiss:change:enabled": (payload: import("@soxa-ui/core").TValuePayload<boolean>) => void;
71
+ } & {} & {} & {} & {};
72
+ outputs: object & {} & {} & {} & {} & {} & {
73
+ readonly listItem_highlighted: boolean;
74
+ } & {} & {} & {} & {
75
+ readonly dismiss_ownerAttribute: Record<string, string>;
76
+ } & {} & {} & {} & {} & {};
77
+ }>>>>> & {
78
+ context: import("@soxa-ui/core").TItemContext<import("@soxa-ui/core").IMenuItem<import("@soxa-ui/core").IMenuItemProps, any>, import("@soxa-ui/core").TMenuCollectionExtensions> | undefined;
79
+ };
@@ -0,0 +1,21 @@
1
+ import { MenuCollectionItemDescriptor, MenuSubmenuCollectionDescriptor, MenuSubmenuDescriptor, TCollectionExtension, TCollectionItemExtension, } from '@soxa-ui/setup';
2
+ import { createSvelteAdapterContext, joinBindings, useAdapter, useCollectionAdapter, useElevator, } from '../../../adapter';
3
+ export function setupMenuSubmenu(getProps, mountId, receive) {
4
+ const elevator = useElevator();
5
+ const props = getProps();
6
+ const adapter = createSvelteAdapterContext(MenuSubmenuDescriptor(), {
7
+ ctrl: props.ctrl,
8
+ props,
9
+ mountId,
10
+ });
11
+ // В меню над ним — пункт
12
+ const item = createSvelteAdapterContext(MenuCollectionItemDescriptor(), { props, mountId }, { bundle: adapter.bundle }).use(TCollectionItemExtension, { adapter, elevator });
13
+ // Для своих пунктов — меню
14
+ const collectionAdapter = createSvelteAdapterContext(MenuSubmenuCollectionDescriptor(), { props, mountId, options: { owner: adapter.instance, engine: props.engine } }, { bundle: adapter.bundle }).use(TCollectionExtension, { elevator });
15
+ const itemBinding = useCollectionAdapter(item, getProps);
16
+ const menuBinding = useCollectionAdapter(collectionAdapter, getProps);
17
+ const owner = useAdapter(adapter, getProps, receive);
18
+ return Object.assign(joinBindings(owner, itemBinding, menuBinding), {
19
+ context: item.instance.context,
20
+ });
21
+ }
@@ -0,0 +1,119 @@
1
+ <script lang="ts">
2
+ import {
3
+ clickAction,
4
+ Dynamic,
5
+ fieldText,
6
+ roleIcon,
7
+ toControlAttrs,
8
+ toRootForward,
9
+ toRootProps,
10
+ } from '../../adapter'
11
+ import { Button } from '../button'
12
+ import { Icon } from '../icon'
13
+ import { setupNumberInput } from './setup.component'
14
+ import type { NumberInputAttributes, NumberInputProps } from './base.component'
15
+
16
+ let { ref = $bindable(), ...props }: NumberInputProps = $props()
17
+ const mountId = $props.id()
18
+
19
+ const binding = setupNumberInput(() => props, mountId, (node) => (ref = node))
20
+ const state = binding.state
21
+ const ctrl = binding.ctrl
22
+
23
+ // Буфер правки ядра, а не `value`: пока набирают — набранное, после — строка формата
24
+ const text = fieldText(() => state.text)
25
+
26
+ const CLOSE = roleIcon('close')
27
+ const MINUS = roleIcon('minus')
28
+ const PLUS = roleIcon('plus')
29
+
30
+ const clear = clickAction((event) => {
31
+ event.stopPropagation()
32
+ ctrl.clear()
33
+ })
34
+ </script>
35
+
36
+ <!--
37
+ NumberInput — кнопки шага последними из видимых, у края поля: их место не зависит от
38
+ слотов. Ввод и кнопки плагины находят по классам. `name` у ввода нет: в форму уходит
39
+ число скрытым полем, а не текст.
40
+ -->
41
+ <Dynamic
42
+ rendered={state.rendered}
43
+ tag={state.tag}
44
+ attributes={toRootProps(
45
+ state,
46
+ [state.attrs, state.dataset],
47
+ toRootForward(binding.forwardProps),
48
+ )}
49
+ attach={binding.attachElement}
50
+ >
51
+ {#if props.leading}<div class="so-number-input__leading">{@render props.leading({ ctrl })}</div>{/if}<input
52
+ type="text"
53
+ class="so-number-input__input"
54
+ id={state.id}
55
+ placeholder={state.placeholder}
56
+ disabled={state.disabled}
57
+ readonly={state.readonly}
58
+ required={state.required}
59
+ autocomplete="off"
60
+ spellcheck="false"
61
+ {...state.inputAttrs}
62
+ {...state.aria}
63
+ {...state.inputAria}
64
+ {...toControlAttrs<NumberInputAttributes>(binding.forwardProps)}
65
+ {...text}
66
+ />{#if state.clearable || props.clear || props.trailing}
67
+ <div class="so-number-input__trailing">
68
+ {#if props.clear}
69
+ {@render props.clear({ clear: ctrl.clear })}
70
+ {:else if state.clearable}
71
+ <Button
72
+ embedded="number-input.clear"
73
+ type="button"
74
+ class="so-number-input__clear"
75
+ size={state.size}
76
+ disabled={state.disabled}
77
+ {...state.clearAria}
78
+ {@attach clear}
79
+ >
80
+ <Icon embedded="number-input.clear-icon" tag={CLOSE} size={state.size} />
81
+ </Button>
82
+ {/if}{#if props.trailing}{@render props.trailing({ ctrl })}{/if}
83
+ </div>{/if}<div class="so-number-input__stepper">
84
+ <Button
85
+ embedded="number-input.decrement"
86
+ type="button"
87
+ class="so-number-input__decrement"
88
+ size={state.size}
89
+ disabled={state.decrementDisabled}
90
+ {...state.decrementAria}
91
+ {...state.decrementDataset}
92
+ >
93
+ {#if props['decrement-icon']}
94
+ {@render props['decrement-icon']()}
95
+ {:else}
96
+ <Icon embedded="number-input.decrement-icon" tag={MINUS} size={state.size} />
97
+ {/if}
98
+ </Button><Button
99
+ embedded="number-input.increment"
100
+ type="button"
101
+ class="so-number-input__increment"
102
+ size={state.size}
103
+ disabled={state.incrementDisabled}
104
+ {...state.incrementAria}
105
+ {...state.incrementDataset}
106
+ >
107
+ {#if props['increment-icon']}
108
+ {@render props['increment-icon']()}
109
+ {:else}
110
+ <Icon embedded="number-input.increment-icon" tag={PLUS} size={state.size} />
111
+ {/if}
112
+ </Button>
113
+ </div><input
114
+ type="hidden"
115
+ name={state.name}
116
+ value={state.value === undefined ? '' : String(state.value)}
117
+ disabled={state.disabled}
118
+ />
119
+ </Dynamic>
@@ -0,0 +1,4 @@
1
+ import type { NumberInputProps } from './base.component';
2
+ declare const NumberInput: import("svelte").Component<NumberInputProps, {}, "ref">;
3
+ type NumberInput = ReturnType<typeof NumberInput>;
4
+ export default NumberInput;
@@ -0,0 +1,7 @@
1
+ import type { INumberInput } from '@soxa-ui/core';
2
+ import type { NumberInputDescriptor } from '@soxa-ui/setup';
3
+ import type { EventProps, TDomAttributes, TFieldAttributes, UseDomProps } from '../../types';
4
+ export type NumberInputEventProps = EventProps<typeof NumberInputDescriptor>;
5
+ /** Атрибуты NumberInput: класс и стиль — корню, остальное — вводу `<input>`. */
6
+ export type NumberInputAttributes = TDomAttributes<typeof NumberInputDescriptor, NumberInputEventProps, TFieldAttributes>;
7
+ export type NumberInputProps = UseDomProps<typeof NumberInputDescriptor, INumberInput, NumberInputEventProps, TFieldAttributes>;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,3 @@
1
+ export * from './base.component';
2
+ export { setupNumberInput } from './setup.component';
3
+ export { default as NumberInput } from './NumberInput.svelte';
@@ -0,0 +1,3 @@
1
+ export * from './base.component';
2
+ export { setupNumberInput } from './setup.component';
3
+ export { default as NumberInput } from './NumberInput.svelte';
@@ -0,0 +1,51 @@
1
+ import { type TRootReceiver } from '../../adapter';
2
+ import type { NumberInputProps } from './base.component';
3
+ export declare function setupNumberInput(getProps: () => NumberInputProps, mountId: string, receive: TRootReceiver): import("../../adapter").TBinding<import("@soxa-ui/setup").TContextContract<import("@soxa-ui/core").INumberInput, {
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
+ }>, NumberInputProps, import("@soxa-ui/setup").TAdapterState<import("@soxa-ui/setup").TContextContract<import("@soxa-ui/core").INumberInput, {
28
+ props: object & {} & {} & {} & {
29
+ aria_label?: string | undefined;
30
+ aria_labelledBy?: string | undefined;
31
+ aria_describedBy?: string | undefined;
32
+ } & {
33
+ id?: string | undefined;
34
+ } & {} & {} & {} & {} & {} & {} & {};
35
+ events: object & {
36
+ "element:ready": (element: Element) => void;
37
+ "element:removed": () => void;
38
+ } & {} & {
39
+ "action:click": (event: MouseEvent) => void;
40
+ "action:press": (event: MouseEvent) => void;
41
+ "action:focus": (event: FocusEvent) => void;
42
+ "action:blur": (event: FocusEvent) => void;
43
+ } & {
44
+ "aria:change:label": (payload: import("@soxa-ui/core").TValuePayload<string | undefined>) => void;
45
+ "aria:change:labelledBy": (payload: import("@soxa-ui/core").TValuePayload<string | undefined>) => void;
46
+ "aria:change:describedBy": (payload: import("@soxa-ui/core").TValuePayload<string | undefined>) => void;
47
+ } & {
48
+ "change:id": (payload: import("@soxa-ui/core").TValuePayload<string | undefined>) => void;
49
+ } & {} & {} & {} & {} & {} & {};
50
+ outputs: object & {} & {} & {} & {} & {} & {} & {} & {} & {} & {} & {} & {};
51
+ }>>>;
@@ -0,0 +1,11 @@
1
+ import { NumberInputDescriptor, TFieldControlExtension } from '@soxa-ui/setup';
2
+ import { createSvelteAdapterContext, useAdapter, useElevator, } from '../../adapter';
3
+ export function setupNumberInput(getProps, mountId, receive) {
4
+ const elevator = useElevator();
5
+ const adapter = createSvelteAdapterContext(NumberInputDescriptor(), {
6
+ ctrl: getProps().ctrl,
7
+ props: getProps(),
8
+ mountId,
9
+ }).use(TFieldControlExtension, { elevator });
10
+ return useAdapter(adapter, getProps, receive);
11
+ }
@@ -0,0 +1,80 @@
1
+ <script lang="ts">
2
+ import { clickAction, Dynamic, roleIcon, toRootProps } from '../../adapter'
3
+ import { Button } from '../button'
4
+ import { Icon } from '../icon'
5
+ import { PaginationItem } from './item'
6
+ import { setupPagination } from './setup.component'
7
+ import type { PaginationProps } from './base.component'
8
+
9
+ let { ref = $bindable(), ...props }: PaginationProps = $props()
10
+ const mountId = $props.id()
11
+
12
+ const binding = setupPagination(() => props, mountId, (node) => (ref = node))
13
+ const state = binding.state
14
+ const ctrl = binding.ctrl
15
+ const prev = clickAction(() => ctrl.prev())
16
+ const next = clickAction(() => ctrl.next())
17
+
18
+ // Одна иконка на обе стрелки: роли «влево» нет, стрелку «назад» зеркалит тема
19
+ const ARROW = roleIcon('arrowRight')
20
+ </script>
21
+
22
+ <!--
23
+ Стрелки — вне списка: в списке только страницы и пропуски, по порядку окна (`cells`).
24
+ Петля — по ключу места (`cell.key`): страница, оставшаяся при сдвиге окна, — тот же
25
+ экземпляр, и узел с фокусом на нём не пересобирается.
26
+ -->
27
+ <Dynamic
28
+ rendered={state.rendered}
29
+ tag={state.tag}
30
+ attributes={toRootProps(
31
+ state,
32
+ [state.attrs, state.aria, state.dataset],
33
+ binding.forwardProps,
34
+ )}
35
+ attach={binding.attachElement}
36
+ >
37
+ <Button
38
+ embedded="pagination.prev"
39
+ type="button"
40
+ class="so-pagination__prev"
41
+ size={state.size}
42
+ variant={state.variant}
43
+ disabled={state.prevDisabled}
44
+ {@attach prev}
45
+ {...state.prevAria}
46
+ >
47
+ {#if props['prev-icon']}
48
+ {@render props['prev-icon']()}
49
+ {:else}
50
+ <Icon embedded="pagination.prev-icon" tag={ARROW} size={state.size} />
51
+ {/if}
52
+ </Button><ol class="so-pagination__list">
53
+ {#each state.cells ?? [] as cell (cell.key)}
54
+ {#if cell.kind === 'item'}
55
+ {@const page = cell.item}
56
+ {#snippet content(scope: { text: string })}
57
+ {@render props.item?.({ ...scope, item: page })}
58
+ {/snippet}
59
+ <PaginationItem ctrl={page} children={props.item ? content : undefined} />
60
+ {:else}
61
+ <li class="so-pagination__ellipsis">…</li>
62
+ {/if}
63
+ {/each}
64
+ </ol><Button
65
+ embedded="pagination.next"
66
+ type="button"
67
+ class="so-pagination__next"
68
+ size={state.size}
69
+ variant={state.variant}
70
+ disabled={state.nextDisabled}
71
+ {@attach next}
72
+ {...state.nextAria}
73
+ >
74
+ {#if props['next-icon']}
75
+ {@render props['next-icon']()}
76
+ {:else}
77
+ <Icon embedded="pagination.next-icon" tag={ARROW} size={state.size} />
78
+ {/if}
79
+ </Button>
80
+ </Dynamic>
@@ -0,0 +1,4 @@
1
+ import type { PaginationProps } from './base.component';
2
+ declare const Pagination: import("svelte").Component<PaginationProps, {}, "ref">;
3
+ type Pagination = ReturnType<typeof Pagination>;
4
+ export default Pagination;
@@ -0,0 +1,6 @@
1
+ import type { IPagination } from '@soxa-ui/core';
2
+ import type { PaginationCollectionDescriptor, PaginationDescriptor } from '@soxa-ui/setup';
3
+ import type { EventProps, UseDomProps } from '../../types';
4
+ export type PaginationEventProps = EventProps<typeof PaginationDescriptor> & EventProps<typeof PaginationCollectionDescriptor>;
5
+ /** Атрибуты — корню, `nav`. */
6
+ export type PaginationProps = UseDomProps<typeof PaginationDescriptor, IPagination, PaginationEventProps>;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,3 @@
1
+ export * from './base.component';
2
+ export { setupPagination } from './setup.component';
3
+ export { default as Pagination } from './Pagination.svelte';
@@ -0,0 +1,3 @@
1
+ export * from './base.component';
2
+ export { setupPagination } from './setup.component';
3
+ export { default as Pagination } from './Pagination.svelte';