@salt-ds/lab 1.0.0-alpha.34 → 1.0.0-alpha.36

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 (123) hide show
  1. package/css/salt-lab.css +253 -192
  2. package/dist-cjs/combo-box-next/ComboBoxNext.css.js +6 -0
  3. package/dist-cjs/combo-box-next/ComboBoxNext.css.js.map +1 -0
  4. package/dist-cjs/combo-box-next/ComboBoxNext.js +31 -3
  5. package/dist-cjs/combo-box-next/ComboBoxNext.js.map +1 -1
  6. package/dist-cjs/dropdown-next/DropdownNext.js +1 -1
  7. package/dist-cjs/dropdown-next/DropdownNext.js.map +1 -1
  8. package/dist-cjs/index.js +0 -14
  9. package/dist-cjs/index.js.map +1 -1
  10. package/dist-cjs/option/Option.css.js +1 -1
  11. package/dist-cjs/option/OptionList.css.js +1 -1
  12. package/dist-cjs/overlay/Overlay.css.js +1 -1
  13. package/dist-cjs/overlay/Overlay.js +1 -7
  14. package/dist-cjs/overlay/Overlay.js.map +1 -1
  15. package/dist-cjs/overlay/OverlayPanel.js +18 -24
  16. package/dist-cjs/overlay/OverlayPanel.js.map +1 -1
  17. package/dist-cjs/overlay/OverlayPanelBase.js +2 -4
  18. package/dist-cjs/overlay/OverlayPanelBase.js.map +1 -1
  19. package/dist-cjs/pill-input/PillInput.css.js +6 -0
  20. package/dist-cjs/pill-input/PillInput.css.js.map +1 -0
  21. package/dist-cjs/pill-input/PillInput.js +256 -0
  22. package/dist-cjs/pill-input/PillInput.js.map +1 -0
  23. package/dist-cjs/pill-input/useTruncatePills.js +85 -0
  24. package/dist-cjs/pill-input/useTruncatePills.js.map +1 -0
  25. package/dist-cjs/tabs/Tab.js +1 -1
  26. package/dist-cjs/tabs/Tab.js.map +1 -1
  27. package/dist-cjs/tabs-next/TabNextContext.js.map +1 -1
  28. package/dist-cjs/tabs-next/TabstripNext.css.js +1 -1
  29. package/dist-cjs/tabs-next/TabstripNext.js +23 -21
  30. package/dist-cjs/tabs-next/TabstripNext.js.map +1 -1
  31. package/dist-cjs/utils/useValueEffect.js +40 -0
  32. package/dist-cjs/utils/useValueEffect.js.map +1 -0
  33. package/dist-es/combo-box-next/ComboBoxNext.css.js +4 -0
  34. package/dist-es/combo-box-next/ComboBoxNext.css.js.map +1 -0
  35. package/dist-es/combo-box-next/ComboBoxNext.js +32 -4
  36. package/dist-es/combo-box-next/ComboBoxNext.js.map +1 -1
  37. package/dist-es/dropdown-next/DropdownNext.js +1 -1
  38. package/dist-es/dropdown-next/DropdownNext.js.map +1 -1
  39. package/dist-es/index.js +0 -6
  40. package/dist-es/index.js.map +1 -1
  41. package/dist-es/option/Option.css.js +1 -1
  42. package/dist-es/option/OptionList.css.js +1 -1
  43. package/dist-es/overlay/Overlay.css.js +1 -1
  44. package/dist-es/overlay/Overlay.js +1 -7
  45. package/dist-es/overlay/Overlay.js.map +1 -1
  46. package/dist-es/overlay/OverlayPanel.js +19 -25
  47. package/dist-es/overlay/OverlayPanel.js.map +1 -1
  48. package/dist-es/overlay/OverlayPanelBase.js +2 -4
  49. package/dist-es/overlay/OverlayPanelBase.js.map +1 -1
  50. package/dist-es/pill-input/PillInput.css.js +4 -0
  51. package/dist-es/pill-input/PillInput.css.js.map +1 -0
  52. package/dist-es/pill-input/PillInput.js +252 -0
  53. package/dist-es/pill-input/PillInput.js.map +1 -0
  54. package/dist-es/pill-input/useTruncatePills.js +81 -0
  55. package/dist-es/pill-input/useTruncatePills.js.map +1 -0
  56. package/dist-es/tabs/Tab.js +1 -1
  57. package/dist-es/tabs/Tab.js.map +1 -1
  58. package/dist-es/tabs-next/TabNextContext.js.map +1 -1
  59. package/dist-es/tabs-next/TabstripNext.css.js +1 -1
  60. package/dist-es/tabs-next/TabstripNext.js +23 -21
  61. package/dist-es/tabs-next/TabstripNext.js.map +1 -1
  62. package/dist-es/utils/useValueEffect.js +36 -0
  63. package/dist-es/utils/useValueEffect.js.map +1 -0
  64. package/dist-types/combo-box-next/ComboBoxNext.d.ts +3 -3
  65. package/dist-types/index.d.ts +0 -1
  66. package/dist-types/pill-input/PillInput.d.ts +48 -0
  67. package/dist-types/pill-input/index.d.ts +1 -0
  68. package/dist-types/pill-input/useTruncatePills.d.ts +8 -0
  69. package/dist-types/tabs/drag-drop/drag-utils.d.ts +6 -6
  70. package/dist-types/tabs-next/TabNextContext.d.ts +2 -2
  71. package/dist-types/utils/useValueEffect.d.ts +4 -0
  72. package/package.json +2 -2
  73. package/dist-cjs/dialog/Dialog.css.js +0 -6
  74. package/dist-cjs/dialog/Dialog.css.js.map +0 -1
  75. package/dist-cjs/dialog/Dialog.js +0 -115
  76. package/dist-cjs/dialog/Dialog.js.map +0 -1
  77. package/dist-cjs/dialog/DialogActions.css.js +0 -6
  78. package/dist-cjs/dialog/DialogActions.css.js.map +0 -1
  79. package/dist-cjs/dialog/DialogActions.js +0 -33
  80. package/dist-cjs/dialog/DialogActions.js.map +0 -1
  81. package/dist-cjs/dialog/DialogCloseButton.css.js +0 -6
  82. package/dist-cjs/dialog/DialogCloseButton.css.js.map +0 -1
  83. package/dist-cjs/dialog/DialogCloseButton.js +0 -39
  84. package/dist-cjs/dialog/DialogCloseButton.js.map +0 -1
  85. package/dist-cjs/dialog/DialogContent.css.js +0 -6
  86. package/dist-cjs/dialog/DialogContent.css.js.map +0 -1
  87. package/dist-cjs/dialog/DialogContent.js +0 -45
  88. package/dist-cjs/dialog/DialogContent.js.map +0 -1
  89. package/dist-cjs/dialog/DialogContext.js +0 -17
  90. package/dist-cjs/dialog/DialogContext.js.map +0 -1
  91. package/dist-cjs/dialog/DialogHeader.css.js +0 -6
  92. package/dist-cjs/dialog/DialogHeader.css.js.map +0 -1
  93. package/dist-cjs/dialog/DialogHeader.js +0 -67
  94. package/dist-cjs/dialog/DialogHeader.js.map +0 -1
  95. package/dist-es/dialog/Dialog.css.js +0 -4
  96. package/dist-es/dialog/Dialog.css.js.map +0 -1
  97. package/dist-es/dialog/Dialog.js +0 -110
  98. package/dist-es/dialog/Dialog.js.map +0 -1
  99. package/dist-es/dialog/DialogActions.css.js +0 -4
  100. package/dist-es/dialog/DialogActions.css.js.map +0 -1
  101. package/dist-es/dialog/DialogActions.js +0 -29
  102. package/dist-es/dialog/DialogActions.js.map +0 -1
  103. package/dist-es/dialog/DialogCloseButton.css.js +0 -4
  104. package/dist-es/dialog/DialogCloseButton.css.js.map +0 -1
  105. package/dist-es/dialog/DialogCloseButton.js +0 -31
  106. package/dist-es/dialog/DialogCloseButton.js.map +0 -1
  107. package/dist-es/dialog/DialogContent.css.js +0 -4
  108. package/dist-es/dialog/DialogContent.css.js.map +0 -1
  109. package/dist-es/dialog/DialogContent.js +0 -41
  110. package/dist-es/dialog/DialogContent.js.map +0 -1
  111. package/dist-es/dialog/DialogContext.js +0 -12
  112. package/dist-es/dialog/DialogContext.js.map +0 -1
  113. package/dist-es/dialog/DialogHeader.css.js +0 -4
  114. package/dist-es/dialog/DialogHeader.css.js.map +0 -1
  115. package/dist-es/dialog/DialogHeader.js +0 -59
  116. package/dist-es/dialog/DialogHeader.js.map +0 -1
  117. package/dist-types/dialog/Dialog.d.ts +0 -46
  118. package/dist-types/dialog/DialogActions.d.ts +0 -8
  119. package/dist-types/dialog/DialogCloseButton.d.ts +0 -2
  120. package/dist-types/dialog/DialogContent.d.ts +0 -8
  121. package/dist-types/dialog/DialogContext.d.ts +0 -8
  122. package/dist-types/dialog/DialogHeader.d.ts +0 -22
  123. package/dist-types/dialog/index.d.ts +0 -6
