@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
@@ -15,8 +15,8 @@ export const passwordToggle = css`
15
15
 
16
16
  export const label = css`
17
17
  :host {
18
- --sc-label-fs: var(--sc-fs, 1rem);
19
- --sc-label-fw: var(--sc-label-font-weight);
18
+ --sc-label-fs: var(--sc-_fs, 1rem);
19
+ --sc-label-fw: var(--sc-label-font-weight, 500);
20
20
  }
21
21
  label {
22
22
  font-size: var(--sc-label-fs);
@@ -31,7 +31,7 @@ export const label = css`
31
31
 
32
32
  export const description = css`
33
33
  .form-description {
34
- color: var(--sc-base-400);
34
+ color: var(--sc-base-400, var(--sc-base-content, #000));
35
35
  font-size: 0.85em;
36
36
  margin-top: 0.2em;
37
37
  display: block;
@@ -44,23 +44,26 @@ export const formControl = css`
44
44
  }
45
45
 
46
46
  :host {
47
- --sc-input-height: var(--sc-form-height);
48
- --sc-input-c: var(--sc-input-color, var(--sc-base-content));
47
+ --sc-input-height: var(--sc-form-height, 2.5em);
48
+ --sc-input-c: var(--sc-input-color, var(--sc-base-content, #000));
49
49
  --sc-input-b-width: var(--sc-form-border-width);
50
- --sc-input-b-color: var(--sc-input-border-color);
50
+ --sc-input-b-color: var(
51
+ --sc-input-border-color,
52
+ var(--sc-base-content, #000)
53
+ );
51
54
 
52
55
  --sc-item-rounded-tr: var(--sc-input-rounded);
53
56
  --sc-item-rounded-tl: var(--sc-input-rounded);
54
57
  --sc-item-rounded-bl: var(--sc-input-rounded);
55
58
  --sc-item-rounded-br: var(--sc-input-rounded);
56
59
 
57
- --sc-input-fs: var(--sc-fs, 1rem);
60
+ --sc-input-fs: var(--sc-_fs, 1rem);
58
61
  --sc-input-ff: inherit;
59
62
  --sc-input-py: 0.55em;
60
63
  --sc-input-px: clamp(0.3em, 8%, 1.1em);
61
64
 
62
65
  --sc-input-background: var(--sc-input-bg);
63
- --sc-input-addon-c: var(--sc-input-addon-color, var(--sc-base));
66
+ --sc-input-addon-c: var(--sc-input-addon-color, var(--sc-base, #fff));
64
67
  --sc-input-addon-bg: var(--sc-input-c);
65
68
  }
66
69
 
@@ -158,7 +161,7 @@ export const formControl = css`
158
161
  display: flex;
159
162
  align-items: center;
160
163
  gap: 0.35em;
161
- min-height: var(--sc-form-height);
164
+ min-height: var(--sc-form-height, 2.5em);
162
165
  }
163
166
 
164
167
  :host([inlineContent]) .form-element .form-element {
@@ -225,7 +228,7 @@ export const formControl = css`
225
228
  /*PLACEHOLDER*/
226
229
  ::placeholder {
227
230
  color: inherit;
228
- opacity: 0.45;
231
+ opacity: 0.6;
229
232
  }
230
233
 
231
234
  :host([placehoderAsLabel]) ::placeholder {
@@ -249,13 +252,6 @@ export const formControl = css`
249
252
  display: block;
250
253
  }
251
254
 
252
- .form-description {
253
- color: var(--sc-base-400);
254
- font-size: 0.85em;
255
- margin-top: 0.2em;
256
- display: block;
257
- }
258
-
259
255
  /*Utilitaires*/
260
256
  .hidden {
261
257
  display: none;
@@ -266,7 +262,7 @@ export const formControl = css`
266
262
 
267
263
  /*ERROR*/
268
264
  :host([error]) {
269
- --sc-input-b-color: var(--sc-danger);
265
+ --sc-input-b-color: var(--sc-danger, var(--sc-base-content, #000));
270
266
  }
271
267
 
272
268
  :host input:visited {
@@ -274,22 +270,22 @@ export const formControl = css`
274
270
  }
275
271
 
276
272
  :host([touched][required]) :not(:focus):invalid {
277
- --sc-input-b-color: var(--sc-danger);
278
- --sc-input-c: var(--sc-danger);
273
+ --sc-input-b-color: var(--sc-danger, var(--sc-base-content, #000));
274
+ --sc-input-c: var(--sc-danger, var(--sc-base-content, #000));
279
275
  }
280
276
 
281
277
  :host([touched][required]) :not(:focus):invalid + .select-chevron {
282
- --sc-input-c: var(--sc-danger);
278
+ --sc-input-c: var(--sc-danger, var(--sc-base-content, #000));
283
279
  }
284
280
 
285
281
  /*VALID*/
286
282
  :host([touched][required]) :not([value=""]):not(:focus):valid {
287
- --sc-input-b-color: var(--sc-success);
288
- --sc-input-c: var(--sc-success);
283
+ --sc-input-b-color: var(--sc-success, var(--sc-base-content, #000));
284
+ --sc-input-c: var(--sc-success, var(--sc-base-content, #000));
289
285
  }
290
286
 
291
287
  :host([touched][required]) :not(:focus):valid + .select-chevron {
292
- --sc-input-c: var(--sc-success);
288
+ --sc-input-c: var(--sc-success, var(--sc-base-content, #000));
293
289
  }
294
290
 
295
291
  /*Input COLOR*/
@@ -358,33 +354,33 @@ export const formControl = css`
358
354
 
359
355
  /*type color "default" | "success" | "error" | "warning" | "info" */
360
356
  :host([status="success"]) {
361
- --sc-input-b-color: var(--sc-success);
362
- --sc-input-c: var(--sc-success);
363
- --sc-input-addon-bg: var(--sc-success);
364
- --sc-input-addon-color: var(--sc-success-content);
357
+ --sc-input-b-color: var(--sc-success, var(--sc-base-content, #000));
358
+ --sc-input-c: var(--sc-success, var(--sc-base-content, #000));
359
+ --sc-input-addon-bg: var(--sc-success, var(--sc-base-content, #000));
360
+ --sc-input-addon-color: var(--sc-success-content, var(--sc-base, #fff));
365
361
  }
366
362
  :host([status="error"]) {
367
- --sc-input-b-color: var(--sc-danger);
368
- --sc-input-c: var(--sc-danger);
369
- --sc-input-addon-bg: var(--sc-danger);
370
- --sc-input-addon-color: var(--sc-danger-content);
363
+ --sc-input-b-color: var(--sc-danger, var(--sc-base-content, #000));
364
+ --sc-input-c: var(--sc-danger, var(--sc-base-content, #000));
365
+ --sc-input-addon-bg: var(--sc-danger, var(--sc-base-content, #000));
366
+ --sc-input-addon-color: var(--sc-danger-content, var(--sc-base, #fff));
371
367
  }
372
368
  :host([status="warning"]) {
373
369
  --sc-input-b-color: var(--sc-warning);
374
- --sc-input-c: var(--sc-warning);
375
- --sc-input-addon-bg: var(--sc-warning);
376
- --sc-input-addon-color: var(--sc-warning-content);
370
+ --sc-input-c: var(--sc-warning, var(--sc-base-content, #000));
371
+ --sc-input-addon-bg: var(--sc-warning, var(--sc-base-content, #000));
372
+ --sc-input-addon-color: var(--sc-warning-content, var(--sc-base, #fff));
377
373
  }
378
374
  :host([status="info"]) {
379
- --sc-input-b-color: var(--sc-info);
380
- --sc-input-c: var(--sc-info);
381
- --sc-input-addon-bg: var(--sc-info);
382
- --sc-input-addon-color: var(--sc-info-content);
375
+ --sc-input-b-color: var(--sc-info, var(--sc-base-content, #000));
376
+ --sc-input-c: var(--sc-info, var(--sc-base-content, #000));
377
+ --sc-input-addon-bg: var(--sc-info, var(--sc-base-content, #000));
378
+ --sc-input-addon-color: var(--sc-info-content, var(--sc-base, #fff));
383
379
  }
384
380
  :host([status="primary"]) {
385
- --sc-input-b-color: var(--sc-primary);
386
- --sc-input-c: var(--sc-primary);
387
- --sc-input-addon-bg: var(--sc-primary);
388
- --sc-input-addon-color: var(--sc-primary-content);
381
+ --sc-input-b-color: var(--sc-primary, var(--sc-base-content, #000));
382
+ --sc-input-c: var(--sc-primary, var(--sc-base-content, #000));
383
+ --sc-input-addon-bg: var(--sc-primary, var(--sc-base-content, #000));
384
+ --sc-input-addon-color: var(--sc-primary-content, var(--sc-base, #fff));
389
385
  }
390
386
  `;
File without changes
@@ -1,5 +1,5 @@
1
- import {html, LitElement, css} 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
 
4
4
  @customElement("sonic-legend-description")
5
5
  export class LegendDescription extends LitElement {
@@ -9,9 +9,9 @@ export class LegendDescription extends LitElement {
9
9
  font-size: 1.15rem;
10
10
  line-height: 1.2;
11
11
  display: block;
12
- color: var(--sc-base-500);
13
- font-weight: var(--sc-font-weight-base);
14
- font-style: var(--sc-font-style-base);
12
+ color: var(--sc-base-500, var(--sc-base-content, #000));
13
+ font-weight: var(--sc-font-weight-base, 400);
14
+ font-style: var(--sc-font-style-base, normal);
15
15
  margin-top: 0.2em;
16
16
  }
17
17
  `,
@@ -1,8 +1,8 @@
1
- import {html, LitElement, css} from "lit";
2
- import {customElement, property} from "lit/decorators.js";
1
+ import { html, LitElement, css } from "lit";
2
+ import { customElement, property } from "lit/decorators.js";
3
3
  import "@supersoniks/concorde/core/components/ui/form/fieldset/legend-description";
4
- import {unsafeHTML} from "lit/directives/unsafe-html.js";
5
- import {ifDefined} from "lit/directives/if-defined.js";
4
+ import { unsafeHTML } from "lit/directives/unsafe-html.js";
5
+ import { ifDefined } from "lit/directives/if-defined.js";
6
6
 
7
7
  const tagName = "sonic-legend";
8
8
 
@@ -12,11 +12,14 @@ export class Legend extends LitElement {
12
12
  css`
13
13
  :host {
14
14
  --sc-legend-font-size: 1.5rem;
15
- --sc-legend-font-weight: var(--sc-font-weight-base);
16
- --sc-legend-font-style: var(--sc-headings-font-style);
17
- --sc-legend-family: var(--sc-headings-font-family);
18
- --sc-legend-line-height: var(--sc-headings-line-height);
19
- --sc-legend-color: var(--sc-base-content);
15
+ --sc-legend-font-weight: var(--sc-font-weight-base, 400);
16
+ --sc-legend-font-style: var(--sc-headings-font-style, normal);
17
+ --sc-legend-family: var(
18
+ --sc-headings-font-family,
19
+ var(--sc-font-family-base, sans-serif)
20
+ );
21
+ --sc-legend-line-height: var(--sc-headings-line-height, 1.1);
22
+ --sc-legend-color: var(--sc-base-content, #000);
20
23
  display: flex;
21
24
  width: 100%;
22
25
  }
@@ -47,13 +50,14 @@ export class Legend extends LitElement {
47
50
  `,
48
51
  ];
49
52
 
50
- @property({type: Boolean}) forceAutoFill = false;
53
+ @property({ type: Boolean }) forceAutoFill = false;
51
54
  _description?: string;
52
55
  @property() get description(): string | undefined {
53
56
  return this._description;
54
57
  }
55
58
  set description(value) {
56
- if (this.hasAttribute("description") && !this.forceAutoFill) value = this.getAttribute("description") as string;
59
+ if (this.hasAttribute("description") && !this.forceAutoFill)
60
+ value = this.getAttribute("description") as string;
57
61
  this._description = value;
58
62
  this.requestUpdate();
59
63
  }
@@ -62,26 +66,35 @@ export class Legend extends LitElement {
62
66
  return this._label;
63
67
  }
64
68
  set label(value) {
65
- if (this.hasAttribute("label") && !this.forceAutoFill) value = this.getAttribute("label") as string;
69
+ if (this.hasAttribute("label") && !this.forceAutoFill)
70
+ value = this.getAttribute("label") as string;
66
71
  this._label = value;
67
72
  this.requestUpdate();
68
73
  }
69
74
 
70
- @property({type: String}) iconName?: string;
71
- @property({type: String}) iconLibrary?: string;
72
- @property({type: String}) iconPrefix?: string;
75
+ @property({ type: String }) iconName?: string;
76
+ @property({ type: String }) iconLibrary?: string;
77
+ @property({ type: String }) iconPrefix?: string;
73
78
 
74
79
  render() {
75
80
  return html`<legend part="legend">
76
81
  ${this.iconName
77
82
  ? html`<div class="icon">
78
- <sonic-icon name=${this.iconName} prefix=${ifDefined(this.iconPrefix)} library=${ifDefined(this.iconLibrary)}></sonic-icon>
83
+ <sonic-icon
84
+ name=${this.iconName}
85
+ prefix=${ifDefined(this.iconPrefix)}
86
+ library=${ifDefined(this.iconLibrary)}
87
+ ></sonic-icon>
79
88
  </div>`
80
89
  : ""}
81
90
 
82
91
  <div class="legend-content">
83
92
  ${unsafeHTML(this.label ? this.label : "")}
84
- ${this.description ? html`<sonic-legend-description>${unsafeHTML(this.description)}</sonic-legend-description>` : ""}
93
+ ${this.description
94
+ ? html`<sonic-legend-description
95
+ >${unsafeHTML(this.description)}</sonic-legend-description
96
+ >`
97
+ : ""}
85
98
  <slot></slot>
86
99
  </div>
87
100
  <slot name="suffix"></slot>
@@ -108,7 +108,7 @@
108
108
 
109
109
  <sonic-code>
110
110
  <template>
111
- <div class="grid grid-cols-4 gap-3">
111
+ <div class="grid grid-cols-2 gap-3">
112
112
  <sonic-input inlineContent type="search" label="Search icon in input" placeholder="Search plane">
113
113
  <sonic-icon library="iconoir" name="search" slot="prefix"></sonic-icon>
114
114
  </sonic-input>
@@ -127,31 +127,30 @@
127
127
  ## Example of use
128
128
  <sonic-code>
129
129
  <template>
130
- <sonic-theme color background theme=${theme} class="p-8">
131
- <sonic-input
132
- formDataProvider="input-filter"
133
- name="contains"
134
- value="chien"
135
- ></sonic-input>
136
- <sonic-subscriber dataProvider="input-filter" class="text-xl my-4 block font-bold">
137
- Blagues trouvées pour "<span data-bind ::inner-html="$contains"></span>" :
138
- </sonic-subscriber>
139
- <sonic-queue
140
- lazyload
141
- dataProviderExpression="joke/Any?amount=10&lang=fr"
142
- dataFilterProvider="input-filter"
143
- serviceURL="https://v2.jokeapi.dev"
144
- key="jokes"
145
- >
146
- <template>
147
- <div class="border-0 border-b-[1px] border-b-neutral-300 border-dotted py-3">
148
- <div data-bind ::inner-html="$joke"></div>
149
- <div data-bind ::inner-html="$setup"></div>
150
- <div data-bind ::inner-html="$delivery"></div>
151
- </div>
152
- </template>
153
- </sonic-queue>
154
- </sonic-theme>
130
+ <sonic-input
131
+ formDataProvider="input-filter"
132
+ name="contains"
133
+ value="chien"
134
+ class="mb-4"
135
+ ></sonic-input>
136
+ <sonic-subscriber dataProvider="input-filter" class="text-xl my-4 block font-bold">
137
+ Blagues trouvées pour "<span data-bind ::inner-html="$contains"></span>" :
138
+ </sonic-subscriber>
139
+ <sonic-queue
140
+ lazyload
141
+ dataProviderExpression="joke/Any?amount=10&lang=fr"
142
+ dataFilterProvider="input-filter"
143
+ serviceURL="https://v2.jokeapi.dev"
144
+ key="jokes"
145
+ >
146
+ <template>
147
+ <div class="border-0 border-b-[1px] border-b-neutral-300 border-dotted py-3">
148
+ <div data-bind ::inner-html="$joke"></div>
149
+ <div data-bind ::inner-html="$setup"></div>
150
+ <div data-bind ::inner-html="$delivery"></div>
151
+ </div>
152
+ </template>
153
+ </sonic-queue>
155
154
  </template>
156
155
  </sonic-code>
157
156
 
@@ -166,7 +166,9 @@ export class Input extends FormInput(FormElement(Subscriber(LitElement))) {
166
166
  }
167
167
 
168
168
  // toggle password visibility
169
- togglePasswordVisibility() {
169
+ togglePasswordVisibility(e: Event) {
170
+ e.preventDefault();
171
+ e.stopPropagation();
170
172
  this.isPassword = !this.isPassword;
171
173
  this._type = this.isPassword ? "password" : "text";
172
174
  // this.type = this.isPassword ? "password" : "text";
@@ -232,7 +234,7 @@ export class Input extends FormInput(FormElement(Subscriber(LitElement))) {
232
234
  shape="circle"
233
235
  class="password-toggle"
234
236
  @click=${this.togglePasswordVisibility}
235
- aria-label="Toggle password visibility"
237
+ data-aria-label="Toggle password visibility"
236
238
  variant="unstyled"
237
239
  >
238
240
  <sonic-icon
@@ -113,7 +113,10 @@ export class InputAutocomplete extends TemplatesContainer(
113
113
  );
114
114
  // Si la liste de this.queueDataProvider est bien initialisée, mais qu'aucun item ne correspond à la recherche
115
115
  // On affiche quand même la valeur dans le champ de recherche, car il provient directement du formDataProvider
116
- if (found === false) {
116
+ if (
117
+ found === false &&
118
+ (!this.searchParameter || this.searchParameter === this.name)
119
+ ) {
117
120
  this.lastValidSearch = value;
118
121
  this.searchPublisher?.set(this.lastValidSearch);
119
122
  }
@@ -181,7 +184,6 @@ export class InputAutocomplete extends TemplatesContainer(
181
184
  connectedCallback() {
182
185
  super.connectedCallback();
183
186
 
184
-
185
187
  /**
186
188
  * Nom de la valeur de recherche
187
189
  * Si non défini, on utilise name
@@ -266,10 +268,14 @@ export class InputAutocomplete extends TemplatesContainer(
266
268
  ) {
267
269
  const queuePublisher = PublisherManager.get(queueDataProvider);
268
270
  let listItem: ListItem | undefined;
269
- const listsDescriptors = queuePublisher.get();
270
- if (!Array.isArray(listsDescriptors)) return;
271
+ let listsDescriptors = queuePublisher.get();
272
+
273
+ if (!listsDescriptors || !Array.isArray(listsDescriptors)) {
274
+ return false;
275
+ }
276
+ if (!listsDescriptors.length) return false;
271
277
  for (const listDescriptor of listsDescriptors) {
272
- const list = PublisherManager.get(listDescriptor.dataProvider).get();
278
+ let list = PublisherManager.get(listDescriptor.dataProvider).get();
273
279
  if (!Array.isArray(list)) continue;
274
280
  listItem = list.find(itemFinder);
275
281
  if (listItem) {
@@ -302,6 +308,7 @@ export class InputAutocomplete extends TemplatesContainer(
302
308
  <sonic-pop noToggle style="display:block;" @hide=${this.handleHide}>
303
309
  <sonic-input
304
310
  dataProvider="${this.initSearchDataProvider + Math.random()}"
311
+ noAutofill
305
312
  formDataProvider="${this.searchDataProvider}"
306
313
  type="search"
307
314
  data-keyboard-nav="${this.getAttribute("data-keyboard-nav") || ""}"
@@ -310,7 +317,7 @@ export class InputAutocomplete extends TemplatesContainer(
310
317
  name="${ifDefined(this.searchParameter || this.name)}"
311
318
  placeholder="${ifDefined(this.placeholder)}"
312
319
  ?readonly="${this.readonly}"
313
- autocomplete="${Math.random()}"
320
+ autocomplete="off"
314
321
  clearable
315
322
  inlineContent
316
323
  size=${this.size}
@@ -53,7 +53,6 @@
53
53
  ## Example of use
54
54
  <sonic-code>
55
55
  <template>
56
- <sonic-theme color background theme=${theme} class="p-8">
57
56
  <sonic-subscriber dataProvider="jokeFilterRadio" class="text-xl my-4 block font-bold">
58
57
  Remove following jokes :
59
58
  <sonic-value key="blacklistFlags" class="block text-sm"></sonic-value>
@@ -81,6 +80,5 @@
81
80
  </div>
82
81
  </template>
83
82
  </sonic-queue>
84
- </sonic-theme>
85
83
  </template>
86
84
  </sonic-code>
@@ -1,6 +1,6 @@
1
- import {css} from "lit";
2
- import {customElement} from "lit/decorators.js";
3
- import {Checkbox} from "@supersoniks/concorde/core/components/ui/form/checkbox/checkbox";
1
+ import { css } from "lit";
2
+ import { customElement } from "lit/decorators.js";
3
+ import { Checkbox } from "@supersoniks/concorde/core/components/ui/form/checkbox/checkbox";
4
4
 
5
5
  const tagName = "sonic-radio";
6
6
  /**
@@ -21,12 +21,14 @@ export class Radio extends Checkbox {
21
21
  :host sonic-icon {
22
22
  border-radius: 50%;
23
23
  overflow: hidden;
24
- background-color: var(--sc-primary-content);
24
+ background-color: var(--sc-primary-content, var(--sc-base, #fff));
25
25
  line-height: 0;
26
26
  display: block;
27
27
  font-size: 1em;
28
28
  height: 0.6em;
29
+ height: round(0.6em, 1px);
29
30
  width: 0.6em;
31
+ width: round(0.6em, 1px);
30
32
  }
31
33
  `,
32
34
  ];
@@ -67,33 +67,31 @@
67
67
  ## Example of use
68
68
  <sonic-code>
69
69
  <template>
70
- <sonic-theme color background theme=${theme} class="p-8">
71
- <sonic-select
72
- formDataProvider="select-filter"
73
- name="lang"
74
- value="fr"
75
- >
76
- <option value="fr">fr<option>
77
- <optionn value="en">en<option>
78
- </sonic-select>
79
- <sonic-subscriber dataProvider="select-filter" class="text-xl my-4 block font-bold">
80
- Blagues trouvées pour le code de langue"<span data-bind ::inner-html="$lang"></span>" :
81
- </sonic-subscriber>
82
- <sonic-queue
83
- lazyload
84
- dataProviderExpression="joke/Any?amount=10"
85
- dataFilterProvider="select-filter"
86
- serviceURL="https://v2.jokeapi.dev"
87
- key="jokes"
88
- >
89
- <template>
90
- <div class="border-0 border-b-[1px] border-b-neutral-300 border-dotted py-3">
91
- <div data-bind ::inner-html="$joke"></div>
92
- <div data-bind ::inner-html="$setup"></div>
93
- <div data-bind ::inner-html="$delivery"></div>
94
- </div>
95
- </template>
96
- </sonic-queue>
97
- </sonic-theme>
70
+ <sonic-select
71
+ formDataProvider="select-filter"
72
+ name="lang"
73
+ value="fr"
74
+ >
75
+ <option value="fr">fr<option>
76
+ <optionn value="en">en<option>
77
+ </sonic-select>
78
+ <sonic-subscriber dataProvider="select-filter" class="text-xl my-4 block font-bold">
79
+ Blagues trouvées pour le code de langue"<span data-bind ::inner-html="$lang"></span>" :
80
+ </sonic-subscriber>
81
+ <sonic-queue
82
+ lazyload
83
+ dataProviderExpression="joke/Any?amount=10"
84
+ dataFilterProvider="select-filter"
85
+ serviceURL="https://v2.jokeapi.dev"
86
+ key="jokes"
87
+ >
88
+ <template>
89
+ <div class="border-0 border-b-[1px] border-b-neutral-300 border-dotted py-3">
90
+ <div data-bind ::inner-html="$joke"></div>
91
+ <div data-bind ::inner-html="$setup"></div>
92
+ <div data-bind ::inner-html="$delivery"></div>
93
+ </div>
94
+ </template>
95
+ </sonic-queue>
98
96
  </template>
99
97
  </sonic-code>
@@ -85,8 +85,8 @@ export class Select extends FormElement(Subscriber(LitElement)) {
85
85
 
86
86
  option {
87
87
  padding: 0.1rem var(--sc-input-px);
88
- color: var(--sc-base-content);
89
- background: var(--sc-base);
88
+ color: var(--sc-base-content, #000);
89
+ background: var(--sc-base, #fff);
90
90
  }
91
91
 
92
92
  select[multiple] option {
@@ -51,13 +51,13 @@ export class Textarea extends FormInput(FormElement(Subscriber(LitElement))) {
51
51
  @property({ type: String }) wrap?: "hard" | "soft";
52
52
  @property({ type: Boolean }) readonly = false;
53
53
  @property({ type: String }) placeholder?: string;
54
- @property({ type: String }) resize?:
54
+ @property({ type: String }) resize:
55
55
  | "none"
56
56
  | "both"
57
57
  | "horizontal"
58
58
  | "vertical"
59
59
  | "block"
60
- | "inline";
60
+ | "inline" = "vertical";
61
61
 
62
62
  @queryAssignedNodes({ slot: "label", flatten: true })
63
63
  slotLabelNodes!: Array<Node>;
File without changes
@@ -1,6 +1,6 @@
1
- import {html, LitElement, css} from "lit";
2
- import {customElement, property} from "lit/decorators.js";
3
- import {styleMap} from "lit/directives/style-map.js";
1
+ import { html, LitElement, css } from "lit";
2
+ import { customElement, property } from "lit/decorators.js";
3
+ import { styleMap } from "lit/directives/style-map.js";
4
4
  const tagName = "sonic-image";
5
5
  @customElement(tagName)
6
6
  export class Image extends LitElement {
@@ -8,7 +8,7 @@ export class Image extends LitElement {
8
8
  css`
9
9
  :host {
10
10
  --sc-img-radius: 0;
11
- --sc-img-bg: var(--sc-placeholder-bg);
11
+ --sc-img-bg: var(--sc-placeholder-bg, rgba(12, 12, 12, 0.05));
12
12
  border-radius: var(--sc-img-radius);
13
13
  display: block;
14
14
  width: 100%;
@@ -72,7 +72,8 @@ export class Image extends LitElement {
72
72
 
73
73
  :host([transition="fade-scale-out"]) img {
74
74
  scale: 1.08;
75
- transition: opacity 0.3s linear, scale 0.3s cubic-bezier(0.16, 1, 0.3, 1);
75
+ transition: opacity 0.3s linear,
76
+ scale 0.3s cubic-bezier(0.16, 1, 0.3, 1);
76
77
  }
77
78
  :host([transition]) img.loaded {
78
79
  opacity: 1;
@@ -81,17 +82,27 @@ export class Image extends LitElement {
81
82
  `,
82
83
  ];
83
84
 
84
- @property({type: String}) rounded: "" | "none" | "full" | "sm" | "md" | "lg" = "none";
85
- @property({type: String}) src = "";
86
- @property({type: String}) alt = "";
87
- @property({type: String}) loading: "eager" | "lazy" = "lazy";
88
- @property({type: String, reflect: true}) transition?: "fade" | "fade-scale-out";
89
- @property({type: String}) ratio = "auto";
90
- @property({type: String}) objectPosition = "center center";
91
- @property({type: String}) imageRendering = "auto";
92
- @property({type: Boolean, reflect: true}) cover = false;
85
+ @property({ type: String }) rounded:
86
+ | ""
87
+ | "none"
88
+ | "full"
89
+ | "sm"
90
+ | "md"
91
+ | "lg" = "none";
92
+ @property({ type: String }) src = "";
93
+ @property({ type: String }) alt = "";
94
+ @property({ type: String }) loading: "eager" | "lazy" = "lazy";
95
+ @property({ type: String, reflect: true }) transition?:
96
+ | "fade"
97
+ | "fade-scale-out";
98
+ @property({ type: String }) ratio = "auto";
99
+ @property({ type: String }) objectPosition = "center center";
100
+ @property({ type: String }) imageRendering = "auto";
101
+ @property({ type: Boolean, reflect: true }) cover = false;
93
102
 
94
- firstUpdated(changedProperties: Map<string | number | symbol, unknown>): void {
103
+ firstUpdated(
104
+ changedProperties: Map<string | number | symbol, unknown>
105
+ ): void {
95
106
  if (this.transition) {
96
107
  const img = this.shadowRoot?.querySelector("img");
97
108
  if (!img) return;
@@ -110,7 +121,12 @@ export class Image extends LitElement {
110
121
  };
111
122
  return html`<div part="image">
112
123
  <picture part="picture"
113
- ><img part="img" src="${this.src}" loading="${this.loading}" alt="${this.alt}" style=${styleMap(imgStyles)}
124
+ ><img
125
+ part="img"
126
+ src="${this.src}"
127
+ loading="${this.loading}"
128
+ alt="${this.alt}"
129
+ style=${styleMap(imgStyles)}
114
130
  /></picture>
115
131
  </div>`;
116
132
  }