wimui 0.58.1 → 0.59.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.
Files changed (32) hide show
  1. package/dist/components/ai/PromptInput/PromptInput.cjs +1 -1
  2. package/dist/components/ai/PromptInput/PromptInput.js +30 -30
  3. package/dist/components/ai/Terminal/Terminal.cjs +2 -2
  4. package/dist/components/ai/Terminal/Terminal.js +16 -14
  5. package/dist/components/data-display/VirtualList/VirtualList.cjs +1 -1
  6. package/dist/components/data-display/VirtualList/VirtualList.d.ts +2 -0
  7. package/dist/components/data-display/VirtualList/VirtualList.js +15 -14
  8. package/dist/components/form/CopyButton/CopyButton.cjs +1 -1
  9. package/dist/components/form/CopyButton/CopyButton.d.ts +5 -1
  10. package/dist/components/form/CopyButton/CopyButton.js +17 -15
  11. package/dist/components/form/Dropzone/Dropzone.cjs +1 -1
  12. package/dist/components/form/Dropzone/Dropzone.d.ts +7 -1
  13. package/dist/components/form/Dropzone/Dropzone.js +29 -28
  14. package/dist/components/form/FileUpload/FileUpload.cjs +1 -1
  15. package/dist/components/form/FileUpload/FileUpload.d.ts +7 -1
  16. package/dist/components/form/FileUpload/FileUpload.js +22 -17
  17. package/dist/components/form/ImageCropper/ImageCropper.cjs +1 -1
  18. package/dist/components/form/ImageCropper/ImageCropper.js +102 -100
  19. package/dist/components/form/QueryBuilder/QueryBuilder.cjs +1 -1
  20. package/dist/components/form/QueryBuilder/QueryBuilder.d.ts +7 -1
  21. package/dist/components/form/QueryBuilder/QueryBuilder.js +104 -102
  22. package/dist/components/form/ThemeToggle/ThemeToggle.cjs +1 -1
  23. package/dist/components/form/ThemeToggle/ThemeToggle.js +59 -54
  24. package/dist/components/media/ImageCompare/ImageCompare.cjs +1 -1
  25. package/dist/components/media/ImageCompare/ImageCompare.js +33 -31
  26. package/dist/components/navigation/BackTop/BackTop.cjs +1 -1
  27. package/dist/components/navigation/BackTop/BackTop.d.ts +4 -0
  28. package/dist/components/navigation/BackTop/BackTop.js +18 -16
  29. package/dist/llms-full.txt +15 -1
  30. package/dist/llms.txt +1 -1
  31. package/dist/wimui.umd.js +4 -4
  32. package/package.json +1 -1
@@ -4,18 +4,18 @@ import { componentsNs as t } from "../../../i18n/generated/components.js";
4
4
  import { Button as n } from "../Button/Button.js";
5
5
  import { Input as r } from "../Input/Input.js";
6
6
  import { DatePicker as i } from "../DatePicker/DatePicker.js";
7
- import { NumberInput as a } from "../NumberInput/NumberInput.js";
8
- import { SegmentedControl as o } from "../SegmentedControl/SegmentedControl.js";
9
- import { Select as s } from "../Select/Select.js";
10
- import { Switch as c } from "../Switch/Switch.js";
11
- import { IconButton as l } from "../IconButton/IconButton.js";
12
- import u from "./querybuilder.module.js";
13
- import { warnUnknownOperator as d } from "./warn-unknown-operator.js";
14
- import { useCallback as f, useId as p, useRef as m, useState as h } from "react";
15
- import g from "classnames";
16
- import { jsx as _, jsxs as v } from "react/jsx-runtime";
7
+ import { NumberInput as ee } from "../NumberInput/NumberInput.js";
8
+ import { SegmentedControl as a } from "../SegmentedControl/SegmentedControl.js";
9
+ import { Select as o } from "../Select/Select.js";
10
+ import { Switch as s } from "../Switch/Switch.js";
11
+ import { IconButton as c } from "../IconButton/IconButton.js";
12
+ import l from "./querybuilder.module.js";
13
+ import { warnUnknownOperator as u } from "./warn-unknown-operator.js";
14
+ import { useCallback as d, useId as f, useRef as p, useState as m } from "react";
15
+ import h from "classnames";
16
+ import { jsx as g, jsxs as _ } from "react/jsx-runtime";
17
17
  //#region src/components/form/QueryBuilder/QueryBuilder.tsx
