@radui/ui 0.6.0 → 1.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.cjs +1 -0
- package/dist/components/Accordion.d.ts +1 -1
- package/dist/components/Accordion.js +1 -1
- package/dist/components/AlertDialog.cjs +1 -0
- package/dist/components/AlertDialog.d.ts +44 -1
- package/dist/components/AlertDialog.js +1 -1
- package/dist/components/AspectRatio.cjs +1 -0
- package/dist/components/AspectRatio.js +1 -1
- package/dist/components/Avatar.cjs +1 -0
- package/dist/components/Avatar.d.ts +4 -1
- package/dist/components/Avatar.js +1 -1
- package/dist/components/AvatarGroup.cjs +1 -0
- package/dist/components/AvatarGroup.d.ts +9 -1
- package/dist/components/AvatarGroup.js +1 -1
- package/dist/components/AvatarPrimitiveFallback-C1siRii4.js +1 -0
- package/dist/components/AvatarPrimitiveFallback-CBb0nHGD.cjs +1 -0
- package/dist/components/Badge.cjs +1 -0
- package/dist/components/Badge.d.ts +3 -3
- package/dist/components/Badge.js +1 -1
- package/dist/components/BlockQuote.cjs +1 -0
- package/dist/components/BlockQuote.js +1 -1
- package/dist/components/Breadcrumb.cjs +1 -0
- package/dist/components/Breadcrumb.js +1 -1
- package/dist/components/Button.cjs +1 -0
- package/dist/components/Button.js +1 -1
- package/dist/components/Callout.cjs +1 -0
- package/dist/components/Callout.d.ts +4 -1
- package/dist/components/Callout.js +1 -1
- package/dist/components/Card.cjs +1 -0
- package/dist/components/Card.d.ts +1 -1
- package/dist/components/Card.js +1 -1
- package/dist/components/Checkbox.cjs +8 -0
- package/dist/components/Checkbox.d.ts +29 -3
- package/dist/components/Checkbox.js +8 -1
- package/dist/components/CheckboxCards.cjs +1 -0
- package/dist/components/CheckboxCards.d.ts +31 -4
- package/dist/components/CheckboxCards.js +1 -1
- package/dist/components/CheckboxGroup.cjs +1 -0
- package/dist/components/CheckboxGroup.d.ts +29 -2
- package/dist/components/CheckboxGroup.js +1 -1
- package/dist/components/CheckboxGroupPrimitive-DfHQYkep.js +1 -0
- package/dist/components/CheckboxGroupPrimitive-d9yBl6m5.cjs +1 -0
- package/dist/components/Code.cjs +1 -0
- package/dist/components/Code.js +1 -1
- package/dist/components/Collapsible.cjs +1 -0
- package/dist/components/Collapsible.d.ts +10 -1
- package/dist/components/Collapsible.js +1 -1
- package/dist/components/Combobox.cjs +1 -0
- package/dist/components/Combobox.d.ts +1 -1
- package/dist/components/Combobox.js +1 -1
- package/dist/components/ComboboxPrimitive-DQcJ8pzQ.js +1 -0
- package/dist/components/ComboboxPrimitive-kFYDdMUS.cjs +1 -0
- package/dist/components/Command.cjs +1 -0
- package/dist/components/Command.d.ts +6 -1
- package/dist/components/Command.js +1 -1
- package/dist/components/ContextMenu.cjs +1 -0
- package/dist/components/ContextMenu.d.ts +19 -19
- package/dist/components/ContextMenu.js +1 -1
- package/dist/components/DataList.cjs +1 -0
- package/dist/components/DataList.d.ts +10 -4
- package/dist/components/DataList.js +1 -1
- package/dist/components/Dialog.cjs +1 -0
- package/dist/components/Dialog.d.ts +6 -1
- package/dist/components/Dialog.js +1 -1
- package/dist/components/Disclosure.cjs +1 -0
- package/dist/components/Disclosure.d.ts +15 -7
- package/dist/components/Disclosure.js +1 -1
- package/dist/components/Drawer.cjs +1 -0
- package/dist/components/Drawer.d.ts +1 -1
- package/dist/components/Drawer.js +1 -1
- package/dist/components/DropdownMenu.cjs +1 -0
- package/dist/components/DropdownMenu.d.ts +19 -19
- package/dist/components/DropdownMenu.js +1 -1
- package/dist/components/Em.cjs +1 -0
- package/dist/components/Em.js +1 -1
- package/dist/components/Fieldset.cjs +1 -0
- package/dist/components/Fieldset.d.ts +1 -1
- package/dist/components/Fieldset.js +1 -1
- package/dist/components/Heading.cjs +1 -0
- package/dist/components/Heading.js +1 -1
- package/dist/components/HoverCard.cjs +1 -0
- package/dist/components/HoverCard.d.ts +3 -1
- package/dist/components/HoverCard.js +1 -1
- package/dist/components/Kbd.cjs +1 -0
- package/dist/components/Kbd.js +1 -1
- package/dist/components/Link.cjs +1 -0
- package/dist/components/Link.js +1 -1
- package/dist/components/LiveRegion.cjs +1 -0
- package/dist/components/LiveRegion.js +1 -1
- package/dist/components/MenuPrimitive-B1-7Sfhj.cjs +1 -0
- package/dist/components/MenuPrimitive-D9VMz2TZ.js +1 -0
- package/dist/components/Menubar.cjs +1 -0
- package/dist/components/Menubar.d.ts +113 -23
- package/dist/components/Menubar.js +1 -1
- package/dist/components/Minimap.cjs +1 -0
- package/dist/components/Minimap.d.ts +16 -12
- package/dist/components/Minimap.js +1 -1
- package/dist/components/NavigationMenu.cjs +1 -0
- package/dist/components/NavigationMenu.d.ts +8 -3
- package/dist/components/NavigationMenu.js +1 -1
- package/dist/components/NumberField.cjs +1 -0
- package/dist/components/NumberField.d.ts +23 -2
- package/dist/components/NumberField.js +1 -1
- package/dist/components/Popover.cjs +1 -0
- package/dist/components/Popover.d.ts +17 -2
- package/dist/components/Popover.js +1 -1
- package/dist/components/Progress.cjs +1 -0
- package/dist/components/Progress.d.ts +5 -4
- package/dist/components/Progress.js +1 -1
- package/dist/components/Quote.cjs +1 -0
- package/dist/components/Quote.js +1 -1
- package/dist/components/Radio.cjs +1 -0
- package/dist/components/Radio.js +1 -1
- package/dist/components/RadioCards.cjs +1 -0
- package/dist/components/RadioCards.d.ts +1 -1
- package/dist/components/RadioCards.js +1 -1
- package/dist/components/RadioGroup.cjs +1 -0
- package/dist/components/RadioGroup.d.ts +1 -1
- package/dist/components/RadioGroup.js +1 -1
- package/dist/components/RadioGroupPrimitive-CpA06FS_.cjs +1 -0
- package/dist/components/RadioGroupPrimitive-D1PP4y2M.js +1 -0
- package/dist/components/ScrollArea.cjs +1 -0
- package/dist/components/ScrollArea.d.ts +1 -9
- package/dist/components/ScrollArea.js +1 -1
- package/dist/components/Select.cjs +1 -0
- package/dist/components/Select.d.ts +1 -1
- package/dist/components/Select.js +1 -1
- package/dist/components/Separator.cjs +1 -0
- package/dist/components/Separator.js +1 -1
- package/dist/components/Skeleton.cjs +1 -0
- package/dist/components/Skeleton.d.ts +12 -6
- package/dist/components/Skeleton.js +1 -1
- package/dist/components/Slider.cjs +1 -0
- package/dist/components/Slider.d.ts +1 -1
- package/dist/components/Slider.js +1 -1
- package/dist/components/Spinner.cjs +1 -0
- package/dist/components/Spinner.js +1 -1
- package/dist/components/Splitter.cjs +1 -0
- package/dist/components/Splitter.d.ts +7 -1
- package/dist/components/Splitter.js +1 -1
- package/dist/components/Steps.cjs +1 -0
- package/dist/components/Steps.d.ts +25 -10
- package/dist/components/Steps.js +1 -1
- package/dist/components/Strong.cjs +1 -0
- package/dist/components/Strong.js +1 -1
- package/dist/components/Switch.cjs +1 -0
- package/dist/components/Switch.d.ts +23 -1
- package/dist/components/Switch.js +1 -1
- package/dist/components/TabNav.cjs +1 -0
- package/dist/components/TabNav.d.ts +34 -9
- package/dist/components/TabNav.js +1 -1
- package/dist/components/Table.cjs +1 -0
- package/dist/components/Table.d.ts +2 -1
- package/dist/components/Table.js +1 -1
- package/dist/components/Tabs.cjs +1 -0
- package/dist/components/Tabs.d.ts +1 -1
- package/dist/components/Tabs.js +1 -1
- package/dist/components/Text.cjs +1 -0
- package/dist/components/Text.d.ts +2 -2
- package/dist/components/Text.js +1 -1
- package/dist/components/TextArea.cjs +1 -0
- package/dist/components/TextArea.d.ts +4 -4
- package/dist/components/TextArea.js +1 -1
- package/dist/components/TextField.cjs +1 -0
- package/dist/components/TextField.d.ts +1 -1
- package/dist/components/TextField.js +1 -1
- package/dist/components/Theme.cjs +1 -0
- package/dist/components/ThemeContext-t7IX-w6i.cjs +1 -0
- package/dist/components/Toast.cjs +1 -0
- package/dist/components/Toast.d.ts +7 -4
- package/dist/components/Toast.js +1 -1
- package/dist/components/Toggle.cjs +1 -0
- package/dist/components/Toggle.d.ts +1 -1
- package/dist/components/Toggle.js +1 -1
- package/dist/components/ToggleGroup.cjs +1 -0
- package/dist/components/ToggleGroup.d.ts +1 -1
- package/dist/components/ToggleGroup.js +1 -1
- package/dist/components/Toolbar.cjs +1 -0
- package/dist/components/Toolbar.d.ts +1 -1
- package/dist/components/Toolbar.js +1 -1
- package/dist/components/Tooltip.cjs +1 -0
- package/dist/components/Tooltip.d.ts +12 -1
- package/dist/components/Tooltip.js +1 -1
- package/dist/components/Tree.cjs +1 -0
- package/dist/components/Tree.d.ts +1 -1
- package/dist/components/Tree.js +1 -1
- package/dist/components/VisuallyHidden.cjs +1 -0
- package/dist/components/VisuallyHidden.js +1 -1
- package/dist/components/check-BazcmpuG.cjs +44 -0
- package/dist/components/{check-DujVUWP-.js → check-ctUdF4Q3.js} +4 -4
- package/dist/components/documentOverlayOpen-BbC6uByx.cjs +1 -0
- package/dist/components/{floating-ui.react-Byzse64h.js → floating-ui.react-2kiGB4sW.js} +1 -1
- package/dist/components/floating-ui.react-Kw0_L48Q.cjs +5 -0
- package/dist/components/index-436yWBk4.cjs +1 -0
- package/dist/components/index-7Bjw6jmo.cjs +1 -0
- package/dist/components/index-BeakeOqt.cjs +1 -0
- package/dist/components/index-BudP4FIn.cjs +1 -0
- package/dist/components/index-BwNOI8cB.cjs +1 -0
- package/dist/components/index-C7dBo_Ry.js +1 -0
- package/dist/components/index-CBcSLg6O.js +1 -0
- package/dist/components/index-CbKtybdA.cjs +1 -0
- package/dist/components/index-CbNq68zs.js +1 -0
- package/dist/components/index-CbdoW3TC.cjs +1 -0
- package/dist/components/index-CoPhBYnZ.cjs +1 -0
- package/dist/components/index-CukraWfT.cjs +1 -0
- package/dist/components/index-D8I-rMwz.js +1 -0
- package/dist/components/index-DMX7gpdp.js +1 -0
- package/dist/components/index-DrMwbB8q.cjs +1 -0
- package/dist/components/index-FITGoHty.js +1 -0
- package/dist/components/index-WGIYLuwZ.cjs +1 -0
- package/dist/components/index-c6NFMS_0.cjs +1 -0
- package/dist/components/{index-C09ZQH_q.js → index-nYRBURkR.js} +1 -1
- package/dist/components/index-xlB--dex.js +1 -0
- package/dist/components/keyboard-BBlFllyi.cjs +1 -0
- package/dist/components/mergeProps-DW5qFqqJ.cjs +1 -0
- package/dist/components/mergeRefs-BUn-enYe.cjs +1 -0
- package/dist/components/useComponentClass-B0DF90tm.cjs +1 -0
- package/dist/components/useComponentClass-C0isGl1z.js +1 -0
- package/dist/index.cjs +68 -0
- package/dist/index.d.ts +65 -0
- package/dist/index.js +67 -0
- package/dist/themes/baremetal.css +1 -1
- package/dist/themes/default.css +1 -1
- package/package.json +1 -1
- package/dist/components/AvatarPrimitiveFallback-B1u295x6.js +0 -1
- package/dist/components/CheckboxGroupPrimitive-BWGRST9p.js +0 -1
- package/dist/components/ComboboxPrimitive-C2sksm48.js +0 -1
- package/dist/components/MenuPrimitive-COEgTo6S.js +0 -1
- package/dist/components/RadioGroupPrimitive-BWUU-0Qh.js +0 -1
- package/dist/components/clsx-BaVHROc5.js +0 -1
- package/dist/components/index-CD_nZA9X.js +0 -1
- package/dist/components/index-CfC8-kd8.js +0 -1
- package/dist/components/index-Db-tduwt.js +0 -1
- package/dist/components/index-UODM4mVT.js +0 -1
- package/dist/components/index-YhJvxumL.js +0 -1
- package/dist/components/index-m8Mhi26u.js +0 -1
- package/dist/components/useComponentClass-QwNivz0h.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
'use client';import{jsx as
|
|
1
|
+
'use client';import{jsxs as e,jsx as s}from"react/jsx-runtime";import t,{createContext as a,forwardRef as o,useContext as r}from"react";import{B as i}from"./index-FITGoHty.js";import{u as c,c as d}from"./useComponentClass-C0isGl1z.js";import{c as n,a as l,b as h}from"./index-eAZUMNef.js";import{u as m}from"./index-wRElCyvx.js";import{c as u}from"./index-CXzybYmm.js";import{m as p}from"./mergeRefs-B8eZ_q-T.js";import{P as f}from"./index-XF8itt-H.js";import"./ThemeContext-Sm-iNANd.js";import"./mergeProps-0RucjqeH.js";const C=a({checked:!1,setChecked:()=>{},rootClass:"",disabled:!1}),b="Switch",k=o((({children:a,customRootClass:o,color:r="",variant:f,size:k,defaultChecked:v=!1,checked:j,onCheckedChange:w,disabled:x=!1,required:g=!1,name:R,value:N,asChild:y=!1,className:S,onClick:T,...E},P)=>{const[q,B]=m(j,v,w),z=c(o,b),L=n("switch",{variant:f,size:k}),D=h(r),I=l(L,D),$=t.useRef(null),A=t.useRef(v),F=Boolean(R)||g;t.useEffect((()=>{const e=$.current?.closest("form");if(!e||!F)return;const s=()=>B(Boolean(A.current));return e.addEventListener("reset",s),()=>e.removeEventListener("reset",s)}),[F,B]);const G={checked:q,setChecked:B,rootClass:z,disabled:x},H={...I,"data-slot":"switch-root","data-state":q?"checked":"unchecked","data-disabled":x?"":void 0,role:"switch","aria-checked":q,"aria-required":g,disabled:x,...E};return R&&(H.name=R),N&&(H.value=N),e(C.Provider,{value:G,children:[s(i,{ref:p(P,$),asChild:y,...H,className:d(z,S),onClick:u(T,(()=>{x||B(!q)})),children:a}),F&&s("input",{type:"checkbox","aria-hidden":"true",tabIndex:-1,name:R,value:N??"on",checked:q,required:g,disabled:x,onChange:()=>{},style:{position:"absolute",width:1,height:1,margin:0,opacity:0,pointerEvents:"none"}})]})}));k.displayName=b;const v=o((({asChild:e=!1,className:t,children:a,...o},i)=>{const{checked:c,rootClass:n,disabled:l}=r(C),h={"data-slot":"switch-thumb"};return h["data-state"]=c?"checked":"unchecked",l&&(h["data-disabled"]=""),s(f.span,{ref:i,className:d(n&&`${n}-indicator`,t),asChild:e,...h,...o,children:a})}));v.displayName="SwitchThumb";const j=()=>(console.warn("Direct usage of Switch is not supported. Please use Switch.Root, Switch.Thumb, etc. instead."),null);j.Root=k,j.Thumb=v;export{k as Root,v as Thumb,j as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
'use client';"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),a=require("react"),o=require("./useComponentClass-B0DF90tm.cjs"),t=require("./index-BeakeOqt.cjs"),r=require("./index-CbKtybdA.cjs"),s=require("./index-BwNOI8cB.cjs");require("./ThemeContext-t7IX-w6i.cjs"),require("./index-WGIYLuwZ.cjs"),require("./keyboard-BBlFllyi.cjs"),require("./mergeRefs-BUn-enYe.cjs"),require("./mergeProps-DW5qFqqJ.cjs");const i=a.createContext({rootClass:"",tabValue:"",handleTabChange:()=>{}}),n=a.forwardRef((({value:s,className:n="",href:l="#",children:d,disabled:u,asChild:c,active:v,id:C,onClick:b,...h},x)=>{const{rootClass:p,tabValue:f,handleTabChange:j}=a.useContext(i),{setFocusedItemId:m}=a.useContext(t.RovingFocusGroupContext);c&&(u=!1);const R=a.useId(),g=C??R,N=v??(void 0!==s&&s===f);a.useEffect((()=>{N&&!u&&m(g)}),[N,u,g]);return e.jsx(t.RovingFocusGroupUtility.Item,{domId:g,children:e.jsx(r.Primitive.a,{ref:x,id:g,className:o.clsx(p&&`${p}-link`,n),asChild:c,onClick:e=>{u?e.preventDefault():(b?.(e),e.defaultPrevented||void 0===s||j(s))},"aria-disabled":u,"aria-current":N?"page":void 0,"data-state":N?"active":"inactive","data-disabled":u?"":void 0,"data-slot":"tab-nav-link",disabled:u,...u?{}:{href:l},...h,children:d})})}));n.displayName="TabNavLink";const l=a.forwardRef((({className:r,loop:n=!0,orientation:l="horizontal",children:d,color:u,customRootClass:c="",defaultValue:v="",onValueChange:C=()=>{},value:b,...h},x)=>{const p=o.useComponentClass(c,"TabNav"),[f,j]=s.useControllableState(b,v||"",C),m=e=>{e!==f&&j(e)},R=a.useRef(!0);a.useEffect((()=>{R.current?R.current=!1:void 0===b&&v&&m(v)}),[v,b]);const g={rootClass:p,tabValue:f,handleTabChange:m};return e.jsx(i.Provider,{value:g,children:e.jsx(t.RovingFocusGroupUtility.Root,{loop:n,orientation:l,children:e.jsx(t.RovingFocusGroupUtility.Group,{asChild:!0,children:e.jsx("nav",{ref:x,className:o.clsx(p,r),"data-orientation":l,"data-slot":"tab-nav-root",role:void 0,...h,children:d})})})})}));l.displayName="TabNavRoot";const d=()=>(console.warn("Direct usage of TabNav is not supported. Please use TabNav.Root, TabNav.Link instead."),null);d.Root=l,d.Link=n,exports.Link=n,exports.Root=l,exports.default=d;
|
|
@@ -1,7 +1,28 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import React__default from 'react';
|
|
3
3
|
|
|
4
|
-
type
|
|
4
|
+
type TabNavLinkProps = React__default.ComponentPropsWithoutRef<'a'> & {
|
|
5
|
+
disabled?: boolean;
|
|
6
|
+
asChild?: boolean;
|
|
7
|
+
value?: string;
|
|
8
|
+
/**
|
|
9
|
+
* Marks this link as the current page. Overrides the value-based selection from `TabNav.Root`,
|
|
10
|
+
* which is useful when the active link is derived from the router.
|
|
11
|
+
*/
|
|
12
|
+
active?: boolean;
|
|
13
|
+
};
|
|
14
|
+
declare const TabNavLink: React__default.ForwardRefExoticComponent<Omit<React__default.DetailedHTMLProps<React__default.AnchorHTMLAttributes<HTMLAnchorElement>, HTMLAnchorElement>, "ref"> & {
|
|
15
|
+
disabled?: boolean;
|
|
16
|
+
asChild?: boolean;
|
|
17
|
+
value?: string;
|
|
18
|
+
/**
|
|
19
|
+
* Marks this link as the current page. Overrides the value-based selection from `TabNav.Root`,
|
|
20
|
+
* which is useful when the active link is derived from the router.
|
|
21
|
+
*/
|
|
22
|
+
active?: boolean;
|
|
23
|
+
} & React__default.RefAttributes<HTMLAnchorElement>>;
|
|
24
|
+
|
|
25
|
+
type TabNavRootProps = React__default.ComponentPropsWithoutRef<'nav'> & {
|
|
5
26
|
loop?: boolean;
|
|
6
27
|
orientation?: 'horizontal' | 'vertical';
|
|
7
28
|
customRootClass?: string;
|
|
@@ -10,16 +31,19 @@ type TabNavRootProps = React__default.ComponentPropsWithoutRef<'div'> & {
|
|
|
10
31
|
defaultValue?: string;
|
|
11
32
|
onValueChange?: (value: string) => void;
|
|
12
33
|
};
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
34
|
+
declare const TabNavRoot: React__default.ForwardRefExoticComponent<Omit<React__default.DetailedHTMLProps<React__default.HTMLAttributes<HTMLElement>, HTMLElement>, "ref"> & {
|
|
35
|
+
loop?: boolean;
|
|
36
|
+
orientation?: "horizontal" | "vertical";
|
|
37
|
+
customRootClass?: string;
|
|
38
|
+
color?: string;
|
|
17
39
|
value?: string;
|
|
18
|
-
|
|
40
|
+
defaultValue?: string;
|
|
41
|
+
onValueChange?: (value: string) => void;
|
|
42
|
+
} & React__default.RefAttributes<HTMLElement>>;
|
|
19
43
|
|
|
20
44
|
declare const TabNav: {
|
|
21
45
|
(): null;
|
|
22
|
-
Root: React.ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.HTMLAttributes<
|
|
46
|
+
Root: React.ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLElement>, HTMLElement>, "ref"> & {
|
|
23
47
|
loop?: boolean;
|
|
24
48
|
orientation?: "horizontal" | "vertical";
|
|
25
49
|
customRootClass?: string;
|
|
@@ -27,13 +51,14 @@ declare const TabNav: {
|
|
|
27
51
|
value?: string;
|
|
28
52
|
defaultValue?: string;
|
|
29
53
|
onValueChange?: (value: string) => void;
|
|
30
|
-
} & React.RefAttributes<
|
|
54
|
+
} & React.RefAttributes<HTMLElement>>;
|
|
31
55
|
Link: React.ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.AnchorHTMLAttributes<HTMLAnchorElement>, HTMLAnchorElement>, "ref"> & {
|
|
32
56
|
disabled?: boolean;
|
|
33
57
|
asChild?: boolean;
|
|
34
58
|
value?: string;
|
|
59
|
+
active?: boolean;
|
|
35
60
|
} & React.RefAttributes<HTMLAnchorElement>>;
|
|
36
61
|
};
|
|
37
62
|
|
|
38
|
-
export { TabNav as default };
|
|
63
|
+
export { TabNavLink as Link, TabNavRoot as Root, TabNav as default };
|
|
39
64
|
export type { TabNavLinkProps, TabNavRootProps };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
'use client';import{jsx as a}from"react/jsx-runtime";import{createContext as e,forwardRef as o,useContext as
|
|
1
|
+
'use client';import{jsx as a}from"react/jsx-runtime";import{createContext as e,forwardRef as o,useContext as t,useId as s,useEffect as r,useRef as i}from"react";import{c as n,u as l}from"./useComponentClass-C0isGl1z.js";import{a as d,R as c}from"./index-C7dBo_Ry.js";import{P as m}from"./index-XF8itt-H.js";import{u}from"./index-wRElCyvx.js";import"./ThemeContext-Sm-iNANd.js";import"./index-FITGoHty.js";import"./keyboard-BKF7hXqL.js";import"./mergeRefs-B8eZ_q-T.js";import"./mergeProps-0RucjqeH.js";const v=e({rootClass:"",tabValue:"",handleTabChange:()=>{}}),p=o((({value:e,className:o="",href:i="#",children:l,disabled:u,asChild:p,active:h,id:b,onClick:f,...C},N)=>{const{rootClass:j,tabValue:T,handleTabChange:k}=t(v),{setFocusedItemId:g}=t(d);p&&(u=!1);const R=s(),x=b??R,P=h??(void 0!==e&&e===T);r((()=>{P&&!u&&g(x)}),[P,u,x]);return a(c.Item,{domId:x,children:a(m.a,{ref:N,id:x,className:n(j&&`${j}-link`,o),asChild:p,onClick:a=>{u?a.preventDefault():(f?.(a),a.defaultPrevented||void 0===e||k(e))},"aria-disabled":u,"aria-current":P?"page":void 0,"data-state":P?"active":"inactive","data-disabled":u?"":void 0,"data-slot":"tab-nav-link",disabled:u,...u?{}:{href:i},...C,children:l})})}));p.displayName="TabNavLink";const h=o((({className:e,loop:o=!0,orientation:t="horizontal",children:s,color:d,customRootClass:m="",defaultValue:p="",onValueChange:h=()=>{},value:b,...f},C)=>{const N=l(m,"TabNav"),[j,T]=u(b,p||"",h),k=a=>{a!==j&&T(a)},g=i(!0);r((()=>{g.current?g.current=!1:void 0===b&&p&&k(p)}),[p,b]);const R={rootClass:N,tabValue:j,handleTabChange:k};return a(v.Provider,{value:R,children:a(c.Root,{loop:o,orientation:t,children:a(c.Group,{asChild:!0,children:a("nav",{ref:C,className:n(N,e),"data-orientation":t,"data-slot":"tab-nav-root",role:void 0,...f,children:s})})})})}));h.displayName="TabNavRoot";const b=()=>(console.warn("Direct usage of TabNav is not supported. Please use TabNav.Root, TabNav.Link instead."),null);b.Root=h,b.Link=p;export{p as Link,h as Root,b as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
'use client';"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),t=require("react/jsx-runtime"),n=require("./useComponentClass-B0DF90tm.cjs"),r=require("./keyboard-BBlFllyi.cjs");require("./ThemeContext-t7IX-w6i.cjs");const s=e.createContext(null),l="Table",o=()=>{const t=e.useContext(s);if(!t)throw new Error("Table components must be used within a Table.Root");return t};function a(e){return e?Array.isArray(e)?Object.fromEntries(e.map(((e,t)=>[t,e]))):e:{}}const u=e.forwardRef((({children:o,className:u="",customRootClass:c="",resizable:i=!1,defaultColumnWidths:d,columnWidths:m,onColumnWidthsChange:h,minColumnWidth:f=48,resizeHandleVisibility:b="hover",...C},v)=>{const x=n.useComponentClass(c,l),y=e.useRef(null),[R,p]=e.useState((()=>a(d))),[z,w]=e.useState(0),[E,N]=e.useState(!1),[j,T]=e.useState(null),H=e.useRef({}),g=e.useRef(0),M=e.useRef(!1),k=e.useRef(null),L=e.useCallback((()=>{const e=k.current;e&&(document.removeEventListener("mousemove",e.handleMove),document.removeEventListener("mouseup",e.handleEnd),document.removeEventListener("touchmove",e.handleMove),document.removeEventListener("touchend",e.handleEnd),document.removeEventListener("touchcancel",e.handleEnd),k.current=null)}),[]);e.useEffect((()=>()=>{L()}),[L]);const W=void 0!==m,I=W?a(m):R;H.current=I,g.current=z;const S=e.useCallback((e=>{W||p(e),h?.(e)}),[W,h]),A=e.useCallback((e=>{w((t=>Math.max(t,e+1)))}),[]),D=e.useCallback((e=>{if(!i)return;const t=I[e];return void 0!==t?{width:t}:void 0}),[I,i]);e.useLayoutEffect((()=>{if(!i||W||!y.current||0===z||M.current)return;const e=y.current.offsetWidth;if(e<=0)return;const t=Object.keys(H.current).length>0?function(e,t,n){const r=Array.from({length:t},((t,n)=>e[n]??0)),s=r.reduce(((e,t)=>e+t),0);if(s<=0||n<=0)return e;const l=n/s;return Object.fromEntries(r.map(((e,t)=>[t,Math.max(1,Math.round(e*l))])))}(H.current,z,e):function(e,t){const n=Math.max(1,Math.floor(t/e));return Object.fromEntries(Array.from({length:e},((e,t)=>[t,n])))}(z,e);M.current=!0,S(t)}),[z,W,i,S]);const O=e.useCallback(((e,t)=>{let n=e;for(let e=0;e<Math.abs(t);e+=1)if(n=t<0?n.previousElementSibling:n.nextElementSibling,!n)return null;return n}),[]),K=e.useCallback(((e,t)=>H.current[e]??t?.offsetWidth??f),[f]),$=e.useCallback(((e,t,n,r)=>{const s=e+1;if(s>=g.current)return;const l=r-f,o=n-f,a=Math.max(-o,Math.min(l,t)),u=n+a,c=r-a;S({...H.current,[e]:u,[s]:c})}),[f,S]),X=e.useCallback(((e,t,n)=>{if(!i||e>=g.current-1)return;n.preventDefault();const r="clientX"in n?n.clientX:n.touches[0].clientX,s=O(t,1),l=K(e,t),o=K(e+1,s);N(!0),T(e),L();const a=t=>{const n="clientX"in t?t.clientX:t.touches[0].clientX;$(e,n-r,l,o)},u=()=>{N(!1),T(null),L()};k.current={handleMove:a,handleEnd:u},document.addEventListener("mousemove",a),document.addEventListener("mouseup",u),document.addEventListener("touchmove",a),document.addEventListener("touchend",u),document.addEventListener("touchcancel",u)}),[$,L,K,O,i]),_=e.useCallback(((e,t,n)=>{if(!i||e>=g.current-1)return;const s=n.shiftKey?20:5;let l=0;if(n.key===r.KEYBOARD_KEYS.ARROW_LEFT?l=-s:n.key===r.KEYBOARD_KEYS.ARROW_RIGHT&&(l=s),0===l)return;n.preventDefault();const o=O(t,1);$(e,l,K(e,t),K(e+1,o))}),[$,K,O,i]),q=e.useMemo((()=>({rootClass:x,resizable:i,resizeHandleVisibility:b,columnCount:z,minColumnWidth:f,registerColumnIndex:A,columnWidths:I,getColumnStyle:D,startColumnResize:X,handleColumnResizeKeyDown:_,isResizing:E,activeColumnIndex:j})),[j,z,I,D,_,E,f,A,b,i,x,X]);return t.jsx(s.Provider,{value:q,children:t.jsx("div",{ref:v,className:n.clsx(x&&`${x}-wrapper`,u),"data-resizable":i?"":void 0,"data-resizing":i&&E?"":void 0,"data-resize-handle-visibility":i?b:void 0,...C,children:t.jsxs("table",{ref:y,className:n.clsx(x),"data-resizable":i?"":void 0,style:i?{tableLayout:"fixed",width:"100%"}:void 0,children:[i&&z>0&&t.jsx("colgroup",{children:Array.from({length:z},((e,n)=>t.jsx("col",{style:D(n)},n)))}),o]})})})}));u.displayName=l;const c=e.forwardRef((({children:r,className:l="header",...o},a)=>{const u=e.useContext(s)?.rootClass;return t.jsx("thead",{ref:a,className:n.clsx(u&&`${u}-head`,l),...o,children:r})}));c.displayName="TableHead";const i=e.forwardRef((({children:r,className:l="",...o},a)=>{const u=e.useContext(s)?.rootClass;return t.jsx("tbody",{ref:a,className:n.clsx(u&&`${u}-body`,l),...o,children:r})}));i.displayName="TableBody";const d=e.forwardRef((({children:r,className:l="row",...o},a)=>{const u=e.useContext(s)?.rootClass;return t.jsx("tr",{ref:a,className:n.clsx(u&&`${u}-row`,l),...o,children:r})}));d.displayName="TableRow";const m=e.createContext(null),h=e.forwardRef((({children:r,className:s="cell-header",columnIndex:l,style:a,...u},c)=>{const{resizable:i,registerColumnIndex:d,rootClass:h}=o(),f=i&&void 0!==l;e.useLayoutEffect((()=>{void 0!==l&&d(l)}),[l,d]);const b=t.jsx("th",{ref:c,className:n.clsx(h&&`${h}-cell-header`,s,f&&"resizable"),"data-resizable":f?"":void 0,style:a,...u,children:r});return void 0===l?b:t.jsx(m.Provider,{value:{columnIndex:l},children:b})}));h.displayName="TableColumnCellHeader";const f=e.forwardRef((({className:r,"aria-label":s,...l},a)=>{const{rootClass:u,resizable:c,resizeHandleVisibility:i,columnCount:d,minColumnWidth:h,columnWidths:f,startColumnResize:b,handleColumnResizeKeyDown:C,isResizing:v,activeColumnIndex:x}=o(),{columnIndex:y}=(()=>{const t=e.useContext(m);if(!t)throw new Error("Table.ColumnResizeHandle must be used within a Table.ColumnCellHeader with columnIndex");return t})(),R=e.useRef(null),p=v&&x===y,z=d>0&&y>=d-1,w=e.useCallback((e=>{R.current=e?.closest("th")??null,"function"==typeof a?a(e):a&&(a.current=e)}),[a]);if(!c||z)return null;const E=Math.round(f[y]??R.current?.offsetWidth??h);return t.jsx("div",{...l,ref:w,"data-slot":"table-column-resize-handle","data-resize-handle-visibility":i,"data-state":p?"active":void 0,className:n.clsx(u&&`${u}-column-resize-handle`,{active:p},r),role:"separator","aria-orientation":"vertical","aria-label":s||`Resize column ${y+1}`,"aria-valuemin":h,"aria-valuenow":E,tabIndex:0,onMouseDown:e=>{R.current&&b(y,R.current,e)},onTouchStart:e=>{R.current&&b(y,R.current,e)},onKeyDown:e=>{R.current&&C(y,R.current,e)}})}));f.displayName="TableColumnResizeHandle";const b=e.forwardRef((({children:e,className:r="cell",columnIndex:s,style:l,...a},u)=>{const{resizable:c,rootClass:i}=o(),d=c&&void 0!==s;return t.jsx("td",{ref:u,className:n.clsx(i&&`${i}-cell`,r,d&&"resizable"),"data-resizable":d?"":void 0,style:l,...a,children:e})}));b.displayName="TableCell";const C=e.forwardRef((function(e,t){return console.warn("Direct usage of Table is not supported. Please use Table.Root, Table.Head, etc. instead."),null}));C.displayName="Table",C.Root=u,C.Body=i,C.Head=c,C.Row=d,C.Cell=b,C.ColumnCellHeader=h,C.ColumnResizeHandle=f,exports.Body=i,exports.Cell=b,exports.ColumnCellHeader=h,exports.ColumnResizeHandle=f,exports.Head=c,exports.Root=u,exports.Row=d,exports.default=C,exports.useTable=o;
|
|
@@ -7,6 +7,7 @@ interface TableContextValue {
|
|
|
7
7
|
resizable: boolean;
|
|
8
8
|
resizeHandleVisibility: TableResizeHandleVisibility;
|
|
9
9
|
columnCount: number;
|
|
10
|
+
minColumnWidth: number;
|
|
10
11
|
registerColumnIndex: (columnIndex: number) => void;
|
|
11
12
|
columnWidths: ColumnWidths;
|
|
12
13
|
getColumnStyle: (columnIndex: number) => CSSProperties | undefined;
|
|
@@ -81,5 +82,5 @@ interface TableComponent extends React$1.ForwardRefExoticComponent<TableProps &
|
|
|
81
82
|
}
|
|
82
83
|
declare const Table: TableComponent;
|
|
83
84
|
|
|
84
|
-
export { Table as default, useTable };
|
|
85
|
+
export { TableBody as Body, TableCell as Cell, TableColumnCellHeader as ColumnCellHeader, TableColumnResizeHandle as ColumnResizeHandle, TableHead as Head, TableRoot as Root, TableRow as Row, Table as default, useTable };
|
|
85
86
|
export type { TableBodyProps, TableCellProps, TableColumnCellHeaderProps, TableColumnResizeHandleProps, TableHeadProps, TableProps, TableResizeHandleVisibility, TableRootProps, TableRowProps };
|
package/dist/components/Table.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
'use client';import e,{createContext as n,useRef as t,useState as r,useCallback as o,useEffect as l,useLayoutEffect as a,useMemo as s}from"react";import{jsx as i,jsxs as c}from"react/jsx-runtime";import{c as
|
|
1
|
+
'use client';import e,{createContext as n,useRef as t,useState as r,useCallback as o,useEffect as l,useLayoutEffect as a,useMemo as s}from"react";import{jsx as i,jsxs as c}from"react/jsx-runtime";import{u,c as d}from"./useComponentClass-C0isGl1z.js";import{K as m}from"./keyboard-BKF7hXqL.js";import"./ThemeContext-Sm-iNANd.js";const h=n(null),f="Table",v=()=>{const n=e.useContext(h);if(!n)throw new Error("Table components must be used within a Table.Root");return n};function b(e){return e?Array.isArray(e)?Object.fromEntries(e.map(((e,n)=>[n,e]))):e:{}}const C=e.forwardRef((({children:e,className:n="",customRootClass:v="",resizable:C=!1,defaultColumnWidths:y,columnWidths:R,onColumnWidthsChange:p,minColumnWidth:z=48,resizeHandleVisibility:w="hover",...x},E)=>{const N=u(v,f),T=t(null),[H,g]=r((()=>b(y))),[L,M]=r(0),[W,I]=r(!1),[j,$]=r(null),A=t({}),D=t(0),O=t(!1),X=t(null),k=o((()=>{const e=X.current;e&&(document.removeEventListener("mousemove",e.handleMove),document.removeEventListener("mouseup",e.handleEnd),document.removeEventListener("touchmove",e.handleMove),document.removeEventListener("touchend",e.handleEnd),document.removeEventListener("touchcancel",e.handleEnd),X.current=null)}),[]);l((()=>()=>{k()}),[k]);const K=void 0!==R,S=K?b(R):H;A.current=S,D.current=L;const B=o((e=>{K||g(e),p?.(e)}),[K,p]),P=o((e=>{M((n=>Math.max(n,e+1)))}),[]),V=o((e=>{if(!C)return;const n=S[e];return void 0!==n?{width:n}:void 0}),[S,C]);a((()=>{if(!C||K||!T.current||0===L||O.current)return;const e=T.current.offsetWidth;if(e<=0)return;const n=Object.keys(A.current).length>0?function(e,n,t){const r=Array.from({length:n},((n,t)=>e[t]??0)),o=r.reduce(((e,n)=>e+n),0);if(o<=0||t<=0)return e;const l=t/o;return Object.fromEntries(r.map(((e,n)=>[n,Math.max(1,Math.round(e*l))])))}(A.current,L,e):function(e,n){const t=Math.max(1,Math.floor(n/e));return Object.fromEntries(Array.from({length:e},((e,n)=>[n,t])))}(L,e);O.current=!0,B(n)}),[L,K,C,B]);const _=o(((e,n)=>{let t=e;for(let e=0;e<Math.abs(n);e+=1)if(t=n<0?t.previousElementSibling:t.nextElementSibling,!t)return null;return t}),[]),F=o(((e,n)=>A.current[e]??n?.offsetWidth??z),[z]),G=o(((e,n,t,r)=>{const o=e+1;if(o>=D.current)return;const l=r-z,a=t-z,s=Math.max(-a,Math.min(l,n)),i=t+s,c=r-s;B({...A.current,[e]:i,[o]:c})}),[z,B]),q=o(((e,n,t)=>{if(!C||e>=D.current-1)return;t.preventDefault();const r="clientX"in t?t.clientX:t.touches[0].clientX,o=_(n,1),l=F(e,n),a=F(e+1,o);I(!0),$(e),k();const s=n=>{const t="clientX"in n?n.clientX:n.touches[0].clientX;G(e,t-r,l,a)},i=()=>{I(!1),$(null),k()};X.current={handleMove:s,handleEnd:i},document.addEventListener("mousemove",s),document.addEventListener("mouseup",i),document.addEventListener("touchmove",s),document.addEventListener("touchend",i),document.addEventListener("touchcancel",i)}),[G,k,F,_,C]),J=o(((e,n,t)=>{if(!C||e>=D.current-1)return;const r=t.shiftKey?20:5;let o=0;if(t.key===m.ARROW_LEFT?o=-r:t.key===m.ARROW_RIGHT&&(o=r),0===o)return;t.preventDefault();const l=_(n,1);G(e,o,F(e,n),F(e+1,l))}),[G,F,_,C]),Q=s((()=>({rootClass:N,resizable:C,resizeHandleVisibility:w,columnCount:L,minColumnWidth:z,registerColumnIndex:P,columnWidths:S,getColumnStyle:V,startColumnResize:q,handleColumnResizeKeyDown:J,isResizing:W,activeColumnIndex:j})),[j,L,S,V,J,W,z,P,w,C,N,q]);return i(h.Provider,{value:Q,children:i("div",{ref:E,className:d(N&&`${N}-wrapper`,n),"data-resizable":C?"":void 0,"data-resizing":C&&W?"":void 0,"data-resize-handle-visibility":C?w:void 0,...x,children:c("table",{ref:T,className:d(N),"data-resizable":C?"":void 0,style:C?{tableLayout:"fixed",width:"100%"}:void 0,children:[C&&L>0&&i("colgroup",{children:Array.from({length:L},((e,n)=>i("col",{style:V(n)},n)))}),e]})})})}));C.displayName=f;const y=e.forwardRef((({children:n,className:t="header",...r},o)=>{const l=e.useContext(h)?.rootClass;return i("thead",{ref:o,className:d(l&&`${l}-head`,t),...r,children:n})}));y.displayName="TableHead";const R=e.forwardRef((({children:n,className:t="",...r},o)=>{const l=e.useContext(h)?.rootClass;return i("tbody",{ref:o,className:d(l&&`${l}-body`,t),...r,children:n})}));R.displayName="TableBody";const p=e.forwardRef((({children:n,className:t="row",...r},o)=>{const l=e.useContext(h)?.rootClass;return i("tr",{ref:o,className:d(l&&`${l}-row`,t),...r,children:n})}));p.displayName="TableRow";const z=n(null),w=e.forwardRef((({children:n,className:t="cell-header",columnIndex:r,style:o,...l},a)=>{const{resizable:s,registerColumnIndex:c,rootClass:u}=v(),m=s&&void 0!==r;e.useLayoutEffect((()=>{void 0!==r&&c(r)}),[r,c]);const h=i("th",{ref:a,className:d(u&&`${u}-cell-header`,t,m&&"resizable"),"data-resizable":m?"":void 0,style:o,...l,children:n});return void 0===r?h:i(z.Provider,{value:{columnIndex:r},children:h})}));w.displayName="TableColumnCellHeader";const x=e.forwardRef((({className:n,"aria-label":t,...r},o)=>{const{rootClass:l,resizable:a,resizeHandleVisibility:s,columnCount:c,minColumnWidth:u,columnWidths:m,startColumnResize:h,handleColumnResizeKeyDown:f,isResizing:b,activeColumnIndex:C}=v(),{columnIndex:y}=(()=>{const n=e.useContext(z);if(!n)throw new Error("Table.ColumnResizeHandle must be used within a Table.ColumnCellHeader with columnIndex");return n})(),R=e.useRef(null),p=b&&C===y,w=c>0&&y>=c-1,x=e.useCallback((e=>{R.current=e?.closest("th")??null,"function"==typeof o?o(e):o&&(o.current=e)}),[o]);if(!a||w)return null;const E=Math.round(m[y]??R.current?.offsetWidth??u);return i("div",{...r,ref:x,"data-slot":"table-column-resize-handle","data-resize-handle-visibility":s,"data-state":p?"active":void 0,className:d(l&&`${l}-column-resize-handle`,{active:p},n),role:"separator","aria-orientation":"vertical","aria-label":t||`Resize column ${y+1}`,"aria-valuemin":u,"aria-valuenow":E,tabIndex:0,onMouseDown:e=>{R.current&&h(y,R.current,e)},onTouchStart:e=>{R.current&&h(y,R.current,e)},onKeyDown:e=>{R.current&&f(y,R.current,e)}})}));x.displayName="TableColumnResizeHandle";const E=e.forwardRef((({children:e,className:n="cell",columnIndex:t,style:r,...o},l)=>{const{resizable:a,rootClass:s}=v(),c=a&&void 0!==t;return i("td",{ref:l,className:d(s&&`${s}-cell`,n,c&&"resizable"),"data-resizable":c?"":void 0,style:r,...o,children:e})}));E.displayName="TableCell";const N=e.forwardRef((function(e,n){return console.warn("Direct usage of Table is not supported. Please use Table.Root, Table.Head, etc. instead."),null}));N.displayName="Table",N.Root=C,N.Body=R,N.Head=y,N.Row=p,N.Cell=E,N.ColumnCellHeader=w,N.ColumnResizeHandle=x;export{R as Body,E as Cell,w as ColumnCellHeader,x as ColumnResizeHandle,y as Head,C as Root,p as Row,N as default,v as useTable};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
'use client';"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),t=require("react/jsx-runtime"),o=require("./useComponentClass-B0DF90tm.cjs"),a=require("./index-BeakeOqt.cjs"),i=require("./index-CbKtybdA.cjs"),r=require("./index-BwNOI8cB.cjs");require("./ThemeContext-t7IX-w6i.cjs"),require("./index-WGIYLuwZ.cjs"),require("./keyboard-BBlFllyi.cjs"),require("./mergeRefs-BUn-enYe.cjs"),require("./mergeProps-DW5qFqqJ.cjs");const s=e=>e.replace(/\s+/g,"-"),n=(e,t)=>`${e}-trigger-${s(t)}`,d=(e,t)=>`${e}-content-${s(t)}`,l=e.createContext(null),c=e.forwardRef((({className:r="",children:s,asChild:n=!1,...d},c)=>{const u=e.useContext(l);if(!u)throw new Error("TabList must be used within a TabRoot");const{rootClass:b,orientation:v}=u;return t.jsx(a.RovingFocusGroupUtility.Group,{children:t.jsx(i.Primitive.div,{ref:c,role:"tablist","aria-orientation":v,className:o.clsx(b&&`${b}-list`,r),"data-slot":"tabs-list",asChild:n,...d,children:s})})}));c.displayName="TabList";const u=e.forwardRef((({value:r,children:s,className:c="",disabled:u,asChild:b=!1,id:v,onClick:h,onFocus:C,...m},f)=>{const g=e.useContext(l);if(!g)throw new Error("TabTrigger must be used within a TabRoot");const{tabValue:x,handleTabChange:p,rootClass:T,orientation:R,activationMode:j,baseId:w,registerTriggerId:I}=g,{setFocusedItemId:N}=e.useContext(a.RovingFocusGroupContext),y=void 0!==r&&r===x,q=v??(void 0!==r?n(w,r):void 0),P=void 0!==r?d(w,r):void 0;e.useEffect((()=>{if(void 0!==r&&void 0!==v&&I)return I(r,v),()=>I(r,void 0)}),[r,v,I]),e.useEffect((()=>{y&&!u&&q&&N(q)}),[y,u,q]);const F={};return F["data-state"]=y?"active":"inactive",F["data-orientation"]=R||"horizontal",u&&(F["data-disabled"]=""),t.jsx(a.RovingFocusGroupUtility.Item,{domId:q,children:t.jsx(i.Primitive.button,{ref:f,id:q,onClick:e=>{h?.(e),e.defaultPrevented||u||void 0===r||p(r)},onFocus:e=>{C?.(e),e.defaultPrevented||u||void 0===r||"manual"!==j&&p(r)},className:o.clsx(T&&`${T}-trigger`,y?"active":"",u?"disabled":"",c),role:"tab",type:"button","aria-selected":y,"aria-controls":y?P:void 0,"aria-disabled":u,disabled:u,"data-slot":"tabs-trigger",asChild:b,...F,...m,children:s})})}));u.displayName="TabTrigger";const b="TabContent",v=e.forwardRef((({className:a="",value:r,children:s,customRootClass:c,asChild:u=!1,forceMount:v=!1,...h},C)=>{const m=o.useComponentClass(c,b),f=e.useContext(l);if(!f)throw new Error("TabContent must be used within a TabRoot");const{tabValue:g,orientation:x,baseId:p,customTriggerIds:T}=f,R=void 0!==r&&g===r;if(!(v||R))return null;const j={};return j["data-state"]=R?"active":"inactive",j["data-orientation"]=x||"horizontal",t.jsx(i.Primitive.div,{ref:C,className:o.clsx(m,a),id:void 0!==r?d(p,r):void 0,role:"tabpanel","aria-labelledby":void 0!==r?T?.[r]??n(p,r):void 0,tabIndex:R?0:void 0,hidden:!R,"aria-hidden":!R,"data-slot":"tabs-content",asChild:u,...j,...h,children:s})}));v.displayName=b;const h="Tabs",C=e.forwardRef((({children:s,defaultValue:n="",onValueChange:d=()=>{},customRootClass:c="",value:u,className:b,color:v,orientation:C="horizontal",dir:m="ltr",loop:f=!0,activationMode:g="automatic",asChild:x=!1,...p},T)=>{const R=o.useComponentClass(c,h),[j,w]=r.useControllableState(u,n||"",d),I=e.useId(),[N,y]=e.useState({}),q=e.useCallback(((e,t)=>{y((o=>{if(o[e]===t)return o;const a={...o};return void 0===t?delete a[e]:a[e]=t,a}))}),[]),P=e=>{e!==j&&w(e)},F=e.useRef(!0);e.useEffect((()=>{F.current?F.current=!1:void 0===u&&n&&P(n)}),[n,u]);const E={rootClass:R,baseId:I,tabValue:j,handleTabChange:P,orientation:C,activationMode:g,customTriggerIds:N,registerTriggerId:q},$={};return $["data-orientation"]=C,t.jsx(l.Provider,{value:E,children:t.jsx(a.RovingFocusGroupUtility.Root,{orientation:C,loop:f,dir:m,asChild:!0,children:t.jsx(i.Primitive.div,{ref:T,className:o.clsx(R,b),"data-color":v,"data-slot":"tabs-root",dir:m,asChild:x,...$,...p,children:s})})})}));C.displayName=h;const m=e.forwardRef(((e,t)=>(console.warn("Direct usage of Tabs is not supported. Please use Tabs.Root, Tabs.List, etc. instead."),null)));m.displayName="Tabs",m.List=c,m.Content=v,m.Root=C,m.Trigger=u,exports.Content=v,exports.List=c,exports.Root=C,exports.Trigger=u,exports.default=m;
|
|
@@ -65,5 +65,5 @@ interface TabsComponent extends React.ForwardRefExoticComponent<TabsProps & Reac
|
|
|
65
65
|
}
|
|
66
66
|
declare const Tabs: TabsComponent;
|
|
67
67
|
|
|
68
|
-
export { Tabs as default };
|
|
68
|
+
export { TabContent as Content, TabList as List, TabRoot as Root, TabTrigger as Trigger, Tabs as default };
|
|
69
69
|
export type { TabContentProps, TabListProps, TabRootProps, TabTriggerProps, TabsProps };
|
package/dist/components/Tabs.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
'use client';import a,{createContext as t,useContext as o,
|
|
1
|
+
'use client';import a,{createContext as t,useContext as e,useEffect as o,useId as i,useState as r,useCallback as s,useRef as d}from"react";import{jsx as n}from"react/jsx-runtime";import{c as l,u as c}from"./useComponentClass-C0isGl1z.js";import{R as u,a as m}from"./index-C7dBo_Ry.js";import{P as b}from"./index-XF8itt-H.js";import{u as h}from"./index-wRElCyvx.js";import"./ThemeContext-Sm-iNANd.js";import"./index-FITGoHty.js";import"./keyboard-BKF7hXqL.js";import"./mergeRefs-B8eZ_q-T.js";import"./mergeProps-0RucjqeH.js";const v=a=>a.replace(/\s+/g,"-"),f=(a,t)=>`${a}-trigger-${v(t)}`,g=(a,t)=>`${a}-content-${v(t)}`,p=t(null),C=a.forwardRef((({className:a="",children:t,asChild:o=!1,...i},r)=>{const s=e(p);if(!s)throw new Error("TabList must be used within a TabRoot");const{rootClass:d,orientation:c}=s;return n(u.Group,{children:n(b.div,{ref:r,role:"tablist","aria-orientation":c,className:l(d&&`${d}-list`,a),"data-slot":"tabs-list",asChild:o,...i,children:t})})}));C.displayName="TabList";const T=a.forwardRef((({value:a,children:t,className:i="",disabled:r,asChild:s=!1,id:d,onClick:c,onFocus:h,...v},C)=>{const T=e(p);if(!T)throw new Error("TabTrigger must be used within a TabRoot");const{tabValue:R,handleTabChange:w,rootClass:N,orientation:I,activationMode:j,baseId:x,registerTriggerId:y}=T,{setFocusedItemId:P}=e(m),$=void 0!==a&&a===R,L=d??(void 0!==a?f(x,a):void 0),V=void 0!==a?g(x,a):void 0;o((()=>{if(void 0!==a&&void 0!==d&&y)return y(a,d),()=>y(a,void 0)}),[a,d,y]),o((()=>{$&&!r&&L&&P(L)}),[$,r,L]);const M={};return M["data-state"]=$?"active":"inactive",M["data-orientation"]=I||"horizontal",r&&(M["data-disabled"]=""),n(u.Item,{domId:L,children:n(b.button,{ref:C,id:L,onClick:t=>{c?.(t),t.defaultPrevented||r||void 0===a||w(a)},onFocus:t=>{h?.(t),t.defaultPrevented||r||void 0===a||"manual"!==j&&w(a)},className:l(N&&`${N}-trigger`,$?"active":"",r?"disabled":"",i),role:"tab",type:"button","aria-selected":$,"aria-controls":$?V:void 0,"aria-disabled":r,disabled:r,"data-slot":"tabs-trigger",asChild:s,...M,...v,children:t})})}));T.displayName="TabTrigger";const R="TabContent",w=a.forwardRef((({className:a="",value:t,children:o,customRootClass:i,asChild:r=!1,forceMount:s=!1,...d},u)=>{const m=c(i,R),h=e(p);if(!h)throw new Error("TabContent must be used within a TabRoot");const{tabValue:v,orientation:C,baseId:T,customTriggerIds:w}=h,N=void 0!==t&&v===t;if(!(s||N))return null;const I={};return I["data-state"]=N?"active":"inactive",I["data-orientation"]=C||"horizontal",n(b.div,{ref:u,className:l(m,a),id:void 0!==t?g(T,t):void 0,role:"tabpanel","aria-labelledby":void 0!==t?w?.[t]??f(T,t):void 0,tabIndex:N?0:void 0,hidden:!N,"aria-hidden":!N,"data-slot":"tabs-content",asChild:r,...I,...d,children:o})}));w.displayName=R;const N="Tabs",I=a.forwardRef((({children:a,defaultValue:t="",onValueChange:e=()=>{},customRootClass:m="",value:v,className:f,color:g,orientation:C="horizontal",dir:T="ltr",loop:R=!0,activationMode:w="automatic",asChild:I=!1,...j},x)=>{const y=c(m,N),[P,$]=h(v,t||"",e),L=i(),[V,M]=r({}),k=s(((a,t)=>{M((e=>{if(e[a]===t)return e;const o={...e};return void 0===t?delete o[a]:o[a]=t,o}))}),[]),z=a=>{a!==P&&$(a)},E=d(!0);o((()=>{E.current?E.current=!1:void 0===v&&t&&z(t)}),[t,v]);const F={rootClass:y,baseId:L,tabValue:P,handleTabChange:z,orientation:C,activationMode:w,customTriggerIds:V,registerTriggerId:k},D={};return D["data-orientation"]=C,n(p.Provider,{value:F,children:n(u.Root,{orientation:C,loop:R,dir:T,asChild:!0,children:n(b.div,{ref:x,className:l(y,f),"data-color":g,"data-slot":"tabs-root",dir:T,asChild:I,...D,...j,children:a})})})}));I.displayName=N;const j=a.forwardRef(((a,t)=>(console.warn("Direct usage of Tabs is not supported. Please use Tabs.Root, Tabs.List, etc. instead."),null)));j.displayName="Tabs",j.List=C,j.Content=w,j.Root=I,j.Trigger=T;export{w as Content,C as List,I as Root,T as Trigger,j as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
'use client';"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),s=require("./useComponentClass-B0DF90tm.cjs");require("./ThemeContext-t7IX-w6i.cjs");const r="Text",t=["div","span","p","label"],a=e.forwardRef((({children:a,customRootClass:l="",className:o="",as:c="p",...n},u)=>{const p=s.useComponentClass(l,r);return t.includes(c)||(c="p"),e.createElement(c,{ref:u,className:s.clsx(p,o),...n},a)}));a.displayName=r,exports.default=a;
|
|
@@ -5,13 +5,13 @@ type TextProps = {
|
|
|
5
5
|
customRootClass?: string;
|
|
6
6
|
className?: string;
|
|
7
7
|
as?: string;
|
|
8
|
-
} & ComponentPropsWithoutRef<'p'>;
|
|
8
|
+
} & ComponentPropsWithoutRef<'p'> & Pick<ComponentPropsWithoutRef<'label'>, 'htmlFor'>;
|
|
9
9
|
declare const Text: React.ForwardRefExoticComponent<{
|
|
10
10
|
children: React.ReactNode;
|
|
11
11
|
customRootClass?: string;
|
|
12
12
|
className?: string;
|
|
13
13
|
as?: string;
|
|
14
|
-
} & Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLParagraphElement>, HTMLParagraphElement>, "ref"> & React.RefAttributes<HTMLParagraphElement>>;
|
|
14
|
+
} & Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLParagraphElement>, HTMLParagraphElement>, "ref"> & Pick<Omit<React.DetailedHTMLProps<React.LabelHTMLAttributes<HTMLLabelElement>, HTMLLabelElement>, "ref">, "htmlFor"> & React.RefAttributes<HTMLParagraphElement>>;
|
|
15
15
|
|
|
16
16
|
export { Text as default };
|
|
17
17
|
export type { TextProps };
|
package/dist/components/Text.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
'use client';import
|
|
1
|
+
'use client';import e,{forwardRef as s}from"react";import{u as a,c as t}from"./useComponentClass-C0isGl1z.js";import"./ThemeContext-Sm-iNANd.js";const o="Text",m=["div","span","p","label"],r=s((({children:s,customRootClass:r="",className:l="",as:c="p",...n},p)=>{const i=a(r,o);return m.includes(c)||(c="p"),e.createElement(c,{ref:p,className:t(i,l),...n},s)}));r.displayName=o;export{r as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
'use client';"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),r=require("react"),a=require("./useComponentClass-B0DF90tm.cjs"),t=require("./index-c6NFMS_0.cjs");require("./ThemeContext-t7IX-w6i.cjs");const s="TextArea",o=r.forwardRef((({children:r,customRootClass:o="",className:i="",variant:l="",size:c="",resize:d="both",color:n="",radius:u="",...p},x)=>{const f=a.useComponentClass(o,s),m=t.createDataAttributes("textarea",{variant:l,size:c,resize:d,radius:u}),h=t.createDataAccentColorAttribute(n),v=t.composeAttributes(m,h);return e.jsx("div",{ref:x,className:a.clsx(f,i),...p,...v,children:r})}));o.displayName=s;const i=r.forwardRef((({children:r,placeholder:a="",value:t,defaultValue:s,...o},i)=>{const l=void 0===t&&void 0===s&&"string"==typeof r?r:void 0;return e.jsx("textarea",{ref:i,placeholder:a,value:t,defaultValue:s??l,...o})}));i.displayName="TextAreaInput";const l=r.forwardRef((({customRootClass:r="",className:t="",style:s,variant:l,size:c,resize:d,color:n,radius:u,readonly:p=!1,readOnly:x,disabled:f=!1,placeholder:m="",children:h,...v},j)=>{const y={},b={};return Object.entries(v).forEach((([e,r])=>{e.startsWith("data-")?y[e]=r:b[e]=r})),e.jsx(o,{ref:j,customRootClass:r,className:a.clsx(t),style:s,variant:l,size:c,resize:d,color:n,radius:u,"data-disabled":f?"":void 0,...y,children:e.jsx(i,{placeholder:m,disabled:f,readOnly:x??p,...b,children:h})})}));l.displayName="TextArea",l.Input=i,l.Root=o,exports.Input=i,exports.Root=o,exports.default=l;
|
|
@@ -20,10 +20,10 @@ declare const TextAreaRoot: React.ForwardRefExoticComponent<Omit<React.DetailedH
|
|
|
20
20
|
type TextAreaInputProps = React.ComponentPropsWithoutRef<'textarea'>;
|
|
21
21
|
declare const TextAreaInput: React.ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.TextareaHTMLAttributes<HTMLTextAreaElement>, HTMLTextAreaElement>, "ref"> & React.RefAttributes<HTMLTextAreaElement>>;
|
|
22
22
|
|
|
23
|
-
type
|
|
24
|
-
|
|
23
|
+
type RootOnlyProps = Pick<TextAreaRootProps, 'customRootClass' | 'variant' | 'size' | 'resize' | 'color' | 'radius' | 'className' | 'style'>;
|
|
24
|
+
type TextAreaProps = RootOnlyProps & Omit<TextAreaInputProps, 'className' | 'style' | 'color'> & {
|
|
25
|
+
/** @deprecated Use `readOnly`. */
|
|
25
26
|
readonly?: boolean;
|
|
26
|
-
disabled?: boolean;
|
|
27
27
|
};
|
|
28
28
|
type TextAreaComponent = React.ForwardRefExoticComponent<TextAreaProps & React.RefAttributes<React.ElementRef<'div'>>> & {
|
|
29
29
|
Input: typeof TextAreaInput;
|
|
@@ -31,5 +31,5 @@ type TextAreaComponent = React.ForwardRefExoticComponent<TextAreaProps & React.R
|
|
|
31
31
|
};
|
|
32
32
|
declare const TextArea: TextAreaComponent;
|
|
33
33
|
|
|
34
|
-
export { TextArea as default };
|
|
34
|
+
export { TextAreaInput as Input, TextAreaRoot as Root, TextArea as default };
|
|
35
35
|
export type { TextAreaInputProps, TextAreaProps, TextAreaRootProps };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
'use client';import{jsx as e
|
|
1
|
+
'use client';import{jsx as e}from"react/jsx-runtime";import a from"react";import{u as r,c as s}from"./useComponentClass-C0isGl1z.js";import{c as t,a as o,b as i}from"./index-eAZUMNef.js";import"./ThemeContext-Sm-iNANd.js";const l="TextArea",d=a.forwardRef((({children:a,customRootClass:d="",className:c="",variant:n="",size:m="",resize:u="both",color:f="",radius:p="",...h},v)=>{const x=r(d,l),y=t("textarea",{variant:n,size:m,resize:u,radius:p}),z=i(f),R=o(y,z);return e("div",{ref:v,className:s(x,c),...h,...R,children:a})}));d.displayName=l;const c=a.forwardRef((({children:a,placeholder:r="",value:s,defaultValue:t,...o},i)=>e("textarea",{ref:i,placeholder:r,value:s,defaultValue:t??(void 0===s&&void 0===t&&"string"==typeof a?a:void 0),...o})));c.displayName="TextAreaInput";const n=a.forwardRef((({customRootClass:a="",className:r="",style:t,variant:o,size:i,resize:l,color:n,radius:m,readonly:u=!1,readOnly:f,disabled:p=!1,placeholder:h="",children:v,...x},y)=>{const z={},R={};return Object.entries(x).forEach((([e,a])=>{e.startsWith("data-")?z[e]=a:R[e]=a})),e(d,{ref:y,customRootClass:a,className:s(r),style:t,variant:o,size:i,resize:l,color:n,radius:m,"data-disabled":p?"":void 0,...z,children:e(c,{placeholder:h,disabled:p,readOnly:f??u,...R,children:v})})}));n.displayName="TextArea",n.Input=c,n.Root=d;export{c as Input,d as Root,n as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
'use client';"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),t=require("react"),s=require("./useComponentClass-B0DF90tm.cjs"),l=require("./mergeProps-DW5qFqqJ.cjs");require("./ThemeContext-t7IX-w6i.cjs");const a=t.createContext({rootClass:"",inputRef:{current:null},clearInput:()=>{},hasValue:!1,setHasValue:()=>!1,isLocked:!1,setIsLocked:()=>!1}),o="TextField",r=t.forwardRef((({className:l="",customRootClass:r="",children:n,...u},c)=>{const d=s.useComponentClass(r,o),i=t.useRef(null),[p,f]=t.useState(!1),[x,m]=t.useState(!1),C=t.useCallback((()=>{const e=i.current;if(!e)return;const t=Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype,"value")?.set;t?.call(e,""),e.dispatchEvent(new Event("input",{bubbles:!0})),f(!1),e.focus()}),[]);return e.jsx(a.Provider,{value:{rootClass:d,inputRef:i,clearInput:C,hasValue:p,setHasValue:f,isLocked:x,setIsLocked:m},children:e.jsx("div",{ref:c,className:s.clsx(d,l),"data-slot":"text-field-root",...u,children:n})})}));r.displayName=o;const n=t.forwardRef((({className:o="",type:r="text",onChange:n,onInput:u,value:c,defaultValue:d,...i},p)=>{const{rootClass:f,inputRef:x,setHasValue:m,setIsLocked:C}=t.useContext(a),h=Boolean(i.disabled||i.readOnly);t.useEffect((()=>{C(h)}),[h,C]),t.useEffect((()=>{void 0===c?void 0!==d&&m(String(d).length>0):m(String(c).length>0)}),[d,m,c]);return e.jsx("input",{ref:l.composeRefs(p,x),type:r,className:s.clsx(f&&`${f}-input`,o),"data-slot":"text-field-input",value:c,defaultValue:d,onInput:e=>{m(e.currentTarget.value.length>0),u?.(e)},onChange:e=>{m(e.currentTarget.value.length>0),n?.(e)},...i})}));n.displayName="TextFieldInput";const u=t.forwardRef((({children:l,className:o="",side:r,...n},u)=>{const{rootClass:c,inputRef:d}=t.useContext(a);return e.jsx("div",{ref:u,role:"presentation",className:s.clsx(c&&`${c}-slot`,o),"data-slot":"text-field-slot","data-text-field-slot":r,...n,onMouseDown:e=>{n.onMouseDown?.(e),e.defaultPrevented||(e.preventDefault(),d.current?.focus())},children:l})}));u.displayName="TextFieldSlot";const c=t.forwardRef((({className:l="",type:o="button",onClick:r,children:n,...u},c)=>{const{rootClass:d,clearInput:i,inputRef:p,hasValue:f,isLocked:x}=t.useContext(a);return!f||x?null:e.jsx("button",{ref:c,type:o,className:s.clsx(d&&`${d}-reset`,l),"data-slot":"text-field-reset",onClick:e=>{r?.(e),e.defaultPrevented||p.current?.disabled||p.current?.readOnly||i()},...u,children:n})}));c.displayName="TextFieldReset";const d=t.forwardRef((({className:t="",customRootClass:l="",inputClassName:a="",startSlot:o,endSlot:c,type:d="text",...i},p)=>e.jsxs(r,{customRootClass:l,className:s.clsx(t),children:[o?e.jsx(u,{side:"start",children:o}):null,e.jsx(n,{ref:p,type:d,className:s.clsx(a),...i}),c?e.jsx(u,{side:"end",children:c}):null]})));d.displayName="TextField",d.Root=r,d.Input=n,d.Slot=u,d.Reset=c,exports.Input=n,exports.Reset=c,exports.Root=r,exports.Slot=u,exports.default=d;
|
|
@@ -37,5 +37,5 @@ type TextFieldComponent = React.ForwardRefExoticComponent<TextFieldProps & React
|
|
|
37
37
|
};
|
|
38
38
|
declare const TextField: TextFieldComponent;
|
|
39
39
|
|
|
40
|
-
export { TextField as default };
|
|
40
|
+
export { TextFieldInput as Input, TextFieldReset as Reset, TextFieldRoot as Root, TextFieldSlot as Slot, TextField as default };
|
|
41
41
|
export type { TextFieldInputProps, TextFieldProps, TextFieldResetProps, TextFieldRootProps, TextFieldSlotProps };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
'use client';import{jsx as e,jsxs as t}from"react/jsx-runtime";import s from"react";import{
|
|
1
|
+
'use client';import{jsx as e,jsxs as t}from"react/jsx-runtime";import s from"react";import{u as a,c as l}from"./useComponentClass-C0isGl1z.js";import{c as o}from"./mergeProps-0RucjqeH.js";import"./ThemeContext-Sm-iNANd.js";const n=s.createContext({rootClass:"",inputRef:{current:null},clearInput:()=>{},hasValue:!1,setHasValue:()=>!1,isLocked:!1,setIsLocked:()=>!1}),r="TextField",u=s.forwardRef((({className:t="",customRootClass:o="",children:u,...c},d)=>{const i=a(o,r),p=s.useRef(null),[f,m]=s.useState(!1),[h,C]=s.useState(!1),x=s.useCallback((()=>{const e=p.current;if(!e)return;const t=Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype,"value")?.set;t?.call(e,""),e.dispatchEvent(new Event("input",{bubbles:!0})),m(!1),e.focus()}),[]);return e(n.Provider,{value:{rootClass:i,inputRef:p,clearInput:x,hasValue:f,setHasValue:m,isLocked:h,setIsLocked:C},children:e("div",{ref:d,className:l(i,t),"data-slot":"text-field-root",...c,children:u})})}));u.displayName=r;const c=s.forwardRef((({className:t="",type:a="text",onChange:r,onInput:u,value:c,defaultValue:d,...i},p)=>{const{rootClass:f,inputRef:m,setHasValue:h,setIsLocked:C}=s.useContext(n),x=Boolean(i.disabled||i.readOnly);s.useEffect((()=>{C(x)}),[x,C]),s.useEffect((()=>{void 0===c?void 0!==d&&h(String(d).length>0):h(String(c).length>0)}),[d,h,c]);return e("input",{ref:o(p,m),type:a,className:l(f&&`${f}-input`,t),"data-slot":"text-field-input",value:c,defaultValue:d,onInput:e=>{h(e.currentTarget.value.length>0),u?.(e)},onChange:e=>{h(e.currentTarget.value.length>0),r?.(e)},...i})}));c.displayName="TextFieldInput";const d=s.forwardRef((({children:t,className:a="",side:o,...r},u)=>{const{rootClass:c,inputRef:d}=s.useContext(n);return e("div",{ref:u,role:"presentation",className:l(c&&`${c}-slot`,a),"data-slot":"text-field-slot","data-text-field-slot":o,...r,onMouseDown:e=>{r.onMouseDown?.(e),e.defaultPrevented||(e.preventDefault(),d.current?.focus())},children:t})}));d.displayName="TextFieldSlot";const i=s.forwardRef((({className:t="",type:a="button",onClick:o,children:r,...u},c)=>{const{rootClass:d,clearInput:i,inputRef:p,hasValue:f,isLocked:m}=s.useContext(n);return!f||m?null:e("button",{ref:c,type:a,className:l(d&&`${d}-reset`,t),"data-slot":"text-field-reset",onClick:e=>{o?.(e),e.defaultPrevented||p.current?.disabled||p.current?.readOnly||i()},...u,children:r})}));i.displayName="TextFieldReset";const p=s.forwardRef((({className:s="",customRootClass:a="",inputClassName:o="",startSlot:n,endSlot:r,type:i="text",...p},f)=>t(u,{customRootClass:a,className:l(s),children:[n?e(d,{side:"start",children:n}):null,e(c,{ref:f,type:i,className:l(o),...p}),r?e(d,{side:"end",children:r}):null]})));p.displayName="TextField",p.Root=u,p.Input=c,p.Slot=d,p.Reset=i;export{c as Input,i as Reset,u as Root,d as Slot,p as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
'use client';"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),t=require("react"),a=require("./ThemeContext-t7IX-w6i.cjs");const r=t.forwardRef((function({appearance:r="system",id:s="rad-ui-theme-container",accentColor:c="",radius:u="",scaling:n="",classNamespace:i,children:d,...o},f){const l=t.useRef(null),m=t.useRef(null),[h,p]=t.useState(r),[v,x]=t.useState(c),[E,R]=t.useState(u),[g,j]=t.useState(n),y=t.useRef(f);t.useEffect((()=>{y.current=f}),[f]);const k=t.useCallback((e=>{l.current=e,((e,t)=>{"function"!=typeof e?e&&(e.current=t):e(t)})(y.current,e)}),[]);return t.useEffect((()=>{const e=window.matchMedia("(prefers-color-scheme: dark)"),t=e=>{"system"===r&&p(e.matches?"dark":"light")};return"system"===r?(p(e.matches?"dark":"light"),e.addEventListener("change",t)):p(r),()=>e.removeEventListener("change",t)}),[r]),t.useEffect((()=>{c&&x(c)}),[c]),t.useEffect((()=>{u&&R(u)}),[u]),t.useEffect((()=>{n&&j(n)}),[n]),e.jsx(a.ThemeContext.Provider,{value:{containerRef:l,portalRootRef:m,classNamespace:i},children:e.jsxs("div",{ref:k,id:s,"data-rad-ui-theme":h,"data-rad-ui-accent-color":v,"data-rad-ui-radius":E,"data-rad-ui-scaling":g,...o,children:[d,e.jsx("div",{ref:m,"data-rad-ui-portal-root":""})]})})}));r.displayName="Theme",exports.default=r;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
'use client';"use strict";const e=require("react").createContext(null);exports.ThemeContext=e;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
'use client';"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),t=require("react"),s=require("./useComponentClass-B0DF90tm.cjs"),i=require("react-dom"),o=require("./ThemeContext-t7IX-w6i.cjs");const r=t.createContext({rootClass:"",position:"bottom-right",expand:!1,gap:14,maxToasts:3,defaultToastTimeout:4e3,toastManager:void 0,isHovered:!1,setIsHovered:()=>{},heights:new Map,updateHeight:()=>{},unlinkStackHeight:()=>{},removeToast:()=>{},toasts:[],visibleToasts:[],viewportClassName:void 0,viewportStyle:void 0,containerAriaLabel:"Notifications",offset:void 0,mobileOffset:void 0,theme:void 0,dir:void 0,richColors:!1,invert:!1,pauseWhenPageIsHidden:!0,closeButton:!1,icons:void 0,loadingIcon:void 0,swipeDirections:void 0,dragThreshold:void 0}),n=t.createContext(null);let a=0;class c{constructor(){this.defaultTimeout=4e3,this.subscribers=new Set,this.dismissSubscribers=new Set,this.updateSubscribers=new Set}subscribe(e){return this.subscribers.add(e),()=>this.subscribers.delete(e)}subscribeDismiss(e){return this.dismissSubscribers.add(e),()=>this.dismissSubscribers.delete(e)}subscribeUpdate(e){return this.updateSubscribers.add(e),()=>this.updateSubscribers.delete(e)}create(e){const{id:t,timeout:s,duration:i,...o}=e,r=t??`toast-${++a}-${Math.random().toString(36).slice(2,7)}`,n={...o,id:r,duration:i??s??this.defaultTimeout};return this.subscribers.forEach((e=>e(n))),r}update(e,t){const s=function(e){const{timeout:t,...s}=e;return void 0!==t?{...s,duration:t,timeout:t}:s}(t);this.updateSubscribers.forEach((t=>t(e,s)))}dismiss(e){this.dismissSubscribers.forEach((t=>t(e)))}dismissAll(){this.dismissSubscribers.forEach((e=>e("__all__")))}close(e){void 0===e?this.dismissAll():this.dismiss(e)}}const d=new c;function u(e){return"string"==typeof e?{title:e}:e}function l(e,t,s,i=d){const o=u(t.loading),r=i.create({persistent:!0,variant:"default",...s,...o});return e.then((e=>{i.dismiss(r);const o=function(e,t){return u("function"==typeof e?e(t):e)}(t.success,e);i.create({variant:"success",...s,...o})})).catch((e=>{i.dismiss(r);const o=function(e,t){return u("function"==typeof e?e(t):e)}(t.error,e);i.create({variant:"error",...s,...o})})),e}function p(e,t){return"string"==typeof e?d.create({title:e,...t}):d.create(e)}function f(e){return(t,s)=>"string"==typeof t?d.create({title:t,variant:e,...s}):d.create({variant:e,...t})}const m=Object.assign(p,{success:f("success"),error:f("error"),warning:f("warning"),info:f("info"),loading:f("loading"),dismiss:e=>void 0===e?d.dismissAll():d.dismiss(e),dismissAll:()=>d.dismissAll(),close:e=>d.close(e),promise:l,message:p,custom:(e,t)=>d.create({...t,render:({id:t})=>e(t)})}),h=({children:i,customRootClass:o="",position:n="bottom-right",expand:a=!1,gap:c=14,maxToasts:u,limit:l,timeout:p,duration:f,toastManager:m,className:h,style:v,richColors:x,closeButton:b,offset:g,mobileOffset:y,theme:C,dir:T,swipeDirections:w,visibleToasts:N,toastOptions:j,invert:S,pauseWhenPageIsHidden:M=!0,icons:R,loadingIcon:P,rtl:k,hotkey:A,containerAriaLabel:E,dragThreshold:D})=>{const H=l??u??N??3,$=t.useMemo((()=>m??d),[m]),I=p??f??4e3;t.useEffect((()=>{$.defaultTimeout=I}),[$,I]);const _=s.useComponentClass(o,"Toast"),[K,O]=t.useState([]),[q,B]=t.useState(!1),[F,L]=t.useState(new Map);t.useEffect((()=>{const e=$.subscribe((e=>{O((t=>{const s={...j,...e},i=t.findIndex((t=>t.id===e.id));if(-1!==i){const e=t[i],o=[...t];return o[i]={...s,updateKey:(e.updateKey??0)+1},o}return[{...s,updateKey:0},...t].slice(0,2*H)}))})),t=$.subscribeDismiss((e=>{"__all__"===e&&O([])})),s=$.subscribeUpdate(((e,t)=>{O((s=>s.map((s=>s.id===e?{...s,...t}:s))))}));return()=>{e(),t(),s()}}),[$,H,j]);const W=t.useCallback((e=>{O((t=>{const s=t.find((t=>t.id===e));return s?.onRemove?.(),t.filter((t=>t.id!==e))})),L((t=>{const s=new Map(t);return s.delete(e),s}))}),[]),U=t.useCallback(((e,t)=>{L((s=>{if(s.get(e)===t)return s;const i=new Map(s);return i.set(e,t),i}))}),[]),V=t.useCallback((e=>{L((t=>{if(!t.has(e))return t;const s=new Map(t);return s.delete(e),s}))}),[]),z=K.slice(0,H);return e.jsx(r.Provider,{value:{rootClass:_,position:n,expand:a,gap:c,maxToasts:H,defaultToastTimeout:I,toastManager:$,isHovered:q,setIsHovered:B,heights:F,updateHeight:U,unlinkStackHeight:V,removeToast:W,toasts:K,visibleToasts:z,viewportClassName:h,viewportStyle:v,containerAriaLabel:E??"Notifications",offset:g,mobileOffset:y,theme:C,dir:k?"rtl":T,richColors:x??!1,invert:S??!1,pauseWhenPageIsHidden:M,closeButton:b??!1,icons:R,loadingIcon:P,swipeDirections:w,dragThreshold:D},children:i})};h.displayName="ToastProvider";const v=({children:e,container:s})=>{const r=t.useContext(o.ThemeContext),[n,a]=t.useState(!1);if(t.useEffect((()=>{a(!0)}),[]),!n)return null;const c=s??r?.portalRootRef.current??document.body;return i.createPortal(e,c)};function x(e){if(void 0!==e)return"number"==typeof e?`${e}px`:e}v.displayName="ToastPortal";const b=({children:i,className:o,style:n})=>{const{rootClass:a,position:c,expand:d,isHovered:u,setIsHovered:l,heights:p,gap:f,visibleToasts:m,viewportClassName:h,viewportStyle:v,containerAriaLabel:b,offset:g,mobileOffset:y,theme:C,dir:T,richColors:w,invert:N}=t.useContext(r),j=t.useRef(null),S=d||u,M=p.get(m[0]?.id)??0,R=m[1]?p.get(m[1].id)??0:0,P=M>0?M:R,k=S?m.reduce(((e,t)=>e+(p.get(t.id)??0)),0)+Math.max(0,m.length-1)*f:P+f*Math.max(0,m.length-1);return e.jsx("section",{ref:j,role:"region","aria-label":b,tabIndex:-1,"data-position":c,"data-expanded":S?"":void 0,"data-theme":C,"data-rich-colors":w?"":void 0,"data-invert":N?"":void 0,dir:T,className:s.clsx(a&&`${a}-viewport`,h,o),style:{...v,"--viewport-height":`${k}px`,"--toast-frontmost-height":`${P}px`,"--toast-offset":x(g),"--toast-mobile-offset":x("object"==typeof y?void 0:y),"--toast-mobile-offset-top":x("object"==typeof y?y.top:void 0),"--toast-mobile-offset-bottom":x("object"==typeof y?y.bottom:void 0),"--toast-mobile-offset-left":x("object"==typeof y?y.left:void 0),"--toast-mobile-offset-right":x("object"==typeof y?y.right:void 0),...n},onMouseEnter:()=>l(!0),onMouseLeave:()=>l(!1),onFocusCapture:()=>l(!0),onBlurCapture:e=>{j.current?.contains(e.relatedTarget)||l(!1)},children:i})};b.displayName="ToastViewport";const g=({toast:i,className:o,children:a})=>{const{rootClass:c,position:d,expand:u,isHovered:l,heights:p,gap:f,toasts:m,visibleToasts:h,updateHeight:v,unlinkStackHeight:x,removeToast:b,defaultToastTimeout:g,toastManager:y,pauseWhenPageIsHidden:C,swipeDirections:T,dragThreshold:w}=t.useContext(r),N=t.useRef(null),j=t.useRef(null),S=i.duration??i.timeout??g,M=t.useRef(S),R=t.useRef(null),[P,k]=t.useState(!1),[A,E]=t.useState(!0),[D,H]=t.useState(!1),[$,I]=t.useState(!1),_=t.useRef(-1),K=t.useRef(-1),O=t.useRef(!1),q=t.useRef({y:0,time:0}),B=t.useRef(0),F=d.startsWith("top"),L=u||l,W=h.findIndex((e=>e.id===i.id)),U=0===W,V=!U&&!L,z=m.length>0&&i.id===m[m.length-1]?.id,Y=p.get(i.id)??0,G=p.get(h[0]?.id)??0,J=h[1]?p.get(h[1].id)??0:0,Q=G>0?G:J>0?J:Y;let X=0;for(let e=0;e<W;e++)X+=(p.get(h[e]?.id)??0)+f;t.useEffect((()=>{if(D)return;if(!N.current)return;const e=N.current,t=()=>{const t=e.offsetHeight;t>0&&v(i.id,t)};t();const s=new ResizeObserver(t);return s.observe(e),()=>s.disconnect()}),[i.id,v,D]),t.useEffect((()=>{const e=requestAnimationFrame((()=>{k(!0);const e=setTimeout((()=>E(!1)),420);return()=>clearTimeout(e)}));return()=>cancelAnimationFrame(e)}),[]),t.useEffect((()=>{const e=_.current,t=K.current,s=h.length,i=-1!==e&&W>e&&-1!==W&&!D,o=t>s&&-1!==W&&!D&&W===e,r=t>s&&-1!==W&&!D&&-1!==e&&e>W;if(_.current=W,K.current=s,i||o||r){I(!0);const e=requestAnimationFrame((()=>I(!1)));return()=>cancelAnimationFrame(e)}}),[W,D,h.length]);const[Z,ee]=t.useState((()=>"undefined"!=typeof document&&document.hidden));t.useEffect((()=>{const e=()=>ee(document.hidden);return document.addEventListener("visibilitychange",e),()=>document.removeEventListener("visibilitychange",e)}),[]);const te=t.useCallback((()=>{if(!D){if(-1===W)return i.onClose?.(),i.onDismiss?.(),x(i.id),void b(i.id);x(i.id),H(!0),i.onClose?.(),i.onDismiss?.()}}),[W,D,i,x,b]),se=t.useRef(te);t.useEffect((()=>{se.current=te}),[te]),t.useEffect((()=>{if(!y)return;return y.subscribeDismiss((e=>{"__all__"!==e&&e===i.id&&se.current()}))}),[i.id,y]);const ie=t.useCallback((()=>{j.current&&(clearTimeout(j.current),j.current=null),null!==R.current&&(M.current-=Date.now()-R.current,R.current=null)}),[]),oe=t.useCallback((()=>{i.persistent||M.current<=0||(R.current=Date.now(),j.current=setTimeout((()=>se.current()),M.current))}),[i.persistent]);t.useEffect((()=>{M.current=i.duration??i.timeout??g,ie()}),[i.updateKey,i.duration,i.timeout,g,ie]),t.useEffect((()=>((!C||!Z)&&(z||L)&&!D?oe():ie(),ie)),[L,Z,z,D,C,oe,ie,i.updateKey]),t.useEffect((()=>{if(!D)return;const e=window.setTimeout((()=>b(i.id)),200);return()=>clearTimeout(e)}),[D,b,i.id]);const re=t.useCallback((e=>{O.current=!0,q.current={y:e.clientY,time:Date.now()},N.current?.setPointerCapture(e.pointerId),ie()}),[ie]),ne=t.useCallback((e=>{if(!O.current||!N.current)return;const t=e.clientY-q.current.y,s=t*(F?-1:1)<0?.2*t:t;B.current=s,N.current.style.setProperty("--swipe-y",`${s}px`),N.current.setAttribute("data-swiping","")}),[F]),ae=t.useCallback((e=>{if(!O.current||!N.current)return;O.current=!1,N.current.removeAttribute("data-swiping");const t=B.current,s=Date.now()-q.current.time,i=Math.abs(t)/s,o=F?-1:1,r=F?"up":"down",n=!T?.length||T.includes(r),a=w??40;n&&t*o>0&&(Math.abs(t)>=a||i>.11)?te():(B.current=0,N.current.style.setProperty("--swipe-y","0px"),oe())}),[w,F,te,oe,T]);if(-1===W&&!D)return null;const ce=i.updateKey&&i.updateKey>0?i.updateKey%2==0?"even":"odd":void 0,de=L?1:Math.max(.82,1-.05*W);let ue;if(D)ue=0;else if(L)ue=F?X:-X;else{ue=(F?1:-1)*(14*W+(1-de)*(Q>0?Q:Y))}const le={"--swipe-y":"0px","--toast-swipe-movement-x":"0px","--toast-swipe-movement-y":"var(--swipe-y, 0px)","--toast-height":`${Y}px`,"--scale":de,"--y":`${ue}px`,"--toast-lift":F?1:-1,"--front-height":`${G>0?G:J>0?J:Y}px`,"--toast-index":W,"--toast-offset-y":`${F?X:-X}px`,zIndex:10-W};return e.jsx(n.Provider,{value:{toast:i,index:W,isExpanded:L,isFront:U,isBehind:V,dismiss:te},children:e.jsx("div",{ref:N,role:"status","aria-live":"high"===i.priority?"assertive":"polite","aria-atomic":"true","data-variant":i.variant??void 0,"data-type":i.type??void 0,"data-limited":i.limited?"":void 0,"data-mounted":P?"":void 0,"data-entering":A&&U?"":void 0,"data-restack-skip":$?"":void 0,"data-leaving":D?"":void 0,"data-expanded":L?"":void 0,"data-front":U?"":void 0,"data-behind":V?"":void 0,"data-pulse":ce,"data-update-key":i.updateKey??0,"data-toast-id":i.id,className:s.clsx(c&&`${c}-item`,i.className,o),style:{...le,...i.style},onPointerDown:re,onPointerMove:ne,onPointerUp:ae,children:i.render?i.render({id:i.id,toast:i,onDismiss:te}):a})})};g.displayName="ToastRoot";const y=t.forwardRef((({className:i,children:o,...a},c)=>{const{rootClass:d}=t.useContext(r),u=t.useContext(n);return e.jsx("div",{ref:c,className:s.clsx(d&&`${d}-content`,i),"data-behind":u?.isBehind?"":void 0,"data-expanded":u?.isExpanded?"":void 0,...a,children:o})}));y.displayName="ToastContent";const C=t.forwardRef((({className:i,children:o,...n},a)=>{const{rootClass:c}=t.useContext(r);return e.jsx("div",{ref:a,className:s.clsx(c&&`${c}-title`,i),...n,children:o})}));C.displayName="ToastTitle";const T=t.forwardRef((({className:i,children:o,...n},a)=>{const{rootClass:c}=t.useContext(r);return e.jsx("p",{ref:a,className:s.clsx(c&&`${c}-description`,i),...n,children:o})}));T.displayName="ToastDescription";const w=t.forwardRef((({className:i,children:o,onClick:a,...c},d)=>{const{rootClass:u}=t.useContext(r),l=t.useContext(n);return e.jsx("button",{ref:d,type:"button","aria-label":"Close notification",className:s.clsx(u&&`${u}-close`,i),onClick:e=>{a?.(e),l?.dismiss()},...c,children:o??"×"})}));w.displayName="ToastClose";const N=t.forwardRef((({className:i,children:o,type:a="button",...c},d)=>{const{rootClass:u}=t.useContext(r),l=t.useContext(n),p=l?.toast.actionProps;return e.jsx("button",{ref:d,type:a,className:s.clsx(u&&`${u}-action`,i),...p,...c,children:o??p?.children})}));function j(){const e=t.useContext(r),s=e.toastManager??d,i=e=>(t,i)=>"string"==typeof t?s.create({title:t,variant:e,...i}):s.create({variant:e,...t});return{toasts:[...e.toasts].reverse(),add:(e,t)=>"string"==typeof e?s.create({title:e,...t}):s.create(e),close:e=>s.close(e),update:(e,t)=>s.update(e,t),promise:(e,t,i)=>l(e,t,i,s),dismiss:e=>void 0===e?s.dismissAll():s.dismiss(e),dismissAll:()=>s.dismissAll(),success:i("success"),error:i("error"),warning:i("warning"),info:i("info"),loading:i("loading")}}function S(){const{toasts:s}=j(),{closeButton:i,icons:o,loadingIcon:n}=t.useContext(r);return e.jsx(e.Fragment,{children:s.map((t=>e.jsx(g,{toast:t,children:e.jsxs(y,{children:[t.icon??("loading"===t.type?n:void 0)??o?.[t.variant??t.type??""],e.jsx(C,{children:t.title}),t.description&&e.jsx(T,{children:t.description}),t.actionProps&&e.jsx(N,{}),i&&e.jsx(w,{})]})},t.id)))})}function M({children:t,className:s,style:i,containerClassName:o,containerStyle:r,...n}){return e.jsx(h,{...n,children:e.jsx(v,{children:e.jsx("div",{className:o,style:r,children:e.jsx(b,{className:s,style:i,children:t??e.jsx(S,{})})})})})}N.displayName="ToastAction",M.displayName="Toaster";const R={Provider:h,Portal:v,Viewport:b,Root:g,Content:y,Title:C,Description:T,Action:N,Close:w,useToastManager:j,Toaster:M};exports.Action=N,exports.Close=w,exports.Content=y,exports.Description=T,exports.Portal=v,exports.Provider=h,exports.Root=g,exports.Title=C,exports.ToastManager=c,exports.ToastState=d,exports.Toaster=M,exports.Viewport=b,exports.createToastManager=function(e){const t=new c;return void 0!==e?.timeout&&(t.defaultTimeout=e.timeout),t},exports.default=R,exports.promiseToast=l,exports.toast=m,exports.useToastManager=j;
|
|
@@ -205,9 +205,12 @@ declare const ToastRoot: React$1.FC<ToastRootProps>;
|
|
|
205
205
|
type ToastContentProps = React$1.HTMLAttributes<HTMLDivElement>;
|
|
206
206
|
declare const ToastContent: React$1.ForwardRefExoticComponent<ToastContentProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
207
207
|
|
|
208
|
-
type ToastTitleProps = React$1.HTMLAttributes<
|
|
209
|
-
/**
|
|
210
|
-
|
|
208
|
+
type ToastTitleProps = React$1.HTMLAttributes<HTMLElement>;
|
|
209
|
+
/**
|
|
210
|
+
* Rendered as a plain element, not a heading: toasts are transient live-region
|
|
211
|
+
* announcements, and headings inside them pollute the page outline.
|
|
212
|
+
*/
|
|
213
|
+
declare const ToastTitle: React$1.ForwardRefExoticComponent<ToastTitleProps & React$1.RefAttributes<HTMLElement>>;
|
|
211
214
|
|
|
212
215
|
type ToastDescriptionProps = React$1.HTMLAttributes<HTMLParagraphElement>;
|
|
213
216
|
declare const ToastDescription: React$1.ForwardRefExoticComponent<ToastDescriptionProps & React$1.RefAttributes<HTMLParagraphElement>>;
|
|
@@ -318,5 +321,5 @@ interface ToastNamespace {
|
|
|
318
321
|
}
|
|
319
322
|
declare const Toast: ToastNamespace;
|
|
320
323
|
|
|
321
|
-
export { ToastManager, ToastState, Toaster, createToastManager, Toast as default, promiseToast, toast, useToastManager };
|
|
324
|
+
export { ToastAction as Action, ToastClose as Close, ToastContent as Content, ToastDescription as Description, ToastPortal as Portal, ToastProvider as Provider, ToastRoot as Root, ToastTitle as Title, ToastManager, ToastState, Toaster, ToastViewport as Viewport, createToastManager, Toast as default, promiseToast, toast, useToastManager };
|
|
322
325
|
export type { CreateToastInput, IToastManager, ToastActionProps, ToastCloseProps, ToastContentProps, ToastData, ToastDescriptionProps, ToastManagerReturn, ToastManagerUpdateOptions, ToastPortalProps, ToastPosition, ToastPromiseMessages, ToastPromiseState, ToastProviderProps, ToastRootProps, ToastTitleProps, ToastViewportProps };
|
package/dist/components/Toast.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
'use client';import{jsx as e,Fragment as t,jsxs as s}from"react/jsx-runtime";import i,{createContext as o,useMemo as r,useEffect as n,useState as a,useCallback as d,useContext as c,useRef as l}from"react";import{u}from"./useComponentClass-QwNivz0h.js";import{createPortal as m}from"react-dom";import{T as p}from"./ThemeContext-Sm-iNANd.js";import{c as f}from"./clsx-BaVHROc5.js";const h=o({rootClass:"",position:"bottom-right",expand:!1,gap:14,maxToasts:3,defaultToastTimeout:4e3,toastManager:void 0,isHovered:!1,setIsHovered:()=>{},heights:new Map,updateHeight:()=>{},unlinkStackHeight:()=>{},removeToast:()=>{},toasts:[],visibleToasts:[],viewportClassName:void 0,viewportStyle:void 0,containerAriaLabel:"Notifications",offset:void 0,mobileOffset:void 0,theme:void 0,dir:void 0,richColors:!1,invert:!1,pauseWhenPageIsHidden:!0,closeButton:!1,icons:void 0,loadingIcon:void 0,swipeDirections:void 0,dragThreshold:void 0}),v=o(null);let b=0;class g{constructor(){this.defaultTimeout=4e3,this.subscribers=new Set,this.dismissSubscribers=new Set,this.updateSubscribers=new Set}subscribe(e){return this.subscribers.add(e),()=>this.subscribers.delete(e)}subscribeDismiss(e){return this.dismissSubscribers.add(e),()=>this.dismissSubscribers.delete(e)}subscribeUpdate(e){return this.updateSubscribers.add(e),()=>this.updateSubscribers.delete(e)}create(e){const{id:t,timeout:s,duration:i,...o}=e,r=t??`toast-${++b}-${Math.random().toString(36).slice(2,7)}`,n={...o,id:r,duration:i??s??this.defaultTimeout};return this.subscribers.forEach((e=>e(n))),r}update(e,t){const s=function(e){const{timeout:t,...s}=e;return void 0!==t?{...s,duration:t,timeout:t}:s}(t);this.updateSubscribers.forEach((t=>t(e,s)))}dismiss(e){this.dismissSubscribers.forEach((t=>t(e)))}dismissAll(){this.dismissSubscribers.forEach((e=>e("__all__")))}close(e){void 0===e?this.dismissAll():this.dismiss(e)}}const y=new g;function w(e){const t=new g;return void 0!==e?.timeout&&(t.defaultTimeout=e.timeout),t}function T(e){return"string"==typeof e?{title:e}:e}function x(e,t,s,i=y){const o=T(t.loading),r=i.create({persistent:!0,variant:"default",...s,...o});return e.then((e=>{i.dismiss(r);const o=function(e,t){return T("function"==typeof e?e(t):e)}(t.success,e);i.create({variant:"success",...s,...o})})).catch((e=>{i.dismiss(r);const o=function(e,t){return T("function"==typeof e?e(t):e)}(t.error,e);i.create({variant:"error",...s,...o})})),e}function N(e,t){return"string"==typeof e?y.create({title:e,...t}):y.create(e)}function C(e){return(t,s)=>"string"==typeof t?y.create({title:t,variant:e,...s}):y.create({variant:e,...t})}const A=Object.assign(N,{success:C("success"),error:C("error"),warning:C("warning"),info:C("info"),loading:C("loading"),dismiss:e=>void 0===e?y.dismissAll():y.dismiss(e),dismissAll:()=>y.dismissAll(),close:e=>y.close(e),promise:x,message:N,custom:(e,t)=>y.create({...t,render:({id:t})=>e(t)})}),M=({children:t,customRootClass:s="",position:i="bottom-right",expand:o=!1,gap:c=14,maxToasts:l,limit:m,timeout:p,duration:f,toastManager:v,className:b,style:g,richColors:w,closeButton:T,offset:x,mobileOffset:N,theme:C,dir:A,swipeDirections:M,visibleToasts:S,toastOptions:H,invert:P,pauseWhenPageIsHidden:D=!0,icons:$,loadingIcon:I,rtl:k,hotkey:R,containerAriaLabel:_,dragThreshold:j})=>{const E=m??l??S??3,K=r((()=>v??y),[v]),B=p??f??4e3;n((()=>{K.defaultTimeout=B}),[K,B]);const L=u(s,"Toast"),[O,F]=a([]),[W,U]=a(!1),[q,z]=a(new Map);n((()=>{const e=K.subscribe((e=>{F((t=>{const s={...H,...e},i=t.findIndex((t=>t.id===e.id));if(-1!==i){const e=t[i],o=[...t];return o[i]={...s,updateKey:(e.updateKey??0)+1},o}return[{...s,updateKey:0},...t].slice(0,2*E)}))})),t=K.subscribeDismiss((e=>{"__all__"===e&&F([])})),s=K.subscribeUpdate(((e,t)=>{F((s=>s.map((s=>s.id===e?{...s,...t}:s))))}));return()=>{e(),t(),s()}}),[K,E,H]);const V=d((e=>{F((t=>{const s=t.find((t=>t.id===e));return s?.onRemove?.(),t.filter((t=>t.id!==e))})),z((t=>{const s=new Map(t);return s.delete(e),s}))}),[]),Y=d(((e,t)=>{z((s=>{if(s.get(e)===t)return s;const i=new Map(s);return i.set(e,t),i}))}),[]),G=d((e=>{z((t=>{if(!t.has(e))return t;const s=new Map(t);return s.delete(e),s}))}),[]),J=O.slice(0,E);return e(h.Provider,{value:{rootClass:L,position:i,expand:o,gap:c,maxToasts:E,defaultToastTimeout:B,toastManager:K,isHovered:W,setIsHovered:U,heights:q,updateHeight:Y,unlinkStackHeight:G,removeToast:V,toasts:O,visibleToasts:J,viewportClassName:b,viewportStyle:g,containerAriaLabel:_??"Notifications",offset:x,mobileOffset:N,theme:C,dir:k?"rtl":A,richColors:w??!1,invert:P??!1,pauseWhenPageIsHidden:D,closeButton:T??!1,icons:$,loadingIcon:I,swipeDirections:M,dragThreshold:j},children:t})};M.displayName="ToastProvider";const S=({children:e,container:t})=>{const s=c(p),[i,o]=a(!1);if(n((()=>{o(!0)}),[]),!i)return null;const r=t??s?.portalRootRef.current??document.body;return m(e,r)};function H(e){if(void 0!==e)return"number"==typeof e?`${e}px`:e}S.displayName="ToastPortal";const P=({children:t,className:s,style:i})=>{const{rootClass:o,position:r,expand:n,isHovered:a,setIsHovered:d,heights:u,gap:m,visibleToasts:p,viewportClassName:v,viewportStyle:b,containerAriaLabel:g,offset:y,mobileOffset:w,theme:T,dir:x,richColors:N,invert:C}=c(h),A=l(null),M=n||a,S=u.get(p[0]?.id)??0,P=p[1]?u.get(p[1].id)??0:0,D=S>0?S:P,$=M?p.reduce(((e,t)=>e+(u.get(t.id)??0)),0)+Math.max(0,p.length-1)*m:D+m*Math.max(0,p.length-1);return e("ol",{ref:A,role:"region","aria-label":g,tabIndex:-1,"data-position":r,"data-expanded":M?"":void 0,"data-theme":T,"data-rich-colors":N?"":void 0,"data-invert":C?"":void 0,dir:x,className:f(o&&`${o}-viewport`,v,s),style:{...b,"--viewport-height":`${$}px`,"--toast-frontmost-height":`${D}px`,"--toast-offset":H(y),"--toast-mobile-offset":H("object"==typeof w?void 0:w),"--toast-mobile-offset-top":H("object"==typeof w?w.top:void 0),"--toast-mobile-offset-bottom":H("object"==typeof w?w.bottom:void 0),"--toast-mobile-offset-left":H("object"==typeof w?w.left:void 0),"--toast-mobile-offset-right":H("object"==typeof w?w.right:void 0),...i},onMouseEnter:()=>d(!0),onMouseLeave:()=>d(!1),onFocusCapture:()=>d(!0),onBlurCapture:e=>{A.current?.contains(e.relatedTarget)||d(!1)},children:t})};P.displayName="ToastViewport";const D=({toast:t,className:s,children:i})=>{const{rootClass:o,position:r,expand:u,isHovered:m,heights:p,gap:b,toasts:g,visibleToasts:y,updateHeight:w,unlinkStackHeight:T,removeToast:x,defaultToastTimeout:N,toastManager:C,pauseWhenPageIsHidden:A,swipeDirections:M,dragThreshold:S}=c(h),H=l(null),P=l(null),D=t.duration??t.timeout??N,$=l(D),I=l(null),[k,R]=a(!1),[_,j]=a(!0),[E,K]=a(!1),[B,L]=a(!1),O=l(-1),F=l(-1),W=l(!1),U=l({y:0,time:0}),q=l(0),z=r.startsWith("top"),V=u||m,Y=y.findIndex((e=>e.id===t.id)),G=0===Y,J=!G&&!V,Q=g.length>0&&t.id===g[g.length-1]?.id,X=p.get(t.id)??0,Z=p.get(y[0]?.id)??0,ee=y[1]?p.get(y[1].id)??0:0,te=Z>0?Z:ee>0?ee:X;let se=0;for(let e=0;e<Y;e++)se+=(p.get(y[e]?.id)??0)+b;n((()=>{if(E)return;if(!H.current)return;const e=H.current,s=()=>{const s=e.offsetHeight;s>0&&w(t.id,s)};s();const i=new ResizeObserver(s);return i.observe(e),()=>i.disconnect()}),[t.id,w,E]),n((()=>{const e=requestAnimationFrame((()=>{R(!0);const e=setTimeout((()=>j(!1)),420);return()=>clearTimeout(e)}));return()=>cancelAnimationFrame(e)}),[]),n((()=>{const e=O.current,t=F.current,s=y.length,i=-1!==e&&Y>e&&-1!==Y&&!E,o=t>s&&-1!==Y&&!E&&Y===e,r=t>s&&-1!==Y&&!E&&-1!==e&&e>Y;if(O.current=Y,F.current=s,i||o||r){L(!0);const e=requestAnimationFrame((()=>L(!1)));return()=>cancelAnimationFrame(e)}}),[Y,E,y.length]);const[ie,oe]=a((()=>"undefined"!=typeof document&&document.hidden));n((()=>{const e=()=>oe(document.hidden);return document.addEventListener("visibilitychange",e),()=>document.removeEventListener("visibilitychange",e)}),[]);const re=d((()=>{if(!E){if(-1===Y)return t.onClose?.(),t.onDismiss?.(),T(t.id),void x(t.id);T(t.id),K(!0),t.onClose?.(),t.onDismiss?.()}}),[Y,E,t,T,x]),ne=l(re);n((()=>{ne.current=re}),[re]),n((()=>{if(!C)return;return C.subscribeDismiss((e=>{"__all__"!==e&&e===t.id&&ne.current()}))}),[t.id,C]);const ae=d((()=>{P.current&&(clearTimeout(P.current),P.current=null),null!==I.current&&($.current-=Date.now()-I.current,I.current=null)}),[]),de=d((()=>{t.persistent||$.current<=0||(I.current=Date.now(),P.current=setTimeout((()=>ne.current()),$.current))}),[t.persistent]);n((()=>{$.current=t.duration??t.timeout??N,ae()}),[t.updateKey,t.duration,t.timeout,N,ae]),n((()=>((!A||!ie)&&(Q||V)&&!E?de():ae(),ae)),[V,ie,Q,E,A,de,ae,t.updateKey]),n((()=>{if(!E)return;const e=window.setTimeout((()=>x(t.id)),200);return()=>clearTimeout(e)}),[E,x,t.id]);const ce=d((e=>{W.current=!0,U.current={y:e.clientY,time:Date.now()},H.current?.setPointerCapture(e.pointerId),ae()}),[ae]),le=d((e=>{if(!W.current||!H.current)return;const t=e.clientY-U.current.y,s=t*(z?-1:1)<0?.2*t:t;q.current=s,H.current.style.setProperty("--swipe-y",`${s}px`),H.current.setAttribute("data-swiping","")}),[z]),ue=d((e=>{if(!W.current||!H.current)return;W.current=!1,H.current.removeAttribute("data-swiping");const t=q.current,s=Date.now()-U.current.time,i=Math.abs(t)/s,o=z?-1:1,r=z?"up":"down",n=!M?.length||M.includes(r),a=S??40;n&&t*o>0&&(Math.abs(t)>=a||i>.11)?re():(q.current=0,H.current.style.setProperty("--swipe-y","0px"),de())}),[S,z,re,de,M]);if(-1===Y&&!E)return null;const me=t.updateKey&&t.updateKey>0?t.updateKey%2==0?"even":"odd":void 0,pe=V?1:Math.max(.82,1-.05*Y);let fe;if(E)fe=0;else if(V)fe=z?se:-se;else{fe=(z?1:-1)*(14*Y+(1-pe)*(te>0?te:X))}const he={"--swipe-y":"0px","--toast-swipe-movement-x":"0px","--toast-swipe-movement-y":"var(--swipe-y, 0px)","--toast-height":`${X}px`,"--scale":pe,"--y":`${fe}px`,"--toast-lift":z?1:-1,"--front-height":`${Z>0?Z:ee>0?ee:X}px`,"--toast-index":Y,"--toast-offset-y":`${z?se:-se}px`,zIndex:10-Y};return e(v.Provider,{value:{toast:t,index:Y,isExpanded:V,isFront:G,isBehind:J,dismiss:re},children:e("li",{ref:H,role:"status","aria-live":"high"===t.priority?"assertive":"polite","aria-atomic":"true","data-variant":t.variant??void 0,"data-type":t.type??void 0,"data-limited":t.limited?"":void 0,"data-mounted":k?"":void 0,"data-entering":_&&G?"":void 0,"data-restack-skip":B?"":void 0,"data-leaving":E?"":void 0,"data-expanded":V?"":void 0,"data-front":G?"":void 0,"data-behind":J?"":void 0,"data-pulse":me,"data-update-key":t.updateKey??0,"data-toast-id":t.id,className:f(o&&`${o}-item`,t.className,s),style:{...he,...t.style},onPointerDown:ce,onPointerMove:le,onPointerUp:ue,children:t.render?t.render({id:t.id,toast:t,onDismiss:re}):i})})};D.displayName="ToastRoot";const $=i.forwardRef((({className:t,children:s,...i},o)=>{const{rootClass:r}=c(h),n=c(v);return e("div",{ref:o,className:f(r&&`${r}-content`,t),"data-behind":n?.isBehind?"":void 0,"data-expanded":n?.isExpanded?"":void 0,...i,children:s})}));$.displayName="ToastContent";const I=i.forwardRef((({className:t,children:s,...i},o)=>{const{rootClass:r}=c(h);return e("h2",{ref:o,className:f(r&&`${r}-title`,t),...i,children:s})}));I.displayName="ToastTitle";const k=i.forwardRef((({className:t,children:s,...i},o)=>{const{rootClass:r}=c(h);return e("p",{ref:o,className:f(r&&`${r}-description`,t),...i,children:s})}));k.displayName="ToastDescription";const R=i.forwardRef((({className:t,children:s,onClick:i,...o},r)=>{const{rootClass:n}=c(h),a=c(v);return e("button",{ref:r,type:"button","aria-label":"Close notification",className:f(n&&`${n}-close`,t),onClick:e=>{i?.(e),a?.dismiss()},...o,children:s??"×"})}));R.displayName="ToastClose";const _=i.forwardRef((({className:t,children:s,type:i="button",...o},r)=>{const{rootClass:n}=c(h),a=c(v),d=a?.toast.actionProps;return e("button",{ref:r,type:i,className:f(n&&`${n}-action`,t),...d,...o,children:s??d?.children})}));function j(){const e=c(h),t=e.toastManager??y,s=e=>(s,i)=>"string"==typeof s?t.create({title:s,variant:e,...i}):t.create({variant:e,...s});return{toasts:[...e.toasts].reverse(),add:(e,s)=>"string"==typeof e?t.create({title:e,...s}):t.create(e),close:e=>t.close(e),update:(e,s)=>t.update(e,s),promise:(e,s,i)=>x(e,s,i,t),dismiss:e=>void 0===e?t.dismissAll():t.dismiss(e),dismissAll:()=>t.dismissAll(),success:s("success"),error:s("error"),warning:s("warning"),info:s("info"),loading:s("loading")}}function E(){const{toasts:o}=j(),{closeButton:r,icons:n,loadingIcon:a}=i.useContext(h);return e(t,{children:o.map((t=>e(D,{toast:t,children:s($,{children:[t.icon??("loading"===t.type?a:void 0)??n?.[t.variant??t.type??""],e(I,{children:t.title}),t.description&&e(k,{children:t.description}),t.actionProps&&e(_,{}),r&&e(R,{})]})},t.id)))})}function K({children:t,className:s,style:i,containerClassName:o,containerStyle:r,...n}){return e(M,{...n,children:e(S,{children:e("div",{className:o,style:r,children:e(P,{className:s,style:i,children:t??e(E,{})})})})})}_.displayName="ToastAction",K.displayName="Toaster";const B={Provider:M,Portal:S,Viewport:P,Root:D,Content:$,Title:I,Description:k,Action:_,Close:R,useToastManager:j,Toaster:K};export{g as ToastManager,y as ToastState,K as Toaster,w as createToastManager,B as default,x as promiseToast,A as toast,j as useToastManager};
|
|
1
|
+
'use client';import{jsx as e,Fragment as t,jsxs as s}from"react/jsx-runtime";import i,{createContext as o,useMemo as r,useEffect as n,useState as a,useCallback as d,useContext as c,useRef as l}from"react";import{u,c as m}from"./useComponentClass-C0isGl1z.js";import{createPortal as p}from"react-dom";import{T as f}from"./ThemeContext-Sm-iNANd.js";const h=o({rootClass:"",position:"bottom-right",expand:!1,gap:14,maxToasts:3,defaultToastTimeout:4e3,toastManager:void 0,isHovered:!1,setIsHovered:()=>{},heights:new Map,updateHeight:()=>{},unlinkStackHeight:()=>{},removeToast:()=>{},toasts:[],visibleToasts:[],viewportClassName:void 0,viewportStyle:void 0,containerAriaLabel:"Notifications",offset:void 0,mobileOffset:void 0,theme:void 0,dir:void 0,richColors:!1,invert:!1,pauseWhenPageIsHidden:!0,closeButton:!1,icons:void 0,loadingIcon:void 0,swipeDirections:void 0,dragThreshold:void 0}),v=o(null);let b=0;class g{constructor(){this.defaultTimeout=4e3,this.subscribers=new Set,this.dismissSubscribers=new Set,this.updateSubscribers=new Set}subscribe(e){return this.subscribers.add(e),()=>this.subscribers.delete(e)}subscribeDismiss(e){return this.dismissSubscribers.add(e),()=>this.dismissSubscribers.delete(e)}subscribeUpdate(e){return this.updateSubscribers.add(e),()=>this.updateSubscribers.delete(e)}create(e){const{id:t,timeout:s,duration:i,...o}=e,r=t??`toast-${++b}-${Math.random().toString(36).slice(2,7)}`,n={...o,id:r,duration:i??s??this.defaultTimeout};return this.subscribers.forEach((e=>e(n))),r}update(e,t){const s=function(e){const{timeout:t,...s}=e;return void 0!==t?{...s,duration:t,timeout:t}:s}(t);this.updateSubscribers.forEach((t=>t(e,s)))}dismiss(e){this.dismissSubscribers.forEach((t=>t(e)))}dismissAll(){this.dismissSubscribers.forEach((e=>e("__all__")))}close(e){void 0===e?this.dismissAll():this.dismiss(e)}}const y=new g;function w(e){const t=new g;return void 0!==e?.timeout&&(t.defaultTimeout=e.timeout),t}function T(e){return"string"==typeof e?{title:e}:e}function x(e,t,s,i=y){const o=T(t.loading),r=i.create({persistent:!0,variant:"default",...s,...o});return e.then((e=>{i.dismiss(r);const o=function(e,t){return T("function"==typeof e?e(t):e)}(t.success,e);i.create({variant:"success",...s,...o})})).catch((e=>{i.dismiss(r);const o=function(e,t){return T("function"==typeof e?e(t):e)}(t.error,e);i.create({variant:"error",...s,...o})})),e}function C(e,t){return"string"==typeof e?y.create({title:e,...t}):y.create(e)}function N(e){return(t,s)=>"string"==typeof t?y.create({title:t,variant:e,...s}):y.create({variant:e,...t})}const A=Object.assign(C,{success:N("success"),error:N("error"),warning:N("warning"),info:N("info"),loading:N("loading"),dismiss:e=>void 0===e?y.dismissAll():y.dismiss(e),dismissAll:()=>y.dismissAll(),close:e=>y.close(e),promise:x,message:C,custom:(e,t)=>y.create({...t,render:({id:t})=>e(t)})}),M=({children:t,customRootClass:s="",position:i="bottom-right",expand:o=!1,gap:c=14,maxToasts:l,limit:m,timeout:p,duration:f,toastManager:v,className:b,style:g,richColors:w,closeButton:T,offset:x,mobileOffset:C,theme:N,dir:A,swipeDirections:M,visibleToasts:P,toastOptions:S,invert:D,pauseWhenPageIsHidden:H=!0,icons:$,loadingIcon:I,rtl:R,hotkey:k,containerAriaLabel:_,dragThreshold:j})=>{const E=m??l??P??3,K=r((()=>v??y),[v]),B=p??f??4e3;n((()=>{K.defaultTimeout=B}),[K,B]);const L=u(s,"Toast"),[O,F]=a([]),[W,U]=a(!1),[V,q]=a(new Map);n((()=>{const e=K.subscribe((e=>{F((t=>{const s={...S,...e},i=t.findIndex((t=>t.id===e.id));if(-1!==i){const e=t[i],o=[...t];return o[i]={...s,updateKey:(e.updateKey??0)+1},o}return[{...s,updateKey:0},...t].slice(0,2*E)}))})),t=K.subscribeDismiss((e=>{"__all__"===e&&F([])})),s=K.subscribeUpdate(((e,t)=>{F((s=>s.map((s=>s.id===e?{...s,...t}:s))))}));return()=>{e(),t(),s()}}),[K,E,S]);const z=d((e=>{F((t=>{const s=t.find((t=>t.id===e));return s?.onRemove?.(),t.filter((t=>t.id!==e))})),q((t=>{const s=new Map(t);return s.delete(e),s}))}),[]),Y=d(((e,t)=>{q((s=>{if(s.get(e)===t)return s;const i=new Map(s);return i.set(e,t),i}))}),[]),G=d((e=>{q((t=>{if(!t.has(e))return t;const s=new Map(t);return s.delete(e),s}))}),[]),J=O.slice(0,E);return e(h.Provider,{value:{rootClass:L,position:i,expand:o,gap:c,maxToasts:E,defaultToastTimeout:B,toastManager:K,isHovered:W,setIsHovered:U,heights:V,updateHeight:Y,unlinkStackHeight:G,removeToast:z,toasts:O,visibleToasts:J,viewportClassName:b,viewportStyle:g,containerAriaLabel:_??"Notifications",offset:x,mobileOffset:C,theme:N,dir:R?"rtl":A,richColors:w??!1,invert:D??!1,pauseWhenPageIsHidden:H,closeButton:T??!1,icons:$,loadingIcon:I,swipeDirections:M,dragThreshold:j},children:t})};M.displayName="ToastProvider";const P=({children:e,container:t})=>{const s=c(f),[i,o]=a(!1);if(n((()=>{o(!0)}),[]),!i)return null;const r=t??s?.portalRootRef.current??document.body;return p(e,r)};function S(e){if(void 0!==e)return"number"==typeof e?`${e}px`:e}P.displayName="ToastPortal";const D=({children:t,className:s,style:i})=>{const{rootClass:o,position:r,expand:n,isHovered:a,setIsHovered:d,heights:u,gap:p,visibleToasts:f,viewportClassName:v,viewportStyle:b,containerAriaLabel:g,offset:y,mobileOffset:w,theme:T,dir:x,richColors:C,invert:N}=c(h),A=l(null),M=n||a,P=u.get(f[0]?.id)??0,D=f[1]?u.get(f[1].id)??0:0,H=P>0?P:D,$=M?f.reduce(((e,t)=>e+(u.get(t.id)??0)),0)+Math.max(0,f.length-1)*p:H+p*Math.max(0,f.length-1);return e("section",{ref:A,role:"region","aria-label":g,tabIndex:-1,"data-position":r,"data-expanded":M?"":void 0,"data-theme":T,"data-rich-colors":C?"":void 0,"data-invert":N?"":void 0,dir:x,className:m(o&&`${o}-viewport`,v,s),style:{...b,"--viewport-height":`${$}px`,"--toast-frontmost-height":`${H}px`,"--toast-offset":S(y),"--toast-mobile-offset":S("object"==typeof w?void 0:w),"--toast-mobile-offset-top":S("object"==typeof w?w.top:void 0),"--toast-mobile-offset-bottom":S("object"==typeof w?w.bottom:void 0),"--toast-mobile-offset-left":S("object"==typeof w?w.left:void 0),"--toast-mobile-offset-right":S("object"==typeof w?w.right:void 0),...i},onMouseEnter:()=>d(!0),onMouseLeave:()=>d(!1),onFocusCapture:()=>d(!0),onBlurCapture:e=>{A.current?.contains(e.relatedTarget)||d(!1)},children:t})};D.displayName="ToastViewport";const H=({toast:t,className:s,children:i})=>{const{rootClass:o,position:r,expand:u,isHovered:p,heights:f,gap:b,toasts:g,visibleToasts:y,updateHeight:w,unlinkStackHeight:T,removeToast:x,defaultToastTimeout:C,toastManager:N,pauseWhenPageIsHidden:A,swipeDirections:M,dragThreshold:P}=c(h),S=l(null),D=l(null),H=t.duration??t.timeout??C,$=l(H),I=l(null),[R,k]=a(!1),[_,j]=a(!0),[E,K]=a(!1),[B,L]=a(!1),O=l(-1),F=l(-1),W=l(!1),U=l({y:0,time:0}),V=l(0),q=r.startsWith("top"),z=u||p,Y=y.findIndex((e=>e.id===t.id)),G=0===Y,J=!G&&!z,Q=g.length>0&&t.id===g[g.length-1]?.id,X=f.get(t.id)??0,Z=f.get(y[0]?.id)??0,ee=y[1]?f.get(y[1].id)??0:0,te=Z>0?Z:ee>0?ee:X;let se=0;for(let e=0;e<Y;e++)se+=(f.get(y[e]?.id)??0)+b;n((()=>{if(E)return;if(!S.current)return;const e=S.current,s=()=>{const s=e.offsetHeight;s>0&&w(t.id,s)};s();const i=new ResizeObserver(s);return i.observe(e),()=>i.disconnect()}),[t.id,w,E]),n((()=>{const e=requestAnimationFrame((()=>{k(!0);const e=setTimeout((()=>j(!1)),420);return()=>clearTimeout(e)}));return()=>cancelAnimationFrame(e)}),[]),n((()=>{const e=O.current,t=F.current,s=y.length,i=-1!==e&&Y>e&&-1!==Y&&!E,o=t>s&&-1!==Y&&!E&&Y===e,r=t>s&&-1!==Y&&!E&&-1!==e&&e>Y;if(O.current=Y,F.current=s,i||o||r){L(!0);const e=requestAnimationFrame((()=>L(!1)));return()=>cancelAnimationFrame(e)}}),[Y,E,y.length]);const[ie,oe]=a((()=>"undefined"!=typeof document&&document.hidden));n((()=>{const e=()=>oe(document.hidden);return document.addEventListener("visibilitychange",e),()=>document.removeEventListener("visibilitychange",e)}),[]);const re=d((()=>{if(!E){if(-1===Y)return t.onClose?.(),t.onDismiss?.(),T(t.id),void x(t.id);T(t.id),K(!0),t.onClose?.(),t.onDismiss?.()}}),[Y,E,t,T,x]),ne=l(re);n((()=>{ne.current=re}),[re]),n((()=>{if(!N)return;return N.subscribeDismiss((e=>{"__all__"!==e&&e===t.id&&ne.current()}))}),[t.id,N]);const ae=d((()=>{D.current&&(clearTimeout(D.current),D.current=null),null!==I.current&&($.current-=Date.now()-I.current,I.current=null)}),[]),de=d((()=>{t.persistent||$.current<=0||(I.current=Date.now(),D.current=setTimeout((()=>ne.current()),$.current))}),[t.persistent]);n((()=>{$.current=t.duration??t.timeout??C,ae()}),[t.updateKey,t.duration,t.timeout,C,ae]),n((()=>((!A||!ie)&&(Q||z)&&!E?de():ae(),ae)),[z,ie,Q,E,A,de,ae,t.updateKey]),n((()=>{if(!E)return;const e=window.setTimeout((()=>x(t.id)),200);return()=>clearTimeout(e)}),[E,x,t.id]);const ce=d((e=>{W.current=!0,U.current={y:e.clientY,time:Date.now()},S.current?.setPointerCapture(e.pointerId),ae()}),[ae]),le=d((e=>{if(!W.current||!S.current)return;const t=e.clientY-U.current.y,s=t*(q?-1:1)<0?.2*t:t;V.current=s,S.current.style.setProperty("--swipe-y",`${s}px`),S.current.setAttribute("data-swiping","")}),[q]),ue=d((e=>{if(!W.current||!S.current)return;W.current=!1,S.current.removeAttribute("data-swiping");const t=V.current,s=Date.now()-U.current.time,i=Math.abs(t)/s,o=q?-1:1,r=q?"up":"down",n=!M?.length||M.includes(r),a=P??40;n&&t*o>0&&(Math.abs(t)>=a||i>.11)?re():(V.current=0,S.current.style.setProperty("--swipe-y","0px"),de())}),[P,q,re,de,M]);if(-1===Y&&!E)return null;const me=t.updateKey&&t.updateKey>0?t.updateKey%2==0?"even":"odd":void 0,pe=z?1:Math.max(.82,1-.05*Y);let fe;if(E)fe=0;else if(z)fe=q?se:-se;else{fe=(q?1:-1)*(14*Y+(1-pe)*(te>0?te:X))}const he={"--swipe-y":"0px","--toast-swipe-movement-x":"0px","--toast-swipe-movement-y":"var(--swipe-y, 0px)","--toast-height":`${X}px`,"--scale":pe,"--y":`${fe}px`,"--toast-lift":q?1:-1,"--front-height":`${Z>0?Z:ee>0?ee:X}px`,"--toast-index":Y,"--toast-offset-y":`${q?se:-se}px`,zIndex:10-Y};return e(v.Provider,{value:{toast:t,index:Y,isExpanded:z,isFront:G,isBehind:J,dismiss:re},children:e("div",{ref:S,role:"status","aria-live":"high"===t.priority?"assertive":"polite","aria-atomic":"true","data-variant":t.variant??void 0,"data-type":t.type??void 0,"data-limited":t.limited?"":void 0,"data-mounted":R?"":void 0,"data-entering":_&&G?"":void 0,"data-restack-skip":B?"":void 0,"data-leaving":E?"":void 0,"data-expanded":z?"":void 0,"data-front":G?"":void 0,"data-behind":J?"":void 0,"data-pulse":me,"data-update-key":t.updateKey??0,"data-toast-id":t.id,className:m(o&&`${o}-item`,t.className,s),style:{...he,...t.style},onPointerDown:ce,onPointerMove:le,onPointerUp:ue,children:t.render?t.render({id:t.id,toast:t,onDismiss:re}):i})})};H.displayName="ToastRoot";const $=i.forwardRef((({className:t,children:s,...i},o)=>{const{rootClass:r}=c(h),n=c(v);return e("div",{ref:o,className:m(r&&`${r}-content`,t),"data-behind":n?.isBehind?"":void 0,"data-expanded":n?.isExpanded?"":void 0,...i,children:s})}));$.displayName="ToastContent";const I=i.forwardRef((({className:t,children:s,...i},o)=>{const{rootClass:r}=c(h);return e("div",{ref:o,className:m(r&&`${r}-title`,t),...i,children:s})}));I.displayName="ToastTitle";const R=i.forwardRef((({className:t,children:s,...i},o)=>{const{rootClass:r}=c(h);return e("p",{ref:o,className:m(r&&`${r}-description`,t),...i,children:s})}));R.displayName="ToastDescription";const k=i.forwardRef((({className:t,children:s,onClick:i,...o},r)=>{const{rootClass:n}=c(h),a=c(v);return e("button",{ref:r,type:"button","aria-label":"Close notification",className:m(n&&`${n}-close`,t),onClick:e=>{i?.(e),a?.dismiss()},...o,children:s??"×"})}));k.displayName="ToastClose";const _=i.forwardRef((({className:t,children:s,type:i="button",...o},r)=>{const{rootClass:n}=c(h),a=c(v),d=a?.toast.actionProps;return e("button",{ref:r,type:i,className:m(n&&`${n}-action`,t),...d,...o,children:s??d?.children})}));function j(){const e=c(h),t=e.toastManager??y,s=e=>(s,i)=>"string"==typeof s?t.create({title:s,variant:e,...i}):t.create({variant:e,...s});return{toasts:[...e.toasts].reverse(),add:(e,s)=>"string"==typeof e?t.create({title:e,...s}):t.create(e),close:e=>t.close(e),update:(e,s)=>t.update(e,s),promise:(e,s,i)=>x(e,s,i,t),dismiss:e=>void 0===e?t.dismissAll():t.dismiss(e),dismissAll:()=>t.dismissAll(),success:s("success"),error:s("error"),warning:s("warning"),info:s("info"),loading:s("loading")}}function E(){const{toasts:o}=j(),{closeButton:r,icons:n,loadingIcon:a}=i.useContext(h);return e(t,{children:o.map((t=>e(H,{toast:t,children:s($,{children:[t.icon??("loading"===t.type?a:void 0)??n?.[t.variant??t.type??""],e(I,{children:t.title}),t.description&&e(R,{children:t.description}),t.actionProps&&e(_,{}),r&&e(k,{})]})},t.id)))})}function K({children:t,className:s,style:i,containerClassName:o,containerStyle:r,...n}){return e(M,{...n,children:e(P,{children:e("div",{className:o,style:r,children:e(D,{className:s,style:i,children:t??e(E,{})})})})})}_.displayName="ToastAction",K.displayName="Toaster";const B={Provider:M,Portal:P,Viewport:D,Root:H,Content:$,Title:I,Description:R,Action:_,Close:k,useToastManager:j,Toaster:K};export{_ as Action,k as Close,$ as Content,R as Description,P as Portal,M as Provider,H as Root,I as Title,g as ToastManager,y as ToastState,K as Toaster,D as Viewport,w as createToastManager,B as default,x as promiseToast,A as toast,j as useToastManager};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
'use client';"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),r=require("react"),s=require("./useComponentClass-B0DF90tm.cjs"),a=require("./index-BwNOI8cB.cjs"),i=require("./index-436yWBk4.cjs");require("./ThemeContext-t7IX-w6i.cjs"),require("./index-WGIYLuwZ.cjs"),require("./index-CbKtybdA.cjs"),require("./mergeProps-DW5qFqqJ.cjs"),require("./index-DrMwbB8q.cjs"),require("./keyboard-BBlFllyi.cjs");const o="Toggle",d=r.forwardRef((({defaultPressed:r=!1,customRootClass:d="",children:t,className:l="",color:c="",pressed:n,onPressedChange:u,asChild:j=!1,...q},x)=>{const[C,m]=a.useControllableState(n,r,u),p=s.useComponentClass(d,o),f={};return c&&(f["data-color"]=c),e.jsx(i.TogglePrimitive,{ref:x,className:s.clsx(p,l),pressed:C,onPressedChange:m,"data-state":C?"on":"off","data-disabled":q.disabled?"":void 0,asChild:j,...q,...f,children:t})}));d.displayName=o,exports.default=d;
|
|
@@ -11,7 +11,7 @@ interface ToggleProps extends Omit<React.ComponentPropsWithoutRef<typeof ToggleP
|
|
|
11
11
|
/** Accent color for the toggle */
|
|
12
12
|
color?: string;
|
|
13
13
|
/** Callback fired when toggle state changes */
|
|
14
|
-
onPressedChange
|
|
14
|
+
onPressedChange?: (isPressed: boolean) => void;
|
|
15
15
|
}
|
|
16
16
|
/**
|
|
17
17
|
* Toggle component that can be used in either controlled or uncontrolled mode.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
'use client';import{jsx as s}from"react/jsx-runtime";import{forwardRef as e}from"react";import{
|
|
1
|
+
'use client';import{jsx as s}from"react/jsx-runtime";import{forwardRef as e}from"react";import{u as o,c as r}from"./useComponentClass-C0isGl1z.js";import{u as a}from"./index-wRElCyvx.js";import{T as t}from"./index-nYRBURkR.js";import"./ThemeContext-Sm-iNANd.js";import"./index-FITGoHty.js";import"./index-XF8itt-H.js";import"./mergeProps-0RucjqeH.js";import"./index-CXzybYmm.js";import"./keyboard-BKF7hXqL.js";const d="Toggle",i=e((({defaultPressed:e=!1,customRootClass:i="",children:m,className:n="",color:p="",pressed:l,onPressedChange:c,asChild:j=!1,...f},u)=>{const[x,C]=a(l,e,c),h=o(i,d),g={};return p&&(g["data-color"]=p),s(t,{ref:u,className:r(h,n),pressed:x,onPressedChange:C,"data-state":x?"on":"off","data-disabled":f.disabled?"":void 0,asChild:j,...f,...g,children:m})}));i.displayName=d;export{i as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
'use client';"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),r=require("react/jsx-runtime"),i=require("./useComponentClass-B0DF90tm.cjs"),s=require("./index-BwNOI8cB.cjs"),o=require("./index-BeakeOqt.cjs"),t=require("./index-CbKtybdA.cjs"),l=require("./index-436yWBk4.cjs"),a=require("./index-DrMwbB8q.cjs");require("./ThemeContext-t7IX-w6i.cjs"),require("./index-WGIYLuwZ.cjs"),require("./keyboard-BBlFllyi.cjs"),require("./mergeRefs-BUn-enYe.cjs"),require("./mergeProps-DW5qFqqJ.cjs");const n=e.createContext({type:"single",activeToggles:[],setActiveToggles:()=>{},rootClass:"",disabled:!1,orientation:"horizontal"}),d="ToggleGroup",c=e.forwardRef((({type:e="single",className:l="",loop:a=!0,orientation:c="horizontal",customRootClass:u="",value:g,defaultValue:p=[],onValueChange:v,color:m="",disabled:x=!1,dir:j="ltr",rovingFocus:f=!0,asChild:C=!1,children:h,...y},T)=>{const q=i.useComponentClass(u,d),[b,R]=s.useControllableState(g,p,v),G={activeToggles:b,setActiveToggles:R,type:e,rootClass:q,disabled:x,orientation:c},N={};return m&&(N["data-color"]=m),x&&(N["data-disabled"]=""),N["data-orientation"]=c,f?r.jsx(n.Provider,{value:G,children:r.jsx(o.RovingFocusGroupUtility.Root,{loop:a,orientation:c,dir:j,children:r.jsx(o.RovingFocusGroupUtility.Group,{...N,...y,children:r.jsx(t.Primitive.div,{ref:T,className:i.clsx(q,l),asChild:C,children:h})})})}):r.jsx(n.Provider,{value:G,children:r.jsx(t.Primitive.div,{ref:T,className:i.clsx(q,l),...N,dir:j,asChild:C,...y,children:h})})}));c.displayName=d;const u=e.forwardRef((({children:s,className:t="",value:d=null,disabled:c=!1,asChild:u=!1,iconOnly:g=!1,onClick:p,...v},m)=>{const{type:x,activeToggles:j,setActiveToggles:f,rootClass:C,disabled:h}=e.useContext(n),y=Array.isArray(j)?j:null==j||""===j?[]:[j],T=y.includes(d),q=c||h,b={},R={};return T?(b["aria-pressed"]="true",R["data-state"]="on"):(b["aria-pressed"]="false",R["data-state"]="off"),q&&(R["data-disabled"]=""),r.jsx(o.RovingFocusGroupUtility.Item,{children:r.jsx(l.TogglePrimitive,{ref:m,onClick:a.composeEventHandlers(p,(()=>{if(q)return;let e=y;if("single"===x)return T?void f([]):void f([d]);"multiple"===x&&(e=T?e.filter((e=>e!==d)):[...e,d]),f(e)})),"aria-selected":void 0,className:i.clsx(C&&`${C}-item`,t),disabled:q,asChild:u,...g?{"data-icon-only":""}:{},...b,...R,...v,children:s})})}));u.displayName="ToggleItem";const g=e.forwardRef(((e,r)=>(console.warn("Direct usage of ToggleGroup is not supported. Please use ToggleGroup.Root, ToggleGroup.Item, etc. instead."),null)));g.displayName="ToggleGroup",g.Root=c,g.Item=u,exports.Item=u,exports.Root=c,exports.default=g;
|
|
@@ -92,5 +92,5 @@ type ToggleGroupComponent = React.ForwardRefExoticComponent<ToggleGroupProps & R
|
|
|
92
92
|
};
|
|
93
93
|
declare const ToggleGroup: ToggleGroupComponent;
|
|
94
94
|
|
|
95
|
-
export { ToggleGroup as default };
|
|
95
|
+
export { ToggleItem as Item, ToggleGroupRoot as Root, ToggleGroup as default };
|
|
96
96
|
export type { ToggleGroupRootProps, ToggleItemProps };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
'use client';import e,{createContext as o,useContext as
|
|
1
|
+
'use client';import e,{createContext as o,useContext as a}from"react";import{jsx as s}from"react/jsx-runtime";import{u as r,c as i}from"./useComponentClass-C0isGl1z.js";import{u as t}from"./index-wRElCyvx.js";import{R as l}from"./index-C7dBo_Ry.js";import{P as d}from"./index-XF8itt-H.js";import{T as n}from"./index-nYRBURkR.js";import{c}from"./index-CXzybYmm.js";import"./ThemeContext-Sm-iNANd.js";import"./index-FITGoHty.js";import"./keyboard-BKF7hXqL.js";import"./mergeRefs-B8eZ_q-T.js";import"./mergeProps-0RucjqeH.js";const m=o({type:"single",activeToggles:[],setActiveToggles:()=>{},rootClass:"",disabled:!1,orientation:"horizontal"}),p="ToggleGroup",u=e.forwardRef((({type:e="single",className:o="",loop:a=!0,orientation:n="horizontal",customRootClass:c="",value:u,defaultValue:g=[],onValueChange:f,color:h="",disabled:v=!1,dir:C="ltr",rovingFocus:T=!0,asChild:j=!1,children:y,...b},R)=>{const x=r(c,p),[N,G]=t(u,g,f),A={activeToggles:N,setActiveToggles:G,type:e,rootClass:x,disabled:v,orientation:n},I={};return h&&(I["data-color"]=h),v&&(I["data-disabled"]=""),I["data-orientation"]=n,s(m.Provider,T?{value:A,children:s(l.Root,{loop:a,orientation:n,dir:C,children:s(l.Group,{...I,...b,children:s(d.div,{ref:R,className:i(x,o),asChild:j,children:y})})})}:{value:A,children:s(d.div,{ref:R,className:i(x,o),...I,dir:C,asChild:j,...b,children:y})})}));u.displayName=p;const g=e.forwardRef((({children:e,className:o="",value:r=null,disabled:t=!1,asChild:d=!1,iconOnly:p=!1,onClick:u,...g},f)=>{const{type:h,activeToggles:v,setActiveToggles:C,rootClass:T,disabled:j}=a(m),y=Array.isArray(v)?v:null==v||""===v?[]:[v],b=y.includes(r),R=t||j,x={},N={};return b?(x["aria-pressed"]="true",N["data-state"]="on"):(x["aria-pressed"]="false",N["data-state"]="off"),R&&(N["data-disabled"]=""),s(l.Item,{children:s(n,{ref:f,onClick:c(u,(()=>{if(R)return;let e=y;if("single"===h)return b?void C([]):void C([r]);"multiple"===h&&(e=b?e.filter((e=>e!==r)):[...e,r]),C(e)})),"aria-selected":void 0,className:i(T&&`${T}-item`,o),disabled:R,asChild:d,...p?{"data-icon-only":""}:{},...x,...N,...g,children:e})})}));g.displayName="ToggleItem";const f=e.forwardRef(((e,o)=>(console.warn("Direct usage of ToggleGroup is not supported. Please use ToggleGroup.Root, ToggleGroup.Item, etc. instead."),null)));f.displayName="ToggleGroup",f.Root=u,f.Item=g;export{g as Item,u as Root,f as default};
|