wimui 0.63.0 → 0.63.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (55) hide show
  1. package/dist/components/_internal/OverlayBase.cjs +1 -1
  2. package/dist/components/_internal/OverlayBase.js +31 -30
  3. package/dist/components/_internal/composeEventHandlers.cjs +2 -0
  4. package/dist/components/_internal/composeEventHandlers.d.ts +25 -0
  5. package/dist/components/_internal/composeEventHandlers.js +8 -0
  6. package/dist/components/ai/ChatUI/ChatUI.cjs +1 -1
  7. package/dist/components/ai/ChatUI/ChatUI.js +83 -82
  8. package/dist/components/data-display/Accordion/Accordion.cjs +1 -1
  9. package/dist/components/data-display/Accordion/Accordion.js +79 -78
  10. package/dist/components/data-display/PullToRefresh/PullToRefresh.cjs +1 -1
  11. package/dist/components/data-display/PullToRefresh/PullToRefresh.js +73 -72
  12. package/dist/components/data-display/SortableList/SortableList.cjs +1 -1
  13. package/dist/components/data-display/SortableList/SortableList.js +54 -53
  14. package/dist/components/data-display/SwipeAction/SwipeAction.cjs +1 -1
  15. package/dist/components/data-display/SwipeAction/SwipeAction.js +77 -76
  16. package/dist/components/form/Cascader/Cascader.cjs +1 -1
  17. package/dist/components/form/Cascader/Cascader.js +99 -98
  18. package/dist/components/form/DatePicker/DatePicker.cjs +1 -1
  19. package/dist/components/form/DatePicker/DatePicker.js +53 -52
  20. package/dist/components/form/RangeSlider/RangeSlider.cjs +1 -1
  21. package/dist/components/form/RangeSlider/RangeSlider.js +109 -108
  22. package/dist/components/form/Rating/Rating.cjs +1 -1
  23. package/dist/components/form/Rating/Rating.js +75 -74
  24. package/dist/components/form/Slider/Slider.cjs +1 -1
  25. package/dist/components/form/Slider/Slider.js +58 -57
  26. package/dist/components/form/SmartSearchInput/SmartSearchInput.cjs +1 -1
  27. package/dist/components/form/SmartSearchInput/SmartSearchInput.js +65 -64
  28. package/dist/components/form/TimePicker/TimePicker.cjs +1 -1
  29. package/dist/components/form/TimePicker/TimePicker.js +31 -30
  30. package/dist/components/layout/InteractiveArea/InteractiveArea.cjs +1 -1
  31. package/dist/components/layout/InteractiveArea/InteractiveArea.js +1 -1
  32. package/dist/components/layout/Navbar/Navbar.cjs +1 -1
  33. package/dist/components/layout/Navbar/Navbar.js +68 -67
  34. package/dist/components/layout/Splitter/Splitter.cjs +1 -1
  35. package/dist/components/layout/Splitter/Splitter.js +47 -46
  36. package/dist/components/layout/Transition/Transition.cjs +1 -1
  37. package/dist/components/layout/Transition/Transition.js +25 -24
  38. package/dist/components/media/Audio/Audio.cjs +1 -1
  39. package/dist/components/media/Audio/Audio.js +39 -38
  40. package/dist/components/media/Image/Image.cjs +2 -2
  41. package/dist/components/media/Image/Image.js +96 -95
  42. package/dist/components/media/ImageCompare/ImageCompare.cjs +1 -1
  43. package/dist/components/media/ImageCompare/ImageCompare.js +75 -74
  44. package/dist/components/media/Video/Video.cjs +1 -1
  45. package/dist/components/media/Video/Video.js +114 -113
  46. package/dist/components/navigation/SpeedDial/SpeedDial.cjs +1 -1
  47. package/dist/components/navigation/SpeedDial/SpeedDial.js +47 -46
  48. package/dist/components/navigation/Tabs/Tabs.cjs +1 -1
  49. package/dist/components/navigation/Tabs/Tabs.js +87 -86
  50. package/dist/components/overlay/Popover/Popover.cjs +1 -1
  51. package/dist/components/overlay/Popover/Popover.js +1 -1
  52. package/dist/llms-full.txt +1 -1
  53. package/dist/llms.txt +1 -1
  54. package/dist/wimui.umd.js +5 -5
  55. package/package.json +1 -1
@@ -2,46 +2,47 @@
2
2
  import { Root as e, Slottable as t } from "../../../node_modules/@radix-ui/react-slot/dist/index.js";
3
3
  import { useWimTranslation as n } from "../../../i18n/useWimTranslation.js";
4
4
  import { useMergedRef as r } from "../../../hooks/useMergedRef.js";
5
- import { Transition as i } from "../../layout/Transition/Transition.js";
6
- import { FocusTrap as a } from "../../overlay/FocusTrap/FocusTrap.js";
7
- import { componentsNs as o } from "../../../i18n/generated/components.js";
5
+ import { composeEventHandlers as i } from "../../_internal/composeEventHandlers.js";
6
+ import { Transition as a } from "../../layout/Transition/Transition.js";
7
+ import { FocusTrap as o } from "../../overlay/FocusTrap/FocusTrap.js";
8
+ import { componentsNs as s } from "../../../i18n/generated/components.js";
8
9
  import { InputBase as ee } from "../InputBase/InputBase.js";
9
- import { useInlineFloating as s } from "../../_internal/useInlineFloating.js";
10
- import { FieldTemplate as c } from "../FieldTemplate/FieldTemplate.js";
11
- import l from "../Input/input.module.js";
12
- import { Calendar as u } from "../../data-display/Calendar/Calendar.js";
13
- import d from "./date-picker.module.js";
14
- import { forwardRef as f, useEffect as p, useId as te, useRef as m, useState as h } from "react";
15
- import g from "classnames";
16
- import { jsx as _, jsxs as v } from "react/jsx-runtime";
10
+ import { useInlineFloating as c } from "../../_internal/useInlineFloating.js";
11
+ import { FieldTemplate as l } from "../FieldTemplate/FieldTemplate.js";
12
+ import u from "../Input/input.module.js";
13
+ import { Calendar as d } from "../../data-display/Calendar/Calendar.js";
14
+ import f from "./date-picker.module.js";
15
+ import { forwardRef as p, useEffect as m, useId as te, useRef as h, useState as g } from "react";
16
+ import _ from "classnames";
17
+ import { jsx as v, jsxs as y } from "react/jsx-runtime";
17
18
  //#region src/components/form/DatePicker/DatePicker.tsx
