@danske/sapphire-react-lab 0.104.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.
- package/README.md +2 -1
- package/build/cjs/index.js +728 -233
- package/build/cjs/index.js.map +1 -1
- package/build/esm/Amount/src/Amount.js +76 -0
- package/build/esm/Amount/src/Amount.js.map +1 -0
- package/build/esm/Amount/src/useGroupAmount.js +35 -0
- package/build/esm/Amount/src/useGroupAmount.js.map +1 -0
- package/build/esm/Autocomplete/src/Autocomplete.js +13 -3
- package/build/esm/Autocomplete/src/Autocomplete.js.map +1 -1
- package/build/esm/Filtering/src/FilterDropdown.js +8 -3
- package/build/esm/Filtering/src/FilterDropdown.js.map +1 -1
- package/build/esm/Filtering/src/SearchableSelectFilter.js +2 -1
- package/build/esm/Filtering/src/SearchableSelectFilter.js.map +1 -1
- package/build/esm/NumberField/src/NumberField.js +53 -21
- package/build/esm/NumberField/src/NumberField.js.map +1 -1
- package/build/esm/NumberField/src/StepperButton.js +8 -4
- package/build/esm/NumberField/src/StepperButton.js.map +1 -1
- package/build/esm/NumberField/src/cursorHelpers.js +55 -0
- package/build/esm/NumberField/src/cursorHelpers.js.map +1 -0
- package/build/esm/NumberField/src/formatHelpers.js +81 -0
- package/build/esm/NumberField/src/formatHelpers.js.map +1 -0
- package/build/esm/NumberField/src/keyboardHelpers.js +120 -0
- package/build/esm/NumberField/src/keyboardHelpers.js.map +1 -0
- package/build/esm/NumberField/src/useNumberFieldFormatting.js +94 -0
- package/build/esm/NumberField/src/useNumberFieldFormatting.js.map +1 -0
- package/build/esm/NumberField/src/useSapphireNumberField.js +1 -1
- package/build/esm/NumberField/src/useSapphireNumberField.js.map +1 -1
- package/build/esm/TagGroup/src/Tag.js +31 -23
- package/build/esm/TagGroup/src/Tag.js.map +1 -1
- package/build/esm/index.js +1 -0
- package/build/esm/index.js.map +1 -1
- package/build/index.d.ts +72 -7
- package/package.json +35 -35
package/build/cjs/index.js
CHANGED
|
@@ -11,36 +11,37 @@ var focus = require('@react-aria/focus');
|
|
|
11
11
|
var reactAriaComponents = require('react-aria-components');
|
|
12
12
|
var react = require('@danske/sapphire-icons/react');
|
|
13
13
|
var alertStyles = require('@danske/sapphire-css/components/alert/alert.module.css');
|
|
14
|
-
var combobox = require('@react-aria/combobox');
|
|
15
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');
|
|
16
17
|
var utils$1 = require('@react-spectrum/utils');
|
|
17
18
|
var breadcrumbs = require('@react-aria/breadcrumbs');
|
|
18
19
|
var collections = require('@react-aria/collections');
|
|
19
|
-
var styles$
|
|
20
|
-
var styles$
|
|
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');
|
|
21
22
|
var interactions = require('@react-aria/interactions');
|
|
22
23
|
var dnd = require('@react-aria/dnd');
|
|
23
24
|
var visuallyHidden = require('@react-aria/visually-hidden');
|
|
24
25
|
var utils$2 = require('@react-stately/utils');
|
|
25
|
-
var styles$
|
|
26
|
-
var styles$
|
|
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');
|
|
27
28
|
var label = require('@react-aria/label');
|
|
28
29
|
var textFieldStyles = require('@danske/sapphire-css/components/textField/textField.module.css');
|
|
29
30
|
var numberfield$1 = require('@react-aria/numberfield');
|
|
30
31
|
var numberfield = require('@react-stately/numberfield');
|
|
31
|
-
var styles$
|
|
32
|
+
var styles$6 = require('@danske/sapphire-css/components/sidebar/sidebar.module.css');
|
|
32
33
|
var buttonStyles = require('@danske/sapphire-css/components/button/button.module.css');
|
|
33
34
|
var reactTransitionGroup = require('react-transition-group');
|
|
34
35
|
var listbox = require('@react-aria/listbox');
|
|
35
|
-
var styles$
|
|
36
|
+
var styles$7 = require('@danske/sapphire-css/components/progressIndicator/progressIndicator.module.css');
|
|
36
37
|
var progress = require('@react-aria/progress');
|
|
37
|
-
var styles$
|
|
38
|
+
var styles$8 = require('@danske/sapphire-css/components/slider/slider.module.css');
|
|
38
39
|
var tag = require('@react-aria/tag');
|
|
39
40
|
var list = require('@react-stately/list');
|
|
40
|
-
var styles$
|
|
41
|
+
var styles$9 = require('@danske/sapphire-css/components/tag/tag.module.css');
|
|
41
42
|
var button = require('@react-aria/button');
|
|
42
43
|
var collections$1 = require('@react-stately/collections');
|
|
43
|
-
var styles$
|
|
44
|
+
var styles$a = require('@danske/sapphire-css/components/dateField/dateField.module.css');
|
|
44
45
|
var datepicker = require('@react-aria/datepicker');
|
|
45
46
|
var datepicker$1 = require('@react-stately/datepicker');
|
|
46
47
|
|
|
@@ -54,13 +55,14 @@ var styles__default$1 = /*#__PURE__*/_interopDefaultLegacy(styles$1);
|
|
|
54
55
|
var styles__default$2 = /*#__PURE__*/_interopDefaultLegacy(styles$2);
|
|
55
56
|
var styles__default$3 = /*#__PURE__*/_interopDefaultLegacy(styles$3);
|
|
56
57
|
var styles__default$4 = /*#__PURE__*/_interopDefaultLegacy(styles$4);
|
|
57
|
-
var textFieldStyles__default = /*#__PURE__*/_interopDefaultLegacy(textFieldStyles);
|
|
58
58
|
var styles__default$5 = /*#__PURE__*/_interopDefaultLegacy(styles$5);
|
|
59
|
-
var
|
|
59
|
+
var textFieldStyles__default = /*#__PURE__*/_interopDefaultLegacy(textFieldStyles);
|
|
60
60
|
var styles__default$6 = /*#__PURE__*/_interopDefaultLegacy(styles$6);
|
|
61
|
+
var buttonStyles__default = /*#__PURE__*/_interopDefaultLegacy(buttonStyles);
|
|
61
62
|
var styles__default$7 = /*#__PURE__*/_interopDefaultLegacy(styles$7);
|
|
62
63
|
var styles__default$8 = /*#__PURE__*/_interopDefaultLegacy(styles$8);
|
|
63
64
|
var styles__default$9 = /*#__PURE__*/_interopDefaultLegacy(styles$9);
|
|
65
|
+
var styles__default$a = /*#__PURE__*/_interopDefaultLegacy(styles$a);
|
|
64
66
|
|
|
65
67
|
const AccordionContext = React__default["default"].createContext({
|
|
66
68
|
sidePadding: void 0,
|
|
@@ -74,33 +76,33 @@ function useAccordionContext() {
|
|
|
74
76
|
throw new Error("Accordion context can only be used within Accordion component.");
|
|
75
77
|
}
|
|
76
78
|
|
|
77
|
-
var __defProp$
|
|
78
|
-
var __defProps$
|
|
79
|
-
var __getOwnPropDescs$
|
|
80
|
-
var __getOwnPropSymbols$
|
|
81
|
-
var __hasOwnProp$
|
|
82
|
-
var __propIsEnum$
|
|
83
|
-
var __defNormalProp$
|
|
84
|
-
var __spreadValues$
|
|
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) => {
|
|
85
87
|
for (var prop in b || (b = {}))
|
|
86
|
-
if (__hasOwnProp$
|
|
87
|
-
__defNormalProp$
|
|
88
|
-
if (__getOwnPropSymbols$
|
|
89
|
-
for (var prop of __getOwnPropSymbols$
|
|
90
|
-
if (__propIsEnum$
|
|
91
|
-
__defNormalProp$
|
|
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]);
|
|
92
94
|
}
|
|
93
95
|
return a;
|
|
94
96
|
};
|
|
95
|
-
var __spreadProps$
|
|
96
|
-
var __objRest$
|
|
97
|
+
var __spreadProps$u = (a, b) => __defProps$u(a, __getOwnPropDescs$u(b));
|
|
98
|
+
var __objRest$u = (source, exclude) => {
|
|
97
99
|
var target = {};
|
|
98
100
|
for (var prop in source)
|
|
99
|
-
if (__hasOwnProp$
|
|
101
|
+
if (__hasOwnProp$x.call(source, prop) && exclude.indexOf(prop) < 0)
|
|
100
102
|
target[prop] = source[prop];
|
|
101
|
-
if (source != null && __getOwnPropSymbols$
|
|
102
|
-
for (var prop of __getOwnPropSymbols$
|
|
103
|
-
if (exclude.indexOf(prop) < 0 && __propIsEnum$
|
|
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))
|
|
104
106
|
target[prop] = source[prop];
|
|
105
107
|
}
|
|
106
108
|
return target;
|
|
@@ -117,7 +119,7 @@ const Accordion = React.forwardRef(function Accordion2(_a, ref) {
|
|
|
117
119
|
defaultExpandedKeys,
|
|
118
120
|
onExpandedChange,
|
|
119
121
|
isDisabled
|
|
120
|
-
} = _b, props = __objRest$
|
|
122
|
+
} = _b, props = __objRest$u(_b, [
|
|
121
123
|
"allowsMultipleExpanded",
|
|
122
124
|
"headerLevel",
|
|
123
125
|
"hideLastDivider",
|
|
@@ -134,7 +136,7 @@ const Accordion = React.forwardRef(function Accordion2(_a, ref) {
|
|
|
134
136
|
const forwardedRef = utils.useObjectRef(ref);
|
|
135
137
|
return /* @__PURE__ */ React__default["default"].createElement(focus.FocusScope, null, /* @__PURE__ */ React__default["default"].createElement(AccordionContext.Provider, {
|
|
136
138
|
value: { sidePadding, headerLevel }
|
|
137
|
-
}, /* @__PURE__ */ React__default["default"].createElement(reactAriaComponents.DisclosureGroup, __spreadProps$
|
|
139
|
+
}, /* @__PURE__ */ React__default["default"].createElement(reactAriaComponents.DisclosureGroup, __spreadProps$u(__spreadValues$x({}, utils.filterDOMProps(props, { global: true, labelable: true })), {
|
|
138
140
|
allowsMultipleExpanded,
|
|
139
141
|
expandedKeys,
|
|
140
142
|
defaultExpandedKeys,
|
|
@@ -145,7 +147,7 @@ const Accordion = React.forwardRef(function Accordion2(_a, ref) {
|
|
|
145
147
|
[styles__default["default"]["sapphire-accordion--without-last-divider"]]: hideLastDivider,
|
|
146
148
|
[styles__default["default"]["sapphire-accordion--negative-margin-self"]]: !sapphireReact.withTruthyZero(sidePadding) && hasNegativeSideMargin
|
|
147
149
|
}, styleProps.className),
|
|
148
|
-
style: __spreadValues$
|
|
150
|
+
style: __spreadValues$x(__spreadValues$x({}, sapphireReact.withTruthyZero(sidePadding) && hasNegativeSideMargin ? {
|
|
149
151
|
marginLeft: typeof sidePadding === "string" ? `calc(${sidePadding} * -1)` : `-${sidePadding}px`,
|
|
150
152
|
width: `calc(100% + calc(${sidePadding} * 2${typeof sidePadding === "string" ? "" : "px"}))`
|
|
151
153
|
} : {}), styleProps.style)
|
|
@@ -157,41 +159,41 @@ const customPaddingStyleProps = (sidePadding) => ({
|
|
|
157
159
|
paddingRight: typeof sidePadding === "string" ? sidePadding : `${sidePadding}px`
|
|
158
160
|
});
|
|
159
161
|
|
|
160
|
-
var __defProp$
|
|
161
|
-
var __defProps$
|
|
162
|
-
var __getOwnPropDescs$
|
|
163
|
-
var __getOwnPropSymbols$
|
|
164
|
-
var __hasOwnProp$
|
|
165
|
-
var __propIsEnum$
|
|
166
|
-
var __defNormalProp$
|
|
167
|
-
var __spreadValues$
|
|
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) => {
|
|
168
170
|
for (var prop in b || (b = {}))
|
|
169
|
-
if (__hasOwnProp$
|
|
170
|
-
__defNormalProp$
|
|
171
|
-
if (__getOwnPropSymbols$
|
|
172
|
-
for (var prop of __getOwnPropSymbols$
|
|
173
|
-
if (__propIsEnum$
|
|
174
|
-
__defNormalProp$
|
|
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]);
|
|
175
177
|
}
|
|
176
178
|
return a;
|
|
177
179
|
};
|
|
178
|
-
var __spreadProps$
|
|
179
|
-
var __objRest$
|
|
180
|
+
var __spreadProps$t = (a, b) => __defProps$t(a, __getOwnPropDescs$t(b));
|
|
181
|
+
var __objRest$t = (source, exclude) => {
|
|
180
182
|
var target = {};
|
|
181
183
|
for (var prop in source)
|
|
182
|
-
if (__hasOwnProp$
|
|
184
|
+
if (__hasOwnProp$w.call(source, prop) && exclude.indexOf(prop) < 0)
|
|
183
185
|
target[prop] = source[prop];
|
|
184
|
-
if (source != null && __getOwnPropSymbols$
|
|
185
|
-
for (var prop of __getOwnPropSymbols$
|
|
186
|
-
if (exclude.indexOf(prop) < 0 && __propIsEnum$
|
|
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))
|
|
187
189
|
target[prop] = source[prop];
|
|
188
190
|
}
|
|
189
191
|
return target;
|
|
190
192
|
};
|
|
191
193
|
const AccordionHeading = React.forwardRef(function AccordionHeading2(_a, ref) {
|
|
192
|
-
var _b = _a, { children, headerLevel } = _b, props = __objRest$
|
|
194
|
+
var _b = _a, { children, headerLevel } = _b, props = __objRest$t(_b, ["children", "headerLevel"]);
|
|
193
195
|
const { sidePadding, headerLevel: contextHeaderLevel } = useAccordionContext();
|
|
194
|
-
return /* @__PURE__ */ React__default["default"].createElement("div", __spreadProps$
|
|
196
|
+
return /* @__PURE__ */ React__default["default"].createElement("div", __spreadProps$t(__spreadValues$w({
|
|
195
197
|
role: "heading",
|
|
196
198
|
"aria-level": headerLevel != null ? headerLevel : contextHeaderLevel
|
|
197
199
|
}, utils.filterDOMProps(props, { global: true })), {
|
|
@@ -214,36 +216,36 @@ const AccordionHeading = React.forwardRef(function AccordionHeading2(_a, ref) {
|
|
|
214
216
|
}, /* @__PURE__ */ React__default["default"].createElement(react.ChevronDown, null)))));
|
|
215
217
|
});
|
|
216
218
|
|
|
217
|
-
var __defProp$
|
|
218
|
-
var __getOwnPropSymbols$
|
|
219
|
-
var __hasOwnProp$
|
|
220
|
-
var __propIsEnum$
|
|
221
|
-
var __defNormalProp$
|
|
222
|
-
var __spreadValues$
|
|
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) => {
|
|
223
225
|
for (var prop in b || (b = {}))
|
|
224
|
-
if (__hasOwnProp$
|
|
225
|
-
__defNormalProp$
|
|
226
|
-
if (__getOwnPropSymbols$
|
|
227
|
-
for (var prop of __getOwnPropSymbols$
|
|
228
|
-
if (__propIsEnum$
|
|
229
|
-
__defNormalProp$
|
|
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]);
|
|
230
232
|
}
|
|
231
233
|
return a;
|
|
232
234
|
};
|
|
233
|
-
var __objRest$
|
|
235
|
+
var __objRest$s = (source, exclude) => {
|
|
234
236
|
var target = {};
|
|
235
237
|
for (var prop in source)
|
|
236
|
-
if (__hasOwnProp$
|
|
238
|
+
if (__hasOwnProp$v.call(source, prop) && exclude.indexOf(prop) < 0)
|
|
237
239
|
target[prop] = source[prop];
|
|
238
|
-
if (source != null && __getOwnPropSymbols$
|
|
239
|
-
for (var prop of __getOwnPropSymbols$
|
|
240
|
-
if (exclude.indexOf(prop) < 0 && __propIsEnum$
|
|
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))
|
|
241
243
|
target[prop] = source[prop];
|
|
242
244
|
}
|
|
243
245
|
return target;
|
|
244
246
|
};
|
|
245
247
|
const AccordionItem = React.forwardRef(function AccordionItem2(_a, forwardedRef) {
|
|
246
|
-
var _b = _a, { children, id } = _b, props = __objRest$
|
|
248
|
+
var _b = _a, { children, id } = _b, props = __objRest$s(_b, ["children", "id"]);
|
|
247
249
|
const ref = utils.useObjectRef(forwardedRef);
|
|
248
250
|
const focusManager = focus.useFocusManager();
|
|
249
251
|
const onKeyDown = (e) => {
|
|
@@ -273,7 +275,7 @@ const AccordionItem = React.forwardRef(function AccordionItem2(_a, forwardedRef)
|
|
|
273
275
|
}
|
|
274
276
|
};
|
|
275
277
|
utils.useEvent(ref, "keydown", onKeyDown);
|
|
276
|
-
return /* @__PURE__ */ React__default["default"].createElement(reactAriaComponents.Disclosure, __spreadValues$
|
|
278
|
+
return /* @__PURE__ */ React__default["default"].createElement(reactAriaComponents.Disclosure, __spreadValues$v({
|
|
277
279
|
ref,
|
|
278
280
|
id,
|
|
279
281
|
className: ({ isExpanded, isDisabled }) => clsx__default["default"](styles__default["default"]["sapphire-accordion__item"], {
|
|
@@ -285,41 +287,41 @@ const AccordionItem = React.forwardRef(function AccordionItem2(_a, forwardedRef)
|
|
|
285
287
|
}, children));
|
|
286
288
|
});
|
|
287
289
|
|
|
288
|
-
var __defProp$
|
|
289
|
-
var __defProps$
|
|
290
|
-
var __getOwnPropDescs$
|
|
291
|
-
var __getOwnPropSymbols$
|
|
292
|
-
var __hasOwnProp$
|
|
293
|
-
var __propIsEnum$
|
|
294
|
-
var __defNormalProp$
|
|
295
|
-
var __spreadValues$
|
|
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) => {
|
|
296
298
|
for (var prop in b || (b = {}))
|
|
297
|
-
if (__hasOwnProp$
|
|
298
|
-
__defNormalProp$
|
|
299
|
-
if (__getOwnPropSymbols$
|
|
300
|
-
for (var prop of __getOwnPropSymbols$
|
|
301
|
-
if (__propIsEnum$
|
|
302
|
-
__defNormalProp$
|
|
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]);
|
|
303
305
|
}
|
|
304
306
|
return a;
|
|
305
307
|
};
|
|
306
|
-
var __spreadProps$
|
|
307
|
-
var __objRest$
|
|
308
|
+
var __spreadProps$s = (a, b) => __defProps$s(a, __getOwnPropDescs$s(b));
|
|
309
|
+
var __objRest$r = (source, exclude) => {
|
|
308
310
|
var target = {};
|
|
309
311
|
for (var prop in source)
|
|
310
|
-
if (__hasOwnProp$
|
|
312
|
+
if (__hasOwnProp$u.call(source, prop) && exclude.indexOf(prop) < 0)
|
|
311
313
|
target[prop] = source[prop];
|
|
312
|
-
if (source != null && __getOwnPropSymbols$
|
|
313
|
-
for (var prop of __getOwnPropSymbols$
|
|
314
|
-
if (exclude.indexOf(prop) < 0 && __propIsEnum$
|
|
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))
|
|
315
317
|
target[prop] = source[prop];
|
|
316
318
|
}
|
|
317
319
|
return target;
|
|
318
320
|
};
|
|
319
321
|
const AccordionPanel = React.forwardRef(function AccordionPanel2(_a, ref) {
|
|
320
|
-
var _b = _a, { children } = _b, props = __objRest$
|
|
322
|
+
var _b = _a, { children } = _b, props = __objRest$r(_b, ["children"]);
|
|
321
323
|
const { sidePadding } = useAccordionContext();
|
|
322
|
-
return /* @__PURE__ */ React__default["default"].createElement(reactAriaComponents.DisclosurePanel, __spreadValues$
|
|
324
|
+
return /* @__PURE__ */ React__default["default"].createElement(reactAriaComponents.DisclosurePanel, __spreadValues$u(__spreadProps$s(__spreadValues$u({
|
|
323
325
|
ref
|
|
324
326
|
}, utils.filterDOMProps(props, { global: true })), {
|
|
325
327
|
className: clsx__default["default"](styles__default["default"]["sapphire-accordion__item-content"]),
|
|
@@ -327,7 +329,7 @@ const AccordionPanel = React.forwardRef(function AccordionPanel2(_a, ref) {
|
|
|
327
329
|
height: "var(--disclosure-panel-height)"
|
|
328
330
|
}
|
|
329
331
|
}), props), /* @__PURE__ */ React__default["default"].createElement("div", {
|
|
330
|
-
style: __spreadValues$
|
|
332
|
+
style: __spreadValues$u({}, sapphireReact.withTruthyZero(sidePadding) ? customPaddingStyleProps(sidePadding) : {}),
|
|
331
333
|
className: styles__default["default"]["sapphire-accordion__item-content-inner"]
|
|
332
334
|
}, children));
|
|
333
335
|
});
|
|
@@ -338,33 +340,33 @@ const _Accordion = Object.assign(Accordion, {
|
|
|
338
340
|
Panel: AccordionPanel
|
|
339
341
|
});
|
|
340
342
|
|
|
341
|
-
var __defProp$
|
|
342
|
-
var __defProps$
|
|
343
|
-
var __getOwnPropDescs$
|
|
344
|
-
var __getOwnPropSymbols$
|
|
345
|
-
var __hasOwnProp$
|
|
346
|
-
var __propIsEnum$
|
|
347
|
-
var __defNormalProp$
|
|
348
|
-
var __spreadValues$
|
|
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) => {
|
|
349
351
|
for (var prop in b || (b = {}))
|
|
350
|
-
if (__hasOwnProp$
|
|
351
|
-
__defNormalProp$
|
|
352
|
-
if (__getOwnPropSymbols$
|
|
353
|
-
for (var prop of __getOwnPropSymbols$
|
|
354
|
-
if (__propIsEnum$
|
|
355
|
-
__defNormalProp$
|
|
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]);
|
|
356
358
|
}
|
|
357
359
|
return a;
|
|
358
360
|
};
|
|
359
|
-
var __spreadProps$
|
|
360
|
-
var __objRest$
|
|
361
|
+
var __spreadProps$r = (a, b) => __defProps$r(a, __getOwnPropDescs$r(b));
|
|
362
|
+
var __objRest$q = (source, exclude) => {
|
|
361
363
|
var target = {};
|
|
362
364
|
for (var prop in source)
|
|
363
|
-
if (__hasOwnProp$
|
|
365
|
+
if (__hasOwnProp$t.call(source, prop) && exclude.indexOf(prop) < 0)
|
|
364
366
|
target[prop] = source[prop];
|
|
365
|
-
if (source != null && __getOwnPropSymbols$
|
|
366
|
-
for (var prop of __getOwnPropSymbols$
|
|
367
|
-
if (exclude.indexOf(prop) < 0 && __propIsEnum$
|
|
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))
|
|
368
370
|
target[prop] = source[prop];
|
|
369
371
|
}
|
|
370
372
|
return target;
|
|
@@ -374,7 +376,7 @@ function Alert(_a) {
|
|
|
374
376
|
children,
|
|
375
377
|
title,
|
|
376
378
|
variant = "info"
|
|
377
|
-
} = _b, props = __objRest$
|
|
379
|
+
} = _b, props = __objRest$q(_b, [
|
|
378
380
|
"children",
|
|
379
381
|
"title",
|
|
380
382
|
"variant"
|
|
@@ -395,7 +397,7 @@ function Alert(_a) {
|
|
|
395
397
|
return /* @__PURE__ */ React__default["default"].createElement(react.Information, null);
|
|
396
398
|
}
|
|
397
399
|
};
|
|
398
|
-
return /* @__PURE__ */ React__default["default"].createElement("div", __spreadProps$
|
|
400
|
+
return /* @__PURE__ */ React__default["default"].createElement("div", __spreadProps$r(__spreadValues$t({}, utils.filterDOMProps(props, { global: true })), {
|
|
399
401
|
className: clsx.clsx(alertStyles__default["default"]["sapphire-alert"], {
|
|
400
402
|
[alertStyles__default["default"]["sapphire-alert--positive"]]: variant === "positive",
|
|
401
403
|
[alertStyles__default["default"]["sapphire-alert--negative"]]: variant === "negative",
|
|
@@ -420,6 +422,105 @@ function Alert(_a) {
|
|
|
420
422
|
}, children)));
|
|
421
423
|
}
|
|
422
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
|
+
|
|
423
524
|
var da$3 = {
|
|
424
525
|
"listbox-suggestions": "Forslag"
|
|
425
526
|
};
|
|
@@ -498,13 +599,17 @@ function Autocomplete(props) {
|
|
|
498
599
|
renderInput,
|
|
499
600
|
loadingState,
|
|
500
601
|
loadingSkeletonRowsCount,
|
|
501
|
-
listboxAriaLabel
|
|
602
|
+
listboxAriaLabel,
|
|
603
|
+
onSuggestionSelected,
|
|
604
|
+
onSelectionChange
|
|
502
605
|
} = _a, otherProps = __objRest$o(_a, [
|
|
503
606
|
"inputValue",
|
|
504
607
|
"renderInput",
|
|
505
608
|
"loadingState",
|
|
506
609
|
"loadingSkeletonRowsCount",
|
|
507
|
-
"listboxAriaLabel"
|
|
610
|
+
"listboxAriaLabel",
|
|
611
|
+
"onSuggestionSelected",
|
|
612
|
+
"onSelectionChange"
|
|
508
613
|
]);
|
|
509
614
|
const {
|
|
510
615
|
styleProps: { style, className }
|
|
@@ -517,7 +622,13 @@ function Autocomplete(props) {
|
|
|
517
622
|
inputValue,
|
|
518
623
|
allowsEmptyCollection: loadingState === "loading",
|
|
519
624
|
allowsCustomValue: true,
|
|
520
|
-
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
|
+
}
|
|
521
632
|
}));
|
|
522
633
|
const { inputProps, listBoxProps } = combobox.useComboBox(__spreadProps$p(__spreadValues$r({}, props), {
|
|
523
634
|
"aria-label": listboxAriaLabel || formatMessage("listbox-suggestions"),
|
|
@@ -677,9 +788,9 @@ const Breadcrumbs = React.forwardRef(function Breadcrumbs2(_a, fwdRef) {
|
|
|
677
788
|
}, /* @__PURE__ */ React__default["default"].createElement("ol", __spreadProps$o(__spreadValues$q({
|
|
678
789
|
ref
|
|
679
790
|
}, utils.mergeProps(DOMProps, navProps)), {
|
|
680
|
-
className: clsx__default["default"](styles__default$
|
|
681
|
-
[styles__default$
|
|
682
|
-
[styles__default$
|
|
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"
|
|
683
794
|
})
|
|
684
795
|
}), /* @__PURE__ */ React__default["default"].createElement(BreadcrumbsContext.Provider, {
|
|
685
796
|
value: {
|
|
@@ -699,7 +810,7 @@ const BreadcrumbsSeparator = () => {
|
|
|
699
810
|
const { size } = React.useContext(BreadcrumbsContext);
|
|
700
811
|
const iconSize = size === "lg" ? "md" : "sm";
|
|
701
812
|
return /* @__PURE__ */ React__default["default"].createElement("span", {
|
|
702
|
-
className: clsx__default["default"](styles__default$
|
|
813
|
+
className: clsx__default["default"](styles__default$2["default"]["sapphire-breadcrumbs__separator"]),
|
|
703
814
|
"aria-hidden": "true"
|
|
704
815
|
}, /* @__PURE__ */ React__default["default"].createElement(sapphireReact.Icon, {
|
|
705
816
|
size: iconSize
|
|
@@ -762,9 +873,9 @@ const BreadcrumbItemStatic = React.forwardRef(function BreadcrumbItemStatic2(_a,
|
|
|
762
873
|
const positioningRef = tooltipProps == null ? void 0 : tooltipProps.ref;
|
|
763
874
|
return /* @__PURE__ */ React__default["default"].createElement("span", __spreadProps$n(__spreadValues$p({}, tooltipProps), {
|
|
764
875
|
ref: utils.mergeRefs(ref, tooltipContentRef, positioningRef),
|
|
765
|
-
className: clsx__default["default"](styles__default$
|
|
766
|
-
[styles__default$
|
|
767
|
-
[styles__default$
|
|
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"
|
|
768
879
|
}, styleProps.className),
|
|
769
880
|
style: styleProps.style
|
|
770
881
|
}), props.children);
|
|
@@ -866,7 +977,7 @@ const BreadcrumbItem = collections.createLeafComponent(BreadcrumbItemCollectionN
|
|
|
866
977
|
node.href = props.href;
|
|
867
978
|
return /* @__PURE__ */ React__default["default"].createElement("li", {
|
|
868
979
|
ref,
|
|
869
|
-
className: clsx__default["default"](styles__default$
|
|
980
|
+
className: clsx__default["default"](styles__default$2["default"]["sapphire-breadcrumbs__item"]),
|
|
870
981
|
style: __spreadValues$n({}, styleProps.style),
|
|
871
982
|
"data-disabled": isDisabled || void 0,
|
|
872
983
|
"data-current": isCurrent || void 0
|
|
@@ -1116,30 +1227,30 @@ const FileDropzone = React__default["default"].forwardRef(function DropzoneWrapp
|
|
|
1116
1227
|
onPress: onFileSelectOpen
|
|
1117
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 })), {
|
|
1118
1229
|
style: __spreadValues$l({}, styleProps.style),
|
|
1119
|
-
className: clsx__default["default"](styles__default$
|
|
1120
|
-
[styles__default$
|
|
1121
|
-
[styles__default$
|
|
1122
|
-
[styles__default$
|
|
1123
|
-
[styles__default$
|
|
1124
|
-
[styles__default$
|
|
1125
|
-
[styles__default$
|
|
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
|
|
1126
1237
|
}, styleProps.className),
|
|
1127
1238
|
"aria-label": ariaLabel,
|
|
1128
1239
|
"aria-invalid": hasError,
|
|
1129
1240
|
"aria-describedby": paragraphId
|
|
1130
1241
|
}), /* @__PURE__ */ React__default["default"].createElement("div", {
|
|
1131
|
-
className: clsx__default["default"](styles__default$
|
|
1242
|
+
className: clsx__default["default"](styles__default$3["default"]["sapphire-dropzone__content"])
|
|
1132
1243
|
}, /* @__PURE__ */ React__default["default"].createElement("div", {
|
|
1133
|
-
className: clsx__default["default"](styles__default$
|
|
1244
|
+
className: clsx__default["default"](styles__default$3["default"]["sapphire-dropzone__icon"])
|
|
1134
1245
|
}, /* @__PURE__ */ React__default["default"].createElement(sapphireReact.Icon, {
|
|
1135
1246
|
size: "lg"
|
|
1136
1247
|
}, /* @__PURE__ */ React__default["default"].createElement(react.Upload, null))), /* @__PURE__ */ React__default["default"].createElement("div", {
|
|
1137
|
-
className: clsx__default["default"](styles__default$
|
|
1248
|
+
className: clsx__default["default"](styles__default$3["default"]["sapphire-dropzone__heading"])
|
|
1138
1249
|
}, /* @__PURE__ */ React__default["default"].createElement(sapphireReact.Typography.Heading, {
|
|
1139
1250
|
level: 6
|
|
1140
1251
|
}, isDropping ? format("dropzone-heading-dropping") : allowsMultiple ? format("dropzone-heading-default") : format("dropzone-heading-default-single"))), /* @__PURE__ */ React__default["default"].createElement("div", {
|
|
1141
1252
|
id: paragraphId,
|
|
1142
|
-
className: clsx__default["default"](styles__default$
|
|
1253
|
+
className: clsx__default["default"](styles__default$3["default"]["sapphire-dropzone__paragraph"])
|
|
1143
1254
|
}, /* @__PURE__ */ React__default["default"].createElement(sapphireReact.Typography.Body, {
|
|
1144
1255
|
size: "sm",
|
|
1145
1256
|
color: "secondary"
|
|
@@ -1188,6 +1299,7 @@ function FilterDropdown(_a) {
|
|
|
1188
1299
|
isOpen: isOpenProp,
|
|
1189
1300
|
applyButtonLabel = "Apply",
|
|
1190
1301
|
clearButtonLabel = "Clear",
|
|
1302
|
+
hideClearButton = false,
|
|
1191
1303
|
defaultOpen = false,
|
|
1192
1304
|
hasApplyButton = false,
|
|
1193
1305
|
noMaxWidth,
|
|
@@ -1205,6 +1317,7 @@ function FilterDropdown(_a) {
|
|
|
1205
1317
|
"isOpen",
|
|
1206
1318
|
"applyButtonLabel",
|
|
1207
1319
|
"clearButtonLabel",
|
|
1320
|
+
"hideClearButton",
|
|
1208
1321
|
"defaultOpen",
|
|
1209
1322
|
"hasApplyButton",
|
|
1210
1323
|
"noMaxWidth",
|
|
@@ -1214,6 +1327,7 @@ function FilterDropdown(_a) {
|
|
|
1214
1327
|
"buttonSize"
|
|
1215
1328
|
]);
|
|
1216
1329
|
const triggerRef = React.useRef(null);
|
|
1330
|
+
const { styleProps } = sapphireReact.useSapphireStyleProps(props);
|
|
1217
1331
|
const [isOpen, setIsOpen] = utils$2.useControlledState(isOpenProp, defaultOpen, utils.useEffectEvent(onOpenChange));
|
|
1218
1332
|
const hasValue = value != null && value !== "";
|
|
1219
1333
|
const close = () => setIsOpen(false);
|
|
@@ -1239,14 +1353,15 @@ function FilterDropdown(_a) {
|
|
|
1239
1353
|
noPadding: true,
|
|
1240
1354
|
popoverContent: /* @__PURE__ */ React__default["default"].createElement("form", __spreadProps$j(__spreadValues$k({}, utils.filterDOMProps(props, { global: true })), {
|
|
1241
1355
|
onSubmit,
|
|
1242
|
-
className: styles__default$
|
|
1356
|
+
className: clsx__default["default"](styles__default$4["default"]["sapphire-filter-dropdown"], styleProps.className),
|
|
1357
|
+
style: __spreadValues$k({}, styleProps.style)
|
|
1243
1358
|
}), /* @__PURE__ */ React__default["default"].createElement("div", {
|
|
1244
|
-
className: styles__default$
|
|
1359
|
+
className: styles__default$4["default"]["sapphire-filter-dropdown__body"]
|
|
1245
1360
|
}, children), /* @__PURE__ */ React__default["default"].createElement("div", {
|
|
1246
|
-
className: styles__default$
|
|
1361
|
+
className: styles__default$4["default"]["sapphire-filter-dropdown__footer"]
|
|
1247
1362
|
}, /* @__PURE__ */ React__default["default"].createElement(sapphireReact.ButtonGroup, {
|
|
1248
1363
|
align: "right"
|
|
1249
|
-
}, /* @__PURE__ */ React__default["default"].createElement(sapphireReact.Button, {
|
|
1364
|
+
}, !hideClearButton && /* @__PURE__ */ React__default["default"].createElement(sapphireReact.Button, {
|
|
1250
1365
|
size: buttonSize,
|
|
1251
1366
|
variant: "text",
|
|
1252
1367
|
onPress: () => {
|
|
@@ -1369,13 +1484,13 @@ const Flag = React__default["default"].forwardRef(function Flag2(_a, ref) {
|
|
|
1369
1484
|
ref,
|
|
1370
1485
|
role: "img"
|
|
1371
1486
|
}, ariaLabel ? { "aria-label": ariaLabel } : { "aria-hidden": true }), {
|
|
1372
|
-
className: clsx__default["default"](styles__default$
|
|
1373
|
-
[styles__default$
|
|
1374
|
-
[styles__default$
|
|
1375
|
-
[styles__default$
|
|
1376
|
-
[styles__default$
|
|
1377
|
-
[styles__default$
|
|
1378
|
-
[styles__default$
|
|
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
|
|
1379
1494
|
}),
|
|
1380
1495
|
style: styleProps.style
|
|
1381
1496
|
}));
|
|
@@ -1539,15 +1654,18 @@ const StepperButton = (_a) => {
|
|
|
1539
1654
|
const ref = React.useRef(null);
|
|
1540
1655
|
const { buttonProps, isPressed } = sapphireReact.useButton(props, ref);
|
|
1541
1656
|
const { hoverProps, isHovered } = interactions.useHover({ isDisabled: props.isDisabled });
|
|
1542
|
-
|
|
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,
|
|
1543
1660
|
ref,
|
|
1544
1661
|
className: clsx__default["default"](textFieldStyles__default["default"]["sapphire-text-field__stepper-button"], textFieldStyles__default["default"]["js-hover"], {
|
|
1545
1662
|
[textFieldStyles__default["default"]["is-active"]]: isPressed,
|
|
1546
|
-
[textFieldStyles__default["default"]["is-hover"]]: isHovered
|
|
1663
|
+
[textFieldStyles__default["default"]["is-hover"]]: isHovered,
|
|
1664
|
+
[textFieldStyles__default["default"]["is-focus"]]: isFocusVisible
|
|
1547
1665
|
})
|
|
1548
1666
|
}), /* @__PURE__ */ React__default["default"].createElement(sapphireReact.Icon, {
|
|
1549
1667
|
size: size === "lg" ? "md" : "sm"
|
|
1550
|
-
}, variant === "increment" ? /* @__PURE__ */ React__default["default"].createElement(react.
|
|
1668
|
+
}, variant === "increment" ? /* @__PURE__ */ React__default["default"].createElement(react.Add, null) : /* @__PURE__ */ React__default["default"].createElement(react.Subtract, null)));
|
|
1551
1669
|
};
|
|
1552
1670
|
|
|
1553
1671
|
function useAutofillStyle(inputRef) {
|
|
@@ -1567,6 +1685,343 @@ function useAutofillStyle(inputRef) {
|
|
|
1567
1685
|
};
|
|
1568
1686
|
}
|
|
1569
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
|
+
|
|
1570
2025
|
var __defProp$f = Object.defineProperty;
|
|
1571
2026
|
var __defProps$e = Object.defineProperties;
|
|
1572
2027
|
var __getOwnPropDescs$e = Object.getOwnPropertyDescriptors;
|
|
@@ -1607,7 +2062,7 @@ const useSapphireNumberField = (_a, ref) => {
|
|
|
1607
2062
|
const numberFieldAria = numberfield$1.useNumberField(__spreadProps$e(__spreadValues$f({}, numberFieldProps), {
|
|
1608
2063
|
validationState: error === false || error === void 0 ? void 0 : "invalid"
|
|
1609
2064
|
}), numberFieldState, ref);
|
|
1610
|
-
return numberFieldAria;
|
|
2065
|
+
return __spreadProps$e(__spreadValues$f({}, numberFieldAria), { state: numberFieldState });
|
|
1611
2066
|
};
|
|
1612
2067
|
|
|
1613
2068
|
var __defProp$e = Object.defineProperty;
|
|
@@ -1642,6 +2097,7 @@ var __objRest$c = (source, exclude) => {
|
|
|
1642
2097
|
return target;
|
|
1643
2098
|
};
|
|
1644
2099
|
const NumberField = React.forwardRef(function NumberField2(props, ref) {
|
|
2100
|
+
var _b;
|
|
1645
2101
|
const _a = props, {
|
|
1646
2102
|
label,
|
|
1647
2103
|
isDisabled,
|
|
@@ -1649,15 +2105,15 @@ const NumberField = React.forwardRef(function NumberField2(props, ref) {
|
|
|
1649
2105
|
note,
|
|
1650
2106
|
isRequired,
|
|
1651
2107
|
contextualHelp,
|
|
1652
|
-
|
|
1653
|
-
postfix,
|
|
2108
|
+
affix = "auto",
|
|
1654
2109
|
size = "lg",
|
|
1655
2110
|
labelPlacement = "above",
|
|
1656
2111
|
necessityIndicator = false,
|
|
1657
2112
|
alignInputRight,
|
|
1658
2113
|
showButtons = false,
|
|
1659
2114
|
incrementAriaLabel,
|
|
1660
|
-
decrementAriaLabel
|
|
2115
|
+
decrementAriaLabel,
|
|
2116
|
+
autoFormat = false
|
|
1661
2117
|
} = _a, otherProps = __objRest$c(_a, [
|
|
1662
2118
|
"label",
|
|
1663
2119
|
"isDisabled",
|
|
@@ -1665,16 +2121,22 @@ const NumberField = React.forwardRef(function NumberField2(props, ref) {
|
|
|
1665
2121
|
"note",
|
|
1666
2122
|
"isRequired",
|
|
1667
2123
|
"contextualHelp",
|
|
1668
|
-
"
|
|
1669
|
-
"postfix",
|
|
2124
|
+
"affix",
|
|
1670
2125
|
"size",
|
|
1671
2126
|
"labelPlacement",
|
|
1672
2127
|
"necessityIndicator",
|
|
1673
2128
|
"alignInputRight",
|
|
1674
2129
|
"showButtons",
|
|
1675
2130
|
"incrementAriaLabel",
|
|
1676
|
-
"decrementAriaLabel"
|
|
2131
|
+
"decrementAriaLabel",
|
|
2132
|
+
"autoFormat"
|
|
1677
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]);
|
|
1678
2140
|
sapphireReact.useThemeCheck();
|
|
1679
2141
|
const inputRef = utils.useObjectRef(props.inputRef);
|
|
1680
2142
|
const formatMessage = i18n.useMessageFormatter(intlMessages$1);
|
|
@@ -1691,6 +2153,24 @@ const NumberField = React.forwardRef(function NumberField2(props, ref) {
|
|
|
1691
2153
|
}), inputRef);
|
|
1692
2154
|
const { focusProps, isFocusVisible } = focus.useFocusRing();
|
|
1693
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
|
+
};
|
|
1694
2174
|
const containerRef = React.useRef(null);
|
|
1695
2175
|
React.useImperativeHandle(ref, () => __spreadProps$d(__spreadValues$e({}, utils$1.createFocusableRef(containerRef, inputRef)), {
|
|
1696
2176
|
getInputElement() {
|
|
@@ -1713,32 +2193,38 @@ const NumberField = React.forwardRef(function NumberField2(props, ref) {
|
|
|
1713
2193
|
[textFieldStyles__default["default"]["sapphire-text-field--error"]]: error === true || typeof error === "string",
|
|
1714
2194
|
[textFieldStyles__default["default"]["sapphire-text-field--md"]]: size === "md"
|
|
1715
2195
|
})
|
|
1716
|
-
},
|
|
2196
|
+
}, extractedPrefix && /* @__PURE__ */ React__default["default"].createElement("span", {
|
|
1717
2197
|
className: clsx__default["default"](textFieldStyles__default["default"]["sapphire-text-field__prefix"], {
|
|
1718
|
-
[textFieldStyles__default["default"]["sapphire-text-field__prefix--icon"]]: typeof
|
|
2198
|
+
[textFieldStyles__default["default"]["sapphire-text-field__prefix--icon"]]: typeof extractedPrefix !== "string"
|
|
1719
2199
|
})
|
|
1720
|
-
},
|
|
2200
|
+
}, extractedPrefix), /* @__PURE__ */ React__default["default"].createElement("input", __spreadProps$d(__spreadValues$e({}, utils.mergeProps(inputProps, focusProps, {
|
|
1721
2201
|
onChange: updateStyle,
|
|
1722
2202
|
onBlur: updateStyle
|
|
1723
|
-
}
|
|
2203
|
+
}, autoFormat ? {
|
|
2204
|
+
onInput: handleInput,
|
|
2205
|
+
onKeyDown: handleKeyDown
|
|
2206
|
+
} : {})), {
|
|
2207
|
+
value: (_b = formattingResult == null ? void 0 : formattingResult.displayValue) != null ? _b : inputProps.value,
|
|
1724
2208
|
ref: inputRef,
|
|
1725
2209
|
className: clsx__default["default"](textFieldStyles__default["default"]["sapphire-text-field__input"], {
|
|
1726
2210
|
[textFieldStyles__default["default"]["sapphire-text-field__input--align-right"]]: !!alignInputRight
|
|
1727
2211
|
}),
|
|
1728
2212
|
style: autofillStyles
|
|
1729
|
-
})),
|
|
2213
|
+
})), extractedPostfix && /* @__PURE__ */ React__default["default"].createElement("span", {
|
|
1730
2214
|
className: clsx__default["default"](textFieldStyles__default["default"]["sapphire-text-field__postfix"], {
|
|
1731
|
-
[textFieldStyles__default["default"]["sapphire-text-field__postfix--icon"]]: typeof
|
|
2215
|
+
[textFieldStyles__default["default"]["sapphire-text-field__postfix--icon"]]: typeof extractedPostfix !== "string"
|
|
1732
2216
|
})
|
|
1733
|
-
},
|
|
1734
|
-
className:
|
|
2217
|
+
}, extractedPostfix), showButtons && /* @__PURE__ */ React__default["default"].createElement("div", {
|
|
2218
|
+
className: textFieldStyles__default["default"]["sapphire-text-field__stepper"]
|
|
1735
2219
|
}, /* @__PURE__ */ React__default["default"].createElement(StepperButton, __spreadValues$e({
|
|
1736
|
-
variant: "increment",
|
|
1737
|
-
size
|
|
1738
|
-
}, incrementButtonProps)), /* @__PURE__ */ React__default["default"].createElement(StepperButton, __spreadValues$e({
|
|
1739
2220
|
variant: "decrement",
|
|
1740
2221
|
size
|
|
1741
|
-
}, decrementButtonProps))
|
|
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, {
|
|
1742
2228
|
variant: "error"
|
|
1743
2229
|
}, error) : note ? note : /* @__PURE__ */ React__default["default"].createElement(React__default["default"].Fragment, null))));
|
|
1744
2230
|
});
|
|
@@ -2015,7 +2501,7 @@ const SidebarContent = (_c) => {
|
|
|
2015
2501
|
const responsiveSidebarContext = useResponsiveSidebarContext();
|
|
2016
2502
|
const isCollapsed = useIsSidebarCollapsed();
|
|
2017
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), {
|
|
2018
|
-
className: clsx__default["default"](styles__default$
|
|
2504
|
+
className: clsx__default["default"](styles__default$6["default"]["sapphire-sidebar"]),
|
|
2019
2505
|
tabIndex: -1
|
|
2020
2506
|
}), header, children), responsiveSidebarContext && /* @__PURE__ */ React__default["default"].createElement(SidebarPanel, {
|
|
2021
2507
|
header: panelHeader
|
|
@@ -2071,7 +2557,7 @@ const SidebarHeader = (_a) => {
|
|
|
2071
2557
|
"closeButtonProps"
|
|
2072
2558
|
]);
|
|
2073
2559
|
return /* @__PURE__ */ React__default["default"].createElement("div", __spreadProps$a(__spreadValues$b({}, utils.filterDOMProps(props)), {
|
|
2074
|
-
className: clsx__default["default"](styles__default$
|
|
2560
|
+
className: clsx__default["default"](styles__default$6["default"]["sapphire-sidebar__header"])
|
|
2075
2561
|
}), children, closeButtonProps && /* @__PURE__ */ React__default["default"].createElement(sapphireReact.IconButton, __spreadProps$a(__spreadValues$b({}, closeButtonProps), {
|
|
2076
2562
|
"aria-label": "Close"
|
|
2077
2563
|
}), /* @__PURE__ */ React__default["default"].createElement(react.CloseLarge, null)));
|
|
@@ -2112,7 +2598,7 @@ const SidebarItem = React__default["default"].forwardRef(function SidebarItem2(_
|
|
|
2112
2598
|
var _b = _a, { isActive, children } = _b, props = __objRest$8(_b, ["isActive", "children"]);
|
|
2113
2599
|
const { itemProps } = useSidebar();
|
|
2114
2600
|
return /* @__PURE__ */ React__default["default"].createElement("li", {
|
|
2115
|
-
className: clsx__default["default"](styles__default$
|
|
2601
|
+
className: clsx__default["default"](styles__default$6["default"]["sapphire-sidebar__nav-item"])
|
|
2116
2602
|
}, /* @__PURE__ */ React__default["default"].createElement(sapphireReact.Button, __spreadProps$9(__spreadValues$a({
|
|
2117
2603
|
ref,
|
|
2118
2604
|
variant: "tertiary",
|
|
@@ -2179,7 +2665,7 @@ const SidebarExpandableItem = React__default["default"].forwardRef(function Side
|
|
|
2179
2665
|
}
|
|
2180
2666
|
}, [isOpen]);
|
|
2181
2667
|
return /* @__PURE__ */ React__default["default"].createElement("li", {
|
|
2182
|
-
className: clsx__default["default"](styles__default$
|
|
2668
|
+
className: clsx__default["default"](styles__default$6["default"]["sapphire-sidebar__nav-item"])
|
|
2183
2669
|
}, /* @__PURE__ */ React__default["default"].createElement(sapphireReact.Button, __spreadProps$8(__spreadValues$9({
|
|
2184
2670
|
variant: "tertiary",
|
|
2185
2671
|
"aria-current": isActive || void 0,
|
|
@@ -2222,9 +2708,9 @@ const SecondarySidebar = ({
|
|
|
2222
2708
|
timeout: 200
|
|
2223
2709
|
}, (transitionState) => /* @__PURE__ */ React__default["default"].createElement("div", {
|
|
2224
2710
|
ref,
|
|
2225
|
-
className: clsx__default["default"](styles__default$
|
|
2226
|
-
[styles__default$
|
|
2227
|
-
[styles__default$
|
|
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"
|
|
2228
2714
|
})
|
|
2229
2715
|
}, /* @__PURE__ */ React__default["default"].createElement(focus.FocusScope, {
|
|
2230
2716
|
restoreFocus: true,
|
|
@@ -2290,11 +2776,11 @@ const SidebarSection = (_a) => {
|
|
|
2290
2776
|
});
|
|
2291
2777
|
return /* @__PURE__ */ React__default["default"].createElement(React__default["default"].Fragment, null, /* @__PURE__ */ React__default["default"].createElement("li", {
|
|
2292
2778
|
role: "separator",
|
|
2293
|
-
className: clsx__default["default"](styles__default$
|
|
2779
|
+
className: clsx__default["default"](styles__default$6["default"]["sapphire-sidebar__separator"])
|
|
2294
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), {
|
|
2295
|
-
className: clsx__default["default"](styles__default$
|
|
2781
|
+
className: clsx__default["default"](styles__default$6["default"]["sapphire-sidebar__section-header"])
|
|
2296
2782
|
}), title), /* @__PURE__ */ React__default["default"].createElement("ul", __spreadProps$7(__spreadValues$8({}, groupProps), {
|
|
2297
|
-
className: clsx__default["default"](styles__default$
|
|
2783
|
+
className: clsx__default["default"](styles__default$6["default"]["sapphire-sidebar__section"])
|
|
2298
2784
|
}), children)));
|
|
2299
2785
|
};
|
|
2300
2786
|
|
|
@@ -2340,8 +2826,8 @@ const SidebarBody = (_a) => {
|
|
|
2340
2826
|
return /* @__PURE__ */ React__default["default"].createElement(RootNode, __spreadValues$7(__spreadValues$7({
|
|
2341
2827
|
ref: sidebarBody,
|
|
2342
2828
|
tabIndex: -1,
|
|
2343
|
-
className: clsx__default["default"](styles__default$
|
|
2344
|
-
[styles__default$
|
|
2829
|
+
className: clsx__default["default"](styles__default$6["default"]["sapphire-sidebar__body"], {
|
|
2830
|
+
[styles__default$6["default"]["sapphire-sidebar__body--scrolled"]]: isScrolled
|
|
2345
2831
|
})
|
|
2346
2832
|
}, utils.filterDOMProps(props, { global: true })), scrollCheckProps), children);
|
|
2347
2833
|
};
|
|
@@ -2387,7 +2873,7 @@ const SidebarList = (_a) => {
|
|
|
2387
2873
|
]);
|
|
2388
2874
|
const RootNode = elementType;
|
|
2389
2875
|
return /* @__PURE__ */ React__default["default"].createElement(RootNode, __spreadProps$6(__spreadValues$6({}, utils.filterDOMProps(props, { global: true })), {
|
|
2390
|
-
className: clsx__default["default"](styles__default$
|
|
2876
|
+
className: clsx__default["default"](styles__default$6["default"]["sapphire-sidebar__nav-list"])
|
|
2391
2877
|
}), children);
|
|
2392
2878
|
};
|
|
2393
2879
|
|
|
@@ -2438,14 +2924,14 @@ const ProgressIndicator = (props) => {
|
|
|
2438
2924
|
const value = Math.min(Math.max(realValue, minValue), maxValue);
|
|
2439
2925
|
const widthPercentage = value / maxValue * 100;
|
|
2440
2926
|
return /* @__PURE__ */ React__default["default"].createElement("div", __spreadProps$5(__spreadValues$5({}, utils.filterDOMProps(props, { global: true })), {
|
|
2441
|
-
className: clsx__default["default"](styles__default$
|
|
2927
|
+
className: clsx__default["default"](styles__default$7["default"]["sapphire-progress"])
|
|
2442
2928
|
}), /* @__PURE__ */ React__default["default"].createElement("div", __spreadProps$5(__spreadValues$5({}, progressBarProps), {
|
|
2443
|
-
className: styles__default$
|
|
2929
|
+
className: styles__default$7["default"]["sapphire-progress--indicator"],
|
|
2444
2930
|
style: __spreadProps$5(__spreadValues$5({}, styleProps), { width: `${widthPercentage}%` }),
|
|
2445
2931
|
"aria-label": "aria-label" in props ? props["aria-label"] : void 0,
|
|
2446
2932
|
"aria-labelledby": "aria-labelledby" in props ? props["aria-labelledby"] : void 0
|
|
2447
2933
|
})), segments > 1 && /* @__PURE__ */ React__default["default"].createElement("div", {
|
|
2448
|
-
className: styles__default$
|
|
2934
|
+
className: styles__default$7["default"]["sapphire-progress--segments"]
|
|
2449
2935
|
}, Array.from({ length: segments }, (_, index) => /* @__PURE__ */ React__default["default"].createElement("span", {
|
|
2450
2936
|
key: index
|
|
2451
2937
|
}))));
|
|
@@ -2501,21 +2987,21 @@ const Slider = (_a) => {
|
|
|
2501
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), {
|
|
2502
2988
|
style: { height: "100%" }
|
|
2503
2989
|
}), /* @__PURE__ */ React__default["default"].createElement("div", {
|
|
2504
|
-
className: clsx__default["default"](styles__default$
|
|
2990
|
+
className: clsx__default["default"](styles__default$8["default"]["sapphire-slider"]),
|
|
2505
2991
|
role: "slider"
|
|
2506
2992
|
}, /* @__PURE__ */ React__default["default"].createElement(reactAriaComponents.SliderTrack, {
|
|
2507
|
-
className: ({ isDisabled }) => clsx__default["default"](styles__default$
|
|
2508
|
-
[styles__default$
|
|
2993
|
+
className: ({ isDisabled }) => clsx__default["default"](styles__default$8["default"]["sapphire-slider__track"], {
|
|
2994
|
+
[styles__default$8["default"]["is-disabled"]]: isDisabled
|
|
2509
2995
|
})
|
|
2510
2996
|
}, ({ state }) => /* @__PURE__ */ React__default["default"].createElement(React__default["default"].Fragment, null, /* @__PURE__ */ React__default["default"].createElement("div", {
|
|
2511
|
-
className: clsx__default["default"](styles__default$
|
|
2997
|
+
className: clsx__default["default"](styles__default$8["default"]["sapphire-slider__track-remaining"])
|
|
2512
2998
|
}), /* @__PURE__ */ React__default["default"].createElement("div", {
|
|
2513
|
-
className: clsx__default["default"](styles__default$
|
|
2999
|
+
className: clsx__default["default"](styles__default$8["default"]["sapphire-slider__track-fill"]),
|
|
2514
3000
|
style: { width: state.getThumbPercent(0) * 100 + "%" }
|
|
2515
3001
|
}), /* @__PURE__ */ React__default["default"].createElement(reactAriaComponents.SliderThumb, {
|
|
2516
3002
|
name,
|
|
2517
|
-
className: (state2) => clsx__default["default"](styles__default$
|
|
2518
|
-
[styles__default$
|
|
3003
|
+
className: (state2) => clsx__default["default"](styles__default$8["default"]["sapphire-slider__thumb"], {
|
|
3004
|
+
[styles__default$8["default"]["is-focus"]]: state2.isFocusVisible
|
|
2519
3005
|
}),
|
|
2520
3006
|
style: ({ state: state2 }) => {
|
|
2521
3007
|
const percent = Math.min(3 + state2.getThumbPercent(0) * 94, 100);
|
|
@@ -2582,41 +3068,49 @@ function Tag(props) {
|
|
|
2582
3068
|
]);
|
|
2583
3069
|
const { hoverProps, isHovered } = interactions.useHover({ isDisabled });
|
|
2584
3070
|
const hasAction = otherProps.hasAction;
|
|
2585
|
-
return /* @__PURE__ */ React__default["default"].createElement(
|
|
2586
|
-
|
|
2587
|
-
},
|
|
2588
|
-
ref
|
|
2589
|
-
|
|
2590
|
-
|
|
2591
|
-
|
|
2592
|
-
|
|
2593
|
-
|
|
2594
|
-
|
|
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
|
+
}
|
|
2595
3086
|
}
|
|
2596
|
-
}
|
|
2597
|
-
|
|
2598
|
-
|
|
2599
|
-
|
|
2600
|
-
|
|
2601
|
-
|
|
2602
|
-
|
|
2603
|
-
})
|
|
2604
|
-
|
|
2605
|
-
|
|
2606
|
-
|
|
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
|
+
});
|
|
2607
3101
|
}
|
|
2608
3102
|
function RemoveButton(removeButtonProps) {
|
|
2609
3103
|
const buttonRef = React.useRef(null);
|
|
2610
3104
|
const { buttonProps } = button.useButton(removeButtonProps, buttonRef);
|
|
2611
3105
|
return /* @__PURE__ */ React__default["default"].createElement("button", __spreadProps$3(__spreadValues$3({}, buttonProps), {
|
|
2612
|
-
className: clsx__default["default"](styles__default$
|
|
3106
|
+
className: clsx__default["default"](styles__default$9["default"]["sapphire-tag__button"], styles__default$9["default"]["js-focus"])
|
|
2613
3107
|
}), /* @__PURE__ */ React__default["default"].createElement(sapphireReact.Icon, {
|
|
2614
3108
|
size: "sm"
|
|
2615
3109
|
}, /* @__PURE__ */ React__default["default"].createElement(react.Close, null)));
|
|
2616
3110
|
}
|
|
2617
3111
|
const IconError = () => {
|
|
2618
3112
|
return /* @__PURE__ */ React__default["default"].createElement("span", {
|
|
2619
|
-
className: clsx__default["default"](styles__default$
|
|
3113
|
+
className: clsx__default["default"](styles__default$9["default"]["sapphire-tag__error-icon"])
|
|
2620
3114
|
}, /* @__PURE__ */ React__default["default"].createElement(sapphireReact.Icon, {
|
|
2621
3115
|
size: "sm"
|
|
2622
3116
|
}, /* @__PURE__ */ React__default["default"].createElement(react.Error, null)));
|
|
@@ -2695,7 +3189,7 @@ function TagGroup(props) {
|
|
|
2695
3189
|
contextualHelp
|
|
2696
3190
|
}), labelText)), /* @__PURE__ */ React__default["default"].createElement(sapphireReact.Field.Control, null, /* @__PURE__ */ React__default["default"].createElement("div", __spreadProps$2(__spreadValues$2({}, gridProps), {
|
|
2697
3191
|
ref,
|
|
2698
|
-
className: styles__default$
|
|
3192
|
+
className: styles__default$9["default"]["sapphire-tag-group"]
|
|
2699
3193
|
}), Array.from(state.collection).map((item) => /* @__PURE__ */ React__default["default"].createElement(Tag, {
|
|
2700
3194
|
key: item.key,
|
|
2701
3195
|
item,
|
|
@@ -2736,7 +3230,7 @@ const TimeSegment = ({ segment, state }) => segment.type === "hour" || segment.t
|
|
|
2736
3230
|
});
|
|
2737
3231
|
const SeparatorSegment = ({ segment }) => /* @__PURE__ */ React__default["default"].createElement("span", {
|
|
2738
3232
|
"aria-hidden": "true",
|
|
2739
|
-
className: clsx__default["default"](styles__default$
|
|
3233
|
+
className: clsx__default["default"](styles__default$a["default"]["sapphire-date-field__segment"], styles__default$a["default"]["sapphire-date-field__segment--separator"])
|
|
2740
3234
|
}, segment.text);
|
|
2741
3235
|
const EditableSegment = ({ segment, state }) => {
|
|
2742
3236
|
const ref = React.useRef(null);
|
|
@@ -2744,8 +3238,8 @@ const EditableSegment = ({ segment, state }) => {
|
|
|
2744
3238
|
return /* @__PURE__ */ React__default["default"].createElement("div", __spreadProps$1(__spreadValues$1({}, segmentProps), {
|
|
2745
3239
|
style: segmentProps.style,
|
|
2746
3240
|
ref,
|
|
2747
|
-
className: clsx__default["default"](styles__default$
|
|
2748
|
-
[styles__default$
|
|
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
|
|
2749
3243
|
})
|
|
2750
3244
|
}), segment.text);
|
|
2751
3245
|
};
|
|
@@ -2863,14 +3357,14 @@ function _TimeField(_a, ref) {
|
|
|
2863
3357
|
necessityIndicator: otherProps.isRequired && necessityIndicator ? "required" : !otherProps.isRequired && necessityIndicator ? "optional" : void 0,
|
|
2864
3358
|
contextualHelp
|
|
2865
3359
|
}), otherProps.label))), /* @__PURE__ */ React__default["default"].createElement(sapphireReact.Field.Control, null, /* @__PURE__ */ React__default["default"].createElement("div", {
|
|
2866
|
-
className: clsx__default["default"](styles__default$
|
|
2867
|
-
[styles__default$
|
|
2868
|
-
[styles__default$
|
|
2869
|
-
[styles__default$
|
|
2870
|
-
[styles__default$
|
|
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"
|
|
2871
3365
|
})
|
|
2872
3366
|
}, /* @__PURE__ */ React__default["default"].createElement("div", __spreadProps(__spreadValues({}, fieldProps), {
|
|
2873
|
-
className: styles__default$
|
|
3367
|
+
className: styles__default$a["default"]["sapphire-date-field__input"],
|
|
2874
3368
|
ref: timeFieldRef
|
|
2875
3369
|
}), state.segments.map((segment, i) => /* @__PURE__ */ React__default["default"].createElement(TimeSegment, {
|
|
2876
3370
|
key: i,
|
|
@@ -2880,7 +3374,7 @@ function _TimeField(_a, ref) {
|
|
|
2880
3374
|
"aria-label": formatMessage("clear"),
|
|
2881
3375
|
onPress: () => state.segments.forEach((segment) => state.clearSegment(segment.type)),
|
|
2882
3376
|
size: size === "md" ? "sm" : "md",
|
|
2883
|
-
UNSAFE_className: clsx__default["default"](styles__default$
|
|
3377
|
+
UNSAFE_className: clsx__default["default"](styles__default$a["default"]["sapphire-date-field__button"], styles__default$a["default"]["sapphire-date-field__button--clear"])
|
|
2884
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, {
|
|
2885
3379
|
variant: "error"
|
|
2886
3380
|
}, error) : note ? note : null) : null);
|
|
@@ -2894,6 +3388,7 @@ Object.defineProperty(exports, 'useLocale', {
|
|
|
2894
3388
|
exports.Accordion = _Accordion;
|
|
2895
3389
|
exports.AccordionContext = AccordionContext;
|
|
2896
3390
|
exports.Alert = Alert;
|
|
3391
|
+
exports.Amount = Amount;
|
|
2897
3392
|
exports.Autocomplete = Autocomplete;
|
|
2898
3393
|
exports.BreadcrumbItem = BreadcrumbItem;
|
|
2899
3394
|
exports.Breadcrumbs = Breadcrumbs;
|