@danske/sapphire-react-lab 0.103.0 → 0.105.1

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 (77) hide show
  1. package/README.md +2 -1
  2. package/build/cjs/index.js +1970 -748
  3. package/build/cjs/index.js.map +1 -1
  4. package/build/esm/Accordion/index.js +3 -1
  5. package/build/esm/Accordion/index.js.map +1 -1
  6. package/build/esm/Accordion/src/Accordion.js +28 -22
  7. package/build/esm/Accordion/src/Accordion.js.map +1 -1
  8. package/build/esm/Accordion/src/AccordionContext.js +2 -1
  9. package/build/esm/Accordion/src/AccordionContext.js.map +1 -1
  10. package/build/esm/Accordion/src/AccordionHeading.js +30 -10
  11. package/build/esm/Accordion/src/AccordionHeading.js.map +1 -1
  12. package/build/esm/Accordion/src/AccordionItem.js +54 -52
  13. package/build/esm/Accordion/src/AccordionItem.js.map +1 -1
  14. package/build/esm/Accordion/src/AccordionPanel.js +58 -0
  15. package/build/esm/Accordion/src/AccordionPanel.js.map +1 -0
  16. package/build/esm/Accordion/src/utils.js +7 -0
  17. package/build/esm/Accordion/src/utils.js.map +1 -0
  18. package/build/esm/Amount/src/Amount.js +76 -0
  19. package/build/esm/Amount/src/Amount.js.map +1 -0
  20. package/build/esm/Amount/src/useGroupAmount.js +35 -0
  21. package/build/esm/Amount/src/useGroupAmount.js.map +1 -0
  22. package/build/esm/Autocomplete/src/Autocomplete.js +13 -3
  23. package/build/esm/Autocomplete/src/Autocomplete.js.map +1 -1
  24. package/build/esm/Breadcrumbs/src/BreadcrumbItemStatic.js +31 -9
  25. package/build/esm/Breadcrumbs/src/BreadcrumbItemStatic.js.map +1 -1
  26. package/build/esm/Breadcrumbs/src/BreadcrumbOverflowMenu.js +1 -2
  27. package/build/esm/Breadcrumbs/src/BreadcrumbOverflowMenu.js.map +1 -1
  28. package/build/esm/Filtering/src/FilterDropdown.js +8 -3
  29. package/build/esm/Filtering/src/FilterDropdown.js.map +1 -1
  30. package/build/esm/Filtering/src/SearchableSelectFilter.js +3 -1
  31. package/build/esm/Filtering/src/SearchableSelectFilter.js.map +1 -1
  32. package/build/esm/NumberField/src/NumberField.js +53 -21
  33. package/build/esm/NumberField/src/NumberField.js.map +1 -1
  34. package/build/esm/NumberField/src/StepperButton.js +8 -4
  35. package/build/esm/NumberField/src/StepperButton.js.map +1 -1
  36. package/build/esm/NumberField/src/cursorHelpers.js +55 -0
  37. package/build/esm/NumberField/src/cursorHelpers.js.map +1 -0
  38. package/build/esm/NumberField/src/formatHelpers.js +81 -0
  39. package/build/esm/NumberField/src/formatHelpers.js.map +1 -0
  40. package/build/esm/NumberField/src/keyboardHelpers.js +120 -0
  41. package/build/esm/NumberField/src/keyboardHelpers.js.map +1 -0
  42. package/build/esm/NumberField/src/useNumberFieldFormatting.js +94 -0
  43. package/build/esm/NumberField/src/useNumberFieldFormatting.js.map +1 -0
  44. package/build/esm/NumberField/src/useSapphireNumberField.js +1 -1
  45. package/build/esm/NumberField/src/useSapphireNumberField.js.map +1 -1
  46. package/build/esm/Sidebar/index.js +23 -0
  47. package/build/esm/Sidebar/index.js.map +1 -0
  48. package/build/esm/Sidebar/src/Body.js +56 -0
  49. package/build/esm/Sidebar/src/Body.js.map +1 -0
  50. package/build/esm/Sidebar/src/ExpandableItem.js +133 -0
  51. package/build/esm/Sidebar/src/ExpandableItem.js.map +1 -0
  52. package/build/esm/Sidebar/src/Header.js +55 -0
  53. package/build/esm/Sidebar/src/Header.js.map +1 -0
  54. package/build/esm/Sidebar/src/Item.js +56 -0
  55. package/build/esm/Sidebar/src/Item.js.map +1 -0
  56. package/build/esm/Sidebar/src/List.js +52 -0
  57. package/build/esm/Sidebar/src/List.js.map +1 -0
  58. package/build/esm/Sidebar/src/Panel.js +104 -0
  59. package/build/esm/Sidebar/src/Panel.js.map +1 -0
  60. package/build/esm/Sidebar/src/ResponsiveSidebarContext.js +42 -0
  61. package/build/esm/Sidebar/src/ResponsiveSidebarContext.js.map +1 -0
  62. package/build/esm/Sidebar/src/SecondarySidebarContext.js +35 -0
  63. package/build/esm/Sidebar/src/SecondarySidebarContext.js.map +1 -0
  64. package/build/esm/Sidebar/src/Section.js +66 -0
  65. package/build/esm/Sidebar/src/Section.js.map +1 -0
  66. package/build/esm/Sidebar/src/Sidebar.js +114 -0
  67. package/build/esm/Sidebar/src/Sidebar.js.map +1 -0
  68. package/build/esm/Sidebar/src/useSidebar.js +29 -0
  69. package/build/esm/Sidebar/src/useSidebar.js.map +1 -0
  70. package/build/esm/TagGroup/src/Tag.js +31 -23
  71. package/build/esm/TagGroup/src/Tag.js.map +1 -1
  72. package/build/esm/index.js +2 -0
  73. package/build/esm/index.js.map +1 -1
  74. package/build/index.d.ts +238 -27
  75. package/package.json +35 -35
  76. package/build/esm/Accordion/src/useTreeState.js +0 -42
  77. package/build/esm/Accordion/src/useTreeState.js.map +0 -1
@@ -4,41 +4,44 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var React = require('react');
6
6
  var clsx = require('clsx');
7
- var accordion = require('@react-aria/accordion');
8
7
  var utils = require('@react-aria/utils');
9
8
  var styles = require('@danske/sapphire-css/components/accordion/accordion.module.css');
10
9
  var sapphireReact = require('@danske/sapphire-react');
11
10
  var focus = require('@react-aria/focus');
12
- var collections = require('@react-stately/collections');
11
+ var reactAriaComponents = require('react-aria-components');
13
12
  var react = require('@danske/sapphire-icons/react');
14
- var tree = require('@react-stately/tree');
15
13
  var alertStyles = require('@danske/sapphire-css/components/alert/alert.module.css');
16
- var combobox = require('@react-aria/combobox');
17
14
  var i18n = require('@react-aria/i18n');
15
+ var styles$1 = require('@danske/sapphire-css/components/amount/amount.module.css');
16
+ var combobox = require('@react-aria/combobox');
18
17
  var utils$1 = require('@react-spectrum/utils');
19
18
  var breadcrumbs = require('@react-aria/breadcrumbs');
20
- var collections$1 = require('@react-aria/collections');
21
- var reactAriaComponents = require('react-aria-components');
22
- var styles$1 = require('@danske/sapphire-css/components/breadcrumbs/breadcrumbs.module.css');
23
- var styles$2 = require('@danske/sapphire-css/components/dropzone/dropzone.module.css');
19
+ var collections = require('@react-aria/collections');
20
+ var styles$2 = require('@danske/sapphire-css/components/breadcrumbs/breadcrumbs.module.css');
21
+ var styles$3 = require('@danske/sapphire-css/components/dropzone/dropzone.module.css');
24
22
  var interactions = require('@react-aria/interactions');
25
23
  var dnd = require('@react-aria/dnd');
26
24
  var visuallyHidden = require('@react-aria/visually-hidden');
27
25
  var utils$2 = require('@react-stately/utils');
28
- var styles$3 = require('@danske/sapphire-css/components/filterDropdown/filterDropdown.module.css');
29
- var styles$4 = require('@danske/sapphire-css/components/flag/flag.module.css');
26
+ var styles$4 = require('@danske/sapphire-css/components/filterDropdown/filterDropdown.module.css');
27
+ var styles$5 = require('@danske/sapphire-css/components/flag/flag.module.css');
30
28
  var label = require('@react-aria/label');
31
29
  var textFieldStyles = require('@danske/sapphire-css/components/textField/textField.module.css');
32
30
  var numberfield$1 = require('@react-aria/numberfield');
33
31
  var numberfield = require('@react-stately/numberfield');
34
- var styles$5 = require('@danske/sapphire-css/components/progressIndicator/progressIndicator.module.css');
32
+ var styles$6 = require('@danske/sapphire-css/components/sidebar/sidebar.module.css');
33
+ var buttonStyles = require('@danske/sapphire-css/components/button/button.module.css');
34
+ var reactTransitionGroup = require('react-transition-group');
35
+ var listbox = require('@react-aria/listbox');
36
+ var styles$7 = require('@danske/sapphire-css/components/progressIndicator/progressIndicator.module.css');
35
37
  var progress = require('@react-aria/progress');
36
- var styles$6 = require('@danske/sapphire-css/components/slider/slider.module.css');
38
+ var styles$8 = require('@danske/sapphire-css/components/slider/slider.module.css');
37
39
  var tag = require('@react-aria/tag');
38
40
  var list = require('@react-stately/list');
39
- var styles$7 = require('@danske/sapphire-css/components/tag/tag.module.css');
41
+ var styles$9 = require('@danske/sapphire-css/components/tag/tag.module.css');
40
42
  var button = require('@react-aria/button');
41
- var styles$8 = require('@danske/sapphire-css/components/dateField/dateField.module.css');
43
+ var collections$1 = require('@react-stately/collections');
44
+ var styles$a = require('@danske/sapphire-css/components/dateField/dateField.module.css');
42
45
  var datepicker = require('@react-aria/datepicker');
43
46
  var datepicker$1 = require('@react-stately/datepicker');
44
47
 
@@ -52,14 +55,18 @@ var styles__default$1 = /*#__PURE__*/_interopDefaultLegacy(styles$1);
52
55
  var styles__default$2 = /*#__PURE__*/_interopDefaultLegacy(styles$2);
53
56
  var styles__default$3 = /*#__PURE__*/_interopDefaultLegacy(styles$3);
54
57
  var styles__default$4 = /*#__PURE__*/_interopDefaultLegacy(styles$4);
55
- var textFieldStyles__default = /*#__PURE__*/_interopDefaultLegacy(textFieldStyles);
56
58
  var styles__default$5 = /*#__PURE__*/_interopDefaultLegacy(styles$5);
59
+ var textFieldStyles__default = /*#__PURE__*/_interopDefaultLegacy(textFieldStyles);
57
60
  var styles__default$6 = /*#__PURE__*/_interopDefaultLegacy(styles$6);
61
+ var buttonStyles__default = /*#__PURE__*/_interopDefaultLegacy(buttonStyles);
58
62
  var styles__default$7 = /*#__PURE__*/_interopDefaultLegacy(styles$7);
59
63
  var styles__default$8 = /*#__PURE__*/_interopDefaultLegacy(styles$8);
64
+ var styles__default$9 = /*#__PURE__*/_interopDefaultLegacy(styles$9);
65
+ var styles__default$a = /*#__PURE__*/_interopDefaultLegacy(styles$a);
60
66
 
61
67
  const AccordionContext = React__default["default"].createContext({
62
- sidePadding: void 0
68
+ sidePadding: void 0,
69
+ headerLevel: 5
63
70
  });