18
- var y = f(({ intent: f = "default", variant: y = "outline", fullWidth: b = !1, className: x, disabled: S, value: C, defaultValue: w, onChange: T, format: ne = "YYYY-MM-DD", clearable: re = !0, placeholder: ie, minDate: ae, maxDate: oe, disabledDates: se, label: E, error: D, required: O, layout: k, id: A, labels: j, width: M, asChild: N = !1, children: P, ...F }, I) => {
19
- let [L, R] = h(!1), [z, B] = h(w || null), V = m(null), H = m(null), { t: ce } = n(o), U = te(), W = A || `wim-datepicker-${U}`, G = `${W}-dropdown`, K = E ? `${W}-label` : void 0, q = D ? `${W}-error` : void 0, J = C !== void 0, Y = J ? C : z, le = ie ?? j?.placeholder, X = S, Z = D ? "danger" : f;
20
- p(() => {
19
+ var b = p(({ intent: p = "default", variant: b = "outline", fullWidth: x = !1, className: S, disabled: C, value: w, defaultValue: ne, onChange: T, format: re = "YYYY-MM-DD", clearable: ie = !0, placeholder: ae, minDate: oe, maxDate: se, disabledDates: ce, label: E, error: D, required: O, layout: k, id: A, labels: j, width: M, asChild: N = !1, children: P, ...F }, I) => {
20
+ let [L, R] = g(!1), [z, B] = g(ne || null), V = h(null), H = h(null), { t: le } = n(s), U = te(), W = A || `wim-datepicker-${U}`, G = `${W}-dropdown`, K = E ? `${W}-label` : void 0, q = D ? `${W}-error` : void 0, J = w !== void 0, Y = J ? w : z, ue = ae ?? j?.placeholder, X = C, Z = D ? "danger" : p;
21
+ m(() => {
21
22
  let e = (e) => {
22
23
  V.current && !V.current.contains(e.target) && R(!1);
23
24
  };
24
25
  return document.addEventListener("mousedown", e), () => document.removeEventListener("mousedown", e);
25
- }, []), p(() => {
26
+ }, []), m(() => {
26
27
  let e = (e) => {
27
28
  e.key === "Escape" && L && (R(!1), H.current?.focus());
28
29
  };
29
30
  return L && document.addEventListener("keydown", e), () => document.removeEventListener("keydown", e);
30
31
  }, [L]);
31
- let ue = (e) => {
32
+ let de = (e) => {
32
33
  if (!e) return "";
33
34
  let t = e.getFullYear(), n = String(e.getMonth() + 1).padStart(2, "0"), r = String(e.getDate()).padStart(2, "0");
34
- return ne.replace("YYYY", String(t)).replace("MM", n).replace("DD", r);
35
- }, de = (e) => {
36
- J || B(e), T?.(e), R(!1), H.current?.focus();
35
+ return re.replace("YYYY", String(t)).replace("MM", n).replace("DD", r);
37
36
  }, fe = (e) => {
37
+ J || B(e), T?.(e), R(!1), H.current?.focus();
38
+ }, pe = (e) => {
38
39
  e?.stopPropagation(), X || (J || B(null), T?.(null));
39
40
  }, Q = () => {
40
41
  X || R(!L);
41
- }, pe = (e) => {
42
+ }, $ = (e) => {
42
43
  X || (e.key === "Escape" ? (R(!1), H.current?.focus()) : (e.key === "Enter" || e.key === " " || e.key === "ArrowDown" && (e.altKey || !L)) && (e.preventDefault(), R(!L)));
43
44
  };
44
- p(() => {
45
+ m(() => {
45
46
  if (L) {
46
47
  let e = setTimeout(() => {
47
48
  let e = V.current?.querySelector("[data-calendar-day][tabindex=\"0\"]:not(:disabled), [data-calendar-day][data-selected]:not(:disabled), [data-calendar-day]:focus");
@@ -50,8 +51,8 @@ var y = f(({ intent: f = "default", variant: y = "outline", fullWidth: b = !1, c
50
51
  return () => clearTimeout(e);
51
52
  }
52
53
  }, [L]);
53
- let $ = N ? e : "div", { setReference: me, setFloating: he, floatingProps: ge } = s({ open: L && !S }), _e = r(V, I, me);
54
- return /* @__PURE__ */ _(c, {
54
+ let me = N ? e : "div", { setReference: he, setFloating: ge, floatingProps: _e } = c({ open: L && !C }), ve = r(V, I, he);
55
+ return /* @__PURE__ */ v(l, {
55
56
  label: E,
56
57
  error: D,
57
58
  required: O,
@@ -59,38 +60,36 @@ var y = f(({ intent: f = "default", variant: y = "outline", fullWidth: b = !1, c
59
60
  labelId: K,
60
61
  htmlFor: W,
61
62
  errorId: q,
62
- className: x,
63
- children: /* @__PURE__ */ v($, {
64
- ref: _e,
65
- className: g("wim-date-picker", d.root, b && d.fullWidth),
63
+ className: S,
64
+ children: /* @__PURE__ */ y(me, {
65
+ ref: ve,
66
+ className: _("wim-date-picker", f.root, x && f.fullWidth),
66
67
  children: [
67
- /* @__PURE__ */ _(ee, {
68
+ /* @__PURE__ */ v(ee, {
68
69
  intent: Z,
69
- variant: y,
70
+ variant: b,
70
71
  width: M,
71
- fullWidth: b,
72
+ fullWidth: x,
72
73
  disabled: X,
73
- allowClear: re,
74
+ allowClear: ie,
74
75
  hasValue: !!Y,
75
- onClear: fe,
76
+ onClear: pe,
76
77
  rightIcons: [{
77
78
  name: "ChevronDownIcon",
78
79
  rotated: L,
79
80
  onClick: Q,
80
81
  decorative: !0
81
82
  }],
82
- children: /* @__PURE__ */ _("input", {
83
+ children: /* @__PURE__ */ v("input", {
83
84
  id: W,
84
85
  ref: H,
85
86
  type: "text",
86
87
  readOnly: !0,
87
88
  role: "combobox",
88
- className: g(l.root, d.input),
89
- value: ue(Y),
90
- placeholder: le,
89
+ className: _(u.root, f.input),
90
+ value: de(Y),
91
+ placeholder: ue,
91
92
  disabled: X,
92
- onClick: Q,
93
- onKeyDown: pe,
94
93
  "aria-haspopup": "dialog",
95
94
  "aria-expanded": L,
96
95
  "aria-controls": L ? G : void 0,
@@ -98,36 +97,38 @@ var y = f(({ intent: f = "default", variant: y = "outline", fullWidth: b = !1, c
98
97
  "aria-describedby": q,
99
98
  "aria-labelledby": K,
100
99
  "aria-required": O,
101
- ...F
100
+ ...F,
101
+ onClick: i(F.onClick, Q),
102
+ onKeyDown: i(F.onKeyDown, $)
102
103
  })
103
104
  }),
104
- /* @__PURE__ */ _(i, {
105
- show: L && !S,
105
+ /* @__PURE__ */ v(a, {
106
+ show: L && !C,
106
107
  preset: "fade",
107
108
  id: G,
108
- className: d.dropdown,
109
- ref: he,
110
- ...ge,
111
- children: /* @__PURE__ */ _(a, {
109
+ className: f.dropdown,
110
+ ref: ge,
111
+ ..._e,
112
+ children: /* @__PURE__ */ v(o, {
112
113
  active: L,
113
114
  initialFocus: !1,
114
- children: /* @__PURE__ */ _("div", {
115
+ children: /* @__PURE__ */ v("div", {
115
116
  role: "dialog",
116
117
  "aria-modal": "true",
117
118
  "aria-labelledby": K,
118
- "aria-label": K ? void 0 : F["aria-label"] ?? ce("datepicker.dialog"),
119
- children: /* @__PURE__ */ _(u, {
119
+ "aria-label": K ? void 0 : F["aria-label"] ?? le("datepicker.dialog"),
120
+ children: /* @__PURE__ */ v(d, {
120
121
  value: Y ?? void 0,
121
- onChange: de
122
+ onChange: fe
122
123
  })
123
124
  })
124
125
  })
125
126
  }),
126
- /* @__PURE__ */ _(t, { children: P })
127
+ /* @__PURE__ */ v(t, { children: P })
127
128
  ]
128
129
  })
129
130
  });
130
131
  });
131
- y.displayName = "DatePicker";
132
+ b.displayName = "DatePicker";
132
133
  //#endregion
133
- export { y as DatePicker, y as default };
134
+ export { b as DatePicker, b as default };
@@ -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("../../../i18n/useWimTranslation.cjs"),r=require("../../../i18n/generated/common.cjs"),i=require("../FieldTemplate/FieldTemplate.cjs"),a=require("../../../utilities/slider-utils.cjs"),o=require("./range-slider.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=({value:e,defaultValue:u=[20,80],min:d=0,max:f=100,step:p=1,allowCross:m=!1,disabled:h=!1,onChange:g,onAfterChange:_,className:ee,name:v,label:y,error:b,required:te,layout:ne=`vertical`,id:re,"aria-label":ie,"aria-labelledby":x,"aria-describedby":ae,asChild:oe=!1,children:se,...ce})=>{let{t:S}=n.useWimTranslation(r.commonNs),C=e!==void 0,le=(0,s.useId)(),w=re||le,ue=`wim-range-slider-label-${w}`,T=`wim-range-slider-error-${w}`,E=[ae,b?T:void 0].filter(Boolean).join(` `)||void 0,D=y||ie,O=`wim-range-slider-start-${w}`,k=`wim-range-slider-end-${w}`,A=e=>!D&&x?`${x} ${e}`:void 0,{clamp:j,calculateValue:M}=a.useSliderCommon(d,f,p),N=[j(u[0],d,f),j(u[1],d,f)];N[0]>N[1]&&N.sort((e,t)=>e-t);let[de,P]=(0,s.useState)(N),F=C?e:de,I=(0,s.useRef)(null),L=(0,s.useRef)(null),R=(0,s.useRef)(null),z=(0,s.useRef)(null),B=(0,s.useRef)(null),V=(0,s.useRef)(null),[H,U]=(0,s.useState)(null),W=(0,s.useRef)(null),G=(0,s.useRef)([...F]),K=(0,s.useCallback)(e=>(e-d)/(f-d)*100,[d,f]),q=(0,s.useCallback)(e=>{let t=K(e[0]),n=K(e[1]);L.current&&(L.current.style.left=`${t}%`,L.current.setAttribute(`aria-valuenow`,String(e[0])),L.current.setAttribute(`aria-valuemax`,String(e[1]))),R.current&&(R.current.style.left=`${n}%`,R.current.setAttribute(`aria-valuenow`,String(e[1])),R.current.setAttribute(`aria-valuemin`,String(e[0]))),z.current&&(z.current.style.left=`${t}%`,z.current.style.width=`${n-t}%`),B.current&&(B.current.value=String(e[0])),V.current&&(V.current.value=String(e[1]))},[K]);(0,s.useEffect)(()=>{H||q(F)},[F,H,q]);let J=(e,t)=>{h||(G.current=[...F],W.current=t,U(t),e.stopPropagation(),e.preventDefault())},Y=e=>{if(h)return;let t=`touches`in e?e.touches[0].clientX:e.clientX,n=M(t,I.current),r=Math.abs(F[0]-n),i=Math.abs(F[1]-n),a;a=r<i?`min`:i<r?`max`:n<F[0]?`min`:`max`,W.current=a,U(a);let o=[...G.current];a===`min`?o[0]=Math.min(n,m?f:o[1]):o[1]=Math.max(n,m?d:o[0]),G.current=o,q(o),g?.(o)},X=(0,s.useCallback)(e=>{if(!W.current||h)return;let t=`touches`in e?e.touches[0].clientX:e.clientX,n=M(t,I.current),r=[...G.current];W.current===`min`?r[0]=Math.min(n,m?f:r[1]):r[1]=Math.max(n,m?d:r[0]),G.current=r,q(r),g?.(r)},[h,g,m,M,d,f,q]),Z=(0,s.useCallback)(()=>{if(W.current){W.current=null,U(null);let e=G.current;C||P([...e]),_?.(e)}},[C,_]);(0,s.useEffect)(()=>(document.addEventListener(`mousemove`,X),document.addEventListener(`mouseup`,Z),document.addEventListener(`touchmove`,X,{passive:!1}),document.addEventListener(`touchend`,Z),()=>{document.removeEventListener(`mousemove`,X),document.removeEventListener(`mouseup`,Z),document.removeEventListener(`touchmove`,X),document.removeEventListener(`touchend`,Z)}),[X,Z]);let Q=(e,t)=>{if(h)return;let n=[...F],r=t===`min`?n[0]:n[1],i;if(e.key===`ArrowLeft`||e.key===`ArrowDown`)i=Math.max(d,r-p);else if(e.key===`ArrowRight`||e.key===`ArrowUp`)i=Math.min(f,r+p);else if(e.key===`Home`)i=d;else if(e.key===`End`)i=f;else return;if(t===`min`){let e=m?f:n[1];n[0]=Math.min(i,e)}else{let e=m?d:n[0];n[1]=Math.max(i,e)}C||P(n),g?.(n),e.preventDefault()},$=K(F[0]),fe=K(F[1]);return(0,l.jsx)(i.FieldTemplate,{label:y,error:b,required:te,layout:ne,labelId:ue,errorId:T,className:ee,children:(0,l.jsxs)(oe?t.Root:`div`,{role:`presentation`,"data-testid":`range-slider-root`,className:(0,c.default)(`wim-range-slider`,o.default.root,h&&o.default.disabled,b&&o.default.danger),onMouseDown:Y,onTouchStart:Y,...ce,children:[(0,l.jsxs)(`div`,{className:o.default.trackContainer,ref:I,children:[(0,l.jsx)(`div`,{ref:z,className:o.default.track,style:{left:`${$}%`,width:`${fe-$}%`}}),(0,l.jsx)(`div`,{ref:L,className:(0,c.default)(o.default.thumb,H===`min`&&o.default.active),style:{left:`${$}%`},role:`slider`,"aria-valuemin":d,"aria-valuemax":F[1],"aria-valuenow":F[0],"aria-disabled":h,id:O,"aria-labelledby":A(O),"aria-label":D?S(`rangeSlider.start_of`,{label:D}):S(`rangeSlider.start`),"aria-describedby":E,"aria-invalid":b?!0:void 0,tabIndex:h?-1:0,onMouseDown:e=>J(e,`min`),onTouchStart:e=>J(e,`min`),onKeyDown:e=>Q(e,`min`)}),(0,l.jsx)(`div`,{ref:R,className:(0,c.default)(o.default.thumb,H===`max`&&o.default.active),style:{left:`${fe}%`},role:`slider`,"aria-valuemin":F[0],"aria-valuemax":f,"aria-valuenow":F[1],"aria-disabled":h,id:k,"aria-labelledby":A(k),"aria-label":D?S(`rangeSlider.end_of`,{label:D}):S(`rangeSlider.end`),"aria-describedby":E,"aria-invalid":b?!0:void 0,tabIndex:h?-1:0,onMouseDown:e=>J(e,`max`),onTouchStart:e=>J(e,`max`),onKeyDown:e=>Q(e,`max`)})]}),(0,l.jsx)(`input`,{ref:B,type:`hidden`,name:v?`${v}-min`:``,value:F[0]}),(0,l.jsx)(`input`,{ref:V,type:`hidden`,name:v?`${v}-max`:``,value:F[1]}),(0,l.jsx)(t.Slottable,{children:se})]})})};u.displayName=`RangeSlider`,exports.RangeSlider=u;
2
+ const e=require("../../../_virtual/_rolldown/runtime.cjs"),t=require("../../../node_modules/@radix-ui/react-slot/dist/index.cjs"),n=require("../../../i18n/useWimTranslation.cjs"),r=require("../../../i18n/generated/common.cjs"),i=require("../../_internal/composeEventHandlers.cjs"),a=require("../FieldTemplate/FieldTemplate.cjs"),o=require("../../../utilities/slider-utils.cjs"),s=require("./range-slider.module.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=({value:e,defaultValue:d=[20,80],min:f=0,max:p=100,step:m=1,allowCross:h=!1,disabled:g=!1,onChange:_,onAfterChange:v,className:ee,name:y,label:b,error:x,required:te,layout:ne=`vertical`,id:re,"aria-label":ie,"aria-labelledby":ae,"aria-describedby":oe,asChild:se=!1,children:ce,...S})=>{let{t:C}=n.useWimTranslation(r.commonNs),w=e!==void 0,le=(0,c.useId)(),T=re||le,ue=`wim-range-slider-label-${T}`,E=`wim-range-slider-error-${T}`,D=[oe,x?E:void 0].filter(Boolean).join(` `)||void 0,O=b||ie,k=`wim-range-slider-start-${T}`,A=`wim-range-slider-end-${T}`,j=e=>!O&&ae?`${ae} ${e}`:void 0,{clamp:M,calculateValue:N}=o.useSliderCommon(f,p,m),P=[M(d[0],f,p),M(d[1],f,p)];P[0]>P[1]&&P.sort((e,t)=>e-t);let[de,F]=(0,c.useState)(P),I=w?e:de,L=(0,c.useRef)(null),R=(0,c.useRef)(null),z=(0,c.useRef)(null),B=(0,c.useRef)(null),V=(0,c.useRef)(null),H=(0,c.useRef)(null),[U,W]=(0,c.useState)(null),G=(0,c.useRef)(null),K=(0,c.useRef)([...I]),q=(0,c.useCallback)(e=>(e-f)/(p-f)*100,[f,p]),J=(0,c.useCallback)(e=>{let t=q(e[0]),n=q(e[1]);R.current&&(R.current.style.left=`${t}%`,R.current.setAttribute(`aria-valuenow`,String(e[0])),R.current.setAttribute(`aria-valuemax`,String(e[1]))),z.current&&(z.current.style.left=`${n}%`,z.current.setAttribute(`aria-valuenow`,String(e[1])),z.current.setAttribute(`aria-valuemin`,String(e[0]))),B.current&&(B.current.style.left=`${t}%`,B.current.style.width=`${n-t}%`),V.current&&(V.current.value=String(e[0])),H.current&&(H.current.value=String(e[1]))},[q]);(0,c.useEffect)(()=>{U||J(I)},[I,U,J]);let Y=(e,t)=>{g||(K.current=[...I],G.current=t,W(t),e.stopPropagation(),e.preventDefault())},X=e=>{if(g)return;let t=`touches`in e?e.touches[0].clientX:e.clientX,n=N(t,L.current),r=Math.abs(I[0]-n),i=Math.abs(I[1]-n),a;a=r<i?`min`:i<r?`max`:n<I[0]?`min`:`max`,G.current=a,W(a);let o=[...K.current];a===`min`?o[0]=Math.min(n,h?p:o[1]):o[1]=Math.max(n,h?f:o[0]),K.current=o,J(o),_?.(o)},Z=(0,c.useCallback)(e=>{if(!G.current||g)return;let t=`touches`in e?e.touches[0].clientX:e.clientX,n=N(t,L.current),r=[...K.current];G.current===`min`?r[0]=Math.min(n,h?p:r[1]):r[1]=Math.max(n,h?f:r[0]),K.current=r,J(r),_?.(r)},[g,_,h,N,f,p,J]),Q=(0,c.useCallback)(()=>{if(G.current){G.current=null,W(null);let e=K.current;w||F([...e]),v?.(e)}},[w,v]);(0,c.useEffect)(()=>(document.addEventListener(`mousemove`,Z),document.addEventListener(`mouseup`,Q),document.addEventListener(`touchmove`,Z,{passive:!1}),document.addEventListener(`touchend`,Q),()=>{document.removeEventListener(`mousemove`,Z),document.removeEventListener(`mouseup`,Q),document.removeEventListener(`touchmove`,Z),document.removeEventListener(`touchend`,Q)}),[Z,Q]);let fe=(e,t)=>{if(g)return;let n=[...I],r=t===`min`?n[0]:n[1],i;if(e.key===`ArrowLeft`||e.key===`ArrowDown`)i=Math.max(f,r-m);else if(e.key===`ArrowRight`||e.key===`ArrowUp`)i=Math.min(p,r+m);else if(e.key===`Home`)i=f;else if(e.key===`End`)i=p;else return;if(t===`min`){let e=h?p:n[1];n[0]=Math.min(i,e)}else{let e=h?f:n[0];n[1]=Math.max(i,e)}w||F(n),_?.(n),e.preventDefault()},$=q(I[0]),pe=q(I[1]);return(0,u.jsx)(a.FieldTemplate,{label:b,error:x,required:te,layout:ne,labelId:ue,errorId:E,className:ee,children:(0,u.jsxs)(se?t.Root:`div`,{role:`presentation`,"data-testid":`range-slider-root`,className:(0,l.default)(`wim-range-slider`,s.default.root,g&&s.default.disabled,x&&s.default.danger),...S,onMouseDown:e=>i.composeEventHandlers(S.onMouseDown,X)(e),onTouchStart:e=>i.composeEventHandlers(S.onTouchStart,X)(e),children:[(0,u.jsxs)(`div`,{className:s.default.trackContainer,ref:L,children:[(0,u.jsx)(`div`,{ref:B,className:s.default.track,style:{left:`${$}%`,width:`${pe-$}%`}}),(0,u.jsx)(`div`,{ref:R,className:(0,l.default)(s.default.thumb,U===`min`&&s.default.active),style:{left:`${$}%`},role:`slider`,"aria-valuemin":f,"aria-valuemax":I[1],"aria-valuenow":I[0],"aria-disabled":g,id:k,"aria-labelledby":j(k),"aria-label":O?C(`rangeSlider.start_of`,{label:O}):C(`rangeSlider.start`),"aria-describedby":D,"aria-invalid":x?!0:void 0,tabIndex:g?-1:0,onMouseDown:e=>Y(e,`min`),onTouchStart:e=>Y(e,`min`),onKeyDown:e=>fe(e,`min`)}),(0,u.jsx)(`div`,{ref:z,className:(0,l.default)(s.default.thumb,U===`max`&&s.default.active),style:{left:`${pe}%`},role:`slider`,"aria-valuemin":I[0],"aria-valuemax":p,"aria-valuenow":I[1],"aria-disabled":g,id:A,"aria-labelledby":j(A),"aria-label":O?C(`rangeSlider.end_of`,{label:O}):C(`rangeSlider.end`),"aria-describedby":D,"aria-invalid":x?!0:void 0,tabIndex:g?-1:0,onMouseDown:e=>Y(e,`max`),onTouchStart:e=>Y(e,`max`),onKeyDown:e=>fe(e,`max`)})]}),(0,u.jsx)(`input`,{ref:V,type:`hidden`,name:y?`${y}-min`:``,value:I[0]}),(0,u.jsx)(`input`,{ref:H,type:`hidden`,name:y?`${y}-max`:``,value:I[1]}),(0,u.jsx)(t.Slottable,{children:ce})]})})};d.displayName=`RangeSlider`,exports.RangeSlider=d;
@@ -2,159 +2,160 @@
2
2
  import { Root as e, Slottable as t } from "../../../node_modules/@radix-ui/react-slot/dist/index.js";
3
3
  import { useWimTranslation as n } from "../../../i18n/useWimTranslation.js";
4
4
  import { commonNs as r } from "../../../i18n/generated/common.js";
5
- import { FieldTemplate as i } from "../FieldTemplate/FieldTemplate.js";
6
- import { useSliderCommon as a } from "../../../utilities/slider-utils.js";
7
- import o from "./range-slider.module.js";
8
- import { useCallback as s, useEffect as c, useId as ee, useRef as l, useState as te } from "react";
9
- import u from "classnames";
10
- import { jsx as d, jsxs as f } from "react/jsx-runtime";
5
+ import { composeEventHandlers as i } from "../../_internal/composeEventHandlers.js";
6
+ import { FieldTemplate as a } from "../FieldTemplate/FieldTemplate.js";
7
+ import { useSliderCommon as o } from "../../../utilities/slider-utils.js";
8
+ import s from "./range-slider.module.js";
9
+ import { useCallback as c, useEffect as l, useId as ee, useRef as u, useState as d } from "react";
10
+ import f from "classnames";
11
+ import { jsx as p, jsxs as te } from "react/jsx-runtime";
11
12
  //#region src/components/form/RangeSlider/RangeSlider.tsx
12
- var p = ({ value: p, defaultValue: ne = [20, 80], min: m = 0, max: h = 100, step: g = 1, allowCross: _ = !1, disabled: v = !1, onChange: y, onAfterChange: b, className: re, name: x, label: S, error: C, required: ie, layout: ae = "vertical", id: oe, "aria-label": se, "aria-labelledby": w, "aria-describedby": ce, asChild: le = !1, children: ue, ...de }) => {
13
- let { t: T } = n(r), E = p !== void 0, fe = ee(), D = oe || fe, pe = `wim-range-slider-label-${D}`, me = `wim-range-slider-error-${D}`, he = [ce, C ? me : void 0].filter(Boolean).join(" ") || void 0, O = S || se, k = `wim-range-slider-start-${D}`, A = `wim-range-slider-end-${D}`, j = (e) => !O && w ? `${w} ${e}` : void 0, { clamp: M, calculateValue: N } = a(m, h, g), P = [M(ne[0], m, h), M(ne[1], m, h)];
14
- P[0] > P[1] && P.sort((e, t) => e - t);
15
- let [ge, F] = te(P), I = E ? p : ge, L = l(null), R = l(null), z = l(null), B = l(null), V = l(null), H = l(null), [U, W] = te(null), G = l(null), K = l([...I]), q = s((e) => (e - m) / (h - m) * 100, [m, h]), J = s((e) => {
16
- let t = q(e[0]), n = q(e[1]);
17
- R.current && (R.current.style.left = `${t}%`, R.current.setAttribute("aria-valuenow", String(e[0])), R.current.setAttribute("aria-valuemax", String(e[1]))), z.current && (z.current.style.left = `${n}%`, z.current.setAttribute("aria-valuenow", String(e[1])), z.current.setAttribute("aria-valuemin", String(e[0]))), B.current && (B.current.style.left = `${t}%`, B.current.style.width = `${n - t}%`), V.current && (V.current.value = String(e[0])), H.current && (H.current.value = String(e[1]));
18
- }, [q]);
19
- c(() => {
20
- U || J(I);
13
+ var m = ({ value: m, defaultValue: ne = [20, 80], min: h = 0, max: g = 100, step: _ = 1, allowCross: v = !1, disabled: y = !1, onChange: b, onAfterChange: re, className: ie, name: x, label: S, error: C, required: ae, layout: oe = "vertical", id: se, "aria-label": ce, "aria-labelledby": w, "aria-describedby": le, asChild: ue = !1, children: de, ...T }) => {
14
+ let { t: E } = n(r), D = m !== void 0, fe = ee(), O = se || fe, pe = `wim-range-slider-label-${O}`, me = `wim-range-slider-error-${O}`, he = [le, C ? me : void 0].filter(Boolean).join(" ") || void 0, k = S || ce, A = `wim-range-slider-start-${O}`, j = `wim-range-slider-end-${O}`, M = (e) => !k && w ? `${w} ${e}` : void 0, { clamp: N, calculateValue: P } = o(h, g, _), F = [N(ne[0], h, g), N(ne[1], h, g)];
15
+ F[0] > F[1] && F.sort((e, t) => e - t);
16
+ let [ge, I] = d(F), L = D ? m : ge, R = u(null), z = u(null), B = u(null), V = u(null), H = u(null), U = u(null), [W, G] = d(null), K = u(null), q = u([...L]), J = c((e) => (e - h) / (g - h) * 100, [h, g]), Y = c((e) => {
17
+ let t = J(e[0]), n = J(e[1]);
18
+ z.current && (z.current.style.left = `${t}%`, z.current.setAttribute("aria-valuenow", String(e[0])), z.current.setAttribute("aria-valuemax", String(e[1]))), B.current && (B.current.style.left = `${n}%`, B.current.setAttribute("aria-valuenow", String(e[1])), B.current.setAttribute("aria-valuemin", String(e[0]))), V.current && (V.current.style.left = `${t}%`, V.current.style.width = `${n - t}%`), H.current && (H.current.value = String(e[0])), U.current && (U.current.value = String(e[1]));
19
+ }, [J]);
20
+ l(() => {
21
+ W || Y(L);
21
22
  }, [
22
- I,
23
- U,
24
- J
23
+ L,
24
+ W,
25
+ Y
25
26
  ]);
26
- let Y = (e, t) => {
27
- v || (K.current = [...I], G.current = t, W(t), e.stopPropagation(), e.preventDefault());
27
+ let X = (e, t) => {
28
+ y || (q.current = [...L], K.current = t, G(t), e.stopPropagation(), e.preventDefault());
28
29
  }, _e = (e) => {
29
- if (v) return;
30
- let t = "touches" in e ? e.touches[0].clientX : e.clientX, n = N(t, L.current), r = Math.abs(I[0] - n), i = Math.abs(I[1] - n), a;
31
- a = r < i ? "min" : i < r ? "max" : n < I[0] ? "min" : "max", G.current = a, W(a);
32
- let o = [...K.current];
33
- a === "min" ? o[0] = Math.min(n, _ ? h : o[1]) : o[1] = Math.max(n, _ ? m : o[0]), K.current = o, J(o), y?.(o);
34
- }, X = s((e) => {
35
- if (!G.current || v) return;
36
- let t = "touches" in e ? e.touches[0].clientX : e.clientX, n = N(t, L.current), r = [...K.current];
37
- G.current === "min" ? r[0] = Math.min(n, _ ? h : r[1]) : r[1] = Math.max(n, _ ? m : r[0]), K.current = r, J(r), y?.(r);
30
+ if (y) return;
31
+ let t = "touches" in e ? e.touches[0].clientX : e.clientX, n = P(t, R.current), r = Math.abs(L[0] - n), i = Math.abs(L[1] - n), a;
32
+ a = r < i ? "min" : i < r ? "max" : n < L[0] ? "min" : "max", K.current = a, G(a);
33
+ let o = [...q.current];
34
+ a === "min" ? o[0] = Math.min(n, v ? g : o[1]) : o[1] = Math.max(n, v ? h : o[0]), q.current = o, Y(o), b?.(o);
35
+ }, Z = c((e) => {
36
+ if (!K.current || y) return;
37
+ let t = "touches" in e ? e.touches[0].clientX : e.clientX, n = P(t, R.current), r = [...q.current];
38
+ K.current === "min" ? r[0] = Math.min(n, v ? g : r[1]) : r[1] = Math.max(n, v ? h : r[0]), q.current = r, Y(r), b?.(r);
38
39
  }, [
39
- v,
40
40
  y,
41
- _,
42
- N,
43
- m,
41
+ b,
42
+ v,
43
+ P,
44
44
  h,
45
- J
46
- ]), Z = s(() => {
47
- if (G.current) {
48
- G.current = null, W(null);
49
- let e = K.current;
50
- E || F([...e]), b?.(e);
45
+ g,
46
+ Y
47
+ ]), Q = c(() => {
48
+ if (K.current) {
49
+ K.current = null, G(null);
50
+ let e = q.current;
51
+ D || I([...e]), re?.(e);
51
52
  }
52
- }, [E, b]);
53
- c(() => (document.addEventListener("mousemove", X), document.addEventListener("mouseup", Z), document.addEventListener("touchmove", X, { passive: !1 }), document.addEventListener("touchend", Z), () => {
54
- document.removeEventListener("mousemove", X), document.removeEventListener("mouseup", Z), document.removeEventListener("touchmove", X), document.removeEventListener("touchend", Z);
55
- }), [X, Z]);
56
- let Q = (e, t) => {
57
- if (v) return;
58
- let n = [...I], r = t === "min" ? n[0] : n[1], i;
59
- if (e.key === "ArrowLeft" || e.key === "ArrowDown") i = Math.max(m, r - g);
60
- else if (e.key === "ArrowRight" || e.key === "ArrowUp") i = Math.min(h, r + g);
61
- else if (e.key === "Home") i = m;
62
- else if (e.key === "End") i = h;
53
+ }, [D, re]);
54
+ l(() => (document.addEventListener("mousemove", Z), document.addEventListener("mouseup", Q), document.addEventListener("touchmove", Z, { passive: !1 }), document.addEventListener("touchend", Q), () => {
55
+ document.removeEventListener("mousemove", Z), document.removeEventListener("mouseup", Q), document.removeEventListener("touchmove", Z), document.removeEventListener("touchend", Q);
56
+ }), [Z, Q]);
57
+ let ve = (e, t) => {
58
+ if (y) return;
59
+ let n = [...L], r = t === "min" ? n[0] : n[1], i;
60
+ if (e.key === "ArrowLeft" || e.key === "ArrowDown") i = Math.max(h, r - _);
61
+ else if (e.key === "ArrowRight" || e.key === "ArrowUp") i = Math.min(g, r + _);
62
+ else if (e.key === "Home") i = h;
63
+ else if (e.key === "End") i = g;
63
64
  else return;
64
65
  if (t === "min") {
65
- let e = _ ? h : n[1];
66
+ let e = v ? g : n[1];
66
67
  n[0] = Math.min(i, e);
67
68
  } else {
68
- let e = _ ? m : n[0];
69
+ let e = v ? h : n[0];
69
70
  n[1] = Math.max(i, e);
70
71
  }
71
- E || F(n), y?.(n), e.preventDefault();
72
- }, $ = q(I[0]), ve = q(I[1]);
73
- return /* @__PURE__ */ d(i, {
72
+ D || I(n), b?.(n), e.preventDefault();
73
+ }, $ = J(L[0]), ye = J(L[1]);
74
+ return /* @__PURE__ */ p(a, {
74
75
  label: S,
75
76
  error: C,
76
- required: ie,
77
- layout: ae,
77
+ required: ae,
78
+ layout: oe,
78
79
  labelId: pe,
79
80
  errorId: me,
80
- className: re,
81
- children: /* @__PURE__ */ f(le ? e : "div", {
81
+ className: ie,
82
+ children: /* @__PURE__ */ te(ue ? e : "div", {
82
83
  role: "presentation",
83
84
  "data-testid": "range-slider-root",
84
- className: u("wim-range-slider", o.root, v && o.disabled, C && o.danger),
85
- onMouseDown: _e,
86
- onTouchStart: _e,
87
- ...de,
85
+ className: f("wim-range-slider", s.root, y && s.disabled, C && s.danger),
86
+ ...T,
87
+ onMouseDown: (e) => i(T.onMouseDown, _e)(e),
88
+ onTouchStart: (e) => i(T.onTouchStart, _e)(e),
88
89
  children: [
89
- /* @__PURE__ */ f("div", {
90
- className: o.trackContainer,
91
- ref: L,
90
+ /* @__PURE__ */ te("div", {
91
+ className: s.trackContainer,
92
+ ref: R,
92
93
  children: [
93
- /* @__PURE__ */ d("div", {
94
- ref: B,
95
- className: o.track,
94
+ /* @__PURE__ */ p("div", {
95
+ ref: V,
96
+ className: s.track,
96
97
  style: {
97
98
  left: `${$}%`,
98
- width: `${ve - $}%`
99
+ width: `${ye - $}%`
99
100
  }
100
101
  }),
101
- /* @__PURE__ */ d("div", {
102
- ref: R,
103
- className: u(o.thumb, U === "min" && o.active),
102
+ /* @__PURE__ */ p("div", {
103
+ ref: z,
104
+ className: f(s.thumb, W === "min" && s.active),
104
105
  style: { left: `${$}%` },
105
106
  role: "slider",
106
- "aria-valuemin": m,
107
- "aria-valuemax": I[1],
108
- "aria-valuenow": I[0],
109
- "aria-disabled": v,
110
- id: k,
111
- "aria-labelledby": j(k),
112
- "aria-label": O ? T("rangeSlider.start_of", { label: O }) : T("rangeSlider.start"),
107
+ "aria-valuemin": h,
108
+ "aria-valuemax": L[1],
109
+ "aria-valuenow": L[0],
110
+ "aria-disabled": y,
111
+ id: A,
112
+ "aria-labelledby": M(A),
113
+ "aria-label": k ? E("rangeSlider.start_of", { label: k }) : E("rangeSlider.start"),
113
114
  "aria-describedby": he,
114
115
  "aria-invalid": C ? !0 : void 0,
115
- tabIndex: v ? -1 : 0,
116
- onMouseDown: (e) => Y(e, "min"),
117
- onTouchStart: (e) => Y(e, "min"),
118
- onKeyDown: (e) => Q(e, "min")
116
+ tabIndex: y ? -1 : 0,
117
+ onMouseDown: (e) => X(e, "min"),
118
+ onTouchStart: (e) => X(e, "min"),
119
+ onKeyDown: (e) => ve(e, "min")
119
120
  }),
120
- /* @__PURE__ */ d("div", {
121
- ref: z,
122
- className: u(o.thumb, U === "max" && o.active),
123
- style: { left: `${ve}%` },
121
+ /* @__PURE__ */ p("div", {
122
+ ref: B,
123
+ className: f(s.thumb, W === "max" && s.active),
124
+ style: { left: `${ye}%` },
124
125
  role: "slider",
125
- "aria-valuemin": I[0],
126
- "aria-valuemax": h,
127
- "aria-valuenow": I[1],
128
- "aria-disabled": v,
129
- id: A,
130
- "aria-labelledby": j(A),
131
- "aria-label": O ? T("rangeSlider.end_of", { label: O }) : T("rangeSlider.end"),
126
+ "aria-valuemin": L[0],
127
+ "aria-valuemax": g,
128
+ "aria-valuenow": L[1],
129
+ "aria-disabled": y,
130
+ id: j,
131
+ "aria-labelledby": M(j),
132
+ "aria-label": k ? E("rangeSlider.end_of", { label: k }) : E("rangeSlider.end"),
132
133
  "aria-describedby": he,
133
134
  "aria-invalid": C ? !0 : void 0,
134
- tabIndex: v ? -1 : 0,
135
- onMouseDown: (e) => Y(e, "max"),
136
- onTouchStart: (e) => Y(e, "max"),
137
- onKeyDown: (e) => Q(e, "max")
135
+ tabIndex: y ? -1 : 0,
136
+ onMouseDown: (e) => X(e, "max"),
137
+ onTouchStart: (e) => X(e, "max"),
138
+ onKeyDown: (e) => ve(e, "max")
138
139
  })
139
140
  ]
140
141
  }),
141
- /* @__PURE__ */ d("input", {
142
- ref: V,
142
+ /* @__PURE__ */ p("input", {
143
+ ref: H,
143
144
  type: "hidden",
144
145
  name: x ? `${x}-min` : "",
145
- value: I[0]
146
+ value: L[0]
146
147
  }),
147
- /* @__PURE__ */ d("input", {
148
- ref: H,
148
+ /* @__PURE__ */ p("input", {
149
+ ref: U,
149
150
  type: "hidden",
150
151
  name: x ? `${x}-max` : "",
151
- value: I[1]
152
+ value: L[1]
152
153
  }),
153
- /* @__PURE__ */ d(t, { children: ue })
154
+ /* @__PURE__ */ p(t, { children: de })
154
155
  ]
155
156
  })
156
157
  });
157
158
  };
158
- p.displayName = "RangeSlider";
159
+ m.displayName = "RangeSlider";
159
160
  //#endregion
160
- export { p as RangeSlider };
161
+ export { m as RangeSlider };
@@ -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("../../../icon/star.cjs"),r=require("../../media/Icon/Icon.cjs"),i=require("../FieldTemplate/FieldTemplate.cjs"),a=require("./rating.module.cjs");let o=require("react");o=e.__toESM(o,1);let s=require("classnames");s=e.__toESM(s,1);let c=require("react/jsx-runtime");var l=({value:e,defaultValue:l=0,count:u=5,allowHalf:d=!1,disabled:f=!1,readOnly:p=!1,size:m=`md`,onChange:h,className:g,label:_,error:v,required:y,layout:b=`vertical`,labels:x={},asChild:S=!1,children:C,...w})=>{let{star:T=e=>`${e} star${e===1?``:`s`}`,readonly:E=(e,t)=>`Rating: ${e} out of ${t}`}=x,D=e!==void 0,[O,k]=(0,o.useState)(l),[A,j]=(0,o.useState)(null),M=(0,o.useId)(),N=`wim-rating-label-${M}`,P=`wim-rating-error-${M}`,F=(0,o.useRef)([]),I=D?e:O,L=A===null?I:A,R=(e,t)=>{if(f||p)return;let n=e+1;if(d){let e=t.currentTarget.getBoundingClientRect();t.clientX-e.left<=e.width/2&&(n-=.5)}j(n)},z=()=>{f||p||j(null)},B=e=>{f||p||(D||k(e),h?.(e))},V=(()=>{if(I===0)return 0;for(let e=0;e<u;e++){let t=e+1;if(I===t||d&&I===t-.5)return e}return 0})(),H=(e,t)=>{if(f||p)return;let n=d?.5:1;if(t.key===`ArrowRight`||t.key===`ArrowUp`){t.preventDefault();let e=Math.min(u,I+n),r=Math.min(Math.ceil(e)-1,u-1);B(e),F.current[r]?.focus()}else if(t.key===`ArrowLeft`||t.key===`ArrowDown`){t.preventDefault();let e=Math.max(0,I-n),r=e===0?0:Math.ceil(e)-1;B(e),F.current[r]?.focus()}else t.key===`Home`?(t.preventDefault(),B(0),F.current[0]?.focus()):t.key===`End`&&(t.preventDefault(),B(u),F.current[u-1]?.focus())},U=e=>{let t=e+1,i=L>=t,o=!i&&L>=t-.5,l=I===t||d&&I===t-.5;return(0,c.jsxs)(`div`,{ref:t=>{F.current[e]=t},className:(0,s.default)(a.default.star,i&&a.default.full,o&&a.default.half),onMouseMove:t=>R(e,t),onClick:e=>{let n=e.currentTarget.getBoundingClientRect(),r=e.clientX-n.left,i=t;d&&r<=n.width/2&&(i-=.5),B(i)},onKeyDown:n=>{n.key===`Enter`||n.key===` `?(n.preventDefault(),B(t)):H(e,n)},role:p?`presentation`:`radio`,tabIndex:f||p?-1:e===V?0:-1,"aria-checked":p?void 0:l,"aria-label":p?void 0:T(e+1),children:[(0,c.jsx)(`div`,{className:a.default.background,children:(0,c.jsx)(r.Icon,{component:n.default,size:m,className:a.default.icon})}),(0,c.jsx)(`div`,{className:a.default.foreground,children:(0,c.jsx)(r.Icon,{component:n.default,size:m,className:a.default.icon})})]},e)},W=Array.from({length:u},(e,t)=>U(t));return(0,c.jsx)(i.FieldTemplate,{label:_,error:v,required:y,layout:b,labelId:N,errorId:P,className:g,children:(0,c.jsxs)(S?t.Root:`div`,{className:(0,s.default)(`wim-rating`,a.default.root,a.default[m],f&&a.default.disabled),onMouseLeave:p?void 0:z,role:p?`img`:`radiogroup`,"aria-label":p?E(I,u):void 0,"aria-labelledby":!p&&_?N:void 0,"aria-disabled":!p&&f?!0:void 0,"aria-required":p?void 0:y,"aria-describedby":!p&&v?P:void 0,"aria-invalid":!p&&v?!0:void 0,...w,children:[W,(0,c.jsx)(t.Slottable,{children:C})]})})};exports.Rating=l;
2
+ const e=require("../../../_virtual/_rolldown/runtime.cjs"),t=require("../../../node_modules/@radix-ui/react-slot/dist/index.cjs"),n=require("../../_internal/composeEventHandlers.cjs"),r=require("../../../icon/star.cjs"),i=require("../../media/Icon/Icon.cjs"),a=require("../FieldTemplate/FieldTemplate.cjs"),o=require("./rating.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=({value:e,defaultValue:u=0,count:d=5,allowHalf:f=!1,disabled:p=!1,readOnly:m=!1,size:h=`md`,onChange:g,className:_,label:v,error:y,required:b,layout:x=`vertical`,labels:S={},asChild:C=!1,children:w,...T})=>{let{star:E=e=>`${e} star${e===1?``:`s`}`,readonly:D=(e,t)=>`Rating: ${e} out of ${t}`}=S,O=e!==void 0,[k,A]=(0,s.useState)(u),[j,M]=(0,s.useState)(null),N=(0,s.useId)(),P=`wim-rating-label-${N}`,F=`wim-rating-error-${N}`,I=(0,s.useRef)([]),L=O?e:k,R=j===null?L:j,z=(e,t)=>{if(p||m)return;let n=e+1;if(f){let e=t.currentTarget.getBoundingClientRect();t.clientX-e.left<=e.width/2&&(n-=.5)}M(n)},B=()=>{p||m||M(null)},V=e=>{p||m||(O||A(e),g?.(e))},H=(()=>{if(L===0)return 0;for(let e=0;e<d;e++){let t=e+1;if(L===t||f&&L===t-.5)return e}return 0})(),U=(e,t)=>{if(p||m)return;let n=f?.5:1;if(t.key===`ArrowRight`||t.key===`ArrowUp`){t.preventDefault();let e=Math.min(d,L+n),r=Math.min(Math.ceil(e)-1,d-1);V(e),I.current[r]?.focus()}else if(t.key===`ArrowLeft`||t.key===`ArrowDown`){t.preventDefault();let e=Math.max(0,L-n),r=e===0?0:Math.ceil(e)-1;V(e),I.current[r]?.focus()}else t.key===`Home`?(t.preventDefault(),V(0),I.current[0]?.focus()):t.key===`End`&&(t.preventDefault(),V(d),I.current[d-1]?.focus())},W=e=>{let t=e+1,n=R>=t,a=!n&&R>=t-.5,s=L===t||f&&L===t-.5;return(0,l.jsxs)(`div`,{ref:t=>{I.current[e]=t},className:(0,c.default)(o.default.star,n&&o.default.full,a&&o.default.half),onMouseMove:t=>z(e,t),onClick:e=>{let n=e.currentTarget.getBoundingClientRect(),r=e.clientX-n.left,i=t;f&&r<=n.width/2&&(i-=.5),V(i)},onKeyDown:n=>{n.key===`Enter`||n.key===` `?(n.preventDefault(),V(t)):U(e,n)},role:m?`presentation`:`radio`,tabIndex:p||m?-1:e===H?0:-1,"aria-checked":m?void 0:s,"aria-label":m?void 0:E(e+1),children:[(0,l.jsx)(`div`,{className:o.default.background,children:(0,l.jsx)(i.Icon,{component:r.default,size:h,className:o.default.icon})}),(0,l.jsx)(`div`,{className:o.default.foreground,children:(0,l.jsx)(i.Icon,{component:r.default,size:h,className:o.default.icon})})]},e)},G=Array.from({length:d},(e,t)=>W(t));return(0,l.jsx)(a.FieldTemplate,{label:v,error:y,required:b,layout:x,labelId:P,errorId:F,className:_,children:(0,l.jsxs)(C?t.Root:`div`,{className:(0,c.default)(`wim-rating`,o.default.root,o.default[h],p&&o.default.disabled),role:m?`img`:`radiogroup`,"aria-label":m?D(L,d):void 0,"aria-labelledby":!m&&v?P:void 0,"aria-disabled":!m&&p?!0:void 0,"aria-required":m?void 0:b,"aria-describedby":!m&&y?F:void 0,"aria-invalid":!m&&y?!0:void 0,...T,onMouseLeave:n.composeEventHandlers(T.onMouseLeave,m?void 0:B),children:[G,(0,l.jsx)(t.Slottable,{children:w})]})})};exports.Rating=u;