@adamosuiteservices/ui 2.20.1 → 2.20.3
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/accordion-rounded.cjs +1 -1
- package/dist/accordion-rounded.js +1 -1
- package/dist/accordion.cjs +1 -1
- package/dist/accordion.js +1 -1
- package/dist/checkbox-BHStM029.cjs +24 -0
- package/dist/{checkbox-DPlUjwLi.js → checkbox-DX8b_6kG.js} +4 -3
- package/dist/checkbox.cjs +1 -1
- package/dist/checkbox.js +1 -1
- package/dist/collapsible.cjs +1 -1
- package/dist/collapsible.js +1 -1
- package/dist/{combobox-DylTjGrw.cjs → combobox-BURhN76t.cjs} +1 -1
- package/dist/{combobox-DG9u4g84.js → combobox-BrHVXnf2.js} +3 -3
- package/dist/combobox.cjs +1 -1
- package/dist/combobox.js +1 -1
- package/dist/context-menu.cjs +8 -8
- package/dist/context-menu.js +56 -55
- package/dist/date-picker-selector.cjs +1 -1
- package/dist/date-picker-selector.js +2 -2
- package/dist/dialog.cjs +3 -3
- package/dist/dialog.js +3 -3
- package/dist/dropdown-menu.cjs +9 -9
- package/dist/dropdown-menu.js +33 -32
- package/dist/full-screen-loader.cjs +4 -4
- package/dist/full-screen-loader.js +27 -24
- package/dist/hover-card.cjs +2 -2
- package/dist/hover-card.js +12 -11
- package/dist/index-1Io41IIt.cjs +1 -0
- package/dist/index-437EL2iq.js +52 -0
- package/dist/index-B695uy69.js +9 -0
- package/dist/index-BE-HFcQ8.cjs +1 -0
- package/dist/{index-BPOsnOxS.js → index-BM2A-WRV.js} +1 -1
- package/dist/index-BOnhen57.cjs +1 -0
- package/dist/{index-D_hmhfRp.js → index-BPnOqaWN.js} +9 -8
- package/dist/index-BqyOu62e.cjs +1 -0
- package/dist/index-C8aODXfJ.cjs +1 -0
- package/dist/index-CFB4VzSW.js +542 -0
- package/dist/index-CgAmFB15.cjs +1 -0
- package/dist/{index-B76LQ4E5.js → index-CinpJ0oP.js} +24 -23
- package/dist/{index-wujanfX3.js → index-Cpaqurwq.js} +191 -190
- package/dist/{index-B6gxHWt9.js → index-CwrPuu3I.js} +15 -14
- package/dist/index-D3xJARPa.cjs +1 -0
- package/dist/index-DSj2iNTW.js +137 -0
- package/dist/{index-Ce7JfyIP.js → index-DWrql5dh.js} +11 -10
- package/dist/{index-BIydBVaH.js → index-E5ek046p.js} +78 -76
- package/dist/{index-BaCYnOIG.cjs → index-L8BhH23Y.cjs} +1 -1
- package/dist/index-ZzRl2Lfu.cjs +5 -0
- package/dist/index-_TfuLupy.cjs +41 -0
- package/dist/index-cBJ7G45l.cjs +1 -0
- package/dist/popover-Dod16CM1.cjs +15 -0
- package/dist/{popover-DcQ18EVl.js → popover-tP2NoMYx.js} +84 -82
- package/dist/popover.cjs +1 -1
- package/dist/popover.js +1 -1
- package/dist/radio-group.cjs +3 -3
- package/dist/radio-group.js +10 -9
- package/dist/select.cjs +8 -8
- package/dist/select.js +21 -19
- package/dist/{sheet-Cp6JGhWC.cjs → sheet-DR1nAs9U.cjs} +1 -1
- package/dist/{sheet-hWerE8S1.js → sheet-UNggtdu3.js} +1 -1
- package/dist/sheet.cjs +1 -1
- package/dist/sheet.js +1 -1
- package/dist/sidebar.cjs +1 -1
- package/dist/sidebar.js +1 -1
- package/dist/slider.cjs +5 -5
- package/dist/slider.js +7 -6
- package/dist/styles.css +1 -1
- package/dist/switch.cjs +3 -3
- package/dist/switch.js +8 -7
- package/dist/tabs-underline.cjs +1 -1
- package/dist/tabs-underline.js +1 -1
- package/dist/tabs.cjs +1 -1
- package/dist/tabs.js +1 -1
- package/dist/toggle.cjs +2 -2
- package/dist/toggle.js +6 -5
- package/dist/tooltip.cjs +3 -3
- package/dist/tooltip.js +23 -22
- package/docs/components/layout/full-screen-loader.md +19 -1
- package/docs/components/ui/dialog.md +28 -3
- package/package.json +4 -2
- package/dist/checkbox-CIzBdqN7.cjs +0 -24
- package/dist/index-8iwAKZIp.cjs +0 -1
- package/dist/index-BWaO7kQK.cjs +0 -1
- package/dist/index-BnkHpTJs.cjs +0 -1
- package/dist/index-C0UREtMP.js +0 -59
- package/dist/index-C2P2kXMc.cjs +0 -41
- package/dist/index-CC6DBo2g.cjs +0 -1
- package/dist/index-CRWn-2fF.cjs +0 -1
- package/dist/index-Ca99LLZF.cjs +0 -5
- package/dist/index-e0gNU5O1.js +0 -675
- package/dist/index-i5lLg35-.cjs +0 -1
- package/dist/popover-cGp_rNLg.cjs +0 -15
package/dist/switch.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const l=require("./jsx-runtime-BB_1_6y_.cjs"),
|
|
1
|
+
"use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const l=require("./jsx-runtime-BB_1_6y_.cjs"),O=require("react"),T=require("./index-BqyOu62e.cjs"),R=require("./index-_XxjJPRD.cjs"),M=require("./index-cwZN7ZY3.cjs"),B=require("./index-C8aODXfJ.cjs"),D=require("./index-DYxWvftI.cjs"),I=require("./index-bSPhqlcX.cjs"),j=require("./index-CocSS1YK.cjs"),k=require("./index-DoxiiusW.cjs");function $(t){const s=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(t){for(const e in t)if(e!=="default"){const r=Object.getOwnPropertyDescriptor(t,e);Object.defineProperty(s,e,r.get?r:{enumerable:!0,get:()=>t[e]})}}return s.default=t,Object.freeze(s)}const n=$(O);var x="Switch",[F]=M.createContextScope(x),[z,H]=F(x),C=n.forwardRef((t,s)=>{const{__scopeSwitch:e,name:r,checked:a,defaultChecked:o,required:u,disabled:i,value:c="on",onCheckedChange:d,form:m,...v}=t,[p,f]=n.useState(null),w=R.useComposedRefs(s,h=>f(h)),S=n.useRef(!1),g=p?m||!!p.closest("form"):!0,[b,q]=B.useControllableState({prop:a,defaultProp:o??!1,onChange:d,caller:x});return l.jsxRuntimeExports.jsxs(z,{scope:e,checked:b,disabled:i,children:[l.jsxRuntimeExports.jsx(j.Primitive.button,{type:"button",role:"switch","aria-checked":b,"aria-required":u,"data-state":_(b),"data-disabled":i?"":void 0,disabled:i,value:c,...v,ref:w,onClick:T.composeEventHandlers(t.onClick,h=>{q(N=>!N),g&&(S.current=h.isPropagationStopped(),S.current||h.stopPropagation())})}),g&&l.jsxRuntimeExports.jsx(P,{control:p,bubbles:!S.current,name:r,value:c,checked:b,required:u,disabled:i,form:m,style:{transform:"translateX(-100%)"}})]})});C.displayName=x;var y="SwitchThumb",E=n.forwardRef((t,s)=>{const{__scopeSwitch:e,...r}=t,a=H(y,e);return l.jsxRuntimeExports.jsx(j.Primitive.span,{"data-state":_(a.checked),"data-disabled":a.disabled?"":void 0,...r,ref:s})});E.displayName=y;var A="SwitchBubbleInput",P=n.forwardRef(({__scopeSwitch:t,control:s,checked:e,bubbles:r=!0,...a},o)=>{const u=n.useRef(null),i=R.useComposedRefs(u,o),c=D.usePrevious(e),d=I.useSize(s);return n.useEffect(()=>{const m=u.current;if(!m)return;const v=window.HTMLInputElement.prototype,f=Object.getOwnPropertyDescriptor(v,"checked").set;if(c!==e&&f){const w=new Event("click",{bubbles:r});f.call(m,e),m.dispatchEvent(w)}},[c,e,r]),l.jsxRuntimeExports.jsx("input",{type:"checkbox","aria-hidden":!0,defaultChecked:e,...a,tabIndex:-1,ref:i,style:{...a.style,...d,position:"absolute",pointerEvents:"none",opacity:0,margin:0}})});P.displayName=A;function _(t){return t?"checked":"unchecked"}var U=C,L=E;function W({className:t,disabled:s,...e}){const[r,a]=n.useState(!1),o=n.useRef(null);n.useEffect(()=>{const i=()=>{if(o.current){const d=o.current.closest("fieldset");a(d?.disabled??!1)}};i();const c=new MutationObserver(i);if(o.current){const d=o.current.closest("fieldset");d&&c.observe(d,{attributes:!0,attributeFilter:["disabled"]})}return()=>c.disconnect()},[]);const u=s||r;return l.jsxRuntimeExports.jsx(U,{ref:o,"data-slot":"switch",disabled:u,className:k.cn(`
|
|
2
2
|
adm:peer adm:inline-flex adm:h-5 adm:w-8 adm:shrink-0 adm:items-center
|
|
3
3
|
adm:rounded-full adm:border adm:border-transparent adm:shadow-xs
|
|
4
4
|
adm:transition-all adm:outline-none
|
|
@@ -8,9 +8,9 @@
|
|
|
8
8
|
adm:data-[state=checked]:bg-primary
|
|
9
9
|
adm:data-[state=unchecked]:bg-input
|
|
10
10
|
adm:dark:data-[state=unchecked]:bg-input/80
|
|
11
|
-
`,t),...e,children:l.jsxRuntimeExports.jsx(
|
|
11
|
+
`,t),...e,children:l.jsxRuntimeExports.jsx(L,{"data-slot":"switch-thumb",className:k.cn(`
|
|
12
12
|
adm:pointer-events-none adm:block adm:size-4 adm:rounded-full
|
|
13
13
|
adm:bg-neutrals-0 adm:ring-0 adm:transition-transform
|
|
14
14
|
adm:data-[state=checked]:translate-x-[calc(100%-2px)]
|
|
15
15
|
adm:data-[state=unchecked]:translate-x-0
|
|
16
|
-
`)})})}exports.Switch=
|
|
16
|
+
`)})})}exports.Switch=W;
|
package/dist/switch.js
CHANGED
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { j as u } from "./jsx-runtime-BzflLqGi.js";
|
|
3
3
|
import * as t from "react";
|
|
4
|
-
import {
|
|
4
|
+
import { c as I } from "./index-B695uy69.js";
|
|
5
5
|
import { u as g } from "./index-DLcqcWxM.js";
|
|
6
|
-
import { c as
|
|
6
|
+
import { c as T } from "./index-FxyLF8MY.js";
|
|
7
|
+
import { u as M } from "./index-437EL2iq.js";
|
|
7
8
|
import { u as D } from "./index-BZPx6jYI.js";
|
|
8
9
|
import { u as F } from "./index-BGQepRFJ.js";
|
|
9
10
|
import { P } from "./index-BMWt1NBG.js";
|
|
10
11
|
import { c as C } from "./index-CRiPKpXj.js";
|
|
11
|
-
var v = "Switch", [H] =
|
|
12
|
+
var v = "Switch", [H] = T(v), [z, A] = H(v), R = t.forwardRef(
|
|
12
13
|
(s, d) => {
|
|
13
14
|
const {
|
|
14
15
|
__scopeSwitch: e,
|
|
@@ -21,7 +22,7 @@ var v = "Switch", [H] = M(v), [z, A] = H(v), R = t.forwardRef(
|
|
|
21
22
|
onCheckedChange: c,
|
|
22
23
|
form: m,
|
|
23
24
|
...w
|
|
24
|
-
} = s, [f, p] = t.useState(null), k = g(d, (b) => p(b)), S = t.useRef(!1), x = f ? m || !!f.closest("form") : !0, [h, N] =
|
|
25
|
+
} = s, [f, p] = t.useState(null), k = g(d, (b) => p(b)), S = t.useRef(!1), x = f ? m || !!f.closest("form") : !0, [h, N] = M({
|
|
25
26
|
prop: a,
|
|
26
27
|
defaultProp: r ?? !1,
|
|
27
28
|
onChange: c,
|
|
@@ -41,7 +42,7 @@ var v = "Switch", [H] = M(v), [z, A] = H(v), R = t.forwardRef(
|
|
|
41
42
|
value: i,
|
|
42
43
|
...w,
|
|
43
44
|
ref: k,
|
|
44
|
-
onClick:
|
|
45
|
+
onClick: I(s.onClick, (b) => {
|
|
45
46
|
N((B) => !B), x && (S.current = b.isPropagationStopped(), S.current || b.stopPropagation());
|
|
46
47
|
})
|
|
47
48
|
}
|
|
@@ -125,7 +126,7 @@ function _(s) {
|
|
|
125
126
|
return s ? "checked" : "unchecked";
|
|
126
127
|
}
|
|
127
128
|
var U = R, q = E;
|
|
128
|
-
function
|
|
129
|
+
function Y({
|
|
129
130
|
className: s,
|
|
130
131
|
disabled: d,
|
|
131
132
|
...e
|
|
@@ -186,5 +187,5 @@ function V({
|
|
|
186
187
|
);
|
|
187
188
|
}
|
|
188
189
|
export {
|
|
189
|
-
|
|
190
|
+
Y as Switch
|
|
190
191
|
};
|
package/dist/tabs-underline.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("./jsx-runtime-BB_1_6y_.cjs"),s=require("./index-
|
|
1
|
+
"use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("./jsx-runtime-BB_1_6y_.cjs"),s=require("./index-BOnhen57.cjs"),n=require("./index-DoxiiusW.cjs");require("react");function i({className:t,...e}){return a.jsxRuntimeExports.jsx(s.Root2,{"data-slot":"tabs",className:n.cn("adm:flex adm:flex-col adm:gap-6",t),...e})}function d({className:t,...e}){return a.jsxRuntimeExports.jsx(s.List,{"data-slot":"tabs-list",className:n.cn(`
|
|
2
2
|
adm:inline-flex adm:h-12 adm:w-fit adm:items-center adm:justify-center
|
|
3
3
|
adm:p-px adm:text-muted-foreground
|
|
4
4
|
`,t),...e})}function r({className:t,...e}){return a.jsxRuntimeExports.jsx(s.Trigger,{"data-slot":"tabs-trigger",className:n.cn(`
|
package/dist/tabs-underline.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { j as e } from "./jsx-runtime-BzflLqGi.js";
|
|
3
|
-
import { R as i, L as n, T as d, C as m } from "./index-
|
|
3
|
+
import { R as i, L as n, T as d, C as m } from "./index-CinpJ0oP.js";
|
|
4
4
|
import { c as s } from "./index-CRiPKpXj.js";
|
|
5
5
|
import "react";
|
|
6
6
|
function f({
|
package/dist/tabs.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./jsx-runtime-BB_1_6y_.cjs"),s=require("./index-
|
|
1
|
+
"use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./jsx-runtime-BB_1_6y_.cjs"),s=require("./index-BOnhen57.cjs"),n=require("./index-DoxiiusW.cjs");require("react");function d({className:t,...a}){return e.jsxRuntimeExports.jsx(s.Root2,{"data-slot":"tabs",className:n.cn("adm:flex adm:flex-col adm:gap-6",t),...a})}function i({className:t,...a}){return e.jsxRuntimeExports.jsx(s.List,{"data-slot":"tabs-list",className:n.cn(`
|
|
2
2
|
adm:inline-flex adm:h-12 adm:w-fit adm:items-center adm:justify-center
|
|
3
3
|
adm:gap-1 adm:rounded-2xl adm:bg-accent adm:p-1
|
|
4
4
|
adm:text-muted-foreground
|
package/dist/tabs.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { j as e } from "./jsx-runtime-BzflLqGi.js";
|
|
3
|
-
import { R as d, L as n, T as m, C as o } from "./index-
|
|
3
|
+
import { R as d, L as n, T as m, C as o } from "./index-CinpJ0oP.js";
|
|
4
4
|
import { c as s } from "./index-CRiPKpXj.js";
|
|
5
5
|
import "react";
|
|
6
6
|
function u({
|
package/dist/toggle.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const
|
|
1
|
+
"use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("./jsx-runtime-BB_1_6y_.cjs"),u=require("react"),g=require("./index-BqyOu62e.cjs"),b=require("./index-C8aODXfJ.cjs"),f=require("./index-CocSS1YK.cjs"),v=require("./index-DoxiiusW.cjs"),p=require("./index-BTzZJcis.cjs");function x(e){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const a in e)if(a!=="default"){const n=Object.getOwnPropertyDescriptor(e,a);Object.defineProperty(t,a,n.get?n:{enumerable:!0,get:()=>e[a]})}}return t.default=e,Object.freeze(t)}const h=x(u);var s="Toggle",i=h.forwardRef((e,t)=>{const{pressed:a,defaultPressed:n,onPressedChange:l,...m}=e,[d,c]=b.useControllableState({prop:a,onChange:l,defaultProp:n??!1,caller:s});return r.jsxRuntimeExports.jsx(f.Primitive.button,{type:"button","aria-pressed":d,"data-state":d?"on":"off","data-disabled":e.disabled?"":void 0,...m,ref:t,onClick:g.composeEventHandlers(e.onClick,()=>{e.disabled||c(!d)})})});i.displayName=s;var j=i;const o=p.cva(`
|
|
2
2
|
adm:inline-flex adm:items-center adm:justify-center adm:gap-2 adm:rounded-md
|
|
3
3
|
adm:text-sm adm:font-medium adm:whitespace-nowrap
|
|
4
4
|
adm:transition-[color,box-shadow] adm:outline-none
|
|
@@ -17,4 +17,4 @@
|
|
|
17
17
|
`,{variants:{variant:{default:"adm:bg-transparent",outline:`
|
|
18
18
|
adm:border adm:border-input adm:bg-transparent adm:shadow-xs
|
|
19
19
|
adm:hover:bg-subtle
|
|
20
|
-
`},size:{default:"adm:h-9 adm:min-w-9 adm:px-2",sm:"adm:h-8 adm:min-w-8 adm:px-1.5",lg:"adm:h-10 adm:min-w-10 adm:px-2.5"}},defaultVariants:{variant:"default",size:"default"}});function
|
|
20
|
+
`},size:{default:"adm:h-9 adm:min-w-9 adm:px-2",sm:"adm:h-8 adm:min-w-8 adm:px-1.5",lg:"adm:h-10 adm:min-w-10 adm:px-2.5"}},defaultVariants:{variant:"default",size:"default"}});function P({className:e,variant:t,size:a,...n}){return r.jsxRuntimeExports.jsx(j,{"data-slot":"toggle",className:v.cn(o({variant:t,size:a,className:e})),...n})}exports.Toggle=P;exports.toggleVariants=o;
|
package/dist/toggle.js
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { j as o } from "./jsx-runtime-BzflLqGi.js";
|
|
3
3
|
import * as c from "react";
|
|
4
|
-
import {
|
|
4
|
+
import { c as u } from "./index-B695uy69.js";
|
|
5
|
+
import { u as g } from "./index-437EL2iq.js";
|
|
5
6
|
import { P as f } from "./index-BMWt1NBG.js";
|
|
6
7
|
import { c as p } from "./index-CRiPKpXj.js";
|
|
7
8
|
import { c as v } from "./index-BqtVL8d-.js";
|
|
8
9
|
var r = "Toggle", n = c.forwardRef((a, e) => {
|
|
9
|
-
const { pressed: t, defaultPressed: d, onPressedChange: i, ...m } = a, [s, l] =
|
|
10
|
+
const { pressed: t, defaultPressed: d, onPressedChange: i, ...m } = a, [s, l] = g({
|
|
10
11
|
prop: t,
|
|
11
12
|
onChange: i,
|
|
12
13
|
defaultProp: d ?? !1,
|
|
@@ -21,7 +22,7 @@ var r = "Toggle", n = c.forwardRef((a, e) => {
|
|
|
21
22
|
"data-disabled": a.disabled ? "" : void 0,
|
|
22
23
|
...m,
|
|
23
24
|
ref: e,
|
|
24
|
-
onClick:
|
|
25
|
+
onClick: u(a.onClick, () => {
|
|
25
26
|
a.disabled || l(!s);
|
|
26
27
|
})
|
|
27
28
|
}
|
|
@@ -68,7 +69,7 @@ const x = v(
|
|
|
68
69
|
}
|
|
69
70
|
}
|
|
70
71
|
);
|
|
71
|
-
function
|
|
72
|
+
function C({
|
|
72
73
|
className: a,
|
|
73
74
|
variant: e,
|
|
74
75
|
size: t,
|
|
@@ -84,6 +85,6 @@ function k({
|
|
|
84
85
|
);
|
|
85
86
|
}
|
|
86
87
|
export {
|
|
87
|
-
|
|
88
|
+
C as Toggle,
|
|
88
89
|
x as toggleVariants
|
|
89
90
|
};
|
package/dist/tooltip.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("./jsx-runtime-BB_1_6y_.cjs"),K=require("react"),E=require("./index-
|
|
1
|
+
"use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("./jsx-runtime-BB_1_6y_.cjs"),K=require("react"),E=require("./index-BqyOu62e.cjs"),M=require("./index-_XxjJPRD.cjs"),W=require("./index-cwZN7ZY3.cjs"),J=require("./index-L8BhH23Y.cjs"),Q=require("./index-WIv2ndLu.cjs"),R=require("./index-Cqf5g2f_.cjs"),Z=require("./index-CBuLZ39k.cjs"),N=require("./index-DE3jjVoC.cjs"),ee=require("./index-CocSS1YK.cjs"),te=require("./index-C8aODXfJ.cjs"),oe=require("./index-BDs8lUfq.cjs"),re=require("./index-DoxiiusW.cjs");function ne(e){const o=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const t in e)if(t!=="default"){const r=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(o,t,r.get?r:{enumerable:!0,get:()=>e[t]})}}return o.default=e,Object.freeze(o)}const s=ne(K);var se=Symbol("radix.slottable");function ie(e){const o=({children:t})=>c.jsxRuntimeExports.jsx(c.jsxRuntimeExports.Fragment,{children:t});return o.displayName=`${e}.Slottable`,o.__radixId=se,o}var[O]=W.createContextScope("Tooltip",[R.createPopperScope]),D=R.createPopperScope(),q="TooltipProvider",ae=700,L="tooltip.open",[le,k]=O(q),$=e=>{const{__scopeTooltip:o,delayDuration:t=ae,skipDelayDuration:r=300,disableHoverableContent:n=!1,children:l}=e,a=s.useRef(!0),f=s.useRef(!1),i=s.useRef(0);return s.useEffect(()=>{const p=i.current;return()=>window.clearTimeout(p)},[]),c.jsxRuntimeExports.jsx(le,{scope:o,isOpenDelayedRef:a,delayDuration:t,onOpen:s.useCallback(()=>{window.clearTimeout(i.current),a.current=!1},[]),onClose:s.useCallback(()=>{window.clearTimeout(i.current),i.current=window.setTimeout(()=>a.current=!0,r)},[r]),isPointerInTransitRef:f,onPointerInTransitChange:s.useCallback(p=>{f.current=p},[]),disableHoverableContent:n,children:l})};$.displayName=q;var P="Tooltip",[ce,_]=O(P),F=e=>{const{__scopeTooltip:o,children:t,open:r,defaultOpen:n,onOpenChange:l,disableHoverableContent:a,delayDuration:f}=e,i=k(P,e.__scopeTooltip),p=D(o),[u,x]=s.useState(null),m=Q.useId(),d=s.useRef(0),v=a??i.disableHoverableContent,T=f??i.delayDuration,h=s.useRef(!1),[y,g]=te.useControllableState({prop:r,defaultProp:n??!1,onChange:H=>{H?(i.onOpen(),document.dispatchEvent(new CustomEvent(L))):i.onClose(),l?.(H)},caller:P}),b=s.useMemo(()=>y?h.current?"delayed-open":"instant-open":"closed",[y]),j=s.useCallback(()=>{window.clearTimeout(d.current),d.current=0,h.current=!1,g(!0)},[g]),w=s.useCallback(()=>{window.clearTimeout(d.current),d.current=0,g(!1)},[g]),I=s.useCallback(()=>{window.clearTimeout(d.current),d.current=window.setTimeout(()=>{h.current=!0,g(!0),d.current=0},T)},[T,g]);return s.useEffect(()=>()=>{d.current&&(window.clearTimeout(d.current),d.current=0)},[]),c.jsxRuntimeExports.jsx(R.Root2,{...p,children:c.jsxRuntimeExports.jsx(ce,{scope:o,contentId:m,open:y,stateAttribute:b,trigger:u,onTriggerChange:x,onTriggerEnter:s.useCallback(()=>{i.isOpenDelayedRef.current?I():j()},[i.isOpenDelayedRef,I,j]),onTriggerLeave:s.useCallback(()=>{v?w():(window.clearTimeout(d.current),d.current=0)},[w,v]),onOpen:j,onClose:w,disableHoverableContent:v,children:t})})};F.displayName=P;var A="TooltipTrigger",G=s.forwardRef((e,o)=>{const{__scopeTooltip:t,...r}=e,n=_(A,t),l=k(A,t),a=D(t),f=s.useRef(null),i=M.useComposedRefs(o,f,n.onTriggerChange),p=s.useRef(!1),u=s.useRef(!1),x=s.useCallback(()=>p.current=!1,[]);return s.useEffect(()=>()=>document.removeEventListener("pointerup",x),[x]),c.jsxRuntimeExports.jsx(R.Anchor,{asChild:!0,...a,children:c.jsxRuntimeExports.jsx(ee.Primitive.button,{"aria-describedby":n.open?n.contentId:void 0,"data-state":n.stateAttribute,...r,ref:i,onPointerMove:E.composeEventHandlers(e.onPointerMove,m=>{m.pointerType!=="touch"&&!u.current&&!l.isPointerInTransitRef.current&&(n.onTriggerEnter(),u.current=!0)}),onPointerLeave:E.composeEventHandlers(e.onPointerLeave,()=>{n.onTriggerLeave(),u.current=!1}),onPointerDown:E.composeEventHandlers(e.onPointerDown,()=>{n.open&&n.onClose(),p.current=!0,document.addEventListener("pointerup",x,{once:!0})}),onFocus:E.composeEventHandlers(e.onFocus,()=>{p.current||n.onOpen()}),onBlur:E.composeEventHandlers(e.onBlur,n.onClose),onClick:E.composeEventHandlers(e.onClick,n.onClose)})})});G.displayName=A;var S="TooltipPortal",[ue,de]=O(S,{forceMount:void 0}),z=e=>{const{__scopeTooltip:o,forceMount:t,children:r,container:n}=e,l=_(S,o);return c.jsxRuntimeExports.jsx(ue,{scope:o,forceMount:t,children:c.jsxRuntimeExports.jsx(N.Presence,{present:t||l.open,children:c.jsxRuntimeExports.jsx(Z.Portal,{asChild:!0,container:n,children:r})})})};z.displayName=S;var C="TooltipContent",B=s.forwardRef((e,o)=>{const t=de(C,e.__scopeTooltip),{forceMount:r=t.forceMount,side:n="top",...l}=e,a=_(C,e.__scopeTooltip);return c.jsxRuntimeExports.jsx(N.Presence,{present:r||a.open,children:a.disableHoverableContent?c.jsxRuntimeExports.jsx(U,{side:n,...l,ref:o}):c.jsxRuntimeExports.jsx(pe,{side:n,...l,ref:o})})}),pe=s.forwardRef((e,o)=>{const t=_(C,e.__scopeTooltip),r=k(C,e.__scopeTooltip),n=s.useRef(null),l=M.useComposedRefs(o,n),[a,f]=s.useState(null),{trigger:i,onClose:p}=t,u=n.current,{onPointerInTransitChange:x}=r,m=s.useCallback(()=>{f(null),x(!1)},[x]),d=s.useCallback((v,T)=>{const h=v.currentTarget,y={x:v.clientX,y:v.clientY},g=ve(y,h.getBoundingClientRect()),b=he(y,g),j=Te(T.getBoundingClientRect()),w=ye([...b,...j]);f(w),x(!0)},[x]);return s.useEffect(()=>()=>m(),[m]),s.useEffect(()=>{if(i&&u){const v=h=>d(h,u),T=h=>d(h,i);return i.addEventListener("pointerleave",v),u.addEventListener("pointerleave",T),()=>{i.removeEventListener("pointerleave",v),u.removeEventListener("pointerleave",T)}}},[i,u,d,m]),s.useEffect(()=>{if(a){const v=T=>{const h=T.target,y={x:T.clientX,y:T.clientY},g=i?.contains(h)||u?.contains(h),b=!ge(y,a);g?m():b&&(m(),p())};return document.addEventListener("pointermove",v),()=>document.removeEventListener("pointermove",v)}},[i,u,a,p,m]),c.jsxRuntimeExports.jsx(U,{...e,ref:l})}),[xe,fe]=O(P,{isInside:!1}),me=ie("TooltipContent"),U=s.forwardRef((e,o)=>{const{__scopeTooltip:t,children:r,"aria-label":n,onEscapeKeyDown:l,onPointerDownOutside:a,...f}=e,i=_(C,t),p=D(t),{onClose:u}=i;return s.useEffect(()=>(document.addEventListener(L,u),()=>document.removeEventListener(L,u)),[u]),s.useEffect(()=>{if(i.trigger){const x=m=>{m.target?.contains(i.trigger)&&u()};return window.addEventListener("scroll",x,{capture:!0}),()=>window.removeEventListener("scroll",x,{capture:!0})}},[i.trigger,u]),c.jsxRuntimeExports.jsx(J.DismissableLayer,{asChild:!0,disableOutsidePointerEvents:!1,onEscapeKeyDown:l,onPointerDownOutside:a,onFocusOutside:x=>x.preventDefault(),onDismiss:u,children:c.jsxRuntimeExports.jsxs(R.Content,{"data-state":i.stateAttribute,...p,...f,ref:o,style:{...f.style,"--radix-tooltip-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-tooltip-content-available-width":"var(--radix-popper-available-width)","--radix-tooltip-content-available-height":"var(--radix-popper-available-height)","--radix-tooltip-trigger-width":"var(--radix-popper-anchor-width)","--radix-tooltip-trigger-height":"var(--radix-popper-anchor-height)"},children:[c.jsxRuntimeExports.jsx(me,{children:r}),c.jsxRuntimeExports.jsx(xe,{scope:t,isInside:!0,children:c.jsxRuntimeExports.jsx(oe.Root,{id:i.contentId,role:"tooltip",children:n||r})})]})})});B.displayName=C;var V="TooltipArrow",Y=s.forwardRef((e,o)=>{const{__scopeTooltip:t,...r}=e,n=D(t);return fe(V,t).isInside?null:c.jsxRuntimeExports.jsx(R.Arrow,{...n,...r,ref:o})});Y.displayName=V;function ve(e,o){const t=Math.abs(o.top-e.y),r=Math.abs(o.bottom-e.y),n=Math.abs(o.right-e.x),l=Math.abs(o.left-e.x);switch(Math.min(t,r,n,l)){case l:return"left";case n:return"right";case t:return"top";case r:return"bottom";default:throw new Error("unreachable")}}function he(e,o,t=5){const r=[];switch(o){case"top":r.push({x:e.x-t,y:e.y+t},{x:e.x+t,y:e.y+t});break;case"bottom":r.push({x:e.x-t,y:e.y-t},{x:e.x+t,y:e.y-t});break;case"left":r.push({x:e.x+t,y:e.y-t},{x:e.x+t,y:e.y+t});break;case"right":r.push({x:e.x-t,y:e.y-t},{x:e.x-t,y:e.y+t});break}return r}function Te(e){const{top:o,right:t,bottom:r,left:n}=e;return[{x:n,y:o},{x:t,y:o},{x:t,y:r},{x:n,y:r}]}function ge(e,o){const{x:t,y:r}=e;let n=!1;for(let l=0,a=o.length-1;l<o.length;a=l++){const f=o[l],i=o[a],p=f.x,u=f.y,x=i.x,m=i.y;u>r!=m>r&&t<(x-p)*(r-u)/(m-u)+p&&(n=!n)}return n}function ye(e){const o=e.slice();return o.sort((t,r)=>t.x<r.x?-1:t.x>r.x?1:t.y<r.y?-1:t.y>r.y?1:0),Ee(o)}function Ee(e){if(e.length<=1)return e.slice();const o=[];for(let r=0;r<e.length;r++){const n=e[r];for(;o.length>=2;){const l=o[o.length-1],a=o[o.length-2];if((l.x-a.x)*(n.y-a.y)>=(l.y-a.y)*(n.x-a.x))o.pop();else break}o.push(n)}o.pop();const t=[];for(let r=e.length-1;r>=0;r--){const n=e[r];for(;t.length>=2;){const l=t[t.length-1],a=t[t.length-2];if((l.x-a.x)*(n.y-a.y)>=(l.y-a.y)*(n.x-a.x))t.pop();else break}t.push(n)}return t.pop(),o.length===1&&t.length===1&&o[0].x===t[0].x&&o[0].y===t[0].y?o:o.concat(t)}var Ce=$,Re=F,be=G,je=z,we=B,Pe=Y;function X({delayDuration:e=0,...o}){return c.jsxRuntimeExports.jsx(Ce,{"data-slot":"tooltip-provider",delayDuration:e,...o})}function _e({...e}){return c.jsxRuntimeExports.jsx(X,{children:c.jsxRuntimeExports.jsx(Re,{"data-slot":"tooltip",...e})})}function Oe({...e}){return c.jsxRuntimeExports.jsx(be,{"data-slot":"tooltip-trigger",...e})}function De({className:e,sideOffset:o=0,children:t,...r}){return c.jsxRuntimeExports.jsx(je,{children:c.jsxRuntimeExports.jsxs(we,{"data-slot":"tooltip-content",sideOffset:o,className:re.cn(`
|
|
2
2
|
adm:z-50 adm:w-fit
|
|
3
3
|
adm:origin-(--radix-tooltip-content-transform-origin) adm:animate-in
|
|
4
4
|
adm:rounded-md adm:bg-neutrals-900 adm:px-3 adm:py-1.5 adm:text-xs
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
adm:data-[state=closed]:animate-out
|
|
11
11
|
adm:data-[state=closed]:fade-out-0
|
|
12
12
|
adm:data-[state=closed]:zoom-out-95
|
|
13
|
-
`,e),...r,children:[t,c.jsxRuntimeExports.jsx(
|
|
13
|
+
`,e),...r,children:[t,c.jsxRuntimeExports.jsx(Pe,{className:`
|
|
14
14
|
adm:z-50 adm:size-2.5 adm:translate-y-[calc(-50%-2px)] adm:rotate-45
|
|
15
15
|
adm:rounded-[2px] adm:bg-neutrals-900 adm:fill-neutrals-900
|
|
16
|
-
`})]})})}exports.Tooltip=
|
|
16
|
+
`})]})})}exports.Tooltip=_e;exports.TooltipContent=De;exports.TooltipProvider=X;exports.TooltipTrigger=Oe;
|
package/dist/tooltip.js
CHANGED
|
@@ -1,15 +1,16 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { j as c } from "./jsx-runtime-BzflLqGi.js";
|
|
3
3
|
import * as a from "react";
|
|
4
|
-
import {
|
|
4
|
+
import { c as C } from "./index-B695uy69.js";
|
|
5
5
|
import { u as M } from "./index-DLcqcWxM.js";
|
|
6
|
-
import { c as
|
|
7
|
-
import { D as
|
|
8
|
-
import { u as
|
|
9
|
-
import { c as S, R as
|
|
10
|
-
import { P as
|
|
6
|
+
import { c as X } from "./index-FxyLF8MY.js";
|
|
7
|
+
import { D as K } from "./index-BM2A-WRV.js";
|
|
8
|
+
import { u as W } from "./index-Cv867SGx.js";
|
|
9
|
+
import { c as S, R as J, A as Q, a as Z, C as ee } from "./index-BAEhLEFF.js";
|
|
10
|
+
import { P as te } from "./index-CZWDxvEo.js";
|
|
11
11
|
import { P as H } from "./index-CSFEzRxy.js";
|
|
12
|
-
import { P as
|
|
12
|
+
import { P as oe } from "./index-BMWt1NBG.js";
|
|
13
|
+
import { u as re } from "./index-437EL2iq.js";
|
|
13
14
|
import { R as ne } from "./index-PYkEXTqJ.js";
|
|
14
15
|
import { c as ae } from "./index-CRiPKpXj.js";
|
|
15
16
|
var se = Symbol("radix.slottable");
|
|
@@ -18,7 +19,7 @@ function ie(e) {
|
|
|
18
19
|
const o = ({ children: t }) => /* @__PURE__ */ c.jsx(c.Fragment, { children: t });
|
|
19
20
|
return o.displayName = `${e}.Slottable`, o.__radixId = se, o;
|
|
20
21
|
}
|
|
21
|
-
var [j] =
|
|
22
|
+
var [j] = X("Tooltip", [
|
|
22
23
|
S
|
|
23
24
|
]), O = S(), F = "TooltipProvider", le = 700, D = "tooltip.open", [ce, L] = j(F), G = (e) => {
|
|
24
25
|
const {
|
|
@@ -65,7 +66,7 @@ var R = "Tooltip", [ue, _] = j(R), $ = (e) => {
|
|
|
65
66
|
onOpenChange: l,
|
|
66
67
|
disableHoverableContent: i,
|
|
67
68
|
delayDuration: m
|
|
68
|
-
} = e, s = L(R, e.__scopeTooltip), p = O(o), [u, f] = a.useState(null), x =
|
|
69
|
+
} = e, s = L(R, e.__scopeTooltip), p = O(o), [u, f] = a.useState(null), x = W(), d = a.useRef(0), v = i ?? s.disableHoverableContent, T = m ?? s.delayDuration, h = a.useRef(!1), [y, g] = re({
|
|
69
70
|
prop: r,
|
|
70
71
|
defaultProp: n ?? !1,
|
|
71
72
|
onChange: (N) => {
|
|
@@ -83,7 +84,7 @@ var R = "Tooltip", [ue, _] = j(R), $ = (e) => {
|
|
|
83
84
|
}, [T, g]);
|
|
84
85
|
return a.useEffect(() => () => {
|
|
85
86
|
d.current && (window.clearTimeout(d.current), d.current = 0);
|
|
86
|
-
}, []), /* @__PURE__ */ c.jsx(
|
|
87
|
+
}, []), /* @__PURE__ */ c.jsx(J, { ...p, children: /* @__PURE__ */ c.jsx(
|
|
87
88
|
ue,
|
|
88
89
|
{
|
|
89
90
|
scope: o,
|
|
@@ -109,8 +110,8 @@ $.displayName = R;
|
|
|
109
110
|
var A = "TooltipTrigger", z = a.forwardRef(
|
|
110
111
|
(e, o) => {
|
|
111
112
|
const { __scopeTooltip: t, ...r } = e, n = _(A, t), l = L(A, t), i = O(t), m = a.useRef(null), s = M(o, m, n.onTriggerChange), p = a.useRef(!1), u = a.useRef(!1), f = a.useCallback(() => p.current = !1, []);
|
|
112
|
-
return a.useEffect(() => () => document.removeEventListener("pointerup", f), [f]), /* @__PURE__ */ c.jsx(
|
|
113
|
-
|
|
113
|
+
return a.useEffect(() => () => document.removeEventListener("pointerup", f), [f]), /* @__PURE__ */ c.jsx(Q, { asChild: !0, ...i, children: /* @__PURE__ */ c.jsx(
|
|
114
|
+
oe.button,
|
|
114
115
|
{
|
|
115
116
|
"aria-describedby": n.open ? n.contentId : void 0,
|
|
116
117
|
"data-state": n.stateAttribute,
|
|
@@ -139,7 +140,7 @@ var k = "TooltipPortal", [de, pe] = j(k, {
|
|
|
139
140
|
forceMount: void 0
|
|
140
141
|
}), B = (e) => {
|
|
141
142
|
const { __scopeTooltip: o, forceMount: t, children: r, container: n } = e, l = _(k, o);
|
|
142
|
-
return /* @__PURE__ */ c.jsx(de, { scope: o, forceMount: t, children: /* @__PURE__ */ c.jsx(H, { present: t || l.open, children: /* @__PURE__ */ c.jsx(
|
|
143
|
+
return /* @__PURE__ */ c.jsx(de, { scope: o, forceMount: t, children: /* @__PURE__ */ c.jsx(H, { present: t || l.open, children: /* @__PURE__ */ c.jsx(te, { asChild: !0, container: n, children: r }) }) });
|
|
143
144
|
};
|
|
144
145
|
B.displayName = k;
|
|
145
146
|
var b = "TooltipContent", U = a.forwardRef(
|
|
@@ -191,7 +192,7 @@ var b = "TooltipContent", U = a.forwardRef(
|
|
|
191
192
|
return window.addEventListener("scroll", f, { capture: !0 }), () => window.removeEventListener("scroll", f, { capture: !0 });
|
|
192
193
|
}
|
|
193
194
|
}, [s.trigger, u]), /* @__PURE__ */ c.jsx(
|
|
194
|
-
|
|
195
|
+
K,
|
|
195
196
|
{
|
|
196
197
|
asChild: !0,
|
|
197
198
|
disableOutsidePointerEvents: !1,
|
|
@@ -200,7 +201,7 @@ var b = "TooltipContent", U = a.forwardRef(
|
|
|
200
201
|
onFocusOutside: (f) => f.preventDefault(),
|
|
201
202
|
onDismiss: u,
|
|
202
203
|
children: /* @__PURE__ */ c.jsxs(
|
|
203
|
-
|
|
204
|
+
ee,
|
|
204
205
|
{
|
|
205
206
|
"data-state": s.stateAttribute,
|
|
206
207
|
...p,
|
|
@@ -231,7 +232,7 @@ var Y = "TooltipArrow", q = a.forwardRef(
|
|
|
231
232
|
return xe(
|
|
232
233
|
Y,
|
|
233
234
|
t
|
|
234
|
-
).isInside ? null : /* @__PURE__ */ c.jsx(
|
|
235
|
+
).isInside ? null : /* @__PURE__ */ c.jsx(Z, { ...n, ...r, ref: o });
|
|
235
236
|
}
|
|
236
237
|
);
|
|
237
238
|
q.displayName = Y;
|
|
@@ -341,17 +342,17 @@ function Oe({
|
|
|
341
342
|
}
|
|
342
343
|
);
|
|
343
344
|
}
|
|
344
|
-
function
|
|
345
|
+
function Be({
|
|
345
346
|
...e
|
|
346
347
|
}) {
|
|
347
348
|
return /* @__PURE__ */ c.jsx(Oe, { children: /* @__PURE__ */ c.jsx(Pe, { "data-slot": "tooltip", ...e }) });
|
|
348
349
|
}
|
|
349
|
-
function
|
|
350
|
+
function Ue({
|
|
350
351
|
...e
|
|
351
352
|
}) {
|
|
352
353
|
return /* @__PURE__ */ c.jsx(Ee, { "data-slot": "tooltip-trigger", ...e });
|
|
353
354
|
}
|
|
354
|
-
function
|
|
355
|
+
function Ve({
|
|
355
356
|
className: e,
|
|
356
357
|
sideOffset: o = 0,
|
|
357
358
|
children: t,
|
|
@@ -395,8 +396,8 @@ function Ue({
|
|
|
395
396
|
) });
|
|
396
397
|
}
|
|
397
398
|
export {
|
|
398
|
-
|
|
399
|
-
|
|
399
|
+
Be as Tooltip,
|
|
400
|
+
Ve as TooltipContent,
|
|
400
401
|
Oe as TooltipProvider,
|
|
401
|
-
|
|
402
|
+
Ue as TooltipTrigger
|
|
402
403
|
};
|
|
@@ -13,7 +13,7 @@ A **full-screen loading overlay** that blocks user interaction during asynchrono
|
|
|
13
13
|
- ✅ Observable pattern for global state synchronization
|
|
14
14
|
- ✅ High z-index for optimal layering (`z-100`)
|
|
15
15
|
- ✅ Automatic spinner centering
|
|
16
|
-
- ✅ Blocks user interaction during loading
|
|
16
|
+
- ✅ Blocks user interaction during loading, including inside an already-open `Dialog`/`Sheet` — pointer clicks, the `Escape` key, and keyboard focus/`Tab` are all blocked while it is visible
|
|
17
17
|
|
|
18
18
|
## Import
|
|
19
19
|
|
|
@@ -223,6 +223,16 @@ The loader uses an observable pattern that synchronizes state across the entire
|
|
|
223
223
|
- **z-index**: `z-100` to be above all content
|
|
224
224
|
- **Positioning**: `fixed` with `inset-0` (covers entire viewport)
|
|
225
225
|
- **Centering**: Flexbox with `items-center` and `justify-center`
|
|
226
|
+
- **`pointer-events: auto`**: set as a fallback so the overlay is interactive on first paint, before Radix's layer effects have run
|
|
227
|
+
|
|
228
|
+
### Interaction blocking
|
|
229
|
+
|
|
230
|
+
The loader wraps itself in Radix's own `DismissableLayer` (`disableOutsidePointerEvents`) and `FocusScope` (`trapped`, `loop`) — the same primitives `Dialog`, `Sheet`, and `Popover` use internally. While the loader is visible:
|
|
231
|
+
|
|
232
|
+
- It registers as the topmost layer in Radix's internal layer stack, so an already-open `Dialog`/`Sheet`/`Popover` underneath stops reacting to the `Escape` key and outside pointer-down events.
|
|
233
|
+
- Radix disables `pointer-events` on every layer below it directly (not just via the loader's own CSS), so clicks can't reach the content underneath even if the loader's visual coverage were somehow incomplete.
|
|
234
|
+
- Focus is trapped inside the loader, which has no focusable elements, so `Tab`/`Shift+Tab` can't reach controls in the `Dialog`/`Sheet`/page behind it.
|
|
235
|
+
- The loader can't be dismissed by the user (no `onDismiss` is wired up) — only `FullScreenLoaderManager.hide()` closes it.
|
|
226
236
|
|
|
227
237
|
### Visual styles
|
|
228
238
|
|
|
@@ -339,6 +349,8 @@ The component includes basic accessibility considerations:
|
|
|
339
349
|
|
|
340
350
|
- **Fixed positioning**: Ensures visibility over all content
|
|
341
351
|
- **Visual feedback**: Clearly visible animated spinner
|
|
352
|
+
- **Focus trapping**: Keyboard focus can't reach content behind the loader (via Radix `FocusScope`)
|
|
353
|
+
- **Escape handling**: Pressing `Escape` while the loader is visible doesn't dismiss any `Dialog`/`Sheet` underneath, since the loader becomes the topmost dismissable layer
|
|
342
354
|
|
|
343
355
|
### Suggested improvements
|
|
344
356
|
|
|
@@ -378,6 +390,12 @@ try {
|
|
|
378
390
|
|
|
379
391
|
**Solution**: The loader uses `z-100`. Verify that no element has a higher z-index. If necessary, adjust the loader's z-index.
|
|
380
392
|
|
|
393
|
+
### Elements stay clickable/focusable through the loader while a `Dialog`/`Sheet` is open
|
|
394
|
+
|
|
395
|
+
**Cause**: The loader is nested inside another element that sets `pointer-events: none` or `visibility: hidden`, which prevents its `DismissableLayer`/`FocusScope` wrapper from ever mounting into the visible DOM, so it can't register itself as the topmost layer.
|
|
396
|
+
|
|
397
|
+
**Solution**: Render `<FullScreenLoader />` directly at the top level of your app, not inside a container that could hide or disable it.
|
|
398
|
+
|
|
381
399
|
### Multiple loaders appear simultaneously
|
|
382
400
|
|
|
383
401
|
**Cause**: Multiple instances of `<FullScreenLoader />` in the application.
|
|
@@ -96,8 +96,8 @@ import {
|
|
|
96
96
|
| ----------- | -------- | ---------------------- |
|
|
97
97
|
| `className` | `string` | Additional CSS classes |
|
|
98
98
|
|
|
99
|
-
**Styles**: `mt-4
|
|
100
|
-
**Purpose**: Container for main dialog content between header and footer.
|
|
99
|
+
**Styles**: `mt-4`
|
|
100
|
+
**Purpose**: Container for main dialog content between header and footer. Adds spacing after the header; spacing before the footer is provided by `DialogFooter` itself, so it stays consistent whether or not `DialogBody` is used.
|
|
101
101
|
|
|
102
102
|
### DialogHeader
|
|
103
103
|
|
|
@@ -113,7 +113,8 @@ import {
|
|
|
113
113
|
| ----------- | -------- | ---------------------- |
|
|
114
114
|
| `className` | `string` | Additional CSS classes |
|
|
115
115
|
|
|
116
|
-
**Styles**: `flex gap-6`, `sm:flex-row sm:justify-start`
|
|
116
|
+
**Styles**: `mt-10 flex gap-6`, `sm:flex-row sm:justify-start`
|
|
117
|
+
**Purpose**: Always provides top spacing before the actions, regardless of whether the preceding sibling is `DialogHeader` or `DialogBody`. This keeps dialogs without a body visually consistent with those that have one.
|
|
117
118
|
|
|
118
119
|
### DialogClose
|
|
119
120
|
|
|
@@ -140,6 +141,30 @@ import {
|
|
|
140
141
|
</Dialog>
|
|
141
142
|
```
|
|
142
143
|
|
|
144
|
+
### Header and footer only (no DialogBody)
|
|
145
|
+
|
|
146
|
+
```tsx
|
|
147
|
+
<Dialog>
|
|
148
|
+
<DialogTrigger asChild>
|
|
149
|
+
<Button variant="outline">Sign out</Button>
|
|
150
|
+
</DialogTrigger>
|
|
151
|
+
<DialogContent>
|
|
152
|
+
<DialogHeader>
|
|
153
|
+
<DialogTitle>Sign out</DialogTitle>
|
|
154
|
+
<DialogDescription>Are you sure you want to sign out?</DialogDescription>
|
|
155
|
+
</DialogHeader>
|
|
156
|
+
<DialogFooter>
|
|
157
|
+
<DialogClose asChild>
|
|
158
|
+
<Button variant="secondary">Cancel</Button>
|
|
159
|
+
</DialogClose>
|
|
160
|
+
<Button>Sign out</Button>
|
|
161
|
+
</DialogFooter>
|
|
162
|
+
</DialogContent>
|
|
163
|
+
</Dialog>;
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
`DialogBody` is optional — confirmation dialogs with nothing to show between the description and the actions can skip it entirely. `DialogFooter` provides its own top spacing, so the footer stays at the same distance from whatever precedes it, whether that's `DialogHeader` or `DialogBody`.
|
|
167
|
+
|
|
143
168
|
### With custom trigger (asChild)
|
|
144
169
|
|
|
145
170
|
```tsx
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@adamosuiteservices/ui",
|
|
3
|
-
"version": "2.20.
|
|
3
|
+
"version": "2.20.3",
|
|
4
4
|
"private": false,
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -274,7 +274,9 @@
|
|
|
274
274
|
"@radix-ui/react-collapsible": "^1.1.12",
|
|
275
275
|
"@radix-ui/react-context-menu": "^2.2.16",
|
|
276
276
|
"@radix-ui/react-dialog": "^1.1.15",
|
|
277
|
+
"@radix-ui/react-dismissable-layer": "^1.1.11",
|
|
277
278
|
"@radix-ui/react-dropdown-menu": "^2.1.16",
|
|
279
|
+
"@radix-ui/react-focus-scope": "^1.1.7",
|
|
278
280
|
"@radix-ui/react-hover-card": "^1.1.15",
|
|
279
281
|
"@radix-ui/react-label": "^2.1.7",
|
|
280
282
|
"@radix-ui/react-popover": "^1.1.15",
|
|
@@ -329,4 +331,4 @@
|
|
|
329
331
|
"vite": "^7.1.7",
|
|
330
332
|
"vite-plugin-dts": "^4.5.4"
|
|
331
333
|
}
|
|
332
|
-
}
|
|
334
|
+
}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
"use client";"use strict";const n=require("./jsx-runtime-BB_1_6y_.cjs"),H=require("react"),S=require("./index-_XxjJPRD.cjs"),L=require("./index-cwZN7ZY3.cjs"),_=require("./index-BWaO7kQK.cjs"),G=require("./index-DYxWvftI.cjs"),K=require("./index-bSPhqlcX.cjs"),U=require("./index-DE3jjVoC.cjs"),P=require("./index-CocSS1YK.cjs"),N=require("./icon-C5Q2b1Am.cjs"),y=require("./index-DoxiiusW.cjs");function X(e){const r=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const o in e)if(o!=="default"){const a=Object.getOwnPropertyDescriptor(e,o);Object.defineProperty(r,o,a.get?a:{enumerable:!0,get:()=>e[o]})}}return r.default=e,Object.freeze(r)}const d=X(H);var R="Checkbox",[J]=L.createContextScope(R),[Q,I]=J(R);function V(e){const{__scopeCheckbox:r,checked:o,children:a,defaultChecked:c,disabled:t,form:p,name:b,onCheckedChange:u,required:f,value:h="on",internal_do_not_use_render:l}=e,[m,v]=_.useControllableState({prop:o,defaultProp:c??!1,onChange:u,caller:R}),[k,C]=d.useState(null),[g,s]=d.useState(null),i=d.useRef(!1),j=k?!!p||!!k.closest("form"):!0,E={checked:m,disabled:t,setChecked:v,control:k,setControl:C,name:b,form:p,value:h,hasConsumerStoppedPropagationRef:i,required:f,defaultChecked:x(c)?!1:c,isFormControl:j,bubbleInput:g,setBubbleInput:s};return n.jsxRuntimeExports.jsx(Q,{scope:r,...E,children:W(l)?l(E):a})}var w="CheckboxTrigger",O=d.forwardRef(({__scopeCheckbox:e,onKeyDown:r,onClick:o,...a},c)=>{const{control:t,value:p,disabled:b,checked:u,required:f,setControl:h,setChecked:l,hasConsumerStoppedPropagationRef:m,isFormControl:v,bubbleInput:k}=I(w,e),C=S.useComposedRefs(c,h),g=d.useRef(u);return d.useEffect(()=>{const s=t?.form;if(s){const i=()=>l(g.current);return s.addEventListener("reset",i),()=>s.removeEventListener("reset",i)}},[t,l]),n.jsxRuntimeExports.jsx(P.Primitive.button,{type:"button",role:"checkbox","aria-checked":x(u)?"mixed":u,"aria-required":f,"data-state":A(u),"data-disabled":b?"":void 0,disabled:b,value:p,...a,ref:C,onKeyDown:_.composeEventHandlers(r,s=>{s.key==="Enter"&&s.preventDefault()}),onClick:_.composeEventHandlers(o,s=>{l(i=>x(i)?!0:!i),k&&v&&(m.current=s.isPropagationStopped(),m.current||s.stopPropagation())})})});O.displayName=w;var B=d.forwardRef((e,r)=>{const{__scopeCheckbox:o,name:a,checked:c,defaultChecked:t,required:p,disabled:b,value:u,onCheckedChange:f,form:h,...l}=e;return n.jsxRuntimeExports.jsx(V,{__scopeCheckbox:o,checked:c,defaultChecked:t,disabled:b,required:p,onCheckedChange:f,name:a,form:h,value:u,internal_do_not_use_render:({isFormControl:m})=>n.jsxRuntimeExports.jsxs(n.jsxRuntimeExports.Fragment,{children:[n.jsxRuntimeExports.jsx(O,{...l,ref:r,__scopeCheckbox:o}),m&&n.jsxRuntimeExports.jsx(D,{__scopeCheckbox:o})]})})});B.displayName=R;var M="CheckboxIndicator",T=d.forwardRef((e,r)=>{const{__scopeCheckbox:o,forceMount:a,...c}=e,t=I(M,o);return n.jsxRuntimeExports.jsx(U.Presence,{present:a||x(t.checked)||t.checked===!0,children:n.jsxRuntimeExports.jsx(P.Primitive.span,{"data-state":A(t.checked),"data-disabled":t.disabled?"":void 0,...c,ref:r,style:{pointerEvents:"none",...e.style}})})});T.displayName=M;var $="CheckboxBubbleInput",D=d.forwardRef(({__scopeCheckbox:e,...r},o)=>{const{control:a,hasConsumerStoppedPropagationRef:c,checked:t,defaultChecked:p,required:b,disabled:u,name:f,value:h,form:l,bubbleInput:m,setBubbleInput:v}=I($,e),k=S.useComposedRefs(o,v),C=G.usePrevious(t),g=K.useSize(a);d.useEffect(()=>{const i=m;if(!i)return;const j=window.HTMLInputElement.prototype,q=Object.getOwnPropertyDescriptor(j,"checked").set,z=!c.current;if(C!==t&&q){const F=new Event("click",{bubbles:z});i.indeterminate=x(t),q.call(i,x(t)?!1:t),i.dispatchEvent(F)}},[m,C,t,c]);const s=d.useRef(x(t)?!1:t);return n.jsxRuntimeExports.jsx(P.Primitive.input,{type:"checkbox","aria-hidden":!0,defaultChecked:p??s.current,required:b,disabled:u,name:f,value:h,form:l,...r,tabIndex:-1,ref:k,style:{...r.style,...g,position:"absolute",pointerEvents:"none",opacity:0,margin:0,transform:"translateX(-100%)"}})});D.displayName=$;function W(e){return typeof e=="function"}function x(e){return e==="indeterminate"}function A(e){return x(e)?"indeterminate":e?"checked":"unchecked"}function Y({className:e,...r}){return n.jsxRuntimeExports.jsx(B,{"data-slot":"checkbox",className:y.cn(`
|
|
2
|
-
adm:peer adm:size-5 adm:shrink-0 adm:rounded-[4px] adm:border
|
|
3
|
-
adm:border-medium-border adm:bg-background
|
|
4
|
-
adm:transition-[color,box-shadow,background-color] adm:outline-none
|
|
5
|
-
adm:hover:bg-muted
|
|
6
|
-
adm:focus-visible:border-primary-300 adm:focus-visible:ring-4
|
|
7
|
-
adm:focus-visible:ring-primary/10
|
|
8
|
-
adm:disabled:cursor-not-allowed adm:disabled:bg-disabled
|
|
9
|
-
adm:aria-invalid:border-destructive
|
|
10
|
-
adm:aria-invalid:focus-visible:ring-4
|
|
11
|
-
adm:aria-invalid:focus-visible:ring-destructive/10
|
|
12
|
-
adm:data-[state=checked]:border-primary
|
|
13
|
-
adm:data-[state=checked]:bg-primary
|
|
14
|
-
adm:data-[state=checked]:text-primary-foreground
|
|
15
|
-
adm:data-[state=checked]:hover:bg-primary
|
|
16
|
-
`,e),...r,children:n.jsxRuntimeExports.jsxs(T,{"data-slot":"checkbox-indicator",className:`
|
|
17
|
-
adm:group adm:grid adm:place-content-center adm:text-current
|
|
18
|
-
adm:transition-none
|
|
19
|
-
adm:*:data-[slot=icon]:text-current
|
|
20
|
-
`,children:[n.jsxRuntimeExports.jsx(N.Icon,{symbol:"check",className:y.cn("adm:text-base adm:text-primary-foreground",`
|
|
21
|
-
adm:group-data-[state=indeterminate]:hidden
|
|
22
|
-
`)}),n.jsxRuntimeExports.jsx(N.Icon,{symbol:"remove",className:y.cn("adm:text-base adm:text-primary",`
|
|
23
|
-
adm:group-data-[state=checked]:hidden
|
|
24
|
-
`)})]})})}exports.Checkbox=Y;
|
package/dist/index-8iwAKZIp.cjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use client";"use strict";const Xe=require("react"),v=require("./index-BWaO7kQK.cjs"),Re=require("./index-Da298sEl.cjs"),_=require("./index-_XxjJPRD.cjs"),ze=require("./index-cwZN7ZY3.cjs"),Ze=require("./index-BaCYnOIG.cjs"),V=require("./index-C2P2kXMc.cjs"),me=require("./index-WIv2ndLu.cjs"),j=require("./index-Cqf5g2f_.cjs"),Je=require("./index-CBuLZ39k.cjs"),$=require("./index-DE3jjVoC.cjs"),w=require("./index-CocSS1YK.cjs"),W=require("./index-CC6DBo2g.cjs"),a=require("./jsx-runtime-BB_1_6y_.cjs"),ee=require("./index-CzY-WZXL.cjs");function Qe(e){const n=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const t in e)if(t!=="default"){const o=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(n,t,o.get?o:{enumerable:!0,get:()=>e[t]})}}return n.default=e,Object.freeze(n)}const r=Qe(Xe);function et(e){const n=tt(e),t=r.forwardRef((o,s)=>{const{children:c,...l}=o,f=r.Children.toArray(c),m=f.find(ot);if(m){const p=m.props.children,d=f.map(u=>u===m?r.Children.count(p)>1?r.Children.only(null):r.isValidElement(p)?p.props.children:null:u);return a.jsxRuntimeExports.jsx(n,{...l,ref:s,children:r.isValidElement(p)?r.cloneElement(p,void 0,d):null})}return a.jsxRuntimeExports.jsx(n,{...l,ref:s,children:c})});return t.displayName=`${e}.Slot`,t}function tt(e){const n=r.forwardRef((t,o)=>{const{children:s,...c}=t;if(r.isValidElement(s)){const l=st(s),f=rt(c,s.props);return s.type!==r.Fragment&&(f.ref=o?_.composeRefs(o,l):l),r.cloneElement(s,f)}return r.Children.count(s)>1?r.Children.only(null):null});return n.displayName=`${e}.SlotClone`,n}var nt=Symbol("radix.slottable");function ot(e){return r.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===nt}function rt(e,n){const t={...n};for(const o in n){const s=e[o],c=n[o];/^on[A-Z]/.test(o)?s&&c?t[o]=(...f)=>{const m=c(...f);return s(...f),m}:s&&(t[o]=s):o==="style"?t[o]={...s,...c}:o==="className"&&(t[o]=[s,c].filter(Boolean).join(" "))}return{...e,...t}}function st(e){let n=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,t=n&&"isReactWarning"in n&&n.isReactWarning;return t?e.ref:(n=Object.getOwnPropertyDescriptor(e,"ref")?.get,t=n&&"isReactWarning"in n&&n.isReactWarning,t?e.props.ref:e.props.ref||e.ref)}var Q=["Enter"," "],ct=["ArrowDown","PageUp","Home"],ve=["ArrowUp","PageDown","End"],ut=[...ct,...ve],at={ltr:[...Q,"ArrowRight"],rtl:[...Q,"ArrowLeft"]},it={ltr:["ArrowLeft"],rtl:["ArrowRight"]},F="Menu",[k,lt,dt]=Re.createCollection(F),[S,ft]=ze.createContextScope(F,[dt,j.createPopperScope,W.createRovingFocusGroupScope]),L=j.createPopperScope(),Ee=W.createRovingFocusGroupScope(),[Ce,g]=S(F),[pt,G]=S(F),he=e=>{const{__scopeMenu:n,open:t=!1,children:o,dir:s,onOpenChange:c,modal:l=!0}=e,f=L(n),[m,p]=r.useState(null),d=r.useRef(!1),u=ee.useCallbackRef(c),x=Re.useDirection(s);return r.useEffect(()=>{const C=()=>{d.current=!0,document.addEventListener("pointerdown",R,{capture:!0,once:!0}),document.addEventListener("pointermove",R,{capture:!0,once:!0})},R=()=>d.current=!1;return document.addEventListener("keydown",C,{capture:!0}),()=>{document.removeEventListener("keydown",C,{capture:!0}),document.removeEventListener("pointerdown",R,{capture:!0}),document.removeEventListener("pointermove",R,{capture:!0})}},[]),a.jsxRuntimeExports.jsx(j.Root2,{...f,children:a.jsxRuntimeExports.jsx(Ce,{scope:n,open:t,onOpenChange:u,content:m,onContentChange:p,children:a.jsxRuntimeExports.jsx(pt,{scope:n,onClose:r.useCallback(()=>u(!1),[u]),isUsingKeyboardRef:d,dir:x,modal:l,children:o})})})};he.displayName=F;var mt="MenuAnchor",te=r.forwardRef((e,n)=>{const{__scopeMenu:t,...o}=e,s=L(t);return a.jsxRuntimeExports.jsx(j.Anchor,{...s,...o,ref:n})});te.displayName=mt;var ne="MenuPortal",[xt,ge]=S(ne,{forceMount:void 0}),Me=e=>{const{__scopeMenu:n,forceMount:t,children:o,container:s}=e,c=g(ne,n);return a.jsxRuntimeExports.jsx(xt,{scope:n,forceMount:t,children:a.jsxRuntimeExports.jsx($.Presence,{present:t||c.open,children:a.jsxRuntimeExports.jsx(Je.Portal,{asChild:!0,container:s,children:o})})})};Me.displayName=ne;var h="MenuContent",[Rt,oe]=S(h),_e=r.forwardRef((e,n)=>{const t=ge(h,e.__scopeMenu),{forceMount:o=t.forceMount,...s}=e,c=g(h,e.__scopeMenu),l=G(h,e.__scopeMenu);return a.jsxRuntimeExports.jsx(k.Provider,{scope:e.__scopeMenu,children:a.jsxRuntimeExports.jsx($.Presence,{present:o||c.open,children:a.jsxRuntimeExports.jsx(k.Slot,{scope:e.__scopeMenu,children:l.modal?a.jsxRuntimeExports.jsx(vt,{...s,ref:n}):a.jsxRuntimeExports.jsx(Et,{...s,ref:n})})})})}),vt=r.forwardRef((e,n)=>{const t=g(h,e.__scopeMenu),o=r.useRef(null),s=_.useComposedRefs(n,o);return r.useEffect(()=>{const c=o.current;if(c)return V.hideOthers(c)},[]),a.jsxRuntimeExports.jsx(re,{...e,ref:s,trapFocus:t.open,disableOutsidePointerEvents:t.open,disableOutsideScroll:!0,onFocusOutside:v.composeEventHandlers(e.onFocusOutside,c=>c.preventDefault(),{checkForDefaultPrevented:!1}),onDismiss:()=>t.onOpenChange(!1)})}),Et=r.forwardRef((e,n)=>{const t=g(h,e.__scopeMenu);return a.jsxRuntimeExports.jsx(re,{...e,ref:n,trapFocus:!1,disableOutsidePointerEvents:!1,disableOutsideScroll:!1,onDismiss:()=>t.onOpenChange(!1)})}),Ct=et("MenuContent.ScrollLock"),re=r.forwardRef((e,n)=>{const{__scopeMenu:t,loop:o=!1,trapFocus:s,onOpenAutoFocus:c,onCloseAutoFocus:l,disableOutsidePointerEvents:f,onEntryFocus:m,onEscapeKeyDown:p,onPointerDownOutside:d,onFocusOutside:u,onInteractOutside:x,onDismiss:C,disableOutsideScroll:R,...P}=e,T=g(h,t),y=G(h,t),He=L(t),Ue=Ee(t),ie=lt(t),[Ve,le]=r.useState(null),K=r.useRef(null),qe=_.useComposedRefs(n,K,T.onContentChange),H=r.useRef(0),U=r.useRef(""),Be=r.useRef(0),X=r.useRef(null),de=r.useRef("right"),z=r.useRef(0),$e=R?V.ReactRemoveScroll:r.Fragment,We=R?{as:Ct,allowPinchZoom:!0}:void 0,Ye=i=>{const b=U.current+i,M=ie().filter(E=>!E.disabled),O=document.activeElement,Z=M.find(E=>E.ref.current===O)?.textValue,J=M.map(E=>E.textValue),fe=Tt(J,b,Z),A=M.find(E=>E.textValue===fe)?.ref.current;(function E(pe){U.current=pe,window.clearTimeout(H.current),pe!==""&&(H.current=window.setTimeout(()=>E(""),1e3))})(b),A&&setTimeout(()=>A.focus())};r.useEffect(()=>()=>window.clearTimeout(H.current),[]),V.useFocusGuards();const I=r.useCallback(i=>de.current===X.current?.side&&At(i,X.current?.area),[]);return a.jsxRuntimeExports.jsx(Rt,{scope:t,searchRef:U,onItemEnter:r.useCallback(i=>{I(i)&&i.preventDefault()},[I]),onItemLeave:r.useCallback(i=>{I(i)||(K.current?.focus(),le(null))},[I]),onTriggerLeave:r.useCallback(i=>{I(i)&&i.preventDefault()},[I]),pointerGraceTimerRef:Be,onPointerGraceIntentChange:r.useCallback(i=>{X.current=i},[]),children:a.jsxRuntimeExports.jsx($e,{...We,children:a.jsxRuntimeExports.jsx(V.FocusScope,{asChild:!0,trapped:s,onMountAutoFocus:v.composeEventHandlers(c,i=>{i.preventDefault(),K.current?.focus({preventScroll:!0})}),onUnmountAutoFocus:l,children:a.jsxRuntimeExports.jsx(Ze.DismissableLayer,{asChild:!0,disableOutsidePointerEvents:f,onEscapeKeyDown:p,onPointerDownOutside:d,onFocusOutside:u,onInteractOutside:x,onDismiss:C,children:a.jsxRuntimeExports.jsx(W.Root,{asChild:!0,...Ue,dir:y.dir,orientation:"vertical",loop:o,currentTabStopId:Ve,onCurrentTabStopIdChange:le,onEntryFocus:v.composeEventHandlers(m,i=>{y.isUsingKeyboardRef.current||i.preventDefault()}),preventScrollOnEntryFocus:!0,children:a.jsxRuntimeExports.jsx(j.Content,{role:"menu","aria-orientation":"vertical","data-state":Ke(T.open),"data-radix-menu-content":"",dir:y.dir,...He,...P,ref:qe,style:{outline:"none",...P.style},onKeyDown:v.composeEventHandlers(P.onKeyDown,i=>{const M=i.target.closest("[data-radix-menu-content]")===i.currentTarget,O=i.ctrlKey||i.altKey||i.metaKey,Z=i.key.length===1;M&&(i.key==="Tab"&&i.preventDefault(),!O&&Z&&Ye(i.key));const J=K.current;if(i.target!==J||!ut.includes(i.key))return;i.preventDefault();const A=ie().filter(E=>!E.disabled).map(E=>E.ref.current);ve.includes(i.key)&&A.reverse(),bt(A)}),onBlur:v.composeEventHandlers(e.onBlur,i=>{i.currentTarget.contains(i.target)||(window.clearTimeout(H.current),U.current="")}),onPointerMove:v.composeEventHandlers(e.onPointerMove,N(i=>{const b=i.target,M=z.current!==i.clientX;if(i.currentTarget.contains(b)&&M){const O=i.clientX>z.current?"right":"left";de.current=O,z.current=i.clientX}}))})})})})})})});_e.displayName=h;var ht="MenuGroup",se=r.forwardRef((e,n)=>{const{__scopeMenu:t,...o}=e;return a.jsxRuntimeExports.jsx(w.Primitive.div,{role:"group",...o,ref:n})});se.displayName=ht;var gt="MenuLabel",je=r.forwardRef((e,n)=>{const{__scopeMenu:t,...o}=e;return a.jsxRuntimeExports.jsx(w.Primitive.div,{...o,ref:n})});je.displayName=gt;var q="MenuItem",xe="menu.itemSelect",Y=r.forwardRef((e,n)=>{const{disabled:t=!1,onSelect:o,...s}=e,c=r.useRef(null),l=G(q,e.__scopeMenu),f=oe(q,e.__scopeMenu),m=_.useComposedRefs(n,c),p=r.useRef(!1),d=()=>{const u=c.current;if(!t&&u){const x=new CustomEvent(xe,{bubbles:!0,cancelable:!0});u.addEventListener(xe,C=>o?.(C),{once:!0}),w.dispatchDiscreteCustomEvent(u,x),x.defaultPrevented?p.current=!1:l.onClose()}};return a.jsxRuntimeExports.jsx(Se,{...s,ref:m,disabled:t,onClick:v.composeEventHandlers(e.onClick,d),onPointerDown:u=>{e.onPointerDown?.(u),p.current=!0},onPointerUp:v.composeEventHandlers(e.onPointerUp,u=>{p.current||u.currentTarget?.click()}),onKeyDown:v.composeEventHandlers(e.onKeyDown,u=>{const x=f.searchRef.current!=="";t||x&&u.key===" "||Q.includes(u.key)&&(u.currentTarget.click(),u.preventDefault())})})});Y.displayName=q;var Se=r.forwardRef((e,n)=>{const{__scopeMenu:t,disabled:o=!1,textValue:s,...c}=e,l=oe(q,t),f=Ee(t),m=r.useRef(null),p=_.useComposedRefs(n,m),[d,u]=r.useState(!1),[x,C]=r.useState("");return r.useEffect(()=>{const R=m.current;R&&C((R.textContent??"").trim())},[c.children]),a.jsxRuntimeExports.jsx(k.ItemSlot,{scope:t,disabled:o,textValue:s??x,children:a.jsxRuntimeExports.jsx(W.Item,{asChild:!0,...f,focusable:!o,children:a.jsxRuntimeExports.jsx(w.Primitive.div,{role:"menuitem","data-highlighted":d?"":void 0,"aria-disabled":o||void 0,"data-disabled":o?"":void 0,...c,ref:p,onPointerMove:v.composeEventHandlers(e.onPointerMove,N(R=>{o?l.onItemLeave(R):(l.onItemEnter(R),R.defaultPrevented||R.currentTarget.focus({preventScroll:!0}))})),onPointerLeave:v.composeEventHandlers(e.onPointerLeave,N(R=>l.onItemLeave(R))),onFocus:v.composeEventHandlers(e.onFocus,()=>u(!0)),onBlur:v.composeEventHandlers(e.onBlur,()=>u(!1))})})})}),Mt="MenuCheckboxItem",Pe=r.forwardRef((e,n)=>{const{checked:t=!1,onCheckedChange:o,...s}=e;return a.jsxRuntimeExports.jsx(Te,{scope:e.__scopeMenu,checked:t,children:a.jsxRuntimeExports.jsx(Y,{role:"menuitemcheckbox","aria-checked":B(t)?"mixed":t,...s,ref:n,"data-state":ae(t),onSelect:v.composeEventHandlers(s.onSelect,()=>o?.(B(t)?!0:!t),{checkForDefaultPrevented:!1})})})});Pe.displayName=Mt;var ye="MenuRadioGroup",[_t,jt]=S(ye,{value:void 0,onValueChange:()=>{}}),Ie=r.forwardRef((e,n)=>{const{value:t,onValueChange:o,...s}=e,c=ee.useCallbackRef(o);return a.jsxRuntimeExports.jsx(_t,{scope:e.__scopeMenu,value:t,onValueChange:c,children:a.jsxRuntimeExports.jsx(se,{...s,ref:n})})});Ie.displayName=ye;var be="MenuRadioItem",we=r.forwardRef((e,n)=>{const{value:t,...o}=e,s=jt(be,e.__scopeMenu),c=t===s.value;return a.jsxRuntimeExports.jsx(Te,{scope:e.__scopeMenu,checked:c,children:a.jsxRuntimeExports.jsx(Y,{role:"menuitemradio","aria-checked":c,...o,ref:n,"data-state":ae(c),onSelect:v.composeEventHandlers(o.onSelect,()=>s.onValueChange?.(t),{checkForDefaultPrevented:!1})})})});we.displayName=be;var ce="MenuItemIndicator",[Te,St]=S(ce,{checked:!1}),Oe=r.forwardRef((e,n)=>{const{__scopeMenu:t,forceMount:o,...s}=e,c=St(ce,t);return a.jsxRuntimeExports.jsx($.Presence,{present:o||B(c.checked)||c.checked===!0,children:a.jsxRuntimeExports.jsx(w.Primitive.span,{...s,ref:n,"data-state":ae(c.checked)})})});Oe.displayName=ce;var Pt="MenuSeparator",Ae=r.forwardRef((e,n)=>{const{__scopeMenu:t,...o}=e;return a.jsxRuntimeExports.jsx(w.Primitive.div,{role:"separator","aria-orientation":"horizontal",...o,ref:n})});Ae.displayName=Pt;var yt="MenuArrow",De=r.forwardRef((e,n)=>{const{__scopeMenu:t,...o}=e,s=L(t);return a.jsxRuntimeExports.jsx(j.Arrow,{...s,...o,ref:n})});De.displayName=yt;var ue="MenuSub",[It,ke]=S(ue),Ne=e=>{const{__scopeMenu:n,children:t,open:o=!1,onOpenChange:s}=e,c=g(ue,n),l=L(n),[f,m]=r.useState(null),[p,d]=r.useState(null),u=ee.useCallbackRef(s);return r.useEffect(()=>(c.open===!1&&u(!1),()=>u(!1)),[c.open,u]),a.jsxRuntimeExports.jsx(j.Root2,{...l,children:a.jsxRuntimeExports.jsx(Ce,{scope:n,open:o,onOpenChange:u,content:p,onContentChange:d,children:a.jsxRuntimeExports.jsx(It,{scope:n,contentId:me.useId(),triggerId:me.useId(),trigger:f,onTriggerChange:m,children:t})})})};Ne.displayName=ue;var D="MenuSubTrigger",Fe=r.forwardRef((e,n)=>{const t=g(D,e.__scopeMenu),o=G(D,e.__scopeMenu),s=ke(D,e.__scopeMenu),c=oe(D,e.__scopeMenu),l=r.useRef(null),{pointerGraceTimerRef:f,onPointerGraceIntentChange:m}=c,p={__scopeMenu:e.__scopeMenu},d=r.useCallback(()=>{l.current&&window.clearTimeout(l.current),l.current=null},[]);return r.useEffect(()=>d,[d]),r.useEffect(()=>{const u=f.current;return()=>{window.clearTimeout(u),m(null)}},[f,m]),a.jsxRuntimeExports.jsx(te,{asChild:!0,...p,children:a.jsxRuntimeExports.jsx(Se,{id:s.triggerId,"aria-haspopup":"menu","aria-expanded":t.open,"aria-controls":s.contentId,"data-state":Ke(t.open),...e,ref:_.composeRefs(n,s.onTriggerChange),onClick:u=>{e.onClick?.(u),!(e.disabled||u.defaultPrevented)&&(u.currentTarget.focus(),t.open||t.onOpenChange(!0))},onPointerMove:v.composeEventHandlers(e.onPointerMove,N(u=>{c.onItemEnter(u),!u.defaultPrevented&&!e.disabled&&!t.open&&!l.current&&(c.onPointerGraceIntentChange(null),l.current=window.setTimeout(()=>{t.onOpenChange(!0),d()},100))})),onPointerLeave:v.composeEventHandlers(e.onPointerLeave,N(u=>{d();const x=t.content?.getBoundingClientRect();if(x){const C=t.content?.dataset.side,R=C==="right",P=R?-5:5,T=x[R?"left":"right"],y=x[R?"right":"left"];c.onPointerGraceIntentChange({area:[{x:u.clientX+P,y:u.clientY},{x:T,y:x.top},{x:y,y:x.top},{x:y,y:x.bottom},{x:T,y:x.bottom}],side:C}),window.clearTimeout(f.current),f.current=window.setTimeout(()=>c.onPointerGraceIntentChange(null),300)}else{if(c.onTriggerLeave(u),u.defaultPrevented)return;c.onPointerGraceIntentChange(null)}})),onKeyDown:v.composeEventHandlers(e.onKeyDown,u=>{const x=c.searchRef.current!=="";e.disabled||x&&u.key===" "||at[o.dir].includes(u.key)&&(t.onOpenChange(!0),t.content?.focus(),u.preventDefault())})})})});Fe.displayName=D;var Le="MenuSubContent",Ge=r.forwardRef((e,n)=>{const t=ge(h,e.__scopeMenu),{forceMount:o=t.forceMount,...s}=e,c=g(h,e.__scopeMenu),l=G(h,e.__scopeMenu),f=ke(Le,e.__scopeMenu),m=r.useRef(null),p=_.useComposedRefs(n,m);return a.jsxRuntimeExports.jsx(k.Provider,{scope:e.__scopeMenu,children:a.jsxRuntimeExports.jsx($.Presence,{present:o||c.open,children:a.jsxRuntimeExports.jsx(k.Slot,{scope:e.__scopeMenu,children:a.jsxRuntimeExports.jsx(re,{id:f.contentId,"aria-labelledby":f.triggerId,...s,ref:p,align:"start",side:l.dir==="rtl"?"left":"right",disableOutsidePointerEvents:!1,disableOutsideScroll:!1,trapFocus:!1,onOpenAutoFocus:d=>{l.isUsingKeyboardRef.current&&m.current?.focus(),d.preventDefault()},onCloseAutoFocus:d=>d.preventDefault(),onFocusOutside:v.composeEventHandlers(e.onFocusOutside,d=>{d.target!==f.trigger&&c.onOpenChange(!1)}),onEscapeKeyDown:v.composeEventHandlers(e.onEscapeKeyDown,d=>{l.onClose(),d.preventDefault()}),onKeyDown:v.composeEventHandlers(e.onKeyDown,d=>{const u=d.currentTarget.contains(d.target),x=it[l.dir].includes(d.key);u&&x&&(c.onOpenChange(!1),f.trigger?.focus(),d.preventDefault())})})})})})});Ge.displayName=Le;function Ke(e){return e?"open":"closed"}function B(e){return e==="indeterminate"}function ae(e){return B(e)?"indeterminate":e?"checked":"unchecked"}function bt(e){const n=document.activeElement;for(const t of e)if(t===n||(t.focus(),document.activeElement!==n))return}function wt(e,n){return e.map((t,o)=>e[(n+o)%e.length])}function Tt(e,n,t){const s=n.length>1&&Array.from(n).every(p=>p===n[0])?n[0]:n,c=t?e.indexOf(t):-1;let l=wt(e,Math.max(c,0));s.length===1&&(l=l.filter(p=>p!==t));const m=l.find(p=>p.toLowerCase().startsWith(s.toLowerCase()));return m!==t?m:void 0}function Ot(e,n){const{x:t,y:o}=e;let s=!1;for(let c=0,l=n.length-1;c<n.length;l=c++){const f=n[c],m=n[l],p=f.x,d=f.y,u=m.x,x=m.y;d>o!=x>o&&t<(u-p)*(o-d)/(x-d)+p&&(s=!s)}return s}function At(e,n){if(!n)return!1;const t={x:e.clientX,y:e.clientY};return Ot(t,n)}function N(e){return n=>n.pointerType==="mouse"?e(n):void 0}var Dt=he,kt=te,Nt=Me,Ft=_e,Lt=se,Gt=je,Kt=Y,Ht=Pe,Ut=Ie,Vt=we,qt=Oe,Bt=Ae,$t=De,Wt=Ne,Yt=Fe,Xt=Ge;exports.Anchor2=kt;exports.Arrow2=$t;exports.CheckboxItem=Ht;exports.Content2=Ft;exports.Group=Lt;exports.Item2=Kt;exports.ItemIndicator=qt;exports.Label=Gt;exports.Portal=Nt;exports.RadioGroup=Ut;exports.RadioItem=Vt;exports.Root3=Dt;exports.Separator=Bt;exports.Sub=Wt;exports.SubContent=Xt;exports.SubTrigger=Yt;exports.createMenuScope=ft;
|
package/dist/index-BWaO7kQK.cjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";const m=require("react"),v=require("./index-MQ0c3ZX_.cjs");function b(e){const n=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const t in e)if(t!=="default"){const r=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(n,t,r.get?r:{enumerable:!0,get:()=>e[t]})}}return n.default=e,Object.freeze(n)}const c=b(m);function g(e,n,{checkForDefaultPrevented:t=!0}={}){return function(o){if(e?.(o),t===!1||!o.defaultPrevented)return n?.(o)}}var R=c[" useInsertionEffect ".trim().toString()]||v.useLayoutEffect2;function E({prop:e,defaultProp:n,onChange:t=()=>{},caller:r}){const[o,l,i]=C({defaultProp:n,onChange:t}),u=e!==void 0,a=u?e:o;{const s=c.useRef(e!==void 0);c.useEffect(()=>{const f=s.current;f!==u&&console.warn(`${r} is changing from ${f?"controlled":"uncontrolled"} to ${u?"controlled":"uncontrolled"}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`),s.current=u},[u,r])}const d=c.useCallback(s=>{if(u){const f=S(s)?s(e):s;f!==e&&i.current?.(f)}else l(s)},[u,e,l,i]);return[a,d]}function C({defaultProp:e,onChange:n}){const[t,r]=c.useState(e),o=c.useRef(t),l=c.useRef(n);return R(()=>{l.current=n},[n]),c.useEffect(()=>{o.current!==t&&(l.current?.(t),o.current=t)},[t,o]),[t,r,l]}function S(e){return typeof e=="function"}exports.composeEventHandlers=g;exports.useControllableState=E;
|
package/dist/index-BnkHpTJs.cjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use client";"use strict";const l=require("react"),Q=require("./index-cwZN7ZY3.cjs"),T=require("./index-Da298sEl.cjs"),W=require("./index-_XxjJPRD.cjs"),N=require("./index-BWaO7kQK.cjs"),q=require("./index-CocSS1YK.cjs"),v=require("./index-CRWn-2fF.cjs"),X=require("./index-WIv2ndLu.cjs"),n=require("./jsx-runtime-BB_1_6y_.cjs");var d="Accordion",Z=["Home","End","ArrowDown","ArrowUp","ArrowLeft","ArrowRight"],[y,ee,oe]=T.createCollection(d),[R]=Q.createContextScope(d,[oe,v.createCollapsibleScope]),k=v.createCollapsibleScope(),M=l.forwardRef((o,c)=>{const{type:e,...t}=o,i=t,r=t;return n.jsxRuntimeExports.jsx(y.Provider,{scope:o.__scopeAccordion,children:e==="multiple"?n.jsxRuntimeExports.jsx(ce,{...r,ref:c}):n.jsxRuntimeExports.jsx(ne,{...i,ref:c})})});M.displayName=d;var[H,re]=R(d),[V,te]=R(d,{collapsible:!1}),ne=l.forwardRef((o,c)=>{const{value:e,defaultValue:t,onValueChange:i=()=>{},collapsible:r=!1,...a}=o,[s,u]=N.useControllableState({prop:e,defaultProp:t??"",onChange:i,caller:d});return n.jsxRuntimeExports.jsx(H,{scope:o.__scopeAccordion,value:l.useMemo(()=>s?[s]:[],[s]),onItemOpen:u,onItemClose:l.useCallback(()=>r&&u(""),[r,u]),children:n.jsxRuntimeExports.jsx(V,{scope:o.__scopeAccordion,collapsible:r,children:n.jsxRuntimeExports.jsx($,{...a,ref:c})})})}),ce=l.forwardRef((o,c)=>{const{value:e,defaultValue:t,onValueChange:i=()=>{},...r}=o,[a,s]=N.useControllableState({prop:e,defaultProp:t??[],onChange:i,caller:d}),u=l.useCallback(f=>s((x=[])=>[...x,f]),[s]),m=l.useCallback(f=>s((x=[])=>x.filter(b=>b!==f)),[s]);return n.jsxRuntimeExports.jsx(H,{scope:o.__scopeAccordion,value:a,onItemOpen:u,onItemClose:m,children:n.jsxRuntimeExports.jsx(V,{scope:o.__scopeAccordion,collapsible:!0,children:n.jsxRuntimeExports.jsx($,{...r,ref:c})})})}),[ie,j]=R(d),$=l.forwardRef((o,c)=>{const{__scopeAccordion:e,disabled:t,dir:i,orientation:r="vertical",...a}=o,s=l.useRef(null),u=W.useComposedRefs(s,c),m=ee(e),x=T.useDirection(i)==="ltr",b=N.composeEventHandlers(o.onKeyDown,C=>{if(!Z.includes(C.key))return;const F=C.target,I=m().filter(P=>!P.ref.current?.disabled),A=I.findIndex(P=>P.ref.current===F),O=I.length;if(A===-1)return;C.preventDefault();let p=A;const h=0,E=O-1,_=()=>{p=A+1,p>E&&(p=h)},w=()=>{p=A-1,p<h&&(p=E)};switch(C.key){case"Home":p=h;break;case"End":p=E;break;case"ArrowRight":r==="horizontal"&&(x?_():w());break;case"ArrowDown":r==="vertical"&&_();break;case"ArrowLeft":r==="horizontal"&&(x?w():_());break;case"ArrowUp":r==="vertical"&&w();break}const J=p%O;I[J].ref.current?.focus()});return n.jsxRuntimeExports.jsx(ie,{scope:e,disabled:t,direction:i,orientation:r,children:n.jsxRuntimeExports.jsx(y.Slot,{scope:e,children:n.jsxRuntimeExports.jsx(q.Primitive.div,{...a,"data-orientation":r,ref:u,onKeyDown:t?void 0:b})})})}),g="AccordionItem",[se,D]=R(g),K=l.forwardRef((o,c)=>{const{__scopeAccordion:e,value:t,...i}=o,r=j(g,e),a=re(g,e),s=k(e),u=X.useId(),m=t&&a.value.includes(t)||!1,f=r.disabled||o.disabled;return n.jsxRuntimeExports.jsx(se,{scope:e,open:m,disabled:f,triggerId:u,children:n.jsxRuntimeExports.jsx(v.Root,{"data-orientation":r.orientation,"data-state":B(m),...s,...i,ref:c,disabled:f,open:m,onOpenChange:x=>{x?a.onItemOpen(t):a.onItemClose(t)}})})});K.displayName=g;var L="AccordionHeader",z=l.forwardRef((o,c)=>{const{__scopeAccordion:e,...t}=o,i=j(d,e),r=D(L,e);return n.jsxRuntimeExports.jsx(q.Primitive.h3,{"data-orientation":i.orientation,"data-state":B(r.open),"data-disabled":r.disabled?"":void 0,...t,ref:c})});z.displayName=L;var S="AccordionTrigger",G=l.forwardRef((o,c)=>{const{__scopeAccordion:e,...t}=o,i=j(d,e),r=D(S,e),a=te(S,e),s=k(e);return n.jsxRuntimeExports.jsx(y.ItemSlot,{scope:e,children:n.jsxRuntimeExports.jsx(v.Trigger,{"aria-disabled":r.open&&!a.collapsible||void 0,"data-orientation":i.orientation,id:r.triggerId,...s,...t,ref:c})})});G.displayName=S;var U="AccordionContent",Y=l.forwardRef((o,c)=>{const{__scopeAccordion:e,...t}=o,i=j(d,e),r=D(U,e),a=k(e);return n.jsxRuntimeExports.jsx(v.Content,{role:"region","aria-labelledby":r.triggerId,"data-orientation":i.orientation,...a,...t,ref:c,style:{"--radix-accordion-content-height":"var(--radix-collapsible-content-height)","--radix-accordion-content-width":"var(--radix-collapsible-content-width)",...o.style}})});Y.displayName=U;function B(o){return o?"open":"closed"}var ae=M,le=K,de=z,ue=G,pe=Y;exports.Content2=pe;exports.Header=de;exports.Item=le;exports.Root2=ae;exports.Trigger2=ue;
|