@supersoniks/concorde 4.8.0 → 4.9.0

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 (689) hide show
  1. package/.github/workflows/ci.yml +21 -0
  2. package/.github-export-ignore +30 -0
  3. package/.gitlab-ci.yml +13 -0
  4. package/CONTRIBUTING.md +59 -0
  5. package/DEV.md +54 -0
  6. package/LICENSE +21 -0
  7. package/OPEN_SOURCE_CHECKPOINT.md +133 -0
  8. package/README.md +29 -15
  9. package/build-infos.json +1 -1
  10. package/concorde-core.bundle.js +249 -249
  11. package/concorde-core.es.js +3692 -3601
  12. package/dist/concorde-core.bundle.js +249 -249
  13. package/dist/concorde-core.es.js +3692 -3601
  14. package/dist/js/components.js +12 -0
  15. package/dist/js/components.js.map +1 -0
  16. package/dist/js/concorde-loaded.js +5 -0
  17. package/dist/js/concorde-loaded.js.map +1 -0
  18. package/dist/js/core/_types/endpoint.js +5 -0
  19. package/dist/js/core/_types/endpoint.js.map +1 -0
  20. package/dist/js/core/_types/key.js +2 -0
  21. package/dist/js/core/_types/key.js.map +1 -0
  22. package/dist/js/core/_types/types.js +3 -0
  23. package/dist/js/core/_types/types.js.map +1 -0
  24. package/dist/js/core/components/functional/date/date.js +272 -0
  25. package/dist/js/core/components/functional/date/date.js.map +1 -0
  26. package/dist/js/core/components/functional/example/example.js +44 -0
  27. package/dist/js/core/components/functional/example/example.js.map +1 -0
  28. package/dist/js/core/components/functional/fetch/fetch.js +79 -0
  29. package/dist/js/core/components/functional/fetch/fetch.js.map +1 -0
  30. package/dist/js/core/components/functional/functional.js +17 -0
  31. package/dist/js/core/components/functional/functional.js.map +1 -0
  32. package/dist/js/core/components/functional/if/if.js +39 -0
  33. package/dist/js/core/components/functional/if/if.js.map +1 -0
  34. package/dist/js/core/components/functional/list/list.js +341 -0
  35. package/dist/js/core/components/functional/list/list.js.map +1 -0
  36. package/dist/js/core/components/functional/mix/mix.js +103 -0
  37. package/dist/js/core/components/functional/mix/mix.js.map +1 -0
  38. package/dist/js/core/components/functional/queue/queue.js +386 -0
  39. package/dist/js/core/components/functional/queue/queue.js.map +1 -0
  40. package/dist/js/core/components/functional/router/redirect.js +54 -0
  41. package/dist/js/core/components/functional/router/redirect.js.map +1 -0
  42. package/dist/js/core/components/functional/router/router.js +179 -0
  43. package/dist/js/core/components/functional/router/router.js.map +1 -0
  44. package/dist/js/core/components/functional/sdui/SDUIDescriptorTransformer.js +216 -0
  45. package/dist/js/core/components/functional/sdui/SDUIDescriptorTransformer.js.map +1 -0
  46. package/dist/js/core/components/functional/sdui/default-library.json +108 -0
  47. package/dist/js/core/components/functional/sdui/sdui-utils.js +64 -0
  48. package/dist/js/core/components/functional/sdui/sdui-utils.js.map +1 -0
  49. package/dist/js/core/components/functional/sdui/sdui.js +266 -0
  50. package/dist/js/core/components/functional/sdui/sdui.js.map +1 -0
  51. package/dist/js/core/components/functional/sdui/types.js +2 -0
  52. package/dist/js/core/components/functional/sdui/types.js.map +1 -0
  53. package/dist/js/core/components/functional/sonic-scope/sonic-scope.js +22 -0
  54. package/dist/js/core/components/functional/sonic-scope/sonic-scope.js.map +1 -0
  55. package/dist/js/core/components/functional/states/states.js +172 -0
  56. package/dist/js/core/components/functional/states/states.js.map +1 -0
  57. package/dist/js/core/components/functional/submit/submit.js +284 -0
  58. package/dist/js/core/components/functional/submit/submit.js.map +1 -0
  59. package/dist/js/core/components/functional/subscriber/subscriber.js +39 -0
  60. package/dist/js/core/components/functional/subscriber/subscriber.js.map +1 -0
  61. package/dist/js/core/components/functional/translation/translation.js +28 -0
  62. package/dist/js/core/components/functional/translation/translation.js.map +1 -0
  63. package/dist/js/core/components/functional/value/value.js +28 -0
  64. package/dist/js/core/components/functional/value/value.js.map +1 -0
  65. package/dist/js/core/components/ui/_css/scroll.js +25 -0
  66. package/dist/js/core/components/ui/_css/scroll.js.map +1 -0
  67. package/dist/js/core/components/ui/_css/shadow.js +22 -0
  68. package/dist/js/core/components/ui/_css/shadow.js.map +1 -0
  69. package/dist/js/core/components/ui/_css/size.js +36 -0
  70. package/dist/js/core/components/ui/_css/size.js.map +1 -0
  71. package/dist/js/core/components/ui/_css/type.js +92 -0
  72. package/dist/js/core/components/ui/_css/type.js.map +1 -0
  73. package/dist/js/core/components/ui/alert/alert.js +213 -0
  74. package/dist/js/core/components/ui/alert/alert.js.map +1 -0
  75. package/dist/js/core/components/ui/alert-messages/alert-messages.js +68 -0
  76. package/dist/js/core/components/ui/alert-messages/alert-messages.js.map +1 -0
  77. package/dist/js/core/components/ui/badge/badge.js +199 -0
  78. package/dist/js/core/components/ui/badge/badge.js.map +1 -0
  79. package/dist/js/core/components/ui/button/button.js +697 -0
  80. package/dist/js/core/components/ui/button/button.js.map +1 -0
  81. package/dist/js/core/components/ui/captcha/altchaStyles.js +226 -0
  82. package/dist/js/core/components/ui/captcha/altchaStyles.js.map +1 -0
  83. package/dist/js/core/components/ui/captcha/captcha.js +167 -0
  84. package/dist/js/core/components/ui/captcha/captcha.js.map +1 -0
  85. package/dist/js/core/components/ui/card/card-footer.js +26 -0
  86. package/dist/js/core/components/ui/card/card-footer.js.map +1 -0
  87. package/dist/js/core/components/ui/card/card-header-descripton.js +30 -0
  88. package/dist/js/core/components/ui/card/card-header-descripton.js.map +1 -0
  89. package/dist/js/core/components/ui/card/card-header.js +79 -0
  90. package/dist/js/core/components/ui/card/card-header.js.map +1 -0
  91. package/dist/js/core/components/ui/card/card-main.js +26 -0
  92. package/dist/js/core/components/ui/card/card-main.js.map +1 -0
  93. package/dist/js/core/components/ui/card/card.js +67 -0
  94. package/dist/js/core/components/ui/card/card.js.map +1 -0
  95. package/dist/js/core/components/ui/divider/divider.js +200 -0
  96. package/dist/js/core/components/ui/divider/divider.js.map +1 -0
  97. package/dist/js/core/components/ui/form/checkbox/checkbox.js +257 -0
  98. package/dist/js/core/components/ui/form/checkbox/checkbox.js.map +1 -0
  99. package/dist/js/core/components/ui/form/css/form-control.js +393 -0
  100. package/dist/js/core/components/ui/form/css/form-control.js.map +1 -0
  101. package/dist/js/core/components/ui/form/fieldset/fieldset.js +124 -0
  102. package/dist/js/core/components/ui/form/fieldset/fieldset.js.map +1 -0
  103. package/dist/js/core/components/ui/form/fieldset/legend-description.js +38 -0
  104. package/dist/js/core/components/ui/form/fieldset/legend-description.js.map +1 -0
  105. package/dist/js/core/components/ui/form/fieldset/legend.js +130 -0
  106. package/dist/js/core/components/ui/form/fieldset/legend.js.map +1 -0
  107. package/dist/js/core/components/ui/form/form-actions/form-actions.js +47 -0
  108. package/dist/js/core/components/ui/form/form-actions/form-actions.js.map +1 -0
  109. package/dist/js/core/components/ui/form/form-layout/form-layout.js +84 -0
  110. package/dist/js/core/components/ui/form/form-layout/form-layout.js.map +1 -0
  111. package/dist/js/core/components/ui/form/input/input.js +316 -0
  112. package/dist/js/core/components/ui/form/input/input.js.map +1 -0
  113. package/dist/js/core/components/ui/form/input/password-helper.js +134 -0
  114. package/dist/js/core/components/ui/form/input/password-helper.js.map +1 -0
  115. package/dist/js/core/components/ui/form/input/same-value-helper.js +85 -0
  116. package/dist/js/core/components/ui/form/input/same-value-helper.js.map +1 -0
  117. package/dist/js/core/components/ui/form/input-autocomplete/input-autocomplete.js +405 -0
  118. package/dist/js/core/components/ui/form/input-autocomplete/input-autocomplete.js.map +1 -0
  119. package/dist/js/core/components/ui/form/radio/radio.js +63 -0
  120. package/dist/js/core/components/ui/form/radio/radio.js.map +1 -0
  121. package/dist/js/core/components/ui/form/select/select.js +323 -0
  122. package/dist/js/core/components/ui/form/select/select.js.map +1 -0
  123. package/dist/js/core/components/ui/form/switch/switch.js +90 -0
  124. package/dist/js/core/components/ui/form/switch/switch.js.map +1 -0
  125. package/dist/js/core/components/ui/form/textarea/textarea.js +162 -0
  126. package/dist/js/core/components/ui/form/textarea/textarea.js.map +1 -0
  127. package/dist/js/core/components/ui/group/group.js +128 -0
  128. package/dist/js/core/components/ui/group/group.js.map +1 -0
  129. package/dist/js/core/components/ui/icon/icon.js +129 -0
  130. package/dist/js/core/components/ui/icon/icon.js.map +1 -0
  131. package/dist/js/core/components/ui/icon/icons.js +163 -0
  132. package/dist/js/core/components/ui/icon/icons.js.map +1 -0
  133. package/dist/js/core/components/ui/icon/icons.json +1 -0
  134. package/dist/js/core/components/ui/image/image.js +160 -0
  135. package/dist/js/core/components/ui/image/image.js.map +1 -0
  136. package/dist/js/core/components/ui/link/link.js +125 -0
  137. package/dist/js/core/components/ui/link/link.js.map +1 -0
  138. package/dist/js/core/components/ui/loader/loader.js +106 -0
  139. package/dist/js/core/components/ui/loader/loader.js.map +1 -0
  140. package/dist/js/core/components/ui/loader/styles/fixed.js +56 -0
  141. package/dist/js/core/components/ui/loader/styles/fixed.js.map +1 -0
  142. package/dist/js/core/components/ui/loader/styles/inline.js +70 -0
  143. package/dist/js/core/components/ui/loader/styles/inline.js.map +1 -0
  144. package/dist/js/core/components/ui/menu/menu-item.js +35 -0
  145. package/dist/js/core/components/ui/menu/menu-item.js.map +1 -0
  146. package/dist/js/core/components/ui/menu/menu.js +436 -0
  147. package/dist/js/core/components/ui/menu/menu.js.map +1 -0
  148. package/dist/js/core/components/ui/modal/modal-actions.js +44 -0
  149. package/dist/js/core/components/ui/modal/modal-actions.js.map +1 -0
  150. package/dist/js/core/components/ui/modal/modal-close.js +56 -0
  151. package/dist/js/core/components/ui/modal/modal-close.js.map +1 -0
  152. package/dist/js/core/components/ui/modal/modal-content.js +27 -0
  153. package/dist/js/core/components/ui/modal/modal-content.js.map +1 -0
  154. package/dist/js/core/components/ui/modal/modal-subtitle.js +34 -0
  155. package/dist/js/core/components/ui/modal/modal-subtitle.js.map +1 -0
  156. package/dist/js/core/components/ui/modal/modal-title.js +35 -0
  157. package/dist/js/core/components/ui/modal/modal-title.js.map +1 -0
  158. package/dist/js/core/components/ui/modal/modal-utils.js +32 -0
  159. package/dist/js/core/components/ui/modal/modal-utils.js.map +1 -0
  160. package/dist/js/core/components/ui/modal/modal.js +568 -0
  161. package/dist/js/core/components/ui/modal/modal.js.map +1 -0
  162. package/dist/js/core/components/ui/pop/pop.js +337 -0
  163. package/dist/js/core/components/ui/pop/pop.js.map +1 -0
  164. package/dist/js/core/components/ui/progress/progress.js +164 -0
  165. package/dist/js/core/components/ui/progress/progress.js.map +1 -0
  166. package/dist/js/core/components/ui/table/table-caption.js +29 -0
  167. package/dist/js/core/components/ui/table/table-caption.js.map +1 -0
  168. package/dist/js/core/components/ui/table/table-tbody.js +41 -0
  169. package/dist/js/core/components/ui/table/table-tbody.js.map +1 -0
  170. package/dist/js/core/components/ui/table/table-td.js +69 -0
  171. package/dist/js/core/components/ui/table/table-td.js.map +1 -0
  172. package/dist/js/core/components/ui/table/table-tfoot.js +28 -0
  173. package/dist/js/core/components/ui/table/table-tfoot.js.map +1 -0
  174. package/dist/js/core/components/ui/table/table-th.js +80 -0
  175. package/dist/js/core/components/ui/table/table-th.js.map +1 -0
  176. package/dist/js/core/components/ui/table/table-thead.js +26 -0
  177. package/dist/js/core/components/ui/table/table-thead.js.map +1 -0
  178. package/dist/js/core/components/ui/table/table-tr.js +67 -0
  179. package/dist/js/core/components/ui/table/table-tr.js.map +1 -0
  180. package/dist/js/core/components/ui/table/table.js +106 -0
  181. package/dist/js/core/components/ui/table/table.js.map +1 -0
  182. package/dist/js/core/components/ui/theme/theme-collection/core-variables.js +74 -0
  183. package/dist/js/core/components/ui/theme/theme-collection/core-variables.js.map +1 -0
  184. package/dist/js/core/components/ui/theme/theme-collection/dark.js +39 -0
  185. package/dist/js/core/components/ui/theme/theme-collection/dark.js.map +1 -0
  186. package/dist/js/core/components/ui/theme/theme-collection/light.js +32 -0
  187. package/dist/js/core/components/ui/theme/theme-collection/light.js.map +1 -0
  188. package/dist/js/core/components/ui/theme/theme.js +150 -0
  189. package/dist/js/core/components/ui/theme/theme.js.map +1 -0
  190. package/dist/js/core/components/ui/toast/message-subscriber.js +41 -0
  191. package/dist/js/core/components/ui/toast/message-subscriber.js.map +1 -0
  192. package/dist/js/core/components/ui/toast/toast-item.js +379 -0
  193. package/dist/js/core/components/ui/toast/toast-item.js.map +1 -0
  194. package/dist/js/core/components/ui/toast/toast.js +269 -0
  195. package/dist/js/core/components/ui/toast/toast.js.map +1 -0
  196. package/dist/js/core/components/ui/toast/types.js +2 -0
  197. package/dist/js/core/components/ui/toast/types.js.map +1 -0
  198. package/dist/js/core/components/ui/tooltip/tooltip.js +219 -0
  199. package/dist/js/core/components/ui/tooltip/tooltip.js.map +1 -0
  200. package/dist/js/core/components/ui/ui.js +41 -0
  201. package/dist/js/core/components/ui/ui.js.map +1 -0
  202. package/dist/js/core/core.js +14 -0
  203. package/dist/js/core/core.js.map +1 -0
  204. package/dist/js/core/decorators/Subscriber.js +9 -0
  205. package/dist/js/core/decorators/Subscriber.js.map +1 -0
  206. package/dist/js/core/decorators/api.js +559 -0
  207. package/dist/js/core/decorators/api.js.map +1 -0
  208. package/dist/js/core/decorators/lifecycle.js +67 -0
  209. package/dist/js/core/decorators/lifecycle.js.map +1 -0
  210. package/dist/js/core/decorators/subscriber/ancestorAttribute.js +27 -0
  211. package/dist/js/core/decorators/subscriber/ancestorAttribute.js.map +1 -0
  212. package/dist/js/core/decorators/subscriber/autoFill.js +26 -0
  213. package/dist/js/core/decorators/subscriber/autoFill.js.map +1 -0
  214. package/dist/js/core/decorators/subscriber/autoSubscribe.js +46 -0
  215. package/dist/js/core/decorators/subscriber/autoSubscribe.js.map +1 -0
  216. package/dist/js/core/decorators/subscriber/bind.js +150 -0
  217. package/dist/js/core/decorators/subscriber/bind.js.map +1 -0
  218. package/dist/js/core/decorators/subscriber/common.js +44 -0
  219. package/dist/js/core/decorators/subscriber/common.js.map +1 -0
  220. package/dist/js/core/decorators/subscriber/dynamicPath.js +75 -0
  221. package/dist/js/core/decorators/subscriber/dynamicPath.js.map +1 -0
  222. package/dist/js/core/decorators/subscriber/dynamicPropertyWatch.js +138 -0
  223. package/dist/js/core/decorators/subscriber/dynamicPropertyWatch.js.map +1 -0
  224. package/dist/js/core/decorators/subscriber/handle.js +22 -0
  225. package/dist/js/core/decorators/subscriber/handle.js.map +1 -0
  226. package/dist/js/core/decorators/subscriber/onAssign.js +199 -0
  227. package/dist/js/core/decorators/subscriber/onAssign.js.map +1 -0
  228. package/dist/js/core/decorators/subscriber/publish.js +108 -0
  229. package/dist/js/core/decorators/subscriber/publish.js.map +1 -0
  230. package/dist/js/core/decorators/subscriber/publisherPath.js +16 -0
  231. package/dist/js/core/decorators/subscriber/publisherPath.js.map +1 -0
  232. package/dist/js/core/decorators/subscriber/subscribe.js +20 -0
  233. package/dist/js/core/decorators/subscriber/subscribe.js.map +1 -0
  234. package/dist/js/core/directives/DataProvider.js +127 -0
  235. package/dist/js/core/directives/DataProvider.js.map +1 -0
  236. package/dist/js/core/directives/Wording.js +221 -0
  237. package/dist/js/core/directives/Wording.js.map +1 -0
  238. package/dist/js/core/mixins/Fetcher.js +325 -0
  239. package/dist/js/core/mixins/Fetcher.js.map +1 -0
  240. package/dist/js/core/mixins/FormCheckable.js +313 -0
  241. package/dist/js/core/mixins/FormCheckable.js.map +1 -0
  242. package/dist/js/core/mixins/FormElement.js +304 -0
  243. package/dist/js/core/mixins/FormElement.js.map +1 -0
  244. package/dist/js/core/mixins/FormInput.js +82 -0
  245. package/dist/js/core/mixins/FormInput.js.map +1 -0
  246. package/dist/js/core/mixins/Subscriber.js +354 -0
  247. package/dist/js/core/mixins/Subscriber.js.map +1 -0
  248. package/dist/js/core/mixins/TemplatesContainer.js +70 -0
  249. package/dist/js/core/mixins/TemplatesContainer.js.map +1 -0
  250. package/dist/js/core/mixins/mixins.js +7 -0
  251. package/dist/js/core/mixins/mixins.js.map +1 -0
  252. package/dist/js/core/utils/AncestorAttributeObserver.js +140 -0
  253. package/dist/js/core/utils/AncestorAttributeObserver.js.map +1 -0
  254. package/dist/js/core/utils/Arrays.js +141 -0
  255. package/dist/js/core/utils/Arrays.js.map +1 -0
  256. package/dist/js/core/utils/DataBindObserver.js +265 -0
  257. package/dist/js/core/utils/DataBindObserver.js.map +1 -0
  258. package/dist/js/core/utils/Electron.js +14 -0
  259. package/dist/js/core/utils/Electron.js.map +1 -0
  260. package/dist/js/core/utils/Format.js +43 -0
  261. package/dist/js/core/utils/Format.js.map +1 -0
  262. package/dist/js/core/utils/HTML.js +248 -0
  263. package/dist/js/core/utils/HTML.js.map +1 -0
  264. package/dist/js/core/utils/LocationHandler.js +143 -0
  265. package/dist/js/core/utils/LocationHandler.js.map +1 -0
  266. package/dist/js/core/utils/Objects.js +111 -0
  267. package/dist/js/core/utils/Objects.js.map +1 -0
  268. package/dist/js/core/utils/PublisherProxy.js +946 -0
  269. package/dist/js/core/utils/PublisherProxy.js.map +1 -0
  270. package/dist/js/core/utils/Utils.js +19 -0
  271. package/dist/js/core/utils/Utils.js.map +1 -0
  272. package/dist/js/core/utils/aesCrypto.js +98 -0
  273. package/dist/js/core/utils/aesCrypto.js.map +1 -0
  274. package/dist/js/core/utils/api.js +574 -0
  275. package/dist/js/core/utils/api.js.map +1 -0
  276. package/dist/js/core/utils/dataProviderKey.js +64 -0
  277. package/dist/js/core/utils/dataProviderKey.js.map +1 -0
  278. package/dist/js/core/utils/endpoint.js +74 -0
  279. package/dist/js/core/utils/endpoint.js.map +1 -0
  280. package/dist/js/core/utils/route.js +149 -0
  281. package/dist/js/core/utils/route.js.map +1 -0
  282. package/dist/js/core/utils/url-pattern.js +3 -0
  283. package/dist/js/core/utils/url-pattern.js.map +1 -0
  284. package/dist/js/dataprovider.js +2 -0
  285. package/dist/js/dataprovider.js.map +1 -0
  286. package/dist/js/decorators.js +39 -0
  287. package/dist/js/decorators.js.map +1 -0
  288. package/dist/js/directives.js +30 -0
  289. package/dist/js/directives.js.map +1 -0
  290. package/dist/js/index.js +8 -0
  291. package/dist/js/index.js.map +1 -0
  292. package/dist/js/mixins.js +23 -0
  293. package/dist/js/mixins.js.map +1 -0
  294. package/dist/js/test-utils/TestUtils.js +10 -0
  295. package/dist/js/test-utils/TestUtils.js.map +1 -0
  296. package/dist/js/utils.js +41 -0
  297. package/dist/js/utils.js.map +1 -0
  298. package/dist/types/components.d.ts +5 -0
  299. package/dist/types/components.d.ts.map +1 -0
  300. package/dist/types/concorde-loaded.d.ts +2 -0
  301. package/dist/types/concorde-loaded.d.ts.map +1 -0
  302. package/dist/types/core/_types/endpoint.d.ts +5 -0
  303. package/dist/types/core/_types/endpoint.d.ts.map +1 -0
  304. package/dist/types/core/_types/key.d.ts +2 -0
  305. package/dist/types/core/_types/key.d.ts.map +1 -0
  306. package/dist/types/core/_types/types.d.ts +28 -0
  307. package/dist/types/core/_types/types.d.ts.map +1 -0
  308. package/dist/types/core/components/functional/date/date.d.ts +52 -0
  309. package/dist/types/core/components/functional/date/date.d.ts.map +1 -0
  310. package/dist/types/core/components/functional/example/example.d.ts +15 -0
  311. package/dist/types/core/components/functional/example/example.d.ts.map +1 -0
  312. package/dist/types/core/components/functional/fetch/fetch.d.ts +102 -0
  313. package/dist/types/core/components/functional/fetch/fetch.d.ts.map +1 -0
  314. package/dist/types/core/components/functional/functional.d.ts +17 -0
  315. package/dist/types/core/components/functional/functional.d.ts.map +1 -0
  316. package/dist/types/core/components/functional/if/if.d.ts +13 -0
  317. package/dist/types/core/components/functional/if/if.d.ts.map +1 -0
  318. package/dist/types/core/components/functional/list/list.d.ts +149 -0
  319. package/dist/types/core/components/functional/list/list.d.ts.map +1 -0
  320. package/dist/types/core/components/functional/mix/mix.d.ts +23 -0
  321. package/dist/types/core/components/functional/mix/mix.d.ts.map +1 -0
  322. package/dist/types/core/components/functional/queue/queue.d.ts +79 -0
  323. package/dist/types/core/components/functional/queue/queue.d.ts.map +1 -0
  324. package/dist/types/core/components/functional/router/redirect.d.ts +19 -0
  325. package/dist/types/core/components/functional/router/redirect.d.ts.map +1 -0
  326. package/dist/types/core/components/functional/router/router.d.ts +46 -0
  327. package/dist/types/core/components/functional/router/router.d.ts.map +1 -0
  328. package/dist/types/core/components/functional/sdui/SDUIDescriptorTransformer.d.ts +59 -0
  329. package/dist/types/core/components/functional/sdui/SDUIDescriptorTransformer.d.ts.map +1 -0
  330. package/dist/types/core/components/functional/sdui/sdui-utils.d.ts +6 -0
  331. package/dist/types/core/components/functional/sdui/sdui-utils.d.ts.map +1 -0
  332. package/dist/types/core/components/functional/sdui/sdui.d.ts +145 -0
  333. package/dist/types/core/components/functional/sdui/sdui.d.ts.map +1 -0
  334. package/dist/types/core/components/functional/sdui/types.d.ts +38 -0
  335. package/dist/types/core/components/functional/sdui/types.d.ts.map +1 -0
  336. package/dist/types/core/components/functional/sonic-scope/sonic-scope.d.ts +6 -0
  337. package/dist/types/core/components/functional/sonic-scope/sonic-scope.d.ts.map +1 -0
  338. package/dist/types/core/components/functional/states/states.d.ts +42 -0
  339. package/dist/types/core/components/functional/states/states.d.ts.map +1 -0
  340. package/dist/types/core/components/functional/submit/submit.d.ts +37 -0
  341. package/dist/types/core/components/functional/submit/submit.d.ts.map +1 -0
  342. package/dist/types/core/components/functional/subscriber/subscriber.d.ts +13 -0
  343. package/dist/types/core/components/functional/subscriber/subscriber.d.ts.map +1 -0
  344. package/dist/types/core/components/functional/translation/translation.d.ts +7 -0
  345. package/dist/types/core/components/functional/translation/translation.d.ts.map +1 -0
  346. package/dist/types/core/components/functional/value/value.d.ts +8 -0
  347. package/dist/types/core/components/functional/value/value.d.ts.map +1 -0
  348. package/dist/types/core/components/ui/_css/scroll.d.ts +2 -0
  349. package/dist/types/core/components/ui/_css/scroll.d.ts.map +1 -0
  350. package/dist/types/core/components/ui/_css/shadow.d.ts +3 -0
  351. package/dist/types/core/components/ui/_css/shadow.d.ts.map +1 -0
  352. package/dist/types/core/components/ui/_css/size.d.ts +3 -0
  353. package/dist/types/core/components/ui/_css/size.d.ts.map +1 -0
  354. package/dist/types/core/components/ui/_css/type.d.ts +3 -0
  355. package/dist/types/core/components/ui/_css/type.d.ts.map +1 -0
  356. package/dist/types/core/components/ui/alert/alert.d.ts +37 -0
  357. package/dist/types/core/components/ui/alert/alert.d.ts.map +1 -0
  358. package/dist/types/core/components/ui/alert-messages/alert-messages.d.ts +15 -0
  359. package/dist/types/core/components/ui/alert-messages/alert-messages.d.ts.map +1 -0
  360. package/dist/types/core/components/ui/badge/badge.d.ts +27 -0
  361. package/dist/types/core/components/ui/badge/badge.d.ts.map +1 -0
  362. package/dist/types/core/components/ui/button/button.d.ts +180 -0
  363. package/dist/types/core/components/ui/button/button.d.ts.map +1 -0
  364. package/dist/types/core/components/ui/captcha/altchaStyles.d.ts +2 -0
  365. package/dist/types/core/components/ui/captcha/altchaStyles.d.ts.map +1 -0
  366. package/dist/types/core/components/ui/captcha/captcha.d.ts +30 -0
  367. package/dist/types/core/components/ui/captcha/captcha.d.ts.map +1 -0
  368. package/dist/types/core/components/ui/card/card-footer.d.ts +6 -0
  369. package/dist/types/core/components/ui/card/card-footer.d.ts.map +1 -0
  370. package/dist/types/core/components/ui/card/card-header-descripton.d.ts +6 -0
  371. package/dist/types/core/components/ui/card/card-header-descripton.d.ts.map +1 -0
  372. package/dist/types/core/components/ui/card/card-header.d.ts +9 -0
  373. package/dist/types/core/components/ui/card/card-header.d.ts.map +1 -0
  374. package/dist/types/core/components/ui/card/card-main.d.ts +6 -0
  375. package/dist/types/core/components/ui/card/card-main.d.ts.map +1 -0
  376. package/dist/types/core/components/ui/card/card.d.ts +13 -0
  377. package/dist/types/core/components/ui/card/card.d.ts.map +1 -0
  378. package/dist/types/core/components/ui/divider/divider.d.ts +16 -0
  379. package/dist/types/core/components/ui/divider/divider.d.ts.map +1 -0
  380. package/dist/types/core/components/ui/form/checkbox/checkbox.d.ts +176 -0
  381. package/dist/types/core/components/ui/form/checkbox/checkbox.d.ts.map +1 -0
  382. package/dist/types/core/components/ui/form/css/form-control.d.ts +5 -0
  383. package/dist/types/core/components/ui/form/css/form-control.d.ts.map +1 -0
  384. package/dist/types/core/components/ui/form/fieldset/fieldset.d.ts +24 -0
  385. package/dist/types/core/components/ui/form/fieldset/fieldset.d.ts.map +1 -0
  386. package/dist/types/core/components/ui/form/fieldset/legend-description.d.ts +6 -0
  387. package/dist/types/core/components/ui/form/fieldset/legend-description.d.ts.map +1 -0
  388. package/dist/types/core/components/ui/form/fieldset/legend.d.ts +17 -0
  389. package/dist/types/core/components/ui/form/fieldset/legend.d.ts.map +1 -0
  390. package/dist/types/core/components/ui/form/form-actions/form-actions.d.ts +8 -0
  391. package/dist/types/core/components/ui/form/form-actions/form-actions.d.ts.map +1 -0
  392. package/dist/types/core/components/ui/form/form-layout/form-layout.d.ts +13 -0
  393. package/dist/types/core/components/ui/form/form-layout/form-layout.d.ts.map +1 -0
  394. package/dist/types/core/components/ui/form/input/input.d.ts +123 -0
  395. package/dist/types/core/components/ui/form/input/input.d.ts.map +1 -0
  396. package/dist/types/core/components/ui/form/input/password-helper.d.ts +26 -0
  397. package/dist/types/core/components/ui/form/input/password-helper.d.ts.map +1 -0
  398. package/dist/types/core/components/ui/form/input/same-value-helper.d.ts +17 -0
  399. package/dist/types/core/components/ui/form/input/same-value-helper.d.ts.map +1 -0
  400. package/dist/types/core/components/ui/form/input-autocomplete/input-autocomplete.d.ts +155 -0
  401. package/dist/types/core/components/ui/form/input-autocomplete/input-autocomplete.d.ts.map +1 -0
  402. package/dist/types/core/components/ui/form/radio/radio.d.ts +15 -0
  403. package/dist/types/core/components/ui/form/radio/radio.d.ts.map +1 -0
  404. package/dist/types/core/components/ui/form/select/select.d.ts +59 -0
  405. package/dist/types/core/components/ui/form/select/select.d.ts.map +1 -0
  406. package/dist/types/core/components/ui/form/switch/switch.d.ts +6 -0
  407. package/dist/types/core/components/ui/form/switch/switch.d.ts.map +1 -0
  408. package/dist/types/core/components/ui/form/textarea/textarea.d.ts +94 -0
  409. package/dist/types/core/components/ui/form/textarea/textarea.d.ts.map +1 -0
  410. package/dist/types/core/components/ui/group/group.d.ts +17 -0
  411. package/dist/types/core/components/ui/group/group.d.ts.map +1 -0
  412. package/dist/types/core/components/ui/icon/icon.d.ts +28 -0
  413. package/dist/types/core/components/ui/icon/icon.d.ts.map +1 -0
  414. package/dist/types/core/components/ui/icon/icons.d.ts +11 -0
  415. package/dist/types/core/components/ui/icon/icons.d.ts.map +1 -0
  416. package/dist/types/core/components/ui/image/image.d.ts +16 -0
  417. package/dist/types/core/components/ui/image/image.d.ts.map +1 -0
  418. package/dist/types/core/components/ui/link/link.d.ts +30 -0
  419. package/dist/types/core/components/ui/link/link.d.ts.map +1 -0
  420. package/dist/types/core/components/ui/loader/loader.d.ts +24 -0
  421. package/dist/types/core/components/ui/loader/loader.d.ts.map +1 -0
  422. package/dist/types/core/components/ui/loader/styles/fixed.d.ts +2 -0
  423. package/dist/types/core/components/ui/loader/styles/fixed.d.ts.map +1 -0
  424. package/dist/types/core/components/ui/loader/styles/inline.d.ts +2 -0
  425. package/dist/types/core/components/ui/loader/styles/inline.d.ts.map +1 -0
  426. package/dist/types/core/components/ui/menu/menu-item.d.ts +6 -0
  427. package/dist/types/core/components/ui/menu/menu-item.d.ts.map +1 -0
  428. package/dist/types/core/components/ui/menu/menu.d.ts +52 -0
  429. package/dist/types/core/components/ui/menu/menu.d.ts.map +1 -0
  430. package/dist/types/core/components/ui/modal/modal-actions.d.ts +9 -0
  431. package/dist/types/core/components/ui/modal/modal-actions.d.ts.map +1 -0
  432. package/dist/types/core/components/ui/modal/modal-close.d.ts +11 -0
  433. package/dist/types/core/components/ui/modal/modal-close.d.ts.map +1 -0
  434. package/dist/types/core/components/ui/modal/modal-content.d.ts +6 -0
  435. package/dist/types/core/components/ui/modal/modal-content.d.ts.map +1 -0
  436. package/dist/types/core/components/ui/modal/modal-subtitle.d.ts +6 -0
  437. package/dist/types/core/components/ui/modal/modal-subtitle.d.ts.map +1 -0
  438. package/dist/types/core/components/ui/modal/modal-title.d.ts +6 -0
  439. package/dist/types/core/components/ui/modal/modal-title.d.ts.map +1 -0
  440. package/dist/types/core/components/ui/modal/modal-utils.d.ts +4 -0
  441. package/dist/types/core/components/ui/modal/modal-utils.d.ts.map +1 -0
  442. package/dist/types/core/components/ui/modal/modal.d.ts +79 -0
  443. package/dist/types/core/components/ui/modal/modal.d.ts.map +1 -0
  444. package/dist/types/core/components/ui/pop/pop.d.ts +42 -0
  445. package/dist/types/core/components/ui/pop/pop.d.ts.map +1 -0
  446. package/dist/types/core/components/ui/progress/progress.d.ts +12 -0
  447. package/dist/types/core/components/ui/progress/progress.d.ts.map +1 -0
  448. package/dist/types/core/components/ui/table/table-caption.d.ts +6 -0
  449. package/dist/types/core/components/ui/table/table-caption.d.ts.map +1 -0
  450. package/dist/types/core/components/ui/table/table-tbody.d.ts +6 -0
  451. package/dist/types/core/components/ui/table/table-tbody.d.ts.map +1 -0
  452. package/dist/types/core/components/ui/table/table-td.d.ts +13 -0
  453. package/dist/types/core/components/ui/table/table-td.d.ts.map +1 -0
  454. package/dist/types/core/components/ui/table/table-tfoot.d.ts +6 -0
  455. package/dist/types/core/components/ui/table/table-tfoot.d.ts.map +1 -0
  456. package/dist/types/core/components/ui/table/table-th.d.ts +12 -0
  457. package/dist/types/core/components/ui/table/table-th.d.ts.map +1 -0
  458. package/dist/types/core/components/ui/table/table-thead.d.ts +6 -0
  459. package/dist/types/core/components/ui/table/table-thead.d.ts.map +1 -0
  460. package/dist/types/core/components/ui/table/table-tr.d.ts +14 -0
  461. package/dist/types/core/components/ui/table/table-tr.d.ts.map +1 -0
  462. package/dist/types/core/components/ui/table/table.d.ts +18 -0
  463. package/dist/types/core/components/ui/table/table.d.ts.map +1 -0
  464. package/dist/types/core/components/ui/theme/theme-collection/core-variables.d.ts +2 -0
  465. package/dist/types/core/components/ui/theme/theme-collection/core-variables.d.ts.map +1 -0
  466. package/dist/types/core/components/ui/theme/theme-collection/dark.d.ts +2 -0
  467. package/dist/types/core/components/ui/theme/theme-collection/dark.d.ts.map +1 -0
  468. package/dist/types/core/components/ui/theme/theme-collection/light.d.ts +2 -0
  469. package/dist/types/core/components/ui/theme/theme-collection/light.d.ts.map +1 -0
  470. package/dist/types/core/components/ui/theme/theme.d.ts +20 -0
  471. package/dist/types/core/components/ui/theme/theme.d.ts.map +1 -0
  472. package/dist/types/core/components/ui/toast/message-subscriber.d.ts +19 -0
  473. package/dist/types/core/components/ui/toast/message-subscriber.d.ts.map +1 -0
  474. package/dist/types/core/components/ui/toast/toast-item.d.ts +41 -0
  475. package/dist/types/core/components/ui/toast/toast-item.d.ts.map +1 -0
  476. package/dist/types/core/components/ui/toast/toast.d.ts +28 -0
  477. package/dist/types/core/components/ui/toast/toast.d.ts.map +1 -0
  478. package/dist/types/core/components/ui/toast/types.d.ts +12 -0
  479. package/dist/types/core/components/ui/toast/types.d.ts.map +1 -0
  480. package/dist/types/core/components/ui/tooltip/tooltip.d.ts +21 -0
  481. package/dist/types/core/components/ui/tooltip/tooltip.d.ts.map +1 -0
  482. package/dist/types/core/components/ui/ui.d.ts +35 -0
  483. package/dist/types/core/components/ui/ui.d.ts.map +1 -0
  484. package/dist/types/core/core.d.ts +5 -0
  485. package/dist/types/core/core.d.ts.map +1 -0
  486. package/dist/types/core/decorators/Subscriber.d.ts +11 -0
  487. package/dist/types/core/decorators/Subscriber.d.ts.map +1 -0
  488. package/dist/types/core/decorators/api.d.ts +106 -0
  489. package/dist/types/core/decorators/api.d.ts.map +1 -0
  490. package/dist/types/core/decorators/lifecycle.d.ts +19 -0
  491. package/dist/types/core/decorators/lifecycle.d.ts.map +1 -0
  492. package/dist/types/core/decorators/subscriber/ancestorAttribute.d.ts +11 -0
  493. package/dist/types/core/decorators/subscriber/ancestorAttribute.d.ts.map +1 -0
  494. package/dist/types/core/decorators/subscriber/autoFill.d.ts +2 -0
  495. package/dist/types/core/decorators/subscriber/autoFill.d.ts.map +1 -0
  496. package/dist/types/core/decorators/subscriber/autoSubscribe.d.ts +2 -0
  497. package/dist/types/core/decorators/subscriber/autoSubscribe.d.ts.map +1 -0
  498. package/dist/types/core/decorators/subscriber/bind.d.ts +28 -0
  499. package/dist/types/core/decorators/subscriber/bind.d.ts.map +1 -0
  500. package/dist/types/core/decorators/subscriber/common.d.ts +14 -0
  501. package/dist/types/core/decorators/subscriber/common.d.ts.map +1 -0
  502. package/dist/types/core/decorators/subscriber/dynamicPath.d.ts +23 -0
  503. package/dist/types/core/decorators/subscriber/dynamicPath.d.ts.map +1 -0
  504. package/dist/types/core/decorators/subscriber/dynamicPropertyWatch.d.ts +42 -0
  505. package/dist/types/core/decorators/subscriber/dynamicPropertyWatch.d.ts.map +1 -0
  506. package/dist/types/core/decorators/subscriber/handle.d.ts +74 -0
  507. package/dist/types/core/decorators/subscriber/handle.d.ts.map +1 -0
  508. package/dist/types/core/decorators/subscriber/onAssign.d.ts +53 -0
  509. package/dist/types/core/decorators/subscriber/onAssign.d.ts.map +1 -0
  510. package/dist/types/core/decorators/subscriber/publish.d.ts +23 -0
  511. package/dist/types/core/decorators/subscriber/publish.d.ts.map +1 -0
  512. package/dist/types/core/decorators/subscriber/publisherPath.d.ts +3 -0
  513. package/dist/types/core/decorators/subscriber/publisherPath.d.ts.map +1 -0
  514. package/dist/types/core/decorators/subscriber/subscribe.d.ts +20 -0
  515. package/dist/types/core/decorators/subscriber/subscribe.d.ts.map +1 -0
  516. package/dist/types/core/directives/DataProvider.d.ts +45 -0
  517. package/dist/types/core/directives/DataProvider.d.ts.map +1 -0
  518. package/dist/types/core/directives/Wording.d.ts +44 -0
  519. package/dist/types/core/directives/Wording.d.ts.map +1 -0
  520. package/dist/types/core/mixins/Fetcher.d.ts +108 -0
  521. package/dist/types/core/mixins/Fetcher.d.ts.map +1 -0
  522. package/dist/types/core/mixins/FormCheckable.d.ts +95 -0
  523. package/dist/types/core/mixins/FormCheckable.d.ts.map +1 -0
  524. package/dist/types/core/mixins/FormElement.d.ts +37 -0
  525. package/dist/types/core/mixins/FormElement.d.ts.map +1 -0
  526. package/dist/types/core/mixins/FormInput.d.ts +79 -0
  527. package/dist/types/core/mixins/FormInput.d.ts.map +1 -0
  528. package/dist/types/core/mixins/Subscriber.d.ts +38 -0
  529. package/dist/types/core/mixins/Subscriber.d.ts.map +1 -0
  530. package/dist/types/core/mixins/TemplatesContainer.d.ts +14 -0
  531. package/dist/types/core/mixins/TemplatesContainer.d.ts.map +1 -0
  532. package/dist/types/core/mixins/mixins.d.ts +7 -0
  533. package/dist/types/core/mixins/mixins.d.ts.map +1 -0
  534. package/dist/types/core/utils/AncestorAttributeObserver.d.ts +38 -0
  535. package/dist/types/core/utils/AncestorAttributeObserver.d.ts.map +1 -0
  536. package/dist/types/core/utils/Arrays.d.ts +98 -0
  537. package/dist/types/core/utils/Arrays.d.ts.map +1 -0
  538. package/dist/types/core/utils/DataBindObserver.d.ts +84 -0
  539. package/dist/types/core/utils/DataBindObserver.d.ts.map +1 -0
  540. package/dist/types/core/utils/Electron.d.ts +8 -0
  541. package/dist/types/core/utils/Electron.d.ts.map +1 -0
  542. package/dist/types/core/utils/Format.d.ts +13 -0
  543. package/dist/types/core/utils/Format.d.ts.map +1 -0
  544. package/dist/types/core/utils/HTML.d.ts +64 -0
  545. package/dist/types/core/utils/HTML.d.ts.map +1 -0
  546. package/dist/types/core/utils/LocationHandler.d.ts +48 -0
  547. package/dist/types/core/utils/LocationHandler.d.ts.map +1 -0
  548. package/dist/types/core/utils/Objects.d.ts +31 -0
  549. package/dist/types/core/utils/Objects.d.ts.map +1 -0
  550. package/dist/types/core/utils/PublisherProxy.d.ts +230 -0
  551. package/dist/types/core/utils/PublisherProxy.d.ts.map +1 -0
  552. package/dist/types/core/utils/Utils.d.ts +6 -0
  553. package/dist/types/core/utils/Utils.d.ts.map +1 -0
  554. package/dist/types/core/utils/aesCrypto.d.ts +53 -0
  555. package/dist/types/core/utils/aesCrypto.d.ts.map +1 -0
  556. package/dist/types/core/utils/api.d.ts +173 -0
  557. package/dist/types/core/utils/api.d.ts.map +1 -0
  558. package/dist/types/core/utils/dataProviderKey.d.ts +56 -0
  559. package/dist/types/core/utils/dataProviderKey.d.ts.map +1 -0
  560. package/dist/types/core/utils/endpoint.d.ts +37 -0
  561. package/dist/types/core/utils/endpoint.d.ts.map +1 -0
  562. package/dist/types/core/utils/route.d.ts +41 -0
  563. package/dist/types/core/utils/route.d.ts.map +1 -0
  564. package/dist/types/core/utils/url-pattern.d.ts +3 -0
  565. package/dist/types/core/utils/url-pattern.d.ts.map +1 -0
  566. package/dist/types/dataprovider.d.ts +2 -0
  567. package/dist/types/dataprovider.d.ts.map +1 -0
  568. package/dist/types/decorators.d.ts +28 -0
  569. package/dist/types/decorators.d.ts.map +1 -0
  570. package/dist/types/directives.d.ts +21 -0
  571. package/dist/types/directives.d.ts.map +1 -0
  572. package/dist/types/index.d.ts +8 -0
  573. package/dist/types/index.d.ts.map +1 -0
  574. package/dist/types/mixins.d.ts +204 -0
  575. package/dist/types/mixins.d.ts.map +1 -0
  576. package/dist/types/test-utils/TestUtils.d.ts +4 -0
  577. package/dist/types/test-utils/TestUtils.d.ts.map +1 -0
  578. package/dist/types/utils.d.ts +17 -0
  579. package/dist/types/utils.d.ts.map +1 -0
  580. package/docs/assets/{index-wyNMyWT9.js → index-BEgZEIbv.js} +401 -401
  581. package/docs/index.html +1 -1
  582. package/docs/src/core/components/functional/date/date.md +290 -0
  583. package/docs/src/core/components/functional/fetch/fetch.md +125 -0
  584. package/docs/src/core/components/functional/if/if.md +9 -0
  585. package/docs/src/core/components/functional/list/list.md +65 -0
  586. package/docs/src/core/components/functional/mix/mix.md +41 -0
  587. package/docs/src/core/components/functional/queue/queue.md +72 -0
  588. package/docs/src/core/components/functional/router/router.md +94 -0
  589. package/docs/src/core/components/functional/sdui/default-library.json +108 -0
  590. package/docs/src/core/components/functional/sdui/example.json +99 -0
  591. package/docs/src/core/components/functional/sdui/sdui.md +356 -0
  592. package/docs/src/core/components/functional/states/states.md +87 -0
  593. package/docs/src/core/components/functional/submit/submit.md +114 -0
  594. package/docs/src/core/components/functional/subscriber/subscriber.md +91 -0
  595. package/docs/src/core/components/functional/value/value.md +35 -0
  596. package/docs/src/core/components/ui/alert/alert.md +121 -0
  597. package/docs/src/core/components/ui/alert-messages/alert-messages.md +0 -0
  598. package/docs/src/core/components/ui/badge/badge.md +127 -0
  599. package/docs/src/core/components/ui/button/button.md +182 -0
  600. package/docs/src/core/components/ui/captcha/captcha.md +12 -0
  601. package/docs/src/core/components/ui/card/card.md +97 -0
  602. package/docs/src/core/components/ui/divider/divider.md +35 -0
  603. package/docs/src/core/components/ui/form/checkbox/checkbox.md +77 -0
  604. package/docs/src/core/components/ui/form/fieldset/fieldset.md +129 -0
  605. package/docs/src/core/components/ui/form/form-actions/form-actions.md +77 -0
  606. package/docs/src/core/components/ui/form/form-layout/form-layout.md +44 -0
  607. package/docs/src/core/components/ui/form/input/input.md +142 -0
  608. package/docs/src/core/components/ui/form/input-autocomplete/input-autocomplete.md +133 -0
  609. package/docs/src/core/components/ui/form/radio/radio.md +57 -0
  610. package/docs/src/core/components/ui/form/select/select.md +71 -0
  611. package/docs/src/core/components/ui/form/switch/switch.md +57 -0
  612. package/docs/src/core/components/ui/form/textarea/textarea.md +65 -0
  613. package/docs/src/core/components/ui/group/group.md +75 -0
  614. package/docs/src/core/components/ui/icon/icon.md +125 -0
  615. package/docs/src/core/components/ui/icon/icons.json +1 -0
  616. package/docs/src/core/components/ui/image/image.md +107 -0
  617. package/docs/src/core/components/ui/link/link.md +43 -0
  618. package/docs/src/core/components/ui/loader/loader.md +55 -0
  619. package/docs/src/core/components/ui/menu/menu.md +329 -0
  620. package/docs/src/core/components/ui/modal/modal.md +119 -0
  621. package/docs/src/core/components/ui/pop/pop.md +96 -0
  622. package/docs/src/core/components/ui/progress/progress.md +63 -0
  623. package/docs/src/core/components/ui/table/table.md +455 -0
  624. package/docs/src/core/components/ui/toast/toast.md +166 -0
  625. package/docs/src/core/components/ui/tooltip/tooltip.md +82 -0
  626. package/docs/src/docs/_core-concept/dataFlow.md +79 -0
  627. package/docs/src/docs/_core-concept/overview.md +57 -0
  628. package/docs/src/docs/_core-concept/subscriber.md +75 -0
  629. package/docs/src/docs/_decorators/ancestor-attribute.md +79 -0
  630. package/docs/src/docs/_decorators/auto-subscribe.md +202 -0
  631. package/docs/src/docs/_decorators/bind.md +167 -0
  632. package/docs/src/docs/_decorators/get.md +77 -0
  633. package/docs/src/docs/_decorators/handle.md +175 -0
  634. package/docs/src/docs/_decorators/on-assign.md +390 -0
  635. package/docs/src/docs/_decorators/patch.md +45 -0
  636. package/docs/src/docs/_decorators/post.md +93 -0
  637. package/docs/src/docs/_decorators/publish.md +55 -0
  638. package/docs/src/docs/_decorators/put.md +43 -0
  639. package/docs/src/docs/_decorators/subscribe.md +100 -0
  640. package/docs/src/docs/_decorators/wait-for-ancestors.md +163 -0
  641. package/docs/src/docs/_directives/sub.md +91 -0
  642. package/docs/src/docs/_getting-started/ai-agents.md +56 -0
  643. package/docs/src/docs/_getting-started/concorde-manual-install.md +133 -0
  644. package/docs/src/docs/_getting-started/concorde-outside.md +33 -0
  645. package/docs/src/docs/_getting-started/create-a-component.md +139 -0
  646. package/docs/src/docs/_getting-started/my-first-component.md +236 -0
  647. package/docs/src/docs/_getting-started/my-first-subscriber.md +120 -0
  648. package/docs/src/docs/_getting-started/pubsub.md +37 -0
  649. package/docs/src/docs/_getting-started/start.md +47 -0
  650. package/docs/src/docs/_getting-started/theming.md +91 -0
  651. package/docs/src/docs/_misc/api-configuration.md +81 -0
  652. package/docs/src/docs/_misc/dataProviderKey.md +168 -0
  653. package/docs/src/docs/_misc/docs-mock-api.md +60 -0
  654. package/docs/src/docs/_misc/dynamic-path.md +71 -0
  655. package/docs/src/docs/_misc/endpoint.md +45 -0
  656. package/docs/src/docs/_misc/html-integration.md +13 -0
  657. package/docs/src/docs/search/docs-search.json +9057 -0
  658. package/docs/src/tag-list.json +1 -0
  659. package/docs/src/tsconfig-model.json +23 -0
  660. package/docs/src/tsconfig.json +1119 -0
  661. package/gitlab/job_github_mirror.sh +39 -0
  662. package/index.html +0 -1
  663. package/package.json +1084 -364
  664. package/scripts/github-export.mjs +150 -0
  665. package/scripts/post-build.mjs +43 -0
  666. package/scripts/pre-build.mjs +32 -4
  667. package/scripts/pre-publish.mjs +2 -0
  668. package/src/core/components/functional/queue/queue.ts +2 -2
  669. package/src/core/components/ui/modal/modal.ts +1 -1
  670. package/src/core/decorators/Subscriber.ts +1 -0
  671. package/src/core/decorators/api.ts +8 -10
  672. package/src/core/decorators/subscriber/ancestorAttribute.spec.ts +197 -0
  673. package/src/core/decorators/subscriber/ancestorAttribute.ts +40 -7
  674. package/src/core/decorators/subscriber/autoSubscribe.ts +7 -3
  675. package/src/core/mixins/Fetcher.ts +12 -6
  676. package/src/core/utils/AncestorAttributeObserver.ts +199 -0
  677. package/src/core/utils/HTML.ts +3 -11
  678. package/src/core/utils/PublisherProxy.ts +28 -37
  679. package/src/core/utils/api.ts +10 -10
  680. package/src/css.d.ts +19 -0
  681. package/src/directives.ts +3 -2
  682. package/src/docs/_decorators/ancestor-attribute.md +56 -8
  683. package/src/docs/components/docs-demo-sources.ts +13 -1
  684. package/src/docs/example/decorators-demo.ts +164 -8
  685. package/src/docs/search/docs-search.json +62 -2
  686. package/src/tsconfig.declarations.json +22 -0
  687. package/src/tsconfig.emit.json +23 -0
  688. package/src/tsconfig.json +3 -285
  689. package/src/tsconfig.tsbuildinfo +1 -1
