wimui 0.50.4 → 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.
@@ -1,2 +1,2 @@
1
1
  "use client";
2
- const e=require("../../../_virtual/_rolldown/runtime.cjs"),t=require("../../../i18n/useWimTranslation.cjs"),n=require("../../../icon/chevron-left.cjs"),r=require("../../../icon/chevron-right.cjs"),i=require("../../media/Icon/Icon.cjs"),a=require("./useCalendar.cjs"),o=require("./calendar.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");var u=({className:e,disabled:u=!1,value:d,defaultValue:f,onChange:p,rangeMode:m=!1,range:h,defaultRange:g,onRangeChange:_,minDate:v,maxDate:y,disabledDates:b,isDateDisabled:x,weekStartsOn:S=0,...C})=>{let{t:w,i18n:T}=t.useWimTranslation(`common`),{handlePrevMonth:E,handleNextMonth:D,handlePrevYear:O,handleNextYear:k,year:A,month:j,daysGrid:M,isDateDisabled:N}=a.useCalendar({defaultValue:f||m&&g?.start||void 0,value:d||m&&h?.start||void 0,minDate:v,maxDate:y,disabledDates:b,isDateDisabled:x,weekStartsOn:S}),[P,F]=(0,s.useState)(g||{start:null,end:null}),I=h||P,L=e=>{if(!(u||N(e))){if(m){let t;if(!I.start||I.start&&I.end)t={start:e,end:null};else{let n=I.start,r=e;t=r<n?{start:r,end:n}:{start:n,end:r}}h||F(t),_?.(t)}else p?.(e)}},R=e=>{if(!u)switch(e.key){case`PageUp`:e.preventDefault(),e.ctrlKey?O():E();break;case`PageDown`:e.preventDefault(),e.ctrlKey?k():D();break;case`Home`:e.preventDefault();break;case`End`:e.preventDefault()}},z=e=>m?a.isSameDay(e,I.start)||a.isSameDay(e,I.end):a.isSameDay(e,d||null),B=e=>{if(!m||!I.start||!I.end)return!1;let t=new Date(e.getFullYear(),e.getMonth(),e.getDate()).getTime(),n=new Date(I.start.getFullYear(),I.start.getMonth(),I.start.getDate()).getTime(),r=new Date(I.end.getFullYear(),I.end.getMonth(),I.end.getDate()).getTime();return t>n&&t<r},V=[...(0,s.useMemo)(()=>{let e=new Intl.DateTimeFormat(T.language,{weekday:`short`,timeZone:`UTC`});return Array.from({length:7},(t,n)=>e.format(new Date(Date.UTC(1970,0,4+n))))},[T.language])];return S===1&&V.push(V.shift()),(0,l.jsxs)(`div`,{className:(0,c.default)(`wim-calendar`,o.default.root,u&&o.default.disabled,e),onKeyDown:R,role:`application`,"aria-label":w(`a11y.calendar`),...C,children:[(0,l.jsxs)(`div`,{className:o.default.header,children:[(0,l.jsx)(`button`,{type:`button`,className:o.default.navBtn,onClick:E,disabled:u,"aria-label":w(`a11y.prev_month`),children:(0,l.jsx)(i.Icon,{component:n.default,size:`sm`})}),(0,l.jsxs)(`div`,{className:o.default.title,"aria-live":`polite`,children:[A,` / `,j+1]}),(0,l.jsx)(`button`,{type:`button`,className:o.default.navBtn,onClick:D,disabled:u,"aria-label":w(`a11y.next_month`),children:(0,l.jsx)(i.Icon,{component:r.default,size:`sm`})})]}),(0,l.jsxs)(`div`,{className:o.default.grid,role:`grid`,children:[(0,l.jsx)(`div`,{role:`row`,children:V.map((e,t)=>{let n=(t+(S||0))%7;return(0,l.jsx)(`div`,{role:`columnheader`,className:(0,c.default)(o.default.weekday,{[o.default.sunday]:n===0,[o.default.saturday]:n===6}),children:e},t)})}),(()=>{let e=[];for(let t=0;t<M.length;t+=7)e.push(M.slice(t,t+7));return e.map((e,t)=>(0,l.jsx)(`div`,{role:`row`,children:e.map((e,n)=>{let r=t*7+n,i=z(e.date),s=B(e.date),d=u||N(e.date),f=a.isToday(e.date),p=!e.currentMonth,h=m&&a.isSameDay(e.date,I.start),g=m&&a.isSameDay(e.date,I.end),_=`${e.date.getFullYear()}-${e.date.getMonth()+1}-${e.date.getDate()}`;return(0,l.jsx)(`button`,{type:`button`,role:`gridcell`,"aria-selected":i,"aria-current":f?`date`:void 0,"data-calendar-day":!0,"data-selected":i||void 0,"data-other-month":p||void 0,className:(0,c.default)(o.default.day,{[o.default.selected]:i,[o.default.inRange]:s,[o.default.rangeStart]:h,[o.default.rangeEnd]:g,[o.default.disabled]:d,[o.default.today]:f,[o.default.otherMonth]:p,[o.default.sunday]:e.date.getDay()===0,[o.default.saturday]:e.date.getDay()===6}),onClick:()=>L(e.date),onKeyDown:t=>{(t.key===`Enter`||t.key===` `)&&(t.preventDefault(),L(e.date))},disabled:d,"aria-label":_,children:e.date.getDate()},r)})},t))})()]})]})};exports.Calendar=u;
2
+ const e=require("../../../_virtual/_rolldown/runtime.cjs"),t=require("../../../i18n/useWimTranslation.cjs"),n=require("../../../icon/chevron-left.cjs"),r=require("../../../icon/chevron-right.cjs"),i=require("../../media/Icon/Icon.cjs"),a=require("./useCalendar.cjs"),o=require("./calendar.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");var u=(e,t)=>new Date(e.getFullYear(),e.getMonth(),e.getDate()+t),d=(e,t)=>{let n=new Date(e.getFullYear(),e.getMonth()+t+1,0).getDate();return new Date(e.getFullYear(),e.getMonth()+t,Math.min(e.getDate(),n))},f=e=>`${e.getFullYear()}-${e.getMonth()+1}-${e.getDate()}`,p=366,m=({className:e,disabled:m=!1,value:h,defaultValue:g,onChange:_,rangeMode:v=!1,range:y,defaultRange:b,onRangeChange:x,minDate:S,maxDate:C,disabledDates:w,isDateDisabled:T,weekStartsOn:E=0,...D})=>{let{t:O,i18n:k}=t.useWimTranslation(`common`),{viewDate:A,setViewDate:j,year:M,month:N,daysGrid:P,isDateDisabled:F}=a.useCalendar({defaultValue:g||v&&b?.start||void 0,value:h||v&&y?.start||void 0,minDate:S,maxDate:C,disabledDates:w,isDateDisabled:T,weekStartsOn:E}),[I,L]=(0,s.useState)(b||{start:null,end:null}),R=y||I,z=(0,s.useRef)(null),[B,V]=(0,s.useState)(A),H=(0,s.useRef)(!1),U=e=>e.getFullYear()===M&&e.getMonth()===N,W=U(B)&&!F(B)?B:P.find(e=>e.currentMonth&&!F(e.date))?.date??null;(0,s.useEffect)(()=>{H.current&&(H.current=!1,z.current?.querySelector(`[data-calendar-day][tabindex="0"]`)?.focus())},[B,M,N]);let G=(e,t)=>{let n=e;for(let e=0;e<p&&F(n);e++)n=u(n,t);return!F(n)&&(H.current=!0,V(n),U(n)||j(new Date(n.getFullYear(),n.getMonth(),1)),!0)},K=e=>{let t=d(U(B)?B:new Date(M,N,1),e);V(t),j(new Date(t.getFullYear(),t.getMonth(),1))},q=e=>{if(!(m||F(e))){if(v){let t;if(!R.start||R.start&&R.end)t={start:e,end:null};else{let n=R.start,r=e;t=r<n?{start:r,end:n}:{start:n,end:r}}y||L(t),x?.(t)}else _?.(e)}},J=e=>{if(m)return;let t=e.target.closest(`[data-calendar-day]`),n=t?P.find(e=>f(e.date)===t.getAttribute(`data-date`))?.date:void 0,r=t=>{e.preventDefault(),!(n&&G(d(n,t),t>0?-1:1))&&K(t)};switch(e.key){case`PageUp`:r(e.ctrlKey||e.shiftKey?-12:-1);break;case`PageDown`:r(e.ctrlKey||e.shiftKey?12:1);break;case`ArrowLeft`:case`ArrowRight`:case`ArrowUp`:case`ArrowDown`:{if(!n)return;e.preventDefault();let t={ArrowLeft:-1,ArrowRight:1,ArrowUp:-7,ArrowDown:7}[e.key];G(u(n,t),t);break}case`Home`:case`End`:{if(!n)return;e.preventDefault();let t=(n.getDay()-E+7)%7;e.key===`Home`?G(u(n,-t),1):G(u(n,6-t),-1);break}}},Y=e=>v?a.isSameDay(e,R.start)||a.isSameDay(e,R.end):a.isSameDay(e,h||null),X=e=>{if(!v||!R.start||!R.end)return!1;let t=new Date(e.getFullYear(),e.getMonth(),e.getDate()).getTime(),n=new Date(R.start.getFullYear(),R.start.getMonth(),R.start.getDate()).getTime(),r=new Date(R.end.getFullYear(),R.end.getMonth(),R.end.getDate()).getTime();return t>n&&t<r},Z=[...(0,s.useMemo)(()=>{let e=new Intl.DateTimeFormat(k.language,{weekday:`short`,timeZone:`UTC`});return Array.from({length:7},(t,n)=>e.format(new Date(Date.UTC(1970,0,4+n))))},[k.language])];return E===1&&Z.push(Z.shift()),(0,l.jsxs)(`div`,{className:(0,c.default)(`wim-calendar`,o.default.root,m&&o.default.disabled,e),onKeyDown:J,role:`application`,"aria-label":O(`a11y.calendar`),...D,children:[(0,l.jsxs)(`div`,{className:o.default.header,children:[(0,l.jsx)(`button`,{type:`button`,className:o.default.navBtn,onClick:()=>K(-1),disabled:m,"aria-label":O(`a11y.prev_month`),children:(0,l.jsx)(i.Icon,{component:n.default,size:`sm`})}),(0,l.jsxs)(`div`,{className:o.default.title,"aria-live":`polite`,children:[M,` / `,N+1]}),(0,l.jsx)(`button`,{type:`button`,className:o.default.navBtn,onClick:()=>K(1),disabled:m,"aria-label":O(`a11y.next_month`),children:(0,l.jsx)(i.Icon,{component:r.default,size:`sm`})})]}),(0,l.jsxs)(`div`,{className:o.default.grid,role:`grid`,ref:z,children:[(0,l.jsx)(`div`,{role:`row`,children:Z.map((e,t)=>{let n=(t+(E||0))%7;return(0,l.jsx)(`div`,{role:`columnheader`,className:(0,c.default)(o.default.weekday,{[o.default.sunday]:n===0,[o.default.saturday]:n===6}),children:e},t)})}),(()=>{let e=[];for(let t=0;t<P.length;t+=7)e.push(P.slice(t,t+7));return e.map((e,t)=>(0,l.jsx)(`div`,{role:`row`,children:e.map((e,n)=>{let r=t*7+n,i=Y(e.date),s=X(e.date),u=m||F(e.date),d=a.isToday(e.date),p=!e.currentMonth,h=v&&a.isSameDay(e.date,R.start),g=v&&a.isSameDay(e.date,R.end),_=f(e.date),y=!!W&&a.isSameDay(e.date,W);return(0,l.jsx)(`button`,{type:`button`,role:`gridcell`,"aria-selected":i,"aria-current":d?`date`:void 0,"data-calendar-day":!0,"data-date":_,tabIndex:y?0:-1,onFocus:()=>V(e.date),"data-selected":i||void 0,"data-other-month":p||void 0,className:(0,c.default)(o.default.day,{[o.default.selected]:i,[o.default.inRange]:s,[o.default.rangeStart]:h,[o.default.rangeEnd]:g,[o.default.disabled]:u,[o.default.today]:d,[o.default.otherMonth]:p,[o.default.sunday]:e.date.getDay()===0,[o.default.saturday]:e.date.getDay()===6}),onClick:()=>q(e.date),onKeyDown:t=>{(t.key===`Enter`||t.key===` `)&&(t.preventDefault(),q(e.date))},disabled:u,"aria-label":_,children:e.date.getDate()},r)})},t))})()]})]})};exports.Calendar=m;
@@ -5,32 +5,50 @@ import n from "../../../icon/chevron-right.js";
5
5
  import { Icon as r } from "../../media/Icon/Icon.js";
