@umami/react-zen 0.231.0 → 0.232.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.mts +10 -3
- package/dist/index.d.ts +10 -3
- package/dist/index.js +71 -4
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +71 -5
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
- package/styles.full.css +1 -1
package/dist/index.mjs
CHANGED
|
@@ -194,7 +194,7 @@ tv({
|
|
|
194
194
|
});
|
|
195
195
|
var tooltip = tv({
|
|
196
196
|
base: [
|
|
197
|
-
"bg-surface-inverted text-foreground-inverted text-
|
|
197
|
+
"bg-surface-inverted text-foreground-inverted text-base px-2 py-1 rounded",
|
|
198
198
|
"entering:animate-popover-in",
|
|
199
199
|
"exiting:animate-popover-out"
|
|
200
200
|
]
|
|
@@ -2859,13 +2859,14 @@ function useFieldId(id) {
|
|
|
2859
2859
|
const generatedId = useId();
|
|
2860
2860
|
return id ?? generatedId;
|
|
2861
2861
|
}
|
|
2862
|
-
function Label({ size = "
|
|
2862
|
+
function Label({ size = "base", weight = "semibold", lineHeight = "loose", ...props }) {
|
|
2863
2863
|
return /* @__PURE__ */ jsx(
|
|
2864
2864
|
Text,
|
|
2865
2865
|
{
|
|
2866
2866
|
...props,
|
|
2867
2867
|
size,
|
|
2868
2868
|
weight,
|
|
2869
|
+
lineHeight,
|
|
2869
2870
|
render: (renderProps) => /* @__PURE__ */ jsx(Label$1, { ...renderProps })
|
|
2870
2871
|
}
|
|
2871
2872
|
);
|
|
@@ -4622,6 +4623,7 @@ function Select({
|
|
|
4622
4623
|
searchValue,
|
|
4623
4624
|
searchDelay,
|
|
4624
4625
|
isFullscreen,
|
|
4626
|
+
maxHeight,
|
|
4625
4627
|
onSearch,
|
|
4626
4628
|
onChange,
|
|
4627
4629
|
buttonProps,
|
|
@@ -4692,8 +4694,8 @@ function Select({
|
|
|
4692
4694
|
shouldFocusOnHover: false,
|
|
4693
4695
|
autoFocus: "first"
|
|
4694
4696
|
},
|
|
4695
|
-
className: cn("
|
|
4696
|
-
style: { ...listProps?.style, display: isLoading ? "none" : void 0 },
|
|
4697
|
+
className: cn("overflow-auto", listProps?.className),
|
|
4698
|
+
style: { ...listProps?.style, maxHeight, display: isLoading ? "none" : void 0 },
|
|
4697
4699
|
children
|
|
4698
4700
|
}
|
|
4699
4701
|
)
|
|
@@ -4963,6 +4965,70 @@ function ThemeButton({
|
|
|
4963
4965
|
}
|
|
4964
4966
|
);
|
|
4965
4967
|
}
|
|
4968
|
+
var STORAGE_KEY2 = "theme-mode";
|
|
4969
|
+
function getSystemTheme() {
|
|
4970
|
+
if (typeof window === "undefined") return "light";
|
|
4971
|
+
return window.matchMedia("(prefers-color-scheme: dark)").matches ? "dark" : "light";
|
|
4972
|
+
}
|
|
4973
|
+
function ThemeSwitcher({ className }) {
|
|
4974
|
+
const { setTheme } = useTheme();
|
|
4975
|
+
const [mode, setMode] = useState("system");
|
|
4976
|
+
useEffect(() => {
|
|
4977
|
+
const stored = localStorage.getItem(STORAGE_KEY2);
|
|
4978
|
+
if (stored && ["light", "dark", "system"].includes(stored)) {
|
|
4979
|
+
setMode(stored);
|
|
4980
|
+
}
|
|
4981
|
+
}, []);
|
|
4982
|
+
useEffect(() => {
|
|
4983
|
+
if (mode === "system") {
|
|
4984
|
+
setTheme(getSystemTheme());
|
|
4985
|
+
} else {
|
|
4986
|
+
setTheme(mode);
|
|
4987
|
+
}
|
|
4988
|
+
localStorage.setItem(STORAGE_KEY2, mode);
|
|
4989
|
+
}, [mode, setTheme]);
|
|
4990
|
+
useEffect(() => {
|
|
4991
|
+
if (mode !== "system") return;
|
|
4992
|
+
const mediaQuery = window.matchMedia("(prefers-color-scheme: dark)");
|
|
4993
|
+
const handleChange = () => {
|
|
4994
|
+
setTheme(getSystemTheme());
|
|
4995
|
+
};
|
|
4996
|
+
mediaQuery.addEventListener("change", handleChange);
|
|
4997
|
+
return () => mediaQuery.removeEventListener("change", handleChange);
|
|
4998
|
+
}, [mode, setTheme]);
|
|
4999
|
+
const options = [
|
|
5000
|
+
{ value: "light", icon: /* @__PURE__ */ jsx(icons_exports.Sun, {}), label: "Light" },
|
|
5001
|
+
{ value: "dark", icon: /* @__PURE__ */ jsx(icons_exports.Moon, {}), label: "Dark" },
|
|
5002
|
+
{ value: "system", icon: /* @__PURE__ */ jsx(icons_exports.Monitor, {}), label: "System" }
|
|
5003
|
+
];
|
|
5004
|
+
return /* @__PURE__ */ jsx(
|
|
5005
|
+
"div",
|
|
5006
|
+
{
|
|
5007
|
+
className: cn(
|
|
5008
|
+
"inline-flex items-center bg-surface-base border border-edge rounded-md overflow-hidden",
|
|
5009
|
+
className
|
|
5010
|
+
),
|
|
5011
|
+
children: options.map((option) => /* @__PURE__ */ jsx(
|
|
5012
|
+
"button",
|
|
5013
|
+
{
|
|
5014
|
+
type: "button",
|
|
5015
|
+
onClick: () => setMode(option.value),
|
|
5016
|
+
"aria-label": option.label,
|
|
5017
|
+
"aria-pressed": mode === option.value,
|
|
5018
|
+
className: cn(
|
|
5019
|
+
"size-9 flex items-center justify-center cursor-pointer outline-none transition-colors",
|
|
5020
|
+
"[&:not(:first-child)]:border-l [&:not(:first-child)]:border-edge",
|
|
5021
|
+
"hover:bg-interactive",
|
|
5022
|
+
"focus-visible:ring-2 focus-visible:ring-primary focus-visible:ring-inset",
|
|
5023
|
+
mode === option.value ? "bg-interactive text-foreground-primary" : "text-foreground-muted"
|
|
5024
|
+
),
|
|
5025
|
+
children: /* @__PURE__ */ jsx(Icon, { size: "sm", children: option.icon })
|
|
5026
|
+
},
|
|
5027
|
+
option.value
|
|
5028
|
+
))
|
|
5029
|
+
}
|
|
5030
|
+
);
|
|
5031
|
+
}
|
|
4966
5032
|
function Toggle({ label, children, className, ...props }) {
|
|
4967
5033
|
const isSelected = typeof props.value !== "undefined" ? !!props.value : void 0;
|
|
4968
5034
|
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
@@ -5051,6 +5117,6 @@ function ZenProvider({
|
|
|
5051
5117
|
return /* @__PURE__ */ jsx(ToastProvider, { ...toast2, children });
|
|
5052
5118
|
}
|
|
5053
5119
|
|
|
5054
|
-
export { Accordion, AccordionItem, AlertBanner, AlertDialog, Blockquote, Box, Breadcrumb, Breadcrumbs, Button, Calendar, Checkbox, Code, Column, ComboBox, ConfirmationDialog, Container, CopyButton, DataCard, DataColumn, DataTable, Dialog, Dots, Flexbox, FloatingTooltip, Form, FormButtons, FormController, FormField, FormFieldArray, FormResetButton, FormSubmitButton, Grid, Heading, HoverTrigger, Icon, IconLabel, Image, Label, List, ListItem, ListSection, ListSeparator, Loading, LoadingButton, Menu, MenuItem, MenuSection, MenuSeparator, Modal, NavMenu, NavMenuGroup, NavMenuItem, Navbar, NavbarContext, NavbarItem, PasswordField, Popover, ProgressBar, ProgressCircle, Radio, RadioGroup, Row, SearchField, Select, Sidebar, SidebarHeader, SidebarItem, SidebarSection, Slider, Spinner, StatusLight, SubMenuTrigger, Switch, Tab, TabList, TabPanel, Table, TableBody, TableCell, TableColumn, TableHeader, TableRow, Tabs, Text, TextField, ThemeButton, Toast, ToastContext, ToastProvider, Toaster, Toggle, ToggleGroup, ToggleGroupItem, Tooltip, TooltipBubble, ZenProvider, removeToast, resolveRender, useBreakpoint, useDebounce, useInitTheme, useNavigationContext, useTheme, useToast };
|
|
5120
|
+
export { Accordion, AccordionItem, AlertBanner, AlertDialog, Blockquote, Box, Breadcrumb, Breadcrumbs, Button, Calendar, Checkbox, Code, Column, ComboBox, ConfirmationDialog, Container, CopyButton, DataCard, DataColumn, DataTable, Dialog, Dots, Flexbox, FloatingTooltip, Form, FormButtons, FormController, FormField, FormFieldArray, FormResetButton, FormSubmitButton, Grid, Heading, HoverTrigger, Icon, IconLabel, Image, Label, List, ListItem, ListSection, ListSeparator, Loading, LoadingButton, Menu, MenuItem, MenuSection, MenuSeparator, Modal, NavMenu, NavMenuGroup, NavMenuItem, Navbar, NavbarContext, NavbarItem, PasswordField, Popover, ProgressBar, ProgressCircle, Radio, RadioGroup, Row, SearchField, Select, Sidebar, SidebarHeader, SidebarItem, SidebarSection, Slider, Spinner, StatusLight, SubMenuTrigger, Switch, Tab, TabList, TabPanel, Table, TableBody, TableCell, TableColumn, TableHeader, TableRow, Tabs, Text, TextField, ThemeButton, ThemeSwitcher, Toast, ToastContext, ToastProvider, Toaster, Toggle, ToggleGroup, ToggleGroupItem, Tooltip, TooltipBubble, ZenProvider, removeToast, resolveRender, useBreakpoint, useDebounce, useInitTheme, useNavigationContext, useTheme, useToast };
|
|
5055
5121
|
//# sourceMappingURL=index.mjs.map
|
|
5056
5122
|
//# sourceMappingURL=index.mjs.map
|