@supersoniks/concorde 5.0.4 → 5.0.5
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.
- package/.agents/skills/concorde-component-docs/SKILL.md +194 -0
- package/.agents/skills/concorde-component-docs/template.md +45 -0
- package/ai/cursor/rules/concorde-theme.mdc +1 -1
- package/ai/cursor/rules/concorde.mdc +1 -1
- package/ai/skills/concorde/SKILL.md +1 -1
- package/ai/skills/concorde-theme/SKILL.md +21 -10
- package/build-infos.json +1 -1
- package/concorde-core.bundle.js +528 -534
- package/concorde-core.es.js +4257 -4212
- package/dist/concorde-core.bundle.js +528 -534
- package/dist/concorde-core.es.js +4257 -4212
- package/dist/docs-mock-api-sw.js +2 -0
- package/dist/docs-mock-api-sw.js.map +2 -2
- package/docs/assets/index-CD4WyL6o.css +1 -0
- package/docs/assets/{index-D8MVWqY6.js → index-wVZpLVYW.js} +1221 -1350
- package/docs/crawl/core/components/ui/alert/alert.html +172 -71
- package/docs/crawl/core/components/ui/alert-messages/alert-messages.html +113 -5
- package/docs/crawl/core/components/ui/badge/badge.html +157 -79
- package/docs/crawl/core/components/ui/button/button.html +1 -0
- package/docs/crawl/core/components/ui/captcha/captcha.html +90 -8
- package/docs/crawl/core/components/ui/card/card.html +222 -68
- package/docs/crawl/core/components/ui/divider/divider.html +117 -31
- package/docs/crawl/core/components/ui/form/fieldset/fieldset.html +232 -101
- package/docs/crawl/core/components/ui/form/form-actions/form-actions.html +95 -52
- package/docs/crawl/core/components/ui/form/form-layout/form-layout.html +97 -38
- package/docs/crawl/core/components/ui/form/input/input.html +3 -3
- package/docs/crawl/core/components/ui/form/textarea/textarea.html +3 -3
- package/docs/crawl/core/components/ui/group/group.html +60 -38
- package/docs/crawl/core/components/ui/icon/icon.html +136 -47
- package/docs/crawl/core/components/ui/image/image.html +244 -56
- package/docs/crawl/core/components/ui/link/link.html +67 -9
- package/docs/crawl/core/components/ui/loader/loader.html +97 -23
- package/docs/crawl/core/components/ui/menu/menu.html +162 -90
- package/docs/crawl/core/components/ui/modal/modal.html +275 -50
- package/docs/crawl/core/components/ui/pop/pop.html +260 -66
- package/docs/crawl/core/components/ui/progress/progress.html +103 -30
- package/docs/crawl/core/components/ui/table/table.html +303 -171
- package/docs/crawl/core/components/ui/theme/theme.html +131 -0
- package/docs/crawl/core/components/ui/toast/toast.html +170 -59
- package/docs/crawl/core/components/ui/tooltip/tooltip.html +90 -29
- package/docs/crawl/docs/_decorators/ancestor-attribute.html +3 -2
- package/docs/crawl/docs/_getting-started/concorde-outside.html +3 -3
- package/docs/crawl/docs/_getting-started/start.html +1 -1
- package/docs/crawl/docs/_getting-started/theming.html +311 -63
- package/docs/crawl/hubs/form-components.html +75 -53
- package/docs/crawl/index.html +7 -6
- package/docs/docs-mock-api-sw.js +2 -0
- package/docs/docs-mock-api-sw.js.map +2 -2
- package/docs/index.html +9 -7
- package/docs/llms-full.txt +1703 -456
- package/docs/llms.txt +25 -32
- package/docs/sitemap.xml +3 -0
- package/docs/src/core/components/functional/fetch/fetch.md +0 -0
- package/docs/src/core/components/functional/if/if.md +0 -0
- package/docs/src/core/components/functional/list/list.md +0 -0
- package/docs/src/core/components/functional/router/router.md +0 -0
- package/docs/src/core/components/functional/sdui/sdui.md +0 -0
- package/docs/src/core/components/functional/states/states.md +0 -0
- package/docs/src/core/components/functional/submit/submit.md +0 -0
- package/docs/src/core/components/ui/alert/alert.md +147 -72
- package/docs/src/core/components/ui/alert-messages/alert-messages.md +85 -0
- package/docs/src/core/components/ui/badge/badge.md +141 -80
- package/docs/src/core/components/ui/button/button.md +1 -0
- package/docs/src/core/components/ui/captcha/captcha.md +65 -6
- package/docs/src/core/components/ui/card/card.md +183 -65
- package/docs/src/core/components/ui/divider/divider.md +107 -13
- package/docs/src/core/components/ui/form/fieldset/fieldset.md +175 -99
- package/docs/src/core/components/ui/form/form-actions/form-actions.md +75 -52
- package/docs/src/core/components/ui/form/form-layout/form-layout.md +109 -34
- package/docs/src/core/components/ui/form/input/input.md +1 -1
- package/docs/src/core/components/ui/form/radio/radio.md +0 -0
- package/docs/src/core/components/ui/form/select/select.md +0 -0
- package/docs/src/core/components/ui/form/switch/switch.md +0 -0
- package/docs/src/core/components/ui/form/textarea/textarea.md +1 -1
- package/docs/src/core/components/ui/group/group.md +36 -36
- package/docs/src/core/components/ui/icon/icon.md +132 -43
- package/docs/src/core/components/ui/image/image.md +179 -53
- package/docs/src/core/components/ui/link/link.md +45 -7
- package/docs/src/core/components/ui/loader/loader.md +79 -22
- package/docs/src/core/components/ui/menu/menu.md +133 -92
- package/docs/src/core/components/ui/modal/modal.md +163 -47
- package/docs/src/core/components/ui/pop/pop.md +262 -64
- package/docs/src/core/components/ui/progress/progress.md +76 -30
- package/docs/src/core/components/ui/table/table.md +147 -171
- package/docs/src/core/components/ui/theme/theme.md +122 -0
- package/docs/src/core/components/ui/toast/toast.md +108 -58
- package/docs/src/core/components/ui/tooltip/tooltip.md +68 -26
- package/docs/src/docs/_core-concept/subscriber.md +0 -0
- package/docs/src/docs/_decorators/ancestor-attribute.md +3 -2
- package/docs/src/docs/_getting-started/concorde-outside.md +3 -3
- package/docs/src/docs/_getting-started/my-first-subscriber.md +0 -0
- package/docs/src/docs/_getting-started/pubsub.md +0 -0
- package/docs/src/docs/_getting-started/start.md +1 -1
- package/docs/src/docs/_getting-started/theming.md +223 -61
- package/docs/src/docs/search/docs-search.json +3083 -348
- package/docs/src/tsconfig.json +63 -3
- package/gitlab/job_tests.sh +0 -0
- package/index.html +4 -2
- package/package.json +7 -1
- package/public/docs-mock-api-sw.js +2 -0
- package/public/docs-mock-api-sw.js.map +2 -2
- package/scripts/post-build-docs.js +0 -0
- package/scripts/post-build.mjs +0 -0
- package/src/core/components/functional/fetch/fetch.md +0 -0
- package/src/core/components/functional/if/if.md +0 -0
- package/src/core/components/functional/list/list.demo.ts +0 -0
- package/src/core/components/functional/list/list.md +0 -0
- package/src/core/components/functional/router/router.md +0 -0
- package/src/core/components/functional/router/router.ts +0 -0
- package/src/core/components/functional/sdui/sdui.md +0 -0
- package/src/core/components/functional/states/states.md +0 -0
- package/src/core/components/functional/submit/submit.md +0 -0
- package/src/core/components/functional/subscriber/subscriber.ts +0 -0
- package/src/core/components/ui/_css/align.ts +1 -0
- package/src/core/components/ui/_css/size.ts +0 -0
- package/src/core/components/ui/_css/type.ts +86 -8
- package/src/core/components/ui/_i18n/ui-aria-labels.ts +8 -0
- package/src/core/components/ui/alert/alert.md +21 -2
- package/src/core/components/ui/alert-messages/alert-messages.md +85 -0
- package/src/core/components/ui/badge/badge.md +19 -6
- package/src/core/components/ui/badge/badge.ts +8 -9
- package/src/core/components/ui/button/button.ts +5 -15
- package/src/core/components/ui/captcha/altchaStyles.ts +0 -0
- package/src/core/components/ui/captcha/captcha.md +65 -6
- package/src/core/components/ui/card/card.md +73 -10
- package/src/core/components/ui/card/card.ts +24 -22
- package/src/core/components/ui/divider/divider.md +107 -13
- package/src/core/components/ui/divider/divider.ts +40 -33
- package/src/core/components/ui/form/fieldset/fieldset.md +175 -99
- package/src/core/components/ui/form/fieldset/fieldset.ts +15 -28
- package/src/core/components/ui/form/fieldset/legend.ts +13 -13
- package/src/core/components/ui/form/form-actions/form-actions.md +75 -52
- package/src/core/components/ui/form/form-actions/form-actions.ts +7 -5
- package/src/core/components/ui/form/form-layout/form-layout.md +109 -34
- package/src/core/components/ui/form/form-layout/form-layout.ts +27 -24
- package/src/core/components/ui/form/radio/radio.md +0 -0
- package/src/core/components/ui/form/select/select.md +0 -0
- package/src/core/components/ui/form/switch/switch.md +0 -0
- package/src/core/components/ui/form/textarea/textarea.ts +4 -3
- package/src/core/components/ui/group/group.md +36 -36
- package/src/core/components/ui/group/group.ts +5 -10
- package/src/core/components/ui/icon/icon.md +132 -43
- package/src/core/components/ui/image/image.md +35 -3
- package/src/core/components/ui/link/link.md +43 -5
- package/src/core/components/ui/loader/loader.md +79 -22
- package/src/core/components/ui/loader/loader.ts +67 -27
- package/src/core/components/ui/loader/styles/fixed.ts +6 -11
- package/src/core/components/ui/menu/menu.md +133 -92
- package/src/core/components/ui/menu/menu.ts +53 -58
- package/src/core/components/ui/modal/modal.md +163 -47
- package/src/core/components/ui/modal/modal.ts +2 -4
- package/src/core/components/ui/pop/pop.md +217 -123
- package/src/core/components/ui/pop/pop.ts +0 -1
- package/src/core/components/ui/progress/progress.md +76 -30
- package/src/core/components/ui/progress/progress.ts +25 -56
- package/src/core/components/ui/table/table-caption.ts +2 -2
- package/src/core/components/ui/table/table-tbody.ts +3 -3
- package/src/core/components/ui/table/table-td.ts +23 -18
- package/src/core/components/ui/table/table-th.ts +8 -8
- package/src/core/components/ui/table/table-tr.ts +4 -4
- package/src/core/components/ui/table/table.md +147 -171
- package/src/core/components/ui/table/table.ts +20 -19
- package/src/core/components/ui/theme/theme-collection/auto.ts +15 -0
- package/src/core/components/ui/theme/theme-collection/core-variables.ts +8 -31
- package/src/core/components/ui/theme/theme-collection/dark.ts +1 -7
- package/src/core/components/ui/theme/theme-collection/light.ts +30 -26
- package/src/core/components/ui/theme/theme.md +122 -0
- package/src/core/components/ui/theme/theme.ts +30 -7
- package/src/core/components/ui/toast/toast-item.ts +6 -9
- package/src/core/components/ui/toast/toast.md +108 -58
- package/src/core/components/ui/toast/types.ts +1 -1
- package/src/core/components/ui/tooltip/tooltip.md +68 -26
- package/src/core/mixins/Subscriber.ts +0 -0
- package/src/core/utils/DataBindObserver.ts +0 -0
- package/src/core/utils/Objects.ts +0 -0
- package/src/core/utils/route.ts +0 -0
- package/src/docs/_core-concept/subscriber.md +0 -0
- package/src/docs/_getting-started/my-first-subscriber.md +0 -0
- package/src/docs/_getting-started/pubsub.md +0 -0
- package/src/docs/_getting-started/start.md +1 -1
- package/src/docs/_getting-started/theming.md +223 -61
- package/src/docs/code.ts +125 -58
- package/src/docs/example/users.ts +0 -0
- package/src/docs/header/header.ts +62 -54
- package/src/docs/mock-api/router.ts +2 -0
- package/src/docs/navigation/navigation.ts +6 -3
- package/src/docs/search/docs-search.json +2504 -399
- package/src/docs/search/markdown-renderer.ts +6 -6
- package/src/docs/search/page.ts +0 -0
- package/src/docs/search/search.ts +4 -4
- package/src/docs/tailwind/css/tailwind.css +6 -5
- package/src/tsconfig.json +18 -0
- package/src/tsconfig.tsbuildinfo +1 -1
- package/tailwind.config.js +19 -0
- package/.github/workflows/ci.yml +0 -21
- package/.github-export-ignore +0 -30
- package/CONTRIBUTING.md +0 -59
- package/DEV.md +0 -54
- package/LICENSE +0 -21
- package/OPEN_SOURCE_CHECKPOINT.md +0 -133
- package/docs/assets/index-DiD0qYvE.css +0 -1
- package/docs/src/tsconfig.declarations.json +0 -22
- package/docs/src/tsconfig.emit.json +0 -23
- package/gitlab/job_github_mirror.sh +0 -39
- package/scripts/github-export.mjs +0 -150
- package/src/css.d.ts +0 -19
- package/src/tsconfig.declarations.json +0 -22
- package/src/tsconfig.emit.json +0 -23
package/docs/llms.txt
CHANGED
|
@@ -29,43 +29,36 @@ Full text: https://concorde.supersoniks.org/llms-full.txt
|
|
|
29
29
|
- [Submit](https://concorde.supersoniks.org/crawl/core/components/functional/submit/submit.html) (core/components/functional/submit/submit): > Live demos: <docs-lit-demo> + src/docs/example/docs-submit-demos.ts. Use Local API demos (serviceURL="/docs-mock-api").
|
|
30
30
|
- [Subscriber](https://concorde.supersoniks.org/crawl/core/components/functional/subscriber/subscriber.html) (core/components/functional/subscriber/subscriber): La mixin Subscriber permet lier un composant à un publisher.
|
|
31
31
|
- [Value](https://concorde.supersoniks.org/crawl/core/components/functional/value/value.html) (core/components/functional/value/value): Simply shows a value from a data provider.
|
|
32
|
-
- [
|
|
33
|
-
- [Alert](https://concorde.supersoniks.org/crawl/core/components/ui/alert/alert.html) (core/components/ui/alert/alert):
|
|
34
|
-
- [Badge](https://concorde.supersoniks.org/crawl/core/components/ui/badge/badge.html) (core/components/ui/badge/badge):
|
|
32
|
+
- [Alert messages](https://concorde.supersoniks.org/crawl/core/components/ui/alert-messages/alert-messages.html) (core/components/ui/alert-messages/alert-messages): sonic-alert-messages renders a vertical stack of sonic-alert items from a messages array on a linked data provider (typical pattern: submitResultDataProvider after a form submit). Only entries with ty
|
|
33
|
+
- [Alert](https://concorde.supersoniks.org/crawl/core/components/ui/alert/alert.html) (core/components/ui/alert/alert): Alerts surface important feedback inline—errors, confirmations, or contextual help. Use label / text for simple copy, or the default slot for rich content (links, buttons). Set announce when the messa
|
|
34
|
+
- [Badge](https://concorde.supersoniks.org/crawl/core/components/ui/badge/badge.html) (core/components/ui/badge/badge): Badges are compact, non-interactive labels for status, counts, or categories. They mirror sonic-button styling (type, variant, size) without focus rings or click handling—use a button when the control
|
|
35
35
|
- [Button](https://concorde.supersoniks.org/crawl/core/components/ui/button/button.html) (core/components/ui/button/button): The length of the button depends on the size of its content
|
|
36
|
-
- [Captcha](https://concorde.supersoniks.org/crawl/core/components/ui/captcha/captcha.html) (core/components/ui/captcha/captcha):
|
|
37
|
-
- [Card](https://concorde.supersoniks.org/crawl/core/components/ui/card/card.html) (core/components/ui/card/card):
|
|
38
|
-
- [Divider](https://concorde.supersoniks.org/crawl/core/components/ui/divider/divider.html) (core/components/ui/divider/divider):
|
|
39
|
-
|
|
40
|
-
Align
|
|
41
|
-
|
|
42
|
-
Size
|
|
43
|
-
|
|
44
|
-
Custom
|
|
45
|
-
|
|
46
|
-
Lorem ipsum dolor sit amet +25
|
|
36
|
+
- [Captcha](https://concorde.supersoniks.org/crawl/core/components/ui/captcha/captcha.html) (core/components/ui/captcha/captcha): sonic-captcha embeds an ALTCHA widget and wires captchaToken / needsCaptchaValidation on the ancestor formDataProvider (or headersDataProvider). sonic-submit waits for a token before sending when vali
|
|
37
|
+
- [Card](https://concorde.supersoniks.org/crawl/core/components/ui/card/card.html) (core/components/ui/card/card): Cards group related content on a padded surface with radius, theme type colors, and elevation. Default shadow is lg. Compose sonic-card-header / sonic-card-main / sonic-card-footer, or place any marku
|
|
38
|
+
- [Divider](https://concorde.supersoniks.org/crawl/core/components/ui/divider/divider.html) (core/components/ui/divider/divider): sonic-divider draws a horizontal or vertical rule with optional centered label copy. Use it to separate sections in forms, cards, and sonic-menu. Set label for simple HTML captions or use the default
|
|
47
39
|
- [Checkbox](https://concorde.supersoniks.org/crawl/core/components/ui/form/checkbox/checkbox.html) (core/components/ui/form/checkbox/checkbox): >Already checked checkbox
|
|
48
|
-
- [Fieldset](https://concorde.supersoniks.org/crawl/core/components/ui/form/fieldset/fieldset.html) (core/components/ui/form/fieldset/fieldset):
|
|
49
|
-
- [Form
|
|
50
|
-
- [Form
|
|
40
|
+
- [Fieldset](https://concorde.supersoniks.org/crawl/core/components/ui/form/fieldset/fieldset.html) (core/components/ui/form/fieldset/fieldset): sonic-fieldset groups related form controls with a bordered container and an accessible <fieldset> semantics layer. Put fields in the default slot; add a title with sonic-legend or the shorthand label
|
|
41
|
+
- [Form actions](https://concorde.supersoniks.org/crawl/core/components/ui/form/form-actions/form-actions.html) (core/components/ui/form/form-actions/form-actions): sonic-form-actions lays out submit / cancel and other form footer controls in a wrapping flex row with a small fixed gap. Place it inside sonic-form-layout (full-width row) or any block that should en
|
|
42
|
+
- [Form layout](https://concorde.supersoniks.org/crawl/core/components/ui/form/form-layout/form-layout.html) (core/components/ui/form/form-layout/form-layout): sonic-form-layout arranges slotted form controls in a responsive CSS grid with consistent vertical spacing. Pair sonic-input · sonic-select and sonic-input-autocomplete fields side by side when the ho
|
|
51
43
|
- [Input-autocomplete](https://concorde.supersoniks.org/crawl/core/components/ui/form/input-autocomplete/input-autocomplete.html) (core/components/ui/form/input-autocomplete/input-autocomplete): Champ formulaire + suggestions via queue. Valeur via formDataProvider + name ; la recherche filtre la queue (store interne).
|
|
52
|
-
- [Input](https://concorde.supersoniks.org/crawl/core/components/ui/form/input/input.html) (core/components/ui/form/input/input): Native
|
|
44
|
+
- [Input](https://concorde.supersoniks.org/crawl/core/components/ui/form/input/input.html) (core/components/ui/form/input/input): Native attributes list
|
|
53
45
|
- [Radio](https://concorde.supersoniks.org/crawl/core/components/ui/form/radio/radio.html) (core/components/ui/form/radio/radio): >Already checked radio
|
|
54
46
|
- [Select](https://concorde.supersoniks.org/crawl/core/components/ui/form/select/select.html) (core/components/ui/form/select/select): {"value":"dark", "wording":"dark (set by \"attribute\")", "selected" : "true"}, {"value":"auto", "wording":"auto"}
|
|
55
47
|
- [Switch](https://concorde.supersoniks.org/crawl/core/components/ui/form/switch/switch.html) (core/components/ui/form/switch/switch): >Already checked switch
|
|
56
|
-
- [Textarea](https://concorde.supersoniks.org/crawl/core/components/ui/form/textarea/textarea.html) (core/components/ui/form/textarea/textarea): Native
|
|
57
|
-
- [Group](https://concorde.supersoniks.org/crawl/core/components/ui/group/group.html) (core/components/ui/group/group):
|
|
58
|
-
- [Icon](https://concorde.supersoniks.org/crawl/core/components/ui/icon/icon.html) (core/components/ui/icon/icon):
|
|
59
|
-
- [Image](https://concorde.supersoniks.org/crawl/core/components/ui/image/image.html) (core/components/ui/image/image):
|
|
60
|
-
- [Link](https://concorde.supersoniks.org/crawl/core/components/ui/link/link.html) (core/components/ui/link/link):
|
|
61
|
-
- [Loader](https://concorde.supersoniks.org/crawl/core/components/ui/loader/loader.html) (core/components/ui/loader/loader):
|
|
62
|
-
- [Menu](https://concorde.supersoniks.org/crawl/core/components/ui/menu/menu.html) (core/components/ui/menu/menu):
|
|
63
|
-
- [
|
|
64
|
-
- [Pop](https://concorde.supersoniks.org/crawl/core/components/ui/pop/pop.html) (core/components/ui/pop/pop):
|
|
65
|
-
- [Progress
|
|
66
|
-
- [Table](https://concorde.supersoniks.org/crawl/core/components/ui/table/table.html) (core/components/ui/table/table):
|
|
67
|
-
- [
|
|
68
|
-
- [
|
|
48
|
+
- [Textarea](https://concorde.supersoniks.org/crawl/core/components/ui/form/textarea/textarea.html) (core/components/ui/form/textarea/textarea): Native attributes list
|
|
49
|
+
- [Group](https://concorde.supersoniks.org/crawl/core/components/ui/group/group.html) (core/components/ui/group/group): sonic-group lays out slotted sonic-button · sonic-input and sonic-select controls in a single horizontal row with shared corner radius (first / middle / last items). Optional label and description fol
|
|
50
|
+
- [Icon](https://concorde.supersoniks.org/crawl/core/components/ui/icon/icon.html) (core/components/ui/icon/icon): sonic-icon renders inline SVG icons from the bundled core set or from CDN libraries. Set name (and library / prefix when needed); scale with size. Icons inherit currentColor and are aria-hidden by def
|
|
51
|
+
- [Image](https://concorde.supersoniks.org/crawl/core/components/ui/image/image.html) (core/components/ui/image/image): sonic-image wraps a responsive <img> with aspect ratio, object-fit: cover, optional rounded corners, and load transitions. The host shows a placeholder background (--sc-placeholder-bg) until the asset
|
|
52
|
+
- [Link](https://concorde.supersoniks.org/crawl/core/components/ui/link/link.html) (core/components/ui/link/link): Links navigate with inherited typography: internal routes, anchors, or external URLs. The default slot is the anchor label. For in-app routing, pair href with pushstate; use autoActive to reflect the
|
|
53
|
+
- [Loader](https://concorde.supersoniks.org/crawl/core/components/ui/loader/loader.html) (core/components/ui/loader/loader): sonic-loader shows a loading animation in the page or as a viewport overlay. Default mode is fixed (centered overlay). Use inline inside lists and fetch placeholders. Pair noDelay when the spinner sho
|
|
54
|
+
- [Menu](https://concorde.supersoniks.org/crawl/core/components/ui/menu/menu.html) (core/components/ui/menu/menu): sonic-menu lays out navigation or actions as a direction row or column of sonic-menu-item entries (ghost variant and block shape by default), optional sonic-divider separators, and overflow content in
|
|
55
|
+
- [Modal](https://concorde.supersoniks.org/crawl/core/components/ui/modal/modal.html) (core/components/ui/modal/modal): sonic-modal presents focused content in a <dialog> overlay with backdrop, enter/exit animation, and a built-in close control. Compose sonic-modal-title / sonic-modal-subtitle / sonic-modal-content / s
|
|
56
|
+
- [Pop](https://concorde.supersoniks.org/crawl/core/components/ui/pop/pop.html) (core/components/ui/pop/pop): 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; defau
|
|
57
|
+
- [Progress](https://concorde.supersoniks.org/crawl/core/components/ui/progress/progress.html) (core/components/ui/progress/progress): 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 remaini
|
|
58
|
+
- [Table](https://concorde.supersoniks.org/crawl/core/components/ui/table/table.html) (core/components/ui/table/table): sonic-table lays out tabular data with composable sonic-tr / sonic-th / sonic-td children. The root applies shared typography via size, scrolls horizontally when content overflows, and optionally caps
|
|
59
|
+
- [Theme](https://concorde.supersoniks.org/crawl/core/components/ui/theme/theme.html) (core/components/ui/theme/theme): sonic-theme wraps a Concorde UI: it registers --sc-* design tokens and provides the default slot for your app. With no theme attribute (or theme="custom"), only shared primitives and your overrides ap
|
|
60
|
+
- [Toast](https://concorde.supersoniks.org/crawl/core/components/ui/toast/toast.html) (core/components/ui/toast/toast): Toasts surface short-lived feedback in a fixed stack (bottom-right in the main window). Queue messages with SonicToast.add() on the global SonicToast class—the host sonic-toast is created automaticall
|
|
61
|
+
- [Tooltip](https://concorde.supersoniks.org/crawl/core/components/ui/tooltip/tooltip.html) (core/components/ui/tooltip/tooltip): Tooltip shows a short label on hover (and on focus when the trigger can receive focus). Wrap the trigger in the default slot—buttons, icons, or plain text. Default placement is top (center-aligned). A
|
|
69
62
|
- [Data flow](https://concorde.supersoniks.org/crawl/docs/_core-concept/dataFlow.html) (docs/_core-concept/dataFlow): Recommended patterns for new Concorde apps (Lit + TypeScript). Under the hood, data lives in a DataProvider store (legacy Publisher API: Legacy: Sharing data).
|
|
70
63
|
- [lit + tailwind + vite](https://concorde.supersoniks.org/crawl/docs/_core-concept/overview.html) (docs/_core-concept/overview): Some notes for an overview of Concorde's functioning
|
|
71
64
|
- [Legacy: Subscriber mixin](https://concorde.supersoniks.org/crawl/docs/_core-concept/subscriber.html) (docs/_core-concept/subscriber): > New app components: My first component and Data flow — extend LitElement with decorators (@subscribe, @ancestorAttribute, …). This mixin remains in core components (sonic-list, sonic-fetch, …) and l
|
|
@@ -90,7 +83,7 @@ Custom
|
|
|
90
83
|
- [Legacy: My first subscriber component](https://concorde.supersoniks.org/crawl/docs/_getting-started/my-first-subscriber.html) (docs/_getting-started/my-first-subscriber): > New projects: use My first component (@ancestorAttribute, @subscribe + DataProviderKey, .items on lists) and Data flow. This page documents the Subscriber mixin used by older apps and core component
|
|
91
84
|
- [Legacy: Sharing data](https://concorde.supersoniks.org/crawl/docs/_getting-started/pubsub.html) (docs/_getting-started/pubsub): > New apps: Data flow (get / set / DataProviderKey, decorators). This page documents the historical Publisher proxy API (PublisherManager, publisher.set, onAssign, …).
|
|
92
85
|
- [Introduction](https://concorde.supersoniks.org/crawl/docs/_getting-started/start.html) (docs/_getting-started/start): Based on lit.dev, Concorde is a collection of web components for shared apps and websites.
|
|
93
|
-
- [
|
|
86
|
+
- [Customization](https://concorde.supersoniks.org/crawl/docs/_getting-started/theming.html) (docs/_getting-started/theming): Concorde components ship with default styles (fallback values in each component and in <sonic-theme>).
|
|
94
87
|
- [API configuration](https://concorde.supersoniks.org/crawl/docs/_misc/api-configuration.html) (docs/_misc/api-configuration): APIConfiguration is the object built by HTML.getApiConfiguration from ancestor attributes on the DOM (or from a typed publisher — see @get / @post configuration key). It is passed to API by fetchers,
|
|
95
88
|
- [DataProviderKey](https://concorde.supersoniks.org/crawl/docs/_misc/dataProviderKey.html) (docs/_misc/dataProviderKey): The DataProviderKey<T> utility provides type-safe navigation through composite data structures. Each property or index access extends the path, and the final key can be retrieved via toString() or the
|
|
96
89
|
- [Local API demos (offline)](https://concorde.supersoniks.org/crawl/docs/_misc/docs-mock-api.html) (docs/_misc/docs-mock-api): The Concorde doc site does not call fragile third-party APIs during yarn dev. A Service Worker and the Vite dev middleware serve /docs-mock-api/* on the same origin.
|
package/docs/sitemap.xml
CHANGED
|
@@ -132,6 +132,9 @@
|
|
|
132
132
|
<url>
|
|
133
133
|
<loc>https://concorde.supersoniks.org/crawl/core/components/ui/table/table.html</loc>
|
|
134
134
|
</url>
|
|
135
|
+
<url>
|
|
136
|
+
<loc>https://concorde.supersoniks.org/crawl/core/components/ui/theme/theme.html</loc>
|
|
137
|
+
</url>
|
|
135
138
|
<url>
|
|
136
139
|
<loc>https://concorde.supersoniks.org/crawl/core/components/ui/toast/toast.html</loc>
|
|
137
140
|
</url>
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
# Alert
|
|
2
2
|
|
|
3
|
+
Alerts **surface important feedback** inline—errors, confirmations, or contextual help. Use **`label`** / **`text`** for simple copy, or the **default slot** for rich content (links, buttons). Set **`announce`** when the message appears after an action so screen readers pick it up.
|
|
4
|
+
|
|
5
|
+
## Basic example
|
|
6
|
+
|
|
3
7
|
<sonic-code>
|
|
4
8
|
<template>
|
|
5
9
|
<sonic-alert status="error" label="Email error" text="This address is already in use" background></sonic-alert>
|
|
@@ -8,15 +12,52 @@
|
|
|
8
12
|
|
|
9
13
|
## Status
|
|
10
14
|
|
|
15
|
+
Color and icon follow `status`. With no `status`, behavior is `default`.
|
|
16
|
+
|
|
17
|
+
<sonic-code>
|
|
18
|
+
<template>
|
|
19
|
+
<div class="grid gap-4">
|
|
20
|
+
<sonic-alert label="Default">This address is already in use.</sonic-alert>
|
|
21
|
+
<sonic-alert status="success" label="Success">This address is already in use.</sonic-alert>
|
|
22
|
+
<sonic-alert status="error" label="Error">This address is already in use.</sonic-alert>
|
|
23
|
+
<sonic-alert status="warning" label="Warning">This address is already in use.</sonic-alert>
|
|
24
|
+
<sonic-alert status="info" label="Info">This address is already in use.</sonic-alert>
|
|
25
|
+
</div>
|
|
26
|
+
</template>
|
|
27
|
+
</sonic-code>
|
|
28
|
+
|
|
29
|
+
## Accessibility (`announce`)
|
|
30
|
+
|
|
31
|
+
By default, an alert already in the DOM is **not** announced (no `role` / `aria-live`). Set **`announce`** when the message appears **after** user action (API response, validation, etc.): screen readers get `role="alert"` for `error`, otherwise `role="status"` and `aria-live="polite"`.
|
|
32
|
+
|
|
33
|
+
`sonic-alert-messages` sets `announce` on every rendered alert.
|
|
34
|
+
|
|
35
|
+
<sonic-code>
|
|
36
|
+
<template>
|
|
37
|
+
<sonic-alert announce status="success" label="Saved" text="Your changes were saved."></sonic-alert>
|
|
38
|
+
</template>
|
|
39
|
+
</sonic-code>
|
|
40
|
+
|
|
41
|
+
## Content and icon
|
|
42
|
+
|
|
43
|
+
`label` and `text` accept plain text only. The default slot is rendered after `text`. Use the **`icon`** slot to replace the default `sonic-icon`. **`noIcon`** hides the icon.
|
|
44
|
+
|
|
11
45
|
<sonic-code>
|
|
12
46
|
<template>
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
47
|
+
<sonic-alert status="info" noIcon label="No icon" text="Informational message."></sonic-alert>
|
|
48
|
+
</template>
|
|
49
|
+
</sonic-code>
|
|
50
|
+
|
|
51
|
+
## Custom icon slot
|
|
52
|
+
|
|
53
|
+
Project any markup into **`slot="icon"`** (emoji, image, custom component). Keep it decorative with `aria-hidden="true"` when the message text already conveys meaning.
|
|
54
|
+
|
|
55
|
+
<sonic-code>
|
|
56
|
+
<template>
|
|
57
|
+
<sonic-alert status="success" label="Achievement unlocked" background>
|
|
58
|
+
<span slot="icon" aria-hidden="true" class="text-lg leading-none">🎉</span>
|
|
59
|
+
You unlocked a new badge.
|
|
60
|
+
</sonic-alert>
|
|
20
61
|
</template>
|
|
21
62
|
</sonic-code>
|
|
22
63
|
|
|
@@ -24,98 +65,132 @@
|
|
|
24
65
|
|
|
25
66
|
<sonic-code>
|
|
26
67
|
<template>
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
68
|
+
<div class="grid gap-4">
|
|
69
|
+
<sonic-alert status="error" label="Email error" size="2xs">
|
|
70
|
+
This address is already in use. Lorem ipsum dolor sit amet.
|
|
71
|
+
</sonic-alert>
|
|
72
|
+
<sonic-alert status="error" label="Email error" size="xs">
|
|
73
|
+
This address is already in use. Lorem ipsum dolor sit amet.
|
|
74
|
+
</sonic-alert>
|
|
75
|
+
<sonic-alert status="error" label="Email error" size="sm">
|
|
76
|
+
This address is already in use. Lorem ipsum dolor sit amet.
|
|
77
|
+
</sonic-alert>
|
|
78
|
+
<sonic-alert status="error" label="Email error">
|
|
79
|
+
This address is already in use. Lorem ipsum dolor sit amet.
|
|
80
|
+
</sonic-alert>
|
|
81
|
+
<sonic-alert status="error" label="Email error" size="lg">
|
|
82
|
+
This address is already in use. Lorem ipsum dolor sit amet.
|
|
83
|
+
</sonic-alert>
|
|
84
|
+
<sonic-alert status="error" label="Email error" size="xl">
|
|
85
|
+
This address is already in use. Lorem ipsum dolor sit amet.
|
|
86
|
+
</sonic-alert>
|
|
87
|
+
<sonic-alert status="error" label="Email error" size="2xl">
|
|
88
|
+
This address is already in use. Lorem ipsum dolor sit amet.
|
|
89
|
+
</sonic-alert>
|
|
90
|
+
</div>
|
|
50
91
|
</template>
|
|
51
92
|
</sonic-code>
|
|
52
93
|
|
|
53
94
|
## Alert with link
|
|
54
95
|
|
|
96
|
+
Rich content in the slot (buttons, links).
|
|
97
|
+
|
|
55
98
|
<sonic-code>
|
|
56
99
|
<template>
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
100
|
+
<sonic-alert status="info" label="New messages !">
|
|
101
|
+
You have 2 unread messages<br />
|
|
102
|
+
<div class="flex gap-2 mt-1">
|
|
103
|
+
<sonic-button variant="outline" type="info" size="xs">See messages</sonic-button>
|
|
104
|
+
<sonic-button variant="ghost" type="info" size="xs">Dismiss</sonic-button>
|
|
105
|
+
</div>
|
|
106
|
+
</sonic-alert>
|
|
64
107
|
</template>
|
|
65
108
|
</sonic-code>
|
|
66
109
|
|
|
67
110
|
## Background
|
|
68
111
|
|
|
112
|
+
Tinted background from the `status` color (`color-mix` on `currentColor`).
|
|
113
|
+
|
|
69
114
|
<sonic-code>
|
|
70
115
|
<template>
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
</sonic-alert>
|
|
87
|
-
</div>
|
|
116
|
+
<div class="grid gap-4">
|
|
117
|
+
<sonic-alert background label="Lorem ipsum dolor">This address is already in use.</sonic-alert>
|
|
118
|
+
<sonic-alert status="success" background label="Lorem ipsum dolor">
|
|
119
|
+
This address is already in use.
|
|
120
|
+
</sonic-alert>
|
|
121
|
+
<sonic-alert status="error" background label="Lorem ipsum dolor">
|
|
122
|
+
This address is already in use.
|
|
123
|
+
</sonic-alert>
|
|
124
|
+
<sonic-alert status="warning" background label="Lorem ipsum dolor">
|
|
125
|
+
This address is already in use.
|
|
126
|
+
</sonic-alert>
|
|
127
|
+
<sonic-alert status="info" background label="Lorem ipsum dolor">
|
|
128
|
+
This address is already in use.
|
|
129
|
+
</sonic-alert>
|
|
130
|
+
</div>
|
|
88
131
|
</template>
|
|
89
132
|
</sonic-code>
|
|
90
133
|
|
|
91
134
|
## Dismissible
|
|
92
135
|
|
|
136
|
+
`dismissible` removes the alert from the DOM when the close control is clicked (i18n aria label). **`dismissible`** and **`background`** are independent: without `background`, close sits at the end of the row; with `background`, top-right.
|
|
137
|
+
|
|
93
138
|
<sonic-code>
|
|
94
139
|
<template>
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
140
|
+
<sonic-alert status="info" class="mb-3" dismissible label="This address is already in use.">
|
|
141
|
+
</sonic-alert>
|
|
142
|
+
<sonic-alert class="mb-3" dismissible background label="Lorem ipsum dolor">
|
|
143
|
+
This address is already in use.
|
|
144
|
+
</sonic-alert>
|
|
145
|
+
<sonic-alert status="success" class="mb-3" dismissible background label="Lorem ipsum dolor">
|
|
146
|
+
This address is already in use.
|
|
147
|
+
</sonic-alert>
|
|
148
|
+
<sonic-alert status="error" class="mb-3" dismissible background label="Lorem ipsum dolor">
|
|
149
|
+
This address is already in use.
|
|
150
|
+
</sonic-alert>
|
|
151
|
+
<sonic-alert status="warning" class="mb-3" dismissible background label="Lorem ipsum dolor">
|
|
152
|
+
This address is already in use.
|
|
153
|
+
</sonic-alert>
|
|
154
|
+
<sonic-alert status="info" class="mb-3" dismissible background label="Lorem ipsum dolor">
|
|
155
|
+
This address is already in use.
|
|
156
|
+
</sonic-alert>
|
|
110
157
|
</template>
|
|
111
158
|
</sonic-code>
|
|
112
159
|
|
|
113
160
|
## Dismiss forever
|
|
114
161
|
|
|
162
|
+
With **`dismissForever`**, dismissal is stored in `localStorage` (key `sonic-alert-dismissed`). A stable **`id`** on the element is **required**; without `id`, a warning is logged and nothing is persisted.
|
|
163
|
+
|
|
115
164
|
<sonic-code>
|
|
116
165
|
<template>
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
166
|
+
<sonic-alert
|
|
167
|
+
class="mb-3"
|
|
168
|
+
dismissible
|
|
169
|
+
background
|
|
170
|
+
dismissForever
|
|
171
|
+
label="Lorem ipsum dolor"
|
|
172
|
+
id="addressUniqueId"
|
|
173
|
+
>
|
|
174
|
+
This address is already in use.
|
|
175
|
+
</sonic-alert>
|
|
120
176
|
</template>
|
|
121
177
|
</sonic-code>
|
|
178
|
+
|
|
179
|
+
## API reference
|
|
180
|
+
|
|
181
|
+
| Attribute | Values | Description |
|
|
182
|
+
|----------|---------|-------------|
|
|
183
|
+
| `status` | `default` · `info` · `success` · `warning` · `error` | Color and default icon |
|
|
184
|
+
| `label` | string | Title (plain text) |
|
|
185
|
+
| `text` | string | Short body (plain text), rendered before the slot |
|
|
186
|
+
| `size` | `2xs` … `2xl` | Corner radius and typography |
|
|
187
|
+
| `background` | boolean | Tinted background (`color-mix` on status color) |
|
|
188
|
+
| `dismissible` | boolean | Close control; removes the element from the DOM |
|
|
189
|
+
| `dismissForever` | boolean | Persists dismissal in `localStorage`; requires **`id`** |
|
|
190
|
+
| `noIcon` | boolean | Hides the icon (including custom `icon` slot content) |
|
|
191
|
+
| `announce` | boolean | `role="alert"` / `aria-live` for dynamically injected content |
|
|
192
|
+
|
|
193
|
+
| Slot | Description |
|
|
194
|
+
|------|-------------|
|
|
195
|
+
| *(default)* | Message body (HTML, actions); rendered after `text` |
|
|
196
|
+
| `icon` | Replaces the default `sonic-icon` |
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
# Alert messages
|
|
2
|
+
|
|
3
|
+
**`sonic-alert-messages`** renders a vertical stack of **`sonic-alert`** items from a **`messages`** array on a linked **data provider** (typical pattern: **`submitResultDataProvider`** after a form submit). Only entries with **`type="public"`** are shown. Each alert gets **`announce`** so screen readers pick up feedback after the request.
|
|
4
|
+
|
|
5
|
+
## With submit result
|
|
6
|
+
|
|
7
|
+
Bind **`dataProvider`** to the same publisher as **`submitResultDataProvider`**. API **`messages`** entries need **`type`**: **`public`**, plus **`content`** and optional **`status`** (`warning` · `success` · `error` · `info`).
|
|
8
|
+
|
|
9
|
+
<sonic-code>
|
|
10
|
+
<template>
|
|
11
|
+
<sonic-scope
|
|
12
|
+
serviceURL="/docs-mock-api"
|
|
13
|
+
formDataProvider="submit-example"
|
|
14
|
+
submitResultDataProvider="submit-example-result"
|
|
15
|
+
>
|
|
16
|
+
<sonic-alert-messages dataProvider="submit-example-result" background class="mb-4"></sonic-alert-messages>
|
|
17
|
+
<div class="grid gap-4 max-w-md">
|
|
18
|
+
<sonic-input name="email" type="email" label="Email" value=""></sonic-input>
|
|
19
|
+
<sonic-input name="password" type="password" label="Password" value=""></sonic-input>
|
|
20
|
+
<sonic-submit endPoint="api/register" onClick>
|
|
21
|
+
<sonic-button type="primary">Submit (empty fields → error messages)</sonic-button>
|
|
22
|
+
</sonic-submit>
|
|
23
|
+
</div>
|
|
24
|
+
</sonic-scope>
|
|
25
|
+
</template>
|
|
26
|
+
</sonic-code>
|
|
27
|
+
|
|
28
|
+
## Shared alert props
|
|
29
|
+
|
|
30
|
+
**`size`** · **`background`** and **`noIcon`** apply to every rendered **`sonic-alert`** in the list.
|
|
31
|
+
|
|
32
|
+
<sonic-code>
|
|
33
|
+
<template>
|
|
34
|
+
<sonic-button
|
|
35
|
+
size="sm"
|
|
36
|
+
variant="outline"
|
|
37
|
+
class="mb-3"
|
|
38
|
+
onclick="SonicPublisherManager.get('submit-example-result').set({ messages: [{ type: 'public', content: 'Compact inline feedback without icons.', status: 'info' }] })"
|
|
39
|
+
>
|
|
40
|
+
Load sample messages
|
|
41
|
+
</sonic-button>
|
|
42
|
+
<sonic-alert-messages
|
|
43
|
+
dataProvider="submit-example-result"
|
|
44
|
+
size="sm"
|
|
45
|
+
background
|
|
46
|
+
noIcon
|
|
47
|
+
></sonic-alert-messages>
|
|
48
|
+
</template>
|
|
49
|
+
</sonic-code>
|
|
50
|
+
|
|
51
|
+
## Message shape
|
|
52
|
+
|
|
53
|
+
Example JSON on the result publisher (or API response merged into it):
|
|
54
|
+
|
|
55
|
+
<sonic-code language="typescript">
|
|
56
|
+
<template>
|
|
57
|
+
{
|
|
58
|
+
"messages": [
|
|
59
|
+
{
|
|
60
|
+
"type": "public",
|
|
61
|
+
"content": "The product has been added to your cart",
|
|
62
|
+
"status": "success"
|
|
63
|
+
}
|
|
64
|
+
]
|
|
65
|
+
}
|
|
66
|
+
</template>
|
|
67
|
+
</sonic-code>
|
|
68
|
+
|
|
69
|
+
## API reference
|
|
70
|
+
|
|
71
|
+
| Attribute | Values | Description |
|
|
72
|
+
|----------|---------|-------------|
|
|
73
|
+
| `dataProvider` | publisher id | Source object; **`messages`** array is auto-filled via **Subscriber** |
|
|
74
|
+
| `size` | `2xs` … `2xl` (default `md`) | Passed to each **`sonic-alert`** |
|
|
75
|
+
| `background` | boolean | Tinted background on each alert |
|
|
76
|
+
| `noIcon` | boolean | Hides icons on each alert |
|
|
77
|
+
| `messages` | `Message[]` | Usually set by the publisher; each item uses **`content`** as alert **`text`** |
|
|
78
|
+
|
|
79
|
+
| Message field | Values | Description |
|
|
80
|
+
|---------------|---------|-------------|
|
|
81
|
+
| `type` | `public` | Required for the message to render |
|
|
82
|
+
| `content` | string | Alert body (**`text`** on **`sonic-alert`**) |
|
|
83
|
+
| `status` | `warning` · `success` · `error` · `info` | Alert **`status`**; defaults to **`default`** when omitted |
|
|
84
|
+
|
|
85
|
+
No slots — alerts are generated from **`messages`**.
|