@accelint/design-toolkit 2.5.0 → 2.6.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.
Files changed (59) hide show
  1. package/dist/components/combobox-field/index.d.ts +18 -0
  2. package/dist/components/combobox-field/index.js +2 -0
  3. package/dist/components/combobox-field/index.js.map +1 -0
  4. package/dist/components/combobox-field/styles.d.ts +72 -0
  5. package/dist/components/combobox-field/styles.js +2 -0
  6. package/dist/components/combobox-field/styles.js.map +1 -0
  7. package/dist/components/combobox-field/types.d.ts +28 -0
  8. package/dist/components/hotkey/index.d.ts +25 -0
  9. package/dist/components/hotkey/index.js +2 -0
  10. package/dist/components/hotkey/index.js.map +1 -0
  11. package/dist/components/hotkey/styles.d.ts +53 -0
  12. package/dist/components/hotkey/styles.js +2 -0
  13. package/dist/components/hotkey/styles.js.map +1 -0
  14. package/dist/components/hotkey/types.d.ts +8 -0
  15. package/dist/components/hotkey/types.js +2 -0
  16. package/dist/components/hotkey/types.js.map +1 -0
  17. package/dist/components/input/index.js +1 -1
  18. package/dist/components/input/index.js.map +1 -1
  19. package/dist/components/input/styles.d.ts +2 -24
  20. package/dist/components/input/styles.js +1 -1
  21. package/dist/components/input/styles.js.map +1 -1
  22. package/dist/components/menu/index.js +1 -1
  23. package/dist/components/menu/index.js.map +1 -1
  24. package/dist/components/menu/styles.d.ts +9 -6
  25. package/dist/components/menu/styles.js +1 -1
  26. package/dist/components/menu/styles.js.map +1 -1
  27. package/dist/components/menu/types.d.ts +9 -2
  28. package/dist/components/query-builder/value-selector.js +1 -1
  29. package/dist/components/query-builder/value-selector.js.map +1 -1
  30. package/dist/components/select-field/index.d.ts +23 -0
  31. package/dist/components/select-field/index.js +2 -0
  32. package/dist/components/select-field/index.js.map +1 -0
  33. package/dist/components/select-field/styles.d.ts +60 -0
  34. package/dist/components/select-field/styles.js +2 -0
  35. package/dist/components/select-field/styles.js.map +1 -0
  36. package/dist/components/select-field/types.d.ts +26 -0
  37. package/dist/components/select-field/types.js +2 -0
  38. package/dist/components/select-field/types.js.map +1 -0
  39. package/dist/components/view-stack/index.d.ts +28 -0
  40. package/dist/components/view-stack/index.js +2 -0
  41. package/dist/components/view-stack/index.js.map +1 -0
  42. package/dist/components/view-stack/types.d.ts +58 -0
  43. package/dist/components/view-stack/types.js +2 -0
  44. package/dist/components/view-stack/types.js.map +1 -0
  45. package/dist/index.css +20 -0
  46. package/dist/index.d.ts +13 -6
  47. package/dist/index.js +1 -1
  48. package/dist/metafile-esm.json +1 -1
  49. package/dist/styles.css +178 -86
  50. package/package.json +11 -6
  51. package/dist/components/combobox/index.d.ts +0 -27
  52. package/dist/components/combobox/index.js +0 -2
  53. package/dist/components/combobox/index.js.map +0 -1
  54. package/dist/components/navigation-stack/index.d.ts +0 -20
  55. package/dist/components/navigation-stack/index.js +0 -2
  56. package/dist/components/navigation-stack/index.js.map +0 -1
  57. package/dist/components/navigation-stack/types.d.ts +0 -31
  58. /package/dist/components/{navigation-stack → combobox-field}/types.js +0 -0
  59. /package/dist/components/{navigation-stack → combobox-field}/types.js.map +0 -0
package/dist/styles.css CHANGED
@@ -406,9 +406,6 @@
406
406
  .top-\[var\(--classification-banner-height\)\] {
407
407
  top: var(--classification-banner-height);
408
408
  }
409
- .right-xs {
410
- right: var(--spacing-xs);
411
- }
412
409
  .left-1\/2 {
413
410
  left: calc(1/2 * 100%);
414
411
  }
@@ -514,9 +511,15 @@
514
511
  max-width: 96rem;
515
512
  }
516
513
  }
514
+ .m-xl {
515
+ margin: var(--spacing-xl);
516
+ }
517
517
  .m-xs {
518
518
  margin: var(--spacing-xs);
519
519
  }
520
+ .-mx-xs {
521
+ margin-inline: calc(var(--spacing-xs) * -1);
522
+ }
520
523
  .my-s {
521
524
  margin-block: var(--spacing-s);
522
525
  }
@@ -526,9 +529,6 @@
526
529
  .mt-l {
527
530
  margin-top: var(--spacing-l);
528
531
  }
529
- .mt-m {
530
- margin-top: var(--spacing-m);
531
- }
532
532
  .mt-oversized {
533
533
  margin-top: var(--spacing-oversized);
534
534
  }
@@ -550,6 +550,9 @@
550
550
  .mb-xs {
551
551
  margin-bottom: var(--spacing-xs);
552
552
  }
553
+ .-ml-s {
554
+ margin-left: calc(var(--spacing-s) * -1);
555
+ }
553
556
  .block {
554
557
  display: block;
555
558
  }
@@ -620,9 +623,6 @@
620
623
  .h-\[90px\] {
621
624
  height: 90px;
622
625
  }