18
- var y = 0, b = () => typeof window < "u" && window.__VRT__ ? (y += 1, `vrt-id-${y}`) : Math.random().toString(36).substring(2, 11), x = {
18
+ var v = 0, y = () => typeof window < "u" && window.__VRT__ ? (v += 1, `vrt-id-${v}`) : Math.random().toString(36).substring(2, 11), b = {
19
19
  string: [
20
20
  {
21
21
  value: "=",
@@ -132,19 +132,19 @@ var y = 0, b = () => typeof window < "u" && window.__VRT__ ? (y += 1, `vrt-id-${
132
132
  key: "is_not_null"
133
133
  }
134
134
  ]
135
- }, S = ({ fields: y, query: S, defaultQuery: C, onChange: w, maxDepth: ee = 3, className: te, id: ne, labels: T = {} }) => {
136
- let { t: E } = e(t), { ruleAdded: D = E("query.builder.rule_added"), groupAdded: O = E("query.builder.group_added"), removed: k = E("query.builder.removed"), ruleAriaLabel: A = E("query.builder.rule"), fieldAriaLabel: j = E("query.builder.field"), operatorAriaLabel: M = E("query.builder.operator"), valueAriaLabel: N = E("query.builder.value"), trueLabel: P = E("query.builder.true"), falseLabel: F = E("query.builder.false"), removeRuleAriaLabel: I = E("query.builder.remove_rule"), removeGroupAriaLabel: L = E("query.builder.remove_group"), addRuleLabel: R = E("query.builder.add_rule"), addGroupLabel: z = E("query.builder.add_group"), regionAriaLabel: B = E("query.builder.region_label"), combinatorAriaLabel: V = E("query.builder.combinator"), operators: H = {} } = T, U = p(), W = ne || `wim-qb-${U}`, G = m(null), [K, q] = h(C || {
137
- id: b(),
135
+ }, x = ({ fields: v, query: x, defaultQuery: S, onChange: C, maxDepth: te = 3, className: ne, id: re, labels: ie = {}, "aria-label": w, "aria-labelledby": T, "aria-describedby": E }) => {
136
+ let { t: D } = e(t), { ruleAdded: O = D("query.builder.rule_added"), groupAdded: k = D("query.builder.group_added"), removed: A = D("query.builder.removed"), ruleAriaLabel: j = D("query.builder.rule"), fieldAriaLabel: M = D("query.builder.field"), operatorAriaLabel: N = D("query.builder.operator"), valueAriaLabel: P = D("query.builder.value"), trueLabel: F = D("query.builder.true"), falseLabel: I = D("query.builder.false"), removeRuleAriaLabel: L = D("query.builder.remove_rule"), removeGroupAriaLabel: R = D("query.builder.remove_group"), addRuleLabel: z = D("query.builder.add_rule"), addGroupLabel: ae = D("query.builder.add_group"), regionAriaLabel: B = D("query.builder.region_label"), combinatorAriaLabel: V = D("query.builder.combinator"), operators: H = {} } = ie, U = f(), W = re || `wim-qb-${U}`, G = p(null), [K, q] = m(S || {
137
+ id: y(),
138
138
  combinator: "and",
139
139
  not: !1,
140
140
  rules: []
141
- }), J = S === void 0 ? K : S, Y = f((e) => {
141
+ }), J = x === void 0 ? K : x, Y = d((e) => {
142
142
  G.current && (G.current.textContent = "", setTimeout(() => {
143
143
  G.current && (G.current.textContent = e);
144
144
  }, 50));
145
- }, []), X = f((e) => {
146
- S === void 0 && q(e), w?.(e);
147
- }, [S, w]), Z = (e, t) => {
145
+ }, []), X = d((e) => {
146
+ x === void 0 && q(e), C?.(e);
147
+ }, [x, C]), Z = (e, t) => {
148
148
  let n = (r) => r.id === e ? {
149
149
  ...r,
150
150
  ...t
@@ -156,9 +156,9 @@ var y = 0, b = () => typeof window < "u" && window.__VRT__ ? (y += 1, `vrt-id-${
156
156
  } : "rules" in r ? n(r) : r)
157
157
  };
158
158
  X(n(J));
159
- }, re = (e) => {
160
- let t = y[0], n = {
161
- id: b(),
159
+ }, oe = (e) => {
160
+ let t = v[0], n = {
161
+ id: y(),
162
162
  field: t?.name || "",
163
163
  operator: "=",
164
164
  value: t?.type !== "boolean" && ""
@@ -169,10 +169,10 @@ var y = 0, b = () => typeof window < "u" && window.__VRT__ ? (y += 1, `vrt-id-${
169
169
  ...t,
170
170
  rules: t.rules.map((e) => "rules" in e ? r(e) : e)
171
171
  };
172
- X(r(J)), Y(D);
173
- }, ie = (e) => {
172
+ X(r(J)), Y(O);
173
+ }, se = (e) => {
174
174
  let t = {
175
- id: b(),
175
+ id: y(),
176
176
  combinator: "and",
177
177
  not: !1,
178
178
  rules: []
@@ -183,25 +183,25 @@ var y = 0, b = () => typeof window < "u" && window.__VRT__ ? (y += 1, `vrt-id-${
183
183
  ...r,
184
184
  rules: r.rules.map((e) => "rules" in e ? n(e) : e)
185
185
  };
186
- X(n(J)), Y(O);
186
+ X(n(J)), Y(k);
187
187
  }, Q = (e) => {
188
188
  let t = (n) => ({
189
189
  ...n,
190
190
  rules: n.rules.filter((t) => t.id !== e).map((e) => "rules" in e ? t(e) : e)
191
191
  });
192
- X(t(J)), Y(k);
192
+ X(t(J)), Y(A);
193
193
  }, $ = (e, t, r) => {
194
194
  let i = `${e.combinator.toUpperCase()} group`;
195
- return /* @__PURE__ */ v("div", {
195
+ return /* @__PURE__ */ _("div", {
196
196
  role: "group",
197
197
  "aria-label": i,
198
- className: g(u.group, t > 0 && u.nested, r && u.excluded),
198
+ className: h(l.group, t > 0 && l.nested, r && l.excluded),
199
199
  children: [
200
- /* @__PURE__ */ v("div", {
201
- className: u.groupHeader,
202
- children: [/* @__PURE__ */ v("div", {
203
- className: u.groupHeaderLeft,
204
- children: [/* @__PURE__ */ _(o, {
200
+ /* @__PURE__ */ _("div", {
201
+ className: l.groupHeader,
202
+ children: [/* @__PURE__ */ _("div", {
203
+ className: l.groupHeaderLeft,
204
+ children: [/* @__PURE__ */ g(a, {
205
205
  size: "md",
206
206
  options: [{
207
207
  label: "AND",
@@ -214,160 +214,162 @@ var y = 0, b = () => typeof window < "u" && window.__VRT__ ? (y += 1, `vrt-id-${
214
214
  onChange: (t) => Z(e.id, { combinator: t }),
215
215
  "aria-label": V,
216
216
  styles: {
217
- root: u.segmentedControl,
218
- item: u.segmentedControlItem,
219
- slider: u.segmentedControlSlider
217
+ root: l.segmentedControl,
218
+ item: l.segmentedControlItem,
219
+ slider: l.segmentedControlSlider
220
220
  }
221
- }), /* @__PURE__ */ _(c, {
221
+ }), /* @__PURE__ */ g(s, {
222
222
  size: "md",
223
223
  checked: e.not,
224
224
  onChange: (t) => Z(e.id, { not: t.target.checked }),
225
225
  children: "NOT"
226
226
  })]
227
- }), t > 0 && /* @__PURE__ */ _(l, {
227
+ }), t > 0 && /* @__PURE__ */ g(c, {
228
228
  iconName: "TrashIcon",
229
- "aria-label": L,
229
+ "aria-label": R,
230
230
  variant: "ghost",
231
231
  size: "md",
232
232
  intent: "danger",
233
233
  onClick: () => Q(e.id),
234
- className: u.removeGroup
234
+ className: l.removeGroup
235
235
  })]
236
236
  }),
237
- /* @__PURE__ */ _("div", {
238
- className: u.ruleList,
239
- children: e.rules.map((e) => "rules" in e ? $(e, t + 1, r) : ae(e))
237
+ /* @__PURE__ */ g("div", {
238
+ className: l.ruleList,
239
+ children: e.rules.map((e) => "rules" in e ? $(e, t + 1, r) : ce(e))
240
240
  }),
241
- /* @__PURE__ */ v("div", {
242
- className: u.groupActions,
243
- children: [/* @__PURE__ */ _(n, {
241
+ /* @__PURE__ */ _("div", {
242
+ className: l.groupActions,
243
+ children: [/* @__PURE__ */ g(n, {
244
244
  size: "md",
245
245
  variant: "ghost",
246
246
  icon: "PlusIcon",
247
- onClick: () => re(e.id),
248
- children: R
249
- }), t < ee && /* @__PURE__ */ _(n, {
247
+ onClick: () => oe(e.id),
248
+ children: z
249
+ }), t < te && /* @__PURE__ */ g(n, {
250
250
  size: "md",
251
251
  variant: "ghost",
252
252
  icon: "PlusIcon",
253
- onClick: () => ie(e.id),
254
- children: z
253
+ onClick: () => se(e.id),
254
+ children: ae
255
255
  })]
256
256
  })
257
257
  ]
258
258
  }, e.id);
259
- }, ae = (e) => {
260
- let t = y.find((t) => t.name === e.field)?.type || "string", n = x[t].map((e) => ({
259
+ }, ce = (e) => {
260
+ let t = v.find((t) => t.name === e.field)?.type || "string", n = b[t].map((e) => ({
261
261
  ...e,
262
- label: H[e.key] || E(`query.builder.operators.${e.key}`)
263
- })), o = (t) => {
264
- let n = y.find((e) => e.name === t);
262
+ label: H[e.key] || D(`query.builder.operators.${e.key}`)
263
+ })), a = (t) => {
264
+ let n = v.find((e) => e.name === t);
265
265
  Z(e.id, {
266
266
  field: t,
267
267
  operator: "=",
268
268
  value: n?.type !== "boolean" && ""
269
269
  });
270
270
  };
271
- n.some((t) => t.value === e.operator) || d(e.operator, t, n.map((e) => e.value));
272
- let c = e.operator === "is_null" || e.operator === "is_not_null";
273
- return /* @__PURE__ */ _("div", {
274
- className: u.rule,
271
+ n.some((t) => t.value === e.operator) || u(e.operator, t, n.map((e) => e.value));
272
+ let s = e.operator === "is_null" || e.operator === "is_not_null";
273
+ return /* @__PURE__ */ g("div", {
274
+ className: l.rule,
275
275
  role: "group",
276
- "aria-label": A,
277
- children: /* @__PURE__ */ v("div", {
278
- className: u.ruleFields,
276
+ "aria-label": j,
277
+ children: /* @__PURE__ */ _("div", {
278
+ className: l.ruleFields,
279
279
  children: [
280
- /* @__PURE__ */ _(s, {
281
- className: u.field,
282
- options: y.map((e) => ({
280
+ /* @__PURE__ */ g(o, {
281
+ className: l.field,
282
+ options: v.map((e) => ({
283
283
  label: e.label,
284
284
  value: e.name
285
285
  })),
286
286
  value: e.field,
287
- onChange: o,
288
- "aria-label": j,
287
+ onChange: a,
288
+ "aria-label": M,
289
289
  fullWidth: !0,
290
290
  styles: {
291
- root: u.select,
292
- trigger: u.selectTrigger,
293
- inputBase: { root: u.inputBase }
291
+ root: l.select,
292
+ trigger: l.selectTrigger,
293
+ inputBase: { root: l.inputBase }
294
294
  }
295
295
  }),
296
- /* @__PURE__ */ _(s, {
297
- className: u.operator,
296
+ /* @__PURE__ */ g(o, {
297
+ className: l.operator,
298
298
  options: n.map((e) => ({
299
299
  label: e.label,
300
300
  value: e.value
301
301
  })),
302
302
  value: e.operator,
303
303
  onChange: (t) => Z(e.id, { operator: t }),
304
- "aria-label": M,
304
+ "aria-label": N,
305
305
  fullWidth: !0,
306
306
  styles: {
307
- root: u.select,
308
- trigger: u.selectTrigger,
309
- inputBase: { root: u.inputBase }
307
+ root: l.select,
308
+ trigger: l.selectTrigger,
309
+ inputBase: { root: l.inputBase }
310
310
  }
311
311
  }),
312
- !c && /* @__PURE__ */ _("div", {
313
- className: u.value,
314
- children: t === "number" ? /* @__PURE__ */ _(a, {
312
+ !s && /* @__PURE__ */ g("div", {
313
+ className: l.value,
314
+ children: t === "number" ? /* @__PURE__ */ g(ee, {
315
315
  value: typeof e.value == "boolean" ? void 0 : e.value ?? void 0,
316
316
  onChange: (t) => Z(e.id, { value: t.target.value }),
317
- "aria-label": N
318
- }) : t === "date" ? /* @__PURE__ */ _(i, {
317
+ "aria-label": P
318
+ }) : t === "date" ? /* @__PURE__ */ g(i, {
319
319
  value: typeof e.value == "string" || typeof e.value == "number" ? new Date(e.value) : void 0,
320
320
  onChange: (t) => Z(e.id, { value: t ? t.toISOString() : "" }),
321
- "aria-label": N
322
- }) : t === "boolean" ? /* @__PURE__ */ _(s, {
321
+ "aria-label": P
322
+ }) : t === "boolean" ? /* @__PURE__ */ g(o, {
323
323
  options: [{
324
- label: P,
324
+ label: F,
325
325
  value: "true"
326
326
  }, {
327
- label: F,
327
+ label: I,
328
328
  value: "false"
329
329
  }],
330
330
  value: String(e.value),
331
331
  onChange: (t) => Z(e.id, { value: t === "true" }),
332
- "aria-label": N,
332
+ "aria-label": P,
333
333
  fullWidth: !0,
334
334
  styles: {
335
- root: u.select,
336
- trigger: u.selectTrigger,
337
- inputBase: { root: u.inputBase }
335
+ root: l.select,
336
+ trigger: l.selectTrigger,
337
+ inputBase: { root: l.inputBase }
338
338
  }
339
- }) : /* @__PURE__ */ _(r, {
339
+ }) : /* @__PURE__ */ g(r, {
340
340
  value: typeof e.value == "boolean" ? void 0 : e.value ?? void 0,
341
341
  onChange: (t) => Z(e.id, { value: t.target.value }),
342
- "aria-label": N,
343
- styles: { root: u.inputBase }
342
+ "aria-label": P,
343
+ styles: { root: l.inputBase }
344
344
  })
345
345
  }),
346
- /* @__PURE__ */ _(l, {
346
+ /* @__PURE__ */ g(c, {
347
347
  iconName: "TrashIcon",
348
- "aria-label": I,
348
+ "aria-label": L,
349
349
  variant: "ghost",
350
350
  size: "md",
351
351
  intent: "danger",
352
352
  onClick: () => Q(e.id),
353
- className: u.removeRule
353
+ className: l.removeRule
354
354
  })
355
355
  ]
356
356
  })
357
357
  }, e.id);
358
358
  };
359
- return /* @__PURE__ */ v("div", {
359
+ return /* @__PURE__ */ _("div", {
360
360
  id: W,
361
361
  role: "region",
362
- "aria-label": B,
363
- className: g("wim-query-builder", u.root, te),
364
- children: [/* @__PURE__ */ _("div", {
362
+ "aria-label": T ? void 0 : w ?? B,
363
+ "aria-labelledby": T,
364
+ "aria-describedby": E,
365
+ className: h("wim-query-builder", l.root, ne),
366
+ children: [/* @__PURE__ */ g("div", {
365
367
  ref: G,
366
368
  "aria-live": "polite",
367
369
  "aria-atomic": "true",
368
- className: u.srOnly
370
+ className: l.srOnly
369
371
  }), $(J, 0, !1)]
370
372
  });
371
373
  };
372
374
  //#endregion
373
- export { S as QueryBuilder };
375
+ export { x as QueryBuilder };
@@ -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("../../../icon/monitor.cjs"),a=require("../../../icon/moon.cjs"),o=require("../../../icon/sun.cjs"),s=require("../../media/Icon/Icon.cjs"),c=require("../../../theme.cjs"),l=require("./theme-toggle.module.cjs");let u=require("react");u=e.__toESM(u,1);let d=require("classnames");d=e.__toESM(d,1);let f=require("react/jsx-runtime");var p={light:o.default,dark:a.default,system:i.default},m=`wim-theme`,h=e=>e===`light`||e===`dark`||e===`system`,g=u.default.forwardRef(({value:e,defaultValue:i=`system`,onChange:a,modes:o=[`light`,`dark`],variant:g=`icon`,size:_=`md`,storageKey:v=m,applyToDocument:y=!0,labels:b,className:x,asChild:S=!1,children:C,...w},T)=>{let{t:E}=n.useWimTranslation(r.commonNs),{light:D=E(`common.light`),dark:O=E(`common.dark`),system:k=E(`theme.system`),toggle:A=E(`theme.toggle`)}=b??{},j={light:D,dark:O,system:k},M=e!==void 0,[N,P]=(0,u.useState)(()=>{if(typeof window<`u`&&v){let e=window.localStorage.getItem(v);if(h(e)&&o.includes(e))return e}return o.includes(i)?i:o[0]}),F=M?e:N;(0,u.useEffect)(()=>{y&&c.setWimTheme(F)},[F,y]);let I=(0,u.useCallback)(e=>{M||P(e),typeof window<`u`&&v&&window.localStorage.setItem(v,e),a?.(e)},[M,v,a]),L=()=>{let e=o[(o.indexOf(F)+1)%o.length];I(e)},R=S?t.Root:`div`;return g===`segmented`?(0,f.jsxs)(R,{ref:T,role:`group`,"aria-label":A,className:(0,d.default)(`wim-theme-toggle`,l.default.segmented,l.default[_],x),...w,children:[o.map(e=>{let t=e===F;return(0,f.jsx)(`button`,{type:`button`,className:(0,d.default)(l.default.segment,t&&l.default.active),"aria-pressed":t,"aria-label":j[e],title:j[e],onClick:()=>I(e),children:(0,f.jsx)(s.Icon,{component:p[e],size:_})},e)}),(0,f.jsx)(t.Slottable,{children:C})]}):(0,f.jsxs)(R,{ref:T,className:(0,d.default)(`wim-theme-toggle`,l.default.root,x),...w,children:[(0,f.jsx)(`button`,{type:`button`,className:(0,d.default)(l.default.iconButton,l.default[_]),"aria-label":`${A} (${j[F]})`,title:j[F],onClick:L,children:(0,f.jsx)(s.Icon,{component:p[F],size:_})}),(0,f.jsx)(t.Slottable,{children:C})]})});g.displayName=`ThemeToggle`,exports.ThemeToggle=g;
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("../../../icon/monitor.cjs"),a=require("../../../icon/moon.cjs"),o=require("../../../icon/sun.cjs"),s=require("../../media/Icon/Icon.cjs"),c=require("../../../theme.cjs"),l=require("./theme-toggle.module.cjs");let u=require("react");u=e.__toESM(u,1);let d=require("classnames");d=e.__toESM(d,1);let f=require("react/jsx-runtime");var p={light:o.default,dark:a.default,system:i.default},m=`wim-theme`,h=e=>e===`light`||e===`dark`||e===`system`,g=u.default.forwardRef(({value:e,defaultValue:i=`system`,onChange:a,modes:o=[`light`,`dark`],variant:g=`icon`,size:_=`md`,storageKey:v=m,applyToDocument:y=!0,labels:b,className:x,asChild:S=!1,children:C,"aria-label":w,"aria-labelledby":T,"aria-describedby":E,...D},O)=>{let{t:k}=n.useWimTranslation(r.commonNs),{light:A=k(`common.light`),dark:j=k(`common.dark`),system:M=k(`theme.system`),toggle:N=k(`theme.toggle`)}=b??{},P={light:A,dark:j,system:M},F=e!==void 0,[I,L]=(0,u.useState)(()=>{if(typeof window<`u`&&v){let e=window.localStorage.getItem(v);if(h(e)&&o.includes(e))return e}return o.includes(i)?i:o[0]}),R=F?e:I;(0,u.useEffect)(()=>{y&&c.setWimTheme(R)},[R,y]);let z=(0,u.useCallback)(e=>{F||L(e),typeof window<`u`&&v&&window.localStorage.setItem(v,e),a?.(e)},[F,v,a]),B=()=>{let e=o[(o.indexOf(R)+1)%o.length];z(e)},V=(0,u.useId)(),H=S?t.Root:`div`,U=`wim-theme-toggle-${V}`;return g===`segmented`?(0,f.jsxs)(H,{ref:O,role:`group`,"aria-label":T?void 0:w??N,"aria-labelledby":T,"aria-describedby":E,className:(0,d.default)(`wim-theme-toggle`,l.default.segmented,l.default[_],x),...D,children:[o.map(e=>{let t=e===R;return(0,f.jsx)(`button`,{type:`button`,className:(0,d.default)(l.default.segment,t&&l.default.active),"aria-pressed":t,"aria-label":P[e],title:P[e],onClick:()=>z(e),children:(0,f.jsx)(s.Icon,{component:p[e],size:_})},e)}),(0,f.jsx)(t.Slottable,{children:C})]}):(0,f.jsxs)(H,{ref:O,className:(0,d.default)(`wim-theme-toggle`,l.default.root,x),...D,children:[(0,f.jsx)(`button`,{type:`button`,className:(0,d.default)(l.default.iconButton,l.default[_]),id:U,"aria-label":T?P[R]:`${w??N} (${P[R]})`,"aria-labelledby":T?`${T} ${U}`:void 0,"aria-describedby":E,title:P[R],onClick:B,children:(0,f.jsx)(s.Icon,{component:p[R],size:_})}),(0,f.jsx)(t.Slottable,{children:C})]})});g.displayName=`ThemeToggle`,exports.ThemeToggle=g;
@@ -8,77 +8,82 @@ import o from "../../../icon/sun.js";
8
8
  import { Icon as s } from "../../media/Icon/Icon.js";
9
9
  import { setWimTheme as c } from "../../../theme.js";
10
10
  import l from "./theme-toggle.module.js";
11
- import u, { useCallback as d, useEffect as f, useState as p } from "react";
12
- import m from "classnames";
13
- import { jsx as h, jsxs as g } from "react/jsx-runtime";
11
+ import u, { useCallback as d, useEffect as f, useId as p, useState as m } from "react";
12
+ import h from "classnames";
13
+ import { jsx as g, jsxs as _ } from "react/jsx-runtime";
14
14
  //#region src/components/form/ThemeToggle/ThemeToggle.tsx
15
- var _ = {
15
+ var v = {
16
16
  light: o,
17
17
  dark: a,
18
18
  system: i
19
- }, v = "wim-theme", y = (e) => e === "light" || e === "dark" || e === "system", b = u.forwardRef(({ value: i, defaultValue: a = "system", onChange: o, modes: u = ["light", "dark"], variant: b = "icon", size: x = "md", storageKey: S = v, applyToDocument: C = !0, labels: w, className: T, asChild: E = !1, children: D, ...O }, k) => {
20
- let { t: A } = n(r), { light: j = A("common.light"), dark: M = A("common.dark"), system: N = A("theme.system"), toggle: P = A("theme.toggle") } = w ?? {}, F = {
21
- light: j,
22
- dark: M,
23
- system: N
24
- }, I = i !== void 0, [L, R] = p(() => {
25
- if (typeof window < "u" && S) {
26
- let e = window.localStorage.getItem(S);
27
- if (y(e) && u.includes(e)) return e;
19
+ }, y = "wim-theme", b = (e) => e === "light" || e === "dark" || e === "system", x = u.forwardRef(({ value: i, defaultValue: a = "system", onChange: o, modes: u = ["light", "dark"], variant: x = "icon", size: S = "md", storageKey: C = y, applyToDocument: w = !0, labels: T, className: E, asChild: D = !1, children: O, "aria-label": k, "aria-labelledby": A, "aria-describedby": j, ...M }, N) => {
20
+ let { t: P } = n(r), { light: F = P("common.light"), dark: I = P("common.dark"), system: L = P("theme.system"), toggle: R = P("theme.toggle") } = T ?? {}, z = {
21
+ light: F,
22
+ dark: I,
23
+ system: L
24
+ }, B = i !== void 0, [V, H] = m(() => {
25
+ if (typeof window < "u" && C) {
26
+ let e = window.localStorage.getItem(C);
27
+ if (b(e) && u.includes(e)) return e;
28
28
  }
29
29
  return u.includes(a) ? a : u[0];
30
- }), z = I ? i : L;
30
+ }), U = B ? i : V;
31
31
  f(() => {
32
- C && c(z);
33
- }, [z, C]);
34
- let B = d((e) => {
35
- I || R(e), typeof window < "u" && S && window.localStorage.setItem(S, e), o?.(e);
32
+ w && c(U);
33
+ }, [U, w]);
34
+ let W = d((e) => {
35
+ B || H(e), typeof window < "u" && C && window.localStorage.setItem(C, e), o?.(e);
36
36
  }, [
37
- I,
38
- S,
37
+ B,
38
+ C,
39
39
  o
40
- ]), V = () => {
41
- let e = u[(u.indexOf(z) + 1) % u.length];
42
- B(e);
43
- }, H = E ? e : "div";
44
- return b === "segmented" ? /* @__PURE__ */ g(H, {
45
- ref: k,
40
+ ]), G = () => {
41
+ let e = u[(u.indexOf(U) + 1) % u.length];
42
+ W(e);
43
+ }, K = p(), q = D ? e : "div", J = `wim-theme-toggle-${K}`;
44
+ return x === "segmented" ? /* @__PURE__ */ _(q, {
45
+ ref: N,
46
46
  role: "group",
47
- "aria-label": P,
48
- className: m("wim-theme-toggle", l.segmented, l[x], T),
49
- ...O,
47
+ "aria-label": A ? void 0 : k ?? R,
48
+ "aria-labelledby": A,
49
+ "aria-describedby": j,
50
+ className: h("wim-theme-toggle", l.segmented, l[S], E),
51
+ ...M,
50
52
  children: [u.map((e) => {
51
- let t = e === z;
52
- return /* @__PURE__ */ h("button", {
53
+ let t = e === U;
54
+ return /* @__PURE__ */ g("button", {
53
55
  type: "button",
54
- className: m(l.segment, t && l.active),
56
+ className: h(l.segment, t && l.active),
55
57
  "aria-pressed": t,
56
- "aria-label": F[e],
57
- title: F[e],
58
- onClick: () => B(e),
59
- children: /* @__PURE__ */ h(s, {
60
- component: _[e],
61
- size: x
58
+ "aria-label": z[e],
59
+ title: z[e],
60
+ onClick: () => W(e),
61
+ children: /* @__PURE__ */ g(s, {
62
+ component: v[e],
63
+ size: S
62
64
  })
63
65
  }, e);
64
- }), /* @__PURE__ */ h(t, { children: D })]
65
- }) : /* @__PURE__ */ g(H, {
66
- ref: k,
67
- className: m("wim-theme-toggle", l.root, T),
68
- ...O,
69
- children: [/* @__PURE__ */ h("button", {
66
+ }), /* @__PURE__ */ g(t, { children: O })]
67
+ }) : /* @__PURE__ */ _(q, {
68
+ ref: N,
69
+ className: h("wim-theme-toggle", l.root, E),
70
+ ...M,
71
+ children: [/* @__PURE__ */ g("button", {
70
72
  type: "button",
71
- className: m(l.iconButton, l[x]),
72
- "aria-label": `${P} (${F[z]})`,
73
- title: F[z],
74
- onClick: V,
75
- children: /* @__PURE__ */ h(s, {
76
- component: _[z],
77
- size: x
73
+ className: h(l.iconButton, l[S]),
74
+ id: J,
75
+ "aria-label": A ? z[U] : `${k ?? R} (${z[U]})`,
76
+ "aria-labelledby": A ? `${A} ${J}` : void 0,
77
+ "aria-describedby": j,
78
+ title: z[U],
79
+ onClick: G,
80
+ children: /* @__PURE__ */ g(s, {
81
+ component: v[U],
82
+ size: S
78
83
  })
79
- }), /* @__PURE__ */ h(t, { children: D })]
84
+ }), /* @__PURE__ */ g(t, { children: O })]
80
85
  });
81
86
  });
82
- b.displayName = "ThemeToggle";
87
+ x.displayName = "ThemeToggle";
83
88
  //#endregion
84
- export { b as ThemeToggle };
89
+ export { x as ThemeToggle };
@@ -1,2 +1,2 @@
1
1
  "use client";
2
- const e=require("../../../_virtual/_rolldown/runtime.cjs"),t=require("../../../i18n/useWimTranslation.cjs"),n=require("../../../i18n/generated/common.cjs"),r=require("../../../icon/chevron-left.cjs"),i=require("../../../icon/chevron-right.cjs"),a=require("../Icon/Icon.cjs"),o=require("./image-compare.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=>Math.max(0,Math.min(100,e)),d=s.default.forwardRef(({before:e,after:d,beforeAlt:f=``,afterAlt:p=``,beforeLabel:m,afterLabel:h,defaultPosition:g=50,position:_,onPositionChange:v,orientation:y=`horizontal`,width:b,height:x,radius:S=`md`,labels:C,className:w,...T},E)=>{let{t:D}=t.useWimTranslation(n.commonNs),{handleAriaLabel:O=D(`imageCompare.handle`)}=C??{},k=_!==void 0,[A,j]=(0,s.useState)(u(g)),M=u(k?_:A),N=y===`vertical`,P=(0,s.useRef)(null),F=(0,s.useRef)(!1),I=(0,s.useCallback)(e=>{P.current=e,typeof E==`function`?E(e):E&&(E.current=e)},[E]),L=(0,s.useCallback)(e=>{let t=u(e);k||j(t),v?.(t)},[k,v]),R=(0,s.useCallback)((e,t)=>{let n=P.current?.getBoundingClientRect();if(!n)return;let r=N?(t-n.top)/n.height*100:(e-n.left)/n.width*100;L(r)},[N,L]),z=e=>{F.current=!0,e.currentTarget.setPointerCapture(e.pointerId),R(e.clientX,e.clientY)},B=e=>{F.current&&R(e.clientX,e.clientY)},V=e=>{F.current=!1,e.currentTarget.releasePointerCapture?.(e.pointerId)},H=e=>{let t=e.shiftKey?10:2,n=N?`ArrowUp`:`ArrowLeft`,r=N?`ArrowDown`:`ArrowRight`;e.key===n?(e.preventDefault(),L(M-t)):e.key===r?(e.preventDefault(),L(M+t)):e.key===`Home`?(e.preventDefault(),L(0)):e.key===`End`&&(e.preventDefault(),L(100))},U=N?{clipPath:`inset(0 0 ${100-M}% 0)`}:{clipPath:`inset(0 ${100-M}% 0 0)`},W=N?{top:`${M}%`}:{left:`${M}%`};return(0,l.jsxs)(`div`,{ref:I,className:(0,c.default)(`wim-image-compare`,o.default.root,N&&o.default.vertical,o.default[`radius-${S}`],w),style:{width:b,height:x},onPointerDown:z,onPointerMove:B,onPointerUp:V,...T,children:[(0,l.jsx)(`img`,{className:o.default.image,src:d,alt:p,draggable:!1}),h&&(0,l.jsx)(`span`,{className:(0,c.default)(o.default.label,o.default.afterLabel),children:h}),(0,l.jsxs)(`div`,{className:o.default.beforeLayer,style:U,children:[(0,l.jsx)(`img`,{className:o.default.image,src:e,alt:f,draggable:!1}),m&&(0,l.jsx)(`span`,{className:(0,c.default)(o.default.label,o.default.beforeLabel),children:m})]}),(0,l.jsxs)(`div`,{className:o.default.divider,style:W,children:[(0,l.jsx)(`span`,{className:o.default.line,"aria-hidden":`true`}),(0,l.jsxs)(`button`,{type:`button`,className:o.default.handle,role:`slider`,"aria-label":O,"aria-orientation":y,"aria-valuenow":Math.round(M),"aria-valuemin":0,"aria-valuemax":100,onKeyDown:H,onPointerDown:z,children:[(0,l.jsx)(a.Icon,{component:r.default,size:`sm`,className:o.default.arrow}),(0,l.jsx)(a.Icon,{component:i.default,size:`sm`,className:o.default.arrow})]})]})]})});d.displayName=`ImageCompare`,exports.ImageCompare=d;
2
+ const e=require("../../../_virtual/_rolldown/runtime.cjs"),t=require("../../../i18n/useWimTranslation.cjs"),n=require("../../../i18n/generated/common.cjs"),r=require("../../../icon/chevron-left.cjs"),i=require("../../../icon/chevron-right.cjs"),a=require("../Icon/Icon.cjs"),o=require("./image-compare.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=>Math.max(0,Math.min(100,e)),d=s.default.forwardRef(({before:e,after:d,beforeAlt:f=``,afterAlt:p=``,beforeLabel:m,afterLabel:h,defaultPosition:g=50,position:_,onPositionChange:v,orientation:y=`horizontal`,width:b,height:x,radius:S=`md`,labels:C,className:w,"aria-label":T,"aria-labelledby":E,"aria-describedby":D,...O},k)=>{let{t:A}=t.useWimTranslation(n.commonNs),{handleAriaLabel:j=A(`imageCompare.handle`)}=C??{},M=_!==void 0,[N,P]=(0,s.useState)(u(g)),F=u(M?_:N),I=y===`vertical`,L=(0,s.useRef)(null),R=(0,s.useRef)(!1),z=(0,s.useCallback)(e=>{L.current=e,typeof k==`function`?k(e):k&&(k.current=e)},[k]),B=(0,s.useCallback)(e=>{let t=u(e);M||P(t),v?.(t)},[M,v]),V=(0,s.useCallback)((e,t)=>{let n=L.current?.getBoundingClientRect();if(!n)return;let r=I?(t-n.top)/n.height*100:(e-n.left)/n.width*100;B(r)},[I,B]),H=e=>{R.current=!0,e.currentTarget.setPointerCapture(e.pointerId),V(e.clientX,e.clientY)},U=e=>{R.current&&V(e.clientX,e.clientY)},W=e=>{R.current=!1,e.currentTarget.releasePointerCapture?.(e.pointerId)},G=e=>{let t=e.shiftKey?10:2,n=I?`ArrowUp`:`ArrowLeft`,r=I?`ArrowDown`:`ArrowRight`;e.key===n?(e.preventDefault(),B(F-t)):e.key===r?(e.preventDefault(),B(F+t)):e.key===`Home`?(e.preventDefault(),B(0)):e.key===`End`&&(e.preventDefault(),B(100))},K=I?{clipPath:`inset(0 0 ${100-F}% 0)`}:{clipPath:`inset(0 ${100-F}% 0 0)`},q=I?{top:`${F}%`}:{left:`${F}%`};return(0,l.jsxs)(`div`,{ref:z,className:(0,c.default)(`wim-image-compare`,o.default.root,I&&o.default.vertical,o.default[`radius-${S}`],w),style:{width:b,height:x},onPointerDown:H,onPointerMove:U,onPointerUp:W,...O,children:[(0,l.jsx)(`img`,{className:o.default.image,src:d,alt:p,draggable:!1}),h&&(0,l.jsx)(`span`,{className:(0,c.default)(o.default.label,o.default.afterLabel),children:h}),(0,l.jsxs)(`div`,{className:o.default.beforeLayer,style:K,children:[(0,l.jsx)(`img`,{className:o.default.image,src:e,alt:f,draggable:!1}),m&&(0,l.jsx)(`span`,{className:(0,c.default)(o.default.label,o.default.beforeLabel),children:m})]}),(0,l.jsxs)(`div`,{className:o.default.divider,style:q,children:[(0,l.jsx)(`span`,{className:o.default.line,"aria-hidden":`true`}),(0,l.jsxs)(`button`,{type:`button`,className:o.default.handle,role:`slider`,"aria-label":E?void 0:T??j,"aria-labelledby":E,"aria-describedby":D,"aria-orientation":y,"aria-valuenow":Math.round(F),"aria-valuemin":0,"aria-valuemax":100,onKeyDown:G,onPointerDown:H,children:[(0,l.jsx)(a.Icon,{component:r.default,size:`sm`,className:o.default.arrow}),(0,l.jsx)(a.Icon,{component:i.default,size:`sm`,className:o.default.arrow})]})]})]})});d.displayName=`ImageCompare`,exports.ImageCompare=d;
@@ -9,38 +9,38 @@ import o, { useCallback as s, useRef as c, useState as l } from "react";
9
9
  import u from "classnames";
10
10
  import { jsx as d, jsxs as f } from "react/jsx-runtime";
11
11
  //#region src/components/media/ImageCompare/ImageCompare.tsx
12
- var p = (e) => Math.max(0, Math.min(100, e)), m = o.forwardRef(({ before: o, after: m, beforeAlt: h = "", afterAlt: g = "", beforeLabel: _, afterLabel: v, defaultPosition: y = 50, position: b, onPositionChange: x, orientation: S = "horizontal", width: C, height: w, radius: T = "md", labels: E, className: D, ...O }, k) => {
13
- let { t: A } = e(t), { handleAriaLabel: j = A("imageCompare.handle") } = E ?? {}, M = b !== void 0, [N, P] = l(p(y)), F = p(M ? b : N), I = S === "vertical", L = c(null), R = c(!1), z = s((e) => {
14
- L.current = e, typeof k == "function" ? k(e) : k && (k.current = e);
15
- }, [k]), B = s((e) => {
12
+ var p = (e) => Math.max(0, Math.min(100, e)), m = o.forwardRef(({ before: o, after: m, beforeAlt: h = "", afterAlt: g = "", beforeLabel: _, afterLabel: v, defaultPosition: y = 50, position: b, onPositionChange: x, orientation: S = "horizontal", width: C, height: w, radius: T = "md", labels: E, className: D, "aria-label": O, "aria-labelledby": k, "aria-describedby": A, ...j }, M) => {
13
+ let { t: N } = e(t), { handleAriaLabel: P = N("imageCompare.handle") } = E ?? {}, F = b !== void 0, [I, L] = l(p(y)), R = p(F ? b : I), z = S === "vertical", B = c(null), V = c(!1), H = s((e) => {
14
+ B.current = e, typeof M == "function" ? M(e) : M && (M.current = e);
15
+ }, [M]), U = s((e) => {
16
16
  let t = p(e);
17
- M || P(t), x?.(t);
18
- }, [M, x]), V = s((e, t) => {
19
- let n = L.current?.getBoundingClientRect();
17
+ F || L(t), x?.(t);
18
+ }, [F, x]), W = s((e, t) => {
19
+ let n = B.current?.getBoundingClientRect();
20
20
  if (!n) return;
21
- let r = I ? (t - n.top) / n.height * 100 : (e - n.left) / n.width * 100;
22
- B(r);
23
- }, [I, B]), H = (e) => {
24
- R.current = !0, e.currentTarget.setPointerCapture(e.pointerId), V(e.clientX, e.clientY);
25
- }, U = (e) => {
26
- R.current && V(e.clientX, e.clientY);
27
- }, W = (e) => {
28
- R.current = !1, e.currentTarget.releasePointerCapture?.(e.pointerId);
29
- }, G = (e) => {
30
- let t = e.shiftKey ? 10 : 2, n = I ? "ArrowUp" : "ArrowLeft", r = I ? "ArrowDown" : "ArrowRight";
31
- e.key === n ? (e.preventDefault(), B(F - t)) : e.key === r ? (e.preventDefault(), B(F + t)) : e.key === "Home" ? (e.preventDefault(), B(0)) : e.key === "End" && (e.preventDefault(), B(100));
32
- }, K = I ? { clipPath: `inset(0 0 ${100 - F}% 0)` } : { clipPath: `inset(0 ${100 - F}% 0 0)` }, q = I ? { top: `${F}%` } : { left: `${F}%` };
21
+ let r = z ? (t - n.top) / n.height * 100 : (e - n.left) / n.width * 100;
22
+ U(r);
23
+ }, [z, U]), G = (e) => {
24
+ V.current = !0, e.currentTarget.setPointerCapture(e.pointerId), W(e.clientX, e.clientY);
25
+ }, K = (e) => {
26
+ V.current && W(e.clientX, e.clientY);
27
+ }, q = (e) => {
28
+ V.current = !1, e.currentTarget.releasePointerCapture?.(e.pointerId);
29
+ }, J = (e) => {
30
+ let t = e.shiftKey ? 10 : 2, n = z ? "ArrowUp" : "ArrowLeft", r = z ? "ArrowDown" : "ArrowRight";
31
+ e.key === n ? (e.preventDefault(), U(R - t)) : e.key === r ? (e.preventDefault(), U(R + t)) : e.key === "Home" ? (e.preventDefault(), U(0)) : e.key === "End" && (e.preventDefault(), U(100));
32
+ }, Y = z ? { clipPath: `inset(0 0 ${100 - R}% 0)` } : { clipPath: `inset(0 ${100 - R}% 0 0)` }, X = z ? { top: `${R}%` } : { left: `${R}%` };
33
33
  return /* @__PURE__ */ f("div", {
34
- ref: z,
35
- className: u("wim-image-compare", a.root, I && a.vertical, a[`radius-${T}`], D),
34
+ ref: H,
35
+ className: u("wim-image-compare", a.root, z && a.vertical, a[`radius-${T}`], D),
36
36
  style: {
37
37
  width: C,
38
38
  height: w
39
39
  },
40
- onPointerDown: H,
41
- onPointerMove: U,
42
- onPointerUp: W,
43
- ...O,
40
+ onPointerDown: G,
41
+ onPointerMove: K,
42
+ onPointerUp: q,
43
+ ...j,
44
44
  children: [
45
45
  /* @__PURE__ */ d("img", {
46
46
  className: a.image,
@@ -54,7 +54,7 @@ var p = (e) => Math.max(0, Math.min(100, e)), m = o.forwardRef(({ before: o, aft
54
54
  }),
55
55
  /* @__PURE__ */ f("div", {
56
56
  className: a.beforeLayer,
57
- style: K,
57
+ style: Y,
58
58
  children: [/* @__PURE__ */ d("img", {
59
59
  className: a.image,
60
60
  src: o,
@@ -67,7 +67,7 @@ var p = (e) => Math.max(0, Math.min(100, e)), m = o.forwardRef(({ before: o, aft
67
67
  }),
68
68
  /* @__PURE__ */ f("div", {
69
69
  className: a.divider,
70
- style: q,
70
+ style: X,
71
71
  children: [/* @__PURE__ */ d("span", {
72
72
  className: a.line,
73
73
  "aria-hidden": "true"
@@ -75,13 +75,15 @@ var p = (e) => Math.max(0, Math.min(100, e)), m = o.forwardRef(({ before: o, aft
75
75
  type: "button",
76
76
  className: a.handle,
77
77
  role: "slider",
78
- "aria-label": j,
78
+ "aria-label": k ? void 0 : O ?? P,
79
+ "aria-labelledby": k,
80
+ "aria-describedby": A,
79
81
  "aria-orientation": S,
80
- "aria-valuenow": Math.round(F),
82
+ "aria-valuenow": Math.round(R),
81
83
  "aria-valuemin": 0,
82
84
  "aria-valuemax": 100,
83
- onKeyDown: G,
84
- onPointerDown: H,
85
+ onKeyDown: J,
86
+ onPointerDown: G,
85
87
  children: [/* @__PURE__ */ d(i, {
86
88
  component: n,
87
89
  size: "sm",