package/css/salt-lab.css CHANGED
@@ -567,6 +567,11 @@
567
567
  z-index: calc(var(--salt-zIndex-flyover) - 1);
568
568
  }
569
569
 
570
+ /* src/combo-box-next/ComboBoxNext.css */
571
+ .saltComboBoxNext-focused {
572
+ outline: var(--salt-focused-outline);
573
+ }
574
+
570
575
  /* src/contact-details/ContactDetails.css */
571
576
  .salt-density-touch {
572
577
  --contactDetails-default-primary-fontSize: 30px;
@@ -851,183 +856,6 @@
851
856
  transform: translateY(var(--deckLayout-transform-value));
852
857
  }
853
858
 
854
- /* src/dialog/Dialog.css */
855
- .saltDialog {
856
- position: fixed;
857
- left: 0;
858
- right: 0;
859
- top: 0;
860
- bottom: 0;
861
- margin: auto;
862
- display: flex;
863
- flex-direction: column;
864
- padding-top: var(--salt-spacing-300);
865
- padding-bottom: var(--salt-spacing-300);
866
- background: var(--salt-container-primary-background);
867
- box-shadow: var(--salt-overlayable-shadow-modal);
868
- overflow-y: auto;
869
- z-index: var(--salt-zIndex-drawer);
870
- height: min-content;
871
- border: var(--salt-container-borderStyle) var(--salt-separable-tertiary-borderColor) var(--salt-size-border);
872
- box-sizing: border-box;
873
- border-radius: var(--salt-palette-corner, 0);
874
- }
875
- .saltDialog-info {
876
- border-color: var(--salt-status-info-borderColor);
877
- }
878
- .saltDialog-error {
879
- border-color: var(--salt-status-error-borderColor);
880
- }
881
- .saltDialog-warning {
882
- border-color: var(--salt-status-warning-borderColor);
883
- }
884
- .saltDialog-success {
885
- border-color: var(--salt-status-success-borderColor);
886
- }
887
- .saltDialog.saltDialog-enterAnimation {
888
- animation: var(--salt-animation-fade-in-center);
889
- }
890
- .saltDialog.saltDialog-exitAnimation {
891
- animation: var(--salt-animation-fade-out-back);
892
- }
893
- .saltDialog-small-xs {
894
- width: 100%;
895
- max-height: 48%;
896
- }
897
- .saltDialog-small-sm {
898
- width: 56%;
899
- max-height: 48%;
900
- }
901
- .saltDialog-small-md {
902
- width: 36%;
903
- max-height: 48%;
904
- }
905
- .saltDialog-small-lg {
906
- width: 24%;
907
- max-height: 48%;
908
- }
909
- .saltDialog-small-xl {
910
- width: 24%;
911
- max-height: 48%;
912
- }
913
- .saltDialog-medium-xs {
914
- width: 100%;
915
- max-height: 72%;
916
- }
917
- .saltDialog-medium-sm {
918
- width: 84%;
919
- max-height: 72%;
920
- }
921
- .saltDialog-medium-md {
922
- width: 68%;
923
- max-height: 72%;
924
- }
925
- .saltDialog-medium-lg {
926
- width: 48%;
927
- max-height: 72%;
928
- }
929
- .saltDialog-medium-xl {
930
- width: 48%;
931
- max-height: 72%;
932
- }
933
- .saltDialog-large-xs {
934
- width: 100%;
935
- max-height: 84%;
936
- }
937
- .saltDialog-large-sm {
938
- width: 96%;
939
- max-height: 84%;
940
- }
941
- .saltDialog-large-md {
942
- width: 84%;
943
- max-height: 84%;
944
- }
945
- .saltDialog-large-lg {
946
- width: 72%;
947
- max-height: 84%;
948
- }
949
- .saltDialog-large-xl {
950
- width: 72%;
951
- max-height: 84%;
952
- }
953
-
954
- /* src/dialog/DialogActions.css */
955
- .saltDialogActions {
956
- padding: var(--salt-spacing-300);
957
- padding-bottom: 0;
958
- display: flex;
959
- justify-content: flex-end;
960
- gap: var(--salt-spacing-100);
961
- }
962
-
963
- /* src/dialog/DialogCloseButton.css */
964
- .saltButton.saltDialogCloseButton {
965
- position: absolute;
966
- top: 0;
967
- right: 0;
968
- }
969
-
970
- /* src/dialog/DialogContent.css */
971
- .saltDialogContent {
972
- color: var(--salt-content-primary-foreground);
973
- min-height: var(--salt-text-lineHeight);
974
- overflow-y: auto;
975
- background: var(--salt-container-primary-background);
976
- padding-bottom: var(--salt-spacing-50);
977
- margin-left: var(--salt-spacing-200);
978
- margin-right: var(--salt-spacing-300);
979
- padding-right: var(--salt-spacing-300);
980
- padding-left: var(--salt-spacing-100);
981
- border-bottom: var(--salt-size-border) var(--salt-separable-borderStyle) transparent;
982
- box-shadow: none;
983
- }
984
- .saltDialogContent-scroll {
985
- border-bottom: var(--salt-size-border) var(--salt-separable-borderStyle) var(--salt-separable-tertiary-borderColor);
986
- box-shadow: var(--salt-overlayable-shadow-scroll);
987
- }
988
-
989
- /* src/dialog/DialogHeader.css */
990
- .saltDialogHeader {
991
- padding-bottom: var(--salt-spacing-100);
992
- padding-left: var(--salt-spacing-300);
993
- padding-right: var(--salt-spacing-300);
994
- align-items: center;
995
- display: flex;
996
- flex-direction: row;
997
- gap: var(--salt-spacing-100);
998
- box-sizing: border-box;
999
- }
1000
- .saltDialogHeader-header {
1001
- margin: 0;
1002
- }
1003
- .saltDialogHeader .saltStatusIndicator.saltIcon {
1004
- --icon-size: var(--salt-text-h2-lineHeight);
1005
- }
1006
- .saltDialogHeader-withAccent {
1007
- position: relative;
1008
- }
1009
- .saltDialogHeader-withAccent::before {
1010
- content: "";
1011
- position: absolute;
1012
- top: 0;
1013
- left: 0;
1014
- bottom: var(--salt-spacing-100);
1015
- width: var(--salt-size-accent);
1016
- background: var(--salt-accent-background);
1017
- }
1018
- .saltDialogHeader-error::before {
1019
- background: var(--salt-status-error-borderColor);
1020
- }
1021
- .saltDialogHeader-info::before {
1022
- background: var(--salt-status-info-borderColor);
1023
- }
1024
- .saltDialogHeader-success::before {
1025
- background: var(--salt-status-success-borderColor);
1026
- }
1027
- .saltDialogHeader-warning::before {
1028
- background: var(--salt-status-warning-borderColor);
1029
- }
1030
-
1031
859
  /* src/dropdown/Dropdown.css */