623
- .h-\[300px\] {
624
- height: 300px;
625
- }
626
626
  .h-\[600px\] {
627
627
  height: 600px;
628
628
  }
@@ -641,6 +641,9 @@
641
641
  .h-m {
642
642
  height: var(--spacing-m);
643
643
  }
644
+ .h-oversized {
645
+ height: var(--spacing-oversized);
646
+ }
644
647
  .h-s {
645
648
  height: var(--spacing-s);
646
649
  }
@@ -665,12 +668,6 @@
665
668
  .min-h-\[1lh\] {
666
669
  min-height: 1lh;
667
670
  }
668
- .w-\(--trigger-width\) {
669
- width: var(--trigger-width);
670
- }
671
- .w-\(--trigger-width\) {
672
- width: var(--trigger-width);
673
- }
674
671
  .w-1\/2 {
675
672
  width: calc(1/2 * 100%);
676
673
  }
@@ -773,6 +770,9 @@
773
770
  .w-content {
774
771
  width: fit-content;
775
772
  }
773
+ .w-dvh {
774
+ width: 100dvh;
775
+ }
776
776
  .w-fit {
777
777
  width: fit-content;
778
778
  }
@@ -800,6 +800,9 @@
800
800
  .max-w-\[720px\] {
801
801
  max-width: 720px;
802
802
  }
803
+ .min-w-\(--trigger-width\) {
804
+ min-width: var(--trigger-width);
805
+ }
803
806
  .min-w-0 {
804
807
  min-width: var(--spacing-0);
805
808
  }
@@ -809,9 +812,15 @@
809
812
  .min-w-\[320px\] {
810
813
  min-width: 320px;
811
814
  }
815
+ .min-w-\[calc\(var\(--trigger-width\)\+\(var\(--spacing-s\)\*2\)\)\] {
816
+ min-width: calc(var(--trigger-width) + (var(--spacing-s) * 2));
817
+ }
812
818
  .min-w-sm {
813
819
  min-width: var(--container-sm);
814
820
  }
821
+ .min-w-xl {
822
+ min-width: var(--spacing-xl);
823
+ }
815
824
  .flex-1 {
816
825
  flex: 1;
817
826
  }
@@ -840,9 +849,6 @@
840
849
  --tw-translate-y: 50%;
841
850
  translate: var(--tw-translate-x) var(--tw-translate-y);
842
851
  }
843
- .rotate-180 {
844
- rotate: 180deg;
845
- }
846
852
  .transform {
847
853
  transform: var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,);
848
854
  }
@@ -1080,6 +1086,14 @@
1080
1086
  border-style: var(--tw-border-style);
1081
1087
  border-width: 2px;
1082
1088
  }
1089
+ .border-b-\[3px\] {
1090
+ border-bottom-style: var(--tw-border-style);
1091
+ border-bottom-width: 3px;
1092
+ }
1093
+ .border-dotted {
1094
+ --tw-border-style: dotted;
1095
+ border-style: dotted;
1096
+ }
1083
1097
  .border-\[\#E8178A\] {
1084
1098
  border-color: #E8178A;
1085
1099
  }
@@ -1125,6 +1139,9 @@
1125
1139
  .border-transparent {
1126
1140
  border-color: transparent;
1127
1141
  }
