@supersoniks/concorde 4.7.4 → 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 (679) 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 +30 -16
  9. package/ai/cursor/rules/concorde.mdc +1 -1
  10. package/ai/skills/concorde-scope/SKILL.md +2 -2
  11. package/build-infos.json +1 -1
  12. package/concorde-core.bundle.js +214 -214
  13. package/concorde-core.es.js +4517 -4133
  14. package/dist/concorde-core.bundle.js +214 -214
  15. package/dist/concorde-core.es.js +4517 -4133
  16. package/dist/docs-mock-api-sw.js +19 -0
  17. package/dist/docs-mock-api-sw.js.map +2 -2
  18. package/dist/js/components.js +12 -0
  19. package/dist/js/components.js.map +1 -0
  20. package/dist/js/concorde-loaded.js +5 -0
  21. package/dist/js/concorde-loaded.js.map +1 -0
  22. package/dist/js/core/_types/endpoint.js +5 -0
  23. package/dist/js/core/_types/endpoint.js.map +1 -0
  24. package/dist/js/core/_types/key.js +2 -0
  25. package/dist/js/core/_types/key.js.map +1 -0
  26. package/dist/js/core/_types/types.js +3 -0
  27. package/dist/js/core/_types/types.js.map +1 -0
  28. package/dist/js/core/components/functional/date/date.js +272 -0
  29. package/dist/js/core/components/functional/date/date.js.map +1 -0
  30. package/dist/js/core/components/functional/example/example.js +44 -0
  31. package/dist/js/core/components/functional/example/example.js.map +1 -0
  32. package/dist/js/core/components/functional/fetch/fetch.js +79 -0
  33. package/dist/js/core/components/functional/fetch/fetch.js.map +1 -0
  34. package/dist/js/core/components/functional/functional.js +17 -0
  35. package/dist/js/core/components/functional/functional.js.map +1 -0
  36. package/dist/js/core/components/functional/if/if.js +39 -0
  37. package/dist/js/core/components/functional/if/if.js.map +1 -0
  38. package/dist/js/core/components/functional/list/list.js +341 -0
  39. package/dist/js/core/components/functional/list/list.js.map +1 -0
  40. package/dist/js/core/components/functional/mix/mix.js +103 -0
  41. package/dist/js/core/components/functional/mix/mix.js.map +1 -0
  42. package/dist/js/core/components/functional/queue/queue.js +386 -0
  43. package/dist/js/core/components/functional/queue/queue.js.map +1 -0
  44. package/dist/js/core/components/functional/router/redirect.js +54 -0
  45. package/dist/js/core/components/functional/router/redirect.js.map +1 -0
  46. package/dist/js/core/components/functional/router/router.js +179 -0
  47. package/dist/js/core/components/functional/router/router.js.map +1 -0
  48. package/dist/js/core/components/functional/sdui/SDUIDescriptorTransformer.js +216 -0
  49. package/dist/js/core/components/functional/sdui/SDUIDescriptorTransformer.js.map +1 -0
  50. package/dist/js/core/components/functional/sdui/default-library.json +108 -0
  51. package/dist/js/core/components/functional/sdui/sdui-utils.js +64 -0
  52. package/dist/js/core/components/functional/sdui/sdui-utils.js.map +1 -0
  53. package/dist/js/core/components/functional/sdui/sdui.js +266 -0
  54. package/dist/js/core/components/functional/sdui/sdui.js.map +1 -0
  55. package/dist/js/core/components/functional/sdui/types.js +2 -0
  56. package/dist/js/core/components/functional/sdui/types.js.map +1 -0
  57. package/dist/js/core/components/functional/sonic-scope/sonic-scope.js +22 -0
  58. package/dist/js/core/components/functional/sonic-scope/sonic-scope.js.map +1 -0
  59. package/dist/js/core/components/functional/states/states.js +172 -0
  60. package/dist/js/core/components/functional/states/states.js.map +1 -0
  61. package/dist/js/core/components/functional/submit/submit.js +284 -0
  62. package/dist/js/core/components/functional/submit/submit.js.map +1 -0
  63. package/dist/js/core/components/functional/subscriber/subscriber.js +39 -0
  64. package/dist/js/core/components/functional/subscriber/subscriber.js.map +1 -0
  65. package/dist/js/core/components/functional/translation/translation.js +28 -0
  66. package/dist/js/core/components/functional/translation/translation.js.map +1 -0
  67. package/dist/js/core/components/functional/value/value.js +28 -0
  68. package/dist/js/core/components/functional/value/value.js.map +1 -0
  69. package/dist/js/core/components/ui/_css/scroll.js +25 -0
  70. package/dist/js/core/components/ui/_css/scroll.js.map +1 -0
  71. package/dist/js/core/components/ui/_css/shadow.js +22 -0
  72. package/dist/js/core/components/ui/_css/shadow.js.map +1 -0
  73. package/dist/js/core/components/ui/_css/size.js +36 -0
  74. package/dist/js/core/components/ui/_css/size.js.map +1 -0
  75. package/dist/js/core/components/ui/_css/type.js +92 -0
  76. package/dist/js/core/components/ui/_css/type.js.map +1 -0
  77. package/dist/js/core/components/ui/alert/alert.js +213 -0
  78. package/dist/js/core/components/ui/alert/alert.js.map +1 -0
  79. package/dist/js/core/components/ui/alert-messages/alert-messages.js +68 -0
  80. package/dist/js/core/components/ui/alert-messages/alert-messages.js.map +1 -0
  81. package/dist/js/core/components/ui/badge/badge.js +199 -0
  82. package/dist/js/core/components/ui/badge/badge.js.map +1 -0
  83. package/dist/js/core/components/ui/button/button.js +697 -0
  84. package/dist/js/core/components/ui/button/button.js.map +1 -0
  85. package/dist/js/core/components/ui/captcha/altchaStyles.js +226 -0
  86. package/dist/js/core/components/ui/captcha/altchaStyles.js.map +1 -0
  87. package/dist/js/core/components/ui/captcha/captcha.js +167 -0
  88. package/dist/js/core/components/ui/captcha/captcha.js.map +1 -0
  89. package/dist/js/core/components/ui/card/card-footer.js +26 -0
  90. package/dist/js/core/components/ui/card/card-footer.js.map +1 -0
  91. package/dist/js/core/components/ui/card/card-header-descripton.js +30 -0
  92. package/dist/js/core/components/ui/card/card-header-descripton.js.map +1 -0
  93. package/dist/js/core/components/ui/card/card-header.js +79 -0
  94. package/dist/js/core/components/ui/card/card-header.js.map +1 -0
  95. package/dist/js/core/components/ui/card/card-main.js +26 -0
  96. package/dist/js/core/components/ui/card/card-main.js.map +1 -0
  97. package/dist/js/core/components/ui/card/card.js +67 -0
  98. package/dist/js/core/components/ui/card/card.js.map +1 -0
  99. package/dist/js/core/components/ui/divider/divider.js +200 -0
  100. package/dist/js/core/components/ui/divider/divider.js.map +1 -0
  101. package/dist/js/core/components/ui/form/checkbox/checkbox.js +257 -0
  102. package/dist/js/core/components/ui/form/checkbox/checkbox.js.map +1 -0
  103. package/dist/js/core/components/ui/form/css/form-control.js +393 -0
  104. package/dist/js/core/components/ui/form/css/form-control.js.map +1 -0
  105. package/dist/js/core/components/ui/form/fieldset/fieldset.js +124 -0
  106. package/dist/js/core/components/ui/form/fieldset/fieldset.js.map +1 -0
  107. package/dist/js/core/components/ui/form/fieldset/legend-description.js +38 -0
  108. package/dist/js/core/components/ui/form/fieldset/legend-description.js.map +1 -0
  109. package/dist/js/core/components/ui/form/fieldset/legend.js +130 -0
  110. package/dist/js/core/components/ui/form/fieldset/legend.js.map +1 -0
  111. package/dist/js/core/components/ui/form/form-actions/form-actions.js +47 -0
  112. package/dist/js/core/components/ui/form/form-actions/form-actions.js.map +1 -0
  113. package/dist/js/core/components/ui/form/form-layout/form-layout.js +84 -0
  114. package/dist/js/core/components/ui/form/form-layout/form-layout.js.map +1 -0
  115. package/dist/js/core/components/ui/form/input/input.js +316 -0
  116. package/dist/js/core/components/ui/form/input/input.js.map +1 -0
  117. package/dist/js/core/components/ui/form/input/password-helper.js +134 -0
  118. package/dist/js/core/components/ui/form/input/password-helper.js.map +1 -0
  119. package/dist/js/core/components/ui/form/input/same-value-helper.js +85 -0
  120. package/dist/js/core/components/ui/form/input/same-value-helper.js.map +1 -0
  121. package/dist/js/core/components/ui/form/input-autocomplete/input-autocomplete.js +405 -0
  122. package/dist/js/core/components/ui/form/input-autocomplete/input-autocomplete.js.map +1 -0
  123. package/dist/js/core/components/ui/form/radio/radio.js +63 -0
  124. package/dist/js/core/components/ui/form/radio/radio.js.map +1 -0
  125. package/dist/js/core/components/ui/form/select/select.js +323 -0
  126. package/dist/js/core/components/ui/form/select/select.js.map +1 -0
  127. package/dist/js/core/components/ui/form/switch/switch.js +90 -0
  128. package/dist/js/core/components/ui/form/switch/switch.js.map +1 -0
  129. package/dist/js/core/components/ui/form/textarea/textarea.js +162 -0
  130. package/dist/js/core/components/ui/form/textarea/textarea.js.map +1 -0
  131. package/dist/js/core/components/ui/group/group.js +128 -0
  132. package/dist/js/core/components/ui/group/group.js.map +1 -0
  133. package/dist/js/core/components/ui/icon/icon.js +129 -0
  134. package/dist/js/core/components/ui/icon/icon.js.map +1 -0
  135. package/dist/js/core/components/ui/icon/icons.js +163 -0
  136. package/dist/js/core/components/ui/icon/icons.js.map +1 -0
  137. package/dist/js/core/components/ui/icon/icons.json +1 -0
  138. package/dist/js/core/components/ui/image/image.js +160 -0
  139. package/dist/js/core/components/ui/image/image.js.map +1 -0
  140. package/dist/js/core/components/ui/link/link.js +125 -0
  141. package/dist/js/core/components/ui/link/link.js.map +1 -0
  142. package/dist/js/core/components/ui/loader/loader.js +106 -0
  143. package/dist/js/core/components/ui/loader/loader.js.map +1 -0
  144. package/dist/js/core/components/ui/loader/styles/fixed.js +56 -0
  145. package/dist/js/core/components/ui/loader/styles/fixed.js.map +1 -0
  146. package/dist/js/core/components/ui/loader/styles/inline.js +70 -0
  147. package/dist/js/core/components/ui/loader/styles/inline.js.map +1 -0
  148. package/dist/js/core/components/ui/menu/menu-item.js +35 -0
  149. package/dist/js/core/components/ui/menu/menu-item.js.map +1 -0
  150. package/dist/js/core/components/ui/menu/menu.js +436 -0
  151. package/dist/js/core/components/ui/menu/menu.js.map +1 -0
  152. package/dist/js/core/components/ui/modal/modal-actions.js +44 -0
  153. package/dist/js/core/components/ui/modal/modal-actions.js.map +1 -0
  154. package/dist/js/core/components/ui/modal/modal-close.js +56 -0
  155. package/dist/js/core/components/ui/modal/modal-close.js.map +1 -0
  156. package/dist/js/core/components/ui/modal/modal-content.js +27 -0
  157. package/dist/js/core/components/ui/modal/modal-content.js.map +1 -0
  158. package/dist/js/core/components/ui/modal/modal-subtitle.js +34 -0
  159. package/dist/js/core/components/ui/modal/modal-subtitle.js.map +1 -0
  160. package/dist/js/core/components/ui/modal/modal-title.js +35 -0
  161. package/dist/js/core/components/ui/modal/modal-title.js.map +1 -0
  162. package/dist/js/core/components/ui/modal/modal-utils.js +32 -0
  163. package/dist/js/core/components/ui/modal/modal-utils.js.map +1 -0
  164. package/dist/js/core/components/ui/modal/modal.js +568 -0
  165. package/dist/js/core/components/ui/modal/modal.js.map +1 -0
  166. package/dist/js/core/components/ui/pop/pop.js +337 -0
  167. package/dist/js/core/components/ui/pop/pop.js.map +1 -0
  168. package/dist/js/core/components/ui/progress/progress.js +164 -0
  169. package/dist/js/core/components/ui/progress/progress.js.map +1 -0
  170. package/dist/js/core/components/ui/table/table-caption.js +29 -0
  171. package/dist/js/core/components/ui/table/table-caption.js.map +1 -0
  172. package/dist/js/core/components/ui/table/table-tbody.js +41 -0
  173. package/dist/js/core/components/ui/table/table-tbody.js.map +1 -0
  174. package/dist/js/core/components/ui/table/table-td.js +69 -0
  175. package/dist/js/core/components/ui/table/table-td.js.map +1 -0
  176. package/dist/js/core/components/ui/table/table-tfoot.js +28 -0
  177. package/dist/js/core/components/ui/table/table-tfoot.js.map +1 -0
  178. package/dist/js/core/components/ui/table/table-th.js +80 -0
  179. package/dist/js/core/components/ui/table/table-th.js.map +1 -0
  180. package/dist/js/core/components/ui/table/table-thead.js +26 -0
  181. package/dist/js/core/components/ui/table/table-thead.js.map +1 -0
  182. package/dist/js/core/components/ui/table/table-tr.js +67 -0
  183. package/dist/js/core/components/ui/table/table-tr.js.map +1 -0
  184. package/dist/js/core/components/ui/table/table.js +106 -0
  185. package/dist/js/core/components/ui/table/table.js.map +1 -0
  186. package/dist/js/core/components/ui/theme/theme-collection/core-variables.js +74 -0
  187. package/dist/js/core/components/ui/theme/theme-collection/core-variables.js.map +1 -0
  188. package/dist/js/core/components/ui/theme/theme-collection/dark.js +39 -0
  189. package/dist/js/core/components/ui/theme/theme-collection/dark.js.map +1 -0
  190. package/dist/js/core/components/ui/theme/theme-collection/light.js +32 -0
  191. package/dist/js/core/components/ui/theme/theme-collection/light.js.map +1 -0
  192. package/dist/js/core/components/ui/theme/theme.js +150 -0
  193. package/dist/js/core/components/ui/theme/theme.js.map +1 -0
  194. package/dist/js/core/components/ui/toast/message-subscriber.js +41 -0
  195. package/dist/js/core/components/ui/toast/message-subscriber.js.map +1 -0
  196. package/dist/js/core/components/ui/toast/toast-item.js +379 -0
  197. package/dist/js/core/components/ui/toast/toast-item.js.map +1 -0
  198. package/dist/js/core/components/ui/toast/toast.js +269 -0
  199. package/dist/js/core/components/ui/toast/toast.js.map +1 -0
  200. package/dist/js/core/components/ui/toast/types.js +2 -0
  201. package/dist/js/core/components/ui/toast/types.js.map +1 -0
  202. package/dist/js/core/components/ui/tooltip/tooltip.js +219 -0
  203. package/dist/js/core/components/ui/tooltip/tooltip.js.map +1 -0
  204. package/dist/js/core/components/ui/ui.js +41 -0
  205. package/dist/js/core/components/ui/ui.js.map +1 -0
  206. package/dist/js/core/core.js +14 -0
  207. package/dist/js/core/core.js.map +1 -0
  208. package/dist/js/core/decorators/Subscriber.js +9 -0
  209. package/dist/js/core/decorators/Subscriber.js.map +1 -0
  210. package/dist/js/core/decorators/api.js +559 -0
  211. package/dist/js/core/decorators/api.js.map +1 -0
  212. package/dist/js/core/decorators/lifecycle.js +67 -0
  213. package/dist/js/core/decorators/lifecycle.js.map +1 -0
  214. package/dist/js/core/decorators/subscriber/ancestorAttribute.js +27 -0
  215. package/dist/js/core/decorators/subscriber/ancestorAttribute.js.map +1 -0
  216. package/dist/js/core/decorators/subscriber/autoFill.js +26 -0
  217. package/dist/js/core/decorators/subscriber/autoFill.js.map +1 -0
  218. package/dist/js/core/decorators/subscriber/autoSubscribe.js +46 -0
  219. package/dist/js/core/decorators/subscriber/autoSubscribe.js.map +1 -0
  220. package/dist/js/core/decorators/subscriber/bind.js +150 -0
  221. package/dist/js/core/decorators/subscriber/bind.js.map +1 -0
  222. package/dist/js/core/decorators/subscriber/common.js +44 -0
  223. package/dist/js/core/decorators/subscriber/common.js.map +1 -0
  224. package/dist/js/core/decorators/subscriber/dynamicPath.js +75 -0
  225. package/dist/js/core/decorators/subscriber/dynamicPath.js.map +1 -0
  226. package/dist/js/core/decorators/subscriber/dynamicPropertyWatch.js +138 -0
  227. package/dist/js/core/decorators/subscriber/dynamicPropertyWatch.js.map +1 -0
  228. package/dist/js/core/decorators/subscriber/handle.js +22 -0
  229. package/dist/js/core/decorators/subscriber/handle.js.map +1 -0
  230. package/dist/js/core/decorators/subscriber/onAssign.js +199 -0
  231. package/dist/js/core/decorators/subscriber/onAssign.js.map +1 -0
  232. package/dist/js/core/decorators/subscriber/publish.js +108 -0
  233. package/dist/js/core/decorators/subscriber/publish.js.map +1 -0
  234. package/dist/js/core/decorators/subscriber/publisherPath.js +16 -0
  235. package/dist/js/core/decorators/subscriber/publisherPath.js.map +1 -0
  236. package/dist/js/core/decorators/subscriber/subscribe.js +20 -0
  237. package/dist/js/core/decorators/subscriber/subscribe.js.map +1 -0
  238. package/dist/js/core/directives/DataProvider.js +127 -0
  239. package/dist/js/core/directives/DataProvider.js.map +1 -0
  240. package/dist/js/core/directives/Wording.js +221 -0
  241. package/dist/js/core/directives/Wording.js.map +1 -0
  242. package/dist/js/core/mixins/Fetcher.js +325 -0
  243. package/dist/js/core/mixins/Fetcher.js.map +1 -0
  244. package/dist/js/core/mixins/FormCheckable.js +313 -0
  245. package/dist/js/core/mixins/FormCheckable.js.map +1 -0
  246. package/dist/js/core/mixins/FormElement.js +304 -0
  247. package/dist/js/core/mixins/FormElement.js.map +1 -0
  248. package/dist/js/core/mixins/FormInput.js +82 -0
  249. package/dist/js/core/mixins/FormInput.js.map +1 -0
  250. package/dist/js/core/mixins/Subscriber.js +354 -0
  251. package/dist/js/core/mixins/Subscriber.js.map +1 -0
  252. package/dist/js/core/mixins/TemplatesContainer.js +70 -0
  253. package/dist/js/core/mixins/TemplatesContainer.js.map +1 -0
  254. package/dist/js/core/mixins/mixins.js +7 -0
  255. package/dist/js/core/mixins/mixins.js.map +1 -0
  256. package/dist/js/core/utils/AncestorAttributeObserver.js +140 -0
  257. package/dist/js/core/utils/AncestorAttributeObserver.js.map +1 -0
  258. package/dist/js/core/utils/Arrays.js +141 -0
  259. package/dist/js/core/utils/Arrays.js.map +1 -0
  260. package/dist/js/core/utils/DataBindObserver.js +265 -0
  261. package/dist/js/core/utils/DataBindObserver.js.map +1 -0
  262. package/dist/js/core/utils/Electron.js +14 -0
  263. package/dist/js/core/utils/Electron.js.map +1 -0
  264. package/dist/js/core/utils/Format.js +43 -0
  265. package/dist/js/core/utils/Format.js.map +1 -0
  266. package/dist/js/core/utils/HTML.js +248 -0
  267. package/dist/js/core/utils/HTML.js.map +1 -0
  268. package/dist/js/core/utils/LocationHandler.js +143 -0
  269. package/dist/js/core/utils/LocationHandler.js.map +1 -0
  270. package/dist/js/core/utils/Objects.js +111 -0
  271. package/dist/js/core/utils/Objects.js.map +1 -0
  272. package/dist/js/core/utils/PublisherProxy.js +946 -0
  273. package/dist/js/core/utils/PublisherProxy.js.map +1 -0
  274. package/dist/js/core/utils/Utils.js +19 -0
  275. package/dist/js/core/utils/Utils.js.map +1 -0
  276. package/dist/js/core/utils/aesCrypto.js +98 -0
  277. package/dist/js/core/utils/aesCrypto.js.map +1 -0
  278. package/dist/js/core/utils/api.js +574 -0
  279. package/dist/js/core/utils/api.js.map +1 -0
  280. package/dist/js/core/utils/dataProviderKey.js +64 -0
  281. package/dist/js/core/utils/dataProviderKey.js.map +1 -0
  282. package/dist/js/core/utils/endpoint.js +74 -0
  283. package/dist/js/core/utils/endpoint.js.map +1 -0
  284. package/dist/js/core/utils/route.js +149 -0
  285. package/dist/js/core/utils/route.js.map +1 -0
  286. package/dist/js/core/utils/url-pattern.js +3 -0
  287. package/dist/js/core/utils/url-pattern.js.map +1 -0
  288. package/dist/js/dataprovider.js +2 -0
  289. package/dist/js/dataprovider.js.map +1 -0
  290. package/dist/js/decorators.js +39 -0
  291. package/dist/js/decorators.js.map +1 -0
  292. package/dist/js/directives.js +30 -0
  293. package/dist/js/directives.js.map +1 -0
  294. package/dist/js/index.js +8 -0
  295. package/dist/js/index.js.map +1 -0
  296. package/dist/js/mixins.js +23 -0
  297. package/dist/js/mixins.js.map +1 -0
  298. package/dist/js/test-utils/TestUtils.js +10 -0
  299. package/dist/js/test-utils/TestUtils.js.map +1 -0
  300. package/dist/js/utils.js +41 -0
  301. package/dist/js/utils.js.map +1 -0
  302. package/dist/types/components.d.ts +5 -0
  303. package/dist/types/components.d.ts.map +1 -0
  304. package/dist/types/concorde-loaded.d.ts +2 -0
  305. package/dist/types/concorde-loaded.d.ts.map +1 -0
  306. package/dist/types/core/_types/endpoint.d.ts +5 -0
  307. package/dist/types/core/_types/endpoint.d.ts.map +1 -0
  308. package/dist/types/core/_types/key.d.ts +2 -0
  309. package/dist/types/core/_types/key.d.ts.map +1 -0
  310. package/dist/types/core/_types/types.d.ts +28 -0
  311. package/dist/types/core/_types/types.d.ts.map +1 -0
  312. package/dist/types/core/components/functional/date/date.d.ts +52 -0
  313. package/dist/types/core/components/functional/date/date.d.ts.map +1 -0
  314. package/dist/types/core/components/functional/example/example.d.ts +15 -0
  315. package/dist/types/core/components/functional/example/example.d.ts.map +1 -0
  316. package/dist/types/core/components/functional/fetch/fetch.d.ts +102 -0
  317. package/dist/types/core/components/functional/fetch/fetch.d.ts.map +1 -0
  318. package/dist/types/core/components/functional/functional.d.ts +17 -0
  319. package/dist/types/core/components/functional/functional.d.ts.map +1 -0
  320. package/dist/types/core/components/functional/if/if.d.ts +13 -0
  321. package/dist/types/core/components/functional/if/if.d.ts.map +1 -0
  322. package/dist/types/core/components/functional/list/list.d.ts +149 -0
  323. package/dist/types/core/components/functional/list/list.d.ts.map +1 -0
  324. package/dist/types/core/components/functional/mix/mix.d.ts +23 -0
  325. package/dist/types/core/components/functional/mix/mix.d.ts.map +1 -0
  326. package/dist/types/core/components/functional/queue/queue.d.ts +79 -0
  327. package/dist/types/core/components/functional/queue/queue.d.ts.map +1 -0
  328. package/dist/types/core/components/functional/router/redirect.d.ts +19 -0
  329. package/dist/types/core/components/functional/router/redirect.d.ts.map +1 -0
  330. package/dist/types/core/components/functional/router/router.d.ts +46 -0
  331. package/dist/types/core/components/functional/router/router.d.ts.map +1 -0
  332. package/dist/types/core/components/functional/sdui/SDUIDescriptorTransformer.d.ts +59 -0
  333. package/dist/types/core/components/functional/sdui/SDUIDescriptorTransformer.d.ts.map +1 -0
  334. package/dist/types/core/components/functional/sdui/sdui-utils.d.ts +6 -0
  335. package/dist/types/core/components/functional/sdui/sdui-utils.d.ts.map +1 -0
  336. package/dist/types/core/components/functional/sdui/sdui.d.ts +145 -0
  337. package/dist/types/core/components/functional/sdui/sdui.d.ts.map +1 -0
  338. package/dist/types/core/components/functional/sdui/types.d.ts +38 -0
  339. package/dist/types/core/components/functional/sdui/types.d.ts.map +1 -0
  340. package/dist/types/core/components/functional/sonic-scope/sonic-scope.d.ts +6 -0
  341. package/dist/types/core/components/functional/sonic-scope/sonic-scope.d.ts.map +1 -0
  342. package/dist/types/core/components/functional/states/states.d.ts +42 -0
  343. package/dist/types/core/components/functional/states/states.d.ts.map +1 -0
  344. package/dist/types/core/components/functional/submit/submit.d.ts +37 -0
  345. package/dist/types/core/components/functional/submit/submit.d.ts.map +1 -0
  346. package/dist/types/core/components/functional/subscriber/subscriber.d.ts +13 -0
  347. package/dist/types/core/components/functional/subscriber/subscriber.d.ts.map +1 -0
  348. package/dist/types/core/components/functional/translation/translation.d.ts +7 -0
  349. package/dist/types/core/components/functional/translation/translation.d.ts.map +1 -0
  350. package/dist/types/core/components/functional/value/value.d.ts +8 -0
  351. package/dist/types/core/components/functional/value/value.d.ts.map +1 -0
  352. package/dist/types/core/components/ui/_css/scroll.d.ts +2 -0
  353. package/dist/types/core/components/ui/_css/scroll.d.ts.map +1 -0
  354. package/dist/types/core/components/ui/_css/shadow.d.ts +3 -0
  355. package/dist/types/core/components/ui/_css/shadow.d.ts.map +1 -0
  356. package/dist/types/core/components/ui/_css/size.d.ts +3 -0
  357. package/dist/types/core/components/ui/_css/size.d.ts.map +1 -0
  358. package/dist/types/core/components/ui/_css/type.d.ts +3 -0
  359. package/dist/types/core/components/ui/_css/type.d.ts.map +1 -0
  360. package/dist/types/core/components/ui/alert/alert.d.ts +37 -0
  361. package/dist/types/core/components/ui/alert/alert.d.ts.map +1 -0
  362. package/dist/types/core/components/ui/alert-messages/alert-messages.d.ts +15 -0
  363. package/dist/types/core/components/ui/alert-messages/alert-messages.d.ts.map +1 -0
  364. package/dist/types/core/components/ui/badge/badge.d.ts +27 -0
  365. package/dist/types/core/components/ui/badge/badge.d.ts.map +1 -0
  366. package/dist/types/core/components/ui/button/button.d.ts +180 -0
  367. package/dist/types/core/components/ui/button/button.d.ts.map +1 -0
  368. package/dist/types/core/components/ui/captcha/altchaStyles.d.ts +2 -0
  369. package/dist/types/core/components/ui/captcha/altchaStyles.d.ts.map +1 -0
  370. package/dist/types/core/components/ui/captcha/captcha.d.ts +30 -0
  371. package/dist/types/core/components/ui/captcha/captcha.d.ts.map +1 -0
  372. package/dist/types/core/components/ui/card/card-footer.d.ts +6 -0
  373. package/dist/types/core/components/ui/card/card-footer.d.ts.map +1 -0
  374. package/dist/types/core/components/ui/card/card-header-descripton.d.ts +6 -0
  375. package/dist/types/core/components/ui/card/card-header-descripton.d.ts.map +1 -0
  376. package/dist/types/core/components/ui/card/card-header.d.ts +9 -0
  377. package/dist/types/core/components/ui/card/card-header.d.ts.map +1 -0
  378. package/dist/types/core/components/ui/card/card-main.d.ts +6 -0
  379. package/dist/types/core/components/ui/card/card-main.d.ts.map +1 -0
  380. package/dist/types/core/components/ui/card/card.d.ts +13 -0
  381. package/dist/types/core/components/ui/card/card.d.ts.map +1 -0
  382. package/dist/types/core/components/ui/divider/divider.d.ts +16 -0
  383. package/dist/types/core/components/ui/divider/divider.d.ts.map +1 -0
  384. package/dist/types/core/components/ui/form/checkbox/checkbox.d.ts +176 -0
  385. package/dist/types/core/components/ui/form/checkbox/checkbox.d.ts.map +1 -0
  386. package/dist/types/core/components/ui/form/css/form-control.d.ts +5 -0
  387. package/dist/types/core/components/ui/form/css/form-control.d.ts.map +1 -0
  388. package/dist/types/core/components/ui/form/fieldset/fieldset.d.ts +24 -0
  389. package/dist/types/core/components/ui/form/fieldset/fieldset.d.ts.map +1 -0
  390. package/dist/types/core/components/ui/form/fieldset/legend-description.d.ts +6 -0
  391. package/dist/types/core/components/ui/form/fieldset/legend-description.d.ts.map +1 -0
  392. package/dist/types/core/components/ui/form/fieldset/legend.d.ts +17 -0
  393. package/dist/types/core/components/ui/form/fieldset/legend.d.ts.map +1 -0
  394. package/dist/types/core/components/ui/form/form-actions/form-actions.d.ts +8 -0
  395. package/dist/types/core/components/ui/form/form-actions/form-actions.d.ts.map +1 -0
  396. package/dist/types/core/components/ui/form/form-layout/form-layout.d.ts +13 -0
  397. package/dist/types/core/components/ui/form/form-layout/form-layout.d.ts.map +1 -0
  398. package/dist/types/core/components/ui/form/input/input.d.ts +123 -0
  399. package/dist/types/core/components/ui/form/input/input.d.ts.map +1 -0
  400. package/dist/types/core/components/ui/form/input/password-helper.d.ts +26 -0
  401. package/dist/types/core/components/ui/form/input/password-helper.d.ts.map +1 -0
  402. package/dist/types/core/components/ui/form/input/same-value-helper.d.ts +17 -0
  403. package/dist/types/core/components/ui/form/input/same-value-helper.d.ts.map +1 -0
  404. package/dist/types/core/components/ui/form/input-autocomplete/input-autocomplete.d.ts +155 -0
  405. package/dist/types/core/components/ui/form/input-autocomplete/input-autocomplete.d.ts.map +1 -0
  406. package/dist/types/core/components/ui/form/radio/radio.d.ts +15 -0
  407. package/dist/types/core/components/ui/form/radio/radio.d.ts.map +1 -0
  408. package/dist/types/core/components/ui/form/select/select.d.ts +59 -0
  409. package/dist/types/core/components/ui/form/select/select.d.ts.map +1 -0
  410. package/dist/types/core/components/ui/form/switch/switch.d.ts +6 -0
  411. package/dist/types/core/components/ui/form/switch/switch.d.ts.map +1 -0
  412. package/dist/types/core/components/ui/form/textarea/textarea.d.ts +94 -0
  413. package/dist/types/core/components/ui/form/textarea/textarea.d.ts.map +1 -0
  414. package/dist/types/core/components/ui/group/group.d.ts +17 -0
  415. package/dist/types/core/components/ui/group/group.d.ts.map +1 -0
  416. package/dist/types/core/components/ui/icon/icon.d.ts +28 -0
  417. package/dist/types/core/components/ui/icon/icon.d.ts.map +1 -0
  418. package/dist/types/core/components/ui/icon/icons.d.ts +11 -0
  419. package/dist/types/core/components/ui/icon/icons.d.ts.map +1 -0
  420. package/dist/types/core/components/ui/image/image.d.ts +16 -0
  421. package/dist/types/core/components/ui/image/image.d.ts.map +1 -0
  422. package/dist/types/core/components/ui/link/link.d.ts +30 -0
  423. package/dist/types/core/components/ui/link/link.d.ts.map +1 -0
  424. package/dist/types/core/components/ui/loader/loader.d.ts +24 -0
  425. package/dist/types/core/components/ui/loader/loader.d.ts.map +1 -0
  426. package/dist/types/core/components/ui/loader/styles/fixed.d.ts +2 -0
  427. package/dist/types/core/components/ui/loader/styles/fixed.d.ts.map +1 -0
  428. package/dist/types/core/components/ui/loader/styles/inline.d.ts +2 -0
  429. package/dist/types/core/components/ui/loader/styles/inline.d.ts.map +1 -0
  430. package/dist/types/core/components/ui/menu/menu-item.d.ts +6 -0
  431. package/dist/types/core/components/ui/menu/menu-item.d.ts.map +1 -0
  432. package/dist/types/core/components/ui/menu/menu.d.ts +52 -0
  433. package/dist/types/core/components/ui/menu/menu.d.ts.map +1 -0
  434. package/dist/types/core/components/ui/modal/modal-actions.d.ts +9 -0
  435. package/dist/types/core/components/ui/modal/modal-actions.d.ts.map +1 -0
  436. package/dist/types/core/components/ui/modal/modal-close.d.ts +11 -0
  437. package/dist/types/core/components/ui/modal/modal-close.d.ts.map +1 -0
  438. package/dist/types/core/components/ui/modal/modal-content.d.ts +6 -0
  439. package/dist/types/core/components/ui/modal/modal-content.d.ts.map +1 -0
  440. package/dist/types/core/components/ui/modal/modal-subtitle.d.ts +6 -0
  441. package/dist/types/core/components/ui/modal/modal-subtitle.d.ts.map +1 -0
  442. package/dist/types/core/components/ui/modal/modal-title.d.ts +6 -0
  443. package/dist/types/core/components/ui/modal/modal-title.d.ts.map +1 -0
  444. package/dist/types/core/components/ui/modal/modal-utils.d.ts +4 -0
  445. package/dist/types/core/components/ui/modal/modal-utils.d.ts.map +1 -0
  446. package/dist/types/core/components/ui/modal/modal.d.ts +79 -0
  447. package/dist/types/core/components/ui/modal/modal.d.ts.map +1 -0
  448. package/dist/types/core/components/ui/pop/pop.d.ts +42 -0
  449. package/dist/types/core/components/ui/pop/pop.d.ts.map +1 -0
  450. package/dist/types/core/components/ui/progress/progress.d.ts +12 -0
  451. package/dist/types/core/components/ui/progress/progress.d.ts.map +1 -0
  452. package/dist/types/core/components/ui/table/table-caption.d.ts +6 -0
  453. package/dist/types/core/components/ui/table/table-caption.d.ts.map +1 -0
  454. package/dist/types/core/components/ui/table/table-tbody.d.ts +6 -0
  455. package/dist/types/core/components/ui/table/table-tbody.d.ts.map +1 -0
  456. package/dist/types/core/components/ui/table/table-td.d.ts +13 -0
  457. package/dist/types/core/components/ui/table/table-td.d.ts.map +1 -0
  458. package/dist/types/core/components/ui/table/table-tfoot.d.ts +6 -0
  459. package/dist/types/core/components/ui/table/table-tfoot.d.ts.map +1 -0
  460. package/dist/types/core/components/ui/table/table-th.d.ts +12 -0
  461. package/dist/types/core/components/ui/table/table-th.d.ts.map +1 -0
  462. package/dist/types/core/components/ui/table/table-thead.d.ts +6 -0
  463. package/dist/types/core/components/ui/table/table-thead.d.ts.map +1 -0
  464. package/dist/types/core/components/ui/table/table-tr.d.ts +14 -0
  465. package/dist/types/core/components/ui/table/table-tr.d.ts.map +1 -0
  466. package/dist/types/core/components/ui/table/table.d.ts +18 -0
  467. package/dist/types/core/components/ui/table/table.d.ts.map +1 -0
  468. package/dist/types/core/components/ui/theme/theme-collection/core-variables.d.ts +2 -0
  469. package/dist/types/core/components/ui/theme/theme-collection/core-variables.d.ts.map +1 -0
  470. package/dist/types/core/components/ui/theme/theme-collection/dark.d.ts +2 -0
  471. package/dist/types/core/components/ui/theme/theme-collection/dark.d.ts.map +1 -0
  472. package/dist/types/core/components/ui/theme/theme-collection/light.d.ts +2 -0
  473. package/dist/types/core/components/ui/theme/theme-collection/light.d.ts.map +1 -0
  474. package/dist/types/core/components/ui/theme/theme.d.ts +20 -0
  475. package/dist/types/core/components/ui/theme/theme.d.ts.map +1 -0
  476. package/dist/types/core/components/ui/toast/message-subscriber.d.ts +19 -0
  477. package/dist/types/core/components/ui/toast/message-subscriber.d.ts.map +1 -0
  478. package/dist/types/core/components/ui/toast/toast-item.d.ts +41 -0
  479. package/dist/types/core/components/ui/toast/toast-item.d.ts.map +1 -0
  480. package/dist/types/core/components/ui/toast/toast.d.ts +28 -0
  481. package/dist/types/core/components/ui/toast/toast.d.ts.map +1 -0
  482. package/dist/types/core/components/ui/toast/types.d.ts +12 -0
  483. package/dist/types/core/components/ui/toast/types.d.ts.map +1 -0
  484. package/dist/types/core/components/ui/tooltip/tooltip.d.ts +21 -0
  485. package/dist/types/core/components/ui/tooltip/tooltip.d.ts.map +1 -0
  486. package/dist/types/core/components/ui/ui.d.ts +35 -0
  487. package/dist/types/core/components/ui/ui.d.ts.map +1 -0
  488. package/dist/types/core/core.d.ts +5 -0
  489. package/dist/types/core/core.d.ts.map +1 -0
  490. package/dist/types/core/decorators/Subscriber.d.ts +11 -0
  491. package/dist/types/core/decorators/Subscriber.d.ts.map +1 -0
  492. package/dist/types/core/decorators/api.d.ts +106 -0
  493. package/dist/types/core/decorators/api.d.ts.map +1 -0
  494. package/dist/types/core/decorators/lifecycle.d.ts +19 -0
  495. package/dist/types/core/decorators/lifecycle.d.ts.map +1 -0
  496. package/dist/types/core/decorators/subscriber/ancestorAttribute.d.ts +11 -0
  497. package/dist/types/core/decorators/subscriber/ancestorAttribute.d.ts.map +1 -0
  498. package/dist/types/core/decorators/subscriber/autoFill.d.ts +2 -0
  499. package/dist/types/core/decorators/subscriber/autoFill.d.ts.map +1 -0
  500. package/dist/types/core/decorators/subscriber/autoSubscribe.d.ts +2 -0
  501. package/dist/types/core/decorators/subscriber/autoSubscribe.d.ts.map +1 -0
  502. package/dist/types/core/decorators/subscriber/bind.d.ts +28 -0
  503. package/dist/types/core/decorators/subscriber/bind.d.ts.map +1 -0
  504. package/dist/types/core/decorators/subscriber/common.d.ts +14 -0
  505. package/dist/types/core/decorators/subscriber/common.d.ts.map +1 -0
  506. package/dist/types/core/decorators/subscriber/dynamicPath.d.ts +23 -0
  507. package/dist/types/core/decorators/subscriber/dynamicPath.d.ts.map +1 -0
  508. package/dist/types/core/decorators/subscriber/dynamicPropertyWatch.d.ts +42 -0
  509. package/dist/types/core/decorators/subscriber/dynamicPropertyWatch.d.ts.map +1 -0
  510. package/dist/types/core/decorators/subscriber/handle.d.ts +74 -0
  511. package/dist/types/core/decorators/subscriber/handle.d.ts.map +1 -0
  512. package/dist/types/core/decorators/subscriber/onAssign.d.ts +53 -0
  513. package/dist/types/core/decorators/subscriber/onAssign.d.ts.map +1 -0
  514. package/dist/types/core/decorators/subscriber/publish.d.ts +23 -0
  515. package/dist/types/core/decorators/subscriber/publish.d.ts.map +1 -0
  516. package/dist/types/core/decorators/subscriber/publisherPath.d.ts +3 -0
  517. package/dist/types/core/decorators/subscriber/publisherPath.d.ts.map +1 -0
  518. package/dist/types/core/decorators/subscriber/subscribe.d.ts +20 -0
  519. package/dist/types/core/decorators/subscriber/subscribe.d.ts.map +1 -0
  520. package/dist/types/core/directives/DataProvider.d.ts +45 -0
  521. package/dist/types/core/directives/DataProvider.d.ts.map +1 -0
  522. package/dist/types/core/directives/Wording.d.ts +44 -0
  523. package/dist/types/core/directives/Wording.d.ts.map +1 -0
  524. package/dist/types/core/mixins/Fetcher.d.ts +108 -0
  525. package/dist/types/core/mixins/Fetcher.d.ts.map +1 -0
  526. package/dist/types/core/mixins/FormCheckable.d.ts +95 -0
  527. package/dist/types/core/mixins/FormCheckable.d.ts.map +1 -0
  528. package/dist/types/core/mixins/FormElement.d.ts +37 -0
  529. package/dist/types/core/mixins/FormElement.d.ts.map +1 -0
  530. package/dist/types/core/mixins/FormInput.d.ts +79 -0
  531. package/dist/types/core/mixins/FormInput.d.ts.map +1 -0
  532. package/dist/types/core/mixins/Subscriber.d.ts +38 -0
  533. package/dist/types/core/mixins/Subscriber.d.ts.map +1 -0
  534. package/dist/types/core/mixins/TemplatesContainer.d.ts +14 -0
  535. package/dist/types/core/mixins/TemplatesContainer.d.ts.map +1 -0
  536. package/dist/types/core/mixins/mixins.d.ts +7 -0
  537. package/dist/types/core/mixins/mixins.d.ts.map +1 -0
  538. package/dist/types/core/utils/AncestorAttributeObserver.d.ts +38 -0
  539. package/dist/types/core/utils/AncestorAttributeObserver.d.ts.map +1 -0
  540. package/dist/types/core/utils/Arrays.d.ts +98 -0
  541. package/dist/types/core/utils/Arrays.d.ts.map +1 -0
  542. package/dist/types/core/utils/DataBindObserver.d.ts +84 -0
  543. package/dist/types/core/utils/DataBindObserver.d.ts.map +1 -0
  544. package/dist/types/core/utils/Electron.d.ts +8 -0
  545. package/dist/types/core/utils/Electron.d.ts.map +1 -0
  546. package/dist/types/core/utils/Format.d.ts +13 -0
  547. package/dist/types/core/utils/Format.d.ts.map +1 -0
  548. package/dist/types/core/utils/HTML.d.ts +64 -0
  549. package/dist/types/core/utils/HTML.d.ts.map +1 -0
  550. package/dist/types/core/utils/LocationHandler.d.ts +48 -0
  551. package/dist/types/core/utils/LocationHandler.d.ts.map +1 -0
  552. package/dist/types/core/utils/Objects.d.ts +31 -0
  553. package/dist/types/core/utils/Objects.d.ts.map +1 -0
  554. package/dist/types/core/utils/PublisherProxy.d.ts +230 -0
  555. package/dist/types/core/utils/PublisherProxy.d.ts.map +1 -0
  556. package/dist/types/core/utils/Utils.d.ts +6 -0
  557. package/dist/types/core/utils/Utils.d.ts.map +1 -0
  558. package/dist/types/core/utils/aesCrypto.d.ts +53 -0
  559. package/dist/types/core/utils/aesCrypto.d.ts.map +1 -0
  560. package/dist/types/core/utils/api.d.ts +173 -0
  561. package/dist/types/core/utils/api.d.ts.map +1 -0
  562. package/dist/types/core/utils/dataProviderKey.d.ts +56 -0
  563. package/dist/types/core/utils/dataProviderKey.d.ts.map +1 -0
  564. package/dist/types/core/utils/endpoint.d.ts +37 -0
  565. package/dist/types/core/utils/endpoint.d.ts.map +1 -0
  566. package/dist/types/core/utils/route.d.ts +41 -0
  567. package/dist/types/core/utils/route.d.ts.map +1 -0
  568. package/dist/types/core/utils/url-pattern.d.ts +3 -0
  569. package/dist/types/core/utils/url-pattern.d.ts.map +1 -0
  570. package/dist/types/dataprovider.d.ts +2 -0
  571. package/dist/types/dataprovider.d.ts.map +1 -0
  572. package/dist/types/decorators.d.ts +28 -0
  573. package/dist/types/decorators.d.ts.map +1 -0
  574. package/dist/types/directives.d.ts +21 -0
  575. package/dist/types/directives.d.ts.map +1 -0
  576. package/dist/types/index.d.ts +8 -0
  577. package/dist/types/index.d.ts.map +1 -0
  578. package/dist/types/mixins.d.ts +204 -0
  579. package/dist/types/mixins.d.ts.map +1 -0
  580. package/dist/types/test-utils/TestUtils.d.ts +4 -0
  581. package/dist/types/test-utils/TestUtils.d.ts.map +1 -0
  582. package/dist/types/utils.d.ts +17 -0
  583. package/dist/types/utils.d.ts.map +1 -0
  584. package/docs/assets/index-BEgZEIbv.js +11196 -0
  585. package/docs/docs-mock-api-sw.js +19 -0
  586. package/docs/docs-mock-api-sw.js.map +2 -2
  587. package/docs/index.html +1 -1
  588. package/docs/src/docs/_core-concept/dataFlow.md +9 -3
  589. package/docs/src/docs/_decorators/bind.md +2 -2
  590. package/docs/src/docs/_decorators/get.md +13 -4
  591. package/docs/src/docs/_decorators/handle.md +5 -1
  592. package/docs/src/docs/_decorators/on-assign.md +2 -0
  593. package/docs/src/docs/_decorators/patch.md +45 -0
  594. package/docs/src/docs/_decorators/post.md +93 -0
  595. package/docs/src/docs/_decorators/publish.md +1 -1
  596. package/docs/src/docs/_decorators/put.md +43 -0
  597. package/docs/src/docs/_decorators/subscribe.md +4 -1
  598. package/docs/src/docs/_directives/sub.md +1 -1
  599. package/docs/src/docs/_getting-started/my-first-component.md +1 -1
  600. package/docs/src/docs/_misc/api-configuration.md +3 -1
  601. package/docs/src/docs/_misc/dataProviderKey.md +2 -2
  602. package/docs/src/docs/_misc/dynamic-path.md +71 -0
  603. package/docs/src/docs/_misc/endpoint.md +5 -3
  604. package/docs/src/docs/search/docs-search.json +540 -15
  605. package/docs/src/tsconfig.json +377 -353
  606. package/gitlab/job_github_mirror.sh +39 -0
  607. package/index.html +0 -1
  608. package/package.json +1084 -356
  609. package/public/docs-mock-api-sw.js +19 -0
  610. package/public/docs-mock-api-sw.js.map +2 -2
  611. package/scripts/github-export.mjs +150 -0
  612. package/scripts/post-build.mjs +43 -0
  613. package/scripts/pre-build.mjs +32 -4
  614. package/scripts/pre-publish.mjs +2 -0
  615. package/src/core/components/functional/example/example.ts +3 -3
  616. package/src/core/components/functional/queue/queue.ts +2 -2
  617. package/src/core/components/ui/icon/icon.ts +17 -2
  618. package/src/core/components/ui/menu/menu.ts +12 -3
  619. package/src/core/components/ui/modal/modal.ts +1 -1
  620. package/src/core/decorators/Subscriber.ts +1 -0
  621. package/src/core/decorators/api.post.spec.ts +293 -0
  622. package/src/core/decorators/api.spec.ts +6 -6
  623. package/src/core/decorators/api.ts +641 -12
  624. package/src/core/decorators/subscriber/ancestorAttribute.spec.ts +197 -0
  625. package/src/core/decorators/subscriber/ancestorAttribute.ts +40 -7
  626. package/src/core/decorators/subscriber/autoSubscribe.ts +7 -3
  627. package/src/core/decorators/subscriber/bind.ts +13 -5
  628. package/src/core/decorators/subscriber/dynamicPath.spec.ts +53 -0
  629. package/src/core/decorators/subscriber/dynamicPath.ts +23 -1
  630. package/src/core/decorators/subscriber/handle.ts +3 -1
  631. package/src/core/decorators/subscriber/onAssign.ts +10 -2
  632. package/src/core/decorators/subscriber/publish.ts +12 -2
  633. package/src/core/mixins/Fetcher.ts +12 -6
  634. package/src/core/utils/AncestorAttributeObserver.ts +199 -0
  635. package/src/core/utils/HTML.ts +3 -11
  636. package/src/core/utils/PublisherProxy.ts +123 -48
  637. package/src/core/utils/api.ts +82 -13
  638. package/src/core/utils/dpOptions.spec.ts +56 -0
  639. package/src/core/utils/endpoint.ts +3 -3
  640. package/src/css.d.ts +19 -0
  641. package/src/decorators.ts +17 -1
  642. package/src/directives.ts +3 -2
  643. package/src/docs/_core-concept/dataFlow.md +9 -3
  644. package/src/docs/_decorators/ancestor-attribute.md +56 -8
  645. package/src/docs/_decorators/bind.md +2 -2
  646. package/src/docs/_decorators/get.md +13 -4
  647. package/src/docs/_decorators/handle.md +5 -1
  648. package/src/docs/_decorators/on-assign.md +2 -0
  649. package/src/docs/_decorators/patch.md +45 -0
  650. package/src/docs/_decorators/post.md +93 -0
  651. package/src/docs/_decorators/publish.md +1 -1
  652. package/src/docs/_decorators/put.md +43 -0
  653. package/src/docs/_decorators/subscribe.md +4 -1
  654. package/src/docs/_directives/sub.md +1 -1
  655. package/src/docs/_getting-started/my-first-component.md +1 -1
  656. package/src/docs/_misc/api-configuration.md +3 -1
  657. package/src/docs/_misc/dataProviderKey.md +2 -2
  658. package/src/docs/_misc/dynamic-path.md +71 -0
  659. package/src/docs/_misc/endpoint.md +5 -3
  660. package/src/docs/components/docs-demo-sources.ts +115 -4
  661. package/src/docs/components/docs-lit-demo-raw.ts +2 -26
  662. package/src/docs/components/docs-lit-demo.ts +9 -42
  663. package/src/docs/components/docs-source-excerpt.ts +53 -0
  664. package/src/docs/components/docs-source-link.ts +24 -8
  665. package/src/docs/components/docs-source-raw.ts +34 -0
  666. package/src/docs/example/decorators-demo-geo.ts +2 -2
  667. package/src/docs/example/decorators-demo-post.ts +249 -0
  668. package/src/docs/example/decorators-demo-subscribe-publish-get-demos.ts +5 -5
  669. package/src/docs/example/decorators-demo.ts +165 -8
  670. package/src/docs/example/docs-api-config-demos.ts +5 -5
  671. package/src/docs/mock-api/router.ts +20 -0
  672. package/src/docs/navigation/navigation.ts +16 -0
  673. package/src/docs/search/docs-search.json +602 -17
  674. package/src/tsconfig.declarations.json +22 -0
  675. package/src/tsconfig.emit.json +23 -0
  676. package/src/tsconfig.json +3 -261
  677. package/src/tsconfig.tsbuildinfo +1 -1
  678. package/vite.config.mts +1 -1
  679. package/docs/assets/index-CwtPzTFq.js +0 -7508
