@soxa-ui/setup 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 (588) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +63 -2
  3. package/dist/content/descriptors/components/accordion/accordion.descriptor.d.ts +205 -0
  4. package/dist/content/descriptors/components/accordion/accordion.descriptor.js +80 -0
  5. package/dist/content/descriptors/components/accordion/collection.descriptor.d.ts +76 -0
  6. package/dist/content/descriptors/components/accordion/collection.descriptor.js +60 -0
  7. package/dist/content/descriptors/components/accordion/index.d.ts +3 -0
  8. package/dist/content/descriptors/components/accordion/item.descriptor.d.ts +244 -0
  9. package/dist/content/descriptors/components/accordion/item.descriptor.js +93 -0
  10. package/dist/content/descriptors/components/button.descriptor.d.ts +192 -0
  11. package/dist/content/descriptors/components/button.descriptor.js +39 -0
  12. package/dist/content/descriptors/components/calendar/calendar.descriptor.d.ts +261 -0
  13. package/dist/content/descriptors/components/calendar/calendar.descriptor.js +142 -0
  14. package/dist/content/descriptors/components/calendar/collection.descriptor.d.ts +85 -0
  15. package/dist/content/descriptors/components/calendar/collection.descriptor.js +88 -0
  16. package/dist/content/descriptors/components/calendar/index.d.ts +3 -0
  17. package/dist/content/descriptors/components/calendar/item.descriptor.d.ts +154 -0
  18. package/dist/content/descriptors/components/calendar/item.descriptor.js +65 -0
  19. package/dist/content/descriptors/components/check-box.descriptor.d.ts +227 -0
  20. package/dist/content/descriptors/components/check-box.descriptor.js +65 -0
  21. package/dist/content/descriptors/components/clearable.descriptor.d.ts +213 -0
  22. package/dist/content/descriptors/components/clearable.descriptor.js +51 -0
  23. package/dist/content/descriptors/components/collection/collection.descriptor.d.ts +47 -0
  24. package/dist/content/descriptors/components/collection/collection.descriptor.js +67 -0
  25. package/dist/content/descriptors/components/collection/index.d.ts +1 -0
  26. package/dist/content/descriptors/components/component-view.descriptor.d.ts +110 -0
  27. package/dist/content/descriptors/components/component-view.descriptor.js +103 -0
  28. package/dist/content/descriptors/components/component.descriptor.d.ts +31 -0
  29. package/dist/content/descriptors/components/component.descriptor.js +22 -0
  30. package/dist/content/descriptors/components/control.descriptor.d.ts +135 -0
  31. package/dist/content/descriptors/components/control.descriptor.js +33 -0
  32. package/dist/content/descriptors/components/date-input.descriptor.d.ts +319 -0
  33. package/dist/content/descriptors/components/date-input.descriptor.js +171 -0
  34. package/dist/content/descriptors/components/date-picker.descriptor.d.ts +445 -0
  35. package/dist/content/descriptors/components/date-picker.descriptor.js +255 -0
  36. package/dist/content/descriptors/components/dialog.descriptor.d.ts +256 -0
  37. package/dist/content/descriptors/components/dialog.descriptor.js +94 -0
  38. package/dist/content/descriptors/components/drag-and-drop.descriptor.d.ts +49 -0
  39. package/dist/content/descriptors/components/drag-and-drop.descriptor.js +32 -0
  40. package/dist/content/descriptors/components/drawer.descriptor.d.ts +244 -0
  41. package/dist/content/descriptors/components/drawer.descriptor.js +83 -0
  42. package/dist/content/descriptors/components/entity.descriptor.d.ts +39 -0
  43. package/dist/content/descriptors/components/entity.descriptor.js +37 -0
  44. package/dist/content/descriptors/components/field.descriptor.d.ts +192 -0
  45. package/dist/content/descriptors/components/field.descriptor.js +109 -0
  46. package/dist/content/descriptors/components/frame.descriptor.d.ts +191 -0
  47. package/dist/content/descriptors/components/frame.descriptor.js +66 -0
  48. package/dist/content/descriptors/components/icon.descriptor.d.ts +129 -0
  49. package/dist/content/descriptors/components/icon.descriptor.js +41 -0
  50. package/dist/content/descriptors/components/index.d.ts +50 -0
  51. package/dist/content/descriptors/components/input-control.descriptor.d.ts +176 -0
  52. package/dist/content/descriptors/components/input-control.descriptor.js +32 -0
  53. package/dist/content/descriptors/components/input.descriptor.d.ts +241 -0
  54. package/dist/content/descriptors/components/input.descriptor.js +62 -0
  55. package/dist/content/descriptors/components/interactive.descriptor.d.ts +100 -0
  56. package/dist/content/descriptors/components/interactive.descriptor.js +30 -0
  57. package/dist/content/descriptors/components/item-group.descriptor.d.ts +113 -0
  58. package/dist/content/descriptors/components/item-group.descriptor.js +44 -0
  59. package/dist/content/descriptors/components/item-row.descriptor.d.ts +199 -0
  60. package/dist/content/descriptors/components/item-row.descriptor.js +25 -0
  61. package/dist/content/descriptors/components/label.descriptor.d.ts +130 -0
  62. package/dist/content/descriptors/components/label.descriptor.js +41 -0
  63. package/dist/content/descriptors/components/layer.descriptor.d.ts +99 -0
  64. package/dist/content/descriptors/components/layer.descriptor.js +27 -0
  65. package/dist/content/descriptors/components/list-box/collection.descriptor.d.ts +113 -0
  66. package/dist/content/descriptors/components/list-box/collection.descriptor.js +96 -0
  67. package/dist/content/descriptors/components/list-box/group.descriptor.d.ts +115 -0
  68. package/dist/content/descriptors/components/list-box/group.descriptor.js +21 -0
  69. package/dist/content/descriptors/components/list-box/index.d.ts +4 -0
  70. package/dist/content/descriptors/components/list-box/item.descriptor.d.ts +219 -0
  71. package/dist/content/descriptors/components/list-box/item.descriptor.js +66 -0
  72. package/dist/content/descriptors/components/list-box/list-box.descriptor.d.ts +253 -0
  73. package/dist/content/descriptors/components/list-box/list-box.descriptor.js +106 -0
  74. package/dist/content/descriptors/components/list.d.ts +40 -0
  75. package/dist/content/descriptors/components/list.js +38 -0
  76. package/dist/content/descriptors/components/menu/checkbox-item.descriptor.d.ts +226 -0
  77. package/dist/content/descriptors/components/menu/checkbox-item.descriptor.js +43 -0
  78. package/dist/content/descriptors/components/menu/collection.descriptor.d.ts +201 -0
  79. package/dist/content/descriptors/components/menu/collection.descriptor.js +101 -0
  80. package/dist/content/descriptors/components/menu/group.descriptor.d.ts +112 -0
  81. package/dist/content/descriptors/components/menu/group.descriptor.js +18 -0
  82. package/dist/content/descriptors/components/menu/index.d.ts +10 -0
  83. package/dist/content/descriptors/components/menu/item.descriptor.d.ts +195 -0
  84. package/dist/content/descriptors/components/menu/item.descriptor.js +45 -0
  85. package/dist/content/descriptors/components/menu/menu.descriptor.d.ts +262 -0
  86. package/dist/content/descriptors/components/menu/menu.descriptor.js +177 -0
  87. package/dist/content/descriptors/components/menu/popover-item.descriptor.d.ts +278 -0
  88. package/dist/content/descriptors/components/menu/popover-item.descriptor.js +87 -0
  89. package/dist/content/descriptors/components/menu/radio-group.descriptor.d.ts +134 -0
  90. package/dist/content/descriptors/components/menu/radio-group.descriptor.js +30 -0
  91. package/dist/content/descriptors/components/menu/radio-item.descriptor.d.ts +236 -0
  92. package/dist/content/descriptors/components/menu/radio-item.descriptor.js +51 -0
  93. package/dist/content/descriptors/components/menu/separator.descriptor.d.ts +87 -0
  94. package/dist/content/descriptors/components/menu/separator.descriptor.js +17 -0
  95. package/dist/content/descriptors/components/menu/submenu.descriptor.d.ts +336 -0
  96. package/dist/content/descriptors/components/menu/submenu.descriptor.js +144 -0
  97. package/dist/content/descriptors/components/modal-layer.descriptor.d.ts +197 -0
  98. package/dist/content/descriptors/components/modal-layer.descriptor.js +101 -0
  99. package/dist/content/descriptors/components/number-input.descriptor.d.ts +353 -0
  100. package/dist/content/descriptors/components/number-input.descriptor.js +209 -0
  101. package/dist/content/descriptors/components/pagination/collection.descriptor.d.ts +54 -0
  102. package/dist/content/descriptors/components/pagination/collection.descriptor.js +55 -0
  103. package/dist/content/descriptors/components/pagination/index.d.ts +3 -0
  104. package/dist/content/descriptors/components/pagination/item.descriptor.d.ts +156 -0
  105. package/dist/content/descriptors/components/pagination/item.descriptor.js +68 -0
  106. package/dist/content/descriptors/components/pagination/pagination.descriptor.d.ts +265 -0
  107. package/dist/content/descriptors/components/pagination/pagination.descriptor.js +152 -0
  108. package/dist/content/descriptors/components/popover.descriptor.d.ts +231 -0
  109. package/dist/content/descriptors/components/popover.descriptor.js +156 -0
  110. package/dist/content/descriptors/components/progress-linear.descriptor.d.ts +165 -0
  111. package/dist/content/descriptors/components/progress-linear.descriptor.js +43 -0
  112. package/dist/content/descriptors/components/progress-spinner.descriptor.d.ts +161 -0
  113. package/dist/content/descriptors/components/progress-spinner.descriptor.js +36 -0
  114. package/dist/content/descriptors/components/progress.descriptor.d.ts +149 -0
  115. package/dist/content/descriptors/components/progress.descriptor.js +53 -0
  116. package/dist/content/descriptors/components/radio-group/collection.descriptor.d.ts +70 -0
  117. package/dist/content/descriptors/components/radio-group/collection.descriptor.js +56 -0
  118. package/dist/content/descriptors/components/radio-group/index.d.ts +3 -0
  119. package/dist/content/descriptors/components/radio-group/item.descriptor.d.ts +193 -0
  120. package/dist/content/descriptors/components/radio-group/item.descriptor.js +47 -0
  121. package/dist/content/descriptors/components/radio-group/radio-group.descriptor.d.ts +197 -0
  122. package/dist/content/descriptors/components/radio-group/radio-group.descriptor.js +66 -0
  123. package/dist/content/descriptors/components/rating.descriptor.d.ts +233 -0
  124. package/dist/content/descriptors/components/rating.descriptor.js +89 -0
  125. package/dist/content/descriptors/components/scroller.descriptor.d.ts +208 -0
  126. package/dist/content/descriptors/components/scroller.descriptor.js +91 -0
  127. package/dist/content/descriptors/components/select/collection.descriptor.d.ts +135 -0
  128. package/dist/content/descriptors/components/select/collection.descriptor.js +119 -0
  129. package/dist/content/descriptors/components/select/group.descriptor.d.ts +115 -0
  130. package/dist/content/descriptors/components/select/group.descriptor.js +21 -0
  131. package/dist/content/descriptors/components/select/index.d.ts +4 -0
  132. package/dist/content/descriptors/components/select/item.descriptor.d.ts +210 -0
  133. package/dist/content/descriptors/components/select/item.descriptor.js +56 -0
  134. package/dist/content/descriptors/components/select/select.descriptor.d.ts +454 -0
  135. package/dist/content/descriptors/components/select/select.descriptor.js +267 -0
  136. package/dist/content/descriptors/components/skeleton.descriptor.d.ts +127 -0
  137. package/dist/content/descriptors/components/skeleton.descriptor.js +53 -0
  138. package/dist/content/descriptors/components/slider.descriptor.d.ts +298 -0
  139. package/dist/content/descriptors/components/slider.descriptor.js +205 -0
  140. package/dist/content/descriptors/components/stylable.descriptor.d.ts +126 -0
  141. package/dist/content/descriptors/components/stylable.descriptor.js +52 -0
  142. package/dist/content/descriptors/components/switch.descriptor.d.ts +217 -0
  143. package/dist/content/descriptors/components/switch.descriptor.js +53 -0
  144. package/dist/content/descriptors/components/table/collection.descriptor.d.ts +183 -0
  145. package/dist/content/descriptors/components/table/collection.descriptor.js +178 -0
  146. package/dist/content/descriptors/components/table/column.descriptor.d.ts +237 -0
  147. package/dist/content/descriptors/components/table/column.descriptor.js +173 -0
  148. package/dist/content/descriptors/components/table/index.d.ts +4 -0
  149. package/dist/content/descriptors/components/table/row.descriptor.d.ts +166 -0
  150. package/dist/content/descriptors/components/table/row.descriptor.js +75 -0
  151. package/dist/content/descriptors/components/table/table.descriptor.d.ts +271 -0
  152. package/dist/content/descriptors/components/table/table.descriptor.js +164 -0
  153. package/dist/content/descriptors/components/tabs/collection.descriptor.d.ts +72 -0
  154. package/dist/content/descriptors/components/tabs/collection.descriptor.js +59 -0
  155. package/dist/content/descriptors/components/tabs/content.descriptor.d.ts +136 -0
  156. package/dist/content/descriptors/components/tabs/content.descriptor.js +52 -0
  157. package/dist/content/descriptors/components/tabs/index.d.ts +4 -0
  158. package/dist/content/descriptors/components/tabs/item.descriptor.d.ts +213 -0
  159. package/dist/content/descriptors/components/tabs/item.descriptor.js +67 -0
  160. package/dist/content/descriptors/components/tabs/tabs.descriptor.d.ts +220 -0
  161. package/dist/content/descriptors/components/tabs/tabs.descriptor.js +105 -0
  162. package/dist/content/descriptors/components/tags/collection.descriptor.d.ts +79 -0
  163. package/dist/content/descriptors/components/tags/collection.descriptor.js +63 -0
  164. package/dist/content/descriptors/components/tags/index.d.ts +3 -0
  165. package/dist/content/descriptors/components/tags/item.descriptor.d.ts +216 -0
  166. package/dist/content/descriptors/components/tags/item.descriptor.js +73 -0
  167. package/dist/content/descriptors/components/tags/tags.descriptor.d.ts +240 -0
  168. package/dist/content/descriptors/components/tags/tags.descriptor.js +109 -0
  169. package/dist/content/descriptors/components/textable.descriptor.d.ts +147 -0
  170. package/dist/content/descriptors/components/textable.descriptor.js +24 -0
  171. package/dist/content/descriptors/components/textarea.descriptor.d.ts +249 -0
  172. package/dist/content/descriptors/components/textarea.descriptor.js +95 -0
  173. package/dist/content/descriptors/components/toasts/collection.descriptor.d.ts +59 -0
  174. package/dist/content/descriptors/components/toasts/collection.descriptor.js +39 -0
  175. package/dist/content/descriptors/components/toasts/index.d.ts +3 -0
  176. package/dist/content/descriptors/components/toasts/item.descriptor.d.ts +173 -0
  177. package/dist/content/descriptors/components/toasts/item.descriptor.js +106 -0
  178. package/dist/content/descriptors/components/toasts/toasts.descriptor.d.ts +167 -0
  179. package/dist/content/descriptors/components/toasts/toasts.descriptor.js +94 -0
  180. package/dist/content/descriptors/components/tooltip.descriptor.d.ts +156 -0
  181. package/dist/content/descriptors/components/tooltip.descriptor.js +83 -0
  182. package/dist/content/descriptors/components/value-control.descriptor.d.ts +151 -0
  183. package/dist/content/descriptors/components/value-control.descriptor.js +36 -0
  184. package/dist/content/descriptors/components/virtual.descriptor.d.ts +55 -0
  185. package/dist/content/descriptors/components/virtual.descriptor.js +37 -0
  186. package/dist/content/descriptors/index.d.ts +2 -0
  187. package/dist/content/descriptors/plugins/accordion-item-ids.plugin.d.ts +9 -0
  188. package/dist/content/descriptors/plugins/accordion-item-ids.plugin.js +16 -0
  189. package/dist/content/descriptors/plugins/action.plugin.d.ts +11 -0
  190. package/dist/content/descriptors/plugins/action.plugin.js +27 -0
  191. package/dist/content/descriptors/plugins/anchor.plugin.d.ts +47 -0
  192. package/dist/content/descriptors/plugins/anchor.plugin.js +73 -0
  193. package/dist/content/descriptors/plugins/aria.plugin.d.ts +34 -0
  194. package/dist/content/descriptors/plugins/aria.plugin.js +55 -0
  195. package/dist/content/descriptors/plugins/calendar-ids.plugin.d.ts +9 -0
  196. package/dist/content/descriptors/plugins/calendar-ids.plugin.js +16 -0
  197. package/dist/content/descriptors/plugins/calendar-keyboard.plugin.d.ts +11 -0
  198. package/dist/content/descriptors/plugins/calendar-keyboard.plugin.js +18 -0
  199. package/dist/content/descriptors/plugins/calendar-names.plugin.d.ts +10 -0
  200. package/dist/content/descriptors/plugins/calendar-names.plugin.js +17 -0
  201. package/dist/content/descriptors/plugins/calendar-pointer.plugin.d.ts +11 -0
  202. package/dist/content/descriptors/plugins/calendar-pointer.plugin.js +18 -0
  203. package/dist/content/descriptors/plugins/clearable-names.plugin.d.ts +10 -0
  204. package/dist/content/descriptors/plugins/clearable-names.plugin.js +17 -0
  205. package/dist/content/descriptors/plugins/collection-bundles.plugin.d.ts +7 -0
  206. package/dist/content/descriptors/plugins/collection-bundles.plugin.js +14 -0
  207. package/dist/content/descriptors/plugins/collection-elements.plugin.d.ts +7 -0
  208. package/dist/content/descriptors/plugins/collection-elements.plugin.js +14 -0
  209. package/dist/content/descriptors/plugins/date-input-clipboard.plugin.d.ts +9 -0
  210. package/dist/content/descriptors/plugins/date-input-clipboard.plugin.js +16 -0
  211. package/dist/content/descriptors/plugins/date-input-ids.plugin.d.ts +8 -0
  212. package/dist/content/descriptors/plugins/date-input-ids.plugin.js +15 -0
  213. package/dist/content/descriptors/plugins/date-input-keyboard.plugin.d.ts +11 -0
  214. package/dist/content/descriptors/plugins/date-input-keyboard.plugin.js +18 -0
  215. package/dist/content/descriptors/plugins/date-input-pointer.plugin.d.ts +10 -0
  216. package/dist/content/descriptors/plugins/date-input-pointer.plugin.js +17 -0
  217. package/dist/content/descriptors/plugins/date-input-touch.plugin.d.ts +12 -0
  218. package/dist/content/descriptors/plugins/date-input-touch.plugin.js +19 -0
  219. package/dist/content/descriptors/plugins/date-picker-focus.plugin.d.ts +12 -0
  220. package/dist/content/descriptors/plugins/date-picker-focus.plugin.js +25 -0
  221. package/dist/content/descriptors/plugins/date-picker-ids.plugin.d.ts +10 -0
  222. package/dist/content/descriptors/plugins/date-picker-ids.plugin.js +17 -0
  223. package/dist/content/descriptors/plugins/date-picker-names.plugin.d.ts +32 -0
  224. package/dist/content/descriptors/plugins/date-picker-names.plugin.js +38 -0
  225. package/dist/content/descriptors/plugins/date-picker-trigger.plugin.d.ts +7 -0
  226. package/dist/content/descriptors/plugins/date-picker-trigger.plugin.js +20 -0
  227. package/dist/content/descriptors/plugins/dialog-ids.plugin.d.ts +10 -0
  228. package/dist/content/descriptors/plugins/dialog-ids.plugin.js +17 -0
  229. package/dist/content/descriptors/plugins/dialog-layout.plugin.d.ts +26 -0
  230. package/dist/content/descriptors/plugins/dialog-layout.plugin.js +34 -0
  231. package/dist/content/descriptors/plugins/dialog-names.plugin.d.ts +9 -0
  232. package/dist/content/descriptors/plugins/dialog-names.plugin.js +16 -0
  233. package/dist/content/descriptors/plugins/dismiss.plugin.d.ts +34 -0
  234. package/dist/content/descriptors/plugins/dismiss.plugin.js +51 -0
  235. package/dist/content/descriptors/plugins/drag.plugin.d.ts +5 -0
  236. package/dist/content/descriptors/plugins/drag.plugin.js +12 -0
  237. package/dist/content/descriptors/plugins/drawer-layout.plugin.d.ts +22 -0
  238. package/dist/content/descriptors/plugins/drawer-layout.plugin.js +28 -0
  239. package/dist/content/descriptors/plugins/element.plugin.d.ts +9 -0
  240. package/dist/content/descriptors/plugins/element.plugin.js +15 -0
  241. package/dist/content/descriptors/plugins/field-ids.plugin.d.ts +12 -0
  242. package/dist/content/descriptors/plugins/field-ids.plugin.js +19 -0
  243. package/dist/content/descriptors/plugins/frame-layout.plugin.d.ts +14 -0
  244. package/dist/content/descriptors/plugins/frame-layout.plugin.js +18 -0
  245. package/dist/content/descriptors/plugins/hide-outside.plugin.d.ts +19 -0
  246. package/dist/content/descriptors/plugins/hide-outside.plugin.js +29 -0
  247. package/dist/content/descriptors/plugins/icon-layout.plugin.d.ts +15 -0
  248. package/dist/content/descriptors/plugins/icon-layout.plugin.js +19 -0
  249. package/dist/content/descriptors/plugins/id.plugin.d.ts +26 -0
  250. package/dist/content/descriptors/plugins/id.plugin.js +31 -0
  251. package/dist/content/descriptors/plugins/index.d.ts +114 -0
  252. package/dist/content/descriptors/plugins/input-bool.plugin.d.ts +7 -0
  253. package/dist/content/descriptors/plugins/input-bool.plugin.js +14 -0
  254. package/dist/content/descriptors/plugins/input-control.plugin.d.ts +7 -0
  255. package/dist/content/descriptors/plugins/input-control.plugin.js +14 -0
  256. package/dist/content/descriptors/plugins/input.plugin.d.ts +9 -0
  257. package/dist/content/descriptors/plugins/input.plugin.js +16 -0
  258. package/dist/content/descriptors/plugins/item-group-ids.plugin.d.ts +10 -0
  259. package/dist/content/descriptors/plugins/item-group-ids.plugin.js +17 -0
  260. package/dist/content/descriptors/plugins/label-nested-warn.plugin.d.ts +8 -0
  261. package/dist/content/descriptors/plugins/label-nested-warn.plugin.js +15 -0
  262. package/dist/content/descriptors/plugins/list-height.plugin.d.ts +8 -0
  263. package/dist/content/descriptors/plugins/list-height.plugin.js +15 -0
  264. package/dist/content/descriptors/plugins/list-item.plugin.d.ts +15 -0
  265. package/dist/content/descriptors/plugins/list-item.plugin.js +19 -0
  266. package/dist/content/descriptors/plugins/list-keyboard.plugin.d.ts +5 -0
  267. package/dist/content/descriptors/plugins/list-keyboard.plugin.js +12 -0
  268. package/dist/content/descriptors/plugins/list-scroll.plugin.d.ts +16 -0
  269. package/dist/content/descriptors/plugins/list-scroll.plugin.js +23 -0
  270. package/dist/content/descriptors/plugins/locale.plugin.d.ts +13 -0
  271. package/dist/content/descriptors/plugins/locale.plugin.js +20 -0
  272. package/dist/content/descriptors/plugins/menu-focus.plugin.d.ts +11 -0
  273. package/dist/content/descriptors/plugins/menu-focus.plugin.js +18 -0
  274. package/dist/content/descriptors/plugins/menu-hover.plugin.d.ts +12 -0
  275. package/dist/content/descriptors/plugins/menu-hover.plugin.js +19 -0
  276. package/dist/content/descriptors/plugins/menu-ids.plugin.d.ts +10 -0
  277. package/dist/content/descriptors/plugins/menu-ids.plugin.js +17 -0
  278. package/dist/content/descriptors/plugins/menu-keyboard.plugin.d.ts +15 -0
  279. package/dist/content/descriptors/plugins/menu-keyboard.plugin.js +22 -0
  280. package/dist/content/descriptors/plugins/menu-pointer.plugin.d.ts +13 -0
  281. package/dist/content/descriptors/plugins/menu-pointer.plugin.js +20 -0
  282. package/dist/content/descriptors/plugins/menu-popover-item-focus.plugin.d.ts +15 -0
  283. package/dist/content/descriptors/plugins/menu-popover-item-focus.plugin.js +22 -0
  284. package/dist/content/descriptors/plugins/menu-popover-item-keyboard.plugin.d.ts +13 -0
  285. package/dist/content/descriptors/plugins/menu-popover-item-keyboard.plugin.js +20 -0
  286. package/dist/content/descriptors/plugins/menu-popup-ids.plugin.d.ts +10 -0
  287. package/dist/content/descriptors/plugins/menu-popup-ids.plugin.js +17 -0
  288. package/dist/content/descriptors/plugins/menu-submenu-focus.plugin.d.ts +12 -0
  289. package/dist/content/descriptors/plugins/menu-submenu-focus.plugin.js +19 -0
  290. package/dist/content/descriptors/plugins/menu-submenu-keyboard.plugin.d.ts +15 -0
  291. package/dist/content/descriptors/plugins/menu-submenu-keyboard.plugin.js +22 -0
  292. package/dist/content/descriptors/plugins/modal-focus.plugin.d.ts +11 -0
  293. package/dist/content/descriptors/plugins/modal-focus.plugin.js +24 -0
  294. package/dist/content/descriptors/plugins/modal-ids.plugin.d.ts +9 -0
  295. package/dist/content/descriptors/plugins/modal-ids.plugin.js +16 -0
  296. package/dist/content/descriptors/plugins/modal-names.plugin.d.ts +9 -0
  297. package/dist/content/descriptors/plugins/modal-names.plugin.js +16 -0
  298. package/dist/content/descriptors/plugins/number-input-keyboard.plugin.d.ts +10 -0
  299. package/dist/content/descriptors/plugins/number-input-keyboard.plugin.js +17 -0
  300. package/dist/content/descriptors/plugins/number-input-names.plugin.d.ts +10 -0
  301. package/dist/content/descriptors/plugins/number-input-names.plugin.js +17 -0
  302. package/dist/content/descriptors/plugins/number-input-stepper.plugin.d.ts +12 -0
  303. package/dist/content/descriptors/plugins/number-input-stepper.plugin.js +19 -0
  304. package/dist/content/descriptors/plugins/number-input-touch.plugin.d.ts +10 -0
  305. package/dist/content/descriptors/plugins/number-input-touch.plugin.js +17 -0
  306. package/dist/content/descriptors/plugins/number-input-typing.plugin.d.ts +11 -0
  307. package/dist/content/descriptors/plugins/number-input-typing.plugin.js +18 -0
  308. package/dist/content/descriptors/plugins/option-ids.plugin.d.ts +9 -0
  309. package/dist/content/descriptors/plugins/option-ids.plugin.js +16 -0
  310. package/dist/content/descriptors/plugins/pagination-focus.plugin.d.ts +10 -0
  311. package/dist/content/descriptors/plugins/pagination-focus.plugin.js +17 -0
  312. package/dist/content/descriptors/plugins/pagination-names.plugin.d.ts +10 -0
  313. package/dist/content/descriptors/plugins/pagination-names.plugin.js +17 -0
  314. package/dist/content/descriptors/plugins/popover-focus.plugin.d.ts +10 -0
  315. package/dist/content/descriptors/plugins/popover-focus.plugin.js +23 -0
  316. package/dist/content/descriptors/plugins/popover-ids.plugin.d.ts +9 -0
  317. package/dist/content/descriptors/plugins/popover-ids.plugin.js +16 -0
  318. package/dist/content/descriptors/plugins/popover-names.plugin.d.ts +9 -0
  319. package/dist/content/descriptors/plugins/popover-names.plugin.js +16 -0
  320. package/dist/content/descriptors/plugins/popover-pointer.plugin.d.ts +8 -0
  321. package/dist/content/descriptors/plugins/popover-pointer.plugin.js +21 -0
  322. package/dist/content/descriptors/plugins/radio-group-checked.plugin.d.ts +9 -0
  323. package/dist/content/descriptors/plugins/radio-group-checked.plugin.js +16 -0
  324. package/dist/content/descriptors/plugins/radio-group-name.plugin.d.ts +9 -0
  325. package/dist/content/descriptors/plugins/radio-group-name.plugin.js +16 -0
  326. package/dist/content/descriptors/plugins/rating-hover.plugin.d.ts +10 -0
  327. package/dist/content/descriptors/plugins/rating-hover.plugin.js +17 -0
  328. package/dist/content/descriptors/plugins/rating-names.plugin.d.ts +9 -0
  329. package/dist/content/descriptors/plugins/rating-names.plugin.js +16 -0
  330. package/dist/content/descriptors/plugins/rating-validity.plugin.d.ts +10 -0
  331. package/dist/content/descriptors/plugins/rating-validity.plugin.js +17 -0
  332. package/dist/content/descriptors/plugins/ready.plugin.d.ts +7 -0
  333. package/dist/content/descriptors/plugins/ready.plugin.js +14 -0
  334. package/dist/content/descriptors/plugins/scroll-lock.plugin.d.ts +18 -0
  335. package/dist/content/descriptors/plugins/scroll-lock.plugin.js +29 -0
  336. package/dist/content/descriptors/plugins/scroller-names.plugin.d.ts +9 -0
  337. package/dist/content/descriptors/plugins/scroller-names.plugin.js +16 -0
  338. package/dist/content/descriptors/plugins/scroller-viewport.plugin.d.ts +9 -0
  339. package/dist/content/descriptors/plugins/scroller-viewport.plugin.js +16 -0
  340. package/dist/content/descriptors/plugins/select-backspace.plugin.d.ts +10 -0
  341. package/dist/content/descriptors/plugins/select-backspace.plugin.js +25 -0
  342. package/dist/content/descriptors/plugins/select-editable.plugin.d.ts +18 -0
  343. package/dist/content/descriptors/plugins/select-editable.plugin.js +31 -0
  344. package/dist/content/descriptors/plugins/select-ids.plugin.d.ts +9 -0
  345. package/dist/content/descriptors/plugins/select-ids.plugin.js +16 -0
  346. package/dist/content/descriptors/plugins/select-keyboard.plugin.d.ts +21 -0
  347. package/dist/content/descriptors/plugins/select-keyboard.plugin.js +33 -0
  348. package/dist/content/descriptors/plugins/select-pointer.plugin.d.ts +9 -0
  349. package/dist/content/descriptors/plugins/select-pointer.plugin.js +24 -0
  350. package/dist/content/descriptors/plugins/skeleton-layout.plugin.d.ts +14 -0
  351. package/dist/content/descriptors/plugins/skeleton-layout.plugin.js +18 -0
  352. package/dist/content/descriptors/plugins/slide-keyboard.plugin.d.ts +9 -0
  353. package/dist/content/descriptors/plugins/slide-keyboard.plugin.js +16 -0
  354. package/dist/content/descriptors/plugins/slide-pointer.plugin.d.ts +12 -0
  355. package/dist/content/descriptors/plugins/slide-pointer.plugin.js +19 -0
  356. package/dist/content/descriptors/plugins/swipe.plugin.d.ts +13 -0
  357. package/dist/content/descriptors/plugins/swipe.plugin.js +20 -0
  358. package/dist/content/descriptors/plugins/table-column-ids.plugin.d.ts +10 -0
  359. package/dist/content/descriptors/plugins/table-column-ids.plugin.js +17 -0
  360. package/dist/content/descriptors/plugins/table-column-names.plugin.d.ts +9 -0
  361. package/dist/content/descriptors/plugins/table-column-names.plugin.js +16 -0
  362. package/dist/content/descriptors/plugins/table-column-reorder.plugin.d.ts +13 -0
  363. package/dist/content/descriptors/plugins/table-column-reorder.plugin.js +20 -0
  364. package/dist/content/descriptors/plugins/table-column-resize.plugin.d.ts +12 -0
  365. package/dist/content/descriptors/plugins/table-column-resize.plugin.js +19 -0
  366. package/dist/content/descriptors/plugins/table-grid.plugin.d.ts +15 -0
  367. package/dist/content/descriptors/plugins/table-grid.plugin.js +22 -0
  368. package/dist/content/descriptors/plugins/table-layout.plugin.d.ts +12 -0
  369. package/dist/content/descriptors/plugins/table-layout.plugin.js +19 -0
  370. package/dist/content/descriptors/plugins/table-names.plugin.d.ts +16 -0
  371. package/dist/content/descriptors/plugins/table-names.plugin.js +20 -0
  372. package/dist/content/descriptors/plugins/table-row-ids.plugin.d.ts +9 -0
  373. package/dist/content/descriptors/plugins/table-row-ids.plugin.js +16 -0
  374. package/dist/content/descriptors/plugins/tabs-active-tab.plugin.d.ts +5 -0
  375. package/dist/content/descriptors/plugins/tabs-active-tab.plugin.js +12 -0
  376. package/dist/content/descriptors/plugins/tabs-content-warn.plugin.d.ts +8 -0
  377. package/dist/content/descriptors/plugins/tabs-content-warn.plugin.js +15 -0
  378. package/dist/content/descriptors/plugins/tabs-item-ids.plugin.d.ts +8 -0
  379. package/dist/content/descriptors/plugins/tabs-item-ids.plugin.js +15 -0
  380. package/dist/content/descriptors/plugins/tabs-item-names.plugin.d.ts +9 -0
  381. package/dist/content/descriptors/plugins/tabs-item-names.plugin.js +16 -0
  382. package/dist/content/descriptors/plugins/tabs-keyboard.plugin.d.ts +8 -0
  383. package/dist/content/descriptors/plugins/tabs-keyboard.plugin.js +15 -0
  384. package/dist/content/descriptors/plugins/tabs-layout.plugin.d.ts +5 -0
  385. package/dist/content/descriptors/plugins/tabs-layout.plugin.js +12 -0
  386. package/dist/content/descriptors/plugins/tags-item-names.plugin.d.ts +9 -0
  387. package/dist/content/descriptors/plugins/tags-item-names.plugin.js +16 -0
  388. package/dist/content/descriptors/plugins/tags-keyboard.plugin.d.ts +9 -0
  389. package/dist/content/descriptors/plugins/tags-keyboard.plugin.js +16 -0
  390. package/dist/content/descriptors/plugins/tags-scroll.plugin.d.ts +10 -0
  391. package/dist/content/descriptors/plugins/tags-scroll.plugin.js +17 -0
  392. package/dist/content/descriptors/plugins/textarea-autoresize.plugin.d.ts +10 -0
  393. package/dist/content/descriptors/plugins/textarea-autoresize.plugin.js +17 -0
  394. package/dist/content/descriptors/plugins/textarea-ids.plugin.d.ts +11 -0
  395. package/dist/content/descriptors/plugins/textarea-ids.plugin.js +18 -0
  396. package/dist/content/descriptors/plugins/textarea-names.plugin.d.ts +17 -0
  397. package/dist/content/descriptors/plugins/textarea-names.plugin.js +21 -0
  398. package/dist/content/descriptors/plugins/toasts-cascade.plugin.d.ts +10 -0
  399. package/dist/content/descriptors/plugins/toasts-cascade.plugin.js +17 -0
  400. package/dist/content/descriptors/plugins/toasts-item-names.plugin.d.ts +9 -0
  401. package/dist/content/descriptors/plugins/toasts-item-names.plugin.js +16 -0
  402. package/dist/content/descriptors/plugins/toasts-keyboard.plugin.d.ts +9 -0
  403. package/dist/content/descriptors/plugins/toasts-keyboard.plugin.js +16 -0
  404. package/dist/content/descriptors/plugins/toasts-layout.plugin.d.ts +16 -0
  405. package/dist/content/descriptors/plugins/toasts-layout.plugin.js +20 -0
  406. package/dist/content/descriptors/plugins/toasts-names.plugin.d.ts +8 -0
  407. package/dist/content/descriptors/plugins/toasts-names.plugin.js +15 -0
  408. package/dist/content/descriptors/plugins/toasts-removal.plugin.d.ts +9 -0
  409. package/dist/content/descriptors/plugins/toasts-removal.plugin.js +16 -0
  410. package/dist/content/descriptors/plugins/toasts-timer.plugin.d.ts +9 -0
  411. package/dist/content/descriptors/plugins/toasts-timer.plugin.js +16 -0
  412. package/dist/content/descriptors/plugins/tooltip-ids.plugin.d.ts +9 -0
  413. package/dist/content/descriptors/plugins/tooltip-ids.plugin.js +16 -0
  414. package/dist/content/descriptors/plugins/tooltip-trigger.plugin.d.ts +10 -0
  415. package/dist/content/descriptors/plugins/tooltip-trigger.plugin.js +23 -0
  416. package/dist/content/extensions/collection/collection-item.extension.class.d.ts +64 -0
  417. package/dist/content/extensions/collection/collection-item.extension.class.js +111 -0
  418. package/dist/content/extensions/collection/collection.extension.class.d.ts +21 -0
  419. package/dist/content/extensions/collection/collection.extension.class.js +57 -0
  420. package/dist/content/extensions/collection/index.d.ts +3 -0
  421. package/dist/content/extensions/collection/item-props.d.ts +13 -0
  422. package/dist/content/extensions/collection/item-props.js +20 -0
  423. package/dist/content/extensions/collection/keys.d.ts +23 -0
  424. package/dist/content/extensions/collection/keys.js +17 -0
  425. package/dist/content/extensions/collection/members.class.d.ts +24 -0
  426. package/dist/content/extensions/collection/members.class.js +18 -0
  427. package/dist/content/extensions/collection/types.d.ts +41 -0
  428. package/dist/content/extensions/drag-and-drop/drag-and-drop-collection.extension.class.d.ts +26 -0
  429. package/dist/content/extensions/drag-and-drop/drag-and-drop-collection.extension.class.js +34 -0
  430. package/dist/content/extensions/drag-and-drop/drag-and-drop.extension.class.d.ts +21 -0
  431. package/dist/content/extensions/drag-and-drop/drag-and-drop.extension.class.js +9 -0
  432. package/dist/content/extensions/drag-and-drop/index.d.ts +3 -0
  433. package/dist/content/extensions/drag-and-drop/keys.d.ts +15 -0
  434. package/dist/content/extensions/drag-and-drop/keys.js +9 -0
  435. package/dist/content/extensions/drag-and-drop/types.d.ts +10 -0
  436. package/dist/content/extensions/field/field-control.extension.class.d.ts +63 -0
  437. package/dist/content/extensions/field/field-control.extension.class.js +172 -0
  438. package/dist/content/extensions/field/field.extension.class.d.ts +21 -0
  439. package/dist/content/extensions/field/field.extension.class.js +14 -0
  440. package/dist/content/extensions/field/index.d.ts +3 -0
  441. package/dist/content/extensions/field/keys.d.ts +14 -0
  442. package/dist/content/extensions/field/keys.js +8 -0
  443. package/dist/content/extensions/field/types.d.ts +36 -0
  444. package/dist/content/extensions/index.d.ts +8 -0
  445. package/dist/content/extensions/item-group/index.d.ts +2 -0
  446. package/dist/content/extensions/item-group/item-group.extension.class.d.ts +49 -0
  447. package/dist/content/extensions/item-group/item-group.extension.class.js +91 -0
  448. package/dist/content/extensions/item-group/keys.d.ts +15 -0
  449. package/dist/content/extensions/item-group/keys.js +9 -0
  450. package/dist/content/extensions/item-group/types.d.ts +34 -0
  451. package/dist/content/extensions/menu/index.d.ts +3 -0
  452. package/dist/content/extensions/menu/keys.d.ts +10 -0
  453. package/dist/content/extensions/menu/keys.js +5 -0
  454. package/dist/content/extensions/menu/radio-group.extension.class.d.ts +22 -0
  455. package/dist/content/extensions/menu/radio-group.extension.class.js +9 -0
  456. package/dist/content/extensions/menu/radio-item.extension.class.d.ts +20 -0
  457. package/dist/content/extensions/menu/radio-item.extension.class.js +10 -0
  458. package/dist/content/extensions/menu/types.d.ts +10 -0
  459. package/dist/content/extensions/tabs/index.d.ts +2 -0
  460. package/dist/content/extensions/tabs/tabs-content-binding.extension.class.d.ts +69 -0
  461. package/dist/content/extensions/tabs/tabs-content-binding.extension.class.js +184 -0
  462. package/dist/content/extensions/tabs/types.d.ts +11 -0
  463. package/dist/content/extensions/toasts/index.d.ts +3 -0
  464. package/dist/content/extensions/toasts/keys.d.ts +11 -0
  465. package/dist/content/extensions/toasts/keys.js +5 -0
  466. package/dist/content/extensions/toasts/toasts-api.extension.class.d.ts +23 -0
  467. package/dist/content/extensions/toasts/toasts-api.extension.class.js +9 -0
  468. package/dist/content/extensions/toasts/types.d.ts +19 -0
  469. package/dist/content/extensions/virtual/index.d.ts +3 -0
  470. package/dist/content/extensions/virtual/keys.d.ts +15 -0
  471. package/dist/content/extensions/virtual/keys.js +8 -0
  472. package/dist/content/extensions/virtual/types.d.ts +40 -0
  473. package/dist/content/extensions/virtual/virtual-collection.extension.class.d.ts +33 -0
  474. package/dist/content/extensions/virtual/virtual-collection.extension.class.js +15 -0
  475. package/dist/content/extensions/virtual/virtual.extension.class.d.ts +36 -0
  476. package/dist/content/extensions/virtual/virtual.extension.class.js +74 -0
  477. package/dist/content/icons/index.d.ts +2 -0
  478. package/dist/content/icons/roles.d.ts +29 -0
  479. package/dist/content/icons/roles.js +36 -0
  480. package/dist/content/index.d.ts +3 -0
  481. package/dist/index.d.ts +2 -0
  482. package/dist/index.js +236 -0
  483. package/dist/protected/adapter/common/index.d.ts +6 -0
  484. package/dist/protected/adapter/common/parts.d.ts +30 -0
  485. package/dist/protected/adapter/common/parts.js +35 -0
  486. package/dist/protected/adapter/common/props.types.d.ts +48 -0
  487. package/dist/protected/adapter/common/slots.d.ts +25 -0
  488. package/dist/protected/adapter/common/slots.js +25 -0
  489. package/dist/protected/adapter/common/slots.types.d.ts +37 -0
  490. package/dist/protected/adapter/common/state.d.ts +14 -0
  491. package/dist/protected/adapter/common/state.js +14 -0
  492. package/dist/protected/adapter/common/state.types.d.ts +39 -0
  493. package/dist/protected/adapter/context/adapter-context.class.d.ts +68 -0
  494. package/dist/protected/adapter/context/adapter-context.class.js +118 -0
  495. package/dist/protected/adapter/context/create-adapter-context.d.ts +34 -0
  496. package/dist/protected/adapter/context/create-adapter-context.js +91 -0
  497. package/dist/protected/adapter/context/external-plugins.class.d.ts +51 -0
  498. package/dist/protected/adapter/context/external-plugins.class.js +80 -0
  499. package/dist/protected/adapter/context/index.d.ts +2 -0
  500. package/dist/protected/adapter/context/own-bundle.class.d.ts +25 -0
  501. package/dist/protected/adapter/context/own-bundle.class.js +86 -0
  502. package/dist/protected/adapter/context/shared-bundle.class.d.ts +25 -0
  503. package/dist/protected/adapter/context/shared-bundle.class.js +24 -0
  504. package/dist/protected/adapter/context/types.d.ts +184 -0
  505. package/dist/protected/adapter/elevator/elevator.class.d.ts +21 -0
  506. package/dist/protected/adapter/elevator/elevator.class.js +19 -0
  507. package/dist/protected/adapter/elevator/index.d.ts +3 -0
  508. package/dist/protected/adapter/elevator/keys.d.ts +12 -0
  509. package/dist/protected/adapter/elevator/keys.js +7 -0
  510. package/dist/protected/adapter/elevator/types.d.ts +31 -0
  511. package/dist/protected/adapter/exchange/assembling.class.d.ts +39 -0
  512. package/dist/protected/adapter/exchange/assembling.class.js +55 -0
  513. package/dist/protected/adapter/exchange/cell.class.d.ts +31 -0
  514. package/dist/protected/adapter/exchange/cell.class.js +37 -0
  515. package/dist/protected/adapter/exchange/event-relay.class.d.ts +29 -0
  516. package/dist/protected/adapter/exchange/event-relay.class.js +53 -0
  517. package/dist/protected/adapter/exchange/exchange.class.d.ts +78 -0
  518. package/dist/protected/adapter/exchange/exchange.class.js +129 -0
  519. package/dist/protected/adapter/exchange/index.d.ts +8 -0
  520. package/dist/protected/adapter/exchange/input-port.class.d.ts +64 -0
  521. package/dist/protected/adapter/exchange/input-port.class.js +68 -0
  522. package/dist/protected/adapter/exchange/line.class.d.ts +53 -0
  523. package/dist/protected/adapter/exchange/line.class.js +39 -0
  524. package/dist/protected/adapter/exchange/member.class.d.ts +20 -0
  525. package/dist/protected/adapter/exchange/member.class.js +11 -0
  526. package/dist/protected/adapter/exchange/routing.class.d.ts +25 -0
  527. package/dist/protected/adapter/exchange/routing.class.js +94 -0
  528. package/dist/protected/adapter/exchange/state-store.class.d.ts +57 -0
  529. package/dist/protected/adapter/exchange/state-store.class.js +76 -0
  530. package/dist/protected/adapter/exchange/tap.class.d.ts +54 -0
  531. package/dist/protected/adapter/exchange/tap.class.js +51 -0
  532. package/dist/protected/adapter/exchange/types.d.ts +55 -0
  533. package/dist/protected/adapter/exchange/update-port.class.d.ts +25 -0
  534. package/dist/protected/adapter/exchange/update-port.class.js +26 -0
  535. package/dist/protected/adapter/exchange/value.d.ts +17 -0
  536. package/dist/protected/adapter/exchange/value.js +31 -0
  537. package/dist/protected/adapter/index.d.ts +5 -0
  538. package/dist/protected/adapter/surface/index.d.ts +2 -0
  539. package/dist/protected/adapter/surface/surface.class.d.ts +34 -0
  540. package/dist/protected/adapter/surface/surface.class.js +87 -0
  541. package/dist/protected/adapter/surface/types.d.ts +29 -0
  542. package/dist/protected/define/component-descriptor.class.d.ts +55 -0
  543. package/dist/protected/define/component-descriptor.class.js +112 -0
  544. package/dist/protected/define/component.d.ts +14 -0
  545. package/dist/protected/define/component.js +12 -0
  546. package/dist/protected/define/contribution.d.ts +20 -0
  547. package/dist/protected/define/contribution.js +18 -0
  548. package/dist/protected/define/contribution.types.d.ts +66 -0
  549. package/dist/protected/define/descriptor.d.ts +21 -0
  550. package/dist/protected/define/descriptor.js +27 -0
  551. package/dist/protected/define/index.d.ts +11 -0
  552. package/dist/protected/define/inference.types.d.ts +247 -0
  553. package/dist/protected/define/inherit.d.ts +21 -0
  554. package/dist/protected/define/inherit.js +11 -0
  555. package/dist/protected/define/name.class.d.ts +21 -0
  556. package/dist/protected/define/name.class.js +31 -0
  557. package/dist/protected/define/plugin-definition.class.d.ts +45 -0
  558. package/dist/protected/define/plugin-definition.class.js +49 -0
  559. package/dist/protected/define/plugin.d.ts +18 -0
  560. package/dist/protected/define/plugin.js +20 -0
  561. package/dist/protected/define/prop-spec.class.d.ts +70 -0
  562. package/dist/protected/define/prop-spec.class.js +79 -0
  563. package/dist/protected/define/prop-type.d.ts +12 -0
  564. package/dist/protected/define/prop-type.js +6 -0
  565. package/dist/protected/define/slot-declaration.class.d.ts +20 -0
  566. package/dist/protected/define/slot-declaration.class.js +14 -0
  567. package/dist/protected/define/types.d.ts +235 -0
  568. package/dist/protected/index.d.ts +4 -0
  569. package/dist/protected/naming/common-profile.d.ts +10 -0
  570. package/dist/protected/naming/common-profile.js +16 -0
  571. package/dist/protected/naming/index.d.ts +4 -0
  572. package/dist/protected/naming/naming.d.ts +33 -0
  573. package/dist/protected/naming/naming.js +34 -0
  574. package/dist/protected/naming/naming.types.d.ts +49 -0
  575. package/dist/protected/naming/strategy.types.d.ts +27 -0
  576. package/dist/protected/registry/extensions.d.ts +29 -0
  577. package/dist/protected/registry/extensions.js +28 -0
  578. package/dist/protected/registry/icons.d.ts +44 -0
  579. package/dist/protected/registry/icons.js +59 -0
  580. package/dist/protected/registry/index.d.ts +5 -0
  581. package/dist/protected/registry/plugins.d.ts +40 -0
  582. package/dist/protected/registry/plugins.js +29 -0
  583. package/dist/protected/registry/registrations.d.ts +15 -0
  584. package/dist/protected/registry/registrations.js +30 -0
  585. package/dist/protected/registry/theme.d.ts +29 -0
  586. package/dist/protected/registry/theme.js +40 -0
  587. package/dist/protected/registry/types.d.ts +85 -0
  588. package/package.json +44 -4