1142
+ .border-b-default-dark {
1143
+ border-bottom-color: var(--color-default-dark);
1144
+ }
1128
1145
  .bg-\[\#E8178A\]\/40 {
1129
1146
  background-color: color-mix(in oklab, #E8178A 40%, transparent);
1130
1147
  }
@@ -1278,9 +1295,6 @@
1278
1295
  .object-center {
1279
1296
  object-position: center;
1280
1297
  }
1281
- .p-0 {
1282
- padding: var(--spacing-0);
1283
- }
1284
1298
  .p-l {
1285
1299
  padding: var(--spacing-l);
1286
1300
  }
@@ -1293,9 +1307,15 @@
1293
1307
  .p-xl {
1294
1308
  padding: var(--spacing-xl);
1295
1309
  }
1310
+ .p-xs {
1311
+ padding: var(--spacing-xs);
1312
+ }
1296
1313
  .p-xxs {
1297
1314
  padding: var(--spacing-xxs);
1298
1315
  }
1316
+ .px-0 {
1317
+ padding-inline: var(--spacing-0);
1318
+ }
1299
1319
  .px-l {
1300
1320
  padding-inline: var(--spacing-l);
1301
1321
  }
@@ -1320,9 +1340,6 @@
1320
1340
  .pt-xs {
1321
1341
  padding-top: var(--spacing-xs);
1322
1342
  }
1323
- .pr-\[32px\] {
1324
- padding-right: 32px;
1325
- }
1326
1343
  .pr-\[calc\(var\(--room\)\+var\(--spacing-s\)\)\] {
1327
1344
  padding-right: calc(var(--room) + var(--spacing-s));
1328
1345
  }
@@ -1537,9 +1554,6 @@
1537
1554
  .text-default-light {
1538
1555
  color: var(--color-default-light);
1539
1556
  }
1540
- .text-disabled {
1541
- color: var(--color-disabled);
1542
- }
1543
1557
  .text-highlight {
1544
1558
  color: var(--color-highlight);
1545
1559
  }
@@ -1610,9 +1624,6 @@
1610
1624
  .outline-interactive {
1611
1625
  outline-color: var(--color-interactive);
1612
1626
  }
1613
- .outline-interactive-disabled {
1614
- outline-color: var(--color-interactive-disabled);
1615
- }
1616
1627
  .outline-normal {
1617
1628
  outline-color: var(--color-normal);
1618
1629
  }
@@ -1725,9 +1736,11 @@
1725
1736
  .text-shadow-2xs {
1726
1737
  text-shadow: 0px 1px 0px var(--tw-text-shadow-color, rgb(0 0 0 / 0.15));
1727
1738
  }
1728
- .group-not-focus-within\/input\:hidden {
1729
- &:is(:where(.group\/input):not(*:where([data-focus-within], :focus-within)) *) {
1730
- display: none;
1739
+ .group-not-empty\/input\:group-not-focus-within\/input\:invisible {
1740
+ &:is(:where(.group\/input):not(*:where([data-empty], :empty)) *) {
1741
+ &:is(:where(.group\/input):not(*:where([data-focus-within], :focus-within)) *) {
1742
+ visibility: hidden;
1743
+ }
1731
1744
  }
1732
1745
  }
1733
1746
  .group-not-has-\[\>_\[slot\=description\]\]\/menu-item\:row-span-full {
@@ -1735,6 +1748,16 @@
1735
1748
  grid-row: 1 / -1;
1736
1749
  }
1737
1750
  }
1751
+ .group-open\/combobox-field\:rotate-180 {
1752
+ &:is(:where(.group\/combobox-field):where([open], [data-open], :open) *) {
1753
+ rotate: 180deg;
1754
+ }
1755
+ }
1756
+ .group-open\/combobox-field\:transform {
1757
+ &:is(:where(.group\/combobox-field):where([open], [data-open], :open) *) {
1758
+ transform: var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,);
1759
+ }
1760
+ }
1738
1761
  .group-open\/drawer\:flex {
1739
1762
  &:is(:where(.group\/drawer):where([open], [data-open], :open) *) {
1740
1763
  display: flex;
@@ -1745,6 +1768,16 @@
1745
1768
  rotate: 180deg;
1746
1769
  }
1747
1770
  }
1771
+ .group-open\/select-field\:rotate-180 {
1772
+ &:is(:where(.group\/select-field):where([open], [data-open], :open) *) {
1773
+ rotate: 180deg;
1774
+ }
1775
+ }
1776
+ .group-empty\/input\:invisible {
1777
+ &:is(:where(.group\/input):where([data-empty], :empty) *) {
1778
+ visibility: hidden;
1779
+ }
1780
+ }
1748
1781
  .group-empty\/search-field\:invisible {
1749
1782
  &:is(:where(.group\/search-field):where([data-empty], :empty) *) {
1750
1783
  visibility: hidden;
@@ -1814,6 +1847,19 @@
1814
1847
  }
1815
1848
  }
1816
1849
  }
1850
+ .group-enabled\/combobox-field\:fg-default-light {
1851
+ &:is(:where(.group\/combobox-field):where(:not([disabled], [data-disabled]), :enabled) *) {
1852
+ color: var(--color-default-light);
1853
+ --icon-color: var(--color-default-light);
1854
+ }
1855
+ }
1856
+ .group-enabled\/combobox-field\:group-invalid\/combobox-field\:outline-serious {
1857
+ &:is(:where(.group\/combobox-field):where(:not([disabled], [data-disabled]), :enabled) *) {
1858
+ &:is(:where(.group\/combobox-field):where([invalid], [data-invalid], :invalid) *) {
1859
+ outline-color: var(--color-serious);
1860
+ }
1861
+ }
1862
+ }
1817
1863
  .group-enabled\/options-item\:fg-default-dark {
1818
1864
  &:is(:where(.group\/options-item):where(:not([disabled], [data-disabled]), :enabled) *) {
1819
1865
  color: var(--color-default-dark);
@@ -1921,6 +1967,17 @@
1921
1967
  }
1922
1968
  }
1923
1969
  }
1970
+ .group-disabled\/combobox-field\:fg-disabled {
1971
+ &:is(:where(.group\/combobox-field):where([disabled], [data-disabled], :disabled) *) {
1972
+ color: var(--color-disabled);
1973
+ --icon-color: var(--color-disabled);
1974
+ }
1975
+ }
1976
+ .group-disabled\/combobox-field\:outline-interactive-disabled {
1977
+ &:is(:where(.group\/combobox-field):where([disabled], [data-disabled], :disabled) *) {
1978
+ outline-color: var(--color-interactive-disabled);
1979
+ }
1980
+ }
1924
1981
  .group-disabled\/date-field\:fg-disabled {
1925
1982
  &:is(:where(.group\/date-field):where([disabled], [data-disabled], :disabled) *) {
1926
1983
  color: var(--color-disabled);
@@ -1959,6 +2016,12 @@
1959
2016
  visibility: hidden;
1960
2017
  }
1961
2018
  }
2019
+ .group-disabled\/select-field\:fg-disabled {
2020
+ &:is(:where(.group\/select-field):where([disabled], [data-disabled], :disabled) *) {
2021
+ color: var(--color-disabled);
2022
+ --icon-color: var(--color-disabled);
2023
+ }
2024
+ }
1962
2025
  .group-disabled\/switch\:bg-interactive-disabled {
1963
2026
  &:is(:where(.group\/switch):where([disabled], [data-disabled], :disabled) *) {
1964
2027
  background-color: var(--color-interactive-disabled);
@@ -2343,6 +2406,14 @@
2343
2406
  padding-bottom: var(--spacing-s);
2344
2407
  }
2345
2408
  }
