xmlui 0.10.23 → 0.10.25
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/lib/{index-CuPvcayg.mjs → index-CCEPGw_x.mjs} +704 -506
- package/dist/lib/index.css +1 -1
- package/dist/lib/{initMock-BBdNO6FB.mjs → initMock-DFcCR7ey.mjs} +1 -1
- package/dist/lib/xmlui.d.ts +1 -0
- package/dist/lib/xmlui.mjs +1 -1
- package/dist/metadata/{collectedComponentMetadata-Cp3Ljk8F.mjs → collectedComponentMetadata-mwkNkxN_.mjs} +700 -502
- package/dist/metadata/{initMock-Dki8247s.mjs → initMock-BVxHA6wu.mjs} +1 -1
- package/dist/metadata/style.css +1 -1
- package/dist/metadata/xmlui-metadata.mjs +1 -1
- package/dist/metadata/xmlui-metadata.umd.js +3 -3
- package/dist/scripts/package.json +1 -1
- package/dist/scripts/src/components/AppHeader/AppHeaderNative.js +2 -1
- package/dist/scripts/src/components/AutoComplete/AutoComplete.spec.js +1 -1
- package/dist/scripts/src/components/AutoComplete/AutoCompleteNative.js +30 -5
- package/dist/scripts/src/components/CodeBlock/highlight-code.js +5 -32
- package/dist/scripts/src/components/Form/Form.spec.js +2 -2
- package/dist/scripts/src/components/FormItem/FormItemNative.js +5 -1
- package/dist/scripts/src/components/Markdown/MarkdownNative.js +4 -3
- package/dist/scripts/src/components/Markdown/utils.js +4 -3
- package/dist/scripts/src/components/ModalDialog/ModalDialog.js +4 -6
- package/dist/scripts/src/components/ModalDialog/ModalDialog.spec.js +19 -0
- package/dist/scripts/src/components/NavGroup/NavGroup.spec.js +103 -11
- package/dist/scripts/src/components/NavGroup/NavGroupNative.js +6 -1
- package/dist/scripts/src/components/NestedApp/utils.js +6 -5
- package/dist/scripts/src/components/Option/Option.spec.js +3 -1
- package/dist/scripts/src/components/Select/HiddenOption.js +3 -3
- package/dist/scripts/src/components/Select/Select.js +2 -3
- package/dist/scripts/src/components/Select/Select.spec.js +53 -6
- package/dist/scripts/src/components/Select/SelectNative.js +187 -47
- package/dist/scripts/src/components-core/rendering/ComponentAdapter.js +11 -0
- package/dist/scripts/src/components-core/rendering/Container.js +3 -4
- package/dist/scripts/src/components-core/rendering/StateContainer.js +16 -18
- package/dist/scripts/src/components-core/rendering/reducer.js +6 -3
- package/dist/scripts/src/components-core/utils/base64-utils.js +122 -0
- package/dist/scripts/src/components-core/utils/date-utils.js +12 -3
- package/dist/scripts/src/testing/ComponentDrivers.js +1 -1
- package/dist/standalone/xmlui-standalone.es.d.ts +1 -0
- package/dist/standalone/xmlui-standalone.umd.js +15 -15
- package/package.json +1 -1
- package/dist/scripts/src/components/Select/MultiSelectOption.js +0 -42
- package/dist/scripts/src/components/Select/SelectOption.js +0 -34
- package/dist/scripts/src/components/Select/SimpleSelect.js +0 -57
package/package.json
CHANGED
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.MultiSelectOption = void 0;
|
|
7
|
-
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
8
|
-
const react_1 = require("react");
|
|
9
|
-
const SelectContext_1 = require("./SelectContext");
|
|
10
|
-
const classnames_1 = __importDefault(require("classnames"));
|
|
11
|
-
const Select_module_scss_1 = __importDefault(require("./Select.module.scss"));
|
|
12
|
-
const IconNative_1 = __importDefault(require("../Icon/IconNative"));
|
|
13
|
-
exports.MultiSelectOption = (0, react_1.forwardRef)(function MultiSelectOption(option, forwardedRef) {
|
|
14
|
-
const id = (0, react_1.useId)();
|
|
15
|
-
const { label, value, enabled = true, keywords, readOnly, children, isHighlighted = false, itemIndex, } = option;
|
|
16
|
-
const { value: selectedValue, onChange, multiSelect, setOpen, setSelectedIndex, optionRenderer, } = (0, SelectContext_1.useSelect)();
|
|
17
|
-
const selected = (0, react_1.useMemo)(() => {
|
|
18
|
-
return Array.isArray(selectedValue) && multiSelect
|
|
19
|
-
? selectedValue.map((v) => String(v)).includes(value)
|
|
20
|
-
: String(selectedValue) === String(value);
|
|
21
|
-
}, [selectedValue, value, multiSelect]);
|
|
22
|
-
const handleClick = () => {
|
|
23
|
-
if (readOnly) {
|
|
24
|
-
setOpen(false);
|
|
25
|
-
return;
|
|
26
|
-
}
|
|
27
|
-
if (enabled) {
|
|
28
|
-
onChange(value);
|
|
29
|
-
}
|
|
30
|
-
};
|
|
31
|
-
return ((0, jsx_runtime_1.jsx)("div", { id: id, ref: forwardedRef, role: "option", "aria-disabled": !enabled, "aria-selected": selected, className: (0, classnames_1.default)(Select_module_scss_1.default.multiSelectOption, {
|
|
32
|
-
[Select_module_scss_1.default.disabledOption]: !enabled,
|
|
33
|
-
[Select_module_scss_1.default.highlighted]: isHighlighted,
|
|
34
|
-
}), onMouseDown: (e) => {
|
|
35
|
-
e.preventDefault();
|
|
36
|
-
e.stopPropagation();
|
|
37
|
-
}, onMouseEnter: () => {
|
|
38
|
-
if (itemIndex !== undefined && setSelectedIndex && enabled) {
|
|
39
|
-
setSelectedIndex(itemIndex);
|
|
40
|
-
}
|
|
41
|
-
}, onClick: handleClick, "data-state": selected ? "checked" : undefined, children: (0, jsx_runtime_1.jsx)("div", { className: Select_module_scss_1.default.multiSelectOptionContent, children: optionRenderer ? (optionRenderer({ label, value, enabled, keywords }, selectedValue, false)) : ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [children || label, selected && (0, jsx_runtime_1.jsx)(IconNative_1.default, { name: "checkmark" })] })) }) }));
|
|
42
|
-
});
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.SelectOption = void 0;
|
|
7
|
-
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
8
|
-
const react_1 = require("react");
|
|
9
|
-
const react_select_1 = require("@radix-ui/react-select");
|
|
10
|
-
const SelectContext_1 = require("./SelectContext");
|
|
11
|
-
const OptionContext_1 = require("./OptionContext");
|
|
12
|
-
const classnames_1 = __importDefault(require("classnames"));
|
|
13
|
-
const Select_module_scss_1 = __importDefault(require("./Select.module.scss"));
|
|
14
|
-
const IconNative_1 = __importDefault(require("../Icon/IconNative"));
|
|
15
|
-
exports.SelectOption = (0, react_1.forwardRef)(function SelectOption(option, ref) {
|
|
16
|
-
const visibleContentRef = (0, react_1.useRef)(null);
|
|
17
|
-
const { value, label, enabled = true, children, className } = option;
|
|
18
|
-
const { value: selectedValue, optionRenderer } = (0, SelectContext_1.useSelect)();
|
|
19
|
-
const { onOptionRemove, onOptionAdd } = (0, OptionContext_1.useOption)();
|
|
20
|
-
const opt = (0, react_1.useMemo)(() => {
|
|
21
|
-
return Object.assign(Object.assign({}, option), { label: label !== null && label !== void 0 ? label : "", keywords: [label !== null && label !== void 0 ? label : ""] });
|
|
22
|
-
}, [option, label]);
|
|
23
|
-
(0, react_1.useEffect)(() => {
|
|
24
|
-
onOptionAdd(opt);
|
|
25
|
-
return () => onOptionRemove(opt);
|
|
26
|
-
}, [opt, onOptionAdd, onOptionRemove]);
|
|
27
|
-
return ((0, jsx_runtime_1.jsxs)(react_select_1.Item, { ref: ref, className: (0, classnames_1.default)(className, Select_module_scss_1.default.selectOption), value: value, textValue: label, disabled: !enabled, onClick: (event) => {
|
|
28
|
-
event.stopPropagation();
|
|
29
|
-
}, "data-state": selectedValue === value && "checked", children: [(0, jsx_runtime_1.jsx)("span", { style: { display: "none" }, children: (0, jsx_runtime_1.jsx)(react_select_1.ItemText, { children: label }) }), children ? ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("div", { className: Select_module_scss_1.default.selectOptionContent, ref: visibleContentRef, children: children }), selectedValue === value && ((0, jsx_runtime_1.jsx)(react_select_1.ItemIndicator, { className: Select_module_scss_1.default.selectOptionIndicator, children: (0, jsx_runtime_1.jsx)(IconNative_1.default, { name: "checkmark" }) }))] })) : optionRenderer ? ((0, jsx_runtime_1.jsx)("div", { className: Select_module_scss_1.default.selectOptionContent, ref: visibleContentRef, children: optionRenderer({
|
|
30
|
-
label,
|
|
31
|
-
value,
|
|
32
|
-
enabled,
|
|
33
|
-
}, selectedValue, false) })) : ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("div", { className: Select_module_scss_1.default.selectOptionContent, ref: visibleContentRef, children: label }), selectedValue === value && ((0, jsx_runtime_1.jsx)(react_select_1.ItemIndicator, { className: Select_module_scss_1.default.selectItemIndicator, children: (0, jsx_runtime_1.jsx)(IconNative_1.default, { name: "checkmark" }) }))] }))] }));
|
|
34
|
-
});
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __rest = (this && this.__rest) || function (s, e) {
|
|
3
|
-
var t = {};
|
|
4
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
5
|
-
t[p] = s[p];
|
|
6
|
-
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
7
|
-
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
8
|
-
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
9
|
-
t[p[i]] = s[p[i]];
|
|
10
|
-
}
|
|
11
|
-
return t;
|
|
12
|
-
};
|
|
13
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
14
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
15
|
-
};
|
|
16
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
exports.SimpleSelect = void 0;
|
|
18
|
-
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
19
|
-
const react_1 = require("react");
|
|
20
|
-
const ThemeContext_1 = require("../../components-core/theming/ThemeContext");
|
|
21
|
-
const Select_module_scss_1 = __importDefault(require("./Select.module.scss"));
|
|
22
|
-
const SelectContext_1 = require("./SelectContext");
|
|
23
|
-
const IconNative_1 = __importDefault(require("../Icon/IconNative"));
|
|
24
|
-
const classnames_1 = __importDefault(require("classnames"));
|
|
25
|
-
const react_compose_refs_1 = require("@radix-ui/react-compose-refs");
|
|
26
|
-
const react_select_1 = require("@radix-ui/react-select");
|
|
27
|
-
exports.SimpleSelect = (0, react_1.forwardRef)(function SimpleSelect(props, forwardedRef) {
|
|
28
|
-
const { root } = (0, ThemeContext_1.useTheme)();
|
|
29
|
-
const { enabled, onBlur, autoFocus, onValueChange, validationStatus, value, height, style, placeholder, id, triggerRef, onFocus, width, children, readOnly, emptyListNode, className } = props, rest = __rest(props, ["enabled", "onBlur", "autoFocus", "onValueChange", "validationStatus", "value", "height", "style", "placeholder", "id", "triggerRef", "onFocus", "width", "children", "readOnly", "emptyListNode", "className"]);
|
|
30
|
-
const { options } = (0, SelectContext_1.useSelect)();
|
|
31
|
-
const composedRef = react_1.forwardRef ? (0, react_compose_refs_1.composeRefs)(triggerRef, forwardedRef) : triggerRef;
|
|
32
|
-
// Convert value to string for Radix UI compatibility
|
|
33
|
-
const stringValue = (0, react_1.useMemo)(() => {
|
|
34
|
-
return value != undefined ? String(value) : undefined;
|
|
35
|
-
}, [value]);
|
|
36
|
-
// Handle value changes with proper type conversion
|
|
37
|
-
const handleValueChange = (0, react_1.useCallback)((val) => {
|
|
38
|
-
if (readOnly)
|
|
39
|
-
return;
|
|
40
|
-
onValueChange(val);
|
|
41
|
-
}, [onValueChange, readOnly]);
|
|
42
|
-
const optionsArray = (0, react_1.useMemo)(() => Array.from(options), [options]);
|
|
43
|
-
const selectedOption = (0, react_1.useMemo)(() => {
|
|
44
|
-
return optionsArray.find((option) => String(option.value) === String(value));
|
|
45
|
-
}, [optionsArray, value]);
|
|
46
|
-
return ((0, jsx_runtime_1.jsxs)(react_select_1.Root, { value: stringValue, onValueChange: handleValueChange, children: [(0, jsx_runtime_1.jsxs)(react_select_1.Trigger, Object.assign({}, rest, { id: id, ref: composedRef, "aria-haspopup": "listbox", style: style, onFocus: onFocus, onBlur: onBlur, disabled: !enabled, className: (0, classnames_1.default)(className, Select_module_scss_1.default.selectTrigger, {
|
|
47
|
-
[Select_module_scss_1.default.error]: validationStatus === "error",
|
|
48
|
-
[Select_module_scss_1.default.warning]: validationStatus === "warning",
|
|
49
|
-
[Select_module_scss_1.default.valid]: validationStatus === "valid",
|
|
50
|
-
}), onClick: (event) => {
|
|
51
|
-
// Prevent event propagation to parent elements (e.g., DropdownMenu)
|
|
52
|
-
// This ensures that clicking the Select trigger doesn't close the containing DropdownMenu
|
|
53
|
-
event.stopPropagation();
|
|
54
|
-
}, autoFocus: autoFocus, children: [(0, jsx_runtime_1.jsx)("div", { className: (0, classnames_1.default)(Select_module_scss_1.default.selectValue, {
|
|
55
|
-
[Select_module_scss_1.default.placeholder]: value === undefined,
|
|
56
|
-
}), children: selectedOption ? selectedOption.label : readOnly ? "" : placeholder }), (0, jsx_runtime_1.jsx)("span", { className: Select_module_scss_1.default.action, children: (0, jsx_runtime_1.jsx)(IconNative_1.default, { name: "chevrondown" }) })] })), (0, jsx_runtime_1.jsx)(react_select_1.Portal, { container: root, children: (0, jsx_runtime_1.jsxs)(react_select_1.Content, { className: Select_module_scss_1.default.selectDropdownContent, position: "popper", style: { maxHeight: height, minWidth: width }, children: [(0, jsx_runtime_1.jsx)(react_select_1.ScrollUpButton, { className: Select_module_scss_1.default.selectScrollUpButton, children: (0, jsx_runtime_1.jsx)(IconNative_1.default, { name: "chevronup" }) }), (0, jsx_runtime_1.jsxs)(react_select_1.Viewport, { className: Select_module_scss_1.default.selectViewport, role: "listbox", children: [children, optionsArray.length === 0 && emptyListNode] }), (0, jsx_runtime_1.jsx)(react_select_1.ScrollDownButton, { className: Select_module_scss_1.default.selectScrollDownButton, children: (0, jsx_runtime_1.jsx)(IconNative_1.default, { name: "chevrondown" }) })] }) })] }));
|
|
57
|
-
});
|