@soxa-ui/webc 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 (592) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +622 -2
  3. package/dist/adapter/common/attributes.d.ts +22 -0
  4. package/dist/adapter/common/attributes.js +74 -0
  5. package/dist/adapter/common/createWebcAdapterContext.d.ts +8 -0
  6. package/dist/adapter/common/createWebcAdapterContext.js +17 -0
  7. package/dist/adapter/common/icon.d.ts +9 -0
  8. package/dist/adapter/common/icon.js +25 -0
  9. package/dist/adapter/common/index.d.ts +5 -0
  10. package/dist/adapter/common/index.js +6 -0
  11. package/dist/adapter/common/naming.d.ts +7 -0
  12. package/dist/adapter/common/naming.js +9 -0
  13. package/dist/adapter/common/profile.d.ts +3 -0
  14. package/dist/adapter/common/profile.js +6 -0
  15. package/dist/adapter/context/index.d.ts +1 -0
  16. package/dist/adapter/context/place-context.class.d.ts +22 -0
  17. package/dist/adapter/context/place-context.class.js +40 -0
  18. package/dist/adapter/elevator/elevator.class.d.ts +13 -0
  19. package/dist/adapter/elevator/elevator.class.js +34 -0
  20. package/dist/adapter/elevator/factory.d.ts +3 -0
  21. package/dist/adapter/elevator/factory.js +8 -0
  22. package/dist/adapter/elevator/index.d.ts +2 -0
  23. package/dist/adapter/elevator/index.js +2 -0
  24. package/dist/adapter/index.d.ts +5 -0
  25. package/dist/adapter/index.js +21 -0
  26. package/dist/adapter/locale/LocaleProvider.element.d.ts +26 -0
  27. package/dist/adapter/locale/LocaleProvider.element.js +51 -0
  28. package/dist/adapter/locale/context.d.ts +4 -0
  29. package/dist/adapter/locale/context.js +12 -0
  30. package/dist/adapter/locale/index.d.ts +2 -0
  31. package/dist/adapter/locale/index.js +1 -0
  32. package/dist/adapter/runtime/content.d.ts +6 -0
  33. package/dist/adapter/runtime/content.js +13 -0
  34. package/dist/adapter/runtime/deferral.d.ts +22 -0
  35. package/dist/adapter/runtime/deferral.js +100 -0
  36. package/dist/adapter/runtime/defineElement.d.ts +23 -0
  37. package/dist/adapter/runtime/defineElement.js +97 -0
  38. package/dist/adapter/runtime/display-contents.d.ts +5 -0
  39. package/dist/adapter/runtime/display-contents.js +14 -0
  40. package/dist/adapter/runtime/element.base.d.ts +84 -0
  41. package/dist/adapter/runtime/element.base.js +347 -0
  42. package/dist/adapter/runtime/index.d.ts +4 -0
  43. package/dist/adapter/runtime/index.js +4 -0
  44. package/dist/adapter/runtime/light.d.ts +33 -0
  45. package/dist/adapter/runtime/light.js +131 -0
  46. package/dist/adapter/runtime/marks.d.ts +19 -0
  47. package/dist/adapter/runtime/marks.js +46 -0
  48. package/dist/adapter/runtime/paint.d.ts +91 -0
  49. package/dist/adapter/runtime/paint.js +208 -0
  50. package/dist/adapter/runtime/props.d.ts +36 -0
  51. package/dist/adapter/runtime/props.js +58 -0
  52. package/dist/adapter/runtime/relocation.d.ts +16 -0
  53. package/dist/adapter/runtime/relocation.js +58 -0
  54. package/dist/adapter/runtime/root.d.ts +77 -0
  55. package/dist/adapter/runtime/root.js +77 -0
  56. package/dist/adapter/runtime/subtree.d.ts +22 -0
  57. package/dist/adapter/runtime/subtree.js +44 -0
  58. package/dist/adapter/runtime/teleport.d.ts +57 -0
  59. package/dist/adapter/runtime/teleport.js +190 -0
  60. package/dist/adapter/runtime/useAdapter.d.ts +45 -0
  61. package/dist/adapter/runtime/useAdapter.js +151 -0
  62. package/dist/adapter/runtime/waiting.d.ts +10 -0
  63. package/dist/adapter/runtime/waiting.js +53 -0
  64. package/dist/adapter/template/index.d.ts +6 -0
  65. package/dist/adapter/template/index.js +6 -0
  66. package/dist/adapter/template/lend.d.ts +13 -0
  67. package/dist/adapter/template/lend.js +30 -0
  68. package/dist/adapter/template/loop.d.ts +21 -0
  69. package/dist/adapter/template/loop.js +59 -0
  70. package/dist/adapter/template/owner.d.ts +13 -0
  71. package/dist/adapter/template/owner.js +15 -0
  72. package/dist/adapter/template/parts.d.ts +37 -0
  73. package/dist/adapter/template/parts.js +61 -0
  74. package/dist/adapter/template/types.d.ts +69 -0
  75. package/dist/adapter/template/types.js +9 -0
  76. package/dist/adapter/toasts/index.d.ts +1 -0
  77. package/dist/adapter/toasts/index.js +1 -0
  78. package/dist/adapter/toasts/toastsOf.d.ts +12 -0
  79. package/dist/adapter/toasts/toastsOf.js +21 -0
  80. package/dist/components/accordion/Accordion.element.d.ts +9 -0
  81. package/dist/components/accordion/Accordion.element.js +27 -0
  82. package/dist/components/accordion/accordion.template.d.ts +10 -0
  83. package/dist/components/accordion/accordion.template.js +44 -0
  84. package/dist/components/accordion/index.d.ts +5 -0
  85. package/dist/components/accordion/index.js +3 -0
  86. package/dist/components/accordion/item/AccordionItem.element.d.ts +10 -0
  87. package/dist/components/accordion/item/AccordionItem.element.js +25 -0
  88. package/dist/components/accordion/item/accordion-item.template.d.ts +8 -0
  89. package/dist/components/accordion/item/accordion-item.template.js +123 -0
  90. package/dist/components/accordion/item/index.d.ts +3 -0
  91. package/dist/components/accordion/item/index.js +3 -0
  92. package/dist/components/accordion/item/setup.component.d.ts +3 -0
  93. package/dist/components/accordion/item/setup.component.js +22 -0
  94. package/dist/components/accordion/setup.component.d.ts +3 -0
  95. package/dist/components/accordion/setup.component.js +26 -0
  96. package/dist/components/button/Button.element.d.ts +12 -0
  97. package/dist/components/button/Button.element.js +22 -0
  98. package/dist/components/button/button.template.d.ts +8 -0
  99. package/dist/components/button/button.template.js +30 -0
  100. package/dist/components/button/index.d.ts +3 -0
  101. package/dist/components/button/index.js +1 -0
  102. package/dist/components/button/setup.component.d.ts +3 -0
  103. package/dist/components/button/setup.component.js +14 -0
  104. package/dist/components/calendar/Calendar.element.d.ts +9 -0
  105. package/dist/components/calendar/Calendar.element.js +23 -0
  106. package/dist/components/calendar/calendar.template.d.ts +10 -0
  107. package/dist/components/calendar/calendar.template.js +309 -0
  108. package/dist/components/calendar/index.d.ts +5 -0
  109. package/dist/components/calendar/index.js +3 -0
  110. package/dist/components/calendar/item/CalendarItem.element.d.ts +10 -0
  111. package/dist/components/calendar/item/CalendarItem.element.js +19 -0
  112. package/dist/components/calendar/item/calendar-item.template.d.ts +7 -0
  113. package/dist/components/calendar/item/calendar-item.template.js +22 -0
  114. package/dist/components/calendar/item/index.d.ts +3 -0
  115. package/dist/components/calendar/item/index.js +3 -0
  116. package/dist/components/calendar/item/setup.component.d.ts +3 -0
  117. package/dist/components/calendar/item/setup.component.js +22 -0
  118. package/dist/components/calendar/setup.component.d.ts +3 -0
  119. package/dist/components/calendar/setup.component.js +25 -0
  120. package/dist/components/check-box/CheckBox.element.d.ts +9 -0
  121. package/dist/components/check-box/CheckBox.element.js +24 -0
  122. package/dist/components/check-box/check-box.template.d.ts +10 -0
  123. package/dist/components/check-box/check-box.template.js +94 -0
  124. package/dist/components/check-box/index.d.ts +3 -0
  125. package/dist/components/check-box/index.js +1 -0
  126. package/dist/components/check-box/setup.component.d.ts +7 -0
  127. package/dist/components/check-box/setup.component.js +16 -0
  128. package/dist/components/common/clear.d.ts +34 -0
  129. package/dist/components/common/clear.js +67 -0
  130. package/dist/components/common/drawn-rows.d.ts +35 -0
  131. package/dist/components/common/drawn-rows.js +79 -0
  132. package/dist/components/common/icon-button.d.ts +24 -0
  133. package/dist/components/common/icon-button.js +42 -0
  134. package/dist/components/component/index.d.ts +1 -0
  135. package/dist/components/component/index.js +1 -0
  136. package/dist/components/component/setup.component.d.ts +3 -0
  137. package/dist/components/component/setup.component.js +2 -0
  138. package/dist/components/component-view/ComponentView.element.d.ts +6 -0
  139. package/dist/components/component-view/ComponentView.element.js +16 -0
  140. package/dist/components/component-view/component-view.template.d.ts +4 -0
  141. package/dist/components/component-view/component-view.template.js +10 -0
  142. package/dist/components/component-view/index.d.ts +3 -0
  143. package/dist/components/component-view/index.js +1 -0
  144. package/dist/components/component-view/setup.component.d.ts +3 -0
  145. package/dist/components/component-view/setup.component.js +14 -0
  146. package/dist/components/control/index.d.ts +1 -0
  147. package/dist/components/control/index.js +1 -0
  148. package/dist/components/control/setup.component.d.ts +3 -0
  149. package/dist/components/control/setup.component.js +2 -0
  150. package/dist/components/date-input/DateInput.element.d.ts +11 -0
  151. package/dist/components/date-input/DateInput.element.js +21 -0
  152. package/dist/components/date-input/date-input.template.d.ts +11 -0
  153. package/dist/components/date-input/date-input.template.js +102 -0
  154. package/dist/components/date-input/index.d.ts +3 -0
  155. package/dist/components/date-input/index.js +1 -0
  156. package/dist/components/date-input/setup.component.d.ts +8 -0
  157. package/dist/components/date-input/setup.component.js +16 -0
  158. package/dist/components/date-picker/DatePicker.element.d.ts +11 -0
  159. package/dist/components/date-picker/DatePicker.element.js +24 -0
  160. package/dist/components/date-picker/date-picker.template.d.ts +15 -0
  161. package/dist/components/date-picker/date-picker.template.js +310 -0
  162. package/dist/components/date-picker/index.d.ts +3 -0
  163. package/dist/components/date-picker/index.js +1 -0
  164. package/dist/components/date-picker/setup.component.d.ts +9 -0
  165. package/dist/components/date-picker/setup.component.js +16 -0
  166. package/dist/components/dialog/Dialog.element.d.ts +11 -0
  167. package/dist/components/dialog/Dialog.element.js +25 -0
  168. package/dist/components/dialog/dialog.template.d.ts +9 -0
  169. package/dist/components/dialog/dialog.template.js +148 -0
  170. package/dist/components/dialog/index.d.ts +3 -0
  171. package/dist/components/dialog/index.js +1 -0
  172. package/dist/components/dialog/setup.component.d.ts +5 -0
  173. package/dist/components/dialog/setup.component.js +14 -0
  174. package/dist/components/drag-and-drop/DragAndDrop.element.d.ts +10 -0
  175. package/dist/components/drag-and-drop/DragAndDrop.element.js +20 -0
  176. package/dist/components/drag-and-drop/drag-and-drop.template.d.ts +4 -0
  177. package/dist/components/drag-and-drop/drag-and-drop.template.js +14 -0
  178. package/dist/components/drag-and-drop/index.d.ts +3 -0
  179. package/dist/components/drag-and-drop/index.js +1 -0
  180. package/dist/components/drag-and-drop/setup.component.d.ts +4 -0
  181. package/dist/components/drag-and-drop/setup.component.js +17 -0
  182. package/dist/components/drawer/Drawer.element.d.ts +10 -0
  183. package/dist/components/drawer/Drawer.element.js +27 -0
  184. package/dist/components/drawer/drawer.template.d.ts +11 -0
  185. package/dist/components/drawer/drawer.template.js +100 -0
  186. package/dist/components/drawer/index.d.ts +3 -0
  187. package/dist/components/drawer/index.js +1 -0
  188. package/dist/components/drawer/setup.component.d.ts +6 -0
  189. package/dist/components/drawer/setup.component.js +14 -0
  190. package/dist/components/field/Field.element.d.ts +10 -0
  191. package/dist/components/field/Field.element.js +20 -0
  192. package/dist/components/field/field.template.d.ts +9 -0
  193. package/dist/components/field/field.template.js +110 -0
  194. package/dist/components/field/index.d.ts +3 -0
  195. package/dist/components/field/index.js +1 -0
  196. package/dist/components/field/setup.component.d.ts +4 -0
  197. package/dist/components/field/setup.component.js +17 -0
  198. package/dist/components/frame/Frame.element.d.ts +10 -0
  199. package/dist/components/frame/Frame.element.js +27 -0
  200. package/dist/components/frame/frame.template.d.ts +4 -0
  201. package/dist/components/frame/frame.template.js +10 -0
  202. package/dist/components/frame/index.d.ts +3 -0
  203. package/dist/components/frame/index.js +1 -0
  204. package/dist/components/frame/setup.component.d.ts +3 -0
  205. package/dist/components/frame/setup.component.js +14 -0
  206. package/dist/components/icon/Icon.element.d.ts +10 -0
  207. package/dist/components/icon/Icon.element.js +21 -0
  208. package/dist/components/icon/icon.template.d.ts +7 -0
  209. package/dist/components/icon/icon.template.js +32 -0
  210. package/dist/components/icon/index.d.ts +4 -0
  211. package/dist/components/icon/index.js +3 -0
  212. package/dist/components/icon/setup.component.d.ts +3 -0
  213. package/dist/components/icon/setup.component.js +14 -0
  214. package/dist/components/index.d.ts +44 -0
  215. package/dist/components/index.js +104 -0
  216. package/dist/components/input/Input.element.d.ts +9 -0
  217. package/dist/components/input/Input.element.js +24 -0
  218. package/dist/components/input/index.d.ts +3 -0
  219. package/dist/components/input/index.js +1 -0
  220. package/dist/components/input/input.template.d.ts +10 -0
  221. package/dist/components/input/input.template.js +82 -0
  222. package/dist/components/input/setup.component.d.ts +7 -0
  223. package/dist/components/input/setup.component.js +16 -0
  224. package/dist/components/input-control/index.d.ts +1 -0
  225. package/dist/components/input-control/index.js +1 -0
  226. package/dist/components/input-control/setup.component.d.ts +4 -0
  227. package/dist/components/input-control/setup.component.js +2 -0
  228. package/dist/components/interactive/index.d.ts +1 -0
  229. package/dist/components/interactive/index.js +1 -0
  230. package/dist/components/interactive/setup.component.d.ts +3 -0
  231. package/dist/components/interactive/setup.component.js +2 -0
  232. package/dist/components/item-row/ItemRow.element.d.ts +26 -0
  233. package/dist/components/item-row/ItemRow.element.js +53 -0
  234. package/dist/components/item-row/index.d.ts +1 -0
  235. package/dist/components/item-row/index.js +1 -0
  236. package/dist/components/item-row/setup.component.d.ts +3 -0
  237. package/dist/components/item-row/setup.component.js +14 -0
  238. package/dist/components/label/Label.element.d.ts +9 -0
  239. package/dist/components/label/Label.element.js +19 -0
  240. package/dist/components/label/index.d.ts +3 -0
  241. package/dist/components/label/index.js +1 -0
  242. package/dist/components/label/label.template.d.ts +8 -0
  243. package/dist/components/label/label.template.js +33 -0
  244. package/dist/components/label/setup.component.d.ts +3 -0
  245. package/dist/components/label/setup.component.js +14 -0
  246. package/dist/components/list-box/ListBox.element.d.ts +10 -0
  247. package/dist/components/list-box/ListBox.element.js +32 -0
  248. package/dist/components/list-box/group/ListBoxGroup.element.d.ts +9 -0
  249. package/dist/components/list-box/group/ListBoxGroup.element.js +17 -0
  250. package/dist/components/list-box/group/index.d.ts +3 -0
  251. package/dist/components/list-box/group/index.js +3 -0
  252. package/dist/components/list-box/group/list-box-group.template.d.ts +8 -0
  253. package/dist/components/list-box/group/list-box-group.template.js +32 -0
  254. package/dist/components/list-box/group/setup.component.d.ts +3 -0
  255. package/dist/components/list-box/group/setup.component.js +16 -0
  256. package/dist/components/list-box/index.d.ts +7 -0
  257. package/dist/components/list-box/index.js +4 -0
  258. package/dist/components/list-box/item/ListBoxItem.element.d.ts +10 -0
  259. package/dist/components/list-box/item/ListBoxItem.element.js +25 -0
  260. package/dist/components/list-box/item/index.d.ts +3 -0
  261. package/dist/components/list-box/item/index.js +3 -0
  262. package/dist/components/list-box/item/list-box-item.template.d.ts +8 -0
  263. package/dist/components/list-box/item/list-box-item.template.js +116 -0
  264. package/dist/components/list-box/item/setup.component.d.ts +3 -0
  265. package/dist/components/list-box/item/setup.component.js +22 -0
  266. package/dist/components/list-box/list-box.template.d.ts +11 -0
  267. package/dist/components/list-box/list-box.template.js +77 -0
  268. package/dist/components/list-box/setup.component.d.ts +3 -0
  269. package/dist/components/list-box/setup.component.js +26 -0
  270. package/dist/components/menu/Menu.element.d.ts +10 -0
  271. package/dist/components/menu/Menu.element.js +49 -0
  272. package/dist/components/menu/checkbox-item/MenuCheckboxItem.element.d.ts +10 -0
  273. package/dist/components/menu/checkbox-item/MenuCheckboxItem.element.js +24 -0
  274. package/dist/components/menu/checkbox-item/index.d.ts +3 -0
  275. package/dist/components/menu/checkbox-item/index.js +3 -0
  276. package/dist/components/menu/checkbox-item/menu-checkbox-item.template.d.ts +8 -0
  277. package/dist/components/menu/checkbox-item/menu-checkbox-item.template.js +58 -0
  278. package/dist/components/menu/checkbox-item/setup.component.d.ts +3 -0
  279. package/dist/components/menu/checkbox-item/setup.component.js +22 -0
  280. package/dist/components/menu/group/MenuGroup.element.d.ts +9 -0
  281. package/dist/components/menu/group/MenuGroup.element.js +17 -0
  282. package/dist/components/menu/group/index.d.ts +3 -0
  283. package/dist/components/menu/group/index.js +3 -0
  284. package/dist/components/menu/group/menu-group.template.d.ts +12 -0
  285. package/dist/components/menu/group/menu-group.template.js +37 -0
  286. package/dist/components/menu/group/setup.component.d.ts +3 -0
  287. package/dist/components/menu/group/setup.component.js +16 -0
  288. package/dist/components/menu/index.d.ts +19 -0
  289. package/dist/components/menu/index.js +10 -0
  290. package/dist/components/menu/item/MenuItem.element.d.ts +10 -0
  291. package/dist/components/menu/item/MenuItem.element.js +24 -0
  292. package/dist/components/menu/item/index.d.ts +3 -0
  293. package/dist/components/menu/item/index.js +3 -0
  294. package/dist/components/menu/item/menu-item.template.d.ts +8 -0
  295. package/dist/components/menu/item/menu-item.template.js +36 -0
  296. package/dist/components/menu/item/setup.component.d.ts +3 -0
  297. package/dist/components/menu/item/setup.component.js +22 -0
  298. package/dist/components/menu/items.d.ts +25 -0
  299. package/dist/components/menu/items.js +112 -0
  300. package/dist/components/menu/menu.template.d.ts +17 -0
  301. package/dist/components/menu/menu.template.js +100 -0
  302. package/dist/components/menu/popover-item/MenuPopoverItem.element.d.ts +10 -0
  303. package/dist/components/menu/popover-item/MenuPopoverItem.element.js +24 -0
  304. package/dist/components/menu/popover-item/index.d.ts +3 -0
  305. package/dist/components/menu/popover-item/index.js +3 -0
  306. package/dist/components/menu/popover-item/menu-popover-item.template.d.ts +14 -0
  307. package/dist/components/menu/popover-item/menu-popover-item.template.js +83 -0
  308. package/dist/components/menu/popover-item/setup.component.d.ts +6 -0
  309. package/dist/components/menu/popover-item/setup.component.js +22 -0
  310. package/dist/components/menu/radio-group/MenuRadioGroup.element.d.ts +9 -0
  311. package/dist/components/menu/radio-group/MenuRadioGroup.element.js +17 -0
  312. package/dist/components/menu/radio-group/index.d.ts +3 -0
  313. package/dist/components/menu/radio-group/index.js +3 -0
  314. package/dist/components/menu/radio-group/menu-radio-group.template.d.ts +7 -0
  315. package/dist/components/menu/radio-group/menu-radio-group.template.js +10 -0
  316. package/dist/components/menu/radio-group/setup.component.d.ts +3 -0
  317. package/dist/components/menu/radio-group/setup.component.js +17 -0
  318. package/dist/components/menu/radio-item/MenuRadioItem.element.d.ts +10 -0
  319. package/dist/components/menu/radio-item/MenuRadioItem.element.js +24 -0
  320. package/dist/components/menu/radio-item/index.d.ts +3 -0
  321. package/dist/components/menu/radio-item/index.js +3 -0
  322. package/dist/components/menu/radio-item/menu-radio-item.template.d.ts +7 -0
  323. package/dist/components/menu/radio-item/menu-radio-item.template.js +54 -0
  324. package/dist/components/menu/radio-item/setup.component.d.ts +3 -0
  325. package/dist/components/menu/radio-item/setup.component.js +23 -0
  326. package/dist/components/menu/row.d.ts +27 -0
  327. package/dist/components/menu/row.js +72 -0
  328. package/dist/components/menu/separator/MenuSeparator.element.d.ts +9 -0
  329. package/dist/components/menu/separator/MenuSeparator.element.js +17 -0
  330. package/dist/components/menu/separator/index.d.ts +3 -0
  331. package/dist/components/menu/separator/index.js +3 -0
  332. package/dist/components/menu/separator/menu-separator.template.d.ts +4 -0
  333. package/dist/components/menu/separator/menu-separator.template.js +7 -0
  334. package/dist/components/menu/separator/setup.component.d.ts +3 -0
  335. package/dist/components/menu/separator/setup.component.js +14 -0
  336. package/dist/components/menu/setup.component.d.ts +6 -0
  337. package/dist/components/menu/setup.component.js +25 -0
  338. package/dist/components/menu/submenu/MenuSubmenu.element.d.ts +11 -0
  339. package/dist/components/menu/submenu/MenuSubmenu.element.js +26 -0
  340. package/dist/components/menu/submenu/index.d.ts +3 -0
  341. package/dist/components/menu/submenu/index.js +3 -0
  342. package/dist/components/menu/submenu/menu-submenu.template.d.ts +13 -0
  343. package/dist/components/menu/submenu/menu-submenu.template.js +103 -0
  344. package/dist/components/menu/submenu/setup.component.d.ts +11 -0
  345. package/dist/components/menu/submenu/setup.component.js +36 -0
  346. package/dist/components/number-input/NumberInput.element.d.ts +11 -0
  347. package/dist/components/number-input/NumberInput.element.js +26 -0
  348. package/dist/components/number-input/index.d.ts +3 -0
  349. package/dist/components/number-input/index.js +1 -0
  350. package/dist/components/number-input/number-input.template.d.ts +9 -0
  351. package/dist/components/number-input/number-input.template.js +166 -0
  352. package/dist/components/number-input/setup.component.d.ts +7 -0
  353. package/dist/components/number-input/setup.component.js +16 -0
  354. package/dist/components/pagination/Pagination.element.d.ts +10 -0
  355. package/dist/components/pagination/Pagination.element.js +24 -0
  356. package/dist/components/pagination/index.d.ts +3 -0
  357. package/dist/components/pagination/index.js +1 -0
  358. package/dist/components/pagination/item/PaginationItem.element.d.ts +11 -0
  359. package/dist/components/pagination/item/PaginationItem.element.js +23 -0
  360. package/dist/components/pagination/item/index.d.ts +3 -0
  361. package/dist/components/pagination/item/index.js +3 -0
  362. package/dist/components/pagination/item/pagination-item.template.d.ts +8 -0
  363. package/dist/components/pagination/item/pagination-item.template.js +55 -0
  364. package/dist/components/pagination/item/setup.component.d.ts +3 -0
  365. package/dist/components/pagination/item/setup.component.js +22 -0
  366. package/dist/components/pagination/pagination.template.d.ts +11 -0
  367. package/dist/components/pagination/pagination.template.js +109 -0
  368. package/dist/components/pagination/setup.component.d.ts +3 -0
  369. package/dist/components/pagination/setup.component.js +25 -0
  370. package/dist/components/popover/Popover.element.d.ts +16 -0
  371. package/dist/components/popover/Popover.element.js +46 -0
  372. package/dist/components/popover/index.d.ts +6 -0
  373. package/dist/components/popover/index.js +1 -0
  374. package/dist/components/popover/popover.template.d.ts +9 -0
  375. package/dist/components/popover/popover.template.js +126 -0
  376. package/dist/components/popover/setup.component.d.ts +5 -0
  377. package/dist/components/popover/setup.component.js +14 -0
  378. package/dist/components/progress-linear/ProgressLinear.element.d.ts +10 -0
  379. package/dist/components/progress-linear/ProgressLinear.element.js +24 -0
  380. package/dist/components/progress-linear/index.d.ts +3 -0
  381. package/dist/components/progress-linear/index.js +1 -0
  382. package/dist/components/progress-linear/progress-linear.template.d.ts +8 -0
  383. package/dist/components/progress-linear/progress-linear.template.js +12 -0
  384. package/dist/components/progress-linear/setup.component.d.ts +3 -0
  385. package/dist/components/progress-linear/setup.component.js +14 -0
  386. package/dist/components/progress-spinner/ProgressSpinner.element.d.ts +10 -0
  387. package/dist/components/progress-spinner/ProgressSpinner.element.js +24 -0
  388. package/dist/components/progress-spinner/index.d.ts +3 -0
  389. package/dist/components/progress-spinner/index.js +1 -0
  390. package/dist/components/progress-spinner/progress-spinner.template.d.ts +8 -0
  391. package/dist/components/progress-spinner/progress-spinner.template.js +41 -0
  392. package/dist/components/progress-spinner/setup.component.d.ts +3 -0
  393. package/dist/components/progress-spinner/setup.component.js +14 -0
  394. package/dist/components/radio-group/RadioGroup.element.d.ts +9 -0
  395. package/dist/components/radio-group/RadioGroup.element.js +23 -0
  396. package/dist/components/radio-group/index.d.ts +5 -0
  397. package/dist/components/radio-group/index.js +3 -0
  398. package/dist/components/radio-group/item/RadioGroupItem.element.d.ts +11 -0
  399. package/dist/components/radio-group/item/RadioGroupItem.element.js +25 -0
  400. package/dist/components/radio-group/item/index.d.ts +3 -0
  401. package/dist/components/radio-group/item/index.js +3 -0
  402. package/dist/components/radio-group/item/radio-group-item.template.d.ts +8 -0
  403. package/dist/components/radio-group/item/radio-group-item.template.js +61 -0
  404. package/dist/components/radio-group/item/setup.component.d.ts +3 -0
  405. package/dist/components/radio-group/item/setup.component.js +22 -0
  406. package/dist/components/radio-group/radio-group.template.d.ts +10 -0
  407. package/dist/components/radio-group/radio-group.template.js +34 -0
  408. package/dist/components/radio-group/setup.component.d.ts +3 -0
  409. package/dist/components/radio-group/setup.component.js +25 -0
  410. package/dist/components/rating/Rating.element.d.ts +10 -0
  411. package/dist/components/rating/Rating.element.js +25 -0
  412. package/dist/components/rating/index.d.ts +3 -0
  413. package/dist/components/rating/index.js +1 -0
  414. package/dist/components/rating/rating.template.d.ts +12 -0
  415. package/dist/components/rating/rating.template.js +89 -0
  416. package/dist/components/rating/setup.component.d.ts +7 -0
  417. package/dist/components/rating/setup.component.js +16 -0
  418. package/dist/components/scroller/Scroller.element.d.ts +9 -0
  419. package/dist/components/scroller/Scroller.element.js +19 -0
  420. package/dist/components/scroller/index.d.ts +3 -0
  421. package/dist/components/scroller/index.js +1 -0
  422. package/dist/components/scroller/scroller.template.d.ts +9 -0
  423. package/dist/components/scroller/scroller.template.js +82 -0
  424. package/dist/components/scroller/setup.component.d.ts +3 -0
  425. package/dist/components/scroller/setup.component.js +14 -0
  426. package/dist/components/select/Select.element.d.ts +12 -0
  427. package/dist/components/select/Select.element.js +33 -0
  428. package/dist/components/select/group/SelectGroup.element.d.ts +9 -0
  429. package/dist/components/select/group/SelectGroup.element.js +17 -0
  430. package/dist/components/select/group/index.d.ts +3 -0
  431. package/dist/components/select/group/index.js +3 -0
  432. package/dist/components/select/group/select-group.template.d.ts +7 -0
  433. package/dist/components/select/group/select-group.template.js +32 -0
  434. package/dist/components/select/group/setup.component.d.ts +4 -0
  435. package/dist/components/select/group/setup.component.js +17 -0
  436. package/dist/components/select/index.d.ts +7 -0
  437. package/dist/components/select/index.js +4 -0
  438. package/dist/components/select/item/SelectItem.element.d.ts +11 -0
  439. package/dist/components/select/item/SelectItem.element.js +26 -0
  440. package/dist/components/select/item/index.d.ts +3 -0
  441. package/dist/components/select/item/index.js +3 -0
  442. package/dist/components/select/item/select-item.template.d.ts +9 -0
  443. package/dist/components/select/item/select-item.template.js +113 -0
  444. package/dist/components/select/item/setup.component.d.ts +3 -0
  445. package/dist/components/select/item/setup.component.js +22 -0
  446. package/dist/components/select/select.template.d.ts +12 -0
  447. package/dist/components/select/select.template.js +216 -0
  448. package/dist/components/select/setup.component.d.ts +9 -0
  449. package/dist/components/select/setup.component.js +26 -0
  450. package/dist/components/skeleton/Skeleton.element.d.ts +10 -0
  451. package/dist/components/skeleton/Skeleton.element.js +24 -0
  452. package/dist/components/skeleton/index.d.ts +3 -0
  453. package/dist/components/skeleton/index.js +1 -0
  454. package/dist/components/skeleton/setup.component.d.ts +3 -0
  455. package/dist/components/skeleton/setup.component.js +14 -0
  456. package/dist/components/skeleton/skeleton.template.d.ts +8 -0
  457. package/dist/components/skeleton/skeleton.template.js +25 -0
  458. package/dist/components/slider/Slider.element.d.ts +11 -0
  459. package/dist/components/slider/Slider.element.js +25 -0
  460. package/dist/components/slider/index.d.ts +3 -0
  461. package/dist/components/slider/index.js +1 -0
  462. package/dist/components/slider/setup.component.d.ts +3 -0
  463. package/dist/components/slider/setup.component.js +16 -0
  464. package/dist/components/slider/slider.template.d.ts +8 -0
  465. package/dist/components/slider/slider.template.js +149 -0
  466. package/dist/components/stylable/index.d.ts +1 -0
  467. package/dist/components/stylable/index.js +1 -0
  468. package/dist/components/stylable/setup.component.d.ts +3 -0
  469. package/dist/components/stylable/setup.component.js +2 -0
  470. package/dist/components/switch/Switch.element.d.ts +9 -0
  471. package/dist/components/switch/Switch.element.js +24 -0
  472. package/dist/components/switch/index.d.ts +3 -0
  473. package/dist/components/switch/index.js +1 -0
  474. package/dist/components/switch/setup.component.d.ts +7 -0
  475. package/dist/components/switch/setup.component.js +16 -0
  476. package/dist/components/switch/switch.template.d.ts +9 -0
  477. package/dist/components/switch/switch.template.js +63 -0
  478. package/dist/components/table/Table.element.d.ts +11 -0
  479. package/dist/components/table/Table.element.js +29 -0
  480. package/dist/components/table/column/TableColumn.element.d.ts +10 -0
  481. package/dist/components/table/column/TableColumn.element.js +22 -0
  482. package/dist/components/table/column/index.d.ts +3 -0
  483. package/dist/components/table/column/index.js +3 -0
  484. package/dist/components/table/column/setup.component.d.ts +4 -0
  485. package/dist/components/table/column/setup.component.js +15 -0
  486. package/dist/components/table/column/table-column.template.d.ts +8 -0
  487. package/dist/components/table/column/table-column.template.js +123 -0
  488. package/dist/components/table/index.d.ts +7 -0
  489. package/dist/components/table/index.js +4 -0
  490. package/dist/components/table/row/TableRow.element.d.ts +10 -0
  491. package/dist/components/table/row/TableRow.element.js +19 -0
  492. package/dist/components/table/row/index.d.ts +3 -0
  493. package/dist/components/table/row/index.js +3 -0
  494. package/dist/components/table/row/setup.component.d.ts +3 -0
  495. package/dist/components/table/row/setup.component.js +22 -0
  496. package/dist/components/table/row/table-row.template.d.ts +8 -0
  497. package/dist/components/table/row/table-row.template.js +98 -0
  498. package/dist/components/table/setup.component.d.ts +3 -0
  499. package/dist/components/table/setup.component.js +26 -0
  500. package/dist/components/table/table.template.d.ts +12 -0
  501. package/dist/components/table/table.template.js +164 -0
  502. package/dist/components/tabs/Tabs.element.d.ts +10 -0
  503. package/dist/components/tabs/Tabs.element.js +32 -0
  504. package/dist/components/tabs/content/TabsContent.element.d.ts +10 -0
  505. package/dist/components/tabs/content/TabsContent.element.js +24 -0
  506. package/dist/components/tabs/content/index.d.ts +3 -0
  507. package/dist/components/tabs/content/index.js +3 -0
  508. package/dist/components/tabs/content/setup.component.d.ts +3 -0
  509. package/dist/components/tabs/content/setup.component.js +22 -0
  510. package/dist/components/tabs/content/tabs-content.template.d.ts +4 -0
  511. package/dist/components/tabs/content/tabs-content.template.js +15 -0
  512. package/dist/components/tabs/index.d.ts +7 -0
  513. package/dist/components/tabs/index.js +4 -0
  514. package/dist/components/tabs/item/TabsItem.element.d.ts +10 -0
  515. package/dist/components/tabs/item/TabsItem.element.js +25 -0
  516. package/dist/components/tabs/item/index.d.ts +3 -0
  517. package/dist/components/tabs/item/index.js +3 -0
  518. package/dist/components/tabs/item/setup.component.d.ts +3 -0
  519. package/dist/components/tabs/item/setup.component.js +22 -0
  520. package/dist/components/tabs/item/tabs-item.template.d.ts +8 -0
  521. package/dist/components/tabs/item/tabs-item.template.js +113 -0
  522. package/dist/components/tabs/setup.component.d.ts +3 -0
  523. package/dist/components/tabs/setup.component.js +26 -0
  524. package/dist/components/tabs/tabs.template.d.ts +12 -0
  525. package/dist/components/tabs/tabs.template.js +76 -0
  526. package/dist/components/tags/Tags.element.d.ts +10 -0
  527. package/dist/components/tags/Tags.element.js +24 -0
  528. package/dist/components/tags/index.d.ts +5 -0
  529. package/dist/components/tags/index.js +3 -0
  530. package/dist/components/tags/item/TagsItem.element.d.ts +11 -0
  531. package/dist/components/tags/item/TagsItem.element.js +26 -0
  532. package/dist/components/tags/item/index.d.ts +3 -0
  533. package/dist/components/tags/item/index.js +3 -0
  534. package/dist/components/tags/item/setup.component.d.ts +3 -0
  535. package/dist/components/tags/item/setup.component.js +22 -0
  536. package/dist/components/tags/item/tags-item.template.d.ts +9 -0
  537. package/dist/components/tags/item/tags-item.template.js +115 -0
  538. package/dist/components/tags/setup.component.d.ts +3 -0
  539. package/dist/components/tags/setup.component.js +25 -0
  540. package/dist/components/tags/tags.template.d.ts +10 -0
  541. package/dist/components/tags/tags.template.js +43 -0
  542. package/dist/components/textable/index.d.ts +1 -0
  543. package/dist/components/textable/index.js +1 -0
  544. package/dist/components/textable/setup.component.d.ts +3 -0
  545. package/dist/components/textable/setup.component.js +2 -0
  546. package/dist/components/textarea/Textarea.element.d.ts +9 -0
  547. package/dist/components/textarea/Textarea.element.js +24 -0
  548. package/dist/components/textarea/index.d.ts +3 -0
  549. package/dist/components/textarea/index.js +1 -0
  550. package/dist/components/textarea/setup.component.d.ts +7 -0
  551. package/dist/components/textarea/setup.component.js +16 -0
  552. package/dist/components/textarea/textarea.template.d.ts +9 -0
  553. package/dist/components/textarea/textarea.template.js +81 -0
  554. package/dist/components/toasts/Toasts.element.d.ts +11 -0
  555. package/dist/components/toasts/Toasts.element.js +29 -0
  556. package/dist/components/toasts/index.d.ts +5 -0
  557. package/dist/components/toasts/index.js +3 -0
  558. package/dist/components/toasts/item/ToastsItem.element.d.ts +11 -0
  559. package/dist/components/toasts/item/ToastsItem.element.js +19 -0
  560. package/dist/components/toasts/item/index.d.ts +3 -0
  561. package/dist/components/toasts/item/index.js +3 -0
  562. package/dist/components/toasts/item/setup.component.d.ts +3 -0
  563. package/dist/components/toasts/item/setup.component.js +22 -0
  564. package/dist/components/toasts/item/toasts-item.template.d.ts +9 -0
  565. package/dist/components/toasts/item/toasts-item.template.js +133 -0
  566. package/dist/components/toasts/setup.component.d.ts +3 -0
  567. package/dist/components/toasts/setup.component.js +26 -0
  568. package/dist/components/toasts/toasts.template.d.ts +11 -0
  569. package/dist/components/toasts/toasts.template.js +53 -0
  570. package/dist/components/tooltip/Tooltip.element.d.ts +10 -0
  571. package/dist/components/tooltip/Tooltip.element.js +24 -0
  572. package/dist/components/tooltip/index.d.ts +3 -0
  573. package/dist/components/tooltip/index.js +1 -0
  574. package/dist/components/tooltip/setup.component.d.ts +6 -0
  575. package/dist/components/tooltip/setup.component.js +14 -0
  576. package/dist/components/tooltip/tooltip.template.d.ts +11 -0
  577. package/dist/components/tooltip/tooltip.template.js +68 -0
  578. package/dist/components/value-control/index.d.ts +1 -0
  579. package/dist/components/value-control/index.js +1 -0
  580. package/dist/components/value-control/setup.component.d.ts +4 -0
  581. package/dist/components/value-control/setup.component.js +2 -0
  582. package/dist/components/virtual/Virtual.element.d.ts +10 -0
  583. package/dist/components/virtual/Virtual.element.js +20 -0
  584. package/dist/components/virtual/index.d.ts +3 -0
  585. package/dist/components/virtual/index.js +1 -0
  586. package/dist/components/virtual/setup.component.d.ts +4 -0
  587. package/dist/components/virtual/setup.component.js +17 -0
  588. package/dist/components/virtual/virtual.template.d.ts +4 -0
  589. package/dist/components/virtual/virtual.template.js +14 -0
  590. package/dist/index.d.ts +7 -0
  591. package/dist/index.js +65 -0
  592. package/package.json +200 -4
