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

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 (109) hide show
  1. package/css/salt-lab.css +27 -400
  2. package/dist-cjs/calendar/internal/CalendarNavigation.js +4 -8
  3. package/dist-cjs/calendar/internal/CalendarNavigation.js.map +1 -1
  4. package/dist-cjs/combo-box/useCombobox.js.map +1 -1
  5. package/dist-cjs/index.js +2 -8
  6. package/dist-cjs/index.js.map +1 -1
  7. package/dist-cjs/segmented-button-group/SegmentedButtonGroup.css.js +6 -0
  8. package/dist-cjs/segmented-button-group/SegmentedButtonGroup.css.js.map +1 -0
  9. package/dist-cjs/segmented-button-group/SegmentedButtonGroup.js +30 -0
  10. package/dist-cjs/segmented-button-group/SegmentedButtonGroup.js.map +1 -0
  11. package/dist-cjs/tabs-next/TabstripNext.css.js +1 -1
  12. package/dist-es/calendar/internal/CalendarNavigation.js +3 -7
  13. package/dist-es/calendar/internal/CalendarNavigation.js.map +1 -1
  14. package/dist-es/combo-box/useCombobox.js.map +1 -1
  15. package/dist-es/index.js +1 -4
  16. package/dist-es/index.js.map +1 -1
  17. package/dist-es/segmented-button-group/SegmentedButtonGroup.css.js +4 -0
  18. package/dist-es/segmented-button-group/SegmentedButtonGroup.css.js.map +1 -0
  19. package/dist-es/segmented-button-group/SegmentedButtonGroup.js +26 -0
  20. package/dist-es/segmented-button-group/SegmentedButtonGroup.js.map +1 -0
  21. package/dist-es/tabs-next/TabstripNext.css.js +1 -1
  22. package/dist-types/calendar/internal/CalendarNavigation.d.ts +2 -3
  23. package/dist-types/index.d.ts +1 -3
  24. package/dist-types/segmented-button-group/SegmentedButtonGroup.d.ts +4 -0
  25. package/dist-types/segmented-button-group/index.d.ts +1 -0
  26. package/package.json +2 -2
  27. package/dist-cjs/combo-box-next/ComboBoxNext.css.js +0 -6
  28. package/dist-cjs/combo-box-next/ComboBoxNext.css.js.map +0 -1
  29. package/dist-cjs/combo-box-next/ComboBoxNext.js +0 -366
  30. package/dist-cjs/combo-box-next/ComboBoxNext.js.map +0 -1
  31. package/dist-cjs/combo-box-next/useComboBoxNext.js +0 -68
  32. package/dist-cjs/combo-box-next/useComboBoxNext.js.map +0 -1
  33. package/dist-cjs/dropdown-next/DropdownNext.css.js +0 -6
  34. package/dist-cjs/dropdown-next/DropdownNext.css.js.map +0 -1
  35. package/dist-cjs/dropdown-next/DropdownNext.js +0 -335
  36. package/dist-cjs/dropdown-next/DropdownNext.js.map +0 -1
  37. package/dist-cjs/list-control/ListControlContext.js +0 -38
  38. package/dist-cjs/list-control/ListControlContext.js.map +0 -1
  39. package/dist-cjs/list-control/ListControlState.js +0 -192
  40. package/dist-cjs/list-control/ListControlState.js.map +0 -1
  41. package/dist-cjs/option/Option.css.js +0 -6
  42. package/dist-cjs/option/Option.css.js.map +0 -1
  43. package/dist-cjs/option/Option.js +0 -99
  44. package/dist-cjs/option/Option.js.map +0 -1
  45. package/dist-cjs/option/OptionGroup.css.js +0 -6
  46. package/dist-cjs/option/OptionGroup.css.js.map +0 -1
  47. package/dist-cjs/option/OptionGroup.js +0 -44
  48. package/dist-cjs/option/OptionGroup.js.map +0 -1
  49. package/dist-cjs/option/OptionList.css.js +0 -6
  50. package/dist-cjs/option/OptionList.css.js.map +0 -1
  51. package/dist-cjs/option/OptionList.js +0 -40
  52. package/dist-cjs/option/OptionList.js.map +0 -1
  53. package/dist-cjs/pill-input/PillInput.css.js +0 -6
  54. package/dist-cjs/pill-input/PillInput.css.js.map +0 -1
  55. package/dist-cjs/pill-input/PillInput.js +0 -256
  56. package/dist-cjs/pill-input/PillInput.js.map +0 -1
  57. package/dist-cjs/pill-input/useTruncatePills.js +0 -85
  58. package/dist-cjs/pill-input/useTruncatePills.js.map +0 -1
  59. package/dist-cjs/utils/useValueEffect.js +0 -40
  60. package/dist-cjs/utils/useValueEffect.js.map +0 -1
  61. package/dist-es/combo-box-next/ComboBoxNext.css.js +0 -4
  62. package/dist-es/combo-box-next/ComboBoxNext.css.js.map +0 -1
  63. package/dist-es/combo-box-next/ComboBoxNext.js +0 -362
  64. package/dist-es/combo-box-next/ComboBoxNext.js.map +0 -1
  65. package/dist-es/combo-box-next/useComboBoxNext.js +0 -64
  66. package/dist-es/combo-box-next/useComboBoxNext.js.map +0 -1
  67. package/dist-es/dropdown-next/DropdownNext.css.js +0 -4
  68. package/dist-es/dropdown-next/DropdownNext.css.js.map +0 -1
  69. package/dist-es/dropdown-next/DropdownNext.js +0 -331
  70. package/dist-es/dropdown-next/DropdownNext.js.map +0 -1
  71. package/dist-es/list-control/ListControlContext.js +0 -33
  72. package/dist-es/list-control/ListControlContext.js.map +0 -1
  73. package/dist-es/list-control/ListControlState.js +0 -187
  74. package/dist-es/list-control/ListControlState.js.map +0 -1
  75. package/dist-es/option/Option.css.js +0 -4
  76. package/dist-es/option/Option.css.js.map +0 -1
  77. package/dist-es/option/Option.js +0 -95
  78. package/dist-es/option/Option.js.map +0 -1
  79. package/dist-es/option/OptionGroup.css.js +0 -4
  80. package/dist-es/option/OptionGroup.css.js.map +0 -1
  81. package/dist-es/option/OptionGroup.js +0 -40
  82. package/dist-es/option/OptionGroup.js.map +0 -1
  83. package/dist-es/option/OptionList.css.js +0 -4
  84. package/dist-es/option/OptionList.css.js.map +0 -1
  85. package/dist-es/option/OptionList.js +0 -36
  86. package/dist-es/option/OptionList.js.map +0 -1
  87. package/dist-es/pill-input/PillInput.css.js +0 -4
  88. package/dist-es/pill-input/PillInput.css.js.map +0 -1
  89. package/dist-es/pill-input/PillInput.js +0 -252
  90. package/dist-es/pill-input/PillInput.js.map +0 -1
  91. package/dist-es/pill-input/useTruncatePills.js +0 -81
  92. package/dist-es/pill-input/useTruncatePills.js.map +0 -1
  93. package/dist-es/utils/useValueEffect.js +0 -36
  94. package/dist-es/utils/useValueEffect.js.map +0 -1
  95. package/dist-types/combo-box-next/ComboBoxNext.d.ts +0 -17
  96. package/dist-types/combo-box-next/index.d.ts +0 -1
  97. package/dist-types/combo-box-next/useComboBoxNext.d.ts +0 -30
  98. package/dist-types/dropdown-next/DropdownNext.d.ts +0 -99
  99. package/dist-types/dropdown-next/index.d.ts +0 -1
  100. package/dist-types/list-control/ListControlContext.d.ts +0 -21
  101. package/dist-types/list-control/ListControlState.d.ts +0 -70
  102. package/dist-types/option/Option.d.ts +0 -16
  103. package/dist-types/option/OptionGroup.d.ts +0 -12
  104. package/dist-types/option/OptionList.d.ts +0 -5
  105. package/dist-types/option/index.d.ts +0 -2
  106. package/dist-types/pill-input/PillInput.d.ts +0 -48
  107. package/dist-types/pill-input/index.d.ts +0 -1
  108. package/dist-types/pill-input/useTruncatePills.d.ts +0 -8
  109. package/dist-types/utils/useValueEffect.d.ts +0 -4