@@ -0,0 +1,390 @@
1
+ # @onAssign
2
+
3
+ > **New apps:** use [@handle](#docs/_decorators/handle.md/handle) with `DataProviderKey` ([Data flow](#docs/_core-concept/dataFlow.md/dataFlow)). `@onAssign` uses untyped string paths; it remains documented for existing codebases — see **Migrating to @handle** below.
4
+
5
+ The `@onAssign` decorator allows you to execute a method when one or more publishers are updated. The method is called only when all specified publishers have been assigned values.
6
+
7
+ For a **typed** equivalent (recommended), use [@handle](#docs/_decorators/handle.md/handle).
8
+
9
+ ## Principle
10
+
11
+ This decorator subscribes to one or more publishers by **string path** (legacy). When all specified publishers have been assigned values (via `set`), the decorated method is called with all the values as arguments. Prefer [@handle](#docs/_decorators/handle.md/handle) + `DataProviderKey` and `get` / `set` from [Data flow](#docs/_core-concept/dataFlow.md/dataFlow).
12
+
13
+ This is particularly useful when you need to wait for multiple data sources to be ready before executing logic.
14
+
15
+ ## Usage
16
+
17
+ ### Import
18
+
19
+ <sonic-code language="typescript">
20
+ <template>
21
+ import { onAssign } from "@supersoniks/concorde/decorators";
22
+ </template>
23
+ </sonic-code>
24
+
25
+ ### Basic example
26
+
27
+
28
+ <sonic-code language="typescript">
29
+ <template>
30
+ //...
31
+ @customElement("demo-on-assign")
32
+ export class DemoOnAssign extends LitElement {
33
+ static styles = [tailwind];
34
+
35
+ @state() userWithSettings: any = null;
36
+ @state() isReady: boolean = false;
37
+ @state() lastUpdate: string = "";
38
+
39
+ @onAssign("demoUser", "demoUserSettings")
40
+ handleDataReady(user: any, settings: any) {
41
+ this.isReady = Object.keys(user).length > 0 && Object.keys(settings).length > 0;
42
+ this.userWithSettings = { ...user, ...settings };
43
+ this.lastUpdate = new Date().toLocaleTimeString();
44
+ this.requestUpdate();
45
+ }
46
+
47
+ render() {
48
+ const { name, email, theme, language } = this.userWithSettings;
49
+ return //...
50
+ }
51
+
52
+ updateData() {
53
+ const user = PublisherManager.get("demoUser");
54
+ const userSettings = PublisherManager.get("demoUserSettings");
55
+ const userNumber = Math.floor(Math.random() * 100);
56
+ user.set({
57
+ name: `User n°${userNumber}`,
58
+ email: `user-${userNumber}@example.com`,
59
+ });
60
+
61
+ userSettings.set({
62
+ theme: ["light", "dark", "auto"][Math.floor(Math.random() * 3)],
63
+ language: ["en", "fr", "es"][Math.floor(Math.random() * 3)],
64
+ });
65
+ }
66
+ }
67
+ </template>
68
+ </sonic-code>
69
+
70
+ <sonic-code>
71
+ <template>
72
+ <docs-demo-sources for="demo-on-assign"></docs-demo-sources>
73
+ <demo-on-assign></demo-on-assign>
74
+ </template>
75
+ </sonic-code>
76
+
77
+
78
+ ### Example with nested paths
79
+
80
+ <sonic-code language="typescript">
81
+ <template>
82
+ @customElement("product-view")
83
+ export class ProductView extends LitElement {
84
+ product: any = null;
85
+ inventory: any = null;
86
+
87
+ @onAssign("store.product", "store.inventory")
88
+ handleProductData(product: any, inventory: any) {
89
+ this.product = product;
90
+ this.inventory = inventory;
91
+ this.requestUpdate();
92
+ }
93
+
94
+ render() {
95
+ if (!this.product) return html`<div>Loading...</div>`;
96
+
97
+ const stock = this.inventory[this.product.id] || 0;
98
+ return html`
99
+ <div>
100
+ <h2>${this.product.name}</h2>
101
+ <p>Price: ${this.product.price}€</p>
102
+ <p>Stock: ${stock}</p>
103
+ </div>
104
+ `;
105
+ }
106
+ }
107
+ </template>
108
+ </sonic-code>
109
+
110
+ ## Path syntax
111
+
112
+ The path uses dot notation to navigate through the publisher structure:
113
+
114
+ - **First segment**: dataProvider identifier (e.g., `"userData"`)
115
+ - **Following segments**: nested properties (e.g., `"store.product"`)
116
+ - **Array access**: use numeric index (e.g., `"data.items.0"`)
117
+
118
+ ### Dynamic path driven by class properties
119
+
120
+ You can now build the paths dynamically by referencing the host class properties inside the strings passed to `@onAssign`. Two placeholder syntaxes are supported:
121
+
122
+ - `` ${myProperty} `` or `` ${this.myProperty} ``
123
+ - `` {$myProperty} ``
124
+
125
+ Each placeholder is replaced at runtime with the current value of the corresponding property. `@onAssign` automatically watches those properties and:
126
+
127
+ - re-evaluates the final paths when one of them changes,
128
+ - removes the previous subscriptions before attaching the new ones,
129
+ - observe the changes inside `willUpdate(changedProperties)` so nothing touches the getters/setters.
130
+
131
+ While a placeholder is `null`/`undefined`, subscriptions are detached. Optional `skipEmptyPlaceholder` on [@handle](#docs/_decorators/handle.md/handle) (typed replacement). Details: [Dynamic path placeholders](#docs/_misc/dynamic-path.md/dynamic-path).
132
+
133
+
134
+ <sonic-code language="typescript">
135
+ <template>
136
+ @customElement("demo-on-assign-dynamic")
137
+ export class DemoOnAssignDynamic extends LitElement {
138
+ static styles = [tailwind];
139
+
140
+ @property({ type: String })
141
+ dataProvider: "demoUsers" | "demoUsersAlt" = "demoUsers";
142
+
143
+ @property({ type: Number })
144
+ userIndex: number = 0;
145
+
146
+ @state() user: any = null;
147
+ @state() userSettings: any = null;
148
+
149
+ @onAssign("${dataProvider}.${userIndex}", "${dataProvider}Settings.${userIndex}")
150
+ handleUserDataReady(user: any, settings: any) {
151
+ this.user = user;
152
+ this.userSettings = settings;
153
+ }
154
+
155
+ updateUserIndex(e: Event) {
156
+ this.userIndex = parseInt((e.target as HTMLInputElement).value);
157
+ }
158
+
159
+ updateDataProvider(e: Event) {
160
+ this.dataProvider = (e.target as HTMLSelectElement).value as
161
+ | "demoUsers"
162
+ | "demoUsersAlt";
163
+ }
164
+
165
+ updateCurrentUserData() {
166
+ const usersPublisher = PublisherManager.get(this.dataProvider);
167
+ const settingsPublisher = PublisherManager.get(
168
+ `${this.dataProvider}Settings`
169
+ );
170
+ const userPublisher = Objects.traverse(
171
+ usersPublisher,
172
+ [String(this.userIndex)]
173
+ ) as PublisherProxy;
174
+ const settingPublisher = Objects.traverse(
175
+ settingsPublisher,
176
+ [String(this.userIndex)]
177
+ ) as PublisherProxy;
178
+
179
+ if (userPublisher && settingPublisher) {
180
+ // Générer de nouvelles données aléatoires
181
+ const randomNames = [
182
+ { firstName: "Alice", lastName: "Wonder" },
183
+ { firstName: "Bob", lastName: "Builder" },
184
+ { firstName: "Charlie", lastName: "Chaplin" },
185
+ ];
186
+ const randomThemes = ["light", "dark", "auto"];
187
+ const randomLanguages = ["en", "fr", "es"];
188
+
189
+ const randomName =
190
+ randomNames[Math.floor(Math.random() * randomNames.length)];
191
+ const randomEmail = `${randomName.firstName.toLowerCase()}.${randomName.lastName.toLowerCase()}@example.com`;
192
+ const randomTheme =
193
+ randomThemes[Math.floor(Math.random() * randomThemes.length)];
194
+ const randomLanguage =
195
+ randomLanguages[Math.floor(Math.random() * randomLanguages.length)];
196
+
197
+ // Mettre à jour l'utilisateur directement
198
+ const currentUser = userPublisher.get() || {};
199
+ userPublisher.set({
200
+ ...currentUser,
201
+ firstName: randomName.firstName,
202
+ lastName: randomName.lastName,
203
+ email: randomEmail,
204
+ });
205
+
206
+ // Mettre à jour les settings directement
207
+ settingPublisher.set({
208
+ theme: randomTheme,
209
+ language: randomLanguage,
210
+ });
211
+ }
212
+ }
213
+
214
+ render() {
215
+ return html`
216
+ &lt;div class="flex flex-col gap-2"&gt;
217
+ &lt;sonic-select label="Users set" @change=${this.updateDataProvider}&gt;
218
+ &lt;option value="demoUsers"&gt;First set of users&lt;/option&gt;
219
+ &lt;option value="demoUsersAlt"&gt;Second set of users&lt;/option&gt;
220
+ &lt;/sonic-select&gt;
221
+ &lt;sonic-input
222
+ type="number"
223
+ .value=${this.userIndex}
224
+ @input=${this.updateUserIndex}
225
+ min="0"
226
+ max="9"
227
+ label="Index"
228
+ class="block"
229
+ &gt;&lt;/sonic-input&gt;
230
+ &lt;sonic-button @click=${this.updateCurrentUserData}&gt;
231
+ Update current user data
232
+ &lt;/sonic-button&gt;
233
+ &lt;div class="flex flex-col gap-2 border p-2"&gt;
234
+ &lt;div&gt;
235
+ &lt;sonic-icon name="user" library="heroicons"&gt;&lt;/sonic-icon&gt;
236
+ ${this.user?.firstName} ${this.user?.lastName}
237
+ &lt;/div&gt;
238
+ &lt;div&gt;
239
+ &lt;sonic-icon name="envelope" library="heroicons"&gt;&lt;/sonic-icon&gt;
240
+ ${this.user?.email}
241
+ &lt;/div&gt;
242
+ &lt;div&gt;
243
+ Theme: ${this.userSettings?.theme} | Language:
244
+ ${this.userSettings?.language}
245
+ &lt;/div&gt;
246
+ &lt;/div&gt;
247
+ &lt;/div&gt;
248
+ `;
249
+ }
250
+ }
251
+ </template>
252
+ </sonic-code>
253
+
254
+ <sonic-code>
255
+ <template>
256
+ <docs-demo-sources for="demo-on-assign-dynamic"></docs-demo-sources>
257
+ <demo-on-assign-dynamic></demo-on-assign-dynamic>
258
+ </template>
259
+ </sonic-code>
260
+
261
+ > ⚠️ Use classic string literals: `@onAssign("${dataProvider}.${profileId}", "settings.${profileId}")`. Do **not** use template literals (backticks), otherwise JavaScript would try to interpolate the value immediately.
262
+
263
+ Additional constraints:
264
+
265
+ - The hosting class must expose a `willUpdate(changedProperties?: Map<PropertyKey, unknown>)` method (LitElement already provides it) so that `@onAssign` can listen to dependency changes.
266
+ - Dependencies need to be reactive (e.g. `@property()` on LitElement) or you must call `this.requestUpdate("myProp")` manually after changing them, otherwise `willUpdate` will never be notified.
267
+ - If you use nested expressions like `${user.id}`, the first segment (`user`) is the one being observed: you need to reassign `this.user` (e.g. with a new object) so that the binding can detect the change.
268
+
269
+ ## Behavior
270
+
271
+ - The method is called only when **all** specified publishers have been assigned values
272
+ - The method receives the values of all publishers as arguments, in the same order as specified
273
+ - Subscription happens at the time of `connectedCallback`
274
+ - Unsubscription happens automatically at the time of `disconnectedCallback`
275
+ - If a publisher doesn't exist yet, it will be created with the value `null`
276
+ - The method is called with `this` bound to the component instance
277
+
278
+ ## Use cases
279
+
280
+ This decorator is particularly useful for:
281
+
282
+ - **Waiting for multiple data sources** before rendering or executing logic
283
+ - **Synchronizing data** from different publishers
284
+ - **Initializing components** that depend on multiple data providers
285
+ - **Handling complex data dependencies** where you need all data to be ready
286
+
287
+ ## Complete example
288
+
289
+ <sonic-code language="typescript">
290
+ <template>
291
+ import { html, LitElement } from "lit";
292
+ import { customElement } from "lit/decorators.js";
293
+ import { onAssign } from "@supersoniks/concorde/decorators";
294
+ import { PublisherManager } from "@supersoniks/concorde/core/utils/PublisherProxy";
295
+
296
+ @customElement("order-summary")
297
+ export class OrderSummary extends LitElement {
298
+ order: any = null;
299
+ customer: any = null;
300
+ shipping: any = null;
301
+
302
+ @onAssign("orderData", "customerData", "shippingData")
303
+ handleOrderReady(order: any, customer: any, shipping: any) {
304
+ this.order = order;
305
+ this.customer = customer;
306
+ this.shipping = shipping;
307
+ this.requestUpdate();
308
+ }
309
+
310
+ render() {
311
+ if (!this.order || !this.customer || !this.shipping) {
312
+ return html`<div>Loading order details...</div>`;
313
+ }
314
+
315
+ return html`
316
+ <div class="order-summary">
317
+ <h2>Order #${this.order.id}</h2>
318
+ <p>Customer: ${this.customer.name}</p>
319
+ <p>Shipping to: ${this.shipping.address}</p>
320
+ <p>Total: ${this.order.total}€</p>
321
+ </div>
322
+ `;
323
+ }
324
+ }
325
+ // Somewhere in your code, update the publishers:
326
+ const orderPub = PublisherManager.get("orderData");
327
+ const customerPub = PublisherManager.get("customerData");
328
+ const shippingPub = PublisherManager.get("shippingData");
329
+ // The method will be called only when all three are set:
330
+ orderPub.set({ id: "123", total: 99.99 });
331
+ customerPub.set({ name: "John Doe", email: "john@example.com" });
332
+ shippingPub.set({ address: "123 Main St" });
333
+ // handleOrderReady will be called with all three values
334
+ </template>
335
+ </sonic-code>
336
+
337
+ ## Migrating to @handle
338
+
339
+ `@handle` is the typed successor of `@onAssign`. The key behavioral difference: `@onAssign` waits for **all** values to be defined before calling the method, whereas `@handle` calls it on **every** assignment by default. Use the `waitForAllDefined` option to keep the old semantics.
340
+
341
+ ### Why migrate
342
+
343
+ - **Typed paths**: keys are `DataProviderKey<T>`, so the method arguments are strongly typed (no more `any`).
344
+ - **Explicit intent**: `waitForAllDefined` and `skip` replace implicit behavior.
345
+ - **Single API**: `@handle` covers the mono- and multi-path cases (up to 3 keys).
346
+
347
+ ### Equivalent semantics (`waitForAllDefined`)
348
+
349
+ <sonic-code language="typescript">
350
+ <template>
351
+ // Before
352
+ @onAssign("demoUser", "demoUserSettings")
353
+ handleDataReady(user: any, settings: any) { /* ... */ }
354
+
355
+ // After — same "wait for everything" behavior, but typed
356
+ const user = new DataProviderKey&lt;User&gt;("demoUser");
357
+ const settings = new DataProviderKey&lt;Settings&gt;("demoUserSettings");
358
+
359
+ @handle(user, settings, { waitForAllDefined: true })
360
+ handleDataReady(user: User, settings: Settings) { /* ... */ }
361
+ </template>
362
+ </sonic-code>
363
+
364
+ ### Single path
365
+
366
+ <sonic-code language="typescript">
367
+ <template>
368
+ // Before
369
+ @onAssign("settings.modules.logs_route.enabled")
370
+ onLogRoute(value: boolean) { /* ... */ }
371
+
372
+ // After
373
+ const settings = new DataProviderKey&lt;AppSettings&gt;("settings");
374
+
375
+ @handle(settings.modules.logs_route.enabled)
376
+ onLogRoute(value: boolean) { /* ... */ }
377
+ </template>
378
+ </sonic-code>
379
+
380
+ ### 4+ paths
381
+
382
+ `@handle` is capped at 3 keys. For the rare case of 4 or more publishers, keep `@onAssign` for now, or split the logic into several `@handle` methods that each store their value and call a shared method (guarding against partial values).
383
+
384
+ ## Notes
385
+
386
+ - This decorator works with any component that has `connectedCallback` and `disconnectedCallback` methods (such as `LitElement` or components extending `Subscriber`)
387
+ - The method is called synchronously when all publishers are ready
388
+ - If you need to update the UI, remember to call `this.requestUpdate()` inside the method
389
+ - For more information about publishers, see the documentation on [Sharing data](#docs/_getting-started/pubsub.md/pubsub)
390
+
@@ -0,0 +1,45 @@
1
+ # @patch
2
+
3
+ Sends data through [`API.patchDetailed`](../../core/utils/api.ts). Same model as [@post](#docs/_decorators/post.md/post): decorated property is **`ApiResult<T> | null`** (`request`, `response`, `result`).
4
+
5
+ Pass an [`Endpoint<T>`](#docs/_misc/endpoint.md/endpoint) and a `DataProviderKey` for the **request body**. Import `patch` and `ApiResult` from `@supersoniks/concorde/decorators`.
6
+
7
+ ## Configuration
8
+
9
+ Same as [@post](#docs/_decorators/post.md/post) / [@get](#docs/_decorators/get.md/get): scoped `HTML.getApiConfiguration(host)` or `DataProviderKey<APIConfiguration>` as third argument.
10
+
11
+ ## Options (`PatchOptions`)
12
+
13
+ Same shape as `PostOptions` on [@post](#docs/_decorators/post.md/post) (`ApiSendOptions`): `refetchEveryMs`, `skipIfBodyMissing`, `autoPostOnBodyMutation`, `triggerKey`, `skipEmptyPlaceholder`. See [Dynamic path placeholders](#docs/_misc/dynamic-path.md/dynamic-path) for `${sessionId}` and empty-string behaviour.
14
+
15
+ ## Import
16
+
17
+ <sonic-code language="typescript">
18
+ <template>
19
+ import { patch, type ApiResult } from "@supersoniks/concorde/decorators";
20
+ import { Endpoint } from "@supersoniks/concorde/utils/endpoint";
21
+ import { DataProviderKey } from "@supersoniks/concorde/dataProviderKey";
22
+ </template>
23
+ </sonic-code>
24
+
25
+ ## Example
26
+
27
+ <sonic-code language="typescript">
28
+ <template>
29
+ const patchBodyKey = new DataProviderKey&lt;Partial&lt;Resource&gt;&gt;("resourcePatch");
30
+
31
+ @patch(
32
+ new Endpoint&lt;Resource, { resourceId: string }&gt;("resources/${resourceId}"),
33
+ patchBodyKey,
34
+ { skipEmptyPlaceholder: true },
35
+ )
36
+ @state()
37
+ payload?: ApiResult&lt;Resource&gt; | null;
38
+ </template>
39
+ </sonic-code>
40
+
41
+ ## See also
42
+
43
+ - [@post](#docs/_decorators/post.md/post) — POST (live demos)
44
+ - [@put](#docs/_decorators/put.md/put) — full replacement (PUT)
45
+ - [Dynamic path placeholders](#docs/_misc/dynamic-path.md/dynamic-path)
@@ -0,0 +1,93 @@
1
+ # @post
2
+
3
+ Sends data through [`API.postDetailed`](../../core/utils/api.ts). The decorated property is **`ApiResult<T> | null`**: `request`, `response`, and typed `result`.
4
+
5
+ Pass an [`Endpoint<T>`](#docs/_misc/endpoint.md/endpoint) as the first argument and a `DataProviderKey` for the **request body** as the second. Import `post` and `ApiResult` from `@supersoniks/concorde/decorators`, and `Endpoint` from `@supersoniks/concorde/utils/endpoint`.
6
+
7
+ ## Configuration
8
+
9
+ Same as [@get](#docs/_decorators/get.md/get): scoped `HTML.getApiConfiguration(host)` by default, or `DataProviderKey<APIConfiguration>` as third argument. See [API configuration](#docs/_misc/api-configuration.md/api-configuration) for mock demos.
10
+
11
+ ## Optional `PostOptions` (third or fourth argument)
12
+
13
+ | Option | Description |
14
+ |--------|-------------|
15
+ | `refetchEveryMs` | Re-post on an interval (ms). |
16
+ | `skipIfBodyMissing` | Skip when body publisher is `null`/`undefined` (default: `true`). |
17
+ | `autoPostOnBodyMutation` | Re-post when the body publisher mutates (default: `true`). `false` = manual via `triggerKey.invalidate()`. |
18
+ | `skipEmptyPlaceholder` | If `true`, a placeholder resolved to `''` blocks the request (empty string only — not `0` or `false`). See [Dynamic paths](#docs/_misc/dynamic-path.md/dynamic-path). |
19
+ | `triggerKey` | `DataProviderKey` — `invalidate()` re-runs the POST with the current body. |
20
+
21
+ ## When the POST runs again
22
+
23
+ - Body publisher `onInternalMutation` when `autoPostOnBodyMutation` is `true` (default). Plusieurs mutations synchrones dans la même frame sont regroupées en **un seul POST** via `requestAnimationFrame`.
24
+ - Endpoint path dependency changes (`${sessionId}` on the host).
25
+ - Configuration publisher mutation.
26
+ - `triggerKey` publisher `invalidate()`.
27
+ - `refetchEveryMs` timer (if set).
28
+
29
+ ## Import
30
+
31
+ <sonic-code language="typescript">
32
+ <template>
33
+ import { post, publish, type ApiResult } from "@supersoniks/concorde/decorators";
34
+ import { Endpoint } from "@supersoniks/concorde/utils/endpoint";
35
+ import { DataProviderKey } from "@supersoniks/concorde/dataProviderKey";
36
+ </template>
37
+ </sonic-code>
38
+
39
+ ## Minimal example
40
+
41
+ Mock service: `POST /docs-mock-api/api/register` (same route as [`sonic-submit`](#core/components/functional/submit/submit.md/submit) demos). Publisher setup lives in `decorators-demo-post.ts`.
42
+
43
+ <sonic-code language="typescript">
44
+ <template>
45
+ const syncRequest = new DataProviderKey&lt;SyncRequest&gt;("syncRequest");
46
+ const syncTrigger = new DataProviderKey&lt;number&gt;("syncTrigger");
47
+
48
+ @post(
49
+ new Endpoint&lt;SyncResponse, { sessionId: string }&gt;("sessions/${sessionId}/sync"),
50
+ syncRequest,
51
+ { triggerKey: syncTrigger },
52
+ )
53
+ @state()
54
+ payload?: ApiResult&lt;SyncResponse&gt; | null;
55
+ </template>
56
+ </sonic-code>
57
+
58
+ ## Live demos
59
+
60
+ <sonic-code>
61
+ <template>
62
+ <docs-demo-sources for="demo-api-post"></docs-demo-sources>
63
+ <demo-api-post></demo-api-post>
64
+ </template>
65
+ </sonic-code>
66
+
67
+ Dynamic endpoint path — changing `sessionId` on the host re-runs the POST (`POST /docs-mock-api/api/sessions/{id}/sync`):
68
+
69
+ <sonic-code>
70
+ <template>
71
+ <docs-demo-sources for="demo-api-post-dynamic"></docs-demo-sources>
72
+ <demo-api-post-dynamic></demo-api-post-dynamic>
73
+ </template>
74
+ </sonic-code>
75
+
76
+ `@post` + `@publish` on the same property (see [@publish](#docs/_decorators/publish.md/publish)):
77
+
78
+ <sonic-code>
79
+ <template>
80
+ <docs-demo-sources for="demo-api-post-publish"></docs-demo-sources>
81
+ <demo-api-post-publish></demo-api-post-publish>
82
+ </template>
83
+ </sonic-code>
84
+
85
+ Stale responses are ignored if the path or generation changed before the request finished.
86
+
87
+ **Note:** plusieurs composants `@post` sur la même page qui partagent le même `bodyKey` enverront chacun une requête à chaque mutation du body — utiliser une clé par composant (voir les deux démos live ci-dessus).
88
+
89
+ Path placeholders (`${sessionId}`, …): [Dynamic path placeholders](#docs/_misc/dynamic-path.md/dynamic-path).
90
+
91
+ ## See also
92
+
93
+ - [@put](#docs/_decorators/put.md/put) · [@patch](#docs/_decorators/patch.md/patch) — same decorator model, `PUT` / `PATCH` via `putDetailed` / `patchDetailed`
@@ -0,0 +1,55 @@
1
+ # @publish
2
+
3
+ Write-only binding: assigning to the property publishes to the `DataProviderKey` path. No read subscription (inverse of [@subscribe](#docs/_decorators/subscribe.md/subscribe)).
4
+
5
+ Similar to the “reflect” half of [@bind](#docs/_decorators/bind.md/bind) without listening to the publisher.
6
+
7
+ ## Import
8
+
9
+ <sonic-code language="typescript">
10
+ <template>
11
+ import { publish } from "@supersoniks/concorde/decorators";
12
+ import { sub } from "@supersoniks/concorde/directives";
13
+ import { DataProviderKey } from "@supersoniks/concorde/dataProviderKey";
14
+ </template>
15
+ </sonic-code>
16
+
17
+ ## Example
18
+
19
+ <sonic-code language="typescript">
20
+ <template>
21
+ type PublishDemoData = { email: string; message: string };
22
+ const publishDemoKey = new DataProviderKey<PublishDemoData>("publishDemo");
23
+ //
24
+ @customElement("demo-publish")
25
+ export class DemoPublish extends LitElement {
26
+ @publish(publishDemoKey.email)
27
+ @state()
28
+ email = "";
29
+ //
30
+ @publish(publishDemoKey.message)
31
+ @state()
32
+ message = "";
33
+ //
34
+ render() {
35
+ return html`
36
+ <sonic-input
37
+ .value=${this.email}
38
+ @input=${(e) => (this.email = (e.target as HTMLInputElement).value)}
39
+ label="Email"
40
+ ></sonic-input>
41
+ <p>${sub(publishDemoKey.email)}</p>
42
+ `;
43
+ }
44
+ }
45
+ </template>
46
+ </sonic-code>
47
+
48
+ <sonic-code>
49
+ <template>
50
+ <docs-demo-sources for="demo-publish"></docs-demo-sources>
51
+ <demo-publish></demo-publish>
52
+ </template>
53
+ </sonic-code>
54
+
55
+ Dynamic paths use the same placeholder rules as `@bind` / `@subscribe`. Resolution and `skipEmptyPlaceholder`: [Dynamic path placeholders](#docs/_misc/dynamic-path.md/dynamic-path).
@@ -0,0 +1,43 @@
1
+ # @put
2
+
3
+ Sends data through [`API.putDetailed`](../../core/utils/api.ts). Same model as [@post](#docs/_decorators/post.md/post): decorated property is **`ApiResult<T> | null`** (`request`, `response`, `result`).
4
+
5
+ Pass an [`Endpoint<T>`](#docs/_misc/endpoint.md/endpoint) and a `DataProviderKey` for the **request body**. Import `put` and `ApiResult` from `@supersoniks/concorde/decorators`.
6
+
7
+ ## Configuration
8
+
9
+ Same as [@post](#docs/_decorators/post.md/post) / [@get](#docs/_decorators/get.md/get): scoped `HTML.getApiConfiguration(host)` or `DataProviderKey<APIConfiguration>` as third argument.
10
+
11
+ ## Options (`PutOptions`)
12
+
13
+ Same shape as `PostOptions` on [@post](#docs/_decorators/post.md/post) (`ApiSendOptions`): `refetchEveryMs`, `skipIfBodyMissing`, `autoPostOnBodyMutation`, `triggerKey`, `skipEmptyPlaceholder`. See [Dynamic path placeholders](#docs/_misc/dynamic-path.md/dynamic-path) for `${sessionId}` and empty-string behaviour.
14
+
15
+ ## Import
16
+
17
+ <sonic-code language="typescript">
18
+ <template>
19
+ import { put, type ApiResult } from "@supersoniks/concorde/decorators";
20
+ import { Endpoint } from "@supersoniks/concorde/utils/endpoint";
21
+ import { DataProviderKey } from "@supersoniks/concorde/dataProviderKey";
22
+ </template>
23
+ </sonic-code>
24
+
25
+ ## Example
26
+
27
+ <sonic-code language="typescript">
28
+ <template>
29
+ const bodyKey = new DataProviderKey&lt;UpdatePayload&gt;("resourceBody");
30
+
31
+ @put(new Endpoint&lt;Resource, { resourceId: string }&gt;("resources/${resourceId}"), bodyKey)
32
+ @state()
33
+ payload?: ApiResult&lt;Resource&gt; | null;
34
+ </template>
35
+ </sonic-code>
36
+
37
+ Changing `resourceId` on the host re-runs the PUT when the path becomes ready — see [Dynamic path placeholders](#docs/_misc/dynamic-path.md/dynamic-path).
38
+
39
+ ## See also
40
+
41
+ - [@post](#docs/_decorators/post.md/post) — POST (live demos, polling, `@publish`)
42
+ - [@patch](#docs/_decorators/patch.md/patch) — partial update (PATCH)
43
+ - [Endpoint](#docs/_misc/endpoint.md/endpoint) · [API configuration](#docs/_misc/api-configuration.md/api-configuration)