@vuu-ui/vuu-ui-controls 0.13.24 → 0.13.26
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/cjs/column-picker/ColumnSearch.js +24 -4
- package/cjs/column-picker/ColumnSearch.js.map +1 -1
- package/cjs/index.js +15 -9
- package/cjs/index.js.map +1 -1
- package/cjs/instrument-picker/TablePicker.css.js +1 -1
- package/cjs/prompt/Prompt.css.js +6 -0
- package/cjs/prompt/Prompt.css.js.map +1 -0
- package/cjs/prompt/Prompt.js +136 -0
- package/cjs/prompt/Prompt.js.map +1 -0
- package/cjs/time-input/MaskedInput.js +387 -0
- package/cjs/time-input/MaskedInput.js.map +1 -0
- package/cjs/time-input/TimeInput.css.js +6 -0
- package/cjs/time-input/TimeInput.css.js.map +1 -0
- package/cjs/time-input/TimeInput.js +46 -0
- package/cjs/time-input/TimeInput.js.map +1 -0
- package/cjs/time-input/useTimeInput.js +92 -0
- package/cjs/time-input/useTimeInput.js.map +1 -0
- package/cjs/vuu-input/VuuInput.js +6 -3
- package/cjs/vuu-input/VuuInput.js.map +1 -1
- package/cjs/vuu-time-picker/VuuTimePicker.css.js +6 -0
- package/cjs/vuu-time-picker/VuuTimePicker.css.js.map +1 -0
- package/cjs/vuu-time-picker/VuuTimePicker.js +33 -0
- package/cjs/vuu-time-picker/VuuTimePicker.js.map +1 -0
- package/cjs/vuu-typeahead-input/VuuTypeaheadInput.js +4 -2
- package/cjs/vuu-typeahead-input/VuuTypeaheadInput.js.map +1 -1
- package/cjs/vuu-typeahead-input/useVuuTypeaheadInput.js +10 -2
- package/cjs/vuu-typeahead-input/useVuuTypeaheadInput.js.map +1 -1
- package/esm/column-picker/ColumnSearch.js +25 -5
- package/esm/column-picker/ColumnSearch.js.map +1 -1
- package/esm/index.js +6 -3
- package/esm/index.js.map +1 -1
- package/esm/instrument-picker/TablePicker.css.js +1 -1
- package/esm/prompt/Prompt.css.js +4 -0
- package/esm/prompt/Prompt.css.js.map +1 -0
- package/esm/prompt/Prompt.js +134 -0
- package/esm/prompt/Prompt.js.map +1 -0
- package/esm/time-input/MaskedInput.js +385 -0
- package/esm/time-input/MaskedInput.js.map +1 -0
- package/esm/time-input/TimeInput.css.js +4 -0
- package/esm/time-input/TimeInput.css.js.map +1 -0
- package/esm/time-input/TimeInput.js +44 -0
- package/esm/time-input/TimeInput.js.map +1 -0
- package/esm/time-input/useTimeInput.js +90 -0
- package/esm/time-input/useTimeInput.js.map +1 -0
- package/esm/vuu-input/VuuInput.js +6 -3
- package/esm/vuu-input/VuuInput.js.map +1 -1
- package/esm/vuu-time-picker/VuuTimePicker.css.js +4 -0
- package/esm/vuu-time-picker/VuuTimePicker.css.js.map +1 -0
- package/esm/vuu-time-picker/VuuTimePicker.js +31 -0
- package/esm/vuu-time-picker/VuuTimePicker.js.map +1 -0
- package/esm/vuu-typeahead-input/VuuTypeaheadInput.js +4 -2
- package/esm/vuu-typeahead-input/VuuTypeaheadInput.js.map +1 -1
- package/esm/vuu-typeahead-input/useVuuTypeaheadInput.js +10 -2
- package/esm/vuu-typeahead-input/useVuuTypeaheadInput.js.map +1 -1
- package/package.json +10 -10
- package/types/column-picker/ColumnSearch.d.ts +5 -0
- package/types/index.d.ts +6 -5
- package/types/prompt/Prompt.d.ts +44 -0
- package/types/time-input/MaskedInput.d.ts +36 -0
- package/types/time-input/TimeInput.d.ts +5 -0
- package/types/time-input/useTimeInput.d.ts +19 -0
- package/types/vuu-input/VuuInput.d.ts +1 -0
- package/types/vuu-time-picker/TimeRangePicker.d.ts +0 -0
- package/types/vuu-time-picker/VuuTimePicker.d.ts +6 -0
- package/types/vuu-typeahead-input/VuuTypeaheadInput.d.ts +3 -2
|
@@ -7,6 +7,7 @@ var window = require('@salt-ds/window');
|
|
|
7
7
|
var cx = require('clsx');
|
|
8
8
|
var React = require('react');
|
|
9
9
|
var ColumnSearch$1 = require('./ColumnSearch.css.js');
|
|
10
|
+
var vuuUtils = require('@vuu-ui/vuu-utils');
|
|
10
11
|
|
|
11
12
|
const classBase = "vuuColumnSearch";
|
|
12
13
|
const searchIcon = /* @__PURE__ */ jsxRuntime.jsx("span", { "data-icon": "search" });
|
|
@@ -26,14 +27,33 @@ const ColumnSearch = React.forwardRef(
|
|
|
26
27
|
css: ColumnSearch$1,
|
|
27
28
|
window: targetWindow
|
|
28
29
|
});
|
|
30
|
+
const selectedValues = React.useRef([]);
|
|
29
31
|
const searchCallbackRef = React.useCallback((el) => {
|
|
30
32
|
setTimeout(() => {
|
|
31
33
|
el?.querySelector("input")?.focus();
|
|
32
34
|
}, 100);
|
|
33
35
|
}, []);
|
|
34
|
-
const handleChange = (
|
|
35
|
-
|
|
36
|
-
|
|
36
|
+
const handleChange = React.useCallback(
|
|
37
|
+
(e) => {
|
|
38
|
+
const input = e.target;
|
|
39
|
+
const { columnName } = vuuUtils.queryClosest(
|
|
40
|
+
input,
|
|
41
|
+
"[data-column-name]",
|
|
42
|
+
true
|
|
43
|
+
).dataset;
|
|
44
|
+
if (columnName) {
|
|
45
|
+
if (input.checked) {
|
|
46
|
+
selectedValues.current = selectedValues.current.concat(columnName);
|
|
47
|
+
} else {
|
|
48
|
+
selectedValues.current = selectedValues.current.filter(
|
|
49
|
+
(val) => val !== columnName
|
|
50
|
+
);
|
|
51
|
+
}
|
|
52
|
+
onSelectionChange?.(e, selectedValues.current);
|
|
53
|
+
}
|
|
54
|
+
},
|
|
55
|
+
[onSelectionChange]
|
|
56
|
+
);
|
|
37
57
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
38
58
|
"div",
|
|
39
59
|
{
|
|
@@ -48,7 +68,7 @@ const ColumnSearch = React.forwardRef(
|
|
|
48
68
|
ref: autoFocus ? searchCallbackRef : null
|
|
49
69
|
}
|
|
50
70
|
) }),
|
|
51
|
-
/* @__PURE__ */ jsxRuntime.jsx(core.ListBox, { children: columns.map((column) => /* @__PURE__ */ jsxRuntime.jsxs(core.Option, { value: column, children: [
|
|
71
|
+
/* @__PURE__ */ jsxRuntime.jsx(core.ListBox, { children: columns.map((column) => /* @__PURE__ */ jsxRuntime.jsxs(core.Option, { "data-column-name": column, value: column, children: [
|
|
52
72
|
/* @__PURE__ */ jsxRuntime.jsx(core.Checkbox, { onChange: handleChange }),
|
|
53
73
|
/* @__PURE__ */ jsxRuntime.jsx("span", { children: column })
|
|
54
74
|
] }, column)) })
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ColumnSearch.js","sources":["../../../../packages/vuu-ui-controls/src/column-picker/ColumnSearch.tsx"],"sourcesContent":["import { Checkbox, Input, ListBoxProps } from \"@salt-ds/core\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport cx from \"clsx\";\nimport {
|
|
1
|
+
{"version":3,"file":"ColumnSearch.js","sources":["../../../../packages/vuu-ui-controls/src/column-picker/ColumnSearch.tsx"],"sourcesContent":["import { Checkbox, Input, ListBoxProps } from \"@salt-ds/core\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport cx from \"clsx\";\nimport {\n FormEventHandler,\n HTMLAttributes,\n RefCallback,\n forwardRef,\n useCallback,\n useRef,\n} from \"react\";\nimport { ListBox, Option } from \"@salt-ds/core\";\n\nimport searchableListCss from \"./ColumnSearch.css\";\nimport { queryClosest } from \"@vuu-ui/vuu-utils\";\n\nconst classBase = \"vuuColumnSearch\";\n\nexport interface ColumnSearchProps\n extends HTMLAttributes<HTMLDivElement>,\n Pick<ListBoxProps, \"onSelectionChange\" | \"selected\"> {\n columns: string[];\n onReorderColumns: (columns: string[]) => void;\n}\n\nconst searchIcon = <span data-icon=\"search\" />;\n\n/**\n * @deprecated\n *\n * use ColumnList instead\n */\nexport const ColumnSearch = forwardRef<HTMLDivElement, ColumnSearchProps>(\n function ColumnSearch(\n {\n autoFocus = false,\n className,\n columns,\n onChange,\n onSelectionChange,\n selected,\n ...htmlAttributes\n },\n forwardedRef,\n ) {\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"vuu-column-picker\",\n css: searchableListCss,\n window: targetWindow,\n });\n\n const selectedValues = useRef<string[]>([]);\n\n const searchCallbackRef = useCallback<RefCallback<HTMLElement>>((el) => {\n setTimeout(() => {\n el?.querySelector(\"input\")?.focus();\n }, 100);\n }, []);\n\n const handleChange = useCallback<FormEventHandler<HTMLInputElement>>(\n (e) => {\n const input = e.target as HTMLInputElement;\n const { columnName } = queryClosest(\n input,\n \"[data-column-name]\",\n true,\n ).dataset;\n if (columnName) {\n if (input.checked) {\n selectedValues.current = selectedValues.current.concat(columnName);\n } else {\n selectedValues.current = selectedValues.current.filter(\n (val) => val !== columnName,\n );\n }\n onSelectionChange?.(e, selectedValues.current);\n }\n },\n [onSelectionChange],\n );\n\n return (\n <div\n {...htmlAttributes}\n className={cx(classBase, className)}\n ref={forwardedRef}\n >\n <div className={`${classBase}-inputField`}>\n <Input\n // inputProps={{ onKeyDown }}\n startAdornment={searchIcon}\n ref={autoFocus ? searchCallbackRef : null}\n // value={searchState.searchText}\n // onChange={onChange}\n />\n </div>\n <ListBox>\n {columns.map((column) => (\n <Option data-column-name={column} key={column} value={column}>\n <Checkbox onChange={handleChange} />\n <span>{column}</span>\n </Option>\n ))}\n </ListBox>\n </div>\n );\n },\n);\n"],"names":["jsx","forwardRef","ColumnSearch","useWindow","useComponentCssInjection","searchableListCss","useRef","useCallback","queryClosest","jsxs","Input","ListBox","Option","Checkbox"],"mappings":";;;;;;;;;;;AAiBA,MAAM,SAAY,GAAA,iBAAA;AASlB,MAAM,UAAa,mBAAAA,cAAA,CAAC,MAAK,EAAA,EAAA,WAAA,EAAU,QAAS,EAAA,CAAA;AAOrC,MAAM,YAAe,GAAAC,gBAAA;AAAA,EAC1B,SAASC,aACP,CAAA;AAAA,IACE,SAAY,GAAA,KAAA;AAAA,IACZ,SAAA;AAAA,IACA,OAAA;AAAA,IACA,QAAA;AAAA,IACA,iBAAA;AAAA,IACA,QAAA;AAAA,IACA,GAAG;AAAA,KAEL,YACA,EAAA;AACA,IAAA,MAAM,eAAeC,gBAAU,EAAA;AAC/B,IAAyBC,+BAAA,CAAA;AAAA,MACvB,MAAQ,EAAA,mBAAA;AAAA,MACR,GAAK,EAAAC,cAAA;AAAA,MACL,MAAQ,EAAA;AAAA,KACT,CAAA;AAED,IAAM,MAAA,cAAA,GAAiBC,YAAiB,CAAA,EAAE,CAAA;AAE1C,IAAM,MAAA,iBAAA,GAAoBC,iBAAsC,CAAA,CAAC,EAAO,KAAA;AACtE,MAAA,UAAA,CAAW,MAAM;AACf,QAAI,EAAA,EAAA,aAAA,CAAc,OAAO,CAAA,EAAG,KAAM,EAAA;AAAA,SACjC,GAAG,CAAA;AAAA,KACR,EAAG,EAAE,CAAA;AAEL,IAAA,MAAM,YAAe,GAAAA,iBAAA;AAAA,MACnB,CAAC,CAAM,KAAA;AACL,QAAA,MAAM,QAAQ,CAAE,CAAA,MAAA;AAChB,QAAM,MAAA,EAAE,YAAe,GAAAC,qBAAA;AAAA,UACrB,KAAA;AAAA,UACA,oBAAA;AAAA,UACA;AAAA,SACA,CAAA,OAAA;AACF,QAAA,IAAI,UAAY,EAAA;AACd,UAAA,IAAI,MAAM,OAAS,EAAA;AACjB,YAAA,cAAA,CAAe,OAAU,GAAA,cAAA,CAAe,OAAQ,CAAA,MAAA,CAAO,UAAU,CAAA;AAAA,WAC5D,MAAA;AACL,YAAe,cAAA,CAAA,OAAA,GAAU,eAAe,OAAQ,CAAA,MAAA;AAAA,cAC9C,CAAC,QAAQ,GAAQ,KAAA;AAAA,aACnB;AAAA;AAEF,UAAoB,iBAAA,GAAA,CAAA,EAAG,eAAe,OAAO,CAAA;AAAA;AAC/C,OACF;AAAA,MACA,CAAC,iBAAiB;AAAA,KACpB;AAEA,IACE,uBAAAC,eAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACE,GAAG,cAAA;AAAA,QACJ,SAAA,EAAW,EAAG,CAAA,SAAA,EAAW,SAAS,CAAA;AAAA,QAClC,GAAK,EAAA,YAAA;AAAA,QAEL,QAAA,EAAA;AAAA,0BAAAT,cAAA,CAAC,KAAI,EAAA,EAAA,SAAA,EAAW,CAAG,EAAA,SAAS,CAC1B,WAAA,CAAA,EAAA,QAAA,kBAAAA,cAAA;AAAA,YAACU,UAAA;AAAA,YAAA;AAAA,cAEC,cAAgB,EAAA,UAAA;AAAA,cAChB,GAAA,EAAK,YAAY,iBAAoB,GAAA;AAAA;AAAA,WAIzC,EAAA,CAAA;AAAA,0BACAV,cAAA,CAACW,YACE,EAAA,EAAA,QAAA,EAAA,OAAA,CAAQ,GAAI,CAAA,CAAC,MACZ,qBAAAF,eAAA,CAACG,WAAO,EAAA,EAAA,kBAAA,EAAkB,MAAqB,EAAA,KAAA,EAAO,MACpD,EAAA,QAAA,EAAA;AAAA,4BAACZ,cAAA,CAAAa,aAAA,EAAA,EAAS,UAAU,YAAc,EAAA,CAAA;AAAA,4BAClCb,cAAA,CAAC,UAAM,QAAO,EAAA,MAAA,EAAA;AAAA,WAFuB,EAAA,EAAA,MAGvC,CACD,CACH,EAAA;AAAA;AAAA;AAAA,KACF;AAAA;AAGN;;;;"}
|
package/cjs/index.js
CHANGED
|
@@ -9,6 +9,7 @@ var ColumnSearch = require('./column-picker/ColumnSearch.js');
|
|
|
9
9
|
var useControlled = require('./common-hooks/useControlled.js');
|
|
10
10
|
var useResizeObserver = require('./common-hooks/use-resize-observer.js');
|
|
11
11
|
var selectionTypes = require('./common-hooks/selectionTypes.js');
|
|
12
|
+
var ContextPanelProvider = require('./context-panel-provider/ContextPanelProvider.js');
|
|
12
13
|
var CycleStateButton = require('./cycle-state-button/CycleStateButton.js');
|
|
13
14
|
var DateInput = require('./date-input/DateInput.js');
|
|
14
15
|
var DatePicker = require('./date-picker/DatePicker.js');
|
|
@@ -25,14 +26,16 @@ var Icon = require('./icon-button/Icon.js');
|
|
|
25
26
|
var IconButton = require('./icon-button/IconButton.js');
|
|
26
27
|
var ToggleIconButton = require('./icon-button/ToggleIconButton.js');
|
|
27
28
|
var TablePicker = require('./instrument-picker/TablePicker.js');
|
|
28
|
-
var TableSearch = require('./table-search/TableSearch.js');
|
|
29
29
|
var MeasuredContainer = require('./measured-container/MeasuredContainer.js');
|
|
30
30
|
var useMeasuredContainer = require('./measured-container/useMeasuredContainer.js');
|
|
31
31
|
var OverflowContainer = require('./overflow-container/OverflowContainer.js');
|
|
32
32
|
var overflowUtils = require('./overflow-container/overflow-utils.js');
|
|
33
33
|
var PriceTicker = require('./price-ticker/PriceTicker.js');
|
|
34
|
+
var Prompt = require('./prompt/Prompt.js');
|
|
35
|
+
var SortableList = require('./sortable-list/SortableList.js');
|
|
34
36
|
var SplitButton = require('./split-button/SplitButton.js');
|
|
35
37
|
var SplitStateButton = require('./split-button/SplitStateButton.js');
|
|
38
|
+
var TableSearch = require('./table-search/TableSearch.js');
|
|
36
39
|
var TabNext = require('./tabs-next/TabNext.js');
|
|
37
40
|
var TabListNext = require('./tabs-next/TabListNext.js');
|
|
38
41
|
var TabsNext = require('./tabs-next/TabsNext.js');
|
|
@@ -43,6 +46,7 @@ var TabNextAction = require('./tabs-next/TabNextAction.js');
|
|
|
43
46
|
var Tabstrip = require('./tabstrip/Tabstrip.js');
|
|
44
47
|
var Tab = require('./tabstrip/Tab.js');
|
|
45
48
|
var tabstripDomUtils = require('./tabstrip/tabstrip-dom-utils.js');
|
|
49
|
+
var TimeInput = require('./time-input/TimeInput.js');
|
|
46
50
|
var Toolbar = require('./toolbar/Toolbar.js');
|
|
47
51
|
var escapeRegExp = require('./utils/escapeRegExp.js');
|
|
48
52
|
var isOverflowElement = require('./utils/isOverflowElement.js');
|
|
@@ -50,9 +54,8 @@ var isPlainObject = require('./utils/isPlainObject.js');
|
|
|
50
54
|
var forwardCallbackProps = require('./utils/forwardCallbackProps.js');
|
|
51
55
|
var VuuDatePicker = require('./vuu-date-picker/VuuDatePicker.js');
|
|
52
56
|
var VuuInput = require('./vuu-input/VuuInput.js');
|
|
57
|
+
var VuuTimePicker = require('./vuu-time-picker/VuuTimePicker.js');
|
|
53
58
|
var VuuTypeaheadInput = require('./vuu-typeahead-input/VuuTypeaheadInput.js');
|
|
54
|
-
var ContextPanelProvider = require('./context-panel-provider/ContextPanelProvider.js');
|
|
55
|
-
var SortableList = require('./sortable-list/SortableList.js');
|
|
56
59
|
|
|
57
60
|
|
|
58
61
|
|
|
@@ -77,6 +80,9 @@ exports.hasSelection = selectionTypes.hasSelection;
|
|
|
77
80
|
exports.isMultiSelection = selectionTypes.isMultiSelection;
|
|
78
81
|
exports.isSingleSelection = selectionTypes.isSingleSelection;
|
|
79
82
|
exports.selectionIsDisallowed = selectionTypes.selectionIsDisallowed;
|
|
83
|
+
exports.ContextPanelProvider = ContextPanelProvider.ContextPanelProvider;
|
|
84
|
+
exports.useContextPanel = ContextPanelProvider.useContextPanel;
|
|
85
|
+
exports.useHideContextPanel = ContextPanelProvider.useHideContextPanel;
|
|
80
86
|
exports.CycleStateButton = CycleStateButton.CycleStateButton;
|
|
81
87
|
exports.DateInput = DateInput.DateInput;
|
|
82
88
|
exports.DatePicker = DatePicker.DatePicker;
|
|
@@ -111,7 +117,6 @@ exports.Icon = Icon.Icon;
|
|
|
111
117
|
exports.IconButton = IconButton.IconButton;
|
|
112
118
|
exports.ToggleIconButton = ToggleIconButton.ToggleIconButton;
|
|
113
119
|
exports.TablePicker = TablePicker.TablePicker;
|
|
114
|
-
exports.TableSearch = TableSearch.TableSearch;
|
|
115
120
|
exports.MeasuredContainer = MeasuredContainer.MeasuredContainer;
|
|
116
121
|
exports.reduceSizeHeight = useMeasuredContainer.reduceSizeHeight;
|
|
117
122
|
exports.useMeasuredContainer = useMeasuredContainer.useMeasuredContainer;
|
|
@@ -130,8 +135,12 @@ exports.sortByScreenOrder = overflowUtils.sortByScreenOrder;
|
|
|
130
135
|
exports.switchWrappedItemIntoView = overflowUtils.switchWrappedItemIntoView;
|
|
131
136
|
exports.unmarkItemsWhichAreNoLongerWrapped = overflowUtils.unmarkItemsWhichAreNoLongerWrapped;
|
|
132
137
|
exports.PriceTicker = PriceTicker.PriceTicker;
|
|
138
|
+
exports.Prompt = Prompt.Prompt;
|
|
139
|
+
exports.SortableList = SortableList.SortableList;
|
|
140
|
+
exports.SortableOption = SortableList.SortableOption;
|
|
133
141
|
exports.SplitButton = SplitButton.SplitButton;
|
|
134
142
|
exports.SplitStateButton = SplitStateButton.SplitStateButton;
|
|
143
|
+
exports.TableSearch = TableSearch.TableSearch;
|
|
135
144
|
exports.TabNext = TabNext.TabNext;
|
|
136
145
|
exports.TabListNext = TabListNext.TabListNext;
|
|
137
146
|
exports.TabsNext = TabsNext.TabsNext;
|
|
@@ -143,6 +152,7 @@ exports.Tabstrip = Tabstrip.Tabstrip;
|
|
|
143
152
|
exports.Tab = Tab.Tab;
|
|
144
153
|
exports.getIndexOfEditedItem = tabstripDomUtils.getIndexOfEditedItem;
|
|
145
154
|
exports.getIndexOfSelectedTab = tabstripDomUtils.getIndexOfSelectedTab;
|
|
155
|
+
exports.TimeInput = TimeInput.TimeInput;
|
|
146
156
|
exports.Toolbar = Toolbar.Toolbar;
|
|
147
157
|
exports.escapeRegExp = escapeRegExp.escapeRegExp;
|
|
148
158
|
exports.isOverflowElement = isOverflowElement.isOverflowElement;
|
|
@@ -150,10 +160,6 @@ exports.isPlainObject = isPlainObject.isPlainObject;
|
|
|
150
160
|
exports.forwardCallbackProps = forwardCallbackProps.forwardCallbackProps;
|
|
151
161
|
exports.VuuDatePicker = VuuDatePicker.VuuDatePicker;
|
|
152
162
|
exports.VuuInput = VuuInput.VuuInput;
|
|
163
|
+
exports.VuuTimePicker = VuuTimePicker.VuuTimePicker;
|
|
153
164
|
exports.VuuTypeaheadInput = VuuTypeaheadInput.VuuTypeaheadInput;
|
|
154
|
-
exports.ContextPanelProvider = ContextPanelProvider.ContextPanelProvider;
|
|
155
|
-
exports.useContextPanel = ContextPanelProvider.useContextPanel;
|
|
156
|
-
exports.useHideContextPanel = ContextPanelProvider.useHideContextPanel;
|
|
157
|
-
exports.SortableList = SortableList.SortableList;
|
|
158
|
-
exports.SortableOption = SortableList.SortableOption;
|
|
159
165
|
//# sourceMappingURL=index.js.map
|
package/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var tablePickerCss = ".vuuTablePicker {\n border-radius: 6px;\n height: var(--salt-size-base);\n padding: 1px;\n box-sizing: content-box;\n}\n\n.vuuTablePicker-floating-table {\n border: solid 1px var(--salt-container-secondary-borderColor);\n border-radius: 4px;\n overflow: auto;\n padding: var(--salt-spacing-100) 0;\n z-index: var(--salt-zIndex-popout);\n}\n";
|
|
3
|
+
var tablePickerCss = ".vuuTablePicker {\n border-radius: 6px;\n height: var(--salt-size-base);\n padding: 1px;\n box-sizing: content-box;\n}\n\n.vuuTablePicker-floating-table {\n border: solid 1px var(--salt-container-secondary-borderColor);\n border-radius: 4px;\n overflow: auto;\n padding: var(--salt-spacing-100) 0;\n z-index: var(--salt-zIndex-popout);\n}\n\n[data-floating-ui-portal] [data-floating-ui-portal] .vuuTablePicker-floating-table {\n z-index: calc(var(--salt-zIndex-modal) + var(--salt-zIndex-popout));\n}\n";
|
|
4
4
|
|
|
5
5
|
module.exports = tablePickerCss;
|
|
6
6
|
//# sourceMappingURL=TablePicker.css.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var promptCss = ".vuuPrompt {\n min-height: var(--vuuPrompt-minHeight, 257px);\n min-width: var(--vuuPrompt-minWidth,380px);\n\n .saltDialogHeader {\n .vuuIcon {\n width: 24px;\n --vuu-icon-size: 20px;\n }\n }\n\n .vuuPromptConfirmButton:focus {\n outline-style: var(--salt-focused-outlineStyle);\n outline-width: var(--salt-focused-outlineWidth);\n outline-color: var(--salt-focused-outlineColor);\n outline-offset: var(--salt-focused-outlineOffset);\n }\n}\n\n.vuuPrompt.saltDialog-warning {\n --salt-status-warning-borderColor: var(--vuu-color-yellow-20); \n --variant-color: var(--vuu-color-yellow-20);\n\n border-radius: 4px !important;\n min-height: var(--vuuPrompt-minHeight, 150px);\n min-width: var(--vuuPrompt-minWidth, 280px);\n padding-top:0 !important;\n\n .saltDialogHeader {\n background-color: var(--variant-color);\n padding-left: var(--salt-spacing-100);\n padding-bottom: var(--salt-spacing-100);\n padding-right: var(--salt-spacing-100);\n\n .saltDialogHeader-header {\n align-items: end;\n display: flex;\n gap: var(--salt-spacing-100);\n }\n }\n\n .saltDialogContent {\n display: flex;\n align-items: center;\n justify-content: flex-start;\n } \n}\n\n";
|
|
4
|
+
|
|
5
|
+
module.exports = promptCss;
|
|
6
|
+
//# sourceMappingURL=Prompt.css.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Prompt.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;"}
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
4
|
+
var core = require('@salt-ds/core');
|
|
5
|
+
var cx = require('clsx');
|
|
6
|
+
var React = require('react');
|
|
7
|
+
var Icon = require('../icon-button/Icon.js');
|
|
8
|
+
var IconButton = require('../icon-button/IconButton.js');
|
|
9
|
+
var styles = require('@salt-ds/styles');
|
|
10
|
+
var window = require('@salt-ds/window');
|
|
11
|
+
var Prompt$1 = require('./Prompt.css.js');
|
|
12
|
+
|
|
13
|
+
const classBase = "vuuPrompt";
|
|
14
|
+
const Prompt = ({
|
|
15
|
+
children,
|
|
16
|
+
className,
|
|
17
|
+
cancelButtonLabel = "Cancel",
|
|
18
|
+
cancelButtonProps,
|
|
19
|
+
confirmButtonLabel = "Confirm",
|
|
20
|
+
confirmButtonProps,
|
|
21
|
+
disableAccent,
|
|
22
|
+
icon,
|
|
23
|
+
initialFocusedItem,
|
|
24
|
+
onCancel,
|
|
25
|
+
onClose,
|
|
26
|
+
onConfirm,
|
|
27
|
+
onOpenChange,
|
|
28
|
+
open,
|
|
29
|
+
showCancelButton = true,
|
|
30
|
+
showCloseButton = true,
|
|
31
|
+
showConfirmButton = true,
|
|
32
|
+
status,
|
|
33
|
+
title,
|
|
34
|
+
...htmlAttributes
|
|
35
|
+
}) => {
|
|
36
|
+
const targetWindow = window.useWindow();
|
|
37
|
+
styles.useComponentCssInjection({
|
|
38
|
+
testId: "vuu-prompt-next",
|
|
39
|
+
css: Prompt$1,
|
|
40
|
+
window: targetWindow
|
|
41
|
+
});
|
|
42
|
+
const close = React.useCallback(() => {
|
|
43
|
+
onClose?.();
|
|
44
|
+
onOpenChange?.(false);
|
|
45
|
+
}, [onClose, onOpenChange]);
|
|
46
|
+
const callbackRef = React.useCallback(
|
|
47
|
+
(el) => {
|
|
48
|
+
if (el) {
|
|
49
|
+
let target = null;
|
|
50
|
+
if (initialFocusedItem === "confirm" && showConfirmButton) {
|
|
51
|
+
target = el.querySelector(".vuuPromptConfirmButton");
|
|
52
|
+
} else if (initialFocusedItem === "cancel" && showCancelButton) {
|
|
53
|
+
target = el.querySelector(".vuuPromptCancelButton");
|
|
54
|
+
} else if (initialFocusedItem === "close" && showCloseButton) {
|
|
55
|
+
target = el.querySelector(".vuuPromptCloseButton");
|
|
56
|
+
}
|
|
57
|
+
if (target) {
|
|
58
|
+
setTimeout(() => {
|
|
59
|
+
target.focus();
|
|
60
|
+
}, 200);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
},
|
|
64
|
+
[initialFocusedItem, showCancelButton, showCloseButton, showConfirmButton]
|
|
65
|
+
);
|
|
66
|
+
const handleCancel = React.useCallback(() => {
|
|
67
|
+
onCancel?.();
|
|
68
|
+
close();
|
|
69
|
+
}, [close, onCancel]);
|
|
70
|
+
const handleConfirm = React.useCallback(() => {
|
|
71
|
+
onConfirm?.();
|
|
72
|
+
close();
|
|
73
|
+
}, [close, onConfirm]);
|
|
74
|
+
const actions = showCloseButton ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
75
|
+
IconButton.IconButton,
|
|
76
|
+
{
|
|
77
|
+
appearance: "transparent",
|
|
78
|
+
className: "vuuPromptCloseButton",
|
|
79
|
+
"data-embedded": true,
|
|
80
|
+
icon: "close",
|
|
81
|
+
onClick: close
|
|
82
|
+
}
|
|
83
|
+
) : null;
|
|
84
|
+
const header = icon ? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
85
|
+
/* @__PURE__ */ jsxRuntime.jsx(Icon.Icon, { name: icon }),
|
|
86
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { children: title })
|
|
87
|
+
] }) : title;
|
|
88
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
89
|
+
core.Dialog,
|
|
90
|
+
{
|
|
91
|
+
...htmlAttributes,
|
|
92
|
+
className: cx(classBase, className),
|
|
93
|
+
onOpenChange,
|
|
94
|
+
open,
|
|
95
|
+
ref: callbackRef,
|
|
96
|
+
status,
|
|
97
|
+
children: [
|
|
98
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
99
|
+
core.DialogHeader,
|
|
100
|
+
{
|
|
101
|
+
disableAccent,
|
|
102
|
+
header,
|
|
103
|
+
actions
|
|
104
|
+
}
|
|
105
|
+
),
|
|
106
|
+
/* @__PURE__ */ jsxRuntime.jsx(core.DialogContent, { children }),
|
|
107
|
+
/* @__PURE__ */ jsxRuntime.jsxs(core.DialogActions, { children: [
|
|
108
|
+
showCancelButton ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
109
|
+
core.Button,
|
|
110
|
+
{
|
|
111
|
+
className: "vuuPromptCancelButton",
|
|
112
|
+
disabled: cancelButtonProps?.disabled,
|
|
113
|
+
onClick: handleCancel,
|
|
114
|
+
ref: cancelButtonProps?.ref,
|
|
115
|
+
children: cancelButtonProps?.label ?? cancelButtonLabel
|
|
116
|
+
}
|
|
117
|
+
) : null,
|
|
118
|
+
showConfirmButton ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
119
|
+
core.Button,
|
|
120
|
+
{
|
|
121
|
+
className: "vuuPromptConfirmButton",
|
|
122
|
+
disabled: confirmButtonProps?.disabled,
|
|
123
|
+
sentiment: "accented",
|
|
124
|
+
onClick: handleConfirm,
|
|
125
|
+
ref: confirmButtonProps?.ref,
|
|
126
|
+
children: confirmButtonProps?.label ?? confirmButtonLabel
|
|
127
|
+
}
|
|
128
|
+
) : null
|
|
129
|
+
] })
|
|
130
|
+
]
|
|
131
|
+
}
|
|
132
|
+
);
|
|
133
|
+
};
|
|
134
|
+
|
|
135
|
+
exports.Prompt = Prompt;
|
|
136
|
+
//# sourceMappingURL=Prompt.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Prompt.js","sources":["../../../../packages/vuu-ui-controls/src/prompt/Prompt.tsx"],"sourcesContent":["import {\n Button,\n Dialog,\n DialogActions,\n DialogContent,\n DialogHeader,\n DialogHeaderProps,\n DialogProps,\n} from \"@salt-ds/core\";\nimport cx from \"clsx\";\nimport {\n HTMLAttributes,\n MouseEventHandler,\n RefCallback,\n RefObject,\n useCallback,\n} from \"react\";\nimport { Icon, IconButton } from \"../icon-button\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\n\nimport promptCss from \"./Prompt.css\";\n\nconst classBase = \"vuuPrompt\";\n\n/**\n * Allow fine grained configuration of Prompt buttons\n * The ref is provided to facilitate programmatic focus.\n */\nexport interface PromptButtonProps {\n disabled?: boolean;\n label?: string;\n ref?: RefObject<HTMLButtonElement | null>;\n}\n\nexport interface PromptProps\n extends Pick<DialogProps, \"onOpenChange\" | \"open\" | \"status\">,\n Pick<DialogHeaderProps, \"disableAccent\">,\n Omit<HTMLAttributes<HTMLDivElement>, \"content\" | \"title\"> {\n /**\n * For simple configuration, where just a cancel button label is required.\n */\n cancelButtonLabel?: string;\n /**\n * Allow fine grained configuration of cancel button\n */\n cancelButtonProps?: PromptButtonProps;\n /**\n * For simple configuration, where just a confirm button label is required.\n */\n confirmButtonLabel?: string;\n /**\n * Allow fine grained configuration of confirm button\n */\n confirmButtonProps?: PromptButtonProps;\n icon?: string;\n /**\n * Set this prop if one of the three built-in buttons should receive initial focus.\n * Allows user to quickly dismiss/confirm prompt from keyboard. If the prompt content\n * contains focusable item(s), focus should be controlled by caller.\n */\n initialFocusedItem?: \"confirm\" | \"cancel\" | \"close\";\n onCancel?: () => void;\n onConfirm?: () => void;\n onClose?: () => void;\n showCancelButton?: boolean;\n showCloseButton?: boolean;\n showConfirmButton?: boolean;\n title: string;\n}\n\nexport const Prompt = ({\n children,\n className,\n cancelButtonLabel = \"Cancel\",\n cancelButtonProps,\n confirmButtonLabel = \"Confirm\",\n confirmButtonProps,\n disableAccent,\n icon,\n initialFocusedItem,\n onCancel,\n onClose,\n onConfirm,\n onOpenChange,\n open,\n showCancelButton = true,\n showCloseButton = true,\n showConfirmButton = true,\n status,\n title,\n\n ...htmlAttributes\n}: PromptProps) => {\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"vuu-prompt-next\",\n css: promptCss,\n window: targetWindow,\n });\n\n const close = useCallback(() => {\n onClose?.();\n onOpenChange?.(false);\n }, [onClose, onOpenChange]);\n\n const callbackRef = useCallback<RefCallback<HTMLDivElement>>(\n (el) => {\n if (el) {\n let target: HTMLButtonElement | null = null;\n if (initialFocusedItem === \"confirm\" && showConfirmButton) {\n target = el.querySelector(\".vuuPromptConfirmButton\");\n } else if (initialFocusedItem === \"cancel\" && showCancelButton) {\n target = el.querySelector(\".vuuPromptCancelButton\");\n } else if (initialFocusedItem === \"close\" && showCloseButton) {\n target = el.querySelector(\".vuuPromptCloseButton\");\n }\n\n if (target) {\n setTimeout(() => {\n target.focus();\n }, 200);\n }\n }\n },\n [initialFocusedItem, showCancelButton, showCloseButton, showConfirmButton],\n );\n\n const handleCancel = useCallback<MouseEventHandler<HTMLButtonElement>>(() => {\n onCancel?.();\n close();\n }, [close, onCancel]);\n\n const handleConfirm = useCallback<\n MouseEventHandler<HTMLButtonElement>\n >(() => {\n onConfirm?.();\n close();\n }, [close, onConfirm]);\n\n const actions = showCloseButton ? (\n <IconButton\n appearance=\"transparent\"\n className=\"vuuPromptCloseButton\"\n data-embedded\n icon=\"close\"\n onClick={close}\n />\n ) : null;\n\n const header = icon ? (\n <>\n <Icon name={icon} />\n <span>{title}</span>\n </>\n ) : (\n title\n );\n\n return (\n <Dialog\n {...htmlAttributes}\n className={cx(classBase, className)}\n onOpenChange={onOpenChange}\n open={open}\n ref={callbackRef}\n status={status}\n >\n <DialogHeader\n disableAccent={disableAccent}\n header={header}\n actions={actions}\n />\n <DialogContent>{children}</DialogContent>\n <DialogActions>\n {showCancelButton ? (\n <Button\n className=\"vuuPromptCancelButton\"\n disabled={cancelButtonProps?.disabled}\n onClick={handleCancel}\n ref={cancelButtonProps?.ref}\n >\n {cancelButtonProps?.label ?? cancelButtonLabel}\n </Button>\n ) : null}\n {showConfirmButton ? (\n <Button\n className=\"vuuPromptConfirmButton\"\n disabled={confirmButtonProps?.disabled}\n sentiment=\"accented\"\n onClick={handleConfirm}\n ref={confirmButtonProps?.ref}\n >\n {confirmButtonProps?.label ?? confirmButtonLabel}\n </Button>\n ) : null}\n </DialogActions>\n </Dialog>\n );\n};\n"],"names":["useWindow","useComponentCssInjection","promptCss","useCallback","jsx","IconButton","jsxs","Fragment","Icon","Dialog","DialogHeader","DialogContent","DialogActions","Button"],"mappings":"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"}
|