@salt-ds/lab 1.0.0-alpha.30 → 1.0.0-alpha.32

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 (147) hide show
  1. package/css/salt-lab.css +126 -176
  2. package/dist-cjs/app-header/AppHeader.css.js +1 -1
  3. package/dist-cjs/combo-box-next/ComboBoxNext.js +286 -291
  4. package/dist-cjs/combo-box-next/ComboBoxNext.js.map +1 -1
  5. package/dist-cjs/combo-box-next/useComboBoxNext.js +21 -9
  6. package/dist-cjs/combo-box-next/useComboBoxNext.js.map +1 -1
  7. package/dist-cjs/content-status/internal/StatusIndicator.js +1 -3
  8. package/dist-cjs/content-status/internal/StatusIndicator.js.map +1 -1
  9. package/dist-cjs/dialog/Dialog.css.js +1 -1
  10. package/dist-cjs/dialog/Dialog.js +70 -48
  11. package/dist-cjs/dialog/Dialog.js.map +1 -1
  12. package/dist-cjs/dialog/DialogActions.js.map +1 -1
  13. package/dist-cjs/dialog/DialogContent.css.js +1 -1
  14. package/dist-cjs/dialog/DialogContent.js +17 -8
  15. package/dist-cjs/dialog/DialogContent.js.map +1 -1
  16. package/dist-cjs/dialog/DialogContext.js +4 -1
  17. package/dist-cjs/dialog/DialogContext.js.map +1 -1
  18. package/dist-cjs/dialog/DialogTitle.css.js +1 -1
  19. package/dist-cjs/dialog/DialogTitle.js +21 -8
  20. package/dist-cjs/dialog/DialogTitle.js.map +1 -1
  21. package/dist-cjs/drawer/Drawer.css.js +1 -1
  22. package/dist-cjs/drawer/Drawer.js +61 -36
  23. package/dist-cjs/drawer/Drawer.js.map +1 -1
  24. package/dist-cjs/drawer/DrawerCloseButton.css.js +6 -0
  25. package/dist-cjs/drawer/DrawerCloseButton.css.js.map +1 -0
  26. package/dist-cjs/drawer/DrawerCloseButton.js +44 -0
  27. package/dist-cjs/drawer/DrawerCloseButton.js.map +1 -0
  28. package/dist-cjs/dropdown-next/DropdownNext.js +294 -308
  29. package/dist-cjs/dropdown-next/DropdownNext.js.map +1 -1
  30. package/dist-cjs/index.js +3 -9
  31. package/dist-cjs/index.js.map +1 -1
  32. package/dist-cjs/list-control/ListControlContext.js.map +1 -1
  33. package/dist-cjs/list-control/ListControlState.js +21 -20
  34. package/dist-cjs/list-control/ListControlState.js.map +1 -1
  35. package/dist-cjs/option/Option.js +0 -4
  36. package/dist-cjs/option/Option.js.map +1 -1
  37. package/dist-cjs/option/OptionList.css.js +1 -1
  38. package/dist-cjs/parent-child-layout/ParentChildLayout.css.js +1 -1
  39. package/dist-cjs/parent-child-layout/ParentChildLayout.js +30 -38
  40. package/dist-cjs/parent-child-layout/ParentChildLayout.js.map +1 -1
  41. package/dist-cjs/slider/Slider.css.js +1 -1
  42. package/dist-cjs/stepped-tracker/TrackerConnector/TrackerConnector.css.js +1 -1
  43. package/dist-cjs/tabs-next/TabNext.css.js +1 -1
  44. package/dist-cjs/tabs-next/TabstripNext.css.js +1 -1
  45. package/dist-es/app-header/AppHeader.css.js +1 -1
  46. package/dist-es/combo-box-next/ComboBoxNext.js +287 -292
  47. package/dist-es/combo-box-next/ComboBoxNext.js.map +1 -1
  48. package/dist-es/combo-box-next/useComboBoxNext.js +21 -9
  49. package/dist-es/combo-box-next/useComboBoxNext.js.map +1 -1
  50. package/dist-es/content-status/internal/StatusIndicator.js +1 -3
  51. package/dist-es/content-status/internal/StatusIndicator.js.map +1 -1
  52. package/dist-es/dialog/Dialog.css.js +1 -1
  53. package/dist-es/dialog/Dialog.js +73 -52
  54. package/dist-es/dialog/Dialog.js.map +1 -1
  55. package/dist-es/dialog/DialogActions.js.map +1 -1
  56. package/dist-es/dialog/DialogContent.css.js +1 -1
  57. package/dist-es/dialog/DialogContent.js +19 -10
  58. package/dist-es/dialog/DialogContent.js.map +1 -1
  59. package/dist-es/dialog/DialogContext.js +4 -1
  60. package/dist-es/dialog/DialogContext.js.map +1 -1
  61. package/dist-es/dialog/DialogTitle.css.js +1 -1
  62. package/dist-es/dialog/DialogTitle.js +22 -9
  63. package/dist-es/dialog/DialogTitle.js.map +1 -1
  64. package/dist-es/drawer/Drawer.css.js +1 -1
  65. package/dist-es/drawer/Drawer.js +65 -39
  66. package/dist-es/drawer/Drawer.js.map +1 -1
  67. package/dist-es/drawer/DrawerCloseButton.css.js +4 -0
  68. package/dist-es/drawer/DrawerCloseButton.css.js.map +1 -0
  69. package/dist-es/drawer/DrawerCloseButton.js +36 -0
  70. package/dist-es/drawer/DrawerCloseButton.js.map +1 -0
  71. package/dist-es/dropdown-next/DropdownNext.js +295 -309
  72. package/dist-es/dropdown-next/DropdownNext.js.map +1 -1
  73. package/dist-es/index.js +3 -6
  74. package/dist-es/index.js.map +1 -1
  75. package/dist-es/list-control/ListControlContext.js.map +1 -1
  76. package/dist-es/list-control/ListControlState.js +21 -20
  77. package/dist-es/list-control/ListControlState.js.map +1 -1
  78. package/dist-es/option/Option.js +0 -4
  79. package/dist-es/option/Option.js.map +1 -1
  80. package/dist-es/option/OptionList.css.js +1 -1
  81. package/dist-es/parent-child-layout/ParentChildLayout.css.js +1 -1
  82. package/dist-es/parent-child-layout/ParentChildLayout.js +32 -40
  83. package/dist-es/parent-child-layout/ParentChildLayout.js.map +1 -1
  84. package/dist-es/slider/Slider.css.js +1 -1
  85. package/dist-es/stepped-tracker/TrackerConnector/TrackerConnector.css.js +1 -1
  86. package/dist-es/tabs-next/TabNext.css.js +1 -1
  87. package/dist-es/tabs-next/TabstripNext.css.js +1 -1
  88. package/dist-types/combo-box-next/ComboBoxNext.d.ts +13 -3
  89. package/dist-types/combo-box-next/useComboBoxNext.d.ts +13 -16
  90. package/dist-types/content-status/internal/StatusIndicator.d.ts +1 -1
  91. package/dist-types/dialog/Dialog.d.ts +25 -2
  92. package/dist-types/dialog/DialogContext.d.ts +2 -2
  93. package/dist-types/dialog/DialogTitle.d.ts +19 -5
  94. package/dist-types/drawer/Drawer.d.ts +13 -7
  95. package/dist-types/drawer/DrawerCloseButton.d.ts +2 -0
  96. package/dist-types/drawer/index.d.ts +1 -1
  97. package/dist-types/dropdown-next/DropdownNext.d.ts +13 -3
  98. package/dist-types/index.d.ts +0 -2
  99. package/dist-types/list-control/ListControlContext.d.ts +12 -11
  100. package/dist-types/list-control/ListControlState.d.ts +21 -21
  101. package/dist-types/option/Option.d.ts +1 -1
  102. package/dist-types/parent-child-layout/ParentChildLayout.d.ts +8 -13
  103. package/package.json +2 -2
  104. package/dist-cjs/dialog/useDialog.js +0 -31
  105. package/dist-cjs/dialog/useDialog.js.map +0 -1
  106. package/dist-cjs/drawer/useDrawer.js +0 -31
  107. package/dist-cjs/drawer/useDrawer.js.map +0 -1
  108. package/dist-cjs/parent-child-item/ParentChildItem.css.js +0 -6
  109. package/dist-cjs/parent-child-item/ParentChildItem.css.js.map +0 -1
  110. package/dist-cjs/parent-child-item/ParentChildItem.js +0 -48
  111. package/dist-cjs/parent-child-item/ParentChildItem.js.map +0 -1
  112. package/dist-cjs/progress/CircularProgress/CircularProgress.css.js +0 -6
  113. package/dist-cjs/progress/CircularProgress/CircularProgress.css.js.map +0 -1
  114. package/dist-cjs/progress/CircularProgress/CircularProgress.js +0 -89
  115. package/dist-cjs/progress/CircularProgress/CircularProgress.js.map +0 -1
  116. package/dist-cjs/progress/Info.js +0 -20
  117. package/dist-cjs/progress/Info.js.map +0 -1
  118. package/dist-cjs/progress/LinearProgress/LinearProgress.css.js +0 -6
  119. package/dist-cjs/progress/LinearProgress/LinearProgress.css.js.map +0 -1
  120. package/dist-cjs/progress/LinearProgress/LinearProgress.js +0 -63
  121. package/dist-cjs/progress/LinearProgress/LinearProgress.js.map +0 -1
  122. package/dist-es/dialog/useDialog.js +0 -27
  123. package/dist-es/dialog/useDialog.js.map +0 -1
  124. package/dist-es/drawer/useDrawer.js +0 -27
  125. package/dist-es/drawer/useDrawer.js.map +0 -1
  126. package/dist-es/parent-child-item/ParentChildItem.css.js +0 -4
  127. package/dist-es/parent-child-item/ParentChildItem.css.js.map +0 -1
  128. package/dist-es/parent-child-item/ParentChildItem.js +0 -44
  129. package/dist-es/parent-child-item/ParentChildItem.js.map +0 -1
  130. package/dist-es/progress/CircularProgress/CircularProgress.css.js +0 -4
  131. package/dist-es/progress/CircularProgress/CircularProgress.css.js.map +0 -1
  132. package/dist-es/progress/CircularProgress/CircularProgress.js +0 -85
  133. package/dist-es/progress/CircularProgress/CircularProgress.js.map +0 -1
  134. package/dist-es/progress/Info.js +0 -16
  135. package/dist-es/progress/Info.js.map +0 -1
  136. package/dist-es/progress/LinearProgress/LinearProgress.css.js +0 -4
  137. package/dist-es/progress/LinearProgress/LinearProgress.css.js.map +0 -1
  138. package/dist-es/progress/LinearProgress/LinearProgress.js +0 -59
  139. package/dist-es/progress/LinearProgress/LinearProgress.js.map +0 -1
  140. package/dist-types/dialog/useDialog.d.ts +0 -25
  141. package/dist-types/drawer/useDrawer.d.ts +0 -25
  142. package/dist-types/parent-child-item/ParentChildItem.d.ts +0 -31
  143. package/dist-types/parent-child-item/index.d.ts +0 -1
  144. package/dist-types/progress/CircularProgress/CircularProgress.d.ts +0 -25
  145. package/dist-types/progress/Info.d.ts +0 -6
  146. package/dist-types/progress/LinearProgress/LinearProgress.d.ts +0 -26
  147. package/dist-types/progress/index.d.ts +0 -2
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var css_248z = "/* Class applied to root Tab element */\n.saltTabNext {\n align-items: center;\n justify-content: center;\n appearance: none;\n -webkit-appearance: none;\n display: inline-flex;\n background: var(--salt-navigable-primary-background);\n gap: var(--salt-spacing-100);\n border: none;\n border-left: var(--salt-size-border) var(--salt-container-borderStyle) transparent;\n border-right: var(--salt-size-border) var(--salt-container-borderStyle) transparent;\n border-radius: 0;\n white-space: pre;\n min-height: calc(var(--salt-size-base) + var(--salt-spacing-100));\n min-width: 4em;\n padding: var(--salt-spacing-50) var(--salt-spacing-100);\n position: relative;\n flex-shrink: 0;\n\n cursor: var(--salt-navigable-cursor-hover);\n color: var(--salt-content-primary-foreground);\n font-weight: var(--salt-navigable-fontWeight);\n font-family: var(--salt-text-fontFamily);\n text-align: var(--salt-text-textAlign);\n letter-spacing: var(--salt-text-letterSpacing);\n line-height: var(--salt-text-lineHeight);\n font-size: var(--salt-text-fontSize);\n}\n\n.saltTabNext-primary {\n --tabNext-background-active: var(--salt-container-primary-background);\n}\n\n.saltTabNext-secondary {\n --tabNext-background-active: var(--salt-container-secondary-background);\n}\n\n.saltTabNext::after {\n content: \"\";\n position: absolute;\n left: calc(var(--salt-size-border) * -1);\n right: calc(var(--salt-size-border) * -1);\n height: var(--salt-size-indicator);\n}\n\n.saltTabNext-main::after {\n top: 0;\n}\n\n.saltTabNext-inline::after {\n bottom: 0;\n}\n\n.saltTabNext:hover::after,\n.saltTabNext:focus-visible::after {\n background: var(--salt-navigable-indicator-hover);\n}\n\n.saltTabNext:disabled:hover::after,\n.saltTabNext:disabled:focus-visible::after {\n background: none;\n}\n\n.saltTabNext:focus-visible {\n outline: var(--salt-focused-outline);\n}\n\n.saltTabNext-main[aria-selected=\"true\"] {\n background: var(--tabNext-background-active);\n border-left: var(--salt-size-border) var(--salt-container-borderStyle) var(--salt-container-primary-borderColor);\n border-right: var(--salt-size-border) var(--salt-container-borderStyle) var(--salt-container-primary-borderColor);\n}\n\n.saltTabNext[aria-selected=\"true\"]::after {\n background: var(--salt-navigable-indicator-active);\n}\n\n.saltTabNext:disabled {\n cursor: var(--salt-navigable-cursor-disabled);\n color: var(--salt-content-primary-foreground-disabled);\n}\n";
3
+ var css_248z = "/* Class applied to root Tab element */\n.saltTabNext {\n align-items: center;\n justify-content: center;\n appearance: none;\n -webkit-appearance: none;\n display: inline-flex;\n background: var(--salt-navigable-primary-background);\n gap: var(--salt-spacing-100);\n border: none;\n border-left: var(--salt-size-border) var(--salt-container-borderStyle) transparent;\n border-right: var(--salt-size-border) var(--salt-container-borderStyle) transparent;\n border-radius: 0;\n white-space: pre;\n min-height: calc(var(--salt-size-base) + var(--salt-spacing-100));\n min-width: 4em;\n padding: var(--salt-spacing-50) var(--salt-spacing-100);\n position: relative;\n flex-shrink: 0;\n\n cursor: var(--salt-navigable-cursor-hover);\n color: var(--salt-content-primary-foreground);\n font-weight: var(--salt-navigable-fontWeight);\n font-family: var(--salt-text-fontFamily);\n text-align: var(--salt-text-textAlign);\n letter-spacing: var(--salt-text-letterSpacing);\n line-height: var(--salt-text-lineHeight);\n font-size: var(--salt-text-fontSize);\n}\n\n.saltTabNext-primary {\n --tabNext-background-active: var(--salt-container-primary-background);\n}\n\n.saltTabNext-secondary {\n --tabNext-background-active: var(--salt-container-secondary-background);\n}\n\n.saltTabNext::after {\n content: \"\";\n position: absolute;\n left: calc(var(--salt-size-border) * -1);\n right: calc(var(--salt-size-border) * -1);\n height: var(--salt-size-indicator);\n}\n\n.saltTabNext-main::after {\n top: 0;\n}\n\n.saltTabNext-inline::after {\n bottom: 0;\n}\n\n.saltTabNext:hover::after,\n.saltTabNext:focus-visible::after {\n background: var(--salt-navigable-indicator-hover);\n}\n\n.saltTabNext:disabled:hover::after,\n.saltTabNext:disabled:focus-visible::after {\n background: none;\n}\n\n.saltTabNext:focus-visible {\n outline: var(--salt-focused-outline);\n}\n\n.saltTabNext-main[aria-selected=\"true\"] {\n background: var(--tabNext-background-active);\n border-left: var(--salt-size-border) var(--salt-separable-borderStyle) var(--salt-separable-secondary-borderColor);\n border-right: var(--salt-size-border) var(--salt-separable-borderStyle) var(--salt-separable-secondary-borderColor);\n}\n\n.saltTabNext[aria-selected=\"true\"]::after {\n background: var(--salt-navigable-indicator-active);\n}\n\n.saltTabNext:disabled {\n cursor: var(--salt-navigable-cursor-disabled);\n color: var(--salt-content-primary-foreground-disabled);\n}\n";
4
4
 
