@flipdish/ui-library 0.41.0 → 0.41.2
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/components/molecules/Select/components/MultiSelect.cjs +10 -36
- package/dist/components/molecules/Select/components/MultiSelect.cjs.map +1 -1
- package/dist/components/molecules/Select/components/MultiSelect.d.ts.map +1 -1
- package/dist/components/molecules/Select/components/MultiSelect.js +11 -37
- package/dist/components/molecules/Select/components/MultiSelect.js.map +1 -1
- package/dist/components/molecules/Select/hooks/useMultiSelectSelection.cjs +43 -0
- package/dist/components/molecules/Select/hooks/useMultiSelectSelection.cjs.map +1 -0
- package/dist/components/molecules/Select/hooks/useMultiSelectSelection.d.ts +35 -0
- package/dist/components/molecules/Select/hooks/useMultiSelectSelection.d.ts.map +1 -0
- package/dist/components/molecules/Select/hooks/useMultiSelectSelection.js +41 -0
- package/dist/components/molecules/Select/hooks/useMultiSelectSelection.js.map +1 -0
- package/dist/components/molecules/Select/multiSelect.utils.cjs +34 -0
- package/dist/components/molecules/Select/multiSelect.utils.cjs.map +1 -0
- package/dist/components/molecules/Select/multiSelect.utils.d.ts +23 -0
- package/dist/components/molecules/Select/multiSelect.utils.d.ts.map +1 -0
- package/dist/components/molecules/Select/multiSelect.utils.js +31 -0
- package/dist/components/molecules/Select/multiSelect.utils.js.map +1 -0
- package/dist/components/organisms/ColorPicker/colorPicker.utils.cjs +45 -0
- package/dist/components/organisms/ColorPicker/colorPicker.utils.cjs.map +1 -1
- package/dist/components/organisms/ColorPicker/colorPicker.utils.d.ts +29 -0
- package/dist/components/organisms/ColorPicker/colorPicker.utils.d.ts.map +1 -1
- package/dist/components/organisms/ColorPicker/colorPicker.utils.js +43 -1
- package/dist/components/organisms/ColorPicker/colorPicker.utils.js.map +1 -1
- package/dist/components/organisms/ColorPicker/hooks/useCssColorField.cjs +38 -0
- package/dist/components/organisms/ColorPicker/hooks/useCssColorField.cjs.map +1 -0
- package/dist/components/organisms/ColorPicker/hooks/useCssColorField.d.ts +28 -0
- package/dist/components/organisms/ColorPicker/hooks/useCssColorField.d.ts.map +1 -0
- package/dist/components/organisms/ColorPicker/hooks/useCssColorField.js +36 -0
- package/dist/components/organisms/ColorPicker/hooks/useCssColorField.js.map +1 -0
- package/dist/components/organisms/ColorPicker/index.cjs +15 -38
- package/dist/components/organisms/ColorPicker/index.cjs.map +1 -1
- package/dist/components/organisms/ColorPicker/index.d.ts.map +1 -1
- package/dist/components/organisms/ColorPicker/index.js +16 -39
- package/dist/components/organisms/ColorPicker/index.js.map +1 -1
- package/dist/components/organisms/TextEditor/components/TextEditorExtensions.cjs +4 -44
- package/dist/components/organisms/TextEditor/components/TextEditorExtensions.cjs.map +1 -1
- package/dist/components/organisms/TextEditor/components/TextEditorExtensions.d.ts.map +1 -1
- package/dist/components/organisms/TextEditor/components/TextEditorExtensions.js +5 -45
- package/dist/components/organisms/TextEditor/components/TextEditorExtensions.js.map +1 -1
- package/dist/components/organisms/TextEditor/index.cjs +2 -23
- package/dist/components/organisms/TextEditor/index.cjs.map +1 -1
- package/dist/components/organisms/TextEditor/index.d.ts.map +1 -1
- package/dist/components/organisms/TextEditor/index.js +3 -24
- package/dist/components/organisms/TextEditor/index.js.map +1 -1
- package/dist/components/organisms/TextEditor/textEditor.utils.cjs +40 -0
- package/dist/components/organisms/TextEditor/textEditor.utils.cjs.map +1 -1
- package/dist/components/organisms/TextEditor/textEditor.utils.d.ts +27 -0
- package/dist/components/organisms/TextEditor/textEditor.utils.d.ts.map +1 -1
- package/dist/components/organisms/TextEditor/textEditor.utils.js +39 -1
- package/dist/components/organisms/TextEditor/textEditor.utils.js.map +1 -1
- package/package.json +1 -1
|
@@ -10,7 +10,7 @@ var testIdUtils = require('@flipdish/ui-library/utilities/testIdUtils');
|
|
|
10
10
|
var React = require('react');
|
|
11
11
|
var reactAriaComponents = require('react-aria-components');
|
|
12
12
|
var ScrollClosingPopover = require('../../../__internal__/popover/ScrollClosingPopover.cjs');
|
|
13
|
-
var
|
|
13
|
+
var useMultiSelectSelection = require('../hooks/useMultiSelectSelection.cjs');
|
|
14
14
|
var SelectItem = require('./SelectItem.cjs');
|
|
15
15
|
var SelectShared = require('./SelectShared.cjs');
|
|
16
16
|
|
|
@@ -46,41 +46,15 @@ const MultiSelectRoot = ({ items, children, size = 'md', selectedKeys, defaultSe
|
|
|
46
46
|
const rect = triggerRef.current.getBoundingClientRect();
|
|
47
47
|
setPopoverWidth(`${rect.width}px`);
|
|
48
48
|
}, []);
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
onSelectionChange?.(keys);
|
|
59
|
-
};
|
|
60
|
-
const handleReset = () => {
|
|
61
|
-
if (!isControlled)
|
|
62
|
-
setInternalSelectedKeys(new Set());
|
|
63
|
-
onReset?.();
|
|
64
|
-
};
|
|
65
|
-
// Every selectable key — from `items` when data-driven, else from the ids of the
|
|
66
|
-
// static `MultiSelect.Item` children, so "Select all" works in both modes.
|
|
67
|
-
const getSelectableKeys = () => {
|
|
68
|
-
if (items)
|
|
69
|
-
return new Set(items.map((item) => item.id));
|
|
70
|
-
if (typeof children === 'function')
|
|
71
|
-
return new Set();
|
|
72
|
-
return new Set(children_utils.flattenChildren(children)
|
|
73
|
-
.filter(React.isValidElement)
|
|
74
|
-
.map((child) => child.props.id)
|
|
75
|
-
.filter((id) => id != null));
|
|
76
|
-
};
|
|
77
|
-
const handleSelectAll = () => {
|
|
78
|
-
if (!isControlled)
|
|
79
|
-
setInternalSelectedKeys(getSelectableKeys());
|
|
80
|
-
onSelectAll?.();
|
|
81
|
-
};
|
|
82
|
-
const selectedCount = currentSelectedKeys instanceof Set ? currentSelectedKeys.size : currentSelectedKeys === 'all' ? (items?.length ?? 0) : 0;
|
|
83
|
-
const hasSelection = selectedCount > 0;
|
|
49
|
+
const { currentSelectedKeys, selectedCount, hasSelection, handleSelectionChange, handleReset, handleSelectAll } = useMultiSelectSelection.useMultiSelectSelection({
|
|
50
|
+
selectedKeys,
|
|
51
|
+
defaultSelectedKeys,
|
|
52
|
+
onSelectionChange,
|
|
53
|
+
onReset,
|
|
54
|
+
onSelectAll,
|
|
55
|
+
items,
|
|
56
|
+
children,
|
|
57
|
+
});
|
|
84
58
|
const handleClearSearch = React.useCallback(() => {
|
|
85
59
|
setSearchValue('');
|
|
86
60
|
}, []);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MultiSelect.cjs","sources":["../../../../../src/components/molecules/Select/components/MultiSelect.tsx"],"sourcesContent":[null],"names":["_jsxs","cx","_jsx","Button","FeaturedIcon","SearchLg","useFilter","useState","useResolvedTestId","useRef","useCallback","
|
|
1
|
+
{"version":3,"file":"MultiSelect.cjs","sources":["../../../../../src/components/molecules/Select/components/MultiSelect.tsx"],"sourcesContent":[null],"names":["_jsxs","cx","_jsx","Button","FeaturedIcon","SearchLg","useFilter","useState","useResolvedTestId","useRef","useCallback","useMultiSelectSelection","SelectContext","Label","AriaDialogTrigger","AriaButton","joinTestId","sizes","ChevronDown","ScrollClosingPopover","AriaDialog","AriaAutocomplete","AriaSearchField","AriaInput","AriaListBox","HintText","SelectItem"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MultiSelect.d.ts","sourceRoot":"","sources":["../../../../../src/components/molecules/Select/components/MultiSelect.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAEtD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAavD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,KAAK,WAAW,EAAiB,KAAK,cAAc,EAAS,MAAM,gBAAgB,CAAC;AAoB7F,MAAM,WAAW,sBAAsB;IACrC;;;OAGG;IACH,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IAC1B,+DAA+D;IAC/D,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,oEAAoE;IACpE,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IACzB,6BAA6B;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,QAAA,MAAM,iBAAiB,GAAI,2CAAkD,sBAAsB,gCAalG,CAAC;AAEF,MAAM,WAAW,0BAA0B;IACzC;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,sEAAsE;IACtE,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;IAC3B,6BAA6B;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,QAAA,MAAM,qBAAqB,GAAI,mDAK5B,0BAA0B,gCAe5B,CAAC;AAEF,MAAM,WAAW,gBAAiB,SAAQ,aAAa,CAAC,cAAc,CAAC,EAAE,WAAW;IAClF,2CAA2C;IAC3C,KAAK,CAAC,EAAE,cAAc,EAAE,CAAC;IACzB,4CAA4C;IAC5C,QAAQ,EAAE,SAAS,GAAG,CAAC,CAAC,IAAI,EAAE,cAAc,KAAK,SAAS,CAAC,CAAC;IAC5D,gDAAgD;IAChD,YAAY,CAAC,EAAE,SAAS,CAAC;IACzB,gDAAgD;IAChD,mBAAmB,CAAC,EAAE,SAAS,CAAC;IAChC,yDAAyD;IACzD,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,KAAK,IAAI,CAAC;IAC9C,sCAAsC;IACtC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,sCAAsC;IACtC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,iDAAiD;IACjD,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,gFAAgF;IAChF,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,6CAA6C;IAC7C,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,kDAAkD;IAClD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,+DAA+D;IAC/D,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,oEAAoE;IACpE,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IACzB;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,2DAA2D;IAC3D,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,iEAAiE;IACjE,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,mEAAmE;IACnE,sBAAsB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,SAAS,CAAC;IACtD,2EAA2E;IAC3E,cAAc,CAAC,EAAE,SAAS,CAAC;CAC5B;AAED,QAAA,MAAM,eAAe,GAAI,mYA4BtB,gBAAgB,
|
|
1
|
+
{"version":3,"file":"MultiSelect.d.ts","sourceRoot":"","sources":["../../../../../src/components/molecules/Select/components/MultiSelect.tsx"],"names":[],"mappings":"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"}
|
|
@@ -5,10 +5,10 @@ import { FeaturedIcon } from '@flipdish/ui-library/components/atoms/FeaturedIcon
|
|
|
5
5
|
import { Label, HintText } from '@flipdish/ui-library/components/atoms/Input';
|
|
6
6
|
import { cx } from '@flipdish/ui-library/utilities/cx';
|
|
7
7
|
import { useResolvedTestId, joinTestId } from '@flipdish/ui-library/utilities/testIdUtils';
|
|
8
|
-
import { useState, useRef, useCallback
|
|
8
|
+
import { useState, useRef, useCallback } from 'react';
|
|
9
9
|
import { useFilter, DialogTrigger, Button, Dialog, Autocomplete, SearchField, Input, ListBox } from 'react-aria-components';
|
|
10
10
|
import { ScrollClosingPopover } from '../../../__internal__/popover/ScrollClosingPopover.js';
|
|
11
|
-
import {
|
|
11
|
+
import { useMultiSelectSelection } from '../hooks/useMultiSelectSelection.js';
|
|
12
12
|
import { SelectItem } from './SelectItem.js';
|
|
13
13
|
import { SelectContext, sizes } from './SelectShared.js';
|
|
14
14
|
|
|
@@ -44,41 +44,15 @@ const MultiSelectRoot = ({ items, children, size = 'md', selectedKeys, defaultSe
|
|
|
44
44
|
const rect = triggerRef.current.getBoundingClientRect();
|
|
45
45
|
setPopoverWidth(`${rect.width}px`);
|
|
46
46
|
}, []);
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
onSelectionChange?.(keys);
|
|
57
|
-
};
|
|
58
|
-
const handleReset = () => {
|
|
59
|
-
if (!isControlled)
|
|
60
|
-
setInternalSelectedKeys(new Set());
|
|
61
|
-
onReset?.();
|
|
62
|
-
};
|
|
63
|
-
// Every selectable key — from `items` when data-driven, else from the ids of the
|
|
64
|
-
// static `MultiSelect.Item` children, so "Select all" works in both modes.
|
|
65
|
-
const getSelectableKeys = () => {
|
|
66
|
-
if (items)
|
|
67
|
-
return new Set(items.map((item) => item.id));
|
|
68
|
-
if (typeof children === 'function')
|
|
69
|
-
return new Set();
|
|
70
|
-
return new Set(flattenChildren(children)
|
|
71
|
-
.filter(isValidElement)
|
|
72
|
-
.map((child) => child.props.id)
|
|
73
|
-
.filter((id) => id != null));
|
|
74
|
-
};
|
|
75
|
-
const handleSelectAll = () => {
|
|
76
|
-
if (!isControlled)
|
|
77
|
-
setInternalSelectedKeys(getSelectableKeys());
|
|
78
|
-
onSelectAll?.();
|
|
79
|
-
};
|
|
80
|
-
const selectedCount = currentSelectedKeys instanceof Set ? currentSelectedKeys.size : currentSelectedKeys === 'all' ? (items?.length ?? 0) : 0;
|
|
81
|
-
const hasSelection = selectedCount > 0;
|
|
47
|
+
const { currentSelectedKeys, selectedCount, hasSelection, handleSelectionChange, handleReset, handleSelectAll } = useMultiSelectSelection({
|
|
48
|
+
selectedKeys,
|
|
49
|
+
defaultSelectedKeys,
|
|
50
|
+
onSelectionChange,
|
|
51
|
+
onReset,
|
|
52
|
+
onSelectAll,
|
|
53
|
+
items,
|
|
54
|
+
children,
|
|
55
|
+
});
|
|
82
56
|
const handleClearSearch = useCallback(() => {
|
|
83
57
|
setSearchValue('');
|
|
84
58
|
}, []);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MultiSelect.js","sources":["../../../../../src/components/molecules/Select/components/MultiSelect.tsx"],"sourcesContent":[null],"names":["_jsxs","_jsx","Button","AriaDialogTrigger","AriaButton","AriaDialog","AriaAutocomplete","AriaSearchField","AriaInput","AriaListBox"],"mappings":"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
|
|
1
|
+
{"version":3,"file":"MultiSelect.js","sources":["../../../../../src/components/molecules/Select/components/MultiSelect.tsx"],"sourcesContent":[null],"names":["_jsxs","_jsx","Button","AriaDialogTrigger","AriaButton","AriaDialog","AriaAutocomplete","AriaSearchField","AriaInput","AriaListBox"],"mappings":"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"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var React = require('react');
|
|
4
|
+
var multiSelect_utils = require('../multiSelect.utils.cjs');
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Tracks which MultiSelect options are chosen, internally when the parent does not pass
|
|
8
|
+
* `selectedKeys`, and reports the trigger count plus the footer handlers.
|
|
9
|
+
*
|
|
10
|
+
* @param options The selection props and the options the footer can select.
|
|
11
|
+
* @returns The selection to render, whether any option is chosen, how many, and the change, reset and select-all handlers.
|
|
12
|
+
*/
|
|
13
|
+
const useMultiSelectSelection = ({ selectedKeys, defaultSelectedKeys, onSelectionChange, onReset, onSelectAll, items, children, }) => {
|
|
14
|
+
// Controlled when `selectedKeys` is supplied; otherwise track selection internally
|
|
15
|
+
// (seeded from `defaultSelectedKeys`) so the trigger summary, footer, and item ticks
|
|
16
|
+
// all reflect choices even without the parent wiring `onSelectionChange`.
|
|
17
|
+
const isControlled = selectedKeys !== undefined;
|
|
18
|
+
const [internalSelectedKeys, setInternalSelectedKeys] = React.useState(defaultSelectedKeys ?? new Set());
|
|
19
|
+
const currentSelectedKeys = isControlled ? selectedKeys : internalSelectedKeys;
|
|
20
|
+
const handleSelectionChange = (keys) => {
|
|
21
|
+
if (!isControlled)
|
|
22
|
+
setInternalSelectedKeys(keys);
|
|
23
|
+
onSelectionChange?.(keys);
|
|
24
|
+
};
|
|
25
|
+
const handleReset = () => {
|
|
26
|
+
if (!isControlled)
|
|
27
|
+
setInternalSelectedKeys(new Set());
|
|
28
|
+
onReset?.();
|
|
29
|
+
};
|
|
30
|
+
const handleSelectAll = () => {
|
|
31
|
+
// Every selectable key — from `items` when data-driven, else from the ids of the
|
|
32
|
+
// static `MultiSelect.Item` children, so "Select all" works in both modes.
|
|
33
|
+
if (!isControlled)
|
|
34
|
+
setInternalSelectedKeys(multiSelect_utils.collectSelectableKeys(items ? items.map((item) => item.id) : undefined, children));
|
|
35
|
+
onSelectAll?.();
|
|
36
|
+
};
|
|
37
|
+
const selectedCount = multiSelect_utils.countSelectedKeys(currentSelectedKeys, items?.length ?? 0);
|
|
38
|
+
const hasSelection = selectedCount > 0;
|
|
39
|
+
return { currentSelectedKeys, selectedCount, hasSelection, handleSelectionChange, handleReset, handleSelectAll };
|
|
40
|
+
};
|
|
41
|
+
|
|
42
|
+
exports.useMultiSelectSelection = useMultiSelectSelection;
|
|
43
|
+
//# sourceMappingURL=useMultiSelectSelection.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useMultiSelectSelection.cjs","sources":["../../../../../src/components/molecules/Select/hooks/useMultiSelectSelection.ts"],"sourcesContent":[null],"names":["useState","collectSelectableKeys","countSelectedKeys"],"mappings":";;;;;AAsBA;;;;;;AAMG;MACU,uBAAuB,GAAG,CAAC,EACtC,YAAY,EACZ,mBAAmB,EACnB,iBAAiB,EACjB,OAAO,EACP,WAAW,EACX,KAAK,EACL,QAAQ,GACuB,KAAI;;;;AAInC,IAAA,MAAM,YAAY,GAAG,YAAY,KAAK,SAAS;AAC/C,IAAA,MAAM,CAAC,oBAAoB,EAAE,uBAAuB,CAAC,GAAGA,cAAQ,CAAuB,mBAAmB,IAAI,IAAI,GAAG,EAAE,CAAC;IACxH,MAAM,mBAAmB,GAAG,YAAY,GAAG,YAAY,GAAG,oBAAoB;AAE9E,IAAA,MAAM,qBAAqB,GAAG,CAAC,IAA0B,KAAI;AAC3D,QAAA,IAAI,CAAC,YAAY;YAAE,uBAAuB,CAAC,IAAI,CAAC;AAChD,QAAA,iBAAiB,GAAG,IAAI,CAAC;AAC3B,IAAA,CAAC;IAED,MAAM,WAAW,GAAG,MAAK;AACvB,QAAA,IAAI,CAAC,YAAY;AAAE,YAAA,uBAAuB,CAAC,IAAI,GAAG,EAAE,CAAC;QACrD,OAAO,IAAI;AACb,IAAA,CAAC;IAED,MAAM,eAAe,GAAG,MAAK;;;AAG3B,QAAA,IAAI,CAAC,YAAY;AAAE,YAAA,uBAAuB,CAACC,uCAAqB,CAAC,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,QAAQ,CAAC,CAAC;QAC7H,WAAW,IAAI;AACjB,IAAA,CAAC;AAED,IAAA,MAAM,aAAa,GAAGC,mCAAiB,CAAC,mBAAmB,EAAE,KAAK,EAAE,MAAM,IAAI,CAAC,CAAC;AAChF,IAAA,MAAM,YAAY,GAAG,aAAa,GAAG,CAAC;AAEtC,IAAA,OAAO,EAAE,mBAAmB,EAAE,aAAa,EAAE,YAAY,EAAE,qBAAqB,EAAE,WAAW,EAAE,eAAe,EAAE;AAClH;;"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { type MultiSelectChildren, type MultiSelectSelection } from '../multiSelect.utils';
|
|
2
|
+
export interface UseMultiSelectSelectionOptions {
|
|
3
|
+
/** Controlled selection. When omitted, the hook tracks selection itself. */
|
|
4
|
+
selectedKeys?: MultiSelectSelection;
|
|
5
|
+
/** Initial selection used only while uncontrolled. */
|
|
6
|
+
defaultSelectedKeys?: MultiSelectSelection;
|
|
7
|
+
/** Called with the next selection whenever the user changes it. */
|
|
8
|
+
onSelectionChange?: (keys: MultiSelectSelection) => void;
|
|
9
|
+
/** Called when Reset is pressed. Uncontrolled selection is cleared before this runs. */
|
|
10
|
+
onReset?: () => void;
|
|
11
|
+
/** Called when Select all is pressed. Uncontrolled selection is replaced before this runs. */
|
|
12
|
+
onSelectAll?: () => void;
|
|
13
|
+
/** Data-driven options. When set, Select all uses their ids and ignores static children. */
|
|
14
|
+
items?: readonly {
|
|
15
|
+
id: string | number;
|
|
16
|
+
}[];
|
|
17
|
+
/** Static item elements, or a render function when `items` is set. */
|
|
18
|
+
children?: MultiSelectChildren;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Tracks which MultiSelect options are chosen, internally when the parent does not pass
|
|
22
|
+
* `selectedKeys`, and reports the trigger count plus the footer handlers.
|
|
23
|
+
*
|
|
24
|
+
* @param options The selection props and the options the footer can select.
|
|
25
|
+
* @returns The selection to render, whether any option is chosen, how many, and the change, reset and select-all handlers.
|
|
26
|
+
*/
|
|
27
|
+
export declare const useMultiSelectSelection: ({ selectedKeys, defaultSelectedKeys, onSelectionChange, onReset, onSelectAll, items, children, }: UseMultiSelectSelectionOptions) => {
|
|
28
|
+
currentSelectedKeys: MultiSelectSelection;
|
|
29
|
+
selectedCount: number;
|
|
30
|
+
hasSelection: boolean;
|
|
31
|
+
handleSelectionChange: (keys: MultiSelectSelection) => void;
|
|
32
|
+
handleReset: () => void;
|
|
33
|
+
handleSelectAll: () => void;
|
|
34
|
+
};
|
|
35
|
+
//# sourceMappingURL=useMultiSelectSelection.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useMultiSelectSelection.d.ts","sourceRoot":"","sources":["../../../../../src/components/molecules/Select/hooks/useMultiSelectSelection.ts"],"names":[],"mappings":"AAGA,OAAO,EAA4C,KAAK,mBAAmB,EAAE,KAAK,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAErI,MAAM,WAAW,8BAA8B;IAC7C,4EAA4E;IAC5E,YAAY,CAAC,EAAE,oBAAoB,CAAC;IACpC,sDAAsD;IACtD,mBAAmB,CAAC,EAAE,oBAAoB,CAAC;IAC3C,mEAAmE;IACnE,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE,oBAAoB,KAAK,IAAI,CAAC;IACzD,wFAAwF;IACxF,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,8FAA8F;IAC9F,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IACzB,4FAA4F;IAC5F,KAAK,CAAC,EAAE,SAAS;QAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,EAAE,CAAC;IAC3C,sEAAsE;IACtE,QAAQ,CAAC,EAAE,mBAAmB,CAAC;CAChC;AAED;;;;;;GAMG;AACH,eAAO,MAAM,uBAAuB,GAAI,kGAQrC,8BAA8B;;;;kCAQM,oBAAoB;;;CAqB1D,CAAC"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { useState } from 'react';
|
|
2
|
+
import { countSelectedKeys, collectSelectableKeys } from '../multiSelect.utils.js';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Tracks which MultiSelect options are chosen, internally when the parent does not pass
|
|
6
|
+
* `selectedKeys`, and reports the trigger count plus the footer handlers.
|
|
7
|
+
*
|
|
8
|
+
* @param options The selection props and the options the footer can select.
|
|
9
|
+
* @returns The selection to render, whether any option is chosen, how many, and the change, reset and select-all handlers.
|
|
10
|
+
*/
|
|
11
|
+
const useMultiSelectSelection = ({ selectedKeys, defaultSelectedKeys, onSelectionChange, onReset, onSelectAll, items, children, }) => {
|
|
12
|
+
// Controlled when `selectedKeys` is supplied; otherwise track selection internally
|
|
13
|
+
// (seeded from `defaultSelectedKeys`) so the trigger summary, footer, and item ticks
|
|
14
|
+
// all reflect choices even without the parent wiring `onSelectionChange`.
|
|
15
|
+
const isControlled = selectedKeys !== undefined;
|
|
16
|
+
const [internalSelectedKeys, setInternalSelectedKeys] = useState(defaultSelectedKeys ?? new Set());
|
|
17
|
+
const currentSelectedKeys = isControlled ? selectedKeys : internalSelectedKeys;
|
|
18
|
+
const handleSelectionChange = (keys) => {
|
|
19
|
+
if (!isControlled)
|
|
20
|
+
setInternalSelectedKeys(keys);
|
|
21
|
+
onSelectionChange?.(keys);
|
|
22
|
+
};
|
|
23
|
+
const handleReset = () => {
|
|
24
|
+
if (!isControlled)
|
|
25
|
+
setInternalSelectedKeys(new Set());
|
|
26
|
+
onReset?.();
|
|
27
|
+
};
|
|
28
|
+
const handleSelectAll = () => {
|
|
29
|
+
// Every selectable key — from `items` when data-driven, else from the ids of the
|
|
30
|
+
// static `MultiSelect.Item` children, so "Select all" works in both modes.
|
|
31
|
+
if (!isControlled)
|
|
32
|
+
setInternalSelectedKeys(collectSelectableKeys(items ? items.map((item) => item.id) : undefined, children));
|
|
33
|
+
onSelectAll?.();
|
|
34
|
+
};
|
|
35
|
+
const selectedCount = countSelectedKeys(currentSelectedKeys, items?.length ?? 0);
|
|
36
|
+
const hasSelection = selectedCount > 0;
|
|
37
|
+
return { currentSelectedKeys, selectedCount, hasSelection, handleSelectionChange, handleReset, handleSelectAll };
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
export { useMultiSelectSelection };
|
|
41
|
+
//# sourceMappingURL=useMultiSelectSelection.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useMultiSelectSelection.js","sources":["../../../../../src/components/molecules/Select/hooks/useMultiSelectSelection.ts"],"sourcesContent":[null],"names":[],"mappings":";;;AAsBA;;;;;;AAMG;MACU,uBAAuB,GAAG,CAAC,EACtC,YAAY,EACZ,mBAAmB,EACnB,iBAAiB,EACjB,OAAO,EACP,WAAW,EACX,KAAK,EACL,QAAQ,GACuB,KAAI;;;;AAInC,IAAA,MAAM,YAAY,GAAG,YAAY,KAAK,SAAS;AAC/C,IAAA,MAAM,CAAC,oBAAoB,EAAE,uBAAuB,CAAC,GAAG,QAAQ,CAAuB,mBAAmB,IAAI,IAAI,GAAG,EAAE,CAAC;IACxH,MAAM,mBAAmB,GAAG,YAAY,GAAG,YAAY,GAAG,oBAAoB;AAE9E,IAAA,MAAM,qBAAqB,GAAG,CAAC,IAA0B,KAAI;AAC3D,QAAA,IAAI,CAAC,YAAY;YAAE,uBAAuB,CAAC,IAAI,CAAC;AAChD,QAAA,iBAAiB,GAAG,IAAI,CAAC;AAC3B,IAAA,CAAC;IAED,MAAM,WAAW,GAAG,MAAK;AACvB,QAAA,IAAI,CAAC,YAAY;AAAE,YAAA,uBAAuB,CAAC,IAAI,GAAG,EAAE,CAAC;QACrD,OAAO,IAAI;AACb,IAAA,CAAC;IAED,MAAM,eAAe,GAAG,MAAK;;;AAG3B,QAAA,IAAI,CAAC,YAAY;AAAE,YAAA,uBAAuB,CAAC,qBAAqB,CAAC,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,QAAQ,CAAC,CAAC;QAC7H,WAAW,IAAI;AACjB,IAAA,CAAC;AAED,IAAA,MAAM,aAAa,GAAG,iBAAiB,CAAC,mBAAmB,EAAE,KAAK,EAAE,MAAM,IAAI,CAAC,CAAC;AAChF,IAAA,MAAM,YAAY,GAAG,aAAa,GAAG,CAAC;AAEtC,IAAA,OAAO,EAAE,mBAAmB,EAAE,aAAa,EAAE,YAAY,EAAE,qBAAqB,EAAE,WAAW,EAAE,eAAe,EAAE;AAClH;;"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var React = require('react');
|
|
4
|
+
var children_utils = require('../../../utilities/__internal__/childrenUtils/children.utils.cjs');
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Counts how many options the trigger should report as selected.
|
|
8
|
+
*
|
|
9
|
+
* @param selection The current selection. A set counts its members; `'all'` counts the data-driven list.
|
|
10
|
+
* @param itemCount Length of the `items` array. Used only when `selection` is `'all'`, and zero when that list is absent.
|
|
11
|
+
* @returns The number shown in the trigger. Zero when the selection is neither a set nor `'all'`.
|
|
12
|
+
*/
|
|
13
|
+
const countSelectedKeys = (selection, itemCount) => selection instanceof Set ? selection.size : selection === 'all' ? itemCount : 0;
|
|
14
|
+
/**
|
|
15
|
+
* Collects the keys Select all applies.
|
|
16
|
+
*
|
|
17
|
+
* @param itemIds Ids from a data-driven `items` list. When present, even empty, static children are ignored.
|
|
18
|
+
* @param children Static `MultiSelect.Item` elements, or a render function that carries no ids.
|
|
19
|
+
* @returns Those ids. Empty when children is a render function and no items were passed.
|
|
20
|
+
*/
|
|
21
|
+
const collectSelectableKeys = (itemIds, children) => {
|
|
22
|
+
if (itemIds)
|
|
23
|
+
return new Set(itemIds);
|
|
24
|
+
if (typeof children === 'function')
|
|
25
|
+
return new Set();
|
|
26
|
+
return new Set(children_utils.flattenChildren(children)
|
|
27
|
+
.filter(React.isValidElement)
|
|
28
|
+
.map((child) => child.props.id)
|
|
29
|
+
.filter((id) => id != null));
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
exports.collectSelectableKeys = collectSelectableKeys;
|
|
33
|
+
exports.countSelectedKeys = countSelectedKeys;
|
|
34
|
+
//# sourceMappingURL=multiSelect.utils.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"multiSelect.utils.cjs","sources":["../../../../src/components/molecules/Select/multiSelect.utils.ts"],"sourcesContent":[null],"names":["flattenChildren","isValidElement"],"mappings":";;;;;AAUA;;;;;;AAMG;AACI,MAAM,iBAAiB,GAAG,CAAC,SAA+B,EAAE,SAAiB,KAClF,SAAS,YAAY,GAAG,GAAG,SAAS,CAAC,IAAI,GAAG,SAAS,KAAK,KAAK,GAAG,SAAS,GAAG;AAEhF;;;;;;AAMG;MACU,qBAAqB,GAAG,CAAC,OAAiD,EAAE,QAA6B,KAA0B;AAC9I,IAAA,IAAI,OAAO;AAAE,QAAA,OAAO,IAAI,GAAG,CAAC,OAAO,CAAC;IACpC,IAAI,OAAO,QAAQ,KAAK,UAAU;QAAE,OAAO,IAAI,GAAG,EAAE;AAEpD,IAAA,OAAO,IAAI,GAAG,CACZA,8BAAe,CAAC,QAAQ;SACrB,MAAM,CAACC,oBAAc;SACrB,GAAG,CAAC,CAAC,KAAK,KAAM,KAAK,CAAC,KAAkC,CAAC,EAAE;SAC3D,MAAM,CAAC,CAAC,EAAE,KAA4B,EAAE,IAAI,IAAI,CAAC,CACrD;AACH;;;"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { type ReactNode } from 'react';
|
|
2
|
+
import type { SelectItemType } from './components/SelectShared';
|
|
3
|
+
/** Explicit keys, or `'all'` when every option is selected. */
|
|
4
|
+
export type MultiSelectSelection = 'all' | Set<string | number>;
|
|
5
|
+
/** Static item elements, or a render function when the list is data-driven. */
|
|
6
|
+
export type MultiSelectChildren = ReactNode | ((item: SelectItemType) => ReactNode);
|
|
7
|
+
/**
|
|
8
|
+
* Counts how many options the trigger should report as selected.
|
|
9
|
+
*
|
|
10
|
+
* @param selection The current selection. A set counts its members; `'all'` counts the data-driven list.
|
|
11
|
+
* @param itemCount Length of the `items` array. Used only when `selection` is `'all'`, and zero when that list is absent.
|
|
12
|
+
* @returns The number shown in the trigger. Zero when the selection is neither a set nor `'all'`.
|
|
13
|
+
*/
|
|
14
|
+
export declare const countSelectedKeys: (selection: MultiSelectSelection, itemCount: number) => number;
|
|
15
|
+
/**
|
|
16
|
+
* Collects the keys Select all applies.
|
|
17
|
+
*
|
|
18
|
+
* @param itemIds Ids from a data-driven `items` list. When present, even empty, static children are ignored.
|
|
19
|
+
* @param children Static `MultiSelect.Item` elements, or a render function that carries no ids.
|
|
20
|
+
* @returns Those ids. Empty when children is a render function and no items were passed.
|
|
21
|
+
*/
|
|
22
|
+
export declare const collectSelectableKeys: (itemIds: readonly (string | number)[] | undefined, children: MultiSelectChildren) => Set<string | number>;
|
|
23
|
+
//# sourceMappingURL=multiSelect.utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"multiSelect.utils.d.ts","sourceRoot":"","sources":["../../../../src/components/molecules/Select/multiSelect.utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAEhE,+DAA+D;AAC/D,MAAM,MAAM,oBAAoB,GAAG,KAAK,GAAG,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC;AAEhE,+EAA+E;AAC/E,MAAM,MAAM,mBAAmB,GAAG,SAAS,GAAG,CAAC,CAAC,IAAI,EAAE,cAAc,KAAK,SAAS,CAAC,CAAC;AAEpF;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB,GAAI,WAAW,oBAAoB,EAAE,WAAW,MAAM,KAAG,MACN,CAAC;AAElF;;;;;;GAMG;AACH,eAAO,MAAM,qBAAqB,GAAI,SAAS,SAAS,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,GAAG,SAAS,EAAE,UAAU,mBAAmB,KAAG,GAAG,CAAC,MAAM,GAAG,MAAM,CAU3I,CAAC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { isValidElement } from 'react';
|
|
2
|
+
import { flattenChildren } from '../../../utilities/__internal__/childrenUtils/children.utils.js';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Counts how many options the trigger should report as selected.
|
|
6
|
+
*
|
|
7
|
+
* @param selection The current selection. A set counts its members; `'all'` counts the data-driven list.
|
|
8
|
+
* @param itemCount Length of the `items` array. Used only when `selection` is `'all'`, and zero when that list is absent.
|
|
9
|
+
* @returns The number shown in the trigger. Zero when the selection is neither a set nor `'all'`.
|
|
10
|
+
*/
|
|
11
|
+
const countSelectedKeys = (selection, itemCount) => selection instanceof Set ? selection.size : selection === 'all' ? itemCount : 0;
|
|
12
|
+
/**
|
|
13
|
+
* Collects the keys Select all applies.
|
|
14
|
+
*
|
|
15
|
+
* @param itemIds Ids from a data-driven `items` list. When present, even empty, static children are ignored.
|
|
16
|
+
* @param children Static `MultiSelect.Item` elements, or a render function that carries no ids.
|
|
17
|
+
* @returns Those ids. Empty when children is a render function and no items were passed.
|
|
18
|
+
*/
|
|
19
|
+
const collectSelectableKeys = (itemIds, children) => {
|
|
20
|
+
if (itemIds)
|
|
21
|
+
return new Set(itemIds);
|
|
22
|
+
if (typeof children === 'function')
|
|
23
|
+
return new Set();
|
|
24
|
+
return new Set(flattenChildren(children)
|
|
25
|
+
.filter(isValidElement)
|
|
26
|
+
.map((child) => child.props.id)
|
|
27
|
+
.filter((id) => id != null));
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
export { collectSelectableKeys, countSelectedKeys };
|
|
31
|
+
//# sourceMappingURL=multiSelect.utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"multiSelect.utils.js","sources":["../../../../src/components/molecules/Select/multiSelect.utils.ts"],"sourcesContent":[null],"names":[],"mappings":";;;AAUA;;;;;;AAMG;AACI,MAAM,iBAAiB,GAAG,CAAC,SAA+B,EAAE,SAAiB,KAClF,SAAS,YAAY,GAAG,GAAG,SAAS,CAAC,IAAI,GAAG,SAAS,KAAK,KAAK,GAAG,SAAS,GAAG;AAEhF;;;;;;AAMG;MACU,qBAAqB,GAAG,CAAC,OAAiD,EAAE,QAA6B,KAA0B;AAC9I,IAAA,IAAI,OAAO;AAAE,QAAA,OAAO,IAAI,GAAG,CAAC,OAAO,CAAC;IACpC,IAAI,OAAO,QAAQ,KAAK,UAAU;QAAE,OAAO,IAAI,GAAG,EAAE;AAEpD,IAAA,OAAO,IAAI,GAAG,CACZ,eAAe,CAAC,QAAQ;SACrB,MAAM,CAAC,cAAc;SACrB,GAAG,CAAC,CAAC,KAAK,KAAM,KAAK,CAAC,KAAkC,CAAC,EAAE;SAC3D,MAAM,CAAC,CAAC,EAAE,KAA4B,EAAE,IAAI,IAAI,CAAC,CACrD;AACH;;"}
|
|
@@ -3,6 +3,48 @@
|
|
|
3
3
|
var reactAriaComponents = require('react-aria-components');
|
|
4
4
|
|
|
5
5
|
const selectAllOnFocus = (e) => e.target.select();
|
|
6
|
+
/**
|
|
7
|
+
* CSS `rgba()` string for channel values already in the rgb space. Integer channels are
|
|
8
|
+
* rounded; alpha is rounded to two decimal places, matching the CSS colour field.
|
|
9
|
+
*
|
|
10
|
+
* @param red Red channel, 0–255.
|
|
11
|
+
* @param green Green channel, 0–255.
|
|
12
|
+
* @param blue Blue channel, 0–255.
|
|
13
|
+
* @param alpha Alpha channel, 0–1.
|
|
14
|
+
* @returns An `rgba(r, g, b, a)` string.
|
|
15
|
+
*/
|
|
16
|
+
const formatRgbaCss = (red, green, blue, alpha) => `rgba(${Math.round(red)}, ${Math.round(green)}, ${Math.round(blue)}, ${Math.round(alpha * 100) / 100})`;
|
|
17
|
+
/**
|
|
18
|
+
* Character range of the text inside the first parentheses, used to select an `rgba()` channel list on focus.
|
|
19
|
+
*
|
|
20
|
+
* @param value CSS colour text, typically `rgba(r, g, b, a)`.
|
|
21
|
+
* @returns Offsets passed to `setSelectionRange`, or `null` when there is no non-empty parenthesised span.
|
|
22
|
+
*/
|
|
23
|
+
const cssChannelSelection = (value) => {
|
|
24
|
+
const start = value.indexOf('(') + 1;
|
|
25
|
+
const end = value.indexOf(')');
|
|
26
|
+
if (start > 0 && end > start)
|
|
27
|
+
return { start, end };
|
|
28
|
+
return null;
|
|
29
|
+
};
|
|
30
|
+
/**
|
|
31
|
+
* Whether the first entry parses as a solid colour. An empty list, or a first entry that does
|
|
32
|
+
* not parse (a gradient), is not solid, so `SavedColors` renders plain swatches instead.
|
|
33
|
+
*
|
|
34
|
+
* @param colors Saved swatch strings, solid colours or gradients.
|
|
35
|
+
* @returns `true` only when `colors` is non-empty and its first entry parses.
|
|
36
|
+
*/
|
|
37
|
+
const isSolidColorList = (colors) => {
|
|
38
|
+
if (colors.length === 0)
|
|
39
|
+
return false;
|
|
40
|
+
try {
|
|
41
|
+
reactAriaComponents.parseColor(colors[0]);
|
|
42
|
+
return true;
|
|
43
|
+
}
|
|
44
|
+
catch {
|
|
45
|
+
return false;
|
|
46
|
+
}
|
|
47
|
+
};
|
|
6
48
|
/**
|
|
7
49
|
* Remove colors that normalize to the same value, keeping the first occurrence.
|
|
8
50
|
*
|
|
@@ -30,6 +72,9 @@ const dedupeColors = (colors) => {
|
|
|
30
72
|
});
|
|
31
73
|
};
|
|
32
74
|
|
|
75
|
+
exports.cssChannelSelection = cssChannelSelection;
|
|
33
76
|
exports.dedupeColors = dedupeColors;
|
|
77
|
+
exports.formatRgbaCss = formatRgbaCss;
|
|
78
|
+
exports.isSolidColorList = isSolidColorList;
|
|
34
79
|
exports.selectAllOnFocus = selectAllOnFocus;
|
|
35
80
|
//# sourceMappingURL=colorPicker.utils.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"colorPicker.utils.cjs","sources":["../../../../src/components/organisms/ColorPicker/colorPicker.utils.ts"],"sourcesContent":[null],"names":["parseColor"],"mappings":";;;;AAKO,MAAM,gBAAgB,GAA8C,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM;AAEjG;;;;;;;;;AASG;AACI,MAAM,YAAY,GAAG,CAAC,MAAgB,KAAc;AACzD,IAAA,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU;AAC9B,IAAA,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,KAAI;AACzB,QAAA,IAAI,GAAW;AACf,QAAA,IAAI;YACF,GAAG,GAAGA,8BAAU,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC;QACtC;AAAE,QAAA,MAAM;YACN,GAAG,GAAG,CAAC;QACT;AACA,QAAA,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;AAAE,YAAA,OAAO,KAAK;AAC/B,QAAA,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;AACb,QAAA,OAAO,IAAI;AACb,IAAA,CAAC,CAAC;AACJ
|
|
1
|
+
{"version":3,"file":"colorPicker.utils.cjs","sources":["../../../../src/components/organisms/ColorPicker/colorPicker.utils.ts"],"sourcesContent":[null],"names":["parseColor"],"mappings":";;;;AAKO,MAAM,gBAAgB,GAA8C,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM;AAEjG;;;;;;;;;AASG;MACU,aAAa,GAAG,CAAC,GAAW,EAAE,KAAa,EAAE,IAAY,EAAE,KAAa,KACnF,CAAA,KAAA,EAAQ,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA,EAAA,EAAK,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA,EAAA,EAAK,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA,EAAA,EAAK,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,CAAC,GAAG,GAAG,CAAA,CAAA;AAEtG;;;;;AAKG;AACI,MAAM,mBAAmB,GAAG,CAAC,KAAa,KAA2C;IAC1F,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC;IACpC,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;AAC9B,IAAA,IAAI,KAAK,GAAG,CAAC,IAAI,GAAG,GAAG,KAAK;AAAE,QAAA,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE;AACnD,IAAA,OAAO,IAAI;AACb;AAEA;;;;;;AAMG;AACI,MAAM,gBAAgB,GAAG,CAAC,MAAyB,KAAa;AACrE,IAAA,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;AAAE,QAAA,OAAO,KAAK;AACrC,IAAA,IAAI;AACF,QAAAA,8BAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AACrB,QAAA,OAAO,IAAI;IACb;AAAE,IAAA,MAAM;AACN,QAAA,OAAO,KAAK;IACd;AACF;AAEA;;;;;;;;;AASG;AACI,MAAM,YAAY,GAAG,CAAC,MAAgB,KAAc;AACzD,IAAA,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU;AAC9B,IAAA,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,KAAI;AACzB,QAAA,IAAI,GAAW;AACf,QAAA,IAAI;YACF,GAAG,GAAGA,8BAAU,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC;QACtC;AAAE,QAAA,MAAM;YACN,GAAG,GAAG,CAAC;QACT;AACA,QAAA,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;AAAE,YAAA,OAAO,KAAK;AAC/B,QAAA,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;AACb,QAAA,OAAO,IAAI;AACb,IAAA,CAAC,CAAC;AACJ;;;;;;"}
|
|
@@ -1,6 +1,35 @@
|
|
|
1
1
|
import type React from 'react';
|
|
2
2
|
export type ColorDisplayFormat = 'hex' | 'rgb' | 'css' | 'hsl' | 'hsb';
|
|
3
3
|
export declare const selectAllOnFocus: React.FocusEventHandler<HTMLInputElement>;
|
|
4
|
+
/**
|
|
5
|
+
* CSS `rgba()` string for channel values already in the rgb space. Integer channels are
|
|
6
|
+
* rounded; alpha is rounded to two decimal places, matching the CSS colour field.
|
|
7
|
+
*
|
|
8
|
+
* @param red Red channel, 0–255.
|
|
9
|
+
* @param green Green channel, 0–255.
|
|
10
|
+
* @param blue Blue channel, 0–255.
|
|
11
|
+
* @param alpha Alpha channel, 0–1.
|
|
12
|
+
* @returns An `rgba(r, g, b, a)` string.
|
|
13
|
+
*/
|
|
14
|
+
export declare const formatRgbaCss: (red: number, green: number, blue: number, alpha: number) => string;
|
|
15
|
+
/**
|
|
16
|
+
* Character range of the text inside the first parentheses, used to select an `rgba()` channel list on focus.
|
|
17
|
+
*
|
|
18
|
+
* @param value CSS colour text, typically `rgba(r, g, b, a)`.
|
|
19
|
+
* @returns Offsets passed to `setSelectionRange`, or `null` when there is no non-empty parenthesised span.
|
|
20
|
+
*/
|
|
21
|
+
export declare const cssChannelSelection: (value: string) => {
|
|
22
|
+
start: number;
|
|
23
|
+
end: number;
|
|
24
|
+
} | null;
|
|
25
|
+
/**
|
|
26
|
+
* Whether the first entry parses as a solid colour. An empty list, or a first entry that does
|
|
27
|
+
* not parse (a gradient), is not solid, so `SavedColors` renders plain swatches instead.
|
|
28
|
+
*
|
|
29
|
+
* @param colors Saved swatch strings, solid colours or gradients.
|
|
30
|
+
* @returns `true` only when `colors` is non-empty and its first entry parses.
|
|
31
|
+
*/
|
|
32
|
+
export declare const isSolidColorList: (colors: readonly string[]) => boolean;
|
|
4
33
|
/**
|
|
5
34
|
* Remove colors that normalize to the same value, keeping the first occurrence.
|
|
6
35
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"colorPicker.utils.d.ts","sourceRoot":"","sources":["../../../../src/components/organisms/ColorPicker/colorPicker.utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,MAAM,MAAM,kBAAkB,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC;AAEvE,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,iBAAiB,CAAC,gBAAgB,CAA4B,CAAC;AAEpG;;;;;;;;;GASG;AACH,eAAO,MAAM,YAAY,GAAI,QAAQ,MAAM,EAAE,KAAG,MAAM,EAarD,CAAC"}
|
|
1
|
+
{"version":3,"file":"colorPicker.utils.d.ts","sourceRoot":"","sources":["../../../../src/components/organisms/ColorPicker/colorPicker.utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,MAAM,MAAM,kBAAkB,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC;AAEvE,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,iBAAiB,CAAC,gBAAgB,CAA4B,CAAC;AAEpG;;;;;;;;;GASG;AACH,eAAO,MAAM,aAAa,GAAI,KAAK,MAAM,EAAE,OAAO,MAAM,EAAE,MAAM,MAAM,EAAE,OAAO,MAAM,KAAG,MACiB,CAAC;AAE1G;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,GAAI,OAAO,MAAM,KAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GAAG,IAKpF,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB,GAAI,QAAQ,SAAS,MAAM,EAAE,KAAG,OAQ5D,CAAC;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,YAAY,GAAI,QAAQ,MAAM,EAAE,KAAG,MAAM,EAarD,CAAC"}
|
|
@@ -1,6 +1,48 @@
|
|
|
1
1
|
import { parseColor } from 'react-aria-components';
|
|
2
2
|
|
|
3
3
|
const selectAllOnFocus = (e) => e.target.select();
|
|
4
|
+
/**
|
|
5
|
+
* CSS `rgba()` string for channel values already in the rgb space. Integer channels are
|
|
6
|
+
* rounded; alpha is rounded to two decimal places, matching the CSS colour field.
|
|
7
|
+
*
|
|
8
|
+
* @param red Red channel, 0–255.
|
|
9
|
+
* @param green Green channel, 0–255.
|
|
10
|
+
* @param blue Blue channel, 0–255.
|
|
11
|
+
* @param alpha Alpha channel, 0–1.
|
|
12
|
+
* @returns An `rgba(r, g, b, a)` string.
|
|
13
|
+
*/
|
|
14
|
+
const formatRgbaCss = (red, green, blue, alpha) => `rgba(${Math.round(red)}, ${Math.round(green)}, ${Math.round(blue)}, ${Math.round(alpha * 100) / 100})`;
|
|
15
|
+
/**
|
|
16
|
+
* Character range of the text inside the first parentheses, used to select an `rgba()` channel list on focus.
|
|
17
|
+
*
|
|
18
|
+
* @param value CSS colour text, typically `rgba(r, g, b, a)`.
|
|
19
|
+
* @returns Offsets passed to `setSelectionRange`, or `null` when there is no non-empty parenthesised span.
|
|
20
|
+
*/
|
|
21
|
+
const cssChannelSelection = (value) => {
|
|
22
|
+
const start = value.indexOf('(') + 1;
|
|
23
|
+
const end = value.indexOf(')');
|
|
24
|
+
if (start > 0 && end > start)
|
|
25
|
+
return { start, end };
|
|
26
|
+
return null;
|
|
27
|
+
};
|
|
28
|
+
/**
|
|
29
|
+
* Whether the first entry parses as a solid colour. An empty list, or a first entry that does
|
|
30
|
+
* not parse (a gradient), is not solid, so `SavedColors` renders plain swatches instead.
|
|
31
|
+
*
|
|
32
|
+
* @param colors Saved swatch strings, solid colours or gradients.
|
|
33
|
+
* @returns `true` only when `colors` is non-empty and its first entry parses.
|
|
34
|
+
*/
|
|
35
|
+
const isSolidColorList = (colors) => {
|
|
36
|
+
if (colors.length === 0)
|
|
37
|
+
return false;
|
|
38
|
+
try {
|
|
39
|
+
parseColor(colors[0]);
|
|
40
|
+
return true;
|
|
41
|
+
}
|
|
42
|
+
catch {
|
|
43
|
+
return false;
|
|
44
|
+
}
|
|
45
|
+
};
|
|
4
46
|
/**
|
|
5
47
|
* Remove colors that normalize to the same value, keeping the first occurrence.
|
|
6
48
|
*
|
|
@@ -28,5 +70,5 @@ const dedupeColors = (colors) => {
|
|
|
28
70
|
});
|
|
29
71
|
};
|
|
30
72
|
|
|
31
|
-
export { dedupeColors, selectAllOnFocus };
|
|
73
|
+
export { cssChannelSelection, dedupeColors, formatRgbaCss, isSolidColorList, selectAllOnFocus };
|
|
32
74
|
//# sourceMappingURL=colorPicker.utils.js.map
|