1032
860
  .saltDropdown {
1033
861
  --saltIcon-margin: 2px 0 0 8px;
@@ -2308,10 +2136,6 @@
2308
2136
  gap: var(--salt-spacing-100);
2309
2137
  position: relative;
2310
2138
  align-items: center;
2311
- margin-top: var(--salt-size-border);
2312
- margin-bottom: var(--salt-size-border);
2313
- border-top: var(--salt-size-border) var(--salt-container-borderStyle) transparent;
2314
- border-bottom: var(--salt-size-border) var(--salt-container-borderStyle) transparent;
2315
2139
  cursor: var(--salt-selectable-cursor-hover);
2316
2140
  box-sizing: border-box;
2317
2141
  }
@@ -2327,7 +2151,27 @@
2327
2151
  }
2328
2152
  .saltOption[aria-selected=true] {
2329
2153
  background: var(--salt-selectable-background-selected);
2330
- border-color: var(--salt-selectable-borderColor-selected);
2154
+ }
2155
+ .saltOption[aria-selected=true]::before {
2156
+ content: "";
2157
+ display: block;
2158
+ position: absolute;
2159
+ top: -1px;
2160
+ bottom: -1px;
2161
+ left: 0;
2162
+ width: 100%;
2163
+ }
2164
+ .saltOption[aria-selected=true]::before {
2165
+ border-top: var(--salt-size-border) var(--salt-selectable-borderStyle-selected) var(--salt-selectable-borderColor-selected);
2166
+ border-bottom: var(--salt-size-border) var(--salt-selectable-borderStyle-selected) var(--salt-selectable-borderColor-selected);
2167
+ }
2168
+ .saltOption[aria-selected=true]:first-of-type::before {
2169
+ border-top: unset;
2170
+ top: 0;
2171
+ }
2172
+ .saltOption[aria-selected=true]:last-of-type::before {
2173
+ border-bottom: unset;
2174
+ bottom: 0;
2331
2175
  }
