@rotomeca/design-system 1.0.0 → 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -35,6 +35,10 @@ import { toast, setTheme } from '@rotomeca/design-system';
35
35
 
36
36
  Bundle ESM minifié : `out/rotomeca-design-system.js`. Les icônes (SVG `lucide-static`) sont copiées dans `out/icons` au build.
37
37
 
38
+ ### Éviter le flash au chargement
39
+
40
+ Chargez le CSS général **avant** le script, et placez le `<script type="module">` dans le `<head>` (avec un `<link rel="modulepreload">`). Tant que les composants ne sont pas définis, le CSS les masque en réservant leur place (rendu visible après 2 s si le JS échoue).
41
+
38
42
  ### Thème
39
43
 
40
44
  Le thème sombre s'active avec `data-theme="dark"` sur `<html>` (ou via `setTheme('light' | 'dark' | 'system')`).
@@ -60,9 +64,16 @@ Le thème se personnalise uniquement en redéfinissant des propriétés `--ds-*`
60
64
  Les tags sont définis dans `src/core/scripts/utils/tags.ts`. Les attributs, slots, `part`, états `:state()` et
61
65
  événements de chaque brique sont documentés en TSDoc dans son fichier source.
62
66
 
67
+ ## Documentation
68
+
69
+ Le site (un exemple vivant + son code HTML pour chacune des briques, API extraite du TSDoc) est construit avec le design system lui-même et publié sur GitHub Pages par `.github/workflows/docs.yml` à chaque push sur `main`.
70
+ Activer une fois : Settings → Pages → Source « GitHub Actions ». Pour ajouter une brique : `docs/examples/<nom>.html` + entrée dans `docs/site.config.mjs` (le build échoue si une brique n'est pas documentée).
71
+
63
72
  ## Développement
64
73
 
65
74
  - `pnpm dev` : playground sur http://localhost:5173 (recompilation LESS + live reload), une section par brique
75
+ - `pnpm docs:dev` : site de documentation sur http://localhost:5174 (live reload)
76
+ - `pnpm docs:build` : génère le site de documentation dans `site/` (variable `DOCS_BASE` = préfixe d'URL)
66
77
  - `pnpm build` : génère `dist/` et `out/` (JS + CSS + icônes)
67
78
  - `pnpm test` : typecheck + lint + build (porte de validation)
68
79
  - `pnpm format` / `pnpm format:check` : Prettier
@@ -72,6 +83,6 @@ Les tags sont définis dans `src/core/scripts/utils/tags.ts`. Les attributs, slo
72
83
  | Fichier | Minifié | Gzip |
73
84
  | --- | --- | --- |
74
85
  | `rotomeca-design-system.js` (64 briques) | ≈ 269 ko | ≈ 60 ko |
75
- | `rotomeca-design-system.css` | ≈ 9,9 ko | ≈ 2,1 ko |
86
+ | `rotomeca-design-system.css` | ≈ 23,3 ko | ≈ 4,2 ko |
76
87
 
77
88
  Les styles des composants sont embarqués dans le JS (constructed stylesheets partagées).
@@ -28,6 +28,24 @@ declare function setIconsPath(path: string): void;
28
28
  * ```
29
29
  */
30
30
  declare function registerIcons(icons: Record<string, string>): void;
31
+ /**
32
+ * Icône SVG, chargée par nom depuis le dossier `icons/` (jeu Lucide) puis mise en cache.
33
+ *
34
+ * @remarks
35
+ * Elle hérite de `currentColor` : sa couleur suit celle du texte. Sans `label`, elle est
36
+ * décorative (`aria-hidden`).
37
+ *
38
+ * | Attribut | Valeurs | Rôle |
39
+ * | --- | --- | --- |
40
+ * | `name` | nom Lucide (`leaf`, `house`…) | Icône à afficher. |
41
+ * | `size` | `sm` · `md` (défaut) · `lg` ou longueur CSS | Taille. |
42
+ * | `label` | texte | Nom accessible ; absent = décorative. |
43
+ *
44
+ * @example
45
+ * ```html
46
+ * <rds-icon name="leaf" size="lg" label="Feuille"></rds-icon>
47
+ * ```
48
+ */
31
49
  declare class RotomecaIcon extends BaseElementInternal {
32
50
  #private;
33
51
  /** Nom de l'icône enregistrée. */
@@ -91,6 +91,24 @@ function registerIcons(icons) {
91
91
  for (const icon of document.querySelectorAll(TAG_ICON))
92
92
  icon.requestUpdate('icons');
93
93
  }
94
+ /**
95
+ * Icône SVG, chargée par nom depuis le dossier `icons/` (jeu Lucide) puis mise en cache.
96
+ *
97
+ * @remarks
98
+ * Elle hérite de `currentColor` : sa couleur suit celle du texte. Sans `label`, elle est
99
+ * décorative (`aria-hidden`).
100
+ *
101
+ * | Attribut | Valeurs | Rôle |
102
+ * | --- | --- | --- |
103
+ * | `name` | nom Lucide (`leaf`, `house`…) | Icône à afficher. |
104
+ * | `size` | `sm` · `md` (défaut) · `lg` ou longueur CSS | Taille. |
105
+ * | `label` | texte | Nom accessible ; absent = décorative. |
106
+ *
107
+ * @example
108
+ * ```html
109
+ * <rds-icon name="leaf" size="lg" label="Feuille"></rds-icon>
110
+ * ```
111
+ */
94
112
  let RotomecaIcon = (() => {
95
113
  let _classDecorators = [Define({ tag: TAG_ICON, styles: style })];
96
114
  let _classDescriptor;
@@ -308,3 +308,652 @@
308
308
  background-color: var(--ds-body-background-color, #ffffff);
309
309
  color: var(--ds-body-text-color, #2d211b);
310
310
  }
311
+ @keyframes rds-undefined-reveal {
312
+ to {
313
+ visibility: visible;
314
+ }
315
+ }
316
+ rds-header:not(:defined) {
317
+ display: block;
318
+ visibility: hidden;
319
+ animation: rds-undefined-reveal 0s 2s forwards;
320
+ }
321
+ rds-footer:not(:defined) {
322
+ display: block;
323
+ visibility: hidden;
324
+ animation: rds-undefined-reveal 0s 2s forwards;
325
+ }
326
+ rds-sidenav:not(:defined) {
327
+ display: block;
328
+ visibility: hidden;
329
+ animation: rds-undefined-reveal 0s 2s forwards;
330
+ }
331
+ rds-table:not(:defined) {
332
+ display: block;
333
+ visibility: hidden;
334
+ animation: rds-undefined-reveal 0s 2s forwards;
335
+ }
336
+ rds-tabs:not(:defined) {
337
+ display: block;
338
+ visibility: hidden;
339
+ animation: rds-undefined-reveal 0s 2s forwards;
340
+ }
341
+ rds-accordion:not(:defined) {
342
+ display: block;
343
+ visibility: hidden;
344
+ animation: rds-undefined-reveal 0s 2s forwards;
345
+ }
346
+ rds-card:not(:defined) {
347
+ display: block;
348
+ visibility: hidden;
349
+ animation: rds-undefined-reveal 0s 2s forwards;
350
+ }
351
+ rds-alert:not(:defined) {
352
+ display: block;
353
+ visibility: hidden;
354
+ animation: rds-undefined-reveal 0s 2s forwards;
355
+ }
356
+ rds-callout:not(:defined) {
357
+ display: block;
358
+ visibility: hidden;
359
+ animation: rds-undefined-reveal 0s 2s forwards;
360
+ }
361
+ rds-quote:not(:defined) {
362
+ display: block;
363
+ visibility: hidden;
364
+ animation: rds-undefined-reveal 0s 2s forwards;
365
+ }
366
+ rds-fieldset:not(:defined) {
367
+ display: block;
368
+ visibility: hidden;
369
+ animation: rds-undefined-reveal 0s 2s forwards;
370
+ }
371
+ rds-breadcrumb:not(:defined) {
372
+ display: block;
373
+ visibility: hidden;
374
+ animation: rds-undefined-reveal 0s 2s forwards;
375
+ }
376
+ rds-pagination:not(:defined) {
377
+ display: block;
378
+ visibility: hidden;
379
+ animation: rds-undefined-reveal 0s 2s forwards;
380
+ }
381
+ rds-stepper:not(:defined) {
382
+ display: block;
383
+ visibility: hidden;
384
+ animation: rds-undefined-reveal 0s 2s forwards;
385
+ }
386
+ rds-button-group:not(:defined) {
387
+ display: block;
388
+ visibility: hidden;
389
+ animation: rds-undefined-reveal 0s 2s forwards;
390
+ }
391
+ rds-progress:not(:defined) {
392
+ display: block;
393
+ visibility: hidden;
394
+ animation: rds-undefined-reveal 0s 2s forwards;
395
+ }
396
+ rds-placeholder:not(:defined) {
397
+ display: block;
398
+ visibility: hidden;
399
+ animation: rds-undefined-reveal 0s 2s forwards;
400
+ }
401
+ rds-picture:not(:defined) {
402
+ display: block;
403
+ visibility: hidden;
404
+ animation: rds-undefined-reveal 0s 2s forwards;
405
+ }
406
+ rds-divider:not(:defined) {
407
+ display: block;
408
+ visibility: hidden;
409
+ animation: rds-undefined-reveal 0s 2s forwards;
410
+ }
411
+ rds-icon:not(:defined) {
412
+ visibility: hidden;
413
+ animation: rds-undefined-reveal 0s 2s forwards;
414
+ }
415
+ rds-button:not(:defined) {
416
+ visibility: hidden;
417
+ animation: rds-undefined-reveal 0s 2s forwards;
418
+ }
419
+ rds-primary-button:not(:defined) {
420
+ visibility: hidden;
421
+ animation: rds-undefined-reveal 0s 2s forwards;
422
+ }
423
+ rds-secondary-button:not(:defined) {
424
+ visibility: hidden;
425
+ animation: rds-undefined-reveal 0s 2s forwards;
426
+ }
427
+ rds-tertiary-button:not(:defined) {
428
+ visibility: hidden;
429
+ animation: rds-undefined-reveal 0s 2s forwards;
430
+ }
431
+ rds-danger-button:not(:defined) {
432
+ visibility: hidden;
433
+ animation: rds-undefined-reveal 0s 2s forwards;
434
+ }
435
+ rds-icon-button:not(:defined) {
436
+ visibility: hidden;
437
+ animation: rds-undefined-reveal 0s 2s forwards;
438
+ }
439
+ rds-link:not(:defined) {
440
+ visibility: hidden;
441
+ animation: rds-undefined-reveal 0s 2s forwards;
442
+ }
443
+ rds-tag:not(:defined) {
444
+ visibility: hidden;
445
+ animation: rds-undefined-reveal 0s 2s forwards;
446
+ }
447
+ rds-badge:not(:defined) {
448
+ visibility: hidden;
449
+ animation: rds-undefined-reveal 0s 2s forwards;
450
+ }
451
+ rds-spinner:not(:defined) {
452
+ visibility: hidden;
453
+ animation: rds-undefined-reveal 0s 2s forwards;
454
+ }
455
+ rds-avatar:not(:defined) {
456
+ visibility: hidden;
457
+ animation: rds-undefined-reveal 0s 2s forwards;
458
+ }
459
+ rds-date:not(:defined) {
460
+ visibility: hidden;
461
+ animation: rds-undefined-reveal 0s 2s forwards;
462
+ }
463
+ rds-flexbox:not(:defined) {
464
+ visibility: hidden;
465
+ animation: rds-undefined-reveal 0s 2s forwards;
466
+ }
467
+ rds-message:not(:defined) {
468
+ visibility: hidden;
469
+ animation: rds-undefined-reveal 0s 2s forwards;
470
+ }
471
+ rds-input:not(:defined) {
472
+ visibility: hidden;
473
+ animation: rds-undefined-reveal 0s 2s forwards;
474
+ }
475
+ rds-input-text:not(:defined) {
476
+ visibility: hidden;
477
+ animation: rds-undefined-reveal 0s 2s forwards;
478
+ }
479
+ rds-input-number:not(:defined) {
480
+ visibility: hidden;
481
+ animation: rds-undefined-reveal 0s 2s forwards;
482
+ }
483
+ rds-input-date:not(:defined) {
484
+ visibility: hidden;
485
+ animation: rds-undefined-reveal 0s 2s forwards;
486
+ }
487
+ rds-input-time:not(:defined) {
488
+ visibility: hidden;
489
+ animation: rds-undefined-reveal 0s 2s forwards;
490
+ }
491
+ rds-input-datetime:not(:defined) {
492
+ visibility: hidden;
493
+ animation: rds-undefined-reveal 0s 2s forwards;
494
+ }
495
+ rds-input-password:not(:defined) {
496
+ visibility: hidden;
497
+ animation: rds-undefined-reveal 0s 2s forwards;
498
+ }
499
+ rds-input-search:not(:defined) {
500
+ visibility: hidden;
501
+ animation: rds-undefined-reveal 0s 2s forwards;
502
+ }
503
+ rds-input-email:not(:defined) {
504
+ visibility: hidden;
505
+ animation: rds-undefined-reveal 0s 2s forwards;
506
+ }
507
+ rds-input-tel:not(:defined) {
508
+ visibility: hidden;
509
+ animation: rds-undefined-reveal 0s 2s forwards;
510
+ }
511
+ rds-input-url:not(:defined) {
512
+ visibility: hidden;
513
+ animation: rds-undefined-reveal 0s 2s forwards;
514
+ }
515
+ rds-input-color:not(:defined) {
516
+ visibility: hidden;
517
+ animation: rds-undefined-reveal 0s 2s forwards;
518
+ }
519
+ rds-input-range:not(:defined) {
520
+ visibility: hidden;
521
+ animation: rds-undefined-reveal 0s 2s forwards;
522
+ }
523
+ rds-textarea:not(:defined) {
524
+ visibility: hidden;
525
+ animation: rds-undefined-reveal 0s 2s forwards;
526
+ }
527
+ rds-select:not(:defined) {
528
+ visibility: hidden;
529
+ animation: rds-undefined-reveal 0s 2s forwards;
530
+ }
531
+ rds-checkbox:not(:defined) {
532
+ visibility: hidden;
533
+ animation: rds-undefined-reveal 0s 2s forwards;
534
+ }
535
+ rds-radio:not(:defined) {
536
+ visibility: hidden;
537
+ animation: rds-undefined-reveal 0s 2s forwards;
538
+ }
539
+ rds-switch:not(:defined) {
540
+ visibility: hidden;
541
+ animation: rds-undefined-reveal 0s 2s forwards;
542
+ }
543
+ rds-segmented-control:not(:defined) {
544
+ visibility: hidden;
545
+ animation: rds-undefined-reveal 0s 2s forwards;
546
+ }
547
+ rds-input-file:not(:defined) {
548
+ visibility: hidden;
549
+ animation: rds-undefined-reveal 0s 2s forwards;
550
+ }
551
+ rds-tooltip:not(:defined) {
552
+ visibility: hidden;
553
+ animation: rds-undefined-reveal 0s 2s forwards;
554
+ }
555
+ rds-helper:not(:defined) {
556
+ visibility: hidden;
557
+ animation: rds-undefined-reveal 0s 2s forwards;
558
+ }
559
+ rds-menu:not(:defined) {
560
+ visibility: hidden;
561
+ animation: rds-undefined-reveal 0s 2s forwards;
562
+ }
563
+ rds-theme-switcher:not(:defined) {
564
+ visibility: hidden;
565
+ animation: rds-undefined-reveal 0s 2s forwards;
566
+ }
567
+ rds-skip-links:not(:defined) {
568
+ visibility: hidden;
569
+ animation: rds-undefined-reveal 0s 2s forwards;
570
+ }
571
+ rds-back-to-top:not(:defined) {
572
+ visibility: hidden;
573
+ animation: rds-undefined-reveal 0s 2s forwards;
574
+ }
575
+ rds-dialog:not(:defined) {
576
+ display: none;
577
+ }
578
+ rds-drawer:not(:defined) {
579
+ display: none;
580
+ }
581
+ rds-toast:not(:defined) {
582
+ display: none;
583
+ }
584
+ rds-header:not(:defined) {
585
+ min-height: 4rem;
586
+ }
587
+ rds-header [slot='nav'] {
588
+ display: flex;
589
+ align-items: center;
590
+ gap: 0.25rem;
591
+ flex-wrap: wrap;
592
+ margin: 0;
593
+ padding: 0;
594
+ list-style: none;
595
+ }
596
+ rds-header [slot='nav'] a {
597
+ position: relative;
598
+ display: inline-flex;
599
+ align-items: center;
600
+ min-height: 2.5rem;
601
+ padding: 0 0.875rem;
602
+ border-radius: var(--ds-radius-full);
603
+ font-weight: 600;
604
+ color: var(--ds-text-default);
605
+ text-decoration: none;
606
+ transition: background-color var(--ds-duration-instant) var(--ds-ease-standard);
607
+ }
608
+ rds-header [slot='nav'] a:hover {
609
+ background: var(--ds-background-action-tertiary-hover);
610
+ }
611
+ rds-header [slot='nav'] a:focus-visible {
612
+ outline: 3px solid var(--ds-focus-ring-color);
613
+ outline-offset: 2px;
614
+ }
615
+ rds-header [slot='nav'] a[aria-current='page'] {
616
+ color: var(--ds-text-action-tertiary);
617
+ background: var(--ds-background-surface-variant);
618
+ }
619
+ rds-header [slot='brand'] {
620
+ color: inherit;
621
+ text-decoration: none;
622
+ display: inline-flex;
623
+ align-items: center;
624
+ gap: 0.5rem;
625
+ }
626
+ @container (max-width: 48rem) {
627
+ rds-header [slot='nav'] {
628
+ flex-direction: column;
629
+ align-items: stretch;
630
+ }
631
+ rds-header [slot='nav'] a {
632
+ border-radius: var(--ds-input-radius);
633
+ }
634
+ }
635
+ @media (prefers-reduced-motion: reduce) {
636
+ rds-header [slot='nav'] a {
637
+ transition-duration: 1ms;
638
+ }
639
+ }
640
+ rds-footer h2,
641
+ rds-footer h3,
642
+ rds-footer .rds-footer-title {
643
+ margin: 0 0 0.5rem;
644
+ font-size: 0.875rem;
645
+ font-weight: 700;
646
+ color: var(--ds-text-default);
647
+ }
648
+ rds-footer ul {
649
+ margin: 0;
650
+ padding: 0;
651
+ list-style: none;
652
+ display: grid;
653
+ gap: 0.375rem;
654
+ }
655
+ rds-footer a {
656
+ color: var(--ds-text-muted);
657
+ text-decoration: underline;
658
+ text-decoration-color: transparent;
659
+ text-underline-offset: 3px;
660
+ border-radius: 2px;
661
+ transition: color var(--ds-duration-instant) var(--ds-ease-standard), text-decoration-color var(--ds-duration-short) var(--ds-ease-standard);
662
+ }
663
+ rds-footer a:hover {
664
+ color: var(--ds-text-default);
665
+ text-decoration-color: currentcolor;
666
+ }
667
+ rds-footer a:focus-visible {
668
+ outline: 3px solid var(--ds-focus-ring-color);
669
+ outline-offset: 2px;
670
+ }
671
+ rds-footer [slot='bottom'] {
672
+ display: flex;
673
+ flex-wrap: wrap;
674
+ gap: 0.25rem 1rem;
675
+ }
676
+ @media (prefers-reduced-motion: reduce) {
677
+ rds-footer a {
678
+ transition-duration: 1ms;
679
+ }
680
+ }
681
+ rds-sidenav {
682
+ display: block;
683
+ font-size: 0.9375rem;
684
+ }
685
+ rds-sidenav > .rds-sn-title {
686
+ margin: 0 0 0.5rem;
687
+ padding: 0 0.75rem;
688
+ font-size: 0.75rem;
689
+ font-weight: 700;
690
+ letter-spacing: 0.04em;
691
+ text-transform: uppercase;
692
+ color: var(--ds-text-muted);
693
+ }
694
+ rds-sidenav a,
695
+ rds-sidenav summary {
696
+ display: flex;
697
+ align-items: center;
698
+ gap: 0.75rem;
699
+ min-height: 2.5rem;
700
+ padding: 0.375rem 0.75rem;
701
+ border-radius: var(--ds-radius-full);
702
+ color: var(--ds-text-default);
703
+ text-decoration: none;
704
+ cursor: pointer;
705
+ transition: background-color var(--ds-duration-instant) var(--ds-ease-standard), color var(--ds-duration-instant) var(--ds-ease-standard);
706
+ }
707
+ rds-sidenav a:hover,
708
+ rds-sidenav summary:hover {
709
+ background: var(--ds-background-action-tertiary-hover);
710
+ }
711
+ rds-sidenav a:focus-visible,
712
+ rds-sidenav summary:focus-visible {
713
+ outline: 3px solid var(--ds-focus-ring-color);
714
+ outline-offset: 0;
715
+ }
716
+ rds-sidenav a[aria-current='page'] {
717
+ font-weight: 700;
718
+ color: var(--ds-text-action-tertiary);
719
+ background: var(--ds-background-surface-strong);
720
+ }
721
+ rds-sidenav details {
722
+ margin: 0;
723
+ }
724
+ rds-sidenav summary {
725
+ list-style: none;
726
+ font-weight: 600;
727
+ }
728
+ rds-sidenav summary::-webkit-details-marker {
729
+ display: none;
730
+ }
731
+ rds-sidenav summary::after {
732
+ content: '';
733
+ margin-left: auto;
734
+ width: 0.5rem;
735
+ height: 0.5rem;
736
+ border-right: 2px solid currentcolor;
737
+ border-bottom: 2px solid currentcolor;
738
+ transform: rotate(45deg) translateY(-2px);
739
+ transition: transform var(--ds-duration-medium) var(--ds-ease-standard);
740
+ }
741
+ rds-sidenav details[open] > summary::after {
742
+ transform: rotate(-135deg) translateY(-2px);
743
+ }
744
+ rds-sidenav details > :not(summary) {
745
+ margin-left: 1rem;
746
+ }
747
+ rds-sidenav details[open] > :not(summary) {
748
+ animation: rds-sn-in 250ms var(--ds-ease-emphasized-decelerate);
749
+ }
750
+ rds-sidenav rds-icon {
751
+ --ds-icon-size: 1.25rem;
752
+ }
753
+ rds-sidenav .rds-sn-list {
754
+ display: grid;
755
+ gap: 0.125rem;
756
+ }
757
+ @keyframes rds-sn-in {
758
+ from {
759
+ opacity: 0;
760
+ transform: translateY(-4px);
761
+ }
762
+ }
763
+ @media (prefers-reduced-motion: reduce) {
764
+ rds-sidenav a,
765
+ rds-sidenav summary,
766
+ rds-sidenav summary::after {
767
+ transition-duration: 1ms;
768
+ }
769
+ rds-sidenav details[open] > :not(summary) {
770
+ animation: none;
771
+ }
772
+ }
773
+ rds-breadcrumb {
774
+ display: block;
775
+ font-size: 0.875rem;
776
+ line-height: 1.25rem;
777
+ color: var(--ds-text-muted);
778
+ }
779
+ rds-breadcrumb ol {
780
+ display: flex;
781
+ flex-wrap: wrap;
782
+ align-items: center;
783
+ gap: 0.25rem;
784
+ margin: 0;
785
+ padding: 0;
786
+ list-style: none;
787
+ }
788
+ rds-breadcrumb li {
789
+ display: inline-flex;
790
+ align-items: center;
791
+ gap: 0.25rem;
792
+ }
793
+ rds-breadcrumb li > rds-icon {
794
+ --ds-icon-size: 1rem;
795
+ color: var(--ds-text-muted);
796
+ }
797
+ rds-breadcrumb a {
798
+ color: var(--ds-text-muted);
799
+ text-decoration: underline;
800
+ text-decoration-color: transparent;
801
+ text-underline-offset: 3px;
802
+ border-radius: 2px;
803
+ transition: color var(--ds-duration-instant) var(--ds-ease-standard), text-decoration-color var(--ds-duration-short) var(--ds-ease-standard);
804
+ }
805
+ rds-breadcrumb a:hover {
806
+ color: var(--ds-text-default);
807
+ text-decoration-color: currentcolor;
808
+ }
809
+ rds-breadcrumb a:focus-visible {
810
+ outline: 3px solid var(--ds-focus-ring-color);
811
+ outline-offset: 2px;
812
+ }
813
+ rds-breadcrumb [aria-current='page'] {
814
+ color: var(--ds-text-default);
815
+ font-weight: 600;
816
+ text-decoration: none;
817
+ pointer-events: none;
818
+ }
819
+ rds-breadcrumb .rds-bc-more {
820
+ font: inherit;
821
+ color: var(--ds-text-muted);
822
+ background: none;
823
+ border: 0;
824
+ padding: 0 0.25rem;
825
+ border-radius: var(--ds-radius-xs);
826
+ cursor: pointer;
827
+ text-decoration: underline;
828
+ text-underline-offset: 3px;
829
+ }
830
+ rds-breadcrumb .rds-bc-more:focus-visible {
831
+ outline: 3px solid var(--ds-focus-ring-color);
832
+ }
833
+ rds-breadcrumb li.rds-bc-hidden {
834
+ display: none;
835
+ }
836
+ @media (prefers-reduced-motion: reduce) {
837
+ rds-breadcrumb a {
838
+ transition-duration: 1ms;
839
+ }
840
+ }
841
+ rds-table {
842
+ display: block;
843
+ max-width: 100%;
844
+ overflow-x: auto;
845
+ border-radius: var(--ds-radius-lg);
846
+ box-shadow: inset 0 0 0 1px var(--ds-border-subtle);
847
+ background: var(--ds-background-surface);
848
+ }
849
+ rds-table:focus-visible {
850
+ outline: 3px solid var(--ds-focus-ring-color);
851
+ outline-offset: 2px;
852
+ }
853
+ rds-table table {
854
+ width: 100%;
855
+ border-collapse: separate;
856
+ border-spacing: 0;
857
+ font-size: 0.9375rem;
858
+ line-height: 1.375rem;
859
+ color: var(--ds-text-default);
860
+ }
861
+ rds-table caption {
862
+ caption-side: top;
863
+ text-align: left;
864
+ padding: 1rem 1rem 0.5rem;
865
+ font-family: var(--ds-font-display);
866
+ font-size: 1.125rem;
867
+ font-weight: 600;
868
+ }
869
+ rds-table th,
870
+ rds-table td {
871
+ padding: 0.75rem 1rem;
872
+ text-align: left;
873
+ vertical-align: middle;
874
+ border-bottom: 1px solid var(--ds-border-subtle);
875
+ }
876
+ rds-table thead th {
877
+ font-size: 0.8125rem;
878
+ font-weight: 700;
879
+ color: var(--ds-text-muted);
880
+ background: var(--ds-background-surface-variant);
881
+ white-space: nowrap;
882
+ }
883
+ rds-table[sticky] {
884
+ max-height: var(--rds-table-max, 24rem);
885
+ }
886
+ rds-table[sticky] thead th {
887
+ position: sticky;
888
+ top: 0;
889
+ z-index: 1;
890
+ }
891
+ rds-table tbody tr:last-child > * {
892
+ border-bottom: 0;
893
+ }
894
+ rds-table tfoot td,
895
+ rds-table tfoot th {
896
+ font-weight: 700;
897
+ border-top: 1px solid var(--ds-border-strong);
898
+ border-bottom: 0;
899
+ }
900
+ rds-table[striped] tbody tr:nth-child(even) > * {
901
+ background: color-mix(in srgb, var(--ds-background-surface-variant) 60%, transparent);
902
+ }
903
+ rds-table[hover] tbody tr {
904
+ transition: background-color var(--ds-duration-instant) var(--ds-ease-standard);
905
+ }
906
+ rds-table[hover] tbody tr:hover > * {
907
+ background: var(--ds-background-option-hover);
908
+ }
909
+ rds-table[bordered] th + th,
910
+ rds-table[bordered] td + td,
911
+ rds-table[bordered] th + td,
912
+ rds-table[bordered] td + th {
913
+ border-left: 1px solid var(--ds-border-subtle);
914
+ }
915
+ rds-table[compact] th,
916
+ rds-table[compact] td {
917
+ padding: 0.375rem 0.75rem;
918
+ }
919
+ rds-table .rds-num,
920
+ rds-table [data-type='number'] {
921
+ text-align: right;
922
+ font-variant-numeric: tabular-nums;
923
+ }
924
+ rds-table tr[aria-selected='true'] > * {
925
+ background: var(--ds-background-option-selected);
926
+ }
927
+ rds-table .rds-sort {
928
+ all: unset;
929
+ display: inline-flex;
930
+ align-items: center;
931
+ gap: 0.25rem;
932
+ cursor: pointer;
933
+ border-radius: 4px;
934
+ }
935
+ rds-table .rds-sort:hover {
936
+ color: var(--ds-text-default);
937
+ }
938
+ rds-table .rds-sort:focus-visible {
939
+ outline: 3px solid var(--ds-focus-ring-color);
940
+ outline-offset: 2px;
941
+ }
942
+ rds-table .rds-sort rds-icon {
943
+ --ds-icon-size: 1rem;
944
+ opacity: 0.5;
945
+ transition: transform var(--ds-duration-medium) var(--ds-ease-standard), opacity var(--ds-duration-instant) var(--ds-ease-standard);
946
+ }
947
+ rds-table th[aria-sort] .rds-sort rds-icon {
948
+ opacity: 1;
949
+ color: var(--ds-text-action-tertiary);
950
+ }
951
+ rds-table th[aria-sort='descending'] .rds-sort rds-icon {
952
+ transform: rotate(180deg);
953
+ }
954
+ @media (prefers-reduced-motion: reduce) {
955
+ rds-table[hover] tbody tr,
956
+ rds-table .rds-sort rds-icon {
957
+ transition-duration: 1ms;
958
+ }
959
+ }
@@ -1 +1 @@
1
- :root,[data-theme=light]{color-scheme:light;--ds-body-background-color: #ffffff;--ds-body-text-color: #2d211b;--ds-background-surface: #ffffff;--ds-background-surface-variant: #f5ebdd;--ds-background-surface-strong: #e7d5be;--ds-background-overlay: #ffffff;--ds-text-default: #2d211b;--ds-text-muted: #5c4337;--ds-border-subtle: #e7d5be;--ds-border-strong: #8b5e3c;--ds-focus-ring-color: #2d211b;--ds-background-action-primary: #6b4226;--ds-background-action-primary-hover: #8b5e3c;--ds-background-action-primary-active: #3e2723;--ds-text-action-primary: #ffffff;--ds-background-action-secondary: #ffffff;--ds-background-action-secondary-hover: #f5ebdd;--ds-background-action-secondary-active: #e7d5be;--ds-text-action-secondary: #b85c38;--ds-text-action-secondary-button: #6b4226;--ds-text-action-tertiary: #6b4226;--ds-background-action-tertiary-hover: #f5ebdd;--ds-background-action-tertiary-active: #e7d5be;--ds-background-action-warning: #e8a317;--ds-background-action-warning-hover: #f0b73e;--ds-background-action-warning-active: #c98a0b;--ds-text-action-warning: #2d211b;--ds-background-action-danger: #b3261e;--ds-background-action-danger-hover: #c9372c;--ds-background-action-danger-active: #8c1d18;--ds-text-action-danger: #ffffff;--ds-background-action-success: #2e7d32;--ds-background-action-success-hover: #276b2b;--ds-background-action-success-active: #1b5e20;--ds-text-action-success: #ffffff;--ds-text-success: #2e7d32;--ds-text-warning: #8a5a00;--ds-text-danger: #b3261e;--ds-date-color-invalid: var(--ds-text-danger);--ds-input-background: #f5ebdd;--ds-input-text: #2d211b;--ds-input-hint: #5c4337;--ds-input-border: #8b5e3c;--ds-input-ring-1: #6b4226;--ds-input-ring-2: #b85c38;--ds-input-ring-3: #d6a23d;--ds-input-ring-4: #c87552;--ds-input-border-success: #2e7d32;--ds-input-border-error: #b3261e;--ds-control-border: #8b5e3c;--ds-control-checked: #6b4226;--ds-control-checked-hover: #8b5e3c;--ds-control-state-layer: #6b4226;--ds-switch-track: #f5ebdd;--ds-switch-thumb: #8b5e3c;--ds-switch-thumb-checked: #ffffff;--ds-switch-icon-checked: #6b4226;--ds-background-option-hover: #f5ebdd;--ds-background-option-selected: #e7d5be;--ds-text-link: #6b4226;--ds-text-link-hover: #3e2723;--ds-text-link-visited: #7a3545;--ds-background-inverse: #2d211b;--ds-text-inverse: #f5ebdd;--ds-text-action-inverse: #e0b563;--ds-background-scrim: rgba(27, 22, 19, .5);--ds-background-placeholder: #e7d5be;--ds-background-placeholder-shine: #f5ebdd;--ds-background-tone-neutral: #e7d5be;--ds-text-tone-neutral: #2d211b;--ds-background-tone-neutral-bold: #2d211b;--ds-text-tone-neutral-bold: #f5ebdd;--ds-background-tone-brand: #f5ebdd;--ds-text-tone-brand: #6b4226;--ds-background-tone-brand-bold: #6b4226;--ds-text-tone-brand-bold: #ffffff;--ds-background-tone-accent: #f6e7c4;--ds-text-tone-accent: #7a5410;--ds-background-tone-accent-bold: #d6a23d;--ds-text-tone-accent-bold: #2d211b;--ds-background-tone-success: #e2eedf;--ds-text-tone-success: #1b5e20;--ds-background-tone-success-bold: #2e7d32;--ds-text-tone-success-bold: #ffffff;--ds-background-tone-warning: #fbeccc;--ds-text-tone-warning: #7a4e00;--ds-background-tone-warning-bold: #e8a317;--ds-text-tone-warning-bold: #2d211b;--ds-background-tone-danger: #f7e1df;--ds-text-tone-danger: #8c1d18;--ds-background-tone-danger-bold: #b3261e;--ds-text-tone-danger-bold: #ffffff;--ds-shadow-1: 0 1px 2px rgba(45, 33, 27, .12), 0 1px 3px 1px rgba(45, 33, 27, .08);--ds-shadow-2: 0 2px 6px 2px rgba(45, 33, 27, .1), 0 1px 2px rgba(45, 33, 27, .14);--ds-shadow-3: 0 8px 24px -4px rgba(45, 33, 27, .18), 0 2px 6px rgba(45, 33, 27, .1)}[data-theme=dark]{color-scheme:dark;--ds-body-background-color: #1b1613;--ds-body-text-color: #f5ebdd;--ds-background-surface: #1b1613;--ds-background-surface-variant: #2d211b;--ds-background-surface-strong: #3e2723;--ds-background-overlay: #2d211b;--ds-text-default: #f5ebdd;--ds-text-muted: #c2ab8d;--ds-border-subtle: #3e2723;--ds-border-strong: #9c7a5c;--ds-focus-ring-color: #f5ebdd;--ds-background-action-primary: #c87552;--ds-background-action-primary-hover: #d89477;--ds-background-action-primary-active: #a06851;--ds-text-action-primary: #1b1613;--ds-background-action-secondary: #1b1613;--ds-background-action-secondary-hover: #2d211b;--ds-background-action-secondary-active: #3e2723;--ds-text-action-secondary: #d89477;--ds-text-action-secondary-button: #d89477;--ds-text-action-tertiary: #d89477;--ds-background-action-tertiary-hover: #2d211b;--ds-background-action-tertiary-active: #3e2723;--ds-background-action-warning: #e8a317;--ds-background-action-warning-hover: #f0b73e;--ds-background-action-warning-active: #c98a0b;--ds-text-action-warning: #2d211b;--ds-background-action-danger: #b3261e;--ds-background-action-danger-hover: #c9372c;--ds-background-action-danger-active: #8c1d18;--ds-text-action-danger: #ffffff;--ds-background-action-success: #2e7d32;--ds-background-action-success-hover: #276b2b;--ds-background-action-success-active: #1b5e20;--ds-text-action-success: #ffffff;--ds-text-success: #9ccc9f;--ds-text-warning: #e0b563;--ds-text-danger: #f2b8b5;--ds-date-color-invalid: var(--ds-text-danger);--ds-input-background: #2d211b;--ds-input-text: #f5ebdd;--ds-input-hint: #c2ab8d;--ds-input-border: #9c7a5c;--ds-input-ring-1: #d89477;--ds-input-ring-2: #d6a23d;--ds-input-ring-3: #b85c38;--ds-input-ring-4: #c87552;--ds-input-border-success: #9ccc9f;--ds-input-border-error: #f2b8b5;--ds-control-border: #9c7a5c;--ds-control-checked: #c87552;--ds-control-checked-hover: #d89477;--ds-control-state-layer: #d89477;--ds-switch-track: #2d211b;--ds-switch-thumb: #c2ab8d;--ds-switch-thumb-checked: #1b1613;--ds-switch-icon-checked: #c87552;--ds-background-option-hover: #3e2723;--ds-background-option-selected: #4e352b;--ds-text-link: #d89477;--ds-text-link-hover: #e0b563;--ds-text-link-visited: #e0a3b0;--ds-background-inverse: #f5ebdd;--ds-text-inverse: #2d211b;--ds-text-action-inverse: #6b4226;--ds-background-scrim: rgba(0, 0, 0, .62);--ds-background-placeholder: #3e2723;--ds-background-placeholder-shine: #4e352b;--ds-background-tone-neutral: #3e2723;--ds-text-tone-neutral: #f5ebdd;--ds-background-tone-neutral-bold: #f5ebdd;--ds-text-tone-neutral-bold: #1b1613;--ds-background-tone-brand: #4a2f1f;--ds-text-tone-brand: #d89477;--ds-background-tone-brand-bold: #c87552;--ds-text-tone-brand-bold: #1b1613;--ds-background-tone-accent: #4a3a14;--ds-text-tone-accent: #e0b563;--ds-background-tone-accent-bold: #d6a23d;--ds-text-tone-accent-bold: #1b1613;--ds-background-tone-success: #1e3a20;--ds-text-tone-success: #a5d6a7;--ds-background-tone-success-bold: #9ccc9f;--ds-text-tone-success-bold: #1b1613;--ds-background-tone-warning: #4a3608;--ds-text-tone-warning: #f0b73e;--ds-background-tone-warning-bold: #e8a317;--ds-text-tone-warning-bold: #1b1613;--ds-background-tone-danger: #4d1a17;--ds-text-tone-danger: #f2b8b5;--ds-background-tone-danger-bold: #f2b8b5;--ds-text-tone-danger-bold: #1b1613;--ds-shadow-1: 0 1px 2px rgba(0, 0, 0, .5), 0 1px 3px 1px rgba(0, 0, 0, .3);--ds-shadow-2: 0 2px 6px 2px rgba(0, 0, 0, .45), 0 1px 2px rgba(0, 0, 0, .5);--ds-shadow-3: 0 8px 24px -4px rgba(0, 0, 0, .6), 0 2px 6px rgba(0, 0, 0, .4)}:root{--ds-space-1: .25rem;--ds-space-1-5: .375rem;--ds-space-2: .5rem;--ds-space-3: .75rem;--ds-space-4: 1rem;--ds-space-6: 1.5rem;--ds-space-8: 2rem;--ds-space-12: 3rem;--ds-radius-xs: .25rem;--ds-button-radius: 5px;--ds-input-radius: .625rem;--ds-radius-lg: 1rem;--ds-radius-xl: 1.75rem;--ds-radius-full: 999px;--ds-duration-instant: .1s;--ds-duration-short: .15s;--ds-duration-medium: .2s;--ds-duration-long: .3s;--ds-duration-loop: 1.5s;--ds-ease-standard: cubic-bezier(.2, 0, 0, 1);--ds-ease-emphasized-decelerate: cubic-bezier(.05, .7, .1, 1);--ds-ease-emphasized-accelerate: cubic-bezier(.3, 0, .8, .15);--ds-opacity-disabled: .55;--ds-opacity-state-hover: .08;--ds-opacity-state-pressed: .12;--ds-z-sticky: 100;--ds-z-overlay: 1000;--ds-z-toast: 1100;--ds-header-max: 80rem;--ds-font-display: "Fraunces", "Iowan Old Style", Georgia, serif;--ds-font-sans: "Figtree", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--ds-font-mono: ui-monospace, "Cascadia Code", "SF Mono", Menlo, monospace;--ds-font-size-display: 3.5rem;--ds-line-height-display: 1.05;--ds-font-size-headline: 2rem;--ds-line-height-headline: 2.5rem;--ds-font-size-title: 1.375rem;--ds-line-height-title: 1.75rem;--ds-font-size-body-lg: 1.125rem;--ds-line-height-body-lg: 1.75rem;--ds-font-size-body: 1rem;--ds-line-height-body: 1.5rem;--ds-font-size-label: .875rem;--ds-line-height-label: 1.25rem;--ds-font-size-helper: .875rem;--ds-line-height-helper: 1.25rem;--ds-font-size-caption: .75rem;--ds-line-height-caption: 1rem;--ds-font-size-code: .875rem;--ds-line-height-code: 1.25rem}.ds-text-display{font-family:var(--ds-font-display);font-size:var(--ds-font-size-display);line-height:var(--ds-line-height-display);font-weight:600;letter-spacing:-.02em}.ds-text-headline{font-family:var(--ds-font-display);font-size:var(--ds-font-size-headline);line-height:var(--ds-line-height-headline);font-weight:600;letter-spacing:-.01em}.ds-text-title{font-family:var(--ds-font-display);font-size:var(--ds-font-size-title);line-height:var(--ds-line-height-title);font-weight:600}.ds-text-body-lg{font-family:var(--ds-font-sans);font-size:var(--ds-font-size-body-lg);line-height:var(--ds-line-height-body-lg);font-weight:400}.ds-text-body{font-family:var(--ds-font-sans);font-size:var(--ds-font-size-body);line-height:var(--ds-line-height-body);font-weight:400}.ds-text-label{font-family:var(--ds-font-sans);font-size:var(--ds-font-size-label);line-height:var(--ds-line-height-label);font-weight:600}.ds-text-helper{font-family:var(--ds-font-sans);font-size:var(--ds-font-size-helper);line-height:var(--ds-line-height-helper);font-weight:400}.ds-text-caption{font-family:var(--ds-font-sans);font-size:var(--ds-font-size-caption);line-height:var(--ds-line-height-caption);font-weight:600;letter-spacing:.01em}.ds-text-code{font-family:var(--ds-font-mono);font-size:var(--ds-font-size-code);line-height:var(--ds-line-height-code);font-weight:400}.body{background-color:var(--ds-body-background-color, #ffffff);color:var(--ds-body-text-color, #2d211b)}
1
+ :root,[data-theme=light]{color-scheme:light;--ds-body-background-color: #ffffff;--ds-body-text-color: #2d211b;--ds-background-surface: #ffffff;--ds-background-surface-variant: #f5ebdd;--ds-background-surface-strong: #e7d5be;--ds-background-overlay: #ffffff;--ds-text-default: #2d211b;--ds-text-muted: #5c4337;--ds-border-subtle: #e7d5be;--ds-border-strong: #8b5e3c;--ds-focus-ring-color: #2d211b;--ds-background-action-primary: #6b4226;--ds-background-action-primary-hover: #8b5e3c;--ds-background-action-primary-active: #3e2723;--ds-text-action-primary: #ffffff;--ds-background-action-secondary: #ffffff;--ds-background-action-secondary-hover: #f5ebdd;--ds-background-action-secondary-active: #e7d5be;--ds-text-action-secondary: #b85c38;--ds-text-action-secondary-button: #6b4226;--ds-text-action-tertiary: #6b4226;--ds-background-action-tertiary-hover: #f5ebdd;--ds-background-action-tertiary-active: #e7d5be;--ds-background-action-warning: #e8a317;--ds-background-action-warning-hover: #f0b73e;--ds-background-action-warning-active: #c98a0b;--ds-text-action-warning: #2d211b;--ds-background-action-danger: #b3261e;--ds-background-action-danger-hover: #c9372c;--ds-background-action-danger-active: #8c1d18;--ds-text-action-danger: #ffffff;--ds-background-action-success: #2e7d32;--ds-background-action-success-hover: #276b2b;--ds-background-action-success-active: #1b5e20;--ds-text-action-success: #ffffff;--ds-text-success: #2e7d32;--ds-text-warning: #8a5a00;--ds-text-danger: #b3261e;--ds-date-color-invalid: var(--ds-text-danger);--ds-input-background: #f5ebdd;--ds-input-text: #2d211b;--ds-input-hint: #5c4337;--ds-input-border: #8b5e3c;--ds-input-ring-1: #6b4226;--ds-input-ring-2: #b85c38;--ds-input-ring-3: #d6a23d;--ds-input-ring-4: #c87552;--ds-input-border-success: #2e7d32;--ds-input-border-error: #b3261e;--ds-control-border: #8b5e3c;--ds-control-checked: #6b4226;--ds-control-checked-hover: #8b5e3c;--ds-control-state-layer: #6b4226;--ds-switch-track: #f5ebdd;--ds-switch-thumb: #8b5e3c;--ds-switch-thumb-checked: #ffffff;--ds-switch-icon-checked: #6b4226;--ds-background-option-hover: #f5ebdd;--ds-background-option-selected: #e7d5be;--ds-text-link: #6b4226;--ds-text-link-hover: #3e2723;--ds-text-link-visited: #7a3545;--ds-background-inverse: #2d211b;--ds-text-inverse: #f5ebdd;--ds-text-action-inverse: #e0b563;--ds-background-scrim: rgba(27, 22, 19, .5);--ds-background-placeholder: #e7d5be;--ds-background-placeholder-shine: #f5ebdd;--ds-background-tone-neutral: #e7d5be;--ds-text-tone-neutral: #2d211b;--ds-background-tone-neutral-bold: #2d211b;--ds-text-tone-neutral-bold: #f5ebdd;--ds-background-tone-brand: #f5ebdd;--ds-text-tone-brand: #6b4226;--ds-background-tone-brand-bold: #6b4226;--ds-text-tone-brand-bold: #ffffff;--ds-background-tone-accent: #f6e7c4;--ds-text-tone-accent: #7a5410;--ds-background-tone-accent-bold: #d6a23d;--ds-text-tone-accent-bold: #2d211b;--ds-background-tone-success: #e2eedf;--ds-text-tone-success: #1b5e20;--ds-background-tone-success-bold: #2e7d32;--ds-text-tone-success-bold: #ffffff;--ds-background-tone-warning: #fbeccc;--ds-text-tone-warning: #7a4e00;--ds-background-tone-warning-bold: #e8a317;--ds-text-tone-warning-bold: #2d211b;--ds-background-tone-danger: #f7e1df;--ds-text-tone-danger: #8c1d18;--ds-background-tone-danger-bold: #b3261e;--ds-text-tone-danger-bold: #ffffff;--ds-shadow-1: 0 1px 2px rgba(45, 33, 27, .12), 0 1px 3px 1px rgba(45, 33, 27, .08);--ds-shadow-2: 0 2px 6px 2px rgba(45, 33, 27, .1), 0 1px 2px rgba(45, 33, 27, .14);--ds-shadow-3: 0 8px 24px -4px rgba(45, 33, 27, .18), 0 2px 6px rgba(45, 33, 27, .1)}[data-theme=dark]{color-scheme:dark;--ds-body-background-color: #1b1613;--ds-body-text-color: #f5ebdd;--ds-background-surface: #1b1613;--ds-background-surface-variant: #2d211b;--ds-background-surface-strong: #3e2723;--ds-background-overlay: #2d211b;--ds-text-default: #f5ebdd;--ds-text-muted: #c2ab8d;--ds-border-subtle: #3e2723;--ds-border-strong: #9c7a5c;--ds-focus-ring-color: #f5ebdd;--ds-background-action-primary: #c87552;--ds-background-action-primary-hover: #d89477;--ds-background-action-primary-active: #a06851;--ds-text-action-primary: #1b1613;--ds-background-action-secondary: #1b1613;--ds-background-action-secondary-hover: #2d211b;--ds-background-action-secondary-active: #3e2723;--ds-text-action-secondary: #d89477;--ds-text-action-secondary-button: #d89477;--ds-text-action-tertiary: #d89477;--ds-background-action-tertiary-hover: #2d211b;--ds-background-action-tertiary-active: #3e2723;--ds-background-action-warning: #e8a317;--ds-background-action-warning-hover: #f0b73e;--ds-background-action-warning-active: #c98a0b;--ds-text-action-warning: #2d211b;--ds-background-action-danger: #b3261e;--ds-background-action-danger-hover: #c9372c;--ds-background-action-danger-active: #8c1d18;--ds-text-action-danger: #ffffff;--ds-background-action-success: #2e7d32;--ds-background-action-success-hover: #276b2b;--ds-background-action-success-active: #1b5e20;--ds-text-action-success: #ffffff;--ds-text-success: #9ccc9f;--ds-text-warning: #e0b563;--ds-text-danger: #f2b8b5;--ds-date-color-invalid: var(--ds-text-danger);--ds-input-background: #2d211b;--ds-input-text: #f5ebdd;--ds-input-hint: #c2ab8d;--ds-input-border: #9c7a5c;--ds-input-ring-1: #d89477;--ds-input-ring-2: #d6a23d;--ds-input-ring-3: #b85c38;--ds-input-ring-4: #c87552;--ds-input-border-success: #9ccc9f;--ds-input-border-error: #f2b8b5;--ds-control-border: #9c7a5c;--ds-control-checked: #c87552;--ds-control-checked-hover: #d89477;--ds-control-state-layer: #d89477;--ds-switch-track: #2d211b;--ds-switch-thumb: #c2ab8d;--ds-switch-thumb-checked: #1b1613;--ds-switch-icon-checked: #c87552;--ds-background-option-hover: #3e2723;--ds-background-option-selected: #4e352b;--ds-text-link: #d89477;--ds-text-link-hover: #e0b563;--ds-text-link-visited: #e0a3b0;--ds-background-inverse: #f5ebdd;--ds-text-inverse: #2d211b;--ds-text-action-inverse: #6b4226;--ds-background-scrim: rgba(0, 0, 0, .62);--ds-background-placeholder: #3e2723;--ds-background-placeholder-shine: #4e352b;--ds-background-tone-neutral: #3e2723;--ds-text-tone-neutral: #f5ebdd;--ds-background-tone-neutral-bold: #f5ebdd;--ds-text-tone-neutral-bold: #1b1613;--ds-background-tone-brand: #4a2f1f;--ds-text-tone-brand: #d89477;--ds-background-tone-brand-bold: #c87552;--ds-text-tone-brand-bold: #1b1613;--ds-background-tone-accent: #4a3a14;--ds-text-tone-accent: #e0b563;--ds-background-tone-accent-bold: #d6a23d;--ds-text-tone-accent-bold: #1b1613;--ds-background-tone-success: #1e3a20;--ds-text-tone-success: #a5d6a7;--ds-background-tone-success-bold: #9ccc9f;--ds-text-tone-success-bold: #1b1613;--ds-background-tone-warning: #4a3608;--ds-text-tone-warning: #f0b73e;--ds-background-tone-warning-bold: #e8a317;--ds-text-tone-warning-bold: #1b1613;--ds-background-tone-danger: #4d1a17;--ds-text-tone-danger: #f2b8b5;--ds-background-tone-danger-bold: #f2b8b5;--ds-text-tone-danger-bold: #1b1613;--ds-shadow-1: 0 1px 2px rgba(0, 0, 0, .5), 0 1px 3px 1px rgba(0, 0, 0, .3);--ds-shadow-2: 0 2px 6px 2px rgba(0, 0, 0, .45), 0 1px 2px rgba(0, 0, 0, .5);--ds-shadow-3: 0 8px 24px -4px rgba(0, 0, 0, .6), 0 2px 6px rgba(0, 0, 0, .4)}:root{--ds-space-1: .25rem;--ds-space-1-5: .375rem;--ds-space-2: .5rem;--ds-space-3: .75rem;--ds-space-4: 1rem;--ds-space-6: 1.5rem;--ds-space-8: 2rem;--ds-space-12: 3rem;--ds-radius-xs: .25rem;--ds-button-radius: 5px;--ds-input-radius: .625rem;--ds-radius-lg: 1rem;--ds-radius-xl: 1.75rem;--ds-radius-full: 999px;--ds-duration-instant: .1s;--ds-duration-short: .15s;--ds-duration-medium: .2s;--ds-duration-long: .3s;--ds-duration-loop: 1.5s;--ds-ease-standard: cubic-bezier(.2, 0, 0, 1);--ds-ease-emphasized-decelerate: cubic-bezier(.05, .7, .1, 1);--ds-ease-emphasized-accelerate: cubic-bezier(.3, 0, .8, .15);--ds-opacity-disabled: .55;--ds-opacity-state-hover: .08;--ds-opacity-state-pressed: .12;--ds-z-sticky: 100;--ds-z-overlay: 1000;--ds-z-toast: 1100;--ds-header-max: 80rem;--ds-font-display: "Fraunces", "Iowan Old Style", Georgia, serif;--ds-font-sans: "Figtree", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--ds-font-mono: ui-monospace, "Cascadia Code", "SF Mono", Menlo, monospace;--ds-font-size-display: 3.5rem;--ds-line-height-display: 1.05;--ds-font-size-headline: 2rem;--ds-line-height-headline: 2.5rem;--ds-font-size-title: 1.375rem;--ds-line-height-title: 1.75rem;--ds-font-size-body-lg: 1.125rem;--ds-line-height-body-lg: 1.75rem;--ds-font-size-body: 1rem;--ds-line-height-body: 1.5rem;--ds-font-size-label: .875rem;--ds-line-height-label: 1.25rem;--ds-font-size-helper: .875rem;--ds-line-height-helper: 1.25rem;--ds-font-size-caption: .75rem;--ds-line-height-caption: 1rem;--ds-font-size-code: .875rem;--ds-line-height-code: 1.25rem}.ds-text-display{font-family:var(--ds-font-display);font-size:var(--ds-font-size-display);line-height:var(--ds-line-height-display);font-weight:600;letter-spacing:-.02em}.ds-text-headline{font-family:var(--ds-font-display);font-size:var(--ds-font-size-headline);line-height:var(--ds-line-height-headline);font-weight:600;letter-spacing:-.01em}.ds-text-title{font-family:var(--ds-font-display);font-size:var(--ds-font-size-title);line-height:var(--ds-line-height-title);font-weight:600}.ds-text-body-lg{font-family:var(--ds-font-sans);font-size:var(--ds-font-size-body-lg);line-height:var(--ds-line-height-body-lg);font-weight:400}.ds-text-body{font-family:var(--ds-font-sans);font-size:var(--ds-font-size-body);line-height:var(--ds-line-height-body);font-weight:400}.ds-text-label{font-family:var(--ds-font-sans);font-size:var(--ds-font-size-label);line-height:var(--ds-line-height-label);font-weight:600}.ds-text-helper{font-family:var(--ds-font-sans);font-size:var(--ds-font-size-helper);line-height:var(--ds-line-height-helper);font-weight:400}.ds-text-caption{font-family:var(--ds-font-sans);font-size:var(--ds-font-size-caption);line-height:var(--ds-line-height-caption);font-weight:600;letter-spacing:.01em}.ds-text-code{font-family:var(--ds-font-mono);font-size:var(--ds-font-size-code);line-height:var(--ds-line-height-code);font-weight:400}.body{background-color:var(--ds-body-background-color, #ffffff);color:var(--ds-body-text-color, #2d211b)}@keyframes rds-undefined-reveal{to{visibility:visible}}rds-header:not(:defined){display:block;visibility:hidden;animation:rds-undefined-reveal 0s 2s forwards}rds-footer:not(:defined){display:block;visibility:hidden;animation:rds-undefined-reveal 0s 2s forwards}rds-sidenav:not(:defined){display:block;visibility:hidden;animation:rds-undefined-reveal 0s 2s forwards}rds-table:not(:defined){display:block;visibility:hidden;animation:rds-undefined-reveal 0s 2s forwards}rds-tabs:not(:defined){display:block;visibility:hidden;animation:rds-undefined-reveal 0s 2s forwards}rds-accordion:not(:defined){display:block;visibility:hidden;animation:rds-undefined-reveal 0s 2s forwards}rds-card:not(:defined){display:block;visibility:hidden;animation:rds-undefined-reveal 0s 2s forwards}rds-alert:not(:defined){display:block;visibility:hidden;animation:rds-undefined-reveal 0s 2s forwards}rds-callout:not(:defined){display:block;visibility:hidden;animation:rds-undefined-reveal 0s 2s forwards}rds-quote:not(:defined){display:block;visibility:hidden;animation:rds-undefined-reveal 0s 2s forwards}rds-fieldset:not(:defined){display:block;visibility:hidden;animation:rds-undefined-reveal 0s 2s forwards}rds-breadcrumb:not(:defined){display:block;visibility:hidden;animation:rds-undefined-reveal 0s 2s forwards}rds-pagination:not(:defined){display:block;visibility:hidden;animation:rds-undefined-reveal 0s 2s forwards}rds-stepper:not(:defined){display:block;visibility:hidden;animation:rds-undefined-reveal 0s 2s forwards}rds-button-group:not(:defined){display:block;visibility:hidden;animation:rds-undefined-reveal 0s 2s forwards}rds-progress:not(:defined){display:block;visibility:hidden;animation:rds-undefined-reveal 0s 2s forwards}rds-placeholder:not(:defined){display:block;visibility:hidden;animation:rds-undefined-reveal 0s 2s forwards}rds-picture:not(:defined){display:block;visibility:hidden;animation:rds-undefined-reveal 0s 2s forwards}rds-divider:not(:defined){display:block;visibility:hidden;animation:rds-undefined-reveal 0s 2s forwards}rds-icon:not(:defined){visibility:hidden;animation:rds-undefined-reveal 0s 2s forwards}rds-button:not(:defined){visibility:hidden;animation:rds-undefined-reveal 0s 2s forwards}rds-primary-button:not(:defined){visibility:hidden;animation:rds-undefined-reveal 0s 2s forwards}rds-secondary-button:not(:defined){visibility:hidden;animation:rds-undefined-reveal 0s 2s forwards}rds-tertiary-button:not(:defined){visibility:hidden;animation:rds-undefined-reveal 0s 2s forwards}rds-danger-button:not(:defined){visibility:hidden;animation:rds-undefined-reveal 0s 2s forwards}rds-icon-button:not(:defined){visibility:hidden;animation:rds-undefined-reveal 0s 2s forwards}rds-link:not(:defined){visibility:hidden;animation:rds-undefined-reveal 0s 2s forwards}rds-tag:not(:defined){visibility:hidden;animation:rds-undefined-reveal 0s 2s forwards}rds-badge:not(:defined){visibility:hidden;animation:rds-undefined-reveal 0s 2s forwards}rds-spinner:not(:defined){visibility:hidden;animation:rds-undefined-reveal 0s 2s forwards}rds-avatar:not(:defined){visibility:hidden;animation:rds-undefined-reveal 0s 2s forwards}rds-date:not(:defined){visibility:hidden;animation:rds-undefined-reveal 0s 2s forwards}rds-flexbox:not(:defined){visibility:hidden;animation:rds-undefined-reveal 0s 2s forwards}rds-message:not(:defined){visibility:hidden;animation:rds-undefined-reveal 0s 2s forwards}rds-input:not(:defined){visibility:hidden;animation:rds-undefined-reveal 0s 2s forwards}rds-input-text:not(:defined){visibility:hidden;animation:rds-undefined-reveal 0s 2s forwards}rds-input-number:not(:defined){visibility:hidden;animation:rds-undefined-reveal 0s 2s forwards}rds-input-date:not(:defined){visibility:hidden;animation:rds-undefined-reveal 0s 2s forwards}rds-input-time:not(:defined){visibility:hidden;animation:rds-undefined-reveal 0s 2s forwards}rds-input-datetime:not(:defined){visibility:hidden;animation:rds-undefined-reveal 0s 2s forwards}rds-input-password:not(:defined){visibility:hidden;animation:rds-undefined-reveal 0s 2s forwards}rds-input-search:not(:defined){visibility:hidden;animation:rds-undefined-reveal 0s 2s forwards}rds-input-email:not(:defined){visibility:hidden;animation:rds-undefined-reveal 0s 2s forwards}rds-input-tel:not(:defined){visibility:hidden;animation:rds-undefined-reveal 0s 2s forwards}rds-input-url:not(:defined){visibility:hidden;animation:rds-undefined-reveal 0s 2s forwards}rds-input-color:not(:defined){visibility:hidden;animation:rds-undefined-reveal 0s 2s forwards}rds-input-range:not(:defined){visibility:hidden;animation:rds-undefined-reveal 0s 2s forwards}rds-textarea:not(:defined){visibility:hidden;animation:rds-undefined-reveal 0s 2s forwards}rds-select:not(:defined){visibility:hidden;animation:rds-undefined-reveal 0s 2s forwards}rds-checkbox:not(:defined){visibility:hidden;animation:rds-undefined-reveal 0s 2s forwards}rds-radio:not(:defined){visibility:hidden;animation:rds-undefined-reveal 0s 2s forwards}rds-switch:not(:defined){visibility:hidden;animation:rds-undefined-reveal 0s 2s forwards}rds-segmented-control:not(:defined){visibility:hidden;animation:rds-undefined-reveal 0s 2s forwards}rds-input-file:not(:defined){visibility:hidden;animation:rds-undefined-reveal 0s 2s forwards}rds-tooltip:not(:defined){visibility:hidden;animation:rds-undefined-reveal 0s 2s forwards}rds-helper:not(:defined){visibility:hidden;animation:rds-undefined-reveal 0s 2s forwards}rds-menu:not(:defined){visibility:hidden;animation:rds-undefined-reveal 0s 2s forwards}rds-theme-switcher:not(:defined){visibility:hidden;animation:rds-undefined-reveal 0s 2s forwards}rds-skip-links:not(:defined){visibility:hidden;animation:rds-undefined-reveal 0s 2s forwards}rds-back-to-top:not(:defined){visibility:hidden;animation:rds-undefined-reveal 0s 2s forwards}rds-dialog:not(:defined){display:none}rds-drawer:not(:defined){display:none}rds-toast:not(:defined){display:none}rds-header:not(:defined){min-height:4rem}rds-header [slot=nav]{display:flex;align-items:center;gap:.25rem;flex-wrap:wrap;margin:0;padding:0;list-style:none}rds-header [slot=nav] a{position:relative;display:inline-flex;align-items:center;min-height:2.5rem;padding:0 .875rem;border-radius:var(--ds-radius-full);font-weight:600;color:var(--ds-text-default);text-decoration:none;transition:background-color var(--ds-duration-instant) var(--ds-ease-standard)}rds-header [slot=nav] a:hover{background:var(--ds-background-action-tertiary-hover)}rds-header [slot=nav] a:focus-visible{outline:3px solid var(--ds-focus-ring-color);outline-offset:2px}rds-header [slot=nav] a[aria-current=page]{color:var(--ds-text-action-tertiary);background:var(--ds-background-surface-variant)}rds-header [slot=brand]{color:inherit;text-decoration:none;display:inline-flex;align-items:center;gap:.5rem}@container (max-width: 48rem){rds-header [slot=nav]{flex-direction:column;align-items:stretch}rds-header [slot=nav] a{border-radius:var(--ds-input-radius)}}@media(prefers-reduced-motion:reduce){rds-header [slot=nav] a{transition-duration:1ms}}rds-footer h2,rds-footer h3,rds-footer .rds-footer-title{margin:0 0 .5rem;font-size:.875rem;font-weight:700;color:var(--ds-text-default)}rds-footer ul{margin:0;padding:0;list-style:none;display:grid;gap:.375rem}rds-footer a{color:var(--ds-text-muted);text-decoration:underline;text-decoration-color:transparent;text-underline-offset:3px;border-radius:2px;transition:color var(--ds-duration-instant) var(--ds-ease-standard),text-decoration-color var(--ds-duration-short) var(--ds-ease-standard)}rds-footer a:hover{color:var(--ds-text-default);text-decoration-color:currentcolor}rds-footer a:focus-visible{outline:3px solid var(--ds-focus-ring-color);outline-offset:2px}rds-footer [slot=bottom]{display:flex;flex-wrap:wrap;gap:.25rem 1rem}@media(prefers-reduced-motion:reduce){rds-footer a{transition-duration:1ms}}rds-sidenav{display:block;font-size:.9375rem}rds-sidenav>.rds-sn-title{margin:0 0 .5rem;padding:0 .75rem;font-size:.75rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--ds-text-muted)}rds-sidenav a,rds-sidenav summary{display:flex;align-items:center;gap:.75rem;min-height:2.5rem;padding:.375rem .75rem;border-radius:var(--ds-radius-full);color:var(--ds-text-default);text-decoration:none;cursor:pointer;transition:background-color var(--ds-duration-instant) var(--ds-ease-standard),color var(--ds-duration-instant) var(--ds-ease-standard)}rds-sidenav a:hover,rds-sidenav summary:hover{background:var(--ds-background-action-tertiary-hover)}rds-sidenav a:focus-visible,rds-sidenav summary:focus-visible{outline:3px solid var(--ds-focus-ring-color);outline-offset:0}rds-sidenav a[aria-current=page]{font-weight:700;color:var(--ds-text-action-tertiary);background:var(--ds-background-surface-strong)}rds-sidenav details{margin:0}rds-sidenav summary{list-style:none;font-weight:600}rds-sidenav summary::-webkit-details-marker{display:none}rds-sidenav summary:after{content:"";margin-left:auto;width:.5rem;height:.5rem;border-right:2px solid currentcolor;border-bottom:2px solid currentcolor;transform:rotate(45deg) translateY(-2px);transition:transform var(--ds-duration-medium) var(--ds-ease-standard)}rds-sidenav details[open]>summary:after{transform:rotate(-135deg) translateY(-2px)}rds-sidenav details>:not(summary){margin-left:1rem}rds-sidenav details[open]>:not(summary){animation:rds-sn-in .25s var(--ds-ease-emphasized-decelerate)}rds-sidenav rds-icon{--ds-icon-size: 1.25rem}rds-sidenav .rds-sn-list{display:grid;gap:.125rem}@keyframes rds-sn-in{0%{opacity:0;transform:translateY(-4px)}}@media(prefers-reduced-motion:reduce){rds-sidenav a,rds-sidenav summary,rds-sidenav summary:after{transition-duration:1ms}rds-sidenav details[open]>:not(summary){animation:none}}rds-breadcrumb{display:block;font-size:.875rem;line-height:1.25rem;color:var(--ds-text-muted)}rds-breadcrumb ol{display:flex;flex-wrap:wrap;align-items:center;gap:.25rem;margin:0;padding:0;list-style:none}rds-breadcrumb li{display:inline-flex;align-items:center;gap:.25rem}rds-breadcrumb li>rds-icon{--ds-icon-size: 1rem;color:var(--ds-text-muted)}rds-breadcrumb a{color:var(--ds-text-muted);text-decoration:underline;text-decoration-color:transparent;text-underline-offset:3px;border-radius:2px;transition:color var(--ds-duration-instant) var(--ds-ease-standard),text-decoration-color var(--ds-duration-short) var(--ds-ease-standard)}rds-breadcrumb a:hover{color:var(--ds-text-default);text-decoration-color:currentcolor}rds-breadcrumb a:focus-visible{outline:3px solid var(--ds-focus-ring-color);outline-offset:2px}rds-breadcrumb [aria-current=page]{color:var(--ds-text-default);font-weight:600;text-decoration:none;pointer-events:none}rds-breadcrumb .rds-bc-more{font:inherit;color:var(--ds-text-muted);background:none;border:0;padding:0 .25rem;border-radius:var(--ds-radius-xs);cursor:pointer;text-decoration:underline;text-underline-offset:3px}rds-breadcrumb .rds-bc-more:focus-visible{outline:3px solid var(--ds-focus-ring-color)}rds-breadcrumb li.rds-bc-hidden{display:none}@media(prefers-reduced-motion:reduce){rds-breadcrumb a{transition-duration:1ms}}rds-table{display:block;max-width:100%;overflow-x:auto;border-radius:var(--ds-radius-lg);box-shadow:inset 0 0 0 1px var(--ds-border-subtle);background:var(--ds-background-surface)}rds-table:focus-visible{outline:3px solid var(--ds-focus-ring-color);outline-offset:2px}rds-table table{width:100%;border-collapse:separate;border-spacing:0;font-size:.9375rem;line-height:1.375rem;color:var(--ds-text-default)}rds-table caption{caption-side:top;text-align:left;padding:1rem 1rem .5rem;font-family:var(--ds-font-display);font-size:1.125rem;font-weight:600}rds-table th,rds-table td{padding:.75rem 1rem;text-align:left;vertical-align:middle;border-bottom:1px solid var(--ds-border-subtle)}rds-table thead th{font-size:.8125rem;font-weight:700;color:var(--ds-text-muted);background:var(--ds-background-surface-variant);white-space:nowrap}rds-table[sticky]{max-height:var(--rds-table-max, 24rem)}rds-table[sticky] thead th{position:sticky;top:0;z-index:1}rds-table tbody tr:last-child>*{border-bottom:0}rds-table tfoot td,rds-table tfoot th{font-weight:700;border-top:1px solid var(--ds-border-strong);border-bottom:0}rds-table[striped] tbody tr:nth-child(2n)>*{background:color-mix(in srgb,var(--ds-background-surface-variant) 60%,transparent)}rds-table[hover] tbody tr{transition:background-color var(--ds-duration-instant) var(--ds-ease-standard)}rds-table[hover] tbody tr:hover>*{background:var(--ds-background-option-hover)}rds-table[bordered] th+th,rds-table[bordered] td+td,rds-table[bordered] th+td,rds-table[bordered] td+th{border-left:1px solid var(--ds-border-subtle)}rds-table[compact] th,rds-table[compact] td{padding:.375rem .75rem}rds-table .rds-num,rds-table [data-type=number]{text-align:right;font-variant-numeric:tabular-nums}rds-table tr[aria-selected=true]>*{background:var(--ds-background-option-selected)}rds-table .rds-sort{all:unset;display:inline-flex;align-items:center;gap:.25rem;cursor:pointer;border-radius:4px}rds-table .rds-sort:hover{color:var(--ds-text-default)}rds-table .rds-sort:focus-visible{outline:3px solid var(--ds-focus-ring-color);outline-offset:2px}rds-table .rds-sort rds-icon{--ds-icon-size: 1rem;opacity:.5;transition:transform var(--ds-duration-medium) var(--ds-ease-standard),opacity var(--ds-duration-instant) var(--ds-ease-standard)}rds-table th[aria-sort] .rds-sort rds-icon{opacity:1;color:var(--ds-text-action-tertiary)}rds-table th[aria-sort=descending] .rds-sort rds-icon{transform:rotate(180deg)}@media(prefers-reduced-motion:reduce){rds-table[hover] tbody tr,rds-table .rds-sort rds-icon{transition-duration:1ms}}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rotomeca/design-system",
3
- "version": "1.0.0",
3
+ "version": "1.0.1",
4
4
  "description": "Design system de Web Components (custom elements, Shadow DOM) en TypeScript + LESS, palette automnale, thèmes clair et sombre.",
5
5
  "keywords": [
6
6
  "design-system",
@@ -100,6 +100,8 @@
100
100
  "build:css:dist": "lessc src/core/styles/design-system.less dist/design-system.css",
101
101
  "build:css:out": "esbuild dist/design-system.css --minify --outfile=out/rotomeca-design-system.css",
102
102
  "dev": "pnpm run clean && pnpm run test && node scripts/dev.mjs",
103
- "build:icons": "node scripts/copy-icons.mjs"
103
+ "build:icons": "node scripts/copy-icons.mjs",
104
+ "docs:build": "node scripts/docs.mjs",
105
+ "docs:dev": "node scripts/docs.mjs --watch"
104
106
  }
105
107
  }
@@ -4,3 +4,14 @@
4
4
  background-color: var(--ds-body-background-color, @white-100);
5
5
  color: var(--ds-body-text-color, @ink-100);
6
6
  }
7
+
8
+ // Éléments pas encore définis : pas de flash de contenu non stylé.
9
+ @import './elements/undefined.less';
10
+
11
+ // Feuilles « light DOM » des composants : disponibles dès le CSS, avant l'exécution du JS
12
+ // (le JS les adopte aussi, en repli, via `adoptGlobalStyle`).
13
+ @import '../../components/organisms/header/header-global.less';
14
+ @import '../../components/organisms/footer/footer-global.less';
15
+ @import '../../components/organisms/sidenav/sidenav.less';
16
+ @import '../../components/molecules/breadcrumb/breadcrumb.less';
17
+ @import '../../components/organisms/table/table.less';
@@ -0,0 +1,57 @@
1
+ // Éléments pas encore définis (le JS n'a pas encore appelé `customElements.define`).
2
+ //
3
+ // Évite le « flash de contenu non stylé » : on réserve la place et on masque le contenu brut, sans
4
+ // animation ; l'élément apparaît d'un coup dès qu'il est défini. Si le JS ne se charge jamais
5
+ // (réseau, erreur), un délai de secours (2 s) rend le contenu visible malgré tout.
6
+
7
+ // Composants de structure : la boîte garde son rôle de bloc.
8
+ @rds-undefined-block: rds-header, rds-footer, rds-sidenav, rds-table, rds-tabs, rds-accordion, rds-card,
9
+ rds-alert, rds-callout, rds-quote, rds-fieldset, rds-breadcrumb, rds-pagination, rds-stepper,
10
+ rds-button-group, rds-progress, rds-placeholder, rds-picture, rds-divider;
11
+
12
+ // Composants en ligne ou de formulaire : la place est conservée, le contenu est masqué.
13
+ @rds-undefined-inline: rds-icon, rds-button, rds-primary-button, rds-secondary-button,
14
+ rds-tertiary-button, rds-danger-button, rds-icon-button, rds-link, rds-tag, rds-badge, rds-spinner,
15
+ rds-avatar, rds-date, rds-flexbox, rds-message, rds-input, rds-input-text, rds-input-number,
16
+ rds-input-date, rds-input-time, rds-input-datetime, rds-input-password, rds-input-search,
17
+ rds-input-email, rds-input-tel, rds-input-url, rds-input-color, rds-input-range, rds-textarea,
18
+ rds-select, rds-checkbox, rds-radio, rds-switch, rds-segmented-control, rds-input-file,
19
+ rds-tooltip, rds-helper, rds-menu, rds-theme-switcher, rds-skip-links, rds-back-to-top;
20
+
21
+ // Fermés par défaut : rien à réserver.
22
+ @rds-undefined-closed: rds-dialog, rds-drawer, rds-toast;
23
+
24
+ @keyframes rds-undefined-reveal {
25
+ to {
26
+ visibility: visible;
27
+ }
28
+ }
29
+
30
+ .rds-undefined-hide() {
31
+ visibility: hidden;
32
+ animation: rds-undefined-reveal 0s 2s forwards;
33
+ }
34
+
35
+ each(@rds-undefined-block, {
36
+ @{value}:not(:defined) {
37
+ display: block;
38
+ .rds-undefined-hide();
39
+ }
40
+ });
41
+
42
+ each(@rds-undefined-inline, {
43
+ @{value}:not(:defined) {
44
+ .rds-undefined-hide();
45
+ }
46
+ });
47
+
48
+ each(@rds-undefined-closed, {
49
+ @{value}:not(:defined) {
50
+ display: none;
51
+ }
52
+ });
53
+
54
+ // Hauteur de l'en-tête : évite le saut de mise en page quand il est défini.
55
+ rds-header:not(:defined) {
56
+ min-height: 4rem;
57
+ }