package/css/salt-lab.css CHANGED
@@ -567,11 +567,6 @@
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
-
575
570
  /* src/contact-details/ContactDetails.css */
576
571
  .salt-density-touch {
577
572
  --contactDetails-default-primary-fontSize: 30px;
@@ -906,91 +901,6 @@
906
901
  outline: none;
907
902
  }
908
903
 
909
- /* src/dropdown-next/DropdownNext.css */
910
- .saltDropdownNext {
911
- --dropdownNext-borderColor: var(--salt-editable-borderColor);
912
- --dropdownNext-color: var(--salt-content-primary-foreground);
913
- --dropdownNext-cursor: var(--salt-selectable-cursor-hover);
914
- }
915
- .saltDropdownNext {
916
- all: unset;
917
- box-sizing: border-box;
918
- min-width: 4em;
919
- width: 100%;
920
- background: var(--dropdownNext-background);
921
- cursor: var(--dropdownNext-cursor);
922
- min-height: var(--salt-size-base);
923
- border-bottom: var(--salt-size-border) var(--salt-editable-borderStyle) var(--dropdownNext-borderColor);
924
- display: flex;
925
- align-items: center;
926
- padding: 0 var(--salt-spacing-100);
927
- gap: var(--salt-spacing-100);
928
- color: var(--dropdownNext-color);
929
- font-family: var(--salt-text-fontFamily);
930
- font-size: var(--salt-text-fontSize);
931
- font-weight: var(--salt-text-fontWeight);
932
- }
933
- .saltDropdownNext:hover {
934
- --dropdownNext-borderColor: var(--salt-editable-borderColor-hover);
935
- }
936
- .saltDropdownNext:focus-visible {
937
- outline: var(--salt-focused-outline);
938
- --dropdownNext-borderColor: var(--salt-editable-borderColor-hover);
939
- }
940
- .saltDropdownNext-content {
941
- flex: 1;
942
- max-width: 100%;
943
- overflow: hidden;
944
- text-overflow: ellipsis;
945
- text-wrap: nowrap;
946
- }
947
- .saltDropdownNext-placeholder {
948
- color: var(--salt-content-secondary-foreground);
949
- font-weight: var(--salt-text-fontWeight-small);
950
- }
951
- .saltDropdownNext-primary {
952
- --dropdownNext-background: var(--salt-editable-primary-background);
953
- }
954
- .saltDropdownNext-secondary {
955
- --dropdownNext-background: var(--salt-editable-secondary-background);
956
- }
957
- .saltDropdownNext:disabled {
958
- --dropdownNext-background: var(--salt-editable-primary-background-disabled);
959
- --dropdownNext-borderColor: var(--salt-editable-borderColor-disabled);
960
- --dropdownNext-color: var(--salt-content-primary-foreground-disabled);
961
- --dropdownNext-cursor: var(--salt-selectable-cursor-disabled);
962
- }
963
- .saltDropdownNext[aria-readonly=true] {
964
- --dropdownNext-background: var(--salt-editable-primary-background-readonly);
965
- --dropdownNext-borderColor: var(--salt-editable-borderColor-readonly);
966
- --dropdownNext-color: var(--salt-content-primary-foreground);
967
- --dropdownNext-cursor: var(--salt-selectable-cursor-readonly);
968
- }
969
- .saltDropdownNext-error {
970
- --dropdownNext-background: var(--salt-status-error-background);
971
- --dropdownNext-borderColor: var(--salt-status-error-borderColor);
972
- }
973
- .saltDropdownNext-error .saltDropdownNext:focus-visible {
974
- outline-color: var(--salt-status-error-borderColor);
975
- --dropdownNext-borderColor: var(--salt-status-error-borderColor);
976
- }
977
- .saltDropdownNext-warning {
978
- --dropdownNext-background: var(--salt-status-warning-background);
979
- --dropdownNext-borderColor: var(--salt-status-warning-borderColor);
980
- }
981
- .saltDropdownNext-warning .saltDropdownNext:focus-visible {
982
- outline-color: var(--salt-status-warning-borderColor);
983
- --dropdownNext-borderColor: var(--salt-status-warning-borderColor);
984
- }
985
- .saltDropdownNext-success {
986
- --dropdownNext-background: var(--salt-status-success-background);
987
- --dropdownNext-borderColor: var(--salt-status-success-borderColor);
988
- }
989
- .saltDropdownNext-success .saltDropdownNext:focus-visible {
990
- outline-color: var(--salt-status-success-borderColor);
991
- --dropdownNext-borderColor: var(--salt-status-success-borderColor);
992
- }
993
-
994
904
  /* src/editable-label/EditableLabel.css */