@@ -3245,7 +3245,7 @@
3245
3245
  }
3246
3246
  },
3247
3247
  {
3248
- "search": "Dynamic paths (users.${userId}) → decorators or sub() — not get("users.${id}") in imperative code.\n",
3248
+ "search": "Dynamic paths (users.${userId}) → decorators or sub() — not get("users.${id}") in imperative code. Resolution rules: Dynamic path placeholders.\n",
3249
3249
  "files": {
3250
3250
  "docs/_core-concept/dataFlow.md": {
3251
3251
  "title": "Data flow",
@@ -3935,7 +3935,7 @@
3935
3935
  }
3936
3936
  },
3937
3937
  {
3938
- "search": "The component reads dataProvider and testAttribute from its ancestor wrapper.\n",
3938
+ "search": "The component reads dataProvider and testAttribute from its ancestor wrapper. By default (dynamic: false), values are read once at connect.\n",
3939
3939
  "files": {
3940
3940
  "docs/_decorators/ancestor-attribute.md": {
3941
3941
  "title": "@ancestorAttribute",
@@ -3980,7 +3980,7 @@
3980
3980
  }
3981
3981
  },
3982
3982
  {
3983
- "search": " render() {\n return html <section> <p>dataProvider: <strong>${this.dataProvider || "null"}</strong></p> <p>testAttribute: <strong>${this.testAttribute || "null"}</strong></p> </section> ;\n }\n}\n \n\n",
3983
+ "search": " render() {\n return html <p>dataProvider: <strong>${this.dataProvider ?? "null"}</strong></p> <p>testAttribute: <strong>${this.testAttribute ?? "null"}</strong></p> ;\n }\n}\n \n\n",
3984
3984
  "files": {
3985
3985
  "docs/_decorators/ancestor-attribute.md": {
3986
3986
  "title": "@ancestorAttribute",
@@ -4029,6 +4029,66 @@
4029
4029
  }
4030
4030
  }
4031
4031
  },
4032
+ {
4033
+ "search": "Use { dynamic: true } when the decorated property must follow the DOM. The live demo below shows only the resolved attribute value — no store, no reparenting.\n",
4034
+ "files": {
4035
+ "docs/_decorators/ancestor-attribute.md": {
4036
+ "title": "@ancestorAttribute",
4037
+ "hashes": {
4038
+ "dynamic-mode": {
4039
+ "count": 1,
4040
+ "title": "Dynamic mode",
4041
+ "type": "paragraph"
4042
+ }
4043
+ }
4044
+ }
4045
+ }
4046
+ },
4047
+ {
4048
+ "search": " render() {\n return html <p>Nearest ancestor: <strong>${this.dataProvider ?? "null"}</strong></p> ;\n }\n}\n \n\n",
4049
+ "files": {
4050
+ "docs/_decorators/ancestor-attribute.md": {
4051
+ "title": "@ancestorAttribute",
4052
+ "hashes": {
4053
+ "dynamic-mode": {
4054
+ "count": 1,
4055
+ "title": "Dynamic mode",
4056
+ "type": "paragraph"
4057
+ }
4058
+ }
4059
+ }
4060
+ }
4061
+ },
4062
+ {
4063
+ "search": "Try in the demo:\n",
4064
+ "files": {
4065
+ "docs/_decorators/ancestor-attribute.md": {
4066
+ "title": "@ancestorAttribute",
4067
+ "hashes": {
4068
+ "dynamic-mode": {
4069
+ "count": 1,
4070
+ "title": "Dynamic mode",
4071
+ "type": "paragraph"
4072
+ }
4073
+ }
4074
+ }
4075
+ }
4076
+ },
4077
+ {
4078
+ "search": "Static mode (default) — read once at connect, no observer:\n",
4079
+ "files": {
4080
+ "docs/_decorators/ancestor-attribute.md": {
4081
+ "title": "@ancestorAttribute",
4082
+ "hashes": {
4083
+ "dynamic-mode": {
4084
+ "count": 1,
4085
+ "title": "Dynamic mode",
4086
+ "type": "paragraph"
4087
+ }
4088
+ }
4089
+ }
4090
+ }
4091
+ },
4032
4092
  {
4033
4093
  "search": "@autoSubscribe",
4034
4094
  "files": {
@@ -4340,7 +4400,7 @@
4340
4400
  }
4341
4401
  },
4342
4402
  {
4343
- "search": "See also: @subscribe, @handle, @publish, @get.\n",
4403
+ "search": "See also: @subscribe, @handle, @publish, @get, @post, @put, @patch.\n",
4344
4404
  "files": {
4345
4405
  "docs/_decorators/bind.md": {
4346
4406
  "title": "@bind",
@@ -4550,7 +4610,7 @@
4550
4610
  }
4551
4611
  },
4552
4612
  {
4553
- "search": "Use ${prop} or ${this.prop} inside a normal string literal (not a JS template literal with backticks). @bind re-subscribes when a reactive dependency changes.\n",
4613
+ "search": "Use ${prop} or ${this.prop} inside a normal string literal (not a JS template literal with backticks). @bind re-subscribes when a reactive dependency changes. While a placeholder is null/undefined, the bind is inactive; optional { skipEmptyPlaceholder: true } also waits on "". See Dynamic path placeholders.\n",
4554
4614
  "files": {
4555
4615
  "docs/_decorators/bind.md": {
4556
4616
  "title": "@bind",
@@ -4625,7 +4685,7 @@
4625
4685
  }
4626
4686
  },
4627
4687
  {
4628
- "search": "Loads data through API.getDetailed. The decorated property is ApiGetResult<T> | null: request, response (or null for dataProvider(...) resolution without HTTP), and typed result.\n",
4688
+ "search": "Loads data through API.getDetailed. The decorated property is ApiResult<T> | null: request, response (or null for dataProvider(...) resolution without HTTP), and typed result.\n",
4629
4689
  "files": {
4630
4690
  "docs/_decorators/get.md": {
4631
4691
  "title": "@get",
@@ -4640,7 +4700,7 @@
4640
4700
  }
4641
4701
  },
4642
4702
  {
4643
- "search": "Pass an Endpoint<T> as the first argument. Import get and ApiGetResult from @supersoniks/concorde/decorators, and Endpoint from @supersoniks/concorde/utils/endpoint.\n",
4703
+ "search": "Pass an Endpoint<T> as the first argument. Import get and ApiResult from @supersoniks/concorde/decorators, and Endpoint from @supersoniks/concorde/utils/endpoint.\n",
4644
4704
  "files": {
4645
4705
  "docs/_decorators/get.md": {
4646
4706
  "title": "@get",
@@ -4654,6 +4714,21 @@
4654
4714
  }
4655
4715
  }
4656
4716
  },
4717
+ {
4718
+ "search": "${prop} on the endpoint or config key is resolved on the host. While a placeholder is null or undefined, no GET runs. Optional skipEmptyPlaceholder: true also blocks "" (empty string only). Details: Dynamic path placeholders.\n",
4719
+ "files": {
4720
+ "docs/_decorators/get.md": {
4721
+ "title": "@get",
4722
+ "hashes": {
4723
+ "dynamic-path": {
4724
+ "count": 1,
4725
+ "title": "Dynamic path",
4726
+ "type": "paragraph"
4727
+ }
4728
+ }
4729
+ }
4730
+ }
4731
+ },
4657
4732
  {
4658
4733
  "search": "Same demo service as sonic-queue (/docs-mock-api/geo/). Publisher setup lives in decorators-demo-geo.ts and decorators-demo-subscribe-publish-get-demos.ts.\n",
4659
4734
  "files": {
@@ -4711,6 +4786,16 @@
4711
4786
  "type": "paragraph"
4712
4787
  }
4713
4788
  }
4789
+ },
4790
+ "docs/_decorators/post.md": {
4791
+ "title": "@post",
4792
+ "hashes": {
4793
+ "live-demos": {
4794
+ "count": 1,
4795
+ "title": "Live demos",
4796
+ "type": "paragraph"
4797
+ }
4798
+ }
4714
4799
  }
4715
4800
  }
4716
4801
  },
@@ -5030,7 +5115,22 @@
5030
5115
  }
5031
5116
  },