2332
2176
  .saltOption[aria-disabled=true] {
2333
2177
  color: var(--salt-content-primary-foreground-disabled);
@@ -2362,6 +2206,9 @@
2362
2206
  max-height: inherit;
2363
2207
  min-height: inherit;
2364
2208
  box-sizing: border-box;
2209
+ display: flex;
2210
+ flex-direction: column;
2211
+ gap: var(--salt-size-border);
2365
2212
  }
2366
2213
  .saltOptionList-collapsed {
2367
2214
  display: none;
@@ -2388,17 +2235,9 @@
2388
2235
  width: max-content;
2389
2236
  }
2390
2237
  .saltOverlayPanelBase-container {
2391
- animation: fade-in var(--salt-duration-perceptible) ease-in-out;
2238
+ animation: var(--salt-animation-fade-in-center);
2392
2239
  position: relative;
2393
2240
  }
2394
- @keyframes fade-in {
2395
- 0% {
2396
- opacity: 0;
2397
- }
2398
- 100% {
2399
- opacity: 1;
2400
- }
2401
- }
2402
2241
  .saltOverlayPanelBase-content {
2403
2242
  overflow: auto;
2404
2243
  padding: var(--saltOverlay-content-padding, var(--salt-spacing-100) 0 var(--salt-spacing-100) var(--salt-spacing-100));
@@ -2435,6 +2274,223 @@
2435
2274
  }
