eidos-ui 4.1.1 → 4.3.0
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/dist/chip/index.cjs +2 -2
- package/dist/chip/index.js +1 -1
- package/dist/{chunk-SOS4K7VC.js → chunk-45XFUEYG.js} +2 -2
- package/dist/{chunk-AWPJH3UB.js → chunk-4MURW4H3.js} +2 -2
- package/dist/{chunk-2WDL2ZVP.js → chunk-5TRO6CYR.js} +10 -4
- package/dist/chunk-5TRO6CYR.js.map +1 -0
- package/dist/{chunk-SJPCBRKR.cjs → chunk-5YTPZN6X.cjs} +3 -3
- package/dist/{chunk-SJPCBRKR.cjs.map → chunk-5YTPZN6X.cjs.map} +1 -1
- package/dist/{chunk-7VMF6LIC.cjs → chunk-6Z42NMP4.cjs} +9 -9
- package/dist/{chunk-7VMF6LIC.cjs.map → chunk-6Z42NMP4.cjs.map} +1 -1
- package/dist/{chunk-VGMRIXW4.cjs → chunk-7OWJQHHM.cjs} +25 -25
- package/dist/{chunk-VGMRIXW4.cjs.map → chunk-7OWJQHHM.cjs.map} +1 -1
- package/dist/{chunk-FSX7DDLO.js → chunk-BMRZHFDP.js} +97 -52
- package/dist/chunk-BMRZHFDP.js.map +1 -0
- package/dist/{chunk-43DJ3GGR.js → chunk-CEVMMYJ5.js} +2 -2
- package/dist/{chunk-DCUIT7SI.js → chunk-CIDHX2EW.js} +2 -2
- package/dist/{chunk-MKQVDEHI.cjs → chunk-CPRNLW4M.cjs} +13 -16
- package/dist/chunk-CPRNLW4M.cjs.map +1 -0
- package/dist/{chunk-6JYXGRJ3.cjs → chunk-EAUTJAKV.cjs} +3 -3
- package/dist/{chunk-6JYXGRJ3.cjs.map → chunk-EAUTJAKV.cjs.map} +1 -1
- package/dist/{chunk-OERK3T7E.js → chunk-ECP5J27K.js} +13 -16
- package/dist/chunk-ECP5J27K.js.map +1 -0
- package/dist/{chunk-5HRVHEHE.cjs → chunk-EJS22Y4B.cjs} +3 -3
- package/dist/{chunk-5HRVHEHE.cjs.map → chunk-EJS22Y4B.cjs.map} +1 -1
- package/dist/{chunk-HKLLKNRQ.cjs → chunk-EM4WYYFN.cjs} +3 -3
- package/dist/{chunk-HKLLKNRQ.cjs.map → chunk-EM4WYYFN.cjs.map} +1 -1
- package/dist/{chunk-Z3OEYDNI.js → chunk-EUQQG5WH.js} +2 -2
- package/dist/{chunk-FAGQGGT3.js → chunk-GVLQQGI3.js} +2 -2
- package/dist/{chunk-K6VEUJLY.cjs → chunk-I36GOOCM.cjs} +18 -18
- package/dist/{chunk-K6VEUJLY.cjs.map → chunk-I36GOOCM.cjs.map} +1 -1
- package/dist/{chunk-LXRNFQEI.js → chunk-JJJXVJUW.js} +3 -3
- package/dist/{chunk-FFYPSLQV.js → chunk-KUP3CP24.js} +8 -8
- package/dist/{chunk-UTOTOWPS.js → chunk-LPSRS5GI.js} +3 -3
- package/dist/{chunk-3QBMSZSE.cjs → chunk-NLTNIQG7.cjs} +3 -3
- package/dist/{chunk-3QBMSZSE.cjs.map → chunk-NLTNIQG7.cjs.map} +1 -1
- package/dist/{chunk-MUMTPMWD.cjs → chunk-NNNMXVHI.cjs} +3 -3
- package/dist/{chunk-MUMTPMWD.cjs.map → chunk-NNNMXVHI.cjs.map} +1 -1
- package/dist/{chunk-57BVERWD.js → chunk-NODLZFCN.js} +3 -3
- package/dist/{chunk-DHOBGYRD.js → chunk-NQ2IY4A2.js} +3 -3
- package/dist/{chunk-YHSCUPP6.cjs → chunk-QKCYXFET.cjs} +102 -57
- package/dist/chunk-QKCYXFET.cjs.map +1 -0
- package/dist/{chunk-SONL2RCW.js → chunk-QVUMYDRE.js} +5 -5
- package/dist/{chunk-SJKD3WCV.cjs → chunk-S3IZPWYP.cjs} +5 -5
- package/dist/{chunk-SJKD3WCV.cjs.map → chunk-S3IZPWYP.cjs.map} +1 -1
- package/dist/{chunk-GRKC4PIX.cjs → chunk-SHGRJX7B.cjs} +3 -3
- package/dist/{chunk-GRKC4PIX.cjs.map → chunk-SHGRJX7B.cjs.map} +1 -1
- package/dist/{chunk-BPVOQLCA.cjs → chunk-TFCOF5FC.cjs} +2 -2
- package/dist/chunk-TFCOF5FC.cjs.map +1 -0
- package/dist/{chunk-IJW6YCJB.cjs → chunk-TTFZKWPH.cjs} +5 -5
- package/dist/{chunk-IJW6YCJB.cjs.map → chunk-TTFZKWPH.cjs.map} +1 -1
- package/dist/{chunk-JO4NDJRA.cjs → chunk-U4B6C7OP.cjs} +6 -6
- package/dist/{chunk-JO4NDJRA.cjs.map → chunk-U4B6C7OP.cjs.map} +1 -1
- package/dist/{chunk-ADB7QRX5.cjs → chunk-U4MV7P4A.cjs} +5 -5
- package/dist/{chunk-ADB7QRX5.cjs.map → chunk-U4MV7P4A.cjs.map} +1 -1
- package/dist/{chunk-IBT535UH.js → chunk-UAAQVIZQ.js} +2 -2
- package/dist/chunk-UAAQVIZQ.js.map +1 -0
- package/dist/{chunk-VPN7AR7T.cjs → chunk-USGEUG2O.cjs} +4 -4
- package/dist/{chunk-VPN7AR7T.cjs.map → chunk-USGEUG2O.cjs.map} +1 -1
- package/dist/{chunk-TOLNPD7S.js → chunk-VA23PQTA.js} +2 -2
- package/dist/{chunk-BKUZF7CW.cjs → chunk-VY7DTPO3.cjs} +21 -15
- package/dist/chunk-VY7DTPO3.cjs.map +1 -0
- package/dist/{chunk-D2PXPX56.js → chunk-YAZSZFLB.js} +4 -4
- package/dist/{chunk-YYA5SWXD.js → chunk-ZBK4KYKJ.js} +2 -2
- package/dist/color-picker/index.cjs +3 -3
- package/dist/color-picker/index.js +2 -2
- package/dist/combobox/index.cjs +3 -3
- package/dist/combobox/index.js +2 -2
- package/dist/context-menu/index.cjs +4 -4
- package/dist/context-menu/index.js +3 -3
- package/dist/conversation/index.cjs +5 -5
- package/dist/conversation/index.js +4 -4
- package/dist/data-grid/index.cjs +10 -10
- package/dist/data-grid/index.js +9 -9
- package/dist/date-picker/index.cjs +4 -4
- package/dist/date-picker/index.d.cts +15 -1
- package/dist/date-picker/index.d.ts +15 -1
- package/dist/date-picker/index.js +3 -3
- package/dist/dropdown/index.cjs +2 -2
- package/dist/dropdown/index.d.cts +10 -0
- package/dist/dropdown/index.d.ts +10 -0
- package/dist/dropdown/index.js +1 -1
- package/dist/index.cjs +20 -20
- package/dist/index.css +1 -1
- package/dist/index.js +19 -19
- package/dist/menu/index.cjs +3 -3
- package/dist/menu/index.js +2 -2
- package/dist/page-layout/index.cjs +5 -5
- package/dist/page-layout/index.js +4 -4
- package/dist/pagination/index.cjs +4 -4
- package/dist/pagination/index.js +3 -3
- package/dist/select/index.cjs +3 -3
- package/dist/select/index.js +2 -2
- package/dist/split-button/index.cjs +4 -4
- package/dist/split-button/index.js +3 -3
- package/dist/split-chip/index.cjs +3 -3
- package/dist/split-chip/index.js +2 -2
- package/dist/table/index.cjs +9 -9
- package/dist/table/index.js +8 -8
- package/dist/tag-input/index.cjs +4 -4
- package/dist/tag-input/index.js +3 -3
- package/dist/theme-editor/index.cjs +5 -5
- package/dist/theme-editor/index.js +4 -4
- package/dist/toolbar/index.cjs +4 -4
- package/dist/toolbar/index.js +3 -3
- package/package.json +1 -1
- package/dist/chunk-2WDL2ZVP.js.map +0 -1
- package/dist/chunk-BKUZF7CW.cjs.map +0 -1
- package/dist/chunk-BPVOQLCA.cjs.map +0 -1
- package/dist/chunk-FSX7DDLO.js.map +0 -1
- package/dist/chunk-IBT535UH.js.map +0 -1
- package/dist/chunk-MKQVDEHI.cjs.map +0 -1
- package/dist/chunk-OERK3T7E.js.map +0 -1
- package/dist/chunk-YHSCUPP6.cjs.map +0 -1
- /package/dist/{chunk-SOS4K7VC.js.map → chunk-45XFUEYG.js.map} +0 -0
- /package/dist/{chunk-AWPJH3UB.js.map → chunk-4MURW4H3.js.map} +0 -0
- /package/dist/{chunk-43DJ3GGR.js.map → chunk-CEVMMYJ5.js.map} +0 -0
- /package/dist/{chunk-DCUIT7SI.js.map → chunk-CIDHX2EW.js.map} +0 -0
- /package/dist/{chunk-Z3OEYDNI.js.map → chunk-EUQQG5WH.js.map} +0 -0
- /package/dist/{chunk-FAGQGGT3.js.map → chunk-GVLQQGI3.js.map} +0 -0
- /package/dist/{chunk-LXRNFQEI.js.map → chunk-JJJXVJUW.js.map} +0 -0
- /package/dist/{chunk-FFYPSLQV.js.map → chunk-KUP3CP24.js.map} +0 -0
- /package/dist/{chunk-UTOTOWPS.js.map → chunk-LPSRS5GI.js.map} +0 -0
- /package/dist/{chunk-57BVERWD.js.map → chunk-NODLZFCN.js.map} +0 -0
- /package/dist/{chunk-DHOBGYRD.js.map → chunk-NQ2IY4A2.js.map} +0 -0
- /package/dist/{chunk-SONL2RCW.js.map → chunk-QVUMYDRE.js.map} +0 -0
- /package/dist/{chunk-TOLNPD7S.js.map → chunk-VA23PQTA.js.map} +0 -0
- /package/dist/{chunk-D2PXPX56.js.map → chunk-YAZSZFLB.js.map} +0 -0
- /package/dist/{chunk-YYA5SWXD.js.map → chunk-ZBK4KYKJ.js.map} +0 -0
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
var _chunkKF2OGUADcjs = require('./chunk-KF2OGUAD.cjs');
|
|
4
4
|
|
|
5
5
|
|
|
6
|
-
var
|
|
6
|
+
var _chunkCPRNLW4Mcjs = require('./chunk-CPRNLW4M.cjs');
|
|
7
7
|
|
|
8
8
|
|
|
9
9
|
|
|
@@ -80,6 +80,11 @@ var Select = _react2.default.forwardRef(
|
|
|
80
80
|
}
|
|
81
81
|
} else {
|
|
82
82
|
if (newSelectedValues.has(option.value)) {
|
|
83
|
+
if (!clearable) {
|
|
84
|
+
setIsOpen(false);
|
|
85
|
+
_optionalChain([inputRef, 'access', _ => _.current, 'optionalAccess', _2 => _2.focus, 'call', _3 => _3()]);
|
|
86
|
+
return;
|
|
87
|
+
}
|
|
83
88
|
newSelectedValues.clear();
|
|
84
89
|
} else {
|
|
85
90
|
newSelectedValues.clear();
|
|
@@ -95,13 +100,14 @@ var Select = _react2.default.forwardRef(
|
|
|
95
100
|
}
|
|
96
101
|
if (!multiple) {
|
|
97
102
|
setIsOpen(false);
|
|
98
|
-
_optionalChain([inputRef, 'access',
|
|
103
|
+
_optionalChain([inputRef, 'access', _4 => _4.current, 'optionalAccess', _5 => _5.focus, 'call', _6 => _6()]);
|
|
99
104
|
}
|
|
100
105
|
},
|
|
101
|
-
[multiple, onChange, selectedValues, isControlled]
|
|
106
|
+
[multiple, onChange, selectedValues, isControlled, clearable]
|
|
102
107
|
);
|
|
103
108
|
const handleClear = _react.useCallback.call(void 0,
|
|
104
109
|
(e) => {
|
|
110
|
+
if (!clearable) return;
|
|
105
111
|
if (e) {
|
|
106
112
|
e.stopPropagation();
|
|
107
113
|
}
|
|
@@ -109,17 +115,17 @@ var Select = _react2.default.forwardRef(
|
|
|
109
115
|
setSelectedValues(/* @__PURE__ */ new Set());
|
|
110
116
|
}
|
|
111
117
|
setIsOpen(false);
|
|
112
|
-
_optionalChain([inputRef, 'access',
|
|
118
|
+
_optionalChain([inputRef, 'access', _7 => _7.current, 'optionalAccess', _8 => _8.focus, 'call', _9 => _9()]);
|
|
113
119
|
if (onChange) {
|
|
114
120
|
onChange(multiple ? [] : "");
|
|
115
121
|
}
|
|
116
122
|
},
|
|
117
|
-
[multiple, onChange, isControlled]
|
|
123
|
+
[multiple, onChange, isControlled, clearable]
|
|
118
124
|
);
|
|
119
125
|
_react.useEffect.call(void 0, () => {
|
|
120
126
|
const element = inputRef.current;
|
|
121
127
|
if (!element) return;
|
|
122
|
-
const named = (_nullishCoalesce(_optionalChain([element, 'access',
|
|
128
|
+
const named = (_nullishCoalesce(_optionalChain([element, 'access', _10 => _10.labels, 'optionalAccess', _11 => _11.length]), () => ( 0))) > 0 || element.hasAttribute("aria-label") || element.hasAttribute("aria-labelledby");
|
|
123
129
|
if (!named) {
|
|
124
130
|
_chunkR5WI5IGRcjs.devWarn.call(void 0,
|
|
125
131
|
"select-missing-label",
|
|
@@ -140,7 +146,7 @@ var Select = _react2.default.forwardRef(
|
|
|
140
146
|
setFocusedIndex((prev) => {
|
|
141
147
|
const nextIndex = prev < options.length - 1 ? prev + 1 : 0;
|
|
142
148
|
setTimeout(() => {
|
|
143
|
-
_optionalChain([optionRefs, 'access',
|
|
149
|
+
_optionalChain([optionRefs, 'access', _12 => _12.current, 'access', _13 => _13[nextIndex], 'optionalAccess', _14 => _14.scrollIntoView, 'call', _15 => _15({
|
|
144
150
|
block: "nearest",
|
|
145
151
|
behavior: "smooth"
|
|
146
152
|
})]);
|
|
@@ -158,7 +164,7 @@ var Select = _react2.default.forwardRef(
|
|
|
158
164
|
setFocusedIndex((prev) => {
|
|
159
165
|
const nextIndex = prev > 0 ? prev - 1 : options.length - 1;
|
|
160
166
|
setTimeout(() => {
|
|
161
|
-
_optionalChain([optionRefs, 'access',
|
|
167
|
+
_optionalChain([optionRefs, 'access', _16 => _16.current, 'access', _17 => _17[nextIndex], 'optionalAccess', _18 => _18.scrollIntoView, 'call', _19 => _19({
|
|
162
168
|
block: "nearest",
|
|
163
169
|
behavior: "smooth"
|
|
164
170
|
})]);
|
|
@@ -189,7 +195,7 @@ var Select = _react2.default.forwardRef(
|
|
|
189
195
|
e.preventDefault();
|
|
190
196
|
if (isOpen) {
|
|
191
197
|
setFocusedIndex(0);
|
|
192
|
-
_optionalChain([optionRefs, 'access',
|
|
198
|
+
_optionalChain([optionRefs, 'access', _20 => _20.current, 'access', _21 => _21[0], 'optionalAccess', _22 => _22.scrollIntoView, 'call', _23 => _23({
|
|
193
199
|
block: "nearest",
|
|
194
200
|
behavior: "smooth"
|
|
195
201
|
})]);
|
|
@@ -200,7 +206,7 @@ var Select = _react2.default.forwardRef(
|
|
|
200
206
|
if (isOpen) {
|
|
201
207
|
const lastIndex = options.length - 1;
|
|
202
208
|
setFocusedIndex(lastIndex);
|
|
203
|
-
_optionalChain([optionRefs, 'access',
|
|
209
|
+
_optionalChain([optionRefs, 'access', _24 => _24.current, 'access', _25 => _25[lastIndex], 'optionalAccess', _26 => _26.scrollIntoView, 'call', _27 => _27({
|
|
204
210
|
block: "nearest",
|
|
205
211
|
behavior: "smooth"
|
|
206
212
|
})]);
|
|
@@ -214,7 +220,7 @@ var Select = _react2.default.forwardRef(
|
|
|
214
220
|
);
|
|
215
221
|
if (foundIndex !== -1) {
|
|
216
222
|
setFocusedIndex(foundIndex);
|
|
217
|
-
_optionalChain([optionRefs, 'access',
|
|
223
|
+
_optionalChain([optionRefs, 'access', _28 => _28.current, 'access', _29 => _29[foundIndex], 'optionalAccess', _30 => _30.scrollIntoView, 'call', _31 => _31({
|
|
218
224
|
block: "nearest",
|
|
219
225
|
behavior: "smooth"
|
|
220
226
|
})]);
|
|
@@ -224,7 +230,7 @@ var Select = _react2.default.forwardRef(
|
|
|
224
230
|
);
|
|
225
231
|
if (foundFromStart !== -1) {
|
|
226
232
|
setFocusedIndex(foundFromStart);
|
|
227
|
-
_optionalChain([optionRefs, 'access',
|
|
233
|
+
_optionalChain([optionRefs, 'access', _32 => _32.current, 'access', _33 => _33[foundFromStart], 'optionalAccess', _34 => _34.scrollIntoView, 'call', _35 => _35({
|
|
228
234
|
block: "nearest",
|
|
229
235
|
behavior: "smooth"
|
|
230
236
|
})]);
|
|
@@ -242,7 +248,7 @@ var Select = _react2.default.forwardRef(
|
|
|
242
248
|
(option) => selectedValuesRef.current.has(option.value)
|
|
243
249
|
);
|
|
244
250
|
if (idx === -1) return;
|
|
245
|
-
_optionalChain([optionRefs, 'access',
|
|
251
|
+
_optionalChain([optionRefs, 'access', _36 => _36.current, 'access', _37 => _37[idx], 'optionalAccess', _38 => _38.scrollIntoView, 'call', _39 => _39({ block: "nearest" })]);
|
|
246
252
|
}, []);
|
|
247
253
|
const COMPACT_LABEL_THRESHOLD = 2;
|
|
248
254
|
const displayValue = _react.useMemo.call(void 0, () => {
|
|
@@ -328,7 +334,7 @@ var Select = _react2.default.forwardRef(
|
|
|
328
334
|
ref,
|
|
329
335
|
className: `${"eidos-select-container"} ${fullWidth ? "eidos-select-container--full-width" : ""} ${className}`,
|
|
330
336
|
children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
331
|
-
|
|
337
|
+
_chunkCPRNLW4Mcjs.Dropdown,
|
|
332
338
|
{
|
|
333
339
|
open: isOpen,
|
|
334
340
|
onOpenChange: setIsOpen,
|
|
@@ -353,4 +359,4 @@ Select.displayName = "Select";
|
|
|
353
359
|
|
|
354
360
|
|
|
355
361
|
exports.Select = Select;
|
|
356
|
-
//# sourceMappingURL=chunk-
|
|
362
|
+
//# sourceMappingURL=chunk-VY7DTPO3.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["/home/runner/work/eidos-ui/eidos-ui/dist/chunk-VY7DTPO3.cjs","../src/components/Select/Select.component.tsx"],"names":[],"mappings":"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","file":"/home/runner/work/eidos-ui/eidos-ui/dist/chunk-VY7DTPO3.cjs","sourcesContent":[null,"import React, { useState, useCallback, useRef, useEffect, useMemo } from 'react';\nimport { X, Check } from 'lucide-react';\nimport { Input } from '../Input/Input.component';\nimport { Dropdown } from '../Dropdown/Dropdown.component';\nimport type { SelectProps, SelectOption } from './Select.types';\nimport { renderIcon, devWarn } from '../../utils';\n\nexport const Select = React.forwardRef<HTMLDivElement, SelectProps>(\n (\n {\n options = [],\n value,\n defaultValue,\n onChange,\n className = '',\n multiple = false,\n label,\n placeholder = 'Select an option...',\n disabled = false,\n inputProps = {},\n name,\n id,\n required = false,\n fullWidth = false,\n minWidth,\n maxWidth,\n minHeight,\n maxHeight = '300px',\n autoWidth = true,\n clearable = true,\n autoOpen = false,\n dropdownProps = {},\n },\n ref,\n ) => {\n const isControlled = value !== undefined;\n\n // Lazy initializer: seed from defaultValue in uncontrolled mode.\n const [selectedValues, setSelectedValues] = useState<Set<string>>(() => {\n if (defaultValue !== undefined) {\n const vals = Array.isArray(defaultValue) ? defaultValue : [defaultValue];\n return new Set(vals.filter((v) => v !== ''));\n }\n return new Set();\n });\n\n const [focusedIndex, setFocusedIndex] = useState(-1);\n // `Select` owns the open state and hands it to `Dropdown` as a controlled\n // value. It used to keep this flag *and* force the dropdown closed by\n // remounting it through a changing `key`, because `Dropdown`'s own state was\n // private - which meant this flag drove the ARIA attributes while reaching\n // nothing that renders, so the keyboard could not open the listbox at all.\n const [isOpen, setIsOpen] = useState(autoOpen);\n\n const inputRef = useRef<HTMLInputElement>(null);\n const triggerRef = useRef<HTMLDivElement>(null);\n const optionRefs = useRef<(HTMLDivElement | null)[]>([]);\n\n // Kept in sync every render so the mount-only callback ref below can\n // read the latest values without needing them in its dependency array\n // (see `handleOptionsMount`).\n const optionsRef = useRef(options);\n optionsRef.current = options;\n const selectedValuesRef = useRef(selectedValues);\n selectedValuesRef.current = selectedValues;\n\n useEffect(() => {\n if (value !== undefined) {\n const values = Array.isArray(value) ? value : [value];\n\n const validValues = values.filter((v) => v !== '');\n setSelectedValues(new Set(validValues));\n }\n }, [value]);\n\n useEffect(() => {\n setFocusedIndex(-1);\n }, [options]);\n\n useEffect(() => {\n optionRefs.current = optionRefs.current.slice(0, options.length);\n }, [options.length]);\n\n const handleOptionSelect = useCallback(\n (option: SelectOption) => {\n if (option.disabled) return;\n\n const newSelectedValues = new Set(selectedValues);\n\n if (multiple) {\n if (newSelectedValues.has(option.value)) {\n newSelectedValues.delete(option.value);\n } else {\n newSelectedValues.add(option.value);\n }\n } else {\n if (newSelectedValues.has(option.value)) {\n if (!clearable) {\n // `clearable={false}` means the value is not allowed to\n // become empty - re-clicking the selected option changes\n // nothing and emits no `onChange`, but still closes the\n // dropdown like any selection so the control does not\n // feel broken.\n setIsOpen(false);\n inputRef.current?.focus();\n return;\n }\n newSelectedValues.clear();\n } else {\n newSelectedValues.clear();\n newSelectedValues.add(option.value);\n }\n }\n\n // In uncontrolled mode, own the state directly.\n // In controlled mode, let the parent drive via value prop + useEffect sync.\n if (!isControlled) {\n setSelectedValues(newSelectedValues);\n }\n\n if (onChange) {\n const newValue = multiple\n ? Array.from(newSelectedValues)\n : Array.from(newSelectedValues)[0] || '';\n onChange(newValue);\n }\n\n if (!multiple) {\n setIsOpen(false);\n // Focus is returned explicitly because a click lands on an option\n // `div`, which is not focusable - without this, choosing with the\n // mouse would leave focus on `<body>` and the field would be\n // unreachable by keyboard until tabbed to again.\n inputRef.current?.focus();\n }\n },\n [multiple, onChange, selectedValues, isControlled, clearable],\n );\n\n const handleClear = useCallback(\n (e?: React.MouseEvent) => {\n // `clearable` is the single meaning of \"the value may become\n // empty\" - the clear button is already hidden, this guards any\n // other path here (and any future one) reaching the same end.\n if (!clearable) return;\n if (e) {\n e.stopPropagation();\n }\n if (!isControlled) {\n setSelectedValues(new Set());\n }\n\n setIsOpen(false);\n inputRef.current?.focus();\n if (onChange) {\n onChange(multiple ? [] : '');\n }\n },\n [multiple, onChange, isControlled, clearable],\n );\n\n // A form control with no accessible name is announced as just \"combobox\".\n // `Select` was the only field in the library that could not be labelled\n // without knowing about `inputProps`, and three call sites duly shipped\n // without one - so the gap is closed from both ends: a first-class `label`\n // prop, and this warning.\n //\n // Measured from the DOM rather than from props, because a caller may name\n // the field with an external `<label for>` - `Pagination`'s page-size\n // picker does exactly that, and a props-only check would cry wolf at it.\n // `HTMLInputElement.labels` covers both wrapping and `for` labels.\n useEffect(() => {\n const element = inputRef.current;\n if (!element) return;\n const named =\n (element.labels?.length ?? 0) > 0 ||\n element.hasAttribute('aria-label') ||\n element.hasAttribute('aria-labelledby');\n if (!named) {\n devWarn(\n 'select-missing-label',\n 'Select: no accessible name. Pass `label` for a visible one, or `inputProps={{ \"aria-label\": \"...\" }}` where it must stay visually unlabelled - otherwise the field is announced as just \"combobox\". A placeholder is not a label, and disappears as soon as something is chosen.',\n );\n }\n }, []);\n\n const handleKeyDown = useCallback(\n (e: React.KeyboardEvent) => {\n if (disabled) return;\n\n switch (e.key) {\n case 'ArrowDown':\n e.preventDefault();\n if (!isOpen) {\n setIsOpen(true);\n setFocusedIndex(0);\n } else {\n setFocusedIndex((prev) => {\n const nextIndex = prev < options.length - 1 ? prev + 1 : 0;\n\n setTimeout(() => {\n optionRefs.current[nextIndex]?.scrollIntoView({\n block: 'nearest',\n behavior: 'smooth',\n });\n }, 0);\n return nextIndex;\n });\n }\n break;\n\n case 'ArrowUp':\n e.preventDefault();\n if (!isOpen) {\n setIsOpen(true);\n setFocusedIndex(options.length - 1);\n } else {\n setFocusedIndex((prev) => {\n const nextIndex = prev > 0 ? prev - 1 : options.length - 1;\n\n setTimeout(() => {\n optionRefs.current[nextIndex]?.scrollIntoView({\n block: 'nearest',\n behavior: 'smooth',\n });\n }, 0);\n return nextIndex;\n });\n }\n break;\n\n case 'Enter':\n case ' ':\n e.preventDefault();\n if (!isOpen) {\n setIsOpen(true);\n setFocusedIndex(0);\n } else if (focusedIndex >= 0 && focusedIndex < options.length) {\n const focusedOption = options[focusedIndex];\n handleOptionSelect(focusedOption);\n }\n break;\n\n case 'Escape':\n e.preventDefault();\n if (isOpen) {\n setIsOpen(false);\n setFocusedIndex(-1);\n }\n break;\n\n case 'Home':\n e.preventDefault();\n if (isOpen) {\n setFocusedIndex(0);\n optionRefs.current[0]?.scrollIntoView({\n block: 'nearest',\n behavior: 'smooth',\n });\n }\n break;\n\n case 'End':\n e.preventDefault();\n if (isOpen) {\n const lastIndex = options.length - 1;\n setFocusedIndex(lastIndex);\n optionRefs.current[lastIndex]?.scrollIntoView({\n block: 'nearest',\n behavior: 'smooth',\n });\n }\n break;\n\n default:\n if (isOpen && e.key.length === 1 && /[a-zA-Z0-9]/.test(e.key)) {\n const searchChar = e.key.toLowerCase();\n const foundIndex = options.findIndex(\n (option, index) =>\n index > focusedIndex && option.label.toLowerCase().startsWith(searchChar),\n );\n\n if (foundIndex !== -1) {\n setFocusedIndex(foundIndex);\n optionRefs.current[foundIndex]?.scrollIntoView({\n block: 'nearest',\n behavior: 'smooth',\n });\n } else {\n const foundFromStart = options.findIndex((option) =>\n option.label.toLowerCase().startsWith(searchChar),\n );\n if (foundFromStart !== -1) {\n setFocusedIndex(foundFromStart);\n optionRefs.current[foundFromStart]?.scrollIntoView({\n block: 'nearest',\n behavior: 'smooth',\n });\n }\n }\n }\n break;\n }\n },\n [disabled, isOpen, options, focusedIndex, handleOptionSelect],\n );\n\n // Scrolls the first selected option into view. Attached as the options\n // list's own ref below with an empty dependency array, so its identity\n // never changes and React only invokes it on genuine DOM mount/unmount -\n // i.e. exactly when the dropdown opens/closes (Dropdown unmounts its\n // `content` entirely while closed), not on every re-render while open.\n const handleOptionsMount = useCallback((el: HTMLDivElement | null) => {\n if (!el) return;\n const idx = optionsRef.current.findIndex((option) =>\n selectedValuesRef.current.has(option.value),\n );\n if (idx === -1) return;\n optionRefs.current[idx]?.scrollIntoView({ block: 'nearest' });\n }, []);\n\n // Past this many selections the full comma-joined label list becomes\n // unreadable in the trigger, so we switch to a compact \"N selected\" label.\n const COMPACT_LABEL_THRESHOLD = 2;\n\n const displayValue = useMemo(() => {\n if (selectedValues.size === 0) return '';\n\n if (multiple && selectedValues.size > COMPACT_LABEL_THRESHOLD) {\n return `${selectedValues.size} selected`;\n }\n\n const selectedOptions = options.filter((option) => selectedValues.has(option.value));\n const text = selectedOptions.map((option) => option.label).join(', ');\n return text;\n }, [options, selectedValues, multiple]);\n\n const selectContent = useMemo(\n () => (\n <div className={'eidos-select-options'} ref={handleOptionsMount}>\n {options.map((option, index) => {\n const isSelected = selectedValues.has(option.value);\n const isFocused = index === focusedIndex;\n return (\n <div\n key={option.id}\n // The trigger points `aria-activedescendant` at\n // `${id}-option-${focusedIndex}`, and nothing carried that id -\n // so the moment an option was hovered or arrowed to, the\n // attribute referenced an element that did not exist\n // (`aria-valid-attr-value`, critical). Invisible to axe until a\n // story left the listbox open, because the attribute is only\n // set once something is focused.\n id={`${id || 'select'}-option-${index}`}\n ref={(el) => {\n optionRefs.current[index] = el;\n }}\n className={`\n\t\t\t\t\t\t\t\t\t\t${'eidos-select-option'}\n\t\t\t\t\t\t\t\t\t\t${isSelected ? 'eidos-select-option--selected' : ''}\n\t\t\t\t\t\t\t\t\t\t${option.disabled ? 'eidos-select-option--disabled' : ''}\n\t\t\t\t\t\t\t\t\t\t${isFocused ? 'eidos-select-option--focused' : ''}\n\t\t\t\t\t\t\t\t\t`.trim()}\n onClick={() => handleOptionSelect(option)}\n onMouseEnter={() => setFocusedIndex(index)}\n role=\"option\"\n aria-selected={isSelected}\n aria-disabled={option.disabled}\n >\n {option.icon && renderIcon(option.icon, 'eidos-select-option-icon')}\n <span className={'eidos-select-option-label'}>{option.label}</span>\n {isSelected && <Check className={'eidos-select-option-check-icon'} />}\n </div>\n );\n })}\n </div>\n ),\n [options, selectedValues, focusedIndex, handleOptionSelect, handleOptionsMount, id],\n );\n\n const triggerElement = (\n <div\n ref={triggerRef}\n className={`eidos-select-trigger ${fullWidth ? 'eidos-select-trigger--full-width' : ''}`}\n onKeyDown={handleKeyDown}\n tabIndex={disabled ? -1 : undefined}\n role=\"combobox\"\n aria-expanded={isOpen}\n aria-haspopup=\"listbox\"\n // Only while the listbox exists. An `aria-controls` pointing at an id\n // that is not in the document is invalid, and the listbox only renders\n // while open - `Combobox`, `TagInput` and `CommandPalette` already gate\n // theirs this way. It could not be gated here before, because `isOpen`\n // did not track whether the panel had actually rendered.\n aria-controls={isOpen ? `${id || 'select'}-options` : undefined}\n aria-activedescendant={\n focusedIndex >= 0 ? `${id || 'select'}-option-${focusedIndex}` : undefined\n }\n >\n <Input\n ref={inputRef}\n value={selectedValues.size > 0 ? displayValue : ''}\n placeholder={selectedValues.size === 0 ? placeholder : ''}\n posIcon={selectedValues.size > 0 && clearable ? X : undefined}\n posIconButton={selectedValues.size > 0 && clearable}\n onPosIconClick={selectedValues.size > 0 && clearable ? handleClear : undefined}\n posIconLabel=\"Clear selection\"\n disabled={disabled}\n readOnly={true}\n isSelect={true}\n label={label}\n name={name}\n id={id}\n required={required}\n fullWidth={fullWidth}\n {...inputProps}\n />\n </div>\n );\n\n return (\n <div\n ref={ref}\n className={`${'eidos-select-container'} ${\n fullWidth ? 'eidos-select-container--full-width' : ''\n } ${className}`}\n >\n <Dropdown\n open={isOpen}\n onOpenChange={setIsOpen}\n trigger={triggerElement}\n content={\n <div id={`${id || 'select'}-options`} role=\"listbox\" aria-multiselectable={multiple}>\n {selectContent}\n </div>\n }\n minWidth={minWidth}\n maxWidth={maxWidth}\n minHeight={minHeight}\n maxHeight={maxHeight}\n autoWidth={autoWidth}\n fullWidth={fullWidth}\n triggerRef={triggerRef as React.RefObject<HTMLElement | null>}\n {...dropdownProps}\n />\n </div>\n );\n },\n);\n\nSelect.displayName = 'Select';\n"]}
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import {
|
|
2
2
|
DatePicker
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-BMRZHFDP.js";
|
|
4
4
|
import {
|
|
5
5
|
Select
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-5TRO6CYR.js";
|
|
7
7
|
import {
|
|
8
8
|
Input
|
|
9
9
|
} from "./chunk-GE3QCXT7.js";
|
|
10
10
|
import {
|
|
11
11
|
Dropdown
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-ECP5J27K.js";
|
|
13
13
|
import {
|
|
14
14
|
Badge
|
|
15
15
|
} from "./chunk-3SKI6FXB.js";
|
|
@@ -4443,4 +4443,4 @@ export {
|
|
|
4443
4443
|
sortableKeyboardCoordinates,
|
|
4444
4444
|
TableFiltersDropdown
|
|
4445
4445
|
};
|
|
4446
|
-
//# sourceMappingURL=chunk-
|
|
4446
|
+
//# sourceMappingURL=chunk-YAZSZFLB.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
MenuPanel
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-VA23PQTA.js";
|
|
4
4
|
|
|
5
5
|
// src/components/ContextMenu/ContextMenu.component.tsx
|
|
6
6
|
import { useState, useEffect, useRef, useCallback } from "react";
|
|
@@ -103,4 +103,4 @@ var ContextMenu = ({
|
|
|
103
103
|
export {
|
|
104
104
|
ContextMenu
|
|
105
105
|
};
|
|
106
|
-
//# sourceMappingURL=chunk-
|
|
106
|
+
//# sourceMappingURL=chunk-ZBK4KYKJ.js.map
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
|
|
2
2
|
|
|
3
|
-
var
|
|
4
|
-
require('../chunk-
|
|
3
|
+
var _chunk5YTPZN6Xcjs = require('../chunk-5YTPZN6X.cjs');
|
|
4
|
+
require('../chunk-CPRNLW4M.cjs');
|
|
5
5
|
require('../chunk-R5WI5IGR.cjs');
|
|
6
6
|
require('../chunk-CJT7L764.cjs');
|
|
7
7
|
require('../chunk-DZUJEN5N.cjs');
|
|
8
8
|
|
|
9
9
|
|
|
10
|
-
exports.ColorPicker =
|
|
10
|
+
exports.ColorPicker = _chunk5YTPZN6Xcjs.ColorPicker;
|
|
11
11
|
//# sourceMappingURL=index.cjs.map
|
package/dist/combobox/index.cjs
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var _chunkEM4WYYFNcjs = require('../chunk-EM4WYYFN.cjs');
|
|
4
4
|
require('../chunk-KF2OGUAD.cjs');
|
|
5
|
-
require('../chunk-
|
|
5
|
+
require('../chunk-CPRNLW4M.cjs');
|
|
6
6
|
require('../chunk-RZMQCVAS.cjs');
|
|
7
7
|
require('../chunk-R5WI5IGR.cjs');
|
|
8
8
|
require('../chunk-CJT7L764.cjs');
|
|
9
9
|
require('../chunk-DZUJEN5N.cjs');
|
|
10
10
|
|
|
11
11
|
|
|
12
|
-
exports.Combobox =
|
|
12
|
+
exports.Combobox = _chunkEM4WYYFNcjs.Combobox;
|
|
13
13
|
//# sourceMappingURL=index.cjs.map
|
package/dist/combobox/index.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import {
|
|
2
2
|
Combobox
|
|
3
|
-
} from "../chunk-
|
|
3
|
+
} from "../chunk-EUQQG5WH.js";
|
|
4
4
|
import "../chunk-GE3QCXT7.js";
|
|
5
|
-
import "../chunk-
|
|
5
|
+
import "../chunk-ECP5J27K.js";
|
|
6
6
|
import "../chunk-BUSMGQJ4.js";
|
|
7
7
|
import "../chunk-PP6HS4GR.js";
|
|
8
8
|
import "../chunk-V3T7RO4F.js";
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
|
|
2
2
|
|
|
3
|
-
var
|
|
4
|
-
require('../chunk-
|
|
5
|
-
require('../chunk-
|
|
3
|
+
var _chunkEJS22Y4Bcjs = require('../chunk-EJS22Y4B.cjs');
|
|
4
|
+
require('../chunk-USGEUG2O.cjs');
|
|
5
|
+
require('../chunk-CPRNLW4M.cjs');
|
|
6
6
|
require('../chunk-KVIL4EP4.cjs');
|
|
7
7
|
require('../chunk-RZMQCVAS.cjs');
|
|
8
8
|
require('../chunk-R5WI5IGR.cjs');
|
|
@@ -10,5 +10,5 @@ require('../chunk-CJT7L764.cjs');
|
|
|
10
10
|
require('../chunk-DZUJEN5N.cjs');
|
|
11
11
|
|
|
12
12
|
|
|
13
|
-
exports.ContextMenu =
|
|
13
|
+
exports.ContextMenu = _chunkEJS22Y4Bcjs.ContextMenu;
|
|
14
14
|
//# sourceMappingURL=index.cjs.map
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import {
|
|
2
2
|
ContextMenu
|
|
3
|
-
} from "../chunk-
|
|
4
|
-
import "../chunk-
|
|
5
|
-
import "../chunk-
|
|
3
|
+
} from "../chunk-ZBK4KYKJ.js";
|
|
4
|
+
import "../chunk-VA23PQTA.js";
|
|
5
|
+
import "../chunk-ECP5J27K.js";
|
|
6
6
|
import "../chunk-LYH3EKKQ.js";
|
|
7
7
|
import "../chunk-BUSMGQJ4.js";
|
|
8
8
|
import "../chunk-PP6HS4GR.js";
|
|
@@ -2,16 +2,16 @@
|
|
|
2
2
|
|
|
3
3
|
|
|
4
4
|
|
|
5
|
-
var
|
|
5
|
+
var _chunkU4MV7P4Acjs = require('../chunk-U4MV7P4A.cjs');
|
|
6
6
|
require('../chunk-IGFR5TES.cjs');
|
|
7
7
|
require('../chunk-3RUIKBH4.cjs');
|
|
8
8
|
require('../chunk-EQ6BNPTL.cjs');
|
|
9
9
|
require('../chunk-TROYIUDH.cjs');
|
|
10
10
|
require('../chunk-KV3V2CPH.cjs');
|
|
11
11
|
require('../chunk-FQZ6F7FQ.cjs');
|
|
12
|
-
require('../chunk-
|
|
13
|
-
require('../chunk-
|
|
14
|
-
require('../chunk-
|
|
12
|
+
require('../chunk-TFCOF5FC.cjs');
|
|
13
|
+
require('../chunk-USGEUG2O.cjs');
|
|
14
|
+
require('../chunk-CPRNLW4M.cjs');
|
|
15
15
|
require('../chunk-KVIL4EP4.cjs');
|
|
16
16
|
require('../chunk-Q3GNKF74.cjs');
|
|
17
17
|
require('../chunk-EACNRR3C.cjs');
|
|
@@ -27,5 +27,5 @@ require('../chunk-DZUJEN5N.cjs');
|
|
|
27
27
|
|
|
28
28
|
|
|
29
29
|
|
|
30
|
-
exports.Chat =
|
|
30
|
+
exports.Chat = _chunkU4MV7P4Acjs.Chat; exports.CommentThread = _chunkU4MV7P4Acjs.CommentThread; exports.MessageComposer = _chunkU4MV7P4Acjs.MessageComposer;
|
|
31
31
|
//# sourceMappingURL=index.cjs.map
|
|
@@ -2,16 +2,16 @@ import {
|
|
|
2
2
|
Chat,
|
|
3
3
|
CommentThread,
|
|
4
4
|
MessageComposer
|
|
5
|
-
} from "../chunk-
|
|
5
|
+
} from "../chunk-JJJXVJUW.js";
|
|
6
6
|
import "../chunk-Y55M34RQ.js";
|
|
7
7
|
import "../chunk-TH3ITGUM.js";
|
|
8
8
|
import "../chunk-UEJSRMU2.js";
|
|
9
9
|
import "../chunk-6ZAT5CGB.js";
|
|
10
10
|
import "../chunk-3TUCQAYL.js";
|
|
11
11
|
import "../chunk-TPNCV7KA.js";
|
|
12
|
-
import "../chunk-
|
|
13
|
-
import "../chunk-
|
|
14
|
-
import "../chunk-
|
|
12
|
+
import "../chunk-UAAQVIZQ.js";
|
|
13
|
+
import "../chunk-VA23PQTA.js";
|
|
14
|
+
import "../chunk-ECP5J27K.js";
|
|
15
15
|
import "../chunk-LYH3EKKQ.js";
|
|
16
16
|
import "../chunk-XJBWFDDE.js";
|
|
17
17
|
import "../chunk-N5JDL4VE.js";
|
package/dist/data-grid/index.cjs
CHANGED
|
@@ -1,22 +1,22 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
|
|
2
2
|
|
|
3
|
-
var
|
|
4
|
-
require('../chunk-
|
|
3
|
+
var _chunk7OWJQHHMcjs = require('../chunk-7OWJQHHM.cjs');
|
|
4
|
+
require('../chunk-6Z42NMP4.cjs');
|
|
5
5
|
require('../chunk-E7BFBU6K.cjs');
|
|
6
|
-
require('../chunk-
|
|
7
|
-
require('../chunk-
|
|
6
|
+
require('../chunk-S3IZPWYP.cjs');
|
|
7
|
+
require('../chunk-EAUTJAKV.cjs');
|
|
8
8
|
require('../chunk-SJDTFR3I.cjs');
|
|
9
9
|
require('../chunk-I44YNYI6.cjs');
|
|
10
|
-
require('../chunk-
|
|
11
|
-
require('../chunk-
|
|
10
|
+
require('../chunk-QKCYXFET.cjs');
|
|
11
|
+
require('../chunk-VY7DTPO3.cjs');
|
|
12
12
|
require('../chunk-XJAXKENE.cjs');
|
|
13
13
|
require('../chunk-YJNQLH2L.cjs');
|
|
14
|
-
require('../chunk-
|
|
14
|
+
require('../chunk-EM4WYYFN.cjs');
|
|
15
15
|
require('../chunk-KF2OGUAD.cjs');
|
|
16
16
|
require('../chunk-TROYIUDH.cjs');
|
|
17
17
|
require('../chunk-KV3V2CPH.cjs');
|
|
18
|
-
require('../chunk-
|
|
19
|
-
require('../chunk-
|
|
18
|
+
require('../chunk-USGEUG2O.cjs');
|
|
19
|
+
require('../chunk-CPRNLW4M.cjs');
|
|
20
20
|
require('../chunk-KVIL4EP4.cjs');
|
|
21
21
|
require('../chunk-3ETWFS2N.cjs');
|
|
22
22
|
require('../chunk-EACNRR3C.cjs');
|
|
@@ -30,5 +30,5 @@ require('../chunk-75Q5OS7L.cjs');
|
|
|
30
30
|
require('../chunk-DZUJEN5N.cjs');
|
|
31
31
|
|
|
32
32
|
|
|
33
|
-
exports.DataGrid =
|
|
33
|
+
exports.DataGrid = _chunk7OWJQHHMcjs.DataGrid;
|
|
34
34
|
//# sourceMappingURL=index.cjs.map
|
package/dist/data-grid/index.js
CHANGED
|
@@ -1,22 +1,22 @@
|
|
|
1
1
|
import {
|
|
2
2
|
DataGrid
|
|
3
|
-
} from "../chunk-
|
|
4
|
-
import "../chunk-
|
|
3
|
+
} from "../chunk-KUP3CP24.js";
|
|
4
|
+
import "../chunk-YAZSZFLB.js";
|
|
5
5
|
import "../chunk-BHZ76J2K.js";
|
|
6
|
-
import "../chunk-
|
|
7
|
-
import "../chunk-
|
|
6
|
+
import "../chunk-LPSRS5GI.js";
|
|
7
|
+
import "../chunk-GVLQQGI3.js";
|
|
8
8
|
import "../chunk-KGXGTWUL.js";
|
|
9
9
|
import "../chunk-6NZXWKUE.js";
|
|
10
|
-
import "../chunk-
|
|
11
|
-
import "../chunk-
|
|
10
|
+
import "../chunk-BMRZHFDP.js";
|
|
11
|
+
import "../chunk-5TRO6CYR.js";
|
|
12
12
|
import "../chunk-DI2VKKLW.js";
|
|
13
13
|
import "../chunk-DGXHR6FV.js";
|
|
14
|
-
import "../chunk-
|
|
14
|
+
import "../chunk-EUQQG5WH.js";
|
|
15
15
|
import "../chunk-GE3QCXT7.js";
|
|
16
16
|
import "../chunk-6ZAT5CGB.js";
|
|
17
17
|
import "../chunk-3TUCQAYL.js";
|
|
18
|
-
import "../chunk-
|
|
19
|
-
import "../chunk-
|
|
18
|
+
import "../chunk-VA23PQTA.js";
|
|
19
|
+
import "../chunk-ECP5J27K.js";
|
|
20
20
|
import "../chunk-LYH3EKKQ.js";
|
|
21
21
|
import "../chunk-3SKI6FXB.js";
|
|
22
22
|
import "../chunk-N5JDL4VE.js";
|
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
|
|
3
3
|
|
|
4
4
|
|
|
5
|
-
var
|
|
6
|
-
require('../chunk-
|
|
5
|
+
var _chunkQKCYXFETcjs = require('../chunk-QKCYXFET.cjs');
|
|
6
|
+
require('../chunk-VY7DTPO3.cjs');
|
|
7
7
|
require('../chunk-KF2OGUAD.cjs');
|
|
8
|
-
require('../chunk-
|
|
8
|
+
require('../chunk-CPRNLW4M.cjs');
|
|
9
9
|
require('../chunk-NSA7ASZ7.cjs');
|
|
10
10
|
require('../chunk-I6UOIS4J.cjs');
|
|
11
11
|
require('../chunk-RZMQCVAS.cjs');
|
|
@@ -18,5 +18,5 @@ require('../chunk-DZUJEN5N.cjs');
|
|
|
18
18
|
|
|
19
19
|
|
|
20
20
|
|
|
21
|
-
exports.Calendar =
|
|
21
|
+
exports.Calendar = _chunkQKCYXFETcjs.Calendar; exports.DatePicker = _chunkQKCYXFETcjs.DatePicker; exports.TimeInput = _chunkQKCYXFETcjs.TimeInput;
|
|
22
22
|
//# sourceMappingURL=index.cjs.map
|
|
@@ -48,6 +48,20 @@ interface DatePickerProps<T extends DateSelectionMode = 'single'> {
|
|
|
48
48
|
value?: DateTimeValue<T>;
|
|
49
49
|
onChange?: (value: DateTimeValue<T>) => void;
|
|
50
50
|
granularity?: DateGranularity;
|
|
51
|
+
/**
|
|
52
|
+
* When true, the panel gains a footer with Cancel and Apply actions and
|
|
53
|
+
* commits become deferred: calendar clicks and `TimeInput` edits update a
|
|
54
|
+
* pending selection, `onChange` is only called once Apply is pressed, and
|
|
55
|
+
* the panel no longer closes on selection. Cancel, Escape and
|
|
56
|
+
* outside-click all discard the pending selection. The clear (X)
|
|
57
|
+
* affordance on the field discards the pending selection while the panel
|
|
58
|
+
* is open - Apply still commits it - and clears the committed value
|
|
59
|
+
* directly when the panel is closed, since there is no draft to discard.
|
|
60
|
+
*
|
|
61
|
+
* Default: false - every selection commits to `onChange` immediately and
|
|
62
|
+
* closes the panel exactly as before.
|
|
63
|
+
*/
|
|
64
|
+
showActions?: boolean;
|
|
51
65
|
time?: TimeConfig;
|
|
52
66
|
calendar?: CalendarConfig;
|
|
53
67
|
format?: DateFormatConfig;
|
|
@@ -98,7 +112,7 @@ interface CalendarProps {
|
|
|
98
112
|
}
|
|
99
113
|
|
|
100
114
|
declare const DatePicker: {
|
|
101
|
-
<T extends DateSelectionMode = "single">({ mode, value, onChange, granularity, time, calendar, format, label, placeholder, disabled, required, name, id, inputProps, minDate, maxDate, disabledDates, disabledDaysOfWeek, className, fullWidth, minWidth, maxWidth, minHeight, maxHeight, autoWidth, }: DatePickerProps<T>): React__default.JSX.Element;
|
|
115
|
+
<T extends DateSelectionMode = "single">({ mode, value, onChange, granularity, showActions, time, calendar, format, label, placeholder, disabled, required, name, id, inputProps, minDate, maxDate, disabledDates, disabledDaysOfWeek, className, fullWidth, minWidth, maxWidth, minHeight, maxHeight, autoWidth, }: DatePickerProps<T>): React__default.JSX.Element;
|
|
102
116
|
displayName: string;
|
|
103
117
|
};
|
|
104
118
|
|
|
@@ -48,6 +48,20 @@ interface DatePickerProps<T extends DateSelectionMode = 'single'> {
|
|
|
48
48
|
value?: DateTimeValue<T>;
|
|
49
49
|
onChange?: (value: DateTimeValue<T>) => void;
|
|
50
50
|
granularity?: DateGranularity;
|
|
51
|
+
/**
|
|
52
|
+
* When true, the panel gains a footer with Cancel and Apply actions and
|
|
53
|
+
* commits become deferred: calendar clicks and `TimeInput` edits update a
|
|
54
|
+
* pending selection, `onChange` is only called once Apply is pressed, and
|
|
55
|
+
* the panel no longer closes on selection. Cancel, Escape and
|
|
56
|
+
* outside-click all discard the pending selection. The clear (X)
|
|
57
|
+
* affordance on the field discards the pending selection while the panel
|
|
58
|
+
* is open - Apply still commits it - and clears the committed value
|
|
59
|
+
* directly when the panel is closed, since there is no draft to discard.
|
|
60
|
+
*
|
|
61
|
+
* Default: false - every selection commits to `onChange` immediately and
|
|
62
|
+
* closes the panel exactly as before.
|
|
63
|
+
*/
|
|
64
|
+
showActions?: boolean;
|
|
51
65
|
time?: TimeConfig;
|
|
52
66
|
calendar?: CalendarConfig;
|
|
53
67
|
format?: DateFormatConfig;
|
|
@@ -98,7 +112,7 @@ interface CalendarProps {
|
|
|
98
112
|
}
|
|
99
113
|
|
|
100
114
|
declare const DatePicker: {
|
|
101
|
-
<T extends DateSelectionMode = "single">({ mode, value, onChange, granularity, time, calendar, format, label, placeholder, disabled, required, name, id, inputProps, minDate, maxDate, disabledDates, disabledDaysOfWeek, className, fullWidth, minWidth, maxWidth, minHeight, maxHeight, autoWidth, }: DatePickerProps<T>): React__default.JSX.Element;
|
|
115
|
+
<T extends DateSelectionMode = "single">({ mode, value, onChange, granularity, showActions, time, calendar, format, label, placeholder, disabled, required, name, id, inputProps, minDate, maxDate, disabledDates, disabledDaysOfWeek, className, fullWidth, minWidth, maxWidth, minHeight, maxHeight, autoWidth, }: DatePickerProps<T>): React__default.JSX.Element;
|
|
102
116
|
displayName: string;
|
|
103
117
|
};
|
|
104
118
|
|
|
@@ -2,10 +2,10 @@ import {
|
|
|
2
2
|
Calendar,
|
|
3
3
|
DatePicker,
|
|
4
4
|
TimeInput
|
|
5
|
-
} from "../chunk-
|
|
6
|
-
import "../chunk-
|
|
5
|
+
} from "../chunk-BMRZHFDP.js";
|
|
6
|
+
import "../chunk-5TRO6CYR.js";
|
|
7
7
|
import "../chunk-GE3QCXT7.js";
|
|
8
|
-
import "../chunk-
|
|
8
|
+
import "../chunk-ECP5J27K.js";
|
|
9
9
|
import "../chunk-GHUEVNNU.js";
|
|
10
10
|
import "../chunk-66R54X6R.js";
|
|
11
11
|
import "../chunk-BUSMGQJ4.js";
|
package/dist/dropdown/index.cjs
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
|
|
4
4
|
|
|
5
5
|
|
|
6
|
-
var
|
|
6
|
+
var _chunkCPRNLW4Mcjs = require('../chunk-CPRNLW4M.cjs');
|
|
7
7
|
require('../chunk-R5WI5IGR.cjs');
|
|
8
8
|
require('../chunk-CJT7L764.cjs');
|
|
9
9
|
require('../chunk-DZUJEN5N.cjs');
|
|
@@ -11,5 +11,5 @@ require('../chunk-DZUJEN5N.cjs');
|
|
|
11
11
|
|
|
12
12
|
|
|
13
13
|
|
|
14
|
-
exports.Dropdown =
|
|
14
|
+
exports.Dropdown = _chunkCPRNLW4Mcjs.Dropdown; exports.DropdownProvider = _chunkCPRNLW4Mcjs.DropdownProvider; exports.useDropdownContext = _chunkCPRNLW4Mcjs.useDropdownContext;
|
|
15
15
|
//# sourceMappingURL=index.cjs.map
|
|
@@ -65,8 +65,18 @@ interface DropdownProps {
|
|
|
65
65
|
dropdownLevel?: number;
|
|
66
66
|
dropdownGroup?: string;
|
|
67
67
|
minWidth?: number | string;
|
|
68
|
+
/**
|
|
69
|
+
* Upper bound on the panel's width. The panel is always bounded by the
|
|
70
|
+
* viewport (minus the positioning gutter); `'none'` and `'auto'` remove only
|
|
71
|
+
* this consumer cap, not the viewport bound.
|
|
72
|
+
*/
|
|
68
73
|
maxWidth?: number | string;
|
|
69
74
|
minHeight?: number | string;
|
|
75
|
+
/**
|
|
76
|
+
* Upper bound on the panel's height, enabling vertical scrolling. The panel
|
|
77
|
+
* is always bounded by the viewport (minus the positioning gutter); `'none'`
|
|
78
|
+
* and `'auto'` remove only this consumer cap, not the viewport bound.
|
|
79
|
+
*/
|
|
70
80
|
maxHeight?: number | string;
|
|
71
81
|
autoWidth?: boolean;
|
|
72
82
|
fullWidth?: boolean;
|
package/dist/dropdown/index.d.ts
CHANGED
|
@@ -65,8 +65,18 @@ interface DropdownProps {
|
|
|
65
65
|
dropdownLevel?: number;
|
|
66
66
|
dropdownGroup?: string;
|
|
67
67
|
minWidth?: number | string;
|
|
68
|
+
/**
|
|
69
|
+
* Upper bound on the panel's width. The panel is always bounded by the
|
|
70
|
+
* viewport (minus the positioning gutter); `'none'` and `'auto'` remove only
|
|
71
|
+
* this consumer cap, not the viewport bound.
|
|
72
|
+
*/
|
|
68
73
|
maxWidth?: number | string;
|
|
69
74
|
minHeight?: number | string;
|
|
75
|
+
/**
|
|
76
|
+
* Upper bound on the panel's height, enabling vertical scrolling. The panel
|
|
77
|
+
* is always bounded by the viewport (minus the positioning gutter); `'none'`
|
|
78
|
+
* and `'auto'` remove only this consumer cap, not the viewport bound.
|
|
79
|
+
*/
|
|
70
80
|
maxHeight?: number | string;
|
|
71
81
|
autoWidth?: boolean;
|
|
72
82
|
fullWidth?: boolean;
|