5032
5117
  {
5033
- "search": "See also DataProviderKey.\n",
5118
+ "search": "On a dynamic key path ("items.${itemId}"), if true, a placeholder resolved to '' is treated as not ready (no subscription) — empty string only, not 0 or false. See Dynamic path placeholders.\n",
5119
+ "files": {
5120
+ "docs/_decorators/handle.md": {
5121
+ "title": "@handle",
5122
+ "hashes": {
5123
+ "skipemptyplaceholder": {
5124
+ "count": 1,
5125
+ "title": "`skipEmptyPlaceholder`",
5126
+ "type": "paragraph"
5127
+ }
5128
+ }
5129
+ }
5130
+ }
5131
+ },
5132
+ {
5133
+ "search": "See also DataProviderKey and Dynamic path placeholders.\n",
5034
5134
  "files": {
5035
5135
  "docs/_decorators/handle.md": {
5036
5136
  "title": "@handle",
@@ -5269,6 +5369,21 @@
5269
5369
  }
5270
5370
  }
5271
5371
  },
5372
+ {
5373
+ "search": "While a placeholder is null/undefined, subscriptions are detached. Optional skipEmptyPlaceholder on @handle (typed replacement). Details: Dynamic path placeholders.\n",
5374
+ "files": {
5375
+ "docs/_decorators/on-assign.md": {
5376
+ "title": "@onAssign",
5377
+ "hashes": {
5378
+ "dynamic-path-driven-by-class-properties": {
5379
+ "count": 1,
5380
+ "title": "Dynamic path driven by class properties",
5381
+ "type": "paragraph"
5382
+ }
5383
+ }
5384
+ }
5385
+ }
5386
+ },
5272
5387
  {
5273
5388
  "search": " @property({ type: String })\n dataProvider: "demoUsers" | "demoUsersAlt" = "demoUsers";\n",
5274
5389
  "files": {
@@ -5569,6 +5684,266 @@
5569
5684
  }
5570
5685
  }