995
905
  .saltEditableLabel {
996
906
  --saltInputLegacy-minWidth: 14px;
@@ -2123,97 +2033,6 @@
2123
2033
  align-items: flex-end;
2124
2034
  }
2125
2035
 
2126
- /* src/option/Option.css */
2127
- .saltOption {
2128
- color: var(--salt-content-primary-foreground);
2129
- background: var(--salt-selectable-background);
2130
- font-size: var(--salt-text-fontSize);
2131
- font-weight: var(--salt-text-fontWeight);
2132
- min-height: calc(var(--salt-size-base) + var(--salt-spacing-100));
2133
- padding-left: var(--salt-spacing-100);
2134
- padding-right: var(--salt-spacing-100);
2135
- display: flex;
2136
- gap: var(--salt-spacing-100);
2137
- position: relative;
2138
- align-items: center;
2139
- cursor: var(--salt-selectable-cursor-hover);
2140
- box-sizing: border-box;
2141
- }
2142
- .saltOption-active {
2143
- background: var(--salt-selectable-background-hover);
2144
- }
2145
- .saltOption-focusVisible {
2146
- outline: var(--salt-focused-outline);
2147
- outline-offset: calc(var(--salt-size-border) * -2);
2148
- }
2149
- .saltOption:hover {
2150
- background: var(--salt-selectable-background-hover);
2151
- }
2152
- .saltOption[aria-selected=true] {
2153
- background: var(--salt-selectable-background-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;
2175
- }
2176
- .saltOption[aria-disabled=true] {
2177
- color: var(--salt-content-primary-foreground-disabled);
2178
- cursor: var(--salt-selectable-cursor-disabled);
2179
- }
2180
-
2181
- /* src/option/OptionGroup.css */
2182
- .saltOptionGroup-label {
2183
- background: var(--salt-container-primary-background);
2184
- color: var(--salt-text-secondary-foreground);
2185
- font-size: var(--salt-text-label-fontSize);
2186
- font-weight: var(--salt-text-label-fontWeight-strong);
2187
- height: calc(var(--salt-size-base) + var(--salt-spacing-100));
2188
- padding-left: var(--salt-spacing-100);
2189
- padding-right: var(--salt-spacing-100);
2190
- display: flex;
2191
- align-items: center;
2192
- position: sticky;
2193
- top: 0;
2194
- z-index: 2;
2195
- }
2196
-
2197
- /* src/option/OptionList.css */
2198
- .saltOptionList {
2199
- background: var(--salt-container-primary-background);
2200
- border: var(--salt-size-border) var(--salt-selectable-borderStyle-selected) var(--salt-selectable-borderColor-selected);
2201
- overflow: hidden;
2202
- overflow-y: auto;
2203
- position: relative;
2204
- z-index: var(--salt-zIndex-flyover);
2205
- box-shadow: var(--salt-overlayable-shadow-popout);
2206
- max-height: inherit;
2207
- min-height: inherit;
2208
- box-sizing: border-box;
2209
- display: flex;
2210
- flex-direction: column;
2211
- gap: var(--salt-size-border);
2212
- }
2213
- .saltOptionList-collapsed {
2214
- display: none;
2215
- }
2216
-
2217
2036
  /* src/overlay/Overlay.css */
2218
2037
  .saltOverlayPanel {
2219
2038
  --overlay-borderColor: var(--saltOverlay-borderColor, var(--salt-container-primary-borderColor));
@@ -2274,223 +2093,6 @@
2274
2093
  }
2275
2094
  }