64
71
  function useAccordionContext() {
65
72
  const context = React.useContext(AccordionContext);
@@ -69,254 +76,297 @@ function useAccordionContext() {
69
76
  throw new Error("Accordion context can only be used within Accordion component.");
70
77
  }
71
78
 
72
- var __defProp$n = Object.defineProperty;
73
- var __defProps$m = Object.defineProperties;
74
- var __getOwnPropDescs$m = Object.getOwnPropertyDescriptors;
75
- var __getOwnPropSymbols$o = Object.getOwnPropertySymbols;
76
- var __hasOwnProp$o = Object.prototype.hasOwnProperty;
77
- var __propIsEnum$o = Object.prototype.propertyIsEnumerable;
78
- var __defNormalProp$n = (obj, key, value) => key in obj ? __defProp$n(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
79
- var __spreadValues$n = (a, b) => {
80
- for (var prop in b || (b = {}))
81
- if (__hasOwnProp$o.call(b, prop))
82
- __defNormalProp$n(a, prop, b[prop]);
83
- if (__getOwnPropSymbols$o)
84
- for (var prop of __getOwnPropSymbols$o(b)) {
85
- if (__propIsEnum$o.call(b, prop))
86
- __defNormalProp$n(a, prop, b[prop]);
87
- }
88
- return a;
89
- };
90
- var __spreadProps$m = (a, b) => __defProps$m(a, __getOwnPropDescs$m(b));
91
- const customPaddingStyleProps = (sidePadding) => ({
92
- paddingLeft: typeof sidePadding === "string" ? sidePadding : `${sidePadding}px`,
93
- paddingRight: typeof sidePadding === "string" ? sidePadding : `${sidePadding}px`
94
- });
95
- function _AccordionItem(props) {
96
- const { state, item } = props;
97
- const { sidePadding } = useAccordionContext();
98
- const isOpen = state.expandedKeys.has(item.key);
99
- const isDisabled = state.disabledKeys.has(item.key);
100
- const { focusProps, isFocusVisible } = focus.useFocusRing();
101
- const ref = React.useRef(null);
102
- const { buttonProps, regionProps } = accordion.useAccordionItem(props, state, ref);
103
- const onKeyDown = (e) => {
104
- e.stopPropagation();
105
- };
106
- return /* @__PURE__ */ React__default["default"].createElement("div", {
107
- className: clsx__default["default"](styles__default["default"]["sapphire-accordion__item"], {
108
- [styles__default["default"]["sapphire-accordion__item--open"]]: isOpen,
109
- [styles__default["default"]["is-disabled"]]: isDisabled
110
- })
111
- }, /* @__PURE__ */ React__default["default"].createElement("div", {
112
- role: "heading",
113
- "aria-level": props.headerLevel
114
- }, /* @__PURE__ */ React__default["default"].createElement("button", __spreadProps$m(__spreadValues$n({}, utils.mergeProps(buttonProps, focusProps)), {
115
- "aria-disabled": isDisabled,
116
- ref,
117
- className: clsx__default["default"](styles__default["default"]["sapphire-accordion__item-header"], styles__default["default"]["js-focus"], {
118
- [styles__default["default"]["is-focus"]]: isFocusVisible
119
- }),
120
- style: sapphireReact.withTruthyZero(sidePadding) ? customPaddingStyleProps(sidePadding) : {}
121
- }), /* @__PURE__ */ React__default["default"].createElement(sapphireReact.Typography.Heading, {
122
- level: 6
123
- }, item.props.heading), /* @__PURE__ */ React__default["default"].createElement("div", {
124
- className: clsx__default["default"](styles__default["default"]["sapphire-accordion__item-arrow"])
125
- }, /* @__PURE__ */ React__default["default"].createElement(sapphireReact.Icon, {
126
- size: "lg"
127
- }, /* @__PURE__ */ React__default["default"].createElement(react.ChevronDown, null))))), /* @__PURE__ */ React__default["default"].createElement("div", __spreadProps$m(__spreadValues$n({}, utils.mergeProps(regionProps, { onKeyDown })), {
128
- "aria-hidden": !isOpen,
129
- className: clsx__default["default"](styles__default["default"]["sapphire-accordion__item-content-wrapper"])
130
- }), /* @__PURE__ */ React__default["default"].createElement("div", {
131
- className: clsx__default["default"](styles__default["default"]["sapphire-accordion__item-content"]),
132
- style: sapphireReact.withTruthyZero(sidePadding) ? customPaddingStyleProps(sidePadding) : {}
133
- }, item.props.children)));
134
- }
135
- const AccordionItem = collections.Item;
136
-
137
- var __defProp$m = Object.defineProperty;
138
- var __defProps$l = Object.defineProperties;
139
- var __getOwnPropDescs$l = Object.getOwnPropertyDescriptors;
140
- var __getOwnPropSymbols$n = Object.getOwnPropertySymbols;
141
- var __hasOwnProp$n = Object.prototype.hasOwnProperty;
142
- var __propIsEnum$n = Object.prototype.propertyIsEnumerable;
143
- var __defNormalProp$m = (obj, key, value) => key in obj ? __defProp$m(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
144
- var __spreadValues$m = (a, b) => {
145
- for (var prop in b || (b = {}))
146
- if (__hasOwnProp$n.call(b, prop))
147
- __defNormalProp$m(a, prop, b[prop]);
148
- if (__getOwnPropSymbols$n)
149
- for (var prop of __getOwnPropSymbols$n(b)) {
150
- if (__propIsEnum$n.call(b, prop))
151
- __defNormalProp$m(a, prop, b[prop]);
152
- }
153
- return a;
154
- };
155
- var __spreadProps$l = (a, b) => __defProps$l(a, __getOwnPropDescs$l(b));
156
- function useTreeState(props) {
157
- const state = tree.useTreeState(props);
158
- const onToggle = (key) => {
159
- state.setExpandedKeys(toggleKey(state.expandedKeys, key, props.expansionMode));
160
- };
161
- return __spreadProps$l(__spreadValues$m({}, state), { toggleKey: onToggle });
162
- }
163
- function toggleKey(set, key, expansionMode = "multiple") {
164
- const res = new Set(set);
165
- if (res.has(key)) {
166
- res.delete(key);
167
- } else {
168
- if (expansionMode === "single")
169
- res.clear();
170
- res.add(key);
171
- }
172
- return res;
173
- }
174
-
175
- var __defProp$l = Object.defineProperty;
176
- var __defProps$k = Object.defineProperties;
177
- var __getOwnPropDescs$k = Object.getOwnPropertyDescriptors;
178
- var __getOwnPropSymbols$m = Object.getOwnPropertySymbols;
179
- var __hasOwnProp$m = Object.prototype.hasOwnProperty;
180
- var __propIsEnum$m = Object.prototype.propertyIsEnumerable;
181
- var __defNormalProp$l = (obj, key, value) => key in obj ? __defProp$l(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
182
- var __spreadValues$l = (a, b) => {
79
+ var __defProp$x = Object.defineProperty;
80
+ var __defProps$u = Object.defineProperties;
81
+ var __getOwnPropDescs$u = Object.getOwnPropertyDescriptors;
82
+ var __getOwnPropSymbols$x = Object.getOwnPropertySymbols;
83
+ var __hasOwnProp$x = Object.prototype.hasOwnProperty;
84
+ var __propIsEnum$x = Object.prototype.propertyIsEnumerable;
85
+ var __defNormalProp$x = (obj, key, value) => key in obj ? __defProp$x(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
86
+ var __spreadValues$x = (a, b) => {
183
87
  for (var prop in b || (b = {}))
184
- if (__hasOwnProp$m.call(b, prop))
185
- __defNormalProp$l(a, prop, b[prop]);
186
- if (__getOwnPropSymbols$m)
187
- for (var prop of __getOwnPropSymbols$m(b)) {
188
- if (__propIsEnum$m.call(b, prop))
189
- __defNormalProp$l(a, prop, b[prop]);
88
+ if (__hasOwnProp$x.call(b, prop))
89
+ __defNormalProp$x(a, prop, b[prop]);
90
+ if (__getOwnPropSymbols$x)
91
+ for (var prop of __getOwnPropSymbols$x(b)) {
92
+ if (__propIsEnum$x.call(b, prop))
93
+ __defNormalProp$x(a, prop, b[prop]);
190
94
  }
191
95
  return a;
192
96
  };
193
- var __spreadProps$k = (a, b) => __defProps$k(a, __getOwnPropDescs$k(b));
194
- var __objRest$j = (source, exclude) => {
97
+ var __spreadProps$u = (a, b) => __defProps$u(a, __getOwnPropDescs$u(b));
98
+ var __objRest$u = (source, exclude) => {
195
99
  var target = {};
196
100
  for (var prop in source)
197
- if (__hasOwnProp$m.call(source, prop) && exclude.indexOf(prop) < 0)
101
+ if (__hasOwnProp$x.call(source, prop) && exclude.indexOf(prop) < 0)
198
102
  target[prop] = source[prop];
199
- if (source != null && __getOwnPropSymbols$m)
200
- for (var prop of __getOwnPropSymbols$m(source)) {
201
- if (exclude.indexOf(prop) < 0 && __propIsEnum$m.call(source, prop))
103
+ if (source != null && __getOwnPropSymbols$x)
104
+ for (var prop of __getOwnPropSymbols$x(source)) {
105
+ if (exclude.indexOf(prop) < 0 && __propIsEnum$x.call(source, prop))
202
106
  target[prop] = source[prop];
203
107
  }
204
108
  return target;
205
109
  };
206
- const _Accordion$1 = (_a, ref) => {
110
+ const Accordion = React.forwardRef(function Accordion2(_a, ref) {
207
111
  var _b = _a, {
208
- expansionMode = "multiple",
112
+ allowsMultipleExpanded = true,
209
113
  headerLevel = 5,
210
114
  hideLastDivider = false,
211
115
  hasNegativeSideMargin = false,
212
- sidePadding
213
- } = _b, props = __objRest$j(_b, [
214
- "expansionMode",
116
+ sidePadding,
117
+ children,
118
+ expandedKeys,
119
+ defaultExpandedKeys,
120
+ onExpandedChange,
121
+ isDisabled
122
+ } = _b, props = __objRest$u(_b, [
123
+ "allowsMultipleExpanded",
215
124
  "headerLevel",
216
125
  "hideLastDivider",
217
126
  "hasNegativeSideMargin",
218
- "sidePadding"
127
+ "sidePadding",
128
+ "children",
129
+ "expandedKeys",
130
+ "defaultExpandedKeys",
131
+ "onExpandedChange",
132
+ "isDisabled"
219
133
  ]);
220
134
  sapphireReact.useThemeCheck();
221
135
  const { styleProps } = sapphireReact.useSapphireStyleProps(props);
222
- const state = useTreeState(__spreadProps$k(__spreadValues$l({}, props), { expansionMode }));
223
136
  const forwardedRef = utils.useObjectRef(ref);
224
- const { accordionProps } = accordion.useAccordion(props, state, forwardedRef);
225
- return /* @__PURE__ */ React__default["default"].createElement(AccordionContext.Provider, {
226
- value: { sidePadding }
227
- }, /* @__PURE__ */ React__default["default"].createElement("div", __spreadProps$k(__spreadValues$l({}, utils.mergeProps(accordionProps, utils.filterDOMProps(props, { global: true, labelable: true }))), {
137
+ return /* @__PURE__ */ React__default["default"].createElement(focus.FocusScope, null, /* @__PURE__ */ React__default["default"].createElement(AccordionContext.Provider, {
138
+ value: { sidePadding, headerLevel }
139
+ }, /* @__PURE__ */ React__default["default"].createElement(reactAriaComponents.DisclosureGroup, __spreadProps$u(__spreadValues$x({}, utils.filterDOMProps(props, { global: true, labelable: true })), {
140
+ allowsMultipleExpanded,
141
+ expandedKeys,
142
+ defaultExpandedKeys,
143
+ onExpandedChange,
144
+ isDisabled,
228
145
  ref: forwardedRef,
229
146
  className: clsx__default["default"](styles__default["default"]["sapphire-accordion"], {
230
147
  [styles__default["default"]["sapphire-accordion--without-last-divider"]]: hideLastDivider,
231
148
  [styles__default["default"]["sapphire-accordion--negative-margin-self"]]: !sapphireReact.withTruthyZero(sidePadding) && hasNegativeSideMargin
232
149
  }, styleProps.className),
233
- style: __spreadValues$l(__spreadValues$l({}, sapphireReact.withTruthyZero(sidePadding) && hasNegativeSideMargin ? {
150
+ style: __spreadValues$x(__spreadValues$x({}, sapphireReact.withTruthyZero(sidePadding) && hasNegativeSideMargin ? {
234
151
  marginLeft: typeof sidePadding === "string" ? `calc(${sidePadding} * -1)` : `-${sidePadding}px`,
235
152
  width: `calc(100% + calc(${sidePadding} * 2${typeof sidePadding === "string" ? "" : "px"}))`
236
153
  } : {}), styleProps.style)
237
- }), Array.from(state.collection).map((item) => /* @__PURE__ */ React__default["default"].createElement(_AccordionItem, {
238
- headerLevel,
239
- key: item.key,
240
- item,
241
- state
242
- }))));
243
- };
244
- const Accordion = React.forwardRef(_Accordion$1);
154
+ }), children)));
155
+ });
245
156
 
246
- var __defProp$k = Object.defineProperty;
247
- var __defProps$j = Object.defineProperties;
248
- var __getOwnPropDescs$j = Object.getOwnPropertyDescriptors;
249
- var __getOwnPropSymbols$l = Object.getOwnPropertySymbols;
250
- var __hasOwnProp$l = Object.prototype.hasOwnProperty;
251
- var __propIsEnum$l = Object.prototype.propertyIsEnumerable;
252
- var __defNormalProp$k = (obj, key, value) => key in obj ? __defProp$k(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
253
- var __spreadValues$k = (a, b) => {
157
+ const customPaddingStyleProps = (sidePadding) => ({
158
+ paddingLeft: typeof sidePadding === "string" ? sidePadding : `${sidePadding}px`,
159
+ paddingRight: typeof sidePadding === "string" ? sidePadding : `${sidePadding}px`
160
+ });
161
+
162
+ var __defProp$w = Object.defineProperty;
163
+ var __defProps$t = Object.defineProperties;
164
+ var __getOwnPropDescs$t = Object.getOwnPropertyDescriptors;
165
+ var __getOwnPropSymbols$w = Object.getOwnPropertySymbols;
166
+ var __hasOwnProp$w = Object.prototype.hasOwnProperty;
167
+ var __propIsEnum$w = Object.prototype.propertyIsEnumerable;
168
+ var __defNormalProp$w = (obj, key, value) => key in obj ? __defProp$w(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
169
+ var __spreadValues$w = (a, b) => {
254
170
  for (var prop in b || (b = {}))
255
- if (__hasOwnProp$l.call(b, prop))
256
- __defNormalProp$k(a, prop, b[prop]);
257
- if (__getOwnPropSymbols$l)
258
- for (var prop of __getOwnPropSymbols$l(b)) {
259
- if (__propIsEnum$l.call(b, prop))
260
- __defNormalProp$k(a, prop, b[prop]);
171
+ if (__hasOwnProp$w.call(b, prop))
172
+ __defNormalProp$w(a, prop, b[prop]);
173
+ if (__getOwnPropSymbols$w)
174
+ for (var prop of __getOwnPropSymbols$w(b)) {
175
+ if (__propIsEnum$w.call(b, prop))
176
+ __defNormalProp$w(a, prop, b[prop]);
261
177
  }
262
178
  return a;
263
179
  };
264
- var __spreadProps$j = (a, b) => __defProps$j(a, __getOwnPropDescs$j(b));
265
- var __objRest$i = (source, exclude) => {
180
+ var __spreadProps$t = (a, b) => __defProps$t(a, __getOwnPropDescs$t(b));
181
+ var __objRest$t = (source, exclude) => {
266
182
  var target = {};
267
183
  for (var prop in source)
268
- if (__hasOwnProp$l.call(source, prop) && exclude.indexOf(prop) < 0)
184
+ if (__hasOwnProp$w.call(source, prop) && exclude.indexOf(prop) < 0)
269
185
  target[prop] = source[prop];
270
- if (source != null && __getOwnPropSymbols$l)
271
- for (var prop of __getOwnPropSymbols$l(source)) {
272
- if (exclude.indexOf(prop) < 0 && __propIsEnum$l.call(source, prop))
186
+ if (source != null && __getOwnPropSymbols$w)
187
+ for (var prop of __getOwnPropSymbols$w(source)) {
188
+ if (exclude.indexOf(prop) < 0 && __propIsEnum$w.call(source, prop))
273
189
  target[prop] = source[prop];
274
190
  }
275
191
  return target;
276
192
  };
277
- const AccordionHeading = (_a) => {
278
- var _b = _a, {
279
- children
280
- } = _b, props = __objRest$i(_b, [
281
- "children"
282
- ]);
283
- return /* @__PURE__ */ React__default["default"].createElement("div", __spreadProps$j(__spreadValues$k({}, utils.filterDOMProps(props, { global: true })), {
193
+ const AccordionHeading = React.forwardRef(function AccordionHeading2(_a, ref) {
194
+ var _b = _a, { children, headerLevel } = _b, props = __objRest$t(_b, ["children", "headerLevel"]);
195
+ const { sidePadding, headerLevel: contextHeaderLevel } = useAccordionContext();
196
+ return /* @__PURE__ */ React__default["default"].createElement("div", __spreadProps$t(__spreadValues$w({
197
+ role: "heading",
198
+ "aria-level": headerLevel != null ? headerLevel : contextHeaderLevel
199
+ }, utils.filterDOMProps(props, { global: true })), {
200
+ ref
201
+ }), /* @__PURE__ */ React__default["default"].createElement(reactAriaComponents.Button, {
202
+ slot: "trigger",
203
+ className: ({ isFocusVisible }) => clsx__default["default"](styles__default["default"]["sapphire-accordion__item-header"], styles__default["default"]["js-focus"], {
204
+ [styles__default["default"]["is-focus"]]: isFocusVisible
205
+ }),
206
+ style: sapphireReact.withTruthyZero(sidePadding) ? customPaddingStyleProps(sidePadding) : {}
207
+ }, /* @__PURE__ */ React__default["default"].createElement(sapphireReact.Typography.Heading, {
208
+ level: 6,
209
+ elementType: "span"
210
+ }, /* @__PURE__ */ React__default["default"].createElement("div", {
284
211
  className: clsx__default["default"](styles__default["default"]["sapphire-accordion__item-heading"])
285
- }), children);
212
+ }, children)), /* @__PURE__ */ React__default["default"].createElement("div", {
213
+ className: clsx__default["default"](styles__default["default"]["sapphire-accordion__item-arrow"])
214
+ }, /* @__PURE__ */ React__default["default"].createElement(sapphireReact.Icon, {
215
+ size: "lg"
216
+ }, /* @__PURE__ */ React__default["default"].createElement(react.ChevronDown, null)))));
217
+ });
218
+
219
+ var __defProp$v = Object.defineProperty;
220
+ var __getOwnPropSymbols$v = Object.getOwnPropertySymbols;
221
+ var __hasOwnProp$v = Object.prototype.hasOwnProperty;
222
+ var __propIsEnum$v = Object.prototype.propertyIsEnumerable;
223
+ var __defNormalProp$v = (obj, key, value) => key in obj ? __defProp$v(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
224
+ var __spreadValues$v = (a, b) => {
225
+ for (var prop in b || (b = {}))
226
+ if (__hasOwnProp$v.call(b, prop))
227
+ __defNormalProp$v(a, prop, b[prop]);
228
+ if (__getOwnPropSymbols$v)
229
+ for (var prop of __getOwnPropSymbols$v(b)) {
230
+ if (__propIsEnum$v.call(b, prop))
231
+ __defNormalProp$v(a, prop, b[prop]);
232
+ }
233
+ return a;
234
+ };
235
+ var __objRest$s = (source, exclude) => {
236
+ var target = {};
237
+ for (var prop in source)
238
+ if (__hasOwnProp$v.call(source, prop) && exclude.indexOf(prop) < 0)
239
+ target[prop] = source[prop];
240
+ if (source != null && __getOwnPropSymbols$v)
241
+ for (var prop of __getOwnPropSymbols$v(source)) {
242
+ if (exclude.indexOf(prop) < 0 && __propIsEnum$v.call(source, prop))
243
+ target[prop] = source[prop];
244
+ }
245
+ return target;
286
246
  };
247
+ const AccordionItem = React.forwardRef(function AccordionItem2(_a, forwardedRef) {
248
+ var _b = _a, { children, id } = _b, props = __objRest$s(_b, ["children", "id"]);
249
+ const ref = utils.useObjectRef(forwardedRef);
250
+ const focusManager = focus.useFocusManager();
251
+ const onKeyDown = (e) => {
252
+ if (!focusManager)
253
+ return;
254
+ if (!(e.target instanceof Element) || e.target.getAttribute("slot") !== "trigger")
255
+ return;
256
+ switch (e.key) {
257
+ case "ArrowDown":
258
+ e.preventDefault();
259
+ focusManager.focusNext();
260
+ break;
261
+ case "ArrowUp":
262
+ e.preventDefault();
263
+ focusManager.focusPrevious();
264
+ break;
265
+ case "Home":
266
+ e.preventDefault();
267
+ focusManager.focusFirst();
268
+ break;
269
+ case "End":
270
+ e.preventDefault();
271
+ focusManager.focusLast();
272
+ break;
273
+ default:
274
+ return;
275
+ }
276
+ };
277
+ utils.useEvent(ref, "keydown", onKeyDown);
278
+ return /* @__PURE__ */ React__default["default"].createElement(reactAriaComponents.Disclosure, __spreadValues$v({
279
+ ref,
280
+ id,
281
+ className: ({ isExpanded, isDisabled }) => clsx__default["default"](styles__default["default"]["sapphire-accordion__item"], {
282
+ [styles__default["default"]["sapphire-accordion__item--open"]]: isExpanded,
283
+ [styles__default["default"]["is-disabled"]]: isDisabled
284
+ })
285
+ }, props), /* @__PURE__ */ React__default["default"].createElement("div", {
286
+ className: clsx__default["default"](styles__default["default"]["sapphire-accordion__item-content-wrapper"])
287
+ }, children));
288
+ });
289
+
290
+ var __defProp$u = Object.defineProperty;
291
+ var __defProps$s = Object.defineProperties;
292
+ var __getOwnPropDescs$s = Object.getOwnPropertyDescriptors;
293
+ var __getOwnPropSymbols$u = Object.getOwnPropertySymbols;
294
+ var __hasOwnProp$u = Object.prototype.hasOwnProperty;
295
+ var __propIsEnum$u = Object.prototype.propertyIsEnumerable;
296
+ var __defNormalProp$u = (obj, key, value) => key in obj ? __defProp$u(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
297
+ var __spreadValues$u = (a, b) => {
298
+ for (var prop in b || (b = {}))
299
+ if (__hasOwnProp$u.call(b, prop))
300
+ __defNormalProp$u(a, prop, b[prop]);
301
+ if (__getOwnPropSymbols$u)
302
+ for (var prop of __getOwnPropSymbols$u(b)) {
303
+ if (__propIsEnum$u.call(b, prop))
304
+ __defNormalProp$u(a, prop, b[prop]);
305
+ }
306
+ return a;
307
+ };
308
+ var __spreadProps$s = (a, b) => __defProps$s(a, __getOwnPropDescs$s(b));
309
+ var __objRest$r = (source, exclude) => {
310
+ var target = {};
311
+ for (var prop in source)
312
+ if (__hasOwnProp$u.call(source, prop) && exclude.indexOf(prop) < 0)
313
+ target[prop] = source[prop];
314
+ if (source != null && __getOwnPropSymbols$u)
315
+ for (var prop of __getOwnPropSymbols$u(source)) {
316
+ if (exclude.indexOf(prop) < 0 && __propIsEnum$u.call(source, prop))
317
+ target[prop] = source[prop];
318
+ }
319
+ return target;
320
+ };
321
+ const AccordionPanel = React.forwardRef(function AccordionPanel2(_a, ref) {
322
+ var _b = _a, { children } = _b, props = __objRest$r(_b, ["children"]);
323
+ const { sidePadding } = useAccordionContext();
324
+ return /* @__PURE__ */ React__default["default"].createElement(reactAriaComponents.DisclosurePanel, __spreadValues$u(__spreadProps$s(__spreadValues$u({
325
+ ref
326
+ }, utils.filterDOMProps(props, { global: true })), {
327
+ className: clsx__default["default"](styles__default["default"]["sapphire-accordion__item-content"]),
328
+ style: {
329
+ height: "var(--disclosure-panel-height)"
330
+ }
331
+ }), props), /* @__PURE__ */ React__default["default"].createElement("div", {
332
+ style: __spreadValues$u({}, sapphireReact.withTruthyZero(sidePadding) ? customPaddingStyleProps(sidePadding) : {}),
333
+ className: styles__default["default"]["sapphire-accordion__item-content-inner"]
334
+ }, children));
335
+ });
287
336
 
288
337
  const _Accordion = Object.assign(Accordion, {
289
338
  Heading: AccordionHeading,
290
- Item: AccordionItem
339
+ Item: AccordionItem,
340
+ Panel: AccordionPanel
291
341
  });
292
342
 
293
- var __defProp$j = Object.defineProperty;
294
- var __defProps$i = Object.defineProperties;
295
- var __getOwnPropDescs$i = Object.getOwnPropertyDescriptors;
296
- var __getOwnPropSymbols$k = Object.getOwnPropertySymbols;
297
- var __hasOwnProp$k = Object.prototype.hasOwnProperty;
298
- var __propIsEnum$k = Object.prototype.propertyIsEnumerable;
299
- var __defNormalProp$j = (obj, key, value) => key in obj ? __defProp$j(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
300
- var __spreadValues$j = (a, b) => {
343
+ var __defProp$t = Object.defineProperty;
344
+ var __defProps$r = Object.defineProperties;
345
+ var __getOwnPropDescs$r = Object.getOwnPropertyDescriptors;
346
+ var __getOwnPropSymbols$t = Object.getOwnPropertySymbols;
347
+ var __hasOwnProp$t = Object.prototype.hasOwnProperty;
348
+ var __propIsEnum$t = Object.prototype.propertyIsEnumerable;
349
+ var __defNormalProp$t = (obj, key, value) => key in obj ? __defProp$t(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
350
+ var __spreadValues$t = (a, b) => {
301
351
  for (var prop in b || (b = {}))
302
- if (__hasOwnProp$k.call(b, prop))
303
- __defNormalProp$j(a, prop, b[prop]);
304
- if (__getOwnPropSymbols$k)
305
- for (var prop of __getOwnPropSymbols$k(b)) {
306
- if (__propIsEnum$k.call(b, prop))
307
- __defNormalProp$j(a, prop, b[prop]);
352
+ if (__hasOwnProp$t.call(b, prop))
353
+ __defNormalProp$t(a, prop, b[prop]);
354
+ if (__getOwnPropSymbols$t)
355
+ for (var prop of __getOwnPropSymbols$t(b)) {
356
+ if (__propIsEnum$t.call(b, prop))
357
+ __defNormalProp$t(a, prop, b[prop]);
308
358
  }
309
359
  return a;
310
360
  };
311
- var __spreadProps$i = (a, b) => __defProps$i(a, __getOwnPropDescs$i(b));
312
- var __objRest$h = (source, exclude) => {
361
+ var __spreadProps$r = (a, b) => __defProps$r(a, __getOwnPropDescs$r(b));
362
+ var __objRest$q = (source, exclude) => {
313
363
  var target = {};
314
364
  for (var prop in source)
315
- if (__hasOwnProp$k.call(source, prop) && exclude.indexOf(prop) < 0)
365
+ if (__hasOwnProp$t.call(source, prop) && exclude.indexOf(prop) < 0)
316
366
  target[prop] = source[prop];
317
- if (source != null && __getOwnPropSymbols$k)
318
- for (var prop of __getOwnPropSymbols$k(source)) {
319
- if (exclude.indexOf(prop) < 0 && __propIsEnum$k.call(source, prop))
367
+ if (source != null && __getOwnPropSymbols$t)
368
+ for (var prop of __getOwnPropSymbols$t(source)) {
369
+ if (exclude.indexOf(prop) < 0 && __propIsEnum$t.call(source, prop))
320
370
  target[prop] = source[prop];
321
371
  }
322
372
  return target;
@@ -326,7 +376,7 @@ function Alert(_a) {
326
376
  children,
327
377
  title,
328
378
  variant = "info"
329
- } = _b, props = __objRest$h(_b, [
379
+ } = _b, props = __objRest$q(_b, [
330
380
  "children",
331
381
  "title",
332
382
  "variant"
@@ -347,7 +397,7 @@ function Alert(_a) {
347
397
  return /* @__PURE__ */ React__default["default"].createElement(react.Information, null);
348
398
  }
349
399
  };
350
- return /* @__PURE__ */ React__default["default"].createElement("div", __spreadProps$i(__spreadValues$j({}, utils.filterDOMProps(props, { global: true })), {
400
+ return /* @__PURE__ */ React__default["default"].createElement("div", __spreadProps$r(__spreadValues$t({}, utils.filterDOMProps(props, { global: true })), {
351
401
  className: clsx.clsx(alertStyles__default["default"]["sapphire-alert"], {
352
402
  [alertStyles__default["default"]["sapphire-alert--positive"]]: variant === "positive",
353
403
  [alertStyles__default["default"]["sapphire-alert--negative"]]: variant === "negative",
@@ -372,6 +422,105 @@ function Alert(_a) {
372
422
  }, children)));
373
423
  }
374
424
 
425
+ const useGroupAmount = (value, formatter) => {
426
+ const numberValue = React.useMemo(() => {
427
+ const parsed = Number(value);
428
+ return isNaN(parsed) ? 0 : parsed;
429
+ }, [value]);
430
+ const groupedParts = React.useMemo(() => {
431
+ const parts = formatter.formatToParts(numberValue);
432
+ const result = [];
433
+ let currentNumber = "";
434
+ parts.forEach((part) => {
435
+ if (part.type === "plusSign" || part.type === "minusSign") {
436
+ result.push({ type: "sign", value: part.value });
437
+ } else if (part.type === "currency") {
438
+ if (currentNumber) {
439
+ result.push({ type: "number", value: currentNumber });
440
+ currentNumber = "";
441
+ }
442
+ result.push({ type: "currency", value: part.value });
443
+ } else if (part.type !== "literal") {
444
+ currentNumber += part.value;
445
+ }
446
+ });
447
+ if (currentNumber) {
448
+ result.push({ type: "number", value: currentNumber });
449
+ }
450
+ return result;
451
+ }, [numberValue, formatter]);
452
+ const formattedValue = React.useMemo(() => groupedParts.map((part) => part.value).join(""), [groupedParts]);
453
+ return { formattedValue, groupedParts };
454
+ };
455
+
456
+ var __defProp$s = Object.defineProperty;
457
+ var __defProps$q = Object.defineProperties;
458
+ var __getOwnPropDescs$q = Object.getOwnPropertyDescriptors;
459
+ var __getOwnPropSymbols$s = Object.getOwnPropertySymbols;
460
+ var __hasOwnProp$s = Object.prototype.hasOwnProperty;
461
+ var __propIsEnum$s = Object.prototype.propertyIsEnumerable;
462
+ var __defNormalProp$s = (obj, key, value) => key in obj ? __defProp$s(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
463
+ var __spreadValues$s = (a, b) => {
464
+ for (var prop in b || (b = {}))
465
+ if (__hasOwnProp$s.call(b, prop))
466
+ __defNormalProp$s(a, prop, b[prop]);
467
+ if (__getOwnPropSymbols$s)
468
+ for (var prop of __getOwnPropSymbols$s(b)) {
469
+ if (__propIsEnum$s.call(b, prop))
470
+ __defNormalProp$s(a, prop, b[prop]);
471
+ }
472
+ return a;
473
+ };
474
+ var __spreadProps$q = (a, b) => __defProps$q(a, __getOwnPropDescs$q(b));
475
+ var __objRest$p = (source, exclude) => {
476
+ var target = {};
477
+ for (var prop in source)
478
+ if (__hasOwnProp$s.call(source, prop) && exclude.indexOf(prop) < 0)
479
+ target[prop] = source[prop];
480
+ if (source != null && __getOwnPropSymbols$s)
481
+ for (var prop of __getOwnPropSymbols$s(source)) {
482
+ if (exclude.indexOf(prop) < 0 && __propIsEnum$s.call(source, prop))
483
+ target[prop] = source[prop];
484
+ }
485
+ return target;
486
+ };
487
+ const Amount = (_a) => {
488
+ var _b = _a, {
489
+ emphasis = "regular",
490
+ variant,
491
+ formatOptions,
492
+ value,
493
+ size
494
+ } = _b, props = __objRest$p(_b, [
495
+ "emphasis",
496
+ "variant",
497
+ "formatOptions",
498
+ "value",
499
+ "size"
500
+ ]);
501
+ sapphireReact.useThemeCheck();
502
+ const { styleProps, filteredProps } = sapphireReact.useSapphireStyleProps(props);
503
+ const { locale } = i18n.useLocale();
504
+ const formatter = React.useMemo(() => new Intl.NumberFormat(locale, __spreadValues$s({
505
+ style: (formatOptions == null ? void 0 : formatOptions.currency) ? "currency" : void 0,
506
+ signDisplay: (formatOptions == null ? void 0 : formatOptions.signDisplay) || String(value).startsWith("+") ? "always" : "auto",
507
+ minimumFractionDigits: 2
508
+ }, formatOptions)), [locale, formatOptions, value]);
509
+ const { formattedValue, groupedParts } = useGroupAmount(value, formatter);
510
+ return /* @__PURE__ */ React__default["default"].createElement("span", __spreadProps$q(__spreadValues$s({
511
+ style: styleProps.style,
512
+ className: styles__default$1["default"]["sapphire-amount"]
513
+ }, filteredProps), {
514
+ "aria-label": formattedValue
515
+ }), groupedParts.map((part, index) => /* @__PURE__ */ React__default["default"].createElement(sapphireReact.Typography.Body, {
516
+ elementType: "span",
517
+ key: index,
518
+ color: variant === "positive" ? "positive" : "primary",
519
+ isSemibold: emphasis === "primary" ? true : false,
520
+ size
521
+ }, part.value)));
522
+ };
523
+
375
524
  var da$3 = {
376
525
  "listbox-suggestions": "Forslag"
377
526
  };
@@ -410,33 +559,33 @@ var intlMessages$3 = {
410
559
  "sv-SE": se$3
411
560
  };
412
561
 
413
- var __defProp$i = Object.defineProperty;
414
- var __defProps$h = Object.defineProperties;
415
- var __getOwnPropDescs$h = Object.getOwnPropertyDescriptors;
416
- var __getOwnPropSymbols$j = Object.getOwnPropertySymbols;
417
- var __hasOwnProp$j = Object.prototype.hasOwnProperty;
418
- var __propIsEnum$j = Object.prototype.propertyIsEnumerable;
419
- var __defNormalProp$i = (obj, key, value) => key in obj ? __defProp$i(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
420
- var __spreadValues$i = (a, b) => {
562
+ var __defProp$r = Object.defineProperty;
563
+ var __defProps$p = Object.defineProperties;
564
+ var __getOwnPropDescs$p = Object.getOwnPropertyDescriptors;
565
+ var __getOwnPropSymbols$r = Object.getOwnPropertySymbols;
566
+ var __hasOwnProp$r = Object.prototype.hasOwnProperty;
567
+ var __propIsEnum$r = Object.prototype.propertyIsEnumerable;
568
+ var __defNormalProp$r = (obj, key, value) => key in obj ? __defProp$r(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
569
+ var __spreadValues$r = (a, b) => {
421
570
  for (var prop in b || (b = {}))
422
- if (__hasOwnProp$j.call(b, prop))
423
- __defNormalProp$i(a, prop, b[prop]);
424
- if (__getOwnPropSymbols$j)
425
- for (var prop of __getOwnPropSymbols$j(b)) {
426
- if (__propIsEnum$j.call(b, prop))
427
- __defNormalProp$i(a, prop, b[prop]);
571
+ if (__hasOwnProp$r.call(b, prop))
572
+ __defNormalProp$r(a, prop, b[prop]);
573
+ if (__getOwnPropSymbols$r)
574
+ for (var prop of __getOwnPropSymbols$r(b)) {
575
+ if (__propIsEnum$r.call(b, prop))
576
+ __defNormalProp$r(a, prop, b[prop]);
428
577
  }
429
578
  return a;
430
579
  };
431
- var __spreadProps$h = (a, b) => __defProps$h(a, __getOwnPropDescs$h(b));
432
- var __objRest$g = (source, exclude) => {
580
+ var __spreadProps$p = (a, b) => __defProps$p(a, __getOwnPropDescs$p(b));
581
+ var __objRest$o = (source, exclude) => {
433
582
  var target = {};
434
583
  for (var prop in source)
435
- if (__hasOwnProp$j.call(source, prop) && exclude.indexOf(prop) < 0)
584
+ if (__hasOwnProp$r.call(source, prop) && exclude.indexOf(prop) < 0)
436
585
  target[prop] = source[prop];
437
- if (source != null && __getOwnPropSymbols$j)
438
- for (var prop of __getOwnPropSymbols$j(source)) {
439
- if (exclude.indexOf(prop) < 0 && __propIsEnum$j.call(source, prop))
586
+ if (source != null && __getOwnPropSymbols$r)
587
+ for (var prop of __getOwnPropSymbols$r(source)) {
588
+ if (exclude.indexOf(prop) < 0 && __propIsEnum$r.call(source, prop))
440
589
  target[prop] = source[prop];
441
590
  }
442
591
  return target;
@@ -450,13 +599,17 @@ function Autocomplete(props) {
450
599
  renderInput,
451
600
  loadingState,
452
601
  loadingSkeletonRowsCount,
453
- listboxAriaLabel
454
- } = _a, otherProps = __objRest$g(_a, [
602
+ listboxAriaLabel,
603
+ onSuggestionSelected,
604
+ onSelectionChange
605
+ } = _a, otherProps = __objRest$o(_a, [
455
606
  "inputValue",
456
607
  "renderInput",
457
608
  "loadingState",
458
609
  "loadingSkeletonRowsCount",
459
- "listboxAriaLabel"
610
+ "listboxAriaLabel",
611
+ "onSuggestionSelected",
612
+ "onSelectionChange"
460
613
  ]);
461
614
  const {
462
615
  styleProps: { style, className }
@@ -465,19 +618,25 @@ function Autocomplete(props) {
465
618
  const listBoxRef = utils$1.useFocusableRef(null);
466
619
  const popoverRef = React.useRef(null);
467
620
  const triggerRef = utils$1.useFocusableRef(null);
468
- const state = sapphireReact.useComboBoxState(__spreadProps$h(__spreadValues$i({}, props), {
621
+ const state = sapphireReact.useComboBoxState(__spreadProps$p(__spreadValues$r({}, props), {
469
622
  inputValue,
470
623
  allowsEmptyCollection: loadingState === "loading",
471
624
  allowsCustomValue: true,
472
- shouldCloseOnBlur: true
625
+ shouldCloseOnBlur: true,
626
+ onSelectionChange: (key) => {
627
+ if (key !== null) {
628
+ onSelectionChange == null ? void 0 : onSelectionChange(key);
629
+ onSuggestionSelected == null ? void 0 : onSuggestionSelected(key);
630
+ }
631
+ }
473
632
  }));
474
- const { inputProps, listBoxProps } = combobox.useComboBox(__spreadProps$h(__spreadValues$i({}, props), {
633
+ const { inputProps, listBoxProps } = combobox.useComboBox(__spreadProps$p(__spreadValues$r({}, props), {
475
634
  "aria-label": listboxAriaLabel || formatMessage("listbox-suggestions"),
476
635
  inputRef,
477
636
  listBoxRef,
478
637
  popoverRef
479
638
  }), state);
480
- const inputElement = renderInput(__spreadProps$h(__spreadValues$i({}, inputProps), {
639
+ const inputElement = renderInput(__spreadProps$p(__spreadValues$r({}, inputProps), {
481
640
  isDisabled: props.isDisabled,
482
641
  inputRef,
483
642
  "aria-haspopup": "listbox",
@@ -490,10 +649,10 @@ function Autocomplete(props) {
490
649
  });
491
650
  }
492
651
  }));
493
- return /* @__PURE__ */ React__default["default"].createElement("div", __spreadProps$h(__spreadValues$i({
652
+ return /* @__PURE__ */ React__default["default"].createElement("div", __spreadProps$p(__spreadValues$r({
494
653
  ref: triggerRef
495
654
  }, utils.filterDOMProps(otherProps, { global: true })), {
496
- style: __spreadValues$i({ display: "inline-flex" }, style),
655
+ style: __spreadValues$r({ display: "inline-flex" }, style),
497
656
  className
498
657
  }), inputElement, state.isOpen && /* @__PURE__ */ React__default["default"].createElement(sapphireReact.ListBoxPopover, {
499
658
  state,
@@ -575,63 +734,63 @@ const useBreadcrumbThreshold = (childrenCount, containerRef, breadcrumbRef) => {
575
734
  };
576
735
  };
577
736
 
578
- var __defProp$h = Object.defineProperty;
579
- var __defProps$g = Object.defineProperties;
580
- var __getOwnPropDescs$g = Object.getOwnPropertyDescriptors;
581
- var __getOwnPropSymbols$i = Object.getOwnPropertySymbols;
582
- var __hasOwnProp$i = Object.prototype.hasOwnProperty;
583
- var __propIsEnum$i = Object.prototype.propertyIsEnumerable;
584
- var __defNormalProp$h = (obj, key, value) => key in obj ? __defProp$h(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
585
- var __spreadValues$h = (a, b) => {
737
+ var __defProp$q = Object.defineProperty;
738
+ var __defProps$o = Object.defineProperties;
739
+ var __getOwnPropDescs$o = Object.getOwnPropertyDescriptors;
740
+ var __getOwnPropSymbols$q = Object.getOwnPropertySymbols;
741
+ var __hasOwnProp$q = Object.prototype.hasOwnProperty;
742
+ var __propIsEnum$q = Object.prototype.propertyIsEnumerable;
743
+ var __defNormalProp$q = (obj, key, value) => key in obj ? __defProp$q(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
744
+ var __spreadValues$q = (a, b) => {
586
745
  for (var prop in b || (b = {}))
587
- if (__hasOwnProp$i.call(b, prop))
588
- __defNormalProp$h(a, prop, b[prop]);
589
- if (__getOwnPropSymbols$i)
590
- for (var prop of __getOwnPropSymbols$i(b)) {
591
- if (__propIsEnum$i.call(b, prop))
592
- __defNormalProp$h(a, prop, b[prop]);
746
+ if (__hasOwnProp$q.call(b, prop))
747
+ __defNormalProp$q(a, prop, b[prop]);
748
+ if (__getOwnPropSymbols$q)
749
+ for (var prop of __getOwnPropSymbols$q(b)) {
750
+ if (__propIsEnum$q.call(b, prop))
751
+ __defNormalProp$q(a, prop, b[prop]);
593
752
  }
594
753
  return a;
595
754
  };
596
- var __spreadProps$g = (a, b) => __defProps$g(a, __getOwnPropDescs$g(b));
597
- var __objRest$f = (source, exclude) => {
755
+ var __spreadProps$o = (a, b) => __defProps$o(a, __getOwnPropDescs$o(b));
756
+ var __objRest$n = (source, exclude) => {
598
757
  var target = {};
599
758
  for (var prop in source)
600
- if (__hasOwnProp$i.call(source, prop) && exclude.indexOf(prop) < 0)
759
+ if (__hasOwnProp$q.call(source, prop) && exclude.indexOf(prop) < 0)
601
760
  target[prop] = source[prop];
602
- if (source != null && __getOwnPropSymbols$i)
603
- for (var prop of __getOwnPropSymbols$i(source)) {
604
- if (exclude.indexOf(prop) < 0 && __propIsEnum$i.call(source, prop))
761
+ if (source != null && __getOwnPropSymbols$q)
762
+ for (var prop of __getOwnPropSymbols$q(source)) {
763
+ if (exclude.indexOf(prop) < 0 && __propIsEnum$q.call(source, prop))
605
764
  target[prop] = source[prop];
606
765
  }
607
766
  return target;
608
767
  };
609
768
  const BreadcrumbsContext = React.createContext({ size: "md", overflowNodes: [] });
610
769
  const Breadcrumbs = React.forwardRef(function Breadcrumbs2(_a, fwdRef) {
611
- var _b = _a, { maxWidth, size = "md" } = _b, props = __objRest$f(_b, ["maxWidth", "size"]);
770
+ var _b = _a, { maxWidth, size = "md" } = _b, props = __objRest$n(_b, ["maxWidth", "size"]);
612
771
  const [RACprops, ref] = reactAriaComponents.useContextProps(props, fwdRef, reactAriaComponents.BreadcrumbsContext);
613
772
  const { styleProps } = sapphireReact.useSapphireStyleProps(RACprops);
614
773
  const containerRef = React.useRef(null);
615
774
  const { CollectionRoot } = React.useContext(reactAriaComponents.CollectionRendererContext);
616
775
  const { navProps } = breadcrumbs.useBreadcrumbs(RACprops);
617
776
  const DOMProps = utils.filterDOMProps(RACprops, { global: true });
618
- return /* @__PURE__ */ React__default["default"].createElement(collections$1.CollectionBuilder, {
619
- content: /* @__PURE__ */ React__default["default"].createElement(collections$1.Collection, __spreadValues$h({}, RACprops))
777
+ return /* @__PURE__ */ React__default["default"].createElement(collections.CollectionBuilder, {
778
+ content: /* @__PURE__ */ React__default["default"].createElement(collections.Collection, __spreadValues$q({}, RACprops))
620
779
  }, (collection) => {
621
780
  const { overflowNodes } = useBreadcrumbThreshold(collection.size, containerRef, ref);
622
781
  const keys = Array.from(collection.getKeys());
623
782
  return /* @__PURE__ */ React__default["default"].createElement("div", {
624
783
  ref: containerRef,
625
- style: __spreadProps$g(__spreadValues$h({}, styleProps.style), {
784
+ style: __spreadProps$o(__spreadValues$q({}, styleProps.style), {
626
785
  maxWidth,
627
786
  display: "flex"
628
787
  })
629
- }, /* @__PURE__ */ React__default["default"].createElement("ol", __spreadProps$g(__spreadValues$h({
788
+ }, /* @__PURE__ */ React__default["default"].createElement("ol", __spreadProps$o(__spreadValues$q({
630
789
  ref
631
790
  }, utils.mergeProps(DOMProps, navProps)), {
632
- className: clsx__default["default"](styles__default$1["default"]["sapphire-breadcrumbs"], {
633
- [styles__default$1["default"]["sapphire-breadcrumbs--sm"]]: size === "sm",
634
- [styles__default$1["default"]["sapphire-breadcrumbs--lg"]]: size === "lg"
791
+ className: clsx__default["default"](styles__default$2["default"]["sapphire-breadcrumbs"], {
792
+ [styles__default$2["default"]["sapphire-breadcrumbs--sm"]]: size === "sm",
793
+ [styles__default$2["default"]["sapphire-breadcrumbs--lg"]]: size === "lg"
635
794
  })
636
795
  }), /* @__PURE__ */ React__default["default"].createElement(BreadcrumbsContext.Provider, {
637
796
  value: {
@@ -651,7 +810,7 @@ const BreadcrumbsSeparator = () => {
651
810
  const { size } = React.useContext(BreadcrumbsContext);
652
811
  const iconSize = size === "lg" ? "md" : "sm";
653
812
  return /* @__PURE__ */ React__default["default"].createElement("span", {
654
- className: clsx__default["default"](styles__default$1["default"]["sapphire-breadcrumbs__separator"]),
813
+ className: clsx__default["default"](styles__default$2["default"]["sapphire-breadcrumbs__separator"]),
655
814
  "aria-hidden": "true"
656
815
  }, /* @__PURE__ */ React__default["default"].createElement(sapphireReact.Icon, {
657
816
  size: iconSize
@@ -660,11 +819,10 @@ const BreadcrumbsSeparator = () => {
660
819
 
661
820
  const BreadcrumbOverflowMenu = () => {
662
821
  const { size, overflowNodes } = React.useContext(BreadcrumbsContext);
663
- const iconSize = size === "lg" ? "md" : "sm";
664
822
  return /* @__PURE__ */ React__default["default"].createElement(React__default["default"].Fragment, null, /* @__PURE__ */ React__default["default"].createElement(sapphireReact.Menu, {
665
823
  triggerElement: /* @__PURE__ */ React__default["default"].createElement(sapphireReact.IconButton, {
666
824
  "aria-label": "Show more breadcrumbs",
667
- size: iconSize
825
+ size
668
826
  }, /* @__PURE__ */ React__default["default"].createElement(react.OverflowMenuHorizontal, null))
669
827
  }, overflowNodes.map((item) => !item ? null : /* @__PURE__ */ React__default["default"].createElement(sapphireReact.MenuItem, {
670
828
  key: item.key,
@@ -674,80 +832,101 @@ const BreadcrumbOverflowMenu = () => {
674
832
  }, item.rendered))), /* @__PURE__ */ React__default["default"].createElement(BreadcrumbsSeparator, null));
675
833
  };
676
834
 
677
- var __getOwnPropSymbols$h = Object.getOwnPropertySymbols;
678
- var __hasOwnProp$h = Object.prototype.hasOwnProperty;
679
- var __propIsEnum$h = Object.prototype.propertyIsEnumerable;
680
- var __objRest$e = (source, exclude) => {
835
+ var __defProp$p = Object.defineProperty;
836
+ var __defProps$n = Object.defineProperties;
837
+ var __getOwnPropDescs$n = Object.getOwnPropertyDescriptors;
838
+ var __getOwnPropSymbols$p = Object.getOwnPropertySymbols;
839
+ var __hasOwnProp$p = Object.prototype.hasOwnProperty;
840
+ var __propIsEnum$p = Object.prototype.propertyIsEnumerable;
841
+ var __defNormalProp$p = (obj, key, value) => key in obj ? __defProp$p(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
842
+ var __spreadValues$p = (a, b) => {
843
+ for (var prop in b || (b = {}))
844
+ if (__hasOwnProp$p.call(b, prop))
845
+ __defNormalProp$p(a, prop, b[prop]);
846
+ if (__getOwnPropSymbols$p)
847
+ for (var prop of __getOwnPropSymbols$p(b)) {
848
+ if (__propIsEnum$p.call(b, prop))
849
+ __defNormalProp$p(a, prop, b[prop]);
850
+ }
851
+ return a;
852
+ };
853
+ var __spreadProps$n = (a, b) => __defProps$n(a, __getOwnPropDescs$n(b));
854
+ var __objRest$m = (source, exclude) => {
681
855
  var target = {};
682
856
  for (var prop in source)
683
- if (__hasOwnProp$h.call(source, prop) && exclude.indexOf(prop) < 0)
857
+ if (__hasOwnProp$p.call(source, prop) && exclude.indexOf(prop) < 0)
684
858
  target[prop] = source[prop];
685
- if (source != null && __getOwnPropSymbols$h)
686
- for (var prop of __getOwnPropSymbols$h(source)) {
687
- if (exclude.indexOf(prop) < 0 && __propIsEnum$h.call(source, prop))
859
+ if (source != null && __getOwnPropSymbols$p)
860
+ for (var prop of __getOwnPropSymbols$p(source)) {
861
+ if (exclude.indexOf(prop) < 0 && __propIsEnum$p.call(source, prop))
688
862
  target[prop] = source[prop];
689
863
  }
690
864
  return target;
691
865
  };
692
866
  const BreadcrumbItemStatic = React.forwardRef(function BreadcrumbItemStatic2(_a, ref) {
693
- var _b = _a, { size } = _b, props = __objRest$e(_b, ["size"]);
867
+ var _b = _a, { size } = _b, props = __objRest$m(_b, ["size"]);
694
868
  sapphireReact.useThemeCheck();
695
869
  const { styleProps } = sapphireReact.useSapphireStyleProps(props);
696
- return /* @__PURE__ */ React__default["default"].createElement("span", {
697
- ref,
698
- className: clsx__default["default"](styles__default$1["default"]["sapphire-breadcrumbs__item--static"], {
699
- [styles__default$1["default"]["sapphire-breadcrumbs__item--static--sm"]]: size === "sm",
700
- [styles__default$1["default"]["sapphire-breadcrumbs__item--static--lg"]]: size === "lg"
701
- }, styleProps.className),
702
- style: styleProps.style
703
- }, props.children);
870
+ return /* @__PURE__ */ React__default["default"].createElement(sapphireReact.TooltipIfNeeded, {
871
+ title: props.children
872
+ }, (tooltipContentRef, tooltipProps) => {
873
+ const positioningRef = tooltipProps == null ? void 0 : tooltipProps.ref;
874
+ return /* @__PURE__ */ React__default["default"].createElement("span", __spreadProps$n(__spreadValues$p({}, tooltipProps), {
875
+ ref: utils.mergeRefs(ref, tooltipContentRef, positioningRef),
876
+ className: clsx__default["default"](styles__default$2["default"]["sapphire-breadcrumbs__item--static"], {
877
+ [styles__default$2["default"]["sapphire-breadcrumbs__item--static--sm"]]: size === "sm",
878
+ [styles__default$2["default"]["sapphire-breadcrumbs__item--static--lg"]]: size === "lg"
879
+ }, styleProps.className),
880
+ style: styleProps.style
881
+ }), props.children);
882
+ });
704
883
  });
705
884
 
706
- var __defProp$g = Object.defineProperty;
707
- var __defProps$f = Object.defineProperties;
708
- var __getOwnPropDescs$f = Object.getOwnPropertyDescriptors;
709
- var __getOwnPropSymbols$g = Object.getOwnPropertySymbols;
710
- var __hasOwnProp$g = Object.prototype.hasOwnProperty;
711
- var __propIsEnum$g = Object.prototype.propertyIsEnumerable;
712
- var __defNormalProp$g = (obj, key, value) => key in obj ? __defProp$g(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
713
- var __spreadValues$g = (a, b) => {
885
+ var __defProp$o = Object.defineProperty;
886
+ var __defProps$m = Object.defineProperties;
887
+ var __getOwnPropDescs$m = Object.getOwnPropertyDescriptors;
888
+ var __getOwnPropSymbols$o = Object.getOwnPropertySymbols;
889
+ var __hasOwnProp$o = Object.prototype.hasOwnProperty;
890
+ var __propIsEnum$o = Object.prototype.propertyIsEnumerable;
891
+ var __defNormalProp$o = (obj, key, value) => key in obj ? __defProp$o(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
892
+ var __spreadValues$o = (a, b) => {
714
893
  for (var prop in b || (b = {}))
715
- if (__hasOwnProp$g.call(b, prop))
716
- __defNormalProp$g(a, prop, b[prop]);
717
- if (__getOwnPropSymbols$g)
718
- for (var prop of __getOwnPropSymbols$g(b)) {
719
- if (__propIsEnum$g.call(b, prop))
720
- __defNormalProp$g(a, prop, b[prop]);
894
+ if (__hasOwnProp$o.call(b, prop))
895
+ __defNormalProp$o(a, prop, b[prop]);
896
+ if (__getOwnPropSymbols$o)
897
+ for (var prop of __getOwnPropSymbols$o(b)) {
898
+ if (__propIsEnum$o.call(b, prop))
899
+ __defNormalProp$o(a, prop, b[prop]);
721
900
  }
722
901
  return a;
723
902
  };
724
- var __spreadProps$f = (a, b) => __defProps$f(a, __getOwnPropDescs$f(b));
725
- var __objRest$d = (source, exclude) => {
903
+ var __spreadProps$m = (a, b) => __defProps$m(a, __getOwnPropDescs$m(b));
904
+ var __objRest$l = (source, exclude) => {
726
905
  var target = {};
727
906
  for (var prop in source)
728
- if (__hasOwnProp$g.call(source, prop) && exclude.indexOf(prop) < 0)
907
+ if (__hasOwnProp$o.call(source, prop) && exclude.indexOf(prop) < 0)
729
908
  target[prop] = source[prop];
730
- if (source != null && __getOwnPropSymbols$g)
731
- for (var prop of __getOwnPropSymbols$g(source)) {
732
- if (exclude.indexOf(prop) < 0 && __propIsEnum$g.call(source, prop))
909
+ if (source != null && __getOwnPropSymbols$o)
910
+ for (var prop of __getOwnPropSymbols$o(source)) {
911
+ if (exclude.indexOf(prop) < 0 && __propIsEnum$o.call(source, prop))
733
912
  target[prop] = source[prop];
734
913
  }
735
914
  return target;
736
915
  };
737
916
  const BreadcrumbItemLink = React.forwardRef(function BreadcrumbItemLink2(_a, ref) {
738
- var _b = _a, { children } = _b, props = __objRest$d(_b, ["children"]);
917
+ var _b = _a, { children } = _b, props = __objRest$l(_b, ["children"]);
739
918
  sapphireReact.useThemeCheck();
740
919
  const { styleProps: sapphireStyleProps } = sapphireReact.useSapphireStyleProps(props);
741
- const _a2 = sapphireStyleProps, { style, className } = _a2, styleProps = __objRest$d(_a2, ["style", "className"]);
920
+ const _a2 = sapphireStyleProps, { style, className } = _a2, styleProps = __objRest$l(_a2, ["style", "className"]);
742
921
  const { size } = React.useContext(BreadcrumbsContext);
743
922
  if (!props.href) {
744
- return /* @__PURE__ */ React__default["default"].createElement(BreadcrumbItemStatic, __spreadProps$f(__spreadValues$g({}, props), {
923
+ return /* @__PURE__ */ React__default["default"].createElement(BreadcrumbItemStatic, __spreadProps$m(__spreadValues$o({}, props), {
745
924
  size
746
925
  }), children);
747
926
  }
748
- return /* @__PURE__ */ React__default["default"].createElement(sapphireReact.Button, __spreadProps$f(__spreadValues$g(__spreadValues$g({}, props), styleProps), {
927
+ return /* @__PURE__ */ React__default["default"].createElement(sapphireReact.Button, __spreadProps$m(__spreadValues$o(__spreadValues$o({}, props), styleProps), {
749
928
  UNSAFE_className: className,
750
- UNSAFE_style: __spreadValues$g({}, style),
929
+ UNSAFE_style: __spreadValues$o({}, style),
751
930
  ref,
752
931
  size,
753
932
  variant: "tertiary",
@@ -756,26 +935,26 @@ const BreadcrumbItemLink = React.forwardRef(function BreadcrumbItemLink2(_a, ref
756
935
  });
757
936
  BreadcrumbItemLink.displayName = "BreadcrumbItemLink";
758
937
 
759
- var __defProp$f = Object.defineProperty;
760
- var __getOwnPropSymbols$f = Object.getOwnPropertySymbols;
761
- var __hasOwnProp$f = Object.prototype.hasOwnProperty;
762
- var __propIsEnum$f = Object.prototype.propertyIsEnumerable;
763
- var __defNormalProp$f = (obj, key, value) => key in obj ? __defProp$f(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
764
- var __spreadValues$f = (a, b) => {
938
+ var __defProp$n = Object.defineProperty;
939
+ var __getOwnPropSymbols$n = Object.getOwnPropertySymbols;
940
+ var __hasOwnProp$n = Object.prototype.hasOwnProperty;
941
+ var __propIsEnum$n = Object.prototype.propertyIsEnumerable;
942
+ var __defNormalProp$n = (obj, key, value) => key in obj ? __defProp$n(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
943
+ var __spreadValues$n = (a, b) => {
765
944
  for (var prop in b || (b = {}))
766
- if (__hasOwnProp$f.call(b, prop))
767
- __defNormalProp$f(a, prop, b[prop]);
768
- if (__getOwnPropSymbols$f)
769
- for (var prop of __getOwnPropSymbols$f(b)) {
770
- if (__propIsEnum$f.call(b, prop))
771
- __defNormalProp$f(a, prop, b[prop]);
945
+ if (__hasOwnProp$n.call(b, prop))
946
+ __defNormalProp$n(a, prop, b[prop]);
947
+ if (__getOwnPropSymbols$n)
948
+ for (var prop of __getOwnPropSymbols$n(b)) {
949
+ if (__propIsEnum$n.call(b, prop))
950
+ __defNormalProp$n(a, prop, b[prop]);
772
951
  }
773
952
  return a;
774
953
  };
775
- class BreadcrumbItemCollectionNode extends collections$1.CollectionNode {
954
+ class BreadcrumbItemCollectionNode extends collections.CollectionNode {
776
955
  }
777
956
  BreadcrumbItemCollectionNode.type = "item";
778
- const BreadcrumbItem = collections$1.createLeafComponent(BreadcrumbItemCollectionNode, function BreadcrumbItem2(props, ref, node) {
957
+ const BreadcrumbItem = collections.createLeafComponent(BreadcrumbItemCollectionNode, function BreadcrumbItem2(props, ref, node) {
779
958
  var _a;
780
959
  sapphireReact.useThemeCheck();
781
960
  const { styleProps } = sapphireReact.useSapphireStyleProps(props);
@@ -798,52 +977,52 @@ const BreadcrumbItem = collections$1.createLeafComponent(BreadcrumbItemCollectio
798
977
  node.href = props.href;
799
978
  return /* @__PURE__ */ React__default["default"].createElement("li", {
800
979
  ref,
801
- className: clsx__default["default"](styles__default$1["default"]["sapphire-breadcrumbs__item"]),
802
- style: __spreadValues$f({}, styleProps.style),
980
+ className: clsx__default["default"](styles__default$2["default"]["sapphire-breadcrumbs__item"]),
981
+ style: __spreadValues$n({}, styleProps.style),
803
982
  "data-disabled": isDisabled || void 0,
804
983
  "data-current": isCurrent || void 0
805
984
  }, isCurrent ? /* @__PURE__ */ React__default["default"].createElement(sapphireReact.Typography.Body, {
806
985
  elementType: "span",
807
986
  isSemibold: true,
808
987
  size: size === "lg" ? "md" : size === "md" ? "sm" : "xs"
809
- }, node.rendered) : /* @__PURE__ */ React__default["default"].createElement(BreadcrumbItemLink, __spreadValues$f({
988
+ }, node.rendered) : /* @__PURE__ */ React__default["default"].createElement(BreadcrumbItemLink, __spreadValues$n({
810
989
  isDisabled
811
990
  }, props), node.rendered), !isCurrent && /* @__PURE__ */ React__default["default"].createElement(BreadcrumbsSeparator, null));
812
991
  });
813
992
 
814
- var __defProp$e = Object.defineProperty;
815
- var __defProps$e = Object.defineProperties;
816
- var __getOwnPropDescs$e = Object.getOwnPropertyDescriptors;
817
- var __getOwnPropSymbols$e = Object.getOwnPropertySymbols;
818
- var __hasOwnProp$e = Object.prototype.hasOwnProperty;
819
- var __propIsEnum$e = Object.prototype.propertyIsEnumerable;
820
- var __defNormalProp$e = (obj, key, value) => key in obj ? __defProp$e(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
821
- var __spreadValues$e = (a, b) => {
993
+ var __defProp$m = Object.defineProperty;
994
+ var __defProps$l = Object.defineProperties;
995
+ var __getOwnPropDescs$l = Object.getOwnPropertyDescriptors;
996
+ var __getOwnPropSymbols$m = Object.getOwnPropertySymbols;
997
+ var __hasOwnProp$m = Object.prototype.hasOwnProperty;
998
+ var __propIsEnum$m = Object.prototype.propertyIsEnumerable;
999
+ var __defNormalProp$m = (obj, key, value) => key in obj ? __defProp$m(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
1000
+ var __spreadValues$m = (a, b) => {
822
1001
  for (var prop in b || (b = {}))
823
- if (__hasOwnProp$e.call(b, prop))
824
- __defNormalProp$e(a, prop, b[prop]);
825
- if (__getOwnPropSymbols$e)
826
- for (var prop of __getOwnPropSymbols$e(b)) {
827
- if (__propIsEnum$e.call(b, prop))
828
- __defNormalProp$e(a, prop, b[prop]);
1002
+ if (__hasOwnProp$m.call(b, prop))
1003
+ __defNormalProp$m(a, prop, b[prop]);
1004
+ if (__getOwnPropSymbols$m)
1005
+ for (var prop of __getOwnPropSymbols$m(b)) {
1006
+ if (__propIsEnum$m.call(b, prop))
1007
+ __defNormalProp$m(a, prop, b[prop]);
829
1008
  }
830
1009
  return a;
831
1010
  };
832
- var __spreadProps$e = (a, b) => __defProps$e(a, __getOwnPropDescs$e(b));
833
- var __objRest$c = (source, exclude) => {
1011
+ var __spreadProps$l = (a, b) => __defProps$l(a, __getOwnPropDescs$l(b));
1012
+ var __objRest$k = (source, exclude) => {
834
1013
  var target = {};
835
1014
  for (var prop in source)
836
- if (__hasOwnProp$e.call(source, prop) && exclude.indexOf(prop) < 0)
1015
+ if (__hasOwnProp$m.call(source, prop) && exclude.indexOf(prop) < 0)
837
1016
  target[prop] = source[prop];
838
- if (source != null && __getOwnPropSymbols$e)
839
- for (var prop of __getOwnPropSymbols$e(source)) {
840
- if (exclude.indexOf(prop) < 0 && __propIsEnum$e.call(source, prop))
1017
+ if (source != null && __getOwnPropSymbols$m)
1018
+ for (var prop of __getOwnPropSymbols$m(source)) {
1019
+ if (exclude.indexOf(prop) < 0 && __propIsEnum$m.call(source, prop))
841
1020
  target[prop] = source[prop];
842
1021
  }
843
1022
  return target;
844
1023
  };
845
1024
  const HiddenFileInput = React__default["default"].forwardRef(function InputWrapper(props, ref) {
846
- return /* @__PURE__ */ React__default["default"].createElement("input", __spreadProps$e(__spreadValues$e({}, props), {
1025
+ return /* @__PURE__ */ React__default["default"].createElement("input", __spreadProps$l(__spreadValues$m({}, props), {
847
1026
  ref,
848
1027
  type: "file",
849
1028
  style: { display: "none" }
@@ -856,7 +1035,7 @@ const FileTrigger = React__default["default"].forwardRef(function FileTriggerWra
856
1035
  onSelect = () => null,
857
1036
  children,
858
1037
  isDisabled = false
859
- } = _a, rest = __objRest$c(_a, [
1038
+ } = _a, rest = __objRest$k(_a, [
860
1039
  "acceptedFileTypes",
861
1040
  "allowsMultiple",
862
1041
  "onSelect",
@@ -874,7 +1053,7 @@ const FileTrigger = React__default["default"].forwardRef(function FileTriggerWra
874
1053
  }
875
1054
  (_a2 = inputRef.current) == null ? void 0 : _a2.click();
876
1055
  }
877
- }, children), /* @__PURE__ */ React__default["default"].createElement(HiddenFileInput, __spreadProps$e(__spreadValues$e({}, domProps), {
1056
+ }, children), /* @__PURE__ */ React__default["default"].createElement(HiddenFileInput, __spreadProps$l(__spreadValues$m({}, domProps), {
878
1057
  disabled: isDisabled,
879
1058
  ref: inputRef,
880
1059
  accept: acceptedFileTypes == null ? void 0 : acceptedFileTypes.toString(),
@@ -953,33 +1132,33 @@ var intlMessages$2 = {
953
1132
  "sv-SE": se$2
954
1133
  };
955
1134
 
956
- var __defProp$d = Object.defineProperty;
957
- var __defProps$d = Object.defineProperties;
958
- var __getOwnPropDescs$d = Object.getOwnPropertyDescriptors;
959
- var __getOwnPropSymbols$d = Object.getOwnPropertySymbols;
960
- var __hasOwnProp$d = Object.prototype.hasOwnProperty;
961
- var __propIsEnum$d = Object.prototype.propertyIsEnumerable;
962
- var __defNormalProp$d = (obj, key, value) => key in obj ? __defProp$d(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
963
- var __spreadValues$d = (a, b) => {
1135
+ var __defProp$l = Object.defineProperty;
1136
+ var __defProps$k = Object.defineProperties;
1137
+ var __getOwnPropDescs$k = Object.getOwnPropertyDescriptors;
1138
+ var __getOwnPropSymbols$l = Object.getOwnPropertySymbols;
1139
+ var __hasOwnProp$l = Object.prototype.hasOwnProperty;
1140
+ var __propIsEnum$l = Object.prototype.propertyIsEnumerable;
1141
+ var __defNormalProp$l = (obj, key, value) => key in obj ? __defProp$l(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
1142
+ var __spreadValues$l = (a, b) => {
964
1143
  for (var prop in b || (b = {}))
965
- if (__hasOwnProp$d.call(b, prop))
966
- __defNormalProp$d(a, prop, b[prop]);
967
- if (__getOwnPropSymbols$d)
968
- for (var prop of __getOwnPropSymbols$d(b)) {
969
- if (__propIsEnum$d.call(b, prop))
970
- __defNormalProp$d(a, prop, b[prop]);
1144
+ if (__hasOwnProp$l.call(b, prop))
1145
+ __defNormalProp$l(a, prop, b[prop]);
1146
+ if (__getOwnPropSymbols$l)
1147
+ for (var prop of __getOwnPropSymbols$l(b)) {
1148
+ if (__propIsEnum$l.call(b, prop))
1149
+ __defNormalProp$l(a, prop, b[prop]);
971
1150
  }
972
1151
  return a;
973
1152
  };
974
- var __spreadProps$d = (a, b) => __defProps$d(a, __getOwnPropDescs$d(b));
975
- var __objRest$b = (source, exclude) => {
1153
+ var __spreadProps$k = (a, b) => __defProps$k(a, __getOwnPropDescs$k(b));
1154
+ var __objRest$j = (source, exclude) => {
976
1155
  var target = {};
977
1156
  for (var prop in source)
978
- if (__hasOwnProp$d.call(source, prop) && exclude.indexOf(prop) < 0)
1157
+ if (__hasOwnProp$l.call(source, prop) && exclude.indexOf(prop) < 0)
979
1158
  target[prop] = source[prop];
980
- if (source != null && __getOwnPropSymbols$d)
981
- for (var prop of __getOwnPropSymbols$d(source)) {
982
- if (exclude.indexOf(prop) < 0 && __propIsEnum$d.call(source, prop))
1159
+ if (source != null && __getOwnPropSymbols$l)
1160
+ for (var prop of __getOwnPropSymbols$l(source)) {
1161
+ if (exclude.indexOf(prop) < 0 && __propIsEnum$l.call(source, prop))
983
1162
  target[prop] = source[prop];
984
1163
  }
985
1164
  return target;
@@ -994,7 +1173,7 @@ const FileDropzone = React__default["default"].forwardRef(function DropzoneWrapp
994
1173
  allowsMultiple,
995
1174
  onDrop = () => null,
996
1175
  getDropOperation = () => "copy"
997
- } = _a, otherProps = __objRest$b(_a, [
1176
+ } = _a, otherProps = __objRest$j(_a, [
998
1177
  "isDisabled",
999
1178
  "hasError",
1000
1179
  "renderInstruction",
@@ -1010,7 +1189,7 @@ const FileDropzone = React__default["default"].forwardRef(function DropzoneWrapp
1010
1189
  const pressableRef = utils.useObjectRef(forwardedRef);
1011
1190
  const { hoverProps, isHovered } = interactions.useHover({ isDisabled });
1012
1191
  const { styleProps } = sapphireReact.useSapphireStyleProps(props);
1013
- const { dropProps, isDropTarget: isDropping } = dnd.useDrop(__spreadProps$d(__spreadValues$d({}, props), {
1192
+ const { dropProps, isDropTarget: isDropping } = dnd.useDrop(__spreadProps$k(__spreadValues$l({}, props), {
1014
1193
  ref: pressableRef,
1015
1194
  hasDropButton: true,
1016
1195
  isDisabled,
@@ -1046,65 +1225,65 @@ const FileDropzone = React__default["default"].forwardRef(function DropzoneWrapp
1046
1225
  }, /* @__PURE__ */ React__default["default"].createElement(interactions.Pressable, {
1047
1226
  ref: pressableRef,
1048
1227
  onPress: onFileSelectOpen
1049
- }, /* @__PURE__ */ React__default["default"].createElement("div", __spreadProps$d(__spreadValues$d(__spreadValues$d({}, utils.mergeProps(dropProps, hoverProps, clipboardProps, focusProps, buttonProps)), utils.filterDOMProps(otherProps, { global: true })), {
1050
- style: __spreadValues$d({}, styleProps.style),
1051
- className: clsx__default["default"](styles__default$2["default"]["sapphire-dropzone"], styles__default$2["default"]["js-focus"], styles__default$2["default"]["js-hover"], {
1052
- [styles__default$2["default"]["is-hover"]]: isHovered && !isDropping,
1053
- [styles__default$2["default"]["is-active"]]: isPressed,
1054
- [styles__default$2["default"]["is-disabled"]]: isDisabled,
1055
- [styles__default$2["default"]["is-focus"]]: isFocusVisible,
1056
- [styles__default$2["default"]["sapphire-dropzone--dropping"]]: isDropping,
1057
- [styles__default$2["default"]["sapphire-dropzone--error"]]: hasError
1228
+ }, /* @__PURE__ */ React__default["default"].createElement("div", __spreadProps$k(__spreadValues$l(__spreadValues$l({}, utils.mergeProps(dropProps, hoverProps, clipboardProps, focusProps, buttonProps)), utils.filterDOMProps(otherProps, { global: true })), {
1229
+ style: __spreadValues$l({}, styleProps.style),
1230
+ className: clsx__default["default"](styles__default$3["default"]["sapphire-dropzone"], styles__default$3["default"]["js-focus"], styles__default$3["default"]["js-hover"], {
1231
+ [styles__default$3["default"]["is-hover"]]: isHovered && !isDropping,
1232
+ [styles__default$3["default"]["is-active"]]: isPressed,
1233
+ [styles__default$3["default"]["is-disabled"]]: isDisabled,
1234
+ [styles__default$3["default"]["is-focus"]]: isFocusVisible,
1235
+ [styles__default$3["default"]["sapphire-dropzone--dropping"]]: isDropping,
1236
+ [styles__default$3["default"]["sapphire-dropzone--error"]]: hasError
1058
1237
  }, styleProps.className),
1059
1238
  "aria-label": ariaLabel,
1060
1239
  "aria-invalid": hasError,
1061
1240
  "aria-describedby": paragraphId
1062
1241
  }), /* @__PURE__ */ React__default["default"].createElement("div", {
1063
- className: clsx__default["default"](styles__default$2["default"]["sapphire-dropzone__content"])
1242
+ className: clsx__default["default"](styles__default$3["default"]["sapphire-dropzone__content"])
1064
1243
  }, /* @__PURE__ */ React__default["default"].createElement("div", {
1065
- className: clsx__default["default"](styles__default$2["default"]["sapphire-dropzone__icon"])
1244
+ className: clsx__default["default"](styles__default$3["default"]["sapphire-dropzone__icon"])
1066
1245
  }, /* @__PURE__ */ React__default["default"].createElement(sapphireReact.Icon, {
1067
1246
  size: "lg"
1068
1247
  }, /* @__PURE__ */ React__default["default"].createElement(react.Upload, null))), /* @__PURE__ */ React__default["default"].createElement("div", {
1069
- className: clsx__default["default"](styles__default$2["default"]["sapphire-dropzone__heading"])
1248
+ className: clsx__default["default"](styles__default$3["default"]["sapphire-dropzone__heading"])
1070
1249
  }, /* @__PURE__ */ React__default["default"].createElement(sapphireReact.Typography.Heading, {
1071
1250
  level: 6
1072
1251
  }, isDropping ? format("dropzone-heading-dropping") : allowsMultiple ? format("dropzone-heading-default") : format("dropzone-heading-default-single"))), /* @__PURE__ */ React__default["default"].createElement("div", {
1073
1252
  id: paragraphId,
1074
- className: clsx__default["default"](styles__default$2["default"]["sapphire-dropzone__paragraph"])
1253
+ className: clsx__default["default"](styles__default$3["default"]["sapphire-dropzone__paragraph"])
1075
1254
  }, /* @__PURE__ */ React__default["default"].createElement(sapphireReact.Typography.Body, {
1076
1255
  size: "sm",
1077
1256
  color: "secondary"
1078
1257
  }, renderInstruction(isDropping)))))));
1079
1258
  });
1080
1259
 
1081
- var __defProp$c = Object.defineProperty;
1082
- var __defProps$c = Object.defineProperties;
1083
- var __getOwnPropDescs$c = Object.getOwnPropertyDescriptors;
1084
- var __getOwnPropSymbols$c = Object.getOwnPropertySymbols;
1085
- var __hasOwnProp$c = Object.prototype.hasOwnProperty;
1086
- var __propIsEnum$c = Object.prototype.propertyIsEnumerable;
1087
- var __defNormalProp$c = (obj, key, value) => key in obj ? __defProp$c(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
1088
- var __spreadValues$c = (a, b) => {
1260
+ var __defProp$k = Object.defineProperty;
1261
+ var __defProps$j = Object.defineProperties;
1262
+ var __getOwnPropDescs$j = Object.getOwnPropertyDescriptors;
1263
+ var __getOwnPropSymbols$k = Object.getOwnPropertySymbols;
1264
+ var __hasOwnProp$k = Object.prototype.hasOwnProperty;
1265
+ var __propIsEnum$k = Object.prototype.propertyIsEnumerable;
1266
+ var __defNormalProp$k = (obj, key, value) => key in obj ? __defProp$k(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
1267
+ var __spreadValues$k = (a, b) => {
1089
1268
  for (var prop in b || (b = {}))
1090
- if (__hasOwnProp$c.call(b, prop))
1091
- __defNormalProp$c(a, prop, b[prop]);
1092
- if (__getOwnPropSymbols$c)
1093
- for (var prop of __getOwnPropSymbols$c(b)) {
1094
- if (__propIsEnum$c.call(b, prop))
1095
- __defNormalProp$c(a, prop, b[prop]);
1269
+ if (__hasOwnProp$k.call(b, prop))
1270
+ __defNormalProp$k(a, prop, b[prop]);
1271
+ if (__getOwnPropSymbols$k)
1272
+ for (var prop of __getOwnPropSymbols$k(b)) {
1273
+ if (__propIsEnum$k.call(b, prop))
1274
+ __defNormalProp$k(a, prop, b[prop]);
1096
1275
  }
1097
1276
  return a;
1098
1277
  };
1099
- var __spreadProps$c = (a, b) => __defProps$c(a, __getOwnPropDescs$c(b));
1100
- var __objRest$a = (source, exclude) => {
1278
+ var __spreadProps$j = (a, b) => __defProps$j(a, __getOwnPropDescs$j(b));
1279
+ var __objRest$i = (source, exclude) => {
1101
1280
  var target = {};
1102
1281
  for (var prop in source)
1103
- if (__hasOwnProp$c.call(source, prop) && exclude.indexOf(prop) < 0)
1282
+ if (__hasOwnProp$k.call(source, prop) && exclude.indexOf(prop) < 0)
1104
1283
  target[prop] = source[prop];
1105
- if (source != null && __getOwnPropSymbols$c)
1106
- for (var prop of __getOwnPropSymbols$c(source)) {
1107
- if (exclude.indexOf(prop) < 0 && __propIsEnum$c.call(source, prop))
1284
+ if (source != null && __getOwnPropSymbols$k)
1285
+ for (var prop of __getOwnPropSymbols$k(source)) {
1286
+ if (exclude.indexOf(prop) < 0 && __propIsEnum$k.call(source, prop))
1108
1287
  target[prop] = source[prop];
1109
1288
  }
1110
1289
  return target;
@@ -1120,6 +1299,7 @@ function FilterDropdown(_a) {
1120
1299
  isOpen: isOpenProp,
1121
1300
  applyButtonLabel = "Apply",
1122
1301
  clearButtonLabel = "Clear",
1302
+ hideClearButton = false,
1123
1303
  defaultOpen = false,
1124
1304
  hasApplyButton = false,
1125
1305
  noMaxWidth,
@@ -1127,7 +1307,7 @@ function FilterDropdown(_a) {
1127
1307
  onClear,
1128
1308
  onOpenChange,
1129
1309
  buttonSize = "md"
1130
- } = _b, props = __objRest$a(_b, [
1310
+ } = _b, props = __objRest$i(_b, [
1131
1311
  "children",
1132
1312
  "label",
1133
1313
  "value",
@@ -1137,6 +1317,7 @@ function FilterDropdown(_a) {
1137
1317
  "isOpen",
1138
1318
  "applyButtonLabel",
1139
1319
  "clearButtonLabel",
1320
+ "hideClearButton",
1140
1321
  "defaultOpen",
1141
1322
  "hasApplyButton",
1142
1323
  "noMaxWidth",
@@ -1146,6 +1327,7 @@ function FilterDropdown(_a) {
1146
1327
  "buttonSize"
1147
1328
  ]);
1148
1329
  const triggerRef = React.useRef(null);
1330
+ const { styleProps } = sapphireReact.useSapphireStyleProps(props);
1149
1331
  const [isOpen, setIsOpen] = utils$2.useControlledState(isOpenProp, defaultOpen, utils.useEffectEvent(onOpenChange));
1150
1332
  const hasValue = value != null && value !== "";
1151
1333
  const close = () => setIsOpen(false);
@@ -1169,16 +1351,17 @@ function FilterDropdown(_a) {
1169
1351
  onOpenChange: setIsOpen,
1170
1352
  noMaxWidth,
1171
1353
  noPadding: true,
1172
- popoverContent: /* @__PURE__ */ React__default["default"].createElement("form", __spreadProps$c(__spreadValues$c({}, utils.filterDOMProps(props, { global: true })), {
1354
+ popoverContent: /* @__PURE__ */ React__default["default"].createElement("form", __spreadProps$j(__spreadValues$k({}, utils.filterDOMProps(props, { global: true })), {
1173
1355
  onSubmit,
1174
- className: styles__default$3["default"]["sapphire-filter-dropdown"]
1356
+ className: clsx__default["default"](styles__default$4["default"]["sapphire-filter-dropdown"], styleProps.className),
1357
+ style: __spreadValues$k({}, styleProps.style)
1175
1358
  }), /* @__PURE__ */ React__default["default"].createElement("div", {
1176
- className: styles__default$3["default"]["sapphire-filter-dropdown__body"]
1359
+ className: styles__default$4["default"]["sapphire-filter-dropdown__body"]
1177
1360
  }, children), /* @__PURE__ */ React__default["default"].createElement("div", {
1178
- className: styles__default$3["default"]["sapphire-filter-dropdown__footer"]
1361
+ className: styles__default$4["default"]["sapphire-filter-dropdown__footer"]
1179
1362
  }, /* @__PURE__ */ React__default["default"].createElement(sapphireReact.ButtonGroup, {
1180
1363
  align: "right"
1181
- }, /* @__PURE__ */ React__default["default"].createElement(sapphireReact.Button, {
1364
+ }, !hideClearButton && /* @__PURE__ */ React__default["default"].createElement(sapphireReact.Button, {
1182
1365
  size: buttonSize,
1183
1366
  variant: "text",
1184
1367
  onPress: () => {
@@ -1196,40 +1379,40 @@ function FilterDropdown(_a) {
1196
1379
  }, label, value ? ": " : "", value));
1197
1380
  }
1198
1381
 
1199
- var __defProp$b = Object.defineProperty;
1200
- var __defProps$b = Object.defineProperties;
1201
- var __getOwnPropDescs$b = Object.getOwnPropertyDescriptors;
1202
- var __getOwnPropSymbols$b = Object.getOwnPropertySymbols;
1203
- var __hasOwnProp$b = Object.prototype.hasOwnProperty;
1204
- var __propIsEnum$b = Object.prototype.propertyIsEnumerable;
1205
- var __defNormalProp$b = (obj, key, value) => key in obj ? __defProp$b(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
1206
- var __spreadValues$b = (a, b) => {
1382
+ var __defProp$j = Object.defineProperty;
1383
+ var __defProps$i = Object.defineProperties;
1384
+ var __getOwnPropDescs$i = Object.getOwnPropertyDescriptors;
1385
+ var __getOwnPropSymbols$j = Object.getOwnPropertySymbols;
1386
+ var __hasOwnProp$j = Object.prototype.hasOwnProperty;
1387
+ var __propIsEnum$j = Object.prototype.propertyIsEnumerable;
1388
+ var __defNormalProp$j = (obj, key, value) => key in obj ? __defProp$j(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
1389
+ var __spreadValues$j = (a, b) => {
1207
1390
  for (var prop in b || (b = {}))
1208
- if (__hasOwnProp$b.call(b, prop))
1209
- __defNormalProp$b(a, prop, b[prop]);
1210
- if (__getOwnPropSymbols$b)
1211
- for (var prop of __getOwnPropSymbols$b(b)) {
1212
- if (__propIsEnum$b.call(b, prop))
1213
- __defNormalProp$b(a, prop, b[prop]);
1391
+ if (__hasOwnProp$j.call(b, prop))
1392
+ __defNormalProp$j(a, prop, b[prop]);
1393
+ if (__getOwnPropSymbols$j)
1394
+ for (var prop of __getOwnPropSymbols$j(b)) {
1395
+ if (__propIsEnum$j.call(b, prop))
1396
+ __defNormalProp$j(a, prop, b[prop]);
1214
1397
  }
1215
1398
  return a;
1216
1399
  };
1217
- var __spreadProps$b = (a, b) => __defProps$b(a, __getOwnPropDescs$b(b));
1218
- var __objRest$9 = (source, exclude) => {
1400
+ var __spreadProps$i = (a, b) => __defProps$i(a, __getOwnPropDescs$i(b));
1401
+ var __objRest$h = (source, exclude) => {
1219
1402
  var target = {};
1220
1403
  for (var prop in source)
1221
- if (__hasOwnProp$b.call(source, prop) && exclude.indexOf(prop) < 0)
1404
+ if (__hasOwnProp$j.call(source, prop) && exclude.indexOf(prop) < 0)
1222
1405
  target[prop] = source[prop];
1223
- if (source != null && __getOwnPropSymbols$b)
1224
- for (var prop of __getOwnPropSymbols$b(source)) {
1225
- if (exclude.indexOf(prop) < 0 && __propIsEnum$b.call(source, prop))
1406
+ if (source != null && __getOwnPropSymbols$j)
1407
+ for (var prop of __getOwnPropSymbols$j(source)) {
1408
+ if (exclude.indexOf(prop) < 0 && __propIsEnum$j.call(source, prop))
1226
1409
  target[prop] = source[prop];
1227
1410
  }
1228
1411
  return target;
1229
1412
  };
1230
1413
  function SearchableSelectFilter(props) {
1231
1414
  var _b, _c;
1232
- const _a = props, { searchField, listBox, size = "md" } = _a, otherProps = __objRest$9(_a, ["searchField", "listBox", "size"]);
1415
+ const _a = props, { searchField, listBox, size = "md" } = _a, otherProps = __objRest$h(_a, ["searchField", "listBox", "size"]);
1233
1416
  const searchFieldRef = React.useRef(null);
1234
1417
  const searchFieldProps = searchField.props;
1235
1418
  const listBoxProps = listBox.props;
@@ -1238,7 +1421,7 @@ function SearchableSelectFilter(props) {
1238
1421
  console.warn("The connectedInputRef prop on the ListBox in the SearchableSelectFilter component is not needed and will be ignored. The connectedInputRef is set automatically (to the passed SearchField) and should not be set manually.");
1239
1422
  }
1240
1423
  const hasSelection = listBoxProps.selectedKeys === "all" || Array.from(listBoxProps.selectedKeys || []).length > 0;
1241
- return /* @__PURE__ */ React__default["default"].createElement(FilterDropdown, __spreadProps$b(__spreadValues$b({}, otherProps), {
1424
+ return /* @__PURE__ */ React__default["default"].createElement(FilterDropdown, __spreadProps$i(__spreadValues$j({}, otherProps), {
1242
1425
  noMaxWidth: (_c = otherProps.noMaxWidth) != null ? _c : true,
1243
1426
  buttonSize: size,
1244
1427
  hasApplyButton: Boolean(otherProps.onApply),
@@ -1262,60 +1445,1173 @@ function SearchableSelectFilter(props) {
1262
1445
  })));
1263
1446
  }
1264
1447
 
1265
- var __defProp$a = Object.defineProperty;
1266
- var __defProps$a = Object.defineProperties;
1267
- var __getOwnPropDescs$a = Object.getOwnPropertyDescriptors;
1268
- var __getOwnPropSymbols$a = Object.getOwnPropertySymbols;
1269
- var __hasOwnProp$a = Object.prototype.hasOwnProperty;
1270
- var __propIsEnum$a = Object.prototype.propertyIsEnumerable;
1271
- var __defNormalProp$a = (obj, key, value) => key in obj ? __defProp$a(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
1272
- var __spreadValues$a = (a, b) => {
1448
+ var __defProp$i = Object.defineProperty;
1449
+ var __defProps$h = Object.defineProperties;
1450
+ var __getOwnPropDescs$h = Object.getOwnPropertyDescriptors;
1451
+ var __getOwnPropSymbols$i = Object.getOwnPropertySymbols;
1452
+ var __hasOwnProp$i = Object.prototype.hasOwnProperty;
1453
+ var __propIsEnum$i = Object.prototype.propertyIsEnumerable;
1454
+ var __defNormalProp$i = (obj, key, value) => key in obj ? __defProp$i(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
1455
+ var __spreadValues$i = (a, b) => {
1273
1456
  for (var prop in b || (b = {}))
1274
- if (__hasOwnProp$a.call(b, prop))
1275
- __defNormalProp$a(a, prop, b[prop]);
1276
- if (__getOwnPropSymbols$a)
1277
- for (var prop of __getOwnPropSymbols$a(b)) {
1278
- if (__propIsEnum$a.call(b, prop))
1279
- __defNormalProp$a(a, prop, b[prop]);
1457
+ if (__hasOwnProp$i.call(b, prop))
1458
+ __defNormalProp$i(a, prop, b[prop]);
1459
+ if (__getOwnPropSymbols$i)
1460
+ for (var prop of __getOwnPropSymbols$i(b)) {
1461
+ if (__propIsEnum$i.call(b, prop))
1462
+ __defNormalProp$i(a, prop, b[prop]);
1280
1463
  }
1281
1464
  return a;
1282
1465
  };
1283
- var __spreadProps$a = (a, b) => __defProps$a(a, __getOwnPropDescs$a(b));
1284
- var __objRest$8 = (source, exclude) => {
1466
+ var __spreadProps$h = (a, b) => __defProps$h(a, __getOwnPropDescs$h(b));
1467
+ var __objRest$g = (source, exclude) => {
1285
1468
  var target = {};
1286
1469
  for (var prop in source)
1287
- if (__hasOwnProp$a.call(source, prop) && exclude.indexOf(prop) < 0)
1470
+ if (__hasOwnProp$i.call(source, prop) && exclude.indexOf(prop) < 0)
1288
1471
  target[prop] = source[prop];
1289
- if (source != null && __getOwnPropSymbols$a)
1290
- for (var prop of __getOwnPropSymbols$a(source)) {
1291
- if (exclude.indexOf(prop) < 0 && __propIsEnum$a.call(source, prop))
1472
+ if (source != null && __getOwnPropSymbols$i)
1473
+ for (var prop of __getOwnPropSymbols$i(source)) {
1474
+ if (exclude.indexOf(prop) < 0 && __propIsEnum$i.call(source, prop))
1292
1475
  target[prop] = source[prop];
1293
1476
  }
1294
1477
  return target;
1295
1478
  };
1296
1479
  const Flag = React__default["default"].forwardRef(function Flag2(_a, ref) {
1297
- var _b = _a, { size = "lg", rounded, "aria-label": ariaLabel } = _b, props = __objRest$8(_b, ["size", "rounded", "aria-label"]);
1480
+ var _b = _a, { size = "lg", rounded, "aria-label": ariaLabel } = _b, props = __objRest$g(_b, ["size", "rounded", "aria-label"]);
1298
1481
  sapphireReact.useThemeCheck();
1299
1482
  const { styleProps } = sapphireReact.useSapphireStyleProps(props);
1300
- return React__default["default"].cloneElement(utils$1.getWrappedElement(props.children), __spreadProps$a(__spreadValues$a({
1483
+ return React__default["default"].cloneElement(utils$1.getWrappedElement(props.children), __spreadProps$h(__spreadValues$i({
1484
+ ref,
1485
+ role: "img"
1486
+ }, ariaLabel ? { "aria-label": ariaLabel } : { "aria-hidden": true }), {
1487
+ className: clsx__default["default"](styles__default$5["default"]["sapphire-flag"], styleProps.className, {
1488
+ [styles__default$5["default"]["sapphire-flag--xs"]]: size === "xs",
1489
+ [styles__default$5["default"]["sapphire-flag--sm"]]: size === "sm",
1490
+ [styles__default$5["default"]["sapphire-flag--md"]]: size === "md",
1491
+ [styles__default$5["default"]["sapphire-flag--lg"]]: size === "lg",
1492
+ [styles__default$5["default"]["sapphire-flag--xl"]]: size === "xl",
1493
+ [styles__default$5["default"]["sapphire-flag--rounded"]]: rounded
1494
+ }),
1495
+ style: styleProps.style
1496
+ }));
1497
+ });
1498
+
1499
+ var __defProp$h = Object.defineProperty;
1500
+ var __defProps$g = Object.defineProperties;
1501
+ var __getOwnPropDescs$g = Object.getOwnPropertyDescriptors;
1502
+ var __getOwnPropSymbols$h = Object.getOwnPropertySymbols;
1503
+ var __hasOwnProp$h = Object.prototype.hasOwnProperty;
1504
+ var __propIsEnum$h = Object.prototype.propertyIsEnumerable;
1505
+ var __defNormalProp$h = (obj, key, value) => key in obj ? __defProp$h(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
1506
+ var __spreadValues$h = (a, b) => {
1507
+ for (var prop in b || (b = {}))
1508
+ if (__hasOwnProp$h.call(b, prop))
1509
+ __defNormalProp$h(a, prop, b[prop]);
1510
+ if (__getOwnPropSymbols$h)
1511
+ for (var prop of __getOwnPropSymbols$h(b)) {
1512
+ if (__propIsEnum$h.call(b, prop))
1513
+ __defNormalProp$h(a, prop, b[prop]);
1514
+ }
1515
+ return a;
1516
+ };
1517
+ var __spreadProps$g = (a, b) => __defProps$g(a, __getOwnPropDescs$g(b));
1518
+ var __objRest$f = (source, exclude) => {
1519
+ var target = {};
1520
+ for (var prop in source)
1521
+ if (__hasOwnProp$h.call(source, prop) && exclude.indexOf(prop) < 0)
1522
+ target[prop] = source[prop];
1523
+ if (source != null && __getOwnPropSymbols$h)
1524
+ for (var prop of __getOwnPropSymbols$h(source)) {
1525
+ if (exclude.indexOf(prop) < 0 && __propIsEnum$h.call(source, prop))
1526
+ target[prop] = source[prop];
1527
+ }
1528
+ return target;
1529
+ };
1530
+ function LabeledValue(_a) {
1531
+ var _b = _a, {
1532
+ children,
1533
+ contextualHelp,
1534
+ label: label$1,
1535
+ labelPlacement = "above",
1536
+ size = "lg"
1537
+ } = _b, otherProps = __objRest$f(_b, [
1538
+ "children",
1539
+ "contextualHelp",
1540
+ "label",
1541
+ "labelPlacement",
1542
+ "size"
1543
+ ]);
1544
+ sapphireReact.useThemeCheck();
1545
+ const { fieldProps } = label.useField({ label: label$1 });
1546
+ return /* @__PURE__ */ React__default["default"].createElement(sapphireReact.Field, __spreadProps$g(__spreadValues$h({}, utils.mergeProps(fieldProps, otherProps)), {
1547
+ labelPlacement,
1548
+ size,
1549
+ noDefaultWidth: true
1550
+ }), /* @__PURE__ */ React__default["default"].createElement(sapphireReact.Field.Label, null, /* @__PURE__ */ React__default["default"].createElement(sapphireReact.Label, {
1551
+ contextualHelp,
1552
+ size
1553
+ }, label$1)), /* @__PURE__ */ React__default["default"].createElement(sapphireReact.Field.Control, null, children));
1554
+ }
1555
+
1556
+ var increment$6 = "øge";
1557
+ var decrement$6 = "formindske";
1558
+ var da$1 = {
1559
+ increment: increment$6,
1560
+ decrement: decrement$6
1561
+ };
1562
+
1563
+ var increment$5 = "Increase";
1564
+ var decrement$5 = "Decrease";
1565
+ var en$1 = {
1566
+ increment: increment$5,
1567
+ decrement: decrement$5
1568
+ };
1569
+
1570
+ var increment$4 = "erhöhen";
1571
+ var decrement$4 = "verringern";
1572
+ var de$1 = {
1573
+ increment: increment$4,
1574
+ decrement: decrement$4
1575
+ };
1576
+
1577
+ var increment$3 = "lisääntyä";
1578
+ var decrement$3 = "vähentää";
1579
+ var fi$1 = {
1580
+ increment: increment$3,
1581
+ decrement: decrement$3
1582
+ };
1583
+
1584
+ var increment$2 = "øke";
1585
+ var decrement$2 = "avta";
1586
+ var no$1 = {
1587
+ increment: increment$2,
1588
+ decrement: decrement$2
1589
+ };
1590
+
1591
+ var increment$1 = "zwiększyć";
1592
+ var decrement$1 = "zmniejszenie";
1593
+ var pl$1 = {
1594
+ increment: increment$1,
1595
+ decrement: decrement$1
1596
+ };
1597
+
1598
+ var increment = "öka";
1599
+ var decrement = "minska";
1600
+ var se$1 = {
1601
+ increment: increment,
1602
+ decrement: decrement
1603
+ };
1604
+
1605
+ var intlMessages$1 = {
1606
+ "da-DK": da$1,
1607
+ "en-US": en$1,
1608
+ "de-DE": de$1,
1609
+ "fi-FI": fi$1,
1610
+ "nb-NO": no$1,
1611
+ "pl-PL": pl$1,
1612
+ "sv-SE": se$1
1613
+ };
1614
+
1615
+ var __defProp$g = Object.defineProperty;
1616
+ var __defProps$f = Object.defineProperties;
1617
+ var __getOwnPropDescs$f = Object.getOwnPropertyDescriptors;
1618
+ var __getOwnPropSymbols$g = Object.getOwnPropertySymbols;
1619
+ var __hasOwnProp$g = Object.prototype.hasOwnProperty;
1620
+ var __propIsEnum$g = Object.prototype.propertyIsEnumerable;
1621
+ var __defNormalProp$g = (obj, key, value) => key in obj ? __defProp$g(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
1622
+ var __spreadValues$g = (a, b) => {
1623
+ for (var prop in b || (b = {}))
1624
+ if (__hasOwnProp$g.call(b, prop))
1625
+ __defNormalProp$g(a, prop, b[prop]);
1626
+ if (__getOwnPropSymbols$g)
1627
+ for (var prop of __getOwnPropSymbols$g(b)) {
1628
+ if (__propIsEnum$g.call(b, prop))
1629
+ __defNormalProp$g(a, prop, b[prop]);
1630
+ }
1631
+ return a;
1632
+ };
1633
+ var __spreadProps$f = (a, b) => __defProps$f(a, __getOwnPropDescs$f(b));
1634
+ var __objRest$e = (source, exclude) => {
1635
+ var target = {};
1636
+ for (var prop in source)
1637
+ if (__hasOwnProp$g.call(source, prop) && exclude.indexOf(prop) < 0)
1638
+ target[prop] = source[prop];
1639
+ if (source != null && __getOwnPropSymbols$g)
1640
+ for (var prop of __getOwnPropSymbols$g(source)) {
1641
+ if (exclude.indexOf(prop) < 0 && __propIsEnum$g.call(source, prop))
1642
+ target[prop] = source[prop];
1643
+ }
1644
+ return target;
1645
+ };
1646
+ const StepperButton = (_a) => {
1647
+ var _b = _a, {
1648
+ variant,
1649
+ size
1650
+ } = _b, props = __objRest$e(_b, [
1651
+ "variant",
1652
+ "size"
1653
+ ]);
1654
+ const ref = React.useRef(null);
1655
+ const { buttonProps, isPressed } = sapphireReact.useButton(props, ref);
1656
+ const { hoverProps, isHovered } = interactions.useHover({ isDisabled: props.isDisabled });
1657
+ const { focusProps, isFocusVisible } = focus.useFocusRing();
1658
+ return /* @__PURE__ */ React__default["default"].createElement("button", __spreadProps$f(__spreadValues$g({}, utils.mergeProps(buttonProps, hoverProps, focusProps, utils.filterDOMProps(props, { global: true }))), {
1659
+ tabIndex: 0,
1660
+ ref,
1661
+ className: clsx__default["default"](textFieldStyles__default["default"]["sapphire-text-field__stepper-button"], textFieldStyles__default["default"]["js-hover"], {
1662
+ [textFieldStyles__default["default"]["is-active"]]: isPressed,
1663
+ [textFieldStyles__default["default"]["is-hover"]]: isHovered,
1664
+ [textFieldStyles__default["default"]["is-focus"]]: isFocusVisible
1665
+ })
1666
+ }), /* @__PURE__ */ React__default["default"].createElement(sapphireReact.Icon, {
1667
+ size: size === "lg" ? "md" : "sm"
1668
+ }, variant === "increment" ? /* @__PURE__ */ React__default["default"].createElement(react.Add, null) : /* @__PURE__ */ React__default["default"].createElement(react.Subtract, null)));
1669
+ };
1670
+
1671
+ function useAutofillStyle(inputRef) {
1672
+ const [styles, setStyles] = React.useState({});
1673
+ const updateStyle = () => {
1674
+ const input = inputRef.current;
1675
+ if (input) {
1676
+ const color = window.getComputedStyle(input).backgroundColor;
1677
+ setStyles({
1678
+ boxShadow: `-100px 0 ${color}, 100px 0 ${color}`
1679
+ });
1680
+ }
1681
+ };
1682
+ return {
1683
+ autofillStyles: styles,
1684
+ updateStyle
1685
+ };
1686
+ }
1687
+
1688
+ const getSeparators = (formatter) => {
1689
+ var _a, _b, _c, _d, _e;
1690
+ const parts = formatter.formatToParts(1000.1);
1691
+ const groupSeparator = (_b = (_a = parts.find((p) => p.type === "group")) == null ? void 0 : _a.value) != null ? _b : ",";
1692
+ let decimalSeparator = (_c = parts.find((p) => p.type === "decimal")) == null ? void 0 : _c.value;
1693
+ if (!decimalSeparator) {
1694
+ const locale = formatter.resolvedOptions().locale;
1695
+ const plainFormatter = new Intl.NumberFormat(locale);
1696
+ decimalSeparator = (_e = (_d = plainFormatter.formatToParts(1.1).find((p) => p.type === "decimal")) == null ? void 0 : _d.value) != null ? _e : ".";
1697
+ }
1698
+ return { groupSeparator, decimalSeparator };
1699
+ };
1700
+ const trimSymbol = (value, symbol) => {
1701
+ if (!symbol)
1702
+ return value;
1703
+ if (value.startsWith(symbol)) {
1704
+ return value.slice(symbol.length).trimStart();
1705
+ } else if (value.endsWith(symbol)) {
1706
+ return value.slice(0, -symbol.length).trimEnd();
1707
+ }
1708
+ return value;
1709
+ };
1710
+ const parseNumericValue = (value, decimalSeparator, formatter) => {
1711
+ if (!value || value === "-")
1712
+ return null;
1713
+ const cleaned = value.replace(new RegExp(`[^0-9${decimalSeparator}\\-]`, "g"), "");
1714
+ if (!cleaned)
1715
+ return null;
1716
+ const hasLeadingMinus = cleaned.startsWith("-");
1717
+ const withoutMinus = cleaned.replace(/-/g, "");
1718
+ const normalized = hasLeadingMinus ? "-" + withoutMinus : withoutMinus;
1719
+ const parts = normalized.split(decimalSeparator);
1720
+ const withStandardDecimal = parts.length > 1 ? parts[0] + "." + parts.slice(1).join("") : normalized.replace(decimalSeparator, ".");
1721
+ let parsed = parseFloat(withStandardDecimal);
1722
+ if (isNaN(parsed))
1723
+ return null;
1724
+ if ((formatter == null ? void 0 : formatter.resolvedOptions().style) === "percent") {
1725
+ parsed /= 100;
1726
+ }
1727
+ return parsed;
1728
+ };
1729
+ const formatNumberString = (value, formatter, decimalSeparator, shouldStripSymbols, symbol) => {
1730
+ if (!value || value === "-" || value === decimalSeparator) {
1731
+ return value;
1732
+ }
1733
+ const hasTrailingDecimal = value.endsWith(decimalSeparator);
1734
+ const numericValue = parseNumericValue(value, decimalSeparator, formatter);
1735
+ if (numericValue === null) {
1736
+ return value.replace(new RegExp(`[^0-9${decimalSeparator}\\-]`, "g"), "");
1737
+ }
1738
+ try {
1739
+ const formatted = formatter.format(numericValue);
1740
+ const result = shouldStripSymbols && symbol ? trimSymbol(formatted, symbol) : formatted;
1741
+ return hasTrailingDecimal && !result.includes(decimalSeparator) ? result + decimalSeparator : result;
1742
+ } catch (_) {
1743
+ return value;
1744
+ }
1745
+ };
1746
+ const isSymbol = (type) => ["currency", "unit", "percentSign"].includes(type);
1747
+ const hasSymbolAt = (parts, start) => {
1748
+ const [first, second] = start ? [parts[0], parts[1]] : [parts[parts.length - 1], parts[parts.length - 2]];
1749
+ return isSymbol(first == null ? void 0 : first.type) || (first == null ? void 0 : first.type) === "literal" && isSymbol(second == null ? void 0 : second.type);
1750
+ };
1751
+ const extractSymbol = (formatter, prefix, postfix) => {
1752
+ var _a, _b;
1753
+ const parts = formatter.formatToParts(1000.1);
1754
+ const extractedPrefix = hasSymbolAt(parts, true) ? ((_a = parts.find((part) => isSymbol(part.type))) == null ? void 0 : _a.value) || null : null;
1755
+ const extractedPostfix = hasSymbolAt(parts, false) ? ((_b = [...parts].reverse().find((part) => isSymbol(part.type))) == null ? void 0 : _b.value) || null : null;
1756
+ return prefix !== void 0 || postfix !== void 0 ? {
1757
+ extractedPrefix: prefix,
1758
+ extractedPostfix: postfix,
1759
+ symbol: extractedPrefix || extractedPostfix || void 0
1760
+ } : {
1761
+ extractedPrefix,
1762
+ extractedPostfix,
1763
+ symbol: extractedPrefix || extractedPostfix || void 0
1764
+ };
1765
+ };
1766
+
1767
+ const isDeleteOperation = (inputType) => {
1768
+ return inputType === "deleteContentBackward" || inputType === "deleteContentForward";
1769
+ };
1770
+ const calculateCursorPosition = (oldValue, newValue, oldCursor, inputType, decimalSeparator, numericValue) => {
1771
+ if (!newValue)
1772
+ return 0;
1773
+ const oldDecimalPos = oldValue.indexOf(decimalSeparator);
1774
+ const newDecimalPos = newValue.indexOf(decimalSeparator);
1775
+ if (numericValue === 0 && isDeleteOperation(inputType)) {
1776
+ return 0;
1777
+ }
1778
+ const countDigits = (str, start, end) => {
1779
+ let count = 0;
1780
+ for (let i = start; i < end; i++) {
1781
+ if (/[0-9]/.test(str[i]))
1782
+ count++;
1783
+ }
1784
+ return count;
1785
+ };
1786
+ if (isDeleteOperation(inputType) && oldDecimalPos >= 0 && oldCursor === oldDecimalPos && newDecimalPos >= 0) {
1787
+ return newDecimalPos;
1788
+ }
1789
+ if (oldDecimalPos >= 0 && oldCursor > oldDecimalPos && newDecimalPos >= 0) {
1790
+ const digitsBeforeCursor = countDigits(oldValue, oldDecimalPos + 1, oldCursor);
1791
+ let digitCount2 = 0;
1792
+ for (let i = newDecimalPos + 1; i < newValue.length; i++) {
1793
+ if (/[0-9]/.test(newValue[i]) && ++digitCount2 === digitsBeforeCursor) {
1794
+ return i + 1;
1795
+ }
1796
+ }
1797
+ return newDecimalPos + 1;
1798
+ }
1799
+ const oldEnd = oldDecimalPos >= 0 ? oldDecimalPos : oldValue.length;
1800
+ const newEnd = newDecimalPos >= 0 ? newDecimalPos : newValue.length;
1801
+ const intDigitsBeforeCursor = countDigits(oldValue, 0, Math.min(oldCursor, oldEnd));
1802
+ if (intDigitsBeforeCursor === 0) {
1803
+ if (isDeleteOperation(inputType)) {
1804
+ for (let i = 0; i < newValue.length; i++) {
1805
+ if (/[0-9]/.test(newValue[i]))
1806
+ return i + 1;
1807
+ }
1808
+ }
1809
+ return 0;
1810
+ }
1811
+ let digitCount = 0;
1812
+ for (let i = 0; i < newEnd; i++) {
1813
+ if (/[0-9]/.test(newValue[i]) && ++digitCount === intDigitsBeforeCursor) {
1814
+ return i + 1;
1815
+ }
1816
+ }
1817
+ return newDecimalPos >= 0 ? newDecimalPos : newValue.length;
1818
+ };
1819
+
1820
+ const escapeRegExp = (str) => str.replace(/[-/\\^$*+?.()|[\]{}]/g, "\\$&");
1821
+ const getSuffix = (value, groupSeparator, decimalSeparator) => {
1822
+ var _a;
1823
+ const suffixReg = new RegExp(`\\d([^${escapeRegExp(groupSeparator)}${escapeRegExp(decimalSeparator)}0-9]+)`);
1824
+ return (_a = value.match(suffixReg)) == null ? void 0 : _a[1];
1825
+ };
1826
+ function handleNumberFieldKeyDown({
1827
+ event,
1828
+ inputRef,
1829
+ groupSeparator,
1830
+ decimalSeparator,
1831
+ onOriginalKeyDown
1832
+ }) {
1833
+ var _a;
1834
+ const { key } = event;
1835
+ const input = event.currentTarget;
1836
+ const { selectionStart, value } = input;
1837
+ if (selectionStart === null) {
1838
+ onOriginalKeyDown == null ? void 0 : onOriginalKeyDown(event);
1839
+ return;
1840
+ }
1841
+ if (/^[0-9]$/.test(key)) {
1842
+ const decimalPos = value.indexOf(decimalSeparator);
1843
+ if (selectionStart === 0) {
1844
+ const integerPart = decimalPos >= 0 ? value.slice(0, decimalPos) : value;
1845
+ const cleanedInteger = integerPart.replace(new RegExp(escapeRegExp(groupSeparator), "g"), "");
1846
+ if (cleanedInteger === "0") {
1847
+ event.preventDefault();
1848
+ const newValue = key + (decimalPos >= 0 ? value.slice(decimalPos) : "");
1849
+ input.value = newValue;
1850
+ input.setSelectionRange(1, 1);
1851
+ const inputEvent = new Event("input", { bubbles: true });
1852
+ input.dispatchEvent(inputEvent);
1853
+ return;
1854
+ }
1855
+ }
1856
+ }
1857
+ if (key === decimalSeparator) {
1858
+ const decimalPos = value.indexOf(decimalSeparator);
1859
+ if (decimalPos >= 0 && selectionStart <= decimalPos) {
1860
+ event.preventDefault();
1861
+ input.setSelectionRange(decimalPos + 1, decimalPos + 1);
1862
+ return;
1863
+ }
1864
+ }
1865
+ if (key === "Backspace" && selectionStart > 0 && value[selectionStart - 1] === groupSeparator) {
1866
+ event.preventDefault();
1867
+ let deletePos = selectionStart - 2;
1868
+ while (deletePos >= 0 && value[deletePos] === groupSeparator) {
1869
+ deletePos--;
1870
+ }
1871
+ if (deletePos >= 0) {
1872
+ const newValue = value.slice(0, deletePos) + value.slice(deletePos + 1);
1873
+ input.value = newValue;
1874
+ input.setSelectionRange(deletePos, deletePos);
1875
+ const inputEvent = new Event("input", { bubbles: true });
1876
+ input.dispatchEvent(inputEvent);
1877
+ }
1878
+ return;
1879
+ }
1880
+ if (key === "Backspace" && selectionStart > 0 && value[selectionStart - 1] === decimalSeparator) {
1881
+ event.preventDefault();
1882
+ let deletePos = selectionStart - 2;
1883
+ while (deletePos >= 0 && value[deletePos] === groupSeparator) {
1884
+ deletePos--;
1885
+ }
1886
+ if (deletePos >= 0) {
1887
+ const newValue = value.slice(0, deletePos) + value.slice(deletePos + 1);
1888
+ input.value = newValue;
1889
+ const decimalPos = newValue.indexOf(decimalSeparator);
1890
+ if (decimalPos >= 0) {
1891
+ input.setSelectionRange(decimalPos, decimalPos);
1892
+ }
1893
+ const inputEvent = new Event("input", { bubbles: true });
1894
+ input.dispatchEvent(inputEvent);
1895
+ }
1896
+ return;
1897
+ }
1898
+ if (key === "Delete" && value[selectionStart] === groupSeparator) {
1899
+ event.preventDefault();
1900
+ let deletePos = selectionStart + 1;
1901
+ while (deletePos < value.length && value[deletePos] === groupSeparator) {
1902
+ deletePos++;
1903
+ }
1904
+ if (deletePos < value.length) {
1905
+ const newValue = value.slice(0, deletePos) + value.slice(deletePos + 1);
1906
+ input.value = newValue;
1907
+ input.setSelectionRange(selectionStart, selectionStart);
1908
+ const inputEvent = new Event("input", { bubbles: true });
1909
+ input.dispatchEvent(inputEvent);
1910
+ }
1911
+ return;
1912
+ }
1913
+ if (key === "Delete" && value[selectionStart] === decimalSeparator) {
1914
+ event.preventDefault();
1915
+ let deletePos = selectionStart + 1;
1916
+ while (deletePos < value.length && !/[0-9]/.test(value[deletePos])) {
1917
+ deletePos++;
1918
+ }
1919
+ if (deletePos < value.length) {
1920
+ const newValue = value.slice(0, deletePos) + value.slice(deletePos + 1);
1921
+ input.value = newValue;
1922
+ input.setSelectionRange(selectionStart, selectionStart);
1923
+ const inputEvent = new Event("input", { bubbles: true });
1924
+ input.dispatchEvent(inputEvent);
1925
+ }
1926
+ return;
1927
+ }
1928
+ if (key !== "ArrowUp" && key !== "ArrowDown" && value !== "-") {
1929
+ const suffix = getSuffix(value, groupSeparator, decimalSeparator);
1930
+ if (suffix && selectionStart > value.length - suffix.length) {
1931
+ const suffixStartPos = value.length - suffix.length;
1932
+ (_a = inputRef.current) == null ? void 0 : _a.setSelectionRange(suffixStartPos, suffixStartPos);
1933
+ }
1934
+ }
1935
+ onOriginalKeyDown == null ? void 0 : onOriginalKeyDown(event);
1936
+ }
1937
+
1938
+ function useNumberFieldFormatting({
1939
+ inputRef,
1940
+ formatter,
1941
+ inputValue,
1942
+ prefix,
1943
+ postfix,
1944
+ onOriginalKeyDown,
1945
+ onChange,
1946
+ autoFormat
1947
+ }) {
1948
+ const { groupSeparator, decimalSeparator } = React.useMemo(() => getSeparators(formatter), [formatter]);
1949
+ const [formattedValue, setFormattedValue] = React.useState("");
1950
+ const symbolInfo = React.useMemo(() => extractSymbol(formatter, prefix, postfix), [formatter, prefix, postfix]);
1951
+ const { extractedPrefix, extractedPostfix, symbol } = symbolInfo;
1952
+ const cursorPositionRef = React.useRef(null);
1953
+ const displayValue = React.useMemo(() => {
1954
+ const numericValue = parseNumericValue(inputValue, decimalSeparator, formatter);
1955
+ if (numericValue === null)
1956
+ return inputValue;
1957
+ try {
1958
+ const trimmedValue = trimSymbol(inputValue, symbol) || inputValue;
1959
+ return autoFormat ? formattedValue || trimmedValue : trimmedValue;
1960
+ } catch (e) {
1961
+ return inputValue;
1962
+ }
1963
+ }, [
1964
+ inputValue,
1965
+ symbol,
1966
+ formatter,
1967
+ decimalSeparator,
1968
+ autoFormat,
1969
+ formattedValue
1970
+ ]);
1971
+ React.useLayoutEffect(() => {
1972
+ if (cursorPositionRef.current !== null && inputRef.current) {
1973
+ inputRef.current.setSelectionRange(cursorPositionRef.current, cursorPositionRef.current);
1974
+ cursorPositionRef.current = null;
1975
+ }
1976
+ }, [displayValue, inputRef]);
1977
+ const handleInput = React.useCallback((e) => {
1978
+ if (!autoFormat)
1979
+ return;
1980
+ const input = e.currentTarget;
1981
+ const { value, selectionStart } = input;
1982
+ const inputType = e.nativeEvent.inputType || "";
1983
+ const shouldStrip = !!symbol;
1984
+ const maxFractionDigits = formatter.resolvedOptions().maximumFractionDigits || 0;
1985
+ const decimalIndex = value.indexOf(decimalSeparator);
1986
+ if (decimalIndex !== -1 && selectionStart !== null) {
1987
+ const decimalPart = value.slice(decimalIndex + 1).replace(new RegExp(`[^0-9]`, "g"), "");
1988
+ const prevDecimalIndex = displayValue.indexOf(decimalSeparator);
1989
+ const prevDecimalLength = prevDecimalIndex !== -1 ? displayValue.slice(prevDecimalIndex + 1).length : 0;
1990
+ if (decimalPart.length > maxFractionDigits && selectionStart > decimalIndex + 1 + prevDecimalLength) {
1991
+ e.preventDefault();
1992
+ cursorPositionRef.current = decimalIndex + 1 + prevDecimalLength;
1993
+ return;
1994
+ }
1995
+ }
1996
+ const formattedValue2 = formatNumberString(value, formatter, decimalSeparator, shouldStrip, symbol);
1997
+ setFormattedValue(formattedValue2);
1998
+ const numericValue = parseNumericValue(formattedValue2, decimalSeparator, formatter);
1999
+ if (formattedValue2 !== value && formattedValue2 !== "" && selectionStart !== null) {
2000
+ const newCursorPosition = calculateCursorPosition(value, formattedValue2, selectionStart, inputType, decimalSeparator, numericValue);
2001
+ cursorPositionRef.current = newCursorPosition;
2002
+ }
2003
+ if (numericValue !== null) {
2004
+ onChange == null ? void 0 : onChange(numericValue);
2005
+ }
2006
+ }, [formatter, decimalSeparator, symbol, autoFormat, displayValue, onChange]);
2007
+ const handleKeyDown = React.useCallback((e) => {
2008
+ handleNumberFieldKeyDown({
2009
+ event: e,
2010
+ inputRef,
2011
+ groupSeparator,
2012
+ decimalSeparator,
2013
+ onOriginalKeyDown
2014
+ });
2015
+ }, [groupSeparator, decimalSeparator, inputRef, onOriginalKeyDown]);
2016
+ return {
2017
+ displayValue,
2018
+ extractedPrefix,
2019
+ extractedPostfix,
2020
+ handleInput,
2021
+ handleKeyDown
2022
+ };
2023
+ }
2024
+
2025
+ var __defProp$f = Object.defineProperty;
2026
+ var __defProps$e = Object.defineProperties;
2027
+ var __getOwnPropDescs$e = Object.getOwnPropertyDescriptors;
2028
+ var __getOwnPropSymbols$f = Object.getOwnPropertySymbols;
2029
+ var __hasOwnProp$f = Object.prototype.hasOwnProperty;
2030
+ var __propIsEnum$f = Object.prototype.propertyIsEnumerable;
2031
+ var __defNormalProp$f = (obj, key, value) => key in obj ? __defProp$f(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
2032
+ var __spreadValues$f = (a, b) => {
2033
+ for (var prop in b || (b = {}))
2034
+ if (__hasOwnProp$f.call(b, prop))
2035
+ __defNormalProp$f(a, prop, b[prop]);
2036
+ if (__getOwnPropSymbols$f)
2037
+ for (var prop of __getOwnPropSymbols$f(b)) {
2038
+ if (__propIsEnum$f.call(b, prop))
2039
+ __defNormalProp$f(a, prop, b[prop]);
2040
+ }
2041
+ return a;
2042
+ };
2043
+ var __spreadProps$e = (a, b) => __defProps$e(a, __getOwnPropDescs$e(b));
2044
+ var __objRest$d = (source, exclude) => {
2045
+ var target = {};
2046
+ for (var prop in source)
2047
+ if (__hasOwnProp$f.call(source, prop) && exclude.indexOf(prop) < 0)
2048
+ target[prop] = source[prop];
2049
+ if (source != null && __getOwnPropSymbols$f)
2050
+ for (var prop of __getOwnPropSymbols$f(source)) {
2051
+ if (exclude.indexOf(prop) < 0 && __propIsEnum$f.call(source, prop))
2052
+ target[prop] = source[prop];
2053
+ }
2054
+ return target;
2055
+ };
2056
+ const useSapphireNumberField = (_a, ref) => {
2057
+ var _b = _a, { error } = _b, numberFieldProps = __objRest$d(_b, ["error"]);
2058
+ const { locale } = i18n.useLocale();
2059
+ const numberFieldState = numberfield.useNumberFieldState(__spreadProps$e(__spreadValues$f({}, numberFieldProps), {
2060
+ locale
2061
+ }));
2062
+ const numberFieldAria = numberfield$1.useNumberField(__spreadProps$e(__spreadValues$f({}, numberFieldProps), {
2063
+ validationState: error === false || error === void 0 ? void 0 : "invalid"
2064
+ }), numberFieldState, ref);
2065
+ return __spreadProps$e(__spreadValues$f({}, numberFieldAria), { state: numberFieldState });
2066
+ };
2067
+
2068
+ var __defProp$e = Object.defineProperty;
2069
+ var __defProps$d = Object.defineProperties;
2070
+ var __getOwnPropDescs$d = Object.getOwnPropertyDescriptors;
2071
+ var __getOwnPropSymbols$e = Object.getOwnPropertySymbols;
2072
+ var __hasOwnProp$e = Object.prototype.hasOwnProperty;
2073
+ var __propIsEnum$e = Object.prototype.propertyIsEnumerable;
2074
+ var __defNormalProp$e = (obj, key, value) => key in obj ? __defProp$e(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
2075
+ var __spreadValues$e = (a, b) => {
2076
+ for (var prop in b || (b = {}))
2077
+ if (__hasOwnProp$e.call(b, prop))
2078
+ __defNormalProp$e(a, prop, b[prop]);
2079
+ if (__getOwnPropSymbols$e)
2080
+ for (var prop of __getOwnPropSymbols$e(b)) {
2081
+ if (__propIsEnum$e.call(b, prop))
2082
+ __defNormalProp$e(a, prop, b[prop]);
2083
+ }
2084
+ return a;
2085
+ };
2086
+ var __spreadProps$d = (a, b) => __defProps$d(a, __getOwnPropDescs$d(b));
2087
+ var __objRest$c = (source, exclude) => {
2088
+ var target = {};
2089
+ for (var prop in source)
2090
+ if (__hasOwnProp$e.call(source, prop) && exclude.indexOf(prop) < 0)
2091
+ target[prop] = source[prop];
2092
+ if (source != null && __getOwnPropSymbols$e)
2093
+ for (var prop of __getOwnPropSymbols$e(source)) {
2094
+ if (exclude.indexOf(prop) < 0 && __propIsEnum$e.call(source, prop))
2095
+ target[prop] = source[prop];
2096
+ }
2097
+ return target;
2098
+ };
2099
+ const NumberField = React.forwardRef(function NumberField2(props, ref) {
2100
+ var _b;
2101
+ const _a = props, {
2102
+ label,
2103
+ isDisabled,
2104
+ error,
2105
+ note,
2106
+ isRequired,
2107
+ contextualHelp,
2108
+ affix = "auto",
2109
+ size = "lg",
2110
+ labelPlacement = "above",
2111
+ necessityIndicator = false,
2112
+ alignInputRight,
2113
+ showButtons = false,
2114
+ incrementAriaLabel,
2115
+ decrementAriaLabel,
2116
+ autoFormat = false
2117
+ } = _a, otherProps = __objRest$c(_a, [
2118
+ "label",
2119
+ "isDisabled",
2120
+ "error",
2121
+ "note",
2122
+ "isRequired",
2123
+ "contextualHelp",
2124
+ "affix",
2125
+ "size",
2126
+ "labelPlacement",
2127
+ "necessityIndicator",
2128
+ "alignInputRight",
2129
+ "showButtons",
2130
+ "incrementAriaLabel",
2131
+ "decrementAriaLabel",
2132
+ "autoFormat"
2133
+ ]);
2134
+ const { prefix, postfix } = React.useMemo(() => {
2135
+ if (affix === "auto") {
2136
+ return { prefix: void 0, postfix: void 0 };
2137
+ }
2138
+ return { prefix: affix.prefix, postfix: affix.postfix };
2139
+ }, [affix]);
2140
+ sapphireReact.useThemeCheck();
2141
+ const inputRef = utils.useObjectRef(props.inputRef);
2142
+ const formatMessage = i18n.useMessageFormatter(intlMessages$1);
2143
+ const {
2144
+ inputProps,
2145
+ labelProps,
2146
+ incrementButtonProps,
2147
+ decrementButtonProps,
2148
+ descriptionProps,
2149
+ errorMessageProps
2150
+ } = useSapphireNumberField(__spreadProps$d(__spreadValues$e({}, props), {
2151
+ incrementAriaLabel: incrementAriaLabel != null ? incrementAriaLabel : formatMessage("increment"),
2152
+ decrementAriaLabel: decrementAriaLabel != null ? decrementAriaLabel : formatMessage("decrement")
2153
+ }), inputRef);
2154
+ const { focusProps, isFocusVisible } = focus.useFocusRing();
2155
+ const { autofillStyles, updateStyle } = useAutofillStyle(inputRef);
2156
+ const { locale } = i18n.useLocale();
2157
+ const formatter = React.useMemo(() => new Intl.NumberFormat(locale, props.formatOptions), [locale, props.formatOptions]);
2158
+ const formattingResult = useNumberFieldFormatting({
2159
+ inputRef,
2160
+ formatter,
2161
+ inputValue: inputProps.value,
2162
+ prefix,
2163
+ postfix,
2164
+ onOriginalKeyDown: inputProps.onKeyDown,
2165
+ onChange: props.onChange,
2166
+ autoFormat
2167
+ });
2168
+ const { extractedPrefix, extractedPostfix, handleInput, handleKeyDown } = autoFormat ? formattingResult : {
2169
+ extractedPrefix: formattingResult.extractedPrefix,
2170
+ extractedPostfix: formattingResult.extractedPostfix,
2171
+ handleInput: void 0,
2172
+ handleKeyDown: inputProps.onKeyDown
2173
+ };
2174
+ const containerRef = React.useRef(null);
2175
+ React.useImperativeHandle(ref, () => __spreadProps$d(__spreadValues$e({}, utils$1.createFocusableRef(containerRef, inputRef)), {
2176
+ getInputElement() {
2177
+ return inputRef.current;
2178
+ }
2179
+ }));
2180
+ return /* @__PURE__ */ React__default["default"].createElement(sapphireReact.Field, __spreadProps$d(__spreadValues$e({}, removeUniqueDOMProps(otherProps)), {
2181
+ ref: containerRef,
2182
+ size,
2183
+ labelPlacement
2184
+ }), /* @__PURE__ */ React__default["default"].createElement(sapphireReact.Field.Context, {
2185
+ descriptionProps: error ? errorMessageProps : descriptionProps
2186
+ }, label && /* @__PURE__ */ React__default["default"].createElement(sapphireReact.Field.Label, null, /* @__PURE__ */ React__default["default"].createElement(sapphireReact.Label, __spreadProps$d(__spreadValues$e({}, labelProps), {
2187
+ size,
2188
+ necessityIndicator: isRequired && necessityIndicator ? "required" : !isRequired && necessityIndicator ? "optional" : void 0,
2189
+ contextualHelp
2190
+ }), label)), /* @__PURE__ */ React__default["default"].createElement(sapphireReact.Field.Control, null, /* @__PURE__ */ React__default["default"].createElement("div", {
2191
+ className: clsx__default["default"](textFieldStyles__default["default"]["sapphire-text-field"], {
2192
+ [textFieldStyles__default["default"]["is-focus"]]: isFocusVisible,
2193
+ [textFieldStyles__default["default"]["sapphire-text-field--error"]]: error === true || typeof error === "string",
2194
+ [textFieldStyles__default["default"]["sapphire-text-field--md"]]: size === "md"
2195
+ })
2196
+ }, extractedPrefix && /* @__PURE__ */ React__default["default"].createElement("span", {
2197
+ className: clsx__default["default"](textFieldStyles__default["default"]["sapphire-text-field__prefix"], {
2198
+ [textFieldStyles__default["default"]["sapphire-text-field__prefix--icon"]]: typeof extractedPrefix !== "string"
2199
+ })
2200
+ }, extractedPrefix), /* @__PURE__ */ React__default["default"].createElement("input", __spreadProps$d(__spreadValues$e({}, utils.mergeProps(inputProps, focusProps, {
2201
+ onChange: updateStyle,
2202
+ onBlur: updateStyle
2203
+ }, autoFormat ? {
2204
+ onInput: handleInput,
2205
+ onKeyDown: handleKeyDown
2206
+ } : {})), {
2207
+ value: (_b = formattingResult == null ? void 0 : formattingResult.displayValue) != null ? _b : inputProps.value,
2208
+ ref: inputRef,
2209
+ className: clsx__default["default"](textFieldStyles__default["default"]["sapphire-text-field__input"], {
2210
+ [textFieldStyles__default["default"]["sapphire-text-field__input--align-right"]]: !!alignInputRight
2211
+ }),
2212
+ style: autofillStyles
2213
+ })), extractedPostfix && /* @__PURE__ */ React__default["default"].createElement("span", {
2214
+ className: clsx__default["default"](textFieldStyles__default["default"]["sapphire-text-field__postfix"], {
2215
+ [textFieldStyles__default["default"]["sapphire-text-field__postfix--icon"]]: typeof extractedPostfix !== "string"
2216
+ })
2217
+ }, extractedPostfix), showButtons && /* @__PURE__ */ React__default["default"].createElement("div", {
2218
+ className: textFieldStyles__default["default"]["sapphire-text-field__stepper"]
2219
+ }, /* @__PURE__ */ React__default["default"].createElement(StepperButton, __spreadValues$e({
2220
+ variant: "decrement",
2221
+ size
2222
+ }, decrementButtonProps)), /* @__PURE__ */ React__default["default"].createElement(sapphireReact.Separator, {
2223
+ orientation: "vertical"
2224
+ }), /* @__PURE__ */ React__default["default"].createElement(StepperButton, __spreadValues$e({
2225
+ variant: "increment",
2226
+ size
2227
+ }, incrementButtonProps))))), (error && typeof error !== "boolean" || note) && /* @__PURE__ */ React__default["default"].createElement(sapphireReact.Field.Footer, null, error && typeof error !== "boolean" ? /* @__PURE__ */ React__default["default"].createElement(sapphireReact.Field.Note, {
2228
+ variant: "error"
2229
+ }, error) : note ? note : /* @__PURE__ */ React__default["default"].createElement(React__default["default"].Fragment, null))));
2230
+ });
2231
+ const removeUniqueDOMProps = (props) => Object.fromEntries(Object.entries(props).filter(([name]) => name !== "id" && !name.startsWith("data-")));
2232
+
2233
+ const SecondarySidebarContext = React__default["default"].createContext(null);
2234
+ const useSecondarySidebarContext = () => {
2235
+ const context = React.useContext(SecondarySidebarContext);
2236
+ if (context) {
2237
+ return context;
2238
+ }
2239
+ throw new Error("This should be rendered inside a <Sidebar />.");
2240
+ };
2241
+ const SecondarySidebarProvider = ({
2242
+ openedId,
2243
+ defaultOpenedId,
2244
+ onOpenedIdChange,
2245
+ themeVariant,
2246
+ children
2247
+ }) => {
2248
+ var _a, _b, _c, _d;
2249
+ const context = React.useContext(SecondarySidebarContext);
2250
+ const [secondarySidebarId, setSecondarySidebarId] = utils$2.useControlledState(openedId, defaultOpenedId != null ? defaultOpenedId : null, onOpenedIdChange);
2251
+ const [content, setContent] = React.useState(null);
2252
+ return /* @__PURE__ */ React__default["default"].createElement(SecondarySidebarContext.Provider, {
2253
+ value: {
2254
+ openedId: (_a = context == null ? void 0 : context.openedId) != null ? _a : secondarySidebarId,
2255
+ setOpenedId: (_b = context == null ? void 0 : context.setOpenedId) != null ? _b : setSecondarySidebarId,
2256
+ content: (_c = context == null ? void 0 : context.content) != null ? _c : content,
2257
+ setContent: (_d = context == null ? void 0 : context.setContent) != null ? _d : setContent,
2258
+ themeVariant: themeVariant != null ? themeVariant : context == null ? void 0 : context.themeVariant
2259
+ }
2260
+ }, children);
2261
+ };
2262
+
2263
+ const ResponsiveSidebarContext = React__default["default"].createContext(null);
2264
+ function useResponsiveSidebarContext() {
2265
+ return React.useContext(ResponsiveSidebarContext);
2266
+ }
2267
+ function useIsSidebarCollapsed() {
2268
+ const context = React.useContext(ResponsiveSidebarContext);
2269
+ const matchedBreakpoints = sapphireReact.useMatchedBreakpoints();
2270
+ if (!context) {
2271
+ return null;
2272
+ }
2273
+ const { collapsed } = context;
2274
+ if (typeof collapsed === "boolean") {
2275
+ return collapsed;
2276
+ }
2277
+ if (typeof collapsed === "string") {
2278
+ return !matchedBreakpoints.includes(collapsed);
2279
+ }
2280
+ return !matchedBreakpoints.includes("md");
2281
+ }
2282
+ const ResponsiveSidebarProvider = ({
2283
+ collapsed,
2284
+ isPanelOpen,
2285
+ defaultIsPanelOpen,
2286
+ onPanelOpenChange,
2287
+ children
2288
+ }) => {
2289
+ const [isOpen, setOpen] = utils$2.useControlledState(isPanelOpen, defaultIsPanelOpen != null ? defaultIsPanelOpen : false, onPanelOpenChange);
2290
+ return /* @__PURE__ */ React__default["default"].createElement(ResponsiveSidebarContext.Provider, {
2291
+ value: {
2292
+ isPanelOpen: isOpen,
2293
+ setPanelOpen: setOpen,
2294
+ collapsed
2295
+ }
2296
+ }, children);
2297
+ };
2298
+
2299
+ var __defProp$d = Object.defineProperty;
2300
+ var __defProps$c = Object.defineProperties;
2301
+ var __getOwnPropDescs$c = Object.getOwnPropertyDescriptors;
2302
+ var __getOwnPropSymbols$d = Object.getOwnPropertySymbols;
2303
+ var __hasOwnProp$d = Object.prototype.hasOwnProperty;
2304
+ var __propIsEnum$d = Object.prototype.propertyIsEnumerable;
2305
+ var __defNormalProp$d = (obj, key, value) => key in obj ? __defProp$d(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
2306
+ var __spreadValues$d = (a, b) => {
2307
+ for (var prop in b || (b = {}))
2308
+ if (__hasOwnProp$d.call(b, prop))
2309
+ __defNormalProp$d(a, prop, b[prop]);
2310
+ if (__getOwnPropSymbols$d)
2311
+ for (var prop of __getOwnPropSymbols$d(b)) {
2312
+ if (__propIsEnum$d.call(b, prop))
2313
+ __defNormalProp$d(a, prop, b[prop]);
2314
+ }
2315
+ return a;
2316
+ };
2317
+ var __spreadProps$c = (a, b) => __defProps$c(a, __getOwnPropDescs$c(b));
2318
+ var __objRest$b = (source, exclude) => {
2319
+ var target = {};
2320
+ for (var prop in source)
2321
+ if (__hasOwnProp$d.call(source, prop) && exclude.indexOf(prop) < 0)
2322
+ target[prop] = source[prop];
2323
+ if (source != null && __getOwnPropSymbols$d)
2324
+ for (var prop of __getOwnPropSymbols$d(source)) {
2325
+ if (exclude.indexOf(prop) < 0 && __propIsEnum$d.call(source, prop))
2326
+ target[prop] = source[prop];
2327
+ }
2328
+ return target;
2329
+ };
2330
+ const SidebarPanel = (_a) => {
2331
+ var _b = _a, {
2332
+ children,
2333
+ header
2334
+ } = _b, props = __objRest$b(_b, [
2335
+ "children",
2336
+ "header"
2337
+ ]);
2338
+ const { openedId, setOpenedId, content } = useSecondarySidebarContext();
2339
+ const responsiveContext = useResponsiveSidebarContext();
2340
+ if (!responsiveContext) {
2341
+ throw new Error("<SidebarPanel> must be rendered inside a <Sidebar.ResponsiveProvider>");
2342
+ }
2343
+ const { isPanelOpen, setPanelOpen } = responsiveContext;
2344
+ const isCollapsed = useIsSidebarCollapsed();
2345
+ React.useEffect(() => {
2346
+ if (!isCollapsed) {
2347
+ setPanelOpen(false);
2348
+ }
2349
+ }, [isCollapsed]);
2350
+ return /* @__PURE__ */ React__default["default"].createElement(sapphireReact.Panel, __spreadProps$c(__spreadValues$d({}, props), {
2351
+ isOpen: isPanelOpen,
2352
+ onClose: () => setPanelOpen(false),
2353
+ onCloseTransitionDone: () => setOpenedId(null),
2354
+ alignLeft: true,
2355
+ isDismissable: true,
2356
+ width: 320
2357
+ }), /* @__PURE__ */ React__default["default"].createElement(sapphireReact.ModalLayout, {
2358
+ header: /* @__PURE__ */ React__default["default"].createElement(sapphireReact.ModalLayout.Header, {
2359
+ heading: openedId === null ? header : content == null ? void 0 : content.header,
2360
+ backButton: openedId !== null && /* @__PURE__ */ React__default["default"].createElement(sapphireReact.IconButton, {
2361
+ size: "md",
2362
+ "aria-label": "Back",
2363
+ variant: "tertiary",
2364
+ marginLeft: `calc(-1 * ${sapphireReact.tokens.size.spacingSm})`,
2365
+ onPress: () => setOpenedId(null)
2366
+ }, /* @__PURE__ */ React__default["default"].createElement(react.ChevronLeft, null))
2367
+ }),
2368
+ body: /* @__PURE__ */ React__default["default"].createElement(sapphireReact.ModalLayout.Body, {
2369
+ noPadding: true,
2370
+ UNSAFE_style: {
2371
+ paddingLeft: sapphireReact.tokens.size.spacingMd.value,
2372
+ paddingRight: sapphireReact.tokens.size.spacingMd.value
2373
+ }
2374
+ }, /* @__PURE__ */ React__default["default"].createElement(React__default["default"].Fragment, null, /* @__PURE__ */ React__default["default"].createElement(sapphireReact.View, {
2375
+ isHidden: openedId !== null
2376
+ }, children), openedId && (content == null ? void 0 : content.body)))
2377
+ }));
2378
+ };
2379
+ const SidebarPanelTrigger = ({
2380
+ children
2381
+ }) => {
2382
+ const context = useResponsiveSidebarContext();
2383
+ if (!context) {
2384
+ throw new Error("<Sidebar.PanelTrigger> should be rendered inside a <Sidebar.ResponsiveProvider>");
2385
+ }
2386
+ const isCollapsed = useIsSidebarCollapsed();
2387
+ const panelTriggerProps = {
2388
+ onPress: () => {
2389
+ context.setPanelOpen(true);
2390
+ }
2391
+ };
2392
+ return isCollapsed ? children(panelTriggerProps) : null;
2393
+ };
2394
+
2395
+ const useSidebar = () => {
2396
+ const { openedId, setOpenedId } = useSecondarySidebarContext();
2397
+ const responsiveContext = useResponsiveSidebarContext();
2398
+ const { isPanelOpen, setPanelOpen } = responsiveContext ? responsiveContext : { isPanelOpen: false, setPanelOpen: () => {
2399
+ } };
2400
+ return {
2401
+ sidebarProps: { onBlurWithin: () => setOpenedId(null) },
2402
+ itemProps: {
2403
+ onPress: () => {
2404
+ setPanelOpen(false);
2405
+ if (!isPanelOpen) {
2406
+ setOpenedId(null);
2407
+ }
2408
+ }
2409
+ },
2410
+ getExpandableItemProps: (id) => ({
2411
+ onPress: () => setOpenedId(openedId === id ? null : id)
2412
+ }),
2413
+ secondarySidebarProps: {
2414
+ onClose: () => setOpenedId(null)
2415
+ }
2416
+ };
2417
+ };
2418
+
2419
+ var __defProp$c = Object.defineProperty;
2420
+ var __defProps$b = Object.defineProperties;
2421
+ var __getOwnPropDescs$b = Object.getOwnPropertyDescriptors;
2422
+ var __getOwnPropSymbols$c = Object.getOwnPropertySymbols;
2423
+ var __hasOwnProp$c = Object.prototype.hasOwnProperty;
2424
+ var __propIsEnum$c = Object.prototype.propertyIsEnumerable;
2425
+ var __defNormalProp$c = (obj, key, value) => key in obj ? __defProp$c(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
2426
+ var __spreadValues$c = (a, b) => {
2427
+ for (var prop in b || (b = {}))
2428
+ if (__hasOwnProp$c.call(b, prop))
2429
+ __defNormalProp$c(a, prop, b[prop]);
2430
+ if (__getOwnPropSymbols$c)
2431
+ for (var prop of __getOwnPropSymbols$c(b)) {
2432
+ if (__propIsEnum$c.call(b, prop))
2433
+ __defNormalProp$c(a, prop, b[prop]);
2434
+ }
2435
+ return a;
2436
+ };
2437
+ var __spreadProps$b = (a, b) => __defProps$b(a, __getOwnPropDescs$b(b));
2438
+ var __objRest$a = (source, exclude) => {
2439
+ var target = {};
2440
+ for (var prop in source)
2441
+ if (__hasOwnProp$c.call(source, prop) && exclude.indexOf(prop) < 0)
2442
+ target[prop] = source[prop];
2443
+ if (source != null && __getOwnPropSymbols$c)
2444
+ for (var prop of __getOwnPropSymbols$c(source)) {
2445
+ if (exclude.indexOf(prop) < 0 && __propIsEnum$c.call(source, prop))
2446
+ target[prop] = source[prop];
2447
+ }
2448
+ return target;
2449
+ };
2450
+ const Sidebar = (_a) => {
2451
+ var _b = _a, {
2452
+ themeVariant,
2453
+ openedSecondarySidebar,
2454
+ defaultOpenedSecondarySidebar,
2455
+ onSecondarySidebarChange,
2456
+ secondarySidebarThemeVariant,
2457
+ children
2458
+ } = _b, props = __objRest$a(_b, [
2459
+ "themeVariant",
2460
+ "openedSecondarySidebar",
2461
+ "defaultOpenedSecondarySidebar",
2462
+ "onSecondarySidebarChange",
2463
+ "secondarySidebarThemeVariant",
2464
+ "children"
2465
+ ]);
2466
+ sapphireReact.useThemeCheck();
2467
+ return /* @__PURE__ */ React__default["default"].createElement(SecondarySidebarProvider, {
2468
+ openedId: openedSecondarySidebar,
2469
+ defaultOpenedId: defaultOpenedSecondarySidebar,
2470
+ onOpenedIdChange: onSecondarySidebarChange,
2471
+ themeVariant: secondarySidebarThemeVariant
2472
+ }, /* @__PURE__ */ React__default["default"].createElement(WithThemeRoot, {
2473
+ themeVariant
2474
+ }, /* @__PURE__ */ React__default["default"].createElement(SidebarContent, __spreadValues$c({}, props), children)));
2475
+ };
2476
+ const SidebarContent = (_c) => {
2477
+ var _d = _c, {
2478
+ onBlurWithin,
2479
+ onFocusWithin,
2480
+ onFocusWithinChange,
2481
+ closeOnBlurWithin = true,
2482
+ header,
2483
+ panelHeader,
2484
+ children
2485
+ } = _d, props = __objRest$a(_d, [
2486
+ "onBlurWithin",
2487
+ "onFocusWithin",
2488
+ "onFocusWithinChange",
2489
+ "closeOnBlurWithin",
2490
+ "header",
2491
+ "panelHeader",
2492
+ "children"
2493
+ ]);
2494
+ const { styleProps } = sapphireReact.useSapphireStyleProps(props);
2495
+ const { sidebarProps } = useSidebar();
2496
+ const { focusWithinProps } = interactions.useFocusWithin(utils.mergeProps({
2497
+ onBlurWithin,
2498
+ onFocusWithin,
2499
+ onFocusWithinChange
2500
+ }, closeOnBlurWithin ? sidebarProps : {}));
2501
+ const responsiveSidebarContext = useResponsiveSidebarContext();
2502
+ const isCollapsed = useIsSidebarCollapsed();
2503
+ return /* @__PURE__ */ React__default["default"].createElement(React__default["default"].Fragment, null, !isCollapsed && /* @__PURE__ */ React__default["default"].createElement("div", __spreadProps$b(__spreadValues$c(__spreadValues$c(__spreadValues$c({}, styleProps), utils.filterDOMProps(props, { global: true })), focusWithinProps), {
2504
+ className: clsx__default["default"](styles__default$6["default"]["sapphire-sidebar"]),
2505
+ tabIndex: -1
2506
+ }), header, children), responsiveSidebarContext && /* @__PURE__ */ React__default["default"].createElement(SidebarPanel, {
2507
+ header: panelHeader
2508
+ }, children));
2509
+ };
2510
+ const WithThemeRoot = ({
2511
+ children,
2512
+ themeVariant
2513
+ }) => themeVariant ? /* @__PURE__ */ React__default["default"].createElement(sapphireReact.ThemeRoot, {
2514
+ variant: themeVariant,
2515
+ noSurface: true,
2516
+ height: "100%",
2517
+ width: "min-content"
2518
+ }, children) : /* @__PURE__ */ React__default["default"].createElement(React__default["default"].Fragment, null, children);
2519
+
2520
+ var __defProp$b = Object.defineProperty;
2521
+ var __defProps$a = Object.defineProperties;
2522
+ var __getOwnPropDescs$a = Object.getOwnPropertyDescriptors;
2523
+ var __getOwnPropSymbols$b = Object.getOwnPropertySymbols;
2524
+ var __hasOwnProp$b = Object.prototype.hasOwnProperty;
2525
+ var __propIsEnum$b = Object.prototype.propertyIsEnumerable;
2526
+ var __defNormalProp$b = (obj, key, value) => key in obj ? __defProp$b(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
2527
+ var __spreadValues$b = (a, b) => {
2528
+ for (var prop in b || (b = {}))
2529
+ if (__hasOwnProp$b.call(b, prop))
2530
+ __defNormalProp$b(a, prop, b[prop]);
2531
+ if (__getOwnPropSymbols$b)
2532
+ for (var prop of __getOwnPropSymbols$b(b)) {
2533
+ if (__propIsEnum$b.call(b, prop))
2534
+ __defNormalProp$b(a, prop, b[prop]);
2535
+ }
2536
+ return a;
2537
+ };
2538
+ var __spreadProps$a = (a, b) => __defProps$a(a, __getOwnPropDescs$a(b));
2539
+ var __objRest$9 = (source, exclude) => {
2540
+ var target = {};
2541
+ for (var prop in source)
2542
+ if (__hasOwnProp$b.call(source, prop) && exclude.indexOf(prop) < 0)
2543
+ target[prop] = source[prop];
2544
+ if (source != null && __getOwnPropSymbols$b)
2545
+ for (var prop of __getOwnPropSymbols$b(source)) {
2546
+ if (exclude.indexOf(prop) < 0 && __propIsEnum$b.call(source, prop))
2547
+ target[prop] = source[prop];
2548
+ }
2549
+ return target;
2550
+ };
2551
+ const SidebarHeader = (_a) => {
2552
+ var _b = _a, {
2553
+ children,
2554
+ closeButtonProps
2555
+ } = _b, props = __objRest$9(_b, [
2556
+ "children",
2557
+ "closeButtonProps"
2558
+ ]);
2559
+ return /* @__PURE__ */ React__default["default"].createElement("div", __spreadProps$a(__spreadValues$b({}, utils.filterDOMProps(props)), {
2560
+ className: clsx__default["default"](styles__default$6["default"]["sapphire-sidebar__header"])
2561
+ }), children, closeButtonProps && /* @__PURE__ */ React__default["default"].createElement(sapphireReact.IconButton, __spreadProps$a(__spreadValues$b({}, closeButtonProps), {
2562
+ "aria-label": "Close"
2563
+ }), /* @__PURE__ */ React__default["default"].createElement(react.CloseLarge, null)));
2564
+ };
2565
+
2566
+ var __defProp$a = Object.defineProperty;
2567
+ var __defProps$9 = Object.defineProperties;
2568
+ var __getOwnPropDescs$9 = Object.getOwnPropertyDescriptors;
2569
+ var __getOwnPropSymbols$a = Object.getOwnPropertySymbols;
2570
+ var __hasOwnProp$a = Object.prototype.hasOwnProperty;
2571
+ var __propIsEnum$a = Object.prototype.propertyIsEnumerable;
2572
+ var __defNormalProp$a = (obj, key, value) => key in obj ? __defProp$a(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
2573
+ var __spreadValues$a = (a, b) => {
2574
+ for (var prop in b || (b = {}))
2575
+ if (__hasOwnProp$a.call(b, prop))
2576
+ __defNormalProp$a(a, prop, b[prop]);
2577
+ if (__getOwnPropSymbols$a)
2578
+ for (var prop of __getOwnPropSymbols$a(b)) {
2579
+ if (__propIsEnum$a.call(b, prop))
2580
+ __defNormalProp$a(a, prop, b[prop]);
2581
+ }
2582
+ return a;
2583
+ };
2584
+ var __spreadProps$9 = (a, b) => __defProps$9(a, __getOwnPropDescs$9(b));
2585
+ var __objRest$8 = (source, exclude) => {
2586
+ var target = {};
2587
+ for (var prop in source)
2588
+ if (__hasOwnProp$a.call(source, prop) && exclude.indexOf(prop) < 0)
2589
+ target[prop] = source[prop];
2590
+ if (source != null && __getOwnPropSymbols$a)
2591
+ for (var prop of __getOwnPropSymbols$a(source)) {
2592
+ if (exclude.indexOf(prop) < 0 && __propIsEnum$a.call(source, prop))
2593
+ target[prop] = source[prop];
2594
+ }
2595
+ return target;
2596
+ };
2597
+ const SidebarItem = React__default["default"].forwardRef(function SidebarItem2(_a, ref) {
2598
+ var _b = _a, { isActive, children } = _b, props = __objRest$8(_b, ["isActive", "children"]);
2599
+ const { itemProps } = useSidebar();
2600
+ return /* @__PURE__ */ React__default["default"].createElement("li", {
2601
+ className: clsx__default["default"](styles__default$6["default"]["sapphire-sidebar__nav-item"])
2602
+ }, /* @__PURE__ */ React__default["default"].createElement(sapphireReact.Button, __spreadProps$9(__spreadValues$a({
1301
2603
  ref,
1302
- role: "img"
1303
- }, ariaLabel ? { "aria-label": ariaLabel } : { "aria-hidden": true }), {
1304
- className: clsx__default["default"](styles__default$4["default"]["sapphire-flag"], styleProps.className, {
1305
- [styles__default$4["default"]["sapphire-flag--xs"]]: size === "xs",
1306
- [styles__default$4["default"]["sapphire-flag--sm"]]: size === "sm",
1307
- [styles__default$4["default"]["sapphire-flag--md"]]: size === "md",
1308
- [styles__default$4["default"]["sapphire-flag--lg"]]: size === "lg",
1309
- [styles__default$4["default"]["sapphire-flag--xl"]]: size === "xl",
1310
- [styles__default$4["default"]["sapphire-flag--rounded"]]: rounded
1311
- }),
1312
- style: styleProps.style
1313
- }));
2604
+ variant: "tertiary",
2605
+ elementType: "a",
2606
+ "aria-current": isActive ? "page" : void 0
2607
+ }, utils.mergeProps(props, itemProps)), {
2608
+ UNSAFE_className: clsx__default["default"](buttonStyles__default["default"]["sapphire-button--stretch-left-align"], { [buttonStyles__default["default"]["sapphire-button--selected"]]: isActive })
2609
+ }), children));
1314
2610
  });
1315
2611
 
1316
2612
  var __defProp$9 = Object.defineProperty;
1317
- var __defProps$9 = Object.defineProperties;
1318
- var __getOwnPropDescs$9 = Object.getOwnPropertyDescriptors;
2613
+ var __defProps$8 = Object.defineProperties;
2614
+ var __getOwnPropDescs$8 = Object.getOwnPropertyDescriptors;
1319
2615
  var __getOwnPropSymbols$9 = Object.getOwnPropertySymbols;
1320
2616
  var __hasOwnProp$9 = Object.prototype.hasOwnProperty;
1321
2617
  var __propIsEnum$9 = Object.prototype.propertyIsEnumerable;
@@ -1331,7 +2627,7 @@ var __spreadValues$9 = (a, b) => {
1331
2627
  }
1332
2628
  return a;
1333
2629
  };
1334
- var __spreadProps$9 = (a, b) => __defProps$9(a, __getOwnPropDescs$9(b));
2630
+ var __spreadProps$8 = (a, b) => __defProps$8(a, __getOwnPropDescs$8(b));
1335
2631
  var __objRest$7 = (source, exclude) => {
1336
2632
  var target = {};
1337
2633
  for (var prop in source)
@@ -1344,94 +2640,96 @@ var __objRest$7 = (source, exclude) => {
1344
2640
  }
1345
2641
  return target;
1346
2642
  };
1347
- function LabeledValue(_a) {
2643
+ const SidebarExpandableItem = React__default["default"].forwardRef(function SidebarExpandableItem2(_a, ref) {
1348
2644
  var _b = _a, {
1349
- children,
1350
- contextualHelp,
1351
- label: label$1,
1352
- labelPlacement = "above",
1353
- size = "lg"
1354
- } = _b, otherProps = __objRest$7(_b, [
1355
- "children",
1356
- "contextualHelp",
1357
- "label",
1358
- "labelPlacement",
1359
- "size"
2645
+ id,
2646
+ isActive,
2647
+ body,
2648
+ header,
2649
+ children
2650
+ } = _b, props = __objRest$7(_b, [
2651
+ "id",
2652
+ "isActive",
2653
+ "body",
2654
+ "header",
2655
+ "children"
1360
2656
  ]);
1361
- sapphireReact.useThemeCheck();
1362
- const { fieldProps } = label.useField({ label: label$1 });
1363
- return /* @__PURE__ */ React__default["default"].createElement(sapphireReact.Field, __spreadProps$9(__spreadValues$9({}, utils.mergeProps(fieldProps, otherProps)), {
1364
- labelPlacement,
1365
- size,
1366
- noDefaultWidth: true
1367
- }), /* @__PURE__ */ React__default["default"].createElement(sapphireReact.Field.Label, null, /* @__PURE__ */ React__default["default"].createElement(sapphireReact.Label, {
1368
- contextualHelp,
1369
- size
1370
- }, label$1)), /* @__PURE__ */ React__default["default"].createElement(sapphireReact.Field.Control, null, children));
1371
- }
1372
-
1373
- var increment$6 = "øge";
1374
- var decrement$6 = "formindske";
1375
- var da$1 = {
1376
- increment: increment$6,
1377
- decrement: decrement$6
1378
- };
1379
-
1380
- var increment$5 = "Increase";
1381
- var decrement$5 = "Decrease";
1382
- var en$1 = {
1383
- increment: increment$5,
1384
- decrement: decrement$5
1385
- };
1386
-
1387
- var increment$4 = "erhöhen";
1388
- var decrement$4 = "verringern";
1389
- var de$1 = {
1390
- increment: increment$4,
1391
- decrement: decrement$4
1392
- };
1393
-
1394
- var increment$3 = "lisääntyä";
1395
- var decrement$3 = "vähentää";
1396
- var fi$1 = {
1397
- increment: increment$3,
1398
- decrement: decrement$3
1399
- };
1400
-
1401
- var increment$2 = "øke";
1402
- var decrement$2 = "avta";
1403
- var no$1 = {
1404
- increment: increment$2,
1405
- decrement: decrement$2
1406
- };
1407
-
1408
- var increment$1 = "zwiększyć";
1409
- var decrement$1 = "zmniejszenie";
1410
- var pl$1 = {
1411
- increment: increment$1,
1412
- decrement: decrement$1
1413
- };
1414
-
1415
- var increment = "öka";
1416
- var decrement = "minska";
1417
- var se$1 = {
1418
- increment: increment,
1419
- decrement: decrement
1420
- };
1421
-
1422
- var intlMessages$1 = {
1423
- "da-DK": da$1,
1424
- "en-US": en$1,
1425
- "de-DE": de$1,
1426
- "fi-FI": fi$1,
1427
- "nb-NO": no$1,
1428
- "pl-PL": pl$1,
1429
- "sv-SE": se$1
2657
+ const { openedId, setContent, themeVariant } = useSecondarySidebarContext();
2658
+ const isCollapsed = useIsSidebarCollapsed();
2659
+ const { getExpandableItemProps, secondarySidebarProps } = useSidebar();
2660
+ const itemId = utils.useId(id);
2661
+ const isOpen = openedId === itemId;
2662
+ React.useLayoutEffect(() => {
2663
+ if (isOpen) {
2664
+ setContent({ header, body });
2665
+ }
2666
+ }, [isOpen]);
2667
+ return /* @__PURE__ */ React__default["default"].createElement("li", {
2668
+ className: clsx__default["default"](styles__default$6["default"]["sapphire-sidebar__nav-item"])
2669
+ }, /* @__PURE__ */ React__default["default"].createElement(sapphireReact.Button, __spreadProps$8(__spreadValues$9({
2670
+ variant: "tertiary",
2671
+ "aria-current": isActive || void 0,
2672
+ ref
2673
+ }, utils.mergeProps(getExpandableItemProps(itemId), props)), {
2674
+ UNSAFE_className: clsx__default["default"](buttonStyles__default["default"]["sapphire-button--stretch-left-align"], {
2675
+ [buttonStyles__default["default"]["sapphire-button--selected"]]: isActive && !isOpen,
2676
+ [buttonStyles__default["default"]["is-active"]]: isOpen
2677
+ })
2678
+ }), children), /* @__PURE__ */ React__default["default"].createElement(SecondarySidebar, __spreadValues$9({
2679
+ isOpen: isOpen && !isCollapsed,
2680
+ header,
2681
+ themeVariant
2682
+ }, secondarySidebarProps), body));
2683
+ });
2684
+ const SecondarySidebar = ({
2685
+ isOpen,
2686
+ onClose,
2687
+ onCloseTransitionDone,
2688
+ themeVariant,
2689
+ header,
2690
+ children
2691
+ }) => {
2692
+ const ref = React.useRef(null);
2693
+ React.useEffect(() => {
2694
+ const handleKeyDown = (e) => {
2695
+ if (e.key === "Escape") {
2696
+ onClose == null ? void 0 : onClose();
2697
+ }
2698
+ };
2699
+ document.addEventListener("keydown", handleKeyDown);
2700
+ return () => document.removeEventListener("keydown", handleKeyDown);
2701
+ }, [onClose]);
2702
+ return /* @__PURE__ */ React__default["default"].createElement(reactTransitionGroup.Transition, {
2703
+ in: isOpen,
2704
+ mountOnEnter: true,
2705
+ nodeRef: ref,
2706
+ unmountOnExit: true,
2707
+ onExited: onCloseTransitionDone,
2708
+ timeout: 200
2709
+ }, (transitionState) => /* @__PURE__ */ React__default["default"].createElement("div", {
2710
+ ref,
2711
+ className: clsx__default["default"](styles__default$6["default"]["sapphire-sidebar__secondary-container"], {
2712
+ [styles__default$6["default"]["sapphire-sidebar--slide-in"]]: true,
2713
+ [styles__default$6["default"]["sapphire-sidebar--slide-out"]]: transitionState === "exiting"
2714
+ })
2715
+ }, /* @__PURE__ */ React__default["default"].createElement(focus.FocusScope, {
2716
+ restoreFocus: true,
2717
+ autoFocus: true
2718
+ }, /* @__PURE__ */ React__default["default"].createElement(_Sidebar, {
2719
+ themeVariant,
2720
+ closeOnBlurWithin: false,
2721
+ header: /* @__PURE__ */ React__default["default"].createElement(_Sidebar.Header, {
2722
+ closeButtonProps: {
2723
+ onPress: () => onClose == null ? void 0 : onClose()
2724
+ }
2725
+ }, header),
2726
+ panelHeader: null
2727
+ }, children))));
1430
2728
  };
1431
2729
 
1432
2730
  var __defProp$8 = Object.defineProperty;
1433
- var __defProps$8 = Object.defineProperties;
1434
- var __getOwnPropDescs$8 = Object.getOwnPropertyDescriptors;
2731
+ var __defProps$7 = Object.defineProperties;
2732
+ var __getOwnPropDescs$7 = Object.getOwnPropertyDescriptors;
1435
2733
  var __getOwnPropSymbols$8 = Object.getOwnPropertySymbols;
1436
2734
  var __hasOwnProp$8 = Object.prototype.hasOwnProperty;
1437
2735
  var __propIsEnum$8 = Object.prototype.propertyIsEnumerable;
@@ -1447,7 +2745,7 @@ var __spreadValues$8 = (a, b) => {
1447
2745
  }
1448
2746
  return a;
1449
2747
  };
1450
- var __spreadProps$8 = (a, b) => __defProps$8(a, __getOwnPropDescs$8(b));
2748
+ var __spreadProps$7 = (a, b) => __defProps$7(a, __getOwnPropDescs$7(b));
1451
2749
  var __objRest$6 = (source, exclude) => {
1452
2750
  var target = {};
1453
2751
  for (var prop in source)
@@ -1460,48 +2758,33 @@ var __objRest$6 = (source, exclude) => {
1460
2758
  }
1461
2759
  return target;
1462
2760
  };
1463
- const StepperButton = (_a) => {
2761
+ const SidebarSection = (_a) => {
1464
2762
  var _b = _a, {
1465
- variant,
1466
- size
2763
+ title,
2764
+ "aria-label": label,
2765
+ children
1467
2766
  } = _b, props = __objRest$6(_b, [
1468
- "variant",
1469
- "size"
2767
+ "title",
2768
+ "aria-label",
2769
+ "children"
1470
2770
  ]);
1471
- const ref = React.useRef(null);
1472
- const { buttonProps, isPressed } = sapphireReact.useButton(props, ref);
1473
- const { hoverProps, isHovered } = interactions.useHover({ isDisabled: props.isDisabled });
1474
- return /* @__PURE__ */ React__default["default"].createElement("button", __spreadProps$8(__spreadValues$8({}, utils.mergeProps(buttonProps, hoverProps, utils.filterDOMProps(props, { global: true }))), {
1475
- ref,
1476
- className: clsx__default["default"](textFieldStyles__default["default"]["sapphire-text-field__stepper-button"], textFieldStyles__default["default"]["js-hover"], {
1477
- [textFieldStyles__default["default"]["is-active"]]: isPressed,
1478
- [textFieldStyles__default["default"]["is-hover"]]: isHovered
1479
- })
1480
- }), /* @__PURE__ */ React__default["default"].createElement(sapphireReact.Icon, {
1481
- size: size === "lg" ? "md" : "sm"
1482
- }, variant === "increment" ? /* @__PURE__ */ React__default["default"].createElement(react.CaretUp, null) : /* @__PURE__ */ React__default["default"].createElement(react.CaretDown, null)));
2771
+ sapphireReact.useThemeCheck();
2772
+ const { styleProps } = sapphireReact.useSapphireStyleProps(props);
2773
+ const { itemProps, headingProps, groupProps } = listbox.useListBoxSection({
2774
+ heading: title,
2775
+ "aria-label": label
2776
+ });
2777
+ return /* @__PURE__ */ React__default["default"].createElement(React__default["default"].Fragment, null, /* @__PURE__ */ React__default["default"].createElement("li", {
2778
+ role: "separator",
2779
+ className: clsx__default["default"](styles__default$6["default"]["sapphire-sidebar__separator"])
2780
+ }), /* @__PURE__ */ React__default["default"].createElement("li", __spreadValues$8(__spreadValues$8(__spreadValues$8({}, itemProps), styleProps), utils.filterDOMProps(props, { global: true })), title && /* @__PURE__ */ React__default["default"].createElement("div", __spreadProps$7(__spreadValues$8({}, headingProps), {
2781
+ className: clsx__default["default"](styles__default$6["default"]["sapphire-sidebar__section-header"])
2782
+ }), title), /* @__PURE__ */ React__default["default"].createElement("ul", __spreadProps$7(__spreadValues$8({}, groupProps), {
2783
+ className: clsx__default["default"](styles__default$6["default"]["sapphire-sidebar__section"])
2784
+ }), children)));
1483
2785
  };
1484
2786
 
1485
- function useAutofillStyle(inputRef) {
1486
- const [styles, setStyles] = React.useState({});
1487
- const updateStyle = () => {
1488
- const input = inputRef.current;
1489
- if (input) {
1490
- const color = window.getComputedStyle(input).backgroundColor;
1491
- setStyles({
1492
- boxShadow: `-100px 0 ${color}, 100px 0 ${color}`
1493
- });
1494
- }
1495
- };
1496
- return {
1497
- autofillStyles: styles,
1498
- updateStyle
1499
- };
1500
- }
1501
-
1502
2787
  var __defProp$7 = Object.defineProperty;
1503
- var __defProps$7 = Object.defineProperties;
1504
- var __getOwnPropDescs$7 = Object.getOwnPropertyDescriptors;
1505
2788
  var __getOwnPropSymbols$7 = Object.getOwnPropertySymbols;
1506
2789
  var __hasOwnProp$7 = Object.prototype.hasOwnProperty;
1507
2790
  var __propIsEnum$7 = Object.prototype.propertyIsEnumerable;
@@ -1517,7 +2800,6 @@ var __spreadValues$7 = (a, b) => {
1517
2800
  }
1518
2801
  return a;
1519
2802
  };
1520
- var __spreadProps$7 = (a, b) => __defProps$7(a, __getOwnPropDescs$7(b));
1521
2803
  var __objRest$5 = (source, exclude) => {
1522
2804
  var target = {};
1523
2805
  for (var prop in source)
@@ -1530,16 +2812,24 @@ var __objRest$5 = (source, exclude) => {
1530
2812
  }
1531
2813
  return target;
1532
2814
  };
1533
- const useSapphireNumberField = (_a, ref) => {
1534
- var _b = _a, { error } = _b, numberFieldProps = __objRest$5(_b, ["error"]);
1535
- const { locale } = i18n.useLocale();
1536
- const numberFieldState = numberfield.useNumberFieldState(__spreadProps$7(__spreadValues$7({}, numberFieldProps), {
1537
- locale
1538
- }));
1539
- const numberFieldAria = numberfield$1.useNumberField(__spreadProps$7(__spreadValues$7({}, numberFieldProps), {
1540
- validationState: error === false || error === void 0 ? void 0 : "invalid"
1541
- }), numberFieldState, ref);
1542
- return numberFieldAria;
2815
+ const SidebarBody = (_a) => {
2816
+ var _b = _a, {
2817
+ elementType = "nav",
2818
+ children
2819
+ } = _b, props = __objRest$5(_b, [
2820
+ "elementType",
2821
+ "children"
2822
+ ]);
2823
+ const RootNode = elementType;
2824
+ const sidebarBody = React.useRef(null);
2825
+ const { isScrolled, scrollCheckProps } = sapphireReact.useScrollCheck(sidebarBody);
2826
+ return /* @__PURE__ */ React__default["default"].createElement(RootNode, __spreadValues$7(__spreadValues$7({
2827
+ ref: sidebarBody,
2828
+ tabIndex: -1,
2829
+ className: clsx__default["default"](styles__default$6["default"]["sapphire-sidebar__body"], {
2830
+ [styles__default$6["default"]["sapphire-sidebar__body--scrolled"]]: isScrolled
2831
+ })
2832
+ }, utils.filterDOMProps(props, { global: true })), scrollCheckProps), children);
1543
2833
  };
1544
2834
 
1545
2835
  var __defProp$6 = Object.defineProperty;
@@ -1573,108 +2863,30 @@ var __objRest$4 = (source, exclude) => {
1573
2863
  }
1574
2864
  return target;
1575
2865
  };
1576
- const NumberField = React.forwardRef(function NumberField2(props, ref) {
1577
- const _a = props, {
1578
- label,
1579
- isDisabled,
1580
- error,
1581
- note,
1582
- isRequired,
1583
- contextualHelp,
1584
- prefix,
1585
- postfix,
1586
- size = "lg",
1587
- labelPlacement = "above",
1588
- necessityIndicator = false,
1589
- alignInputRight,
1590
- showButtons = false,
1591
- incrementAriaLabel,
1592
- decrementAriaLabel
1593
- } = _a, otherProps = __objRest$4(_a, [
1594
- "label",
1595
- "isDisabled",
1596
- "error",
1597
- "note",
1598
- "isRequired",
1599
- "contextualHelp",
1600
- "prefix",
1601
- "postfix",
1602
- "size",
1603
- "labelPlacement",
1604
- "necessityIndicator",
1605
- "alignInputRight",
1606
- "showButtons",
1607
- "incrementAriaLabel",
1608
- "decrementAriaLabel"
2866
+ const SidebarList = (_a) => {
2867
+ var _b = _a, {
2868
+ elementType = "ul",
2869
+ children
2870
+ } = _b, props = __objRest$4(_b, [
2871
+ "elementType",
2872
+ "children"
1609
2873
  ]);
1610
- sapphireReact.useThemeCheck();
1611
- const inputRef = utils.useObjectRef(props.inputRef);
1612
- const formatMessage = i18n.useMessageFormatter(intlMessages$1);
1613
- const {
1614
- inputProps,
1615
- labelProps,
1616
- incrementButtonProps,
1617
- decrementButtonProps,
1618
- descriptionProps,
1619
- errorMessageProps
1620
- } = useSapphireNumberField(__spreadProps$6(__spreadValues$6({}, props), {
1621
- incrementAriaLabel: incrementAriaLabel != null ? incrementAriaLabel : formatMessage("increment"),
1622
- decrementAriaLabel: decrementAriaLabel != null ? decrementAriaLabel : formatMessage("decrement")
1623
- }), inputRef);
1624
- const { focusProps, isFocusVisible } = focus.useFocusRing();
1625
- const { autofillStyles, updateStyle } = useAutofillStyle(inputRef);
1626
- const containerRef = React.useRef(null);
1627
- React.useImperativeHandle(ref, () => __spreadProps$6(__spreadValues$6({}, utils$1.createFocusableRef(containerRef, inputRef)), {
1628
- getInputElement() {
1629
- return inputRef.current;
1630
- }
1631
- }));
1632
- return /* @__PURE__ */ React__default["default"].createElement(sapphireReact.Field, __spreadProps$6(__spreadValues$6({}, removeUniqueDOMProps(otherProps)), {
1633
- ref: containerRef,
1634
- size,
1635
- labelPlacement
1636
- }), /* @__PURE__ */ React__default["default"].createElement(sapphireReact.Field.Context, {
1637
- descriptionProps: error ? errorMessageProps : descriptionProps
1638
- }, label && /* @__PURE__ */ React__default["default"].createElement(sapphireReact.Field.Label, null, /* @__PURE__ */ React__default["default"].createElement(sapphireReact.Label, __spreadProps$6(__spreadValues$6({}, labelProps), {
1639
- size,
1640
- necessityIndicator: isRequired && necessityIndicator ? "required" : !isRequired && necessityIndicator ? "optional" : void 0,
1641
- contextualHelp
1642
- }), label)), /* @__PURE__ */ React__default["default"].createElement(sapphireReact.Field.Control, null, /* @__PURE__ */ React__default["default"].createElement("div", {
1643
- className: clsx__default["default"](textFieldStyles__default["default"]["sapphire-text-field"], {
1644
- [textFieldStyles__default["default"]["is-focus"]]: isFocusVisible,
1645
- [textFieldStyles__default["default"]["sapphire-text-field--error"]]: error === true || typeof error === "string",
1646
- [textFieldStyles__default["default"]["sapphire-text-field--md"]]: size === "md"
1647
- })
1648
- }, prefix && /* @__PURE__ */ React__default["default"].createElement("span", {
1649
- className: clsx__default["default"](textFieldStyles__default["default"]["sapphire-text-field__prefix"], {
1650
- [textFieldStyles__default["default"]["sapphire-text-field__prefix--icon"]]: typeof prefix !== "string"
1651
- })
1652
- }, prefix), /* @__PURE__ */ React__default["default"].createElement("input", __spreadProps$6(__spreadValues$6({}, utils.mergeProps(inputProps, focusProps, {
1653
- onChange: updateStyle,
1654
- onBlur: updateStyle
1655
- })), {
1656
- ref: inputRef,
1657
- className: clsx__default["default"](textFieldStyles__default["default"]["sapphire-text-field__input"], {
1658
- [textFieldStyles__default["default"]["sapphire-text-field__input--align-right"]]: !!alignInputRight
1659
- }),
1660
- style: autofillStyles
1661
- })), postfix && /* @__PURE__ */ React__default["default"].createElement("span", {
1662
- className: clsx__default["default"](textFieldStyles__default["default"]["sapphire-text-field__postfix"], {
1663
- [textFieldStyles__default["default"]["sapphire-text-field__postfix--icon"]]: typeof postfix !== "string"
1664
- })
1665
- }, postfix), showButtons && /* @__PURE__ */ React__default["default"].createElement("div", {
1666
- className: clsx__default["default"](textFieldStyles__default["default"]["sapphire-text-field__stepper"])
1667
- }, /* @__PURE__ */ React__default["default"].createElement(StepperButton, __spreadValues$6({
1668
- variant: "increment",
1669
- size
1670
- }, incrementButtonProps)), /* @__PURE__ */ React__default["default"].createElement(StepperButton, __spreadValues$6({
1671
- variant: "decrement",
1672
- size
1673
- }, decrementButtonProps))))), (error && typeof error !== "boolean" || note) && /* @__PURE__ */ React__default["default"].createElement(sapphireReact.Field.Footer, null, error && typeof error !== "boolean" ? /* @__PURE__ */ React__default["default"].createElement(sapphireReact.Field.Note, {
1674
- variant: "error"
1675
- }, error) : note ? note : /* @__PURE__ */ React__default["default"].createElement(React__default["default"].Fragment, null))));
2874
+ const RootNode = elementType;
2875
+ return /* @__PURE__ */ React__default["default"].createElement(RootNode, __spreadProps$6(__spreadValues$6({}, utils.filterDOMProps(props, { global: true })), {
2876
+ className: clsx__default["default"](styles__default$6["default"]["sapphire-sidebar__nav-list"])
2877
+ }), children);
2878
+ };
2879
+
2880
+ const _Sidebar = Object.assign(Sidebar, {
2881
+ ResponsiveProvider: ResponsiveSidebarProvider,
2882
+ Header: SidebarHeader,
2883
+ Body: SidebarBody,
2884
+ List: SidebarList,
2885
+ Item: SidebarItem,
2886
+ ExpandableItem: SidebarExpandableItem,
2887
+ Section: SidebarSection,
2888
+ PanelTrigger: SidebarPanelTrigger
1676
2889
  });
1677
- const removeUniqueDOMProps = (props) => Object.fromEntries(Object.entries(props).filter(([name]) => name !== "id" && !name.startsWith("data-")));
1678
2890
 
1679
2891
  var __defProp$5 = Object.defineProperty;
1680
2892
  var __defProps$5 = Object.defineProperties;
@@ -1712,14 +2924,14 @@ const ProgressIndicator = (props) => {
1712
2924
  const value = Math.min(Math.max(realValue, minValue), maxValue);
1713
2925
  const widthPercentage = value / maxValue * 100;
1714
2926
  return /* @__PURE__ */ React__default["default"].createElement("div", __spreadProps$5(__spreadValues$5({}, utils.filterDOMProps(props, { global: true })), {
1715
- className: clsx__default["default"](styles__default$5["default"]["sapphire-progress"])
2927
+ className: clsx__default["default"](styles__default$7["default"]["sapphire-progress"])
1716
2928
  }), /* @__PURE__ */ React__default["default"].createElement("div", __spreadProps$5(__spreadValues$5({}, progressBarProps), {
1717
- className: styles__default$5["default"]["sapphire-progress--indicator"],
2929
+ className: styles__default$7["default"]["sapphire-progress--indicator"],
1718
2930
  style: __spreadProps$5(__spreadValues$5({}, styleProps), { width: `${widthPercentage}%` }),
1719
2931
  "aria-label": "aria-label" in props ? props["aria-label"] : void 0,
1720
2932
  "aria-labelledby": "aria-labelledby" in props ? props["aria-labelledby"] : void 0
1721
2933
  })), segments > 1 && /* @__PURE__ */ React__default["default"].createElement("div", {
1722
- className: styles__default$5["default"]["sapphire-progress--segments"]
2934
+ className: styles__default$7["default"]["sapphire-progress--segments"]
1723
2935
  }, Array.from({ length: segments }, (_, index) => /* @__PURE__ */ React__default["default"].createElement("span", {
1724
2936
  key: index
1725
2937
  }))));
@@ -1775,21 +2987,21 @@ const Slider = (_a) => {
1775
2987
  }), /* @__PURE__ */ React__default["default"].createElement(sapphireReact.Field.Context, null, label && /* @__PURE__ */ React__default["default"].createElement(sapphireReact.Field.Label, null, /* @__PURE__ */ React__default["default"].createElement(sapphireReact.Label, null, label)), /* @__PURE__ */ React__default["default"].createElement(sapphireReact.Field.Control, null, /* @__PURE__ */ React__default["default"].createElement(reactAriaComponents.Slider, __spreadProps$4(__spreadValues$4({}, props), {
1776
2988
  style: { height: "100%" }
1777
2989
  }), /* @__PURE__ */ React__default["default"].createElement("div", {
1778
- className: clsx__default["default"](styles__default$6["default"]["sapphire-slider"]),
2990
+ className: clsx__default["default"](styles__default$8["default"]["sapphire-slider"]),
1779
2991
  role: "slider"
1780
2992
  }, /* @__PURE__ */ React__default["default"].createElement(reactAriaComponents.SliderTrack, {
1781
- className: ({ isDisabled }) => clsx__default["default"](styles__default$6["default"]["sapphire-slider__track"], {
1782
- [styles__default$6["default"]["is-disabled"]]: isDisabled
2993
+ className: ({ isDisabled }) => clsx__default["default"](styles__default$8["default"]["sapphire-slider__track"], {
2994
+ [styles__default$8["default"]["is-disabled"]]: isDisabled
1783
2995
  })
1784
2996
  }, ({ state }) => /* @__PURE__ */ React__default["default"].createElement(React__default["default"].Fragment, null, /* @__PURE__ */ React__default["default"].createElement("div", {
1785
- className: clsx__default["default"](styles__default$6["default"]["sapphire-slider__track-remaining"])
2997
+ className: clsx__default["default"](styles__default$8["default"]["sapphire-slider__track-remaining"])
1786
2998
  }), /* @__PURE__ */ React__default["default"].createElement("div", {
1787
- className: clsx__default["default"](styles__default$6["default"]["sapphire-slider__track-fill"]),
2999
+ className: clsx__default["default"](styles__default$8["default"]["sapphire-slider__track-fill"]),
1788
3000
  style: { width: state.getThumbPercent(0) * 100 + "%" }
1789
3001
  }), /* @__PURE__ */ React__default["default"].createElement(reactAriaComponents.SliderThumb, {
1790
3002
  name,
1791
- className: (state2) => clsx__default["default"](styles__default$6["default"]["sapphire-slider__thumb"], {
1792
- [styles__default$6["default"]["is-focus"]]: state2.isFocusVisible
3003
+ className: (state2) => clsx__default["default"](styles__default$8["default"]["sapphire-slider__thumb"], {
3004
+ [styles__default$8["default"]["is-focus"]]: state2.isFocusVisible
1793
3005
  }),
1794
3006
  style: ({ state: state2 }) => {
1795
3007
  const percent = Math.min(3 + state2.getThumbPercent(0) * 94, 100);
@@ -1856,41 +3068,49 @@ function Tag(props) {
1856
3068
  ]);
1857
3069
  const { hoverProps, isHovered } = interactions.useHover({ isDisabled });
1858
3070
  const hasAction = otherProps.hasAction;
1859
- return /* @__PURE__ */ React__default["default"].createElement(focus.FocusRing, {
1860
- focusRingClass: styles__default$7["default"]["is-focus"]
1861
- }, /* @__PURE__ */ React__default["default"].createElement("div", __spreadValues$3(__spreadProps$3(__spreadValues$3({
1862
- ref
1863
- }, utils.mergeProps({
1864
- onKeyDown: (e) => {
1865
- if (e.key !== " ") {
1866
- onKeyDown == null ? void 0 : onKeyDown(e);
1867
- } else {
1868
- e.preventDefault();
3071
+ return /* @__PURE__ */ React__default["default"].createElement(sapphireReact.TooltipIfNeeded, {
3072
+ title: item.rendered
3073
+ }, (tooltipRef, tooltipProps) => {
3074
+ const _a2 = tooltipProps || {}, { ref: tooltipTargetRef } = _a2, restTooltipProps = __objRest$2(_a2, ["ref"]);
3075
+ return /* @__PURE__ */ React__default["default"].createElement(focus.FocusRing, {
3076
+ focusRingClass: styles__default$9["default"]["is-focus"]
3077
+ }, /* @__PURE__ */ React__default["default"].createElement("div", __spreadValues$3(__spreadProps$3(__spreadValues$3({
3078
+ ref: utils.mergeRefs(ref, tooltipTargetRef)
3079
+ }, utils.mergeProps({
3080
+ onKeyDown: (e) => {
3081
+ if (e.key !== " ") {
3082
+ onKeyDown == null ? void 0 : onKeyDown(e);
3083
+ } else {
3084
+ e.preventDefault();
3085
+ }
1869
3086
  }
1870
- }
1871
- }, rowProps, hoverProps)), {
1872
- className: clsx__default["default"](styles__default$7["default"]["sapphire-tag"], styles__default$7["default"]["js-focus"], styles__default$7["default"]["js-hover"], {
1873
- [styles__default$7["default"]["sapphire-tag--actionable"]]: hasAction,
1874
- [styles__default$7["default"]["is-active"]]: hasAction && isPressed,
1875
- [styles__default$7["default"]["is-hover"]]: hasAction && isHovered,
1876
- [styles__default$7["default"]["is-disabled"]]: isDisabled
1877
- })
1878
- }), hasError ? { "aria-invalid": true } : {}), /* @__PURE__ */ React__default["default"].createElement("div", __spreadProps$3(__spreadValues$3({}, gridCellProps), {
1879
- className: styles__default$7["default"]["sapphire-tag__content"]
1880
- }), hasError && !isDisabled && /* @__PURE__ */ React__default["default"].createElement(IconError, null), item.rendered, !isDisabled && props.allowsRemoving && /* @__PURE__ */ React__default["default"].createElement(RemoveButton, __spreadValues$3({}, removeButtonProps)))));
3087
+ }, rowProps, hoverProps, restTooltipProps)), {
3088
+ className: clsx__default["default"](styles__default$9["default"]["sapphire-tag"], styles__default$9["default"]["js-focus"], styles__default$9["default"]["js-hover"], {
3089
+ [styles__default$9["default"]["sapphire-tag--actionable"]]: hasAction,
3090
+ [styles__default$9["default"]["is-active"]]: hasAction && isPressed,
3091
+ [styles__default$9["default"]["is-hover"]]: hasAction && isHovered,
3092
+ [styles__default$9["default"]["is-disabled"]]: isDisabled
3093
+ })
3094
+ }), hasError ? { "aria-invalid": true } : {}), /* @__PURE__ */ React__default["default"].createElement("div", __spreadProps$3(__spreadValues$3({}, gridCellProps), {
3095
+ className: styles__default$9["default"]["sapphire-tag__content"]
3096
+ }), hasError && !isDisabled && /* @__PURE__ */ React__default["default"].createElement(IconError, null), /* @__PURE__ */ React__default["default"].createElement("span", {
3097
+ ref: tooltipRef,
3098
+ className: styles__default$9["default"]["sapphire-tag__label"]
3099
+ }, item.rendered), !isDisabled && props.allowsRemoving && /* @__PURE__ */ React__default["default"].createElement(RemoveButton, __spreadValues$3({}, removeButtonProps)))));
3100
+ });
1881
3101
  }
1882
3102
  function RemoveButton(removeButtonProps) {
1883
3103
  const buttonRef = React.useRef(null);
1884
3104
  const { buttonProps } = button.useButton(removeButtonProps, buttonRef);
1885
3105
  return /* @__PURE__ */ React__default["default"].createElement("button", __spreadProps$3(__spreadValues$3({}, buttonProps), {
1886
- className: clsx__default["default"](styles__default$7["default"]["sapphire-tag__button"], styles__default$7["default"]["js-focus"])
3106
+ className: clsx__default["default"](styles__default$9["default"]["sapphire-tag__button"], styles__default$9["default"]["js-focus"])
1887
3107
  }), /* @__PURE__ */ React__default["default"].createElement(sapphireReact.Icon, {
1888
3108
  size: "sm"
1889
3109
  }, /* @__PURE__ */ React__default["default"].createElement(react.Close, null)));
1890
3110
  }
1891
3111
  const IconError = () => {
1892
3112
  return /* @__PURE__ */ React__default["default"].createElement("span", {
1893
- className: clsx__default["default"](styles__default$7["default"]["sapphire-tag__error-icon"])
3113
+ className: clsx__default["default"](styles__default$9["default"]["sapphire-tag__error-icon"])
1894
3114
  }, /* @__PURE__ */ React__default["default"].createElement(sapphireReact.Icon, {
1895
3115
  size: "sm"
1896
3116
  }, /* @__PURE__ */ React__default["default"].createElement(react.Error, null)));
@@ -1969,7 +3189,7 @@ function TagGroup(props) {
1969
3189
  contextualHelp
1970
3190
  }), labelText)), /* @__PURE__ */ React__default["default"].createElement(sapphireReact.Field.Control, null, /* @__PURE__ */ React__default["default"].createElement("div", __spreadProps$2(__spreadValues$2({}, gridProps), {
1971
3191
  ref,
1972
- className: styles__default$7["default"]["sapphire-tag-group"]
3192
+ className: styles__default$9["default"]["sapphire-tag-group"]
1973
3193
  }), Array.from(state.collection).map((item) => /* @__PURE__ */ React__default["default"].createElement(Tag, {
1974
3194
  key: item.key,
1975
3195
  item,
@@ -1981,7 +3201,7 @@ function TagGroup(props) {
1981
3201
  }, errorMessage)) : /* @__PURE__ */ React__default["default"].createElement(sapphireReact.Field.Footer, null, note))));
1982
3202
  }
1983
3203
 
1984
- const TagItem = collections.Item;
3204
+ const TagItem = collections$1.Item;
1985
3205
 
1986
3206
  var __defProp$1 = Object.defineProperty;
1987
3207
  var __defProps$1 = Object.defineProperties;
@@ -2010,7 +3230,7 @@ const TimeSegment = ({ segment, state }) => segment.type === "hour" || segment.t
2010
3230
  });
2011
3231
  const SeparatorSegment = ({ segment }) => /* @__PURE__ */ React__default["default"].createElement("span", {
2012
3232
  "aria-hidden": "true",
2013
- className: clsx__default["default"](styles__default$8["default"]["sapphire-date-field__segment"], styles__default$8["default"]["sapphire-date-field__segment--separator"])
3233
+ className: clsx__default["default"](styles__default$a["default"]["sapphire-date-field__segment"], styles__default$a["default"]["sapphire-date-field__segment--separator"])
2014
3234
  }, segment.text);
2015
3235
  const EditableSegment = ({ segment, state }) => {
2016
3236
  const ref = React.useRef(null);
@@ -2018,8 +3238,8 @@ const EditableSegment = ({ segment, state }) => {
2018
3238
  return /* @__PURE__ */ React__default["default"].createElement("div", __spreadProps$1(__spreadValues$1({}, segmentProps), {
2019
3239
  style: segmentProps.style,
2020
3240
  ref,
2021
- className: clsx__default["default"](styles__default$8["default"]["sapphire-date-field__segment"], {
2022
- [styles__default$8["default"]["sapphire-date-field__segment--filled"]]: !segment.isPlaceholder
3241
+ className: clsx__default["default"](styles__default$a["default"]["sapphire-date-field__segment"], {
3242
+ [styles__default$a["default"]["sapphire-date-field__segment--filled"]]: !segment.isPlaceholder
2023
3243
  })
2024
3244
  }), segment.text);
2025
3245
  };
@@ -2137,14 +3357,14 @@ function _TimeField(_a, ref) {
2137
3357
  necessityIndicator: otherProps.isRequired && necessityIndicator ? "required" : !otherProps.isRequired && necessityIndicator ? "optional" : void 0,
2138
3358
  contextualHelp
2139
3359
  }), otherProps.label))), /* @__PURE__ */ React__default["default"].createElement(sapphireReact.Field.Control, null, /* @__PURE__ */ React__default["default"].createElement("div", {
2140
- className: clsx__default["default"](styles__default$8["default"]["sapphire-date-field"], {
2141
- [styles__default$8["default"]["sapphire-date-field--error"]]: state.isInvalid,
2142
- [styles__default$8["default"]["sapphire-date-field--no-clear-button"]]: noClearButton,
2143
- [styles__default$8["default"]["sapphire-date-field--no-calendar"]]: true,
2144
- [styles__default$8["default"]["sapphire-date-field--md"]]: size === "md"
3360
+ className: clsx__default["default"](styles__default$a["default"]["sapphire-date-field"], {
3361
+ [styles__default$a["default"]["sapphire-date-field--error"]]: state.isInvalid,
3362
+ [styles__default$a["default"]["sapphire-date-field--no-clear-button"]]: noClearButton,
3363
+ [styles__default$a["default"]["sapphire-date-field--no-calendar"]]: true,
3364
+ [styles__default$a["default"]["sapphire-date-field--md"]]: size === "md"
2145
3365
  })
2146
3366
  }, /* @__PURE__ */ React__default["default"].createElement("div", __spreadProps(__spreadValues({}, fieldProps), {
2147
- className: styles__default$8["default"]["sapphire-date-field__input"],
3367
+ className: styles__default$a["default"]["sapphire-date-field__input"],
2148
3368
  ref: timeFieldRef
2149
3369
  }), state.segments.map((segment, i) => /* @__PURE__ */ React__default["default"].createElement(TimeSegment, {
2150
3370
  key: i,
@@ -2154,7 +3374,7 @@ function _TimeField(_a, ref) {
2154
3374
  "aria-label": formatMessage("clear"),
2155
3375
  onPress: () => state.segments.forEach((segment) => state.clearSegment(segment.type)),
2156
3376
  size: size === "md" ? "sm" : "md",
2157
- UNSAFE_className: clsx__default["default"](styles__default$8["default"]["sapphire-date-field__button"], styles__default$8["default"]["sapphire-date-field__button--clear"])
3377
+ UNSAFE_className: clsx__default["default"](styles__default$a["default"]["sapphire-date-field__button"], styles__default$a["default"]["sapphire-date-field__button--clear"])
2158
3378
  }, /* @__PURE__ */ React__default["default"].createElement(sapphireReact.Icon, null, /* @__PURE__ */ React__default["default"].createElement(react.CloseOutline, null))))), !!error && typeof error !== "boolean" || note ? /* @__PURE__ */ React__default["default"].createElement(sapphireReact.Field.Footer, null, !!error && typeof error !== "boolean" ? /* @__PURE__ */ React__default["default"].createElement(sapphireReact.Field.Note, {
2159
3379
  variant: "error"
2160
3380
  }, error) : note ? note : null) : null);
@@ -2168,6 +3388,7 @@ Object.defineProperty(exports, 'useLocale', {
2168
3388
  exports.Accordion = _Accordion;
2169
3389
  exports.AccordionContext = AccordionContext;
2170
3390
  exports.Alert = Alert;
3391
+ exports.Amount = Amount;
2171
3392
  exports.Autocomplete = Autocomplete;
2172
3393
  exports.BreadcrumbItem = BreadcrumbItem;
2173
3394
  exports.Breadcrumbs = Breadcrumbs;
@@ -2179,6 +3400,7 @@ exports.LabeledValue = LabeledValue;
2179
3400
  exports.NumberField = NumberField;
2180
3401
  exports.ProgressIndicator = ProgressIndicator;
2181
3402
  exports.SearchableSelectFilter = SearchableSelectFilter;
3403
+ exports.Sidebar = _Sidebar;
2182
3404
  exports.Slider = _Slider;
2183
3405
  exports.TagGroup = TagGroup;
2184
3406
  exports.TagItem = TagItem;