5571
5686
  },
5687
+ {
5688
+ "search": "@patch",
5689
+ "files": {
5690
+ "docs/_decorators/patch.md": {
5691
+ "title": "@patch",
5692
+ "hashes": {
5693
+ "patch": {
5694
+ "count": 1,
5695
+ "title": "",
5696
+ "type": "page"
5697
+ }
5698
+ }
5699
+ }
5700
+ }
5701
+ },
5702
+ {
5703
+ "search": "Sends data through API.patchDetailed. Same model as @post: decorated property is ApiResult<T> | null (request, response, result).\n",
5704
+ "files": {
5705
+ "docs/_decorators/patch.md": {
5706
+ "title": "@patch",
5707
+ "hashes": {
5708
+ "patch": {
5709
+ "count": 1,
5710
+ "title": "",
5711
+ "type": "paragraph"
5712
+ }
5713
+ }
5714
+ }
5715
+ }
5716
+ },
5717
+ {
5718
+ "search": "Pass an Endpoint<T> and a DataProviderKey for the request body. Import patch and ApiResult from @supersoniks/concorde/decorators.\n",
5719
+ "files": {
5720
+ "docs/_decorators/patch.md": {
5721
+ "title": "@patch",
5722
+ "hashes": {
5723
+ "patch": {
5724
+ "count": 1,
5725
+ "title": "",
5726
+ "type": "paragraph"
5727
+ }
5728
+ }
5729
+ }
5730
+ }
5731
+ },
5732
+ {
5733
+ "search": "Same as @post / @get: scoped HTML.getApiConfiguration(host) or DataProviderKey<APIConfiguration> as third argument.\n",
5734
+ "files": {
5735
+ "docs/_decorators/patch.md": {
5736
+ "title": "@patch",
5737
+ "hashes": {
5738
+ "configuration": {
5739
+ "count": 1,
5740
+ "title": "Configuration",
5741
+ "type": "paragraph"
5742
+ }
5743
+ }
5744
+ },
5745
+ "docs/_decorators/put.md": {
5746
+ "title": "@put",
5747
+ "hashes": {
5748
+ "configuration": {
5749
+ "count": 1,
5750
+ "title": "Configuration",
5751
+ "type": "paragraph"
5752
+ }
5753
+ }
5754
+ }
5755
+ }
5756
+ },
5757
+ {
5758
+ "search": "Same shape as PostOptions on @post (ApiSendOptions): refetchEveryMs, skipIfBodyMissing, autoPostOnBodyMutation, triggerKey, skipEmptyPlaceholder. See Dynamic path placeholders for ${sessionId} and empty-string behaviour.\n",
5759
+ "files": {
5760
+ "docs/_decorators/patch.md": {
5761
+ "title": "@patch",
5762
+ "hashes": {
5763
+ "options-patchoptions": {
5764
+ "count": 1,
5765
+ "title": "Options (`PatchOptions`)",
5766
+ "type": "paragraph"
5767
+ }
5768
+ }
5769
+ },
5770
+ "docs/_decorators/put.md": {
5771
+ "title": "@put",
5772
+ "hashes": {
5773
+ "options-putoptions": {
5774
+ "count": 1,
5775
+ "title": "Options (`PutOptions`)",
5776
+ "type": "paragraph"
5777
+ }
5778
+ }
5779
+ }
5780
+ }
5781
+ },
5782
+ {
5783
+ "search": "@patch(\n new Endpoint<Resource, { resourceId: string }>("resources/${resourceId}"),\n patchBodyKey,\n { skipEmptyPlaceholder: true },\n)\n@state()\npayload?: ApiResult<Resource> | null;\n \n\n",
5784
+ "files": {
5785
+ "docs/_decorators/patch.md": {
5786
+ "title": "@patch",
5787
+ "hashes": {
5788
+ "example": {
5789
+ "count": 1,
5790
+ "title": "Example",
5791
+ "type": "paragraph"
5792
+ }
5793
+ }
5794
+ }
5795
+ }
5796
+ },
5797
+ {
5798
+ "search": "@post",
5799
+ "files": {
5800
+ "docs/_decorators/post.md": {
5801
+ "title": "@post",
5802
+ "hashes": {
5803
+ "post": {
5804
+ "count": 1,
5805
+ "title": "",
5806
+ "type": "page"
5807
+ }
5808
+ }
5809
+ }
5810
+ }
5811
+ },
5812
+ {
5813
+ "search": "Sends data through API.postDetailed. The decorated property is ApiResult<T> | null: request, response, and typed result.\n",
5814
+ "files": {
5815
+ "docs/_decorators/post.md": {
5816
+ "title": "@post",
5817
+ "hashes": {
5818
+ "post": {
5819
+ "count": 1,
5820
+ "title": "",
5821
+ "type": "paragraph"
5822
+ }
5823
+ }
5824
+ }
5825
+ }
5826
+ },
5827
+ {
5828
+ "search": "Pass an Endpoint<T> 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.\n",
5829
+ "files": {
5830
+ "docs/_decorators/post.md": {
5831
+ "title": "@post",
5832
+ "hashes": {
5833
+ "post": {
5834
+ "count": 1,
5835
+ "title": "",
5836
+ "type": "paragraph"
5837
+ }
5838
+ }
5839
+ }
5840
+ }
5841
+ },
5842
+ {
5843
+ "search": "Same as @get: scoped HTML.getApiConfiguration(host) by default, or DataProviderKey<APIConfiguration> as third argument. See API configuration for mock demos.\n",
5844
+ "files": {
5845
+ "docs/_decorators/post.md": {
5846
+ "title": "@post",
5847
+ "hashes": {
5848
+ "configuration": {
5849
+ "count": 1,
5850
+ "title": "Configuration",
5851
+ "type": "paragraph"
5852
+ }
5853
+ }
5854
+ }
5855
+ }
5856
+ },
5857
+ {
5858
+ "search": "Mock service: POST /docs-mock-api/api/register (same route as sonic-submit demos). Publisher setup lives in decorators-demo-post.ts.\n",
5859
+ "files": {
5860
+ "docs/_decorators/post.md": {
5861
+ "title": "@post",
5862
+ "hashes": {
5863
+ "minimal-example": {
5864
+ "count": 1,
5865
+ "title": "Minimal example",
5866
+ "type": "paragraph"
5867
+ }
5868
+ }
5869
+ }
5870
+ }
5871
+ },
5872
+ {
5873
+ "search": "@post(\n new Endpoint<SyncResponse, { sessionId: string }>("sessions/${sessionId}/sync"),\n syncRequest,\n { triggerKey: syncTrigger },\n)\n@state()\npayload?: ApiResult<SyncResponse> | null;\n \n\n",
5874
+ "files": {
5875
+ "docs/_decorators/post.md": {
5876
+ "title": "@post",
5877
+ "hashes": {
5878
+ "minimal-example": {
5879
+ "count": 1,
5880
+ "title": "Minimal example",
5881
+ "type": "paragraph"
5882
+ }
5883
+ }
5884
+ }
5885
+ }
5886
+ },
5887
+ {
5888
+ "search": "Dynamic endpoint path — changing sessionId on the host re-runs the POST (POST /docs-mock-api/api/sessions/{id}/sync):\n",
5889
+ "files": {
5890
+ "docs/_decorators/post.md": {
5891
+ "title": "@post",
5892
+ "hashes": {
5893
+ "live-demos": {
5894
+ "count": 1,
5895
+ "title": "Live demos",
5896
+ "type": "paragraph"
5897
+ }
5898
+ }
5899
+ }
5900
+ }
5901
+ },
5902
+ {
5903
+ "search": "@post + @publish on the same property (see @publish):\n",
5904
+ "files": {
5905
+ "docs/_decorators/post.md": {
5906
+ "title": "@post",
5907
+ "hashes": {
5908
+ "live-demos": {
5909
+ "count": 1,
5910
+ "title": "Live demos",
5911
+ "type": "paragraph"
5912
+ }
5913
+ }
5914
+ }
5915
+ }
5916
+ },
5917
+ {
5918
+ "search": "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).\n",
5919
+ "files": {
5920
+ "docs/_decorators/post.md": {
5921
+ "title": "@post",
5922
+ "hashes": {
5923
+ "live-demos": {
5924
+ "count": 1,
5925
+ "title": "Live demos",
5926
+ "type": "paragraph"
5927
+ }
5928
+ }
5929
+ }
5930
+ }
5931
+ },
5932
+ {
5933
+ "search": "Path placeholders (${sessionId}, …): Dynamic path placeholders.\n",
5934
+ "files": {
5935
+ "docs/_decorators/post.md": {
5936
+ "title": "@post",
5937
+ "hashes": {
5938
+ "live-demos": {
5939
+ "count": 1,
5940
+ "title": "Live demos",
5941
+ "type": "paragraph"
5942
+ }
5943
+ }
5944
+ }
5945
+ }
5946
+ },
5572
5947
  {
5573
5948
  "search": "@publish",
5574
5949
  "files": {
@@ -5615,7 +5990,7 @@
5615
5990
  }
5616
5991
  },