@@ -0,0 +1,77 @@
1
+ /**
2
+ * Описание корня — что у компонентов база раскладывает по-разному. Нет его —
3
+ * корень как у всех: сам элемент, стиль только от плагина раскладки,
4
+ * видимость прячет корень. AGENTS.md (Web Components), «Корень».
5
+ *
6
+ * - `'host'` — корень — сам элемент потребителя (`<button is="so-button">`);
7
+ * - `'wrapped'` — элемент — обёртка, корень — узел шаблона в ней: окно
8
+ * таблицы вокруг `table`, где корень и поле; с `teleport` корень уезжает в
9
+ * слой, а обёртка без коробки остаётся местом (регион тостов).
10
+ */
11
+ import type { TStateSnapshot } from '@soxa-ui/setup';
12
+ import type { TTeleportPlace } from './teleport';
13
+ export type TRootSet = 'attrs' | 'aria' | 'dataset';
14
+ /** Имена выходов состояния: селектор цели и «на месте». Без `contained` корень всегда в цели. */
15
+ export type TRootTeleport = {
16
+ readonly target: string;
17
+ readonly contained?: string;
18
+ };
19
+ export type TRootSpec = {
20
+ readonly strategy: 'host';
21
+ /** Выход со стилем, который считает ядро (`fractionStyle` у ProgressSpinner). */
22
+ readonly style?: string;
23
+ /** Прячут ли `visible` и `rendered` корень; нет у Skeleton. По умолчанию да. */
24
+ readonly hides?: boolean;
25
+ /** Корень встаёт по месту в коллекции: `order` фасада — в стиль (Tabs, Accordion). */
26
+ readonly order?: boolean;
27
+ /** Выход, без которого корня нет, как `v-if` (`active` панели таба). */
28
+ readonly shownBy?: string;
29
+ readonly teleport?: TRootTeleport;
30
+ /** Наборы ядра на корне; у поля `aria` стоит на `<input>`. По умолчанию все три. */
31
+ readonly sets?: readonly TRootSet[];
32
+ /** Выход слоя `aria` корня (`rootAria` у Slider). По умолчанию `aria`. */
33
+ readonly aria?: string;
34
+ /** Статика разметки элемента, кроме класса и стиля, — узлу `control` шаблона. */
35
+ readonly control?: boolean;
36
+ /** `id` — проп поля, хотя статика остаётся корню (Rating). */
37
+ readonly fieldId?: boolean;
38
+ } | {
39
+ readonly strategy: 'wrapped';
40
+ readonly teleport?: TRootTeleport;
41
+ };
42
+ /** Что база берёт из описания корня — один раз, на класс элемента. */
43
+ export type TRootPlan = {
44
+ readonly wrapped: boolean;
45
+ /** Статика разметки уходит полю, и набор владельца ждёт его построения. */
46
+ readonly control: boolean;
47
+ readonly fieldId: boolean;
48
+ /** Что из статики остаётся на элементе при переносе, сверх входов и своих атрибутов. */
49
+ readonly keep: ReadonlySet<string>;
50
+ /** Внешний узел — корень: обёртка в слое только место. */
51
+ readonly outerIsRoot: boolean;
52
+ readonly layer?: TRootTeleport;
53
+ readonly style?: string;
54
+ readonly order: boolean;
55
+ readonly shownBy?: string;
56
+ readonly hides: boolean;
57
+ /** Снимает ли `rendered=false` поддерево: у Skeleton и обёртки в слое нет. */
58
+ readonly unrenders: boolean;
59
+ /** Слой раскладчика и выход состояния, из которого он берётся. */
60
+ readonly sets: readonly (readonly [TRootSet, string])[];
61
+ };
62
+ export declare function planOf(spec?: TRootSpec): TRootPlan;
63
+ /** Куда корню слоя: селектор цели — непустая строка, остальное — цели нет. */
64
+ export declare function placeOf(state: TStateSnapshot, layer: TRootTeleport): TTeleportPlace;
65
+ /** Скрыт ли внешний узел, есть ли корень у плагинов и есть ли своё поддерево. */
66
+ export type TPresence = {
67
+ readonly hidden: boolean;
68
+ readonly present: boolean;
69
+ readonly subtree: boolean;
70
+ };
71
+ /**
72
+ * Корня нет там, где его снял бы `v-if` у Vue: без поддерева у предка, при
73
+ * `rendered=false` и без выхода `shownBy`. `visible` — это `v-show`, а слой без
74
+ * цели только спрятан: узел у плагинов у обоих остаётся. Слой прячется и без
75
+ * поддерева у предка — `display: none` предка до увезённого корня не доходит.
76
+ */
77
+ export declare function presenceOf(plan: TRootPlan, state: TStateSnapshot, above: boolean, placed: boolean): TPresence;
@@ -0,0 +1,77 @@
1
+ //#region src/adapter/runtime/root.ts
2
+ var ROOT_SETS = [
3
+ "attrs",
4
+ "aria",
5
+ "dataset"
6
+ ];
7
+ /** Класс и стиль — корню; `is` — имя элемента, `slot` — его место в свете родителя. */
8
+ var ROOT_ONLY = /* @__PURE__ */ new Set([
9
+ "class",
10
+ "style",
11
+ "is",
12
+ "slot"
13
+ ]);
14
+ /** Обёртка в слое — только место: класс и стиль уходят корню. */
15
+ var PLACE_ONLY = /* @__PURE__ */ new Set(["is", "slot"]);
16
+ var HOST = { strategy: "host" };
17
+ function planOf(spec = HOST) {
18
+ if (spec.strategy === "wrapped") {
19
+ const layered = spec.teleport !== void 0;
20
+ return {
21
+ wrapped: true,
22
+ control: !layered,
23
+ fieldId: false,
24
+ keep: layered ? PLACE_ONLY : ROOT_ONLY,
25
+ outerIsRoot: layered,
26
+ layer: spec.teleport,
27
+ order: false,
28
+ hides: true,
29
+ unrenders: !layered,
30
+ sets: setsOf(ROOT_SETS, "aria")
31
+ };
32
+ }
33
+ const hides = spec.hides ?? true;
34
+ return {
35
+ wrapped: false,
36
+ control: spec.control === true,
37
+ fieldId: spec.fieldId === true,
38
+ keep: ROOT_ONLY,
39
+ outerIsRoot: false,
40
+ layer: spec.teleport,
41
+ style: spec.style,
42
+ order: spec.order === true,
43
+ shownBy: spec.shownBy,
44
+ hides,
45
+ unrenders: hides,
46
+ sets: setsOf(spec.sets ?? ROOT_SETS, spec.aria ?? "aria")
47
+ };
48
+ }
49
+ function setsOf(sets, aria) {
50
+ return sets.map((set) => [set, set === "aria" ? aria : set]);
51
+ }
52
+ /** Куда корню слоя: селектор цели — непустая строка, остальное — цели нет. */
53
+ function placeOf(state, layer) {
54
+ const target = state[layer.target];
55
+ return {
56
+ target: typeof target === "string" && target !== "" ? target : null,
57
+ contained: layer.contained !== void 0 && state[layer.contained] === true
58
+ };
59
+ }
60
+ /**
61
+ * Корня нет там, где его снял бы `v-if` у Vue: без поддерева у предка, при
62
+ * `rendered=false` и без выхода `shownBy`. `visible` — это `v-show`, а слой без
63
+ * цели только спрятан: узел у плагинов у обоих остаётся. Слой прячется и без
64
+ * поддерева у предка — `display: none` предка до увезённого корня не доходит.
65
+ */
66
+ function presenceOf(plan, state, above, placed) {
67
+ const unrendered = state["rendered"] === false;
68
+ const unseen = plan.hides && (unrendered || state["visible"] === false);
69
+ const absent = plan.shownBy !== void 0 && state[plan.shownBy] !== true;
70
+ return {
71
+ hidden: unseen || absent || !placed || plan.layer !== void 0 && !above,
72
+ present: above && !(plan.hides && unrendered) && !absent,
73
+ subtree: above && !(plan.unrenders && unrendered) && !absent
74
+ };
75
+ }
76
+ //#endregion
77
+ export { placeOf, planOf, presenceOf };
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Признак «поддерево есть» в контексте места. У Vue `v-if` снимает и панели
3
+ * вложенных слоёв, увезённые в `body`, а `display: none` элемента до них не
4
+ * доходит, поэтому снятое поддерево элемент отдаёт месту признаком. Смена
5
+ * доходит до подписчиков тем же вызовом. AGENTS.md (Web Components),
6
+ * «Поддерево».
7
+ */
8
+ export declare class TSubtree {
9
+ private _present;
10
+ private readonly _listeners;
11
+ get present(): boolean;
12
+ set present(value: boolean);
13
+ subscribe(listener: () => void): () => void;
14
+ }
15
+ /** Признак предка по месту на одну сборку; предка нет — поддерево есть. */
16
+ export type TAbove = {
17
+ readonly present: boolean;
18
+ stop(): void;
19
+ };
20
+ export declare function provideSubtree(element: Element, subtree: TSubtree): void;
21
+ /** Ближайший признак выше по месту — от якоря у увезённого корня — и подписка на него. */
22
+ export declare function followAbove(node: Node, listener: () => void): TAbove;
@@ -0,0 +1,44 @@
1
+ import { TPlaceContext } from "../context/place-context.class.js";
2
+ //#region src/adapter/runtime/subtree.ts
3
+ /**
4
+ * Признак «поддерево есть» в контексте места. У Vue `v-if` снимает и панели
5
+ * вложенных слоёв, увезённые в `body`, а `display: none` элемента до них не
6
+ * доходит, поэтому снятое поддерево элемент отдаёт месту признаком. Смена
7
+ * доходит до подписчиков тем же вызовом. AGENTS.md (Web Components),
8
+ * «Поддерево».
9
+ */
10
+ var TSubtree = class {
11
+ _present = true;
12
+ _listeners = /* @__PURE__ */ new Set();
13
+ get present() {
14
+ return this._present;
15
+ }
16
+ set present(value) {
17
+ if (value === this._present) return;
18
+ this._present = value;
19
+ for (const listener of [...this._listeners]) listener();
20
+ }
21
+ subscribe(listener) {
22
+ this._listeners.add(listener);
23
+ return () => {
24
+ this._listeners.delete(listener);
25
+ };
26
+ }
27
+ };
28
+ var SUBTREE = new TPlaceContext();
29
+ function provideSubtree(element, subtree) {
30
+ SUBTREE.provide(element, subtree);
31
+ }
32
+ /** Ближайший признак выше по месту — от якоря у увезённого корня — и подписка на него. */
33
+ function followAbove(node, listener) {
34
+ const above = SUBTREE.nearest(node);
35
+ const unsubscribe = above?.subscribe(listener);
36
+ return {
37
+ get present() {
38
+ return above?.present ?? true;
39
+ },
40
+ stop: () => unsubscribe?.()
41
+ };
42
+ }
43
+ //#endregion
44
+ export { TSubtree, followAbove, provideSubtree };
@@ -0,0 +1,57 @@
1
+ /**
2
+ * Телепорт корня слоя — аналог `<teleport :to>`: уводит корень со спутником
3
+ * (подложкой) в цель по селектору, на месте оставляет якорь-комментарий, и
4
+ * поиск по месту от корня идёт к якорю. Панель ходит с местом: место
5
+ * пересобрано или снято — корень возвращается к якорю переносом с
6
+ * пересборкой. Путей к этому два: колбэки хозяина места (`recall`) и
7
+ * наблюдатель документа для мест без хозяина. AGENTS.md (Web Components),
8
+ * «Телепорт слоя» и «Панель ходит с местом».
9
+ */
10
+ /** Текст якоря, который стоит на месте корня, пока корень в цели. */
11
+ export declare const TELEPORT_ANCHOR = "so-teleport";
12
+ export type TTeleportPlace = {
13
+ /** Селектор цели; `null` — цели нет. */
14
+ readonly target: string | null;
15
+ readonly contained: boolean;
16
+ };
17
+ export declare class TTeleport {
18
+ private readonly _host;
19
+ private readonly _root;
20
+ private readonly _companion;
21
+ private static readonly _watches;
22
+ /** Узел → корень, за который он стоит в свете контейнера: якорь и спутник. */
23
+ private static readonly _roots;
24
+ static rootAt(node: Node): Element | undefined;
25
+ /** Панели места хозяина — к якорям: он пересобран или снят со страницы. */
26
+ static recall(owner: Element): void;
27
+ private _anchor;
28
+ constructor(_host: Element, _root?: Element, _companion?: Element | null);
29
+ /** В цель или на место; отдаёт, на своём ли месте корень (цели нет — `false`). */
30
+ place({ target, contained }: TTeleportPlace): boolean;
31
+ /**
32
+ * Настоящее отключение корня-элемента: якорь и спутник уходят, а элементам
33
+ * в корне — долг, их отключение от той же операции настоящее.
34
+ */
35
+ release(): void;
36
+ private _nodes;
37
+ private _moveTo;
38
+ private _home;
39
+ /** Спутник — прямо перед корнем, где бы тот ни стоял. */
40
+ private _escort;
41
+ /** Хозяин места — ближайший элемент базы вверх от якоря, в момент вопроса. */
42
+ private _owner;
43
+ /** Якорь ушёл, или узел на пути до хозяина снят в этой пачке — и не базой. */
44
+ private _displaced;
45
+ /**
46
+ * К якорю с пересборкой: признак прежнего переноса базы, который ещё держится
47
+ * над панелью, настоящего отключения не глушит.
48
+ */
49
+ private _follow;
50
+ /** Одним подключением: корни собираются, когда браузер довёл колбэки всех панелей. */
51
+ private static _followAll;
52
+ private _return;
53
+ private _forget;
54
+ /** Якорь в теневом дереве — наблюдать и его корень: документ его состава не видит. */
55
+ private static _watch;
56
+ private static _unwatch;
57
+ }
@@ -0,0 +1,190 @@
1
+ import { TPlaceContext } from "../context/place-context.class.js";
2
+ import { isPlaceOwner } from "./marks.js";
3
+ import { isRelocating, owe, rebuild, relocate } from "./relocation.js";
4
+ import { connecting } from "./waiting.js";
5
+ //#region src/adapter/runtime/teleport.ts
6
+ /**
7
+ * Телепорт корня слоя — аналог `<teleport :to>`: уводит корень со спутником
8
+ * (подложкой) в цель по селектору, на месте оставляет якорь-комментарий, и
9
+ * поиск по месту от корня идёт к якорю. Панель ходит с местом: место
10
+ * пересобрано или снято — корень возвращается к якорю переносом с
11
+ * пересборкой. Путей к этому два: колбэки хозяина места (`recall`) и
12
+ * наблюдатель документа для мест без хозяина. AGENTS.md (Web Components),
13
+ * «Телепорт слоя» и «Панель ходит с местом».
14
+ */
15
+ /** Текст якоря, который стоит на месте корня, пока корень в цели. */
16
+ var TELEPORT_ANCHOR = "so-teleport";
17
+ var WATCHED = {
18
+ childList: true,
19
+ subtree: true
20
+ };
21
+ function removedIn(records) {
22
+ const removed = /* @__PURE__ */ new Set();
23
+ for (const record of records) for (const node of record.removedNodes) removed.add(node);
24
+ return removed;
25
+ }
26
+ /** Хозяева мест внутри узла — в свете и в открытых теневых корнях. */
27
+ function ownersWithin(scope) {
28
+ const found = [];
29
+ for (const element of scope.querySelectorAll("*")) {
30
+ if (isPlaceOwner(element)) found.push(element);
31
+ if (element.shadowRoot) found.push(...ownersWithin(element.shadowRoot));
32
+ }
33
+ return found;
34
+ }
35
+ var TTeleport = class TTeleport {
36
+ _host;
37
+ _root;
38
+ _companion;
39
+ static _watches = /* @__PURE__ */ new WeakMap();
40
+ /** Узел → корень, за который он стоит в свете контейнера: якорь и спутник. */
41
+ static _roots = /* @__PURE__ */ new WeakMap();
42
+ static rootAt(node) {
43
+ return TTeleport._roots.get(node);
44
+ }
45
+ /** Панели места хозяина — к якорям: он пересобран или снят со страницы. */
46
+ static recall(owner) {
47
+ const watch = TTeleport._watches.get(owner.ownerDocument);
48
+ if (watch === void 0) return;
49
+ TTeleport._followAll([...watch.teleports].filter((each) => each._owner() === owner));
50
+ }
51
+ _anchor = null;
52
+ constructor(_host, _root = _host, _companion = null) {
53
+ this._host = _host;
54
+ this._root = _root;
55
+ this._companion = _companion;
56
+ if (_companion !== null) TTeleport._roots.set(_companion, _root);
57
+ }
58
+ /** В цель или на место; отдаёт, на своём ли месте корень (цели нет — `false`). */
59
+ place({ target, contained }) {
60
+ const root = this._root;
61
+ const wanted = contained || target === null ? null : root.ownerDocument.querySelector(target);
62
+ if (wanted === null) this._home();
63
+ else if (root.parentNode !== wanted) this._moveTo(wanted);
64
+ this._escort();
65
+ return contained || wanted !== null;
66
+ }
67
+ /**
68
+ * Настоящее отключение корня-элемента: якорь и спутник уходят, а элементам
69
+ * в корне — долг, их отключение от той же операции настоящее.
70
+ */
71
+ release() {
72
+ if (this._root !== this._host) return;
73
+ owe(ownersWithin(this._root));
74
+ const anchor = this._anchor;
75
+ if (anchor !== null) {
76
+ this._forget(anchor);
77
+ anchor.remove();
78
+ }
79
+ this._companion?.remove();
80
+ }
81
+ _nodes() {
82
+ return this._companion === null ? [this._root] : [this._companion, this._root];
83
+ }
84
+ _moveTo(target) {
85
+ const root = this._root;
86
+ if (this._anchor === null) {
87
+ const anchor = root.ownerDocument.createComment(TELEPORT_ANCHOR);
88
+ root.before(anchor);
89
+ TPlaceContext.anchor(root, anchor);
90
+ TTeleport._roots.set(anchor, root);
91
+ TTeleport._watch(this, anchor);
92
+ this._anchor = anchor;
93
+ }
94
+ const nodes = this._nodes();
95
+ relocate(nodes, () => {
96
+ for (const node of nodes) target.appendChild(node);
97
+ });
98
+ }
99
+ _home() {
100
+ const anchor = this._anchor;
101
+ if (anchor === null) return;
102
+ this._forget(anchor);
103
+ relocate(this._nodes(), () => this._return(anchor));
104
+ }
105
+ /** Спутник — прямо перед корнем, где бы тот ни стоял. */
106
+ _escort() {
107
+ const companion = this._companion;
108
+ const root = this._root;
109
+ const parent = root.parentNode;
110
+ if (companion === null || parent === null || companion.nextSibling === root) return;
111
+ relocate([companion], () => parent.insertBefore(companion, root));
112
+ }
113
+ /** Хозяин места — ближайший элемент базы вверх от якоря, в момент вопроса. */
114
+ _owner() {
115
+ if (this._anchor === null) return null;
116
+ for (const node of TPlaceContext.ancestors(this._anchor)) if (isPlaceOwner(node)) return node;
117
+ return null;
118
+ }
119
+ /** Якорь ушёл, или узел на пути до хозяина снят в этой пачке — и не базой. */
120
+ _displaced(removed) {
121
+ const anchor = this._anchor;
122
+ if (anchor === null) return false;
123
+ if (!anchor.isConnected) return true;
124
+ if (removed.size === 0) return false;
125
+ for (let node = anchor; node !== null && !isPlaceOwner(node); node = TPlaceContext.above(node)) if (removed.has(node) && !isRelocating(node)) return true;
126
+ return false;
127
+ }
128
+ /**
129
+ * К якорю с пересборкой: признак прежнего переноса базы, который ещё держится
130
+ * над панелью, настоящего отключения не глушит.
131
+ */
132
+ _follow() {
133
+ const anchor = this._anchor;
134
+ if (anchor === null) return;
135
+ this._forget(anchor);
136
+ rebuild(this._nodes(), () => this._return(anchor));
137
+ }
138
+ /** Одним подключением: корни собираются, когда браузер довёл колбэки всех панелей. */
139
+ static _followAll(teleports) {
140
+ if (teleports.length === 0) return;
141
+ connecting(() => {
142
+ for (const each of teleports) each._follow();
143
+ });
144
+ }
145
+ _return(anchor) {
146
+ const nodes = this._nodes();
147
+ if (!anchor.parentNode) {
148
+ for (const node of nodes) node.remove();
149
+ return;
150
+ }
151
+ for (const node of nodes) anchor.before(node);
152
+ anchor.remove();
153
+ }
154
+ _forget(anchor) {
155
+ this._anchor = null;
156
+ TPlaceContext.unanchor(this._root);
157
+ TTeleport._roots.delete(anchor);
158
+ TTeleport._unwatch(this, anchor.ownerDocument);
159
+ }
160
+ /** Якорь в теневом дереве — наблюдать и его корень: документ его состава не видит. */
161
+ static _watch(teleport, anchor) {
162
+ const owner = anchor.ownerDocument;
163
+ let watch = TTeleport._watches.get(owner);
164
+ if (watch === void 0) {
165
+ const teleports = /* @__PURE__ */ new Set();
166
+ const observer = new MutationObserver((records) => {
167
+ const removed = removedIn(records);
168
+ TTeleport._followAll([...teleports].filter((each) => each._displaced(removed)));
169
+ });
170
+ observer.observe(owner, WATCHED);
171
+ watch = {
172
+ observer,
173
+ teleports
174
+ };
175
+ TTeleport._watches.set(owner, watch);
176
+ }
177
+ watch.teleports.add(teleport);
178
+ for (let scope = anchor.getRootNode(); scope instanceof ShadowRoot; scope = scope.host.getRootNode()) watch.observer.observe(scope, WATCHED);
179
+ }
180
+ static _unwatch(teleport, owner) {
181
+ const watch = TTeleport._watches.get(owner);
182
+ if (watch === void 0) return;
183
+ watch.teleports.delete(teleport);
184
+ if (watch.teleports.size > 0) return;
185
+ watch.observer.disconnect();
186
+ TTeleport._watches.delete(owner);
187
+ }
188
+ };
189
+ //#endregion
190
+ export { TELEPORT_ANCHOR, TTeleport };
@@ -0,0 +1,45 @@
1
+ /**
2
+ * The Web Components binding over an assembled adapter context. The platform
3
+ * has no reactivity: state is a plain object, `onUpdate` reports a change,
4
+ * and the element base schedules the render. Core events are `CustomEvent`s
5
+ * on the element; from the owner's markup they do not bubble. AGENTS.md (Web
6
+ * Components), «Связка».
7
+ */
8
+ import type { IAdapterContext, IComponentContract, TInstanceState } from '@soxa-ui/setup';
9
+ /**
10
+ * Instance properties with plugin outputs, and facade properties. Outputs go
11
+ * in one view with the instance, the owner's facade with the facade: from an
12
+ * intersection of three views TypeScript does not infer the instance from the
13
+ * expected type of the template context.
14
+ */
15
+ export type TBindingState<TInstance, TFacade = unknown, TOutputs = unknown, TOwnerFacade = unknown> = TInstanceState<TInstance & TOutputs> & TInstanceState<TFacade & TOwnerFacade>;
16
+ /** `TFacade` is the collection facade; the template calls collection commands via its context. */
17
+ export type TBinding<TInstance = object, TFacade = unknown, TOutputs = unknown, TOwnerFacade = unknown> = {
18
+ readonly state: TBindingState<TInstance, TFacade, TOutputs, TOwnerFacade>;
19
+ readonly ctrl: TInstance;
20
+ readonly facade: TFacade;
21
+ syncProps(props: object): void;
22
+ bindElement(el: Element | null): void;
23
+ /** The teardown began: the consumer hears nothing from then on. */
24
+ detach(): void;
25
+ destroy(): void;
26
+ };
27
+ /** A facade's binding: `ctrl` and the node belong to the component, not the facade. */
28
+ export type TCollectionBinding<TFacade = object> = {
29
+ readonly state: TInstanceState<TFacade>;
30
+ readonly facade: TFacade;
31
+ syncProps(props: object): void;
32
+ /** The teardown began: the consumer hears nothing from then on. */
33
+ detach(): void;
34
+ destroy(): void;
35
+ };
36
+ export type TUpdateListener = (name: string, value: unknown) => void;
37
+ export declare function useAdapter<C extends IComponentContract>(adapter: IAdapterContext<C>, host: HTMLElement, onUpdate: TUpdateListener): TBinding<C['instance'], unknown, C['plugins']['outputs']>;
38
+ export declare function useCollectionAdapter<C extends IComponentContract>(adapter: IAdapterContext<C>, host: HTMLElement, onUpdate: TUpdateListener): TCollectionBinding<C['instance']>;
39
+ /**
40
+ * One binding from two or three contexts: the own, the item's facade and, for
41
+ * an item with a submenu, the facade of its own collection. The node is the
42
+ * own only; `detach` goes to all; facades are destroyed before the component,
43
+ * while its plugin bundle is intact.
44
+ */
45
+ export declare function joinBindings<TInstance, TFacade, TOutputs, TOwnerFacade = unknown>(owner: TBinding<TInstance, unknown, TOutputs>, facade: TCollectionBinding<TFacade>, ownerFacade?: TCollectionBinding<TOwnerFacade>): TBinding<TInstance, TFacade, TOutputs, TOwnerFacade>;
@@ -0,0 +1,151 @@
1
+ import { WebcProfile } from "../common/profile.js";
2
+ import "../common/index.js";
3
+ import { isOwnerMarkup } from "./marks.js";
4
+ import { toInstanceState } from "@soxa-ui/setup";
5
+ import { TActionEvent } from "@soxa-ui/core";
6
+ //#region src/adapter/runtime/useAdapter.ts
7
+ /**
8
+ * The Web Components binding over an assembled adapter context. The platform
9
+ * has no reactivity: state is a plain object, `onUpdate` reports a change,
10
+ * and the element base schedules the render. Core events are `CustomEvent`s
11
+ * on the element; from the owner's markup they do not bubble. AGENTS.md (Web
12
+ * Components), «Связка».
13
+ */
14
+ /**
15
+ * An event "before" (a `TActionEvent` argument) is cancelable: cancelling it
16
+ * cancels the core event.
17
+ *
18
+ * A removed element sends nothing: the consumer took it down, and what its
19
+ * teardown stirs (the blur of the removed node, the markup items leaving the
20
+ * collection) is news to no one, as in the other adapters
21
+ * (benchmarks/parity/README.md). An element moved elsewhere is assembled anew
22
+ * on connecting (`ElementBase`), so its state starts over there too.
23
+ */
24
+ function dispatch(host, name, args, bubbles) {
25
+ if (!host.isConnected) return;
26
+ const detail = args.length > 1 ? args : args[0];
27
+ const action = detail instanceof TActionEvent ? detail : void 0;
28
+ const event = new CustomEvent(name, {
29
+ detail,
30
+ bubbles,
31
+ composed: true,
32
+ cancelable: action !== void 0
33
+ });
34
+ if (!host.dispatchEvent(event)) action?.preventDefault();
35
+ }
36
+ function useExchange(adapter, host, onUpdate) {
37
+ const binding = adapter.connect(WebcProfile);
38
+ const bubbles = !isOwnerMarkup(host);
39
+ const state = {};
40
+ const unsubscribe = binding.state.subscribe((name, value) => {
41
+ state[name] = value;
42
+ onUpdate(name, value);
43
+ });
44
+ adapter.attach();
45
+ const unbindEvents = binding.events.listen((exportName, args) => {
46
+ dispatch(host, exportName, args, bubbles);
47
+ });
48
+ adapter.events.on("detach", unbindEvents);
49
+ return {
50
+ state: toInstanceState(state),
51
+ syncProps(props) {
52
+ binding.inputs.delta(props);
53
+ },
54
+ detach() {
55
+ adapter.detach();
56
+ },
57
+ destroy() {
58
+ unsubscribe();
59
+ unbindEvents();
60
+ adapter.destroy();
61
+ }
62
+ };
63
+ }
64
+ function useAdapter(adapter, host, onUpdate) {
65
+ return {
66
+ ...useExchange(adapter, host, onUpdate),
67
+ ctrl: adapter.instance,
68
+ facade: void 0,
69
+ bindElement(el) {
70
+ adapter.bindElement(el);
71
+ }
72
+ };
73
+ }
74
+ function useCollectionAdapter(adapter, host, onUpdate) {
75
+ return {
76
+ ...useExchange(adapter, host, onUpdate),
77
+ facade: adapter.instance
78
+ };
79
+ }
80
+ /** The first state in order that has the name. */
81
+ function stateOf({ states }, name) {
82
+ return typeof name === "string" ? states.find((state) => Object.hasOwn(state, name)) : void 0;
83
+ }
84
+ /**
85
+ * One handler for all views: a getter per name of every view (a closure, its
86
+ * scope and a pair of accessors) cost a table row kilobytes.
87
+ */
88
+ var JOINED = {
89
+ get(target, name) {
90
+ return typeof name === "string" ? stateOf(target, name)?.[name] : void 0;
91
+ },
92
+ has(target, name) {
93
+ return stateOf(target, name) !== void 0;
94
+ },
95
+ ownKeys({ states }) {
96
+ return [...new Set(states.flatMap((state) => Object.keys(state)))];
97
+ },
98
+ getOwnPropertyDescriptor(target, name) {
99
+ const state = stateOf(target, name);
100
+ return state && typeof name === "string" ? {
101
+ value: state[name],
102
+ enumerable: true,
103
+ configurable: true,
104
+ writable: false
105
+ } : void 0;
106
+ }
107
+ };
108
+ /**
109
+ * A live view of several states: a property comes from the first that has it.
110
+ * The subscription filled the keys at assembly and no new ones appear; values
111
+ * are read at access time.
112
+ */
113
+ function joinStates(states) {
114
+ return new Proxy({ states }, JOINED);
115
+ }
116
+ /** The runtime/type boundary, as `toInstanceState`: the descriptors hold the name link. */
117
+ function toBindingState(view) {
118
+ return view;
119
+ }
120
+ /**
121
+ * One binding from two or three contexts: the own, the item's facade and, for
122
+ * an item with a submenu, the facade of its own collection. The node is the
123
+ * own only; `detach` goes to all; facades are destroyed before the component,
124
+ * while its plugin bundle is intact.
125
+ */
126
+ function joinBindings(owner, facade, ownerFacade) {
127
+ const facades = ownerFacade ? [facade, ownerFacade] : [facade];
128
+ const ownerState = owner.state;
129
+ return {
130
+ state: toBindingState(joinStates([ownerState, ...facades.map((each) => each.state)])),
131
+ ctrl: owner.ctrl,
132
+ facade: facade.facade,
133
+ syncProps(props) {
134
+ owner.syncProps(props);
135
+ for (const each of facades) each.syncProps(props);
136
+ },
137
+ bindElement(el) {
138
+ owner.bindElement(el);
139
+ },
140
+ detach() {
141
+ owner.detach();
142
+ for (const each of facades) each.detach();
143
+ },
144
+ destroy() {
145
+ for (const each of facades) each.destroy();
146
+ owner.destroy();
147
+ }
148
+ };
149
+ }
150
+ //#endregion
151
+ export { joinBindings, useAdapter, useCollectionAdapter };
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Ожидание: подключение, пришедшее, пока подключается другой элемент, идёт
3
+ * сразу после него, в порядке прихода. AGENTS.md (Web Components), «Ожидание».
4
+ */
5
+ export declare function isConnecting(): boolean;
6
+ /** Подключение: пришедшее во время него ждёт конца внешнего подключения. */
7
+ export declare function connecting(run: () => void): void;
8
+ export declare function wait(resume: () => void): void;
9
+ /** Выполнить всё: упавшая задача остальных не держит, первая ошибка уходит дальше. */
10
+ export declare function runAll(tasks: Iterable<() => void>): void;