2276
2095
 
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
-
2494
2096
  /* src/query-input/QueryInput.css */
2495
2097
  .saltQueryInput {
2496
2098
  }
@@ -2599,6 +2201,30 @@ div[role=listitem] {
2599
2201
  display: none;
2600
2202
  }
2601
2203
 
2204
+ /* src/segmented-button-group/SegmentedButtonGroup.css */
2205
+ .saltSegmentedButtonGroup {
2206
+ display: flex;
2207
+ flex-direction: row;
2208
+ background: var(--button-background);
2209
+ gap: var(--salt-size-border);
2210
+ }
2211
+ .saltSegmentedButtonGroup > *:not(:last-child)::after {
2212
+ content: "";
2213
+ width: var(--salt-size-border);
2214
+ position: absolute;
2215
+ background: var(--button-background);
2216
+ right: calc(var(--salt-size-border) * -1);
2217
+ height: 100%;
2218
+ }
2219
+ .saltSegmentedButtonGroup > *:not(:first-child)::before {
2220
+ content: "";
2221
+ width: var(--salt-size-border);
2222
+ position: absolute;
2223
+ background: var(--salt-separable-primary-borderColor);
2224
+ left: calc(var(--salt-size-border) * -1);
2225
+ height: 100%;
2226
+ }
2227
+
2602
2228
  /* src/skip-link/SkipLink.css */