5617
5992
  {
5618
- "search": "Dynamic paths use the same placeholder rules as @bind / @subscribe.\n",
5993
+ "search": "Dynamic paths use the same placeholder rules as @bind / @subscribe. Resolution and skipEmptyPlaceholder: Dynamic path placeholders.\n",
5619
5994
  "files": {
5620
5995
  "docs/_decorators/publish.md": {
5621
5996
  "title": "@publish",
@@ -5629,6 +6004,81 @@
5629
6004
  }
5630
6005
  }
5631
6006
  },
6007
+ {
6008
+ "search": "@put",
6009
+ "files": {
6010
+ "docs/_decorators/put.md": {
6011
+ "title": "@put",
6012
+ "hashes": {
6013
+ "put": {
6014
+ "count": 1,
6015
+ "title": "",
6016
+ "type": "page"
6017
+ }
6018
+ }
6019
+ }
6020
+ }
6021
+ },
6022
+ {
6023
+ "search": "Sends data through API.putDetailed. Same model as @post: decorated property is ApiResult<T> | null (request, response, result).\n",
6024
+ "files": {
6025
+ "docs/_decorators/put.md": {
6026
+ "title": "@put",
6027
+ "hashes": {
6028
+ "put": {
6029
+ "count": 1,
6030
+ "title": "",
6031
+ "type": "paragraph"
6032
+ }
6033
+ }
6034
+ }
6035
+ }
6036
+ },
6037
+ {
6038
+ "search": "Pass an Endpoint<T> and a DataProviderKey for the request body. Import put and ApiResult from @supersoniks/concorde/decorators.\n",
6039
+ "files": {
6040
+ "docs/_decorators/put.md": {
6041
+ "title": "@put",
6042
+ "hashes": {
6043
+ "put": {
6044
+ "count": 1,
6045
+ "title": "",
6046
+ "type": "paragraph"
6047
+ }
6048
+ }
6049
+ }
6050
+ }
6051
+ },
6052
+ {
6053
+ "search": "@put(new Endpoint<Resource, { resourceId: string }>("resources/${resourceId}"), bodyKey)\n@state()\npayload?: ApiResult<Resource> | null;\n \n\n",
6054
+ "files": {
6055
+ "docs/_decorators/put.md": {
6056
+ "title": "@put",
6057
+ "hashes": {
6058
+ "example": {
6059
+ "count": 1,
6060
+ "title": "Example",
6061
+ "type": "paragraph"
6062
+ }
6063
+ }
6064
+ }
6065
+ }
6066
+ },
6067
+ {
6068
+ "search": "Changing resourceId on the host re-runs the PUT when the path becomes ready — see Dynamic path placeholders.\n",
6069
+ "files": {
6070
+ "docs/_decorators/put.md": {
6071
+ "title": "@put",
6072
+ "hashes": {
6073
+ "example": {
6074
+ "count": 1,
6075
+ "title": "Example",
6076
+ "type": "paragraph"
6077
+ }
6078
+ }
6079
+ }
6080
+ }
6081
+ },
5632
6082
  {
5633
6083
  "search": "@subscribe",
5634
6084
  "files": {
@@ -5750,7 +6200,22 @@
5750
6200
  }
5751
6201
  },