@@ -0,0 +1,129 @@
1
+ import { assembling } from "./assembling.class.js";
2
+ import { TRouting } from "./routing.class.js";
3
+ import { TInputPort } from "./input-port.class.js";
4
+ import { TEventRelay } from "./event-relay.class.js";
5
+ import { TStateStore } from "./state-store.class.js";
6
+ import { TTap } from "./tap.class.js";
7
+ import { TUpdatePort } from "./update-port.class.js";
8
+ import { TActionEvent } from "@soxa-ui/core";
9
+ //#region protected/adapter/exchange/exchange.class.ts
10
+ /**
11
+ * TExchange — values exchanged for the time of a mount: the participants' owners and four ports over them.
12
+ *
13
+ * This is all the adapter sees: `state` (where to put a value is its call),
14
+ * `inputs` (which way of delivery to use is its call), `events` (how to
15
+ * hand an event over is its call) and `updates` (what to do at the bounds
16
+ * of an update is its call). When and in what order is decided here and below.
17
+ *
18
+ * One class serves both a component (the framework's profile, the
19
+ * framework's props) and a plugin installed from outside (the common
20
+ * profile, the `pluginProps` bag): there is no second implementation of the
21
+ * same rules for external plugins.
22
+ *
23
+ * What to do with a participant's event is decided by the type's routing
24
+ * table (`TRouting`), and the participants' buses are listened to by one
25
+ * listener per bus (`TTap`), shared by the state and the events. The
26
+ * properties' lines are rows of the table too. Per mount the exchange holds
27
+ * the participants' owners, the values of the state and of the inputs and
28
+ * these listeners; there are no objects per property, no routes,
29
+ * subscriptions or closures per event. The exchange does not keep the
30
+ * participants (`TMember`): they are needed to find the table and the owners.
31
+ *
32
+ * **An update** is the exchange's unit of work: one event of a participant
33
+ * (the state rereads the event's properties, then the event and its models
34
+ * go to the sinks) or one release of the queue (below). The exchange reports
35
+ * where each update begins and ends (`updates`, `TUpdatePort`), and nothing
36
+ * more: what a framework does at the bounds is decided in its adapter.
37
+ *
38
+ * While an assembly of another mount runs over one of the participants
39
+ * (`TAssembling`), the exchange gives the framework the outcome of the
40
+ * assembly rather than each of its steps: the state and the notifications
41
+ * pile up and go in one microtask after it — the whole state first, then the
42
+ * notifications in the order they came. A cancelable event (`TActionEvent`)
43
+ * is a question whose answer is needed now: it goes at once, and the sink's
44
+ * `preventDefault` cancels the assembly's write, as outside it. Until the
45
+ * queue is released, the notifications that come after the assembly join it
46
+ * too — otherwise they would overtake those piled up. A notification reaches
47
+ * the sinks that listened at the moment of the event, even if they stopped
48
+ * before the release: the previous mount is taken down by the same pass of
49
+ * the framework, and the event happened while it was there
50
+ * (`TEventRelay.later`).
51
+ *
52
+ * A property with no participant gets no line: the description of a plugin
53
+ * missing from a foreign bundle is skipped silently.
54
+ */
55
+ /** Отменяемое событие: аргумент — `TActionEvent`, приёмник отвечает на него `preventDefault`. */
56
+ function isCancelable(args) {
57
+ return args[0] instanceof TActionEvent;
58
+ }
59
+ var TExchange = class {
60
+ surface;
61
+ /** Линии состава — общие у всех монтирований типа, владельцев берут из `owners`. */
62
+ lines;
63
+ /** Владельцы участников по порядку состава: инстанс, плагины, связка. */
64
+ owners;
65
+ state;
66
+ inputs;
67
+ events;
68
+ updates = new TUpdatePort();
69
+ /** Доставки уведомлений, отложенных до конца чужой сборки, — пока очередь не выпущена. */
70
+ _queue;
71
+ constructor(members, surface, buildProps = {}) {
72
+ this.surface = surface;
73
+ const routing = TRouting.of(surface, members);
74
+ const owners = members.map((member) => member.owner);
75
+ const tap = new TTap(owners, routing.routes, (route, args) => {
76
+ this.updates.begin();
77
+ try {
78
+ this._receive(route, args);
79
+ } finally {
80
+ this.updates.end();
81
+ }
82
+ });
83
+ this.lines = routing.lines;
84
+ this.owners = owners;
85
+ this.state = new TStateStore(routing.readable, owners, tap);
86
+ this.inputs = new TInputPort(routing.writable, owners, buildProps);
87
+ this.events = new TEventRelay(owners, tap);
88
+ }
89
+ /** Пропсы, которые компонент не съел: уходят атрибутами в корневой узел. */
90
+ forward(props) {
91
+ return this.surface.forward(props);
92
+ }
93
+ /** Очередь до конца чужой сборки: первая запись планирует её выпуск. */
94
+ _defer() {
95
+ if (this._queue === void 0) {
96
+ this._queue = [];
97
+ assembling.defer(() => this._release());
98
+ }
99
+ return this._queue;
100
+ }
101
+ /**
102
+ * A participant's event outside another mount's assembly: the state first,
103
+ * then the event and its models. The order is the exchange's rule, not the
104
+ * order of subscriptions.
105
+ */
106
+ _receive(route, args) {
107
+ if (this._queue === void 0 && !assembling.covers(this.owners)) {
108
+ this.state.refresh(route.cells);
109
+ this.events.publish(route, args);
110
+ } else if (isCancelable(args)) {
111
+ this._defer();
112
+ this.events.publish(route, args);
113
+ } else this._defer().push(this.events.later(route, args));
114
+ }
115
+ /** The release after the assembly is one update: the whole state first, then the notifications in order. */
116
+ _release() {
117
+ const queue = this._queue ?? [];
118
+ this._queue = void 0;
119
+ this.updates.begin();
120
+ try {
121
+ this.state.refreshAll();
122
+ for (const deliver of queue) deliver();
123
+ } finally {
124
+ this.updates.end();
125
+ }
126
+ }
127
+ };
128
+ //#endregion
129
+ export { TExchange };
@@ -0,0 +1,8 @@
1
+ export { TExchange } from './exchange.class';
2
+ export { TMember } from './member.class';
3
+ export type { TInputPort } from './input-port.class';
4
+ export type { TStateStore } from './state-store.class';
5
+ export type { TEventRelay } from './event-relay.class';
6
+ export type { TUpdatePort } from './update-port.class';
7
+ export type { TLine } from './line.class';
8
+ export type { IMemberSpec, IModelRoute, IRoute, IUpdateListener, TEventSink, TStateListener, TStateSnapshot, } from './types';
@@ -0,0 +1,64 @@
1
+ /**
2
+ * TInputPort — фреймворк → ядро: память последнего значения каждого записываемого пропа.
3
+ *
4
+ * Память хранит последнее значение, которое задал фреймворк, и начинается с
5
+ * пропсов сборки. Отсюда правила входов получаются по построению, без флагов
6
+ * «задан / не задан»:
7
+ *
8
+ * - полный набор пришёл повторно — значения не сменились, в ядро ничего не
9
+ * пишется. Иначе повтор откатил бы то, что с тех пор поменяли ядро или код
10
+ * через инстанс: список, открытый кликом при `open={false}`, закрылся бы от
11
+ * смены плейсхолдера;
12
+ * - составное значение с тем же содержимым — тоже повтор. Литерал массива в
13
+ * разметке (`value={['a', 'b']}`) на каждом проходе родителя — новый
14
+ * объект, поэтому память сверяет по содержимому (`sameValue`), тем же
15
+ * правилом, что и состояние: по ссылке перерисовка родителя откатывала бы
16
+ * выбор пользователя к разметке. Повтор гасится только здесь — линия
17
+ * пишет всё, что до неё дошло, а сверку со своим значением делает сеттер;
18
+ * - проп ни разу не задавали — значение было `undefined` и осталось, слива нет;
19
+ * - задавали и сняли — значение сменилось на `undefined`, линия сбрасывает к умолчанию;
20
+ * - после сброса значение снова `undefined` — повторное снятие ничего не пишет.
21
+ *
22
+ * Значения лежат одним списком по линиям (значение `i` — линии `i`), а не
23
+ * объектом на проп: у входа нет ни подписчиков, ни своего поведения, и объект
24
+ * на проп был бы только обёрткой над значением.
25
+ *
26
+ * Два способа доставки различаются только тем, что считать изменением: в
27
+ * полном наборе — смену значения (`full`), в дельте — само наличие ключа
28
+ * (`delta`). Что делать с изменением, решает линия.
29
+ */
30
+ import type { TLine } from './line.class';
31
+ import type { TMember } from './member.class';
32
+ import type { TSurface } from '../surface';
33
+ export declare class TInputPort {
34
+ private readonly _lines;
35
+ private readonly _owners;
36
+ /** Последнее, что задал фреймворк, по линиям. */
37
+ private readonly _given;
38
+ /**
39
+ * Начальные значения — записываемым линиям участников из пропсов сборки, тем
40
+ * же чтением, с которого начинается память входов. Кому из участников
41
+ * писать, решает сборка. Память нужна обмену, а не начальной записи,
42
+ * поэтому порт для неё не заводится.
43
+ */
44
+ static seed(members: readonly TMember[], surface: TSurface, buildProps: object): void;
45
+ /**
46
+ * Память входов начинается с пропсов сборки.
47
+ *
48
+ * @param _lines записываемые линии обмена — по значению на каждую
49
+ * @param _owners владельцы участников монтирования — по порядку состава
50
+ */
51
+ constructor(_lines: readonly TLine[], _owners: readonly object[], buildProps: object);
52
+ /** Полный набор на каждом проходе: React, Solid, Svelte, Vue. В ядро уходит только то, что фреймворк сменил. */
53
+ full(props: object): void;
54
+ /**
55
+ * Дельта: Angular, Web Components. Чего в дельте нет, то не менялось, а
56
+ * наличие ключа — уже изменение: `el.open = false` у Web Components —
57
+ * команда, а не повтор рендера, и она обязана дойти до ядра, даже если
58
+ * фреймворк давал `false` и раньше. Снятие ни разу не заданного пропа
59
+ * командой не является.
60
+ */
61
+ delta(changes: object): void;
62
+ /** Запомнить значение входа: ответ — сменилось ли оно. */
63
+ private _take;
64
+ }
@@ -0,0 +1,68 @@
1
+ import { sameValue } from "./value.js";
2
+ import { TRouting } from "./routing.class.js";
3
+ //#region protected/adapter/exchange/input-port.class.ts
4
+ /** Значение по имени во фреймворке (`aria_label`), затем по сырому (`label`) — для headless-кода и тестов. */
5
+ function pick(props, line) {
6
+ return Reflect.get(props, line.name) ?? Reflect.get(props, line.spec.name.name);
7
+ }
8
+ function has(props, line) {
9
+ return line.name in props || line.spec.name.name in props;
10
+ }
11
+ var TInputPort = class {
12
+ _lines;
13
+ _owners;
14
+ /** Последнее, что задал фреймворк, по линиям. */
15
+ _given;
16
+ /**
17
+ * Начальные значения — записываемым линиям участников из пропсов сборки, тем
18
+ * же чтением, с которого начинается память входов. Кому из участников
19
+ * писать, решает сборка. Память нужна обмену, а не начальной записи,
20
+ * поэтому порт для неё не заводится.
21
+ */
22
+ static seed(members, surface, buildProps) {
23
+ const owners = members.map((member) => member.owner);
24
+ for (const line of TRouting.of(surface, members).writable) line.seed(owners, pick(buildProps, line));
25
+ }
26
+ /**
27
+ * Память входов начинается с пропсов сборки.
28
+ *
29
+ * @param _lines записываемые линии обмена — по значению на каждую
30
+ * @param _owners владельцы участников монтирования — по порядку состава
31
+ */
32
+ constructor(_lines, _owners, buildProps) {
33
+ this._lines = _lines;
34
+ this._owners = _owners;
35
+ this._given = _lines.map((line) => pick(buildProps, line));
36
+ }
37
+ /** Полный набор на каждом проходе: React, Solid, Svelte, Vue. В ядро уходит только то, что фреймворк сменил. */
38
+ full(props) {
39
+ for (let index = 0; index < this._lines.length; index++) {
40
+ const line = this._lines[index];
41
+ const value = pick(props, line);
42
+ if (this._take(index, value)) line.accept(this._owners, value);
43
+ }
44
+ }
45
+ /**
46
+ * Дельта: Angular, Web Components. Чего в дельте нет, то не менялось, а
47
+ * наличие ключа — уже изменение: `el.open = false` у Web Components —
48
+ * команда, а не повтор рендера, и она обязана дойти до ядра, даже если
49
+ * фреймворк давал `false` и раньше. Снятие ни разу не заданного пропа
50
+ * командой не является.
51
+ */
52
+ delta(changes) {
53
+ for (let index = 0; index < this._lines.length; index++) {
54
+ const line = this._lines[index];
55
+ if (!has(changes, line)) continue;
56
+ const value = pick(changes, line);
57
+ if (this._take(index, value) || value !== void 0) line.accept(this._owners, value);
58
+ }
59
+ }
60
+ /** Запомнить значение входа: ответ — сменилось ли оно. */
61
+ _take(index, value) {
62
+ if (sameValue(this._given[index], value)) return false;
63
+ this._given[index] = value;
64
+ return true;
65
+ }
66
+ };
67
+ //#endregion
68
+ export { TInputPort };
@@ -0,0 +1,53 @@
1
+ /**
2
+ * TLine — линия: одно свойство одного участника в составе компонента.
3
+ *
4
+ * Описание (`TPropSpec`) + место участника в составе + имя во фреймворке.
5
+ * Это знание типа, а не монтирования: линии строит таблица маршрутов
6
+ * (`TRouting`) один раз на поверхность и состав, а владельцев участников
7
+ * монтирование отдаёт каждому вызову списком (`owners`, по порядку состава).
8
+ * Объекта на свойство у монтирования нет: раньше линия держала своего
9
+ * владельца, и у строки таблицы с чекбоксом их было около пятидесяти.
10
+ *
11
+ * Линия — единственный объект, который знает про свойство всё сразу, поэтому
12
+ * каждое правило записи живёт здесь один раз — и для сборки, и для обмена, и
13
+ * для плагинов, поставленных снаружи:
14
+ *
15
+ * - `write` — `protected` не пишется. То же ли это значение, решает сеттер
16
+ * владельца — сверкой со своим записанным значением. Геттер для этого не
17
+ * годится: у свойства с резольвером он отдаёт итог (`disabled` элемента —
18
+ * своё или владельца, прижатое `value` Slider), и значение, равное итогу, но
19
+ * не своему, сверка с геттером теряла бы. Повтор от фреймворка сюда не
20
+ * доходит: его гасит память входов (`TInputPort`);
21
+ * - `reset` — к умолчанию описания; ключа умолчания нет — значение остаётся;
22
+ * - `accept` — что пришло от фреймворка: `undefined` значит «сняли»;
23
+ * - `seed` — начальное значение: `undefined` и равное умолчанию ничего не
24
+ * задают. Так внешний `ctrl` сохраняет своё состояние, даже когда фреймворк
25
+ * подставил умолчание за автора (Vue делает это с каждым пропом, у которого
26
+ * объявлен `default`).
27
+ *
28
+ * Памяти у линии нет: «что задал фреймворк» помнит память входов
29
+ * (`TInputPort`), «что отдано фреймворку» — состояние (`TStateStore`).
30
+ * Подписок тоже нет: за триггерами свойства следит слушатель участников
31
+ * (`TTap`) по таблице маршрутов типа.
32
+ */
33
+ import type { TPropSpec } from '../../define';
34
+ export declare class TLine {
35
+ readonly spec: TPropSpec;
36
+ /** Место участника в составе: владелец свойства — `owners[member]`. */
37
+ readonly member: number;
38
+ /** Имя во фреймворке: `text`, `aria_label`. */
39
+ readonly name: string;
40
+ constructor(spec: TPropSpec,
41
+ /** Место участника в составе: владелец свойства — `owners[member]`. */
42
+ member: number,
43
+ /** Имя во фреймворке: `text`, `aria_label`. */
44
+ name: string);
45
+ /** Есть триггеры — за свойством можно следить, оно входит в состояние. Без них проп сквозной. */
46
+ get readable(): boolean;
47
+ get writable(): boolean;
48
+ read(owners: readonly object[]): unknown;
49
+ write(owners: readonly object[], value: unknown): void;
50
+ reset(owners: readonly object[]): void;
51
+ accept(owners: readonly object[], value: unknown): void;
52
+ seed(owners: readonly object[], value: unknown): void;
53
+ }
@@ -0,0 +1,39 @@
1
+ import { sameValue } from "./value.js";
2
+ //#region protected/adapter/exchange/line.class.ts
3
+ var TLine = class {
4
+ spec;
5
+ member;
6
+ name;
7
+ constructor(spec, member, name) {
8
+ this.spec = spec;
9
+ this.member = member;
10
+ this.name = name;
11
+ }
12
+ /** Есть триггеры — за свойством можно следить, оно входит в состояние. Без них проп сквозной. */
13
+ get readable() {
14
+ return this.spec.triggers.length > 0;
15
+ }
16
+ get writable() {
17
+ return !this.spec.protected;
18
+ }
19
+ read(owners) {
20
+ return this.spec.read(owners[this.member]);
21
+ }
22
+ write(owners, value) {
23
+ if (this.writable) this.spec.assign(owners[this.member], value);
24
+ }
25
+ reset(owners) {
26
+ if (this.spec.hasDefault) this.write(owners, this.spec.default);
27
+ }
28
+ accept(owners, value) {
29
+ if (value === void 0) this.reset(owners);
30
+ else this.write(owners, value);
31
+ }
32
+ seed(owners, value) {
33
+ if (value === void 0) return;
34
+ if (this.spec.hasDefault && sameValue(value, this.spec.default)) return;
35
+ this.write(owners, value);
36
+ }
37
+ };
38
+ //#endregion
39
+ export { TLine };
@@ -0,0 +1,20 @@
1
+ /**
2
+ * TMember — участник монтирования: владелец и описание того, что он объявляет наружу.
3
+ *
4
+ * Инстанс, плагин дескриптора, плагин, поставленный снаружи, и сама связка
5
+ * (владелец `pluginProps`) — участники одного вида. Обмену безразлично, кто
6
+ * есть кто: он получает список участников и строит линии. «Плагина в чужом
7
+ * наборе нет» означает, что нет участника, — и ни одна проверка дальше по коду
8
+ * не нужна.
9
+ *
10
+ * Владелец — свой у монтирования, описание (`IMemberSpec`) — общее у типа: у
11
+ * плагина это его определение, у инстанса и связки — описание, одно на
12
+ * дескриптор. По описаниям обмен находит свою таблицу маршрутов (`TRouting`),
13
+ * поэтому они не строятся на монтирование.
14
+ */
15
+ import type { IMemberSpec } from './types';
16
+ export declare class TMember {
17
+ readonly owner: object;
18
+ readonly spec: IMemberSpec;
19
+ constructor(owner: object, spec: IMemberSpec);
20
+ }
@@ -0,0 +1,11 @@
1
+ //#region protected/adapter/exchange/member.class.ts
2
+ var TMember = class {
3
+ owner;
4
+ spec;
5
+ constructor(owner, spec) {
6
+ this.owner = owner;
7
+ this.spec = spec;
8
+ }
9
+ };
10
+ //#endregion
11
+ export { TMember };
@@ -0,0 +1,25 @@
1
+ /**
2
+ * TRouting shares property lines and event routes across mounts of the same participant descriptions.
3
+ * Internal triggers refresh state and models independently of explicitly published events.
4
+ */
5
+ import type { TSurface } from '../surface';
6
+ import { TLine } from './line.class';
7
+ import type { TMember } from './member.class';
8
+ import type { IRoute } from './types';
9
+ export declare class TRouting {
10
+ /** Линии состава: свойства участников в поверхности. */
11
+ readonly lines: readonly TLine[];
12
+ /** Линии с триггерами: значение состояния `i` — линия `readable[i]`. */
13
+ readonly readable: readonly TLine[];
14
+ /** Записываемые линии: значение входа `i` — линия `writable[i]`. */
15
+ readonly writable: readonly TLine[];
16
+ /**
17
+ * Маршруты участников по порядку состава: сырое имя на шине участника →
18
+ * маршрут. У участника, с событиями которого обмену делать нечего, —
19
+ * `undefined`: его шину обмен не слушает.
20
+ */
21
+ readonly routes: readonly (ReadonlyMap<string, IRoute> | undefined)[];
22
+ /** Таблица поверхности для состава участников монтирования; строится один раз на пару. */
23
+ static of(surface: TSurface, members: readonly TMember[]): TRouting;
24
+ private constructor();
25
+ }
@@ -0,0 +1,94 @@
1
+ import { TLine } from "./line.class.js";
2
+ //#region protected/adapter/exchange/routing.class.ts
3
+ var roots = /* @__PURE__ */ new WeakMap();
4
+ var TRouting = class TRouting {
5
+ /** Линии состава: свойства участников в поверхности. */
6
+ lines;
7
+ /** Линии с триггерами: значение состояния `i` — линия `readable[i]`. */
8
+ readable;
9
+ /** Записываемые линии: значение входа `i` — линия `writable[i]`. */
10
+ writable;
11
+ /**
12
+ * Маршруты участников по порядку состава: сырое имя на шине участника →
13
+ * маршрут. У участника, с событиями которого обмену делать нечего, —
14
+ * `undefined`: его шину обмен не слушает.
15
+ */
16
+ routes;
17
+ /** Таблица поверхности для состава участников монтирования; строится один раз на пару. */
18
+ static of(surface, members) {
19
+ let node = roots.get(surface);
20
+ if (!node) {
21
+ node = { next: /* @__PURE__ */ new WeakMap() };
22
+ roots.set(surface, node);
23
+ }
24
+ for (const { spec } of members) {
25
+ let next = node.next.get(spec);
26
+ if (!next) {
27
+ next = { next: /* @__PURE__ */ new WeakMap() };
28
+ node.next.set(spec, next);
29
+ }
30
+ node = next;
31
+ }
32
+ node.routing ??= new TRouting(surface, members.map((member) => member.spec));
33
+ return node.routing;
34
+ }
35
+ constructor(surface, specs) {
36
+ const lines = [];
37
+ const readable = [];
38
+ const writable = [];
39
+ const drafts = specs.map(() => /* @__PURE__ */ new Map());
40
+ const draftOf = (member, raw) => {
41
+ const routes = drafts[member];
42
+ let draft = routes.get(raw);
43
+ if (!draft) {
44
+ draft = {
45
+ cells: [],
46
+ models: []
47
+ };
48
+ routes.set(raw, draft);
49
+ }
50
+ return draft;
51
+ };
52
+ specs.forEach((spec, member) => {
53
+ for (const prop of spec.props) {
54
+ const entry = surface.entryOf(prop);
55
+ if (!entry) continue;
56
+ const line = new TLine(prop, member, entry.exportName);
57
+ lines.push(line);
58
+ if (!prop.protected) writable.push(line);
59
+ if (prop.triggers.length === 0) continue;
60
+ const cell = readable.length;
61
+ readable.push(line);
62
+ for (const trigger of prop.triggers) {
63
+ const draft = draftOf(member, trigger.name);
64
+ const { cells } = draft;
65
+ if (!cells.includes(cell)) cells.push(cell);
66
+ if (entry.model !== void 0 && !draft.models.some((model) => model.name === entry.model)) draft.models = [...draft.models, {
67
+ line,
68
+ name: entry.model
69
+ }];
70
+ }
71
+ }
72
+ });
73
+ const publishers = /* @__PURE__ */ new Map();
74
+ specs.forEach((spec, member) => {
75
+ for (const name of spec.events) if (!publishers.has(name.getName())) publishers.set(name.getName(), member);
76
+ });
77
+ for (const event of surface.events) {
78
+ const member = publishers.get(event.name.getName());
79
+ if (member === void 0) continue;
80
+ const draft = draftOf(member, event.name.name);
81
+ draft.event = event.exportName;
82
+ }
83
+ this.lines = Object.freeze(lines);
84
+ this.readable = Object.freeze(readable);
85
+ this.writable = Object.freeze(writable);
86
+ this.routes = Object.freeze(drafts.map((routes) => routes.size === 0 ? void 0 : new Map([...routes].map(([raw, { cells, event, models }]) => [raw, Object.freeze({
87
+ cells: Object.freeze(cells),
88
+ ...event === void 0 ? {} : { event },
89
+ models: Object.freeze(models)
90
+ })]))));
91
+ }
92
+ };
93
+ //#endregion
94
+ export { TRouting };
@@ -0,0 +1,57 @@
1
+ /**
2
+ * TStateStore — ядро → фреймворк: значение каждого свойства с триггерами и снимок всего состояния.
3
+ *
4
+ * Путь у значения один: сработал триггер — свойство перечитано и положено на
5
+ * своё место; подписался фреймворк — то же самое для каждого свойства.
6
+ * «Сменилось ли» решает одно правило равенства (`sameValue`), поэтому снимок
7
+ * остаётся тем же объектом, пока ни одно значение не сменилось, — не
8
+ * проверкой, а по построению.
9
+ *
10
+ * Значения лежат одним списком по линиям (значение `i` — линии `i`), а не
11
+ * ячейкой на свойство: подписчиков у отдельного свойства нет — уведомляет
12
+ * состояние целиком, — и объект на свойство был бы только обёрткой над
13
+ * значением. Список заводит первое чтение: обмену плагина, поставленного
14
+ * снаружи, состояние не нужно — ему хватает входов и событий.
15
+ *
16
+ * За триггерами следит слушатель участников обмена (`TTap`): состояние держит
17
+ * его, пока у него есть подписчики, а слушатель зовёт `refresh` со
18
+ * значениями, для чьих свойств событие — триггер.
19
+ *
20
+ * `subscribe` и `getSnapshot` — методы: фреймворк, которому они нужны без
21
+ * `this` (`useSyncExternalStore`), привязывает их у себя в адаптере.
22
+ */
23
+ import type { TLine } from './line.class';
24
+ import type { TTap } from './tap.class';
25
+ import type { TStateListener, TStateSnapshot } from './types';
26
+ export declare class TStateStore {
27
+ private readonly _lines;
28
+ private readonly _owners;
29
+ private readonly _tap;
30
+ /** Значения по линиям — с первого чтения. */
31
+ private _values?;
32
+ /** Подписчики — пока есть хоть один. Список не правится на месте: уведомление обходит тот, что застало. */
33
+ private _listeners?;
34
+ private _snapshot;
35
+ /**
36
+ * @param _lines линии с триггерами: значение `i` — линии `i`
37
+ * @param _owners владельцы участников монтирования — по порядку состава
38
+ * @param _tap слушатель участников, общий с событиями обмена
39
+ */
40
+ constructor(_lines: readonly TLine[], _owners: readonly object[], _tap: TTap);
41
+ subscribe(listener: TStateListener): () => void;
42
+ getSnapshot(): TStateSnapshot;
43
+ /**
44
+ * Сработал триггер: перечитать значения его свойств. Зовёт слушатель
45
+ * участников (`TTap`), а не адаптер. Пока состояние не слушают, значения не
46
+ * перечитываются — их перечитает подписка.
47
+ */
48
+ refresh(cells: readonly number[]): void;
49
+ /**
50
+ * Перечитать все значения: триггеры пришли во время чужой сборки, и обмен
51
+ * отложил их (`TExchange`). Пока состояние не слушают — как у `refresh`.
52
+ */
53
+ refreshAll(): void;
54
+ private _refresh;
55
+ /** Перечитать свойство: сменилось — снимок устарел, подписчики получают новое значение. */
56
+ private _read;
57
+ }
@@ -0,0 +1,76 @@
1
+ import { sameValue } from "./value.js";
2
+ //#region protected/adapter/exchange/state-store.class.ts
3
+ var TStateStore = class {
4
+ _lines;
5
+ _owners;
6
+ _tap;
7
+ /** Значения по линиям — с первого чтения. */
8
+ _values;
9
+ /** Подписчики — пока есть хоть один. Список не правится на месте: уведомление обходит тот, что застало. */
10
+ _listeners;
11
+ _snapshot = null;
12
+ /**
13
+ * @param _lines линии с триггерами: значение `i` — линии `i`
14
+ * @param _owners владельцы участников монтирования — по порядку состава
15
+ * @param _tap слушатель участников, общий с событиями обмена
16
+ */
17
+ constructor(_lines, _owners, _tap) {
18
+ this._lines = _lines;
19
+ this._owners = _owners;
20
+ this._tap = _tap;
21
+ }
22
+ subscribe(listener) {
23
+ if (this._listeners === void 0) this._tap.hold();
24
+ const values = this._refresh();
25
+ const listeners = this._listeners;
26
+ if (!listeners) this._listeners = [listener];
27
+ else if (!listeners.includes(listener)) this._listeners = [...listeners, listener];
28
+ this._lines.forEach((line, index) => listener(line.name, values[index]));
29
+ return () => {
30
+ const current = this._listeners;
31
+ const index = current?.indexOf(listener) ?? -1;
32
+ if (current === void 0 || index === -1) return;
33
+ this._listeners = current.length === 1 ? void 0 : [...current.slice(0, index), ...current.slice(index + 1)];
34
+ if (this._listeners === void 0) this._tap.release();
35
+ };
36
+ }
37
+ getSnapshot() {
38
+ const values = this._values ?? this._refresh();
39
+ this._snapshot ??= Object.freeze(Object.fromEntries(this._lines.map((line, index) => [line.name, values[index]])));
40
+ return this._snapshot;
41
+ }
42
+ /**
43
+ * Сработал триггер: перечитать значения его свойств. Зовёт слушатель
44
+ * участников (`TTap`), а не адаптер. Пока состояние не слушают, значения не
45
+ * перечитываются — их перечитает подписка.
46
+ */
47
+ refresh(cells) {
48
+ const values = this._values;
49
+ if (this._listeners === void 0 || values === void 0) return;
50
+ for (const index of cells) this._read(values, index);
51
+ }
52
+ /**
53
+ * Перечитать все значения: триггеры пришли во время чужой сборки, и обмен
54
+ * отложил их (`TExchange`). Пока состояние не слушают — как у `refresh`.
55
+ */
56
+ refreshAll() {
57
+ if (this._listeners !== void 0) this._refresh();
58
+ }
59
+ _refresh() {
60
+ const values = this._values ??= this._lines.map(() => void 0);
61
+ for (let index = 0; index < this._lines.length; index++) this._read(values, index);
62
+ return values;
63
+ }
64
+ /** Перечитать свойство: сменилось — снимок устарел, подписчики получают новое значение. */
65
+ _read(values, index) {
66
+ const line = this._lines[index];
67
+ const value = line.read(this._owners);
68
+ if (sameValue(values[index], value)) return;
69
+ values[index] = value;
70
+ this._snapshot = null;
71
+ const listeners = this._listeners;
72
+ if (listeners) for (const listener of listeners) listener(line.name, value);
73
+ }
74
+ };
75
+ //#endregion
76
+ export { TStateStore };