2409
+ .group-size-medium\/combobox-field\:text-body-s {
2410
+ &:is(:where(.group\/combobox-field):where([data-size="medium"]) *) {
2411
+ font-size: var(--typography-body-s-size);
2412
+ font-weight: 400;
2413
+ letter-spacing: var(--typography-body-s-spacing);
2414
+ line-height: var(--typography-body-s-height);
2415
+ }
2416
+ }
2346
2417
  .group-size-medium\/input\:mr-xs {
2347
2418
  &:is(:where(.group\/input):where([data-size="medium"]) *) {
2348
2419
  margin-right: var(--spacing-xs);
@@ -2381,6 +2452,16 @@
2381
2452
  line-height: var(--typography-body-s-height);
2382
2453
  }
2383
2454
  }
2455
+ .group-size-medium\/select-field\:min-w-\[220px\] {
2456
+ &:is(:where(.group\/select-field):where([data-size="medium"]) *) {
2457
+ min-width: 220px;
2458
+ }
2459
+ }
2460
+ .group-size-medium\/select-field\:gap-s {
2461
+ &:is(:where(.group\/select-field):where([data-size="medium"]) *) {
2462
+ gap: var(--spacing-s);
2463
+ }
2464
+ }
2384
2465
  .group-size-medium\/text-area-field\:text-body-s {
2385
2466
  &:is(:where(.group\/text-area-field):where([data-size="medium"]) *) {
2386
2467
  font-size: var(--typography-body-s-size);
@@ -2389,6 +2470,14 @@
2389
2470
  line-height: var(--typography-body-s-height);
2390
2471
  }
2391
2472
  }
2473
+ .group-size-small\/combobox-field\:text-body-xs {
2474
+ &:is(:where(.group\/combobox-field):where([data-size="small"]) *) {
2475
+ font-size: var(--typography-body-xs-size);
2476
+ font-weight: 400;
2477
+ letter-spacing: var(--typography-body-xs-spacing);
2478
+ line-height: var(--typography-body-xs-height);
2479
+ }
2480
+ }
2392
2481
  .group-size-small\/input\:mr-xxs {
2393
2482
  &:is(:where(.group\/input):where([data-size="small"]) *) {
2394
2483
  margin-right: var(--spacing-xxs);
@@ -2432,6 +2521,11 @@
2432
2521
  padding-bottom: var(--spacing-xs);
2433
2522
  }
2434
2523
  }
2524
+ .group-size-small\/select-field\:gap-xs {
2525
+ &:is(:where(.group\/select-field):where([data-size="small"]) *) {
2526
+ gap: var(--spacing-xs);
2527
+ }
2528
+ }
2435
2529
  .group-size-small\/text-area-field\:text-body-xs {
2436
2530
  &:is(:where(.group\/text-area-field):where([data-size="small"]) *) {
2437
2531
  font-size: var(--typography-body-xs-size);
@@ -2685,9 +2779,12 @@
2685
2779
  color: var(--color-default-dark);
2686
2780
  }
2687
2781
  }
2688
- .placeholder\:text-disabled {
2689
- &::placeholder {
2690
- color: var(--color-disabled);
2782
+ .group-enabled\/combobox-field\:placeholder\:fg-default-dark {
2783
+ &:is(:where(.group\/combobox-field):where(:not([disabled], [data-disabled]), :enabled) *) {
2784
+ &::placeholder {
2785
+ color: var(--color-default-dark);
2786
+ --icon-color: var(--color-default-dark);
2787
+ }
2691
2788
  }
2692
2789
  }
2693
2790
  .group-disabled\/text-area-field\:placeholder\:text-disabled {
@@ -2854,34 +2951,6 @@
2854
2951
  outline-color: var(--color-serious);
2855
2952
  }
2856
2953
  }
2857
- .not-disabled\:read-only\:rounded-none {
2858
- &:not(*:where([disabled], [data-disabled], :disabled)) {
2859
- &:where([readonly], [data-readonly], :read-only) {
2860
- border-radius: 0;
2861
- }
2862
- }
2863
- }
2864
- .not-disabled\:read-only\:rounded-none {
2865
- &:not(*:where([disabled], [data-disabled], :disabled)) {
2866
- &:where([readonly], [data-readonly], :read-only) {
2867
- border-radius: var(--radius-none);
2868
- }
2869
- }
2870
- }
2871
- .not-disabled\:read-only\:p-0 {
2872
- &:not(*:where([disabled], [data-disabled], :disabled)) {
2873
- &:where([readonly], [data-readonly], :read-only) {
2874
- padding: var(--spacing-0);
2875
- }
2876
- }
2877
- }
2878
- .not-disabled\:read-only\:outline-transparent {
2879
- &:not(*:where([disabled], [data-disabled], :disabled)) {
2880
- &:where([readonly], [data-readonly], :read-only) {
2881
- outline-color: transparent;
2882
- }
2883
- }
2884
- }
2885
2954
  .empty\:hidden {
2886
2955
  &:where([data-empty], :empty) {
2887
2956
  display: none;
@@ -2910,6 +2979,13 @@
2910
2979
  }
2911
2980
  }
2912
2981
  }
2982
+ .group-enabled\/combobox-field\:focus-within\:outline-highlight {
2983
+ &:is(:where(.group\/combobox-field):where(:not([disabled], [data-disabled]), :enabled) *) {
2984
+ &:where([data-focus-within], :focus-within) {
2985
+ outline-color: var(--color-highlight);
2986
+ }
2987
+ }
2988
+ }
2913
2989
  .hover\:\!bg-transparent {
2914
2990
  &:where([data-hovered], :hover) {
2915
2991
  background-color: transparent !important;
@@ -2961,19 +3037,17 @@
2961
3037
  }
2962
3038
  }
