@sentropic/design-system-vue 0.18.0 → 0.20.0

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/dist/styles.css CHANGED
@@ -10300,3 +10300,567 @@
10300
10300
  @media (prefers-reduced-motion: reduce) {
10301
10301
  .st-selectionChip__clear { transition: none; }
10302
10302
  }
10303
+
10304
+ /* ── LollipopChart ── */
10305
+ .st-lollipopChart {
10306
+ color: var(--st-semantic-text-secondary);
10307
+ display: block;
10308
+ font-family: inherit;
10309
+ position: relative;
10310
+ width: 100%;
10311
+ }
10312
+
10313
+ .st-lollipopChart svg {
10314
+ display: block;
10315
+ overflow: visible;
10316
+ }
10317
+
10318
+ .st-lollipopChart__visual {
10319
+ display: block;
10320
+ }
10321
+
10322
+ .st-lollipopChart__grid {
10323
+ stroke: var(--st-component-lollipopChart-gridStroke, var(--st-semantic-border-subtle));
10324
+ stroke-dasharray: 2 3;
10325
+ stroke-width: 1;
10326
+ opacity: 0.7;
10327
+ }
10328
+
10329
+ .st-lollipopChart__axis {
10330
+ stroke: var(--st-component-lollipopChart-axisStroke, var(--st-semantic-border-subtle));
10331
+ stroke-width: 1;
10332
+ }
10333
+
10334
+ .st-lollipopChart__tickLabel,
10335
+ .st-lollipopChart__categoryLabel {
10336
+ fill: var(--st-component-lollipopChart-labelColor, var(--st-semantic-text-secondary));
10337
+ font-size: 0.6875rem;
10338
+ }
10339
+
10340
+ .st-lollipopChart__valueLabel {
10341
+ font-size: 0.625rem;
10342
+ font-weight: 600;
10343
+ }
10344
+
10345
+ .st-lollipopChart__stem {
10346
+ stroke: var(--st-semantic-border-interactive, var(--st-semantic-border-subtle));
10347
+ stroke-width: 1.5;
10348
+ }
10349
+
10350
+ .st-lollipopChart__dot {
10351
+ cursor: pointer;
10352
+ transition: opacity var(--st-motion-fast, 120ms) var(--st-motion-easing, ease);
10353
+ }
10354
+
10355
+ .st-lollipopChart__dot:hover {
10356
+ opacity: 0.82;
10357
+ }
10358
+
10359
+ .st-lollipopChart__dot--category1 { fill: var(--st-semantic-data-category1); }
10360
+ .st-lollipopChart__dot--category2 { fill: var(--st-semantic-data-category2); }
10361
+ .st-lollipopChart__dot--category3 { fill: var(--st-semantic-data-category3); }
10362
+ .st-lollipopChart__dot--category4 { fill: var(--st-semantic-data-category4); }
10363
+ .st-lollipopChart__dot--category5 { fill: var(--st-semantic-data-category5); }
10364
+ .st-lollipopChart__dot--category6 { fill: var(--st-semantic-data-category6); }
10365
+ .st-lollipopChart__dot--category7 { fill: var(--st-semantic-data-category7); }
10366
+ .st-lollipopChart__dot--category8 { fill: var(--st-semantic-data-category8); }
10367
+
10368
+ .st-lollipopChart__tooltip {
10369
+ background: var(--st-component-lollipopChart-tooltipBackground, var(--st-semantic-surface-inverse));
10370
+ border-radius: var(--st-radius-sm, 0.25rem);
10371
+ color: var(--st-component-lollipopChart-tooltipText, var(--st-semantic-text-inverse));
10372
+ display: inline-flex;
10373
+ flex-direction: column;
10374
+ font-size: 0.75rem;
10375
+ gap: 0.125rem;
10376
+ line-height: 1.2;
10377
+ padding: 0.375rem 0.5rem;
10378
+ pointer-events: none;
10379
+ position: absolute;
10380
+ transform: translate(-50%, calc(-100% - 8px));
10381
+ white-space: nowrap;
10382
+ z-index: 1;
10383
+ }
10384
+
10385
+ .st-lollipopChart__tooltipLabel {
10386
+ font-weight: 600;
10387
+ }
10388
+
10389
+ .st-lollipopChart__tooltipValue {
10390
+ opacity: 0.85;
10391
+ }
10392
+
10393
+ @media (prefers-reduced-motion: reduce) {
10394
+ .st-lollipopChart__dot {
10395
+ transition: none;
10396
+ }
10397
+ }
10398
+
10399
+ /* ── ParetoChart ── */
10400
+ .st-paretoChart {
10401
+ color: var(--st-semantic-text-secondary);
10402
+ display: block;
10403
+ font-family: inherit;
10404
+ position: relative;
10405
+ width: 100%;
10406
+ }
10407
+
10408
+ .st-paretoChart svg {
10409
+ display: block;
10410
+ overflow: visible;
10411
+ }
10412
+
10413
+ .st-paretoChart__visual {
10414
+ display: block;
10415
+ }
10416
+
10417
+ .st-paretoChart__grid {
10418
+ stroke: var(--st-component-paretoChart-gridStroke, var(--st-semantic-border-subtle));
10419
+ stroke-dasharray: 2 3;
10420
+ stroke-width: 1;
10421
+ opacity: 0.7;
10422
+ }
10423
+
10424
+ .st-paretoChart__axis {
10425
+ stroke: var(--st-component-paretoChart-axisStroke, var(--st-semantic-border-subtle));
10426
+ stroke-width: 1;
10427
+ }
10428
+
10429
+ .st-paretoChart__tickLabel,
10430
+ .st-paretoChart__categoryLabel,
10431
+ .st-paretoChart__percentLabel {
10432
+ fill: var(--st-component-paretoChart-labelColor, var(--st-semantic-text-secondary));
10433
+ font-size: 0.6875rem;
10434
+ }
10435
+
10436
+ .st-paretoChart__bar {
10437
+ cursor: pointer;
10438
+ transition: opacity var(--st-motion-fast, 120ms) var(--st-motion-easing, ease);
10439
+ }
10440
+
10441
+ .st-paretoChart__bar:hover {
10442
+ opacity: 0.82;
10443
+ }
10444
+
10445
+ .st-paretoChart__bar--category1 { fill: var(--st-semantic-data-category1); }
10446
+ .st-paretoChart__bar--category2 { fill: var(--st-semantic-data-category2); }
10447
+ .st-paretoChart__bar--category3 { fill: var(--st-semantic-data-category3); }
10448
+ .st-paretoChart__bar--category4 { fill: var(--st-semantic-data-category4); }
10449
+ .st-paretoChart__bar--category5 { fill: var(--st-semantic-data-category5); }
10450
+ .st-paretoChart__bar--category6 { fill: var(--st-semantic-data-category6); }
10451
+ .st-paretoChart__bar--category7 { fill: var(--st-semantic-data-category7); }
10452
+ .st-paretoChart__bar--category8 { fill: var(--st-semantic-data-category8); }
10453
+
10454
+ .st-paretoChart__cumLine {
10455
+ stroke: var(--st-semantic-action-primary, var(--st-semantic-border-interactive));
10456
+ stroke-width: 2;
10457
+ }
10458
+
10459
+ .st-paretoChart__cumDot {
10460
+ cursor: pointer;
10461
+ fill: var(--st-semantic-action-primary, var(--st-semantic-border-interactive));
10462
+ transition: opacity var(--st-motion-fast, 120ms) var(--st-motion-easing, ease);
10463
+ }
10464
+
10465
+ .st-paretoChart__cumDot:hover {
10466
+ opacity: 0.82;
10467
+ }
10468
+
10469
+ .st-paretoChart__tooltip {
10470
+ background: var(--st-component-paretoChart-tooltipBackground, var(--st-semantic-surface-inverse));
10471
+ border-radius: var(--st-radius-sm, 0.25rem);
10472
+ color: var(--st-component-paretoChart-tooltipText, var(--st-semantic-text-inverse));
10473
+ display: inline-flex;
10474
+ flex-direction: column;
10475
+ font-size: 0.75rem;
10476
+ gap: 0.125rem;
10477
+ line-height: 1.2;
10478
+ padding: 0.375rem 0.5rem;
10479
+ pointer-events: none;
10480
+ position: absolute;
10481
+ transform: translate(-50%, calc(-100% - 8px));
10482
+ white-space: nowrap;
10483
+ z-index: 1;
10484
+ }
10485
+
10486
+ .st-paretoChart__tooltipLabel {
10487
+ font-weight: 600;
10488
+ }
10489
+
10490
+ .st-paretoChart__tooltipValue {
10491
+ opacity: 0.85;
10492
+ }
10493
+
10494
+ @media (prefers-reduced-motion: reduce) {
10495
+ .st-paretoChart__bar,
10496
+ .st-paretoChart__cumDot {
10497
+ transition: none;
10498
+ }
10499
+ }
10500
+
10501
+ /* --- Shell : AppHeader / LanguageToggle / IdentityMenu (calque sentropic) --- */
10502
+ .st-appHeader {
10503
+ background: var(--st-semantic-surface-default);
10504
+ border-bottom: 1px solid var(--st-semantic-border-subtle);
10505
+ color: var(--st-semantic-text-primary);
10506
+ font-family: var(--st-font-sans);
10507
+ width: 100%;
10508
+ }
10509
+
10510
+ .st-appHeader__bar {
10511
+ align-items: center;
10512
+ display: flex;
10513
+ gap: var(--st-spacing-4, 1rem);
10514
+ height: 3.5rem;
10515
+ justify-content: space-between;
10516
+ margin: 0 auto;
10517
+ max-width: 80rem;
10518
+ padding: 0 var(--st-spacing-4, 1rem);
10519
+ width: 100%;
10520
+ }
10521
+
10522
+ .st-appHeader__nav {
10523
+ align-items: center;
10524
+ display: flex;
10525
+ flex: 1 1 auto;
10526
+ flex-wrap: wrap;
10527
+ font-size: 0.875rem;
10528
+ font-weight: 500;
10529
+ gap: var(--st-spacing-4, 1rem);
10530
+ min-width: 0;
10531
+ }
10532
+
10533
+ .st-appHeader__burger {
10534
+ align-items: center;
10535
+ display: flex;
10536
+ flex: 1 1 auto;
10537
+ justify-content: flex-start;
10538
+ }
10539
+
10540
+ .st-appHeader__burgerButton {
10541
+ align-items: center;
10542
+ background: transparent;
10543
+ border: 0;
10544
+ border-radius: var(--st-radius-sm, 0.375rem);
10545
+ color: var(--st-semantic-text-primary);
10546
+ cursor: pointer;
10547
+ display: inline-flex;
10548
+ justify-content: center;
10549
+ padding: var(--st-spacing-2, 0.5rem);
10550
+ }
10551
+
10552
+ .st-appHeader__burgerButton:hover {
10553
+ background: var(--st-semantic-surface-subtle);
10554
+ }
10555
+
10556
+ .st-appHeader__burgerButton:focus-visible {
10557
+ box-shadow: 0 0 0 2px var(--st-semantic-border-interactive);
10558
+ outline: none;
10559
+ }
10560
+
10561
+ .st-appHeader__burgerIcon {
10562
+ display: block;
10563
+ }
10564
+
10565
+ .st-appHeader__logo {
10566
+ align-items: center;
10567
+ display: inline-flex;
10568
+ flex: 0 0 auto;
10569
+ }
10570
+
10571
+ .st-appHeader__actions {
10572
+ align-items: center;
10573
+ display: flex;
10574
+ flex: 0 0 auto;
10575
+ gap: var(--st-spacing-3, 0.75rem);
10576
+ }
10577
+
10578
+ .st-appHeader__scrim {
10579
+ background: transparent;
10580
+ border: 0;
10581
+ cursor: default;
10582
+ inset: 0;
10583
+ padding: 0;
10584
+ position: fixed;
10585
+ z-index: var(--st-zindex-overlay, 80);
10586
+ }
10587
+
10588
+ .st-appHeader__drawer {
10589
+ background: var(--st-semantic-surface-default);
10590
+ border: 1px solid var(--st-semantic-border-subtle);
10591
+ box-shadow: var(--st-shadow-medium, 0 8px 24px rgb(15 23 42 / 0.12));
10592
+ left: 0;
10593
+ max-height: 100vh;
10594
+ overflow-y: auto;
10595
+ position: fixed;
10596
+ top: 0;
10597
+ width: min(22rem, 85vw);
10598
+ z-index: calc(var(--st-zindex-overlay, 80) + 10);
10599
+ }
10600
+
10601
+ .st-languageToggle {
10602
+ width: 100%;
10603
+ }
10604
+
10605
+ .st-languageToggle__select {
10606
+ background: var(--st-semantic-surface-default);
10607
+ border: 1px solid var(--st-semantic-border-subtle);
10608
+ border-radius: var(--st-radius-md, 0.375rem);
10609
+ color: var(--st-semantic-text-primary);
10610
+ cursor: pointer;
10611
+ font: inherit;
10612
+ font-family: var(--st-font-sans);
10613
+ font-size: 0.875rem;
10614
+ padding: var(--st-spacing-1, 0.25rem) var(--st-spacing-2, 0.5rem);
10615
+ }
10616
+
10617
+ .st-languageToggle__select:focus-visible {
10618
+ border-color: var(--st-semantic-border-interactive);
10619
+ box-shadow: 0 0 0 2px var(--st-semantic-border-interactive);
10620
+ outline: none;
10621
+ }
10622
+
10623
+ .st-languageToggle__accordionTrigger {
10624
+ align-items: center;
10625
+ background: transparent;
10626
+ border: 0;
10627
+ border-radius: var(--st-radius-sm, 0.375rem);
10628
+ color: var(--st-semantic-text-primary);
10629
+ cursor: pointer;
10630
+ display: flex;
10631
+ font: inherit;
10632
+ font-family: var(--st-font-sans);
10633
+ font-size: 0.875rem;
10634
+ font-weight: 500;
10635
+ justify-content: space-between;
10636
+ padding: var(--st-spacing-2, 0.5rem) var(--st-spacing-3, 0.75rem);
10637
+ width: 100%;
10638
+ }
10639
+
10640
+ .st-languageToggle__accordionTrigger:hover {
10641
+ background: var(--st-semantic-surface-subtle);
10642
+ }
10643
+
10644
+ .st-languageToggle__accordionTrigger:focus-visible {
10645
+ box-shadow: 0 0 0 2px var(--st-semantic-border-interactive);
10646
+ outline: none;
10647
+ }
10648
+
10649
+ .st-languageToggle__chevron {
10650
+ color: var(--st-semantic-text-secondary);
10651
+ transition: transform var(--st-motion-fast, 120ms) var(--st-motion-easing, ease);
10652
+ }
10653
+
10654
+ .st-languageToggle__chevron--open {
10655
+ transform: rotate(180deg);
10656
+ }
10657
+
10658
+ .st-languageToggle__accordionPanel {
10659
+ display: grid;
10660
+ gap: var(--st-spacing-1, 0.25rem);
10661
+ padding: var(--st-spacing-1, 0.25rem) var(--st-spacing-3, 0.75rem) var(--st-spacing-2, 0.5rem);
10662
+ }
10663
+
10664
+ .st-languageToggle__option {
10665
+ background: transparent;
10666
+ border: 0;
10667
+ border-radius: var(--st-radius-sm, 0.375rem);
10668
+ color: var(--st-semantic-text-secondary);
10669
+ cursor: pointer;
10670
+ font: inherit;
10671
+ font-family: var(--st-font-sans);
10672
+ font-size: 0.875rem;
10673
+ font-weight: 500;
10674
+ padding: var(--st-spacing-2, 0.5rem) var(--st-spacing-3, 0.75rem);
10675
+ text-align: left;
10676
+ width: 100%;
10677
+ }
10678
+
10679
+ .st-languageToggle__option:hover {
10680
+ background: var(--st-semantic-surface-subtle);
10681
+ color: var(--st-semantic-text-primary);
10682
+ }
10683
+
10684
+ .st-languageToggle__option--active {
10685
+ background: var(--st-semantic-surface-subtle);
10686
+ color: var(--st-semantic-text-primary);
10687
+ }
10688
+
10689
+ .st-languageToggle__option:focus-visible {
10690
+ box-shadow: 0 0 0 2px var(--st-semantic-border-interactive);
10691
+ outline: none;
10692
+ }
10693
+
10694
+ .st-identityMenu {
10695
+ font-family: var(--st-font-sans);
10696
+ position: relative;
10697
+ }
10698
+
10699
+ .st-identityMenu--accordion {
10700
+ width: 100%;
10701
+ }
10702
+
10703
+ .st-identityMenu__trigger {
10704
+ align-items: center;
10705
+ background: transparent;
10706
+ border: 0;
10707
+ border-radius: var(--st-radius-sm, 0.375rem);
10708
+ color: var(--st-semantic-text-primary);
10709
+ cursor: pointer;
10710
+ display: inline-flex;
10711
+ font: inherit;
10712
+ font-family: var(--st-font-sans);
10713
+ font-size: 0.875rem;
10714
+ font-weight: 500;
10715
+ gap: var(--st-spacing-2, 0.5rem);
10716
+ padding: var(--st-spacing-1, 0.25rem) var(--st-spacing-3, 0.75rem);
10717
+ }
10718
+
10719
+ .st-identityMenu--accordion .st-identityMenu__trigger {
10720
+ padding: var(--st-spacing-2, 0.5rem) var(--st-spacing-3, 0.75rem);
10721
+ width: 100%;
10722
+ }
10723
+
10724
+ .st-identityMenu__trigger:hover {
10725
+ background: var(--st-semantic-surface-subtle);
10726
+ }
10727
+
10728
+ .st-identityMenu__trigger:focus-visible {
10729
+ box-shadow: 0 0 0 2px var(--st-semantic-border-interactive);
10730
+ outline: none;
10731
+ }
10732
+
10733
+ .st-identityMenu__avatar {
10734
+ align-items: center;
10735
+ background: var(--st-semantic-action-primary);
10736
+ border-radius: var(--st-radius-pill, 9999px);
10737
+ color: var(--st-semantic-action-primaryText);
10738
+ display: inline-flex;
10739
+ flex: 0 0 auto;
10740
+ font-weight: 500;
10741
+ height: 2rem;
10742
+ justify-content: center;
10743
+ width: 2rem;
10744
+ }
10745
+
10746
+ .st-identityMenu__meta {
10747
+ display: grid;
10748
+ gap: 0.05rem;
10749
+ min-width: 0;
10750
+ text-align: left;
10751
+ }
10752
+
10753
+ .st-identityMenu--accordion .st-identityMenu__meta {
10754
+ flex: 1 1 auto;
10755
+ }
10756
+
10757
+ .st-identityMenu__name {
10758
+ color: var(--st-semantic-text-primary);
10759
+ overflow: hidden;
10760
+ text-overflow: ellipsis;
10761
+ white-space: nowrap;
10762
+ }
10763
+
10764
+ .st-identityMenu__email {
10765
+ color: var(--st-semantic-text-secondary);
10766
+ font-size: 0.75rem;
10767
+ overflow: hidden;
10768
+ text-overflow: ellipsis;
10769
+ white-space: nowrap;
10770
+ }
10771
+
10772
+ .st-identityMenu__chevron {
10773
+ color: var(--st-semantic-text-secondary);
10774
+ flex: 0 0 auto;
10775
+ transition: transform var(--st-motion-fast, 120ms) var(--st-motion-easing, ease);
10776
+ }
10777
+
10778
+ .st-identityMenu__chevron--open {
10779
+ transform: rotate(180deg);
10780
+ }
10781
+
10782
+ .st-identityMenu__menu {
10783
+ background: var(--st-semantic-surface-raised);
10784
+ border: 1px solid var(--st-semantic-border-subtle);
10785
+ border-radius: var(--st-radius-md, 0.375rem);
10786
+ box-shadow: var(--st-shadow-medium, 0 8px 24px rgb(15 23 42 / 0.12));
10787
+ display: grid;
10788
+ margin-top: var(--st-spacing-2, 0.5rem);
10789
+ min-width: 12rem;
10790
+ padding: var(--st-spacing-1, 0.25rem);
10791
+ position: absolute;
10792
+ right: 0;
10793
+ top: 100%;
10794
+ z-index: var(--st-zindex-overlay, 80);
10795
+ }
10796
+
10797
+ .st-identityMenu--accordion .st-identityMenu__menu {
10798
+ box-shadow: none;
10799
+ margin-top: var(--st-spacing-1, 0.25rem);
10800
+ position: static;
10801
+ width: 100%;
10802
+ }
10803
+
10804
+ .st-identityMenu__item {
10805
+ background: transparent;
10806
+ border: 0;
10807
+ border-radius: var(--st-radius-sm, 0.375rem);
10808
+ color: var(--st-semantic-text-primary);
10809
+ cursor: pointer;
10810
+ display: block;
10811
+ font: inherit;
10812
+ font-family: var(--st-font-sans);
10813
+ font-size: 0.875rem;
10814
+ font-weight: 500;
10815
+ padding: var(--st-spacing-2, 0.5rem) var(--st-spacing-3, 0.75rem);
10816
+ text-align: left;
10817
+ text-decoration: none;
10818
+ width: 100%;
10819
+ }
10820
+
10821
+ .st-identityMenu__item:hover {
10822
+ background: var(--st-semantic-surface-subtle);
10823
+ }
10824
+
10825
+ .st-identityMenu__item:focus-visible {
10826
+ box-shadow: 0 0 0 2px var(--st-semantic-border-interactive);
10827
+ outline: none;
10828
+ }
10829
+
10830
+ .st-identityMenu__item--danger {
10831
+ color: var(--st-semantic-action-danger);
10832
+ }
10833
+
10834
+ .st-identityMenu__divider {
10835
+ background: var(--st-semantic-border-subtle);
10836
+ height: 1px;
10837
+ margin: var(--st-spacing-1, 0.25rem) 0;
10838
+ }
10839
+
10840
+ .st-identityMenu__login {
10841
+ background: var(--st-semantic-action-primary);
10842
+ border: 0;
10843
+ border-radius: var(--st-radius-md, 0.375rem);
10844
+ color: var(--st-semantic-action-primaryText);
10845
+ cursor: pointer;
10846
+ font: inherit;
10847
+ font-family: var(--st-font-sans);
10848
+ font-size: 0.875rem;
10849
+ padding: var(--st-spacing-1, 0.25rem) var(--st-spacing-3, 0.75rem);
10850
+ }
10851
+
10852
+ .st-identityMenu__login--accordion {
10853
+ display: block;
10854
+ padding: var(--st-spacing-2, 0.5rem) var(--st-spacing-3, 0.75rem);
10855
+ text-align: center;
10856
+ width: 100%;
10857
+ }
10858
+
10859
+ .st-identityMenu__login:hover {
10860
+ background: var(--st-semantic-action-primaryHover);
10861
+ }
10862
+
10863
+ .st-identityMenu__login:focus-visible {
10864
+ box-shadow: 0 0 0 2px var(--st-semantic-border-interactive);
10865
+ outline: none;
10866
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sentropic/design-system-vue",
3
- "version": "0.18.0",
3
+ "version": "0.20.0",
4
4
  "description": "Vue 3 components for the Sentropic design system.",
5
5
  "type": "module",
6
6
  "publishConfig": {
@@ -32,7 +32,7 @@
32
32
  "test": "vitest run src"
33
33
  },
34
34
  "dependencies": {
35
- "@sentropic/design-system-themes": "0.10.3"
35
+ "@sentropic/design-system-themes": "0.11.0"
36
36
  },
37
37
  "peerDependencies": {
38
38
  "vue": "^3"