@lobehub/ui 4.38.4 → 5.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/es/Accordion/Accordion.d.mts +2 -2
- package/es/Accordion/AccordionItem.d.mts +2 -2
- package/es/ActionIcon/ActionIcon.d.mts +2 -2
- package/es/ActionIconGroup/ActionIconGroup.mjs +1 -1
- package/es/ActionIconGroup/type.d.mts +1 -1
- package/es/Alert/Alert.d.mts +2 -2
- package/es/AutoComplete/Select.d.mts +2 -2
- package/es/Avatar/AvatarGroup/index.d.mts +2 -2
- package/es/Burger/Burger.d.mts +2 -2
- package/es/CodeDiff/CodeDiff.d.mts +2 -2
- package/es/CodeDiff/PatchDiff.d.mts +2 -2
- package/es/CodeEditor/CodeEditor.d.mts +2 -2
- package/es/Collapse/Collapse.d.mts +2 -2
- package/es/ConfigProvider/index.d.mts +2 -2
- package/es/ContextMenu/index.d.mts +6 -7
- package/es/ContextMenu/index.mjs +3 -3
- package/es/CopyButton/CopyButton.d.mts +2 -2
- package/es/DatePicker/DatePicker.d.mts +2 -2
- package/es/DraggablePanel/components/DraggablePanelBody.d.mts +2 -2
- package/es/DraggablePanel/components/DraggablePanelContainer.d.mts +2 -2
- package/es/DraggablePanel/components/DraggablePanelFooter.d.mts +2 -2
- package/es/DraggablePanel/components/DraggablePanelHeader.d.mts +2 -2
- package/es/DraggableSideNav/DraggableSideNav.d.mts +2 -2
- package/es/Drawer/Drawer.d.mts +2 -2
- package/es/Dropdown/Dropdown.d.mts +2 -2
- package/es/DropdownMenu/index.d.mts +6 -5
- package/es/DropdownMenu/index.mjs +4 -4
- package/es/EditableText/EditableText.d.mts +2 -2
- package/es/EditorSlashMenu/atoms.d.mts +13 -13
- package/es/EmojiPicker/EmojiPicker.d.mts +2 -2
- package/es/Flex/FlexBasic.d.mts +2 -2
- package/es/FontLoader/index.d.mts +2 -2
- package/es/Footer/Footer.d.mts +2 -2
- package/es/Form/components/FormGroup.d.mts +2 -2
- package/es/Form/components/FormItem.d.mts +2 -2
- package/es/Form/components/FormSubmitFooter.d.mts +2 -2
- package/es/FormModal/FormModal.d.mts +2 -2
- package/es/GuideCard/GuideCard.d.mts +2 -2
- package/es/Header/Header.d.mts +2 -2
- package/es/Highlighter/Highlighter.d.mts +2 -2
- package/es/Highlighter/SyntaxHighlighter/index.d.mts +2 -2
- package/es/Hotkey/Hotkey.d.mts +2 -2
- package/es/HotkeyInput/HotkeyInput.d.mts +2 -2
- package/es/Icon/Icon.d.mts +2 -2
- package/es/Icon/components/IconProvider.d.mts +3 -3
- package/es/ImageSelect/ImageSelect.d.mts +2 -2
- package/es/Input/Input.d.mts +2 -2
- package/es/Input/InputNumber.d.mts +2 -2
- package/es/Input/InputOPT.d.mts +2 -2
- package/es/Input/InputPassword.d.mts +2 -2
- package/es/Input/TextArea.d.mts +2 -2
- package/es/Layout/components/LayoutFooter.d.mts +2 -2
- package/es/Layout/components/LayoutHeader.d.mts +2 -2
- package/es/Layout/components/LayoutMain.d.mts +2 -2
- package/es/Layout/components/LayoutSidebar.d.mts +2 -2
- package/es/Layout/components/LayoutSidebarInner.d.mts +2 -2
- package/es/Layout/components/LayoutToc.d.mts +2 -2
- package/es/List/ListItem/index.d.mts +2 -2
- package/es/Markdown/Markdown.d.mts +2 -2
- package/es/Markdown/Typography.d.mts +2 -2
- package/es/Markdown/components/SearchResultCards/index.d.mts +2 -2
- package/es/MaskShadow/MaskShadow.d.mts +2 -2
- package/es/Menu/Menu.d.mts +2 -2
- package/es/Mermaid/Mermaid.d.mts +2 -2
- package/es/Mermaid/SyntaxMermaid/index.d.mts +2 -2
- package/es/Modal/Modal.d.mts +2 -2
- package/es/Modal/ModalProvider.d.mts +2 -2
- package/es/Modal/imperative.d.mts +2 -2
- package/es/MotionProvider/index.d.mts +2 -2
- package/es/Popover/ArrowIcon.d.mts +2 -2
- package/es/Popover/atoms.d.mts +9 -9
- package/es/Popover/context.d.mts +2 -2
- package/es/ScrollArea/index.d.mts +5 -4
- package/es/ScrollArea/index.mjs +2 -2
- package/es/SearchBar/SearchBar.d.mts +2 -2
- package/es/Segmented/Segmented.d.mts +2 -2
- package/es/Select/Select.d.mts +3 -3
- package/es/Select/Select.mjs +1 -1
- package/es/Select/Select.mjs.map +1 -1
- package/es/SideNav/SideNav.d.mts +2 -2
- package/es/SliderWithInput/SliderWithInput.d.mts +2 -2
- package/es/SortableList/components/DragHandle.d.mts +2 -2
- package/es/SortableList/components/SortableItem.d.mts +2 -2
- package/es/ThemeProvider/ThemeProvider.d.mts +2 -2
- package/es/ThemeSwitch/ThemeSwitch.mjs +1 -1
- package/es/Toast/index.d.mts +4 -3
- package/es/Toast/index.mjs +1 -1
- package/es/Toc/Toc.d.mts +2 -2
- package/es/Video/index.d.mts +2 -2
- package/es/awesome/AuroraBackground/AuroraBackground.d.mts +2 -2
- package/es/awesome/BottomGradientButton/BottomGradientButton.d.mts +2 -2
- package/es/awesome/Features/Features.d.mts +2 -2
- package/es/awesome/Giscus/Giscus.d.mts +2 -2
- package/es/awesome/GradientButton/GradientButton.d.mts +2 -2
- package/es/awesome/GridBackground/GridBackground.d.mts +2 -2
- package/es/awesome/GridBackground/GridShowcase.d.mts +2 -2
- package/es/awesome/Hero/Hero.d.mts +2 -2
- package/es/awesome/Spline/Spine.d.mts +2 -2
- package/es/awesome/Spotlight/Spotlight.d.mts +2 -2
- package/es/awesome/SpotlightCard/SpotlightCard.d.mts +2 -2
- package/es/awesome/TypewriterEffect/TypewriterEffect.d.mts +2 -2
- package/es/base-ui/ContextMenu/ContextMenuHost.d.mts +8 -0
- package/es/{ContextMenu → base-ui/ContextMenu}/ContextMenuHost.mjs +6 -6
- package/es/base-ui/ContextMenu/ContextMenuHost.mjs.map +1 -0
- package/es/{ContextMenu → base-ui/ContextMenu}/ContextMenuTrigger.d.mts +1 -1
- package/es/{ContextMenu → base-ui/ContextMenu}/ContextMenuTrigger.mjs +2 -2
- package/es/base-ui/ContextMenu/ContextMenuTrigger.mjs.map +1 -0
- package/es/base-ui/ContextMenu/index.d.mts +7 -0
- package/es/base-ui/ContextMenu/renderItems.d.mts +4 -0
- package/es/{ContextMenu → base-ui/ContextMenu}/renderItems.mjs +7 -7
- package/es/base-ui/ContextMenu/renderItems.mjs.map +1 -0
- package/es/{ContextMenu → base-ui/ContextMenu}/store.d.mts +3 -3
- package/es/{ContextMenu → base-ui/ContextMenu}/store.mjs +1 -1
- package/es/base-ui/ContextMenu/store.mjs.map +1 -0
- package/es/base-ui/ContextMenu/type.d.mts +12 -0
- package/es/base-ui/DropdownMenu/DropdownMenu.d.mts +8 -0
- package/es/{DropdownMenu → base-ui/DropdownMenu}/DropdownMenu.mjs +3 -3
- package/es/base-ui/DropdownMenu/DropdownMenu.mjs.map +1 -0
- package/es/{DropdownMenu → base-ui/DropdownMenu}/atoms.d.mts +19 -19
- package/es/{DropdownMenu → base-ui/DropdownMenu}/atoms.mjs +7 -7
- package/es/base-ui/DropdownMenu/atoms.mjs.map +1 -0
- package/es/base-ui/DropdownMenu/index.d.mts +5 -0
- package/es/{DropdownMenu → base-ui/DropdownMenu}/renderItems.d.mts +3 -3
- package/es/{DropdownMenu → base-ui/DropdownMenu}/renderItems.mjs +3 -3
- package/es/base-ui/DropdownMenu/renderItems.mjs.map +1 -0
- package/es/{DropdownMenu → base-ui/DropdownMenu}/type.d.mts +9 -9
- package/es/{ScrollArea → base-ui/ScrollArea}/ScrollArea.d.mts +1 -1
- package/es/{ScrollArea → base-ui/ScrollArea}/ScrollArea.mjs +1 -1
- package/es/base-ui/ScrollArea/ScrollArea.mjs.map +1 -0
- package/es/{ScrollArea → base-ui/ScrollArea}/atoms.d.mts +8 -8
- package/es/{ScrollArea → base-ui/ScrollArea}/atoms.mjs +1 -1
- package/es/base-ui/ScrollArea/atoms.mjs.map +1 -0
- package/es/{ScrollArea → base-ui/ScrollArea}/globalStyle.mjs +1 -1
- package/es/base-ui/ScrollArea/globalStyle.mjs.map +1 -0
- package/es/base-ui/ScrollArea/index.d.mts +3 -0
- package/es/{ScrollArea → base-ui/ScrollArea}/style.mjs +1 -1
- package/es/base-ui/ScrollArea/style.mjs.map +1 -0
- package/es/{ScrollArea → base-ui/ScrollArea}/type.d.mts +1 -1
- package/es/base-ui/Select/Select.d.mts +8 -0
- package/es/{LobeSelect/LobeSelect.mjs → base-ui/Select/Select.mjs} +9 -9
- package/es/base-ui/Select/Select.mjs.map +1 -0
- package/es/base-ui/Select/atoms.d.mts +155 -0
- package/es/{LobeSelect → base-ui/Select}/atoms.mjs +38 -38
- package/es/base-ui/Select/atoms.mjs.map +1 -0
- package/es/base-ui/Select/index.d.mts +3 -0
- package/es/{LobeSelect → base-ui/Select}/style.mjs +2 -2
- package/es/base-ui/Select/style.mjs.map +1 -0
- package/es/{LobeSelect → base-ui/Select}/type.d.mts +24 -24
- package/es/base-ui/Switch/Switch.d.mts +8 -0
- package/es/{LobeSwitch/LobeSwitch.mjs → base-ui/Switch/Switch.mjs} +12 -12
- package/es/base-ui/Switch/Switch.mjs.map +1 -0
- package/es/base-ui/Switch/atoms.d.mts +56 -0
- package/es/{LobeSwitch → base-ui/Switch}/atoms.mjs +16 -16
- package/es/base-ui/Switch/atoms.mjs.map +1 -0
- package/es/base-ui/Switch/index.d.mts +4 -0
- package/es/{LobeSwitch → base-ui/Switch}/style.d.mts +1 -1
- package/es/{LobeSwitch → base-ui/Switch}/style.mjs +4 -4
- package/es/base-ui/Switch/style.mjs.map +1 -0
- package/es/{LobeSwitch → base-ui/Switch}/type.d.mts +21 -21
- package/es/{Toast → base-ui/Toast}/Toast.mjs +2 -2
- package/es/base-ui/Toast/Toast.mjs.map +1 -0
- package/es/{Toast → base-ui/Toast}/context.mjs +1 -1
- package/es/base-ui/Toast/context.mjs.map +1 -0
- package/es/{Toast → base-ui/Toast}/imperative.d.mts +3 -3
- package/es/{Toast → base-ui/Toast}/imperative.mjs +3 -3
- package/es/base-ui/Toast/imperative.mjs.map +1 -0
- package/es/base-ui/Toast/index.d.mts +2 -0
- package/es/{Toast → base-ui/Toast}/style.mjs +1 -1
- package/es/base-ui/Toast/style.mjs.map +1 -0
- package/es/{Toast → base-ui/Toast}/type.d.mts +3 -3
- package/es/base-ui/index.d.mts +28 -0
- package/es/base-ui/index.mjs +16 -0
- package/es/brand/LobeChat/index.d.mts +2 -2
- package/es/brand/LobeHub/index.d.mts +2 -2
- package/es/brand/LogoThree/LogoSpline.d.mts +2 -2
- package/es/brand/LogoThree/index.d.mts +2 -2
- package/es/chat/BackBottom/BackBottom.d.mts +2 -2
- package/es/chat/ChatInputArea/components/ChatInputAreaInner.d.mts +2 -2
- package/es/chat/ChatItem/ChatItem.d.mts +2 -2
- package/es/chat/ChatList/ChatList.d.mts +2 -2
- package/es/chat/EditableMessage/EditableMessage.d.mts +2 -2
- package/es/chat/EditableMessageList/EditableMessageList.d.mts +2 -2
- package/es/chat/MessageInput/MessageInput.d.mts +2 -2
- package/es/chat/MessageModal/MessageModal.d.mts +2 -2
- package/es/color/ColorScales/index.d.mts +2 -2
- package/es/color/CssVar/index.d.mts +2 -2
- package/es/hooks/useNativeButton.mjs +2 -2
- package/es/hooks/useNativeButton.mjs.map +1 -1
- package/es/i18n/context.d.mts +2 -2
- package/es/icons/lucideExtra/BotPromptIcon.d.mts +2 -2
- package/es/icons/lucideExtra/CreateBotIcon.d.mts +2 -2
- package/es/icons/lucideExtra/DiscordIcon.d.mts +3 -3
- package/es/icons/lucideExtra/GlobeOffIcon.d.mts +2 -2
- package/es/icons/lucideExtra/GroupBotIcon.d.mts +2 -2
- package/es/icons/lucideExtra/GroupBotSquareIcon.d.mts +3 -3
- package/es/icons/lucideExtra/LeftClickIcon.d.mts +3 -3
- package/es/icons/lucideExtra/LeftDoubleClickIcon.d.mts +3 -3
- package/es/icons/lucideExtra/McpIcon.d.mts +3 -3
- package/es/icons/lucideExtra/ProviderIcon.d.mts +3 -3
- package/es/icons/lucideExtra/RightClickIcon.d.mts +3 -3
- package/es/icons/lucideExtra/RightDoubleClickIcon.d.mts +3 -3
- package/es/icons/lucideExtra/ShapesUploadIcon.d.mts +3 -3
- package/es/icons/lucideExtra/SkillsIcon.d.mts +3 -3
- package/es/icons/lucideExtra/TreeDownRightIcon.d.mts +3 -3
- package/es/icons/lucideExtra/TreeUpDownRightIcon.d.mts +3 -3
- package/es/index.d.mts +15 -24
- package/es/index.mjs +11 -16
- package/es/mdx/Mdx/index.d.mts +2 -2
- package/es/mobile/ChatHeader/ChatHeaderTitle.d.mts +2 -2
- package/es/mobile/ChatInputArea/components/ChatSendButton.d.mts +2 -2
- package/es/mobile/TabBar/TabBar.d.mts +2 -2
- package/es/storybook/StoryBook/index.d.mts +2 -2
- package/package.json +48 -33
- package/awesome.d.ts +0 -1
- package/awesome.js +0 -1
- package/brand.d.ts +0 -1
- package/brand.js +0 -1
- package/chat.d.ts +0 -1
- package/chat.js +0 -1
- package/color.d.ts +0 -1
- package/color.js +0 -1
- package/es/ContextMenu/ContextMenuHost.d.mts +0 -8
- package/es/ContextMenu/ContextMenuHost.mjs.map +0 -1
- package/es/ContextMenu/ContextMenuTrigger.mjs.map +0 -1
- package/es/ContextMenu/renderItems.d.mts +0 -4
- package/es/ContextMenu/renderItems.mjs.map +0 -1
- package/es/ContextMenu/store.mjs.map +0 -1
- package/es/ContextMenu/type.d.mts +0 -12
- package/es/DropdownMenu/DropdownMenu.d.mts +0 -8
- package/es/DropdownMenu/DropdownMenu.mjs.map +0 -1
- package/es/DropdownMenu/atoms.mjs.map +0 -1
- package/es/DropdownMenu/renderItems.mjs.map +0 -1
- package/es/LobeSelect/LobeSelect.d.mts +0 -8
- package/es/LobeSelect/LobeSelect.mjs.map +0 -1
- package/es/LobeSelect/atoms.d.mts +0 -155
- package/es/LobeSelect/atoms.mjs.map +0 -1
- package/es/LobeSelect/index.d.mts +0 -4
- package/es/LobeSelect/index.mjs +0 -4
- package/es/LobeSelect/style.mjs.map +0 -1
- package/es/LobeSwitch/LobeSwitch.d.mts +0 -8
- package/es/LobeSwitch/LobeSwitch.mjs.map +0 -1
- package/es/LobeSwitch/atoms.d.mts +0 -56
- package/es/LobeSwitch/atoms.mjs.map +0 -1
- package/es/LobeSwitch/index.d.mts +0 -5
- package/es/LobeSwitch/index.d.ts +0 -1
- package/es/LobeSwitch/index.js +0 -1
- package/es/LobeSwitch/index.mjs +0 -5
- package/es/LobeSwitch/style.mjs.map +0 -1
- package/es/ScrollArea/ScrollArea.mjs.map +0 -1
- package/es/ScrollArea/atoms.mjs.map +0 -1
- package/es/ScrollArea/globalStyle.mjs.map +0 -1
- package/es/ScrollArea/style.mjs.map +0 -1
- package/es/Toast/Toast.mjs.map +0 -1
- package/es/Toast/context.mjs.map +0 -1
- package/es/Toast/imperative.mjs.map +0 -1
- package/es/Toast/style.mjs.map +0 -1
- package/icons.d.ts +0 -1
- package/icons.js +0 -1
- package/mdx.d.ts +0 -1
- package/mdx.js +0 -1
- package/mobile.d.ts +0 -1
- package/mobile.js +0 -1
- package/storybook.d.ts +0 -1
- package/storybook.js +0 -1
- /package/es/{ContextMenu → base-ui/ContextMenu}/imperative.d.mts +0 -0
- /package/es/{LobeSelect → base-ui}/index.d.ts +0 -0
- /package/es/{LobeSelect → base-ui}/index.js +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
|
|
3
|
-
import { useMotionComponent } from "
|
|
3
|
+
import { useMotionComponent } from "../../MotionProvider/index.mjs";
|
|
4
4
|
import { rootVariants, styles, thumbVariants } from "./style.mjs";
|
|
5
5
|
import { createContext, use, useMemo, useRef, useState } from "react";
|
|
6
6
|
import { jsx } from "react/jsx-runtime";
|
|
@@ -8,14 +8,14 @@ import { cx } from "antd-style";
|
|
|
8
8
|
import useMergeState from "use-merge-value";
|
|
9
9
|
import { Switch } from "@base-ui/react/switch";
|
|
10
10
|
|
|
11
|
-
//#region src/
|
|
12
|
-
const
|
|
13
|
-
const
|
|
14
|
-
const context = use(
|
|
15
|
-
if (!context) throw new Error("
|
|
11
|
+
//#region src/base-ui/Switch/atoms.tsx
|
|
12
|
+
const SwitchContext = createContext(null);
|
|
13
|
+
const useSwitchContext = () => {
|
|
14
|
+
const context = use(SwitchContext);
|
|
15
|
+
if (!context) throw new Error("useSwitchContext must be used within a SwitchRoot");
|
|
16
16
|
return context;
|
|
17
17
|
};
|
|
18
|
-
const
|
|
18
|
+
const SwitchRoot = ({ checked, className, defaultChecked, onCheckedChange, onClick, size = "default", children, disabled, readOnly, required, inputRef, id, name, ...rest }) => {
|
|
19
19
|
const Motion = useMotionComponent();
|
|
20
20
|
const [isPressed, setIsPressed] = useState(false);
|
|
21
21
|
const lastEventRef = useRef(null);
|
|
@@ -45,7 +45,7 @@ const LobeSwitchRoot = ({ checked, className, defaultChecked, onCheckedChange, o
|
|
|
45
45
|
if (event.key === "Enter" || event.key === " ") lastEventRef.current = event;
|
|
46
46
|
rest.onKeyDown?.(event);
|
|
47
47
|
};
|
|
48
|
-
return /* @__PURE__ */ jsx(
|
|
48
|
+
return /* @__PURE__ */ jsx(SwitchContext, {
|
|
49
49
|
value: contextValue,
|
|
50
50
|
children: /* @__PURE__ */ jsx(Switch.Root, {
|
|
51
51
|
checked: isChecked,
|
|
@@ -72,14 +72,14 @@ const LobeSwitchRoot = ({ checked, className, defaultChecked, onCheckedChange, o
|
|
|
72
72
|
})
|
|
73
73
|
});
|
|
74
74
|
};
|
|
75
|
-
|
|
76
|
-
const
|
|
75
|
+
SwitchRoot.displayName = "SwitchRoot";
|
|
76
|
+
const SwitchThumb = ({ className, pressedAnimation, size = "default", transition = {
|
|
77
77
|
damping: 25,
|
|
78
78
|
stiffness: 300,
|
|
79
79
|
type: "spring"
|
|
80
80
|
}, children, ...rest }) => {
|
|
81
81
|
const Motion = useMotionComponent();
|
|
82
|
-
const { isPressed } =
|
|
82
|
+
const { isPressed } = useSwitchContext();
|
|
83
83
|
const baseClassName = thumbVariants({ size });
|
|
84
84
|
const defaultPressedAnimation = { width: size === "small" ? 16 : 22 };
|
|
85
85
|
return /* @__PURE__ */ jsx(Switch.Thumb, { render: /* @__PURE__ */ jsx(Motion.span, {
|
|
@@ -91,18 +91,18 @@ const LobeSwitchThumb = ({ className, pressedAnimation, size = "default", transi
|
|
|
91
91
|
children
|
|
92
92
|
}) });
|
|
93
93
|
};
|
|
94
|
-
|
|
94
|
+
SwitchThumb.displayName = "SwitchThumb";
|
|
95
95
|
const getIconPositionClass = (position, size) => {
|
|
96
96
|
if (position === "thumb") return styles.iconThumb;
|
|
97
97
|
if (position === "left") return size === "small" ? styles.iconLeftSmall : styles.iconLeft;
|
|
98
98
|
return size === "small" ? styles.iconRightSmall : styles.iconRight;
|
|
99
99
|
};
|
|
100
|
-
const
|
|
100
|
+
const SwitchIcon = ({ children, className, position, transition = {
|
|
101
101
|
bounce: 0,
|
|
102
102
|
type: "spring"
|
|
103
103
|
}, ...rest }) => {
|
|
104
104
|
const Motion = useMotionComponent();
|
|
105
|
-
const { isChecked } =
|
|
105
|
+
const { isChecked } = useSwitchContext();
|
|
106
106
|
const size = rest.size || "default";
|
|
107
107
|
const isAnimated = useMemo(() => {
|
|
108
108
|
if (position === "right") return !isChecked;
|
|
@@ -125,8 +125,8 @@ const LobeSwitchIcon = ({ children, className, position, transition = {
|
|
|
125
125
|
children
|
|
126
126
|
});
|
|
127
127
|
};
|
|
128
|
-
|
|
128
|
+
SwitchIcon.displayName = "SwitchIcon";
|
|
129
129
|
|
|
130
130
|
//#endregion
|
|
131
|
-
export {
|
|
131
|
+
export { SwitchIcon, SwitchRoot, SwitchThumb, useSwitchContext };
|
|
132
132
|
//# sourceMappingURL=atoms.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"atoms.mjs","names":["useControlledState"],"sources":["../../../src/base-ui/Switch/atoms.tsx"],"sourcesContent":["'use client';\n\nimport { Switch } from '@base-ui/react/switch';\nimport { cx } from 'antd-style';\nimport type { KeyboardEvent, MouseEvent } from 'react';\nimport { createContext, use, useMemo, useRef, useState } from 'react';\nimport useControlledState from 'use-merge-value';\n\nimport { useMotionComponent } from '@/MotionProvider';\n\nimport { rootVariants, styles, thumbVariants } from './style';\nimport type {\n SwitchChangeEventHandler,\n SwitchContextType,\n SwitchIconPosition,\n SwitchIconProps,\n SwitchRootProps,\n SwitchThumbProps,\n} from './type';\n\nconst SwitchContext = createContext<SwitchContextType | null>(null);\n\nexport const useSwitchContext = () => {\n const context = use(SwitchContext);\n if (!context) {\n throw new Error('useSwitchContext must be used within a SwitchRoot');\n }\n return context;\n};\n\ntype SwitchRootInternalProps = Omit<SwitchRootProps, 'onCheckedChange' | 'onClick'> & {\n onCheckedChange?: SwitchChangeEventHandler;\n onClick?: SwitchChangeEventHandler;\n};\n\nexport const SwitchRoot = ({\n checked,\n className,\n defaultChecked,\n onCheckedChange,\n onClick,\n size = 'default',\n children,\n disabled,\n readOnly,\n required,\n inputRef,\n id,\n name,\n ...rest\n}: SwitchRootInternalProps) => {\n const Motion = useMotionComponent();\n const [isPressed, setIsPressed] = useState(false);\n const lastEventRef = useRef<MouseEvent<HTMLButtonElement> | KeyboardEvent<HTMLButtonElement>>(\n null,\n );\n\n const [isChecked, setIsChecked] = useControlledState(defaultChecked ?? false, {\n defaultValue: defaultChecked,\n onChange: (value: boolean) => {\n if (lastEventRef.current) {\n onCheckedChange?.(value, lastEventRef.current);\n }\n },\n value: checked,\n });\n\n const baseClassName = rootVariants({ size });\n\n const contextValue = useMemo(\n () => ({\n isChecked: Boolean(isChecked),\n isPressed,\n setIsChecked: (value: boolean) => setIsChecked(value),\n setIsPressed,\n }),\n [isChecked, isPressed, setIsChecked],\n );\n\n const handleClick = (event: MouseEvent<HTMLButtonElement>) => {\n lastEventRef.current = event;\n onClick?.(!isChecked, event);\n };\n\n const handleKeyDown = (event: KeyboardEvent<HTMLButtonElement>) => {\n if (event.key === 'Enter' || event.key === ' ') {\n lastEventRef.current = event;\n }\n (rest as any).onKeyDown?.(event);\n };\n\n return (\n <SwitchContext value={contextValue}>\n <Switch.Root\n checked={isChecked}\n defaultChecked={defaultChecked}\n disabled={disabled}\n id={id}\n inputRef={inputRef}\n name={name}\n readOnly={readOnly}\n required={required}\n render={\n <Motion.button\n {...rest}\n className={cx(baseClassName, className)}\n initial={false}\n whileTap=\"tap\"\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n onTap={() => setIsPressed(false)}\n onTapCancel={() => setIsPressed(false)}\n onTapStart={() => setIsPressed(true)}\n />\n }\n onCheckedChange={setIsChecked}\n >\n {children}\n </Switch.Root>\n </SwitchContext>\n );\n};\n\nSwitchRoot.displayName = 'SwitchRoot';\n\nexport const SwitchThumb = ({\n className,\n pressedAnimation,\n size = 'default',\n transition = { damping: 25, stiffness: 300, type: 'spring' },\n children,\n ...rest\n}: SwitchThumbProps) => {\n const Motion = useMotionComponent();\n const { isPressed } = useSwitchContext();\n const baseClassName = thumbVariants({ size });\n\n const defaultPressedAnimation = {\n width: size === 'small' ? 16 : 22,\n };\n\n return (\n <Switch.Thumb\n render={\n <Motion.span\n layout\n animate={isPressed ? pressedAnimation || defaultPressedAnimation : undefined}\n className={cx(baseClassName, className)}\n transition={transition}\n {...rest}\n >\n {children}\n </Motion.span>\n }\n />\n );\n};\n\nSwitchThumb.displayName = 'SwitchThumb';\n\nconst getIconPositionClass = (position: SwitchIconPosition, size: 'default' | 'small') => {\n if (position === 'thumb') return styles.iconThumb;\n if (position === 'left') return size === 'small' ? styles.iconLeftSmall : styles.iconLeft;\n return size === 'small' ? styles.iconRightSmall : styles.iconRight;\n};\n\nexport const SwitchIcon = ({\n children,\n className,\n position,\n transition = { bounce: 0, type: 'spring' },\n ...rest\n}: SwitchIconProps & { children?: React.ReactNode; size?: 'default' | 'small' }) => {\n const Motion = useMotionComponent();\n const { isChecked } = useSwitchContext();\n const size = (rest as any).size || 'default';\n\n const isAnimated = useMemo(() => {\n if (position === 'right') return !isChecked;\n if (position === 'left') return isChecked;\n if (position === 'thumb') return true;\n return false;\n }, [position, isChecked]);\n\n const positionClass = getIconPositionClass(position, size);\n\n return (\n <Motion.span\n animate={isAnimated ? { opacity: 1, scale: 1 } : { opacity: 0, scale: 0 }}\n className={cx(styles.icon, positionClass, className)}\n transition={transition}\n {...rest}\n >\n {children}\n </Motion.span>\n );\n};\n\nSwitchIcon.displayName = 'SwitchIcon';\n\nexport { styles as switchStyles } from './style';\n"],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { SwitchChangeEventHandler, SwitchClassNames, SwitchClickEventHandler, SwitchContextType, SwitchIconPosition, SwitchIconProps, SwitchProps, SwitchRootProps, SwitchSize, SwitchStyles, SwitchThumbProps } from "./type.mjs";
|
|
2
|
+
import { styles } from "./style.mjs";
|
|
3
|
+
import { SwitchIcon, SwitchRoot, SwitchThumb, useSwitchContext } from "./atoms.mjs";
|
|
4
|
+
import { Switch } from "./Switch.mjs";
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { createStaticStyles } from "antd-style";
|
|
2
2
|
import { cva } from "class-variance-authority";
|
|
3
3
|
|
|
4
|
-
//#region src/
|
|
4
|
+
//#region src/base-ui/Switch/style.ts
|
|
5
5
|
const styles = createStaticStyles(({ css: css$1, cssVar: cssVar$1 }) => ({
|
|
6
6
|
icon: css$1`
|
|
7
7
|
pointer-events: none;
|
|
8
8
|
|
|
9
9
|
position: absolute;
|
|
10
|
-
inset-block: 0
|
|
10
|
+
inset-block: 0;
|
|
11
11
|
|
|
12
12
|
display: flex;
|
|
13
13
|
align-items: center;
|
|
@@ -110,8 +110,8 @@ const styles = createStaticStyles(({ css: css$1, cssVar: cssVar$1 }) => ({
|
|
|
110
110
|
|
|
111
111
|
background: ${cssVar$1.colorBgContainer};
|
|
112
112
|
box-shadow:
|
|
113
|
-
0 2px 4px 0
|
|
114
|
-
0 1px 2px 0
|
|
113
|
+
0 2px 4px 0 rgb(0 35 11 / 20%),
|
|
114
|
+
0 1px 2px 0 rgb(0 0 0 / 8%);
|
|
115
115
|
|
|
116
116
|
[data-disabled] > & {
|
|
117
117
|
box-shadow: none;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"style.mjs","names":["cssVar"],"sources":["../../../src/base-ui/Switch/style.ts"],"sourcesContent":["import { createStaticStyles } from 'antd-style';\nimport { cva } from 'class-variance-authority';\n\nexport const styles = createStaticStyles(({ css, cssVar }) => ({\n icon: css`\n pointer-events: none;\n\n position: absolute;\n inset-block: 0;\n\n display: flex;\n align-items: center;\n justify-content: center;\n\n color: ${cssVar.colorTextLightSolid};\n `,\n iconLeft: css`\n inset-inline-start: 5px;\n `,\n iconLeftSmall: css`\n inset-inline-start: 4px;\n `,\n iconRight: css`\n inset-inline-end: 5px;\n `,\n iconRightSmall: css`\n inset-inline-end: 4px;\n `,\n iconThumb: css`\n position: relative;\n inset: unset;\n transform: none;\n color: ${cssVar.colorPrimary};\n `,\n loading: css`\n @keyframes lobe-switch-loading {\n 0% {\n transform: rotate(0deg);\n }\n\n 100% {\n transform: rotate(360deg);\n }\n }\n\n animation: lobe-switch-loading 1s linear infinite;\n `,\n root: css`\n cursor: pointer;\n user-select: none;\n\n position: relative;\n\n overflow: hidden;\n display: inline-flex;\n align-items: center;\n justify-content: flex-start;\n\n box-sizing: border-box;\n padding: 2px;\n border: 0;\n border-radius: 100px;\n\n background: ${cssVar.colorTextQuaternary};\n outline: none;\n\n transition: background 150ms ${cssVar.motionEaseOut};\n\n &:focus-visible {\n outline: 2px solid ${cssVar.colorPrimaryBorder};\n outline-offset: 1px;\n }\n\n &:hover:not([data-disabled]) {\n background: ${cssVar.colorTextTertiary};\n }\n\n &[data-checked] {\n justify-content: flex-end;\n background: ${cssVar.colorPrimary};\n\n &:hover:not([data-disabled]) {\n background: ${cssVar.colorPrimaryHover};\n }\n }\n\n &[data-disabled] {\n cursor: not-allowed;\n opacity: 0.5;\n }\n `,\n rootDefault: css`\n width: 44px;\n min-width: 44px;\n height: 22px;\n `,\n rootSmall: css`\n width: 28px;\n min-width: 28px;\n height: 16px;\n `,\n thumb: css`\n display: flex;\n flex-shrink: 0;\n align-items: center;\n justify-content: center;\n\n border-radius: 50%;\n\n background: ${cssVar.colorBgContainer};\n box-shadow:\n 0 2px 4px 0 rgb(0 35 11 / 20%),\n 0 1px 2px 0 rgb(0 0 0 / 8%);\n\n [data-disabled] > & {\n box-shadow: none;\n }\n `,\n thumbDefault: css`\n width: 18px;\n height: 18px;\n `,\n thumbSmall: css`\n width: 12px;\n height: 12px;\n `,\n}));\n\nexport const rootVariants = cva(styles.root, {\n defaultVariants: {\n size: 'default',\n },\n variants: {\n size: {\n default: styles.rootDefault,\n small: styles.rootSmall,\n },\n },\n});\n\nexport const thumbVariants = cva(styles.thumb, {\n defaultVariants: {\n size: 'default',\n },\n variants: {\n size: {\n default: styles.thumbDefault,\n small: styles.thumbSmall,\n },\n },\n});\n"],"mappings":";;;;AAGA,MAAa,SAAS,oBAAoB,EAAE,YAAK,wBAAc;CAC7D,MAAM,KAAG;;;;;;;;;;aAUEA,SAAO,oBAAoB;;CAEtC,UAAU,KAAG;;;CAGb,eAAe,KAAG;;;CAGlB,WAAW,KAAG;;;CAGd,gBAAgB,KAAG;;;CAGnB,WAAW,KAAG;;;;aAIHA,SAAO,aAAa;;CAE/B,SAAS,KAAG;;;;;;;;;;;;;CAaZ,MAAM,KAAG;;;;;;;;;;;;;;;;kBAgBOA,SAAO,oBAAoB;;;mCAGVA,SAAO,cAAc;;;2BAG7BA,SAAO,mBAAmB;;;;;oBAKjCA,SAAO,kBAAkB;;;;;oBAKzBA,SAAO,aAAa;;;sBAGlBA,SAAO,kBAAkB;;;;;;;;;CAS7C,aAAa,KAAG;;;;;CAKhB,WAAW,KAAG;;;;;CAKd,OAAO,KAAG;;;;;;;;kBAQMA,SAAO,iBAAiB;;;;;;;;;CASxC,cAAc,KAAG;;;;CAIjB,YAAY,KAAG;;;;CAIhB,EAAE;AAEH,MAAa,eAAe,IAAI,OAAO,MAAM;CAC3C,iBAAiB,EACf,MAAM,WACP;CACD,UAAU,EACR,MAAM;EACJ,SAAS,OAAO;EAChB,OAAO,OAAO;EACf,EACF;CACF,CAAC;AAEF,MAAa,gBAAgB,IAAI,OAAO,OAAO;CAC7C,iBAAiB,EACf,MAAM,WACP;CACD,UAAU,EACR,MAAM;EACJ,SAAS,OAAO;EAChB,OAAO,OAAO;EACf,EACF;CACF,CAAC"}
|
|
@@ -2,40 +2,40 @@ import { CSSProperties, ComponentProps, KeyboardEvent, MouseEvent, ReactNode, Re
|
|
|
2
2
|
import { HTMLMotionProps, TargetAndTransition, Transition } from "motion/react";
|
|
3
3
|
import { Switch } from "@base-ui/react/switch";
|
|
4
4
|
|
|
5
|
-
//#region src/
|
|
6
|
-
type
|
|
7
|
-
type
|
|
8
|
-
type
|
|
9
|
-
interface
|
|
5
|
+
//#region src/base-ui/Switch/type.d.ts
|
|
6
|
+
type SwitchSize = 'default' | 'small';
|
|
7
|
+
type SwitchChangeEventHandler = (checked: boolean, event: MouseEvent<HTMLButtonElement> | KeyboardEvent<HTMLButtonElement>) => void;
|
|
8
|
+
type SwitchClickEventHandler = SwitchChangeEventHandler;
|
|
9
|
+
interface SwitchClassNames {
|
|
10
10
|
content?: string;
|
|
11
11
|
root?: string;
|
|
12
12
|
thumb?: string;
|
|
13
13
|
}
|
|
14
|
-
interface
|
|
14
|
+
interface SwitchStyles {
|
|
15
15
|
content?: CSSProperties;
|
|
16
16
|
root?: CSSProperties;
|
|
17
17
|
thumb?: CSSProperties;
|
|
18
18
|
}
|
|
19
|
-
interface
|
|
19
|
+
interface SwitchContextType {
|
|
20
20
|
isChecked: boolean;
|
|
21
21
|
isPressed: boolean;
|
|
22
22
|
setIsChecked: (checked: boolean) => void;
|
|
23
23
|
setIsPressed: (pressed: boolean) => void;
|
|
24
24
|
}
|
|
25
|
-
type
|
|
26
|
-
size?:
|
|
25
|
+
type SwitchRootProps = Omit<ComponentProps<typeof Switch.Root>, 'render'> & HTMLMotionProps<'button'> & {
|
|
26
|
+
size?: SwitchSize;
|
|
27
27
|
};
|
|
28
|
-
type
|
|
28
|
+
type SwitchThumbProps = Omit<ComponentProps<typeof Switch.Thumb>, 'render'> & HTMLMotionProps<'span'> & {
|
|
29
29
|
pressedAnimation?: TargetAndTransition | boolean;
|
|
30
|
-
size?:
|
|
30
|
+
size?: SwitchSize;
|
|
31
31
|
transition?: Transition;
|
|
32
32
|
};
|
|
33
|
-
type
|
|
34
|
-
type
|
|
35
|
-
position:
|
|
33
|
+
type SwitchIconPosition = 'left' | 'right' | 'thumb';
|
|
34
|
+
type SwitchIconProps = HTMLMotionProps<'span'> & {
|
|
35
|
+
position: SwitchIconPosition;
|
|
36
36
|
transition?: Transition;
|
|
37
37
|
};
|
|
38
|
-
interface
|
|
38
|
+
interface SwitchProps {
|
|
39
39
|
/**
|
|
40
40
|
* Whether to set focus automatically when mounted
|
|
41
41
|
*/
|
|
@@ -55,7 +55,7 @@ interface LobeSwitchProps {
|
|
|
55
55
|
/**
|
|
56
56
|
* Custom class names for each part
|
|
57
57
|
*/
|
|
58
|
-
classNames?:
|
|
58
|
+
classNames?: SwitchClassNames;
|
|
59
59
|
/**
|
|
60
60
|
* Initial checked state (uncontrolled)
|
|
61
61
|
*/
|
|
@@ -83,11 +83,11 @@ interface LobeSwitchProps {
|
|
|
83
83
|
/**
|
|
84
84
|
* Callback when the switch state changes
|
|
85
85
|
*/
|
|
86
|
-
onChange?:
|
|
86
|
+
onChange?: SwitchChangeEventHandler;
|
|
87
87
|
/**
|
|
88
88
|
* Callback when clicking the switch
|
|
89
89
|
*/
|
|
90
|
-
onClick?:
|
|
90
|
+
onClick?: SwitchClickEventHandler;
|
|
91
91
|
/**
|
|
92
92
|
* Reference to the root element
|
|
93
93
|
*/
|
|
@@ -100,7 +100,7 @@ interface LobeSwitchProps {
|
|
|
100
100
|
* Size of the switch
|
|
101
101
|
* @default 'default'
|
|
102
102
|
*/
|
|
103
|
-
size?:
|
|
103
|
+
size?: SwitchSize;
|
|
104
104
|
/**
|
|
105
105
|
* Custom inline style
|
|
106
106
|
*/
|
|
@@ -108,7 +108,7 @@ interface LobeSwitchProps {
|
|
|
108
108
|
/**
|
|
109
109
|
* Custom styles for each part
|
|
110
110
|
*/
|
|
111
|
-
styles?:
|
|
111
|
+
styles?: SwitchStyles;
|
|
112
112
|
/**
|
|
113
113
|
* Tab index for keyboard navigation
|
|
114
114
|
*/
|
|
@@ -127,5 +127,5 @@ interface LobeSwitchProps {
|
|
|
127
127
|
value?: boolean;
|
|
128
128
|
}
|
|
129
129
|
//#endregion
|
|
130
|
-
export {
|
|
130
|
+
export { SwitchChangeEventHandler, SwitchClassNames, SwitchClickEventHandler, SwitchContextType, SwitchIconPosition, SwitchIconProps, SwitchProps, SwitchRootProps, SwitchSize, SwitchStyles, SwitchThumbProps };
|
|
131
131
|
//# sourceMappingURL=type.d.mts.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
|
|
3
|
-
import Icon_default from "
|
|
3
|
+
import Icon_default from "../../Icon/Icon.mjs";
|
|
4
4
|
import { useToastContext } from "./context.mjs";
|
|
5
5
|
import { actionVariants, rootVariants, styles } from "./style.mjs";
|
|
6
6
|
import { memo } from "react";
|
|
@@ -9,7 +9,7 @@ import { cssVar, cx } from "antd-style";
|
|
|
9
9
|
import { AlertTriangle, CheckCircle, Info, Loader2, X, XCircle } from "lucide-react";
|
|
10
10
|
import { Toast } from "@base-ui/react/toast";
|
|
11
11
|
|
|
12
|
-
//#region src/Toast/Toast.tsx
|
|
12
|
+
//#region src/base-ui/Toast/Toast.tsx
|
|
13
13
|
const typeIcons = {
|
|
14
14
|
default: Info,
|
|
15
15
|
error: XCircle,
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Toast.mjs","names":["typeIcons: Record<ToastType, typeof Info>","typeColors: Record<ToastType, string>","Icon","BaseToast"],"sources":["../../../src/base-ui/Toast/Toast.tsx"],"sourcesContent":["'use client';\n\nimport { Toast as BaseToast } from '@base-ui/react/toast';\nimport { cssVar, cx } from 'antd-style';\nimport { AlertTriangle, CheckCircle, Info, Loader2, X, XCircle } from 'lucide-react';\nimport { memo, type ReactNode } from 'react';\n\nimport Icon from '@/Icon';\n\nimport { useToastContext } from './context';\nimport { actionVariants, rootVariants, styles } from './style';\nimport { type ToastOptions, type ToastProps, type ToastType } from './type';\n\nconst typeIcons: Record<ToastType, typeof Info> = {\n default: Info,\n error: XCircle,\n info: Info,\n loading: Loader2,\n success: CheckCircle,\n warning: AlertTriangle,\n};\n\nconst typeColors: Record<ToastType, string> = {\n default: cssVar.colorText,\n error: cssVar.colorError,\n info: cssVar.colorInfo,\n loading: cssVar.colorPrimary,\n success: cssVar.colorSuccess,\n warning: cssVar.colorWarning,\n};\n\nconst ToastItem = memo<ToastProps>(({ toast, classNames, styles: customStyles }) => {\n const { position, swipeDirection } = useToastContext();\n const toastData = toast.data as ToastOptions | undefined;\n const type = toastData?.type ?? 'default';\n const closable = toastData?.closable ?? true;\n const hideCloseButton = toastData?.hideCloseButton ?? false;\n const showCloseButton = closable && !hideCloseButton;\n const icon = toastData?.icon;\n const title = toast.title ?? toastData?.title;\n const description = toast.description ?? toastData?.description;\n const actionProps = toast.actionProps ?? toastData?.actionProps;\n const actions = toastData?.actions;\n\n const iconColor = typeColors[type];\n const IconComponent = icon ?? typeIcons[type];\n const isLoading = type === 'loading';\n\n const renderIcon = (): ReactNode => {\n if (!IconComponent) return null;\n return (\n <div className={cx(styles.icon, classNames?.icon)} style={customStyles?.icon}>\n <Icon color={iconColor} icon={IconComponent} size={18} spin={isLoading} />\n </div>\n );\n };\n\n const renderActions = (): ReactNode => {\n if (actions && actions.length > 0) {\n return (\n <div className={cx(styles.actions, classNames?.actions)} style={customStyles?.actions}>\n {actions.map((action, index) => (\n <BaseToast.Action\n key={index}\n style={customStyles?.action}\n className={cx(\n actionVariants({ variant: action.variant ?? 'primary' }),\n classNames?.action,\n )}\n onClick={action.onClick}\n {...action.props}\n >\n {action.label}\n </BaseToast.Action>\n ))}\n </div>\n );\n }\n if (actionProps) {\n return (\n <BaseToast.Action\n className={cx(actionVariants({ variant: 'primary' }), classNames?.action)}\n style={customStyles?.action}\n {...actionProps}\n />\n );\n }\n return null;\n };\n\n return (\n <BaseToast.Root\n className={cx(rootVariants({ position }), classNames?.root)}\n swipeDirection={swipeDirection}\n toast={toast}\n style={{\n ...customStyles?.root,\n ...toastData?.style,\n }}\n >\n <BaseToast.Content\n className={cx(styles.content, classNames?.content)}\n style={customStyles?.content}\n >\n <div className={styles.toastBody}>\n {renderIcon()}\n <div className={styles.contentArea}>\n <div className={styles.titleRow}>\n {title && (\n <BaseToast.Title\n className={cx(styles.title, classNames?.title)}\n style={customStyles?.title}\n >\n {title}\n </BaseToast.Title>\n )}\n {showCloseButton && (\n <BaseToast.Close\n aria-label=\"Close\"\n className={cx(styles.close, classNames?.close)}\n style={customStyles?.close}\n >\n <X size={14} />\n </BaseToast.Close>\n )}\n </div>\n {description && (\n <BaseToast.Description\n className={cx(styles.description, classNames?.description)}\n style={{\n marginBlockStart: title ? 4 : 0,\n ...customStyles?.description,\n }}\n >\n {description}\n </BaseToast.Description>\n )}\n {renderActions()}\n </div>\n </div>\n </BaseToast.Content>\n </BaseToast.Root>\n );\n});\n\nToastItem.displayName = 'ToastItem';\n\nexport default ToastItem;\n"],"mappings":";;;;;;;;;;;;AAaA,MAAMA,YAA4C;CAChD,SAAS;CACT,OAAO;CACP,MAAM;CACN,SAAS;CACT,SAAS;CACT,SAAS;CACV;AAED,MAAMC,aAAwC;CAC5C,SAAS,OAAO;CAChB,OAAO,OAAO;CACd,MAAM,OAAO;CACb,SAAS,OAAO;CAChB,SAAS,OAAO;CAChB,SAAS,OAAO;CACjB;AAED,MAAM,YAAY,MAAkB,EAAE,OAAO,YAAY,QAAQ,mBAAmB;CAClF,MAAM,EAAE,UAAU,mBAAmB,iBAAiB;CACtD,MAAM,YAAY,MAAM;CACxB,MAAM,OAAO,WAAW,QAAQ;CAChC,MAAM,WAAW,WAAW,YAAY;CACxC,MAAM,kBAAkB,WAAW,mBAAmB;CACtD,MAAM,kBAAkB,YAAY,CAAC;CACrC,MAAM,OAAO,WAAW;CACxB,MAAM,QAAQ,MAAM,SAAS,WAAW;CACxC,MAAM,cAAc,MAAM,eAAe,WAAW;CACpD,MAAM,cAAc,MAAM,eAAe,WAAW;CACpD,MAAM,UAAU,WAAW;CAE3B,MAAM,YAAY,WAAW;CAC7B,MAAM,gBAAgB,QAAQ,UAAU;CACxC,MAAM,YAAY,SAAS;CAE3B,MAAM,mBAA8B;AAClC,MAAI,CAAC,cAAe,QAAO;AAC3B,SACE,oBAAC;GAAI,WAAW,GAAG,OAAO,MAAM,YAAY,KAAK;GAAE,OAAO,cAAc;aACtE,oBAACC;IAAK,OAAO;IAAW,MAAM;IAAe,MAAM;IAAI,MAAM;KAAa;IACtE;;CAIV,MAAM,sBAAiC;AACrC,MAAI,WAAW,QAAQ,SAAS,EAC9B,QACE,oBAAC;GAAI,WAAW,GAAG,OAAO,SAAS,YAAY,QAAQ;GAAE,OAAO,cAAc;aAC3E,QAAQ,KAAK,QAAQ,UACpB,oBAACC,MAAU;IAET,OAAO,cAAc;IACrB,WAAW,GACT,eAAe,EAAE,SAAS,OAAO,WAAW,WAAW,CAAC,EACxD,YAAY,OACb;IACD,SAAS,OAAO;IAChB,GAAI,OAAO;cAEV,OAAO;MATH,MAUY,CACnB;IACE;AAGV,MAAI,YACF,QACE,oBAACA,MAAU;GACT,WAAW,GAAG,eAAe,EAAE,SAAS,WAAW,CAAC,EAAE,YAAY,OAAO;GACzE,OAAO,cAAc;GACrB,GAAI;IACJ;AAGN,SAAO;;AAGT,QACE,oBAACA,MAAU;EACT,WAAW,GAAG,aAAa,EAAE,UAAU,CAAC,EAAE,YAAY,KAAK;EAC3C;EACT;EACP,OAAO;GACL,GAAG,cAAc;GACjB,GAAG,WAAW;GACf;YAED,oBAACA,MAAU;GACT,WAAW,GAAG,OAAO,SAAS,YAAY,QAAQ;GAClD,OAAO,cAAc;aAErB,qBAAC;IAAI,WAAW,OAAO;eACpB,YAAY,EACb,qBAAC;KAAI,WAAW,OAAO;;MACrB,qBAAC;OAAI,WAAW,OAAO;kBACpB,SACC,oBAACA,MAAU;QACT,WAAW,GAAG,OAAO,OAAO,YAAY,MAAM;QAC9C,OAAO,cAAc;kBAEpB;SACe,EAEnB,mBACC,oBAACA,MAAU;QACT,cAAW;QACX,WAAW,GAAG,OAAO,OAAO,YAAY,MAAM;QAC9C,OAAO,cAAc;kBAErB,oBAAC,KAAE,MAAM,KAAM;SACC;QAEhB;MACL,eACC,oBAACA,MAAU;OACT,WAAW,GAAG,OAAO,aAAa,YAAY,YAAY;OAC1D,OAAO;QACL,kBAAkB,QAAQ,IAAI;QAC9B,GAAG,cAAc;QAClB;iBAEA;QACqB;MAEzB,eAAe;;MACZ;KACF;IACY;GACL;EAEnB;AAEF,UAAU,cAAc;AAExB,oBAAe"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.mjs","names":[],"sources":["../../../src/base-ui/Toast/context.ts"],"sourcesContent":["'use client';\n\nimport { createContext, useContext } from 'react';\n\nimport type { ToastPosition } from './type';\n\nexport interface ToastContextValue {\n position: ToastPosition;\n swipeDirection: ('left' | 'right' | 'up' | 'down') | ('left' | 'right' | 'up' | 'down')[];\n}\n\nexport const ToastContext = createContext<ToastContextValue>({\n position: 'bottom-right',\n swipeDirection: ['down', 'right'],\n});\n\nexport const useToastContext = () => useContext(ToastContext);\n"],"mappings":";;;;;AAWA,MAAa,eAAe,cAAiC;CAC3D,UAAU;CACV,gBAAgB,CAAC,QAAQ,QAAQ;CAClC,CAAC;AAEF,MAAa,wBAAwB,WAAW,aAAa"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ToastAPI, ToastPosition } from "./type.mjs";
|
|
2
|
-
import * as
|
|
2
|
+
import * as react131 from "react";
|
|
3
3
|
|
|
4
|
-
//#region src/Toast/imperative.d.ts
|
|
4
|
+
//#region src/base-ui/Toast/imperative.d.ts
|
|
5
5
|
declare const toast: ToastAPI;
|
|
6
6
|
interface ToastHostProps {
|
|
7
7
|
className?: string;
|
|
@@ -30,7 +30,7 @@ interface ToastHostProps {
|
|
|
30
30
|
*/
|
|
31
31
|
swipeDirection?: ('left' | 'right' | 'up' | 'down') | ('left' | 'right' | 'up' | 'down')[];
|
|
32
32
|
}
|
|
33
|
-
declare const ToastHost:
|
|
33
|
+
declare const ToastHost: react131.MemoExoticComponent<({
|
|
34
34
|
root,
|
|
35
35
|
className,
|
|
36
36
|
duration,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
|
|
3
|
-
import { useIsClient } from "
|
|
4
|
-
import { useAppElement } from "
|
|
3
|
+
import { useIsClient } from "../../hooks/useIsClient.mjs";
|
|
4
|
+
import { useAppElement } from "../../ThemeProvider/AppElementContext.mjs";
|
|
5
5
|
import { ToastContext } from "./context.mjs";
|
|
6
6
|
import { viewportVariants } from "./style.mjs";
|
|
7
7
|
import Toast_default from "./Toast.mjs";
|
|
@@ -10,7 +10,7 @@ import { jsx } from "react/jsx-runtime";
|
|
|
10
10
|
import { cx } from "antd-style";
|
|
11
11
|
import { Toast } from "@base-ui/react/toast";
|
|
12
12
|
|
|
13
|
-
//#region src/Toast/imperative.tsx
|
|
13
|
+
//#region src/base-ui/Toast/imperative.tsx
|
|
14
14
|
const ALL_POSITIONS = [
|
|
15
15
|
"top",
|
|
16
16
|
"top-left",
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"imperative.mjs","names":["ALL_POSITIONS: ToastPosition[]","globalState: ToastState","toastManagers: Record<ToastPosition, ReturnType<typeof BaseToast.createToastManager>>","BaseToast","activeToastIds: Record<ToastPosition, Set<string>>","toast: ToastAPI","ToastItem"],"sources":["../../../src/base-ui/Toast/imperative.tsx"],"sourcesContent":["'use client';\n\nimport { Toast as BaseToast } from '@base-ui/react/toast';\nimport { cx } from 'antd-style';\nimport { memo, useEffect } from 'react';\n\nimport { useIsClient } from '@/hooks/useIsClient';\nimport { useAppElement } from '@/ThemeProvider';\n\nimport { ToastContext } from './context';\nimport { viewportVariants } from './style';\nimport ToastItem from './Toast';\nimport {\n type ToastAPI,\n type ToastInstance,\n type ToastOptions,\n type ToastPosition,\n type ToastPromiseOptions,\n type ToastType,\n} from './type';\n\n// All possible positions\nconst ALL_POSITIONS: ToastPosition[] = [\n 'top',\n 'top-left',\n 'top-right',\n 'bottom',\n 'bottom-left',\n 'bottom-right',\n];\n\n// Global state management\ninterface ToastState {\n duration: number;\n limit: number;\n position: ToastPosition;\n swipeDirection: ('left' | 'right' | 'up' | 'down') | ('left' | 'right' | 'up' | 'down')[];\n}\n\nlet globalState: ToastState = {\n duration: 5000,\n limit: 5,\n position: 'bottom-right',\n swipeDirection: ['down', 'right'],\n};\n\n// Toast managers for each position\nconst toastManagers: Record<ToastPosition, ReturnType<typeof BaseToast.createToastManager>> = {\n 'bottom': BaseToast.createToastManager(),\n 'bottom-left': BaseToast.createToastManager(),\n 'bottom-right': BaseToast.createToastManager(),\n 'top': BaseToast.createToastManager(),\n 'top-left': BaseToast.createToastManager(),\n 'top-right': BaseToast.createToastManager(),\n};\n\nconst activeToastIds: Record<ToastPosition, Set<string>> = {\n 'bottom': new Set(),\n 'bottom-left': new Set(),\n 'bottom-right': new Set(),\n 'top': new Set(),\n 'top-left': new Set(),\n 'top-right': new Set(),\n};\n\nconst getManager = (position: ToastPosition) => toastManagers[position];\n\nconst normalizeOptions = (\n optionsOrMessage: Omit<ToastOptions, 'type'> | string,\n type: ToastType,\n): ToastOptions => {\n if (typeof optionsOrMessage === 'string') {\n return {\n description: optionsOrMessage,\n type,\n };\n }\n return {\n ...optionsOrMessage,\n type,\n };\n};\n\nconst createToastInstance = (id: string, position: ToastPosition): ToastInstance => ({\n close: () => getManager(position).close(id),\n id,\n update: (options) => {\n getManager(position).update(id, {\n data: options,\n description: options.description,\n title: options.title,\n });\n },\n});\n\nconst addToast = (options: ToastOptions): ToastInstance => {\n const position = options.placement ?? globalState.position;\n const manager = getManager(position);\n const onRemove = options.onRemove;\n const id = manager.add({\n data: options,\n description: options.description,\n onClose: options.onClose,\n onRemove: () => {\n activeToastIds[position].delete(id);\n onRemove?.();\n },\n timeout: options.duration ?? globalState.duration,\n title: options.title,\n });\n activeToastIds[position].add(id);\n return createToastInstance(id, position);\n};\n\nconst dismissToast = (id?: string) => {\n if (id) {\n // Try to close from all managers since we don't know which position the toast is in\n for (const [position, manager] of Object.entries(toastManagers)) {\n activeToastIds[position as ToastPosition].delete(id);\n manager.close(id);\n }\n } else {\n // Clear all toasts\n for (const [position, manager] of Object.entries(toastManagers)) {\n const ids = Array.from(activeToastIds[position as ToastPosition]);\n for (const toastId of ids) {\n manager.close(toastId);\n }\n activeToastIds[position as ToastPosition].clear();\n }\n }\n};\n\nconst createSuccessToast = (\n optionsOrMessage: Omit<ToastOptions, 'type'> | string,\n): ToastInstance => {\n return addToast(normalizeOptions(optionsOrMessage, 'success'));\n};\n\nconst createErrorToast = (optionsOrMessage: Omit<ToastOptions, 'type'> | string): ToastInstance => {\n return addToast(normalizeOptions(optionsOrMessage, 'error'));\n};\n\nconst createInfoToast = (optionsOrMessage: Omit<ToastOptions, 'type'> | string): ToastInstance => {\n return addToast(normalizeOptions(optionsOrMessage, 'info'));\n};\n\nconst createWarningToast = (\n optionsOrMessage: Omit<ToastOptions, 'type'> | string,\n): ToastInstance => {\n return addToast(normalizeOptions(optionsOrMessage, 'warning'));\n};\n\nconst createLoadingToast = (\n optionsOrMessage: Omit<ToastOptions, 'type'> | string,\n): ToastInstance => {\n const options = normalizeOptions(optionsOrMessage, 'loading');\n // Loading toasts don't auto-dismiss by default\n return addToast({ duration: 0, ...options });\n};\n\nasync function promiseToast<T>(promise: Promise<T>, options: ToastPromiseOptions<T>): Promise<T> {\n const loadingOptions =\n typeof options.loading === 'string'\n ? { description: options.loading }\n : (options.loading as ToastOptions);\n\n const loadingToast = addToast({\n closable: false,\n duration: 0,\n type: 'loading',\n ...loadingOptions,\n });\n\n try {\n const result = await promise;\n\n loadingToast.close();\n\n const successOptions = (() => {\n if (typeof options.success === 'string') {\n return { description: options.success };\n }\n if (typeof options.success === 'function') {\n return { description: options.success(result) };\n }\n return options.success as ToastOptions;\n })();\n\n addToast({ type: 'success', ...successOptions });\n\n return result;\n } catch (error) {\n loadingToast.close();\n\n const errorOptions = (() => {\n if (typeof options.error === 'string') {\n return { description: options.error };\n }\n if (typeof options.error === 'function') {\n return { description: options.error(error as Error) };\n }\n return options.error as ToastOptions;\n })();\n\n addToast({ type: 'error', ...errorOptions });\n\n throw error;\n }\n}\n\n// Base toast function\nconst baseToast = (options: ToastOptions): ToastInstance => {\n return addToast({ type: 'default', ...options });\n};\n\n// Toast API\nexport const toast: ToastAPI = Object.assign(baseToast, {\n dismiss: dismissToast,\n error: createErrorToast,\n info: createInfoToast,\n loading: createLoadingToast,\n promise: promiseToast,\n success: createSuccessToast,\n warning: createWarningToast,\n});\n\n// Toast List Component\nconst ToastList = memo(() => {\n const { toasts } = BaseToast.useToastManager();\n return toasts.map((t) => <ToastItem key={t.id} toast={t} />);\n});\n\nToastList.displayName = 'ToastList';\n\nexport interface ToastHostProps {\n className?: string;\n /**\n * Default duration for toasts\n * @default 5000\n */\n duration?: number;\n /**\n * Maximum number of toasts\n * @default 5\n */\n limit?: number;\n /**\n * Toast position\n * @default 'bottom-right'\n */\n position?: ToastPosition;\n /**\n * Root element for portal\n */\n root?: HTMLElement | ShadowRoot | null;\n /**\n * Swipe direction to dismiss\n * @default ['down', 'right']\n */\n swipeDirection?: ('left' | 'right' | 'up' | 'down') | ('left' | 'right' | 'up' | 'down')[];\n}\n\nexport const ToastHost = memo(\n ({\n root,\n className,\n duration = 5000,\n limit = 5,\n position = 'bottom-right',\n swipeDirection = ['down', 'right'],\n }: ToastHostProps) => {\n const isClient = useIsClient();\n const appElement = useAppElement();\n\n useEffect(() => {\n globalState = {\n duration,\n limit,\n position,\n swipeDirection,\n };\n }, [duration, limit, position, swipeDirection]);\n\n if (!isClient) return null;\n\n const container = root ?? appElement ?? document.body;\n\n ALL_POSITIONS.map((pos) => (\n <ToastContext key={pos} value={{ position: pos, swipeDirection }}>\n <BaseToast.Provider limit={limit} timeout={duration} toastManager={getManager(pos)}>\n <BaseToast.Portal container={container}>\n <BaseToast.Viewport className={cx(viewportVariants({ position: pos }), className)}>\n <ToastList />\n </BaseToast.Viewport>\n </BaseToast.Portal>\n </BaseToast.Provider>\n </ToastContext>\n ));\n },\n);\n\nToastHost.displayName = 'ToastHost';\n\n// Hook to use toast manager\nexport const useToast = () => toast;\n"],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { createStaticStyles } from "antd-style";
|
|
2
2
|
import { cva } from "class-variance-authority";
|
|
3
3
|
|
|
4
|
-
//#region src/Toast/style.ts
|
|
4
|
+
//#region src/base-ui/Toast/style.ts
|
|
5
5
|
const styles = createStaticStyles(({ css: css$1, cssVar: cssVar$1 }) => ({
|
|
6
6
|
action: css$1`
|
|
7
7
|
cursor: pointer;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"style.mjs","names":["cssVar"],"sources":["../../../src/base-ui/Toast/style.ts"],"sourcesContent":["import { createStaticStyles } from 'antd-style';\nimport { cva } from 'class-variance-authority';\n\nexport const styles = createStaticStyles(({ css, cssVar }) => ({\n action: css`\n cursor: pointer;\n\n display: inline-flex;\n flex-shrink: 0;\n align-items: center;\n justify-content: center;\n\n height: 28px;\n padding-inline: 12px;\n border: none;\n border-radius: ${cssVar.borderRadiusSM};\n\n font-size: 12px;\n font-weight: 500;\n line-height: 1;\n\n transition:\n background 0.2s,\n color 0.2s;\n\n &:focus-visible {\n outline: 2px solid ${cssVar.colorPrimaryBorder};\n outline-offset: 1px;\n }\n `,\n\n actionDanger: css`\n color: ${cssVar.colorTextLightSolid};\n background: ${cssVar.colorError};\n\n &:hover {\n background: ${cssVar.colorErrorHover};\n }\n\n &:active {\n background: ${cssVar.colorErrorActive};\n }\n\n &:focus-visible {\n outline-color: ${cssVar.colorErrorBorder};\n }\n `,\n\n actionGhost: css`\n border: 1px solid ${cssVar.colorBorder};\n color: ${cssVar.colorText};\n background: transparent;\n\n &:hover {\n border-color: ${cssVar.colorPrimary};\n color: ${cssVar.colorPrimary};\n }\n\n &:active {\n border-color: ${cssVar.colorPrimaryActive};\n color: ${cssVar.colorPrimaryActive};\n }\n `,\n\n actionPrimary: css`\n color: ${cssVar.colorTextLightSolid};\n background: ${cssVar.colorPrimary};\n\n &:hover {\n background: ${cssVar.colorPrimaryHover};\n }\n\n &:active {\n background: ${cssVar.colorPrimaryActive};\n }\n `,\n\n actionSecondary: css`\n color: ${cssVar.colorText};\n background: ${cssVar.colorFillSecondary};\n\n &:hover {\n background: ${cssVar.colorFillTertiary};\n }\n\n &:active {\n background: ${cssVar.colorFill};\n }\n `,\n\n actionText: css`\n color: ${cssVar.colorPrimary};\n background: transparent;\n\n &:hover {\n background: ${cssVar.colorFillTertiary};\n }\n\n &:active {\n background: ${cssVar.colorFillSecondary};\n }\n `,\n\n actions: css`\n display: flex;\n flex-grow: 1;\n flex-shrink: 0;\n gap: 8px;\n align-items: center;\n align-self: flex-end;\n justify-content: flex-end;\n\n margin-block-start: 8px;\n `,\n\n close: css`\n cursor: pointer;\n\n display: flex;\n flex-shrink: 0;\n align-items: center;\n justify-content: center;\n\n width: 20px;\n height: 20px;\n margin-inline-start: auto;\n padding: 0;\n border: none;\n border-radius: ${cssVar.borderRadiusSM};\n\n color: ${cssVar.colorTextTertiary};\n\n background: transparent;\n\n transition: all 0.2s;\n\n &:hover {\n color: ${cssVar.colorText};\n background: ${cssVar.colorFillSecondary};\n }\n `,\n\n content: css`\n overflow: hidden;\n transition: opacity 0.2s;\n\n &[data-behind] {\n pointer-events: none;\n opacity: 0;\n }\n\n &[data-expanded] {\n pointer-events: auto;\n opacity: 1;\n }\n `,\n\n contentArea: css`\n display: flex;\n flex: 1;\n flex-direction: column;\n min-width: 0;\n `,\n\n description: css`\n margin: 0;\n font-size: 13px;\n line-height: 1.5;\n color: ${cssVar.colorTextSecondary};\n `,\n\n icon: css`\n display: flex;\n flex-shrink: 0;\n align-items: center;\n justify-content: center;\n `,\n\n root: css`\n --toast-gap: 12px;\n --toast-peek: 12px;\n --toast-scale: calc(1 - var(--toast-index) * 0.05);\n --toast-shrink: calc(1 - var(--toast-scale));\n --toast-collapsed-height: var(--toast-frontmost-height, var(--toast-height));\n\n cursor: default;\n user-select: none;\n\n position: absolute;\n z-index: calc(1000 - var(--toast-index));\n inset-inline: 0;\n\n box-sizing: border-box;\n width: 100%;\n height: var(--toast-collapsed-height);\n padding-block: 12px;\n padding-inline: 16px;\n border-radius: ${cssVar.borderRadiusLG};\n\n color: ${cssVar.colorText};\n\n background: ${cssVar.colorBgElevated};\n background-clip: padding-box;\n box-shadow:\n 0 0 0 1px color-mix(in srgb, ${cssVar.colorBgSolid} 3%, transparent),\n 0 1px 1px -0.5px color-mix(in srgb, ${cssVar.colorBgSolid} 3%, transparent),\n 0 3px 3px -1.5px color-mix(in srgb, ${cssVar.colorBgSolid} 3%, transparent),\n 0 6px 6px -3px color-mix(in srgb, ${cssVar.colorBgSolid} 3%, transparent),\n 0 12px 12px -6px color-mix(in srgb, ${cssVar.colorBgSolid} 3%, transparent),\n 0 24px 24px -12px color-mix(in srgb, ${cssVar.colorBgSolid} 3%, transparent);\n\n transition:\n transform 0.4s cubic-bezier(0.22, 1, 0.36, 1),\n opacity 0.4s,\n height 0.15s;\n\n /* Fill gap between stacked toasts to prevent hover flicker */\n &::after {\n content: '';\n position: absolute;\n inset-inline: 0;\n height: calc(var(--toast-gap) + var(--toast-peek) + 8px);\n }\n\n &[data-limited] {\n opacity: 0;\n }\n\n &[data-swiping] {\n transition: none;\n }\n `,\n\n // Bottom positions - stack upward\n rootBottom: css`\n inset-block: auto 0;\n transform-origin: bottom center;\n transform: translateX(var(--toast-swipe-movement-x))\n translateY(\n calc(\n var(--toast-swipe-movement-y) - (var(--toast-index) * var(--toast-peek)) -\n (var(--toast-shrink) * var(--toast-collapsed-height))\n )\n )\n scale(var(--toast-scale));\n\n &::after {\n inset-block-start: 100%;\n }\n\n &[data-expanded] {\n transform: translateX(var(--toast-swipe-movement-x))\n translateY(\n calc(\n var(--toast-swipe-movement-y) + var(--toast-offset-y) * -1 + var(--toast-index) *\n var(--toast-gap) * -1\n )\n )\n scale(1);\n height: var(--toast-height);\n }\n\n &[data-starting-style],\n &[data-ending-style] {\n transform: translateY(150%);\n opacity: 0;\n }\n `,\n\n // Top positions - stack downward\n rootTop: css`\n inset-block: 0 auto;\n transform-origin: top center;\n transform: translateX(var(--toast-swipe-movement-x))\n translateY(\n calc(\n var(--toast-swipe-movement-y) + (var(--toast-index) * var(--toast-peek)) +\n (var(--toast-shrink) * var(--toast-collapsed-height))\n )\n )\n scale(var(--toast-scale));\n\n &::after {\n inset-block-end: 100%;\n }\n\n &[data-expanded] {\n transform: translateX(var(--toast-swipe-movement-x))\n translateY(\n calc(\n var(--toast-swipe-movement-y) + var(--toast-offset-y) + var(--toast-index) *\n var(--toast-gap)\n )\n )\n scale(1);\n height: var(--toast-height);\n }\n\n &[data-starting-style],\n &[data-ending-style] {\n transform: translateY(-150%);\n opacity: 0;\n }\n `,\n\n title: css`\n margin: 0;\n\n font-size: 14px;\n font-weight: 500;\n line-height: 1.5;\n color: ${cssVar.colorText};\n `,\n\n titleRow: css`\n display: flex;\n gap: 8px;\n align-items: center;\n `,\n\n toastBody: css`\n display: flex;\n gap: 12px;\n align-items: flex-start;\n `,\n\n viewport: css`\n position: fixed;\n z-index: 1100;\n\n width: 360px;\n max-width: calc(100vw - 32px);\n\n outline: 0;\n\n @media (width <= 480px) {\n width: calc(100vw - 32px);\n }\n `,\n\n viewportBottom: css`\n inset-block-end: 16px;\n inset-inline-start: 50%;\n transform: translateX(-50%);\n `,\n\n viewportBottomLeft: css`\n inset-block-end: 16px;\n inset-inline-start: 16px;\n `,\n\n viewportBottomRight: css`\n inset-block-end: 16px;\n inset-inline-end: 16px;\n `,\n\n viewportTop: css`\n inset-block-start: 16px;\n inset-inline-start: 50%;\n transform: translateX(-50%);\n `,\n\n viewportTopLeft: css`\n inset-block-start: 16px;\n inset-inline-start: 16px;\n `,\n\n viewportTopRight: css`\n inset-block-start: 16px;\n inset-inline-end: 16px;\n `,\n}));\n\nexport const viewportVariants = cva(styles.viewport, {\n defaultVariants: {\n position: 'bottom-right',\n },\n variants: {\n position: {\n 'bottom': styles.viewportBottom,\n 'bottom-left': styles.viewportBottomLeft,\n 'bottom-right': styles.viewportBottomRight,\n 'top': styles.viewportTop,\n 'top-left': styles.viewportTopLeft,\n 'top-right': styles.viewportTopRight,\n },\n },\n});\n\nexport const rootVariants = cva(styles.root, {\n defaultVariants: {\n position: 'bottom-right',\n },\n variants: {\n position: {\n 'bottom': styles.rootBottom,\n 'bottom-left': styles.rootBottom,\n 'bottom-right': styles.rootBottom,\n 'top': styles.rootTop,\n 'top-left': styles.rootTop,\n 'top-right': styles.rootTop,\n },\n },\n});\n\nexport const actionVariants = cva(styles.action, {\n defaultVariants: {\n variant: 'primary',\n },\n variants: {\n variant: {\n danger: styles.actionDanger,\n ghost: styles.actionGhost,\n primary: styles.actionPrimary,\n secondary: styles.actionSecondary,\n text: styles.actionText,\n },\n },\n});\n"],"mappings":"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"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { IconProps } from "
|
|
2
|
-
import "
|
|
1
|
+
import { IconProps } from "../../Icon/type.mjs";
|
|
2
|
+
import "../../Icon/index.mjs";
|
|
3
3
|
import { CSSProperties, ReactNode } from "react";
|
|
4
4
|
import { Toast } from "@base-ui/react/toast";
|
|
5
5
|
|
|
6
|
-
//#region src/Toast/type.d.ts
|
|
6
|
+
//#region src/base-ui/Toast/type.d.ts
|
|
7
7
|
type ToastType = 'success' | 'info' | 'warning' | 'error' | 'loading' | 'default';
|
|
8
8
|
type ToastPosition = 'top' | 'top-left' | 'top-right' | 'bottom' | 'bottom-left' | 'bottom-right';
|
|
9
9
|
type ToastActionVariant = 'primary' | 'secondary' | 'text' | 'danger' | 'ghost';
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { IconSpaceMode } from "../Menu/renderUtils.mjs";
|
|
2
|
+
import { renderDropdownMenuItems } from "./DropdownMenu/renderItems.mjs";
|
|
3
|
+
import { DropdownItem, DropdownMenuCheckboxItem, DropdownMenuPlacement, DropdownMenuProps, DropdownMenuSwitchItem as DropdownMenuSwitchItem$1 } from "./DropdownMenu/type.mjs";
|
|
4
|
+
import { DropdownMenuCheckboxItemIndicator, DropdownMenuCheckboxItemPrimitive, DropdownMenuCheckboxItemProps, DropdownMenuGroup, DropdownMenuGroupLabel, DropdownMenuGroupLabelProps, DropdownMenuItem, DropdownMenuItemContent, DropdownMenuItemContentProps, DropdownMenuItemDesc, DropdownMenuItemDescProps, DropdownMenuItemExtra, DropdownMenuItemExtraProps, DropdownMenuItemIcon, DropdownMenuItemIconProps, DropdownMenuItemLabel, DropdownMenuItemLabelGroup, DropdownMenuItemLabelGroupProps, DropdownMenuItemLabelProps, DropdownMenuItemProps, DropdownMenuPopup, DropdownMenuPopupProps, DropdownMenuPortal, DropdownMenuPortalProps, DropdownMenuPositioner, DropdownMenuPositionerProps, DropdownMenuRoot, DropdownMenuSeparator, DropdownMenuSeparatorProps, DropdownMenuSubmenuArrow, DropdownMenuSubmenuArrowProps, DropdownMenuSubmenuRoot, DropdownMenuSubmenuTrigger, DropdownMenuSubmenuTriggerProps, DropdownMenuSwitchItem, DropdownMenuSwitchItemProps, DropdownMenuTrigger, DropdownMenuTriggerProps } from "./DropdownMenu/atoms.mjs";
|
|
5
|
+
import { DropdownMenu } from "./DropdownMenu/DropdownMenu.mjs";
|
|
6
|
+
import "./DropdownMenu/index.mjs";
|
|
7
|
+
import { ContextMenuCheckboxItem, ContextMenuItem } from "./ContextMenu/type.mjs";
|
|
8
|
+
import { ContextMenuTrigger } from "./ContextMenu/ContextMenuTrigger.mjs";
|
|
9
|
+
import { ContextMenuHost } from "./ContextMenu/ContextMenuHost.mjs";
|
|
10
|
+
import { closeContextMenu, showContextMenu, updateContextMenuItems } from "./ContextMenu/store.mjs";
|
|
11
|
+
import "./ContextMenu/index.mjs";
|
|
12
|
+
import { ScrollAreaContent, ScrollAreaContentProps, ScrollAreaCorner, ScrollAreaCornerProps, ScrollAreaRoot, ScrollAreaRootProps, ScrollAreaScrollbar, ScrollAreaScrollbarProps, ScrollAreaThumb, ScrollAreaThumbProps, ScrollAreaViewport, ScrollAreaViewportProps } from "./ScrollArea/atoms.mjs";
|
|
13
|
+
import { ScrollAreaProps } from "./ScrollArea/type.mjs";
|
|
14
|
+
import { ScrollArea } from "./ScrollArea/ScrollArea.mjs";
|
|
15
|
+
import "./ScrollArea/index.mjs";
|
|
16
|
+
import { ToastAPI, ToastInstance, ToastOptions, ToastPosition, ToastPromiseOptions, ToastProps, ToastType } from "./Toast/type.mjs";
|
|
17
|
+
import { ToastHost, ToastHostProps, toast, useToast } from "./Toast/imperative.mjs";
|
|
18
|
+
import "./Toast/index.mjs";
|
|
19
|
+
import { SelectBehaviorVariant, SelectClassNames, SelectIndicatorVariant, SelectOption, SelectOptionGroup, SelectOptions, SelectProps, SelectSize, SelectVariant } from "./Select/type.mjs";
|
|
20
|
+
import { SelectArrow, SelectArrowProps, SelectBackdrop, SelectGroup, SelectGroupLabel, SelectGroupLabelProps, SelectGroupProps, SelectIcon, SelectIconProps, SelectItem, SelectItemIndicator, SelectItemIndicatorProps, SelectItemProps, SelectItemText, SelectItemTextProps, SelectList, SelectListProps, SelectPopup, SelectPopupProps, SelectPortal, SelectPortalProps, SelectPositioner, SelectPositionerProps, SelectRoot, SelectScrollDownArrow, SelectScrollDownArrowProps, SelectScrollUpArrow, SelectScrollUpArrowProps, SelectSeparator, SelectTrigger, SelectTriggerProps, SelectValue, SelectValueProps } from "./Select/atoms.mjs";
|
|
21
|
+
import { Select } from "./Select/Select.mjs";
|
|
22
|
+
import "./Select/index.mjs";
|
|
23
|
+
import { SwitchChangeEventHandler, SwitchClassNames, SwitchClickEventHandler, SwitchContextType, SwitchIconPosition, SwitchIconProps, SwitchProps, SwitchRootProps, SwitchSize, SwitchStyles, SwitchThumbProps } from "./Switch/type.mjs";
|
|
24
|
+
import { styles } from "./Switch/style.mjs";
|
|
25
|
+
import { SwitchIcon, SwitchRoot, SwitchThumb, useSwitchContext } from "./Switch/atoms.mjs";
|
|
26
|
+
import { Switch } from "./Switch/Switch.mjs";
|
|
27
|
+
import "./Switch/index.mjs";
|
|
28
|
+
export { type ContextMenuCheckboxItem, ContextMenuHost, type ContextMenuItem, ContextMenuTrigger, DropdownItem, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuCheckboxItemIndicator, DropdownMenuCheckboxItemPrimitive, DropdownMenuCheckboxItemProps, DropdownMenuGroup, DropdownMenuGroupLabel, DropdownMenuGroupLabelProps, DropdownMenuItem, DropdownMenuItemContent, DropdownMenuItemContentProps, DropdownMenuItemDesc, DropdownMenuItemDescProps, DropdownMenuItemExtra, DropdownMenuItemExtraProps, DropdownMenuItemIcon, DropdownMenuItemIconProps, DropdownMenuItemLabel, DropdownMenuItemLabelGroup, DropdownMenuItemLabelGroupProps, DropdownMenuItemLabelProps, DropdownMenuItemProps, DropdownMenuPlacement, DropdownMenuPopup, DropdownMenuPopupProps, DropdownMenuPortal, DropdownMenuPortalProps, DropdownMenuPositioner, DropdownMenuPositionerProps, DropdownMenuProps, DropdownMenuRoot, DropdownMenuSeparator, DropdownMenuSeparatorProps, DropdownMenuSubmenuArrow, DropdownMenuSubmenuArrowProps, DropdownMenuSubmenuRoot, DropdownMenuSubmenuTrigger, DropdownMenuSubmenuTriggerProps, DropdownMenuSwitchItem, DropdownMenuSwitchItemProps, DropdownMenuSwitchItem$1 as DropdownMenuSwitchItemType, DropdownMenuTrigger, DropdownMenuTriggerProps, IconSpaceMode, ScrollArea, ScrollAreaContent, ScrollAreaContentProps, ScrollAreaCorner, ScrollAreaCornerProps, ScrollAreaProps, ScrollAreaRoot, ScrollAreaRootProps, ScrollAreaScrollbar, ScrollAreaScrollbarProps, ScrollAreaThumb, ScrollAreaThumbProps, ScrollAreaViewport, ScrollAreaViewportProps, Select, SelectArrow, SelectArrowProps, SelectBackdrop, SelectBehaviorVariant, SelectClassNames, SelectGroup, SelectGroupLabel, SelectGroupLabelProps, SelectGroupProps, SelectIcon, SelectIconProps, SelectIndicatorVariant, SelectItem, SelectItemIndicator, SelectItemIndicatorProps, SelectItemProps, SelectItemText, SelectItemTextProps, SelectList, SelectListProps, SelectOption, SelectOptionGroup, SelectOptions, SelectPopup, SelectPopupProps, SelectPortal, SelectPortalProps, SelectPositioner, SelectPositionerProps, SelectProps, SelectRoot, SelectScrollDownArrow, SelectScrollDownArrowProps, SelectScrollUpArrow, SelectScrollUpArrowProps, SelectSeparator, SelectSize, SelectTrigger, SelectTriggerProps, SelectValue, SelectValueProps, SelectVariant, Switch, SwitchChangeEventHandler, SwitchClassNames, SwitchClickEventHandler, SwitchContextType, SwitchIcon, SwitchIconPosition, SwitchIconProps, SwitchProps, SwitchRoot, SwitchRootProps, SwitchSize, SwitchStyles, SwitchThumb, SwitchThumbProps, type ToastAPI, ToastHost, type ToastHostProps, type ToastInstance, type ToastOptions, type ToastPosition, type ToastPromiseOptions, type ToastProps, type ToastType, closeContextMenu, renderDropdownMenuItems, showContextMenu, styles as switchStyles, toast, updateContextMenuItems, useSwitchContext, useToast };
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { DropdownMenuCheckboxItemIndicator, DropdownMenuCheckboxItemPrimitive, DropdownMenuGroup, DropdownMenuGroupLabel, DropdownMenuItem, DropdownMenuItemContent, DropdownMenuItemDesc, DropdownMenuItemExtra, DropdownMenuItemIcon, DropdownMenuItemLabel, DropdownMenuItemLabelGroup, DropdownMenuPopup, DropdownMenuPortal, DropdownMenuPositioner, DropdownMenuRoot, DropdownMenuSeparator, DropdownMenuSubmenuArrow, DropdownMenuSubmenuRoot, DropdownMenuSubmenuTrigger, DropdownMenuSwitchItem, DropdownMenuTrigger } from "./DropdownMenu/atoms.mjs";
|
|
2
|
+
import { renderDropdownMenuItems } from "./DropdownMenu/renderItems.mjs";
|
|
3
|
+
import DropdownMenu_default from "./DropdownMenu/DropdownMenu.mjs";
|
|
4
|
+
import { closeContextMenu, showContextMenu, updateContextMenuItems } from "./ContextMenu/store.mjs";
|
|
5
|
+
import { ContextMenuHost } from "./ContextMenu/ContextMenuHost.mjs";
|
|
6
|
+
import { ContextMenuTrigger } from "./ContextMenu/ContextMenuTrigger.mjs";
|
|
7
|
+
import { ScrollAreaContent, ScrollAreaCorner, ScrollAreaRoot, ScrollAreaScrollbar, ScrollAreaThumb, ScrollAreaViewport } from "./ScrollArea/atoms.mjs";
|
|
8
|
+
import { ScrollArea } from "./ScrollArea/ScrollArea.mjs";
|
|
9
|
+
import { ToastHost, toast, useToast } from "./Toast/imperative.mjs";
|
|
10
|
+
import { SelectArrow, SelectBackdrop, SelectGroup, SelectGroupLabel, SelectIcon, SelectItem, SelectItemIndicator, SelectItemText, SelectList, SelectPopup, SelectPortal, SelectPositioner, SelectRoot, SelectScrollDownArrow, SelectScrollUpArrow, SelectSeparator, SelectTrigger, SelectValue } from "./Select/atoms.mjs";
|
|
11
|
+
import Select_default from "./Select/Select.mjs";
|
|
12
|
+
import { styles } from "./Switch/style.mjs";
|
|
13
|
+
import { SwitchIcon, SwitchRoot, SwitchThumb, useSwitchContext } from "./Switch/atoms.mjs";
|
|
14
|
+
import Switch_default from "./Switch/Switch.mjs";
|
|
15
|
+
|
|
16
|
+
export { ContextMenuHost, ContextMenuTrigger, DropdownMenu_default as DropdownMenu, DropdownMenuCheckboxItemIndicator, DropdownMenuCheckboxItemPrimitive, DropdownMenuGroup, DropdownMenuGroupLabel, DropdownMenuItem, DropdownMenuItemContent, DropdownMenuItemDesc, DropdownMenuItemExtra, DropdownMenuItemIcon, DropdownMenuItemLabel, DropdownMenuItemLabelGroup, DropdownMenuPopup, DropdownMenuPortal, DropdownMenuPositioner, DropdownMenuRoot, DropdownMenuSeparator, DropdownMenuSubmenuArrow, DropdownMenuSubmenuRoot, DropdownMenuSubmenuTrigger, DropdownMenuSwitchItem, DropdownMenuTrigger, ScrollArea, ScrollAreaContent, ScrollAreaCorner, ScrollAreaRoot, ScrollAreaScrollbar, ScrollAreaThumb, ScrollAreaViewport, Select_default as Select, SelectArrow, SelectBackdrop, SelectGroup, SelectGroupLabel, SelectIcon, SelectItem, SelectItemIndicator, SelectItemText, SelectList, SelectPopup, SelectPortal, SelectPositioner, SelectRoot, SelectScrollDownArrow, SelectScrollUpArrow, SelectSeparator, SelectTrigger, SelectValue, Switch_default as Switch, SwitchIcon, SwitchRoot, SwitchThumb, ToastHost, closeContextMenu, renderDropdownMenuItems, showContextMenu, styles as switchStyles, toast, updateContextMenuItems, useSwitchContext, useToast };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { DivProps } from "../../types/index.mjs";
|
|
2
|
-
import * as
|
|
2
|
+
import * as react74 from "react";
|
|
3
3
|
import { ReactNode } from "react";
|
|
4
4
|
|
|
5
5
|
//#region src/brand/LobeChat/index.d.ts
|
|
@@ -8,7 +8,7 @@ interface LobeChatProps extends DivProps {
|
|
|
8
8
|
size?: number;
|
|
9
9
|
type?: '3d' | 'flat' | 'mono' | 'text' | 'combine';
|
|
10
10
|
}
|
|
11
|
-
declare const LobeChat:
|
|
11
|
+
declare const LobeChat: react74.NamedExoticComponent<LobeChatProps>;
|
|
12
12
|
//#endregion
|
|
13
13
|
export { LobeChat, LobeChatProps };
|
|
14
14
|
//# sourceMappingURL=index.d.mts.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { DivProps } from "../../types/index.mjs";
|
|
2
|
-
import * as
|
|
2
|
+
import * as react75 from "react";
|
|
3
3
|
import { ReactNode } from "react";
|
|
4
4
|
|
|
5
5
|
//#region src/brand/LobeHub/index.d.ts
|
|
@@ -8,7 +8,7 @@ interface LobeHubProps extends DivProps {
|
|
|
8
8
|
size?: number;
|
|
9
9
|
type?: '3d' | 'flat' | 'mono' | 'text' | 'combine';
|
|
10
10
|
}
|
|
11
|
-
declare const LobeHub:
|
|
11
|
+
declare const LobeHub: react75.NamedExoticComponent<LobeHubProps>;
|
|
12
12
|
//#endregion
|
|
13
13
|
export { LobeHub, LobeHubProps };
|
|
14
14
|
//# sourceMappingURL=index.d.mts.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { SplineProps } from "../../awesome/Spline/type.mjs";
|
|
2
2
|
import "../../awesome/Spline/index.mjs";
|
|
3
|
-
import * as
|
|
3
|
+
import * as react73 from "react";
|
|
4
4
|
import { CSSProperties } from "react";
|
|
5
5
|
|
|
6
6
|
//#region src/brand/LogoThree/LogoSpline.d.ts
|
|
@@ -10,7 +10,7 @@ interface LogoSplineProps extends Partial<SplineProps> {
|
|
|
10
10
|
style?: CSSProperties;
|
|
11
11
|
width?: number | string;
|
|
12
12
|
}
|
|
13
|
-
declare const LogoSpline:
|
|
13
|
+
declare const LogoSpline: react73.NamedExoticComponent<LogoSplineProps>;
|
|
14
14
|
//#endregion
|
|
15
15
|
export { LogoSpline, LogoSplineProps };
|
|
16
16
|
//# sourceMappingURL=LogoSpline.d.mts.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { SplineProps } from "../../awesome/Spline/type.mjs";
|
|
2
2
|
import "../../awesome/Spline/index.mjs";
|
|
3
|
-
import * as
|
|
3
|
+
import * as react76 from "react";
|
|
4
4
|
import { CSSProperties } from "react";
|
|
5
5
|
|
|
6
6
|
//#region src/brand/LogoThree/index.d.ts
|
|
@@ -9,7 +9,7 @@ interface LogoThreeProps extends Partial<SplineProps> {
|
|
|
9
9
|
size?: number;
|
|
10
10
|
style?: CSSProperties;
|
|
11
11
|
}
|
|
12
|
-
declare const LogoThree:
|
|
12
|
+
declare const LogoThree: react76.NamedExoticComponent<LogoThreeProps>;
|
|
13
13
|
//#endregion
|
|
14
14
|
export { LogoThree, LogoThreeProps };
|
|
15
15
|
//# sourceMappingURL=index.d.mts.map
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { BackBottomProps } from "./type.mjs";
|
|
2
|
-
import * as
|
|
2
|
+
import * as react141 from "react";
|
|
3
3
|
|
|
4
4
|
//#region src/chat/BackBottom/BackBottom.d.ts
|
|
5
|
-
declare const BackBottom:
|
|
5
|
+
declare const BackBottom: react141.NamedExoticComponent<BackBottomProps>;
|
|
6
6
|
//#endregion
|
|
7
7
|
export { BackBottom };
|
|
8
8
|
//# sourceMappingURL=BackBottom.d.mts.map
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { ChatInputAreaInnerProps } from "../type.mjs";
|
|
2
|
-
import * as
|
|
2
|
+
import * as react142 from "react";
|
|
3
3
|
|
|
4
4
|
//#region src/chat/ChatInputArea/components/ChatInputAreaInner.d.ts
|
|
5
|
-
declare const ChatInputAreaInner:
|
|
5
|
+
declare const ChatInputAreaInner: react142.NamedExoticComponent<ChatInputAreaInnerProps>;
|
|
6
6
|
//#endregion
|
|
7
7
|
export { ChatInputAreaInner };
|
|
8
8
|
//# sourceMappingURL=ChatInputAreaInner.d.mts.map
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { ChatItemProps } from "./type.mjs";
|
|
2
|
-
import * as
|
|
2
|
+
import * as react144 from "react";
|
|
3
3
|
|
|
4
4
|
//#region src/chat/ChatItem/ChatItem.d.ts
|
|
5
|
-
declare const ChatItem:
|
|
5
|
+
declare const ChatItem: react144.NamedExoticComponent<ChatItemProps>;
|
|
6
6
|
//#endregion
|
|
7
7
|
export { ChatItem };
|
|
8
8
|
//# sourceMappingURL=ChatItem.d.mts.map
|