5
5
  module.exports = css_248z;
6
6
  //# sourceMappingURL=TabNext.css.js.map
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var css_248z = "/* Component class applied to the root element */\n.saltTabstripNext {\n display: flex;\n flex-wrap: nowrap;\n justify-content: var(--tabstripNext-justifyContent);\n align-items: center;\n position: relative;\n background: transparent;\n width: 100%;\n\n font-family: var(--salt-text-fontFamily);\n font-size: var(--salt-text-fontSize);\n font-weight: var(--salt-text-fontWeight);\n line-height: var(--salt-text-lineHeight);\n}\n\n.saltTabstripNext-main {\n padding-left: var(--salt-spacing-300);\n padding-right: var(--salt-spacing-300);\n}\n\n.saltTabstripNext-main::before {\n content: \"\";\n position: absolute;\n inset: auto 0 0 0;\n height: var(--salt-size-border);\n border-bottom: var(--salt-size-border) var(--salt-container-borderStyle) var(--salt-container-primary-borderColor);\n}\n\n.saltTabstripNext .saltTabNext-wrapper:not(:last-child) {\n padding-right: var(--salt-spacing-100);\n}\n";
3
+ var css_248z = "/* Component class applied to the root element */\n.saltTabstripNext {\n display: flex;\n flex-wrap: nowrap;\n justify-content: var(--tabstripNext-justifyContent);\n align-items: center;\n position: relative;\n background: transparent;\n width: 100%;\n\n font-family: var(--salt-text-fontFamily);\n font-size: var(--salt-text-fontSize);\n font-weight: var(--salt-text-fontWeight);\n line-height: var(--salt-text-lineHeight);\n}\n\n.saltTabstripNext-main {\n padding-left: var(--salt-spacing-300);\n padding-right: var(--salt-spacing-300);\n}\n\n.saltTabstripNext-main::before {\n content: \"\";\n position: absolute;\n inset: auto 0 0 0;\n height: var(--salt-size-border);\n border-bottom: var(--salt-size-border) var(--salt-separable-borderStyle) var(--salt-separable-secondary-borderColor);\n}\n\n.saltTabstripNext .saltTabNext-wrapper:not(:last-child) {\n padding-right: var(--salt-spacing-100);\n}\n";
4
4
 