5752
6202
  {
5753
- "search": "Placeholders ${prop} in the key string are resolved from properties on the same component. Declare them in the key’s second generic so TypeScript expects them on the host:\n",
6203
+ "search": "Placeholders ${prop} in the key string are resolved from properties on the same component. While a value is null/undefined, the subscription is inactive; optional { skipEmptyPlaceholder: true } also waits on "". Full rules: Dynamic path placeholders.\n",
6204
+ "files": {
6205
+ "docs/_decorators/subscribe.md": {
6206
+ "title": "@subscribe",
6207
+ "hashes": {
6208
+ "dynamic-path-and-scope": {
6209
+ "count": 1,
6210
+ "title": "Dynamic path and scope",
6211
+ "type": "paragraph"
6212
+ }
6213
+ }
6214
+ }
6215
+ }
6216
+ },
6217
+ {
6218
+ "search": "Declare dynamic props in the key’s second generic so TypeScript expects them on the host:\n",
5754
6219
  "files": {
5755
6220
  "docs/_decorators/subscribe.md": {
5756
6221
  "title": "@subscribe",
@@ -6230,7 +6695,7 @@
6230
6695
  }
6231
6696
  },
6232
6697
  {
6233
- "search": "Like @subscribe: the path is resolved on the template host component; the directive re-subscribes when observed props change.\n",
6698
+ "search": "Like @subscribe: the path is resolved on the template host component; the directive re-subscribes when observed props change. Placeholder values (null, "", 0, …): Dynamic path placeholders (skipEmptyPlaceholder not available on sub() yet).\n",
6234
6699
  "files": {
6235
6700
  "docs/_directives/sub.md": {
6236
6701
  "title": "sub()",
@@ -7165,7 +7630,7 @@
7165
7630
  }
7166
7631
  },
7167
7632
  {
7168
- "search": "The second generic ({ dataProvider: string | null }) lists what the host must expose so "${dataProvider}" can be resolved. See DataProviderKey.\n",
7633
+ "search": "The second generic ({ dataProvider: string | null }) lists what the host must expose so "${dataProvider}" can be resolved. See DataProviderKey and Dynamic path placeholders.\n",
7169
7634
  "files": {
7170
7635
  "docs/_getting-started/my-first-component.md": {
7171
7636
  "title": "My first component",
@@ -7915,7 +8380,7 @@
7915
8380
  }
7916
8381
  },
7917
8382
  {
7918
- "search": "APIConfiguration is the object built by HTML.getApiConfiguration from ancestor attributes on the DOM (or from a typed publisher — see @get configuration key). It is passed to API by fetchers, sonic-submit, the wording() directive, and @get.\n",
8383
+ "search": "APIConfiguration is the object built by HTML.getApiConfiguration from ancestor attributes on the DOM (or from a typed publisher — see @get / @post configuration key). It is passed to API by fetchers, sonic-submit, the wording() directive, @get, @post, @put, and @patch.\n",
7919
8384
  "files": {
7920
8385
  "docs/_misc/api-configuration.md": {
7921
8386
  "title": "API configuration",
@@ -8185,7 +8650,7 @@
8185
8650
  }
8186
8651
  },
8187
8652
  {
8188
- "search": "Use placeholders ${prop} or {$prop} in the path string. The path is resolved at runtime from the component's properties. The type remains declarative:\n",
8653
+ "search": "Use placeholders ${prop} or {$prop} in the path string. The path is resolved at runtime from the component's properties. See Dynamic path placeholders for resolution rules and skipEmptyPlaceholder. The type remains declarative:\n",
8189
8654
  "files": {
8190
8655
  "docs/_misc/dataProviderKey.md": {
8191
8656
  "title": "DataProviderKey",
@@ -8275,7 +8740,7 @@
8275
8740
  }
8276
8741
  },
8277
8742
  {
8278
- "search": "These decorators support dynamic paths: "base.${prop}" in the constructor. A wrong property type (e.g. number for DataProviderKey<string>) is a TypeScript error. See @handle for method callbacks.\n",
8743
+ "search": "These decorators support dynamic paths: "base.${prop}" in the constructor. A wrong property type (e.g. number for DataProviderKey<string>) is a TypeScript error. Resolution rules: Dynamic path placeholders. See @handle for method callbacks.\n",
8279
8744
  "files": {
8280
8745
  "docs/_misc/dataProviderKey.md": {
8281
8746
  "title": "DataProviderKey",
@@ -8364,6 +8829,126 @@
8364
8829
  }
8365
8830
  }
8366
8831
  },
8832
+ {
8833
+ "search": "Dynamic path placeholders",
8834
+ "files": {
8835
+ "docs/_misc/dynamic-path.md": {
8836
+ "title": "Dynamic path placeholders",
8837
+ "hashes": {
8838
+ "dynamic-path-placeholders": {
8839
+ "count": 1,
8840
+ "title": "",
8841
+ "type": "page"
8842
+ }
8843
+ }
8844
+ }
8845
+ }
8846
+ },
8847
+ {
8848
+ "search": "Decorators and DataProviderKey paths can include placeholders resolved on the host component at runtime:\n",
8849
+ "files": {
8850
+ "docs/_misc/dynamic-path.md": {
8851
+ "title": "Dynamic path placeholders",
8852
+ "hashes": {
8853
+ "dynamic-path-placeholders": {
8854
+ "count": 1,
8855
+ "title": "",
8856
+ "type": "paragraph"
8857
+ }
8858
+ }
8859
+ }
8860
+ }
8861
+ },
8862
+ {
8863
+ "search": "Resolution is done by resolveDynamicPath. The root property names (userId, sessionId, …) are watched via requestAnimationFrame (see dynamicPropertyWatch.ts).\n",
8864
+ "files": {
8865
+ "docs/_misc/dynamic-path.md": {
8866
+ "title": "Dynamic path placeholders",
8867
+ "hashes": {
8868
+ "dynamic-path-placeholders": {
8869
+ "count": 1,
8870
+ "title": "",
8871
+ "type": "paragraph"
8872
+ }
8873
+ }
8874
+ }
8875
+ }
8876
+ },
8877
+ {
8878
+ "search": "When ready: false, decorators do not call the network (for @get / @post / @put / @patch), unsubscribe (@bind / @subscribe), or skip publisher binding (@publish / @handle). The decorated property is often left unchanged or set to undefined (HTTP decorators).\n",
8879
+ "files": {
8880
+ "docs/_misc/dynamic-path.md": {
8881
+ "title": "Dynamic path placeholders",
8882
+ "hashes": {
8883
+ "default-behaviour-ready--not-ready": {
8884
+ "count": 1,
8885
+ "title": "Default behaviour (`ready` / `not ready`)",
8886
+ "type": "paragraph"
8887
+ }
8888
+ }
8889
+ }
8890
+ }
8891
+ },
8892
+ {
8893
+ "search": "When the placeholder later becomes valid, observers run again and behaviour resumes.\n",
8894
+ "files": {
8895
+ "docs/_misc/dynamic-path.md": {
8896
+ "title": "Dynamic path placeholders",
8897
+ "hashes": {
8898
+ "default-behaviour-ready--not-ready": {
8899
+ "count": 1,
8900
+ "title": "Default behaviour (`ready` / `not ready`)",
8901
+ "type": "paragraph"
8902
+ }
8903
+ }
8904
+ }
8905
+ }
8906
+ },
8907
+ {
8908
+ "search": "Some APIs should not run while an id is still "". Opt in per decorator:\n",
8909
+ "files": {
8910
+ "docs/_misc/dynamic-path.md": {
8911
+ "title": "Dynamic path placeholders",
8912
+ "hashes": {
8913
+ "skipemptyplaceholder-option": {
8914
+ "count": 1,
8915
+ "title": "`skipEmptyPlaceholder` option",
8916
+ "type": "paragraph"
8917
+ }
8918
+ }
8919
+ }
8920
+ }
8921
+ },
8922
+ {
8923
+ "search": "Does not affect 0, false, null, or undefined (nullish stays “not ready” regardless).\n",
8924
+ "files": {
8925
+ "docs/_misc/dynamic-path.md": {
8926
+ "title": "Dynamic path placeholders",
8927
+ "hashes": {
8928
+ "skipemptyplaceholder-option": {
8929
+ "count": 1,
8930
+ "title": "`skipEmptyPlaceholder` option",
8931
+ "type": "paragraph"
8932
+ }
8933
+ }
8934
+ }
8935
+ }
8936
+ },
8937
+ {
8938
+ "search": "Available on:\n",
8939
+ "files": {
8940
+ "docs/_misc/dynamic-path.md": {
8941
+ "title": "Dynamic path placeholders",
8942
+ "hashes": {
8943
+ "skipemptyplaceholder-option": {
8944
+ "count": 1,
8945
+ "title": "`skipEmptyPlaceholder` option",
8946
+ "type": "paragraph"
8947
+ }
8948
+ }
8949
+ }
8950
+ }
8951
+ },
8367
8952
  {
8368
8953
  "search": "Endpoint",
8369
8954
  "files": {
@@ -8395,7 +8980,7 @@
8395
8980
  }
8396
8981
  },
8397
8982
  {
8398
- "search": "The optional second generic U (default any) describes host properties used to resolve dynamic segments in the path (${…} / {$…}), for example with the @get decorator.\n",
8983
+ "search": "The optional second generic U (default any) describes host properties used to resolve dynamic segments in the path (${…} / {$…}), for example with @get or @post. See Dynamic path placeholders for null / undefined / "" / 0 and skipEmptyPlaceholder.\n",
8399
8984
  "files": {
8400
8985
  "docs/_misc/endpoint.md": {
8401
8986
  "title": "Endpoint",
@@ -8440,7 +9025,7 @@
8440
9025
  }
8441
9026
  },
8442
9027
  {
8443
- "search": "getDataProviderKey() returns a typed publisher key whose path matches the endpoint path (payload typing follows ApiGetResult for this endpoint). Useful when pairing @get with @publish / @subscribe (see @get).\n",
9028
+ "search": "getDataProviderKey() returns a typed publisher key whose path matches the endpoint path (payload typing follows ApiResult for this endpoint). Useful when pairing @get with @publish / @subscribe (see @get).\n",
8444
9029
  "files": {
8445
9030
  "docs/_misc/endpoint.md": {
8446
9031
  "title": "Endpoint",