2603
2229
  .saltSkipLink {
2604
2230
  --skipLink-padding: var(--saltSkipLink-padding, var(--salt-size-unit));
@@ -3303,8 +2929,9 @@ div[role=listitem] {
3303
2929
  line-height: var(--salt-text-lineHeight);
3304
2930
  }
3305
2931
  .saltTabstripNext-container {
3306
- display: inherit;
2932
+ display: block;
3307
2933
  width: 100%;
2934
+ height: fit-content;
3308
2935
  position: relative;
3309
2936
  }
3310
2937
  .saltTabstripNext-main {
@@ -4380,4 +4007,4 @@ div[role=listitem] {
4380
4007
  margin: calc(var(--salt-size-unit) / 2) 0;
4381
4008
  }
4382
4009
 
4383
- /* src/55c2911a-9f10-4671-b3ef-bce78434a397.css */
4010
+ /* src/a594b208-f7f4-449a-8dd9-8366e9bc378e.css */
@@ -7,16 +7,12 @@ var React = require('react');
7
7
  var core = require('@salt-ds/core');
8
8
  var icons = require('@salt-ds/icons');
9
9
  var clsx = require('clsx');
10
- var DropdownNext = require('../../dropdown-next/DropdownNext.js');
11
10
  var CalendarContext = require('./CalendarContext.js');
12
11
  var CalendarNavigation$1 = require('./CalendarNavigation.css.js');
13
12
  var date = require('@internationalized/date');
14
13
  var utils = require('./utils.js');
15
14
  var window = require('@salt-ds/window');
16
15
  var styles = require('@salt-ds/styles');
17
- var Option = require('../../option/Option.js');
18
- require('../../option/OptionGroup.js');
19
- var ListControlContext = require('../../list-control/ListControlContext.js');
20
16
 
21
17
  const withBaseName = core.makePrefixer("saltCalendarNavigation");
22
18
  function useCalendarNavigation() {
@@ -79,7 +75,7 @@ const OptionWithTooltip = ({
79
75
  disabled,
80
76
  tooltipContent
81
77
  }) => {
82
- const { activeState, openState } = ListControlContext.useListControlContext();
78
+ const { activeState, openState } = core.useListControlContext();
83
79
  const open = (activeState == null ? void 0 : activeState.value) === value;
84
80
  return /* @__PURE__ */ jsxRuntime.jsx(core.Tooltip, {
85
81
  placement: "right",
@@ -88,7 +84,7 @@ const OptionWithTooltip = ({
88
84
  content: tooltipContent,
89
85
  enterDelay: 0,
90
86
  leaveDelay: 0,
91
- children: /* @__PURE__ */ jsxRuntime.jsx(Option.Option, {
87
+ children: /* @__PURE__ */ jsxRuntime.jsx(core.Option, {
92
88
  value,
93
89
  disabled,
94
90
  children
@@ -170,7 +166,7 @@ const CalendarNavigation = React.forwardRef(function CalendarNavigation2(props,
170
166
  /* @__PURE__ */ jsxRuntime.jsxs("div", {
171
167
  className: withBaseName("dropdowns"),
172
168
  children: [
173
- /* @__PURE__ */ jsxRuntime.jsx(DropdownNext.DropdownNext, {
169
+ /* @__PURE__ */ jsxRuntime.jsx(core.Dropdown, {
174
170
  "aria-label": "Month Dropdown",
175
171
  selected: selectedMonth ? [selectedMonth] : [],
176
172
  value: formatMonth(selectedMonth),
@@ -183,7 +179,7 @@ const CalendarNavigation = React.forwardRef(function CalendarNavigation2(props,
183
179
  children: formatMonth(month)
184
180
  }, formatMonth(month)))
185
181
  }),
186
- !hideYearDropdown && /* @__PURE__ */ jsxRuntime.jsx(DropdownNext.DropdownNext, {
182
+ !hideYearDropdown && /* @__PURE__ */ jsxRuntime.jsx(core.Dropdown, {
187
183
  "aria-label": "Year Dropdown",
188
184
  selected: selectedYear ? [selectedYear] : [],
189
185
  value: formatYear(selectedYear),
@@ -1 +1 @@
1
- {"version":3,"file":"CalendarNavigation.js","sources":["../src/calendar/internal/CalendarNavigation.tsx"],"sourcesContent":["import {\n ComponentPropsWithRef,\n forwardRef,\n MouseEventHandler,\n SyntheticEvent,\n} from \"react\";\nimport { Button, ButtonProps, makePrefixer, Tooltip } from \"@salt-ds/core\";\nimport { ChevronLeftIcon, ChevronRightIcon } from \"@salt-ds/icons\";\nimport { clsx } from \"clsx\";\nimport { DropdownNext, DropdownNextProps } from \"../../dropdown-next\";\n\nimport { useCalendarContext } from \"./CalendarContext\";\n\nimport calendarNavigationCss from \"./CalendarNavigation.css\";\nimport { DateValue, isSameMonth, isSameYear } from \"@internationalized/date\";\nimport { formatDate, monthDiff, monthsForLocale } from \"./utils\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { Option, OptionProps } from \"../../option\";\nimport { useListControlContext } from \"../../list-control/ListControlContext\";\n\ntype dateDropdownProps = DropdownNextProps<DateValue>;\n\nexport interface CalendarNavigationProps extends ComponentPropsWithRef<\"div\"> {\n MonthDropdownProps?: dateDropdownProps;\n YearDropdownProps?: dateDropdownProps;\n onMonthSelect?: dateDropdownProps[\"onChange\"];\n onYearSelect?: dateDropdownProps[\"onChange\"];\n onNavigateNext?: ButtonProps[\"onClick\"];\n onNavigatePrevious?: ButtonProps[\"onClick\"];\n hideYearDropdown?: boolean;\n}\n\ninterface OptionWithTooltipProps extends OptionProps {\n value: DateValue;\n tooltipContent: string;\n}\n\nconst withBaseName = makePrefixer(\"saltCalendarNavigation\");\n\nfunction useCalendarNavigation() {\n const {\n state: { visibleMonth, minDate, maxDate },\n helpers: {\n setVisibleMonth,\n isDayVisible,\n isOutsideAllowedYears,\n isOutsideAllowedMonths,\n },\n } = useCalendarContext();\n\n const moveToNextMonth = (event: SyntheticEvent) => {\n setVisibleMonth(event, visibleMonth.add({ months: 1 }));\n };\n\n const moveToPreviousMonth = (event: SyntheticEvent) => {\n setVisibleMonth(event, visibleMonth.subtract({ months: 1 }));\n };\n\n const moveToMonth = (event: SyntheticEvent, month: DateValue) => {\n let newMonth = month;\n\n if (!isOutsideAllowedYears(newMonth)) {\n if (isOutsideAllowedMonths(newMonth)) {\n // If month is navigable we should move to the closest navigable month\n const navigableMonths = monthsForLocale(visibleMonth).filter(\n (n) => !isOutsideAllowedMonths(n)\n );\n newMonth = navigableMonths.reduce((closestMonth, currentMonth) =>\n Math.abs(monthDiff(currentMonth, newMonth)) <\n Math.abs(monthDiff(closestMonth, newMonth))\n ? currentMonth\n : closestMonth\n );\n }\n setVisibleMonth(event, newMonth);\n }\n };\n\n const months: DateValue[] = monthsForLocale(visibleMonth);\n\n const years: DateValue[] = [-2, -1, 0, 1, 2]\n .map((delta) => visibleMonth.add({ years: delta }))\n .filter((year) => !isOutsideAllowedYears(year));\n\n const selectedMonth: DateValue | undefined = months.find((month: DateValue) =>\n isSameMonth(month, visibleMonth)\n );\n const selectedYear: DateValue | undefined = years.find((year: DateValue) =>\n isSameYear(year, visibleMonth)\n );\n\n const canNavigatePrevious = !(minDate && isDayVisible(minDate));\n const canNavigateNext = !(maxDate && isDayVisible(maxDate));\n\n return {\n moveToNextMonth,\n moveToPreviousMonth,\n moveToMonth,\n visibleMonth,\n months,\n years,\n canNavigateNext,\n canNavigatePrevious,\n selectedMonth,\n selectedYear,\n isOutsideAllowedMonths,\n };\n}\n\nconst OptionWithTooltip = ({\n value,\n children,\n disabled,\n tooltipContent,\n}: OptionWithTooltipProps) => {\n const { activeState, openState } = useListControlContext();\n const open = activeState?.value === value;\n\n return (\n <Tooltip\n placement=\"right\"\n open={open && openState}\n disabled={!disabled}\n content={tooltipContent}\n enterDelay={0} // --salt-duration-instant\n leaveDelay={0} // --salt-duration-instant\n >\n <Option value={value} disabled={disabled}>\n {children}\n </Option>\n </Tooltip>\n );\n};\n\nexport const CalendarNavigation = forwardRef<\n HTMLDivElement,\n CalendarNavigationProps\n>(function CalendarNavigation(props, ref) {\n const {\n className,\n MonthDropdownProps,\n YearDropdownProps,\n hideYearDropdown,\n ...rest\n } = props;\n\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-calendar-navigation\",\n css: calendarNavigationCss,\n window: targetWindow,\n });\n\n const {\n moveToPreviousMonth,\n moveToNextMonth,\n moveToMonth,\n months,\n years,\n canNavigateNext,\n canNavigatePrevious,\n visibleMonth,\n selectedMonth,\n selectedYear,\n isOutsideAllowedMonths,\n } = useCalendarNavigation();\n\n const handleNavigatePrevious: MouseEventHandler<HTMLButtonElement> = (\n event\n ) => {\n moveToPreviousMonth(event);\n };\n\n const handleNavigateNext: MouseEventHandler<HTMLButtonElement> = (event) => {\n moveToNextMonth(event);\n };\n\n const handleMonthSelect = (event: SyntheticEvent, month: DateValue[]) => {\n moveToMonth(event, month[0]);\n };\n\n const handleYearSelect = (event: SyntheticEvent, year: DateValue[]) => {\n moveToMonth(event, year[0]);\n };\n\n const formatMonth = (date?: DateValue) => {\n return !date\n ? \"\"\n : formatDate(date, { month: hideYearDropdown ? \"long\" : \"short\" });\n };\n\n const formatYear = (date?: DateValue) => {\n return !date ? \"\" : formatDate(date, { year: \"numeric\" });\n };\n\n return (\n <div\n className={clsx(\n withBaseName(),\n { [withBaseName(\"hideYearDropdown\")]: hideYearDropdown },\n className\n )}\n ref={ref}\n {...rest}\n >\n <Tooltip\n placement=\"top\"\n disabled={canNavigatePrevious}\n content=\"Past dates are out of range\"\n enterDelay={0} // --salt-duration-instant\n leaveDelay={0} // --salt-duration-instant\n >\n <Button\n disabled={!canNavigatePrevious}\n variant=\"secondary\"\n onClick={handleNavigatePrevious}\n focusableWhenDisabled={true}\n >\n <ChevronLeftIcon\n aria-label={`Previous Month, ${formatDate(\n visibleMonth.subtract({ months: 1 })\n )}`}\n />\n </Button>\n </Tooltip>\n <div className={withBaseName(\"dropdowns\")}>\n <DropdownNext\n aria-label=\"Month Dropdown\"\n selected={selectedMonth ? [selectedMonth] : []}\n value={formatMonth(selectedMonth)}\n onSelectionChange={handleMonthSelect}\n {...MonthDropdownProps}\n >\n {months.map((month) => (\n <OptionWithTooltip\n key={formatMonth(month)}\n value={month}\n disabled={isOutsideAllowedMonths(month)}\n tooltipContent=\"This month is out of range\"\n >\n {formatMonth(month)}\n </OptionWithTooltip>\n ))}\n </DropdownNext>\n {!hideYearDropdown && (\n <DropdownNext\n aria-label=\"Year Dropdown\"\n selected={selectedYear ? [selectedYear] : []}\n value={formatYear(selectedYear)}\n onSelectionChange={handleYearSelect}\n {...YearDropdownProps}\n >\n {years.map((year) => (\n <OptionWithTooltip\n key={formatYear(year)}\n value={year}\n tooltipContent=\"This year is out of range\"\n >\n {formatYear(year)}\n </OptionWithTooltip>\n ))}\n </DropdownNext>\n )}\n </div>\n <Tooltip\n placement=\"top\"\n disabled={canNavigateNext}\n content=\"Future dates are out of range\"\n enterDelay={0} // --salt-duration-instant\n leaveDelay={0} // --salt-duration-instant\n >\n <Button\n disabled={!canNavigateNext}\n variant=\"secondary\"\n onClick={handleNavigateNext}\n focusableWhenDisabled={true}\n >\n <ChevronRightIcon\n aria-label={`Next Month, ${formatDate(\n visibleMonth.add({ months: 1 })\n )}`}\n />\n </Button>\n </Tooltip>\n </div>\n );\n});\n"],"names":["makePrefixer","useCalendarContext","monthsForLocale","monthDiff","isSameMonth","isSameYear","useListControlContext","jsx","Tooltip","Option","forwardRef","CalendarNavigation","useWindow","useComponentCssInjection","calendarNavigationCss","formatDate","jsxs","clsx","Button","ChevronLeftIcon","DropdownNext","ChevronRightIcon"],"mappings":"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"}
1
+ {"version":3,"file":"CalendarNavigation.js","sources":["../src/calendar/internal/CalendarNavigation.tsx"],"sourcesContent":["import {\n ComponentPropsWithRef,\n forwardRef,\n MouseEventHandler,\n SyntheticEvent,\n} from \"react\";\nimport {\n Button,\n ButtonProps,\n makePrefixer,\n Tooltip,\n Dropdown,\n DropdownProps,\n Option,\n OptionProps,\n useListControlContext,\n} from \"@salt-ds/core\";\nimport { ChevronLeftIcon, ChevronRightIcon } from \"@salt-ds/icons\";\nimport { clsx } from \"clsx\";\n\nimport { useCalendarContext } from \"./CalendarContext\";\n\nimport calendarNavigationCss from \"./CalendarNavigation.css\";\nimport { DateValue, isSameMonth, isSameYear } from \"@internationalized/date\";\nimport { formatDate, monthDiff, monthsForLocale } from \"./utils\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\n\ntype dateDropdownProps = DropdownProps<DateValue>;\n\nexport interface CalendarNavigationProps extends ComponentPropsWithRef<\"div\"> {\n MonthDropdownProps?: dateDropdownProps;\n YearDropdownProps?: dateDropdownProps;\n onMonthSelect?: dateDropdownProps[\"onChange\"];\n onYearSelect?: dateDropdownProps[\"onChange\"];\n onNavigateNext?: ButtonProps[\"onClick\"];\n onNavigatePrevious?: ButtonProps[\"onClick\"];\n hideYearDropdown?: boolean;\n}\n\ninterface OptionWithTooltipProps extends OptionProps {\n value: DateValue;\n tooltipContent: string;\n}\n\nconst withBaseName = makePrefixer(\"saltCalendarNavigation\");\n\nfunction useCalendarNavigation() {\n const {\n state: { visibleMonth, minDate, maxDate },\n helpers: {\n setVisibleMonth,\n isDayVisible,\n isOutsideAllowedYears,\n isOutsideAllowedMonths,\n },\n } = useCalendarContext();\n\n const moveToNextMonth = (event: SyntheticEvent) => {\n setVisibleMonth(event, visibleMonth.add({ months: 1 }));\n };\n\n const moveToPreviousMonth = (event: SyntheticEvent) => {\n setVisibleMonth(event, visibleMonth.subtract({ months: 1 }));\n };\n\n const moveToMonth = (event: SyntheticEvent, month: DateValue) => {\n let newMonth = month;\n\n if (!isOutsideAllowedYears(newMonth)) {\n if (isOutsideAllowedMonths(newMonth)) {\n // If month is navigable we should move to the closest navigable month\n const navigableMonths = monthsForLocale(visibleMonth).filter(\n (n) => !isOutsideAllowedMonths(n)\n );\n newMonth = navigableMonths.reduce((closestMonth, currentMonth) =>\n Math.abs(monthDiff(currentMonth, newMonth)) <\n Math.abs(monthDiff(closestMonth, newMonth))\n ? currentMonth\n : closestMonth\n );\n }\n setVisibleMonth(event, newMonth);\n }\n };\n\n const months: DateValue[] = monthsForLocale(visibleMonth);\n\n const years: DateValue[] = [-2, -1, 0, 1, 2]\n .map((delta) => visibleMonth.add({ years: delta }))\n .filter((year) => !isOutsideAllowedYears(year));\n\n const selectedMonth: DateValue | undefined = months.find((month: DateValue) =>\n isSameMonth(month, visibleMonth)\n );\n const selectedYear: DateValue | undefined = years.find((year: DateValue) =>\n isSameYear(year, visibleMonth)\n );\n\n const canNavigatePrevious = !(minDate && isDayVisible(minDate));\n const canNavigateNext = !(maxDate && isDayVisible(maxDate));\n\n return {\n moveToNextMonth,\n moveToPreviousMonth,\n moveToMonth,\n visibleMonth,\n months,\n years,\n canNavigateNext,\n canNavigatePrevious,\n selectedMonth,\n selectedYear,\n isOutsideAllowedMonths,\n };\n}\n\nconst OptionWithTooltip = ({\n value,\n children,\n disabled,\n tooltipContent,\n}: OptionWithTooltipProps) => {\n const { activeState, openState } = useListControlContext();\n const open = activeState?.value === value;\n\n return (\n <Tooltip\n placement=\"right\"\n open={open && openState}\n disabled={!disabled}\n content={tooltipContent}\n enterDelay={0} // --salt-duration-instant\n leaveDelay={0} // --salt-duration-instant\n >\n <Option value={value} disabled={disabled}>\n {children}\n </Option>\n </Tooltip>\n );\n};\n\nexport const CalendarNavigation = forwardRef<\n HTMLDivElement,\n CalendarNavigationProps\n>(function CalendarNavigation(props, ref) {\n const {\n className,\n MonthDropdownProps,\n YearDropdownProps,\n hideYearDropdown,\n ...rest\n } = props;\n\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-calendar-navigation\",\n css: calendarNavigationCss,\n window: targetWindow,\n });\n\n const {\n moveToPreviousMonth,\n moveToNextMonth,\n moveToMonth,\n months,\n years,\n canNavigateNext,\n canNavigatePrevious,\n visibleMonth,\n selectedMonth,\n selectedYear,\n isOutsideAllowedMonths,\n } = useCalendarNavigation();\n\n const handleNavigatePrevious: MouseEventHandler<HTMLButtonElement> = (\n event\n ) => {\n moveToPreviousMonth(event);\n };\n\n const handleNavigateNext: MouseEventHandler<HTMLButtonElement> = (event) => {\n moveToNextMonth(event);\n };\n\n const handleMonthSelect = (event: SyntheticEvent, month: DateValue[]) => {\n moveToMonth(event, month[0]);\n };\n\n const handleYearSelect = (event: SyntheticEvent, year: DateValue[]) => {\n moveToMonth(event, year[0]);\n };\n\n const formatMonth = (date?: DateValue) => {\n return !date\n ? \"\"\n : formatDate(date, { month: hideYearDropdown ? \"long\" : \"short\" });\n };\n\n const formatYear = (date?: DateValue) => {\n return !date ? \"\" : formatDate(date, { year: \"numeric\" });\n };\n\n return (\n <div\n className={clsx(\n withBaseName(),\n { [withBaseName(\"hideYearDropdown\")]: hideYearDropdown },\n className\n )}\n ref={ref}\n {...rest}\n >\n <Tooltip\n placement=\"top\"\n disabled={canNavigatePrevious}\n content=\"Past dates are out of range\"\n enterDelay={0} // --salt-duration-instant\n leaveDelay={0} // --salt-duration-instant\n >\n <Button\n disabled={!canNavigatePrevious}\n variant=\"secondary\"\n onClick={handleNavigatePrevious}\n focusableWhenDisabled={true}\n >\n <ChevronLeftIcon\n aria-label={`Previous Month, ${formatDate(\n visibleMonth.subtract({ months: 1 })\n )}`}\n />\n </Button>\n </Tooltip>\n <div className={withBaseName(\"dropdowns\")}>\n <Dropdown\n aria-label=\"Month Dropdown\"\n selected={selectedMonth ? [selectedMonth] : []}\n value={formatMonth(selectedMonth)}\n onSelectionChange={handleMonthSelect}\n {...MonthDropdownProps}\n >\n {months.map((month) => (\n <OptionWithTooltip\n key={formatMonth(month)}\n value={month}\n disabled={isOutsideAllowedMonths(month)}\n tooltipContent=\"This month is out of range\"\n >\n {formatMonth(month)}\n </OptionWithTooltip>\n ))}\n </Dropdown>\n {!hideYearDropdown && (\n <Dropdown\n aria-label=\"Year Dropdown\"\n selected={selectedYear ? [selectedYear] : []}\n value={formatYear(selectedYear)}\n onSelectionChange={handleYearSelect}\n {...YearDropdownProps}\n >\n {years.map((year) => (\n <OptionWithTooltip\n key={formatYear(year)}\n value={year}\n tooltipContent=\"This year is out of range\"\n >\n {formatYear(year)}\n </OptionWithTooltip>\n ))}\n </Dropdown>\n )}\n </div>\n <Tooltip\n placement=\"top\"\n disabled={canNavigateNext}\n content=\"Future dates are out of range\"\n enterDelay={0} // --salt-duration-instant\n leaveDelay={0} // --salt-duration-instant\n >\n <Button\n disabled={!canNavigateNext}\n variant=\"secondary\"\n onClick={handleNavigateNext}\n focusableWhenDisabled={true}\n >\n <ChevronRightIcon\n aria-label={`Next Month, ${formatDate(\n visibleMonth.add({ months: 1 })\n )}`}\n />\n </Button>\n </Tooltip>\n </div>\n );\n});\n"],"names":["makePrefixer","useCalendarContext","monthsForLocale","monthDiff","isSameMonth","isSameYear","useListControlContext","jsx","Tooltip","Option","forwardRef","CalendarNavigation","useWindow","useComponentCssInjection","calendarNavigationCss","formatDate","jsxs","clsx","Button","ChevronLeftIcon","Dropdown","ChevronRightIcon"],"mappings":"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"}