@supersoniks/concorde 5.0.2 → 5.0.3
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/build-infos.json +1 -1
- package/concorde-core.bundle.js +1 -1
- package/concorde-core.es.js +1 -1
- package/dist/concorde-core.bundle.js +1 -1
- package/dist/concorde-core.es.js +1 -1
- package/docs/altcha-widget.js +2662 -0
- package/docs/assets/index--GpD7R7a.css +1 -0
- package/docs/assets/index-BnK6OS7w.js +12115 -0
- package/docs/crawl/core/components/functional/date/date.html +190 -0
- package/docs/crawl/core/components/functional/fetch/fetch.html +109 -0
- package/docs/crawl/core/components/functional/if/if.html +27 -0
- package/docs/crawl/core/components/functional/jsonata/jsonata.html +79 -0
- package/docs/crawl/core/components/functional/list/list.html +70 -0
- package/docs/crawl/core/components/functional/mix/mix.html +45 -0
- package/docs/crawl/core/components/functional/queue/queue.html +96 -0
- package/docs/crawl/core/components/functional/router/router.html +106 -0
- package/docs/crawl/core/components/functional/sdui/sdui.html +269 -0
- package/docs/crawl/core/components/functional/states/states.html +66 -0
- package/docs/crawl/core/components/functional/submit/submit.html +160 -0
- package/docs/crawl/core/components/functional/subscriber/subscriber.html +67 -0
- package/docs/crawl/core/components/functional/value/value.html +51 -0
- package/docs/crawl/core/components/ui/alert/alert.html +140 -0
- package/docs/crawl/core/components/ui/alert-messages/alert-messages.html +23 -0
- package/docs/crawl/core/components/ui/badge/badge.html +148 -0
- package/docs/crawl/core/components/ui/button/button.html +150 -0
- package/docs/crawl/core/components/ui/captcha/captcha.html +30 -0
- package/docs/crawl/core/components/ui/card/card.html +143 -0
- package/docs/crawl/core/components/ui/divider/divider.html +58 -0
- package/docs/crawl/core/components/ui/form/checkbox/checkbox.html +73 -0
- package/docs/crawl/core/components/ui/form/fieldset/fieldset.html +135 -0
- package/docs/crawl/core/components/ui/form/form-actions/form-actions.html +79 -0
- package/docs/crawl/core/components/ui/form/form-layout/form-layout.html +62 -0
- package/docs/crawl/core/components/ui/form/input/input.html +109 -0
- package/docs/crawl/core/components/ui/form/input-autocomplete/input-autocomplete.html +38 -0
- package/docs/crawl/core/components/ui/form/radio/radio.html +56 -0
- package/docs/crawl/core/components/ui/form/select/select.html +73 -0
- package/docs/crawl/core/components/ui/form/switch/switch.html +56 -0
- package/docs/crawl/core/components/ui/form/textarea/textarea.html +59 -0
- package/docs/crawl/core/components/ui/group/group.html +82 -0
- package/docs/crawl/core/components/ui/icon/icon.html +133 -0
- package/docs/crawl/core/components/ui/image/image.html +186 -0
- package/docs/crawl/core/components/ui/link/link.html +42 -0
- package/docs/crawl/core/components/ui/loader/loader.html +50 -0
- package/docs/crawl/core/components/ui/menu/menu.html +322 -0
- package/docs/crawl/core/components/ui/modal/modal.html +117 -0
- package/docs/crawl/core/components/ui/pop/pop.html +178 -0
- package/docs/crawl/core/components/ui/progress/progress.html +58 -0
- package/docs/crawl/core/components/ui/table/table.html +413 -0
- package/docs/crawl/core/components/ui/toast/toast.html +122 -0
- package/docs/crawl/core/components/ui/tooltip/tooltip.html +79 -0
- package/docs/crawl/docs/_core-concept/dataFlow.html +177 -0
- package/docs/crawl/docs/_core-concept/overview.html +66 -0
- package/docs/crawl/docs/_core-concept/subscriber.html +75 -0
- package/docs/crawl/docs/_decorators/ancestor-attribute.html +116 -0
- package/docs/crawl/docs/_decorators/auto-subscribe.html +202 -0
- package/docs/crawl/docs/_decorators/bind.html +141 -0
- package/docs/crawl/docs/_decorators/get.html +149 -0
- package/docs/crawl/docs/_decorators/handle.html +165 -0
- package/docs/crawl/docs/_decorators/on-assign.html +355 -0
- package/docs/crawl/docs/_decorators/patch.html +78 -0
- package/docs/crawl/docs/_decorators/post.html +139 -0
- package/docs/crawl/docs/_decorators/publish.html +61 -0
- package/docs/crawl/docs/_decorators/put.html +78 -0
- package/docs/crawl/docs/_decorators/subscribe.html +109 -0
- package/docs/crawl/docs/_decorators/wait-for-ancestors.html +137 -0
- package/docs/crawl/docs/_directives/sub.html +93 -0
- package/docs/crawl/docs/_getting-started/ai-agents.html +173 -0
- package/docs/crawl/docs/_getting-started/concorde-manual-install.html +100 -0
- package/docs/crawl/docs/_getting-started/concorde-outside.html +58 -0
- package/docs/crawl/docs/_getting-started/create-a-component.html +111 -0
- package/docs/crawl/docs/_getting-started/my-first-component.html +189 -0
- package/docs/crawl/docs/_getting-started/my-first-subscriber.html +110 -0
- package/docs/crawl/docs/_getting-started/pubsub.html +62 -0
- package/docs/crawl/docs/_getting-started/start.html +76 -0
- package/docs/crawl/docs/_getting-started/theming.html +85 -0
- package/docs/crawl/docs/_misc/api-configuration.html +149 -0
- package/docs/crawl/docs/_misc/dataProviderKey.html +135 -0
- package/docs/crawl/docs/_misc/docs-mock-api.html +158 -0
- package/docs/crawl/docs/_misc/dynamic-path.html +180 -0
- package/docs/crawl/docs/_misc/endpoint.html +50 -0
- package/docs/crawl/docs/_misc/formelement-subscriber-removal.html +138 -0
- package/docs/crawl/docs/_misc/html-integration.html +48 -0
- package/docs/crawl/hubs/decorators.html +547 -0
- package/docs/crawl/hubs/form-components.html +359 -0
- package/docs/crawl/hubs/remote-data.html +452 -0
- package/docs/crawl/index.html +101 -0
- package/docs/css/docs.css +0 -0
- package/docs/docs-mock-api-sw.js +724 -0
- package/docs/docs-mock-api-sw.js.map +7 -0
- package/docs/fonts/ClashGrotesk-Bold.eot +0 -0
- package/docs/fonts/ClashGrotesk-Bold.ttf +0 -0
- package/docs/fonts/ClashGrotesk-Bold.woff +0 -0
- package/docs/fonts/ClashGrotesk-Bold.woff2 +0 -0
- package/docs/fonts/ClashGrotesk-Extralight.eot +0 -0
- package/docs/fonts/ClashGrotesk-Extralight.ttf +0 -0
- package/docs/fonts/ClashGrotesk-Extralight.woff +0 -0
- package/docs/fonts/ClashGrotesk-Extralight.woff2 +0 -0
- package/docs/fonts/ClashGrotesk-Light.eot +0 -0
- package/docs/fonts/ClashGrotesk-Light.ttf +0 -0
- package/docs/fonts/ClashGrotesk-Light.woff +0 -0
- package/docs/fonts/ClashGrotesk-Light.woff2 +0 -0
- package/docs/fonts/ClashGrotesk-Medium.eot +0 -0
- package/docs/fonts/ClashGrotesk-Medium.ttf +0 -0
- package/docs/fonts/ClashGrotesk-Medium.woff +0 -0
- package/docs/fonts/ClashGrotesk-Medium.woff2 +0 -0
- package/docs/fonts/ClashGrotesk-Regular.eot +0 -0
- package/docs/fonts/ClashGrotesk-Regular.ttf +0 -0
- package/docs/fonts/ClashGrotesk-Regular.woff +0 -0
- package/docs/fonts/ClashGrotesk-Regular.woff2 +0 -0
- package/docs/fonts/ClashGrotesk-Semibold.eot +0 -0
- package/docs/fonts/ClashGrotesk-Semibold.ttf +0 -0
- package/docs/fonts/ClashGrotesk-Semibold.woff +0 -0
- package/docs/fonts/ClashGrotesk-Semibold.woff2 +0 -0
- package/docs/fonts/ClashGrotesk-Variable.eot +0 -0
- package/docs/fonts/ClashGrotesk-Variable.ttf +0 -0
- package/docs/fonts/ClashGrotesk-Variable.woff +0 -0
- package/docs/fonts/ClashGrotesk-Variable.woff2 +0 -0
- package/docs/img/concorde-icon.svg +5 -0
- package/docs/img/concorde-logo.svg +1 -0
- package/docs/img/concorde.png +0 -0
- package/docs/img/concorde_def.png +0 -0
- package/docs/img/concorde_seuil.png.webp +0 -0
- package/docs/img/concorde_seuil_invert.png +0 -0
- package/docs/img/paul_metrand.jpg +0 -0
- package/docs/img/paul_metrand_xs.jpg +0 -0
- package/docs/index.html +93 -0
- package/docs/llms-full.txt +5945 -0
- package/docs/llms.txt +104 -0
- package/docs/robots.txt +16 -0
- package/docs/sitemap.xml +237 -0
- package/docs/src/core/components/functional/date/date.md +290 -0
- package/docs/src/core/components/functional/fetch/fetch.md +125 -0
- package/docs/src/core/components/functional/if/if.md +9 -0
- package/docs/src/core/components/functional/jsonata/jsonata.md +56 -0
- package/docs/src/core/components/functional/list/list.md +65 -0
- package/docs/src/core/components/functional/mix/mix.md +41 -0
- package/docs/src/core/components/functional/queue/queue.md +72 -0
- package/docs/src/core/components/functional/router/router.md +94 -0
- package/docs/src/core/components/functional/sdui/default-library.json +108 -0
- package/docs/src/core/components/functional/sdui/example.json +99 -0
- package/docs/src/core/components/functional/sdui/sdui.md +356 -0
- package/docs/src/core/components/functional/states/states.md +87 -0
- package/docs/src/core/components/functional/submit/submit.md +114 -0
- package/docs/src/core/components/functional/subscriber/subscriber.md +91 -0
- package/docs/src/core/components/functional/value/value.md +35 -0
- package/docs/src/core/components/ui/alert/alert.md +177 -0
- package/docs/src/core/components/ui/alert-messages/alert-messages.md +0 -0
- package/docs/src/core/components/ui/badge/badge.md +175 -0
- package/docs/src/core/components/ui/button/button.md +183 -0
- package/docs/src/core/components/ui/captcha/captcha.md +12 -0
- package/docs/src/core/components/ui/card/card.md +152 -0
- package/docs/src/core/components/ui/divider/divider.md +35 -0
- package/docs/src/core/components/ui/form/checkbox/checkbox.md +77 -0
- package/docs/src/core/components/ui/form/fieldset/fieldset.md +129 -0
- package/docs/src/core/components/ui/form/form-actions/form-actions.md +77 -0
- package/docs/src/core/components/ui/form/form-layout/form-layout.md +44 -0
- package/docs/src/core/components/ui/form/input/input.md +142 -0
- package/docs/src/core/components/ui/form/input-autocomplete/input-autocomplete.md +29 -0
- package/docs/src/core/components/ui/form/radio/radio.md +57 -0
- package/docs/src/core/components/ui/form/select/select.md +71 -0
- package/docs/src/core/components/ui/form/switch/switch.md +57 -0
- package/docs/src/core/components/ui/form/textarea/textarea.md +65 -0
- package/docs/src/core/components/ui/group/group.md +75 -0
- package/docs/src/core/components/ui/icon/icon.md +125 -0
- package/docs/src/core/components/ui/icon/icons.json +1 -0
- package/docs/src/core/components/ui/image/image.md +201 -0
- package/docs/src/core/components/ui/link/link.md +43 -0
- package/docs/src/core/components/ui/loader/loader.md +55 -0
- package/docs/src/core/components/ui/menu/menu.md +329 -0
- package/docs/src/core/components/ui/modal/modal.md +119 -0
- package/docs/src/core/components/ui/pop/pop.md +200 -0
- package/docs/src/core/components/ui/progress/progress.md +63 -0
- package/docs/src/core/components/ui/table/table.md +455 -0
- package/docs/src/core/components/ui/toast/toast.md +166 -0
- package/docs/src/core/components/ui/tooltip/tooltip.md +82 -0
- package/docs/src/docs/_core-concept/dataFlow.md +88 -0
- package/docs/src/docs/_core-concept/overview.md +57 -0
- package/docs/src/docs/_core-concept/subscriber.md +75 -0
- package/docs/src/docs/_decorators/ancestor-attribute.md +127 -0
- package/docs/src/docs/_decorators/auto-subscribe.md +202 -0
- package/docs/src/docs/_decorators/bind.md +167 -0
- package/docs/src/docs/_decorators/get.md +162 -0
- package/docs/src/docs/_decorators/handle.md +175 -0
- package/docs/src/docs/_decorators/on-assign.md +390 -0
- package/docs/src/docs/_decorators/patch.md +70 -0
- package/docs/src/docs/_decorators/post.md +146 -0
- package/docs/src/docs/_decorators/publish.md +55 -0
- package/docs/src/docs/_decorators/put.md +70 -0
- package/docs/src/docs/_decorators/subscribe.md +100 -0
- package/docs/src/docs/_decorators/wait-for-ancestors.md +163 -0
- package/docs/src/docs/_directives/sub.md +91 -0
- package/docs/src/docs/_getting-started/ai-agents.md +76 -0
- package/docs/src/docs/_getting-started/concorde-manual-install.md +133 -0
- package/docs/src/docs/_getting-started/concorde-outside.md +33 -0
- package/docs/src/docs/_getting-started/create-a-component.md +139 -0
- package/docs/src/docs/_getting-started/my-first-component.md +236 -0
- package/docs/src/docs/_getting-started/my-first-subscriber.md +120 -0
- package/docs/src/docs/_getting-started/pubsub.md +37 -0
- package/docs/src/docs/_getting-started/start.md +47 -0
- package/docs/src/docs/_getting-started/theming.md +91 -0
- package/docs/src/docs/_misc/api-configuration.md +81 -0
- package/docs/src/docs/_misc/dataProviderKey.md +168 -0
- package/docs/src/docs/_misc/docs-mock-api.md +63 -0
- package/docs/src/docs/_misc/dynamic-path.md +71 -0
- package/docs/src/docs/_misc/endpoint.md +45 -0
- package/docs/src/docs/_misc/formelement-subscriber-removal.md +115 -0
- package/docs/src/docs/_misc/html-integration.md +15 -0
- package/docs/src/docs/search/docs-search.json +10137 -0
- package/docs/src/tag-list.json +1 -0
- package/docs/src/tsconfig-model.json +23 -0
- package/docs/src/tsconfig.json +1224 -0
- package/docs/svg/regular/plane.svg +1 -0
- package/docs/svg/solid/plane.svg +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
# Badge
|
|
2
|
+
|
|
3
|
+
A **non-interactive** pill for labels, counts, or highlights (counter, status, category). The API mirrors `sonic-button` (`type`, `variant`, `size`) without focus or click states.
|
|
4
|
+
|
|
5
|
+
Colors come from theme tokens (`--sc-primary`, `--sc-danger`, …) or the semantic `type` values below.
|
|
6
|
+
|
|
7
|
+
## Type
|
|
8
|
+
|
|
9
|
+
`default` — subtle background (`base-100`). `neutral` — dark fill (`base-content`) with light text, useful on light backgrounds.
|
|
10
|
+
|
|
11
|
+
<sonic-code>
|
|
12
|
+
<template>
|
|
13
|
+
<div class="flex flex-wrap gap-2">
|
|
14
|
+
<sonic-badge>Default</sonic-badge>
|
|
15
|
+
<sonic-badge type="primary">Primary</sonic-badge>
|
|
16
|
+
<sonic-badge type="neutral">Neutral</sonic-badge>
|
|
17
|
+
<sonic-badge type="warning">Warning</sonic-badge>
|
|
18
|
+
<sonic-badge type="info">Info</sonic-badge>
|
|
19
|
+
<sonic-badge type="success">Success</sonic-badge>
|
|
20
|
+
<sonic-badge type="danger">Danger</sonic-badge>
|
|
21
|
+
</div>
|
|
22
|
+
</template>
|
|
23
|
+
</sonic-code>
|
|
24
|
+
|
|
25
|
+
## Variant
|
|
26
|
+
|
|
27
|
+
`outline` — border and text in the `type` color. `ghost` — text only, no padding (except in forced-colors mode).
|
|
28
|
+
|
|
29
|
+
## Outline
|
|
30
|
+
|
|
31
|
+
<sonic-code>
|
|
32
|
+
<template>
|
|
33
|
+
<div class="flex items-center flex-wrap gap-3">
|
|
34
|
+
<sonic-badge variant="outline">Default</sonic-badge>
|
|
35
|
+
<sonic-badge variant="outline" type="primary">Primary</sonic-badge>
|
|
36
|
+
<sonic-badge variant="outline" type="neutral">Neutral</sonic-badge>
|
|
37
|
+
<sonic-badge variant="outline" type="warning">Warning</sonic-badge>
|
|
38
|
+
<sonic-badge variant="outline" type="info">Info</sonic-badge>
|
|
39
|
+
<sonic-badge variant="outline" type="success">Success</sonic-badge>
|
|
40
|
+
<sonic-badge variant="outline" type="danger">Danger</sonic-badge>
|
|
41
|
+
</div>
|
|
42
|
+
</template>
|
|
43
|
+
</sonic-code>
|
|
44
|
+
|
|
45
|
+
## Ghost
|
|
46
|
+
|
|
47
|
+
<sonic-code>
|
|
48
|
+
<template>
|
|
49
|
+
<div class="flex items-center flex-wrap gap-3">
|
|
50
|
+
<sonic-badge variant="ghost">Default</sonic-badge>
|
|
51
|
+
<sonic-badge variant="ghost" type="primary">Primary</sonic-badge>
|
|
52
|
+
<sonic-badge variant="ghost" type="neutral">Neutral</sonic-badge>
|
|
53
|
+
<sonic-badge variant="ghost" type="warning">Warning</sonic-badge>
|
|
54
|
+
<sonic-badge variant="ghost" type="info">Info</sonic-badge>
|
|
55
|
+
<sonic-badge variant="ghost" type="success">Success</sonic-badge>
|
|
56
|
+
<sonic-badge variant="ghost" type="danger">Danger</sonic-badge>
|
|
57
|
+
</div>
|
|
58
|
+
</template>
|
|
59
|
+
</sonic-code>
|
|
60
|
+
|
|
61
|
+
## Size
|
|
62
|
+
|
|
63
|
+
Default size is `md` (omit the `size` attribute). Typography and padding follow `sonic-button`.
|
|
64
|
+
|
|
65
|
+
<sonic-code>
|
|
66
|
+
<template>
|
|
67
|
+
<div class="flex flex-wrap items-center gap-2">
|
|
68
|
+
<sonic-badge size="2xs">2Xs</sonic-badge>
|
|
69
|
+
<sonic-badge size="xs">Xs</sonic-badge>
|
|
70
|
+
<sonic-badge size="sm">Sm</sonic-badge>
|
|
71
|
+
<sonic-badge>Md</sonic-badge>
|
|
72
|
+
<sonic-badge size="lg">Lg</sonic-badge>
|
|
73
|
+
<sonic-badge size="xl">Xl</sonic-badge>
|
|
74
|
+
<sonic-badge size="2xl">2Xl</sonic-badge>
|
|
75
|
+
</div>
|
|
76
|
+
</template>
|
|
77
|
+
</sonic-code>
|
|
78
|
+
|
|
79
|
+
## Prefix and suffix slots
|
|
80
|
+
|
|
81
|
+
Icons or short text before / after the main label.
|
|
82
|
+
|
|
83
|
+
<sonic-code>
|
|
84
|
+
<template>
|
|
85
|
+
<sonic-badge type="info" size="sm">
|
|
86
|
+
<sonic-icon slot="prefix" name="info-empty" library="iconoir"></sonic-icon>
|
|
87
|
+
Info
|
|
88
|
+
</sonic-badge>
|
|
89
|
+
<sonic-badge type="success">
|
|
90
|
+
Verified
|
|
91
|
+
<sonic-icon slot="suffix" name="check" library="iconoir"></sonic-icon>
|
|
92
|
+
</sonic-badge>
|
|
93
|
+
</template>
|
|
94
|
+
</sonic-code>
|
|
95
|
+
|
|
96
|
+
## Empty badges
|
|
97
|
+
|
|
98
|
+
Badge with no text (visual dot). `min-width` / `min-height` keep a readable shape.
|
|
99
|
+
|
|
100
|
+
<sonic-code>
|
|
101
|
+
<template>
|
|
102
|
+
<div class="flex items-center flex-wrap gap-3">
|
|
103
|
+
<sonic-badge type="danger" size="2xs"></sonic-badge>
|
|
104
|
+
<sonic-badge type="danger" size="xs"></sonic-badge>
|
|
105
|
+
<sonic-badge type="danger" size="sm"></sonic-badge>
|
|
106
|
+
<sonic-badge type="danger"></sonic-badge>
|
|
107
|
+
<sonic-badge type="danger" size="lg"></sonic-badge>
|
|
108
|
+
<sonic-badge type="danger" size="xl"></sonic-badge>
|
|
109
|
+
<sonic-badge type="danger" size="2xl"></sonic-badge>
|
|
110
|
+
</div>
|
|
111
|
+
</template>
|
|
112
|
+
</sonic-code>
|
|
113
|
+
|
|
114
|
+
## Ellipsis
|
|
115
|
+
|
|
116
|
+
With `ellipsis`, long labels truncate. The parent must constrain width (`max-width`, grid, etc.).
|
|
117
|
+
|
|
118
|
+
<sonic-code>
|
|
119
|
+
<template>
|
|
120
|
+
<div class="grid grid-cols-2 gap-4 max-w-xl">
|
|
121
|
+
<sonic-badge ellipsis size="sm" variant="outline">
|
|
122
|
+
<sonic-icon slot="prefix" name="info-empty" library="iconoir"></sonic-icon>
|
|
123
|
+
Lorem ipsum dolor sit amet consectetur adipiscing elit sed do eiusmod.
|
|
124
|
+
</sonic-badge>
|
|
125
|
+
<sonic-badge ellipsis size="sm">
|
|
126
|
+
<sonic-icon slot="prefix" name="info-empty" library="iconoir"></sonic-icon>
|
|
127
|
+
Lorem ipsum dolor sit amet consectetur adipiscing elit sed do eiusmod.
|
|
128
|
+
</sonic-badge>
|
|
129
|
+
</div>
|
|
130
|
+
</template>
|
|
131
|
+
</sonic-code>
|
|
132
|
+
|
|
133
|
+
## Badge in button
|
|
134
|
+
|
|
135
|
+
Count inside a button (`slot="suffix"`) or a badge absolutely positioned on a button / icon.
|
|
136
|
+
|
|
137
|
+
<sonic-code>
|
|
138
|
+
<template>
|
|
139
|
+
<div class="flex flex-wrap gap-4 items-center">
|
|
140
|
+
<sonic-button type="default">
|
|
141
|
+
Messages <sonic-badge slot="suffix" type="danger" size="xs">5</sonic-badge>
|
|
142
|
+
</sonic-button>
|
|
143
|
+
<div class="relative inline-block">
|
|
144
|
+
<sonic-button type="success" class="relative">My account</sonic-button>
|
|
145
|
+
<sonic-badge
|
|
146
|
+
type="danger"
|
|
147
|
+
size="xs"
|
|
148
|
+
class="absolute right-1 top-0 pe-none transform -translate-y-1/2"
|
|
149
|
+
>12</sonic-badge
|
|
150
|
+
>
|
|
151
|
+
</div>
|
|
152
|
+
<div class="relative inline-block">
|
|
153
|
+
<sonic-button type="neutral" shape="circle" variant="outline">
|
|
154
|
+
<sonic-icon library="iconoir" name="user"></sonic-icon>
|
|
155
|
+
</sonic-button>
|
|
156
|
+
<sonic-badge
|
|
157
|
+
type="danger"
|
|
158
|
+
size="xs"
|
|
159
|
+
class="absolute right-1 bottom-1 pe-none transform translate-y-1/2 translate-x-1/2"
|
|
160
|
+
>33</sonic-badge
|
|
161
|
+
>
|
|
162
|
+
</div>
|
|
163
|
+
<div class="relative inline-block">
|
|
164
|
+
<sonic-button type="neutral" shape="circle" variant="outline">
|
|
165
|
+
<sonic-icon library="iconoir" name="user"></sonic-icon>
|
|
166
|
+
</sonic-button>
|
|
167
|
+
<sonic-badge
|
|
168
|
+
type="danger"
|
|
169
|
+
size="xs"
|
|
170
|
+
class="absolute right-2 bottom-2 pe-none transform translate-y-1/2 translate-x-1/2"
|
|
171
|
+
></sonic-badge>
|
|
172
|
+
</div>
|
|
173
|
+
</div>
|
|
174
|
+
</template>
|
|
175
|
+
</sonic-code>
|
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
# Button
|
|
2
|
+
|
|
3
|
+
## Type
|
|
4
|
+
<sonic-code>
|
|
5
|
+
<template>
|
|
6
|
+
<div class="flex flex-wrap gap-2">
|
|
7
|
+
<sonic-button>Default</sonic-button>
|
|
8
|
+
<sonic-button type="primary">Primary</sonic-button>
|
|
9
|
+
<sonic-button type="neutral">Neutral</sonic-button>
|
|
10
|
+
<sonic-button type="warning">Warning</sonic-button>
|
|
11
|
+
<sonic-button type="info">Info</sonic-button>
|
|
12
|
+
<sonic-button type="success">Success</sonic-button>
|
|
13
|
+
<sonic-button type="danger">Danger</sonic-button>
|
|
14
|
+
<sonic-button type="custom" style="--sc-btn-custom-color: #fde68a; --sc-btn-custom-bg: #5b21b6">Custom</sonic-button>
|
|
15
|
+
</div>
|
|
16
|
+
</template>
|
|
17
|
+
</sonic-code>
|
|
18
|
+
|
|
19
|
+
## Outline
|
|
20
|
+
<sonic-code>
|
|
21
|
+
<template>
|
|
22
|
+
<div class="flex flex-wrap gap-2">
|
|
23
|
+
<sonic-button variant="outline">Default</sonic-button>
|
|
24
|
+
<sonic-button variant="outline" type="primary">Primary</sonic-button>
|
|
25
|
+
<sonic-button variant="outline" type="neutral">Neutral</sonic-button>
|
|
26
|
+
<sonic-button variant="outline" type="warning">Warning</sonic-button>
|
|
27
|
+
<sonic-button variant="outline" type="info">Info</sonic-button>
|
|
28
|
+
<sonic-button variant="outline" type="success">Success</sonic-button>
|
|
29
|
+
<sonic-button variant="outline" type="danger">Danger</sonic-button>
|
|
30
|
+
<sonic-button variant="outline" type="custom" style="--sc-btn-custom-bg: #5b21b6">Custom</sonic-button>
|
|
31
|
+
</div>
|
|
32
|
+
</template>
|
|
33
|
+
</sonic-code>
|
|
34
|
+
|
|
35
|
+
## Variant
|
|
36
|
+
<sonic-code>
|
|
37
|
+
<template>
|
|
38
|
+
<sonic-button variant="default">Default</sonic-button>
|
|
39
|
+
<sonic-button variant="outline">Outline</sonic-button>
|
|
40
|
+
<sonic-button variant="ghost">Ghost</sonic-button>
|
|
41
|
+
<sonic-button variant="link">Link</sonic-button>
|
|
42
|
+
<sonic-button variant="unstyled">Unstyled</sonic-button>
|
|
43
|
+
</template>
|
|
44
|
+
</sonic-code>
|
|
45
|
+
|
|
46
|
+
## Size
|
|
47
|
+
<sonic-code>
|
|
48
|
+
<template>
|
|
49
|
+
<sonic-button size="2xs">2Xs button</sonic-button>
|
|
50
|
+
<sonic-button size="xs">Xs button</sonic-button>
|
|
51
|
+
<sonic-button size="sm">Sm button</sonic-button>
|
|
52
|
+
<sonic-button size="md">Md button</sonic-button>
|
|
53
|
+
<sonic-button>Default button</sonic-button>
|
|
54
|
+
<sonic-button size="lg">Lg button</sonic-button>
|
|
55
|
+
<sonic-button size="xl">Xl button</sonic-button>
|
|
56
|
+
<sonic-button size="2xl">2Xl button</sonic-button>
|
|
57
|
+
</template>
|
|
58
|
+
</sonic-code>
|
|
59
|
+
|
|
60
|
+
## Shape
|
|
61
|
+
<sonic-code>
|
|
62
|
+
<template>
|
|
63
|
+
<sonic-button shape="circle"> 😂 </sonic-button>
|
|
64
|
+
<sonic-button shape="square"> 🚀 </sonic-button>
|
|
65
|
+
</template>
|
|
66
|
+
</sonic-code>
|
|
67
|
+
|
|
68
|
+
## Loading
|
|
69
|
+
The length of the button depends on the size of its content
|
|
70
|
+
<sonic-code>
|
|
71
|
+
<template>
|
|
72
|
+
<sonic-button loading></sonic-button>
|
|
73
|
+
<sonic-button loading>Loading button</sonic-button>
|
|
74
|
+
<sonic-button loading><span slot="prefix">🚀</span>Loading with prefix<span slot="suffix">😂</span></sonic-button>
|
|
75
|
+
</template>
|
|
76
|
+
</sonic-code>
|
|
77
|
+
|
|
78
|
+
## Swap
|
|
79
|
+
<sonic-code>
|
|
80
|
+
<template>
|
|
81
|
+
<sonic-button formDataProvider="button_swap_example" name="youpi" value="youpla" type="primary" shape="circle" variant="outline" class="mr-4">
|
|
82
|
+
<sonic-icon library="iconoir" swap="on" name="eye-empty"></sonic-icon>
|
|
83
|
+
<sonic-icon library="iconoir" swap="off" name="eye-off"></sonic-icon>
|
|
84
|
+
</sonic-button>
|
|
85
|
+
<sonic-button formDataProvider="button_swap_example" name="youpi" value="youpla" type="primary" variant="outline">
|
|
86
|
+
<sonic-icon library="iconoir" swap="on" slot="prefix" name="eye-empty"></sonic-icon>
|
|
87
|
+
<sonic-icon library="iconoir" swap="off" slot="prefix" name="eye-off"></sonic-icon>
|
|
88
|
+
Révélez
|
|
89
|
+
<span swap="off">...</span>
|
|
90
|
+
<span swap="on">moi !</span>
|
|
91
|
+
</sonic-button>
|
|
92
|
+
</template>
|
|
93
|
+
</sonic-code>
|
|
94
|
+
|
|
95
|
+
## Reset
|
|
96
|
+
<sonic-code>
|
|
97
|
+
<template>
|
|
98
|
+
<div formDataProvider="button-reset-demo" class="mb-2">
|
|
99
|
+
<sonic-checkbox name="aChexbox" value="AValueToSet">Set A value</sonic-checkbox><br>
|
|
100
|
+
<sonic-button reset>Reset current formDataProvider</sonic-button>
|
|
101
|
+
</div>
|
|
102
|
+
<sonic-button reset="button-reset-demo">Reset formDataProvider by name</sonic-button>
|
|
103
|
+
</template>
|
|
104
|
+
</sonic-code>
|
|
105
|
+
|
|
106
|
+
|
|
107
|
+
## GoBack
|
|
108
|
+
<sonic-code>
|
|
109
|
+
<template>
|
|
110
|
+
<sonic-button goBack type="primary" variant="outline" class="mr-4">
|
|
111
|
+
<sonic-icon library="iconoir" slot="prefix" name="arrow-left"></sonic-icon>
|
|
112
|
+
Retour classique
|
|
113
|
+
</sonic-button>
|
|
114
|
+
<sonic-button goBack="http://la-billetterie.net" type="primary" variant="outline" class="mr-4">
|
|
115
|
+
<sonic-icon library="iconoir" slot="prefix" name="arrow-left"></sonic-icon>
|
|
116
|
+
Retour url prédéfinie
|
|
117
|
+
</sonic-button>
|
|
118
|
+
</template>
|
|
119
|
+
</sonic-code>
|
|
120
|
+
|
|
121
|
+
## Button with icon
|
|
122
|
+
<sonic-code>
|
|
123
|
+
<template>
|
|
124
|
+
<sonic-button goBack type="primary" variant="outline" class="mr-4">
|
|
125
|
+
<sonic-icon library="iconoir" slot="prefix" name="arrow-right" ></sonic-icon>
|
|
126
|
+
Button with icon
|
|
127
|
+
</sonic-button>
|
|
128
|
+
</template>
|
|
129
|
+
</sonic-code>
|
|
130
|
+
|
|
131
|
+
|
|
132
|
+
## Button group
|
|
133
|
+
<sonic-code>
|
|
134
|
+
<template>
|
|
135
|
+
<sonic-group label="Code promo" class="mr-4">
|
|
136
|
+
<sonic-input placeholder="Entrez votre code ici..."></sonic-input>
|
|
137
|
+
<sonic-button type="primary" shape="square">
|
|
138
|
+
<sonic-icon library="iconoir" library="iconoir" name="gift"></sonic-icon>
|
|
139
|
+
</sonic-button>
|
|
140
|
+
</sonic-group>
|
|
141
|
+
<sonic-divider size="lg"></sonic-divider>
|
|
142
|
+
<div class="text-lg mb-2">Choose a subscription</div>
|
|
143
|
+
<sonic-group formDataProvider="subscriptionData">
|
|
144
|
+
<sonic-button radio minWidth="10rem" name="subscription" value="standard" type="default"
|
|
145
|
+
>😎 Standard</sonic-button
|
|
146
|
+
>
|
|
147
|
+
<sonic-button radio minWidth="10rem" name="subscription" value="premium" type="default">⭐ Premium</sonic-button>
|
|
148
|
+
<sonic-button radio minWidth="10rem" name="subscription" value="diamond" type="default">💎 Diamond</sonic-button>
|
|
149
|
+
</sonic-group>
|
|
150
|
+
</template>
|
|
151
|
+
</sonic-code>
|
|
152
|
+
|
|
153
|
+
|
|
154
|
+
## Aria-label
|
|
155
|
+
<sonic-code>
|
|
156
|
+
<template>
|
|
157
|
+
<sonic-button data-aria-label="Custom aria label" type="primary" >
|
|
158
|
+
Button with aria label
|
|
159
|
+
</sonic-button>
|
|
160
|
+
<sonic-button data-aria-label="Custom aria label" href="https://google.fr" type="primary" >
|
|
161
|
+
Button link with aria label
|
|
162
|
+
</sonic-button>
|
|
163
|
+
</template>
|
|
164
|
+
</sonic-code>
|
|
165
|
+
|
|
166
|
+
|
|
167
|
+
## Custom styles & active states with tailwind
|
|
168
|
+
<sonic-code>
|
|
169
|
+
<template>
|
|
170
|
+
<div formDataProvider="subscriptionData2">
|
|
171
|
+
<sonic-button
|
|
172
|
+
class="bg-neutral-100 transition-all text-center text-lg text-neutral-400 rounded-md min-w-[8rem] [&[active]]:text-danger-content [&[active]]:min-w-[13rem] [&[active]]:bg-danger [&[active]]:font-black [&[active]]:rounded-full"
|
|
173
|
+
variant="unstyled"
|
|
174
|
+
checkable unique
|
|
175
|
+
name="subscription"
|
|
176
|
+
value="premium"
|
|
177
|
+
type="default">
|
|
178
|
+
<span swap="off" class="inline-block py-2 px-3" >subscribe</span>
|
|
179
|
+
<span swap="on" class="inline-block py-2 px-3" >⭐ Premium</span>
|
|
180
|
+
</sonic-button>
|
|
181
|
+
</div>
|
|
182
|
+
</template>
|
|
183
|
+
</sonic-code>
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
# Captcha
|
|
2
|
+
|
|
3
|
+
<sonic-code>
|
|
4
|
+
<template>
|
|
5
|
+
<sonic-captcha formDataProvider="captchaTestDataProvider" key="6Leq5V0iAAAAAB-41DlWN335jDlcIuXmhNtdd00t">
|
|
6
|
+
<sonic-submit serviceURL="/docs-mock-api" endPoint="api/unknown" onclick>
|
|
7
|
+
<sonic-button class="mt-4">Submit with captcha</sonic-button>
|
|
8
|
+
</sonic-submit>
|
|
9
|
+
</sonic-captcha>
|
|
10
|
+
</template>
|
|
11
|
+
</sonic-code>
|
|
12
|
+
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
# Card
|
|
2
|
+
|
|
3
|
+
A **surface** for grouped content: padding, radius, shadow, and semantic **`type`** colors via shared theme tokens. Compose **`sonic-card-header`**, **`sonic-card-main`**, and **`sonic-card-footer`** inside the card, or put any markup in the default slot.
|
|
4
|
+
|
|
5
|
+
Default **`type`** is `base` (page background). Use `light` for a subtle gray panel, `invert` / `neutral` for high-contrast blocks, and `primary`, `info`, `success`, `warning`, or `danger` for tinted surfaces (divider tokens apply on colored types).
|
|
6
|
+
|
|
7
|
+
## Type
|
|
8
|
+
|
|
9
|
+
<sonic-code>
|
|
10
|
+
<template>
|
|
11
|
+
<div class="flex flex-wrap gap-3">
|
|
12
|
+
<sonic-card type="base" class="min-w-[8rem]">Base</sonic-card>
|
|
13
|
+
<sonic-card type="light" class="min-w-[8rem]">Light</sonic-card>
|
|
14
|
+
<sonic-card type="primary" class="min-w-[8rem]">Primary</sonic-card>
|
|
15
|
+
<sonic-card type="info" class="min-w-[8rem]">Info</sonic-card>
|
|
16
|
+
<sonic-card type="success" class="min-w-[8rem]">Success</sonic-card>
|
|
17
|
+
<sonic-card type="warning" class="min-w-[8rem]">Warning</sonic-card>
|
|
18
|
+
<sonic-card type="danger" class="min-w-[8rem]">Danger</sonic-card>
|
|
19
|
+
<sonic-card type="neutral" class="min-w-[8rem]">Neutral</sonic-card>
|
|
20
|
+
<sonic-card type="invert" class="min-w-[8rem]">Invert</sonic-card>
|
|
21
|
+
</div>
|
|
22
|
+
</template>
|
|
23
|
+
</sonic-code>
|
|
24
|
+
|
|
25
|
+
## Header
|
|
26
|
+
|
|
27
|
+
Quick titles with **`label`** and **`description`** attributes, or full control through the default slot. **`slot="suffix"`** aligns badges or actions on the right; suffix content does not shrink when the title wraps.
|
|
28
|
+
|
|
29
|
+
<sonic-code>
|
|
30
|
+
<template>
|
|
31
|
+
<div class="grid gap-4 max-w-xl">
|
|
32
|
+
<sonic-card>
|
|
33
|
+
<sonic-card-header
|
|
34
|
+
label="Account settings"
|
|
35
|
+
description="Manage your profile and preferences."
|
|
36
|
+
></sonic-card-header>
|
|
37
|
+
<p class="m-0 text-sm opacity-80">Body content goes in the card slot or in <code>sonic-card-main</code>.</p>
|
|
38
|
+
</sonic-card>
|
|
39
|
+
|
|
40
|
+
<sonic-card type="neutral">
|
|
41
|
+
<sonic-card-header label="Notifications">
|
|
42
|
+
<sonic-card-header-description>
|
|
43
|
+
Choose what we email you about.
|
|
44
|
+
</sonic-card-header-description>
|
|
45
|
+
<sonic-badge slot="suffix" type="warning" size="xs">3 new</sonic-badge>
|
|
46
|
+
</sonic-card-header>
|
|
47
|
+
</sonic-card>
|
|
48
|
+
|
|
49
|
+
<sonic-card>
|
|
50
|
+
<sonic-card-header label="Team workspace" description="Shared with 12 members">
|
|
51
|
+
<sonic-button
|
|
52
|
+
slot="suffix"
|
|
53
|
+
shape="circle"
|
|
54
|
+
variant="outline"
|
|
55
|
+
size="sm"
|
|
56
|
+
type="default"
|
|
57
|
+
icon
|
|
58
|
+
data-aria-label="Workspace settings"
|
|
59
|
+
>
|
|
60
|
+
<sonic-icon library="iconoir" name="settings"></sonic-icon>
|
|
61
|
+
</sonic-button>
|
|
62
|
+
</sonic-card-header>
|
|
63
|
+
</sonic-card>
|
|
64
|
+
|
|
65
|
+
<sonic-card type="primary">
|
|
66
|
+
<sonic-card-header>
|
|
67
|
+
<div>Custom header</div>
|
|
68
|
+
<sonic-card-header-description>
|
|
69
|
+
Use the header slot when attributes are not enough.
|
|
70
|
+
</sonic-card-header-description>
|
|
71
|
+
<sonic-button slot="suffix" shape="circle" variant="ghost" size="sm" type="primary" icon>
|
|
72
|
+
<sonic-icon library="iconoir" name="nav-arrow-right"></sonic-icon>
|
|
73
|
+
</sonic-button>
|
|
74
|
+
</sonic-card-header>
|
|
75
|
+
</sonic-card>
|
|
76
|
+
</div>
|
|
77
|
+
</template>
|
|
78
|
+
</sonic-code>
|
|
79
|
+
|
|
80
|
+
`label` and `description` accept HTML (rendered as markup). Prefer plain text when possible; use the slot for structured content.
|
|
81
|
+
|
|
82
|
+
## Main
|
|
83
|
+
|
|
84
|
+
Optional wrapper for the primary content area (typography, media, forms).
|
|
85
|
+
|
|
86
|
+
<sonic-code>
|
|
87
|
+
<template>
|
|
88
|
+
<sonic-card class="max-w-xl">
|
|
89
|
+
<sonic-card-header label="Release notes" description="Version 2.4"></sonic-card-header>
|
|
90
|
+
<sonic-card-main>
|
|
91
|
+
<p class="mt-0">
|
|
92
|
+
Improved performance on large lists and fixed an issue with keyboard navigation in menus.
|
|
93
|
+
</p>
|
|
94
|
+
<sonic-divider></sonic-divider>
|
|
95
|
+
<p class="mb-0 text-sm opacity-80">See the changelog for details.</p>
|
|
96
|
+
</sonic-card-main>
|
|
97
|
+
</sonic-card>
|
|
98
|
+
</template>
|
|
99
|
+
</sonic-code>
|
|
100
|
+
|
|
101
|
+
## Footer
|
|
102
|
+
|
|
103
|
+
Optional footer for actions, metadata, or secondary text.
|
|
104
|
+
|
|
105
|
+
<sonic-code>
|
|
106
|
+
<template>
|
|
107
|
+
<sonic-card class="max-w-xl">
|
|
108
|
+
<sonic-card-header label="Confirm deletion"></sonic-card-header>
|
|
109
|
+
<sonic-card-main>
|
|
110
|
+
<p class="m-0">This project and all of its data will be removed permanently.</p>
|
|
111
|
+
</sonic-card-main>
|
|
112
|
+
<sonic-card-footer>
|
|
113
|
+
<sonic-divider></sonic-divider>
|
|
114
|
+
<div class="flex flex-wrap gap-2 justify-end">
|
|
115
|
+
<sonic-button variant="ghost" size="sm">Cancel</sonic-button>
|
|
116
|
+
<sonic-button type="danger" size="sm">Delete</sonic-button>
|
|
117
|
+
</div>
|
|
118
|
+
</sonic-card-footer>
|
|
119
|
+
</sonic-card>
|
|
120
|
+
</template>
|
|
121
|
+
</sonic-code>
|
|
122
|
+
|
|
123
|
+
## Full example
|
|
124
|
+
|
|
125
|
+
Header, media, body, and footer together.
|
|
126
|
+
|
|
127
|
+
<sonic-code>
|
|
128
|
+
<template>
|
|
129
|
+
<sonic-card class="max-w-md">
|
|
130
|
+
<sonic-card-header label="Featured route" description="San Francisco → New York">
|
|
131
|
+
<sonic-icon slot="suffix" library="iconoir" name="airplane"></sonic-icon>
|
|
132
|
+
</sonic-card-header>
|
|
133
|
+
<sonic-card-main>
|
|
134
|
+
<sonic-image
|
|
135
|
+
rounded
|
|
136
|
+
ratio="16/9"
|
|
137
|
+
src="https://images.unsplash.com/photo-1436491865332-7a61a109cc05?w=800&q=80"
|
|
138
|
+
alt=""
|
|
139
|
+
></sonic-image>
|
|
140
|
+
<p class="mb-0">
|
|
141
|
+
Nonstop flight with flexible dates. Prices shown include taxes and fees.
|
|
142
|
+
</p>
|
|
143
|
+
</sonic-card-main>
|
|
144
|
+
<sonic-card-footer>
|
|
145
|
+
<div class="flex items-center justify-between gap-3 flex-wrap">
|
|
146
|
+
<span class="text-sm font-semibold">From $249</span>
|
|
147
|
+
<sonic-button type="primary" size="sm">Book</sonic-button>
|
|
148
|
+
</div>
|
|
149
|
+
</sonic-card-footer>
|
|
150
|
+
</sonic-card>
|
|
151
|
+
</template>
|
|
152
|
+
</sonic-code>
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
# Divider
|
|
2
|
+
|
|
3
|
+
## Default
|
|
4
|
+
<sonic-code>
|
|
5
|
+
<template>
|
|
6
|
+
<sonic-divider></sonic-divider>
|
|
7
|
+
</template>
|
|
8
|
+
</sonic-code>
|
|
9
|
+
|
|
10
|
+
## Align
|
|
11
|
+
<sonic-code>
|
|
12
|
+
<template>
|
|
13
|
+
<sonic-divider label="Default centered label"></sonic-divider>
|
|
14
|
+
<sonic-divider label="Right" align="right"></sonic-divider>
|
|
15
|
+
<sonic-divider label="Center" align="center"></sonic-divider>
|
|
16
|
+
<sonic-divider label="Left" align="left"></sonic-divider>
|
|
17
|
+
</template>
|
|
18
|
+
</sonic-code>
|
|
19
|
+
|
|
20
|
+
## Size
|
|
21
|
+
<sonic-code>
|
|
22
|
+
<template>
|
|
23
|
+
<sonic-divider size="xs" label="xs"></sonic-divider>
|
|
24
|
+
<sonic-divider size="sm" label="sm"></sonic-divider>
|
|
25
|
+
<sonic-divider size="md" label="md"></sonic-divider>
|
|
26
|
+
<sonic-divider size="lg" label="lg"></sonic-divider>
|
|
27
|
+
</template>
|
|
28
|
+
</sonic-code>
|
|
29
|
+
|
|
30
|
+
## Custom
|
|
31
|
+
<sonic-code>
|
|
32
|
+
<template>
|
|
33
|
+
<sonic-divider><span class="mr-2">Lorem ipsum dolor sit amet</span><sonic-badge type="danger">+25</sonic-badge></sonic-divider>
|
|
34
|
+
</template>
|
|
35
|
+
</sonic-code>
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
# Checkbox
|
|
2
|
+
|
|
3
|
+
## Size
|
|
4
|
+
<sonic-code>
|
|
5
|
+
<template>
|
|
6
|
+
<div class="grid gap-2">
|
|
7
|
+
<sonic-checkbox size="2xs">2xs checkbox</sonic-checkbox>
|
|
8
|
+
<sonic-checkbox size="xs">xs checkbox</sonic-checkbox>
|
|
9
|
+
<sonic-checkbox size="sm">sm checkbox</sonic-checkbox>
|
|
10
|
+
<sonic-checkbox>default checkbox</sonic-checkbox>
|
|
11
|
+
<sonic-checkbox size="lg">lg checkbox</sonic-checkbox>
|
|
12
|
+
<sonic-checkbox size="xl">xl checkbox</sonic-checkbox>
|
|
13
|
+
<sonic-checkbox size="2xl">2xl checkbox</sonic-checkbox>
|
|
14
|
+
</div>
|
|
15
|
+
</template>
|
|
16
|
+
</sonic-code>
|
|
17
|
+
|
|
18
|
+
## Checked
|
|
19
|
+
<sonic-code>
|
|
20
|
+
<template>
|
|
21
|
+
<sonic-checkbox checked
|
|
22
|
+
>Already checked checkbox
|
|
23
|
+
</sonic-checkbox>
|
|
24
|
+
</template>
|
|
25
|
+
</sonic-code>
|
|
26
|
+
|
|
27
|
+
## Disabled
|
|
28
|
+
<sonic-code>
|
|
29
|
+
<template>
|
|
30
|
+
<sonic-checkbox disabled
|
|
31
|
+
>Disabled checkbox
|
|
32
|
+
</sonic-checkbox>
|
|
33
|
+
</template>
|
|
34
|
+
</sonic-code>
|
|
35
|
+
|
|
36
|
+
## Disabled and checked
|
|
37
|
+
<sonic-code>
|
|
38
|
+
<template>
|
|
39
|
+
<sonic-checkbox disabled checked
|
|
40
|
+
>Disabled but already checked checkbox
|
|
41
|
+
</sonic-checkbox>
|
|
42
|
+
</template>
|
|
43
|
+
</sonic-code>
|
|
44
|
+
|
|
45
|
+
## Checkbox with link
|
|
46
|
+
<sonic-code>
|
|
47
|
+
<template>
|
|
48
|
+
<sonic-checkbox>Checkbox with <sonic-link href="#" class="underline text-info">link</sonic-link>
|
|
49
|
+
</template>
|
|
50
|
+
</sonic-code>
|
|
51
|
+
|
|
52
|
+
## Check all checkbox
|
|
53
|
+
<sonic-code>
|
|
54
|
+
<template>
|
|
55
|
+
<div formDataProvider="checkbox-check-all-demo">
|
|
56
|
+
<sonic-checkbox name='someSharedName' value="all" checksAll>All</sonic-checkbox>
|
|
57
|
+
<sonic-divider></sonic-divider>
|
|
58
|
+
<div class="grid gap-2">
|
|
59
|
+
<sonic-checkbox name="someSharedName" value="foo">Foo</sonic-checkbox>
|
|
60
|
+
<sonic-checkbox name="someSharedName" value="bar">Bar</sonic-checkbox>
|
|
61
|
+
</div>
|
|
62
|
+
<sonic-divider></sonic-divider>
|
|
63
|
+
<div>
|
|
64
|
+
<span>Enabling unsetOnDisconect ensures that outdated or irrelevant values are not retained in the form state once their associated inputs are no longer rendered.</span>
|
|
65
|
+
<div id="prunable-checkbox" class="flex gap-2 items-center">
|
|
66
|
+
<sonic-checkbox name="someSharedName" value="baz">Baz</sonic-checkbox>
|
|
67
|
+
<sonic-button variant="ghost" shape="circle" unique name="toggleCheckboxExistance" onclick="document.getElementById('prunable-checkbox').remove();" value="true"><sonic-icon library="fontAwesome" prefix="solid" name="trash"></sonic-icon></sonic-button>
|
|
68
|
+
</div>
|
|
69
|
+
</div>
|
|
70
|
+
</template>
|
|
71
|
+
</sonic-code>
|
|
72
|
+
|
|
73
|
+
## Example of use — blacklist + queue
|
|
74
|
+
|
|
75
|
+
Checked **`blacklistFlags`** values are sent to the mock API (`?blacklistFlags=racist,sexist,…`), which excludes jokes whose **`flags`** match (see `filterDocsJokes` in `src/docs/mock-api/fixtures.ts`).
|
|
76
|
+
|
|
77
|
+
<docs-lit-demo for="docs-joke-blacklist-demo"></docs-lit-demo>
|