wimui 0.50.3 → 0.51.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/data-display/Calendar/Calendar.cjs +1 -1
- package/dist/components/data-display/Calendar/Calendar.js +116 -71
- package/dist/components/data-display/TreeView/TreeView.cjs +1 -1
- package/dist/components/data-display/TreeView/TreeView.js +194 -179
- package/dist/components/form/Combobox/Combobox.cjs +1 -1
- package/dist/components/form/Combobox/Combobox.js +2 -1
- package/dist/components/form/DatePicker/DatePicker.cjs +1 -1
- package/dist/components/form/DatePicker/DatePicker.js +3 -2
- package/dist/components/form/Input/Input.cjs +1 -1
- package/dist/components/form/Input/Input.d.ts +7 -0
- package/dist/components/form/Input/Input.js +51 -50
- package/dist/components/form/InputBase/InputBase.cjs +1 -1
- package/dist/components/form/InputBase/InputBase.d.ts +7 -0
- package/dist/components/form/InputBase/InputBase.js +5 -1
- package/dist/components/form/InputBase/input-base.module.cjs +1 -1
- package/dist/components/form/InputBase/input-base.module.js +1 -1
- package/dist/components/form/TimePicker/TimePicker.cjs +1 -1
- package/dist/components/form/TimePicker/TimePicker.js +1 -0
- package/dist/components/form/TreeSelect/TreeSelect.cjs +1 -1
- package/dist/components/form/TreeSelect/TreeSelect.js +5 -1
- package/dist/components/navigation/Menubar/Menubar.cjs +1 -1
- package/dist/components/navigation/Menubar/Menubar.js +31 -26
- package/dist/components/navigation/SpeedDial/SpeedDial.cjs +1 -1
- package/dist/components/navigation/SpeedDial/SpeedDial.d.ts +2 -2
- package/dist/components/navigation/SpeedDial/SpeedDial.js +53 -39
- package/dist/components/overlay/FocusTrap/FocusTrap.cjs +1 -1
- package/dist/components/overlay/FocusTrap/FocusTrap.js +5 -4
- package/dist/llms-full.txt +34 -2
- package/dist/llms.txt +1 -1
- package/dist/styles.css +1 -1
- package/dist/wimui.umd.css +1 -1
- package/dist/wimui.umd.js +5 -5
- package/package.json +1 -1
|
@@ -40,7 +40,7 @@ var g = c(({ intent: c = "default", variant: g = "outline", fullWidth: _ = !1, c
|
|
|
40
40
|
return l(() => {
|
|
41
41
|
if (I) {
|
|
42
42
|
let e = setTimeout(() => {
|
|
43
|
-
let e = B.current?.querySelector("[data-calendar-day][data-selected]:not(:disabled), [data-calendar-day]:focus");
|
|
43
|
+
let e = B.current?.querySelector("[data-calendar-day][tabindex=\"0\"]:not(:disabled), [data-calendar-day][data-selected]:not(:disabled), [data-calendar-day]:focus");
|
|
44
44
|
e ? e.focus() : B.current?.querySelector("[data-calendar-day]:not([data-other-month]):not(:disabled)")?.focus();
|
|
45
45
|
}, 50);
|
|
46
46
|
return () => clearTimeout(e);
|
|
@@ -69,7 +69,8 @@ var g = c(({ intent: c = "default", variant: g = "outline", fullWidth: _ = !1, c
|
|
|
69
69
|
rightIcons: [{
|
|
70
70
|
name: "ChevronDownIcon",
|
|
71
71
|
rotated: I,
|
|
72
|
-
onClick:
|
|
72
|
+
onClick: $,
|
|
73
|
+
decorative: !0
|
|
73
74
|
}],
|
|
74
75
|
children: /* @__PURE__ */ m("input", {
|
|
75
76
|
id: G,
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
const e=require("../../../_virtual/_rolldown/runtime.cjs"),t=require("../../../node_modules/@radix-ui/react-slot/dist/index.cjs"),
|
|
2
|
+
const e=require("../../../_virtual/_rolldown/runtime.cjs"),t=require("../../../node_modules/@radix-ui/react-slot/dist/index.cjs"),ee=require("../../../i18n/useWimTranslation.cjs"),n=require("../../../hooks/useMergedRef.cjs"),te=require("../InputBase/InputBase.cjs"),ne=require("../FieldTemplate/FieldTemplate.cjs"),r=require("./input.module.cjs");let i=require("react");i=e.__toESM(i,1);let a=require("classnames");a=e.__toESM(a,1);let o=require("react/jsx-runtime");var s=(0,i.forwardRef)(({intent:e=`default`,variant:s=`outline`,fullWidth:re=!1,className:c,disabled:l,leftIcon:u,rightIcon:d,leftIconColor:f,rightIconColor:ie,onLeftIconClick:p,onRightIconClick:m,allowClear:ae=!1,showPasswordToggle:oe=!0,rightIconClassName:se,rightIconRotated:ce,width:le,value:h,defaultValue:ue,onChange:g,type:_,label:v,error:y,required:b,layout:x,id:S,inputClassName:C,showPasswordAriaLabel:w,hidePasswordAriaLabel:T,rightIconAriaLabel:E,rightIconDecorative:D=!1,suffix:O,styles:k,asChild:A=!1,children:j,...M},N)=>{let{t:P}=ee.useWimTranslation(`common`),F=w??P(`a11y.show_password`),I=T??P(`a11y.hide_password`),L=E??P(`a11y.right_icon_action`),[R,z]=(0,i.useState)(ue??``),[B,V]=(0,i.useState)(!1),H=(0,i.useRef)(null),U=n.useMergedRef(N,H),W=h!==void 0,G=W?h:R,K=l,de=e=>{W||z(e.target.value),g?.(e)},fe=()=>{let e=H.current;if(!e)return;let t=Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype,`value`)?.set;t?(t.call(e,``),e.dispatchEvent(new Event(`input`,{bubbles:!0}))):(W||z(``),g&&(e.value=``,g({target:e,currentTarget:e}))),W||z(``)},pe=()=>{V(e=>!e)},me=_===`password`&&oe,q=[];me&&q.push({name:B?`EyeOffIcon`:`EyeIcon`,onClick:e=>pe(),ariaLabel:B?I:F}),d&&(q.some(e=>e.name===d)||q.push({name:d,onClick:m,color:ie,ariaLabel:L,decorative:D,className:se,rotated:ce}));let J=_===`password`&&B?`text`:_,Y=y?`danger`:e,he=(0,i.useId)(),X=S||`wim-input-${he}`,Z=y?`${X}-error`:void 0,Q=O!=null&&O!==``?`${X}-suffix`:void 0,ge=[Z,Q].filter(Boolean).join(` `)||void 0,$=v?`${X}-label`:void 0;return(0,o.jsx)(ne.FieldTemplate,{label:v,error:y,required:b,layout:x,labelId:$,htmlFor:X,errorId:Z,className:c,children:(0,o.jsx)(te.InputBase,{intent:Y,variant:s,fullWidth:re,width:le,disabled:K,leftIcon:u,leftIconColor:f,onLeftIconClick:p,rightIcons:q,suffix:O,suffixId:Q,allowClear:ae,hasValue:!!G,onClear:fe,styles:k,children:(0,o.jsx)(A?t.Root:`input`,{id:X,ref:U,className:(0,a.default)(`wim-input`,r.default.root,r.default[Y],K&&r.default.disabled,r.default[s],C),disabled:K,value:G,onChange:de,type:J,"aria-invalid":Y===`danger`,"aria-describedby":ge,"aria-labelledby":v?$:void 0,"aria-required":b,...M,children:A?(0,o.jsx)(t.Slottable,{children:j}):null})})})});s.displayName=`Input`,exports.Input=s,exports.default=s;
|
|
@@ -47,6 +47,13 @@ export interface InputProps extends Omit<React.ComponentPropsWithoutRef<"input">
|
|
|
47
47
|
hidePasswordAriaLabel?: string;
|
|
48
48
|
/** Aria label for the right icon button */
|
|
49
49
|
rightIconAriaLabel?: string;
|
|
50
|
+
/**
|
|
51
|
+
* Treats the clickable right icon as a pointer-only affordance: it stays
|
|
52
|
+
* clickable but leaves the tab order and is hidden from assistive technology.
|
|
53
|
+
* Use it when the field already does the same thing from the keyboard.
|
|
54
|
+
* @default false
|
|
55
|
+
*/
|
|
56
|
+
rightIconDecorative?: boolean;
|
|
50
57
|
/**
|
|
51
58
|
* Static text shown after the field, inside the same shell — a unit such as
|
|
52
59
|
* `kg`, `%` or `円`. It is announced with the field via `aria-describedby`,
|
|
@@ -1,42 +1,43 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { Root as e, Slottable as t } from "../../../node_modules/@radix-ui/react-slot/dist/index.js";
|
|
3
|
-
import { useWimTranslation as
|
|
4
|
-
import { useMergedRef as
|
|
5
|
-
import { InputBase as
|
|
6
|
-
import { FieldTemplate as
|
|
7
|
-
import
|
|
8
|
-
import { forwardRef as
|
|
9
|
-
import
|
|
10
|
-
import { jsx as
|
|
3
|
+
import { useWimTranslation as ee } from "../../../i18n/useWimTranslation.js";
|
|
4
|
+
import { useMergedRef as te } from "../../../hooks/useMergedRef.js";
|
|
5
|
+
import { InputBase as n } from "../InputBase/InputBase.js";
|
|
6
|
+
import { FieldTemplate as r } from "../FieldTemplate/FieldTemplate.js";
|
|
7
|
+
import i from "./input.module.js";
|
|
8
|
+
import { forwardRef as a, useId as o, useRef as s, useState as c } from "react";
|
|
9
|
+
import l from "classnames";
|
|
10
|
+
import { jsx as u } from "react/jsx-runtime";
|
|
11
11
|
//#region src/components/form/Input/Input.tsx
|
|
12
|
-
var
|
|
13
|
-
let { t:
|
|
14
|
-
W ||
|
|
15
|
-
},
|
|
12
|
+
var d = a(({ intent: a = "default", variant: d = "outline", fullWidth: f = !1, className: ne, disabled: re, leftIcon: ie, rightIcon: p, leftIconColor: ae, rightIconColor: oe, onLeftIconClick: m, onRightIconClick: se, allowClear: h = !1, showPasswordToggle: g = !0, rightIconClassName: _, rightIconRotated: ce, width: le, value: v, defaultValue: ue, onChange: y, type: b, label: x, error: S, required: C, layout: w, id: T, inputClassName: E, showPasswordAriaLabel: D, hidePasswordAriaLabel: O, rightIconAriaLabel: k, rightIconDecorative: A = !1, suffix: j, styles: M, asChild: N = !1, children: P, ...F }, I) => {
|
|
13
|
+
let { t: L } = ee("common"), R = D ?? L("a11y.show_password"), de = O ?? L("a11y.hide_password"), z = k ?? L("a11y.right_icon_action"), [B, V] = c(ue ?? ""), [H, fe] = c(!1), U = s(null), pe = te(I, U), W = v !== void 0, G = W ? v : B, K = re, me = (e) => {
|
|
14
|
+
W || V(e.target.value), y?.(e);
|
|
15
|
+
}, q = () => {
|
|
16
16
|
let e = U.current;
|
|
17
17
|
if (!e) return;
|
|
18
18
|
let t = Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype, "value")?.set;
|
|
19
|
-
t ? (t.call(e, ""), e.dispatchEvent(new Event("input", { bubbles: !0 }))) : (W ||
|
|
19
|
+
t ? (t.call(e, ""), e.dispatchEvent(new Event("input", { bubbles: !0 }))) : (W || V(""), y && (e.value = "", y({
|
|
20
20
|
target: e,
|
|
21
21
|
currentTarget: e
|
|
22
|
-
}))), W ||
|
|
22
|
+
}))), W || V("");
|
|
23
23
|
}, he = () => {
|
|
24
|
-
|
|
25
|
-
}, ge = b === "password" &&
|
|
26
|
-
ge &&
|
|
27
|
-
name:
|
|
24
|
+
fe((e) => !e);
|
|
25
|
+
}, ge = b === "password" && g, J = [];
|
|
26
|
+
ge && J.push({
|
|
27
|
+
name: H ? "EyeOffIcon" : "EyeIcon",
|
|
28
28
|
onClick: (e) => he(),
|
|
29
|
-
ariaLabel:
|
|
30
|
-
}),
|
|
31
|
-
name:
|
|
32
|
-
onClick:
|
|
33
|
-
color:
|
|
34
|
-
ariaLabel:
|
|
35
|
-
|
|
29
|
+
ariaLabel: H ? de : R
|
|
30
|
+
}), p && (J.some((e) => e.name === p) || J.push({
|
|
31
|
+
name: p,
|
|
32
|
+
onClick: se,
|
|
33
|
+
color: oe,
|
|
34
|
+
ariaLabel: z,
|
|
35
|
+
decorative: A,
|
|
36
|
+
className: _,
|
|
36
37
|
rotated: ce
|
|
37
38
|
}));
|
|
38
|
-
let _e = b === "password" &&
|
|
39
|
-
return /* @__PURE__ */
|
|
39
|
+
let _e = b === "password" && H ? "text" : b, Y = S ? "danger" : a, ve = o(), X = T || `wim-input-${ve}`, Z = S ? `${X}-error` : void 0, Q = j != null && j !== "" ? `${X}-suffix` : void 0, ye = [Z, Q].filter(Boolean).join(" ") || void 0, $ = x ? `${X}-label` : void 0;
|
|
40
|
+
return /* @__PURE__ */ u(r, {
|
|
40
41
|
label: x,
|
|
41
42
|
error: S,
|
|
42
43
|
required: C,
|
|
@@ -44,41 +45,41 @@ var f = s(({ intent: s = "default", variant: f = "outline", fullWidth: p = !1, c
|
|
|
44
45
|
labelId: $,
|
|
45
46
|
htmlFor: X,
|
|
46
47
|
errorId: Z,
|
|
47
|
-
className:
|
|
48
|
-
children: /* @__PURE__ */
|
|
49
|
-
intent:
|
|
50
|
-
variant:
|
|
51
|
-
fullWidth:
|
|
48
|
+
className: ne,
|
|
49
|
+
children: /* @__PURE__ */ u(n, {
|
|
50
|
+
intent: Y,
|
|
51
|
+
variant: d,
|
|
52
|
+
fullWidth: f,
|
|
52
53
|
width: le,
|
|
53
54
|
disabled: K,
|
|
54
|
-
leftIcon:
|
|
55
|
-
leftIconColor:
|
|
56
|
-
onLeftIconClick:
|
|
57
|
-
rightIcons:
|
|
58
|
-
suffix:
|
|
55
|
+
leftIcon: ie,
|
|
56
|
+
leftIconColor: ae,
|
|
57
|
+
onLeftIconClick: m,
|
|
58
|
+
rightIcons: J,
|
|
59
|
+
suffix: j,
|
|
59
60
|
suffixId: Q,
|
|
60
|
-
allowClear:
|
|
61
|
+
allowClear: h,
|
|
61
62
|
hasValue: !!G,
|
|
62
|
-
onClear:
|
|
63
|
-
styles:
|
|
64
|
-
children: /* @__PURE__ */
|
|
63
|
+
onClear: q,
|
|
64
|
+
styles: M,
|
|
65
|
+
children: /* @__PURE__ */ u(N ? e : "input", {
|
|
65
66
|
id: X,
|
|
66
|
-
ref:
|
|
67
|
-
className:
|
|
67
|
+
ref: pe,
|
|
68
|
+
className: l("wim-input", i.root, i[Y], K && i.disabled, i[d], E),
|
|
68
69
|
disabled: K,
|
|
69
70
|
value: G,
|
|
70
|
-
onChange:
|
|
71
|
+
onChange: me,
|
|
71
72
|
type: _e,
|
|
72
|
-
"aria-invalid":
|
|
73
|
-
"aria-describedby":
|
|
73
|
+
"aria-invalid": Y === "danger",
|
|
74
|
+
"aria-describedby": ye,
|
|
74
75
|
"aria-labelledby": x ? $ : void 0,
|
|
75
76
|
"aria-required": C,
|
|
76
|
-
...
|
|
77
|
-
children:
|
|
77
|
+
...F,
|
|
78
|
+
children: N ? /* @__PURE__ */ u(t, { children: P }) : null
|
|
78
79
|
})
|
|
79
80
|
})
|
|
80
81
|
});
|
|
81
82
|
});
|
|
82
|
-
|
|
83
|
+
d.displayName = "Input";
|
|
83
84
|
//#endregion
|
|
84
|
-
export {
|
|
85
|
+
export { d as Input, d as default };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
const e=require("../../../_virtual/_rolldown/runtime.cjs"),t=require("../../../i18n/useWimTranslation.cjs"),n=require("../../media/Icon/Icon.cjs"),r=require("./input-base.module.cjs");let i=require("react");i=e.__toESM(i,1);let a=require("classnames");a=e.__toESM(a,1);let o=require("react/jsx-runtime");var s=({children:e,intent:s=`default`,variant:c=`outline`,fullWidth:l=!1,width:u,className:d,disabled:f,leftIcon:p,leftIconColor:m,onLeftIconClick:h,leftIconAriaLabel:g,rightIcons:_=[],suffix:v,suffixId:y,allowClear:b,hasValue:x,onClear:S,clearAriaLabel:C,styles:w})=>{let{t:T}=t.useWimTranslation(`common`),E=g??T(`a11y.left_icon_action`),D=C??T(`a11y.clear_input`),O=typeof u==`string`&&[`xs`,`sm`,`md`,`lg`,`xl`].includes(u),k=i.default.Children.map(e,e=>i.default.isValidElement(e)?i.default.cloneElement(e,{disabled:f?!0:e.props.disabled,className:(0,a.default)(e.props.className,r.default.inner,w?.inner)}):e),A=u!==void 0&&!O&&!l,j=O&&!l?u:void 0,M=e=>f?`disabled`:e||(s===`danger`?`danger`:s===`warning`?`warning`:s===`success`?`success`:`secondary`),N=[..._];b&&x&&!f&&N.push({name:`CloseIcon`,onClick:e=>{e.stopPropagation(),S?.()},ariaLabel:D});let P=j?r.default[`width${j.charAt(0).toUpperCase()}${j.slice(1)}`]:void 0;return(0,o.jsxs)(`div`,{className:(0,a.default)(`wim-input-base`,r.default.root,s&&r.default[s],f&&r.default.disabled,r.default[c],l&&r.default.fullWidth,A&&r.default.hasCustomWidth,P,p&&r.default.hasLeftIcon,(N.length>0||b)&&r.default.hasRightIcon,(N.length>=2||_.length>=1&&b)&&r.default.hasMultipleRightIcons,d,w?.root),style:A?{"--wim-input-width":typeof u==`number`?`${u}px`:u}:void 0,children:[p&&(0,o.jsx)(`div`,{className:(0,a.default)(r.default.icon,r.default.left,h&&r.default.clickable,w?.icon),children:h?(0,o.jsx)(`button`,{type:`button`,onClick:h,className:(0,a.default)(r.default.iconButton,w?.iconButton),"aria-label":E,children:(0,o.jsx)(n.Icon,{name:p,size:`md`,color:M(m)})}):(0,o.jsx)(n.Icon,{name:p,size:`md`,color:M(m)})}),k,v!=null&&v!==``&&(0,o.jsx)(`span`,{id:y,className:(0,a.default)(r.default.suffix,N.length>0&&r.default.suffixClearsIcons),"data-testid":`input-suffix`,children:v}),N.length>0&&(0,o.jsx)(`div`,{className:(0,a.default)(r.default.icons,r.default.right,w?.icons),children:N.map((e,t)=>(0,o.jsx)(`div`,{className:(0,a.default)(r.default.iconItem,e.onClick&&r.default.clickable,e.rotated&&r.default.rotated,e.className,w?.iconItem),children:e.onClick?(0,o.jsx)(`button`,{type:`button`,onClick:e.onClick,className:(0,a.default)(r.default.iconButton,w?.iconButton),"aria-label":e.ariaLabel??T(`a11y.right_icon_action`),children:(0,o.jsx)(n.Icon,{name:e.name,size:`md`,color:M(e.color)})}):(0,o.jsx)(n.Icon,{name:e.name,size:`md`,color:M(e.color)})},`${e.name}-${t}`))})]})};exports.InputBase=s;
|
|
2
|
+
const e=require("../../../_virtual/_rolldown/runtime.cjs"),t=require("../../../i18n/useWimTranslation.cjs"),n=require("../../media/Icon/Icon.cjs"),r=require("./input-base.module.cjs");let i=require("react");i=e.__toESM(i,1);let a=require("classnames");a=e.__toESM(a,1);let o=require("react/jsx-runtime");var s=({children:e,intent:s=`default`,variant:c=`outline`,fullWidth:l=!1,width:u,className:d,disabled:f,leftIcon:p,leftIconColor:m,onLeftIconClick:h,leftIconAriaLabel:g,rightIcons:_=[],suffix:v,suffixId:y,allowClear:b,hasValue:x,onClear:S,clearAriaLabel:C,styles:w})=>{let{t:T}=t.useWimTranslation(`common`),E=g??T(`a11y.left_icon_action`),D=C??T(`a11y.clear_input`),O=typeof u==`string`&&[`xs`,`sm`,`md`,`lg`,`xl`].includes(u),k=i.default.Children.map(e,e=>i.default.isValidElement(e)?i.default.cloneElement(e,{disabled:f?!0:e.props.disabled,className:(0,a.default)(e.props.className,r.default.inner,w?.inner)}):e),A=u!==void 0&&!O&&!l,j=O&&!l?u:void 0,M=e=>f?`disabled`:e||(s===`danger`?`danger`:s===`warning`?`warning`:s===`success`?`success`:`secondary`),N=[..._];b&&x&&!f&&N.push({name:`CloseIcon`,onClick:e=>{e.stopPropagation(),S?.()},ariaLabel:D});let P=j?r.default[`width${j.charAt(0).toUpperCase()}${j.slice(1)}`]:void 0;return(0,o.jsxs)(`div`,{className:(0,a.default)(`wim-input-base`,r.default.root,s&&r.default[s],f&&r.default.disabled,r.default[c],l&&r.default.fullWidth,A&&r.default.hasCustomWidth,P,p&&r.default.hasLeftIcon,(N.length>0||b)&&r.default.hasRightIcon,(N.length>=2||_.length>=1&&b)&&r.default.hasMultipleRightIcons,d,w?.root),style:A?{"--wim-input-width":typeof u==`number`?`${u}px`:u}:void 0,children:[p&&(0,o.jsx)(`div`,{className:(0,a.default)(r.default.icon,r.default.left,h&&r.default.clickable,w?.icon),children:h?(0,o.jsx)(`button`,{type:`button`,onClick:h,className:(0,a.default)(r.default.iconButton,w?.iconButton),"aria-label":E,disabled:f,children:(0,o.jsx)(n.Icon,{name:p,size:`md`,color:M(m)})}):(0,o.jsx)(n.Icon,{name:p,size:`md`,color:M(m)})}),k,v!=null&&v!==``&&(0,o.jsx)(`span`,{id:y,className:(0,a.default)(r.default.suffix,N.length>0&&r.default.suffixClearsIcons),"data-testid":`input-suffix`,children:v}),N.length>0&&(0,o.jsx)(`div`,{className:(0,a.default)(r.default.icons,r.default.right,w?.icons),children:N.map((e,t)=>(0,o.jsx)(`div`,{className:(0,a.default)(r.default.iconItem,e.onClick&&r.default.clickable,e.rotated&&r.default.rotated,e.className,w?.iconItem),children:e.onClick?(0,o.jsx)(`button`,{type:`button`,onClick:e.onClick,className:(0,a.default)(r.default.iconButton,w?.iconButton),disabled:f,tabIndex:e.decorative?-1:void 0,"aria-hidden":e.decorative||void 0,"aria-label":e.decorative?void 0:e.ariaLabel??T(`a11y.right_icon_action`),children:(0,o.jsx)(n.Icon,{name:e.name,size:`md`,color:M(e.color)})}):(0,o.jsx)(n.Icon,{name:e.name,size:`md`,color:M(e.color)})},`${e.name}-${t}`))})]})};exports.InputBase=s;
|
|
@@ -9,6 +9,13 @@ export type InputBaseIcon = {
|
|
|
9
9
|
className?: string;
|
|
10
10
|
/** Whether the icon should be rotated 180deg */
|
|
11
11
|
rotated?: boolean;
|
|
12
|
+
/**
|
|
13
|
+
* Marks a clickable icon as a pointer-only affordance that repeats what the
|
|
14
|
+
* control already does from the keyboard (the chevron of a combobox, the
|
|
15
|
+
* clock of a time field). It stays clickable but is taken out of the tab
|
|
16
|
+
* order and hidden from assistive technology, so it needs no name.
|
|
17
|
+
*/
|
|
18
|
+
decorative?: boolean;
|
|
12
19
|
};
|
|
13
20
|
export type InputBaseProps = {
|
|
14
21
|
/** Inner form control element(s) wrapped by the shell */
|
|
@@ -36,6 +36,7 @@ var s = ({ children: s, intent: c = "default", variant: l = "outline", fullWidth
|
|
|
36
36
|
onClick: g,
|
|
37
37
|
className: i(n.iconButton, T?.iconButton),
|
|
38
38
|
"aria-label": D,
|
|
39
|
+
disabled: p,
|
|
39
40
|
children: /* @__PURE__ */ a(t, {
|
|
40
41
|
name: m,
|
|
41
42
|
size: "md",
|
|
@@ -62,7 +63,10 @@ var s = ({ children: s, intent: c = "default", variant: l = "outline", fullWidth
|
|
|
62
63
|
type: "button",
|
|
63
64
|
onClick: e.onClick,
|
|
64
65
|
className: i(n.iconButton, T?.iconButton),
|
|
65
|
-
|
|
66
|
+
disabled: p,
|
|
67
|
+
tabIndex: e.decorative ? -1 : void 0,
|
|
68
|
+
"aria-hidden": e.decorative || void 0,
|
|
69
|
+
"aria-label": e.decorative ? void 0 : e.ariaLabel ?? E("a11y.right_icon_action"),
|
|
66
70
|
children: /* @__PURE__ */ a(t, {
|
|
67
71
|
name: e.name,
|
|
68
72
|
size: "md",
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
var e=`
|
|
2
|
+
var e=`_root_43cv5_36`,t=`_ghost_43cv5_81`,n=`_disabled_43cv5_85`,r=`_icon_43cv5_94`,i=`_iconItem_43cv5_94`,a=`_danger_43cv5_7`,o=`_warning_43cv5_110`,s=`_success_43cv5_113`,c=`_hasLeftIcon_43cv5_146`,l=`_hasRightIcon_43cv5_149`,u=`_hasMultipleRightIcons_43cv5_152`,d=`_widthXs_43cv5_155`,f=`_widthSm_43cv5_158`,p=`_widthMd_43cv5_161`,m=`_widthLg_43cv5_164`,h=`_widthXl_43cv5_167`,g=`_hasCustomWidth_43cv5_170`,_=`_fullWidth_43cv5_175`,v=`_clickable_43cv5_197`,y=`_left_43cv5_200`,b=`_suffix_43cv5_203`,x=`_suffixClearsIcons_43cv5_211`,S=`_icons_43cv5_214`,C=`_right_43cv5_229`,w=`_rotated_43cv5_241`,T=`_iconButton_43cv5_244`,E=`_inner_43cv5_270`,D={root:e,ghost:t,disabled:n,icon:r,iconItem:i,danger:a,warning:o,success:s,hasLeftIcon:c,hasRightIcon:l,hasMultipleRightIcons:u,widthXs:d,widthSm:f,widthMd:p,widthLg:m,widthXl:h,hasCustomWidth:g,fullWidth:_,clickable:v,left:y,suffix:b,suffixClearsIcons:x,icons:S,right:C,rotated:w,iconButton:T,inner:E};exports.clickable=v,exports.danger=a,exports.default=D,exports.disabled=n,exports.fullWidth=_,exports.ghost=t,exports.hasCustomWidth=g,exports.hasLeftIcon=c,exports.hasMultipleRightIcons=u,exports.hasRightIcon=l,exports.icon=r,exports.iconButton=T,exports.iconItem=i,exports.icons=S,exports.inner=E,exports.left=y,exports.right=C,exports.root=e,exports.rotated=w,exports.success=s,exports.suffix=b,exports.suffixClearsIcons=x,exports.warning=o,exports.widthLg=m,exports.widthMd=p,exports.widthSm=f,exports.widthXl=h,exports.widthXs=d;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
//#region src/components/form/InputBase/input-base.module.scss
|
|
3
|
-
var e = "
|
|
3
|
+
var e = "_root_43cv5_36", t = "_ghost_43cv5_81", n = "_disabled_43cv5_85", r = "_icon_43cv5_94", i = "_iconItem_43cv5_94", a = "_danger_43cv5_7", o = "_warning_43cv5_110", s = "_success_43cv5_113", c = "_hasLeftIcon_43cv5_146", l = "_hasRightIcon_43cv5_149", u = "_hasMultipleRightIcons_43cv5_152", d = "_widthXs_43cv5_155", f = "_widthSm_43cv5_158", p = "_widthMd_43cv5_161", m = "_widthLg_43cv5_164", h = "_widthXl_43cv5_167", g = "_hasCustomWidth_43cv5_170", _ = "_fullWidth_43cv5_175", v = "_clickable_43cv5_197", y = "_left_43cv5_200", b = "_suffix_43cv5_203", x = "_suffixClearsIcons_43cv5_211", S = "_icons_43cv5_214", C = "_right_43cv5_229", w = "_rotated_43cv5_241", T = "_iconButton_43cv5_244", E = "_inner_43cv5_270", D = {
|
|
4
4
|
root: e,
|
|
5
5
|
ghost: t,
|
|
6
6
|
disabled: n,
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
const e=require("../../../_virtual/_rolldown/runtime.cjs"),t=require("../../../hooks/useMergedRef.cjs"),n=require("../Input/input.module.cjs"),r=require("../Input/Input.cjs"),i=require("./time-picker.module.cjs");let a=require("react");a=e.__toESM(a,1);let o=require("classnames");o=e.__toESM(o,1);let s=require("react/jsx-runtime");var c=(0,a.forwardRef)(({intent:e=`default`,variant:c=`outline`,fullWidth:l=!1,className:u,disabled:d,allowClear:f=!0,value:p,defaultValue:m,onChange:h,...g},_)=>{let v=p!==void 0,[y,b]=(0,a.useState)(m??``),x=v?p:y,S=(0,a.useRef)(null),C=t.useMergedRef(_,S),w=f&&!!x&&!d,T=w?void 0:`ClockIcon`;return(0,s.jsx)(r.Input,{ref:C,type:`time`,allowClear:w,intent:e,variant:c,fullWidth:l,className:(0,o.default)(`wim-time-picker`,u),inputClassName:(0,o.default)(n.default.root,i.default.input),disabled:d,value:p,defaultValue:m,onChange:e=>{v||b(e.target.value),h?.(e)},rightIcon:T,rightIconColor:d||w?void 0:`primary`,onRightIconClick:w?void 0:()=>{S.current?.showPicker?.()},...g})});c.displayName=`TimePicker`,exports.TimePicker=c;
|
|
2
|
+
const e=require("../../../_virtual/_rolldown/runtime.cjs"),t=require("../../../hooks/useMergedRef.cjs"),n=require("../Input/input.module.cjs"),r=require("../Input/Input.cjs"),i=require("./time-picker.module.cjs");let a=require("react");a=e.__toESM(a,1);let o=require("classnames");o=e.__toESM(o,1);let s=require("react/jsx-runtime");var c=(0,a.forwardRef)(({intent:e=`default`,variant:c=`outline`,fullWidth:l=!1,className:u,disabled:d,allowClear:f=!0,value:p,defaultValue:m,onChange:h,...g},_)=>{let v=p!==void 0,[y,b]=(0,a.useState)(m??``),x=v?p:y,S=(0,a.useRef)(null),C=t.useMergedRef(_,S),w=f&&!!x&&!d,T=w?void 0:`ClockIcon`;return(0,s.jsx)(r.Input,{ref:C,type:`time`,allowClear:w,intent:e,variant:c,fullWidth:l,className:(0,o.default)(`wim-time-picker`,u),inputClassName:(0,o.default)(n.default.root,i.default.input),disabled:d,value:p,defaultValue:m,onChange:e=>{v||b(e.target.value),h?.(e)},rightIcon:T,rightIconColor:d||w?void 0:`primary`,onRightIconClick:w?void 0:()=>{S.current?.showPicker?.()},rightIconDecorative:!0,...g})});c.displayName=`TimePicker`,exports.TimePicker=c;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
const e=require("../../../_virtual/_rolldown/runtime.cjs"),t=require("../../../node_modules/@radix-ui/react-slot/dist/index.cjs"),n=require("../../layout/Transition/Transition.cjs"),ee=require("../../overlay/FocusTrap/FocusTrap.cjs"),r=require("../../../hooks/useMergedRef.cjs"),i=require("../InputBase/InputBase.cjs"),a=require("../FieldTemplate/FieldTemplate.cjs"),te=require("../../data-display/TreeView/TreeView.cjs"),o=require("./tree-select.module.cjs");let s=require("react");s=e.__toESM(s,1);let c=require("classnames");c=e.__toESM(c,1);let l=require("react/jsx-runtime");function u(e){return e.map(e=>({value:e.value,label:e.label,disabled:e.disabled,icon:e.icon,children:e.children?u(e.children):void 0}))}var d=(0,s.forwardRef)(({treeData:e=[],value:d,onChange:f,placeholder:p,label:m,error:h,required:g,layout:_,className:v,disabled:y=!1,multiple:b=!1,searchable:x=!1,defaultExpandedKeys:S=[],allowClear:C=!1,checkStrategy:w=`cascade`,id:T,width:E,fullWidth:D=!1,asChild:O=!1,children:ne,...re},ie)=>{let ae=(0,s.useId)(),k=T||`wim-tree-select-${ae}`,A=m?`${k}-label`:void 0,j=h?`${k}-error`:void 0,M=`${k}-trigger`,N=`${k}-dropdown`,[P,F]=(0,s.useState)(!1),[I,L]=(0,s.useState)(b?[]:``),R=(0,s.useRef)(null),z=(0,s.useRef)(null),B=d!==void 0,V=B?d:I;(0,s.useEffect)(()=>{let e=e=>{R.current&&!R.current.contains(e.target)&&F(!1)};return document.addEventListener(`mousedown`,e),()=>document.removeEventListener(`mousedown`,e)},[]),(0,s.useEffect)(()=>{if(P){let e=setTimeout(()=>{let e=R.current?.querySelector(`[data-testid="tree-view-search-input"]`);e?e.focus():(R.current?.querySelector(`[data-testid="tree-view-root"]`))?.focus()},100);return()=>clearTimeout(e)}},[P]);let H=()=>{if(!y){let e=!P;F(e),e||z.current?.focus()}},U=e=>{if(!y){if(!P){(e.key===`Enter`||e.key===` `||e.key===`ArrowDown`)&&(e.preventDefault(),F(!0));return}e.key===`Escape`&&(e.preventDefault(),F(!1),z.current?.focus())}},W=(0,s.useMemo)(()=>{let t={},n=e=>{e.forEach(e=>{t[e.value]=e,e.children&&n(e.children)})};return n(e),t},[e]),G=()=>{if(b){let e=Array.isArray(V)?V:[];return e.length===0?null:e.map(e=>W[e]?W[e].label:e).reduce((e,t)=>[e,`, `,t])}{let e=V;return e?W[e]?W[e].label:e:null}},K=e=>{let t;b?t=e:(t=e[0]||``,F(!1),z.current?.focus()),B||L(t),f&&f(t)},q=()=>{if(y)return;let e=b?[]:``;B||L(e),f&&f(e)},oe=(0,s.useMemo)(()=>u(e),[e]),J=(0,s.useMemo)(()=>b?Array.isArray(V)?V:[]:V?[V]:[],[V,b]),Y=G(),{"aria-label":X,"aria-labelledby":Z,"aria-describedby":se,...ce}=re,Q=typeof p==`string`?p:`Select`,le=O?t.Root:`div`,$=r.useMergedRef(R,ie);return(0,l.jsx)(a.FieldTemplate,{label:m,error:h,required:g,layout:_,labelId:A,errorId:j,className:(0,c.default)(o.default.container,v),children:(0,l.jsxs)(le,{className:(0,c.default)(`wim-tree-select`,o.default.root,D&&o.default.fullWidth),ref:$,...ce,children:[(0,l.jsx)(t.Slottable,{children:ne}),(0,l.jsx)(i.InputBase,{disabled:y,allowClear:C,hasValue:!!Y,onClear:q,intent:h?`danger`:`default`,width:E,fullWidth:D,rightIcons:[{name:`ChevronDownIcon`,rotated:P,onClick:H}],className:(0,c.default)(P&&o.default.open),children:(0,l.jsx)(`div`,{id:M,className:(0,c.default)(o.default.trigger,y&&o.default.disabled),onClick:H,onKeyDown:U,tabIndex:y?-1:0,role:`combobox`,"aria-expanded":P,"aria-haspopup":`tree`,"aria-controls":P?N:void 0,"aria-disabled":y,"aria-labelledby":A||Z,"aria-label":m?void 0:X||Q,"aria-describedby":j||se,"aria-required":g,"aria-invalid":!!h,ref:z,children:(0,l.jsx)(`div`,{className:(0,c.default)(o.default.value,!Y&&o.default.placeholder),children:Y||p})})}),(0,l.jsx)(n.Transition,{show:P&&!y,preset:`fade`,className:o.default.dropdown,children:(0,l.jsx)(`div`,{id:N,children:(0,l.jsx)(ee.FocusTrap,{active:P,initialFocus:!1,children:(0,l.jsx)(`div`,{role:`dialog`,"aria-modal":`true`,"aria-labelledby":A||Z,"aria-label":m?void 0:X||Q,children:(0,l.jsx)(te.TreeView,{multiSelect:b,defaultSelectedValues:J,defaultCheckedValues:b?J:[],nodes:oe,onCheckedChange:K,onSelectedChange:K,checkable:b,checkStrategy:w,searchable:x,defaultExpandedValues:S,styles:{root:o.default.treeView,item:o.default.treeViewItem,search:o.default.treeViewSearch}})})})})})]})})});d.displayName=`TreeSelect`,exports.TreeSelect=d;
|
|
2
|
+
const e=require("../../../_virtual/_rolldown/runtime.cjs"),t=require("../../../node_modules/@radix-ui/react-slot/dist/index.cjs"),n=require("../../layout/Transition/Transition.cjs"),ee=require("../../overlay/FocusTrap/FocusTrap.cjs"),r=require("../../../hooks/useMergedRef.cjs"),i=require("../InputBase/InputBase.cjs"),a=require("../FieldTemplate/FieldTemplate.cjs"),te=require("../../data-display/TreeView/TreeView.cjs"),o=require("./tree-select.module.cjs");let s=require("react");s=e.__toESM(s,1);let c=require("classnames");c=e.__toESM(c,1);let l=require("react/jsx-runtime");function u(e){return e.map(e=>({value:e.value,label:e.label,disabled:e.disabled,icon:e.icon,children:e.children?u(e.children):void 0}))}var d=(0,s.forwardRef)(({treeData:e=[],value:d,onChange:f,placeholder:p,label:m,error:h,required:g,layout:_,className:v,disabled:y=!1,multiple:b=!1,searchable:x=!1,defaultExpandedKeys:S=[],allowClear:C=!1,checkStrategy:w=`cascade`,id:T,width:E,fullWidth:D=!1,asChild:O=!1,children:ne,...re},ie)=>{let ae=(0,s.useId)(),k=T||`wim-tree-select-${ae}`,A=m?`${k}-label`:void 0,j=h?`${k}-error`:void 0,M=`${k}-trigger`,N=`${k}-dropdown`,[P,F]=(0,s.useState)(!1),[I,L]=(0,s.useState)(b?[]:``),R=(0,s.useRef)(null),z=(0,s.useRef)(null),B=d!==void 0,V=B?d:I;(0,s.useEffect)(()=>{let e=e=>{R.current&&!R.current.contains(e.target)&&F(!1)};return document.addEventListener(`mousedown`,e),()=>document.removeEventListener(`mousedown`,e)},[]),(0,s.useEffect)(()=>{if(P){let e=setTimeout(()=>{let e=R.current?.querySelector(`[data-testid="tree-view-search-input"]`);e?e.focus():(R.current?.querySelector(`[data-testid="tree-view-root"]`))?.focus()},100);return()=>clearTimeout(e)}},[P]);let H=()=>{if(!y){let e=!P;F(e),e||z.current?.focus()}},U=e=>{if(!y){if(!P){(e.key===`Enter`||e.key===` `||e.key===`ArrowDown`)&&(e.preventDefault(),F(!0));return}e.key===`Escape`&&(e.preventDefault(),F(!1),z.current?.focus())}},W=(0,s.useMemo)(()=>{let t={},n=e=>{e.forEach(e=>{t[e.value]=e,e.children&&n(e.children)})};return n(e),t},[e]),G=()=>{if(b){let e=Array.isArray(V)?V:[];return e.length===0?null:e.map(e=>W[e]?W[e].label:e).reduce((e,t)=>[e,`, `,t])}{let e=V;return e?W[e]?W[e].label:e:null}},K=e=>{let t;b?t=e:(t=e[0]||``,F(!1),z.current?.focus()),B||L(t),f&&f(t)},q=()=>{if(y)return;let e=b?[]:``;B||L(e),f&&f(e)},oe=(0,s.useMemo)(()=>u(e),[e]),J=(0,s.useMemo)(()=>b?Array.isArray(V)?V:[]:V?[V]:[],[V,b]),Y=G(),{"aria-label":X,"aria-labelledby":Z,"aria-describedby":se,...ce}=re,Q=typeof p==`string`?p:`Select`,le=O?t.Root:`div`,$=r.useMergedRef(R,ie);return(0,l.jsx)(a.FieldTemplate,{label:m,error:h,required:g,layout:_,labelId:A,errorId:j,className:(0,c.default)(o.default.container,v),children:(0,l.jsxs)(le,{className:(0,c.default)(`wim-tree-select`,o.default.root,D&&o.default.fullWidth),ref:$,...ce,children:[(0,l.jsx)(t.Slottable,{children:ne}),(0,l.jsx)(i.InputBase,{disabled:y,allowClear:C,hasValue:!!Y,onClear:q,intent:h?`danger`:`default`,width:E,fullWidth:D,rightIcons:[{name:`ChevronDownIcon`,rotated:P,onClick:H,decorative:!0}],className:(0,c.default)(P&&o.default.open),children:(0,l.jsx)(`div`,{id:M,className:(0,c.default)(o.default.trigger,y&&o.default.disabled),onClick:H,onKeyDown:U,tabIndex:y?-1:0,role:`combobox`,"aria-expanded":P,"aria-haspopup":`tree`,"aria-controls":P?N:void 0,"aria-disabled":y,"aria-labelledby":A||Z,"aria-label":m?void 0:X||Q,"aria-describedby":j||se,"aria-required":g,"aria-invalid":!!h,ref:z,children:(0,l.jsx)(`div`,{className:(0,c.default)(o.default.value,!Y&&o.default.placeholder),children:Y||p})})}),(0,l.jsx)(n.Transition,{show:P&&!y,preset:`fade`,className:o.default.dropdown,children:(0,l.jsx)(`div`,{id:N,children:(0,l.jsx)(ee.FocusTrap,{active:P,initialFocus:!1,children:(0,l.jsx)(`div`,{role:`dialog`,"aria-modal":`true`,"aria-labelledby":A||Z,"aria-label":m?void 0:X||Q,onKeyDown:e=>{e.key===`Escape`&&(e.preventDefault(),e.stopPropagation(),F(!1),z.current?.focus())},children:(0,l.jsx)(te.TreeView,{multiSelect:b,defaultSelectedValues:J,defaultCheckedValues:b?J:[],nodes:oe,onCheckedChange:K,onSelectedChange:K,checkable:b,checkStrategy:w,searchable:x,defaultExpandedValues:S,styles:{root:o.default.treeView,item:o.default.treeViewItem,search:o.default.treeViewSearch}})})})})})]})})});d.displayName=`TreeSelect`,exports.TreeSelect=d;
|
|
@@ -102,7 +102,8 @@ var _ = s(({ treeData: s = [], value: _, onChange: v, placeholder: y, label: b,
|
|
|
102
102
|
rightIcons: [{
|
|
103
103
|
name: "ChevronDownIcon",
|
|
104
104
|
rotated: R,
|
|
105
|
-
onClick: K
|
|
105
|
+
onClick: K,
|
|
106
|
+
decorative: !0
|
|
106
107
|
}],
|
|
107
108
|
className: p(R && o.open),
|
|
108
109
|
children: /* @__PURE__ */ m("div", {
|
|
@@ -142,6 +143,9 @@ var _ = s(({ treeData: s = [], value: _, onChange: v, placeholder: y, label: b,
|
|
|
142
143
|
"aria-modal": "true",
|
|
143
144
|
"aria-labelledby": P || Q,
|
|
144
145
|
"aria-label": b ? void 0 : Z || $,
|
|
146
|
+
onKeyDown: (e) => {
|
|
147
|
+
e.key === "Escape" && (e.preventDefault(), e.stopPropagation(), z(!1), U.current?.focus());
|
|
148
|
+
},
|
|
145
149
|
children: /* @__PURE__ */ m(te, {
|
|
146
150
|
multiSelect: E,
|
|
147
151
|
defaultSelectedValues: Y,
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
const e=require("../../../_virtual/_rolldown/runtime.cjs"),t=require("../../../node_modules/@radix-ui/react-slot/dist/index.cjs"),n=require("../../layout/Transition/Transition.cjs"),r=require("../../_internal/BaseListItem/BaseListItem.cjs"),i=require("./menubar.module.cjs");let a=require("react");a=e.__toESM(a,1);let o=require("classnames");o=e.__toESM(o,1);let s=require("react/jsx-runtime");var c=(0,a.createContext)(null),l=(0,a.createContext)(null),u=()=>{let e=(0,a.useContext)(c);if(!e)throw Error(`Menubar compound parts must be used within <Menubar>`);return e},d=()=>{let e=(0,a.useContext)(l);if(!e)throw Error(`Menubar.Trigger/Content/Item must be used within <Menubar.Menu>`);return e},f=a.default.forwardRef(({asChild:e=!1,className:n,children:r,onKeyDown:l,...u},d)=>{let[f,p]=(0,a.useState)(null),m=(0,a.useRef)(new Map),h=(0,a.useRef)(null),g=(0,a.useCallback)(e=>{h.current=e,typeof d==`function`?d(e):d&&(d.current=e)},[d]),_=(0,a.useCallback)((e,t)=>{t?m.current.set(e,t):m.current.delete(e)},[]),v=(0,a.useCallback)(()=>Array.from(m.current.keys()),[]),y=(0,a.useCallback)(e=>{m.current.get(e)?.focus()},[]);(0,a.useEffect)(()=>{if(!f)return;let e=e=>{h.current&&!h.current.contains(e.target)&&p(null)},t=e=>{e.key===`Escape`&&(p(null),f&&y(f))};return document.addEventListener(`mousedown`,e),document.addEventListener(`keydown`,t),()=>{document.removeEventListener(`mousedown`,e),document.removeEventListener(`keydown`,t)}},[f,y]);let b=e=>{if(l?.(e),e.defaultPrevented)return;let t=v();if(t.length===0)return;let n=f??t.find(e=>m.current.get(e)===document.activeElement)??null;if(!n)return;let r=t.indexOf(n);if(!(r<0)){if(e.key===`ArrowRight`){e.preventDefault();let n=t[(r+1)%t.length];f&&p(n),y(n)}else if(e.key===`ArrowLeft`){e.preventDefault();let n=t[(r-1+t.length)%t.length];f&&p(n),y(n)}else if(e.key===`Home`){e.preventDefault();let n=t[0];f&&p(n),y(n)}else if(e.key===`End`){e.preventDefault();let n=t[t.length-1];f&&p(n),y(n)}}},x=(0,a.useMemo)(()=>({openMenuId:f,setOpenMenuId:p,registerTrigger:_,getTriggerIds:v,focusTrigger:y}),[f,_,v,y]),S=e?t.Root:`div`;return(0,s.jsx)(c.Provider,{value:x,children:(0,s.jsx)(S,{ref:g,role:`menubar`,className:(0,o.default)(`wim-menubar`,i.default.root,n),onKeyDown:b,...u,children:(0,s.jsx)(t.Slottable,{children:r})})})});f.displayName=`Menubar`;var p=a.default.forwardRef(({value:e,disabled:t=!1,className:n,children:r,...c},d)=>{let{openMenuId:f,setOpenMenuId:p}=u(),
|
|
2
|
+
const e=require("../../../_virtual/_rolldown/runtime.cjs"),t=require("../../../node_modules/@radix-ui/react-slot/dist/index.cjs"),n=require("../../layout/Transition/Transition.cjs"),r=require("../../_internal/BaseListItem/BaseListItem.cjs"),i=require("./menubar.module.cjs");let a=require("react");a=e.__toESM(a,1);let o=require("classnames");o=e.__toESM(o,1);let s=require("react/jsx-runtime");var c=(0,a.createContext)(null),l=(0,a.createContext)(null),u=()=>{let e=(0,a.useContext)(c);if(!e)throw Error(`Menubar compound parts must be used within <Menubar>`);return e},d=()=>{let e=(0,a.useContext)(l);if(!e)throw Error(`Menubar.Trigger/Content/Item must be used within <Menubar.Menu>`);return e},f=a.default.forwardRef(({asChild:e=!1,className:n,children:r,onKeyDown:l,...u},d)=>{let[f,p]=(0,a.useState)(null),m=(0,a.useRef)(new Map),h=(0,a.useRef)(null),g=(0,a.useCallback)(e=>{h.current=e,typeof d==`function`?d(e):d&&(d.current=e)},[d]),_=(0,a.useCallback)((e,t)=>{t?m.current.set(e,t):m.current.delete(e)},[]),v=(0,a.useCallback)(()=>Array.from(m.current.keys()),[]),y=(0,a.useCallback)(e=>{m.current.get(e)?.focus()},[]);(0,a.useEffect)(()=>{if(!f)return;let e=e=>{h.current&&!h.current.contains(e.target)&&p(null)},t=e=>{e.key===`Escape`&&(p(null),f&&y(f))};return document.addEventListener(`mousedown`,e),document.addEventListener(`keydown`,t),()=>{document.removeEventListener(`mousedown`,e),document.removeEventListener(`keydown`,t)}},[f,y]);let b=e=>{if(l?.(e),e.defaultPrevented)return;let t=v();if(t.length===0)return;let n=f??t.find(e=>m.current.get(e)===document.activeElement)??null;if(!n)return;let r=t.indexOf(n);if(!(r<0)){if(e.key===`ArrowRight`){e.preventDefault();let n=t[(r+1)%t.length];f&&p(n),y(n)}else if(e.key===`ArrowLeft`){e.preventDefault();let n=t[(r-1+t.length)%t.length];f&&p(n),y(n)}else if(e.key===`Home`){e.preventDefault();let n=t[0];f&&p(n),y(n)}else if(e.key===`End`){e.preventDefault();let n=t[t.length-1];f&&p(n),y(n)}}},x=(0,a.useMemo)(()=>({openMenuId:f,setOpenMenuId:p,registerTrigger:_,getTriggerIds:v,focusTrigger:y}),[f,_,v,y]),S=e?t.Root:`div`;return(0,s.jsx)(c.Provider,{value:x,children:(0,s.jsx)(S,{ref:g,role:`menubar`,className:(0,o.default)(`wim-menubar`,i.default.root,n),onKeyDown:b,...u,children:(0,s.jsx)(t.Slottable,{children:r})})})});f.displayName=`Menubar`;var p=a.default.forwardRef(({value:e,disabled:t=!1,className:n,children:r,...c},d)=>{let{openMenuId:f,setOpenMenuId:p,focusTrigger:m}=u(),h=(0,a.useId)(),g=`wim-menubar-trigger-${e}-${h}`,_=`wim-menubar-content-${e}-${h}`,v=f===e,y=()=>{t||p(e)},b=()=>{m(e),p(null)},x=()=>{t||p(v?null:e)},S=(0,a.useMemo)(()=>({menuId:e,triggerId:g,contentId:_,isOpen:v,open:y,close:b,toggle:x}),[e,g,_,v,t]);return(0,s.jsx)(l.Provider,{value:S,children:(0,s.jsx)(`div`,{ref:d,role:`none`,"data-disabled":t||void 0,className:(0,o.default)(i.default.menu,n),...c,children:r})})});p.displayName=`Menubar.Menu`;var m=a.default.forwardRef(({asChild:e=!1,className:n,children:r,onKeyDown:c,onMouseEnter:l,...f},p)=>{let{openMenuId:m,registerTrigger:h}=u(),{triggerId:g,contentId:_,isOpen:v,open:y,toggle:b,menuId:x}=d(),S=!!f.disabled,C=(0,a.useCallback)(e=>{h(x,e),typeof p==`function`?p(e):p&&(p.current=e)},[h,x,p]),w=e=>{c?.(e),!(e.defaultPrevented||S)&&(e.key===`ArrowDown`||e.key===`Enter`||e.key===` `)&&(e.preventDefault(),y())},T=e=>{l?.(e),m&&!S&&y()};return(0,s.jsx)(e?t.Root:`button`,{...f,ref:C,type:e?void 0:`button`,id:g,role:`menuitem`,"aria-haspopup":`menu`,"aria-expanded":v,"aria-controls":v?_:void 0,disabled:S,className:(0,o.default)(i.default.trigger,v&&i.default.triggerOpen,n),onClick:b,onKeyDown:w,onMouseEnter:T,children:(0,s.jsx)(t.Slottable,{children:r})})});m.displayName=`Menubar.Trigger`;var h=a.default.forwardRef(({align:e=`start`,className:t,children:r,...c},l)=>{let{contentId:u,triggerId:f,isOpen:p,close:m}=d(),[h,g]=(0,a.useState)(-1),[_,v]=(0,a.useState)(p),y=(0,a.useRef)(null);p!==_&&(v(p),g(p?0:-1));let b=(0,a.useCallback)(e=>{y.current=e,typeof l==`function`?l(e):l&&(l.current=e)},[l]);(0,a.useEffect)(()=>{!p||h<0||Array.from(y.current?.querySelectorAll(`[role="menuitem"]:not([aria-disabled="true"])`)??[])[h]?.focus()},[h,p]);let x=e=>{let t=Array.from(y.current?.querySelectorAll(`[role="menuitem"]:not([aria-disabled="true"])`)??[]);if(t.length!==0)switch(e.key){case`ArrowDown`:e.preventDefault(),g(e=>e<t.length-1?e+1:0);break;case`ArrowUp`:e.preventDefault(),g(e=>e>0?e-1:t.length-1);break;case`Home`:e.preventDefault(),g(0);break;case`End`:e.preventDefault(),g(t.length-1);break;case`Tab`:m()}};return(0,s.jsx)(n.Transition,{...c,ref:b,show:p,preset:`fade`,id:u,role:`menu`,"aria-labelledby":f,className:(0,o.default)(i.default.content,e===`end`?i.default.alignEnd:i.default.alignStart,t),onKeyDown:x,children:r})});h.displayName=`Menubar.Content`;var g=a.default.forwardRef(({children:e,onSelect:t,onClick:n,disabled:a=!1,className:c,...l},u)=>{let{close:f}=d(),p=e=>{a||(e.stopPropagation(),t?.(),n?.(e),f())};return(0,s.jsx)(r.BaseListItem,{...l,ref:u,className:(0,o.default)(i.default.item,c),disabled:a,role:`menuitem`,tabIndex:-1,onClick:p,onKeyDown:e=>{!a&&(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),p(e))},children:e})});g.displayName=`Menubar.Item`;var _=a.default.forwardRef(({className:e,...t},n)=>(0,s.jsx)(`div`,{ref:n,role:`separator`,className:(0,o.default)(i.default.separator,e),...t}));_.displayName=`Menubar.Separator`;var v=f;v.Menu=p,v.Trigger=m,v.Content=h,v.Item=g,v.Separator=_,exports.Menubar=v,exports.default=v;
|
|
@@ -86,27 +86,29 @@ var g = o(null), _ = o(null), v = () => {
|
|
|
86
86
|
});
|
|
87
87
|
b.displayName = "Menubar";
|
|
88
88
|
var x = a.forwardRef(({ value: e, disabled: t = !1, className: n, children: r, ...a }, o) => {
|
|
89
|
-
let { openMenuId: s, setOpenMenuId: c } = v(),
|
|
89
|
+
let { openMenuId: s, setOpenMenuId: c, focusTrigger: l } = v(), f = u(), p = `wim-menubar-trigger-${e}-${f}`, g = `wim-menubar-content-${e}-${f}`, y = s === e, b = () => {
|
|
90
90
|
t || c(e);
|
|
91
|
-
},
|
|
92
|
-
|
|
93
|
-
}, S =
|
|
91
|
+
}, x = () => {
|
|
92
|
+
l(e), c(null);
|
|
93
|
+
}, S = () => {
|
|
94
|
+
t || c(y ? null : e);
|
|
95
|
+
}, C = d(() => ({
|
|
94
96
|
menuId: e,
|
|
95
|
-
triggerId:
|
|
96
|
-
contentId:
|
|
97
|
-
isOpen:
|
|
98
|
-
open:
|
|
99
|
-
close:
|
|
100
|
-
toggle:
|
|
97
|
+
triggerId: p,
|
|
98
|
+
contentId: g,
|
|
99
|
+
isOpen: y,
|
|
100
|
+
open: b,
|
|
101
|
+
close: x,
|
|
102
|
+
toggle: S
|
|
101
103
|
}), [
|
|
102
104
|
e,
|
|
103
|
-
f,
|
|
104
105
|
p,
|
|
105
106
|
g,
|
|
107
|
+
y,
|
|
106
108
|
t
|
|
107
109
|
]);
|
|
108
110
|
return /* @__PURE__ */ h(_.Provider, {
|
|
109
|
-
value:
|
|
111
|
+
value: C,
|
|
110
112
|
children: /* @__PURE__ */ h("div", {
|
|
111
113
|
ref: o,
|
|
112
114
|
role: "none",
|
|
@@ -149,39 +151,42 @@ var S = a.forwardRef(({ asChild: n = !1, className: r, children: a, onKeyDown: o
|
|
|
149
151
|
});
|
|
150
152
|
S.displayName = "Menubar.Trigger";
|
|
151
153
|
var C = a.forwardRef(({ align: e = "start", className: t, children: r, ...a }, o) => {
|
|
152
|
-
let { contentId: c, triggerId: u, isOpen: d } = y(), [
|
|
153
|
-
d !==
|
|
154
|
-
let
|
|
155
|
-
|
|
154
|
+
let { contentId: c, triggerId: u, isOpen: d, close: g } = y(), [_, v] = p(-1), [b, x] = p(d), S = f(null);
|
|
155
|
+
d !== b && (x(d), v(d ? 0 : -1));
|
|
156
|
+
let C = s((e) => {
|
|
157
|
+
S.current = e, typeof o == "function" ? o(e) : o && (o.current = e);
|
|
156
158
|
}, [o]);
|
|
157
159
|
l(() => {
|
|
158
|
-
!d ||
|
|
159
|
-
}, [
|
|
160
|
-
let
|
|
161
|
-
let t = Array.from(
|
|
160
|
+
!d || _ < 0 || Array.from(S.current?.querySelectorAll("[role=\"menuitem\"]:not([aria-disabled=\"true\"])") ?? [])[_]?.focus();
|
|
161
|
+
}, [_, d]);
|
|
162
|
+
let w = (e) => {
|
|
163
|
+
let t = Array.from(S.current?.querySelectorAll("[role=\"menuitem\"]:not([aria-disabled=\"true\"])") ?? []);
|
|
162
164
|
if (t.length !== 0) switch (e.key) {
|
|
163
165
|
case "ArrowDown":
|
|
164
|
-
e.preventDefault(),
|
|
166
|
+
e.preventDefault(), v((e) => e < t.length - 1 ? e + 1 : 0);
|
|
165
167
|
break;
|
|
166
168
|
case "ArrowUp":
|
|
167
|
-
e.preventDefault(),
|
|
169
|
+
e.preventDefault(), v((e) => e > 0 ? e - 1 : t.length - 1);
|
|
168
170
|
break;
|
|
169
171
|
case "Home":
|
|
170
|
-
e.preventDefault(),
|
|
172
|
+
e.preventDefault(), v(0);
|
|
173
|
+
break;
|
|
174
|
+
case "End":
|
|
175
|
+
e.preventDefault(), v(t.length - 1);
|
|
171
176
|
break;
|
|
172
|
-
case "
|
|
177
|
+
case "Tab": g();
|
|
173
178
|
}
|
|
174
179
|
};
|
|
175
180
|
return /* @__PURE__ */ h(n, {
|
|
176
181
|
...a,
|
|
177
|
-
ref:
|
|
182
|
+
ref: C,
|
|
178
183
|
show: d,
|
|
179
184
|
preset: "fade",
|
|
180
185
|
id: c,
|
|
181
186
|
role: "menu",
|
|
182
187
|
"aria-labelledby": u,
|
|
183
188
|
className: m(i.content, e === "end" ? i.alignEnd : i.alignStart, t),
|
|
184
|
-
onKeyDown:
|
|
189
|
+
onKeyDown: w,
|
|
185
190
|
children: r
|
|
186
191
|
});
|
|
187
192
|
});
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
const e=require("../../../_virtual/_rolldown/runtime.cjs"),t=require("../../form/FloatButton/FloatButton.cjs"),
|
|
2
|
+
const e=require("../../../_virtual/_rolldown/runtime.cjs"),t=require("../../../i18n/useWimTranslation.cjs"),n=require("../../form/FloatButton/FloatButton.cjs"),r=require("./speed-dial.module.cjs");let i=require("react");i=e.__toESM(i,1);let a=require("classnames");a=e.__toESM(a,1);let o=require("react/jsx-runtime");var s=i.default.forwardRef(({actions:e,icon:s=`PlusIcon`,activeIcon:c=`CloseIcon`,direction:l=`up`,trigger:u=`hover`,open:d,onOpenChange:f,className:p,"aria-label":m,...h},g)=>{let{t:_}=t.useWimTranslation(`common`),[v,y]=(0,i.useState)(!1),b=d??v,x=(0,i.useRef)(null),S=(0,i.useRef)(!1),C=e=>{y(e),f?.(e)},w=()=>{u===`hover`&&C(!0)},T=()=>{u===`hover`&&C(!1)},E=()=>{u===`click`&&C(!b)},D=e=>{(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),S.current=!b,C(!b))};return(0,i.useEffect)(()=>{b&&S.current&&x.current?.querySelector(`button`)?.focus()},[b]),(0,o.jsxs)(`div`,{ref:g,className:(0,a.default)(`wim-speed-dial`,r.default.root,r.default[l],b&&r.default.open,p),onMouseEnter:w,onMouseLeave:T,onKeyDown:e=>{e.key===`Escape`&&b&&(e.preventDefault(),S.current=!1,C(!1),e.currentTarget.querySelector(`[aria-haspopup]`)?.focus())},onBlur:e=>{S.current&&(e.currentTarget.contains(e.relatedTarget)||(S.current=!1,C(!1)))},...h,children:[(0,o.jsx)(`div`,{ref:x,className:r.default.actions,inert:!b,children:e.map((e,t)=>(0,o.jsx)(`div`,{className:r.default.actionWrapper,style:{transitionDelay:b?`${t*50}ms`:`0ms`},children:(0,o.jsx)(n.FloatButton,{iconName:e.icon,label:e.label,size:`sm`,intent:e.intent,className:e.className,onClick:()=>{e.onClick?.(),u===`click`&&C(!1)},position:`inline`})},t))}),(0,o.jsx)(n.FloatButton,{iconName:b?c:s,onClick:E,className:r.default.trigger,position:`inline`,"aria-expanded":b,"aria-haspopup":`true`,"aria-label":m??_(b?`a11y.close_menu`:`a11y.open_menu`),onKeyDown:D})]})});s.displayName=`SpeedDial`,exports.SpeedDial=s;
|
|
@@ -36,7 +36,7 @@ export type SpeedDialProps = React.ComponentPropsWithoutRef<"div"> & {
|
|
|
36
36
|
/**
|
|
37
37
|
* Accessible name for the trigger button.
|
|
38
38
|
* Lands on the inner `FloatButton`, not on the wrapper `div`.
|
|
39
|
-
*
|
|
39
|
+
* Defaults to a translated "Open menu" / "Close menu" (en / ja / pt), following the open state.
|
|
40
40
|
*/
|
|
41
41
|
"aria-label"?: string;
|
|
42
42
|
};
|
|
@@ -76,7 +76,7 @@ export declare const SpeedDial: React.ForwardRefExoticComponent<Omit<React.Detai
|
|
|
76
76
|
/**
|
|
77
77
|
* Accessible name for the trigger button.
|
|
78
78
|
* Lands on the inner `FloatButton`, not on the wrapper `div`.
|
|
79
|
-
*
|
|
79
|
+
* Defaults to a translated "Open menu" / "Close menu" (en / ja / pt), following the open state.
|
|
80
80
|
*/
|
|
81
81
|
"aria-label"?: string;
|
|
82
82
|
} & React.RefAttributes<HTMLDivElement>>;
|
|
@@ -1,54 +1,68 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import {
|
|
3
|
-
import t from "
|
|
4
|
-
import n
|
|
5
|
-
import i from "
|
|
6
|
-
import
|
|
2
|
+
import { useWimTranslation as e } from "../../../i18n/useWimTranslation.js";
|
|
3
|
+
import { FloatButton as t } from "../../form/FloatButton/FloatButton.js";
|
|
4
|
+
import n from "./speed-dial.module.js";
|
|
5
|
+
import r, { useEffect as i, useRef as a, useState as o } from "react";
|
|
6
|
+
import s from "classnames";
|
|
7
|
+
import { jsx as c, jsxs as l } from "react/jsx-runtime";
|
|
7
8
|
//#region src/components/navigation/SpeedDial/SpeedDial.tsx
|
|
8
|
-
var
|
|
9
|
-
let [
|
|
10
|
-
|
|
11
|
-
},
|
|
12
|
-
|
|
13
|
-
},
|
|
14
|
-
|
|
15
|
-
},
|
|
16
|
-
|
|
9
|
+
var u = r.forwardRef(({ actions: r, icon: u = "PlusIcon", activeIcon: d = "CloseIcon", direction: f = "up", trigger: p = "hover", open: m, onOpenChange: h, className: g, "aria-label": _, ...v }, y) => {
|
|
10
|
+
let { t: b } = e("common"), [x, S] = o(!1), C = m ?? x, w = a(null), T = a(!1), E = (e) => {
|
|
11
|
+
S(e), h?.(e);
|
|
12
|
+
}, D = () => {
|
|
13
|
+
p === "hover" && E(!0);
|
|
14
|
+
}, O = () => {
|
|
15
|
+
p === "hover" && E(!1);
|
|
16
|
+
}, k = () => {
|
|
17
|
+
p === "click" && E(!C);
|
|
18
|
+
}, A = (e) => {
|
|
19
|
+
(e.key === "Enter" || e.key === " ") && (e.preventDefault(), T.current = !C, E(!C));
|
|
17
20
|
};
|
|
18
|
-
return
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
21
|
+
return i(() => {
|
|
22
|
+
C && T.current && w.current?.querySelector("button")?.focus();
|
|
23
|
+
}, [C]), /* @__PURE__ */ l("div", {
|
|
24
|
+
ref: y,
|
|
25
|
+
className: s("wim-speed-dial", n.root, n[f], C && n.open, g),
|
|
26
|
+
onMouseEnter: D,
|
|
27
|
+
onMouseLeave: O,
|
|
28
|
+
onKeyDown: (e) => {
|
|
29
|
+
e.key === "Escape" && C && (e.preventDefault(), T.current = !1, E(!1), e.currentTarget.querySelector("[aria-haspopup]")?.focus());
|
|
30
|
+
},
|
|
31
|
+
onBlur: (e) => {
|
|
32
|
+
T.current && (e.currentTarget.contains(e.relatedTarget) || (T.current = !1, E(!1)));
|
|
33
|
+
},
|
|
34
|
+
...v,
|
|
35
|
+
children: [/* @__PURE__ */ c("div", {
|
|
36
|
+
ref: w,
|
|
37
|
+
className: n.actions,
|
|
38
|
+
inert: !C,
|
|
39
|
+
children: r.map((e, r) => /* @__PURE__ */ c("div", {
|
|
40
|
+
className: n.actionWrapper,
|
|
41
|
+
style: { transitionDelay: C ? `${r * 50}ms` : "0ms" },
|
|
42
|
+
children: /* @__PURE__ */ c(t, {
|
|
43
|
+
iconName: e.icon,
|
|
44
|
+
label: e.label,
|
|
32
45
|
size: "sm",
|
|
33
|
-
intent:
|
|
34
|
-
className:
|
|
46
|
+
intent: e.intent,
|
|
47
|
+
className: e.className,
|
|
35
48
|
onClick: () => {
|
|
36
|
-
|
|
49
|
+
e.onClick?.(), p === "click" && E(!1);
|
|
37
50
|
},
|
|
38
51
|
position: "inline"
|
|
39
52
|
})
|
|
40
53
|
}, r))
|
|
41
|
-
}), /* @__PURE__ */
|
|
42
|
-
iconName:
|
|
43
|
-
onClick:
|
|
44
|
-
className:
|
|
54
|
+
}), /* @__PURE__ */ c(t, {
|
|
55
|
+
iconName: C ? d : u,
|
|
56
|
+
onClick: k,
|
|
57
|
+
className: n.trigger,
|
|
45
58
|
position: "inline",
|
|
46
|
-
"aria-expanded":
|
|
59
|
+
"aria-expanded": C,
|
|
47
60
|
"aria-haspopup": "true",
|
|
48
|
-
"aria-label":
|
|
61
|
+
"aria-label": _ ?? b(C ? "a11y.close_menu" : "a11y.open_menu"),
|
|
62
|
+
onKeyDown: A
|
|
49
63
|
})]
|
|
50
64
|
});
|
|
51
65
|
});
|
|
52
|
-
|
|
66
|
+
u.displayName = "SpeedDial";
|
|
53
67
|
//#endregion
|
|
54
|
-
export {
|
|
68
|
+
export { u as SpeedDial };
|