@supersoniks/concorde 5.1.1 → 5.1.3-immutable.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 (459) hide show
  1. package/.agents/skills/concorde-docs/SKILL.md +153 -0
  2. package/.agents/skills/{concorde-component-docs/template.md → concorde-docs/templates/component.md} +6 -2
  3. package/.agents/skills/concorde-docs/templates/decorator.md +43 -0
  4. package/.agents/skills/concorde-docs/templates/guide.md +25 -0
  5. package/.claude/skills +1 -0
  6. package/.github/workflows/ci.yml +21 -0
  7. package/.github-export-ignore +30 -0
  8. package/CONTRIBUTING.md +59 -0
  9. package/DEV.md +54 -0
  10. package/LICENSE +21 -0
  11. package/OPEN_SOURCE_CHECKPOINT.md +133 -0
  12. package/README.md +4 -4
  13. package/ai/README.md +29 -41
  14. package/ai/skills/concorde/SKILL.md +54 -324
  15. package/ai/skills/concorde/rules/composition.md +32 -0
  16. package/ai/skills/concorde/rules/data.md +47 -0
  17. package/ai/skills/concorde/rules/http.md +25 -0
  18. package/ai/skills/concorde/rules/lists-forms.md +35 -0
  19. package/ai/skills/concorde/rules/styling.md +46 -0
  20. package/ai/skills/concorde/rules/troubleshooting.md +45 -0
  21. package/build-infos.json +1 -1
  22. package/concorde-core.bundle.js +177 -177
  23. package/concorde-core.es.js +4993 -4833
  24. package/custom-elements-manifest.public.config.mjs +8 -0
  25. package/{.tmp-cem/custom-elements.json → custom-elements.json} +11758 -8904
  26. package/dist/concorde-core.bundle.js +177 -177
  27. package/dist/concorde-core.es.js +4993 -4833
  28. package/dist/docs-mock-api-sw.js +58 -223
  29. package/dist/docs-mock-api-sw.js.map +4 -4
  30. package/dist/img/concorde/plane_01.jpg +0 -0
  31. package/dist/img/concorde/plane_02.jpg +0 -0
  32. package/dist/img/concorde/plane_03.jpg +0 -0
  33. package/dist/img/concorde/plane_04.jpg +0 -0
  34. package/dist/img/concorde/plane_05.jpg +0 -0
  35. package/dist/img/concorde/plane_06.jpg +0 -0
  36. package/dist/img/concorde/plane_07.jpg +0 -0
  37. package/dist/img/concorde/plane_08.jpg +0 -0
  38. package/dist/img/concorde/plane_09.jpg +0 -0
  39. package/dist/img/concorde/plane_10.jpg +0 -0
  40. package/dist/img/concorde/plane_11.jpg +0 -0
  41. package/dist/img/concorde/plane_12.jpg +0 -0
  42. package/dist/img/concorde/plane_13.jpg +0 -0
  43. package/dist/img/og-concorde.jpg +0 -0
  44. package/dist/robots.txt +11 -10
  45. package/docs/assets/index-D_alEsng.js +12122 -0
  46. package/docs/crawl/core/components/functional/date/date.html +190 -0
  47. package/docs/crawl/core/components/functional/fetch/fetch.html +109 -0
  48. package/docs/crawl/core/components/functional/if/if.html +27 -0
  49. package/docs/crawl/core/components/functional/jsonata/jsonata.html +79 -0
  50. package/docs/crawl/core/components/functional/list/list.html +70 -0
  51. package/docs/crawl/core/components/functional/mix/mix.html +45 -0
  52. package/docs/crawl/core/components/functional/queue/queue.html +96 -0
  53. package/docs/crawl/core/components/functional/router/router.html +106 -0
  54. package/docs/crawl/core/components/functional/sdui/sdui-extension-points.html +126 -0
  55. package/docs/crawl/core/components/functional/sdui/sdui.html +368 -0
  56. package/docs/crawl/core/components/functional/states/states.html +66 -0
  57. package/docs/crawl/core/components/functional/submit/submit.html +160 -0
  58. package/docs/crawl/core/components/functional/subscriber/subscriber.html +67 -0
  59. package/docs/crawl/core/components/functional/value/value.html +51 -0
  60. package/docs/crawl/core/components/ui/alert/alert.html +211 -0
  61. package/docs/crawl/core/components/ui/alert-messages/alert-messages.html +131 -0
  62. package/docs/crawl/core/components/ui/badge/badge.html +197 -0
  63. package/docs/crawl/core/components/ui/button/button.html +150 -0
  64. package/docs/crawl/core/components/ui/captcha/captcha.html +112 -0
  65. package/docs/crawl/core/components/ui/card/card.html +253 -0
  66. package/docs/crawl/core/components/ui/divider/divider.html +144 -0
  67. package/docs/crawl/core/components/ui/form/checkbox/checkbox.html +73 -0
  68. package/docs/crawl/core/components/ui/form/fieldset/fieldset.html +266 -0
  69. package/docs/crawl/core/components/ui/form/form-actions/form-actions.html +122 -0
  70. package/docs/crawl/core/components/ui/form/form-layout/form-layout.html +121 -0
  71. package/docs/crawl/core/components/ui/form/input/input.html +109 -0
  72. package/docs/crawl/core/components/ui/form/input-autocomplete/input-autocomplete.html +38 -0
  73. package/docs/crawl/core/components/ui/form/radio/radio.html +56 -0
  74. package/docs/crawl/core/components/ui/form/select/select.html +73 -0
  75. package/docs/crawl/core/components/ui/form/switch/switch.html +56 -0
  76. package/docs/crawl/core/components/ui/form/textarea/textarea.html +59 -0
  77. package/docs/crawl/core/components/ui/group/group.html +104 -0
  78. package/docs/crawl/core/components/ui/icon/icon.html +222 -0
  79. package/docs/crawl/core/components/ui/image/image.html +298 -0
  80. package/docs/crawl/core/components/ui/link/link.html +100 -0
  81. package/docs/crawl/core/components/ui/loader/loader.html +124 -0
  82. package/docs/crawl/core/components/ui/menu/menu.html +394 -0
  83. package/docs/crawl/core/components/ui/modal/modal.html +342 -0
  84. package/docs/crawl/core/components/ui/pop/pop.html +296 -0
  85. package/docs/crawl/core/components/ui/progress/progress.html +131 -0
  86. package/docs/crawl/core/components/ui/table/table.html +545 -0
  87. package/docs/crawl/core/components/ui/theme/theme.html +131 -0
  88. package/docs/crawl/core/components/ui/toast/toast.html +233 -0
  89. package/docs/crawl/core/components/ui/tooltip/tooltip.html +140 -0
  90. package/docs/crawl/docs/_core-concept/dataFlow.html +177 -0
  91. package/docs/crawl/docs/_core-concept/overview.html +66 -0
  92. package/docs/crawl/docs/_core-concept/subscriber.html +75 -0
  93. package/docs/crawl/docs/_decorators/ancestor-attribute.html +117 -0
  94. package/docs/crawl/docs/_decorators/auto-subscribe.html +202 -0
  95. package/docs/crawl/docs/_decorators/bind.html +141 -0
  96. package/docs/crawl/docs/_decorators/get.html +149 -0
  97. package/docs/crawl/docs/_decorators/handle.html +165 -0
  98. package/docs/crawl/docs/_decorators/on-assign.html +355 -0
  99. package/docs/crawl/docs/_decorators/patch.html +78 -0
  100. package/docs/crawl/docs/_decorators/post.html +139 -0
  101. package/docs/crawl/docs/_decorators/publish.html +61 -0
  102. package/docs/crawl/docs/_decorators/put.html +78 -0
  103. package/docs/crawl/docs/_decorators/subscribe.html +109 -0
  104. package/docs/crawl/docs/_decorators/wait-for-ancestors.html +137 -0
  105. package/docs/crawl/docs/_directives/sub.html +93 -0
  106. package/docs/crawl/docs/_getting-started/ai-agents.html +173 -0
  107. package/docs/crawl/docs/_getting-started/concorde-manual-install.html +100 -0
  108. package/docs/crawl/docs/_getting-started/concorde-outside.html +58 -0
  109. package/docs/crawl/docs/_getting-started/create-a-component.html +111 -0
  110. package/docs/crawl/docs/_getting-started/my-first-component.html +189 -0
  111. package/docs/crawl/docs/_getting-started/my-first-subscriber.html +110 -0
  112. package/docs/crawl/docs/_getting-started/pubsub.html +62 -0
  113. package/docs/crawl/docs/_getting-started/start.html +76 -0
  114. package/docs/crawl/docs/_getting-started/theming.html +333 -0
  115. package/docs/crawl/docs/_misc/api-configuration.html +149 -0
  116. package/docs/crawl/docs/_misc/dataProviderKey.html +135 -0
  117. package/docs/crawl/docs/_misc/docs-mock-api.html +158 -0
  118. package/docs/crawl/docs/_misc/dynamic-path.html +180 -0
  119. package/docs/crawl/docs/_misc/endpoint.html +50 -0
  120. package/docs/crawl/docs/_misc/formelement-subscriber-removal.html +138 -0
  121. package/docs/crawl/docs/_misc/html-integration.html +48 -0
  122. package/docs/crawl/hubs/decorators.html +547 -0
  123. package/docs/crawl/hubs/form-components.html +381 -0
  124. package/docs/crawl/hubs/remote-data.html +452 -0
  125. package/docs/crawl/index.html +103 -0
  126. package/docs/index.html +1 -1
  127. package/docs/llms-full.txt +7174 -0
  128. package/docs/llms.txt +98 -0
  129. package/docs/sitemap.xml +243 -0
  130. package/docs/src/core/components/functional/date/date.md +290 -0
  131. package/docs/src/core/components/functional/fetch/fetch.md +125 -0
  132. package/docs/src/core/components/functional/if/if.md +9 -0
  133. package/docs/src/core/components/functional/jsonata/jsonata.md +56 -0
  134. package/docs/src/core/components/functional/list/list.md +65 -0
  135. package/docs/src/core/components/functional/mix/mix.md +41 -0
  136. package/docs/src/core/components/functional/queue/queue.md +72 -0
  137. package/docs/src/core/components/functional/router/router.md +94 -0
  138. package/docs/src/core/components/functional/sdui/component-catalog.gaps.json +511 -0
  139. package/docs/src/core/components/functional/sdui/component-catalog.json +3103 -0
  140. package/docs/src/core/components/functional/sdui/default-library.json +108 -0
  141. package/docs/src/core/components/functional/sdui/example.json +99 -0
  142. package/docs/src/core/components/functional/sdui/sdui-extension-points.md +94 -0
  143. package/docs/src/core/components/functional/sdui/sdui.md +478 -0
  144. package/docs/src/core/components/functional/states/states.md +87 -0
  145. package/docs/src/core/components/functional/submit/submit.md +114 -0
  146. package/docs/src/core/components/functional/subscriber/subscriber.md +91 -0
  147. package/docs/src/core/components/functional/value/value.md +35 -0
  148. package/docs/src/core/components/ui/alert/alert.md +196 -0
  149. package/docs/src/core/components/ui/alert-messages/alert-messages.md +85 -0
  150. package/docs/src/core/components/ui/badge/badge.md +188 -0
  151. package/docs/src/core/components/ui/button/button.md +183 -0
  152. package/docs/src/core/components/ui/captcha/captcha.md +71 -0
  153. package/docs/src/core/components/ui/card/card.md +215 -0
  154. package/docs/src/core/components/ui/divider/divider.md +129 -0
  155. package/docs/src/core/components/ui/form/checkbox/checkbox.md +77 -0
  156. package/docs/src/core/components/ui/form/fieldset/fieldset.md +205 -0
  157. package/docs/src/core/components/ui/form/form-actions/form-actions.md +100 -0
  158. package/docs/src/core/components/ui/form/form-layout/form-layout.md +119 -0
  159. package/docs/src/core/components/ui/form/input/input.md +142 -0
  160. package/docs/src/core/components/ui/form/radio/radio.md +57 -0
  161. package/docs/src/core/components/ui/form/select/select.md +71 -0
  162. package/docs/src/core/components/ui/form/switch/switch.md +57 -0
  163. package/docs/src/core/components/ui/form/textarea/textarea.md +65 -0
  164. package/docs/src/core/components/ui/group/group.md +75 -0
  165. package/docs/src/core/components/ui/icon/icon.md +214 -0
  166. package/docs/src/core/components/ui/icon/icons.json +1 -0
  167. package/docs/src/core/components/ui/image/image.md +233 -0
  168. package/docs/src/core/components/ui/link/link.md +81 -0
  169. package/docs/src/core/components/ui/loader/loader.md +112 -0
  170. package/docs/src/core/components/ui/menu/menu.md +370 -0
  171. package/docs/src/core/components/ui/modal/modal.md +235 -0
  172. package/docs/src/core/components/ui/pop/pop.md +294 -0
  173. package/docs/src/core/components/ui/progress/progress.md +109 -0
  174. package/docs/src/core/components/ui/table/table.md +431 -0
  175. package/docs/src/core/components/ui/theme/theme.md +122 -0
  176. package/docs/src/core/components/ui/toast/toast.md +216 -0
  177. package/docs/src/core/components/ui/tooltip/tooltip.md +124 -0
  178. package/{src → docs/src}/docs/_core-concept/subscriber.md +0 -0
  179. package/{src → docs/src}/docs/_getting-started/my-first-subscriber.md +0 -0
  180. package/{src → docs/src}/docs/_getting-started/pubsub.md +0 -0
  181. package/docs/src/docs/_getting-started/theming.md +253 -0
  182. package/docs/src/docs/search/docs-search.json +12242 -0
  183. package/docs/src/tag-list.json +1 -0
  184. package/docs/src/tsconfig-model.json +23 -0
  185. package/docs/src/tsconfig.declarations.json +22 -0
  186. package/docs/src/tsconfig.emit.json +23 -0
  187. package/docs/src/tsconfig.json +1332 -0
  188. package/gitlab/job_github_mirror.sh +39 -0
  189. package/index.html +157 -5
  190. package/package.json +22 -4
  191. package/public/docs-mock-api-sw.js +58 -223
  192. package/public/docs-mock-api-sw.js.map +4 -4
  193. package/public/img/concorde/plane_01.jpg +0 -0
  194. package/public/img/concorde/plane_02.jpg +0 -0
  195. package/public/img/concorde/plane_03.jpg +0 -0
  196. package/public/img/concorde/plane_04.jpg +0 -0
  197. package/public/img/concorde/plane_05.jpg +0 -0
  198. package/public/img/concorde/plane_06.jpg +0 -0
  199. package/public/img/concorde/plane_07.jpg +0 -0
  200. package/public/img/concorde/plane_08.jpg +0 -0
  201. package/public/img/concorde/plane_09.jpg +0 -0
  202. package/public/img/concorde/plane_10.jpg +0 -0
  203. package/public/img/concorde/plane_11.jpg +0 -0
  204. package/public/img/concorde/plane_12.jpg +0 -0
  205. package/public/img/concorde/plane_13.jpg +0 -0
  206. package/public/img/og-concorde.jpg +0 -0
  207. package/public/robots.txt +11 -10
  208. package/scripts/ai-init.mjs +104 -379
  209. package/scripts/ai-init.test.mjs +81 -239
  210. package/scripts/docs-markdown-vite-plugin.ts +43 -0
  211. package/scripts/docs-public-url.mjs +56 -0
  212. package/scripts/docs.htaccess +82 -0
  213. package/scripts/generate-cem.mjs +244 -0
  214. package/scripts/generate-cem.test.mjs +122 -0
  215. package/scripts/generate-crawl-docs.mjs +233 -118
  216. package/scripts/generate-crawl-docs.test.mjs +124 -0
  217. package/scripts/generate-sdui-catalog.mjs +11 -10
  218. package/scripts/github-export.mjs +150 -0
  219. package/scripts/post-build-docs.js +37 -50
  220. package/scripts/post-build.mjs +0 -0
  221. package/scripts/pre-publish.mjs +2 -1
  222. package/scripts/site-pages.mjs +212 -0
  223. package/scripts/site-pages.test.mjs +116 -0
  224. package/site-pages/about.md +22 -0
  225. package/site-pages/privacy.md +32 -0
  226. package/src/core/components/functional/date/date.md +91 -231
  227. package/src/core/components/functional/example/example.ts +3 -1
  228. package/src/core/components/functional/fetch/fetch.md +66 -83
  229. package/src/core/components/functional/if/if.md +28 -3
  230. package/src/core/components/functional/if/if.ts +0 -0
  231. package/src/core/components/functional/jsonata/jsonata.md +42 -37
  232. package/src/core/components/functional/list/list.demo.ts +0 -0
  233. package/src/core/components/functional/list/list.md +103 -43
  234. package/src/core/components/functional/list/list.ts +17 -4
  235. package/src/core/components/functional/mix/mix.md +31 -26
  236. package/src/core/components/functional/queue/queue.demo.ts +10 -7
  237. package/src/core/components/functional/queue/queue.md +40 -61
  238. package/src/core/components/functional/router/router.demo.ts +16 -16
  239. package/src/core/components/functional/router/router.md +64 -65
  240. package/src/core/components/functional/router/router.ts +0 -0
  241. package/src/core/components/functional/sdui/SDUIDescriptorTransformer.ts +0 -0
  242. package/src/core/components/functional/sdui/component-catalog.gaps.json +1 -1
  243. package/src/core/components/functional/sdui/component-catalog.json +2 -2
  244. package/src/core/components/functional/sdui/example.json +19 -86
  245. package/src/core/components/functional/sdui/sdui-extension-points.md +1 -1
  246. package/src/core/components/functional/sdui/sdui-immutable.spec.ts +74 -0
  247. package/src/core/components/functional/sdui/sdui.md +187 -358
  248. package/src/core/components/functional/sdui/sdui.ts +33 -8
  249. package/src/core/components/functional/sdui/types.ts +0 -0
  250. package/src/core/components/functional/states/states.demo.ts +21 -22
  251. package/src/core/components/functional/states/states.md +86 -61
  252. package/src/core/components/functional/states/states.ts +1 -1
  253. package/src/core/components/functional/submit/submit.md +64 -72
  254. package/src/core/components/functional/submit/submit.spec.ts +60 -0
  255. package/src/core/components/functional/submit/submit.ts +6 -3
  256. package/src/core/components/functional/subscriber/subscriber.ts +0 -0
  257. package/src/core/components/functional/translation/translation.md +38 -0
  258. package/src/core/components/functional/value/value.md +34 -22
  259. package/src/core/components/functional/value/value.ts +0 -0
  260. package/src/core/components/ui/_css/size.ts +0 -0
  261. package/src/core/components/ui/alert/alert.md +48 -58
  262. package/src/core/components/ui/badge/badge.md +27 -34
  263. package/src/core/components/ui/button/button.md +139 -106
  264. package/src/core/components/ui/captcha/altchaStyles.ts +0 -0
  265. package/src/core/components/ui/captcha/captcha.md +17 -32
  266. package/src/core/components/ui/card/card.md +6 -6
  267. package/src/core/components/ui/divider/divider.md +8 -11
  268. package/src/core/components/ui/form/checkbox/checkbox.md +90 -42
  269. package/src/core/components/ui/form/fieldset/fieldset.md +31 -75
  270. package/src/core/components/ui/form/form-actions/form-actions.md +14 -16
  271. package/src/core/components/ui/form/form-layout/form-layout.md +19 -29
  272. package/src/core/components/ui/form/input/input.md +108 -90
  273. package/src/core/components/ui/form/input/input.ts +8 -2
  274. package/src/core/components/ui/form/radio/radio.md +65 -30
  275. package/src/core/components/ui/form/select/select.md +60 -45
  276. package/src/core/components/ui/form/switch/switch.md +57 -34
  277. package/src/core/components/ui/form/textarea/textarea.md +55 -38
  278. package/src/core/components/ui/group/group.md +35 -33
  279. package/src/core/components/ui/icon/icon.md +4 -4
  280. package/src/core/components/ui/image/image.md +41 -107
  281. package/src/core/components/ui/link/link.md +6 -6
  282. package/src/core/components/ui/loader/loader.md +30 -55
  283. package/src/core/components/ui/menu/menu.md +27 -27
  284. package/src/core/components/ui/modal/modal.md +72 -96
  285. package/src/core/components/ui/pop/pop.md +80 -158
  286. package/src/core/components/ui/progress/progress.md +2 -2
  287. package/src/core/components/ui/table/table.md +91 -255
  288. package/src/core/components/ui/theme/theme.md +11 -36
  289. package/src/core/components/ui/toast/toast.md +48 -117
  290. package/src/core/components/ui/tooltip/tooltip.md +27 -62
  291. package/src/core/decorators/subscriber/bind.ts +9 -14
  292. package/src/core/decorators/subscriber/subscribe.ts +15 -9
  293. package/src/core/decorators/subscriber/subscribe.type-test.ts +14 -5
  294. package/src/core/mixins/Subscriber.ts +0 -0
  295. package/src/core/utils/DataBindObserver.ts +0 -0
  296. package/src/core/utils/LocationHandler.spec.ts +80 -0
  297. package/src/core/utils/LocationHandler.ts +5 -9
  298. package/src/core/utils/Objects.ts +0 -0
  299. package/src/core/utils/PublisherProxy.ts +166 -125
  300. package/src/core/utils/deepReadonly.spec.ts +66 -0
  301. package/src/core/utils/deepReadonly.ts +71 -0
  302. package/src/core/utils/immutableValue.spec.ts +54 -0
  303. package/src/core/utils/immutableValue.ts +102 -0
  304. package/src/core/utils/nestedDotForm.spec.ts +88 -0
  305. package/src/core/utils/publisherImmutable.spec.ts +76 -0
  306. package/src/core/utils/route.ts +0 -0
  307. package/src/core/utils/strictGet.spec.ts +61 -0
  308. package/src/core/utils/strictGet.ts +102 -0
  309. package/src/css.d.ts +19 -0
  310. package/src/docs/components/docs-demo-sources.ts +55 -140
  311. package/src/docs/components/docs-lit-demo.ts +1 -3
  312. package/src/docs/components/docs-source-link.ts +0 -82
  313. package/src/docs/decorators/ancestor-attribute.md +59 -0
  314. package/src/docs/decorators/auto-subscribe.md +40 -0
  315. package/src/docs/decorators/bind.md +76 -0
  316. package/src/docs/decorators/get.md +160 -0
  317. package/src/docs/decorators/handle.md +119 -0
  318. package/src/docs/decorators/on-assign.md +63 -0
  319. package/src/docs/decorators/patch.md +44 -0
  320. package/src/docs/decorators/post.md +134 -0
  321. package/src/docs/decorators/publish.md +56 -0
  322. package/src/docs/decorators/put.md +51 -0
  323. package/src/docs/decorators/subscribe.md +87 -0
  324. package/src/docs/decorators/wait-for-ancestors.md +76 -0
  325. package/src/docs/directives/sub.md +75 -0
  326. package/src/docs/directives/t.md +73 -0
  327. package/src/docs/docs-location.spec.ts +56 -0
  328. package/src/docs/docs-location.ts +133 -32
  329. package/src/docs/docs.ts +1 -2
  330. package/src/docs/example/decorators-demo-bind-demos.ts +83 -135
  331. package/src/docs/example/decorators-demo-geo.ts +30 -19
  332. package/src/docs/example/decorators-demo-post.ts +88 -186
  333. package/src/docs/example/decorators-demo-subscribe-publish-get-demos.ts +165 -268
  334. package/src/docs/example/decorators-demo.ts +85 -98
  335. package/src/docs/example/docs-api-config-demos.ts +19 -20
  336. package/src/docs/example/docs-flight-demos.ts +147 -0
  337. package/src/docs/example/docs-jsonata-demos.ts +52 -52
  338. package/src/docs/example/docs-list-demos.ts +43 -123
  339. package/src/docs/example/docs-provider-keys.ts +21 -28
  340. package/src/docs/example/docs-queue-demos.ts +37 -77
  341. package/src/docs/example/docs-router-demos.ts +20 -25
  342. package/src/docs/example/docs-submit-demos.ts +48 -48
  343. package/src/docs/example/docs-toggle-demos.ts +4 -3
  344. package/src/docs/example/users.ts +0 -0
  345. package/src/docs/getting-started/ai-agents.md +50 -0
  346. package/src/docs/getting-started/create-a-component.md +136 -0
  347. package/src/docs/getting-started/dataFlow.md +87 -0
  348. package/src/docs/getting-started/installation.md +36 -0
  349. package/src/docs/getting-started/my-first-component.md +227 -0
  350. package/src/docs/getting-started/start.md +35 -0
  351. package/src/docs/header/header.ts +11 -6
  352. package/src/docs/home/catalog.ts +1 -1
  353. package/src/docs/home/home.ts +20 -11
  354. package/src/docs/layout.ts +12 -13
  355. package/src/docs/misc/api-configuration.md +79 -0
  356. package/src/docs/misc/dataProviderKey.md +168 -0
  357. package/src/docs/misc/docs-mock-api.md +62 -0
  358. package/src/docs/misc/dynamic-path.md +71 -0
  359. package/src/docs/misc/endpoint.md +45 -0
  360. package/src/docs/misc/html-integration.md +14 -0
  361. package/src/docs/misc/publisher-get-immutability-docs-crawl.json +902 -0
  362. package/src/docs/misc/publisher-get-immutability-docs-recheck.json +13 -0
  363. package/src/docs/misc/publisher-get-immutability-study.md +229 -0
  364. package/src/docs/mock-api/api-config-mock.ts +5 -0
  365. package/src/docs/mock-api/fixtures.ts +0 -278
  366. package/src/docs/mock-api/flights.ts +89 -0
  367. package/src/docs/mock-api/router.ts +3 -4
  368. package/src/docs/mock-api/urls.ts +1 -2
  369. package/src/docs/navigation/navigation.ts +84 -101
  370. package/src/docs/navigation/toc.ts +7 -4
  371. package/src/docs/search/docs-search.json +3188 -5153
  372. package/src/docs/search/markdown-renderer.ts +31 -8
  373. package/src/docs/search/page.ts +9 -6
  374. package/src/docs/search/search.ts +154 -122
  375. package/src/docs/tailwind/css/docs/content.css +4 -5
  376. package/src/tsconfig.declarations.json +22 -0
  377. package/src/tsconfig.emit.json +23 -0
  378. package/src/tsconfig.json +53 -5
  379. package/src/tsconfig.tsbuildinfo +1 -1
  380. package/vite.config.mts +11 -2
  381. package/.agents/skills/concorde-component-docs/SKILL.md +0 -194
  382. package/.taste-skill/after/desktop-fold.jpg +0 -0
  383. package/.taste-skill/after/desktop-page-01.jpg +0 -0
  384. package/.taste-skill/after/desktop-page-02.jpg +0 -0
  385. package/.taste-skill/after/desktop-page-03.jpg +0 -0
  386. package/.taste-skill/after/mobile-fold.jpg +0 -0
  387. package/.taste-skill/after/mobile-page-01.jpg +0 -0
  388. package/.taste-skill/after/report.json +0 -4103
  389. package/.taste-skill/after/tablet-fold.jpg +0 -0
  390. package/.taste-skill/after/tablet-page-01.jpg +0 -0
  391. package/.taste-skill/after/tablet-page-02.jpg +0 -0
  392. package/.taste-skill/before/desktop-fold.jpg +0 -0
  393. package/.taste-skill/before/desktop-page-01.jpg +0 -0
  394. package/.taste-skill/before/desktop-page-02.jpg +0 -0
  395. package/.taste-skill/before/mobile-fold.jpg +0 -0
  396. package/.taste-skill/before/mobile-page-01.jpg +0 -0
  397. package/.taste-skill/before/report.json +0 -2556
  398. package/.taste-skill/before/tablet-fold.jpg +0 -0
  399. package/.taste-skill/before/tablet-page-01.jpg +0 -0
  400. package/.taste-skill/direction.json +0 -510
  401. package/.taste-skill/notes.md +0 -84
  402. package/.taste-skill/prod/desktop-fold.jpg +0 -0
  403. package/.taste-skill/prod/desktop-page-01.jpg +0 -0
  404. package/.taste-skill/prod/desktop-page-02.jpg +0 -0
  405. package/.taste-skill/prod/desktop-page-03.jpg +0 -0
  406. package/.taste-skill/prod/mobile-fold.jpg +0 -0
  407. package/.taste-skill/prod/mobile-page-01.jpg +0 -0
  408. package/.taste-skill/prod/mobile-page-02.jpg +0 -0
  409. package/.taste-skill/prod/report.json +0 -1973
  410. package/.taste-skill/prod/tablet-fold.jpg +0 -0
  411. package/.taste-skill/prod/tablet-page-01.jpg +0 -0
  412. package/.taste-skill/prod/tablet-page-02.jpg +0 -0
  413. package/AUDIT.md +0 -228
  414. package/PLAN-AMELIORATION.md +0 -220
  415. package/ai/AGENTS.md +0 -56
  416. package/ai/cursor/rules/concorde-menu.mdc +0 -15
  417. package/ai/cursor/rules/concorde-scope.mdc +0 -14
  418. package/ai/cursor/rules/concorde-theme.mdc +0 -13
  419. package/ai/cursor/rules/concorde.mdc +0 -66
  420. package/ai/jetbrains/rules/concorde.md +0 -53
  421. package/ai/skills/concorde-get-set-dp/SKILL.md +0 -194
  422. package/ai/skills/concorde-imports/SKILL.md +0 -78
  423. package/ai/skills/concorde-menu/SKILL.md +0 -74
  424. package/ai/skills/concorde-scope/SKILL.md +0 -70
  425. package/ai/skills/concorde-theme/SKILL.md +0 -57
  426. package/docs/assets/index-Bb-_LRyY.js +0 -12280
  427. package/src/docs/example/docs-input-autocomplete-demos.ts +0 -110
  428. package/src/docs/example/docs-joke-demos.ts +0 -297
  429. /package/{src → docs/src}/core/components/ui/form/input-autocomplete/input-autocomplete.md +0 -0
  430. /package/{src → docs/src}/docs/_core-concept/dataFlow.md +0 -0
  431. /package/{src → docs/src}/docs/_core-concept/overview.md +0 -0
  432. /package/{src → docs/src}/docs/_decorators/ancestor-attribute.md +0 -0
  433. /package/{src → docs/src}/docs/_decorators/auto-subscribe.md +0 -0
  434. /package/{src → docs/src}/docs/_decorators/bind.md +0 -0
  435. /package/{src → docs/src}/docs/_decorators/get.md +0 -0
  436. /package/{src → docs/src}/docs/_decorators/handle.md +0 -0
  437. /package/{src → docs/src}/docs/_decorators/on-assign.md +0 -0
  438. /package/{src → docs/src}/docs/_decorators/patch.md +0 -0
  439. /package/{src → docs/src}/docs/_decorators/post.md +0 -0
  440. /package/{src → docs/src}/docs/_decorators/publish.md +0 -0
  441. /package/{src → docs/src}/docs/_decorators/put.md +0 -0
  442. /package/{src → docs/src}/docs/_decorators/subscribe.md +0 -0
  443. /package/{src → docs/src}/docs/_decorators/wait-for-ancestors.md +0 -0
  444. /package/{src → docs/src}/docs/_directives/sub.md +0 -0
  445. /package/{src → docs/src}/docs/_getting-started/ai-agents.md +0 -0
  446. /package/{src → docs/src}/docs/_getting-started/concorde-manual-install.md +0 -0
  447. /package/{src → docs/src}/docs/_getting-started/concorde-outside.md +0 -0
  448. /package/{src → docs/src}/docs/_getting-started/create-a-component.md +0 -0
  449. /package/{src → docs/src}/docs/_getting-started/my-first-component.md +0 -0
  450. /package/{src → docs/src}/docs/_getting-started/start.md +0 -0
  451. /package/{src → docs/src}/docs/_misc/api-configuration.md +0 -0
  452. /package/{src → docs/src}/docs/_misc/dataProviderKey.md +0 -0
  453. /package/{src → docs/src}/docs/_misc/docs-mock-api.md +0 -0
  454. /package/{src → docs/src}/docs/_misc/dynamic-path.md +0 -0
  455. /package/{src → docs/src}/docs/_misc/endpoint.md +0 -0
  456. /package/{src → docs/src}/docs/_misc/formelement-subscriber-removal.md +0 -0
  457. /package/{src → docs/src}/docs/_misc/html-integration.md +0 -0
  458. /package/src/docs/{_getting-started → getting-started}/components.md +0 -0
  459. /package/src/docs/{_getting-started → getting-started}/theming.md +0 -0