2436
2275
  }
2437
2276
 
2277
+ /* src/pill-input/PillInput.css */
2278
+ .saltPillInput {
2279
+ --input-borderColor: var(--salt-editable-borderColor);
2280
+ --input-borderStyle: var(--salt-editable-borderStyle);
2281
+ --input-outlineColor: var(--salt-focused-outlineColor);
2282
+ --input-borderWidth: var(--salt-size-border);
2283
+ align-items: center;
2284
+ background: var(--saltInput-background, var(--input-background));
2285
+ color: var(--saltInput-color, var(--salt-content-primary-foreground));
2286
+ display: inline-flex;
2287
+ font-family: var(--salt-text-fontFamily);
2288
+ font-size: var(--saltInput-fontSize, var(--salt-text-fontSize));
2289
+ line-height: var(--saltInput-lineHeight, var(--salt-text-lineHeight));
2290
+ min-height: var(--saltInput-minHeight, var(--salt-size-base));
2291
+ min-width: var(--saltInput-minWidth, 4em);
2292
+ padding-left: var(--saltInput-paddingLeft, var(--salt-spacing-50));
2293
+ padding-right: var(--saltInput-paddingRight, var(--salt-spacing-100));
2294
+ position: relative;
2295
+ width: 100%;
2296
+ box-sizing: border-box;
2297
+ }
2298
+ .saltPillInput-truncate {
2299
+ height: var(--salt-size-base);
2300
+ }
2301
+ .saltPillInput-truncate .saltPillInput-inputWrapper {
2302
+ flex-wrap: nowrap;
2303
+ }
2304
+ .saltPillInput:hover {
2305
+ --input-borderStyle: var(--salt-editable-borderStyle-hover);
2306
+ --input-borderColor: var(--salt-editable-borderColor-hover);
2307
+ background: var(--saltInput-background-hover, var(--input-background-hover));
2308
+ cursor: var(--salt-editable-cursor-hover);
2309
+ }
2310
+ .saltPillInput:active {
2311
+ --input-borderColor: var(--salt-editable-borderColor-active);
2312
+ --input-borderStyle: var(--salt-editable-borderStyle-active);
2313
+ --input-borderWidth: var(--salt-editable-borderWidth-active);
2314
+ background: var(--saltInput-background-active, var(--input-background-active));
2315
+ cursor: var(--salt-editable-cursor-active);
2316
+ }
2317
+ .saltPillInput-primary {
2318
+ --input-background: var(--salt-editable-primary-background);
2319
+ --input-background-active: var(--salt-editable-primary-background-active);
2320
+ --input-background-hover: var(--salt-editable-primary-background-hover);
2321
+ --input-background-disabled: var(--salt-editable-primary-background-disabled);
2322
+ --input-background-readonly: var(--salt-editable-primary-background-readonly);
2323
+ }
2324
+ .saltPillInput-secondary {
2325
+ --input-background: var(--salt-editable-secondary-background);
2326
+ --input-background-active: var(--salt-editable-secondary-background-active);
2327
+ --input-background-hover: var(--salt-editable-secondary-background-active);
2328
+ --input-background-disabled: var(--salt-editable-secondary-background-disabled);
2329
+ --input-background-readonly: var(--salt-editable-secondary-background-readonly);
2330
+ }
2331
+ .saltPillInput-error,
2332
+ .saltPillInput-error:hover {
2333
+ --input-background: var(--salt-status-error-background);
2334
+ --input-background-active: var(--salt-status-error-background);
2335
+ --input-background-hover: var(--salt-status-error-background);
2336
+ --input-borderColor: var(--salt-status-error-borderColor);
2337
+ --input-outlineColor: var(--salt-status-error-borderColor);
2338
+ }
2339
+ .saltPillInput-warning,
2340
+ .saltPillInput-warning:hover {
2341
+ --input-background: var(--salt-status-warning-background);
2342
+ --input-background-active: var(--salt-status-warning-background);
2343
+ --input-background-hover: var(--salt-status-warning-background);
2344
+ --input-borderColor: var(--salt-status-warning-borderColor);
2345
+ --input-outlineColor: var(--salt-status-warning-borderColor);
2346
+ }
2347
+ .saltPillInput-success,
2348
+ .saltPillInput-success:hover {
2349
+ --input-background: var(--salt-status-success-background);
2350
+ --input-background-active: var(--salt-status-success-background);
2351
+ --input-background-hover: var(--salt-status-success-background);
2352
+ --input-borderColor: var(--salt-status-success-borderColor);
2353
+ --input-outlineColor: var(--salt-status-success-borderColor);
2354
+ }
2355
+ .saltPillInput-input {
2356
+ background: none;
2357
+ border: none;
2358
+ box-sizing: content-box;
2359
+ color: inherit;
2360
+ cursor: inherit;
2361
+ display: block;
2362
+ flex: 1;
2363
+ font: inherit;
2364
+ height: 100%;
2365
+ letter-spacing: var(--saltInput-letterSpacing, 0);
2366
+ margin: 0;
2367
+ min-width: 0;
2368
+ overflow: hidden;
2369
+ padding: 0;
2370
+ text-align: var(--input-textAlign);
2371
+ width: 100%;
2372
+ }
2373
+ .saltPillInput-input:focus {
2374
+ outline: none;
2375
+ }
2376
+ .saltPillInput-input::selection {
2377
+ background: var(--salt-content-foreground-highlight);
2378
+ }
2379
+ .saltPillInput-input::placeholder {
2380
+ color: var(--salt-content-secondary-foreground);
2381
+ font-weight: var(--salt-text-fontWeight-small);
2382
+ }
2383
+ .saltPillInput-focused {
2384
+ --input-borderColor: var(--input-outlineColor);
2385
+ --input-borderWidth: var(--salt-editable-borderWidth-active);
2386
+ outline: var(--saltInput-outline, var(--salt-focused-outlineWidth) var(--salt-focused-outlineStyle) var(--input-outlineColor));
2387
+ }
2388
+ .saltPillInput.saltPillInput-readOnly {
2389
+ --input-borderColor: var(--salt-editable-borderColor-readonly);
2390
+ --input-borderStyle: var(--salt-editable-borderStyle-readonly);
2391
+ --input-borderWidth: var(--salt-size-border);
2392
+ background: var(--input-background-readonly);
2393
+ cursor: var(--salt-editable-cursor-readonly);
2394
+ }
2395
+ .saltPillInput-focused.saltPillInput-disabled {
2396
+ --input-borderWidth: var(--salt-size-border);
2397
+ outline: none;
2398
+ }
2399
+ .saltPillInput-focused.saltPillInput-readOnly {
2400
+ --input-borderWidth: var(--salt-size-border);
2401
+ }
2402
+ .saltPillInput-disabled .saltPillInput-input::selection {
2403
+ background: none;
2404
+ }
2405
+ .saltPillInput.saltPillInput-disabled,
2406
+ .saltPillInput.saltPillInput-disabled:hover,
2407
+ .saltPillInput.saltPillInput-disabled:active {
2408
+ --input-borderColor: var(--salt-editable-borderColor-disabled);
2409
+ --input-borderStyle: var(--salt-editable-borderStyle-disabled);
2410
+ --input-borderWidth: var(--salt-size-border);
2411
+ background: var(--input-background-disabled);
2412
+ cursor: var(--salt-editable-cursor-disabled);
2413
+ color: var(--saltInput-color-disabled, var(--salt-content-primary-foreground-disabled));
2414
+ }
2415
+ .saltPillInput-activationIndicator {
2416
+ left: 0;
2417
+ bottom: 0;
2418
+ width: 100%;
2419
+ position: absolute;
2420
+ border-bottom: var(--input-borderWidth) var(--input-borderStyle) var(--input-borderColor);
2421
+ }
2422
+ .saltPillInput-startAdornmentContainer {
2423
+ align-items: center;
2424
+ display: inline-flex;
2425
+ padding-right: var(--salt-spacing-100);
2426
+ column-gap: var(--salt-spacing-100);
2427
+ }
2428
+ .saltPillInput-endAdornmentContainer {
2429
+ align-items: center;
2430
+ display: inline-flex;
2431
+ padding-left: var(--salt-spacing-100);
2432
+ padding-top: var(--salt-spacing-50);
2433
+ column-gap: var(--salt-spacing-100);
2434
+ align-self: flex-start;
2435
+ }
2436
+ .saltPillInput-readOnly .saltPillInput-startAdornmentContainer {
2437
+ margin-left: var(--salt-spacing-50);
2438
+ }
2439
+ .saltPillInput-startAdornmentContainer .saltButton ~ .saltButton {
2440
+ margin-left: calc(-1 * var(--salt-spacing-50));
2441
+ }
2442
+ .saltPillInput-endAdornmentContainer .saltButton ~ .saltButton {
2443
+ margin-left: calc(-1 * var(--salt-spacing-50));
2444
+ }
2445
+ .saltPillInput-startAdornmentContainer .saltButton:first-child {
2446
+ margin-left: calc(var(--salt-spacing-50) * -1);
2447
+ }
2448
+ .saltPillInput-endAdornmentContainer .saltButton:last-child {
2449
+ margin-right: calc(var(--salt-spacing-50) * -1);
2450
+ }
2451
+ .saltPillInput-startAdornmentContainer > .saltButton,
2452
+ .saltPillInput-endAdornmentContainer > .saltButton {
2453
+ --saltButton-padding: var(--salt-spacing-50);
2454
+ --saltButton-height: calc(var(--salt-size-base) - var(--salt-spacing-100));
2455
+ }
2456
+ .saltPillInput-inputWrapper {
2457
+ display: flex;
2458
+ gap: var(--salt-spacing-50);
2459
+ align-items: center;
2460
+ flex: 1;
2461
+ padding: var(--salt-spacing-50) 0;
2462
+ flex-wrap: wrap;
2463
+ max-height: inherit;
2464
+ height: inherit;
2465
+ overflow-y: auto;
2466
+ box-sizing: border-box;
2467
+ }
2468
+ .saltPillInput-pillList {
2469
+ display: contents;
2470
+ }
2471
+ .saltPillInput .saltPill:focus-visible {
2472
+ background: var(--salt-selectable-background-hover);
2473
+ outline: none;
2474
+ }
2475
+ .saltPillInput .saltPill:hover {
2476
+ background: var(--salt-selectable-background-hover);
2477
+ }
2478
+ .saltPillInput .saltPill:active {
2479
+ background: var(--salt-actionable-primary-background-active);
2480
+ --saltPill-color: var(--salt-actionable-primary-foreground-active);
2481
+ --saltIcon-color: var(--salt-actionable-primary-foreground-active);
2482
+ }
2483
+ div[role=listitem] {
2484
+ display: inline;
2485
+ }
2486
+ .saltPillInput-overflowIndicator {
2487
+ width: calc(var(--salt-size-base) - var(--salt-spacing-100));
2488
+ height: calc(var(--salt-size-base) - var(--salt-spacing-100));
2489
+ display: flex;
2490
+ align-items: center;
2491
+ justify-content: center;
2492
+ }
2493
+
2438
2494
  /* src/query-input/QueryInput.css */