5
5
  module.exports = css_248z;
6
6
  //# sourceMappingURL=TabstripNext.css.js.map
@@ -1,4 +1,4 @@
1
- var css_248z = ".salt-density-medium,\n.salt-density-low,\n.salt-density-touch {\n --appHeader-height: var(--saltAppHeader-height, calc(var(--salt-size-base) + var(--salt-size-unit) * 2));\n}\n\n.salt-density-high {\n --appHeader-height: var(--saltAppHeader-height, calc(var(--salt-size-base) + var(--salt-size-unit) * 3));\n}\n\n.saltAppHeader {\n --appHeader-background: var(--salt-container-primary-background);\n --appHeader-separable-bar: var(--salt-separable-secondary-borderColor);\n --appHeader-shadow: var(--saltAppHeader-shadow, var(--salt-overlayable-shadow-region));\n --appHeader-padding: var(--salt-size-container-spacing);\n --appHeader-paddingLeft: 8px;\n --appHeader-paddingRight: var(--appHeader-padding);\n\n --saltToolbar-width: auto;\n}\n\n.saltAppHeader .saltTabstrip {\n --saltTabs-tabstrip-height: var(--appHeader-height);\n /* App header has its own bottom border, so remove tabs line but keeping activation indicator */\n --saltTabs-activationIndicator-height: 0px;\n --saltTabs-activationIndicator-thumb-inset: -2px 0 0 0;\n}\n\n.saltAppHeader {\n align-items: flex-start;\n background: var(--appHeader-background);\n border-bottom: var(--salt-container-borderStyle) var(--salt-size-border) var(--salt-container-primary-borderColor);\n box-shadow: var(--appHeader-shadow);\n box-sizing: content-box;\n display: flex;\n flex: 0 0 auto;\n height: var(--appHeader-height);\n overflow: hidden;\n padding: 0 var(--appHeader-paddingRight) 0 var(--appHeader-paddingLeft);\n width: 100%;\n}\n\n.saltAppHeader > .Responsive-inner {\n width: 100%;\n /* overflow: hidden; */\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n /* justify-content: space-between; */\n flex: 1;\n min-height: var(--appHeader-height);\n}\n\n.saltAppHeader > .Responsive-inner > .responsive-pillar {\n width: 0;\n height: var(--appHeader-height);\n}\n\n.saltAppHeader-navMenu {\n margin-right: 12px;\n padding-right: 8px;\n}\n\n.saltAppHeader-navMenu::after {\n top: 0;\n right: 0;\n width: var(--salt-size-border);\n bottom: 0;\n content: \"\";\n position: absolute;\n background: var(--appHeader-separable-bar);\n}\n\n.saltAppHeader .saltLogo:not(.saltLogo-compact) {\n margin-left: 16px;\n}\n\n.saltAppHeader > .Responsive-inner > .Tabstrip {\n align-self: flex-end;\n flex: 0 0 auto;\n margin-left: 48px;\n}\n\n.saltAppHeader > .Responsive-inner > [data-pad-end] {\n margin-right: auto;\n}\n\n.saltAppHeader > .Responsive-inner > * {\n flex-shrink: 0;\n}\n\n.saltAppHeader > .Responsive-inner > .Toolbar {\n justify-content: flex-end;\n margin-left: 48px;\n}\n\n.saltAppHeader > .Responsive-inner > [data-pad-start=\"true\"] {\n margin-left: auto;\n}\n\n.saltAppHeader > .Responsive-inner[data-collapsing=\"true\"] {\n flex-wrap: nowrap;\n}\n\n.saltAppHeader > .Responsive-inner > *[data-collapsing=\"true\"] {\n flex-shrink: 1;\n}\n\n.saltAppHeader > .Responsive-inner > *[data-collapsible=\"dynamic\"][data-collapsed=\"true\"] {\n flex-basis: 0;\n flex-grow: 0;\n flex-shrink: 0;\n}\n";
1
+ var css_248z = ".salt-density-medium,\n.salt-density-low,\n.salt-density-touch {\n --appHeader-height: var(--saltAppHeader-height, calc(var(--salt-size-base) + var(--salt-size-unit) * 2));\n}\n\n.salt-density-high {\n --appHeader-height: var(--saltAppHeader-height, calc(var(--salt-size-base) + var(--salt-size-unit) * 3));\n}\n\n.saltAppHeader {\n --appHeader-background: var(--salt-container-primary-background);\n --appHeader-separable-bar: var(--salt-separable-secondary-borderColor);\n --appHeader-shadow: var(--saltAppHeader-shadow, var(--salt-overlayable-shadow-region));\n --appHeader-padding: var(--salt-size-container-spacing);\n --appHeader-paddingLeft: 8px;\n --appHeader-paddingRight: var(--appHeader-padding);\n\n --saltToolbar-width: auto;\n}\n\n.saltAppHeader .saltTabstrip {\n --saltTabs-tabstrip-height: var(--appHeader-height);\n /* App header has its own bottom border, so remove tabs line but keeping activation indicator */\n --saltTabs-activationIndicator-height: 0px;\n --saltTabs-activationIndicator-thumb-inset: -2px 0 0 0;\n}\n\n.saltAppHeader {\n align-items: flex-start;\n background: var(--appHeader-background);\n border-bottom: var(--salt-separable-borderStyle) var(--salt-size-border) var(--salt-separable-primary-borderColor);\n box-shadow: var(--appHeader-shadow);\n box-sizing: content-box;\n display: flex;\n flex: 0 0 auto;\n height: var(--appHeader-height);\n overflow: hidden;\n padding: 0 var(--appHeader-paddingRight) 0 var(--appHeader-paddingLeft);\n width: 100%;\n}\n\n.saltAppHeader > .Responsive-inner {\n width: 100%;\n /* overflow: hidden; */\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n /* justify-content: space-between; */\n flex: 1;\n min-height: var(--appHeader-height);\n}\n\n.saltAppHeader > .Responsive-inner > .responsive-pillar {\n width: 0;\n height: var(--appHeader-height);\n}\n\n.saltAppHeader-navMenu {\n margin-right: 12px;\n padding-right: 8px;\n}\n\n.saltAppHeader-navMenu::after {\n top: 0;\n right: 0;\n width: var(--salt-size-border);\n bottom: 0;\n content: \"\";\n position: absolute;\n background: var(--appHeader-separable-bar);\n}\n\n.saltAppHeader .saltLogo:not(.saltLogo-compact) {\n margin-left: 16px;\n}\n\n.saltAppHeader > .Responsive-inner > .Tabstrip {\n align-self: flex-end;\n flex: 0 0 auto;\n margin-left: 48px;\n}\n\n.saltAppHeader > .Responsive-inner > [data-pad-end] {\n margin-right: auto;\n}\n\n.saltAppHeader > .Responsive-inner > * {\n flex-shrink: 0;\n}\n\n.saltAppHeader > .Responsive-inner > .Toolbar {\n justify-content: flex-end;\n margin-left: 48px;\n}\n\n.saltAppHeader > .Responsive-inner > [data-pad-start=\"true\"] {\n margin-left: auto;\n}\n\n.saltAppHeader > .Responsive-inner[data-collapsing=\"true\"] {\n flex-wrap: nowrap;\n}\n\n.saltAppHeader > .Responsive-inner > *[data-collapsing=\"true\"] {\n flex-shrink: 1;\n}\n\n.saltAppHeader > .Responsive-inner > *[data-collapsible=\"dynamic\"][data-collapsed=\"true\"] {\n flex-basis: 0;\n flex-grow: 0;\n flex-shrink: 0;\n}\n";
2
2
 