2963
3039
  }
2964
- .group-enabled\/text-area-field\:hover\:outline-interactive-hover {
2965
- &:is(:where(.group\/text-area-field):where(:not([disabled], [data-disabled]), :enabled) *) {
3040
+ .group-enabled\/combobox-field\:hover\:outline-interactive-hover {
3041
+ &:is(:where(.group\/combobox-field):where(:not([disabled], [data-disabled]), :enabled) *) {
2966
3042
  &:where([data-hovered], :hover) {
2967
3043
  outline-color: var(--color-interactive-hover);
2968
3044
  }
2969
3045
  }
2970
3046
  }
2971
- .not-disabled\:read-only\:hover\:outline-transparent {
2972
- &:not(*:where([disabled], [data-disabled], :disabled)) {
2973
- &:where([readonly], [data-readonly], :read-only) {
2974
- &:where([data-hovered], :hover) {
2975
- outline-color: transparent;
2976
- }
3047
+ .group-enabled\/text-area-field\:hover\:outline-interactive-hover {
3048
+ &:is(:where(.group\/text-area-field):where(:not([disabled], [data-disabled]), :enabled) *) {
3049
+ &:where([data-hovered], :hover) {
3050
+ outline-color: var(--color-interactive-hover);
2977
3051
  }
2978
3052
  }
2979
3053
  }
@@ -3021,11 +3095,6 @@
3021
3095
  outline-width: 4px;
3022
3096
  }
3023
3097
  }
3024
- .focus\:outline-highlight {
3025
- &:where([data-focused], :focus) {
3026
- outline-color: var(--color-highlight);
3027
- }
3028
- }
3029
3098
  .focus\:outline-interactive-hover {
3030
3099
  &:where([data-focused], :focus) {
3031
3100
  outline-color: var(--color-interactive-hover);
@@ -3044,15 +3113,6 @@
3044
3113
  }
3045
3114
  }
3046
3115
  }
3047
- .not-disabled\:read-only\:focus\:outline-transparent {
3048
- &:not(*:where([disabled], [data-disabled], :disabled)) {
3049
- &:where([readonly], [data-readonly], :read-only) {
3050
- &:where([data-focused], :focus) {
3051
- outline-color: transparent;
3052
- }
3053
- }
3054
- }
3055
- }
3056
3116
  .enabled\:cursor-pointer {
3057
3117
  &:where(:not([disabled], [data-disabled]), :enabled) {
3058
3118
  cursor: pointer;
@@ -3145,6 +3205,13 @@
3145
3205
  }
3146
3206
  }
3147
3207
  }
3208
+ .group-invalid\/select-field\:enabled\:outline-serious {
3209
+ &:is(:where(.group\/select-field):where([invalid], [data-invalid], :invalid) *) {
3210
+ &:where(:not([disabled], [data-disabled]), :enabled) {
3211
+ outline-color: var(--color-serious);
3212
+ }
3213
+ }
3214
+ }
3148
3215
  .enabled\:group-hover\/input\:outline-interactive-hover {
3149
3216
  &:where(:not([disabled], [data-disabled]), :enabled) {
3150
3217
  &:is(:where(.group\/input):where([data-hovered], :hover) *) {
@@ -3159,6 +3226,13 @@
3159
3226
  }
3160
3227
  }
3161
3228
  }
3229
+ .group-focus\/select-field\:enabled\:outline-highlight-bold {
3230
+ &:is(:where(.group\/select-field):where([data-focused], :focus) *) {
3231
+ &:where(:not([disabled], [data-disabled]), :enabled) {
3232
+ outline-color: var(--color-highlight-bold);
3233
+ }
3234
+ }
3235
+ }
3162
3236
  .enabled\:hover\:bg-critical-hover {
3163
3237
  &:where(:not([disabled], [data-disabled]), :enabled) {
3164
3238
  &:where([data-hovered], :hover) {
@@ -3902,6 +3976,11 @@
3902
3976
  padding-block: var(--spacing-xs);
3903
3977
  }
3904
3978
  }
3979
+ .size-small\:py-xxs {
3980
+ &:where([data-size="small"]) {
3981
+ padding-block: var(--spacing-xxs);
3982
+ }
3983
+ }
3905
3984
  .size-small\:text-body-xs {
3906
3985
  &:where([data-size="small"]) {
3907
3986
  font-size: var(--typography-body-xs-size);
@@ -4583,6 +4662,19 @@ body {
4583
4662
  .hide-cancel::-webkit-search-cancel-button {
4584
4663
  display: none;
4585
4664
  }
4665
+ *::-webkit-scrollbar {
4666
+ width: var(--spacing-l);
4667
+ height: var(--spacing-l);
4668
+ }
4669
+ *::-webkit-scrollbar-track {
4670
+ background: var(--color-interactive);
4671
+ }
4672
+ *::-webkit-scrollbar-thumb {
4673
+ background-color: var(--color-interactive-hover-light);
4674
+ border-radius: var(--radius-large);
4675
+ border: 5px solid transparent;
4676
+ background-clip: padding-box;
4677
+ }
4586
4678
  .queryBuilder .rule-lines::before {
4587
4679
  content: '';
4588
4680
  width: 10px;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@accelint/design-toolkit",
3
- "version": "2.5.0",
3
+ "version": "2.6.0",
4
4
  "private": false,
5
5
  "license": "Apache-2.0",
6
6
  "repository": {
@@ -49,11 +49,14 @@
49
49
  }
50
50
  },
51
51
  "peerDependencies": {
52
- "@accelint/icons": "^2.0.2",
52
+ "@accelint/bus": "^0.1.2",
53
+ "@accelint/core": "^0.3.0",
54
+ "@accelint/icons": "^2.0.3",
53
55
  "@fontsource/roboto-flex": "^5.2.6",
54
56
  "@fontsource/roboto-mono": "^5.2.6",
55
57
  "@internationalized/date": "^3.8.2",
56
58
  "@radix-ui/react-avatar": "^1.1.10",
59
+ "@react-aria/interactions": "^3.25.3",
57
60
  "@react-aria/ssr": "^3.9.10",
58
61
  "@react-aria/utils": "^3.30.0",
59
62
  "@react-stately/color": "^3.9.0",
@@ -61,7 +64,6 @@
61
64
  "@react-stately/utils": "^3.10.8",
62
65
  "@react-types/overlays": "^3.9.0",
63
66
  "@react-types/shared": "^3.31.0",
64
- "@react-aria/interactions": "^3.25.3",
65
67
  "class-variance-authority": "^0.7.1",
66
68
  "client-only": "^0.0.1",
67
69
  "clsx": "^2.1.1",
@@ -73,6 +75,7 @@
73
75
  "tailwind-merge": "^3.3.1",
74
76
  "tailwind-variants": "^2.0.1",
75
77
  "tailwindcss": "^4.1.11",
78
+ "uuid": "^11.1.0",
76
79
  "zod": "^4.0.13"
77
80
  },
78
81
  "devDependencies": {
@@ -80,6 +83,7 @@
80
83
  "@fontsource/roboto-mono": "^5.2.6",
81
84
  "@internationalized/date": "^3.8.2",
82
85
  "@radix-ui/react-avatar": "^1.1.10",
86
+ "@react-aria/interactions": "^3.25.3",
83
87
  "@react-aria/ssr": "^3.9.10",
84
88
  "@react-aria/utils": "^3.30.0",
85
89
  "@react-stately/color": "^3.9.0",
@@ -103,7 +107,6 @@
103
107
  "@testing-library/react": "^16.3.0",
104
108
  "@testing-library/user-event": "^14.6.1",
105
109
  "@types/lodash": "^4.17.20",
106
- "@react-aria/interactions": "^3.25.3",
107
110
  "@types/node": "^24.1.0",
108
111
  "@types/react": "^19.1.9",
109
112
  "@types/react-dom": "^19.1.7",
@@ -126,13 +129,15 @@
126
129
  "tsup": "^8.5.0",
127
130
  "type-fest": "^4.41.0",
128
131
  "typescript": "^5.8.3",
132
+ "uuid": "^11.1.0",
129
133
  "vite": "^5.4.9",
130
134
  "vite-tsconfig-paths": "^5.1.4",
131
135
  "vitest": "^2.1.3",
132
136
  "zod": "^4.0.13",
133
137
  "@accelint/biome-config": "0.1.2",
134
- "@accelint/core": "0.2.2",
135
- "@accelint/icons": "2.0.2",
138
+ "@accelint/bus": "0.1.2",
139
+ "@accelint/core": "0.3.0",
140
+ "@accelint/icons": "2.0.3",
136
141
  "@accelint/typescript-config": "0.1.2",
137
142
  "@accelint/vitest-config": "0.1.3"
138
143
  },
@@ -1,27 +0,0 @@
1
- import * as react_jsx_runtime from 'react/jsx-runtime';
2
- import * as class_variance_authority_types from 'class-variance-authority/types';
3
- import { VariantProps } from 'class-variance-authority';
4
- import { ReactNode } from 'react';
5
- import { ComboBoxProps as ComboBoxProps$1, VirtualizerProps, ListLayoutOptions } from 'react-aria-components';
6
- import { OptionsDataItem } from '../options/types.js';
7
- import '../icon/types.js';
8
-
9
- declare const textFieldStyles: (props?: ({
10
- isDisabled?: boolean | null | undefined;
11
- isInvalid?: boolean | null | undefined;
12
- size?: "small" | "medium" | null | undefined;
13
- } & class_variance_authority_types.ClassProp) | undefined) => string;
14
- interface ComboBoxProps<T extends OptionsDataItem> extends Omit<VariantProps<typeof textFieldStyles>, 'isDisabled' | 'isInvalid' | 'isReadOnly'>, Omit<ComboBoxProps$1<T>, 'children'>, Pick<VirtualizerProps<ListLayoutOptions>, 'layoutOptions'> {
15
- className?: string;
16
- children: ReactNode | ((item: T) => ReactNode);
17
- description?: string;
18
- errorMessage?: string;
19
- label?: string;
20
- placeholder?: string;
21
- }
22
- declare function ComboBox<T extends OptionsDataItem>({ children, className, description, errorMessage, isDisabled, isInvalid, isReadOnly, label, placeholder, layoutOptions, size, ...props }: ComboBoxProps<T>): react_jsx_runtime.JSX.Element;
23
- declare namespace ComboBox {
24
- var displayName: string;
25
- }
26
-
27
- export { ComboBox, type ComboBoxProps };
@@ -1,2 +0,0 @@
1
- import {jsx,jsxs,Fragment}from'react/jsx-runtime';import'client-only';import {cn}from'./../../lib/utils.js';import {ChevronDown}from'@accelint/icons';import {cva}from'class-variance-authority';import {ComboBox,Button,Text,Popover,Virtualizer,ListLayout,Input}from'react-aria-components';import {Icon}from'../icon/index.js';import {Label}from'../label/index.js';import {Options}from'../options/index.js';const S=cva(["block w-full rounded-medium py-xs pr-[32px] pl-s font-display outline outline-interactive","not-disabled:read-only:rounded-none not-disabled:read-only:p-0 not-disabled:read-only:outline-transparent not-disabled:read-only:hover:outline-transparent not-disabled:read-only:focus:outline-transparent"],{variants:{isDisabled:{true:"text-disabled outline-interactive-disabled placeholder:text-disabled",false:"text-default-light placeholder:text-default-dark hover:outline-interactive-hover focus:outline-highlight"},isInvalid:{true:"outline-serious"},size:{medium:"text-body-s",small:"text-body-xs"}},compoundVariants:[{isDisabled:true,isInvalid:true,className:"outline-interactive-disabled"}],defaultVariants:{size:"medium"}}),y=({className:a,isReadOnly:d=false,size:s="medium",...r})=>jsx(Input,{...r,className:({isDisabled:e,isInvalid:o})=>cn(S({isDisabled:e,isInvalid:o,size:s,className:a}))});y.displayName="ComboBox.Input";function D({children:a,className:d,description:s,errorMessage:r,isDisabled:e,isInvalid:o,isReadOnly:i,label:p,placeholder:b,layoutOptions:h,size:m="medium",...u}){const c=m==="small",A=!(c||o)||e,g=o&&!e&&!i,P=!c&&p;return jsx(ComboBox,{...u,isDisabled:e,isInvalid:o,isReadOnly:i,className:"flex flex-col gap-xs",children:({isDisabled:l,isOpen:v})=>jsxs(Fragment,{children:[P&&jsx(Label,{className:"empty:hidden",isDisabled:l,isRequired:u.isRequired,children:p}),jsxs("div",{className:"relative flex items-center",children:[jsx(y,{className:d,isReadOnly:i,placeholder:b,size:m}),jsx(Button,{className:cn(["fg-default-light absolute right-xs transform",l&&"fg-disabled",v&&"rotate-180",i&&"hidden"]),children:jsx(Icon,{size:"small",children:jsx(ChevronDown,{})})})]}),A&&jsx(Text,{className:cn(["fg-default-dark text-body-xs empty:hidden",l&&"fg-disabled"]),slot:"description",children:s}),g&&jsx(Text,{className:"fg-serious text-body-xs empty:hidden",slot:"errorMessage",children:r}),jsx(Popover,{className:"w-(--trigger-width)",children:jsx(Virtualizer,{layout:ListLayout,layoutOptions:h,children:jsx(Options,{children:a})})})]})})}D.displayName="ComboBox";export{D as ComboBox};//# sourceMappingURL=index.js.map
2
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/components/combobox/index.tsx"],"names":["N","isReadOnly","size","jsx","t","L","isInvalid","cn","n","Input","ComboBox","errorMessage","isDisabled","layoutOptions","shouldShowDescription","isSmall","shouldShowError","label","AriaComboBox","props","B","shouldShowLabel","jsxs","f","placeholder","AriaButton","O","Icon","ChevronDown","I","x","AriaText","V","Options","C","children","R"],"mappings":"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","file":"index.js","sourcesContent":["/*\n * Copyright 2025 Hypergiant Galactic Systems Inc. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n'use client';\n\nimport 'client-only';\nimport { cn } from '@/lib/utils';\nimport { ChevronDown } from '@accelint/icons';\nimport { type VariantProps, cva } from 'class-variance-authority';\nimport type { ReactNode } from 'react';\nimport {\n Button as AriaButton,\n ComboBox as AriaComboBox,\n type ComboBoxProps as AriaComboBoxProps,\n Input as AriaInput,\n type InputProps as AriaInputProps,\n ListLayout as AriaListLayout,\n type ListLayoutOptions as AriaListLayoutOptions,\n Popover as AriaPopover,\n Text as AriaText,\n Virtualizer as AriaVirtualizer,\n type VirtualizerProps as AriaVirtualizerProps,\n} from 'react-aria-components';\nimport { Icon } from '../icon';\nimport { Label } from '../label';\nimport { Options } from '../options';\nimport type { OptionsDataItem } from '../options/types';\n\nconst textFieldStyles = cva(\n [\n 'block w-full rounded-medium py-xs pr-[32px] pl-s font-display outline outline-interactive',\n 'not-disabled:read-only:rounded-none not-disabled:read-only:p-0 not-disabled:read-only:outline-transparent not-disabled:read-only:hover:outline-transparent not-disabled:read-only:focus:outline-transparent',\n ],\n {\n variants: {\n isDisabled: {\n true: 'text-disabled outline-interactive-disabled placeholder:text-disabled',\n false:\n 'text-default-light placeholder:text-default-dark hover:outline-interactive-hover focus:outline-highlight',\n },\n isInvalid: {\n true: 'outline-serious',\n },\n size: {\n medium: 'text-body-s',\n small: 'text-body-xs',\n },\n },\n compoundVariants: [\n {\n isDisabled: true,\n isInvalid: true,\n className: 'outline-interactive-disabled',\n },\n ],\n defaultVariants: {\n size: 'medium',\n },\n },\n);\n\ninterface InputProps\n extends VariantProps<typeof textFieldStyles>,\n Omit<AriaInputProps, 'size'> {\n isReadOnly?: boolean;\n}\n\nconst Input = ({\n className,\n isReadOnly = false,\n size = 'medium',\n ...props\n}: InputProps) => {\n return (\n <AriaInput\n {...props}\n className={({ isDisabled, isInvalid }) =>\n cn(\n textFieldStyles({\n isDisabled,\n isInvalid,\n size,\n className,\n }),\n )\n }\n />\n );\n};\nInput.displayName = 'ComboBox.Input';\n\nexport interface ComboBoxProps<T extends OptionsDataItem>\n extends Omit<\n VariantProps<typeof textFieldStyles>,\n 'isDisabled' | 'isInvalid' | 'isReadOnly'\n >,\n Omit<AriaComboBoxProps<T>, 'children'>,\n Pick<AriaVirtualizerProps<AriaListLayoutOptions>, 'layoutOptions'> {\n className?: string;\n children: ReactNode | ((item: T) => ReactNode);\n description?: string;\n errorMessage?: string;\n label?: string;\n placeholder?: string;\n}\n\nexport function ComboBox<T extends OptionsDataItem>({\n children,\n className,\n description,\n errorMessage,\n isDisabled,\n isInvalid,\n isReadOnly,\n label,\n placeholder,\n layoutOptions,\n size = 'medium',\n ...props\n}: ComboBoxProps<T>) {\n const isSmall = size === 'small';\n const shouldShowDescription = !(isSmall || isInvalid) || isDisabled;\n const shouldShowError = isInvalid && !isDisabled && !isReadOnly;\n const shouldShowLabel = !isSmall && label;\n\n return (\n <AriaComboBox<T>\n {...props}\n isDisabled={isDisabled}\n isInvalid={isInvalid}\n isReadOnly={isReadOnly}\n className='flex flex-col gap-xs'\n >\n {({ isDisabled, isOpen }) => (\n <>\n {shouldShowLabel && (\n <Label\n className='empty:hidden'\n isDisabled={isDisabled}\n isRequired={props.isRequired}\n >\n {label}\n </Label>\n )}\n <div className='relative flex items-center'>\n <Input\n className={className}\n isReadOnly={isReadOnly}\n placeholder={placeholder}\n size={size}\n />\n <AriaButton\n className={cn([\n 'fg-default-light absolute right-xs transform',\n isDisabled && 'fg-disabled',\n isOpen && 'rotate-180',\n isReadOnly && 'hidden',\n ])}\n >\n <Icon size='small'>\n <ChevronDown />\n </Icon>\n </AriaButton>\n </div>\n {shouldShowDescription && (\n <AriaText\n className={cn([\n 'fg-default-dark text-body-xs empty:hidden',\n isDisabled && 'fg-disabled',\n ])}\n slot='description'\n >\n {description}\n </AriaText>\n )}\n {shouldShowError && (\n <AriaText\n className='fg-serious text-body-xs empty:hidden'\n slot='errorMessage'\n >\n {errorMessage}\n </AriaText>\n )}\n <AriaPopover className='w-(--trigger-width)'>\n <AriaVirtualizer\n layout={AriaListLayout}\n layoutOptions={layoutOptions}\n >\n <Options>{children}</Options>\n </AriaVirtualizer>\n </AriaPopover>\n </>\n )}\n </AriaComboBox>\n );\n}\nComboBox.displayName = 'ComboBox';\n"]}
@@ -1,20 +0,0 @@
1
- import * as react from 'react';
2
- import * as react_jsx_runtime from 'react/jsx-runtime';
3
- import { NavigationStackProps, NavigationStackViewProps, NavigationStackNavigateProps } from './types.js';
4
- import '@react-types/shared';
5
- import 'type-fest';
6
-
7
- declare const NavigationStack: {
8
- ({ children, defaultViewId, }: NavigationStackProps): react_jsx_runtime.JSX.Element;
9
- displayName: string;
10
- View: {
11
- ({ id, children }: NavigationStackViewProps): react.ReactNode;
12
- displayName: string;
13
- };
14
- Navigate: {
15
- ({ children, for: action, ...props }: NavigationStackNavigateProps): react_jsx_runtime.JSX.Element;
16
- displayName: string;
17
- };
18
- };
19
-
20
- export { NavigationStack };
@@ -1,2 +0,0 @@
1
- import {jsx}from'react/jsx-runtime';import'client-only';import {createContext,useState,useCallback,useMemo,useContext}from'react';import {PressResponder}from'@react-aria/interactions';import {Pressable}from'react-aria-components';const c=createContext({currentViewId:null,pushView:()=>{},popView:()=>{},clear:()=>{},canGoBack:false,viewStack:[]}),u=({id:i,children:t})=>useContext(c).currentViewId===i?t:null;u.displayName="NavigationStack.View";const S=({children:i,for:t,...a})=>{const e=useContext(c),o=useCallback(()=>{t==="back"?e.popView():t==="clear"?e.clear():e.pushView(t);},[t,e.popView,e.clear,e.pushView]);return jsx(PressResponder,{onPress:o,children:jsx(Pressable,{...a,children:i})})};S.displayName="NavigationStack.Navigate";const r=({children:i,defaultViewId:t})=>{const[a,e]=useState(t?[t]:[]),o=a[a.length-1]||null,v=a.length>1,l=useCallback(s=>{e(w=>[...w,s]);},[]),g=useCallback(()=>{e(s=>s.slice(0,-1));},[]),N=useCallback(()=>{e(t?[t]:[]);},[t]),V=useMemo(()=>({currentViewId:o,pushView:l,popView:g,clear:N,canGoBack:v,viewStack:a}),[o,v,a,l,g,N]);return jsx(c.Provider,{value:V,children:i})};r.displayName="NavigationStack",r.View=u,r.Navigate=S;export{r as NavigationStack};//# sourceMappingURL=index.js.map
2
- //# sourceMappingURL=index.js.map