@atom-learning/components 10.0.1 → 10.1.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/components/action-icon/ActionIcon.js +1 -1
- package/dist/components/action-icon/ActionIcon.js.map +1 -1
- package/dist/components/badge/BadgeText.js +1 -1
- package/dist/components/badge/BadgeText.js.map +1 -1
- package/dist/components/banner/BannerContainer.js.map +1 -1
- package/dist/components/banner/banner-regular/BannerRegularActions.js +1 -1
- package/dist/components/banner/banner-regular/BannerRegularActions.js.map +1 -1
- package/dist/components/calendar/Calendar.js +2 -2
- package/dist/components/calendar/Calendar.js.map +1 -1
- package/dist/components/carousel/Carousel.js.map +1 -1
- package/dist/components/checkbox-group/CheckboxGroupAllItem.js +3 -2
- package/dist/components/checkbox-group/CheckboxGroupAllItem.js.map +1 -1
- package/dist/components/checkbox-group/CheckboxGroupChecked.context.js +1 -1
- package/dist/components/checkbox-group/CheckboxGroupChecked.context.js.map +1 -1
- package/dist/components/checkbox-group/CheckboxGroupMounted.context.js +1 -1
- package/dist/components/checkbox-group/CheckboxGroupMounted.context.js.map +1 -1
- package/dist/components/chip/Chip.js +2 -2
- package/dist/components/chip/Chip.js.map +1 -1
- package/dist/components/create-password-field/CreatePasswordField.js +5 -5
- package/dist/components/create-password-field/CreatePasswordField.js.map +1 -1
- package/dist/components/data-table/DataTableHeaderCell.js +8 -8
- package/dist/components/data-table/DataTableHeaderCell.js.map +1 -1
- package/dist/components/data-table/DataTableSelectAllRowsCheckbox.js.map +1 -1
- package/dist/components/data-table/getNewAsyncData.js +1 -1
- package/dist/components/data-table/getNewAsyncData.js.map +1 -1
- package/dist/components/date-input/DateInput.js.map +1 -1
- package/dist/components/file-drop/FileDrop.js +2 -2
- package/dist/components/file-drop/FileDrop.js.map +1 -1
- package/dist/components/form/useFieldError.js +2 -1
- package/dist/components/form/useFieldError.js.map +1 -1
- package/dist/components/navigation/NavigationMenu.js +1 -1
- package/dist/components/navigation/NavigationMenu.js.map +1 -1
- package/dist/components/pagination/PaginationItems.js +2 -2
- package/dist/components/pagination/PaginationItems.js.map +1 -1
- package/dist/components/pagination/pagination.helper.js +5 -3
- package/dist/components/pagination/pagination.helper.js.map +1 -1
- package/dist/components/select-menu/SelectMenu.d.ts +16 -9
- package/dist/components/select-menu/SelectMenu.js +6 -4
- package/dist/components/select-menu/SelectMenu.js.map +1 -1
- package/dist/components/select-menu/SelectMenuContent.d.ts +5 -3
- package/dist/components/select-menu/SelectMenuContent.js +24 -65
- package/dist/components/select-menu/SelectMenuContent.js.map +1 -1
- package/dist/components/select-menu/SelectMenuItem.d.ts +5 -3
- package/dist/components/select-menu/SelectMenuItem.js +15 -15
- package/dist/components/select-menu/SelectMenuItem.js.map +1 -1
- package/dist/components/select-menu/SelectMenuLabel.d.ts +2 -2
- package/dist/components/select-menu/SelectMenuLabel.js +2 -2
- package/dist/components/select-menu/SelectMenuLabel.js.map +1 -1
- package/dist/components/select-menu/SelectMenuSeparator.d.ts +2 -2
- package/dist/components/select-menu/SelectMenuSeparator.js +2 -2
- package/dist/components/select-menu/SelectMenuSeparator.js.map +1 -1
- package/dist/components/select-menu/SelectMenuTrigger.d.ts +3 -2
- package/dist/components/select-menu/SelectMenuTrigger.js +12 -12
- package/dist/components/select-menu/SelectMenuTrigger.js.map +1 -1
- package/dist/components/select-menu-field/SelectMenuField.js +5 -5
- package/dist/components/select-menu-field/SelectMenuField.js.map +1 -1
- package/dist/components/slider/Slider.js.map +1 -1
- package/dist/components/slider-field/SliderField.js +2 -1
- package/dist/components/slider-field/SliderField.js.map +1 -1
- package/dist/components/stepper/Stepper.js +1 -1
- package/dist/components/stepper/Stepper.js.map +1 -1
- package/dist/components/stepper/StepperSteps.js +7 -5
- package/dist/components/stepper/StepperSteps.js.map +1 -1
- package/dist/components/table/useStickyColumnsCss.js +1 -1
- package/dist/components/table/useStickyColumnsCss.js.map +1 -1
- package/dist/docgen.json +1 -1
- package/dist/index.cjs.js +131 -159
- package/dist/index.cjs.js.map +1 -1
- package/dist/styled.js +15 -11
- package/dist/styled.js.map +1 -1
- package/dist/utilities/hooks/useResizeObserver.js +1 -3
- package/dist/utilities/hooks/useResizeObserver.js.map +1 -1
- package/dist/utilities/uri/index.js +2 -1
- package/dist/utilities/uri/index.js.map +1 -1
- package/package.json +15 -7
package/dist/index.cjs.js
CHANGED
|
@@ -41,8 +41,8 @@ let tailwind_variants = require("tailwind-variants");
|
|
|
41
41
|
let react_jsx_runtime = require("react/jsx-runtime");
|
|
42
42
|
let _atom_learning_icons = require("@atom-learning/icons");
|
|
43
43
|
let _radix_ui_react_slot = require("@radix-ui/react-slot");
|
|
44
|
-
let
|
|
45
|
-
|
|
44
|
+
let tiny_invariant = require("tiny-invariant");
|
|
45
|
+
tiny_invariant = __toESM(tiny_invariant, 1);
|
|
46
46
|
let _radix_ui_react_tooltip = require("@radix-ui/react-tooltip");
|
|
47
47
|
let _radix_ui_react_alert_dialog = require("@radix-ui/react-alert-dialog");
|
|
48
48
|
let throttle_debounce = require("throttle-debounce");
|
|
@@ -79,8 +79,8 @@ let _radix_ui_react_navigation_menu = require("@radix-ui/react-navigation-menu")
|
|
|
79
79
|
_radix_ui_react_navigation_menu = __toESM(_radix_ui_react_navigation_menu, 1);
|
|
80
80
|
let _radix_ui_react_progress = require("@radix-ui/react-progress");
|
|
81
81
|
_radix_ui_react_progress = __toESM(_radix_ui_react_progress, 1);
|
|
82
|
-
let
|
|
83
|
-
|
|
82
|
+
let react_aria_components = require("react-aria-components");
|
|
83
|
+
react_aria_components = __toESM(react_aria_components, 1);
|
|
84
84
|
let _radix_ui_react_slider = require("@radix-ui/react-slider");
|
|
85
85
|
let _radix_ui_react_switch = require("@radix-ui/react-switch");
|
|
86
86
|
_radix_ui_react_switch = __toESM(_radix_ui_react_switch, 1);
|
|
@@ -90,7 +90,9 @@ let react_player_vimeo_js = require("react-player/vimeo.js");
|
|
|
90
90
|
react_player_vimeo_js = __toESM(react_player_vimeo_js, 1);
|
|
91
91
|
//#region src/styled.tsx
|
|
92
92
|
tailwind_variants.defaultConfig.twMerge = false;
|
|
93
|
-
var
|
|
93
|
+
var ARBITRARY_NUMBER_RE = /^\[[\d.]+\]$/;
|
|
94
|
+
var isArbitraryNumber = (value) => ARBITRARY_NUMBER_RE.test(value) || !Number.isNaN(Number(value));
|
|
95
|
+
var DATA_STATE_VARIANT_RE = /^data-\[state=[^\]]+\]:/;
|
|
94
96
|
var twMerge = (0, tailwind_merge.extendTailwindMerge)({ extend: {
|
|
95
97
|
classGroups: {
|
|
96
98
|
capsize: [{ capsize: ["none", isArbitraryNumber] }],
|
|
@@ -112,11 +114,12 @@ var Theme = ({ children, theme }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
|
112
114
|
var createTheme = (config) => Object.fromEntries(Object.values(config).flatMap((tokens) => Object.entries(tokens).map(([token, value]) => [`--${token}`, value])));
|
|
113
115
|
function styled(el, styles, options) {
|
|
114
116
|
const variantKeys = Object.keys(styles.variants || {});
|
|
117
|
+
const variantKeySet = new Set(variantKeys);
|
|
115
118
|
const enableResponsiveVariants = options?.enableResponsiveVariants === true;
|
|
116
119
|
const tvFn = (0, tailwind_variants.tv)(styles);
|
|
117
120
|
const Comp = (props) => {
|
|
118
|
-
const { ref
|
|
119
|
-
const additionalStyles = enableResponsiveVariants ? variantKeys.
|
|
121
|
+
const { ref } = props;
|
|
122
|
+
const additionalStyles = enableResponsiveVariants ? variantKeys.flatMap((variantKey) => {
|
|
120
123
|
const responsiveVariantConfig = props[variantKey];
|
|
121
124
|
const variantStyles = styles.variants[variantKey];
|
|
122
125
|
if (typeof responsiveVariantConfig === "object" && responsiveVariantConfig && !Array.isArray(responsiveVariantConfig)) return Object.entries(responsiveVariantConfig).flatMap(([key, val]) => {
|
|
@@ -128,16 +131,17 @@ function styled(el, styles, options) {
|
|
|
128
131
|
return [];
|
|
129
132
|
});
|
|
130
133
|
return [];
|
|
131
|
-
})
|
|
132
|
-
const cls = tvFn(variantKeys.length > 0 ? Object.fromEntries(Object.entries(props).
|
|
134
|
+
}) : [];
|
|
135
|
+
const cls = tvFn(variantKeys.length > 0 ? Object.fromEntries(Object.entries(props).flatMap(([key, value]) => {
|
|
136
|
+
if (!variantKeySet.has(key)) return [];
|
|
133
137
|
const variantConfig = styles.variants?.[key];
|
|
134
138
|
if (variantConfig && "true" in variantConfig && "false" in variantConfig) {
|
|
135
|
-
if (value === true || value === false) return [key, value];
|
|
136
|
-
return [key, null];
|
|
139
|
+
if (value === true || value === false) return [[key, value]];
|
|
140
|
+
return [[key, null]];
|
|
137
141
|
}
|
|
138
|
-
return [key, value];
|
|
142
|
+
return [[key, value]];
|
|
139
143
|
})) : {});
|
|
140
|
-
const filteredProps = Object.fromEntries(Object.entries(props).filter(([key]) => !
|
|
144
|
+
const filteredProps = Object.fromEntries(Object.entries(props).filter(([key]) => !variantKeySet.has(key) && key !== "as" && key !== "__wrapperClasses"));
|
|
141
145
|
const mergedClassName = (0, clsx.default)(cls, additionalStyles).trim();
|
|
142
146
|
const propsClassName = props.className;
|
|
143
147
|
const wrapperClasses = props.__wrapperClasses;
|
|
@@ -146,7 +150,7 @@ function styled(el, styles, options) {
|
|
|
146
150
|
if (typeof el === "string") {
|
|
147
151
|
const { className: _, ...restFilteredProps } = filteredProps;
|
|
148
152
|
const finalClassName = wrapperClasses && propsClassName ? twMerge(mergedClassName, wrapperClasses, propsClassName) : wrapperClasses ? twMerge(mergedClassName, wrapperClasses) : propsClassName ? (() => {
|
|
149
|
-
if (propsClassName.split(" ").some((cls) =>
|
|
153
|
+
if (propsClassName.split(" ").some((cls) => DATA_STATE_VARIANT_RE.test(cls))) return twMerge(propsClassName, mergedClassName);
|
|
150
154
|
else return twMerge(mergedClassName, propsClassName);
|
|
151
155
|
})() : twMerge(mergedClassName);
|
|
152
156
|
return react.default.createElement(props.as || elementType, {
|
|
@@ -178,7 +182,7 @@ function styled(el, styles, options) {
|
|
|
178
182
|
ref
|
|
179
183
|
};
|
|
180
184
|
if (isStyledComponent) {
|
|
181
|
-
const hasDataAttributeVariants = propsClassName ? propsClassName.split(" ").some((cls) =>
|
|
185
|
+
const hasDataAttributeVariants = propsClassName ? propsClassName.split(" ").some((cls) => DATA_STATE_VARIANT_RE.test(cls)) : false;
|
|
182
186
|
const mergedPropsAndComponent = propsClassName ? hasDataAttributeVariants ? twMerge(propsClassName, mergedClassName) : twMerge(mergedClassName, propsClassName) : mergedClassName;
|
|
183
187
|
propsForComponent.__wrapperClasses = mergedClassName;
|
|
184
188
|
propsForComponent.className = mergedPropsAndComponent || void 0;
|
|
@@ -499,7 +503,8 @@ var OptionalTooltipWrapper = ({ hasTooltip, label, tooltipSide, children }) => {
|
|
|
499
503
|
OptionalTooltipWrapper.displayName = "OptionalTooltipWrapper";
|
|
500
504
|
//#endregion
|
|
501
505
|
//#region src/utilities/uri/index.ts
|
|
502
|
-
var
|
|
506
|
+
var EXTERNAL_URL_RE = /^https?:\/\//;
|
|
507
|
+
var isExternalUrl = (url) => !!url && EXTERNAL_URL_RE.test(url);
|
|
503
508
|
var getExternalAnchorProps = (url) => isExternalUrl(url) ? {
|
|
504
509
|
target: "_blank",
|
|
505
510
|
rel: "noopener noreferrer"
|
|
@@ -611,7 +616,7 @@ var StyledButton$5 = styled("button", {
|
|
|
611
616
|
}, { enableResponsiveVariants: true });
|
|
612
617
|
var ActionIcon = ({ ref, children, theme = "primary", appearance = "simple", size = "sm", label, href, disabled, hasTooltip = true, tooltipSide, ...rest }) => {
|
|
613
618
|
const INVALID_CHILDREN_MESSAGE = `A single ${Icon.name} component is permitted as a child of ActionIcon`;
|
|
614
|
-
(0,
|
|
619
|
+
(0, tiny_invariant.default)(react.Children.count(children) === 1, INVALID_CHILDREN_MESSAGE);
|
|
615
620
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(OptionalTooltipWrapper, {
|
|
616
621
|
hasTooltip,
|
|
617
622
|
label,
|
|
@@ -633,7 +638,7 @@ var ActionIcon = ({ ref, children, theme = "primary", appearance = "simple", siz
|
|
|
633
638
|
disabled,
|
|
634
639
|
children: react.Children.map(children, (child) => {
|
|
635
640
|
if (!react.isValidElement(child)) throw new Error(INVALID_CHILDREN_MESSAGE);
|
|
636
|
-
(0,
|
|
641
|
+
(0, tiny_invariant.default)(child.type === Icon, `Children of type ${child?.type} aren't permitted. Only an ${Icon.name} component is allowed in ActionIcon`);
|
|
637
642
|
return react.cloneElement(child, { size: ActionIconSizeMap[size] });
|
|
638
643
|
})
|
|
639
644
|
})
|
|
@@ -1657,9 +1662,7 @@ var useResizeObserver = ({ delay = 500, elements, onResize }) => {
|
|
|
1657
1662
|
elements.forEach((element) => {
|
|
1658
1663
|
if (element) observer.observe(element);
|
|
1659
1664
|
});
|
|
1660
|
-
return () =>
|
|
1661
|
-
elements.forEach((element) => element && observer.unobserve(element));
|
|
1662
|
-
};
|
|
1665
|
+
return () => observer.disconnect();
|
|
1663
1666
|
}, [observer, elements]);
|
|
1664
1667
|
return observer;
|
|
1665
1668
|
};
|
|
@@ -1669,7 +1672,7 @@ var ObserveBadgeTextOverflow = ({ elRef }) => {
|
|
|
1669
1672
|
const { setIsOverflowing } = react.use(BadgeContext);
|
|
1670
1673
|
useResizeObserver({
|
|
1671
1674
|
delay: 0,
|
|
1672
|
-
elements: [elRef],
|
|
1675
|
+
elements: react.useMemo(() => [elRef], [elRef]),
|
|
1673
1676
|
onResize: () => {
|
|
1674
1677
|
if (!elRef?.scrollWidth || !elRef?.clientWidth) return;
|
|
1675
1678
|
setIsOverflowing?.(elRef.scrollWidth > elRef.clientWidth);
|
|
@@ -1945,14 +1948,14 @@ var BannerRegularActions = ({ children, className, ...rest }) => {
|
|
|
1945
1948
|
const { size } = useBannerContext();
|
|
1946
1949
|
const gap = typeof size === "string" ? toGap[size] : "gap-2 md:gap-4";
|
|
1947
1950
|
const direction = typeof size === "string" ? toDirection$1[size] : "flex-col md:flex-row";
|
|
1948
|
-
(0,
|
|
1951
|
+
(0, tiny_invariant.default)(react.Children.count(children) <= MAX_ALLOWED_CHILDREN, `A maximum of ${MAX_ALLOWED_CHILDREN} ${BannerRegularButton.displayName} component(s) are permitted as children of ${BannerRegularActions.displayName}`);
|
|
1949
1952
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
1950
1953
|
className: cn("flex", gap, direction, className),
|
|
1951
1954
|
...rest,
|
|
1952
1955
|
children: react.Children.map(children, (child, index) => {
|
|
1953
1956
|
if (child == null) return child;
|
|
1954
1957
|
if (!react.isValidElement(child)) throw new Error(`Child passed to ${BannerRegularActions.displayName} is not a valid element`);
|
|
1955
|
-
(0,
|
|
1958
|
+
(0, tiny_invariant.default)(child.type === BannerRegularButton, `Children of type ${child?.type} aren't permitted. Only an ${BannerRegularButton.displayName} component is allowed in ${BannerRegularActions.displayName}`);
|
|
1956
1959
|
const propsToInject = { appearance: index > 0 ? "outline" : void 0 };
|
|
1957
1960
|
return react.cloneElement(child, propsToInject);
|
|
1958
1961
|
})
|
|
@@ -2653,7 +2656,7 @@ var generateNewCheckedFn = (currentChecked) => {
|
|
|
2653
2656
|
const newCheckedSet = new Set(currentChecked);
|
|
2654
2657
|
if (newItemChecked) newCheckedSet.add(itemValue);
|
|
2655
2658
|
else newCheckedSet.delete(itemValue);
|
|
2656
|
-
return
|
|
2659
|
+
return [...newCheckedSet];
|
|
2657
2660
|
};
|
|
2658
2661
|
};
|
|
2659
2662
|
var CheckboxGroupCheckedProvider = ({ checked: controlledChecked, defaultChecked = [], onCheckedChange, ...rest }) => {
|
|
@@ -2701,7 +2704,7 @@ var CheckboxGroupMountedProvider = (props) => {
|
|
|
2701
2704
|
const newMountedSet = new Set(prevMounted);
|
|
2702
2705
|
if (newItemMounted) newMountedSet.add(itemValue);
|
|
2703
2706
|
else newMountedSet.delete(itemValue);
|
|
2704
|
-
return
|
|
2707
|
+
return [...newMountedSet];
|
|
2705
2708
|
});
|
|
2706
2709
|
}, [handleItemMountedChangeFurtherUpContext]);
|
|
2707
2710
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(CheckboxGroupMountedContext, {
|
|
@@ -2727,8 +2730,9 @@ var CheckboxGroupAllItem = ({ onCheckedChange, title = "all", ...rest }) => {
|
|
|
2727
2730
|
onCheckedChange: handleItemCheckedChange,
|
|
2728
2731
|
checked: (() => {
|
|
2729
2732
|
if (!checkedItems.length || !mountedItems.length) return false;
|
|
2730
|
-
|
|
2731
|
-
if (mountedItems.
|
|
2733
|
+
const checkedSet = new Set(checkedItems);
|
|
2734
|
+
if (mountedItems.every((mountedItem) => checkedSet.has(mountedItem))) return true;
|
|
2735
|
+
if (mountedItems.some((mountedItem) => checkedSet.has(mountedItem))) return "indeterminate";
|
|
2732
2736
|
return false;
|
|
2733
2737
|
})(),
|
|
2734
2738
|
title,
|
|
@@ -3234,9 +3238,10 @@ var InlineFieldWrapper = ({ align = "start", children, className, description, d
|
|
|
3234
3238
|
InlineFieldWrapper.displayName = "InlineFieldWrapper";
|
|
3235
3239
|
//#endregion
|
|
3236
3240
|
//#region src/components/form/useFieldError.ts
|
|
3241
|
+
var FIELD_PATH_SEPARATOR_RE = /[,[\].]+?/;
|
|
3237
3242
|
var useFieldError = (fieldName) => {
|
|
3238
3243
|
const { errors } = (0, react_hook_form.useFormContext)();
|
|
3239
|
-
const fieldPath = fieldName.split(
|
|
3244
|
+
const fieldPath = fieldName.split(FIELD_PATH_SEPARATOR_RE).filter(Boolean);
|
|
3240
3245
|
const getErrors = () => (0, dlv.default)(errors, fieldPath);
|
|
3241
3246
|
return { error: getErrors()?.message };
|
|
3242
3247
|
};
|
|
@@ -3309,14 +3314,14 @@ var ChipContent = ({ children, ...rest }) => {
|
|
|
3309
3314
|
const isSingleChild = childrenArray.length <= 1;
|
|
3310
3315
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(StyledChipContent, {
|
|
3311
3316
|
...rest,
|
|
3312
|
-
children: childrenArray.map((child
|
|
3317
|
+
children: childrenArray.map((child) => {
|
|
3313
3318
|
if (!isSingleChild && typeof child === "string") return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
3314
3319
|
className: "overflow-hidden text-ellipsis whitespace-nowrap",
|
|
3315
3320
|
children: child
|
|
3316
3321
|
}, child);
|
|
3317
3322
|
if (react.isValidElement(child) && child.type === Icon) {
|
|
3318
3323
|
const iconProps = child.props;
|
|
3319
|
-
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ChipIcon, { ...iconProps },
|
|
3324
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ChipIcon, { ...iconProps }, child.key);
|
|
3320
3325
|
}
|
|
3321
3326
|
return child;
|
|
3322
3327
|
})
|
|
@@ -3905,6 +3910,10 @@ var PasswordField = ({ className, hideLabel, label = "Password", name, prompt =
|
|
|
3905
3910
|
PasswordField.displayName = "PasswordField";
|
|
3906
3911
|
//#endregion
|
|
3907
3912
|
//#region src/components/create-password-field/CreatePasswordField.tsx
|
|
3913
|
+
var getMessageTheme = (result, isFocused) => {
|
|
3914
|
+
if (result) return "success";
|
|
3915
|
+
return isFocused ? "neutral" : "error";
|
|
3916
|
+
};
|
|
3908
3917
|
var CreatePasswordField = ({ validate, defaultValidation, messageDirection = "row", label = "Create a password", name = "password", className, validation, appearance, ...rest }) => {
|
|
3909
3918
|
const { formState, control } = (0, react_hook_form.useFormContext)();
|
|
3910
3919
|
const [isFocused, setIsFocused] = react.useState(false);
|
|
@@ -3914,17 +3923,13 @@ var CreatePasswordField = ({ validate, defaultValidation, messageDirection = "ro
|
|
|
3914
3923
|
const validatePassword = react.useCallback(async (password) => {
|
|
3915
3924
|
const result = await validate(password);
|
|
3916
3925
|
if (result) {
|
|
3917
|
-
(0,
|
|
3926
|
+
(0, tiny_invariant.default)(typeof result === "object", "The validate function must return an object");
|
|
3918
3927
|
setValidationResult(result);
|
|
3919
3928
|
return Object.values(result).every((isValid) => isValid);
|
|
3920
3929
|
}
|
|
3921
3930
|
return false;
|
|
3922
3931
|
}, [setValidationResult]);
|
|
3923
3932
|
const handleChange = react.useMemo(() => (0, throttle_debounce.throttle)(500, validatePassword), [validatePassword]);
|
|
3924
|
-
const getMessageTheme = (result, isFocused) => {
|
|
3925
|
-
if (result) return "success";
|
|
3926
|
-
return isFocused ? "neutral" : "error";
|
|
3927
|
-
};
|
|
3928
3933
|
const showValidation = control.mode.isOnBlur && (isFocused || touched) || control.mode.isOnSubmit && (isFocused || formState.isSubmitted && error);
|
|
3929
3934
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
3930
3935
|
className,
|
|
@@ -3974,8 +3979,8 @@ var getNewAsyncData = async (getAsyncData, asyncDataOptions, paginationState, so
|
|
|
3974
3979
|
sortDirection: asyncDataOptions?.sortDirection ?? getSortDirection(sorting),
|
|
3975
3980
|
globalFilter: asyncDataOptions.globalFilter ?? globalFilter
|
|
3976
3981
|
});
|
|
3977
|
-
(0,
|
|
3978
|
-
(0,
|
|
3982
|
+
(0, tiny_invariant.default)(Array.isArray(newData?.results), "The getAsyncData function must return an object with a property `result` which must be an array");
|
|
3983
|
+
(0, tiny_invariant.default)(newData && Number.isInteger(newData.total) && newData.total >= 0, "The getAsyncData function must return an object with a property `total` which must be a positive integer or zero");
|
|
3979
3984
|
return newData;
|
|
3980
3985
|
};
|
|
3981
3986
|
//#endregion
|
|
@@ -4266,7 +4271,7 @@ var useStickyColumnsStyle = ({ numberOfStickyColumns, wrapperRef }) => {
|
|
|
4266
4271
|
const generateColumnsStyle = react.useCallback(() => {
|
|
4267
4272
|
let accWidth = 0;
|
|
4268
4273
|
const tableHeaderCells = wrapperRef.current?.querySelectorAll("th");
|
|
4269
|
-
return
|
|
4274
|
+
return [...tableHeaderCells || []].slice(0, numberOfStickyColumns).reduce((acc, column, index) => {
|
|
4270
4275
|
const elementNumber = index + 1;
|
|
4271
4276
|
const styleObject = {
|
|
4272
4277
|
...acc,
|
|
@@ -4975,18 +4980,18 @@ var SortIcon = ({ direction }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Ico
|
|
|
4975
4980
|
size: "sm",
|
|
4976
4981
|
className: "stroke-primary-900 absolute left-1"
|
|
4977
4982
|
});
|
|
4983
|
+
var handleKeyDown = (event, callback) => {
|
|
4984
|
+
if (event.key === "Enter" || event.key === " ") {
|
|
4985
|
+
event.preventDefault();
|
|
4986
|
+
callback(event);
|
|
4987
|
+
}
|
|
4988
|
+
};
|
|
4978
4989
|
var DataTableHeaderCell = ({ header, includeTotal = false, totalSuffix = "items", children, className, ...rest }) => {
|
|
4979
4990
|
const sortDirection = header.column.getIsSorted();
|
|
4980
4991
|
const { isSortable: isSortableTable, getRowModel } = useDataTable();
|
|
4981
4992
|
const isDataColumn = header.column.getCanSort();
|
|
4982
4993
|
const totalRows = getRowModel()?.rows?.length;
|
|
4983
4994
|
const { hoverProps, isHovered } = (0, react_aria.useHover)({});
|
|
4984
|
-
const handleKeyDown = (event, callback) => {
|
|
4985
|
-
if (event.key === "Enter" || event.key === " ") {
|
|
4986
|
-
event.preventDefault();
|
|
4987
|
-
callback(event);
|
|
4988
|
-
}
|
|
4989
|
-
};
|
|
4990
4995
|
const headerSortingHandler = header.column.getToggleSortingHandler();
|
|
4991
4996
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(StyledTableHeaderCell, {
|
|
4992
4997
|
isSortable: isSortableTable && isDataColumn,
|
|
@@ -5005,7 +5010,7 @@ var DataTableHeaderCell = ({ header, includeTotal = false, totalSuffix = "items"
|
|
|
5005
5010
|
className: cn("flex", "items-center", "relative", "size-6", "ml-2", isHovered ? "bg-primary-200" : "bg-primary-100", "rounded-sm"),
|
|
5006
5011
|
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(SortIcon, { direction: sortDirection })
|
|
5007
5012
|
}),
|
|
5008
|
-
includeTotal
|
|
5013
|
+
includeTotal ? /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(StyledCount, {
|
|
5009
5014
|
size: "sm",
|
|
5010
5015
|
weight: "normal",
|
|
5011
5016
|
children: [
|
|
@@ -5015,7 +5020,7 @@ var DataTableHeaderCell = ({ header, includeTotal = false, totalSuffix = "items"
|
|
|
5015
5020
|
totalSuffix,
|
|
5016
5021
|
")"
|
|
5017
5022
|
]
|
|
5018
|
-
})
|
|
5023
|
+
}) : null
|
|
5019
5024
|
]
|
|
5020
5025
|
})
|
|
5021
5026
|
});
|
|
@@ -5456,7 +5461,7 @@ var getPaginationElementsToRender = (currentPage, pagesCount, visibleElementsCou
|
|
|
5456
5461
|
if (canFitViewAllPopover) visiblePagesCount -= 1;
|
|
5457
5462
|
if (canFitEdgePage) visiblePagesCount -= 1;
|
|
5458
5463
|
const firstPage = paginationPages[0];
|
|
5459
|
-
const lastPage = paginationPages
|
|
5464
|
+
const lastPage = paginationPages.at(-1);
|
|
5460
5465
|
/**
|
|
5461
5466
|
* If we're truncating and current page is at the start of the page list,
|
|
5462
5467
|
* render the initial truncated page list, e.g.
|
|
@@ -5531,14 +5536,16 @@ var getPaginationElementsToRender = (currentPage, pagesCount, visibleElementsCou
|
|
|
5531
5536
|
};
|
|
5532
5537
|
var findNextAvailablePage = (startPage, disabledPages, pagesCount) => {
|
|
5533
5538
|
if (startPage > pagesCount) return;
|
|
5539
|
+
const disabledSet = new Set(disabledPages);
|
|
5534
5540
|
let nextPage = startPage;
|
|
5535
|
-
while (
|
|
5541
|
+
while (disabledSet.has(nextPage)) nextPage++;
|
|
5536
5542
|
return nextPage;
|
|
5537
5543
|
};
|
|
5538
5544
|
var findPreviousAvailablePage = (startPage, disabledPages) => {
|
|
5539
5545
|
if (startPage < 1) return;
|
|
5546
|
+
const disabledSet = new Set(disabledPages);
|
|
5540
5547
|
let previousPage = startPage;
|
|
5541
|
-
while (
|
|
5548
|
+
while (disabledSet.has(previousPage)) previousPage--;
|
|
5542
5549
|
return previousPage;
|
|
5543
5550
|
};
|
|
5544
5551
|
//#endregion
|
|
@@ -5853,9 +5860,9 @@ var PaginationPreviousButton = (props) => {
|
|
|
5853
5860
|
//#region src/components/pagination/PaginationItems.tsx
|
|
5854
5861
|
var PaginationItems = () => {
|
|
5855
5862
|
const { paginationItems } = usePagination();
|
|
5856
|
-
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(react_jsx_runtime.Fragment, { children: paginationItems.map((paginationItem
|
|
5863
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(react_jsx_runtime.Fragment, { children: paginationItems.map((paginationItem) => {
|
|
5857
5864
|
switch (paginationItem) {
|
|
5858
|
-
case VIEW_ALL_POPOVER: return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(PaginationPopover, {}, paginationItem
|
|
5865
|
+
case VIEW_ALL_POPOVER: return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(PaginationPopover, {}, paginationItem);
|
|
5859
5866
|
case GO_TO_PREVIOUS_PAGE: return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(PaginationPreviousButton, {}, paginationItem);
|
|
5860
5867
|
case GO_TO_NEXT_PAGE: return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(PaginationNextButton, {}, paginationItem);
|
|
5861
5868
|
default: return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(PaginationPage, { pageNumber: paginationItem }, paginationItem);
|
|
@@ -6136,7 +6143,7 @@ var StyledButton$2 = styled(Button, {
|
|
|
6136
6143
|
});
|
|
6137
6144
|
var offsetWeekdayNames = (weekdayNames, firstDayOfWeek) => {
|
|
6138
6145
|
const start = weekdayNames.slice(0, firstDayOfWeek);
|
|
6139
|
-
return weekdayNames.slice(firstDayOfWeek)
|
|
6146
|
+
return [...weekdayNames.slice(firstDayOfWeek), ...start];
|
|
6140
6147
|
};
|
|
6141
6148
|
var Calendar = ({ className, refDateSelected, refDateToday, firstDayOfWeek = 0, monthNames = monthNamesShort, weekdayNames = weekdayNamesShort, labels = DEFAULT_LABELS, date: dateProp, minDate, maxDate, setYear, ...rest }) => {
|
|
6142
6149
|
const [fallbackDate] = react.useState(() => /* @__PURE__ */ new Date());
|
|
@@ -6198,7 +6205,7 @@ var Calendar = ({ className, refDateSelected, refDateToday, firstDayOfWeek = 0,
|
|
|
6198
6205
|
onClick: () => handleSetYear(year),
|
|
6199
6206
|
selected: isCurrentYear,
|
|
6200
6207
|
children: year
|
|
6201
|
-
},
|
|
6208
|
+
}, year);
|
|
6202
6209
|
})
|
|
6203
6210
|
}),
|
|
6204
6211
|
!showYears && calendars.map(({ month, year, weeks }) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", { children: [
|
|
@@ -7357,7 +7364,7 @@ var NavigationMenuComponent = ({ children, className, ...rest }) => {
|
|
|
7357
7364
|
}, [react.Children.toArray(children).length]);
|
|
7358
7365
|
react.useEffect(() => {
|
|
7359
7366
|
let timer;
|
|
7360
|
-
if (activeItem === "") timer = setTimeout(
|
|
7367
|
+
if (activeItem === "") timer = setTimeout(setOffset, 200, null);
|
|
7361
7368
|
return () => {
|
|
7362
7369
|
if (timer !== null) clearTimeout(timer);
|
|
7363
7370
|
};
|
|
@@ -8503,72 +8510,33 @@ var SelectMenuContext = react.createContext({
|
|
|
8503
8510
|
var useSelectMenuContext = () => react.use(SelectMenuContext);
|
|
8504
8511
|
//#endregion
|
|
8505
8512
|
//#region src/components/select-menu/SelectMenuContent.tsx
|
|
8506
|
-
var Content$2 = styled(
|
|
8507
|
-
|
|
8508
|
-
|
|
8509
|
-
|
|
8510
|
-
|
|
8511
|
-
|
|
8512
|
-
|
|
8513
|
-
|
|
8514
|
-
|
|
8515
|
-
|
|
8516
|
-
|
|
8517
|
-
|
|
8518
|
-
|
|
8519
|
-
|
|
8520
|
-
|
|
8521
|
-
|
|
8522
|
-
|
|
8523
|
-
|
|
8524
|
-
popper: ["max-h-(--radix-select-content-available-height)", "min-w-(--radix-select-trigger-width)"],
|
|
8525
|
-
"item-aligned": []
|
|
8526
|
-
} }
|
|
8527
|
-
});
|
|
8528
|
-
var Viewport = styled(_radix_ui_react_select.Viewport, {
|
|
8529
|
-
base: ["p-1", "w-full"],
|
|
8530
|
-
variants: { position: {
|
|
8531
|
-
popper: ["h-(--radix-select-content-available-height)"],
|
|
8532
|
-
"item-aligned": []
|
|
8533
|
-
} }
|
|
8534
|
-
});
|
|
8535
|
-
var ScrollUpButton = styled(_radix_ui_react_select.ScrollUpButton, { base: [
|
|
8536
|
-
"flex",
|
|
8537
|
-
"items-center",
|
|
8538
|
-
"justify-center",
|
|
8539
|
-
"h-6",
|
|
8540
|
-
"cursor-default"
|
|
8541
|
-
] });
|
|
8542
|
-
var ScrollDownButton = styled(_radix_ui_react_select.ScrollDownButton, { base: [
|
|
8543
|
-
"flex",
|
|
8544
|
-
"items-center",
|
|
8545
|
-
"justify-center",
|
|
8546
|
-
"h-6",
|
|
8547
|
-
"cursor-default"
|
|
8548
|
-
] });
|
|
8549
|
-
var SelectMenuContent = ({ ref, children, position = "popper", sideOffset = 4, ...rest }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_radix_ui_react_select.Portal, { children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(Content$2, {
|
|
8513
|
+
var Content$2 = styled(react_aria_components.Popover, { base: [
|
|
8514
|
+
"bg-white",
|
|
8515
|
+
"rounded-md",
|
|
8516
|
+
"shadow-lg",
|
|
8517
|
+
"z-10",
|
|
8518
|
+
"overflow-hidden",
|
|
8519
|
+
"will-change-transform",
|
|
8520
|
+
"min-w-[var(--trigger-width)]",
|
|
8521
|
+
"max-w-[min(calc(100vw-(--spacing(4))),--spacing(100))]"
|
|
8522
|
+
] }, { enablePolymorphism: false });
|
|
8523
|
+
var Viewport = styled(react_aria_components.ListBox, { base: [
|
|
8524
|
+
"max-h-[inherit]",
|
|
8525
|
+
"w-full",
|
|
8526
|
+
"overflow-auto",
|
|
8527
|
+
"p-1",
|
|
8528
|
+
"outline-none"
|
|
8529
|
+
] }, { enablePolymorphism: false });
|
|
8530
|
+
var SelectMenuContent = ({ ref, children, offset = 4, ...rest }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Content$2, {
|
|
8550
8531
|
ref,
|
|
8551
|
-
|
|
8552
|
-
|
|
8532
|
+
offset,
|
|
8533
|
+
containerPadding: 8,
|
|
8553
8534
|
...rest,
|
|
8554
|
-
children:
|
|
8555
|
-
|
|
8556
|
-
is: _atom_learning_icons.ChevronUp,
|
|
8557
|
-
className: "text-grey-700 size-4"
|
|
8558
|
-
}) }),
|
|
8559
|
-
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(Viewport, {
|
|
8560
|
-
position,
|
|
8561
|
-
children
|
|
8562
|
-
}),
|
|
8563
|
-
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(ScrollDownButton, { children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Icon, {
|
|
8564
|
-
is: _atom_learning_icons.ChevronDown,
|
|
8565
|
-
className: "text-grey-700 size-4"
|
|
8566
|
-
}) })
|
|
8567
|
-
]
|
|
8568
|
-
}) });
|
|
8535
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Viewport, { children })
|
|
8536
|
+
});
|
|
8569
8537
|
//#endregion
|
|
8570
8538
|
//#region src/components/select-menu/SelectMenuItem.tsx
|
|
8571
|
-
var Item = styled(
|
|
8539
|
+
var Item = styled(react_aria_components.ListBoxItem, {
|
|
8572
8540
|
base: [
|
|
8573
8541
|
"relative",
|
|
8574
8542
|
"flex",
|
|
@@ -8579,11 +8547,11 @@ var Item = styled(_radix_ui_react_select.Item, {
|
|
|
8579
8547
|
"cursor-pointer",
|
|
8580
8548
|
"rounded-sm",
|
|
8581
8549
|
"outline-none",
|
|
8582
|
-
"data-disabled:cursor-not-allowed",
|
|
8583
|
-
"data-disabled:opacity-30",
|
|
8584
|
-
"data-
|
|
8585
|
-
"data-
|
|
8586
|
-
"data-
|
|
8550
|
+
"data-[disabled]:cursor-not-allowed",
|
|
8551
|
+
"data-[disabled]:opacity-30",
|
|
8552
|
+
"data-[hovered]:bg-grey-100",
|
|
8553
|
+
"data-[focused]:bg-grey-100",
|
|
8554
|
+
"data-[focus-visible]:outline-none"
|
|
8587
8555
|
],
|
|
8588
8556
|
variants: { size: {
|
|
8589
8557
|
sm: [
|
|
@@ -8603,26 +8571,26 @@ var Item = styled(_radix_ui_react_select.Item, {
|
|
|
8603
8571
|
"pr-6"
|
|
8604
8572
|
]
|
|
8605
8573
|
} }
|
|
8606
|
-
});
|
|
8607
|
-
var SelectMenuItem = ({
|
|
8574
|
+
}, { enablePolymorphism: false });
|
|
8575
|
+
var SelectMenuItem = ({ children, textValue, ...rest }) => {
|
|
8608
8576
|
const { size } = useSelectMenuContext();
|
|
8609
|
-
return /* @__PURE__ */ (0, react_jsx_runtime.
|
|
8610
|
-
ref,
|
|
8577
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Item, {
|
|
8611
8578
|
size,
|
|
8579
|
+
textValue: textValue ?? (typeof children === "string" ? children : void 0),
|
|
8612
8580
|
...rest,
|
|
8613
|
-
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
8581
|
+
children: ({ isSelected }) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
8614
8582
|
className: "absolute left-2 inline-flex items-center",
|
|
8615
|
-
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Icon, {
|
|
8583
|
+
children: isSelected && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Icon, {
|
|
8616
8584
|
is: _atom_learning_icons.Ok,
|
|
8617
8585
|
className: size === "sm" ? "size-3" : "size-4"
|
|
8618
8586
|
})
|
|
8619
|
-
}),
|
|
8587
|
+
}), children] })
|
|
8620
8588
|
});
|
|
8621
8589
|
};
|
|
8622
8590
|
//#endregion
|
|
8623
8591
|
//#region src/components/select-menu/SelectMenuLabel.tsx
|
|
8624
8592
|
var SelectMenuLabel = ({ className, ...rest }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Text, {
|
|
8625
|
-
as:
|
|
8593
|
+
as: react_aria_components.Header,
|
|
8626
8594
|
size: "sm",
|
|
8627
8595
|
className: cn("p-2", "mb-1", "text-text-subtle", className),
|
|
8628
8596
|
...rest
|
|
@@ -8630,7 +8598,7 @@ var SelectMenuLabel = ({ className, ...rest }) => /* @__PURE__ */ (0, react_jsx_
|
|
|
8630
8598
|
SelectMenuLabel.displayName = "SelectMenuLabel";
|
|
8631
8599
|
//#endregion
|
|
8632
8600
|
//#region src/components/select-menu/SelectMenuSeparator.tsx
|
|
8633
|
-
var SelectMenuSeparator = styled(
|
|
8601
|
+
var SelectMenuSeparator = styled(react_aria_components.Separator, { base: [
|
|
8634
8602
|
"h-px",
|
|
8635
8603
|
"bg-grey-200",
|
|
8636
8604
|
"my-2",
|
|
@@ -8638,7 +8606,7 @@ var SelectMenuSeparator = styled(_radix_ui_react_select.Separator, { base: [
|
|
|
8638
8606
|
] }, { enablePolymorphism: false });
|
|
8639
8607
|
//#endregion
|
|
8640
8608
|
//#region src/components/select-menu/SelectMenuTrigger.tsx
|
|
8641
|
-
var Trigger$2 = styled(
|
|
8609
|
+
var Trigger$2 = styled(react_aria_components.Button, {
|
|
8642
8610
|
base: [
|
|
8643
8611
|
"appearance-none",
|
|
8644
8612
|
"rounded-md",
|
|
@@ -8656,11 +8624,11 @@ var Trigger$2 = styled(_radix_ui_react_select.Trigger, {
|
|
|
8656
8624
|
"hover:cursor-pointer",
|
|
8657
8625
|
"disabled:opacity-30",
|
|
8658
8626
|
"disabled:cursor-not-allowed",
|
|
8659
|
-
"focus:outline-2",
|
|
8660
|
-
"focus:outline-blue-800",
|
|
8661
|
-
"focus:outline-offset-1",
|
|
8662
|
-
"focus:outline-solid",
|
|
8663
|
-
"focus:z-1"
|
|
8627
|
+
"data-[focus-visible]:outline-2",
|
|
8628
|
+
"data-[focus-visible]:outline-blue-800",
|
|
8629
|
+
"data-[focus-visible]:outline-offset-1",
|
|
8630
|
+
"data-[focus-visible]:outline-solid",
|
|
8631
|
+
"data-[focus-visible]:z-1"
|
|
8664
8632
|
],
|
|
8665
8633
|
variants: {
|
|
8666
8634
|
size: {
|
|
@@ -8687,9 +8655,9 @@ var Trigger$2 = styled(_radix_ui_react_select.Trigger, {
|
|
|
8687
8655
|
white: ["bg-white"],
|
|
8688
8656
|
grey: ["bg-grey-100"]
|
|
8689
8657
|
},
|
|
8690
|
-
state: { error: ["bg-danger-light", "focus:outline-danger"] }
|
|
8658
|
+
state: { error: ["bg-danger-light", "data-[focus-visible]:outline-danger"] }
|
|
8691
8659
|
}
|
|
8692
|
-
});
|
|
8660
|
+
}, { enablePolymorphism: false });
|
|
8693
8661
|
var TriggerIcon = styled(Icon, {
|
|
8694
8662
|
base: [
|
|
8695
8663
|
"absolute",
|
|
@@ -8712,9 +8680,9 @@ var SelectMenuTrigger = ({ ref, placeholder, children, ...rest }) => {
|
|
|
8712
8680
|
theme,
|
|
8713
8681
|
state,
|
|
8714
8682
|
...rest,
|
|
8715
|
-
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
8716
|
-
|
|
8717
|
-
children
|
|
8683
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(react_aria_components.SelectValue, {
|
|
8684
|
+
className: "truncate",
|
|
8685
|
+
children: ({ isPlaceholder, selectedText }) => isPlaceholder ? placeholder ?? "" : children ?? selectedText
|
|
8718
8686
|
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(TriggerIcon, {
|
|
8719
8687
|
is: _atom_learning_icons.ChevronDown,
|
|
8720
8688
|
size
|
|
@@ -8723,7 +8691,7 @@ var SelectMenuTrigger = ({ ref, placeholder, children, ...rest }) => {
|
|
|
8723
8691
|
};
|
|
8724
8692
|
//#endregion
|
|
8725
8693
|
//#region src/components/select-menu/SelectMenu.tsx
|
|
8726
|
-
var SelectMenuRoot = ({ size = "md", theme = "grey", state, children, ...rest }) => {
|
|
8694
|
+
var SelectMenuRoot = ({ size = "md", theme = "grey", state, className, children, ...rest }) => {
|
|
8727
8695
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(SelectMenuContext, {
|
|
8728
8696
|
value: react.useMemo(() => ({
|
|
8729
8697
|
size,
|
|
@@ -8734,7 +8702,8 @@ var SelectMenuRoot = ({ size = "md", theme = "grey", state, children, ...rest })
|
|
|
8734
8702
|
theme,
|
|
8735
8703
|
state
|
|
8736
8704
|
]),
|
|
8737
|
-
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
8705
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(react_aria_components.Select, {
|
|
8706
|
+
className: cn("w-full", className),
|
|
8738
8707
|
...rest,
|
|
8739
8708
|
children
|
|
8740
8709
|
})
|
|
@@ -8744,7 +8713,7 @@ var SelectMenu = /* @__PURE__ */ Object.assign(SelectMenuRoot, {
|
|
|
8744
8713
|
Trigger: SelectMenuTrigger,
|
|
8745
8714
|
Content: SelectMenuContent,
|
|
8746
8715
|
Item: SelectMenuItem,
|
|
8747
|
-
Group:
|
|
8716
|
+
Group: react_aria_components.ListBoxSection,
|
|
8748
8717
|
Label: SelectMenuLabel,
|
|
8749
8718
|
Separator: SelectMenuSeparator
|
|
8750
8719
|
});
|
|
@@ -8771,17 +8740,17 @@ var SelectMenuField = ({ className, hideLabel, children, name, label, validation
|
|
|
8771
8740
|
prompt,
|
|
8772
8741
|
required: Boolean(validation?.required),
|
|
8773
8742
|
children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(SelectMenu, {
|
|
8774
|
-
|
|
8775
|
-
|
|
8743
|
+
"aria-label": label,
|
|
8744
|
+
selectedKey: value === "" ? null : value,
|
|
8745
|
+
onSelectionChange: onChange,
|
|
8776
8746
|
size,
|
|
8777
8747
|
theme: formTheme,
|
|
8778
|
-
disabled,
|
|
8748
|
+
isDisabled: disabled,
|
|
8779
8749
|
...error && { state: "error" },
|
|
8780
8750
|
...rest,
|
|
8781
8751
|
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(SelectMenu.Trigger, {
|
|
8782
8752
|
ref,
|
|
8783
|
-
placeholder
|
|
8784
|
-
"aria-label": label
|
|
8753
|
+
placeholder
|
|
8785
8754
|
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(SelectMenu.Content, { children })]
|
|
8786
8755
|
})
|
|
8787
8756
|
});
|
|
@@ -9036,7 +9005,8 @@ var Slider = /* @__PURE__ */ Object.assign(SliderComponent, {
|
|
|
9036
9005
|
});
|
|
9037
9006
|
//#endregion
|
|
9038
9007
|
//#region src/components/slider-field/SliderField.tsx
|
|
9039
|
-
var
|
|
9008
|
+
var DEFAULT_STEPS = [];
|
|
9009
|
+
var SliderField = ({ className, hideLabel, label, name, defaultValue, value, validation, outputLabel, min = 0, max = 100, steps = DEFAULT_STEPS, ...rest }) => {
|
|
9040
9010
|
const { control, setValue } = (0, react_hook_form.useFormContext)();
|
|
9041
9011
|
const { field: { ref, onChange, value: innerValue, name: innerName } } = (0, react_hook_form.useController)({
|
|
9042
9012
|
name,
|
|
@@ -9577,14 +9547,16 @@ var StepperStepsContainer = styled("div", {
|
|
|
9577
9547
|
});
|
|
9578
9548
|
var StepperSteps = ({ className }) => {
|
|
9579
9549
|
const { steps, goToStep, activeStep, viewedSteps, allowSkip, direction, hideLabels, completedSteps, showCompletedIcons } = useStepper();
|
|
9550
|
+
const viewedStepsSet = new Set(viewedSteps);
|
|
9551
|
+
const completedStepsSet = new Set(completedSteps);
|
|
9580
9552
|
const getBulletStatus = (index) => {
|
|
9581
9553
|
const activeBullet = steps[index];
|
|
9582
9554
|
if (activeBullet.status) return activeBullet.status;
|
|
9583
9555
|
if (completedSteps.length === steps.length) return Status.SUCCESS;
|
|
9584
|
-
if (activeStep === index &&
|
|
9556
|
+
if (activeStep === index && completedStepsSet.has(activeStep)) return Status.REVIEWED;
|
|
9585
9557
|
if (activeStep === index) return Status.ACTIVE;
|
|
9586
|
-
if (
|
|
9587
|
-
if (
|
|
9558
|
+
if (completedStepsSet.has(index)) return Status.COMPLETED;
|
|
9559
|
+
if (viewedStepsSet.has(index)) return Status.VIEWED;
|
|
9588
9560
|
return Status.DEFAULT;
|
|
9589
9561
|
};
|
|
9590
9562
|
const getSeparatorStatus = (index) => {
|
|
@@ -9610,12 +9582,12 @@ var StepperSteps = ({ className }) => {
|
|
|
9610
9582
|
canInteract: allowSkip,
|
|
9611
9583
|
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(StepperStepBullet, {
|
|
9612
9584
|
as: allowSkip ? "button" : "div",
|
|
9613
|
-
onClick: () => allowSkip &&
|
|
9585
|
+
onClick: () => allowSkip && viewedStepsSet.has(index) ? goToStep?.(index) : void 0,
|
|
9614
9586
|
status: bulletStatus,
|
|
9615
9587
|
"aria-current": index === activeStep ? "step" : void 0,
|
|
9616
9588
|
"aria-label": !step.label ? `step ${index + 1}` : "",
|
|
9617
9589
|
"aria-labelledby": step.label ? `step-${index}` : void 0,
|
|
9618
|
-
className: allowSkip &&
|
|
9590
|
+
className: allowSkip && viewedStepsSet.has(index) ? "cursor-pointer" : "cursor-auto",
|
|
9619
9591
|
children: step.status === Status.SUCCESS || showCompletedIcons && bulletStatus === Status.COMPLETED ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Icon, { is: _atom_learning_icons.Ok }) : index + 1
|
|
9620
9592
|
}), step.label && !hideLabels && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(StepperStepLabel, {
|
|
9621
9593
|
as: "span",
|
|
@@ -9631,7 +9603,7 @@ var StepperSteps = ({ className }) => {
|
|
|
9631
9603
|
//#endregion
|
|
9632
9604
|
//#region src/components/stepper/Stepper.tsx
|
|
9633
9605
|
var StepperComponent = ({ children, stepCount, allowSkip, onComplete, onStepChange, direction = "horizontal", steps, hideLabels = false, showCompletedIcons = false, className }) => {
|
|
9634
|
-
(0,
|
|
9606
|
+
(0, tiny_invariant.default)(!(stepCount && steps), "`Stepper` should only be given one of `stepCount` or `steps`. When both are provided, `steps` will be used and `stepCount` will be ignored.");
|
|
9635
9607
|
const count = steps?.length || stepCount || 0;
|
|
9636
9608
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(StepperProvider, {
|
|
9637
9609
|
stepCount: count,
|
|
@@ -11039,12 +11011,12 @@ var FileDrop = ({ children, accept, multiple, onDrop, ...rest }) => {
|
|
|
11039
11011
|
const handleDrop = (fileList) => {
|
|
11040
11012
|
if (!fileList) return;
|
|
11041
11013
|
setIsDragging(false);
|
|
11042
|
-
const files =
|
|
11014
|
+
const files = [...fileList];
|
|
11043
11015
|
onDrop(files);
|
|
11044
11016
|
setFiles(files);
|
|
11045
11017
|
};
|
|
11046
11018
|
const handleKeyDown = (event) => {
|
|
11047
|
-
if (
|
|
11019
|
+
if ("Space" === event.key || "Enter" === event.key) fileUploadInputRef.current?.click();
|
|
11048
11020
|
};
|
|
11049
11021
|
const value = react.useMemo(() => ({
|
|
11050
11022
|
isDragging,
|