3
3
  export { css_248z as default };
4
4
  //# sourceMappingURL=AppHeader.css.js.map
@@ -3,314 +3,309 @@ import { forwardRef, useRef, useEffect } from 'react';
3
3
  import { makePrefixer, useFormFieldProps, useFloatingComponent, useFloatingUI, useForkRef, useId, Input, Button } from '@salt-ds/core';
4
4
  import { ListControlContext } from '../list-control/ListControlContext.js';
5
5
  import { clsx } from 'clsx';
6
- import { size, flip } from '@floating-ui/react';
6
+ import { size, flip, useInteractions, useDismiss, useFocus, useClick } from '@floating-ui/react';
7
7
  import { ChevronUpIcon, ChevronDownIcon } from '@salt-ds/icons';
8
8
  import { useComboBoxNext } from './useComboBoxNext.js';
9
9
  import { OptionList } from '../option/OptionList.js';
10
10
 
11
11
  const withBaseName = makePrefixer("saltComboBoxNext");
12
- const ComboBoxNext = forwardRef(
13
- function ComboBox(props, ref) {
14
- var _a, _b;
15
- const {
16
- children,
17
- className,
18
- disabled: disabledProp,
19
- endAdornment,
20
- readOnly: readOnlyProp,
21
- multiselect,
22
- onSelectionChange,
23
- selected,
24
- defaultSelected,
25
- defaultOpen,
26
- onOpenChange,
27
- onChange,
28
- open,
29
- inputProps: inputPropsProp,
30
- variant = "primary",
31
- onClick,
32
- onKeyDown,
33
- onFocus,
34
- onBlur,
35
- value,
36
- defaultValue,
37
- ...rest
38
- } = props;
39
- const {
40
- a11yProps: { "aria-labelledby": formFieldLabelledBy } = {},
41
- disabled: formFieldDisabled,
42
- readOnly: formFieldReadOnly
43
- } = useFormFieldProps();
44
- const disabled = Boolean(disabledProp) || formFieldDisabled;
45
- const readOnly = Boolean(readOnlyProp) || formFieldReadOnly;
46
- const listControl = useComboBoxNext({
47
- open,
48
- defaultOpen,
49
- onOpenChange,
50
- multiselect,
51
- defaultSelected,
52
- selected,
53
- onSelectionChange,
54
- value,
55
- defaultValue
56
- });
57
- const {
58
- activeState,
59
- setActive,
60
- openState,
61
- setOpen,
62
- openKey,
63
- getOptionAtIndex,
64
- getIndexOfOption,
65
- getOptionsMatching,
66
- options,
67
- selectedState,
68
- select,
69
- clear,
70
- setFocusVisibleState,
71
- focusedState,
72
- setFocusedState,
73
- listRef,
74
- valueState,
75
- setValueState
76
- } = listControl;
77
- const { Component: FloatingComponent } = useFloatingComponent();
78
- const { x, y, strategy, elements, floating, reference } = useFloatingUI({
79
- open,
80
- placement: "bottom-start",
81
- middleware: [
82
- size({
83
- apply({ rects, elements: elements2, availableHeight }) {
84
- Object.assign(elements2.floating.style, {
85
- minWidth: `${rects.reference.width}px`,
86
- maxHeight: `max(calc(${availableHeight}px - var(--salt-spacing-100)), calc((var(--salt-size-base) + var(--salt-spacing-100)) * 5))`
87
- });
88
- }
89
- }),
90
- flip({ fallbackStrategy: "initialPlacement" })
91
- ]
92
- });
93
- const handleRef = useForkRef(reference, ref);
94
- const inputRef = useRef(null);
95
- const handleButtonClick = (event) => {
96
- if (!readOnly) {
97
- event.stopPropagation();
98
- setFocusVisibleState(false);
99
- setOpen(event, !openState);
100
- }
101
- };
102
- const handleButtonFocus = () => {
103
- var _a2;
104
- (_a2 = inputRef.current) == null ? void 0 : _a2.focus();
105
- };
106
- const handleKeyDown = (event) => {
107
- const currentIndex = activeState ? getIndexOfOption(activeState) : -1;
108
- const count = options.length - 1;
109
- if (readOnly) {
12
+ const ComboBoxNext = forwardRef(function ComboBox(props, ref) {
13
+ var _a, _b;
14
+ const {
15
+ children,
16
+ className,
17
+ disabled: disabledProp,
18
+ endAdornment,
19
+ readOnly: readOnlyProp,
20
+ multiselect,
21
+ onSelectionChange,
22
+ selected,
23
+ defaultSelected,
24
+ defaultOpen,
25
+ onOpenChange,
26
+ onChange,
27
+ open,
28
+ inputProps: inputPropsProp,
29
+ variant = "primary",
30
+ onClick,
31
+ onKeyDown,
32
+ onFocus,
33
+ onBlur,
34
+ value,
35
+ defaultValue,
36
+ ...rest
37
+ } = props;
38
+ const {
39
+ a11yProps: { "aria-labelledby": formFieldLabelledBy } = {},
40
+ disabled: formFieldDisabled,
41
+ readOnly: formFieldReadOnly
42
+ } = useFormFieldProps();
43
+ const disabled = Boolean(disabledProp) || formFieldDisabled;
44
+ const readOnly = Boolean(readOnlyProp) || formFieldReadOnly;
45
+ const inputRef = useRef(null);
46
+ const listControl = useComboBoxNext({
47
+ open,
48
+ defaultOpen,
49
+ onOpenChange,
50
+ multiselect,
51
+ defaultSelected,
52
+ selected,
53
+ onSelectionChange,
54
+ value,
55
+ defaultValue,
56
+ disabled,
57
+ readOnly
58
+ });
59
+ const {
60
+ activeState,
61
+ setActive,
62
+ openState,
63
+ setOpen,
64
+ openKey,
65
+ getOptionAtIndex,
66
+ getIndexOfOption,
67
+ getOptionsMatching,
68
+ options,
69
+ selectedState,
70
+ select,
71
+ clear,
72
+ setFocusVisibleState,
73
+ focusedState,
74
+ setFocusedState,
75
+ listRef,
76
+ valueState,
77
+ setValueState
78
+ } = listControl;
79
+ const { Component: FloatingComponent } = useFloatingComponent();
80
+ const handleOpenChange = (newOpen, _event, reason) => {
81
+ const focusNotBlur = reason === "focus" && newOpen;
82
+ if (readOnly || focusNotBlur)
83
+ return;
84
+ setOpen(newOpen);
85
+ };
86
+ const { x, y, strategy, elements, floating, reference, context } = useFloatingUI({
87
+ open: openState && !readOnly && children != void 0,
88
+ onOpenChange: handleOpenChange,
89
+ placement: "bottom-start",
90
+ middleware: [
91
+ size({
92
+ apply({ rects, elements: elements2, availableHeight }) {
93
+ Object.assign(elements2.floating.style, {
94
+ minWidth: `${rects.reference.width}px`,
95
+ maxHeight: `max(calc(${availableHeight}px - var(--salt-spacing-100)), calc((var(--salt-size-base) + var(--salt-spacing-100)) * 5))`
96
+ });
97
+ }
98
+ }),
99
+ flip({ fallbackStrategy: "initialPlacement" })
100
+ ]
101
+ });
102
+ const { getReferenceProps, getFloatingProps } = useInteractions([
103
+ useDismiss(context),
104
+ useFocus(context),
105
+ useClick(context, { keyboardHandlers: false })
106
+ ]);
107
+ const handleRef = useForkRef(reference, ref);
108
+ const handleButtonClick = (event) => {
109
+ if (!readOnly) {
110
+ event.stopPropagation();
111
+ setFocusVisibleState(false);
112
+ setOpen(!openState, "manual");
113
+ }
114
+ };
115
+ const handleButtonFocus = () => {
116
+ var _a2;
117
+ (_a2 = inputRef.current) == null ? void 0 : _a2.focus();
118
+ };
119
+ const handleKeyDown = (event) => {
120
+ const currentIndex = activeState ? getIndexOfOption(activeState) : -1;
121
+ const count = options.length - 1;
122
+ if (readOnly) {
123
+ return;
124
+ }
125
+ if (!openState) {
126
+ if (event.key === "ArrowDown" || event.key === "ArrowUp") {
127
+ setOpen(true, void 0, event.key);
110
128
  return;
111
129
  }
112
- if (!openState) {
113
- if (event.key === "ArrowDown" || event.key === "ArrowUp") {
114
- setOpen(event, true);
130
+ }
131
+ let newActive;
132
+ switch (event.key) {
133
+ case "ArrowDown":
134
+ newActive = getOptionAtIndex(Math.min(count, currentIndex + 1));
135
+ break;
136
+ case "ArrowUp":
137
+ newActive = getOptionAtIndex(Math.max(0, currentIndex - 1));
138
+ break;
139
+ case "Home":
140
+ newActive = getOptionAtIndex(0);
141
+ break;
142
+ case "End":
143
+ newActive = getOptionAtIndex(count);
144
+ break;
145
+ case "PageUp":
146
+ newActive = getOptionAtIndex(Math.max(0, currentIndex - 10));
147
+ break;
148
+ case "PageDown":
149
+ newActive = getOptionAtIndex(Math.min(count, currentIndex + 10));
150
+ break;
151
+ case "Enter":
152
+ if (openState && (activeState == null ? void 0 : activeState.disabled)) {
153
+ event.preventDefault();
115
154
  return;
116
155
  }
117
- }
118
- let newActive;
119
- switch (event.key) {
120
- case "ArrowDown":
121
- newActive = getOptionAtIndex(Math.min(count, currentIndex + 1));
122
- break;
123
- case "ArrowUp":
124
- newActive = getOptionAtIndex(Math.max(0, currentIndex - 1));
125
- break;
126
- case "Home":
127
- newActive = getOptionAtIndex(0);
128
- break;
129
- case "End":
130
- newActive = getOptionAtIndex(count);
131
- break;
132
- case "PageUp":
133
- newActive = getOptionAtIndex(Math.max(0, currentIndex - 10));
134
- break;
135
- case "PageDown":
136
- newActive = getOptionAtIndex(Math.min(count, currentIndex + 10));
137
- break;
138
- case "Enter":
139
- if (openState && (activeState == null ? void 0 : activeState.disabled)) {
140
- event.preventDefault();
141
- return;
142
- }
143
- if (!openState || !activeState) {
144
- return;
145
- }
146
- select(event, activeState);
147
- if (!multiselect) {
148
- event.preventDefault();
149
- setOpen(event, false);
150
- }
151
- break;
152
- case "Escape":
153
- setOpen(event, false);
154
- break;
155
- case "Tab":
156
- if (!multiselect && activeState) {
157
- select(event, activeState);
158
- }
159
- break;
160
- }
161
- if (newActive && (newActive == null ? void 0 : newActive.id) != (activeState == null ? void 0 : activeState.id)) {
162
- event.preventDefault();
163
- setActive(newActive);
164
- setFocusVisibleState(true);
165
- }
166
- onKeyDown == null ? void 0 : onKeyDown(event);
167
- };
168
- const handleFocus = (event) => {
169
- setFocusedState(true);
170
- onFocus == null ? void 0 : onFocus(event);
171
- };
172
- const ignoreBlur = useRef(false);
173
- const handleBlur = (event) => {
174
- if (!ignoreBlur.current) {
175
- setOpen(event, false);
176
- }
177
- ignoreBlur.current = false;
178
- setFocusedState(false);
179
- onBlur == null ? void 0 : onBlur(event);
180
- };
181
- const handleClick = (event) => {
182
- if (!readOnly) {
183
- setOpen(event, true);
184
- }
185
- onClick == null ? void 0 : onClick(event);
186
- };
187
- const handleChange = (event) => {
188
- if (!openState) {
189
- setOpen(event, true);
190
- }
191
- if (event.target.value === "" && !multiselect) {
192
- clear(event);
193
- }
194
- setValueState(event.target.value);
195
- queueMicrotask(() => {
196
- const newOption = getOptionAtIndex(0);
197
- if (newOption) {
198
- setActive(newOption);
156
+ if (!openState || !activeState) {
157
+ return;
199
158
  }
200
- });
201
- onChange == null ? void 0 : onChange(event);
202
- };
203
- const handleListMouseOver = () => {
204
- setFocusVisibleState(false);
205
- };
206
- const handleListMouseDown = () => {
207
- ignoreBlur.current = true;
208
- };
209
- const handleListFocus = () => {
210
- var _a2;
211
- (_a2 = inputRef.current) == null ? void 0 : _a2.focus();
212
- };
213
- const handleListClick = () => {
214
- var _a2;
215
- (_a2 = inputRef.current) == null ? void 0 : _a2.focus();
216
- };
217
- useEffect(() => {
218
- const activeIndex = activeState ? getIndexOfOption(activeState) : -1;
219
- if (openState && activeIndex < 0) {
220
- if (openKey.current.key === "ArrowDown") {
221
- setActive(getOptionAtIndex(0));
222
- } else if (openKey.current.key === "ArrowUp") {
223
- setActive(getOptionAtIndex(options.length - 1));
224
- } else {
225
- if (selectedState.length > 0) {
226
- const selected2 = getOptionsMatching(
227
- (option) => option.value === selectedState[0]
228
- ).pop();
229
- if (selected2) {
230
- setActive(selected2);
231
- }
232
- } else {
233
- setActive(getOptionAtIndex(0));
234
- }
159
+ select(event, activeState);
160
+ if (!multiselect) {
161
+ event.preventDefault();
235
162
  }
236
- } else if (!openState) {
237
- setActive(void 0);
163
+ break;
164
+ case "Tab":
165
+ if (!multiselect && activeState) {
166
+ select(event, activeState);
167
+ }
168
+ break;
169
+ }
170
+ if (newActive && (newActive == null ? void 0 : newActive.id) != (activeState == null ? void 0 : activeState.id)) {
171
+ event.preventDefault();
172
+ setActive(newActive);
173
+ setFocusVisibleState(true);
174
+ }
175
+ onKeyDown == null ? void 0 : onKeyDown(event);
176
+ };
177
+ const handleFocus = (event) => {
178
+ setFocusedState(true);
179
+ onFocus == null ? void 0 : onFocus(event);
180
+ };
181
+ const handleBlur = (event) => {
182
+ setFocusedState(false);
183
+ onBlur == null ? void 0 : onBlur(event);
184
+ };
185
+ const handleChange = (event) => {
186
+ if (!openState) {
187
+ setOpen(true, "input");
188
+ }
189
+ if (event.target.value === "" && !multiselect) {
190
+ clear(event);
191
+ }
192
+ setValueState(event.target.value);
193
+ queueMicrotask(() => {
194
+ const newOption = getOptionAtIndex(0);
195
+ if (newOption) {
196
+ setActive(newOption);
197
+ }
198
+ });
199
+ onChange == null ? void 0 : onChange(event);
200
+ };
201
+ const handleListMouseOver = () => {
202
+ setFocusVisibleState(false);
203
+ };
204
+ const handleFocusInput = () => {
205
+ var _a2;
206
+ (_a2 = inputRef.current) == null ? void 0 : _a2.focus();
207
+ };
208
+ useEffect(() => {
209
+ const activeIndex = activeState ? getIndexOfOption(activeState) : -1;
210
+ let newActive = void 0;
211
+ if (activeIndex > 0) {
212
+ return;
213
+ }
214
+ if (!openState) {
215
+ setActive(void 0);
216
+ return;
217
+ }
218
+ if (selectedState.length > 0) {
219
+ newActive = getOptionsMatching(
220
+ (option) => option.value === selectedState[0]
221
+ ).pop();
222
+ }
223
+ if (!newActive) {
224
+ if (openKey.current === "ArrowDown") {
225
+ newActive = getOptionAtIndex(0);
226
+ } else if (openKey.current === "ArrowUp") {
227
+ newActive = getOptionAtIndex(options.length - 1);
238
228
  }
239
- }, [openState, children]);
240
- const buttonId = useId();
241
- const listId = useId();
242
- return /* @__PURE__ */ jsxs(ListControlContext.Provider, {
243
- value: listControl,
244
- children: [
245
- /* @__PURE__ */ jsx(Input, {
246
- className: clsx(withBaseName(), className),
247
- endAdornment: /* @__PURE__ */ jsxs(Fragment, {
248
- children: [
249
- endAdornment,
250
- !readOnly ? /* @__PURE__ */ jsx(Button, {
251
- "aria-labelledby": clsx(buttonId, formFieldLabelledBy),
252
- "aria-label": "Show options",
253
- "aria-expanded": openState,
254
- "aria-controls": openState ? listId : void 0,
255
- "aria-haspopup": "listbox",
256
- disabled,
257
- variant: "secondary",
258
- onClick: handleButtonClick,
259
- onFocus: handleButtonFocus,
260
- tabIndex: -1,
261
- children: openState ? /* @__PURE__ */ jsx(ChevronUpIcon, {
262
- "aria-hidden": true
263
- }) : /* @__PURE__ */ jsx(ChevronDownIcon, {
264
- "aria-hidden": true
265
- })
266
- }) : void 0
267
- ]
268
- }),
269
- onClick: handleClick,
229
+ }
230
+ if (!newActive) {
231
+ newActive = getOptionAtIndex(0);
232
+ }
233
+ setActive(newActive);
234
+ }, [openState, children]);
235
+ const buttonId = useId();
236
+ const listId = useId();
237
+ return /* @__PURE__ */ jsxs(ListControlContext.Provider, {
238
+ value: listControl,
239
+ children: [
240
+ /* @__PURE__ */ jsx(Input, {
241
+ className: clsx(withBaseName(), className),
242
+ endAdornment: /* @__PURE__ */ jsxs(Fragment, {
243
+ children: [
244
+ endAdornment,
245
+ !readOnly ? /* @__PURE__ */ jsx(Button, {
246
+ "aria-labelledby": clsx(buttonId, formFieldLabelledBy),
247
+ "aria-label": "Show options",
248
+ "aria-expanded": openState,
249
+ "aria-controls": openState ? listId : void 0,
250
+ "aria-haspopup": "listbox",
251
+ disabled,
252
+ variant: "secondary",
253
+ onClick: handleButtonClick,
254
+ onFocus: handleButtonFocus,
255
+ tabIndex: -1,
256
+ children: openState ? /* @__PURE__ */ jsx(ChevronUpIcon, {
257
+ "aria-hidden": true
258
+ }) : /* @__PURE__ */ jsx(ChevronDownIcon, {
259
+ "aria-hidden": true
260
+ })
261
+ }) : void 0
262
+ ]
263
+ }),
264
+ onChange: handleChange,
265
+ role: "combobox",
266
+ disabled,
267
+ readOnly,
268
+ inputProps: {
269
+ role: "combobox",
270
+ "aria-expanded": openState,
271
+ "aria-multiselectable": multiselect,
272
+ "aria-controls": openState ? listId : void 0,
273
+ ...inputPropsProp
274
+ },
275
+ "aria-activedescendant": activeState == null ? void 0 : activeState.id,
276
+ variant,
277
+ inputRef,
278
+ value: valueState,
279
+ ref: handleRef,
280
+ ...getReferenceProps({
270
281
  onBlur: handleBlur,
271
282
  onFocus: handleFocus,
272
283
  onKeyDown: handleKeyDown,
273
- onChange: handleChange,
274
- role: "combobox",
275
- disabled,
276
- readOnly,
277
- inputProps: {
278
- role: "combobox",
279
- "aria-expanded": openState,
280
- "aria-multiselectable": multiselect,
281
- "aria-controls": openState ? listId : void 0,
282
- ...inputPropsProp
283
- },
284
- "aria-activedescendant": activeState == null ? void 0 : activeState.id,
285
- variant,
286
- inputRef,
287
- value: valueState,
288
- ...rest,
289
- ref: handleRef
290
- }),
291
- /* @__PURE__ */ jsx(FloatingComponent, {
292
- open: (openState || focusedState) && !readOnly,
293
- left: x != null ? x : 0,
294
- top: y != null ? y : 0,
295
- position: strategy,
296
- width: (_a = elements.floating) == null ? void 0 : _a.offsetWidth,
297
- height: (_b = elements.floating) == null ? void 0 : _b.offsetHeight,
298
- ref: floating,
299
- children: /* @__PURE__ */ jsx(OptionList, {
300
- collapsed: !openState,
301
- ref: listRef,
302
- id: listId,
303
- onMouseOver: handleListMouseOver,
304
- onMouseDown: handleListMouseDown,
305
- onFocus: handleListFocus,
306
- onClick: handleListClick,
307
- children
308
- })
284
+ ...rest
309
285
  })
310
- ]
311
- });
312
- }
313
- );
286
+ }),
287
+ /* @__PURE__ */ jsx(FloatingComponent, {
288
+ open: (openState || focusedState) && !readOnly && children != void 0,
289
+ ...getFloatingProps(),
290
+ left: x != null ? x : 0,
291
+ top: y != null ? y : 0,
292
+ position: strategy,
293
+ width: (_a = elements.floating) == null ? void 0 : _a.offsetWidth,
294
+ height: (_b = elements.floating) == null ? void 0 : _b.offsetHeight,
295
+ ref: floating,
296
+ children: /* @__PURE__ */ jsx(OptionList, {
297
+ collapsed: !openState,
298
+ ref: listRef,
299
+ id: listId,
300
+ onMouseOver: handleListMouseOver,
301
+ onFocus: handleFocusInput,
302
+ onClick: handleFocusInput,
303
+ children
304
+ })
305
+ })
306
+ ]
307
+ });
308
+ });
314
309
 
315
310
  export { ComboBoxNext };
316
311
  //# sourceMappingURL=ComboBoxNext.js.map