2439
2495
  .saltQueryInput {
2440
2496
  }
@@ -3246,6 +3302,11 @@
3246
3302
  font-weight: var(--salt-text-fontWeight);
3247
3303
  line-height: var(--salt-text-lineHeight);
3248
3304
  }
3305
+ .saltTabstripNext-container {
3306
+ display: inherit;
3307
+ width: 100%;
3308
+ position: relative;
3309
+ }
3249
3310
  .saltTabstripNext-main {
3250
3311
  padding-left: var(--salt-spacing-300);
3251
3312
  padding-right: var(--salt-spacing-300);
@@ -4319,4 +4380,4 @@
4319
4380
  margin: calc(var(--salt-size-unit) / 2) 0;
4320
4381
  }
4321
4382
 
4322
- /* src/c6e1d4ac-675b-4241-bf4e-3d3c78a6ade3.css */
4383
+ /* src/55c2911a-9f10-4671-b3ef-bce78434a397.css */
@@ -0,0 +1,6 @@
1
+ 'use strict';
2
+
3
+ var css_248z = ".saltComboBoxNext-focused {\n outline: var(--salt-focused-outline);\n}\n";
4
+
5
+ module.exports = css_248z;
6
+ //# sourceMappingURL=ComboBoxNext.css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ComboBoxNext.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;"}
@@ -12,6 +12,10 @@ var react = require('@floating-ui/react');
12
12
  var icons = require('@salt-ds/icons');
