@supersoniks/concorde 4.8.0 → 4.9.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (701) 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 +271 -271
  11. package/concorde-core.es.js +4503 -4389
  12. package/dist/concorde-core.bundle.js +271 -271
  13. package/dist/concorde-core.es.js +4503 -4389
  14. package/dist/docs-mock-api-sw.js +3 -2
  15. package/dist/docs-mock-api-sw.js.map +2 -2
  16. package/dist/js/components.js +12 -0
  17. package/dist/js/components.js.map +1 -0
  18. package/dist/js/concorde-loaded.js +5 -0
  19. package/dist/js/concorde-loaded.js.map +1 -0
  20. package/dist/js/core/_types/endpoint.js +5 -0
  21. package/dist/js/core/_types/endpoint.js.map +1 -0
  22. package/dist/js/core/_types/key.js +2 -0
  23. package/dist/js/core/_types/key.js.map +1 -0
  24. package/dist/js/core/_types/types.js +3 -0
  25. package/dist/js/core/_types/types.js.map +1 -0
  26. package/dist/js/core/components/functional/date/date.js +272 -0
  27. package/dist/js/core/components/functional/date/date.js.map +1 -0
  28. package/dist/js/core/components/functional/example/example.js +44 -0
  29. package/dist/js/core/components/functional/example/example.js.map +1 -0
  30. package/dist/js/core/components/functional/fetch/fetch.js +79 -0
  31. package/dist/js/core/components/functional/fetch/fetch.js.map +1 -0
  32. package/dist/js/core/components/functional/functional.js +17 -0
  33. package/dist/js/core/components/functional/functional.js.map +1 -0
  34. package/dist/js/core/components/functional/if/if.js +39 -0
  35. package/dist/js/core/components/functional/if/if.js.map +1 -0
  36. package/dist/js/core/components/functional/list/list.js +341 -0
  37. package/dist/js/core/components/functional/list/list.js.map +1 -0
  38. package/dist/js/core/components/functional/mix/mix.js +103 -0
  39. package/dist/js/core/components/functional/mix/mix.js.map +1 -0
  40. package/dist/js/core/components/functional/queue/queue.js +386 -0
  41. package/dist/js/core/components/functional/queue/queue.js.map +1 -0
  42. package/dist/js/core/components/functional/router/redirect.js +54 -0
  43. package/dist/js/core/components/functional/router/redirect.js.map +1 -0
  44. package/dist/js/core/components/functional/router/router.js +179 -0
  45. package/dist/js/core/components/functional/router/router.js.map +1 -0
  46. package/dist/js/core/components/functional/sdui/SDUIDescriptorTransformer.js +216 -0
  47. package/dist/js/core/components/functional/sdui/SDUIDescriptorTransformer.js.map +1 -0
  48. package/dist/js/core/components/functional/sdui/default-library.json +108 -0
  49. package/dist/js/core/components/functional/sdui/sdui-utils.js +64 -0
  50. package/dist/js/core/components/functional/sdui/sdui-utils.js.map +1 -0
  51. package/dist/js/core/components/functional/sdui/sdui.js +266 -0
  52. package/dist/js/core/components/functional/sdui/sdui.js.map +1 -0
  53. package/dist/js/core/components/functional/sdui/types.js +2 -0
  54. package/dist/js/core/components/functional/sdui/types.js.map +1 -0
  55. package/dist/js/core/components/functional/sonic-scope/sonic-scope.js +22 -0
  56. package/dist/js/core/components/functional/sonic-scope/sonic-scope.js.map +1 -0
  57. package/dist/js/core/components/functional/states/states.js +172 -0
  58. package/dist/js/core/components/functional/states/states.js.map +1 -0
  59. package/dist/js/core/components/functional/submit/submit.js +284 -0
  60. package/dist/js/core/components/functional/submit/submit.js.map +1 -0
  61. package/dist/js/core/components/functional/subscriber/subscriber.js +39 -0
  62. package/dist/js/core/components/functional/subscriber/subscriber.js.map +1 -0
  63. package/dist/js/core/components/functional/translation/translation.js +28 -0
  64. package/dist/js/core/components/functional/translation/translation.js.map +1 -0
  65. package/dist/js/core/components/functional/value/value.js +28 -0
  66. package/dist/js/core/components/functional/value/value.js.map +1 -0
  67. package/dist/js/core/components/ui/_css/scroll.js +25 -0
  68. package/dist/js/core/components/ui/_css/scroll.js.map +1 -0
  69. package/dist/js/core/components/ui/_css/shadow.js +22 -0
  70. package/dist/js/core/components/ui/_css/shadow.js.map +1 -0
  71. package/dist/js/core/components/ui/_css/size.js +36 -0
  72. package/dist/js/core/components/ui/_css/size.js.map +1 -0
  73. package/dist/js/core/components/ui/_css/type.js +92 -0
  74. package/dist/js/core/components/ui/_css/type.js.map +1 -0
  75. package/dist/js/core/components/ui/alert/alert.js +213 -0
  76. package/dist/js/core/components/ui/alert/alert.js.map +1 -0
  77. package/dist/js/core/components/ui/alert-messages/alert-messages.js +68 -0
  78. package/dist/js/core/components/ui/alert-messages/alert-messages.js.map +1 -0
  79. package/dist/js/core/components/ui/badge/badge.js +199 -0
  80. package/dist/js/core/components/ui/badge/badge.js.map +1 -0
  81. package/dist/js/core/components/ui/button/button.js +697 -0
  82. package/dist/js/core/components/ui/button/button.js.map +1 -0
  83. package/dist/js/core/components/ui/captcha/altchaStyles.js +226 -0
  84. package/dist/js/core/components/ui/captcha/altchaStyles.js.map +1 -0
  85. package/dist/js/core/components/ui/captcha/captcha.js +167 -0
  86. package/dist/js/core/components/ui/captcha/captcha.js.map +1 -0
  87. package/dist/js/core/components/ui/card/card-footer.js +26 -0
  88. package/dist/js/core/components/ui/card/card-footer.js.map +1 -0
  89. package/dist/js/core/components/ui/card/card-header-descripton.js +30 -0
  90. package/dist/js/core/components/ui/card/card-header-descripton.js.map +1 -0
  91. package/dist/js/core/components/ui/card/card-header.js +79 -0
  92. package/dist/js/core/components/ui/card/card-header.js.map +1 -0
  93. package/dist/js/core/components/ui/card/card-main.js +26 -0
  94. package/dist/js/core/components/ui/card/card-main.js.map +1 -0
  95. package/dist/js/core/components/ui/card/card.js +67 -0
  96. package/dist/js/core/components/ui/card/card.js.map +1 -0
  97. package/dist/js/core/components/ui/divider/divider.js +200 -0
  98. package/dist/js/core/components/ui/divider/divider.js.map +1 -0
  99. package/dist/js/core/components/ui/form/checkbox/checkbox.js +257 -0
  100. package/dist/js/core/components/ui/form/checkbox/checkbox.js.map +1 -0
  101. package/dist/js/core/components/ui/form/css/form-control.js +393 -0
  102. package/dist/js/core/components/ui/form/css/form-control.js.map +1 -0
  103. package/dist/js/core/components/ui/form/fieldset/fieldset.js +124 -0
  104. package/dist/js/core/components/ui/form/fieldset/fieldset.js.map +1 -0
  105. package/dist/js/core/components/ui/form/fieldset/legend-description.js +38 -0
  106. package/dist/js/core/components/ui/form/fieldset/legend-description.js.map +1 -0
  107. package/dist/js/core/components/ui/form/fieldset/legend.js +130 -0
  108. package/dist/js/core/components/ui/form/fieldset/legend.js.map +1 -0
  109. package/dist/js/core/components/ui/form/form-actions/form-actions.js +47 -0
  110. package/dist/js/core/components/ui/form/form-actions/form-actions.js.map +1 -0
  111. package/dist/js/core/components/ui/form/form-layout/form-layout.js +84 -0
  112. package/dist/js/core/components/ui/form/form-layout/form-layout.js.map +1 -0
  113. package/dist/js/core/components/ui/form/input/input.js +316 -0
  114. package/dist/js/core/components/ui/form/input/input.js.map +1 -0
  115. package/dist/js/core/components/ui/form/input/password-helper.js +134 -0
  116. package/dist/js/core/components/ui/form/input/password-helper.js.map +1 -0
  117. package/dist/js/core/components/ui/form/input/same-value-helper.js +85 -0
  118. package/dist/js/core/components/ui/form/input/same-value-helper.js.map +1 -0
  119. package/dist/js/core/components/ui/form/input-autocomplete/input-autocomplete.js +405 -0
  120. package/dist/js/core/components/ui/form/input-autocomplete/input-autocomplete.js.map +1 -0
  121. package/dist/js/core/components/ui/form/radio/radio.js +63 -0
  122. package/dist/js/core/components/ui/form/radio/radio.js.map +1 -0
  123. package/dist/js/core/components/ui/form/select/select.js +323 -0
  124. package/dist/js/core/components/ui/form/select/select.js.map +1 -0
  125. package/dist/js/core/components/ui/form/switch/switch.js +90 -0
  126. package/dist/js/core/components/ui/form/switch/switch.js.map +1 -0
  127. package/dist/js/core/components/ui/form/textarea/textarea.js +162 -0
  128. package/dist/js/core/components/ui/form/textarea/textarea.js.map +1 -0
  129. package/dist/js/core/components/ui/group/group.js +128 -0
  130. package/dist/js/core/components/ui/group/group.js.map +1 -0
  131. package/dist/js/core/components/ui/icon/icon.js +129 -0
  132. package/dist/js/core/components/ui/icon/icon.js.map +1 -0
  133. package/dist/js/core/components/ui/icon/icons.js +163 -0
  134. package/dist/js/core/components/ui/icon/icons.js.map +1 -0
  135. package/dist/js/core/components/ui/icon/icons.json +1 -0
  136. package/dist/js/core/components/ui/image/image.js +160 -0
  137. package/dist/js/core/components/ui/image/image.js.map +1 -0
  138. package/dist/js/core/components/ui/link/link.js +125 -0
  139. package/dist/js/core/components/ui/link/link.js.map +1 -0
  140. package/dist/js/core/components/ui/loader/loader.js +106 -0
  141. package/dist/js/core/components/ui/loader/loader.js.map +1 -0
  142. package/dist/js/core/components/ui/loader/styles/fixed.js +56 -0
  143. package/dist/js/core/components/ui/loader/styles/fixed.js.map +1 -0
  144. package/dist/js/core/components/ui/loader/styles/inline.js +70 -0
  145. package/dist/js/core/components/ui/loader/styles/inline.js.map +1 -0
  146. package/dist/js/core/components/ui/menu/menu-item.js +35 -0
  147. package/dist/js/core/components/ui/menu/menu-item.js.map +1 -0
  148. package/dist/js/core/components/ui/menu/menu.js +436 -0
  149. package/dist/js/core/components/ui/menu/menu.js.map +1 -0
  150. package/dist/js/core/components/ui/modal/modal-actions.js +44 -0
  151. package/dist/js/core/components/ui/modal/modal-actions.js.map +1 -0
  152. package/dist/js/core/components/ui/modal/modal-close.js +56 -0
  153. package/dist/js/core/components/ui/modal/modal-close.js.map +1 -0
  154. package/dist/js/core/components/ui/modal/modal-content.js +27 -0
  155. package/dist/js/core/components/ui/modal/modal-content.js.map +1 -0
  156. package/dist/js/core/components/ui/modal/modal-subtitle.js +34 -0
  157. package/dist/js/core/components/ui/modal/modal-subtitle.js.map +1 -0
  158. package/dist/js/core/components/ui/modal/modal-title.js +35 -0
  159. package/dist/js/core/components/ui/modal/modal-title.js.map +1 -0
  160. package/dist/js/core/components/ui/modal/modal-utils.js +32 -0
  161. package/dist/js/core/components/ui/modal/modal-utils.js.map +1 -0
  162. package/dist/js/core/components/ui/modal/modal.js +568 -0
  163. package/dist/js/core/components/ui/modal/modal.js.map +1 -0
  164. package/dist/js/core/components/ui/pop/pop.js +337 -0
  165. package/dist/js/core/components/ui/pop/pop.js.map +1 -0
  166. package/dist/js/core/components/ui/progress/progress.js +164 -0
  167. package/dist/js/core/components/ui/progress/progress.js.map +1 -0
  168. package/dist/js/core/components/ui/table/table-caption.js +29 -0
  169. package/dist/js/core/components/ui/table/table-caption.js.map +1 -0
  170. package/dist/js/core/components/ui/table/table-tbody.js +41 -0
  171. package/dist/js/core/components/ui/table/table-tbody.js.map +1 -0
  172. package/dist/js/core/components/ui/table/table-td.js +69 -0
  173. package/dist/js/core/components/ui/table/table-td.js.map +1 -0
  174. package/dist/js/core/components/ui/table/table-tfoot.js +28 -0
  175. package/dist/js/core/components/ui/table/table-tfoot.js.map +1 -0
  176. package/dist/js/core/components/ui/table/table-th.js +80 -0
  177. package/dist/js/core/components/ui/table/table-th.js.map +1 -0
  178. package/dist/js/core/components/ui/table/table-thead.js +26 -0
  179. package/dist/js/core/components/ui/table/table-thead.js.map +1 -0
  180. package/dist/js/core/components/ui/table/table-tr.js +67 -0
  181. package/dist/js/core/components/ui/table/table-tr.js.map +1 -0
  182. package/dist/js/core/components/ui/table/table.js +106 -0
  183. package/dist/js/core/components/ui/table/table.js.map +1 -0
  184. package/dist/js/core/components/ui/theme/theme-collection/core-variables.js +74 -0
  185. package/dist/js/core/components/ui/theme/theme-collection/core-variables.js.map +1 -0
  186. package/dist/js/core/components/ui/theme/theme-collection/dark.js +39 -0
  187. package/dist/js/core/components/ui/theme/theme-collection/dark.js.map +1 -0
  188. package/dist/js/core/components/ui/theme/theme-collection/light.js +32 -0
  189. package/dist/js/core/components/ui/theme/theme-collection/light.js.map +1 -0
  190. package/dist/js/core/components/ui/theme/theme.js +150 -0
  191. package/dist/js/core/components/ui/theme/theme.js.map +1 -0
  192. package/dist/js/core/components/ui/toast/message-subscriber.js +41 -0
  193. package/dist/js/core/components/ui/toast/message-subscriber.js.map +1 -0
  194. package/dist/js/core/components/ui/toast/toast-item.js +379 -0
  195. package/dist/js/core/components/ui/toast/toast-item.js.map +1 -0
  196. package/dist/js/core/components/ui/toast/toast.js +269 -0
  197. package/dist/js/core/components/ui/toast/toast.js.map +1 -0
  198. package/dist/js/core/components/ui/toast/types.js +2 -0
  199. package/dist/js/core/components/ui/toast/types.js.map +1 -0
  200. package/dist/js/core/components/ui/tooltip/tooltip.js +219 -0
  201. package/dist/js/core/components/ui/tooltip/tooltip.js.map +1 -0
  202. package/dist/js/core/components/ui/ui.js +41 -0
  203. package/dist/js/core/components/ui/ui.js.map +1 -0
  204. package/dist/js/core/core.js +14 -0
  205. package/dist/js/core/core.js.map +1 -0
  206. package/dist/js/core/decorators/Subscriber.js +9 -0
  207. package/dist/js/core/decorators/Subscriber.js.map +1 -0
  208. package/dist/js/core/decorators/api.js +611 -0
  209. package/dist/js/core/decorators/api.js.map +1 -0
  210. package/dist/js/core/decorators/lifecycle.js +67 -0
  211. package/dist/js/core/decorators/lifecycle.js.map +1 -0
  212. package/dist/js/core/decorators/subscriber/ancestorAttribute.js +27 -0
  213. package/dist/js/core/decorators/subscriber/ancestorAttribute.js.map +1 -0
  214. package/dist/js/core/decorators/subscriber/autoFill.js +26 -0
  215. package/dist/js/core/decorators/subscriber/autoFill.js.map +1 -0
  216. package/dist/js/core/decorators/subscriber/autoSubscribe.js +46 -0
  217. package/dist/js/core/decorators/subscriber/autoSubscribe.js.map +1 -0
  218. package/dist/js/core/decorators/subscriber/bind.js +150 -0
  219. package/dist/js/core/decorators/subscriber/bind.js.map +1 -0
  220. package/dist/js/core/decorators/subscriber/common.js +44 -0
  221. package/dist/js/core/decorators/subscriber/common.js.map +1 -0
  222. package/dist/js/core/decorators/subscriber/dynamicPath.js +75 -0
  223. package/dist/js/core/decorators/subscriber/dynamicPath.js.map +1 -0
  224. package/dist/js/core/decorators/subscriber/dynamicPropertyWatch.js +138 -0
  225. package/dist/js/core/decorators/subscriber/dynamicPropertyWatch.js.map +1 -0
  226. package/dist/js/core/decorators/subscriber/handle.js +22 -0
  227. package/dist/js/core/decorators/subscriber/handle.js.map +1 -0
  228. package/dist/js/core/decorators/subscriber/onAssign.js +199 -0
  229. package/dist/js/core/decorators/subscriber/onAssign.js.map +1 -0
  230. package/dist/js/core/decorators/subscriber/publish.js +108 -0
  231. package/dist/js/core/decorators/subscriber/publish.js.map +1 -0
  232. package/dist/js/core/decorators/subscriber/publisherPath.js +16 -0
  233. package/dist/js/core/decorators/subscriber/publisherPath.js.map +1 -0
  234. package/dist/js/core/decorators/subscriber/subscribe.js +20 -0
  235. package/dist/js/core/decorators/subscriber/subscribe.js.map +1 -0
  236. package/dist/js/core/directives/DataProvider.js +127 -0
  237. package/dist/js/core/directives/DataProvider.js.map +1 -0
  238. package/dist/js/core/directives/Wording.js +221 -0
  239. package/dist/js/core/directives/Wording.js.map +1 -0
  240. package/dist/js/core/mixins/Fetcher.js +325 -0
  241. package/dist/js/core/mixins/Fetcher.js.map +1 -0
  242. package/dist/js/core/mixins/FormCheckable.js +313 -0
  243. package/dist/js/core/mixins/FormCheckable.js.map +1 -0
  244. package/dist/js/core/mixins/FormElement.js +304 -0
  245. package/dist/js/core/mixins/FormElement.js.map +1 -0
  246. package/dist/js/core/mixins/FormInput.js +82 -0
  247. package/dist/js/core/mixins/FormInput.js.map +1 -0
  248. package/dist/js/core/mixins/Subscriber.js +354 -0
  249. package/dist/js/core/mixins/Subscriber.js.map +1 -0
  250. package/dist/js/core/mixins/TemplatesContainer.js +70 -0
  251. package/dist/js/core/mixins/TemplatesContainer.js.map +1 -0
  252. package/dist/js/core/mixins/mixins.js +7 -0
  253. package/dist/js/core/mixins/mixins.js.map +1 -0
  254. package/dist/js/core/utils/AncestorAttributeObserver.js +140 -0
  255. package/dist/js/core/utils/AncestorAttributeObserver.js.map +1 -0
  256. package/dist/js/core/utils/Arrays.js +141 -0
  257. package/dist/js/core/utils/Arrays.js.map +1 -0
  258. package/dist/js/core/utils/DataBindObserver.js +265 -0
  259. package/dist/js/core/utils/DataBindObserver.js.map +1 -0
  260. package/dist/js/core/utils/Electron.js +14 -0
  261. package/dist/js/core/utils/Electron.js.map +1 -0
  262. package/dist/js/core/utils/Format.js +43 -0
  263. package/dist/js/core/utils/Format.js.map +1 -0
  264. package/dist/js/core/utils/HTML.js +248 -0
  265. package/dist/js/core/utils/HTML.js.map +1 -0
  266. package/dist/js/core/utils/LocationHandler.js +143 -0
  267. package/dist/js/core/utils/LocationHandler.js.map +1 -0
  268. package/dist/js/core/utils/Objects.js +111 -0
  269. package/dist/js/core/utils/Objects.js.map +1 -0
  270. package/dist/js/core/utils/PublisherProxy.js +946 -0
  271. package/dist/js/core/utils/PublisherProxy.js.map +1 -0
  272. package/dist/js/core/utils/Utils.js +19 -0
  273. package/dist/js/core/utils/Utils.js.map +1 -0
  274. package/dist/js/core/utils/aesCrypto.js +98 -0
  275. package/dist/js/core/utils/aesCrypto.js.map +1 -0
  276. package/dist/js/core/utils/api.js +574 -0
  277. package/dist/js/core/utils/api.js.map +1 -0
  278. package/dist/js/core/utils/dataProviderKey.js +64 -0
  279. package/dist/js/core/utils/dataProviderKey.js.map +1 -0
  280. package/dist/js/core/utils/endpoint.js +74 -0
  281. package/dist/js/core/utils/endpoint.js.map +1 -0
  282. package/dist/js/core/utils/route.js +149 -0
  283. package/dist/js/core/utils/route.js.map +1 -0
  284. package/dist/js/core/utils/url-pattern.js +3 -0
  285. package/dist/js/core/utils/url-pattern.js.map +1 -0
  286. package/dist/js/dataprovider.js +2 -0
  287. package/dist/js/dataprovider.js.map +1 -0
  288. package/dist/js/decorators.js +39 -0
  289. package/dist/js/decorators.js.map +1 -0
  290. package/dist/js/directives.js +30 -0
  291. package/dist/js/directives.js.map +1 -0
  292. package/dist/js/index.js +8 -0
  293. package/dist/js/index.js.map +1 -0
  294. package/dist/js/mixins.js +23 -0
  295. package/dist/js/mixins.js.map +1 -0
  296. package/dist/js/test-utils/TestUtils.js +10 -0
  297. package/dist/js/test-utils/TestUtils.js.map +1 -0
  298. package/dist/js/utils.js +41 -0
  299. package/dist/js/utils.js.map +1 -0
  300. package/dist/types/components.d.ts +5 -0
  301. package/dist/types/components.d.ts.map +1 -0
  302. package/dist/types/concorde-loaded.d.ts +2 -0
  303. package/dist/types/concorde-loaded.d.ts.map +1 -0
  304. package/dist/types/core/_types/endpoint.d.ts +5 -0
  305. package/dist/types/core/_types/endpoint.d.ts.map +1 -0
  306. package/dist/types/core/_types/key.d.ts +2 -0
  307. package/dist/types/core/_types/key.d.ts.map +1 -0
  308. package/dist/types/core/_types/types.d.ts +28 -0
  309. package/dist/types/core/_types/types.d.ts.map +1 -0
  310. package/dist/types/core/components/functional/date/date.d.ts +52 -0
  311. package/dist/types/core/components/functional/date/date.d.ts.map +1 -0
  312. package/dist/types/core/components/functional/example/example.d.ts +15 -0
  313. package/dist/types/core/components/functional/example/example.d.ts.map +1 -0
  314. package/dist/types/core/components/functional/fetch/fetch.d.ts +102 -0
  315. package/dist/types/core/components/functional/fetch/fetch.d.ts.map +1 -0
  316. package/dist/types/core/components/functional/functional.d.ts +17 -0
  317. package/dist/types/core/components/functional/functional.d.ts.map +1 -0
  318. package/dist/types/core/components/functional/if/if.d.ts +13 -0
  319. package/dist/types/core/components/functional/if/if.d.ts.map +1 -0
  320. package/dist/types/core/components/functional/list/list.d.ts +149 -0
  321. package/dist/types/core/components/functional/list/list.d.ts.map +1 -0
  322. package/dist/types/core/components/functional/mix/mix.d.ts +23 -0
  323. package/dist/types/core/components/functional/mix/mix.d.ts.map +1 -0
  324. package/dist/types/core/components/functional/queue/queue.d.ts +79 -0
  325. package/dist/types/core/components/functional/queue/queue.d.ts.map +1 -0
  326. package/dist/types/core/components/functional/router/redirect.d.ts +19 -0
  327. package/dist/types/core/components/functional/router/redirect.d.ts.map +1 -0
  328. package/dist/types/core/components/functional/router/router.d.ts +46 -0
  329. package/dist/types/core/components/functional/router/router.d.ts.map +1 -0
  330. package/dist/types/core/components/functional/sdui/SDUIDescriptorTransformer.d.ts +59 -0
  331. package/dist/types/core/components/functional/sdui/SDUIDescriptorTransformer.d.ts.map +1 -0
  332. package/dist/types/core/components/functional/sdui/sdui-utils.d.ts +6 -0
  333. package/dist/types/core/components/functional/sdui/sdui-utils.d.ts.map +1 -0
  334. package/dist/types/core/components/functional/sdui/sdui.d.ts +145 -0
  335. package/dist/types/core/components/functional/sdui/sdui.d.ts.map +1 -0
  336. package/dist/types/core/components/functional/sdui/types.d.ts +38 -0
  337. package/dist/types/core/components/functional/sdui/types.d.ts.map +1 -0
  338. package/dist/types/core/components/functional/sonic-scope/sonic-scope.d.ts +6 -0
  339. package/dist/types/core/components/functional/sonic-scope/sonic-scope.d.ts.map +1 -0
  340. package/dist/types/core/components/functional/states/states.d.ts +42 -0
  341. package/dist/types/core/components/functional/states/states.d.ts.map +1 -0
  342. package/dist/types/core/components/functional/submit/submit.d.ts +37 -0
  343. package/dist/types/core/components/functional/submit/submit.d.ts.map +1 -0
  344. package/dist/types/core/components/functional/subscriber/subscriber.d.ts +13 -0
  345. package/dist/types/core/components/functional/subscriber/subscriber.d.ts.map +1 -0
  346. package/dist/types/core/components/functional/translation/translation.d.ts +7 -0
  347. package/dist/types/core/components/functional/translation/translation.d.ts.map +1 -0
  348. package/dist/types/core/components/functional/value/value.d.ts +8 -0
  349. package/dist/types/core/components/functional/value/value.d.ts.map +1 -0
  350. package/dist/types/core/components/ui/_css/scroll.d.ts +2 -0
  351. package/dist/types/core/components/ui/_css/scroll.d.ts.map +1 -0
  352. package/dist/types/core/components/ui/_css/shadow.d.ts +3 -0
  353. package/dist/types/core/components/ui/_css/shadow.d.ts.map +1 -0
  354. package/dist/types/core/components/ui/_css/size.d.ts +3 -0
  355. package/dist/types/core/components/ui/_css/size.d.ts.map +1 -0
  356. package/dist/types/core/components/ui/_css/type.d.ts +3 -0
  357. package/dist/types/core/components/ui/_css/type.d.ts.map +1 -0
  358. package/dist/types/core/components/ui/alert/alert.d.ts +37 -0
  359. package/dist/types/core/components/ui/alert/alert.d.ts.map +1 -0
  360. package/dist/types/core/components/ui/alert-messages/alert-messages.d.ts +15 -0
  361. package/dist/types/core/components/ui/alert-messages/alert-messages.d.ts.map +1 -0
  362. package/dist/types/core/components/ui/badge/badge.d.ts +27 -0
  363. package/dist/types/core/components/ui/badge/badge.d.ts.map +1 -0
  364. package/dist/types/core/components/ui/button/button.d.ts +180 -0
  365. package/dist/types/core/components/ui/button/button.d.ts.map +1 -0
  366. package/dist/types/core/components/ui/captcha/altchaStyles.d.ts +2 -0
  367. package/dist/types/core/components/ui/captcha/altchaStyles.d.ts.map +1 -0
  368. package/dist/types/core/components/ui/captcha/captcha.d.ts +30 -0
  369. package/dist/types/core/components/ui/captcha/captcha.d.ts.map +1 -0
  370. package/dist/types/core/components/ui/card/card-footer.d.ts +6 -0
  371. package/dist/types/core/components/ui/card/card-footer.d.ts.map +1 -0
  372. package/dist/types/core/components/ui/card/card-header-descripton.d.ts +6 -0
  373. package/dist/types/core/components/ui/card/card-header-descripton.d.ts.map +1 -0
  374. package/dist/types/core/components/ui/card/card-header.d.ts +9 -0
  375. package/dist/types/core/components/ui/card/card-header.d.ts.map +1 -0
  376. package/dist/types/core/components/ui/card/card-main.d.ts +6 -0
  377. package/dist/types/core/components/ui/card/card-main.d.ts.map +1 -0
  378. package/dist/types/core/components/ui/card/card.d.ts +13 -0
  379. package/dist/types/core/components/ui/card/card.d.ts.map +1 -0
  380. package/dist/types/core/components/ui/divider/divider.d.ts +16 -0
  381. package/dist/types/core/components/ui/divider/divider.d.ts.map +1 -0
  382. package/dist/types/core/components/ui/form/checkbox/checkbox.d.ts +176 -0
  383. package/dist/types/core/components/ui/form/checkbox/checkbox.d.ts.map +1 -0
  384. package/dist/types/core/components/ui/form/css/form-control.d.ts +5 -0
  385. package/dist/types/core/components/ui/form/css/form-control.d.ts.map +1 -0
  386. package/dist/types/core/components/ui/form/fieldset/fieldset.d.ts +24 -0
  387. package/dist/types/core/components/ui/form/fieldset/fieldset.d.ts.map +1 -0
  388. package/dist/types/core/components/ui/form/fieldset/legend-description.d.ts +6 -0
  389. package/dist/types/core/components/ui/form/fieldset/legend-description.d.ts.map +1 -0
  390. package/dist/types/core/components/ui/form/fieldset/legend.d.ts +17 -0
  391. package/dist/types/core/components/ui/form/fieldset/legend.d.ts.map +1 -0
  392. package/dist/types/core/components/ui/form/form-actions/form-actions.d.ts +8 -0
  393. package/dist/types/core/components/ui/form/form-actions/form-actions.d.ts.map +1 -0
  394. package/dist/types/core/components/ui/form/form-layout/form-layout.d.ts +13 -0
  395. package/dist/types/core/components/ui/form/form-layout/form-layout.d.ts.map +1 -0
  396. package/dist/types/core/components/ui/form/input/input.d.ts +123 -0
  397. package/dist/types/core/components/ui/form/input/input.d.ts.map +1 -0
  398. package/dist/types/core/components/ui/form/input/password-helper.d.ts +26 -0
  399. package/dist/types/core/components/ui/form/input/password-helper.d.ts.map +1 -0
  400. package/dist/types/core/components/ui/form/input/same-value-helper.d.ts +17 -0
  401. package/dist/types/core/components/ui/form/input/same-value-helper.d.ts.map +1 -0
  402. package/dist/types/core/components/ui/form/input-autocomplete/input-autocomplete.d.ts +155 -0
  403. package/dist/types/core/components/ui/form/input-autocomplete/input-autocomplete.d.ts.map +1 -0
  404. package/dist/types/core/components/ui/form/radio/radio.d.ts +15 -0
  405. package/dist/types/core/components/ui/form/radio/radio.d.ts.map +1 -0
  406. package/dist/types/core/components/ui/form/select/select.d.ts +59 -0
  407. package/dist/types/core/components/ui/form/select/select.d.ts.map +1 -0
  408. package/dist/types/core/components/ui/form/switch/switch.d.ts +6 -0
  409. package/dist/types/core/components/ui/form/switch/switch.d.ts.map +1 -0
  410. package/dist/types/core/components/ui/form/textarea/textarea.d.ts +94 -0
  411. package/dist/types/core/components/ui/form/textarea/textarea.d.ts.map +1 -0
  412. package/dist/types/core/components/ui/group/group.d.ts +17 -0
  413. package/dist/types/core/components/ui/group/group.d.ts.map +1 -0
  414. package/dist/types/core/components/ui/icon/icon.d.ts +28 -0
  415. package/dist/types/core/components/ui/icon/icon.d.ts.map +1 -0
  416. package/dist/types/core/components/ui/icon/icons.d.ts +11 -0
  417. package/dist/types/core/components/ui/icon/icons.d.ts.map +1 -0
  418. package/dist/types/core/components/ui/image/image.d.ts +16 -0
  419. package/dist/types/core/components/ui/image/image.d.ts.map +1 -0
  420. package/dist/types/core/components/ui/link/link.d.ts +30 -0
  421. package/dist/types/core/components/ui/link/link.d.ts.map +1 -0
  422. package/dist/types/core/components/ui/loader/loader.d.ts +24 -0
  423. package/dist/types/core/components/ui/loader/loader.d.ts.map +1 -0
  424. package/dist/types/core/components/ui/loader/styles/fixed.d.ts +2 -0
  425. package/dist/types/core/components/ui/loader/styles/fixed.d.ts.map +1 -0
  426. package/dist/types/core/components/ui/loader/styles/inline.d.ts +2 -0
  427. package/dist/types/core/components/ui/loader/styles/inline.d.ts.map +1 -0
  428. package/dist/types/core/components/ui/menu/menu-item.d.ts +6 -0
  429. package/dist/types/core/components/ui/menu/menu-item.d.ts.map +1 -0
  430. package/dist/types/core/components/ui/menu/menu.d.ts +52 -0
  431. package/dist/types/core/components/ui/menu/menu.d.ts.map +1 -0
  432. package/dist/types/core/components/ui/modal/modal-actions.d.ts +9 -0
  433. package/dist/types/core/components/ui/modal/modal-actions.d.ts.map +1 -0
  434. package/dist/types/core/components/ui/modal/modal-close.d.ts +11 -0
  435. package/dist/types/core/components/ui/modal/modal-close.d.ts.map +1 -0
  436. package/dist/types/core/components/ui/modal/modal-content.d.ts +6 -0
  437. package/dist/types/core/components/ui/modal/modal-content.d.ts.map +1 -0
  438. package/dist/types/core/components/ui/modal/modal-subtitle.d.ts +6 -0
  439. package/dist/types/core/components/ui/modal/modal-subtitle.d.ts.map +1 -0
  440. package/dist/types/core/components/ui/modal/modal-title.d.ts +6 -0
  441. package/dist/types/core/components/ui/modal/modal-title.d.ts.map +1 -0
  442. package/dist/types/core/components/ui/modal/modal-utils.d.ts +4 -0
  443. package/dist/types/core/components/ui/modal/modal-utils.d.ts.map +1 -0
  444. package/dist/types/core/components/ui/modal/modal.d.ts +79 -0
  445. package/dist/types/core/components/ui/modal/modal.d.ts.map +1 -0
  446. package/dist/types/core/components/ui/pop/pop.d.ts +42 -0
  447. package/dist/types/core/components/ui/pop/pop.d.ts.map +1 -0
  448. package/dist/types/core/components/ui/progress/progress.d.ts +12 -0
  449. package/dist/types/core/components/ui/progress/progress.d.ts.map +1 -0
  450. package/dist/types/core/components/ui/table/table-caption.d.ts +6 -0
  451. package/dist/types/core/components/ui/table/table-caption.d.ts.map +1 -0
  452. package/dist/types/core/components/ui/table/table-tbody.d.ts +6 -0
  453. package/dist/types/core/components/ui/table/table-tbody.d.ts.map +1 -0
  454. package/dist/types/core/components/ui/table/table-td.d.ts +13 -0
  455. package/dist/types/core/components/ui/table/table-td.d.ts.map +1 -0
  456. package/dist/types/core/components/ui/table/table-tfoot.d.ts +6 -0
  457. package/dist/types/core/components/ui/table/table-tfoot.d.ts.map +1 -0
  458. package/dist/types/core/components/ui/table/table-th.d.ts +12 -0
  459. package/dist/types/core/components/ui/table/table-th.d.ts.map +1 -0
  460. package/dist/types/core/components/ui/table/table-thead.d.ts +6 -0
  461. package/dist/types/core/components/ui/table/table-thead.d.ts.map +1 -0
  462. package/dist/types/core/components/ui/table/table-tr.d.ts +14 -0
  463. package/dist/types/core/components/ui/table/table-tr.d.ts.map +1 -0
  464. package/dist/types/core/components/ui/table/table.d.ts +18 -0
  465. package/dist/types/core/components/ui/table/table.d.ts.map +1 -0
  466. package/dist/types/core/components/ui/theme/theme-collection/core-variables.d.ts +2 -0
  467. package/dist/types/core/components/ui/theme/theme-collection/core-variables.d.ts.map +1 -0
  468. package/dist/types/core/components/ui/theme/theme-collection/dark.d.ts +2 -0
  469. package/dist/types/core/components/ui/theme/theme-collection/dark.d.ts.map +1 -0
  470. package/dist/types/core/components/ui/theme/theme-collection/light.d.ts +2 -0
  471. package/dist/types/core/components/ui/theme/theme-collection/light.d.ts.map +1 -0
  472. package/dist/types/core/components/ui/theme/theme.d.ts +20 -0
  473. package/dist/types/core/components/ui/theme/theme.d.ts.map +1 -0
  474. package/dist/types/core/components/ui/toast/message-subscriber.d.ts +19 -0
  475. package/dist/types/core/components/ui/toast/message-subscriber.d.ts.map +1 -0
  476. package/dist/types/core/components/ui/toast/toast-item.d.ts +41 -0
  477. package/dist/types/core/components/ui/toast/toast-item.d.ts.map +1 -0
  478. package/dist/types/core/components/ui/toast/toast.d.ts +28 -0
  479. package/dist/types/core/components/ui/toast/toast.d.ts.map +1 -0
  480. package/dist/types/core/components/ui/toast/types.d.ts +12 -0
  481. package/dist/types/core/components/ui/toast/types.d.ts.map +1 -0
  482. package/dist/types/core/components/ui/tooltip/tooltip.d.ts +21 -0
  483. package/dist/types/core/components/ui/tooltip/tooltip.d.ts.map +1 -0
  484. package/dist/types/core/components/ui/ui.d.ts +35 -0
  485. package/dist/types/core/components/ui/ui.d.ts.map +1 -0
  486. package/dist/types/core/core.d.ts +5 -0
  487. package/dist/types/core/core.d.ts.map +1 -0
  488. package/dist/types/core/decorators/Subscriber.d.ts +11 -0
  489. package/dist/types/core/decorators/Subscriber.d.ts.map +1 -0
  490. package/dist/types/core/decorators/api.d.ts +119 -0
  491. package/dist/types/core/decorators/api.d.ts.map +1 -0
  492. package/dist/types/core/decorators/lifecycle.d.ts +19 -0
  493. package/dist/types/core/decorators/lifecycle.d.ts.map +1 -0
  494. package/dist/types/core/decorators/subscriber/ancestorAttribute.d.ts +11 -0
  495. package/dist/types/core/decorators/subscriber/ancestorAttribute.d.ts.map +1 -0
  496. package/dist/types/core/decorators/subscriber/autoFill.d.ts +2 -0
  497. package/dist/types/core/decorators/subscriber/autoFill.d.ts.map +1 -0
  498. package/dist/types/core/decorators/subscriber/autoSubscribe.d.ts +2 -0
  499. package/dist/types/core/decorators/subscriber/autoSubscribe.d.ts.map +1 -0
  500. package/dist/types/core/decorators/subscriber/bind.d.ts +28 -0
  501. package/dist/types/core/decorators/subscriber/bind.d.ts.map +1 -0
  502. package/dist/types/core/decorators/subscriber/common.d.ts +14 -0
  503. package/dist/types/core/decorators/subscriber/common.d.ts.map +1 -0
  504. package/dist/types/core/decorators/subscriber/dynamicPath.d.ts +23 -0
  505. package/dist/types/core/decorators/subscriber/dynamicPath.d.ts.map +1 -0
  506. package/dist/types/core/decorators/subscriber/dynamicPropertyWatch.d.ts +42 -0
  507. package/dist/types/core/decorators/subscriber/dynamicPropertyWatch.d.ts.map +1 -0
  508. package/dist/types/core/decorators/subscriber/handle.d.ts +74 -0
  509. package/dist/types/core/decorators/subscriber/handle.d.ts.map +1 -0
  510. package/dist/types/core/decorators/subscriber/onAssign.d.ts +53 -0
  511. package/dist/types/core/decorators/subscriber/onAssign.d.ts.map +1 -0
  512. package/dist/types/core/decorators/subscriber/publish.d.ts +23 -0
  513. package/dist/types/core/decorators/subscriber/publish.d.ts.map +1 -0
  514. package/dist/types/core/decorators/subscriber/publisherPath.d.ts +3 -0
  515. package/dist/types/core/decorators/subscriber/publisherPath.d.ts.map +1 -0
  516. package/dist/types/core/decorators/subscriber/subscribe.d.ts +20 -0
  517. package/dist/types/core/decorators/subscriber/subscribe.d.ts.map +1 -0
  518. package/dist/types/core/directives/DataProvider.d.ts +45 -0
  519. package/dist/types/core/directives/DataProvider.d.ts.map +1 -0
  520. package/dist/types/core/directives/Wording.d.ts +44 -0
  521. package/dist/types/core/directives/Wording.d.ts.map +1 -0
  522. package/dist/types/core/mixins/Fetcher.d.ts +108 -0
  523. package/dist/types/core/mixins/Fetcher.d.ts.map +1 -0
  524. package/dist/types/core/mixins/FormCheckable.d.ts +95 -0
  525. package/dist/types/core/mixins/FormCheckable.d.ts.map +1 -0
  526. package/dist/types/core/mixins/FormElement.d.ts +37 -0
  527. package/dist/types/core/mixins/FormElement.d.ts.map +1 -0
  528. package/dist/types/core/mixins/FormInput.d.ts +79 -0
  529. package/dist/types/core/mixins/FormInput.d.ts.map +1 -0
  530. package/dist/types/core/mixins/Subscriber.d.ts +38 -0
  531. package/dist/types/core/mixins/Subscriber.d.ts.map +1 -0
  532. package/dist/types/core/mixins/TemplatesContainer.d.ts +14 -0
  533. package/dist/types/core/mixins/TemplatesContainer.d.ts.map +1 -0
  534. package/dist/types/core/mixins/mixins.d.ts +7 -0
  535. package/dist/types/core/mixins/mixins.d.ts.map +1 -0
  536. package/dist/types/core/utils/AncestorAttributeObserver.d.ts +38 -0
  537. package/dist/types/core/utils/AncestorAttributeObserver.d.ts.map +1 -0
  538. package/dist/types/core/utils/Arrays.d.ts +98 -0
  539. package/dist/types/core/utils/Arrays.d.ts.map +1 -0
  540. package/dist/types/core/utils/DataBindObserver.d.ts +84 -0
  541. package/dist/types/core/utils/DataBindObserver.d.ts.map +1 -0
  542. package/dist/types/core/utils/Electron.d.ts +8 -0
  543. package/dist/types/core/utils/Electron.d.ts.map +1 -0
  544. package/dist/types/core/utils/Format.d.ts +13 -0
  545. package/dist/types/core/utils/Format.d.ts.map +1 -0
  546. package/dist/types/core/utils/HTML.d.ts +64 -0
  547. package/dist/types/core/utils/HTML.d.ts.map +1 -0
  548. package/dist/types/core/utils/LocationHandler.d.ts +48 -0
  549. package/dist/types/core/utils/LocationHandler.d.ts.map +1 -0
  550. package/dist/types/core/utils/Objects.d.ts +31 -0
  551. package/dist/types/core/utils/Objects.d.ts.map +1 -0
  552. package/dist/types/core/utils/PublisherProxy.d.ts +230 -0
  553. package/dist/types/core/utils/PublisherProxy.d.ts.map +1 -0
  554. package/dist/types/core/utils/Utils.d.ts +6 -0
  555. package/dist/types/core/utils/Utils.d.ts.map +1 -0
  556. package/dist/types/core/utils/aesCrypto.d.ts +53 -0
  557. package/dist/types/core/utils/aesCrypto.d.ts.map +1 -0
  558. package/dist/types/core/utils/api.d.ts +173 -0
  559. package/dist/types/core/utils/api.d.ts.map +1 -0
  560. package/dist/types/core/utils/dataProviderKey.d.ts +56 -0
  561. package/dist/types/core/utils/dataProviderKey.d.ts.map +1 -0
  562. package/dist/types/core/utils/endpoint.d.ts +37 -0
  563. package/dist/types/core/utils/endpoint.d.ts.map +1 -0
  564. package/dist/types/core/utils/route.d.ts +41 -0
  565. package/dist/types/core/utils/route.d.ts.map +1 -0
  566. package/dist/types/core/utils/url-pattern.d.ts +3 -0
  567. package/dist/types/core/utils/url-pattern.d.ts.map +1 -0
  568. package/dist/types/dataprovider.d.ts +2 -0
  569. package/dist/types/dataprovider.d.ts.map +1 -0
  570. package/dist/types/decorators.d.ts +28 -0
  571. package/dist/types/decorators.d.ts.map +1 -0
  572. package/dist/types/directives.d.ts +21 -0
  573. package/dist/types/directives.d.ts.map +1 -0
  574. package/dist/types/index.d.ts +8 -0
  575. package/dist/types/index.d.ts.map +1 -0
  576. package/dist/types/mixins.d.ts +204 -0
  577. package/dist/types/mixins.d.ts.map +1 -0
  578. package/dist/types/test-utils/TestUtils.d.ts +4 -0
  579. package/dist/types/test-utils/TestUtils.d.ts.map +1 -0
  580. package/dist/types/utils.d.ts +17 -0
  581. package/dist/types/utils.d.ts.map +1 -0
  582. package/docs/assets/{index-t0-i22oI.css → index-CZLTFws2.css} +1 -1
  583. package/docs/assets/{index-wyNMyWT9.js → index-nkkwC13U.js} +781 -506
  584. package/docs/index.html +2 -3
  585. package/docs/src/core/components/functional/date/date.md +290 -0
  586. package/docs/src/core/components/functional/fetch/fetch.md +125 -0
  587. package/docs/src/core/components/functional/if/if.md +9 -0
  588. package/docs/src/core/components/functional/list/list.md +65 -0
  589. package/docs/src/core/components/functional/mix/mix.md +41 -0
  590. package/docs/src/core/components/functional/queue/queue.md +72 -0
  591. package/docs/src/core/components/functional/router/router.md +94 -0
  592. package/docs/src/core/components/functional/sdui/default-library.json +108 -0
  593. package/docs/src/core/components/functional/sdui/example.json +99 -0
  594. package/docs/src/core/components/functional/sdui/sdui.md +356 -0
  595. package/docs/src/core/components/functional/states/states.md +87 -0
  596. package/docs/src/core/components/functional/submit/submit.md +114 -0
  597. package/docs/src/core/components/functional/subscriber/subscriber.md +91 -0
  598. package/docs/src/core/components/functional/value/value.md +35 -0
  599. package/docs/src/core/components/ui/alert/alert.md +121 -0
  600. package/docs/src/core/components/ui/alert-messages/alert-messages.md +0 -0
  601. package/docs/src/core/components/ui/badge/badge.md +127 -0
  602. package/docs/src/core/components/ui/button/button.md +182 -0
  603. package/docs/src/core/components/ui/captcha/captcha.md +12 -0
  604. package/docs/src/core/components/ui/card/card.md +97 -0
  605. package/docs/src/core/components/ui/divider/divider.md +35 -0
  606. package/docs/src/core/components/ui/form/checkbox/checkbox.md +77 -0
  607. package/docs/src/core/components/ui/form/fieldset/fieldset.md +129 -0
  608. package/docs/src/core/components/ui/form/form-actions/form-actions.md +77 -0
  609. package/docs/src/core/components/ui/form/form-layout/form-layout.md +44 -0
  610. package/docs/src/core/components/ui/form/input/input.md +142 -0
  611. package/docs/src/core/components/ui/form/input-autocomplete/input-autocomplete.md +133 -0
  612. package/docs/src/core/components/ui/form/radio/radio.md +57 -0
  613. package/docs/src/core/components/ui/form/select/select.md +71 -0
  614. package/docs/src/core/components/ui/form/switch/switch.md +57 -0
  615. package/docs/src/core/components/ui/form/textarea/textarea.md +65 -0
  616. package/docs/src/core/components/ui/group/group.md +75 -0
  617. package/docs/src/core/components/ui/icon/icon.md +125 -0
  618. package/docs/src/core/components/ui/icon/icons.json +1 -0
  619. package/docs/src/core/components/ui/image/image.md +107 -0
  620. package/docs/src/core/components/ui/link/link.md +43 -0
  621. package/docs/src/core/components/ui/loader/loader.md +55 -0
  622. package/docs/src/core/components/ui/menu/menu.md +329 -0
  623. package/docs/src/core/components/ui/modal/modal.md +119 -0
  624. package/docs/src/core/components/ui/pop/pop.md +96 -0
  625. package/docs/src/core/components/ui/progress/progress.md +63 -0
  626. package/docs/src/core/components/ui/table/table.md +455 -0
  627. package/docs/src/core/components/ui/toast/toast.md +166 -0
  628. package/docs/src/core/components/ui/tooltip/tooltip.md +82 -0
  629. package/docs/src/docs/_core-concept/dataFlow.md +79 -0
  630. package/docs/src/docs/_core-concept/overview.md +57 -0
  631. package/docs/src/docs/_core-concept/subscriber.md +75 -0
  632. package/docs/src/docs/_decorators/ancestor-attribute.md +127 -0
  633. package/docs/src/docs/_decorators/auto-subscribe.md +202 -0
  634. package/docs/src/docs/_decorators/bind.md +167 -0
  635. package/docs/src/docs/_decorators/get.md +77 -0
  636. package/docs/src/docs/_decorators/handle.md +175 -0
  637. package/docs/src/docs/_decorators/on-assign.md +390 -0
  638. package/docs/src/docs/_decorators/patch.md +45 -0
  639. package/docs/src/docs/_decorators/post.md +93 -0
  640. package/docs/src/docs/_decorators/publish.md +55 -0
  641. package/docs/src/docs/_decorators/put.md +43 -0
  642. package/docs/src/docs/_decorators/subscribe.md +100 -0
  643. package/docs/src/docs/_decorators/wait-for-ancestors.md +163 -0
  644. package/docs/src/docs/_directives/sub.md +91 -0
  645. package/docs/src/docs/_getting-started/ai-agents.md +56 -0
  646. package/docs/src/docs/_getting-started/concorde-manual-install.md +133 -0
  647. package/docs/src/docs/_getting-started/concorde-outside.md +33 -0
  648. package/docs/src/docs/_getting-started/create-a-component.md +139 -0
  649. package/docs/src/docs/_getting-started/my-first-component.md +236 -0
  650. package/docs/src/docs/_getting-started/my-first-subscriber.md +120 -0
  651. package/docs/src/docs/_getting-started/pubsub.md +37 -0
  652. package/docs/src/docs/_getting-started/start.md +47 -0
  653. package/docs/src/docs/_getting-started/theming.md +91 -0
  654. package/docs/src/docs/_misc/api-configuration.md +81 -0
  655. package/docs/src/docs/_misc/dataProviderKey.md +168 -0
  656. package/docs/src/docs/_misc/docs-mock-api.md +60 -0
  657. package/docs/src/docs/_misc/dynamic-path.md +71 -0
  658. package/docs/src/docs/_misc/endpoint.md +45 -0
  659. package/docs/src/docs/_misc/html-integration.md +13 -0
  660. package/docs/src/docs/search/docs-search.json +9117 -0
  661. package/docs/src/tag-list.json +1 -0
  662. package/docs/src/tsconfig-model.json +23 -0
  663. package/docs/src/tsconfig.declarations.json +22 -0
  664. package/docs/src/tsconfig.emit.json +23 -0
  665. package/docs/src/tsconfig.json +837 -0
  666. package/gitlab/job_github_mirror.sh +39 -0
  667. package/index.html +0 -1
  668. package/package.json +1084 -364
  669. package/public/docs-mock-api-sw.js +3 -2
  670. package/public/docs-mock-api-sw.js.map +2 -2
  671. package/scripts/github-export.mjs +150 -0
  672. package/scripts/post-build.mjs +43 -0
  673. package/scripts/pre-build.mjs +32 -4
  674. package/scripts/pre-publish.mjs +2 -0
  675. package/src/core/components/functional/queue/queue.ts +2 -2
  676. package/src/core/components/ui/modal/modal.ts +1 -1
  677. package/src/core/decorators/Subscriber.ts +1 -0
  678. package/src/core/decorators/api.spec.ts +74 -4
  679. package/src/core/decorators/api.ts +111 -30
  680. package/src/core/decorators/subscriber/ancestorAttribute.spec.ts +197 -0
  681. package/src/core/decorators/subscriber/ancestorAttribute.ts +40 -7
  682. package/src/core/decorators/subscriber/autoSubscribe.ts +7 -3
  683. package/src/core/mixins/Fetcher.ts +12 -6
  684. package/src/core/utils/AncestorAttributeObserver.ts +199 -0
  685. package/src/core/utils/HTML.ts +3 -11
  686. package/src/core/utils/PublisherProxy.ts +28 -37
  687. package/src/core/utils/api.ts +10 -10
  688. package/src/css.d.ts +19 -0
  689. package/src/directives.ts +3 -2
  690. package/src/docs/_decorators/ancestor-attribute.md +56 -8
  691. package/src/docs/_decorators/get.md +47 -1
  692. package/src/docs/components/docs-demo-sources.ts +20 -3
  693. package/src/docs/example/decorators-demo-geo.ts +5 -0
  694. package/src/docs/example/decorators-demo-subscribe-publish-get-demos.ts +72 -31
  695. package/src/docs/example/decorators-demo.ts +164 -8
  696. package/src/docs/mock-api/router.ts +3 -1
  697. package/src/docs/search/docs-search.json +92 -2
  698. package/src/tsconfig.declarations.json +22 -0
  699. package/src/tsconfig.emit.json +23 -0
  700. package/src/tsconfig.json +3 -285
  701. package/src/tsconfig.tsbuildinfo +1 -1