@@ -0,0 +1,294 @@
1
+ # Pop
2
+
3
+ **`sonic-pop`** anchors floating panels to a trigger: put the control in the **default slot** and the panel in **`slot="content"`** (menus, forms, custom markup). Click toggles open/closed unless **`manual`** is set; default **`placement`** is **`bottom`** (start-aligned). Position updates while open and flips inside the viewport when space is tight.
4
+
5
+ ## Basic example
6
+
7
+ <sonic-code>
8
+ <template>
9
+ <sonic-pop class="inline-block">
10
+ <sonic-button>Notifications</sonic-button>
11
+ <sonic-menu slot="content">
12
+ <sonic-menu-item>
13
+ <sonic-icon library="iconoir" name="bell-notification" slot="prefix"></sonic-icon>
14
+ Notifications
15
+ </sonic-menu-item>
16
+ <sonic-menu-item>
17
+ <sonic-icon library="iconoir" name="settings" slot="prefix"></sonic-icon>
18
+ Settings
19
+ </sonic-menu-item>
20
+ </sonic-menu>
21
+ </sonic-pop>
22
+ </template>
23
+ </sonic-code>
24
+
25
+ ## Placement
26
+
27
+ Use **`top`** · **`bottom`** · **`left`** · **`right`** for the main axis. Add **`-start`** · **`-center`** · **`-end`** to align along the trigger edge. With no align suffix, content aligns to **`start`**. Legacy space syntax (`placement="bottom center"`) still works but is deprecated—prefer **`bottom-center`**.
28
+
29
+ <sonic-code>
30
+ <template>
31
+ <div class="flex flex-wrap gap-2">
32
+ <sonic-pop class="inline-block" placement="left">
33
+ <sonic-button>Left</sonic-button>
34
+ <sonic-menu slot="content">
35
+ <sonic-menu-item>
36
+ <sonic-icon library="iconoir" name="bell-notification" slot="prefix"></sonic-icon>
37
+ Notifications
38
+ </sonic-menu-item>
39
+ </sonic-menu>
40
+ </sonic-pop>
41
+ <sonic-pop class="inline-block" placement="right">
42
+ <sonic-button>Right</sonic-button>
43
+ <sonic-menu slot="content">
44
+ <sonic-menu-item>
45
+ <sonic-icon library="iconoir" name="bell-notification" slot="prefix"></sonic-icon>
46
+ Notifications
47
+ </sonic-menu-item>
48
+ </sonic-menu>
49
+ </sonic-pop>
50
+ <sonic-pop class="inline-block" placement="top">
51
+ <sonic-button>Top</sonic-button>
52
+ <sonic-menu slot="content">
53
+ <sonic-menu-item>
54
+ <sonic-icon library="iconoir" name="bell-notification" slot="prefix"></sonic-icon>
55
+ Notifications
56
+ </sonic-menu-item>
57
+ </sonic-menu>
58
+ </sonic-pop>
59
+ <sonic-pop class="inline-block" placement="bottom">
60
+ <sonic-button>Bottom</sonic-button>
61
+ <sonic-menu slot="content">
62
+ <sonic-menu-item>
63
+ <sonic-icon library="iconoir" name="bell-notification" slot="prefix"></sonic-icon>
64
+ Notifications
65
+ </sonic-menu-item>
66
+ </sonic-menu>
67
+ </sonic-pop>
68
+ </div>
69
+ </template>
70
+ </sonic-code>
71
+
72
+ ### Center-aligned sides
73
+
74
+ <sonic-code>
75
+ <template>
76
+ <div class="flex flex-wrap gap-2">
77
+ <sonic-pop class="inline-block" placement="bottom-center">
78
+ <sonic-button>Bottom center</sonic-button>
79
+ <sonic-menu slot="content">
80
+ <sonic-menu-item>
81
+ <sonic-icon library="iconoir" name="bell-notification" slot="prefix"></sonic-icon>
82
+ Notifications
83
+ </sonic-menu-item>
84
+ </sonic-menu>
85
+ </sonic-pop>
86
+ <sonic-pop class="inline-block" placement="top-center">
87
+ <sonic-button>Top center</sonic-button>
88
+ <sonic-menu slot="content">
89
+ <sonic-menu-item>
90
+ <sonic-icon library="iconoir" name="bell-notification" slot="prefix"></sonic-icon>
91
+ Notifications
92
+ </sonic-menu-item>
93
+ </sonic-menu>
94
+ </sonic-pop>
95
+ <sonic-pop class="inline-block" placement="left-center">
96
+ <sonic-button>Left center</sonic-button>
97
+ <sonic-menu slot="content">
98
+ <sonic-menu-item>
99
+ <sonic-icon library="iconoir" name="bell-notification" slot="prefix"></sonic-icon>
100
+ Notifications
101
+ </sonic-menu-item>
102
+ </sonic-menu>
103
+ </sonic-pop>
104
+ <sonic-pop class="inline-block" placement="right-center">
105
+ <sonic-button>Right center</sonic-button>
106
+ <sonic-menu slot="content">
107
+ <sonic-menu-item>
108
+ <sonic-icon library="iconoir" name="bell-notification" slot="prefix"></sonic-icon>
109
+ Notifications
110
+ </sonic-menu-item>
111
+ </sonic-menu>
112
+ </sonic-pop>
113
+ </div>
114
+ </template>
115
+ </sonic-code>
116
+
117
+ ## Shadow
118
+
119
+ Default **`shadow`** is **`lg`**. The shadow applies to the floating **`content`** panel.
120
+
121
+ <sonic-code>
122
+ <template>
123
+ <div class="flex flex-wrap gap-2">
124
+ <sonic-pop class="inline-block" shadow="none" placement="top">
125
+ <sonic-button>None</sonic-button>
126
+ <sonic-menu slot="content">
127
+ <sonic-menu-item>
128
+ <sonic-icon library="iconoir" name="bell-notification" slot="prefix"></sonic-icon>
129
+ Notifications
130
+ </sonic-menu-item>
131
+ </sonic-menu>
132
+ </sonic-pop>
133
+ <sonic-pop class="inline-block" shadow="sm" placement="top">
134
+ <sonic-button>Small</sonic-button>
135
+ <sonic-menu slot="content">
136
+ <sonic-menu-item>
137
+ <sonic-icon library="iconoir" name="bell-notification" slot="prefix"></sonic-icon>
138
+ Notifications
139
+ </sonic-menu-item>
140
+ </sonic-menu>
141
+ </sonic-pop>
142
+ <sonic-pop class="inline-block" shadow="md" placement="top">
143
+ <sonic-button>Medium</sonic-button>
144
+ <sonic-menu slot="content">
145
+ <sonic-menu-item>
146
+ <sonic-icon library="iconoir" name="bell-notification" slot="prefix"></sonic-icon>
147
+ Notifications
148
+ </sonic-menu-item>
149
+ </sonic-menu>
150
+ </sonic-pop>
151
+ <sonic-pop class="inline-block" shadow="lg" placement="top">
152
+ <sonic-button>Large</sonic-button>
153
+ <sonic-menu slot="content">
154
+ <sonic-menu-item>
155
+ <sonic-icon library="iconoir" name="bell-notification" slot="prefix"></sonic-icon>
156
+ Notifications
157
+ </sonic-menu-item>
158
+ </sonic-menu>
159
+ </sonic-pop>
160
+ </div>
161
+ </template>
162
+ </sonic-code>
163
+
164
+ ## Inline
165
+
166
+ By default the host is middle-aligned with siblings. Set **`inline`** to baseline-align the trigger inside running text.
167
+
168
+ <sonic-code>
169
+ <template>
170
+ <p>
171
+ The Concorde flew from Paris to
172
+ <sonic-pop inline>
173
+ <sonic-button variant="link">New York</sonic-button>
174
+ <sonic-menu slot="content">
175
+ <sonic-menu-item>See flights</sonic-menu-item>
176
+ <sonic-menu-item>Book a seat</sonic-menu-item>
177
+ </sonic-menu>
178
+ </sonic-pop>
179
+ in about 3.5 hours.
180
+ </p>
181
+ </template>
182
+ </sonic-code>
183
+
184
+ ## No toggle
185
+
186
+ With **`noToggle`**, a click on the trigger still opens the pop but does not close it when it is already open. Use **`hide()`** or an outside click to dismiss.
187
+
188
+ <sonic-code>
189
+ <template>
190
+ <div class="flex flex-wrap gap-2">
191
+ <sonic-pop class="inline-block" noToggle>
192
+ <sonic-button>No toggle on click</sonic-button>
193
+ <sonic-menu slot="content">
194
+ <sonic-menu-item>
195
+ <sonic-icon library="iconoir" name="bell-notification" slot="prefix"></sonic-icon>
196
+ Notifications
197
+ </sonic-menu-item>
198
+ </sonic-menu>
199
+ </sonic-pop>
200
+ <sonic-pop class="inline-block">
201
+ <sonic-button>Default toggle on click</sonic-button>
202
+ <sonic-menu slot="content">
203
+ <sonic-menu-item>
204
+ <sonic-icon library="iconoir" name="bell-notification" slot="prefix"></sonic-icon>
205
+ Notifications
206
+ </sonic-menu-item>
207
+ </sonic-menu>
208
+ </sonic-pop>
209
+ </div>
210
+ </template>
211
+ </sonic-code>
212
+
213
+ ## Manual control
214
+
215
+ Set **`manual`** to disable built-in click and keyboard toggle on the trigger. Call **`show()`** and **`hide()`** on the element instead. The pop dispatches **`show`** when it opens and **`hide`** when it closes.
216
+
217
+ Click **Click to open pop** to open the panel programmatically.
218
+
219
+ <sonic-code>
220
+ <template>
221
+ <sonic-pop class="inline-block" manual id="manualPop">
222
+ <sonic-button onclick="alert('Custom action without opening the pop')">Manual trigger</sonic-button>
223
+ <sonic-menu slot="content">
224
+ <sonic-menu-item>It worked!</sonic-menu-item>
225
+ </sonic-menu>
226
+ </sonic-pop>
227
+ <sonic-button onclick="document.getElementById('manualPop').show()" class="ml-5" variant="outline">
228
+ <sonic-icon name="sparkles" library="custom"></sonic-icon>
229
+ Click to open pop
230
+ </sonic-button>
231
+ </template>
232
+ </sonic-code>
233
+
234
+ ## Keep open on select
235
+
236
+ By default, a click inside **`content`** closes the pop (same as an outside click). Set **`data-on-select="keep"`** on the panel or a descendant to keep it open while selecting checkboxes, toggles, or menu items.
237
+
238
+ <sonic-code>
239
+ <template>
240
+ <div class="flex flex-wrap gap-2">
241
+ <sonic-pop class="inline-block">
242
+ <sonic-button>Closes on select</sonic-button>
243
+ <div slot="content" class="grid gap-2 p-3">
244
+ <sonic-checkbox>Option A</sonic-checkbox>
245
+ <sonic-checkbox>Option B</sonic-checkbox>
246
+ </div>
247
+ </sonic-pop>
248
+ <sonic-pop class="inline-block">
249
+ <sonic-button>Stays open on select</sonic-button>
250
+ <div slot="content" class="grid gap-2 p-3" data-on-select="keep">
251
+ <sonic-checkbox>Option A</sonic-checkbox>
252
+ <sonic-checkbox>Option B</sonic-checkbox>
253
+ </div>
254
+ </sonic-pop>
255
+ </div>
256
+ </template>
257
+ </sonic-code>
258
+
259
+ ## Keyboard and dismissal
260
+
261
+ **`ArrowDown`** on the trigger opens the pop when it is closed. **`Escape`** closes the most recently opened pop (capture phase, before ancestors such as **`sonic-modal`**) and returns focus to that trigger. Multiple pops on the page stack in open order for Escape.
262
+
263
+ <sonic-code>
264
+ <template>
265
+ <sonic-pop class="inline-block">
266
+ <sonic-button>Focus me — ArrowDown opens, Escape closes</sonic-button>
267
+ <sonic-menu slot="content">
268
+ <sonic-menu-item>First item</sonic-menu-item>
269
+ <sonic-menu-item>Second item</sonic-menu-item>
270
+ </sonic-menu>
271
+ </sonic-pop>
272
+ </template>
273
+ </sonic-code>
274
+
275
+ ## API reference
276
+
277
+ | Attribute | Values | Description |
278
+ |----------|---------|-------------|
279
+ | `placement` | `bottom` (default) · `top` · `left` · `right` · `top-start` · `top-center` · `top-end` · `bottom-start` · `bottom-center` · `bottom-end` · `left-start` · `left-center` · `left-end` · `right-start` · `right-center` · `right-end` | Side and alignment relative to the trigger; repositions while open and flips within the viewport |
280
+ | `shadow` | `none` · `sm` · `md` · `lg` (default `lg`) | Box shadow on the **`content`** panel |
281
+ | `inline` | boolean | Baseline-align the host for inline triggers |
282
+ | `noToggle` | boolean | When open, trigger click does not close the pop |
283
+ | `manual` | boolean | Disable default trigger toggle; use **`show()`** / **`hide()`** |
284
+
285
+ | Slot | Description |
286
+ |------|-------------|
287
+ | *(default)* | Trigger; listens for **`click`** and **`keydown`** (`ArrowDown` opens when closed) unless **`manual`** |
288
+ | `content` | Floating panel; receives focus **`tabindex="0"`** while open |
289
+
290
+ **Methods:** **`show()`** · **`hide()`** on the host element.
291
+
292
+ **Events:** **`show`** · **`hide`** (non-bubbling **`CustomEvent`**).
293
+
294
+ **Content attribute:** **`data-on-select="keep"`** on **`content`** or descendants prevents close-on-click inside the panel.
@@ -0,0 +1,109 @@
1
+ # Progress
2
+
3
+ Shows **task completion** on a **`value`** / **`max`** scale via a native `<progress>` bar. Omit **`value`** for an **indeterminate** loading animation. Put primary copy in the default slot and optional secondary text in **`remaining`**; set **`invert`** when the bar sits on a colored surface such as **`sonic-card`**.
4
+
5
+ ## Basic example
6
+
7
+ Set **`value`** from `0` to **`max`** (default `100`). Label text uses the type color.
8
+
9
+ <sonic-code>
10
+ <template>
11
+ <sonic-progress value="50">50%</sonic-progress>
12
+ </template>
13
+ </sonic-code>
14
+
15
+ ## Indeterminate
16
+
17
+ With no **`value`**, the bar animates until progress is known.
18
+
19
+ <sonic-code>
20
+ <template>
21
+ <sonic-progress></sonic-progress>
22
+ </template>
23
+ </sonic-code>
24
+
25
+ ## Type
26
+
27
+ Semantic color follows **`type`**. With no **`type`**, behavior is `default`.
28
+
29
+ <sonic-code>
30
+ <template>
31
+ <div class="grid gap-3">
32
+ <sonic-progress value="50">50%</sonic-progress>
33
+ <sonic-progress type="primary" value="50">50%</sonic-progress>
34
+ <sonic-progress type="neutral" value="50">50%</sonic-progress>
35
+ <sonic-progress type="info" value="50">50%</sonic-progress>
36
+ <sonic-progress type="warning" value="50">50%</sonic-progress>
37
+ <sonic-progress type="success" value="50">50%</sonic-progress>
38
+ <sonic-progress type="danger" value="50">50%</sonic-progress>
39
+ </div>
40
+ </template>
41
+ </sonic-code>
42
+
43
+ ## Size
44
+
45
+ Bar height scales with typography via **`size`**. With no **`size`**, font size matches **`md`** (`1rem`).
46
+
47
+ <sonic-code>
48
+ <template>
49
+ <div class="grid gap-3">
50
+ <sonic-progress size="2xs" value="25">25%</sonic-progress>
51
+ <sonic-progress size="xs" value="25">25%</sonic-progress>
52
+ <sonic-progress size="sm" value="25">25%</sonic-progress>
53
+ <sonic-progress size="md" value="25">25%</sonic-progress>
54
+ <sonic-progress size="lg" value="25">25%</sonic-progress>
55
+ <sonic-progress size="xl" value="25">25%</sonic-progress>
56
+ <sonic-progress size="2xl" value="25">25%</sonic-progress>
57
+ </div>
58
+ </template>
59
+ </sonic-code>
60
+
61
+ ## Default and remaining slots
62
+
63
+ The default slot is the main label (left). **`remaining`** is right-aligned with lighter weight—use it for “left to complete” copy.
64
+
65
+ <sonic-code>
66
+ <template>
67
+ <sonic-progress type="danger" value="80">
68
+ 80% Used <span slot="remaining">20% left</span>
69
+ </sonic-progress>
70
+ </template>
71
+ </sonic-code>
72
+
73
+ ## Invert
74
+
75
+ On tinted backgrounds, **`invert`** adjusts track and fill tokens so the bar stays readable (pair with matching **`type`** on **`sonic-card`** or similar).
76
+
77
+ <sonic-code>
78
+ <template>
79
+ <div class="grid gap-3">
80
+ <sonic-card type="info">
81
+ <sonic-progress invert type="info" value="50">50%</sonic-progress>
82
+ </sonic-card>
83
+ <sonic-card type="warning">
84
+ <sonic-progress invert type="warning" value="50">50%</sonic-progress>
85
+ </sonic-card>
86
+ <sonic-card type="success">
87
+ <sonic-progress invert type="success" value="50">50%</sonic-progress>
88
+ </sonic-card>
89
+ <sonic-card type="danger">
90
+ <sonic-progress invert type="danger" value="50">50%</sonic-progress>
91
+ </sonic-card>
92
+ </div>
93
+ </template>
94
+ </sonic-code>
95
+
96
+ ## API reference
97
+
98
+ | Attribute | Values | Description |
99
+ |----------|---------|-------------|
100
+ | `value` | number | Completion amount; omit for indeterminate state |
101
+ | `max` | number (default `100`) | Upper bound for **`value`** |
102
+ | `type` | `default` (default) · `primary` · `neutral` · `warning` · `info` · `success` · `danger` | Semantic bar and label color |
103
+ | `size` | `2xs` · `xs` · `sm` · `md` · `lg` · `xl` · `2xl` · `inherit` | Typography scale (bar height follows `em`) |
104
+ | `invert` | boolean | High-contrast tokens on colored backgrounds |
105
+
106
+ | Slot | Description |
107
+ |------|-------------|
108
+ | *(default)* | Primary label below the bar (left) |
109
+ | `remaining` | Secondary label below the bar (right) |