@supersoniks/concorde 3.1.40 → 3.1.42

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 (199) hide show
  1. package/build-infos.json +1 -1
  2. package/concorde-core.bundle.js +676 -648
  3. package/concorde-core.es.js +3387 -3208
  4. package/dist/concorde-core.bundle.js +676 -648
  5. package/dist/concorde-core.es.js +3387 -3208
  6. package/index.html +16 -16
  7. package/package.json +7 -1
  8. package/scripts/pre-build.mjs +0 -0
  9. package/scripts/pre-publish.mjs +0 -0
  10. package/src/core/_types/types.ts +0 -0
  11. package/src/core/components/functional/date/date.ts +21 -12
  12. package/src/core/components/functional/functional.ts +1 -0
  13. package/src/core/components/functional/queue/queue.ts +0 -0
  14. package/src/core/components/functional/router/router.md +28 -32
  15. package/src/core/components/functional/router/router.ts +1 -5
  16. package/src/core/components/functional/sonic-scope/sonic-scope.ts +2 -2
  17. package/src/core/components/functional/states/states.md +4 -4
  18. package/src/core/components/functional/states/states.ts +0 -0
  19. package/src/core/components/functional/submit/submit.md +0 -0
  20. package/src/core/components/functional/submit/submit.ts +0 -0
  21. package/src/core/components/functional/translation/translation.ts +12 -0
  22. package/src/core/components/ui/_css/scroll.ts +1 -1
  23. package/src/core/components/ui/_css/shadow.ts +24 -0
  24. package/src/core/components/ui/_css/size.ts +12 -12
  25. package/src/core/components/ui/_css/type.ts +54 -23
  26. package/src/core/components/ui/alert/alert.md +15 -15
  27. package/src/core/components/ui/alert/alert.ts +71 -58
  28. package/src/core/components/ui/alert-messages/alert-messages.ts +0 -0
  29. package/src/core/components/ui/badge/badge.md +30 -5
  30. package/src/core/components/ui/badge/badge.ts +62 -54
  31. package/src/core/components/ui/button/button.ts +33 -32
  32. package/src/core/components/ui/card/card-footer.ts +9 -10
  33. package/src/core/components/ui/card/card-header-descripton.ts +8 -11
  34. package/src/core/components/ui/card/card-header.ts +28 -23
  35. package/src/core/components/ui/card/card-main.ts +10 -15
  36. package/src/core/components/ui/card/card.md +2 -1
  37. package/src/core/components/ui/card/card.ts +30 -69
  38. package/src/core/components/ui/divider/divider.ts +41 -19
  39. package/src/core/components/ui/form/checkbox/checkbox.md +27 -29
  40. package/src/core/components/ui/form/checkbox/checkbox.ts +15 -19
  41. package/src/core/components/ui/form/css/form-control.ts +39 -43
  42. package/src/core/components/ui/form/fieldset/fieldset.ts +0 -0
  43. package/src/core/components/ui/form/fieldset/legend-description.ts +5 -5
  44. package/src/core/components/ui/form/fieldset/legend.ts +30 -17
  45. package/src/core/components/ui/form/input/input.md +25 -26
  46. package/src/core/components/ui/form/input/input.ts +4 -2
  47. package/src/core/components/ui/form/input/password-helper.ts +0 -0
  48. package/src/core/components/ui/form/input/same-value-helper.ts +0 -0
  49. package/src/core/components/ui/form/input-autocomplete/input-autocomplete.ts +13 -6
  50. package/src/core/components/ui/form/radio/radio.md +0 -2
  51. package/src/core/components/ui/form/radio/radio.ts +6 -4
  52. package/src/core/components/ui/form/select/select.md +26 -28
  53. package/src/core/components/ui/form/select/select.ts +2 -2
  54. package/src/core/components/ui/form/textarea/textarea.ts +2 -2
  55. package/src/core/components/ui/group/group.ts +0 -0
  56. package/src/core/components/ui/image/image.ts +32 -16
  57. package/src/core/components/ui/loader/loader.md +35 -5
  58. package/src/core/components/ui/loader/loader.ts +20 -11
  59. package/src/core/components/ui/loader/styles/fixed.ts +8 -10
  60. package/src/core/components/ui/loader/styles/inline.ts +2 -2
  61. package/src/core/components/ui/menu/menu.ts +3 -27
  62. package/src/core/components/ui/modal/modal-subtitle.ts +9 -5
  63. package/src/core/components/ui/modal/modal-title.ts +9 -4
  64. package/src/core/components/ui/modal/modal.md +6 -6
  65. package/src/core/components/ui/modal/modal.ts +6 -3
  66. package/src/core/components/ui/pop/pop.ts +5 -27
  67. package/src/core/components/ui/progress/progress.ts +13 -10
  68. package/src/core/components/ui/table/table-tbody.ts +4 -3
  69. package/src/core/components/ui/table/table-th.ts +19 -13
  70. package/src/core/components/ui/table/table.ts +12 -8
  71. package/src/core/components/ui/theme/theme-collection/core-variables.ts +34 -34
  72. package/src/core/components/ui/theme/theme-collection/dark.ts +1 -1
  73. package/src/core/components/ui/theme/theme-collection/light.ts +7 -11
  74. package/src/core/components/ui/theme/theme.ts +6 -6
  75. package/src/core/components/ui/toast/message-subscriber.ts +0 -0
  76. package/src/core/components/ui/toast/toast-item.ts +12 -10
  77. package/src/core/components/ui/toast/toast.ts +0 -0
  78. package/src/core/components/ui/tooltip/tooltip.ts +2 -2
  79. package/src/core/components/ui/ui.ts +0 -0
  80. package/src/core/core.ts +0 -0
  81. package/src/core/directives/DataProvider.ts +5 -4
  82. package/src/core/directives/Wording.ts +8 -6
  83. package/src/core/mixins/FormCheckable.ts +0 -0
  84. package/src/core/mixins/FormElement.ts +0 -0
  85. package/src/core/mixins/Subscriber.ts +0 -0
  86. package/src/core/utils/HTML.ts +0 -0
  87. package/src/core/utils/LocationHandler.ts +0 -0
  88. package/src/core/utils/Objects.ts +0 -0
  89. package/src/core/utils/PublisherProxy.ts +0 -0
  90. package/src/core/utils/api.ts +0 -0
  91. package/src/core/utils/route.ts +0 -0
  92. package/src/docs/docs.ts +1 -0
  93. package/src/docs/header/header.ts +2 -5
  94. package/src/docs/layout.ts +18 -0
  95. package/src/docs/search/docs-search.json +0 -0
  96. package/src/docs/search/page.ts +6 -4
  97. package/src/docs/tailwind/css/tailwind.css +42 -33
  98. package/src/index.ts +0 -2
  99. package/src/tsconfig-model.json +0 -0
  100. package/src/tsconfig.json +18 -0
  101. package/src/tsconfig.tsbuildinfo +1 -0
  102. package/tailwind.config.js +1 -1
  103. package/vite/config.js +0 -0
  104. package/vite.config.mts.timestamp-1728318208370-f1724bcfd87d3.mjs +85 -0
  105. package/docs/assets/index-D1OO2yIk.js +0 -4421
  106. package/docs/assets/index-DCqvoAAf.css +0 -1
  107. package/docs/css/docs.css +0 -0
  108. package/docs/fonts/ClashGrotesk-Bold.eot +0 -0
  109. package/docs/fonts/ClashGrotesk-Bold.ttf +0 -0
  110. package/docs/fonts/ClashGrotesk-Bold.woff +0 -0
  111. package/docs/fonts/ClashGrotesk-Bold.woff2 +0 -0
  112. package/docs/fonts/ClashGrotesk-Extralight.eot +0 -0
  113. package/docs/fonts/ClashGrotesk-Extralight.ttf +0 -0
  114. package/docs/fonts/ClashGrotesk-Extralight.woff +0 -0
  115. package/docs/fonts/ClashGrotesk-Extralight.woff2 +0 -0
  116. package/docs/fonts/ClashGrotesk-Light.eot +0 -0
  117. package/docs/fonts/ClashGrotesk-Light.ttf +0 -0
  118. package/docs/fonts/ClashGrotesk-Light.woff +0 -0
  119. package/docs/fonts/ClashGrotesk-Light.woff2 +0 -0
  120. package/docs/fonts/ClashGrotesk-Medium.eot +0 -0
  121. package/docs/fonts/ClashGrotesk-Medium.ttf +0 -0
  122. package/docs/fonts/ClashGrotesk-Medium.woff +0 -0
  123. package/docs/fonts/ClashGrotesk-Medium.woff2 +0 -0
  124. package/docs/fonts/ClashGrotesk-Regular.eot +0 -0
  125. package/docs/fonts/ClashGrotesk-Regular.ttf +0 -0
  126. package/docs/fonts/ClashGrotesk-Regular.woff +0 -0
  127. package/docs/fonts/ClashGrotesk-Regular.woff2 +0 -0
  128. package/docs/fonts/ClashGrotesk-Semibold.eot +0 -0
  129. package/docs/fonts/ClashGrotesk-Semibold.ttf +0 -0
  130. package/docs/fonts/ClashGrotesk-Semibold.woff +0 -0
  131. package/docs/fonts/ClashGrotesk-Semibold.woff2 +0 -0
  132. package/docs/fonts/ClashGrotesk-Variable.eot +0 -0
  133. package/docs/fonts/ClashGrotesk-Variable.ttf +0 -0
  134. package/docs/fonts/ClashGrotesk-Variable.woff +0 -0
  135. package/docs/fonts/ClashGrotesk-Variable.woff2 +0 -0
  136. package/docs/img/concorde-icon.svg +0 -5
  137. package/docs/img/concorde-logo.svg +0 -1
  138. package/docs/img/concorde.png +0 -0
  139. package/docs/img/concorde_def.png +0 -0
  140. package/docs/img/concorde_seuil.png.webp +0 -0
  141. package/docs/img/concorde_seuil_invert.png +0 -0
  142. package/docs/img/paul_metrand.jpg +0 -0
  143. package/docs/img/paul_metrand_xs.jpg +0 -0
  144. package/docs/index.html +0 -93
  145. package/docs/src/core/components/functional/date/date.md +0 -290
  146. package/docs/src/core/components/functional/fetch/fetch.md +0 -117
  147. package/docs/src/core/components/functional/if/if.md +0 -16
  148. package/docs/src/core/components/functional/list/list.md +0 -199
  149. package/docs/src/core/components/functional/mix/mix.md +0 -41
  150. package/docs/src/core/components/functional/queue/queue.md +0 -87
  151. package/docs/src/core/components/functional/router/router.md +0 -112
  152. package/docs/src/core/components/functional/sdui/default-library.json +0 -108
  153. package/docs/src/core/components/functional/sdui/example.json +0 -99
  154. package/docs/src/core/components/functional/sdui/sdui.md +0 -356
  155. package/docs/src/core/components/functional/states/states.md +0 -87
  156. package/docs/src/core/components/functional/submit/submit.md +0 -83
  157. package/docs/src/core/components/functional/subscriber/subscriber.md +0 -91
  158. package/docs/src/core/components/functional/value/value.md +0 -35
  159. package/docs/src/core/components/ui/alert/alert.md +0 -121
  160. package/docs/src/core/components/ui/badge/badge.md +0 -102
  161. package/docs/src/core/components/ui/button/button.md +0 -184
  162. package/docs/src/core/components/ui/captcha/captcha.md +0 -12
  163. package/docs/src/core/components/ui/card/card.md +0 -96
  164. package/docs/src/core/components/ui/divider/divider.md +0 -35
  165. package/docs/src/core/components/ui/form/checkbox/checkbox.md +0 -96
  166. package/docs/src/core/components/ui/form/fieldset/fieldset.md +0 -129
  167. package/docs/src/core/components/ui/form/form-actions/form-actions.md +0 -77
  168. package/docs/src/core/components/ui/form/form-layout/form-layout.md +0 -43
  169. package/docs/src/core/components/ui/form/input/input.md +0 -168
  170. package/docs/src/core/components/ui/form/input-autocomplete/input-autocomplete.md +0 -130
  171. package/docs/src/core/components/ui/form/radio/radio.md +0 -86
  172. package/docs/src/core/components/ui/form/select/select.md +0 -99
  173. package/docs/src/core/components/ui/form/textarea/textarea.md +0 -65
  174. package/docs/src/core/components/ui/group/group.md +0 -75
  175. package/docs/src/core/components/ui/icon/icon.md +0 -125
  176. package/docs/src/core/components/ui/icon/icons.json +0 -1
  177. package/docs/src/core/components/ui/image/image.md +0 -107
  178. package/docs/src/core/components/ui/link/link.md +0 -43
  179. package/docs/src/core/components/ui/loader/loader.md +0 -37
  180. package/docs/src/core/components/ui/menu/menu.md +0 -288
  181. package/docs/src/core/components/ui/modal/modal.md +0 -123
  182. package/docs/src/core/components/ui/pop/pop.md +0 -79
  183. package/docs/src/core/components/ui/progress/progress.md +0 -63
  184. package/docs/src/core/components/ui/table/table.md +0 -455
  185. package/docs/src/core/components/ui/tooltip/tooltip.md +0 -82
  186. package/docs/src/docs/_core-concept/overview.md +0 -57
  187. package/docs/src/docs/_core-concept/subscriber.md +0 -76
  188. package/docs/src/docs/_getting-started/concorde-outside.md +0 -143
  189. package/docs/src/docs/_getting-started/create-a-component.md +0 -137
  190. package/docs/src/docs/_getting-started/my-first-subscriber.md +0 -174
  191. package/docs/src/docs/_getting-started/pubsub.md +0 -150
  192. package/docs/src/docs/_getting-started/start.md +0 -39
  193. package/docs/src/docs/_getting-started/theming.md +0 -91
  194. package/docs/src/docs/search/docs-search.json +0 -3887
  195. package/docs/src/tag-list.json +0 -1
  196. package/docs/src/tsconfig-model.json +0 -23
  197. package/docs/src/tsconfig.json +0 -808
  198. package/docs/svg/regular/plane.svg +0 -1
  199. package/docs/svg/solid/plane.svg +0 -1