13
13
  var useComboBoxNext = require('./useComboBoxNext.js');
14
14
  var OptionList = require('../option/OptionList.js');
15
+ var PillInput = require('../pill-input/PillInput.js');
16
+ var window = require('@salt-ds/window');
17
+ var styles = require('@salt-ds/styles');
18
+ var ComboBoxNext$1 = require('./ComboBoxNext.css.js');
15
19
 
16
20
  const withBaseName = core.makePrefixer("saltComboBoxNext");
17
21
  const ComboBoxNext = React.forwardRef(function ComboBox(props, ref) {
@@ -39,8 +43,15 @@ const ComboBoxNext = React.forwardRef(function ComboBox(props, ref) {
39
43
  value,
40
44
  defaultValue,
41
45
  valueToString = ListControlState.defaultValueToString,
46
+ truncate,
42
47
  ...rest
43
48
  } = props;
49
+ const targetWindow = window.useWindow();
50
+ styles.useComponentCssInjection({
51
+ testId: "salt-combo-box-next",
52
+ css: ComboBoxNext$1,
53
+ window: targetWindow
54
+ });
44
55
  const {
45
56
  a11yProps: { "aria-labelledby": formFieldLabelledBy } = {},
46
57
  disabled: formFieldDisabled,
@@ -218,6 +229,11 @@ const ComboBoxNext = React.forwardRef(function ComboBox(props, ref) {
218
229
  });
219
230
  onChange == null ? void 0 : onChange(event);
220
231
  };
232
+ const handlePillRemove = (event, index) => {
233
+ event.stopPropagation();
234
+ const removed = selectedState[index];
235
+ select(event, getOptionsMatching((option) => option.value === removed)[0]);
236
+ };
221
237
  const handleListMouseOver = () => {
222
238
  setFocusVisibleState(false);
223
239
  };
@@ -262,8 +278,15 @@ const ComboBoxNext = React.forwardRef(function ComboBox(props, ref) {
262
278
  return /* @__PURE__ */ jsxRuntime.jsxs(ListControlContext.ListControlContext.Provider, {
263
279
  value: listControl,
264
280
  children: [
265
- /* @__PURE__ */ jsxRuntime.jsx(core.Input, {
266
- className: clsx.clsx(withBaseName(), className),
281
+ /* @__PURE__ */ jsxRuntime.jsx(PillInput.PillInput, {
282
+ className: clsx.clsx(
283
+ withBaseName(),
284
+ {
285
+ [withBaseName("focused")]: focusedState,
286
+ [withBaseName("focusVisible")]: focusVisibleState
287
+ },
288
+ className
289
+ ),
267
290
  endAdornment: /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, {
268
291
  children: [
269
292
  endAdornment,
@@ -307,7 +330,12 @@ const ComboBoxNext = React.forwardRef(function ComboBox(props, ref) {
307
330
  onBlur,
308
331
  onFocus: handleFocus,
309
332
  ...rest
310
- })
333
+ }),
334
+ pills: multiselect ? selectedState.map((item) => valueToString(item)) : [],
335
+ truncate: truncate && !focusedState && !openState,
336
+ onPillRemove: handlePillRemove,
337
+ hidePillClose: !focusedState || readOnly,
338
+ emptyReadOnlyMarker: readOnly && selectedState.length > 0 ? "" : void 0
311
339
  }),
312
340
  /* @__PURE__ */ jsxRuntime.jsx(FloatingComponent, {
313
341
  open: (openState || focusedState) && !readOnly && children != void 0,