@atom-learning/components 9.0.0 → 10.0.1
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/accordion/Accordion.js +1 -1
- package/dist/components/accordion/AccordionContent.js +1 -1
- package/dist/components/accordion/AccordionItem.js +1 -1
- package/dist/components/accordion/AccordionTrigger.js +2 -2
- package/dist/components/action-icon/ActionIcon.js +1 -1
- package/dist/components/alert-dialog/Alert.d.ts +3 -0
- package/dist/components/alert-dialog/Alert.js +7 -0
- package/dist/components/alert-dialog/Alert.js.map +1 -0
- package/dist/components/alert-dialog/AlertDialog.context.js +9 -6
- package/dist/components/alert-dialog/AlertDialog.context.js.map +1 -1
- package/dist/components/alert-dialog/alert-context/AlertDialog.js +1 -1
- package/dist/components/alert-dialog/alert-context/reducer.js +1 -5
- package/dist/components/alert-dialog/alert-context/reducer.js.map +1 -1
- package/dist/components/alert-dialog/alert-context/types.d.ts +1 -2
- package/dist/components/avatar/Avatar.js +5 -6
- package/dist/components/avatar/Avatar.js.map +1 -1
- package/dist/components/avatar/AvatarIcon.js +2 -2
- package/dist/components/avatar/AvatarIcon.js.map +1 -1
- package/dist/components/avatar/AvatarInitial.js +2 -2
- package/dist/components/avatar/AvatarInitial.js.map +1 -1
- package/dist/components/badge/Badge.context.js +12 -13
- package/dist/components/badge/Badge.context.js.map +1 -1
- package/dist/components/badge/Badge.js +4 -3
- package/dist/components/badge/Badge.js.map +1 -1
- package/dist/components/badge/BadgeText.js +3 -3
- package/dist/components/badge/BadgeText.js.map +1 -1
- package/dist/components/banner/Banner.context.js +13 -14
- package/dist/components/banner/Banner.context.js.map +1 -1
- package/dist/components/banner/banner-regular/BannerRegularActions.js +2 -8
- package/dist/components/banner/banner-regular/BannerRegularActions.js.map +1 -1
- package/dist/components/banner/banner-regular/BannerRegularButton.js +2 -2
- package/dist/components/banner/banner-regular/BannerRegularButton.js.map +1 -1
- package/dist/components/banner/banner-regular/BannerRegularDismiss.js +1 -1
- package/dist/components/banner/banner-regular/BannerRegularDismiss.js.map +1 -1
- package/dist/components/banner/banner-slim/BannerSlimButton.js +2 -2
- package/dist/components/banner/banner-slim/BannerSlimButton.js.map +1 -1
- package/dist/components/banner/banner-slim/BannerSlimContainer.js +4 -13
- package/dist/components/banner/banner-slim/BannerSlimContainer.js.map +1 -1
- package/dist/components/calendar/Calendar.d.ts +1 -1
- package/dist/components/calendar/Calendar.js +6 -4
- package/dist/components/calendar/Calendar.js.map +1 -1
- package/dist/components/carousel/Carousel.js +2 -2
- package/dist/components/carousel/Carousel.js.map +1 -1
- package/dist/components/carousel/CarouselSlide.js +1 -1
- package/dist/components/carousel/CarouselSlide.js.map +1 -1
- package/dist/components/carousel/CarouselSlider.js +1 -1
- package/dist/components/carousel/CarouselSlider.js.map +1 -1
- package/dist/components/checkbox/Checkbox.js +2 -2
- package/dist/components/checkbox/Checkbox.js.map +1 -1
- package/dist/components/checkbox-field/CheckboxField.js +7 -3
- package/dist/components/checkbox-field/CheckboxField.js.map +1 -1
- package/dist/components/checkbox-group/CheckboxGroup.d.ts +1 -1
- package/dist/components/checkbox-group/CheckboxGroupAllItem.js +2 -2
- package/dist/components/checkbox-group/CheckboxGroupAllItem.js.map +1 -1
- package/dist/components/checkbox-group/CheckboxGroupChecked.context.js +13 -14
- package/dist/components/checkbox-group/CheckboxGroupChecked.context.js.map +1 -1
- package/dist/components/checkbox-group/CheckboxGroupItem.js +2 -2
- package/dist/components/checkbox-group/CheckboxGroupItem.js.map +1 -1
- package/dist/components/checkbox-group/CheckboxGroupMounted.context.js +6 -7
- package/dist/components/checkbox-group/CheckboxGroupMounted.context.js.map +1 -1
- package/dist/components/chip/Chip.js +4 -5
- package/dist/components/chip/Chip.js.map +1 -1
- package/dist/components/create-password-field/CreatePasswordField.js +1 -1
- package/dist/components/create-password-field/CreatePasswordField.js.map +1 -1
- package/dist/components/data-table/DataTable.context.js +43 -26
- package/dist/components/data-table/DataTable.context.js.map +1 -1
- package/dist/components/data-table/DataTable.types.d.ts +1 -0
- package/dist/components/data-table/DataTable.types.js.map +1 -1
- package/dist/components/data-table/DataTableBulkActionsFloating.js +3 -7
- package/dist/components/data-table/DataTableBulkActionsFloating.js.map +1 -1
- package/dist/components/data-table/DataTableGlobalFilter.js +16 -8
- package/dist/components/data-table/DataTableGlobalFilter.js.map +1 -1
- package/dist/components/data-table/DataTableHead.js +5 -14
- package/dist/components/data-table/DataTableHead.js.map +1 -1
- package/dist/components/data-table/DataTableHeaderCell.js +1 -1
- package/dist/components/data-table/DataTableRowSelectionCheckbox.js +1 -0
- package/dist/components/data-table/DataTableRowSelectionCheckbox.js.map +1 -1
- package/dist/components/data-table/DataTableSelectAllRowsCheckbox.js +2 -1
- package/dist/components/data-table/DataTableSelectAllRowsCheckbox.js.map +1 -1
- package/dist/components/data-table/DataTableTable.js +8 -6
- package/dist/components/data-table/DataTableTable.js.map +1 -1
- package/dist/components/data-table/drag-and-drop/DragAndDropTable.js +1 -1
- package/dist/components/data-table/drag-and-drop/DragAndDropTable.js.map +1 -1
- package/dist/components/data-table/pagination/Pagination.js +3 -2
- package/dist/components/data-table/pagination/Pagination.js.map +1 -1
- package/dist/components/data-table/usePagination.d.ts +1 -0
- package/dist/components/data-table/usePagination.js +7 -2
- package/dist/components/data-table/usePagination.js.map +1 -1
- package/dist/components/date-input/DateInput.js +4 -3
- package/dist/components/date-input/DateInput.js.map +1 -1
- package/dist/components/dismissible/DismissibleRoot.js +15 -16
- package/dist/components/dismissible/DismissibleRoot.js.map +1 -1
- package/dist/components/dismissible/DismissibleTrigger.js +1 -1
- package/dist/components/dismissible/DismissibleTrigger.js.map +1 -1
- package/dist/components/dismissible-group/DismissibleGroupItem.js +1 -1
- package/dist/components/dismissible-group/DismissibleGroupItem.js.map +1 -1
- package/dist/components/dismissible-group/DismissibleGroupRoot.js +5 -6
- package/dist/components/dismissible-group/DismissibleGroupRoot.js.map +1 -1
- package/dist/components/drawer/Drawer.context.js +2 -3
- package/dist/components/drawer/Drawer.context.js.map +1 -1
- package/dist/components/drawer/DrawerContent.js +1 -1
- package/dist/components/drawer/DrawerContent.js.map +1 -1
- package/dist/components/empty-state/EmptyState.context.js +2 -3
- package/dist/components/empty-state/EmptyState.context.js.map +1 -1
- package/dist/components/empty-state/EmptyStateBody.js +1 -1
- package/dist/components/empty-state/EmptyStateBody.js.map +1 -1
- package/dist/components/empty-state/EmptyStateImage.js +1 -1
- package/dist/components/empty-state/EmptyStateImage.js.map +1 -1
- package/dist/components/empty-state/EmptyStateTitle.js +1 -1
- package/dist/components/empty-state/EmptyStateTitle.js.map +1 -1
- package/dist/components/file-drop/FileDrop.js +3 -3
- package/dist/components/file-drop/FileDrop.js.map +1 -1
- package/dist/components/file-drop/useFileDrop.js +1 -1
- package/dist/components/file-drop/useFileDrop.js.map +1 -1
- package/dist/components/file-input/FileInput.js +1 -1
- package/dist/components/form/Form.js +7 -6
- package/dist/components/form/Form.js.map +1 -1
- package/dist/components/form/useFormCustomContext.js +1 -1
- package/dist/components/form/useFormCustomContext.js.map +1 -1
- package/dist/components/index.d.ts +1 -3
- package/dist/components/inline-message/InlineMessage.js +1 -1
- package/dist/components/input/Input.js +2 -2
- package/dist/components/input/Input.js.map +1 -1
- package/dist/components/keyboard-shortcut/KeyboardShortcut.js +10 -7
- package/dist/components/keyboard-shortcut/KeyboardShortcut.js.map +1 -1
- package/dist/components/markdown-content/MarkdownContent.d.ts +1 -1
- package/dist/components/markdown-content/MarkdownContent.js +9 -9
- package/dist/components/markdown-content/MarkdownContent.js.map +1 -1
- package/dist/components/markdown-content/components/MarkdownEmphasis.d.ts +2 -2
- package/dist/components/markdown-content/components/MarkdownEmphasis.js.map +1 -1
- package/dist/components/markdown-content/components/MarkdownHeading.d.ts +2 -2
- package/dist/components/markdown-content/components/MarkdownHeading.js.map +1 -1
- package/dist/components/markdown-content/components/MarkdownLink.d.ts +2 -2
- package/dist/components/markdown-content/components/MarkdownLink.js.map +1 -1
- package/dist/components/markdown-content/components/MarkdownList.d.ts +2 -2
- package/dist/components/markdown-content/components/MarkdownList.js.map +1 -1
- package/dist/components/markdown-content/components/MarkdownListItem.d.ts +2 -2
- package/dist/components/markdown-content/components/MarkdownListItem.js.map +1 -1
- package/dist/components/markdown-content/components/MarkdownParagraph.d.ts +2 -2
- package/dist/components/markdown-content/components/MarkdownParagraph.js.map +1 -1
- package/dist/components/markdown-content/components/MarkdownStrong.d.ts +2 -2
- package/dist/components/markdown-content/components/MarkdownStrong.js.map +1 -1
- package/dist/components/navigation/NavigationMenu.context.js +1 -1
- package/dist/components/navigation/NavigationMenu.context.js.map +1 -1
- package/dist/components/navigation/NavigationMenu.js +8 -7
- package/dist/components/navigation/NavigationMenu.js.map +1 -1
- package/dist/components/navigation-menu-vertical/NavigationMenuVerticalAccordion.d.ts +2 -2
- package/dist/components/navigation-menu-vertical/NavigationMenuVerticalAccordion.js +3 -3
- package/dist/components/navigation-menu-vertical/NavigationMenuVerticalAccordion.js.map +1 -1
- package/dist/components/navigation-menu-vertical/NavigationMenuVerticalAccordionContent.js +1 -1
- package/dist/components/navigation-menu-vertical/NavigationMenuVerticalAccordionContent.js.map +1 -1
- package/dist/components/navigation-menu-vertical/NavigationMenuVerticalAccordionTrigger.js +1 -1
- package/dist/components/navigation-menu-vertical/NavigationMenuVerticalAccordionTrigger.js.map +1 -1
- package/dist/components/number-input/NumberInput.js +15 -16
- package/dist/components/number-input/NumberInput.js.map +1 -1
- package/dist/components/number-input-field/NumberInputField.js +7 -3
- package/dist/components/number-input-field/NumberInputField.js.map +1 -1
- package/dist/components/pagination/Pagination.context.js +29 -22
- package/dist/components/pagination/Pagination.context.js.map +1 -1
- package/dist/components/pagination/usePagination.js +1 -1
- package/dist/components/pagination/usePagination.js.map +1 -1
- package/dist/components/password-input/PasswordInput.js +1 -2
- package/dist/components/password-input/PasswordInput.js.map +1 -1
- package/dist/components/radio-button-field/RadioButtonField.js +7 -3
- package/dist/components/radio-button-field/RadioButtonField.js.map +1 -1
- package/dist/components/search-input/SearchInput.js +7 -11
- package/dist/components/search-input/SearchInput.js.map +1 -1
- package/dist/components/section-message/SectionMessage.context.js +15 -16
- package/dist/components/section-message/SectionMessage.context.js.map +1 -1
- package/dist/components/segmented-control/SegmentedControlBadge.js +1 -1
- package/dist/components/segmented-control/SegmentedControlBadge.js.map +1 -1
- package/dist/components/segmented-control/SegmentedControlDescription.js +1 -1
- package/dist/components/segmented-control/SegmentedControlDescription.js.map +1 -1
- package/dist/components/segmented-control/SegmentedControlHeading.js +1 -1
- package/dist/components/segmented-control/SegmentedControlHeading.js.map +1 -1
- package/dist/components/segmented-control/SegmentedControlIcon.js +1 -1
- package/dist/components/segmented-control/SegmentedControlIcon.js.map +1 -1
- package/dist/components/segmented-control/SegmentedControlItem.js +1 -1
- package/dist/components/segmented-control/SegmentedControlItem.js.map +1 -1
- package/dist/components/segmented-control/SegmentedControlItemList.js +20 -14
- package/dist/components/segmented-control/SegmentedControlItemList.js.map +1 -1
- package/dist/components/segmented-control/SegmentedControlRoot.js +14 -18
- package/dist/components/segmented-control/SegmentedControlRoot.js.map +1 -1
- package/dist/components/select-menu/SelectMenu.context.js +1 -1
- package/dist/components/select-menu/SelectMenu.context.js.map +1 -1
- package/dist/components/select-menu/SelectMenu.js +18 -12
- package/dist/components/select-menu/SelectMenu.js.map +1 -1
- package/dist/components/side-bar/SideBar.context.js +1 -1
- package/dist/components/side-bar/SideBar.context.js.map +1 -1
- package/dist/components/side-bar/SideBar.js +2 -2
- package/dist/components/side-bar/SideBar.js.map +1 -1
- package/dist/components/slider-field/SliderField.js +8 -3
- package/dist/components/slider-field/SliderField.js.map +1 -1
- package/dist/components/sortable/SortableRoot.js +5 -3
- package/dist/components/sortable/SortableRoot.js.map +1 -1
- package/dist/components/stepper/Stepper.context.js +38 -30
- package/dist/components/stepper/Stepper.context.js.map +1 -1
- package/dist/components/tabs/TabsTriggerList.js +1 -1
- package/dist/components/toast/Toast.context.js +1 -1
- package/dist/components/toast/Toast.context.js.map +1 -1
- package/dist/components/toast/ToastProvider.js +1 -1
- package/dist/components/toast/ToastProvider.js.map +1 -1
- package/dist/components/tree/TreeCollapsible.d.ts +2 -2
- package/dist/components/tree/TreeCollapsible.js +3 -3
- package/dist/components/tree/TreeCollapsible.js.map +1 -1
- package/dist/components/tree/TreeCollapsibleContent.js +1 -1
- package/dist/components/tree/TreeCollapsibleContent.js.map +1 -1
- package/dist/components/tree/TreeCollapsibleTrigger.js +1 -1
- package/dist/components/tree/TreeCollapsibleTrigger.js.map +1 -1
- package/dist/docgen.json +1 -1
- package/dist/index.cjs.js +1299 -1244
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.js +7 -7
- package/dist/styled.js +5 -1
- package/dist/styled.js.map +1 -1
- package/dist/utilities/hooks/useCallbackRef.d.ts +3 -3
- package/dist/utilities/hooks/useCallbackRef.js +4 -1
- package/dist/utilities/hooks/useCallbackRef.js.map +1 -1
- package/dist/utilities/hooks/useResizeObserver.js +13 -3
- package/dist/utilities/hooks/useResizeObserver.js.map +1 -1
- package/dist/utilities/hooks/useScrollPosition.js +22 -17
- package/dist/utilities/hooks/useScrollPosition.js.map +1 -1
- package/dist/utilities/hooks/useWindowScrollPosition.js +19 -15
- package/dist/utilities/hooks/useWindowScrollPosition.js.map +1 -1
- package/dist/utilities/uri/index.js +1 -6
- package/dist/utilities/uri/index.js.map +1 -1
- package/package.json +39 -35
- package/dist/components/index.js +0 -102
- package/dist/components/index.js.map +0 -1
|
@@ -2,6 +2,7 @@ import { styled } from "../../styled.js";
|
|
|
2
2
|
import { Tabs } from "../tabs/Tabs.js";
|
|
3
3
|
import { SegmentedControlContext } from "./SegmentedControl.context.js";
|
|
4
4
|
import * as React$1 from "react";
|
|
5
|
+
import { composeRefs } from "@radix-ui/react-compose-refs";
|
|
5
6
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
6
7
|
//#region src/components/segmented-control/SegmentedControlItemList.tsx
|
|
7
8
|
var StyledTriggerList = styled(Tabs.TriggerList, {
|
|
@@ -34,7 +35,7 @@ var SelectionIndicator = styled("div", {
|
|
|
34
35
|
} }
|
|
35
36
|
});
|
|
36
37
|
var SegmentedControlItemList = (props) => {
|
|
37
|
-
const { theme, defaultValue, value } = React$1.
|
|
38
|
+
const { theme, defaultValue, value } = React$1.use(SegmentedControlContext);
|
|
38
39
|
const tabsRef = React$1.useRef([]);
|
|
39
40
|
const selectedIndex = React$1.Children.toArray(props.children).findIndex((child) => child?.props.value === value);
|
|
40
41
|
const [indicatorStyles, setIndicatorStyles] = React$1.useState({
|
|
@@ -53,26 +54,28 @@ var SegmentedControlItemList = (props) => {
|
|
|
53
54
|
width: Math.round(width)
|
|
54
55
|
});
|
|
55
56
|
}, [selectedIndex]);
|
|
57
|
+
const updateIndicatorPositionRef = React$1.useRef(updateIndicatorPosition);
|
|
58
|
+
React$1.useLayoutEffect(() => {
|
|
59
|
+
updateIndicatorPositionRef.current = updateIndicatorPosition;
|
|
60
|
+
});
|
|
61
|
+
const tabCount = React$1.Children.count(props.children);
|
|
56
62
|
React$1.useEffect(() => {
|
|
57
|
-
const resizeObserver = new ResizeObserver(
|
|
58
|
-
|
|
59
|
-
currentTabs.forEach((tab) => {
|
|
63
|
+
const resizeObserver = new ResizeObserver(() => updateIndicatorPositionRef.current());
|
|
64
|
+
tabsRef.current.forEach((tab) => {
|
|
60
65
|
if (tab) resizeObserver.observe(tab);
|
|
61
66
|
});
|
|
62
67
|
return () => {
|
|
63
|
-
currentTabs.forEach((tab) => {
|
|
64
|
-
if (tab) resizeObserver.unobserve(tab);
|
|
65
|
-
});
|
|
66
68
|
resizeObserver.disconnect();
|
|
67
69
|
};
|
|
68
|
-
}, [
|
|
70
|
+
}, [tabCount]);
|
|
69
71
|
React$1.useEffect(() => {
|
|
70
|
-
|
|
72
|
+
const handleResize = () => updateIndicatorPositionRef.current();
|
|
73
|
+
window.addEventListener("resize", handleResize);
|
|
71
74
|
return () => {
|
|
72
|
-
window.removeEventListener("resize",
|
|
75
|
+
window.removeEventListener("resize", handleResize);
|
|
73
76
|
};
|
|
74
|
-
}, [
|
|
75
|
-
React$1.
|
|
77
|
+
}, []);
|
|
78
|
+
React$1.useLayoutEffect(() => {
|
|
76
79
|
updateIndicatorPosition();
|
|
77
80
|
}, [selectedIndex, updateIndicatorPosition]);
|
|
78
81
|
return /* @__PURE__ */ jsxs(StyledTriggerList, {
|
|
@@ -89,9 +92,12 @@ var SegmentedControlItemList = (props) => {
|
|
|
89
92
|
setHasInteracted(true);
|
|
90
93
|
if (child.props.onClick) child.props.onClick(e);
|
|
91
94
|
},
|
|
92
|
-
ref: (el) => {
|
|
95
|
+
ref: composeRefs(child.props.ref, (el) => {
|
|
93
96
|
tabsRef.current[index] = el;
|
|
94
|
-
|
|
97
|
+
return () => {
|
|
98
|
+
tabsRef.current[index] = null;
|
|
99
|
+
};
|
|
100
|
+
})
|
|
95
101
|
});
|
|
96
102
|
})]
|
|
97
103
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SegmentedControlItemList.js","names":[],"sources":["../../../src/components/segmented-control/SegmentedControlItemList.tsx"],"sourcesContent":["import * as React from 'react'\n\nimport { styled } from '../../styled'\nimport { Tabs } from '../tabs/Tabs'\nimport { SegmentedControlContext } from './SegmentedControl.context'\nimport { SegmentedControlItem } from './SegmentedControlItem'\n\nconst StyledTriggerList = styled(Tabs.TriggerList, {\n base: [\n 'relative',\n 'p-1',\n 'rounded-lg',\n 'overflow-hidden',\n '[&>div[role=tablist]]:relative',\n '[&>button]:z-2'\n ],\n variants: {\n theme: {\n primary: ['bg-primary-200'],\n marsh: ['bg-marsh-200']\n }\n }\n})\n\nconst SelectionIndicator = styled('div', {\n base: ['absolute', 'bg-white', 'rounded-md'],\n variants: {\n interacted: {\n true: ['duration-300', 'ease-in', 'transition-all'],\n false: ['transition-none']\n }\n }\n})\n\nexport const SegmentedControlItemList = (\n props: React.ComponentProps<typeof Tabs.TriggerList>\n) => {\n const { theme, defaultValue, value } = React.
|
|
1
|
+
{"version":3,"file":"SegmentedControlItemList.js","names":[],"sources":["../../../src/components/segmented-control/SegmentedControlItemList.tsx"],"sourcesContent":["import { composeRefs } from '@radix-ui/react-compose-refs'\nimport * as React from 'react'\n\nimport { styled } from '../../styled'\nimport { Tabs } from '../tabs/Tabs'\nimport { SegmentedControlContext } from './SegmentedControl.context'\nimport { SegmentedControlItem } from './SegmentedControlItem'\n\nconst StyledTriggerList = styled(Tabs.TriggerList, {\n base: [\n 'relative',\n 'p-1',\n 'rounded-lg',\n 'overflow-hidden',\n '[&>div[role=tablist]]:relative',\n '[&>button]:z-2'\n ],\n variants: {\n theme: {\n primary: ['bg-primary-200'],\n marsh: ['bg-marsh-200']\n }\n }\n})\n\nconst SelectionIndicator = styled('div', {\n base: ['absolute', 'bg-white', 'rounded-md'],\n variants: {\n interacted: {\n true: ['duration-300', 'ease-in', 'transition-all'],\n false: ['transition-none']\n }\n }\n})\n\nexport const SegmentedControlItemList = (\n props: React.ComponentProps<typeof Tabs.TriggerList>\n) => {\n const { theme, defaultValue, value } = React.use(SegmentedControlContext)\n\n const tabsRef = React.useRef<(HTMLElement | null)[]>([])\n\n const selectedIndex = React.Children.toArray(props.children).findIndex(\n (child) =>\n (\n child as React.ReactElement<\n React.ComponentProps<typeof SegmentedControlItem>\n >\n )?.props.value === value\n )\n\n const [indicatorStyles, setIndicatorStyles] = React.useState({\n left: 0,\n height: 0,\n width: 0\n })\n const [hasInteracted, setHasInteracted] = React.useState(false)\n\n const updateIndicatorPosition = React.useCallback(() => {\n const currentTab = tabsRef.current[selectedIndex]\n if (!currentTab) return\n\n const { width, height } = currentTab.getBoundingClientRect()\n setIndicatorStyles({\n left: Math.round(currentTab.offsetLeft),\n height: Math.round(height),\n width: Math.round(width)\n })\n }, [selectedIndex])\n\n // Latest-ref so the ResizeObserver and window listener subscribe once per\n // tab-count change instead of being torn down on every selection change\n // (updateIndicatorPosition's identity tracks selectedIndex).\n const updateIndicatorPositionRef = React.useRef(updateIndicatorPosition)\n React.useLayoutEffect(() => {\n updateIndicatorPositionRef.current = updateIndicatorPosition\n })\n\n const tabCount = React.Children.count(props.children)\n\n React.useEffect(() => {\n const resizeObserver = new ResizeObserver(() =>\n updateIndicatorPositionRef.current()\n )\n const currentTabs = tabsRef.current\n currentTabs.forEach((tab) => {\n if (tab) resizeObserver.observe(tab)\n })\n\n return () => {\n resizeObserver.disconnect()\n }\n }, [tabCount])\n\n React.useEffect(() => {\n const handleResize = () => updateIndicatorPositionRef.current()\n window.addEventListener('resize', handleResize)\n return () => {\n window.removeEventListener('resize', handleResize)\n }\n }, [])\n\n // Layout effect: the indicator must be measured and placed before paint,\n // or it appears at its old position for a frame and visibly jumps.\n React.useLayoutEffect(() => {\n updateIndicatorPosition()\n }, [selectedIndex, updateIndicatorPosition])\n\n return (\n <StyledTriggerList theme={theme} defaultValue={defaultValue} {...props}>\n <SelectionIndicator interacted={hasInteracted} style={indicatorStyles} />\n {React.Children.map(props.children, (child, index) => {\n if (\n !React.isValidElement<\n React.ComponentProps<typeof SegmentedControlItem>\n >(child)\n ) {\n throw new Error(\n `Child passed to SegmentedControlItemList is not a valid element`\n )\n }\n\n return React.cloneElement(child, {\n onClick: (e) => {\n setHasInteracted(true)\n if (child.props.onClick) child.props.onClick(e)\n },\n // Composed so a consumer-supplied ref on the item survives the\n // clone; the cleanup empties the slot when the item detaches.\n ref: composeRefs(\n (child.props as { ref?: React.Ref<HTMLElement> }).ref,\n (el: HTMLElement | null) => {\n tabsRef.current[index] = el\n return () => {\n tabsRef.current[index] = null\n }\n }\n )\n })\n })}\n </StyledTriggerList>\n )\n}\n"],"mappings":";;;;;;;AAQA,IAAM,oBAAoB,OAAO,KAAK,aAAa;CACjD,MAAM;EACJ;EACA;EACA;EACA;EACA;EACA;CACF;CACA,UAAU,EACR,OAAO;EACL,SAAS,CAAC,gBAAgB;EAC1B,OAAO,CAAC,cAAc;CACxB,EACF;AACF,CAAC;AAED,IAAM,qBAAqB,OAAO,OAAO;CACvC,MAAM;EAAC;EAAY;EAAY;CAAY;CAC3C,UAAU,EACR,YAAY;EACV,MAAM;GAAC;GAAgB;GAAW;EAAgB;EAClD,OAAO,CAAC,iBAAiB;CAC3B,EACF;AACF,CAAC;AAED,IAAa,4BACX,UACG;CACH,MAAM,EAAE,OAAO,cAAc,UAAU,QAAM,IAAI,uBAAuB;CAExE,MAAM,UAAU,QAAM,OAA+B,CAAC,CAAC;CAEvD,MAAM,gBAAgB,QAAM,SAAS,QAAQ,MAAM,QAAQ,CAAC,CAAC,WAC1D,UAEG,OAGC,MAAM,UAAU,KACvB;CAEA,MAAM,CAAC,iBAAiB,sBAAsB,QAAM,SAAS;EAC3D,MAAM;EACN,QAAQ;EACR,OAAO;CACT,CAAC;CACD,MAAM,CAAC,eAAe,oBAAoB,QAAM,SAAS,KAAK;CAE9D,MAAM,0BAA0B,QAAM,kBAAkB;EACtD,MAAM,aAAa,QAAQ,QAAQ;EACnC,IAAI,CAAC,YAAY;EAEjB,MAAM,EAAE,OAAO,WAAW,WAAW,sBAAsB;EAC3D,mBAAmB;GACjB,MAAM,KAAK,MAAM,WAAW,UAAU;GACtC,QAAQ,KAAK,MAAM,MAAM;GACzB,OAAO,KAAK,MAAM,KAAK;EACzB,CAAC;CACH,GAAG,CAAC,aAAa,CAAC;CAKlB,MAAM,6BAA6B,QAAM,OAAO,uBAAuB;CACvE,QAAM,sBAAsB;EAC1B,2BAA2B,UAAU;CACvC,CAAC;CAED,MAAM,WAAW,QAAM,SAAS,MAAM,MAAM,QAAQ;CAEpD,QAAM,gBAAgB;EACpB,MAAM,iBAAiB,IAAI,qBACzB,2BAA2B,QAAQ,CACrC;EAEA,QAD4B,QAChB,SAAS,QAAQ;GAC3B,IAAI,KAAK,eAAe,QAAQ,GAAG;EACrC,CAAC;EAED,aAAa;GACX,eAAe,WAAW;EAC5B;CACF,GAAG,CAAC,QAAQ,CAAC;CAEb,QAAM,gBAAgB;EACpB,MAAM,qBAAqB,2BAA2B,QAAQ;EAC9D,OAAO,iBAAiB,UAAU,YAAY;EAC9C,aAAa;GACX,OAAO,oBAAoB,UAAU,YAAY;EACnD;CACF,GAAG,CAAC,CAAC;CAIL,QAAM,sBAAsB;EAC1B,wBAAwB;CAC1B,GAAG,CAAC,eAAe,uBAAuB,CAAC;CAE3C,OACE,qBAAC,mBAAD;EAA0B;EAAqB;EAAc,GAAI;YAAjE,CACE,oBAAC,oBAAD;GAAoB,YAAY;GAAe,OAAO;EAAkB,CAAA,GACvE,QAAM,SAAS,IAAI,MAAM,WAAW,OAAO,UAAU;GACpD,IACE,CAAC,QAAM,eAEL,KAAK,GAEP,MAAM,IAAI,MACR,iEACF;GAGF,OAAO,QAAM,aAAa,OAAO;IAC/B,UAAU,MAAM;KACd,iBAAiB,IAAI;KACrB,IAAI,MAAM,MAAM,SAAS,MAAM,MAAM,QAAQ,CAAC;IAChD;IAGA,KAAK,YACF,MAAM,MAA2C,MACjD,OAA2B;KAC1B,QAAQ,QAAQ,SAAS;KACzB,aAAa;MACX,QAAQ,QAAQ,SAAS;KAC3B;IACF,CACF;GACF,CAAC;EACH,CAAC,CACgB;;AAEvB"}
|
|
@@ -20,24 +20,20 @@ var SegmentedControlRoot = ({ size, theme = "primary", defaultValue, children, v
|
|
|
20
20
|
if (!isControlled) setInternalValue(newValue);
|
|
21
21
|
onValueChange?.(newValue);
|
|
22
22
|
}, [isControlled, onValueChange]);
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
currentValue
|
|
38
|
-
]);
|
|
39
|
-
return /* @__PURE__ */ jsx(SegmentedControlContext.Provider, {
|
|
40
|
-
value: contextValue,
|
|
23
|
+
return /* @__PURE__ */ jsx(SegmentedControlContext, {
|
|
24
|
+
value: React$1.useMemo(() => ({
|
|
25
|
+
size,
|
|
26
|
+
theme,
|
|
27
|
+
defaultValue,
|
|
28
|
+
onValueChange: handleValueChange,
|
|
29
|
+
value: currentValue
|
|
30
|
+
}), [
|
|
31
|
+
size,
|
|
32
|
+
theme,
|
|
33
|
+
defaultValue,
|
|
34
|
+
handleValueChange,
|
|
35
|
+
currentValue
|
|
36
|
+
]),
|
|
41
37
|
children: /* @__PURE__ */ jsx(StyledSegmentedControlRoot, {
|
|
42
38
|
size,
|
|
43
39
|
value: currentValue,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SegmentedControlRoot.js","names":[],"sources":["../../../src/components/segmented-control/SegmentedControlRoot.tsx"],"sourcesContent":["import * as React from 'react'\n\nimport { styled } from '../../styled'\nimport { Tabs } from '../tabs/Tabs'\nimport { SegmentedControlContext } from './SegmentedControl.context'\nimport type { SegmentedControlTheme } from './SegmentedControl.types'\n\nconst StyledSegmentedControlRoot = styled(\n Tabs,\n {\n base: ['[&>div]:border-none'],\n variants: {\n size: {\n sm: ['w-[unset]!'],\n md: [],\n lg: []\n }\n }\n },\n { enableResponsiveVariants: true }\n)\n\nexport interface SegmentedControlRootProps extends React.ComponentProps<\n typeof StyledSegmentedControlRoot\n> {\n theme?: SegmentedControlTheme\n}\n\nexport const SegmentedControlRoot = ({\n size,\n theme = 'primary',\n defaultValue,\n children,\n value,\n onValueChange,\n ...rest\n}: React.PropsWithChildren<SegmentedControlRootProps>) => {\n const isControlled = value !== undefined\n\n const [internalValue, setInternalValue] = React.useState(defaultValue)\n\n const currentValue = isControlled ? value : internalValue\n // Fire the consumer's `onValueChange` in BOTH modes; only own internal state\n // when uncontrolled. (Previously `isControlled ? onValueChange :\n // setInternalValue`, which silently dropped the consumer callback in\n // uncontrolled mode once `onValueChange` stopped leaking through `...rest`.)\n const handleValueChange = React.useCallback(\n (newValue: string) => {\n if (!isControlled) setInternalValue(newValue)\n onValueChange?.(newValue)\n },\n [isControlled, onValueChange]\n )\n\n
|
|
1
|
+
{"version":3,"file":"SegmentedControlRoot.js","names":[],"sources":["../../../src/components/segmented-control/SegmentedControlRoot.tsx"],"sourcesContent":["import * as React from 'react'\n\nimport { styled } from '../../styled'\nimport { Tabs } from '../tabs/Tabs'\nimport { SegmentedControlContext } from './SegmentedControl.context'\nimport type { SegmentedControlTheme } from './SegmentedControl.types'\n\nconst StyledSegmentedControlRoot = styled(\n Tabs,\n {\n base: ['[&>div]:border-none'],\n variants: {\n size: {\n sm: ['w-[unset]!'],\n md: [],\n lg: []\n }\n }\n },\n { enableResponsiveVariants: true }\n)\n\nexport interface SegmentedControlRootProps extends React.ComponentProps<\n typeof StyledSegmentedControlRoot\n> {\n theme?: SegmentedControlTheme\n}\n\nexport const SegmentedControlRoot = ({\n size,\n theme = 'primary',\n defaultValue,\n children,\n value,\n onValueChange,\n ...rest\n}: React.PropsWithChildren<SegmentedControlRootProps>) => {\n const isControlled = value !== undefined\n\n const [internalValue, setInternalValue] = React.useState(defaultValue)\n\n const currentValue = isControlled ? value : internalValue\n // Fire the consumer's `onValueChange` in BOTH modes; only own internal state\n // when uncontrolled. (Previously `isControlled ? onValueChange :\n // setInternalValue`, which silently dropped the consumer callback in\n // uncontrolled mode once `onValueChange` stopped leaking through `...rest`.)\n const handleValueChange = React.useCallback(\n (newValue: string) => {\n if (!isControlled) setInternalValue(newValue)\n onValueChange?.(newValue)\n },\n [isControlled, onValueChange]\n )\n\n const contextValue = React.useMemo(\n () => ({\n size,\n theme,\n defaultValue,\n onValueChange: handleValueChange,\n value: currentValue\n }),\n [size, theme, defaultValue, handleValueChange, currentValue]\n )\n\n return (\n <SegmentedControlContext value={contextValue}>\n <StyledSegmentedControlRoot\n size={size}\n value={currentValue}\n onValueChange={handleValueChange}\n {...rest}\n >\n {children}\n </StyledSegmentedControlRoot>\n </SegmentedControlContext>\n )\n}\n"],"mappings":";;;;;;AAOA,IAAM,6BAA6B,OACjC,MACA;CACE,MAAM,CAAC,qBAAqB;CAC5B,UAAU,EACR,MAAM;EACJ,IAAI,CAAC,YAAY;EACjB,IAAI,CAAC;EACL,IAAI,CAAC;CACP,EACF;AACF,GACA,EAAE,0BAA0B,KAAK,CACnC;AAQA,IAAa,wBAAwB,EACnC,MACA,QAAQ,WACR,cACA,UACA,OACA,eACA,GAAG,WACqD;CACxD,MAAM,eAAe,UAAU,KAAA;CAE/B,MAAM,CAAC,eAAe,oBAAoB,QAAM,SAAS,YAAY;CAErE,MAAM,eAAe,eAAe,QAAQ;CAK5C,MAAM,oBAAoB,QAAM,aAC7B,aAAqB;EACpB,IAAI,CAAC,cAAc,iBAAiB,QAAQ;EAC5C,gBAAgB,QAAQ;CAC1B,GACA,CAAC,cAAc,aAAa,CAC9B;CAaA,OACE,oBAAC,yBAAD;EAAyB,OAZN,QAAM,eAClB;GACL;GACA;GACA;GACA,eAAe;GACf,OAAO;EACT,IACA;GAAC;GAAM;GAAO;GAAc;GAAmB;EAAY,CAI3B;YAC9B,oBAAC,4BAAD;GACQ;GACN,OAAO;GACP,eAAe;GACf,GAAI;GAEH;EACyB,CAAA;CACL,CAAA;AAE7B"}
|
|
@@ -4,7 +4,7 @@ var SelectMenuContext = React$1.createContext({
|
|
|
4
4
|
size: "md",
|
|
5
5
|
theme: "grey"
|
|
6
6
|
});
|
|
7
|
-
var useSelectMenuContext = () => React$1.
|
|
7
|
+
var useSelectMenuContext = () => React$1.use(SelectMenuContext);
|
|
8
8
|
//#endregion
|
|
9
9
|
export { SelectMenuContext, useSelectMenuContext };
|
|
10
10
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SelectMenu.context.js","names":[],"sources":["../../../src/components/select-menu/SelectMenu.context.tsx"],"sourcesContent":["import * as React from 'react'\n\ntype SelectMenuContextValue = {\n size: 'sm' | 'md' | 'lg'\n theme: 'white' | 'grey'\n state?: 'error'\n}\n\nexport const SelectMenuContext = React.createContext<SelectMenuContextValue>({\n size: 'md',\n theme: 'grey'\n})\n\nexport const useSelectMenuContext = () => React.
|
|
1
|
+
{"version":3,"file":"SelectMenu.context.js","names":[],"sources":["../../../src/components/select-menu/SelectMenu.context.tsx"],"sourcesContent":["import * as React from 'react'\n\ntype SelectMenuContextValue = {\n size: 'sm' | 'md' | 'lg'\n theme: 'white' | 'grey'\n state?: 'error'\n}\n\nexport const SelectMenuContext = React.createContext<SelectMenuContextValue>({\n size: 'md',\n theme: 'grey'\n})\n\nexport const useSelectMenuContext = () => React.use(SelectMenuContext)\n"],"mappings":";;AAQA,IAAa,oBAAoB,QAAM,cAAsC;CAC3E,MAAM;CACN,OAAO;AACT,CAAC;AAED,IAAa,6BAA6B,QAAM,IAAI,iBAAiB"}
|
|
@@ -4,21 +4,27 @@ import { SelectMenuItem } from "./SelectMenuItem.js";
|
|
|
4
4
|
import { SelectMenuLabel } from "./SelectMenuLabel.js";
|
|
5
5
|
import { SelectMenuSeparator } from "./SelectMenuSeparator.js";
|
|
6
6
|
import { SelectMenuTrigger } from "./SelectMenuTrigger.js";
|
|
7
|
-
import "react";
|
|
7
|
+
import * as React$1 from "react";
|
|
8
8
|
import { jsx } from "react/jsx-runtime";
|
|
9
9
|
import * as RadixSelect from "@radix-ui/react-select";
|
|
10
10
|
//#region src/components/select-menu/SelectMenu.tsx
|
|
11
|
-
var SelectMenuRoot = ({ size = "md", theme = "grey", state, children, ...rest }) =>
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
11
|
+
var SelectMenuRoot = ({ size = "md", theme = "grey", state, children, ...rest }) => {
|
|
12
|
+
return /* @__PURE__ */ jsx(SelectMenuContext, {
|
|
13
|
+
value: React$1.useMemo(() => ({
|
|
14
|
+
size,
|
|
15
|
+
theme,
|
|
16
|
+
state
|
|
17
|
+
}), [
|
|
18
|
+
size,
|
|
19
|
+
theme,
|
|
20
|
+
state
|
|
21
|
+
]),
|
|
22
|
+
children: /* @__PURE__ */ jsx(RadixSelect.Root, {
|
|
23
|
+
...rest,
|
|
24
|
+
children
|
|
25
|
+
})
|
|
26
|
+
});
|
|
27
|
+
};
|
|
22
28
|
var SelectMenu = /* @__PURE__ */ Object.assign(SelectMenuRoot, {
|
|
23
29
|
Trigger: SelectMenuTrigger,
|
|
24
30
|
Content: SelectMenuContent,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SelectMenu.js","names":[],"sources":["../../../src/components/select-menu/SelectMenu.tsx"],"sourcesContent":["import * as RadixSelect from '@radix-ui/react-select'\nimport * as React from 'react'\n\nimport { SelectMenuContext } from './SelectMenu.context'\nimport { SelectMenuContent } from './SelectMenuContent'\nimport { SelectMenuItem } from './SelectMenuItem'\nimport { SelectMenuLabel } from './SelectMenuLabel'\nimport { SelectMenuSeparator } from './SelectMenuSeparator'\nimport { SelectMenuTrigger } from './SelectMenuTrigger'\n\ntype SelectMenuProps = React.ComponentProps<typeof RadixSelect.Root> & {\n size?: 'sm' | 'md' | 'lg'\n theme?: 'white' | 'grey'\n state?: 'error'\n}\n\nconst SelectMenuRoot = ({\n size = 'md',\n theme = 'grey',\n state,\n children,\n ...rest\n}: SelectMenuProps) =>
|
|
1
|
+
{"version":3,"file":"SelectMenu.js","names":[],"sources":["../../../src/components/select-menu/SelectMenu.tsx"],"sourcesContent":["import * as RadixSelect from '@radix-ui/react-select'\nimport * as React from 'react'\n\nimport { SelectMenuContext } from './SelectMenu.context'\nimport { SelectMenuContent } from './SelectMenuContent'\nimport { SelectMenuItem } from './SelectMenuItem'\nimport { SelectMenuLabel } from './SelectMenuLabel'\nimport { SelectMenuSeparator } from './SelectMenuSeparator'\nimport { SelectMenuTrigger } from './SelectMenuTrigger'\n\ntype SelectMenuProps = React.ComponentProps<typeof RadixSelect.Root> & {\n size?: 'sm' | 'md' | 'lg'\n theme?: 'white' | 'grey'\n state?: 'error'\n}\n\nconst SelectMenuRoot = ({\n size = 'md',\n theme = 'grey',\n state,\n children,\n ...rest\n}: SelectMenuProps) => {\n const value = React.useMemo(\n () => ({ size, theme, state }),\n [size, theme, state]\n )\n return (\n <SelectMenuContext value={value}>\n <RadixSelect.Root {...rest}>{children}</RadixSelect.Root>\n </SelectMenuContext>\n )\n}\n\nexport const SelectMenu = /* @__PURE__ */ Object.assign(SelectMenuRoot, {\n Trigger: SelectMenuTrigger,\n Content: SelectMenuContent,\n Item: SelectMenuItem,\n Group: RadixSelect.Group,\n Label: SelectMenuLabel,\n Separator: SelectMenuSeparator\n})\n"],"mappings":";;;;;;;;;;AAgBA,IAAM,kBAAkB,EACtB,OAAO,MACP,QAAQ,QACR,OACA,UACA,GAAG,WACkB;CAKrB,OACE,oBAAC,mBAAD;EAA0B,OALd,QAAM,eACX;GAAE;GAAM;GAAO;EAAM,IAC5B;GAAC;GAAM;GAAO;EAAK,CAGO;YACxB,oBAAC,YAAY,MAAb;GAAkB,GAAI;GAAO;EAA2B,CAAA;CACvC,CAAA;AAEvB;AAEA,IAAa,aAA6B,uBAAO,OAAO,gBAAgB;CACtE,SAAS;CACT,SAAS;CACT,MAAM;CACN,OAAO,YAAY;CACnB,OAAO;CACP,WAAW;AACb,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as React$1 from "react";
|
|
2
2
|
//#region src/components/side-bar/SideBar.context.tsx
|
|
3
3
|
var SideBarContext = React$1.createContext({ isExpanded: void 0 });
|
|
4
|
-
var useSidebarState = () => React$1.
|
|
4
|
+
var useSidebarState = () => React$1.use(SideBarContext);
|
|
5
5
|
//#endregion
|
|
6
6
|
export { SideBarContext, useSidebarState };
|
|
7
7
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SideBar.context.js","names":[],"sources":["../../../src/components/side-bar/SideBar.context.tsx"],"sourcesContent":["import * as React from 'react'\n\nexport const SideBarContext = React.createContext<{\n isExpanded?: boolean\n}>({\n isExpanded: undefined\n})\n\nexport const useSidebarState = () => React.
|
|
1
|
+
{"version":3,"file":"SideBar.context.js","names":[],"sources":["../../../src/components/side-bar/SideBar.context.tsx"],"sourcesContent":["import * as React from 'react'\n\nexport const SideBarContext = React.createContext<{\n isExpanded?: boolean\n}>({\n isExpanded: undefined\n})\n\nexport const useSidebarState = () => React.use(SideBarContext)\n"],"mappings":";;AAEA,IAAa,iBAAiB,QAAM,cAEjC,EACD,YAAY,KAAA,EACd,CAAC;AAED,IAAa,wBAAwB,QAAM,IAAI,cAAc"}
|
|
@@ -84,8 +84,8 @@ var SideBarComponent = ({ theme, className, children, type = "expandable", offse
|
|
|
84
84
|
...touchProps,
|
|
85
85
|
ref
|
|
86
86
|
} : {};
|
|
87
|
-
return /* @__PURE__ */ jsx(SideBarContext
|
|
88
|
-
value: { isExpanded },
|
|
87
|
+
return /* @__PURE__ */ jsx(SideBarContext, {
|
|
88
|
+
value: React$1.useMemo(() => ({ isExpanded }), [isExpanded]),
|
|
89
89
|
children: /* @__PURE__ */ jsx(Theme, {
|
|
90
90
|
theme: theme || light,
|
|
91
91
|
children: /* @__PURE__ */ jsx(Root, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SideBar.js","names":[],"sources":["../../../src/components/side-bar/SideBar.tsx"],"sourcesContent":["import * as React from 'react'\nimport { useFocusWithin, useHover, useInteractOutside } from 'react-aria'\n\nimport { styled, Theme, cn } from '../../styled'\nimport { SideBarContext } from './SideBar.context'\nimport {\n SideBarBody,\n SideBarBrand,\n SideBarBrandLogo,\n SideBarBrandName,\n SideBarFooter,\n SideBarHeader\n} from './SideBarComponents'\n\nconst light = {\n '--background': 'white',\n '--text': 'var(--color-grey-800)',\n '--border': 'var(--color-grey-200)'\n}\n\nconst Root = styled('div', {\n base: ['sticky', 'z-1'],\n variants: {\n type: {\n static: [],\n expandable: ['w-22']\n }\n }\n})\n\nconst Content = styled('div', {\n base: [\n 'bg-(--background)',\n 'border-r',\n 'border-r-(--border)',\n 'shadow-[4px_0_4px_-2px_rgba(31,31,31,0)]',\n 'flex',\n 'flex-col',\n 'h-full',\n 'overflow-hidden',\n 'will-change-width',\n 'motion-safe:duration-125',\n 'motion-safe:ease-out',\n 'motion-safe:transition-[shadow,width]'\n ],\n variants: {\n type: {\n static: [],\n expandable: []\n },\n isExpanded: {\n true: ['w-[16rem]'],\n false: ['w-22']\n }\n },\n compoundVariants: [\n {\n isExpanded: true,\n type: 'expandable',\n class: ['shadow-[4px_0_4px_-2px_rgba(31,31,31,0.1)]']\n }\n ]\n})\n\nconst PointerBlocker = styled('div', {\n base: [\n 'bottom-0',\n 'left-0',\n 'absolute',\n 'right-0',\n 'top-0',\n 'transition-all'\n ],\n variants: {\n isVisible: {\n true: ['delay-0', 'visible'],\n false: ['delay-50', 'invisible']\n }\n }\n})\n\ntype SideBarProps = React.ComponentProps<typeof Root> & {\n className?: string\n offset?: number | string\n} & React.ComponentProps<typeof Theme>\n\nconst SideBarComponent = ({\n theme,\n className,\n children,\n type = 'expandable',\n offset = '0px',\n style,\n ...rest\n}: SideBarProps) => {\n const [isExpanded, setIsExpanded] = React.useState(type === 'static')\n const ref = React.useRef<HTMLDivElement>(null)\n\n useInteractOutside({\n ref,\n onInteractOutside: () => setIsExpanded(false)\n })\n const { focusWithinProps } = useFocusWithin({\n onFocusWithin: () => setIsExpanded(true),\n onBlurWithin: () => setIsExpanded(false)\n })\n const { hoverProps, isHovered } = useHover({\n onHoverStart: () => setIsExpanded(true),\n onHoverEnd: () => setIsExpanded(false)\n })\n const touchProps = {\n onTouchEnd: () => setIsExpanded(true)\n }\n\n const expandableProps =\n type === 'expandable'\n ? {\n ...focusWithinProps,\n ...hoverProps,\n ...touchProps,\n ref\n }\n : {}\n\n return (\n <SideBarContext
|
|
1
|
+
{"version":3,"file":"SideBar.js","names":[],"sources":["../../../src/components/side-bar/SideBar.tsx"],"sourcesContent":["import * as React from 'react'\nimport { useFocusWithin, useHover, useInteractOutside } from 'react-aria'\n\nimport { styled, Theme, cn } from '../../styled'\nimport { SideBarContext } from './SideBar.context'\nimport {\n SideBarBody,\n SideBarBrand,\n SideBarBrandLogo,\n SideBarBrandName,\n SideBarFooter,\n SideBarHeader\n} from './SideBarComponents'\n\nconst light = {\n '--background': 'white',\n '--text': 'var(--color-grey-800)',\n '--border': 'var(--color-grey-200)'\n}\n\nconst Root = styled('div', {\n base: ['sticky', 'z-1'],\n variants: {\n type: {\n static: [],\n expandable: ['w-22']\n }\n }\n})\n\nconst Content = styled('div', {\n base: [\n 'bg-(--background)',\n 'border-r',\n 'border-r-(--border)',\n 'shadow-[4px_0_4px_-2px_rgba(31,31,31,0)]',\n 'flex',\n 'flex-col',\n 'h-full',\n 'overflow-hidden',\n 'will-change-width',\n 'motion-safe:duration-125',\n 'motion-safe:ease-out',\n 'motion-safe:transition-[shadow,width]'\n ],\n variants: {\n type: {\n static: [],\n expandable: []\n },\n isExpanded: {\n true: ['w-[16rem]'],\n false: ['w-22']\n }\n },\n compoundVariants: [\n {\n isExpanded: true,\n type: 'expandable',\n class: ['shadow-[4px_0_4px_-2px_rgba(31,31,31,0.1)]']\n }\n ]\n})\n\nconst PointerBlocker = styled('div', {\n base: [\n 'bottom-0',\n 'left-0',\n 'absolute',\n 'right-0',\n 'top-0',\n 'transition-all'\n ],\n variants: {\n isVisible: {\n true: ['delay-0', 'visible'],\n false: ['delay-50', 'invisible']\n }\n }\n})\n\ntype SideBarProps = React.ComponentProps<typeof Root> & {\n className?: string\n offset?: number | string\n} & React.ComponentProps<typeof Theme>\n\nconst SideBarComponent = ({\n theme,\n className,\n children,\n type = 'expandable',\n offset = '0px',\n style,\n ...rest\n}: SideBarProps) => {\n const [isExpanded, setIsExpanded] = React.useState(type === 'static')\n const ref = React.useRef<HTMLDivElement>(null)\n\n useInteractOutside({\n ref,\n onInteractOutside: () => setIsExpanded(false)\n })\n const { focusWithinProps } = useFocusWithin({\n onFocusWithin: () => setIsExpanded(true),\n onBlurWithin: () => setIsExpanded(false)\n })\n const { hoverProps, isHovered } = useHover({\n onHoverStart: () => setIsExpanded(true),\n onHoverEnd: () => setIsExpanded(false)\n })\n const touchProps = {\n onTouchEnd: () => setIsExpanded(true)\n }\n\n const expandableProps =\n type === 'expandable'\n ? {\n ...focusWithinProps,\n ...hoverProps,\n ...touchProps,\n ref\n }\n : {}\n\n const sideBarContextValue = React.useMemo(\n () => ({ isExpanded }),\n [isExpanded]\n )\n\n return (\n <SideBarContext value={sideBarContextValue}>\n <Theme theme={theme || light}>\n <Root\n {...rest}\n style={{ ...style, '--offset': offset }}\n type={type}\n className={cn(\n 'h-[calc(100svh-var(--offset))]',\n 'top-(--offset)',\n className\n )}\n >\n <Content {...expandableProps} isExpanded={isExpanded} type={type}>\n {children}\n {/**\n * When the SideBar is collapsed, ensure that the initial tap event\n * is used to expand the nav first before making the items available\n */}\n {type === 'expandable' && (\n <PointerBlocker isVisible={!isHovered && !isExpanded} />\n )}\n </Content>\n </Root>\n </Theme>\n </SideBarContext>\n )\n}\n\nexport const SideBar = /* @__PURE__ */ Object.assign(SideBarComponent, {\n Brand: SideBarBrand,\n BrandLogo: SideBarBrandLogo,\n BrandName: SideBarBrandName,\n Header: SideBarHeader,\n Body: SideBarBody,\n Footer: SideBarFooter,\n displayName: 'SideBar'\n})\n"],"mappings":";;;;;;;AAcA,IAAM,QAAQ;CACZ,gBAAgB;CAChB,UAAU;CACV,YAAY;AACd;AAEA,IAAM,OAAO,OAAO,OAAO;CACzB,MAAM,CAAC,UAAU,KAAK;CACtB,UAAU,EACR,MAAM;EACJ,QAAQ,CAAC;EACT,YAAY,CAAC,MAAM;CACrB,EACF;AACF,CAAC;AAED,IAAM,UAAU,OAAO,OAAO;CAC5B,MAAM;EACJ;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACF;CACA,UAAU;EACR,MAAM;GACJ,QAAQ,CAAC;GACT,YAAY,CAAC;EACf;EACA,YAAY;GACV,MAAM,CAAC,WAAW;GAClB,OAAO,CAAC,MAAM;EAChB;CACF;CACA,kBAAkB,CAChB;EACE,YAAY;EACZ,MAAM;EACN,OAAO,CAAC,4CAA4C;CACtD,CACF;AACF,CAAC;AAED,IAAM,iBAAiB,OAAO,OAAO;CACnC,MAAM;EACJ;EACA;EACA;EACA;EACA;EACA;CACF;CACA,UAAU,EACR,WAAW;EACT,MAAM,CAAC,WAAW,SAAS;EAC3B,OAAO,CAAC,YAAY,WAAW;CACjC,EACF;AACF,CAAC;AAOD,IAAM,oBAAoB,EACxB,OACA,WACA,UACA,OAAO,cACP,SAAS,OACT,OACA,GAAG,WACe;CAClB,MAAM,CAAC,YAAY,iBAAiB,QAAM,SAAS,SAAS,QAAQ;CACpE,MAAM,MAAM,QAAM,OAAuB,IAAI;CAE7C,mBAAmB;EACjB;EACA,yBAAyB,cAAc,KAAK;CAC9C,CAAC;CACD,MAAM,EAAE,qBAAqB,eAAe;EAC1C,qBAAqB,cAAc,IAAI;EACvC,oBAAoB,cAAc,KAAK;CACzC,CAAC;CACD,MAAM,EAAE,YAAY,cAAc,SAAS;EACzC,oBAAoB,cAAc,IAAI;EACtC,kBAAkB,cAAc,KAAK;CACvC,CAAC;CACD,MAAM,aAAa,EACjB,kBAAkB,cAAc,IAAI,EACtC;CAEA,MAAM,kBACJ,SAAS,eACL;EACE,GAAG;EACH,GAAG;EACH,GAAG;EACH;CACF,IACA,CAAC;CAOP,OACE,oBAAC,gBAAD;EAAgB,OANU,QAAM,eACzB,EAAE,WAAW,IACpB,CAAC,UAAU,CAIY;YACrB,oBAAC,OAAD;GAAO,OAAO,SAAS;aACrB,oBAAC,MAAD;IACE,GAAI;IACJ,OAAO;KAAE,GAAG;KAAO,YAAY;IAAO;IAChC;IACN,WAAW,GACT,kCACA,kBACA,SACF;cAEA,qBAAC,SAAD;KAAS,GAAI;KAA6B;KAAkB;eAA5D,CACG,UAKA,SAAS,gBACR,oBAAC,gBAAD,EAAgB,WAAW,CAAC,aAAa,CAAC,WAAa,CAAA,CAElD;;GACL,CAAA;EACD,CAAA;CACO,CAAA;AAEpB;AAEA,IAAa,UAA0B,uBAAO,OAAO,kBAAkB;CACrE,OAAO;CACP,WAAW;CACX,WAAW;CACX,QAAQ;CACR,MAAM;CACN,QAAQ;CACR,aAAa;AACf,CAAC"}
|
|
@@ -5,16 +5,21 @@ import { jsx, jsxs } from "react/jsx-runtime";
|
|
|
5
5
|
import { useController, useFormContext } from "react-hook-form";
|
|
6
6
|
//#region src/components/slider-field/SliderField.tsx
|
|
7
7
|
var SliderField = ({ className, hideLabel, label, name, defaultValue, value, validation, outputLabel, min = 0, max = 100, steps = [], ...rest }) => {
|
|
8
|
-
const { control } = useFormContext();
|
|
8
|
+
const { control, setValue } = useFormContext();
|
|
9
9
|
const { field: { ref, onChange, value: innerValue, name: innerName } } = useController({
|
|
10
10
|
name,
|
|
11
11
|
control,
|
|
12
12
|
rules: validation,
|
|
13
13
|
defaultValue
|
|
14
14
|
});
|
|
15
|
+
const serializedValue = JSON.stringify(value);
|
|
15
16
|
React$1.useEffect(() => {
|
|
16
|
-
if (value
|
|
17
|
-
}, [
|
|
17
|
+
if (typeof value !== "undefined") setValue(name, value, { shouldDirty: false });
|
|
18
|
+
}, [
|
|
19
|
+
serializedValue,
|
|
20
|
+
name,
|
|
21
|
+
setValue
|
|
22
|
+
]);
|
|
18
23
|
return /* @__PURE__ */ jsx(FieldWrapper, {
|
|
19
24
|
className,
|
|
20
25
|
fieldId: name,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SliderField.js","names":[],"sources":["../../../src/components/slider-field/SliderField.tsx"],"sourcesContent":["import * as React from 'react'\nimport { useController, useFormContext } from 'react-hook-form'\n\nimport {\n type FieldElementWrapperProps,\n FieldWrapper\n} from '../field-wrapper/FieldWrapper'\nimport { Slider, type SliderProps } from '../slider/Slider'\nimport type { SliderStepsType } from '../slider/SliderSteps'\nimport type { SliderValueType } from '../slider/SliderValue'\n\ntype SliderFieldProps = SliderProps &\n SliderStepsType &\n SliderValueType &\n FieldElementWrapperProps\n\nexport const SliderField = ({\n className,\n hideLabel,\n label,\n name,\n defaultValue,\n value,\n validation,\n outputLabel,\n min = 0,\n max = 100,\n steps = [],\n ...rest\n}: SliderFieldProps) => {\n const { control } = useFormContext()\n const {\n field: { ref, onChange, value: innerValue, name: innerName }\n } = useController({\n name,\n control,\n rules: validation,\n defaultValue\n })\n\n React.useEffect(() => {\n //
|
|
1
|
+
{"version":3,"file":"SliderField.js","names":[],"sources":["../../../src/components/slider-field/SliderField.tsx"],"sourcesContent":["import * as React from 'react'\nimport { useController, useFormContext } from 'react-hook-form'\n\nimport {\n type FieldElementWrapperProps,\n FieldWrapper\n} from '../field-wrapper/FieldWrapper'\nimport { Slider, type SliderProps } from '../slider/Slider'\nimport type { SliderStepsType } from '../slider/SliderSteps'\nimport type { SliderValueType } from '../slider/SliderValue'\n\ntype SliderFieldProps = SliderProps &\n SliderStepsType &\n SliderValueType &\n FieldElementWrapperProps\n\nexport const SliderField = ({\n className,\n hideLabel,\n label,\n name,\n defaultValue,\n value,\n validation,\n outputLabel,\n min = 0,\n max = 100,\n steps = [],\n ...rest\n}: SliderFieldProps) => {\n const { control, setValue } = useFormContext()\n const {\n field: { ref, onChange, value: innerValue, name: innerName }\n } = useController({\n name,\n control,\n rules: validation,\n defaultValue\n })\n\n // Serialized so an inline `value` array with a fresh identity per render\n // doesn't re-fire the sync effect.\n const serializedValue = JSON.stringify(value)\n React.useEffect(() => {\n // Sync an externally-controlled `value` into react-hook-form without\n // marking the field dirty/touched — this isn't user input. An empty\n // array is a valid value (clearing) and must sync too.\n if (typeof value !== 'undefined')\n setValue(name, value, { shouldDirty: false })\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [serializedValue, name, setValue])\n\n return (\n <FieldWrapper\n className={className}\n fieldId={name}\n label={label}\n hideLabel={hideLabel}\n >\n <Slider\n ref={ref}\n name={innerName}\n onValueChange={onChange}\n value={innerValue}\n min={min}\n max={max}\n {...rest}\n >\n <Slider.Steps min={min} max={max} steps={steps} />\n\n <Slider.Value value={innerValue} outputLabel={outputLabel} />\n </Slider>\n </FieldWrapper>\n )\n}\n\nSliderField.displayName = 'SliderField'\n"],"mappings":";;;;;;AAgBA,IAAa,eAAe,EAC1B,WACA,WACA,OACA,MACA,cACA,OACA,YACA,aACA,MAAM,GACN,MAAM,KACN,QAAQ,CAAC,GACT,GAAG,WACmB;CACtB,MAAM,EAAE,SAAS,aAAa,eAAe;CAC7C,MAAM,EACJ,OAAO,EAAE,KAAK,UAAU,OAAO,YAAY,MAAM,gBAC/C,cAAc;EAChB;EACA;EACA,OAAO;EACP;CACF,CAAC;CAID,MAAM,kBAAkB,KAAK,UAAU,KAAK;CAC5C,QAAM,gBAAgB;EAIpB,IAAI,OAAO,UAAU,aACnB,SAAS,MAAM,OAAO,EAAE,aAAa,MAAM,CAAC;CAEhD,GAAG;EAAC;EAAiB;EAAM;CAAQ,CAAC;CAEpC,OACE,oBAAC,cAAD;EACa;EACX,SAAS;EACF;EACI;YAEX,qBAAC,QAAD;GACO;GACL,MAAM;GACN,eAAe;GACf,OAAO;GACF;GACA;GACL,GAAI;aAPN,CASE,oBAAC,OAAO,OAAR;IAAmB;IAAU;IAAY;GAAQ,CAAA,GAEjD,oBAAC,OAAO,OAAR;IAAc,OAAO;IAAyB;GAAc,CAAA,CACtD;;CACI,CAAA;AAElB;AAEA,YAAY,cAAc"}
|
|
@@ -5,9 +5,11 @@ import { DndContext, KeyboardSensor, PointerSensor, closestCenter, useSensor, us
|
|
|
5
5
|
//#region src/components/sortable/SortableRoot.tsx
|
|
6
6
|
var SortableRoot = ({ sortableIds, onSortChange, children }) => {
|
|
7
7
|
const [order, setOrder] = React$1.useState(sortableIds);
|
|
8
|
-
React$1.
|
|
9
|
-
|
|
10
|
-
|
|
8
|
+
const [prevIds, setPrevIds] = React$1.useState(sortableIds);
|
|
9
|
+
if (prevIds !== sortableIds) {
|
|
10
|
+
setPrevIds(sortableIds);
|
|
11
|
+
if (prevIds.length !== sortableIds.length || sortableIds.some((id, index) => id !== prevIds[index])) setOrder(sortableIds);
|
|
12
|
+
}
|
|
11
13
|
const sensors = useSensors(useSensor(PointerSensor), useSensor(KeyboardSensor, { coordinateGetter: sortableKeyboardCoordinates }));
|
|
12
14
|
const handleDragEnd = (event) => {
|
|
13
15
|
const { active, over } = event;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SortableRoot.js","names":[],"sources":["../../../src/components/sortable/SortableRoot.tsx"],"sourcesContent":["import type { DragEndEvent, UniqueIdentifier } from '@dnd-kit/core'\nimport {\n closestCenter,\n DndContext,\n KeyboardSensor,\n PointerSensor,\n useSensor,\n useSensors\n} from '@dnd-kit/core'\nimport {\n arrayMove,\n SortableContext,\n sortableKeyboardCoordinates\n} from '@dnd-kit/sortable'\nimport * as React from 'react'\n\ntype SortableRootProps = {\n sortableIds: (string | number)[]\n onSortChange: (onSortChangeData: {\n order: UniqueIdentifier[]\n oldIndex: number\n newIndex: number\n }) => void\n}\n\nexport const SortableRoot = ({\n sortableIds,\n onSortChange,\n children\n}: React.PropsWithChildren<SortableRootProps>) => {\n const [order, setOrder] = React.useState<(string | number)[]>(sortableIds)\n React.
|
|
1
|
+
{"version":3,"file":"SortableRoot.js","names":[],"sources":["../../../src/components/sortable/SortableRoot.tsx"],"sourcesContent":["import type { DragEndEvent, UniqueIdentifier } from '@dnd-kit/core'\nimport {\n closestCenter,\n DndContext,\n KeyboardSensor,\n PointerSensor,\n useSensor,\n useSensors\n} from '@dnd-kit/core'\nimport {\n arrayMove,\n SortableContext,\n sortableKeyboardCoordinates\n} from '@dnd-kit/sortable'\nimport * as React from 'react'\n\ntype SortableRootProps = {\n sortableIds: (string | number)[]\n onSortChange: (onSortChangeData: {\n order: UniqueIdentifier[]\n oldIndex: number\n newIndex: number\n }) => void\n}\n\nexport const SortableRoot = ({\n sortableIds,\n onSortChange,\n children\n}: React.PropsWithChildren<SortableRootProps>) => {\n const [order, setOrder] = React.useState<(string | number)[]>(sortableIds)\n // Reconcile the external ids during render (React's \"adjusting state when\n // props change\" pattern — no stale frame), comparing by content rather than\n // identity so a parent passing an inline array doesn't reset the order and\n // discard in-flight drag state on every render.\n const [prevIds, setPrevIds] = React.useState(sortableIds)\n if (prevIds !== sortableIds) {\n setPrevIds(sortableIds)\n const contentChanged =\n prevIds.length !== sortableIds.length ||\n sortableIds.some((id, index) => id !== prevIds[index])\n if (contentChanged) setOrder(sortableIds)\n }\n\n const sensors = useSensors(\n useSensor(PointerSensor),\n useSensor(KeyboardSensor, {\n coordinateGetter: sortableKeyboardCoordinates\n })\n )\n\n const handleDragEnd = (event: DragEndEvent) => {\n const { active, over } = event\n if (active.id && over?.id && active.id !== over?.id) {\n setOrder((order) => {\n const oldIndex = order.indexOf(active.id)\n const newIndex = order.indexOf(over.id)\n const newOrder = arrayMove(order, oldIndex, newIndex)\n onSortChange({ order: newOrder, oldIndex, newIndex })\n return newOrder\n })\n }\n }\n\n return (\n <DndContext\n sensors={sensors}\n collisionDetection={closestCenter}\n onDragEnd={handleDragEnd}\n >\n <SortableContext items={order}>{children}</SortableContext>\n </DndContext>\n )\n}\n\nSortableRoot.displayName = 'SortableRoot'\n"],"mappings":";;;;;AAyBA,IAAa,gBAAgB,EAC3B,aACA,cACA,eACgD;CAChD,MAAM,CAAC,OAAO,YAAY,QAAM,SAA8B,WAAW;CAKzE,MAAM,CAAC,SAAS,cAAc,QAAM,SAAS,WAAW;CACxD,IAAI,YAAY,aAAa;EAC3B,WAAW,WAAW;EAItB,IAFE,QAAQ,WAAW,YAAY,UAC/B,YAAY,MAAM,IAAI,UAAU,OAAO,QAAQ,MAAM,GACnC,SAAS,WAAW;CAC1C;CAEA,MAAM,UAAU,WACd,UAAU,aAAa,GACvB,UAAU,gBAAgB,EACxB,kBAAkB,4BACpB,CAAC,CACH;CAEA,MAAM,iBAAiB,UAAwB;EAC7C,MAAM,EAAE,QAAQ,SAAS;EACzB,IAAI,OAAO,MAAM,MAAM,MAAM,OAAO,OAAO,MAAM,IAC/C,UAAU,UAAU;GAClB,MAAM,WAAW,MAAM,QAAQ,OAAO,EAAE;GACxC,MAAM,WAAW,MAAM,QAAQ,KAAK,EAAE;GACtC,MAAM,WAAW,UAAU,OAAO,UAAU,QAAQ;GACpD,aAAa;IAAE,OAAO;IAAU;IAAU;GAAS,CAAC;GACpD,OAAO;EACT,CAAC;CAEL;CAEA,OACE,oBAAC,YAAD;EACW;EACT,oBAAoB;EACpB,WAAW;YAEX,oBAAC,iBAAD;GAAiB,OAAO;GAAQ;EAA0B,CAAA;CAChD,CAAA;AAEhB;AAEA,aAAa,cAAc"}
|
|
@@ -1,43 +1,37 @@
|
|
|
1
1
|
import * as React$1 from "react";
|
|
2
2
|
import { jsx } from "react/jsx-runtime";
|
|
3
3
|
//#region src/components/stepper/Stepper.context.tsx
|
|
4
|
-
var StepperContext = React$1.createContext(
|
|
5
|
-
steps: [],
|
|
6
|
-
goToPreviousStep: () => null,
|
|
7
|
-
goToNextStep: () => null,
|
|
8
|
-
goToStep: () => null,
|
|
9
|
-
activeStep: 0,
|
|
10
|
-
viewedSteps: [],
|
|
11
|
-
allowSkip: false,
|
|
12
|
-
direction: "horizontal",
|
|
13
|
-
hideLabels: false,
|
|
14
|
-
completedSteps: [],
|
|
15
|
-
showCompletedIcons: false
|
|
16
|
-
});
|
|
4
|
+
var StepperContext = React$1.createContext(null);
|
|
17
5
|
var StepperProvider = ({ children, stepCount, allowSkip, onComplete, onStepChange, direction, steps, hideLabels, showCompletedIcons }) => {
|
|
18
6
|
const [activeStep, setActiveStep] = React$1.useState(0);
|
|
19
7
|
const [viewedSteps, setviewedSteps] = React$1.useState([0]);
|
|
20
8
|
const [completedSteps, setCompletedSteps] = React$1.useState([]);
|
|
21
9
|
const isControlled = !stepCount;
|
|
22
|
-
React$1.
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
10
|
+
const changeStep = React$1.useCallback((nextStep) => {
|
|
11
|
+
setActiveStep(nextStep);
|
|
12
|
+
setviewedSteps((prev) => prev.includes(nextStep) ? prev : [...prev, nextStep]);
|
|
13
|
+
onStepChange?.(nextStep);
|
|
14
|
+
}, [onStepChange]);
|
|
15
|
+
const goToNextStep = React$1.useCallback(() => {
|
|
27
16
|
const isCompleted = onComplete && activeStep === stepCount - 1;
|
|
28
17
|
const isNextStep = activeStep < stepCount - 1;
|
|
29
18
|
if (onComplete || isNextStep) setCompletedSteps((prev) => prev.includes(activeStep) ? prev : [...prev, activeStep]);
|
|
30
19
|
if (isCompleted) return onComplete?.();
|
|
31
|
-
if (isNextStep) return
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
20
|
+
if (isNextStep) return changeStep(activeStep + 1);
|
|
21
|
+
}, [
|
|
22
|
+
activeStep,
|
|
23
|
+
stepCount,
|
|
24
|
+
onComplete,
|
|
25
|
+
changeStep
|
|
26
|
+
]);
|
|
27
|
+
const goToPreviousStep = React$1.useCallback(() => {
|
|
28
|
+
changeStep(activeStep - 1);
|
|
29
|
+
}, [activeStep, changeStep]);
|
|
30
|
+
const goToStep = React$1.useCallback((index) => {
|
|
31
|
+
changeStep(index);
|
|
32
|
+
}, [changeStep]);
|
|
33
|
+
return /* @__PURE__ */ jsx(StepperContext, {
|
|
34
|
+
value: React$1.useMemo(() => ({
|
|
41
35
|
steps: steps || Array(stepCount).fill(""),
|
|
42
36
|
goToPreviousStep: isControlled ? void 0 : goToPreviousStep,
|
|
43
37
|
goToNextStep: isControlled ? void 0 : goToNextStep,
|
|
@@ -49,12 +43,26 @@ var StepperProvider = ({ children, stepCount, allowSkip, onComplete, onStepChang
|
|
|
49
43
|
direction,
|
|
50
44
|
hideLabels,
|
|
51
45
|
showCompletedIcons
|
|
52
|
-
},
|
|
46
|
+
}), [
|
|
47
|
+
steps,
|
|
48
|
+
stepCount,
|
|
49
|
+
isControlled,
|
|
50
|
+
goToPreviousStep,
|
|
51
|
+
goToNextStep,
|
|
52
|
+
goToStep,
|
|
53
|
+
activeStep,
|
|
54
|
+
viewedSteps,
|
|
55
|
+
completedSteps,
|
|
56
|
+
allowSkip,
|
|
57
|
+
direction,
|
|
58
|
+
hideLabels,
|
|
59
|
+
showCompletedIcons
|
|
60
|
+
]),
|
|
53
61
|
children
|
|
54
62
|
});
|
|
55
63
|
};
|
|
56
64
|
var useStepper = () => {
|
|
57
|
-
const context = React$1.
|
|
65
|
+
const context = React$1.use(StepperContext);
|
|
58
66
|
if (!context) throw new Error("Ensure that you wrap any components with the root component Stepper");
|
|
59
67
|
return context;
|
|
60
68
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Stepper.context.js","names":[],"sources":["../../../src/components/stepper/Stepper.context.tsx"],"sourcesContent":["import * as React from 'react'\n\nimport type { Context, StepperProviderProps } from './types'\n\
|
|
1
|
+
{"version":3,"file":"Stepper.context.js","names":[],"sources":["../../../src/components/stepper/Stepper.context.tsx"],"sourcesContent":["import * as React from 'react'\n\nimport type { Context, StepperProviderProps } from './types'\n\n// null default so useStepper's missing-provider guard can fire — a full\n// default object would silently render a zero-step stepper instead.\nconst StepperContext = React.createContext<Context | null>(null)\n\nexport const StepperProvider = ({\n children,\n stepCount,\n allowSkip,\n onComplete,\n onStepChange,\n direction,\n steps,\n hideLabels,\n showCompletedIcons\n}: React.PropsWithChildren<StepperProviderProps>) => {\n const [activeStep, setActiveStep] = React.useState(0)\n\n const [viewedSteps, setviewedSteps] = React.useState<number[]>([0])\n const [completedSteps, setCompletedSteps] = React.useState<number[]>([])\n\n const isControlled = !stepCount\n\n // Step changes (and their side effects) happen in the navigation handlers,\n // not an effect: an effect would fire onStepChange on mount (twice under\n // StrictMode) and again whenever the callback identity changed.\n const changeStep = React.useCallback(\n (nextStep: number) => {\n setActiveStep(nextStep)\n setviewedSteps((prev) =>\n prev.includes(nextStep) ? prev : [...prev, nextStep]\n )\n onStepChange?.(nextStep)\n },\n [onStepChange]\n )\n\n const goToNextStep = React.useCallback(() => {\n const isCompleted = onComplete && activeStep === stepCount - 1\n const isNextStep = activeStep < stepCount - 1\n\n if (onComplete || isNextStep) {\n setCompletedSteps((prev) =>\n prev.includes(activeStep) ? prev : [...prev, activeStep]\n )\n }\n\n if (isCompleted) {\n return onComplete?.()\n }\n if (isNextStep) {\n return changeStep(activeStep + 1)\n }\n }, [activeStep, stepCount, onComplete, changeStep])\n\n const goToPreviousStep = React.useCallback(() => {\n changeStep(activeStep - 1)\n }, [activeStep, changeStep])\n\n const goToStep = React.useCallback(\n (index: number) => {\n changeStep(index)\n },\n [changeStep]\n )\n\n const value = React.useMemo<Context>(\n () => ({\n steps: steps || Array(stepCount).fill(''),\n goToPreviousStep: isControlled ? undefined : goToPreviousStep,\n goToNextStep: isControlled ? undefined : goToNextStep,\n goToStep: isControlled ? undefined : goToStep,\n activeStep,\n viewedSteps,\n completedSteps,\n allowSkip,\n direction,\n hideLabels,\n showCompletedIcons\n }),\n [\n steps,\n stepCount,\n isControlled,\n goToPreviousStep,\n goToNextStep,\n goToStep,\n activeStep,\n viewedSteps,\n completedSteps,\n allowSkip,\n direction,\n hideLabels,\n showCompletedIcons\n ]\n )\n\n return <StepperContext value={value}>{children}</StepperContext>\n}\n\nexport const useStepper = (): Context => {\n const context = React.use(StepperContext)\n if (!context)\n throw new Error(\n 'Ensure that you wrap any components with the root component Stepper'\n )\n\n return context\n}\n"],"mappings":";;;AAMA,IAAM,iBAAiB,QAAM,cAA8B,IAAI;AAE/D,IAAa,mBAAmB,EAC9B,UACA,WACA,WACA,YACA,cACA,WACA,OACA,YACA,yBACmD;CACnD,MAAM,CAAC,YAAY,iBAAiB,QAAM,SAAS,CAAC;CAEpD,MAAM,CAAC,aAAa,kBAAkB,QAAM,SAAmB,CAAC,CAAC,CAAC;CAClE,MAAM,CAAC,gBAAgB,qBAAqB,QAAM,SAAmB,CAAC,CAAC;CAEvE,MAAM,eAAe,CAAC;CAKtB,MAAM,aAAa,QAAM,aACtB,aAAqB;EACpB,cAAc,QAAQ;EACtB,gBAAgB,SACd,KAAK,SAAS,QAAQ,IAAI,OAAO,CAAC,GAAG,MAAM,QAAQ,CACrD;EACA,eAAe,QAAQ;CACzB,GACA,CAAC,YAAY,CACf;CAEA,MAAM,eAAe,QAAM,kBAAkB;EAC3C,MAAM,cAAc,cAAc,eAAe,YAAY;EAC7D,MAAM,aAAa,aAAa,YAAY;EAE5C,IAAI,cAAc,YAChB,mBAAmB,SACjB,KAAK,SAAS,UAAU,IAAI,OAAO,CAAC,GAAG,MAAM,UAAU,CACzD;EAGF,IAAI,aACF,OAAO,aAAa;EAEtB,IAAI,YACF,OAAO,WAAW,aAAa,CAAC;CAEpC,GAAG;EAAC;EAAY;EAAW;EAAY;CAAU,CAAC;CAElD,MAAM,mBAAmB,QAAM,kBAAkB;EAC/C,WAAW,aAAa,CAAC;CAC3B,GAAG,CAAC,YAAY,UAAU,CAAC;CAE3B,MAAM,WAAW,QAAM,aACpB,UAAkB;EACjB,WAAW,KAAK;CAClB,GACA,CAAC,UAAU,CACb;CAiCA,OAAO,oBAAC,gBAAD;EAAuB,OA/BhB,QAAM,eACX;GACL,OAAO,SAAS,MAAM,SAAS,CAAC,CAAC,KAAK,EAAE;GACxC,kBAAkB,eAAe,KAAA,IAAY;GAC7C,cAAc,eAAe,KAAA,IAAY;GACzC,UAAU,eAAe,KAAA,IAAY;GACrC;GACA;GACA;GACA;GACA;GACA;GACA;EACF,IACA;GACE;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;EACF,CAG4B;EAAQ;CAAyB,CAAA;AACjE;AAEA,IAAa,mBAA4B;CACvC,MAAM,UAAU,QAAM,IAAI,cAAc;CACxC,IAAI,CAAC,SACH,MAAM,IAAI,MACR,qEACF;CAEF,OAAO;AACT"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { styled } from "../../styled.js";
|
|
2
|
-
import { Icon } from "../icon/Icon.js";
|
|
3
2
|
import { ColorScheme } from "../../experiments/color-scheme/ColorScheme.js";
|
|
3
|
+
import { Icon } from "../icon/Icon.js";
|
|
4
4
|
import { ActionIcon } from "../action-icon/ActionIcon.js";
|
|
5
5
|
import { useCallbackRefState } from "../../utilities/hooks/useCallbackRef.js";
|
|
6
6
|
import { useScrollPosition } from "../../utilities/hooks/useScrollPosition.js";
|
|
@@ -2,7 +2,7 @@ import * as React$1 from "react";
|
|
|
2
2
|
//#region src/components/toast/Toast.context.tsx
|
|
3
3
|
var ToastContext = React$1.createContext(null);
|
|
4
4
|
var useToastContext = () => {
|
|
5
|
-
const context = React$1.
|
|
5
|
+
const context = React$1.use(ToastContext);
|
|
6
6
|
if (!context) throw new Error("useToastContext must be used within a ToastProvider");
|
|
7
7
|
return context;
|
|
8
8
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Toast.context.js","names":[],"sources":["../../../src/components/toast/Toast.context.tsx"],"sourcesContent":["import * as React from 'react'\nimport type { Toast } from 'react-hot-toast'\n\nexport const ToastContext = React.createContext<Pick<\n Toast,\n 'type' | 'id' | 'message'\n> | null>(null)\n\nexport const useToastContext = () => {\n const context = React.
|
|
1
|
+
{"version":3,"file":"Toast.context.js","names":[],"sources":["../../../src/components/toast/Toast.context.tsx"],"sourcesContent":["import * as React from 'react'\nimport type { Toast } from 'react-hot-toast'\n\nexport const ToastContext = React.createContext<Pick<\n Toast,\n 'type' | 'id' | 'message'\n> | null>(null)\n\nexport const useToastContext = () => {\n const context = React.use(ToastContext)\n\n if (!context) {\n throw new Error('useToastContext must be used within a ToastProvider')\n }\n\n return context\n}\n"],"mappings":";;AAGA,IAAa,eAAe,QAAM,cAGxB,IAAI;AAEd,IAAa,wBAAwB;CACnC,MAAM,UAAU,QAAM,IAAI,YAAY;CAEtC,IAAI,CAAC,SACH,MAAM,IAAI,MAAM,qDAAqD;CAGvE,OAAO;AACT"}
|
|
@@ -56,7 +56,7 @@ var ToastProvider = ({ children, className }) => {
|
|
|
56
56
|
"aria-live": toast.ariaProps["aria-live"],
|
|
57
57
|
style: { "--offset": `${offset}px` },
|
|
58
58
|
className: "top-(--offset)",
|
|
59
|
-
children: /* @__PURE__ */ jsx(ToastContext
|
|
59
|
+
children: /* @__PURE__ */ jsx(ToastContext, {
|
|
60
60
|
value: toast,
|
|
61
61
|
children: typeof children === "function" ? children(toast) : React$1.isValidElement(children) ? children : /* @__PURE__ */ jsxs(Toast, {
|
|
62
62
|
className: "w-100",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ToastProvider.js","names":[],"sources":["../../../src/components/toast/ToastProvider.tsx"],"sourcesContent":["import { Error } from '@atom-learning/icons'\nimport * as React from 'react'\nimport { useToaster } from 'react-hot-toast'\n\nimport { styled } from '../../styled'\nimport { Spacer } from '../spacer/Spacer'\nimport { Text } from '../text/Text'\nimport { Toast } from './Toast'\nimport { ToastContext } from './Toast.context'\n\nexport { toast } from 'react-hot-toast'\nexport { useToastContext } from './Toast.context'\n\nconst ToastProviderBase = /* @__PURE__ */ styled('div', {\n base: [\n 'fixed',\n 'z-2147483647',\n 'inset-safe-offset-2',\n 'pointer-events-none',\n 'sm:top-safe-offset-3'\n ]\n})\n\nconst ToastWrapper = /* @__PURE__ */ styled('div', {\n base: [\n 'absolute',\n 'w-full',\n 'flex',\n 'justify-center',\n 'items-center',\n 'rounded-sm',\n 'box-border',\n 'min-h-12',\n '[--slide-opacity-out:0]',\n '[--slide-direction-out-y:-100%]'\n ],\n variants: {\n visible: {\n true: ['motion-safe:animate-slide-direction-in'],\n false: ['opacity-0', 'motion-safe:animate-slide-direction-out']\n }\n }\n})\n\nexport const ToastProvider = ({\n children,\n className\n}: React.PropsWithChildren<{ className?: string }>) => {\n const { toasts, handlers } = useToaster()\n const { startPause, endPause, calculateOffset, updateHeight } = handlers\n\n return (\n <>\n <ToastProviderBase\n onMouseEnter={startPause}\n onMouseLeave={endPause}\n className={className}\n >\n {toasts.map((toast) => {\n const { message: children } = toast\n\n const offset = calculateOffset(toast, {\n reverseOrder: true,\n gutter: 8\n })\n\n const ref = (el: HTMLDivElement | null) => {\n if (el && toast.height === undefined) {\n updateHeight(toast.id, el.getBoundingClientRect().height)\n }\n }\n\n return (\n <ToastWrapper\n key={toast.id}\n ref={ref}\n visible={toast.visible}\n role={toast.ariaProps.role}\n aria-live={toast.ariaProps['aria-live']}\n style={{ '--offset': `${offset}px` }}\n className=\"top-(--offset)\"\n >\n <ToastContext
|
|
1
|
+
{"version":3,"file":"ToastProvider.js","names":[],"sources":["../../../src/components/toast/ToastProvider.tsx"],"sourcesContent":["import { Error } from '@atom-learning/icons'\nimport * as React from 'react'\nimport { useToaster } from 'react-hot-toast'\n\nimport { styled } from '../../styled'\nimport { Spacer } from '../spacer/Spacer'\nimport { Text } from '../text/Text'\nimport { Toast } from './Toast'\nimport { ToastContext } from './Toast.context'\n\nexport { toast } from 'react-hot-toast'\nexport { useToastContext } from './Toast.context'\n\nconst ToastProviderBase = /* @__PURE__ */ styled('div', {\n base: [\n 'fixed',\n 'z-2147483647',\n 'inset-safe-offset-2',\n 'pointer-events-none',\n 'sm:top-safe-offset-3'\n ]\n})\n\nconst ToastWrapper = /* @__PURE__ */ styled('div', {\n base: [\n 'absolute',\n 'w-full',\n 'flex',\n 'justify-center',\n 'items-center',\n 'rounded-sm',\n 'box-border',\n 'min-h-12',\n '[--slide-opacity-out:0]',\n '[--slide-direction-out-y:-100%]'\n ],\n variants: {\n visible: {\n true: ['motion-safe:animate-slide-direction-in'],\n false: ['opacity-0', 'motion-safe:animate-slide-direction-out']\n }\n }\n})\n\nexport const ToastProvider = ({\n children,\n className\n}: React.PropsWithChildren<{ className?: string }>) => {\n const { toasts, handlers } = useToaster()\n const { startPause, endPause, calculateOffset, updateHeight } = handlers\n\n return (\n <>\n <ToastProviderBase\n onMouseEnter={startPause}\n onMouseLeave={endPause}\n className={className}\n >\n {toasts.map((toast) => {\n const { message: children } = toast\n\n const offset = calculateOffset(toast, {\n reverseOrder: true,\n gutter: 8\n })\n\n const ref = (el: HTMLDivElement | null) => {\n if (el && toast.height === undefined) {\n updateHeight(toast.id, el.getBoundingClientRect().height)\n }\n }\n\n return (\n <ToastWrapper\n key={toast.id}\n ref={ref}\n visible={toast.visible}\n role={toast.ariaProps.role}\n aria-live={toast.ariaProps['aria-live']}\n style={{ '--offset': `${offset}px` }}\n className=\"top-(--offset)\"\n >\n <ToastContext value={toast}>\n {typeof children === 'function' ? (\n children(toast)\n ) : React.isValidElement(children) ? (\n children\n ) : (\n <Toast className=\"w-100\">\n {toast.type === 'error' && <Toast.Icon is={Error} />}\n <Text>{children}</Text>\n <Spacer />\n <Toast.Close />\n </Toast>\n )}\n </ToastContext>\n </ToastWrapper>\n )\n })}\n </ToastProviderBase>\n {children}\n </>\n )\n}\n\nToastProvider.displayName = 'ToastProvider'\n"],"mappings":";;;;;;;;;;AAaA,IAAM,oBAAoC,uBAAO,OAAO,EACtD,MAAM;CACJ;CACA;CACA;CACA;CACA;AACF,EACF,CAAC;AAED,IAAM,eAA+B,uBAAO,OAAO;CACjD,MAAM;EACJ;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACF;CACA,UAAU,EACR,SAAS;EACP,MAAM,CAAC,wCAAwC;EAC/C,OAAO,CAAC,aAAa,yCAAyC;CAChE,EACF;AACF,CAAC;AAED,IAAa,iBAAiB,EAC5B,UACA,gBACqD;CACrD,MAAM,EAAE,QAAQ,aAAa,WAAW;CACxC,MAAM,EAAE,YAAY,UAAU,iBAAiB,iBAAiB;CAEhE,OACE,qBAAA,UAAA,EAAA,UAAA,CACE,oBAAC,mBAAD;EACE,cAAc;EACd,cAAc;EACH;YAEV,OAAO,KAAK,UAAU;GACrB,MAAM,EAAE,SAAS,aAAa;GAE9B,MAAM,SAAS,gBAAgB,OAAO;IACpC,cAAc;IACd,QAAQ;GACV,CAAC;GAED,MAAM,OAAO,OAA8B;IACzC,IAAI,MAAM,MAAM,WAAW,KAAA,GACzB,aAAa,MAAM,IAAI,GAAG,sBAAsB,CAAC,CAAC,MAAM;GAE5D;GAEA,OACE,oBAAC,cAAD;IAEO;IACL,SAAS,MAAM;IACf,MAAM,MAAM,UAAU;IACtB,aAAW,MAAM,UAAU;IAC3B,OAAO,EAAE,YAAY,GAAG,OAAO,IAAI;IACnC,WAAU;cAEV,oBAAC,cAAD;KAAc,OAAO;eAClB,OAAO,aAAa,aACnB,SAAS,KAAK,IACZ,QAAM,eAAe,QAAQ,IAC/B,WAEA,qBAAC,OAAD;MAAO,WAAU;gBAAjB;OACG,MAAM,SAAS,WAAW,oBAAC,MAAM,MAAP,EAAY,IAAI,MAAQ,CAAA;OACnD,oBAAC,MAAD,EAAO,SAAe,CAAA;OACtB,oBAAC,QAAD,CAAS,CAAA;OACT,oBAAC,MAAM,OAAP,CAAc,CAAA;MACT;;IAEG,CAAA;GACF,GAtBP,MAAM,EAsBC;EAElB,CAAC;CACgB,CAAA,GAClB,QACD,EAAA,CAAA;AAEN;AAEA,cAAc,cAAc"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { Root } from '@radix-ui/react-collapsible';
|
|
2
2
|
import * as React from 'react';
|
|
3
3
|
type TreeCollapsibleContextValue = {
|
|
4
|
-
triggerRef?: React.
|
|
5
|
-
setTriggerRef?: (
|
|
4
|
+
triggerRef?: React.RefObject<HTMLElement | null>;
|
|
5
|
+
setTriggerRef?: (el: HTMLElement | null) => void | (() => void);
|
|
6
6
|
};
|
|
7
7
|
export declare const TreeCollapsibleContext: React.Context<TreeCollapsibleContextValue>;
|
|
8
8
|
declare const StyledCollapsibleTreeItemRoot: import("../..").PolymorphicComponent<React.ForwardRefExoticComponent<import("@radix-ui/react-collapsible").CollapsibleProps & React.RefAttributes<HTMLDivElement>>, unknown>;
|
|
@@ -8,11 +8,11 @@ import { Root } from "@radix-ui/react-collapsible";
|
|
|
8
8
|
var TreeCollapsibleContext = React$1.createContext({});
|
|
9
9
|
var TreeCollapsibleProvider = ({ children }) => {
|
|
10
10
|
const [triggerRef, setTriggerRef] = useCallbackRef();
|
|
11
|
-
return /* @__PURE__ */ jsx(TreeCollapsibleContext
|
|
12
|
-
value: {
|
|
11
|
+
return /* @__PURE__ */ jsx(TreeCollapsibleContext, {
|
|
12
|
+
value: React$1.useMemo(() => ({
|
|
13
13
|
triggerRef,
|
|
14
14
|
setTriggerRef
|
|
15
|
-
},
|
|
15
|
+
}), [triggerRef, setTriggerRef]),
|
|
16
16
|
children
|
|
17
17
|
});
|
|
18
18
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TreeCollapsible.js","names":[],"sources":["../../../src/components/tree/TreeCollapsible.tsx"],"sourcesContent":["import { Root } from '@radix-ui/react-collapsible'\nimport * as React from 'react'\n\nimport { styled } from '../../styled'\nimport { useCallbackRef } from '../../utilities/hooks/useCallbackRef'\nimport { TreeListItem } from './TreeListItem'\n\ntype TreeCollapsibleContextValue = {\n triggerRef?: React.
|
|
1
|
+
{"version":3,"file":"TreeCollapsible.js","names":[],"sources":["../../../src/components/tree/TreeCollapsible.tsx"],"sourcesContent":["import { Root } from '@radix-ui/react-collapsible'\nimport * as React from 'react'\n\nimport { styled } from '../../styled'\nimport { useCallbackRef } from '../../utilities/hooks/useCallbackRef'\nimport { TreeListItem } from './TreeListItem'\n\ntype TreeCollapsibleContextValue = {\n triggerRef?: React.RefObject<HTMLElement | null>\n setTriggerRef?: (el: HTMLElement | null) => void | (() => void)\n}\nexport const TreeCollapsibleContext =\n React.createContext<TreeCollapsibleContextValue>({})\nconst TreeCollapsibleProvider = ({ children }) => {\n const [triggerRef, setTriggerRef] = useCallbackRef()\n const value = React.useMemo(\n () => ({ triggerRef, setTriggerRef }),\n [triggerRef, setTriggerRef]\n )\n return (\n <TreeCollapsibleContext value={value}>{children}</TreeCollapsibleContext>\n )\n}\n\nconst StyledCollapsibleTreeItemRoot = /* @__PURE__ */ styled(Root, {\n base: ['w-full']\n})\n\ntype TreeCollapsibleProps = React.ComponentProps<typeof Root> &\n React.ComponentProps<typeof StyledCollapsibleTreeItemRoot>\nexport const TreeCollapsible = ({\n ref,\n ...props\n}: TreeCollapsibleProps & {\n ref?: React.Ref<HTMLLIElement>\n}) => (\n <TreeListItem ref={ref}>\n <TreeCollapsibleProvider>\n <StyledCollapsibleTreeItemRoot {...props} />\n </TreeCollapsibleProvider>\n </TreeListItem>\n)\n"],"mappings":";;;;;;;AAWA,IAAa,yBACX,QAAM,cAA2C,CAAC,CAAC;AACrD,IAAM,2BAA2B,EAAE,eAAe;CAChD,MAAM,CAAC,YAAY,iBAAiB,eAAe;CAKnD,OACE,oBAAC,wBAAD;EAA+B,OALnB,QAAM,eACX;GAAE;GAAY;EAAc,IACnC,CAAC,YAAY,aAAa,CAGK;EAAQ;CAAiC,CAAA;AAE5E;AAEA,IAAM,gCAAgD,uBAAO,MAAM,EACjE,MAAM,CAAC,QAAQ,EACjB,CAAC;AAID,IAAa,mBAAmB,EAC9B,KACA,GAAG,YAIH,oBAAC,cAAD;CAAmB;WACjB,oBAAC,yBAAD,EAAA,UACE,oBAAC,+BAAD,EAA+B,GAAI,MAAQ,CAAA,EACpB,CAAA;AACb,CAAA"}
|