6
6
  import { isSameDay as i, isToday as a, useCalendar as o } from "./useCalendar.js";
7
7
  import s from "./calendar.module.js";
8
- import { useMemo as c, useState as l } from "react";
9
- import u from "classnames";
10
- import { jsx as d, jsxs as f } from "react/jsx-runtime";
8
+ import { useEffect as c, useMemo as l, useRef as u, useState as d } from "react";
9
+ import f from "classnames";
10
+ import { jsx as p, jsxs as m } from "react/jsx-runtime";
11
11
  //#region src/components/data-display/Calendar/Calendar.tsx
12
- var p = ({ className: p, disabled: m = !1, value: h, defaultValue: g, onChange: _, rangeMode: v = !1, range: y, defaultRange: b, onRangeChange: x, minDate: S, maxDate: C, disabledDates: w, isDateDisabled: T, weekStartsOn: E = 0, ...D }) => {
13
- let { t: O, i18n: k } = e("common"), { handlePrevMonth: A, handleNextMonth: j, handlePrevYear: M, handleNextYear: N, year: P, month: F, daysGrid: I, isDateDisabled: L } = o({
14
- defaultValue: g || v && b?.start || void 0,
15
- value: h || v && y?.start || void 0,
16
- minDate: S,
17
- maxDate: C,
18
- disabledDates: w,
19
- isDateDisabled: T,
20
- weekStartsOn: E
21
- }), [R, z] = l(b || {
12
+ var h = (e, t) => new Date(e.getFullYear(), e.getMonth(), e.getDate() + t), g = (e, t) => {
13
+ let n = new Date(e.getFullYear(), e.getMonth() + t + 1, 0).getDate();
14
+ return new Date(e.getFullYear(), e.getMonth() + t, Math.min(e.getDate(), n));
15
+ }, _ = (e) => `${e.getFullYear()}-${e.getMonth() + 1}-${e.getDate()}`, v = 366, y = ({ className: y, disabled: b = !1, value: x, defaultValue: S, onChange: C, rangeMode: w = !1, range: T, defaultRange: E, onRangeChange: D, minDate: O, maxDate: k, disabledDates: A, isDateDisabled: ee, weekStartsOn: j = 0, ...M }) => {
16
+ let { t: N, i18n: P } = e("common"), { viewDate: F, setViewDate: I, year: L, month: R, daysGrid: z, isDateDisabled: B } = o({
17
+ defaultValue: S || w && E?.start || void 0,
18
+ value: x || w && T?.start || void 0,
19
+ minDate: O,
20
+ maxDate: k,
21
+ disabledDates: A,
22
+ isDateDisabled: ee,
23
+ weekStartsOn: j
24
+ }), [V, H] = d(E || {
22
25
  start: null,
23
26
  end: null
24
- }), B = y || R, V = (e) => {
25
- if (!(m || L(e))) {
26
- if (v) {
27
+ }), U = T || V, W = u(null), [G, K] = d(F), q = u(!1), J = (e) => e.getFullYear() === L && e.getMonth() === R, Y = J(G) && !B(G) ? G : z.find((e) => e.currentMonth && !B(e.date))?.date ?? null;
28
+ c(() => {
29
+ q.current && (q.current = !1, W.current?.querySelector("[data-calendar-day][tabindex=\"0\"]")?.focus());
30
+ }, [
31
+ G,
32
+ L,
33
+ R
34
+ ]);
35
+ let X = (e, t) => {
36
+ let n = e;
37
+ for (let e = 0; e < v && B(n); e++) n = h(n, t);
38
+ return !B(n) && (q.current = !0, K(n), J(n) || I(new Date(n.getFullYear(), n.getMonth(), 1)), !0);
39
+ }, Z = (e) => {
40
+ let t = g(J(G) ? G : new Date(L, R, 1), e);
41
+ K(t), I(new Date(t.getFullYear(), t.getMonth(), 1));
42
+ }, Q = (e) => {
43
+ if (!(b || B(e))) {
44
+ if (w) {
27
45
  let t;
28
- if (!B.start || B.start && B.end) t = {
46
+ if (!U.start || U.start && U.end) t = {
29
47
  start: e,
30
48
  end: null
31
49
  };
32
50
  else {
33
- let n = B.start, r = e;
51
+ let n = U.start, r = e;
34
52
  t = r < n ? {
35
53
  start: r,
36
54
  end: n
@@ -39,84 +57,108 @@ var p = ({ className: p, disabled: m = !1, value: h, defaultValue: g, onChange:
39
57
  end: r
40
58
  };
41
59
  }
42
- y || z(t), x?.(t);
43
- } else _?.(e);
60
+ T || H(t), D?.(t);
61
+ } else C?.(e);
44
62
  }
45
- }, H = (e) => {
46
- if (!m) switch (e.key) {
63
+ }, te = (e) => {
64
+ if (b) return;
65
+ let t = e.target.closest("[data-calendar-day]"), n = t ? z.find((e) => _(e.date) === t.getAttribute("data-date"))?.date : void 0, r = (t) => {
66
+ e.preventDefault(), !(n && X(g(n, t), t > 0 ? -1 : 1)) && Z(t);
67
+ };
68
+ switch (e.key) {
47
69
  case "PageUp":
48
- e.preventDefault(), e.ctrlKey ? M() : A();
70
+ r(e.ctrlKey || e.shiftKey ? -12 : -1);
49
71
  break;
50
72
  case "PageDown":
51
- e.preventDefault(), e.ctrlKey ? N() : j();
73
+ r(e.ctrlKey || e.shiftKey ? 12 : 1);
52
74
  break;
75
+ case "ArrowLeft":
76
+ case "ArrowRight":
77
+ case "ArrowUp":
78
+ case "ArrowDown": {
79
+ if (!n) return;
80
+ e.preventDefault();
81
+ let t = {
82
+ ArrowLeft: -1,
83
+ ArrowRight: 1,
84
+ ArrowUp: -7,
85
+ ArrowDown: 7
86
+ }[e.key];
87
+ X(h(n, t), t);
88
+ break;
89
+ }
53
90
  case "Home":
91
+ case "End": {
92
+ if (!n) return;
54
93
  e.preventDefault();
94
+ let t = (n.getDay() - j + 7) % 7;
95
+ e.key === "Home" ? X(h(n, -t), 1) : X(h(n, 6 - t), -1);
55
96
  break;
56
- case "End": e.preventDefault();
97
+ }
57
98
  }
58
- }, U = (e) => v ? i(e, B.start) || i(e, B.end) : i(e, h || null), W = (e) => {
59
- if (!v || !B.start || !B.end) return !1;
60
- let t = new Date(e.getFullYear(), e.getMonth(), e.getDate()).getTime(), n = new Date(B.start.getFullYear(), B.start.getMonth(), B.start.getDate()).getTime(), r = new Date(B.end.getFullYear(), B.end.getMonth(), B.end.getDate()).getTime();
99
+ }, ne = (e) => w ? i(e, U.start) || i(e, U.end) : i(e, x || null), re = (e) => {
100
+ if (!w || !U.start || !U.end) return !1;
101
+ let t = new Date(e.getFullYear(), e.getMonth(), e.getDate()).getTime(), n = new Date(U.start.getFullYear(), U.start.getMonth(), U.start.getDate()).getTime(), r = new Date(U.end.getFullYear(), U.end.getMonth(), U.end.getDate()).getTime();
61
102
  return t > n && t < r;
62
- }, G = [...c(() => {
63
- let e = new Intl.DateTimeFormat(k.language, {
103
+ }, $ = [...l(() => {
104
+ let e = new Intl.DateTimeFormat(P.language, {
64
105
  weekday: "short",
65
106
  timeZone: "UTC"
66
107
  });
67
108
  return Array.from({ length: 7 }, (t, n) => e.format(new Date(Date.UTC(1970, 0, 4 + n))));
68
- }, [k.language])];
69
- return E === 1 && G.push(G.shift()), /* @__PURE__ */ f("div", {
70
- className: u("wim-calendar", s.root, m && s.disabled, p),
71
- onKeyDown: H,
109
+ }, [P.language])];
110
+ return j === 1 && $.push($.shift()), /* @__PURE__ */ m("div", {
111
+ className: f("wim-calendar", s.root, b && s.disabled, y),
112
+ onKeyDown: te,
72
113
  role: "application",
73
- "aria-label": O("a11y.calendar"),
74
- ...D,
75
- children: [/* @__PURE__ */ f("div", {
114
+ "aria-label": N("a11y.calendar"),
115
+ ...M,
116
+ children: [/* @__PURE__ */ m("div", {
76
117
  className: s.header,
77
118
  children: [
78
- /* @__PURE__ */ d("button", {
119
+ /* @__PURE__ */ p("button", {
79
120
  type: "button",
80
121
  className: s.navBtn,
81
- onClick: A,
82
- disabled: m,
83
- "aria-label": O("a11y.prev_month"),
84
- children: /* @__PURE__ */ d(r, {
122
+ onClick: () => Z(-1),
123
+ disabled: b,
124
+ "aria-label": N("a11y.prev_month"),
125
+ children: /* @__PURE__ */ p(r, {
85
126
  component: t,
86
127
  size: "sm"
87
128
  })
88
129
  }),
89
- /* @__PURE__ */ f("div", {
130
+ /* @__PURE__ */ m("div", {
90
131
  className: s.title,
91
132
  "aria-live": "polite",
92
133
  children: [
93
- P,
134
+ L,
94
135
  " / ",
95
- F + 1
136
+ R + 1
96
137
  ]
97
138
  }),
98
- /* @__PURE__ */ d("button", {
139
+ /* @__PURE__ */ p("button", {
99
140
  type: "button",
100
141
  className: s.navBtn,
101
- onClick: j,
102
- disabled: m,
103
- "aria-label": O("a11y.next_month"),
104
- children: /* @__PURE__ */ d(r, {
142
+ onClick: () => Z(1),
143
+ disabled: b,
144
+ "aria-label": N("a11y.next_month"),
145
+ children: /* @__PURE__ */ p(r, {
105
146
  component: n,
106
147
  size: "sm"
107
148
  })
108
149
  })
109
150
  ]
110
- }), /* @__PURE__ */ f("div", {
151
+ }), /* @__PURE__ */ m("div", {
111
152
  className: s.grid,
112
153
  role: "grid",
113
- children: [/* @__PURE__ */ d("div", {
154
+ ref: W,
155
+ children: [/* @__PURE__ */ p("div", {
114
156
  role: "row",
115
- children: G.map((e, t) => {
116
- let n = (t + (E || 0)) % 7;
117
- return /* @__PURE__ */ d("div", {
157
+ children: $.map((e, t) => {
158
+ let n = (t + (j || 0)) % 7;
159
+ return /* @__PURE__ */ p("div", {
118
160
  role: "columnheader",
119
- className: u(s.weekday, {
161
+ className: f(s.weekday, {
120
162
  [s.sunday]: n === 0,
121
163
  [s.saturday]: n === 6
122
164
  }),
@@ -125,36 +167,39 @@ var p = ({ className: p, disabled: m = !1, value: h, defaultValue: g, onChange:
125
167
  })
126
168
  }), (() => {
127
169
  let e = [];
128
- for (let t = 0; t < I.length; t += 7) e.push(I.slice(t, t + 7));
129
- return e.map((e, t) => /* @__PURE__ */ d("div", {
170
+ for (let t = 0; t < z.length; t += 7) e.push(z.slice(t, t + 7));
171
+ return e.map((e, t) => /* @__PURE__ */ p("div", {
130
172
  role: "row",
131
173
  children: e.map((e, n) => {
132
- let r = t * 7 + n, o = U(e.date), c = W(e.date), l = m || L(e.date), f = a(e.date), p = !e.currentMonth, h = v && i(e.date, B.start), g = v && i(e.date, B.end), _ = `${e.date.getFullYear()}-${e.date.getMonth() + 1}-${e.date.getDate()}`;
133
- return /* @__PURE__ */ d("button", {
174
+ let r = t * 7 + n, o = ne(e.date), c = re(e.date), l = b || B(e.date), u = a(e.date), d = !e.currentMonth, m = w && i(e.date, U.start), h = w && i(e.date, U.end), g = _(e.date), v = !!Y && i(e.date, Y);
175
+ return /* @__PURE__ */ p("button", {
134
176
  type: "button",
135
177
  role: "gridcell",
136
178
  "aria-selected": o,
137
- "aria-current": f ? "date" : void 0,
179
+ "aria-current": u ? "date" : void 0,
138
180
  "data-calendar-day": !0,
181
+ "data-date": g,
182
+ tabIndex: v ? 0 : -1,
183
+ onFocus: () => K(e.date),
139
184
  "data-selected": o || void 0,
140
- "data-other-month": p || void 0,
141
- className: u(s.day, {
185
+ "data-other-month": d || void 0,
186
+ className: f(s.day, {
142
187
  [s.selected]: o,
143
188
  [s.inRange]: c,
144
- [s.rangeStart]: h,
145
- [s.rangeEnd]: g,
189
+ [s.rangeStart]: m,
190
+ [s.rangeEnd]: h,
146
191
  [s.disabled]: l,
147
- [s.today]: f,
148
- [s.otherMonth]: p,
192
+ [s.today]: u,
193
+ [s.otherMonth]: d,
149
194
  [s.sunday]: e.date.getDay() === 0,
150
195
  [s.saturday]: e.date.getDay() === 6
151
196
  }),
152
- onClick: () => V(e.date),
197
+ onClick: () => Q(e.date),
153
198
  onKeyDown: (t) => {
154
- (t.key === "Enter" || t.key === " ") && (t.preventDefault(), V(e.date));
199
+ (t.key === "Enter" || t.key === " ") && (t.preventDefault(), Q(e.date));
155
200
  },
156
201
  disabled: l,
157
- "aria-label": _,
202
+ "aria-label": g,
158
203
  children: e.date.getDate()
159
204
  }, r);
160
205
  })
@@ -164,4 +209,4 @@ var p = ({ className: p, disabled: m = !1, value: h, defaultValue: g, onChange:
164
209
  });
165
210
  };
166
211
  //#endregion
167
- export { p as Calendar };
212
+ export { y as Calendar };
@@ -1,2 +1,2 @@
1
1
  "use client";
2
- const e=require("../../../_virtual/_rolldown/runtime.cjs"),t=require("../../../i18n/useWimTranslation.cjs"),n=require("../../../icon/chevron-right.cjs"),r=require("../../media/Icon/Icon.cjs"),i=require("../../_internal/BaseListItem/BaseListItem.cjs"),a=require("../VirtualList/VirtualList.cjs"),o=require("./tree-view.module.cjs"),s=require("./useTreeViewItemExpansion.cjs");let c=require("react");c=e.__toESM(c,1);let l=require("classnames");l=e.__toESM(l,1);let u=require("react/jsx-runtime");var d=(0,c.createContext)(null),f=()=>{let e=(0,c.useContext)(d);if(!e)throw Error(`TreeView components must be used within a TreeView`);return e},p=40,m=100;function h(e){return typeof e==`string`?e:typeof e==`number`?String(e):``}function g(e,t,n,r=0){let i=[];for(let a of e){let e=h(a.label),o=!n||e.toLowerCase().includes(n.toLowerCase()),s=n&&a.children?_(a.children,n):!1;if(n&&!o&&!s)continue;i.push({...a,depth:r,hasChildren:!!(a.children&&a.children.length>0)});let c=t.includes(a.value)||!!n&&s;a.children&&a.children.length>0&&c&&i.push(...g(a.children,t,n,r+1))}return i}function _(e,t){return e.some(e=>h(e.label).toLowerCase().includes(t.toLowerCase())||(e.children?_(e.children,t):!1))}function v(e,t){for(let n of e){if(n.value===t){let e=[],t=n=>{for(let r of n)e.push(r.value),r.children&&t(r.children)};return n.children&&t(n.children),e}if(n.children){let e=v(n.children,t);if(e!==null)return e}}return null}function y(e,t,n=[]){for(let r of e){if(r.value===t)return n;if(r.children){let e=y(r.children,t,[...n,r.value]);if(e!==null)return e}}return null}function b(e,t){let n=[],r=new Set(t);function i(e){if(!e.children?.length)return r.has(e.value)?`checked`:`unchecked`;let t=e.children.map(i),a=t.every(e=>e===`checked`),o=t.some(e=>e!==`unchecked`);return a?(r.add(e.value),`checked`):o?(n.push(e.value),`indeterminate`):`unchecked`}for(let t of e)i(t);return{indeterminateValues:n,effectiveCheckedSet:r}}var x=({children:e,nodes:s,className:f,multiSelect:_=!1,checkable:x=!1,checkStrategy:S=`cascade`,searchable:C=!1,defaultExpandedValues:w=[],defaultSelectedValues:T=[],defaultCheckedValues:ee=[],onCheckedChange:E,onSelectedChange:D,width:O,virtualThreshold:k=m,labels:A={},labelId:j,styles:M})=>{let{t:N}=t.useWimTranslation(`components`),{searchPlaceholder:P,searchAriaLabel:F=N(`treeview.search_aria`),expandLabel:I=e=>N(`treeview.expand`,{label:e}),collapseLabel:L=e=>N(`treeview.collapse`,{label:e})}=A,[R,z]=(0,c.useState)(w),[B,V]=(0,c.useState)(T),[H,U]=(0,c.useState)(ee),[W,te]=(0,c.useState)(``),[G,K]=(0,c.useState)(T[0]||null),q=c.default.useRef(null),{indeterminateValues:J,effectiveCheckedSet:Y}=(0,c.useMemo)(()=>!s||S!==`cascade`?{indeterminateValues:[],effectiveCheckedSet:new Set(H)}:b(s,new Set(H)),[s,S,H]),X=(0,c.useCallback)(e=>{z(t=>t.includes(e)?t.filter(t=>t!==e):[...t,e])},[]),Z=(0,c.useCallback)(e=>{if(_)V(t=>{let n=t.includes(e)?t.filter(t=>t!==e):[...t,e];return D?.(n),n});else{let t=[e];V(t),D?.(t)}},[_,D]),Q=(0,c.useCallback)(e=>{U(t=>{let n;if(!s)return n=t.includes(e)?t.filter(t=>t!==e):[...t,e],E?.(n),n;if(S===`cascade`){let{indeterminateValues:r}=b(s,new Set(t)),i=t.includes(e)&&!r.includes(e),a=[e,...v(s,e)??[]];n=i?t.filter(e=>!a.includes(e)):[...t,...a.filter(e=>!t.includes(e))];let{indeterminateValues:o,effectiveCheckedSet:c}=b(s,new Set(n));E?.([...c].filter(e=>!o.includes(e)))}else{if(t.includes(e))n=t.filter(t=>t!==e);else{let r=y(s,e)??[],i=v(s,e)??[],a=new Set([...r,...i]);n=[...t.filter(e=>!a.has(e)),e]}E?.(n)}return n})},[S,s,E]),ne=(0,c.useMemo)(()=>({expandedValues:R,selectedValues:B,checkedValues:H,indeterminateValues:J,focusedValue:G,toggleExpand:X,select:Z,toggleCheck:Q,setFocusedValue:K,containerRef:q,multiSelect:_,checkable:x,checkStrategy:S,searchQuery:W,labels:{expandLabel:I,collapseLabel:L}}),[R,B,H,J,G,X,Z,Q,_,x,S,W,I,L]),$=(0,c.useMemo)(()=>s?g(s,R,W):[],[s,R,W]),re=!!s&&$.length>=k,ie=(0,c.useCallback)((e,t,n)=>{switch(e.key){case`Enter`:case` `:e.preventDefault(),Z(t.value),x&&Q(t.value);break;case`ArrowDown`:e.preventDefault(),n<$.length-1&&K($[n+1].value);break;case`ArrowUp`:e.preventDefault(),n>0&&K($[n-1].value);break;case`Home`:e.preventDefault(),$.length>0&&K($[0].value);break;case`End`:e.preventDefault(),$.length>0&&K($[$.length-1].value);break;case`ArrowRight`:e.preventDefault(),t.hasChildren&&!R.includes(t.value)?X(t.value):t.hasChildren&&n<$.length-1&&K($[n+1].value);break;case`ArrowLeft`:if(e.preventDefault(),t.hasChildren&&R.includes(t.value))X(t.value);else for(let e=n-1;e>=0;e--)if($[e].depth<t.depth){K($[e].value);break}}},[$,R,Z,x,Q,X]),ae=(0,c.useCallback)((e,t)=>{let a=B.includes(e.value),s=Y.has(e.value),c=J.includes(e.value),d=R.includes(e.value),f=G===e.value,p=h(e.label);return(0,u.jsx)(`div`,{className:(0,l.default)(o.default.item,a&&o.default.selected,e.disabled&&o.default.disabled,M?.item),role:`treeitem`,"aria-expanded":e.hasChildren?d:void 0,"aria-selected":a,"aria-disabled":e.disabled,"aria-setsize":$.length,"aria-posinset":t+1,"aria-level":e.depth+1,"data-value":e.value,tabIndex:f?0:-1,onClick:t=>{t.stopPropagation(),K(e.value),e.disabled||(_&&x?Q(e.value):Z(e.value))},onKeyDown:n=>{n.key!==`Tab`&&n.stopPropagation(),ie(n,e,t)},onFocus:t=>{t.stopPropagation(),K(e.value)},style:{paddingLeft:e.depth*20},children:(0,u.jsx)(i.BaseListItem,{className:(0,l.default)(o.default.labelContainer,M?.labelContainer),active:a,disabled:e.disabled,icon:(0,u.jsxs)(`div`,{className:(0,l.default)(o.default.iconWrapper,M?.iconWrapper),children:[e.hasChildren?(0,u.jsx)(`button`,{type:`button`,className:(0,l.default)(o.default.expandBtn,d&&o.default.expanded,M?.expandBtn),onClick:t=>{t.stopPropagation(),e.disabled||X(e.value)},disabled:e.disabled,"aria-label":d?L(p):I(p),tabIndex:-1,children:(0,u.jsx)(r.Icon,{component:n.default,size:`sm`})}):(0,u.jsx)(`span`,{className:o.default.spacer}),x&&(0,u.jsx)(`input`,{type:`checkbox`,className:(0,l.default)(o.default.checkbox,M?.checkbox),checked:s&&!c,ref:e=>{e&&(e.indeterminate=c)},onChange:t=>{t.stopPropagation(),e.disabled||Q(e.value)},disabled:e.disabled,onClick:e=>e.stopPropagation(),"aria-label":p,tabIndex:-1}),e.icon&&(0,u.jsx)(`span`,{className:(0,l.default)(o.default.icon,M?.icon),children:e.icon})]}),children:e.label})},e.value)},[B,Y,J,R,G,$.length,_,x,Z,Q,X,ie,I,L,M]);return(0,u.jsx)(d.Provider,{value:ne,children:(0,u.jsxs)(`div`,{ref:q,"data-testid":`tree-view-root`,className:(0,l.default)(`wim-tree-view`,o.default.root,!!s&&o.default.dataDriven,f,M?.root),role:`tree`,"aria-label":A.treeAriaLabel,"aria-labelledby":A.treeAriaLabel?void 0:j,style:{width:O,maxWidth:`100%`},tabIndex:G?-1:0,onFocus:e=>{e.target===q.current&&(s?G?K(G):$.length>0&&K($[0].value):G?(q.current?.querySelector(`[role="treeitem"][data-value="${G}"]`))?.focus():(q.current?.querySelector(`[role="treeitem"]`))?.focus())},children:[C&&(0,u.jsx)(`div`,{className:(0,l.default)(o.default.search,M?.search),children:(0,u.jsx)(`input`,{type:`text`,"data-testid":`tree-view-search-input`,className:(0,l.default)(o.default.searchInput,M?.searchInput),placeholder:P,value:W,onChange:e=>te(e.target.value),"aria-label":F})}),s?re?(0,u.jsx)(a.VirtualList,{items:$,itemHeight:p,height:400,renderItem:ae,itemRole:`none`,role:`presentation`}):$.map((e,t)=>ae(e,t)):e]})})},S=({value:e,label:t,icon:a,children:d,className:p,disabled:m=!1})=>{let{expandedValues:g,selectedValues:_,checkedValues:v,indeterminateValues:y,focusedValue:b,toggleExpand:x,select:C,toggleCheck:w,setFocusedValue:T,containerRef:ee,multiSelect:E,checkable:D,searchQuery:O}=f(),k=c.default.useId(),A=`wim-tree-view-item-checkbox-${k}`,j=`wim-tree-view-item-label-${k}`,M=h(t),N=!O||M.toLowerCase().includes(O.toLowerCase()),P=c.default.useMemo(()=>{if(!O||!d)return!1;let e=t=>c.default.Children.toArray(t).some(t=>{if(!c.default.isValidElement(t)||t.type!==S)return!1;let n=t.props,r=n.label;return h(r).toLowerCase().includes(O.toLowerCase())?!0:n.children?e(n.children):!1});return e(d)},[d,O]),F=!!O&&P,I=g.includes(e)||F,L=_.includes(e),R=v.includes(e),z=y.includes(e),B=!!c.default.Children.count(d),{shouldRender:V,isVisualExpanded:H,handleTransitionEnd:U}=s.useTreeViewItemExpansion(I);return O&&!N&&!P?null:(0,u.jsxs)(`div`,{className:(0,l.default)(o.default.item,L&&o.default.selected,m&&o.default.disabled,p),role:`treeitem`,"aria-expanded":B?I:void 0,"aria-selected":L,"aria-disabled":m,"data-value":e,onClick:t=>{t.stopPropagation(),T(e),m||(E&&D?w(e):C(e))},onKeyDown:t=>{if(m)return;t.key!==`Tab`&&t.stopPropagation();let n=Array.from(ee.current?.querySelectorAll(`[role="treeitem"]:not([aria-disabled="true"])`)||[]),r=n.indexOf(t.currentTarget);switch(t.key){case`Enter`:case` `:t.preventDefault(),C(e),D&&w(e);break;case`ArrowDown`:t.preventDefault(),r<n.length-1&&n[r+1].focus();break;case`ArrowUp`:t.preventDefault(),r>0&&n[r-1].focus();break;case`Home`:t.preventDefault(),n.length>0&&n[0].focus();break;case`End`:t.preventDefault(),n.length>0&&n[n.length-1].focus();break;case`ArrowRight`:B&&(I?(t.preventDefault(),r<n.length-1&&n[r+1].focus()):(t.preventDefault(),x(e)));break;case`ArrowLeft`:if(B&&I)t.preventDefault(),x(e);else{t.preventDefault();let e=t.currentTarget.parentElement?.closest(`[role="treeitem"]`);e&&e.focus()}}},onFocus:t=>{t.stopPropagation(),T(e)},tabIndex:b===e?0:-1,children:[(0,u.jsx)(i.BaseListItem,{id:j,className:o.default.labelContainer,active:L,disabled:m,icon:(0,u.jsxs)(`div`,{className:o.default.iconWrapper,children:[B&&(0,u.jsx)(`button`,{type:`button`,className:(0,l.default)(o.default.expandBtn,I&&o.default.expanded),onClick:t=>{t.stopPropagation(),!m&&B&&x(e)},disabled:m,"aria-label":I?`Collapse ${typeof t==`string`?t:``}`:`Expand ${typeof t==`string`?t:``}`,tabIndex:-1,children:(0,u.jsx)(r.Icon,{component:n.default,size:`sm`})}),!B&&(0,u.jsx)(`span`,{className:o.default.spacer}),D&&(0,u.jsx)(`input`,{id:A,type:`checkbox`,className:o.default.checkbox,checked:R&&!z,ref:e=>{e&&(e.indeterminate=z)},onChange:t=>{t.stopPropagation(),m||w(e)},disabled:m,onClick:e=>e.stopPropagation(),"aria-labelledby":j,tabIndex:-1}),a&&(0,u.jsx)(`span`,{className:o.default.icon,children:a})]}),children:t}),B&&V&&(0,u.jsx)(`div`,{className:(0,l.default)(o.default.children,H&&o.default.expanded),onTransitionEnd:U,style:{gridTemplateRows:H?`1fr`:`0fr`},children:(0,u.jsx)(`div`,{className:o.default.childrenInner,role:`group`,children:d})})]})};x.displayName=`TreeView`,S.displayName=`TreeView.Item`;var C=x;C.Item=S,exports.TreeView=C,exports.default=C,exports.TreeViewItem=S;
2
+ const e=require("../../../_virtual/_rolldown/runtime.cjs"),t=require("../../../i18n/useWimTranslation.cjs"),n=require("../../../icon/chevron-right.cjs"),r=require("../../media/Icon/Icon.cjs"),i=require("../../_internal/BaseListItem/BaseListItem.cjs"),a=require("../VirtualList/VirtualList.cjs"),o=require("./tree-view.module.cjs"),s=require("./useTreeViewItemExpansion.cjs");let c=require("react");c=e.__toESM(c,1);let l=require("classnames");l=e.__toESM(l,1);let u=require("react/jsx-runtime");var d=(0,c.createContext)(null),f=()=>{let e=(0,c.useContext)(d);if(!e)throw Error(`TreeView components must be used within a TreeView`);return e},p=40,m=100;function h(e){return typeof e==`string`?e:typeof e==`number`?String(e):``}function g(e,t,n,r=0){let i=[];for(let a of e){let e=h(a.label),o=!n||e.toLowerCase().includes(n.toLowerCase()),s=n&&a.children?_(a.children,n):!1;if(n&&!o&&!s)continue;i.push({...a,depth:r,hasChildren:!!(a.children&&a.children.length>0)});let c=t.includes(a.value)||!!n&&s;a.children&&a.children.length>0&&c&&i.push(...g(a.children,t,n,r+1))}return i}function _(e,t){return e.some(e=>h(e.label).toLowerCase().includes(t.toLowerCase())||(e.children?_(e.children,t):!1))}function v(e,t){for(let n of e){if(n.value===t){let e=[],t=n=>{for(let r of n)e.push(r.value),r.children&&t(r.children)};return n.children&&t(n.children),e}if(n.children){let e=v(n.children,t);if(e!==null)return e}}return null}function y(e,t,n=[]){for(let r of e){if(r.value===t)return n;if(r.children){let e=y(r.children,t,[...n,r.value]);if(e!==null)return e}}return null}function b(e,t){let n=[],r=new Set(t);function i(e){if(!e.children?.length)return r.has(e.value)?`checked`:`unchecked`;let t=e.children.map(i),a=t.every(e=>e===`checked`),o=t.some(e=>e!==`unchecked`);return a?(r.add(e.value),`checked`):o?(n.push(e.value),`indeterminate`):`unchecked`}for(let t of e)i(t);return{indeterminateValues:n,effectiveCheckedSet:r}}var x=({children:e,nodes:s,className:f,multiSelect:_=!1,checkable:x=!1,checkStrategy:S=`cascade`,searchable:C=!1,defaultExpandedValues:w=[],defaultSelectedValues:T=[],defaultCheckedValues:E=[],onCheckedChange:D,onSelectedChange:O,width:k,virtualThreshold:A=m,labels:j={},labelId:M,styles:N})=>{let{t:P}=t.useWimTranslation(`components`),{searchPlaceholder:F,searchAriaLabel:ee=P(`treeview.search_aria`),expandLabel:I=e=>P(`treeview.expand`,{label:e}),collapseLabel:L=e=>P(`treeview.collapse`,{label:e})}=j,[R,z]=(0,c.useState)(w),[B,V]=(0,c.useState)(T),[H,U]=(0,c.useState)(E),[W,te]=(0,c.useState)(``),[G,K]=(0,c.useState)(T[0]||null),q=c.default.useRef(null),{indeterminateValues:J,effectiveCheckedSet:ne}=(0,c.useMemo)(()=>!s||S!==`cascade`?{indeterminateValues:[],effectiveCheckedSet:new Set(H)}:b(s,new Set(H)),[s,S,H]),Y=(0,c.useCallback)(e=>{z(t=>t.includes(e)?t.filter(t=>t!==e):[...t,e])},[]),X=(0,c.useCallback)(e=>{if(_)V(t=>{let n=t.includes(e)?t.filter(t=>t!==e):[...t,e];return O?.(n),n});else{let t=[e];V(t),O?.(t)}},[_,O]),Z=(0,c.useCallback)(e=>{U(t=>{let n;if(!s)return n=t.includes(e)?t.filter(t=>t!==e):[...t,e],D?.(n),n;if(S===`cascade`){let{indeterminateValues:r}=b(s,new Set(t)),i=t.includes(e)&&!r.includes(e),a=[e,...v(s,e)??[]];n=i?t.filter(e=>!a.includes(e)):[...t,...a.filter(e=>!t.includes(e))];let{indeterminateValues:o,effectiveCheckedSet:c}=b(s,new Set(n));D?.([...c].filter(e=>!o.includes(e)))}else{if(t.includes(e))n=t.filter(t=>t!==e);else{let r=y(s,e)??[],i=v(s,e)??[],a=new Set([...r,...i]);n=[...t.filter(e=>!a.has(e)),e]}D?.(n)}return n})},[S,s,D]),re=(0,c.useMemo)(()=>({expandedValues:R,selectedValues:B,checkedValues:H,indeterminateValues:J,focusedValue:G,toggleExpand:Y,select:X,toggleCheck:Z,setFocusedValue:K,containerRef:q,multiSelect:_,checkable:x,checkStrategy:S,searchQuery:W,labels:{expandLabel:I,collapseLabel:L}}),[R,B,H,J,G,Y,X,Z,_,x,S,W,I,L]),Q=(0,c.useMemo)(()=>s?g(s,R,W):[],[s,R,W]),ie=!!s&&Q.length>=A,$=(0,c.useCallback)(e=>{let t=q.current;if(!t||!e)return;let n=Array.from(t.querySelectorAll(`[role="treeitem"]`)).find(t=>t.getAttribute(`data-value`)===e);n&&n!==document.activeElement&&n.focus()},[]);(0,c.useEffect)(()=>{if(!s||!G)return;let e=q.current,t=document.activeElement;e&&t&&e.contains(t)&&(t instanceof HTMLInputElement||$(G))},[s,G,$]);let ae=(0,c.useCallback)((e,t,n)=>{switch(e.key){case`Enter`:case` `:e.preventDefault(),X(t.value),x&&Z(t.value);break;case`ArrowDown`:e.preventDefault(),n<Q.length-1&&K(Q[n+1].value);break;case`ArrowUp`:e.preventDefault(),n>0&&K(Q[n-1].value);break;case`Home`:e.preventDefault(),Q.length>0&&K(Q[0].value);break;case`End`:e.preventDefault(),Q.length>0&&K(Q[Q.length-1].value);break;case`ArrowRight`:e.preventDefault(),t.hasChildren&&!R.includes(t.value)?Y(t.value):t.hasChildren&&n<Q.length-1&&K(Q[n+1].value);break;case`ArrowLeft`:if(e.preventDefault(),t.hasChildren&&R.includes(t.value))Y(t.value);else for(let e=n-1;e>=0;e--)if(Q[e].depth<t.depth){K(Q[e].value);break}}},[Q,R,X,x,Z,Y]),oe=(0,c.useCallback)((e,t)=>{let a=B.includes(e.value),s=ne.has(e.value),c=J.includes(e.value),d=R.includes(e.value),f=G===e.value,p=h(e.label);return(0,u.jsx)(`div`,{className:(0,l.default)(o.default.item,a&&o.default.selected,e.disabled&&o.default.disabled,N?.item),role:`treeitem`,"aria-expanded":e.hasChildren?d:void 0,"aria-selected":a,"aria-disabled":e.disabled,"aria-setsize":Q.length,"aria-posinset":t+1,"aria-level":e.depth+1,"data-value":e.value,tabIndex:f?0:-1,onClick:t=>{t.stopPropagation(),K(e.value),e.disabled||(_&&x?Z(e.value):X(e.value))},onKeyDown:n=>{n.key!==`Tab`&&n.key!==`Escape`&&n.stopPropagation(),ae(n,e,t)},onFocus:t=>{t.stopPropagation(),K(e.value)},style:{paddingLeft:e.depth*20},children:(0,u.jsx)(i.BaseListItem,{className:(0,l.default)(o.default.labelContainer,N?.labelContainer),active:a,disabled:e.disabled,icon:(0,u.jsxs)(`div`,{className:(0,l.default)(o.default.iconWrapper,N?.iconWrapper),children:[e.hasChildren?(0,u.jsx)(`button`,{type:`button`,className:(0,l.default)(o.default.expandBtn,d&&o.default.expanded,N?.expandBtn),onClick:t=>{t.stopPropagation(),e.disabled||Y(e.value)},disabled:e.disabled,"aria-label":d?L(p):I(p),tabIndex:-1,children:(0,u.jsx)(r.Icon,{component:n.default,size:`sm`})}):(0,u.jsx)(`span`,{className:o.default.spacer}),x&&(0,u.jsx)(`input`,{type:`checkbox`,className:(0,l.default)(o.default.checkbox,N?.checkbox),checked:s&&!c,ref:e=>{e&&(e.indeterminate=c)},onChange:t=>{t.stopPropagation(),e.disabled||Z(e.value)},disabled:e.disabled,onClick:e=>e.stopPropagation(),"aria-label":p,tabIndex:-1}),e.icon&&(0,u.jsx)(`span`,{className:(0,l.default)(o.default.icon,N?.icon),children:e.icon})]}),children:e.label})},e.value)},[B,ne,J,R,G,Q.length,_,x,X,Z,Y,ae,I,L,N]);return(0,u.jsx)(d.Provider,{value:re,children:(0,u.jsxs)(`div`,{ref:q,"data-testid":`tree-view-root`,className:(0,l.default)(`wim-tree-view`,o.default.root,!!s&&o.default.dataDriven,f,N?.root),role:`tree`,"aria-label":j.treeAriaLabel,"aria-labelledby":j.treeAriaLabel?void 0:M,style:{width:k,maxWidth:`100%`},tabIndex:G?-1:0,onFocus:e=>{e.target===q.current&&(s?G?$(G):Q.length>0&&(K(Q[0].value),$(Q[0].value)):G?(q.current?.querySelector(`[role="treeitem"][data-value="${G}"]`))?.focus():(q.current?.querySelector(`[role="treeitem"]`))?.focus())},children:[C&&(0,u.jsx)(`div`,{className:(0,l.default)(o.default.search,N?.search),children:(0,u.jsx)(`input`,{type:`text`,"data-testid":`tree-view-search-input`,className:(0,l.default)(o.default.searchInput,N?.searchInput),placeholder:F,value:W,onChange:e=>te(e.target.value),"aria-label":ee})}),s?ie?(0,u.jsx)(a.VirtualList,{items:Q,itemHeight:p,height:400,renderItem:oe,itemRole:`none`,role:`presentation`}):Q.map((e,t)=>oe(e,t)):e]})})},S=({value:e,label:t,icon:a,children:d,className:p,disabled:m=!1})=>{let{expandedValues:g,selectedValues:_,checkedValues:v,indeterminateValues:y,focusedValue:b,toggleExpand:x,select:C,toggleCheck:w,setFocusedValue:T,containerRef:E,multiSelect:D,checkable:O,searchQuery:k}=f(),A=c.default.useId(),j=`wim-tree-view-item-checkbox-${A}`,M=`wim-tree-view-item-label-${A}`,N=h(t),P=!k||N.toLowerCase().includes(k.toLowerCase()),F=c.default.useMemo(()=>{if(!k||!d)return!1;let e=t=>c.default.Children.toArray(t).some(t=>{if(!c.default.isValidElement(t)||t.type!==S)return!1;let n=t.props,r=n.label;return h(r).toLowerCase().includes(k.toLowerCase())?!0:n.children?e(n.children):!1});return e(d)},[d,k]),ee=!!k&&F,I=g.includes(e)||ee,L=_.includes(e),R=v.includes(e),z=y.includes(e),B=!!c.default.Children.count(d),{shouldRender:V,isVisualExpanded:H,handleTransitionEnd:U}=s.useTreeViewItemExpansion(I);return k&&!P&&!F?null:(0,u.jsxs)(`div`,{className:(0,l.default)(o.default.item,L&&o.default.selected,m&&o.default.disabled,p),role:`treeitem`,"aria-expanded":B?I:void 0,"aria-selected":L,"aria-disabled":m,"data-value":e,onClick:t=>{t.stopPropagation(),T(e),m||(D&&O?w(e):C(e))},onKeyDown:t=>{if(m)return;t.key!==`Tab`&&t.key!==`Escape`&&t.stopPropagation();let n=Array.from(E.current?.querySelectorAll(`[role="treeitem"]:not([aria-disabled="true"])`)||[]),r=n.indexOf(t.currentTarget);switch(t.key){case`Enter`:case` `:t.preventDefault(),C(e),O&&w(e);break;case`ArrowDown`:t.preventDefault(),r<n.length-1&&n[r+1].focus();break;case`ArrowUp`:t.preventDefault(),r>0&&n[r-1].focus();break;case`Home`:t.preventDefault(),n.length>0&&n[0].focus();break;case`End`:t.preventDefault(),n.length>0&&n[n.length-1].focus();break;case`ArrowRight`:B&&(I?(t.preventDefault(),r<n.length-1&&n[r+1].focus()):(t.preventDefault(),x(e)));break;case`ArrowLeft`:if(B&&I)t.preventDefault(),x(e);else{t.preventDefault();let e=t.currentTarget.parentElement?.closest(`[role="treeitem"]`);e&&e.focus()}}},onFocus:t=>{t.stopPropagation(),T(e)},tabIndex:b===e?0:-1,children:[(0,u.jsx)(i.BaseListItem,{id:M,className:o.default.labelContainer,active:L,disabled:m,icon:(0,u.jsxs)(`div`,{className:o.default.iconWrapper,children:[B&&(0,u.jsx)(`button`,{type:`button`,className:(0,l.default)(o.default.expandBtn,I&&o.default.expanded),onClick:t=>{t.stopPropagation(),!m&&B&&x(e)},disabled:m,"aria-label":I?`Collapse ${typeof t==`string`?t:``}`:`Expand ${typeof t==`string`?t:``}`,tabIndex:-1,children:(0,u.jsx)(r.Icon,{component:n.default,size:`sm`})}),!B&&(0,u.jsx)(`span`,{className:o.default.spacer}),O&&(0,u.jsx)(`input`,{id:j,type:`checkbox`,className:o.default.checkbox,checked:R&&!z,ref:e=>{e&&(e.indeterminate=z)},onChange:t=>{t.stopPropagation(),m||w(e)},disabled:m,onClick:e=>e.stopPropagation(),"aria-labelledby":M,tabIndex:-1}),a&&(0,u.jsx)(`span`,{className:o.default.icon,children:a})]}),children:t}),B&&V&&(0,u.jsx)(`div`,{className:(0,l.default)(o.default.children,H&&o.default.expanded),onTransitionEnd:U,style:{gridTemplateRows:H?`1fr`:`0fr`},children:(0,u.jsx)(`div`,{className:o.default.childrenInner,role:`group`,children:d})})]})};x.displayName=`TreeView`,S.displayName=`TreeView.Item`;var C=x;C.Item=S,exports.TreeView=C,exports.default=C,exports.TreeViewItem=S;