@@ -1,7 +1,10 @@
1
- import {html, LitElement, css, nothing} from "lit";
2
- import {customElement, property} from "lit/decorators.js";
3
- import {fontSize} from "@supersoniks/concorde/core/components/ui/_css/size";
4
- import {unsafeHTML} from "lit/directives/unsafe-html.js";
1
+ import { html, LitElement, css, nothing } from "lit";
2
+ import { customElement, property } from "lit/decorators.js";
3
+ import {
4
+ fontSize,
5
+ Size,
6
+ } from "@supersoniks/concorde/core/components/ui/_css/size";
7
+ import { unsafeHTML } from "lit/directives/unsafe-html.js";
5
8
  const icon = {
6
9
  warning: "warning-circled-outline",
7
10
  success: "check-circled-outline",
@@ -23,52 +26,48 @@ export class Alert extends LitElement {
23
26
  fontSize,
24
27
  css`
25
28
  :host {
26
- --sc-alert-color: var(--sc-base-content);
27
- --sc-alert-rounded: var(--sc-rounded);
28
- --sc-alert-fw: var(--sc-font-weight-base);
29
- --sc-alert-fst: var(--sc-font-style-base);
30
- --sc-alert-label-fw: bold;
31
- display: block;
32
- font-weight: var(--sc-alert-fw);
33
- font-style: var(--sc-alert-fst);
34
- }
35
-
36
- .alert {
37
- color: var(--sc-alert-color);
29
+ --sc_color: var(--sc-base-content, #000);
30
+ --sc_rounded: var(--sc-rounded);
31
+ --sc_fw: var(--sc-font-weight-base, 400);
32
+ --sc_fst: var(--sc-font-style-base, normal);
33
+ --sc_label-fw: bold;
34
+
35
+ font-weight: var(--sc_fw);
36
+ font-style: var(--sc_fst);
37
+ color: var(--sc_color);
38
38
  position: relative;
39
39
  display: flex;
40
40
  gap: 0.4em;
41
- border-radius: var(--sc-alert-rounded);
42
- overflow: hidden;
41
+ border-radius: var(--sc_rounded);
43
42
  }
44
43
 
45
44
  .label {
46
- font-weight: var(--sc-alert-label-fw);
45
+ font-weight: var(--sc_label-fw);
47
46
  margin-bottom: 0.15em;
48
47
  display: block;
49
48
  }
50
49
 
51
50
  :host([status="warning"]) {
52
- --sc-alert-color: var(--sc-warning);
51
+ --sc_color: var(--sc-warning, var(--sc-base-content, #000));
53
52
  }
54
53
  :host([status="error"]) {
55
- --sc-alert-color: var(--sc-danger);
54
+ --sc_color: var(--sc-danger, var(--sc-base-content, #000));
56
55
  }
57
56
  :host([status="info"]) {
58
- --sc-alert-color: var(--sc-info);
57
+ --sc_color: var(--sc-info, var(--sc-base-content, #000));
59
58
  }
60
59
  :host([status="success"]) {
61
- --sc-alert-color: var(--sc-success);
60
+ --sc_color: var(--sc-success, var(--sc-base-content, #000));
62
61
  }
63
62
 
64
63
  /*background*/
65
- :host([dismissible]) .alert,
66
- :host([background]) .alert {
67
- background: var(--sc-base);
64
+ :host([dismissible]),
65
+ :host([background]) {
66
+ background: var(--sc-base, #fff);
68
67
  padding: 0.8em 1.15em;
69
68
  }
70
- :host([dismissible]) .alert:before,
71
- :host([background]) .alert:before {
69
+ :host([dismissible]):before,
70
+ :host([background]):before {
72
71
  background-color: currentColor;
73
72
  content: "";
74
73
  display: block;
@@ -78,11 +77,11 @@ export class Alert extends LitElement {
78
77
  right: 0;
79
78
  bottom: 0;
80
79
  opacity: 0.08;
81
- border-radius: var(--sc-alert-rounded);
80
+ border-radius: var(--sc_rounded);
82
81
  pointer-events: none;
83
82
  }
84
- :host([dismissible]) > div,
85
- :host([background]) > div {
83
+
84
+ .content {
86
85
  z-index: 2;
87
86
  position: relative;
88
87
  }
@@ -96,48 +95,46 @@ export class Alert extends LitElement {
96
95
  }
97
96
 
98
97
  /*Rounded*/
99
- :host([size="xs"]) .alert {
100
- --sc-alert-rounded: var(--sc-rounded-sm);
101
- }
102
- :host([size="sm"]) .alert {
103
- --sc-alert-rounded: var(--sc-rounded-sm);
98
+ :host([size="2xs"]),
99
+ :host([size="xs"]),
100
+ :host([size="sm"]) {
101
+ --sc_rounded: var(--sc-rounded-sm);
104
102
  }
105
103
 
106
104
  /*Dismissible*/
107
- :host([dismissible]) .alert {
105
+ :host([dismissible]) {
108
106
  padding-right: 3rem;
109
107
  }
110
108
  :host([dismissible]) .close-btn {
111
- padding: 0.5em;
112
109
  position: absolute;
113
- top: 0.25rem;
114
- right: 0.25rem;
110
+ top: 0.4rem;
111
+ right: 0.3rem;
115
112
  }
116
113
  `,
117
114
  ];
118
115
  /**
119
116
  * Titre du message d'erreur
120
117
  */
121
- @property({type: String}) label = "";
118
+ @property({ type: String }) label = "";
122
119
 
123
- @property({type: Boolean, reflect: true}) noIcon = false;
120
+ @property({ type: Boolean, reflect: true }) noIcon = false;
124
121
 
125
122
  /**
126
123
  * Peut être renseigné dans le slot pour créer des messages plus complexes
127
124
  */
128
- @property({type: String}) text = "";
125
+ @property({ type: String }) text = "";
129
126
 
130
- @property({type: String}) id = new Date().getTime().toString();
127
+ @property({ type: String }) id = new Date().getTime().toString();
131
128
 
132
- @property({type: String, reflect: true}) size?: "2xs" | "xs" | "sm" | "md" | "lg" | "xl" | "2xl";
129
+ @property({ type: String, reflect: true }) size?: Size;
133
130
 
134
- @property({type: Boolean, reflect: true}) dismissible = false;
131
+ @property({ type: Boolean, reflect: true }) dismissible = false;
135
132
 
136
- @property({type: Boolean, reflect: true}) background = false;
133
+ @property({ type: Boolean, reflect: true }) background = false;
137
134
 
138
- @property({type: String, reflect: true}) status: AlertStatus = "default";
135
+ @property({ type: String, reflect: true }) status: AlertStatus = "default";
139
136
 
140
- @property({type: Boolean, reflect: true}) dismissForever = false;
137
+ @property({ type: Boolean, reflect: true }) dismissForever = false;
141
138
 
142
139
  render() {
143
140
  // if dismiss forever, check if already dismissed
@@ -148,20 +145,33 @@ export class Alert extends LitElement {
148
145
  return nothing;
149
146
  }
150
147
  }
151
- return html`<div part="alert" class="alert">
152
- <slot name="icon" class="${this.noIcon ? "hidden" : nothing}"
153
- >${!this.noIcon ? html`<div>${this.status && html`<sonic-icon name=${icon[this.status]}></sonic-icon>`}</div>` : nothing}</slot
148
+ return html`
149
+ <slot name="icon" class="${this.noIcon ? "hidden" : ""}"
150
+ >${!this.noIcon
151
+ ? html`<div>
152
+ ${this.status &&
153
+ html`<sonic-icon name=${icon[this.status]}></sonic-icon>`}
154
+ </div>`
155
+ : nothing}</slot
154
156
  >
155
- <div>
156
- ${this.label ? html`<span class="label">${unsafeHTML(this.label)}</span>` : nothing}
157
+ <div class="content">
158
+ ${this.label
159
+ ? html`<span class="label">${unsafeHTML(this.label)}</span>`
160
+ : nothing}
157
161
  <div>${this.text}<slot></slot></div>
158
162
  </div>
159
163
  ${this.dismissible
160
- ? html`<sonic-button @click=${this.close} class="close-btn" variant="unstyled" shape="circle">
161
- <sonic-icon name="cancel" size="lg"></sonic-icon>
164
+ ? html`<sonic-button
165
+ @click=${this.close}
166
+ class="close-btn"
167
+ variant="unstyled"
168
+ shape="circle"
169
+ icon
170
+ >
171
+ <sonic-icon name="cancel"></sonic-icon>
162
172
  </sonic-button>`
163
173
  : nothing}
164
- </div>`;
174
+ `;
165
175
  }
166
176
 
167
177
  close() {
@@ -171,7 +181,10 @@ export class Alert extends LitElement {
171
181
  const dismissed = localStorage.getItem("sonic-alert-dismissed") || "{}";
172
182
  const dismissedObj = JSON.parse(dismissed);
173
183
  dismissedObj[this.id] = true;
174
- localStorage.setItem("sonic-alert-dismissed", JSON.stringify(dismissedObj));
184
+ localStorage.setItem(
185
+ "sonic-alert-dismissed",
186
+ JSON.stringify(dismissedObj)
187
+ );
175
188
  }
176
189
  }
177
190
  }
@@ -10,15 +10,40 @@
10
10
  <sonic-badge type="info">Info</sonic-badge>
11
11
  <sonic-badge type="success">Success</sonic-badge>
12
12
  <sonic-badge type="danger">Danger</sonic-badge>
13
+ <sonic-badge type="contrast">Contrast</sonic-badge>
13
14
  </template>
14
15
  </sonic-code>
15
16
 
16
17
 
17
- ## Variant
18
+ ## Outline
18
19
  <sonic-code>
19
20
  <template>
20
- <sonic-badge variant="outline">Outline</sonic-badge>
21
- <sonic-badge variant="ghost">Ghost</sonic-badge>
21
+ <div class="flex items-center flex-wrap gap-3">
22
+ <sonic-badge variant="outline">Default</sonic-badge>
23
+ <sonic-badge variant="outline" type="primary">Primary</sonic-badge>
24
+ <sonic-badge variant="outline" type="neutral">Neutral</sonic-badge>
25
+ <sonic-badge variant="outline" type="warning">Warning</sonic-badge>
26
+ <sonic-badge variant="outline" type="info">Info</sonic-badge>
27
+ <sonic-badge variant="outline" type="success">Success</sonic-badge>
28
+ <sonic-badge variant="outline" type="danger">Danger</sonic-badge>
29
+ <sonic-badge variant="outline" type="contrast">Contrast</sonic-badge>
30
+ </div>
31
+ </template>
32
+ </sonic-code>
33
+
34
+ ## Ghost
35
+ <sonic-code>
36
+ <template>
37
+ <div class="flex items-center flex-wrap gap-3">
38
+ <sonic-badge variant="ghost">Default</sonic-badge>
39
+ <sonic-badge variant="ghost" type="primary">Primary</sonic-badge>
40
+ <sonic-badge variant="ghost" type="neutral">Neutral</sonic-badge>
41
+ <sonic-badge variant="ghost" type="warning">Warning</sonic-badge>
42
+ <sonic-badge variant="ghost" type="info">Info</sonic-badge>
43
+ <sonic-badge variant="ghost" type="success">Success</sonic-badge>
44
+ <sonic-badge variant="ghost" type="danger">Danger</sonic-badge>
45
+ <sonic-badge variant="ghost" type="contrast">Contrast</sonic-badge>
46
+ </div>
22
47
  </template>
23
48
  </sonic-code>
24
49
 
@@ -39,7 +64,7 @@
39
64
  ## Empty badges
40
65
  <sonic-code>
41
66
  <template>
42
- <div class="flex items-center gap-3">
67
+ <div class="flex items-center flex-wrap gap-3">
43
68
  <sonic-badge type="danger" size="2xs"></sonic-badge>
44
69
  <sonic-badge type="danger" size="xs"></sonic-badge>
45
70
  <sonic-badge type="danger" size="sm"></sonic-badge>
@@ -47,7 +72,7 @@
47
72
  <sonic-badge type="danger" size="lg"></sonic-badge>
48
73
  <sonic-badge type="danger" size="xl"></sonic-badge>
49
74
  <sonic-badge type="danger" size="2xl"></sonic-badge>
50
- <div>
75
+ </div>
51
76
  </template>
52
77
  </sonic-code>
53
78
 
@@ -1,6 +1,9 @@
1
- import {html, LitElement, css} from "lit";
2
- import {customElement, property} from "lit/decorators.js";
3
- import {fontSize, Size} from "@supersoniks/concorde/core/components/ui/_css/size";
1
+ import { html, LitElement, css } from "lit";
2
+ import { customElement, property } from "lit/decorators.js";
3
+ import {
4
+ fontSize,
5
+ Size,
6
+ } from "@supersoniks/concorde/core/components/ui/_css/size";
4
7
 
5
8
  const tagName = "sonic-badge";
6
9
  /**
@@ -17,29 +20,28 @@ export class Badge extends LitElement {
17
20
  --sc-badge-gap: 0.3em;
18
21
  --sc-badge-py: 0.35em;
19
22
  --sc-badge-px: 0.67em;
20
- --sc-fs: 1rem;
21
23
 
22
- --sc-badge-color: var(--sc-base-content, #1f2937);
23
- --sc-badge-bg: var(--sc-base-100, #e5e7eb);
24
+ --sc-badge-color: var(--sc-base-content, #000);
25
+ --sc-badge-bg: var(--sc-base-100, rgba(0, 0, 0, 0.07));
24
26
 
25
- /*--sc-badge-border-with: var(--sc-form-border-width, 0.1rem);*/
26
- --sc-badge-border-with: 1px;
27
+ /*--sc-badge-border-width: var(--sc-form-border-width, 0.1rem);*/
28
+ --sc-badge-border-width: 1px;
27
29
  --sc-badge-border-color: transparent;
28
- --sc-badge-border: var(--sc-badge-border-with) solid var(--sc-badge-border-color);
30
+ --sc-badge-border: var(--sc-badge-border-width) solid
31
+ var(--sc-badge-border-color);
29
32
 
30
33
  --sc-badge-rounded: 0.85em;
31
- --sc-badge-fw: var(--sc-font-weight-base);
34
+ --sc-badge-fw: var(--sc-font-weight-base, 400);
32
35
 
33
36
  display: inline-flex;
34
37
  align-items: center;
35
38
  box-sizing: border-box;
36
- line-height: var(--sc-lh);
39
+ line-height: var(--sc-_lh);
37
40
  border-radius: var(--sc-badge-rounded);
38
41
 
39
42
  background: var(--sc-badge-bg);
40
43
  color: var(--sc-badge-color);
41
-
42
- font-family: var(--sc-badge-ff, var(--sc-font-family-base, inherit));
44
+ font-family: var(--sc-badge-ff, var(--sc-font-family-base, sans-serif));
43
45
  font-weight: var(--sc-badge-fw);
44
46
  line-height: 1;
45
47
 
@@ -47,80 +49,73 @@ export class Badge extends LitElement {
47
49
  padding-bottom: var(--sc-badge-py);
48
50
  padding-left: var(--sc-badge-px);
49
51
  padding-right: var(--sc-badge-px);
50
- min-height: calc(var(--sc-badge-px) * 2);
52
+ /**Round pour lissage px */
53
+ min-height: round(calc(var(--sc-badge-px) * 2), 1px);
54
+ min-width: round(calc(var(--sc-badge-px) * 2), 1px);
51
55
  border: var(--sc-badge-border);
52
56
  -webkit-print-color-adjust: exact;
53
57
  }
54
58
 
55
59
  /*TYPES*/
56
60
  :host([type="primary"]) {
57
- --sc-badge-color: var(--sc-primary-content);
58
- --sc-badge-bg: var(--sc-primary);
61
+ --sc-badge-color: var(--sc-primary-content, var(--sc-base, #fff));
62
+ --sc-badge-bg: var(--sc-primary, var(--sc-base-content, #000));
59
63
  }
60
64
  :host([type="warning"]) {
61
- --sc-badge-color: var(--sc-warning-content);
62
- --sc-badge-bg: var(--sc-warning);
65
+ --sc-badge-color: var(--sc-warning-content, var(--sc-base, #fff));
66
+ --sc-badge-bg: var(--sc-warning, var(--sc-base-content, #000));
63
67
  }
64
68
  :host([type="danger"]) {
65
- --sc-badge-color: var(--sc-danger-content);
66
- --sc-badge-bg: var(--sc-danger);
69
+ --sc-badge-color: var(--sc-danger-content, var(--sc-base, #fff));
70
+ --sc-badge-bg: var(--sc-danger, var(--sc-base-content, #000));
67
71
  }
68
72
  :host([type="info"]) {
69
- --sc-badge-color: var(--sc-info-content);
70
- --sc-badge-bg: var(--sc-info);
73
+ --sc-badge-color: var(--sc-info-content, var(--sc-base, #fff));
74
+ --sc-badge-bg: var(--sc-info, var(--sc-base-content, #000));
71
75
  }
72
76
  :host([type="success"]) {
73
- --sc-badge-color: var(--sc-success-content);
74
- --sc-badge-bg: var(--sc-success);
77
+ --sc-badge-color: var(--sc-success-content, var(--sc-base, #fff));
78
+ --sc-badge-bg: var(--sc-success, var(--sc-base-content, #000));
75
79
  }
76
80
  :host([type="neutral"]) {
77
- --sc-badge-color: var(--sc-base);
78
- --sc-badge-bg: var(--sc-base-content);
81
+ --sc-badge-color: var(--sc-base, #fff);
82
+ --sc-badge-bg: var(--sc-base-content, #000);
83
+ }
84
+
85
+ :host([contrast]),
86
+ :host([type="contrast"]) {
87
+ --sc-badge-color: var(--sc-contrast-content, #fff);
88
+ --sc-badge-bg: var(--sc-contrast, #000);
79
89
  }
80
90
 
81
91
  /*SIZE*/
82
92
  :host {
83
- font-size: var(--sc-fs);
84
93
  gap: var(--sc-badge-gap);
85
94
  }
86
95
 
87
- :host([size="2xs"]) {
88
- --sc-badge-gap: 0.35em;
89
- }
90
- :host([size="xs"]) {
91
- --sc-badge-gap: 0.35em;
92
- }
93
-
96
+ :host([size="2xs"]),
97
+ :host([size="xs"]),
94
98
  :host([size="sm"]) {
95
99
  --sc-badge-gap: 0.35em;
96
100
  }
97
101
 
98
- :host([size="lg"]) {
99
- --sc-lh: 1.2;
100
- --sc-badge-gap: 0.5em;
101
- }
102
-
102
+ :host([size="lg"]),
103
103
  :host([size="xl"]) {
104
- --sc-lh: 1.2;
104
+ --sc-_lh: 1.2;
105
105
  --sc-badge-gap: 0.5em;
106
106
  }
107
107
 
108
- :host([contrast]) {
109
- --sc-badge-color: var(--sc-contrast-content);
110
- --sc-badge-bg: var(--sc-contrast);
111
- }
112
-
113
108
  /*OUTLINE*/
114
109
  :host([variant="outline"][type]) {
115
- border-width: var(--sc-badge-border-with) !important;
110
+ border-width: var(--sc-badge-border-width) !important;
116
111
  border-color: var(--sc-badge-bg);
117
112
  color: var(--sc-badge-bg);
118
113
  background: transparent;
119
114
  }
120
115
 
121
116
  :host([variant="outline"][type="default"]) {
122
- border-color: var(--sc-base-400);
123
- color: var(--sc-base-500);
117
+ border-color: var(--sc-base-content, #000);
118
+ color: var(--sc-base-content, #000);
124
119
  background: transparent;
125
120
  }
126
121
 
@@ -130,6 +125,7 @@ export class Badge extends LitElement {
130
125
  background: transparent;
131
126
  padding: 0;
132
127
  }
128
+
133
129
  @media (forced-colors: active) {
134
130
  :host([variant="ghost"][type]) {
135
131
  padding: var(--sc-badge-py) var(--sc-badge-px);
@@ -146,6 +142,7 @@ export class Badge extends LitElement {
146
142
  white-space: nowrap;
147
143
  max-width: 100%;
148
144
  }
145
+
149
146
  :host([ellipsis]) slot {
150
147
  overflow: hidden;
151
148
  display: block;
@@ -164,20 +161,31 @@ export class Badge extends LitElement {
164
161
  /**
165
162
  * Le type change surtout la couleur composant
166
163
  */
167
- @property({type: String, reflect: true})
168
- type: "default" | "primary" | "warning" | "danger" | "success" | "info" | "neutral" = "default";
164
+ @property({ type: String, reflect: true })
165
+ type:
166
+ | "default"
167
+ | "primary"
168
+ | "warning"
169
+ | "danger"
170
+ | "success"
171
+ | "info"
172
+ | "contrast"
173
+ | "neutral" = "default";
169
174
  /**
170
175
  * Le composant par defaut sans se paramètre à forte afordance
171
- * * gost : composant super léger visuellement
176
+ * * ghost : composant super léger visuellement
172
177
  * * outline : composant légé avec une bordure
173
178
  */
174
- @property({type: String, reflect: true}) variant: "default" | "outline" | "ghost" = "default";
179
+ @property({ type: String, reflect: true }) variant:
180
+ | "default"
181
+ | "outline"
182
+ | "ghost" = "default";
175
183
 
176
184
  /**
177
185
  * Taille du composant, implique notamment des modifications de typo et de marge interne
178
186
  */
179
- @property({type: String, reflect: true}) size?: Size;
180
- @property({type: Boolean, reflect: true}) ellipsis = false;
187
+ @property({ type: String, reflect: true }) size?: Size;
188
+ @property({ type: Boolean, reflect: true }) ellipsis = false;
181
189
 
182
190
  render() {
183
191
  return html`
@@ -53,14 +53,13 @@ export class Button extends FormCheckable(FormElement(Subscriber(LitElement))) {
53
53
  --sc-btn-gap: 0.35em;
54
54
  --sc-btn-py: 0.25em;
55
55
  --sc-btn-px: 1.1em;
56
- --sc-btn-fs: var(--sc-fs, 1rem);
57
- --sc-btn-fw: var(--sc-btn-font-weight);
58
- --sc-btn-ff: var(--sc-btn-font-family);
59
- --sc-btn-fw: var(--sc-btn-font-weight);
56
+ --sc-btn-fs: var(--sc-_fs, 1rem);
57
+ --sc-btn-ff: var(--sc-btn-font-family, sans-serif);
58
+ --sc-btn-fw: var(--sc-btn-font-weight, 500);
60
59
 
61
- --sc-btn-height: var(--sc-form-height);
62
- --btn-color: var(--sc-btn-color, var(--sc-base-content));
63
- --btn-bg: var(--sc-btn-bg, var(--sc-base-100));
60
+ --sc-btn-height: var(--sc-form-height, 2.5em);
61
+ --btn-color: var(--sc-btn-color, var(--sc-base-content, #000));
62
+ --btn-bg: var(--sc-btn-bg, var(--sc-base-100, rgba(0, 0, 0, 0.07)));
64
63
 
65
64
  --sc-btn-border-style: solid;
66
65
  --sc-btn-border-width: var(--sc-form-border-width);
@@ -68,15 +67,16 @@ export class Button extends FormCheckable(FormElement(Subscriber(LitElement))) {
68
67
 
69
68
  --btn-outline-bg-hover: var(
70
69
  --sc-btn-outline-bg-hover,
71
- var(--sc-base-100)
70
+ var(--sc-base-100, rgba(0, 0, 0, 0.07))
72
71
  );
73
- --sc-btn-ghost-bg-hover: var(--sc-base-100);
72
+ --sc-btn-ghost-bg-hover: var(--sc-base-100, rgba(0, 0, 0, 0.07));
74
73
 
75
- --sc-btn-active-color: var(--sc-base);
74
+ --sc-btn-active-color: var(--sc-base, #fff);
76
75
  --sc-btn-hover-filter: brightness(0.98);
77
76
  --sc-btn-active-filter: brightness(0.97);
78
- --sc-btn-active-bg: var(--sc-base-content);
77
+ --sc-btn-active-bg: var(--sc-base-content, #000);
79
78
 
79
+ /* min permet une sécurité si btn-rounded 999px par exemple */
80
80
  --sc-item-rounded-tr: min(
81
81
  calc(var(--sc-form-height, 2.5em) / 2),
82
82
  var(--sc-btn-rounded)
@@ -150,33 +150,33 @@ export class Button extends FormCheckable(FormElement(Subscriber(LitElement))) {
150
150
 
151
151
  /*TYPES*/
152
152
  :host([type="default"]) button {
153
- --btn-color: var(--sc-base-content);
154
- --btn-bg: var(--sc-base-100);
153
+ --btn-color: var(--sc-base-content, #000);
154
+ --btn-bg: var(--sc-base-100, rgba(0, 0, 0, 0.07));
155
155
  }
156
156
 
157
157
  :host([type="primary"]) button {
158
- --btn-color: var(--sc-primary-content);
159
- --btn-bg: var(--sc-primary);
158
+ --btn-color: var(--sc-primary-content, var(--sc-base, #fff));
159
+ --btn-bg: var(--sc-primary, var(--sc-base-content, #000));
160
160
  }
161
161
  :host([type="warning"]) button {
162
- --btn-color: var(--sc-warning-content);
163
- --btn-bg: var(--sc-warning);
162
+ --btn-color: var(--sc-warning-content, var(--sc-base, #fff));
163
+ --btn-bg: var(--sc-warning, var(--sc-base-content, #000));
164
164
  }
165
165
  :host([type="danger"]) button {
166
- --btn-color: var(--sc-danger-content);
167
- --btn-bg: var(--sc-danger);
166
+ --btn-color: var(--sc-danger-content, var(--sc-base, #fff));
167
+ --btn-bg: var(--sc-danger, var(--sc-base-content, #000));
168
168
  }
169
169
  :host([type="info"]) button {
170
- --btn-color: var(--sc-info-content);
171
- --btn-bg: var(--sc-info);
170
+ --btn-color: var(--sc-info-content, var(--sc-base, #fff));
171
+ --btn-bg: var(--sc-info, var(--sc-base-content, #000));
172
172
  }
173
173
  :host([type="success"]) button {
174
- --btn-color: var(--sc-success-content);
175
- --btn-bg: var(--sc-success);
174
+ --btn-color: var(--sc-success-content, var(--sc-base, #fff));
175
+ --btn-bg: var(--sc-success, var(--sc-base-content, #000));
176
176
  }
177
177
  :host([type="neutral"]) button {
178
- --btn-color: var(--sc-base);
179
- --btn-bg: var(--sc-base-content);
178
+ --btn-color: var(--sc-base, #fff);
179
+ --btn-bg: var(--sc-base-content, #000);
180
180
  }
181
181
  :host([type="custom"]) button {
182
182
  --btn-color: var(--sc-btn-custom-color);
@@ -185,21 +185,22 @@ export class Button extends FormCheckable(FormElement(Subscriber(LitElement))) {
185
185
 
186
186
  /*UNSTYLED*/
187
187
  :host([variant="unstyled"]) {
188
- display: inline-block;
188
+ display: inline-flex;
189
189
  }
190
190
 
191
191
  :host([variant="unstyled"]) button {
192
192
  all: unset;
193
- display: contents;
194
193
  cursor: pointer;
194
+ width: 100%;
195
+ flex: 1;
196
+ box-sizing: border-box;
195
197
  --sc-btn-height: auto;
196
- --sc-btn-width: auto;
197
198
  }
198
199
 
199
200
  /*GESTION DU FOCUS*/
200
201
  :host(:not([disabled])) button:focus {
201
- box-shadow: 0 0 0 0.18rem var(--sc-base-300);
202
- border-color: var(--sc-base-300) !important;
202
+ box-shadow: 0 0 0 0.18rem var(--sc-base-300, rgba(0, 0, 0, 0.18));
203
+ border-color: var(--sc-base-300, rgba(0, 0, 0, 0.18)) !important;
203
204
  outline: none;
204
205
  }
205
206
 
@@ -237,8 +238,8 @@ export class Button extends FormCheckable(FormElement(Subscriber(LitElement))) {
237
238
  }
238
239
 
239
240
  :host([variant="outline"][type="default"]) button {
240
- border-color: var(--sc-base-content);
241
- color: var(--sc-base-content);
241
+ border-color: var(--sc-base-content, #000);
242
+ color: var(--sc-base-content, #000);
242
243
  background: transparent;
243
244
  }
244
245
 
@@ -1,17 +1,16 @@
1
- import {html, LitElement} from "lit";
2
- import {customElement} from "lit/decorators.js";
1
+ import { html, LitElement, css } from "lit";
2
+ import { customElement } from "lit/decorators.js";
3
3
  const tagName = "sonic-card-footer";
4
4
 
5
5
  @customElement(tagName)
6
6
  export class CardFooter extends LitElement {
7
- // static styles = [
8
- // css`
9
- // :host {
10
-
11
- // }
12
-
13
- // `
14
- // ];
7
+ static styles = [
8
+ css`
9
+ :host {
10
+ display: block;
11
+ }
12
+ `,
13
+ ];
15
14
 
16
15
  render() {
17
16
  return html` <slot></slot> `;