@@ -0,0 +1,139 @@
1
+ # Creating components
2
+
3
+ > **New app components:** start with [My first component](#docs/_getting-started/my-first-component.md/my-first-component) and [Data flow](#docs/_core-concept/dataFlow.md/dataFlow). The `Subscriber` mixin below is [legacy](#docs/_core-concept/subscriber.md/subscriber).
4
+
5
+ ## Where to put it?
6
+
7
+ In this document, we consider the src directory of the project as the root.<br>
8
+ We describe how we organize our components as an example, however it depends on your project.
9
+
10
+ In concorde each component is currently organized in the following directory structure (at least we try):
11
+
12
+ - **/core/components/functional/component-name/component-name.ts**
13
+ Generic/functional/generally unstyled component.
14
+ The component usually doesn't use any other concrete components.
15
+ - **/core/components/ui/component-name/component-name.ts**
16
+ Generic but UI-oriented component.
17
+ The component usually only uses generic components and other UI components.
18
+ - **la-billetterie/components/atoms/component-name/component-name.ts**
19
+ The component is intended to have a concrete usage within our ticketing system **"la-billetterie"**.
20
+ It usually only uses generic components from `core` and possibly other atoms.
21
+ - **la-billetterie/components/concrete-destination/component-name/component-name.ts**
22
+ The component has a specific destination: (event / cart / gift card): `/components/destination/`
23
+ The component uses various components, usually from the `/components/atoms` directory.
24
+ It does not use components at the same level in the file hierarchy.
25
+
26
+ ## Starting from a Simple Model
27
+
28
+ You can copy `example.ts` from the source to the desired destination to start with.
29
+ This file contains a web component in the form of a class that extends the `Subscriber` mixin, with a reactive property and a render function.
30
+
31
+ <sonic-code language="javascript">
32
+ <template>
33
+ import { html, LitElement } from "lit";
34
+ import { customElement, property } from "lit/decorators.js";
35
+ import Subscriber from "@supersoniks/concorde/core/mixins/Subscriber";
36
+
37
+ @customElement("sonic-example")
38
+ export class SonicComponent extends Subscriber(LitElement) {
39
+ @property() text = "Example";
40
+ render() {
41
+ return html`${this.text}`;
42
+ }
43
+ }
44
+ </template>
45
+ </sonic-code>
46
+
47
+ **You can remove the dependency on `Subscriber`** if automatic population of the component with external data is not required.
48
+ For example, for a UI component:
49
+
50
+
51
+ <sonic-code language="javascript">
52
+ <template>
53
+ import { html, LitElement } from "lit";
54
+ import { customElement, property } from "lit/decorators.js";
55
+
56
+ @customElement("sonic-example")
57
+ export class SonicComponent extends LitElement {
58
+ @property() text = "Example";
59
+ render() {
60
+ return html`${this.text}`;
61
+ }
62
+ }
63
+ </template>
64
+ </sonic-code>
65
+
66
+ Regarding `Subscriber`, see:
67
+
68
+ - [🔔 Subscriber](#docs/_core-concept/subscriber.md/subscriber)
69
+ - [🥨 Sharing Data](#docs/_getting-started/pubsub.md/pubsub)
70
+
71
+ ### Naming the Component
72
+
73
+ The class name is not necessarily important. However, it is important to **give it a component name prefixed with "sonic"** (or a prefix of your own) using the dedicated metadata already present in the copied document. For example, a button component would be named as follows:
74
+
75
+
76
+ <sonic-code language="typescript">
77
+ <template>
78
+ @customElement("sonic-button")
79
+ </template>
80
+ </sonic-code>
81
+
82
+ For less generic components with a specific destination, we advise to include the destination in the name.
83
+ For example, for a "title" component in the "event" destination, the name would be simply:
84
+
85
+
86
+ <sonic-code language="typescript">
87
+ <template>
88
+ @customElement("sonic-event-title")
89
+ </template>
90
+ </sonic-code>
91
+
92
+
93
+ ## Modifying It
94
+
95
+ #### Creating Reactive Properties and Modifying the Render Function
96
+
97
+ To do this, study the functioning of https://lit.dev and also refer to [Subscriber](#docs/_core-concept/subscriber.md/subscriber).
98
+
99
+ #### HTML Structure of a Component
100
+
101
+ The HTML structure of a component should remain as simple as possible.
102
+
103
+ Ideally, there should be only one additional level of elements in addition to slots.
104
+
105
+ - **The main component is already a wrapper**.
106
+ It receives classes to manage its layout, but it should not style internal elements.
107
+ - **Slots handle the visual organization** of elements.
108
+ - **The specificity of the component is expressed in this additional level** by adding a list, a functional native element (e.g., button), or another component.
109
+
110
+ This leads to the creation of more components and thus raises questions about the hierarchical organization of files. However, this tends to atomize their roles.
111
+
112
+ ## Referencing It
113
+
114
+ To compile the component, it needs to be referenced somewhere through an import statement. In particular, it is important to reference it in any component that uses it.
115
+
116
+ In the case where it can be directly used in a page, it should also be globally referenced, especially considering the creation of **specific bundles** in the future.
117
+
118
+ Here's where we add imports based on the component's location inside concorde as an example
119
+
120
+ - **/core/components/functional/component-name/component-name.ts**
121
+ In `/core/components/functional/functional.ts`, which is referenced in core.ts and imported in `index.ts`.
122
+ - **/core/components/ui/component-name/component-name.ts**
123
+ In `/core/components/ui/ui.ts`, which is referenced in core.ts and imported in `index.ts`.
124
+ - **la-billetterie/components/atoms/component-name/component-name.ts**
125
+ Nowhere else but where it will be used, except for possible **temporary** tests, for example, in `index.ts`.
126
+ - **la-billetterie/components/concrete-destination/component-name/component-name.ts**
127
+ In `la-billetterie/components/concrete-destination/destination-concrete.ts`.
128
+ If it's a new destination, you'll need to create the corresponding import .ts file and import it in `la-billetterie.ts`.
129
+
130
+ ## Using It
131
+
132
+ As a reminder, the component is simply integrated into the context by adding a tag with the component's name, for example:
133
+
134
+
135
+ <sonic-code language="html">
136
+ <template>
137
+ <sonic-event-title></sonic-event-title>
138
+ </template>
139
+ </sonic-code>
@@ -0,0 +1,236 @@
1
+ # My first component
2
+
3
+ Build a **Lit** user card with Tailwind and Concorde UI, then connect it to the **DataProvider** store: declare the **data configuration** (type, key, scope), and let **`@subscribe`** keep the card in sync.
4
+
5
+ > Legacy approach with the **Subscriber mixin**: [Legacy: My first subscriber](#docs/_getting-started/my-first-subscriber.md/my-first-subscriber).
6
+
7
+ ## 1. Lit component + Tailwind
8
+
9
+ Export Tailwind once (e.g. `src/docs/tailwind.ts` in this repo):
10
+
11
+ <sonic-code language="typescript">
12
+ <template>
13
+ import { css, unsafeCSS } from "lit";
14
+ import tailwindImport from "./css/tailwind.css?inline";
15
+
16
+ export const tailwind = css`${unsafeCSS(tailwindImport)}`;
17
+ </template>
18
+ </sonic-code>
19
+
20
+ User card — plain Lit properties and UI components (no store yet):
21
+
22
+ <sonic-code language="typescript">
23
+ <template>
24
+ import { html, LitElement } from "lit";
25
+ import { customElement, property } from "lit/decorators.js";
26
+ import { tailwind } from "../tailwind";
27
+
28
+ @customElement("docs-user")
29
+ export class DocsUser extends LitElement {
30
+ static styles = [tailwind];
31
+
32
+ @property({ type: String }) first_name = "";
33
+ @property({ type: String }) last_name = "";
34
+ @property({ type: String }) email = "";
35
+ @property({ type: String }) avatar = "";
36
+
37
+ render() {
38
+ return html`&lt;div class="flex items-center gap-3 rounded-md p-2"&gt;
39
+ &lt;sonic-image src=${this.avatar} rounded="md" ratio="1/1" class="w-16"&gt;&lt;/sonic-image&gt;
40
+ &lt;div&gt;
41
+ &lt;div&gt;${this.first_name} &lt;span class="font-bold"&gt;${this.last_name}&lt;/span&gt;&lt;/div&gt;
42
+ &lt;div class="text-sm text-neutral-400"&gt;${this.email}&lt;/div&gt;
43
+ &lt;/div&gt;
44
+ &lt;/div&gt;`;
45
+ }
46
+ }
47
+ </template>
48
+ </sonic-code>
49
+
50
+ ## 2. Data configuration
51
+
52
+ The card does not hard-code user fields anymore. You declare **what** is stored, **where** it lives, and **which ancestor scope** applies — then `@subscribe` mirrors that object on the component.
53
+
54
+ ### Type — shape of the data
55
+
56
+ `DocsUserData` documents the fields you expect at this scope (first name, email, avatar, …). TypeScript checks that `user` matches that shape.
57
+
58
+ <sonic-code language="typescript">
59
+ <template>
60
+ export type DocsUserData = {
61
+ first_name: string;
62
+ last_name: string;
63
+ email: string;
64
+ avatar: string;
65
+ };
66
+ </template>
67
+ </sonic-code>
68
+
69
+ ### Key — path in the DataProvider
70
+
71
+ `docsUserRowKey` points at the store segment to read. The path `"${dataProvider}"` is resolved at runtime from a property on the component (see scope below).
72
+
73
+ <sonic-code language="typescript">
74
+ <template>
75
+ import { DataProviderKey } from "@supersoniks/concorde/core/utils/dataProviderKey";
76
+
77
+ export const docsUserRowKey = new DataProviderKey&lt;
78
+ DocsUserData,
79
+ { dataProvider: string | null }
80
+ &gt;("${dataProvider}");
81
+ </template>
82
+ </sonic-code>
83
+
84
+ The second generic (`{ dataProvider: string | null }`) lists what the host must expose so `"${dataProvider}"` can be resolved. See [DataProviderKey](#docs/_misc/dataProviderKey.md/dataProviderKey) and [Dynamic path placeholders](#docs/_misc/dynamic-path.md/dynamic-path).
85
+
86
+ ### Scope — which store segment applies
87
+
88
+ A parent sets `dataProvider=${docsUserScopeAKey.path}` (or a list row sets `…/list-item/0`). [`@ancestorAttribute`](#docs/_decorators/ancestor-attribute.md/ancestor-attribute) copies that attribute onto `this.dataProvider`, so the key resolves to the correct branch.
89
+
90
+ <sonic-code language="typescript">
91
+ <template>
92
+ @ancestorAttribute("dataProvider")
93
+ dataProvider: string | null = null;
94
+ </template>
95
+ </sonic-code>
96
+
97
+ ### Subscribe — keep the card in sync
98
+
99
+ [`@subscribe`](#docs/_decorators/subscribe.md/subscribe) watches `docsUserRowKey` and updates `user` when the store changes. Use `@state()` so Lit re-renders. The template reads `this.user` like any other property.
100
+
101
+ <sonic-code language="typescript">
102
+ <template>
103
+ import { html, LitElement, nothing } from "lit";
104
+ import { customElement, state } from "lit/decorators.js";
105
+ import {
106
+ ancestorAttribute,
107
+ subscribe,
108
+ } from "@supersoniks/concorde/core/decorators/Subscriber";
109
+ import { docsUserRowKey, type DocsUserData } from "./users";
110
+ import { tailwind } from "../tailwind";
111
+
112
+ @customElement("docs-user")
113
+ export class DocsUser extends LitElement {
114
+ static styles = [tailwind];
115
+
116
+ @ancestorAttribute("dataProvider")
117
+ dataProvider: string | null = null;
118
+
119
+ @subscribe(docsUserRowKey)
120
+ @state()
121
+ user: DocsUserData | null = null;
122
+
123
+ render() {
124
+ const u = this.user;
125
+ if (!u) return nothing;
126
+ return html`&lt;div class="flex items-center gap-3 rounded-md p-2"&gt;
127
+ &lt;sonic-image src=${u.avatar} rounded="md" ratio="1/1" class="w-16"&gt;&lt;/sonic-image&gt;
128
+ &lt;div&gt;
129
+ &lt;div&gt;${u.first_name} &lt;span class="font-bold"&gt;${u.last_name}&lt;/span&gt;&lt;/div&gt;
130
+ &lt;div class="text-sm text-neutral-400"&gt;${u.email}&lt;/div&gt;
131
+ &lt;/div&gt;
132
+ &lt;/div&gt;`;
133
+ }
134
+ }
135
+ </template>
136
+ </sonic-code>
137
+
138
+ Live code: `src/docs/example/users.ts`. In this repo, imports use **`core/…` paths** (short `@supersoniks/concorde/…` exports apply in **consumer apps** only).
139
+
140
+ ### Two scopes, one component
141
+
142
+ The same `docs-user` is mounted twice. Each copy inherits a **different** nearest `dataProvider` — that is the row/list **scope**:
143
+
144
+ <sonic-code>
145
+ <template>
146
+ <docs-demo-sources for="docs-user-two-scopes"></docs-demo-sources>
147
+ <docs-user-two-scopes></docs-user-two-scopes>
148
+ </template>
149
+ </sonic-code>
150
+
151
+ Markup (two isolated stores; keys from `docs-provider-keys.ts`):
152
+
153
+ <sonic-code language="markup">
154
+ <template>
155
+ &lt;div class="grid md:grid-cols-2 gap-6"&gt;
156
+ &lt;div dataProvider="${docsUserScopeAKey.path}"&gt;
157
+ &lt;docs-user&gt;&lt;/docs-user&gt;
158
+ &lt;/div&gt;
159
+ &lt;div dataProvider="${docsUserScopeBKey.path}"&gt;
160
+ &lt;docs-user&gt;&lt;/docs-user&gt;
161
+ &lt;/div&gt;
162
+ &lt;/div&gt;
163
+ </template>
164
+ </sonic-code>
165
+
166
+ Seeded in `docs-provider-keys.ts` (`set(docsUserScopeAKey, …)`): **Paul** / **Marie**. Without `@ancestorAttribute`, both cards would not know which store to read.
167
+
168
+ ## 3. Fetch users — `sonic-list` with `.items`
169
+
170
+ Use a Lit parent and the **`items`** renderer (not HTML `<template>` children). The callback receives each row object from fetch — render fields directly (`${item.first_name}`, …), like porting a template that used `data-bind` / `<sonic-value>`.
171
+
172
+ <sonic-code>
173
+ <template>
174
+ <docs-lit-demo for="docs-users-list"></docs-lit-demo>
175
+ </template>
176
+ </sonic-code>
177
+
178
+ Wrapper (`docs-users-list.ts`):
179
+
180
+ <sonic-code language="typescript">
181
+ <template>
182
+ import { html, LitElement } from "lit";
183
+ import { customElement } from "lit/decorators.js";
184
+ import "../../core/components/functional/list/list";
185
+ import "./users";
186
+
187
+ @customElement("docs-users-list")
188
+ export class DocsUsersList extends LitElement {
189
+ private items = ({ first_name, last_name, email, avatar }) => html`
190
+ &lt;div class="flex gap-3"&gt;
191
+ &lt;sonic-image src=${avatar} ...&gt;&lt;/sonic-image&gt;
192
+ &lt;div&gt;${first_name} &lt;b&gt;${last_name}&lt;/b&gt;&lt;/div&gt;
193
+ &lt;div class="text-sm text-neutral-400"&gt;${email}&lt;/div&gt;
194
+ &lt;/div&gt;
195
+ `;
196
+
197
+ render() {
198
+ return html`
199
+ &lt;sonic-list fetch dataProvider=${usersListEndpoint.path} key="data" .items=${this.items}&gt;&lt;/sonic-list&gt;
200
+ `;
201
+ }
202
+ }
203
+ </template>
204
+ </sonic-code>
205
+
206
+ See [Local API demos](#docs/_misc/docs-mock-api.md/docs-mock-api) for `serviceURL="/docs-mock-api"`.
207
+
208
+ ## 4. Form preview with `formDataProvider`
209
+
210
+ Edit fields in a form; the card follows the same `docsUserRowKey` when the preview host sets `dataProvider="userPreview"`.
211
+
212
+ <sonic-code>
213
+ <template>
214
+ <div class="grid grid-cols-1 gap-4 max-w-xl">
215
+ <form formDataProvider="${docsUserPreviewKey.path}" class="grid grid-cols-2 gap-3">
216
+ <sonic-input label="First name" name="first_name" value="Paul" size="sm"></sonic-input>
217
+ <sonic-input label="Last name" name="last_name" value="Metrand" size="sm"></sonic-input>
218
+ <sonic-input class="col-span-2" label="Email" name="email" value="paul@example.com" size="sm"></sonic-input>
219
+ <sonic-input class="col-span-2" label="Avatar URL" name="avatar" value="https://i.pravatar.cc/150?u=paul" size="sm"></sonic-input>
220
+ </form>
221
+ <sonic-divider align="left">Preview</sonic-divider>
222
+ <div dataProvider="${docsUserPreviewKey.path}">
223
+ <docs-user></docs-user>
224
+ </div>
225
+ </div>
226
+ </template>
227
+ </sonic-code>
228
+
229
+ Use `formDataProvider` + `name` on inputs — no manual `@input` handlers ([Data flow](#docs/_core-concept/dataFlow.md/dataFlow)).
230
+
231
+ ## Next steps
232
+
233
+ - [Data flow](#docs/_core-concept/dataFlow.md/dataFlow) — full map
234
+ - [DataProviderKey](#docs/_misc/dataProviderKey.md/dataProviderKey) — typed paths and host constraints
235
+ - [@subscribe](#docs/_decorators/subscribe.md/subscribe) / [sub()](#docs/_directives/sub.md/sub) — read-only in templates
236
+ - [List](#core/components/functional/list/list.md/list) — `.items`, `.noItems`, `.skeleton`
@@ -0,0 +1,120 @@
1
+ # Legacy: My first subscriber component
2
+
3
+ > **New projects:** use [My first component](#docs/_getting-started/my-first-component.md/my-first-component) (`@ancestorAttribute`, `@subscribe` + `DataProviderKey`, `.items` on lists) and [Data flow](#docs/_core-concept/dataFlow.md/dataFlow). This page documents the **Subscriber mixin** used by older apps and core components.
4
+
5
+ Learn how to build a component with the **Subscriber** mixin, styled with Tailwind, filled from a DataProvider via automatic property mapping.
6
+
7
+ ## Create a classic lit component
8
+
9
+ <sonic-code language="javascript" >
10
+ <template>
11
+ import { html, LitElement, nothing } from "lit";
12
+ import { customElement, property } from "lit/decorators.js";
13
+ @customElement("docs-user")
14
+ export class user extends LitElement {
15
+ @property({ type: String }) first_name = "";
16
+ @property({ type: String }) last_name = "";
17
+ @property({ type: String }) avatar = "";
18
+ @property({ type: String }) email = "";
19
+ render() {
20
+ return html`
21
+ &lt;img src="${this.avatar}" /&gt; &lt;br&gt;
22
+ ${this.first_name} ${this.last_name} &lt;br&gt;
23
+ ${this.email}`;
24
+ }
25
+ }
26
+ </template>
27
+ </sonic-code>
28
+
29
+ ### Style with tailwind and ui components
30
+
31
+ <sonic-code language="javascript">
32
+ <template>
33
+ import { css, unsafeCSS } from "lit";
34
+ import tailwindImport from "./css/tailwind.css?inline";
35
+ export const tailwind = css`${unsafeCSS(tailwindImport)}`;
36
+ </template>
37
+ </sonic-code>
38
+
39
+ <sonic-code language="javascript">
40
+ <template>
41
+ import { html, LitElement } from "lit";
42
+ import { customElement, property } from "lit/decorators.js";
43
+ import { tailwind } from "../tailwind";
44
+ import '@supersoniks/concode/ui/image'
45
+ import '@supersoniks/concode/ui/button'
46
+ import '@supersoniks/concode/ui/icon'
47
+ @customElement("docs-user")
48
+ export class user extends LitElement {
49
+ static styles = [tailwind];
50
+ @property({ type: String }) first_name = "";
51
+ @property({ type: String }) last_name = "";
52
+ @property({ type: String }) avatar = "";
53
+ @property({ type: String }) email = "";
54
+ render() {
55
+ return html`&lt;div class="flex items-center gap-3 p-2"&gt;
56
+ &lt;sonic-image src=${this.avatar} rounded="md" ratio="1/1" class="w-16"&gt;&lt;/sonic-image&gt;
57
+ &lt;div&gt;${this.first_name} &lt;span class="font-bold"&gt;${this.last_name}&lt;/span&gt;&lt;/div&gt;
58
+ &lt;div class="text-sm text-neutral-400"&gt;${this.email}&lt;/div&gt;
59
+ &lt;/div&gt;`;
60
+ }
61
+ }
62
+ </template>
63
+ </sonic-code>
64
+
65
+ ## Add Subscriber mixin
66
+
67
+ <sonic-code language="javascript">
68
+ <template>
69
+ import Subscriber from "@supersoniks/concorde/core/mixins/Subscriber";
70
+ @customElement("docs-user")
71
+ export class user extends Subscriber(LitElement) {
72
+ // properties auto-filled from DataProvider when names match
73
+ }
74
+ </template>
75
+ </sonic-code>
76
+
77
+ See [Legacy: Subscriber mixin](#docs/_core-concept/subscriber.md/subscriber).
78
+
79
+ ## Autofill from a dataProvider
80
+
81
+ <sonic-code >
82
+ <template>
83
+ <docs-demo-sources for="list-users-fetch"></docs-demo-sources>
84
+ <div serviceURL="/docs-mock-api">
85
+ <sonic-fetch
86
+ serviceURL="/docs-mock-api"
87
+ dataProvider="api/users/3"
88
+ key="data">
89
+ <docs-user></docs-user>
90
+ </sonic-fetch>
91
+ </div>
92
+ </template>
93
+ </sonic-code>
94
+
95
+ <sonic-code >
96
+ <template>
97
+ <sonic-fetch
98
+ serviceURL="/docs-mock-api"
99
+ dataProvider="api/users/2"
100
+ key="data"></sonic-fetch>
101
+ <docs-user dataProvider="api/users/2" ></docs-user>
102
+ </template>
103
+ </sonic-code>
104
+
105
+ <sonic-code >
106
+ <template>
107
+ <div class="grid grid-cols-1 gap-4">
108
+ <form formDataProvider="userPreview" class="grid grid-cols-4 gap-3" >
109
+ <sonic-input label="First name" type="text" name="first_name" value="Paul" size="sm"></sonic-input>
110
+ <sonic-input label="Last name" type="text" name="last_name" value="Metrand" size="sm"></sonic-input>
111
+ <sonic-input class="col-span-2" label="email" type="text" name="email" value="paul@example.com" size="sm"></sonic-input>
112
+ <sonic-input label="Image url" type="text" name="avatar" value="https://i.pravatar.cc/150?u=paul" size="sm"></sonic-input>
113
+ </form>
114
+ <sonic-divider align="left">Preview before submit</sonic-divider>
115
+ <div dataProvider="userPreview">
116
+ <docs-user></docs-user>
117
+ </div>
118
+ </div>
119
+ </template>
120
+ </sonic-code>
@@ -0,0 +1,37 @@
1
+ # Legacy: Sharing data
2
+
3
+ > **New apps:** [Data flow](#docs/_core-concept/dataFlow.md/dataFlow) (`get` / `set` / `DataProviderKey`, decorators). This page documents the historical **Publisher** proxy API (`PublisherManager`, `publisher.set`, `onAssign`, …).
4
+
5
+ This section describes how data is shared between graphical and non-graphical components.
6
+
7
+ Graphical components should not reference each other directly — they stay decoupled via a **publish/subscribe** store.
8
+
9
+ ## The Publisher
10
+
11
+ ### Principle
12
+
13
+ * The **publisher** is a [JavaScript proxy](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Proxy) that holds data.<br>
14
+ Example: `{foo:{hello:["world"]}, bar:"baz"}`
15
+
16
+ * Accessing a property (`myPublisher.foo.hello`) returns another **publisher** for that segment.
17
+
18
+ * Missing properties create a publisher with internal data `null`, filled later.
19
+
20
+ * **Subscribers** listen via `onAssign`, `onInternalMutation`, template filling on the **Subscriber mixin**, etc.
21
+
22
+ * Updates use `publisher.set(...)` or nested assignment; changes propagate to subscribers.
23
+
24
+ ❇️ Order of creation vs subscription theoretically does not matter.
25
+
26
+ ### Methods
27
+
28
+ * **set** — replace internal value
29
+ <sonic-code language="javascript"><template>publisher.set({foo:{hello:["world"]}, bar:"baz"});</template></sonic-code>
30
+
31
+ * **get** — read internal value
32
+ <sonic-code language="javascript"><template>publisher.get()</template></sonic-code>
33
+
34
+ * **onAssign / offAssign** — react to `set`
35
+ <sonic-code language="javascript"><template>publisher.a.b.onAssign(console.log);</template></sonic-code>
36
+
37
+ Modern equivalent: `get` / `set` / `@handle` — see [Data flow](#docs/_core-concept/dataFlow.md/dataFlow).
@@ -0,0 +1,47 @@
1
+ # Introduction
2
+
3
+ ## What is Concorde?
4
+
5
+ Based on **[lit.dev](https://lit.dev)**, Concorde is a collection of web components for shared apps and websites.
6
+ Build UIs without tying components to a specific host stack, while keeping visual consistency through a small set of CSS variables.
7
+
8
+ ## Why and use case
9
+
10
+ In 2022, Supersoniks needed a new ticketing stack for nearly 100 sites — mobile apps, modern sites, and legacy PHP without bundlers.
11
+ One composable web-component library replaced many one-off apps. Lit was chosen for broad runtime compatibility.
12
+
13
+ ### Stack
14
+
15
+ * Lit
16
+ * TypeScript
17
+ * Vite
18
+ * Tailwind (starter kit, not required in the core package)
19
+
20
+ ### Functional features
21
+
22
+ * **DataProvider** store (decorators, `get` / `set`)
23
+ * Forms (`formDataProvider`)
24
+ * Lists, queues, lazy loading
25
+ * Router, states, UI kit with status variants
26
+
27
+ ## Learn Concorde
28
+
29
+ | Step | Page |
30
+ |------|------|
31
+ | 1 | [My first component](#docs/_getting-started/my-first-component.md/my-first-component) — Lit card, `@ancestorAttribute`, `@bind`, mock API |
32
+ | 2 | [Data flow](#docs/_core-concept/dataFlow.md/dataFlow) — Core concepts: decorators and APIs |
33
+ | 3 | [Local API demos](#docs/_misc/docs-mock-api.md/docs-mock-api) — offline `serviceURL` for this site (Misc) |
34
+ | 4 | [create-concorde-ts-starter](https://www.npmjs.com/package/@supersoniks/create-concorde-ts-starter) — **recommended** project kit (Vite, Tailwind, `yarn ai:sync`) |
35
+ | 5 | [AI agents (skills)](#docs/_getting-started/ai-agents.md/ai-agents) — `AGENTS.md`, Cursor / JetBrains rules |
36
+
37
+ Legacy (Subscriber mixin, Publisher API): **Legacy** section at the bottom of the sidebar.
38
+
39
+ ## Start a new project
40
+
41
+ <sonic-code language="bash">
42
+ <template>
43
+ npx @supersoniks/create-concorde-ts-starter "project_name"
44
+ </template>
45
+ </sonic-code>
46
+
47
+ The starter runs **`yarn ai:sync`** for you. Details: [AI agents (skills)](#docs/_getting-started/ai-agents.md/ai-agents). Manual Vite setup: [Legacy: Manual installation](#docs/_getting-started/concorde-manual-install.md/concorde-manual-install).
@@ -0,0 +1,91 @@
1
+ # Adding styles
2
+
3
+ ## Normal Behavior
4
+
5
+ No style crosses the shadow root of a component, except for inheritable properties (which have the "inherit" property possible) and CSS variables.
6
+ Properties integrated via a "[slot](https://developer.mozilla.org/en/docs/Web/HTML/Element/slot)" remain stylizable in a conventional way.
7
+
8
+ - **During creation / from the inside:**
9
+ - We edit the [static "styles" property of the lit component](https://lit.dev/docs/components/styles/), which can also reference shared and dynamic styles.
10
+ These styles are scoped and do not impact the outside.
11
+ - We use CSS variables as the value of properties intended to be customized from the outside.
12
+ For each variable, we define a default value to have a simple but consistent base style.
13
+ - We only rewrite inheritable properties with hard values if they are truly specific to the component.
14
+ - The `<style>` tag as a direct child can be used as a last resort, especially if there is a need for particularly dynamic customization. Performance is reduced.
15
+ - **During use / from the outside:**
16
+ We define values for **inheritable CSS properties** (e.g., font-\_, color...) using tools like Tailwind.
17
+ We modify the value of **CSS variables** used by the component.
18
+
19
+ ## Choosing Style Presets via Reactive Properties:
20
+
21
+ The declaration of reactive properties is useful for selecting a particular configuration that mostly affects a set of properties.
22
+
23
+ For example, a `size` property (xs, sm, md, xl) will affect margins, font, line heights to align them with the corresponding CSS vars, which can be customized using the methods mentioned earlier if necessary.
24
+
25
+ It is recommended to use the `{reflect: true}` property for reactive properties that have an associated style on the `:host()`. For example: `:host([type='primary']){...}`
26
+
27
+ ☢️ **Caution:** Passing class names via reactive properties / HTML attributes of the component should be avoided as it can quickly lead to difficult-to-manage situations.
28
+
29
+ #### CSS "display" Property
30
+
31
+ By default, the display property is `inline`.
32
+ Therefore, be careful to define it according to the needs, as one might mistakenly expect it to be `block` as with a regular `<div>`.
33
+
34
+ ☢️ **Caution:** Defining the `display` property as `contents` may seem attractive at first, but:
35
+
36
+ - It almost always leads to the creation of wrappers to style the content (instead of using `:host`).
37
+ - It is no longer possible to directly add classes to the component or style it from the outside.
38
+ Ultimately, the amount of code to write increases significantly.
39
+
40
+ ## TAILWIND Functional Classes
41
+
42
+ [tailwind](https://tailwindcss.com/) has been integrated into Concorde and is available in scoped components (with Shadow DOM).
43
+ To use it, you need to import the following:
44
+
45
+ <sonic-code language="javascript">
46
+ <template>
47
+ import { tailwind } from "@supersoniks/concorde/la-billetterie/ui/theme/theme";
48
+ </template>
49
+ </sonic-code>
50
+
51
+ Then include the `tailwind` style in the static `styles` property of the component:
52
+
53
+ <sonic-code language="javascript">
54
+ <template>
55
+ static styles = [tailwind];
56
+ </template>
57
+ </sonic-code>
58
+
59
+ Finally, use it in the HTML within the render function:
60
+
61
+ <sonic-code language="html">
62
+ <template>
63
+ <p class="m-2">A paragraph with margin</p>
64
+ </template>
65
+ </sonic-code>
66
+
67
+ The colors from Concorde's theme are referenced in Tailwind's theme.
68
+
69
+ ## Operation without Shadow DOM
70
+
71
+ ### Usefulness
72
+
73
+ This operation is particularly useful when it comes to **adding behavior to a simple existing element**.
74
+ It may also become necessary to establish **compatibility with a traditional JS library**.
75
+
76
+ For example, with a text input:
77
+
78
+ - Trigger automatic data or filter update when typing text.
79
+ - Automatic formatting.
80
+ - Constraints that cannot be handled by native methods.
81
+
82
+ ### Consequences
83
+
84
+ If there is no shadow DOM (see the **noShadowDom** property of **Subscriber**):
85
+
86
+ - Styling using the static "styles" property of the lit component will not be applied.
87
+ - The element and its content can be styled in a traditional manner.
88
+
89
+ For example, the components `queue`, `list`, and `fetch` do not have a shadow DOM.
90
+
91
+ ℹ️ **Note:** Specifically in this case, it may be useful to set the `display` property to `contents`.