wimui 0.19.0 → 0.20.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 (43) hide show
  1. package/dist/components/form/Button/button.module.cjs +1 -1
  2. package/dist/components/form/Button/button.module.js +2 -2
  3. package/dist/components/form/ColorInput/ColorInput.cjs +1 -1
  4. package/dist/components/form/ColorInput/ColorInput.d.ts +9 -1
  5. package/dist/components/form/ColorInput/ColorInput.js +36 -46
  6. package/dist/components/form/ColorInput/color-input.module.cjs +1 -1
  7. package/dist/components/form/ColorInput/color-input.module.js +4 -7
  8. package/dist/components/form/DateRangePicker/DateRangePicker.cjs +1 -1
  9. package/dist/components/form/DateRangePicker/DateRangePicker.js +36 -37
  10. package/dist/components/form/InputBase/input-base.module.cjs +1 -1
  11. package/dist/components/form/InputBase/input-base.module.js +1 -1
  12. package/dist/components/form/MultiSelect/MultiSelect.cjs +1 -1
  13. package/dist/components/form/MultiSelect/MultiSelect.js +1 -1
  14. package/dist/components/form/QueryBuilder/QueryBuilder.cjs +1 -1
  15. package/dist/components/form/QueryBuilder/QueryBuilder.d.ts +124 -1
  16. package/dist/components/form/QueryBuilder/QueryBuilder.js +87 -84
  17. package/dist/components/form/QueryBuilder/querybuilder.module.cjs +1 -1
  18. package/dist/components/form/QueryBuilder/querybuilder.module.js +1 -1
  19. package/dist/components/form/QueryBuilder/warn-unknown-operator.cjs +2 -0
  20. package/dist/components/form/QueryBuilder/warn-unknown-operator.d.ts +3 -0
  21. package/dist/components/form/QueryBuilder/warn-unknown-operator.js +4 -0
  22. package/dist/components/form/SmartSearchInput/SmartSearchInput.cjs +1 -1
  23. package/dist/components/form/SmartSearchInput/SmartSearchInput.js +4 -0
  24. package/dist/components/form/SmartSearchInput/smart-search-input.module.cjs +1 -1
  25. package/dist/components/form/SmartSearchInput/smart-search-input.module.js +5 -3
  26. package/dist/components/form/TagInput/TagInput.cjs +1 -1
  27. package/dist/components/form/TagInput/TagInput.js +1 -1
  28. package/dist/components/layout/Header/header.module.cjs +1 -1
  29. package/dist/components/layout/Header/header.module.js +4 -4
  30. package/dist/i18n/generated/keys.d.ts +1 -1
  31. package/dist/i18n/generated/resources.cjs +1 -1
  32. package/dist/i18n/generated/resources.js +18 -3
  33. package/dist/llms-full.txt +1 -1
  34. package/dist/llms.txt +1 -1
  35. package/dist/locales/en/components.json +19 -2
  36. package/dist/locales/ja/components.json +19 -2
  37. package/dist/locales/pt/components.json +19 -2
  38. package/dist/reset.css +1 -1
  39. package/dist/styles.css +2 -2
  40. package/dist/types/generated-tokens.d.ts +1 -1
  41. package/dist/wimui.umd.css +1 -1
  42. package/dist/wimui.umd.js +5 -5
  43. package/package.json +5 -4
@@ -1,2 +1,2 @@
1
1
  "use client";
2
- var e=`_root_perg7_3`,t=`_fullWidth_perg7_30`,n=`_inner_perg7_38`,r=`_loader_perg7_41`,i=`_label_perg7_48`,a=`_lg_perg7_58`,o=`_md_perg7_67`,s=`_sm_perg7_76`,c=`_solid_perg7_86`,l=`_danger_perg7_96`,u=`_success_perg7_101`,d=`_outline_perg7_125`,f=`_ghost_perg7_162`,p=`_iconOnly_perg7_204`,m=`_content_perg7_214`,h=`_loading_perg7_224`,g=`_animatedWidth_perg7_233`,_={root:e,fullWidth:t,inner:n,loader:r,label:i,lg:a,md:o,sm:s,solid:c,default:`_default_perg7_91`,danger:l,success:u,outline:d,ghost:f,iconOnly:p,content:m,loading:h,animatedWidth:g};exports.animatedWidth=g,exports.content=m,exports.danger=l,exports.default=_,exports.fullWidth=t,exports.ghost=f,exports.iconOnly=p,exports.inner=n,exports.label=i,exports.lg=a,exports.loader=r,exports.loading=h,exports.md=o,exports.outline=d,exports.root=e,exports.sm=s,exports.solid=c,exports.success=u;
2
+ var e=`_root_11ol0_3`,t=`_fullWidth_11ol0_30`,n=`_inner_11ol0_38`,r=`_loader_11ol0_41`,i=`_label_11ol0_48`,a=`_lg_11ol0_58`,o=`_md_11ol0_67`,s=`_sm_11ol0_76`,c=`_solid_11ol0_86`,l=`_danger_11ol0_96`,u=`_success_11ol0_101`,d=`_outline_11ol0_125`,f=`_ghost_11ol0_162`,p=`_iconOnly_11ol0_213`,m=`_content_11ol0_223`,h=`_loading_11ol0_233`,g=`_animatedWidth_11ol0_242`,_={root:e,fullWidth:t,inner:n,loader:r,label:i,lg:a,md:o,sm:s,solid:c,default:`_default_11ol0_91`,danger:l,success:u,outline:d,ghost:f,iconOnly:p,content:m,loading:h,animatedWidth:g};exports.animatedWidth=g,exports.content=m,exports.danger=l,exports.default=_,exports.fullWidth=t,exports.ghost=f,exports.iconOnly=p,exports.inner=n,exports.label=i,exports.lg=a,exports.loader=r,exports.loading=h,exports.md=o,exports.outline=d,exports.root=e,exports.sm=s,exports.solid=c,exports.success=u;
@@ -1,6 +1,6 @@
1
1
  "use client";
2
2
  //#region src/components/form/Button/button.module.scss
3
- var e = "_root_perg7_3", t = "_fullWidth_perg7_30", n = "_inner_perg7_38", r = "_loader_perg7_41", i = "_label_perg7_48", a = "_lg_perg7_58", o = "_md_perg7_67", s = "_sm_perg7_76", c = "_solid_perg7_86", l = "_danger_perg7_96", u = "_success_perg7_101", d = "_outline_perg7_125", f = "_ghost_perg7_162", p = "_iconOnly_perg7_204", m = "_content_perg7_214", h = "_loading_perg7_224", g = "_animatedWidth_perg7_233", _ = {
3
+ var e = "_root_11ol0_3", t = "_fullWidth_11ol0_30", n = "_inner_11ol0_38", r = "_loader_11ol0_41", i = "_label_11ol0_48", a = "_lg_11ol0_58", o = "_md_11ol0_67", s = "_sm_11ol0_76", c = "_solid_11ol0_86", l = "_danger_11ol0_96", u = "_success_11ol0_101", d = "_outline_11ol0_125", f = "_ghost_11ol0_162", p = "_iconOnly_11ol0_213", m = "_content_11ol0_223", h = "_loading_11ol0_233", g = "_animatedWidth_11ol0_242", _ = {
4
4
  root: e,
5
5
  fullWidth: t,
6
6
  inner: n,
@@ -10,7 +10,7 @@ var e = "_root_perg7_3", t = "_fullWidth_perg7_30", n = "_inner_perg7_38", r = "
10
10
  md: o,
11
11
  sm: s,
12
12
  solid: c,
13
- default: "_default_perg7_91",
13
+ default: "_default_11ol0_91",
14
14
  danger: l,
15
15
  success: u,
16
16
  outline: d,
@@ -1,2 +1,2 @@
1
1
  "use client";
2
- const e=require("../../../_virtual/_rolldown/runtime.cjs"),t=require("../Input/Input.cjs"),n=require("./color-input.module.cjs");let r=require("react");r=e.__toESM(r,1);let i=require("classnames");i=e.__toESM(i,1);let a=require("react/jsx-runtime");function o(e){let t=e.replace(`#`,``);if(t.length!==6&&t.length!==3)return null;let n=t.length===3?t.split(``).map(e=>e+e).join(``):t,r=parseInt(n,16);return isNaN(r)?null:{r:r>>16&255,g:r>>8&255,b:r&255}}function s(e,t,n){let[r,i,a]=[e,t,n].map(e=>{let t=e/255;return t<=.03928?t/12.92:((t+.055)/1.055)**2.4});return .2126*r+.7152*i+.0722*a}function c(e){let t=o(e);return t?s(t.r,t.g,t.b)<.4:!1}var l=({className:e,value:o,defaultValue:s,onChange:l,style:u,...d})=>{let[f,p]=(0,r.useState)(()=>s??`#000000`),m=o!==void 0,h=m?o:f,g=(0,r.useCallback)(e=>{m||p(e.target.value),l?.(e)},[m,l]),_=(0,r.useMemo)(()=>c(h),[h]);return(0,a.jsx)(t.Input,{type:`color`,className:(0,i.default)(`wim-color-input`,n.default.root,_&&n.default.dark,e),value:h,onChange:g,style:u,styles:{root:n.default.inputBase,icon:n.default.inputIcon,icons:n.default.inputIcons},inputClassName:n.default.input,...d})};exports.ColorInput=l;
2
+ const e=require("../../../_virtual/_rolldown/runtime.cjs"),t=require("../../../i18n/useWimTranslation.cjs"),n=require("../Input/Input.cjs"),r=require("./color-input.module.cjs");let i=require("react");i=e.__toESM(i,1);let a=require("classnames");a=e.__toESM(a,1);let o=require("react/jsx-runtime");var s=/^#([0-9a-f]{3}|[0-9a-f]{6})$/i,c=e=>e.length===4?`#${e.slice(1).split(``).map(e=>e+e).join(``)}`:e,l=({className:e,value:l,defaultValue:u,onChange:d,style:f,...p})=>{let{t:m}=t.useWimTranslation(`components`),[h,g]=(0,i.useState)(()=>u??`#000000`),_=l!==void 0,v=_?l:h,[y,b]=(0,i.useState)(v),[x,S]=(0,i.useState)(v);v!==x&&(S(v),b(v));let C=(0,i.useCallback)((e,t)=>{_||g(e),d?.(t)},[_,d]),w=(0,i.useCallback)(e=>{let t=e.target.value;b(t),s.test(t.trim())&&C(t.trim(),e)},[C]),T=(0,i.useCallback)(e=>{b(e.target.value),C(e.target.value,e)},[C]),E=s.test(v)?c(v).toLowerCase():`#000000`;return(0,o.jsx)(n.Input,{type:`text`,className:(0,a.default)(`wim-color-input`,r.default.root,e),value:y,onChange:w,style:f,spellCheck:!1,autoCapitalize:`none`,autoCorrect:`off`,inputClassName:r.default.input,suffix:(0,o.jsx)(`input`,{type:`color`,className:r.default.swatch,value:E,onChange:T,disabled:p.disabled,"aria-label":m(`colorinput.swatch`),tabIndex:-1}),...p})};exports.ColorInput=l;
@@ -1,6 +1,14 @@
1
1
  import { default as React } from 'react';
2
2
  import { Input } from '../../form/Input/Input';
3
3
  /**
4
- * カラー選択に特化した入力コンポーネント。
4
+ * 色を**文字で入れる**ための入力。`#f3ece1` のような値をそのまま打てて、
5
+ * 右の見本から選ぶこともできる。
6
+ *
7
+ * **以前は `<Input type="color">` を出すだけ**で、テキスト欄が無かった。
8
+ * `ColorPicker` と同じ見た目・同じ操作で、docs が言う「正確な値を文字で入れる」
9
+ * ができない状態だった(T122)。役割分担はこう:
10
+ *
11
+ * - `ColorInput` — 値が決まっている(ブランド色・デザイン指定)ときに**打ち込む**
12
+ * - `ColorPicker` — 値が決まっていないときに**見て選ぶ**
5
13
  */
6
14
  export declare const ColorInput: ({ className, value, defaultValue, onChange, style, ...props }: React.ComponentProps<typeof Input>) => React.JSX.Element;
@@ -1,53 +1,43 @@
1
1
  "use client";
2
- import { Input as e } from "../Input/Input.js";
3
- import t from "./color-input.module.js";
4
- import { useCallback as n, useMemo as r, useState as i } from "react";
2
+ import { useWimTranslation as e } from "../../../i18n/useWimTranslation.js";
3
+ import { Input as t } from "../Input/Input.js";
4
+ import n from "./color-input.module.js";
5
+ import { useCallback as r, useState as i } from "react";
5
6
  import a from "classnames";
6
7
  import { jsx as o } from "react/jsx-runtime";
7
8
  //#region src/components/form/ColorInput/ColorInput.tsx
8
- function s(e) {
9
- let t = e.replace("#", "");
10
- if (t.length !== 6 && t.length !== 3) return null;
11
- let n = t.length === 3 ? t.split("").map((e) => e + e).join("") : t, r = parseInt(n, 16);
12
- return isNaN(r) ? null : {
13
- r: r >> 16 & 255,
14
- g: r >> 8 & 255,
15
- b: r & 255
16
- };
17
- }
18
- function c(e, t, n) {
19
- let [r, i, a] = [
20
- e,
21
- t,
22
- n
23
- ].map((e) => {
24
- let t = e / 255;
25
- return t <= .03928 ? t / 12.92 : ((t + .055) / 1.055) ** 2.4;
26
- });
27
- return .2126 * r + .7152 * i + .0722 * a;
28
- }
29
- function l(e) {
30
- let t = s(e);
31
- return t ? c(t.r, t.g, t.b) < .4 : !1;
32
- }
33
- var u = ({ className: s, value: c, defaultValue: u, onChange: d, style: f, ...p }) => {
34
- let [m, h] = i(() => u ?? "#000000"), g = c !== void 0, _ = g ? c : m, v = n((e) => {
35
- g || h(e.target.value), d?.(e);
36
- }, [g, d]), y = r(() => l(_), [_]);
37
- return /* @__PURE__ */ o(e, {
38
- type: "color",
39
- className: a("wim-color-input", t.root, y && t.dark, s),
40
- value: _,
41
- onChange: v,
42
- style: f,
43
- styles: {
44
- root: t.inputBase,
45
- icon: t.inputIcon,
46
- icons: t.inputIcons
47
- },
48
- inputClassName: t.input,
49
- ...p
9
+ var s = /^#([0-9a-f]{3}|[0-9a-f]{6})$/i, c = (e) => e.length === 4 ? `#${e.slice(1).split("").map((e) => e + e).join("")}` : e, l = ({ className: l, value: u, defaultValue: d, onChange: f, style: p, ...m }) => {
10
+ let { t: h } = e("components"), [g, _] = i(() => d ?? "#000000"), v = u !== void 0, y = v ? u : g, [b, x] = i(y), [S, C] = i(y);
11
+ y !== S && (C(y), x(y));
12
+ let w = r((e, t) => {
13
+ v || _(e), f?.(t);
14
+ }, [v, f]), T = r((e) => {
15
+ let t = e.target.value;
16
+ x(t), s.test(t.trim()) && w(t.trim(), e);
17
+ }, [w]), E = r((e) => {
18
+ x(e.target.value), w(e.target.value, e);
19
+ }, [w]), D = s.test(y) ? c(y).toLowerCase() : "#000000";
20
+ return /* @__PURE__ */ o(t, {
21
+ type: "text",
22
+ className: a("wim-color-input", n.root, l),
23
+ value: b,
24
+ onChange: T,
25
+ style: p,
26
+ spellCheck: !1,
27
+ autoCapitalize: "none",
28
+ autoCorrect: "off",
29
+ inputClassName: n.input,
30
+ suffix: /* @__PURE__ */ o("input", {
31
+ type: "color",
32
+ className: n.swatch,
33
+ value: D,
34
+ onChange: E,
35
+ disabled: m.disabled,
36
+ "aria-label": h("colorinput.swatch"),
37
+ tabIndex: -1
38
+ }),
39
+ ...m
50
40
  });
51
41
  };
52
42
  //#endregion
53
- export { u as ColorInput };
43
+ export { l as ColorInput };
@@ -1,2 +1,2 @@
1
1
  "use client";
2
- var e=`_root_fut7b_2`,t=`_dark_fut7b_2`,n=`_inputBase_fut7b_2`,r=`_inputIcon_fut7b_2`,i=`_inputIcons_fut7b_3`,a=`_input_fut7b_2`,o={root:e,dark:t,inputBase:n,inputIcon:r,inputIcons:i,input:a};exports.dark=t,exports.default=o,exports.input=a,exports.inputBase=n,exports.inputIcon=r,exports.inputIcons=i,exports.root=e;
2
+ var e=`_root_1mq9x_30`,t=`_input_1mq9x_30`,n=`_swatch_1mq9x_40`,r={root:e,input:t,swatch:n};exports.default=r,exports.input=t,exports.root=e,exports.swatch=n;
@@ -1,12 +1,9 @@
1
1
  "use client";
2
2
  //#region src/components/form/ColorInput/color-input.module.scss
3
- var e = "_root_fut7b_2", t = "_dark_fut7b_2", n = "_inputBase_fut7b_2", r = "_inputIcon_fut7b_2", i = "_inputIcons_fut7b_3", a = "_input_fut7b_2", o = {
3
+ var e = "_root_1mq9x_30", t = "_input_1mq9x_30", n = "_swatch_1mq9x_40", r = {
4
4
  root: e,
5
- dark: t,
6
- inputBase: n,
7
- inputIcon: r,
8
- inputIcons: i,
9
- input: a
5
+ input: t,
6
+ swatch: n
10
7
  };
11
8
  //#endregion
12
- export { t as dark, o as default, a as input, n as inputBase, r as inputIcon, i as inputIcons, e as root };
9
+ export { r as default, t as input, e as root, n as swatch };
@@ -1,2 +1,2 @@
1
1
  "use client";
2
- const e=require("../../../_virtual/_rolldown/runtime.cjs"),t=require("../FieldTemplate/FieldTemplate.cjs"),n=require("../DatePicker/DatePicker.cjs"),r=require("./date-range-picker.module.cjs");let i=require("react");i=e.__toESM(i,1);let a=require("classnames");a=e.__toESM(a,1);let o=require("react/jsx-runtime");var s=({startProps:e,endProps:s,className:c,label:l,error:u,required:d,layout:f=`vertical`})=>{let p=`wim-daterangepicker-${(0,i.useId)()}`,m=l?`${p}-label`:void 0,h=u?`${p}-error`:void 0;return(0,o.jsx)(t.FieldTemplate,{label:l,error:u,required:d,layout:f,labelId:m,errorId:h,className:(0,a.default)(`wim-date-range-picker`,r.default.container,c),children:(0,o.jsxs)(`div`,{className:r.default.root,role:`group`,"aria-labelledby":m,"aria-describedby":h,children:[(0,o.jsx)(`div`,{className:r.default.pickerWrapper,children:(0,o.jsx)(n.DatePicker,{...e,label:void 0,error:void 0,intent:u?`danger`:e?.intent,fullWidth:!0})}),(0,o.jsx)(`span`,{className:r.default.separator,children:`~`}),(0,o.jsx)(`div`,{className:r.default.pickerWrapper,children:(0,o.jsx)(n.DatePicker,{...s,label:void 0,error:void 0,intent:u?`danger`:s?.intent,fullWidth:!0})})]})})};exports.DateRangePicker=s;
2
+ const e=require("../../../_virtual/_rolldown/runtime.cjs"),t=require("../../../i18n/useWimTranslation.cjs"),n=require("../FieldTemplate/FieldTemplate.cjs"),r=require("../DatePicker/DatePicker.cjs"),i=require("./date-range-picker.module.cjs");let a=require("react");a=e.__toESM(a,1);let o=require("classnames");o=e.__toESM(o,1);let s=require("react/jsx-runtime");var c=({startProps:e,endProps:c,className:l,label:u,error:d,required:f,layout:p=`vertical`})=>{let{t:m}=t.useWimTranslation(`components`),h=`wim-daterangepicker-${(0,a.useId)()}`,g=u?`${h}-label`:void 0,_=d?`${h}-error`:void 0,v=e?.label?void 0:m(`daterangepicker.start`),y=c?.label?void 0:m(`daterangepicker.end`);return(0,s.jsx)(n.FieldTemplate,{label:u,error:d,required:f,layout:p,labelId:g,errorId:_,className:(0,o.default)(`wim-date-range-picker`,i.default.container,l),children:(0,s.jsxs)(`div`,{className:i.default.root,role:`group`,"aria-labelledby":g,"aria-describedby":_,children:[(0,s.jsx)(`div`,{className:i.default.pickerWrapper,children:(0,s.jsx)(r.DatePicker,{"aria-label":v,...e,intent:d?`danger`:e?.intent,fullWidth:!0})}),(0,s.jsx)(`span`,{className:i.default.separator,children:`~`}),(0,s.jsx)(`div`,{className:i.default.pickerWrapper,children:(0,s.jsx)(r.DatePicker,{"aria-label":y,...c,intent:d?`danger`:c?.intent,fullWidth:!0})})]})})};exports.DateRangePicker=c;
@@ -1,48 +1,47 @@
1
1
  "use client";
2
- import { FieldTemplate as e } from "../FieldTemplate/FieldTemplate.js";
3
- import { DatePicker as t } from "../DatePicker/DatePicker.js";
4
- import n from "./date-range-picker.module.js";
5
- import { useId as r } from "react";
6
- import i from "classnames";
7
- import { jsx as a, jsxs as o } from "react/jsx-runtime";
2
+ import { useWimTranslation as e } from "../../../i18n/useWimTranslation.js";
3
+ import { FieldTemplate as t } from "../FieldTemplate/FieldTemplate.js";
4
+ import { DatePicker as n } from "../DatePicker/DatePicker.js";
5
+ import r from "./date-range-picker.module.js";
6
+ import { useId as i } from "react";
7
+ import a from "classnames";
8
+ import { jsx as o, jsxs as s } from "react/jsx-runtime";
8
9
  //#region src/components/form/DateRangePicker/DateRangePicker.tsx
9
- var s = ({ startProps: s, endProps: c, className: l, label: u, error: d, required: f, layout: p = "vertical" }) => {
10
- let m = `wim-daterangepicker-${r()}`, h = u ? `${m}-label` : void 0, g = d ? `${m}-error` : void 0;
11
- return /* @__PURE__ */ a(e, {
12
- label: u,
13
- error: d,
14
- required: f,
15
- layout: p,
16
- labelId: h,
17
- errorId: g,
18
- className: i("wim-date-range-picker", n.container, l),
19
- children: /* @__PURE__ */ o("div", {
20
- className: n.root,
10
+ var c = ({ startProps: c, endProps: l, className: u, label: d, error: f, required: p, layout: m = "vertical" }) => {
11
+ let { t: h } = e("components"), g = `wim-daterangepicker-${i()}`, _ = d ? `${g}-label` : void 0, v = f ? `${g}-error` : void 0, y = c?.label ? void 0 : h("daterangepicker.start"), b = l?.label ? void 0 : h("daterangepicker.end");
12
+ return /* @__PURE__ */ o(t, {
13
+ label: d,
14
+ error: f,
15
+ required: p,
16
+ layout: m,
17
+ labelId: _,
18
+ errorId: v,
19
+ className: a("wim-date-range-picker", r.container, u),
20
+ children: /* @__PURE__ */ s("div", {
21
+ className: r.root,
21
22
  role: "group",
22
- "aria-labelledby": h,
23
- "aria-describedby": g,
23
+ "aria-labelledby": _,
24
+ "aria-describedby": v,
24
25
  children: [
25
- /* @__PURE__ */ a("div", {
26
- className: n.pickerWrapper,
27
- children: /* @__PURE__ */ a(t, {
28
- ...s,
29
- label: void 0,
30
- error: void 0,
31
- intent: d ? "danger" : s?.intent,
26
+ /* @__PURE__ */ o("div", {
27
+ className: r.pickerWrapper,
28
+ children: /* @__PURE__ */ o(n, {
29
+ "aria-label": y,
30
+ ...c,
31
+ intent: f ? "danger" : c?.intent,
32
32
  fullWidth: !0
33
33
  })
34
34
  }),
35
- /* @__PURE__ */ a("span", {
36
- className: n.separator,
35
+ /* @__PURE__ */ o("span", {
36
+ className: r.separator,
37
37
  children: "~"
38
38
  }),
39
- /* @__PURE__ */ a("div", {
40
- className: n.pickerWrapper,
41
- children: /* @__PURE__ */ a(t, {
42
- ...c,
43
- label: void 0,
44
- error: void 0,
45
- intent: d ? "danger" : c?.intent,
39
+ /* @__PURE__ */ o("div", {
40
+ className: r.pickerWrapper,
41
+ children: /* @__PURE__ */ o(n, {
42
+ "aria-label": b,
43
+ ...l,
44
+ intent: f ? "danger" : l?.intent,
46
45
  fullWidth: !0
47
46
  })
48
47
  })
@@ -51,4 +50,4 @@ var s = ({ startProps: s, endProps: c, className: l, label: u, error: d, require
51
50
  });
52
51
  };
53
52
  //#endregion
54
- export { s as DateRangePicker };
53
+ export { c as DateRangePicker };
@@ -1,2 +1,2 @@
1
1
  "use client";
2
- var e=`_root_5t2jy_16`,t=`_ghost_5t2jy_61`,n=`_disabled_5t2jy_65`,r=`_icon_5t2jy_74`,i=`_iconItem_5t2jy_74`,a=`_danger_5t2jy_7`,o=`_warning_5t2jy_90`,s=`_success_5t2jy_93`,c=`_hasLeftIcon_5t2jy_112`,l=`_hasRightIcon_5t2jy_115`,u=`_hasMultipleRightIcons_5t2jy_118`,d=`_widthXs_5t2jy_121`,f=`_widthSm_5t2jy_124`,p=`_widthMd_5t2jy_127`,m=`_widthLg_5t2jy_130`,h=`_widthXl_5t2jy_133`,g=`_hasCustomWidth_5t2jy_136`,_=`_fullWidth_5t2jy_141`,v=`_clickable_5t2jy_163`,y=`_left_5t2jy_166`,b=`_suffix_5t2jy_169`,x=`_suffixClearsIcons_5t2jy_177`,S=`_icons_5t2jy_180`,C=`_right_5t2jy_191`,w=`_rotated_5t2jy_203`,T=`_iconButton_5t2jy_206`,E=`_inner_5t2jy_228`,D={root:e,ghost:t,disabled:n,icon:r,iconItem:i,danger:a,warning:o,success:s,hasLeftIcon:c,hasRightIcon:l,hasMultipleRightIcons:u,widthXs:d,widthSm:f,widthMd:p,widthLg:m,widthXl:h,hasCustomWidth:g,fullWidth:_,clickable:v,left:y,suffix:b,suffixClearsIcons:x,icons:S,right:C,rotated:w,iconButton:T,inner:E};exports.clickable=v,exports.danger=a,exports.default=D,exports.disabled=n,exports.fullWidth=_,exports.ghost=t,exports.hasCustomWidth=g,exports.hasLeftIcon=c,exports.hasMultipleRightIcons=u,exports.hasRightIcon=l,exports.icon=r,exports.iconButton=T,exports.iconItem=i,exports.icons=S,exports.inner=E,exports.left=y,exports.right=C,exports.root=e,exports.rotated=w,exports.success=s,exports.suffix=b,exports.suffixClearsIcons=x,exports.warning=o,exports.widthLg=m,exports.widthMd=p,exports.widthSm=f,exports.widthXl=h,exports.widthXs=d;
2
+ var e=`_root_n0ajw_16`,t=`_ghost_n0ajw_61`,n=`_disabled_n0ajw_65`,r=`_icon_n0ajw_74`,i=`_iconItem_n0ajw_74`,a=`_danger_n0ajw_7`,o=`_warning_n0ajw_90`,s=`_success_n0ajw_93`,c=`_hasLeftIcon_n0ajw_112`,l=`_hasRightIcon_n0ajw_115`,u=`_hasMultipleRightIcons_n0ajw_118`,d=`_widthXs_n0ajw_121`,f=`_widthSm_n0ajw_124`,p=`_widthMd_n0ajw_127`,m=`_widthLg_n0ajw_130`,h=`_widthXl_n0ajw_133`,g=`_hasCustomWidth_n0ajw_136`,_=`_fullWidth_n0ajw_141`,v=`_clickable_n0ajw_163`,y=`_left_n0ajw_166`,b=`_suffix_n0ajw_169`,x=`_suffixClearsIcons_n0ajw_177`,S=`_icons_n0ajw_180`,C=`_right_n0ajw_195`,w=`_rotated_n0ajw_207`,T=`_iconButton_n0ajw_210`,E=`_inner_n0ajw_232`,D={root:e,ghost:t,disabled:n,icon:r,iconItem:i,danger:a,warning:o,success:s,hasLeftIcon:c,hasRightIcon:l,hasMultipleRightIcons:u,widthXs:d,widthSm:f,widthMd:p,widthLg:m,widthXl:h,hasCustomWidth:g,fullWidth:_,clickable:v,left:y,suffix:b,suffixClearsIcons:x,icons:S,right:C,rotated:w,iconButton:T,inner:E};exports.clickable=v,exports.danger=a,exports.default=D,exports.disabled=n,exports.fullWidth=_,exports.ghost=t,exports.hasCustomWidth=g,exports.hasLeftIcon=c,exports.hasMultipleRightIcons=u,exports.hasRightIcon=l,exports.icon=r,exports.iconButton=T,exports.iconItem=i,exports.icons=S,exports.inner=E,exports.left=y,exports.right=C,exports.root=e,exports.rotated=w,exports.success=s,exports.suffix=b,exports.suffixClearsIcons=x,exports.warning=o,exports.widthLg=m,exports.widthMd=p,exports.widthSm=f,exports.widthXl=h,exports.widthXs=d;
@@ -1,6 +1,6 @@
1
1
  "use client";
2
2
  //#region src/components/form/InputBase/input-base.module.scss
3
- var e = "_root_5t2jy_16", t = "_ghost_5t2jy_61", n = "_disabled_5t2jy_65", r = "_icon_5t2jy_74", i = "_iconItem_5t2jy_74", a = "_danger_5t2jy_7", o = "_warning_5t2jy_90", s = "_success_5t2jy_93", c = "_hasLeftIcon_5t2jy_112", l = "_hasRightIcon_5t2jy_115", u = "_hasMultipleRightIcons_5t2jy_118", d = "_widthXs_5t2jy_121", f = "_widthSm_5t2jy_124", p = "_widthMd_5t2jy_127", m = "_widthLg_5t2jy_130", h = "_widthXl_5t2jy_133", g = "_hasCustomWidth_5t2jy_136", _ = "_fullWidth_5t2jy_141", v = "_clickable_5t2jy_163", y = "_left_5t2jy_166", b = "_suffix_5t2jy_169", x = "_suffixClearsIcons_5t2jy_177", S = "_icons_5t2jy_180", C = "_right_5t2jy_191", w = "_rotated_5t2jy_203", T = "_iconButton_5t2jy_206", E = "_inner_5t2jy_228", D = {
3
+ var e = "_root_n0ajw_16", t = "_ghost_n0ajw_61", n = "_disabled_n0ajw_65", r = "_icon_n0ajw_74", i = "_iconItem_n0ajw_74", a = "_danger_n0ajw_7", o = "_warning_n0ajw_90", s = "_success_n0ajw_93", c = "_hasLeftIcon_n0ajw_112", l = "_hasRightIcon_n0ajw_115", u = "_hasMultipleRightIcons_n0ajw_118", d = "_widthXs_n0ajw_121", f = "_widthSm_n0ajw_124", p = "_widthMd_n0ajw_127", m = "_widthLg_n0ajw_130", h = "_widthXl_n0ajw_133", g = "_hasCustomWidth_n0ajw_136", _ = "_fullWidth_n0ajw_141", v = "_clickable_n0ajw_163", y = "_left_n0ajw_166", b = "_suffix_n0ajw_169", x = "_suffixClearsIcons_n0ajw_177", S = "_icons_n0ajw_180", C = "_right_n0ajw_195", w = "_rotated_n0ajw_207", T = "_iconButton_n0ajw_210", E = "_inner_n0ajw_232", D = {
4
4
  root: e,
5
5
  ghost: t,
6
6
  disabled: n,
@@ -1,2 +1,2 @@
1
1
  "use client";
2
- const e=require("../../../_virtual/_rolldown/runtime.cjs"),t=require("../../../icon/check.cjs"),n=require("../../media/Icon/Icon.cjs"),r=require("../../_internal/BaseListItem/BaseListItem.cjs"),i=require("../InputBase/InputBase.cjs"),a=require("../FieldTemplate/FieldTemplate.cjs"),o=require("../../data-display/Chip/Chip.cjs"),s=require("./multiselect.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=({options:e=[],value:d,onChange:f,placeholder:p,label:m,error:h,required:g,layout:_,className:v,disabled:y=!1,defaultValue:b=[],allowClear:x=!1,id:S,width:C,fullWidth:w=!1,...T})=>{let[E,D]=(0,c.useState)(!1),[O,k]=(0,c.useState)(b),[A,j]=(0,c.useState)(-1),[M,N]=(0,c.useState)(!1),P=(0,c.useRef)(null),F=(0,c.useRef)(null),I=(0,c.useRef)(null),L=(0,c.useId)(),R=S||`wim-multiselect-${L}`,z=`${R}-list`,B=m?`${R}-label`:void 0,V=h?`${R}-error`:void 0,H=`${R}-trigger`,U=d!==void 0,W=U?d:O;(0,c.useEffect)(()=>{let e=e=>{P.current&&!P.current.contains(e.target)&&D(!1)};return document.addEventListener(`mousedown`,e),()=>document.removeEventListener(`mousedown`,e)},[]);let G=e=>{if(y||e&&e.target.closest(`[data-chip-delete]`))return;let t=!E;D(t),j(t?0:-1)},K=e=>{if(y)return;let t;t=W?.includes(e)?W.filter(t=>t!==e):[...W||[],e],U||k(t),f&&f(t)},q=(e,t)=>{if(e.stopPropagation(),y)return;let n=(W||[]).filter(e=>e!==t);U||k(n),f&&f(n)},J=e=>{e?.stopPropagation(),!y&&(U||k([]),f&&f([]))},Y=e.filter(e=>W?.includes(e.value)),X=t=>{if(N(!0),!y)switch(t.key){case`ArrowDown`:t.preventDefault(),E?j(t=>t<e.length-1?t+1:0):(D(!0),j(0));break;case`ArrowUp`:t.preventDefault(),E&&j(t=>t>0?t-1:e.length-1);break;case`Enter`:case` `:t.preventDefault(),E?A>=0&&K(e[A].value):(D(!0),j(0));break;case`Escape`:E&&(t.preventDefault(),D(!1),j(-1),I.current?.focus());break;case`Home`:E&&(t.preventDefault(),j(0));break;case`End`:E&&(t.preventDefault(),j(e.length-1));break;case`Tab`:E&&(D(!1),j(-1));break}};(0,c.useEffect)(()=>{E&&A>=0&&F.current&&F.current.children[A]?.scrollIntoView({block:`nearest`})},[A,E]);let{"aria-label":Z,"aria-labelledby":Q,"aria-describedby":$,...ee}=T;return(0,u.jsx)(a.FieldTemplate,{label:m,error:h,required:g,layout:_,labelId:B,htmlFor:H,errorId:V,className:v,children:(0,u.jsxs)(`div`,{className:(0,l.default)(`wim-multi-select`,s.default.root,w&&s.default.fullWidth),ref:P,onMouseMove:()=>N(!1),"data-keyboard-nav":M,...ee,children:[(0,u.jsx)(i.InputBase,{disabled:y,allowClear:x,hasValue:W&&W.length>0,onClear:J,intent:h?`danger`:`default`,width:C,fullWidth:w,rightIcons:[{name:`ChevronDownIcon`,rotated:E}],className:(0,l.default)(E&&s.default.open),children:(0,u.jsx)(`div`,{id:H,"data-testid":`multiselect-trigger`,className:(0,l.default)(s.default.trigger,y&&s.default.disabled),onClick:G,tabIndex:y?-1:0,role:`combobox`,"aria-expanded":E,"aria-haspopup":`listbox`,"aria-controls":E?z:void 0,"aria-disabled":y,"aria-labelledby":B||Q,"aria-describedby":V||$,"aria-required":g,"aria-invalid":!!h,"aria-label":m?void 0:Z||p,onKeyDown:X,ref:I,"aria-activedescendant":E&&A>=0?`${R}-option-${A}`:void 0,children:(0,u.jsx)(`div`,{className:(0,l.default)(s.default.value,Y.length===0&&s.default.placeholder),children:Y.length>0?Y.map(e=>(0,u.jsx)(o.Chip,{"data-testid":`multiselect-chip`,size:`sm`,color:`primary`,variant:`solid`,disabled:y,onDelete:y?void 0:t=>q(t,e.value),children:e.label},e.value)):p})})}),E&&!y&&(0,u.jsx)(`ul`,{id:z,ref:F,className:s.default.list,role:`listbox`,"aria-multiselectable":`true`,"aria-labelledby":B||Q||void 0,children:e.map((e,i)=>{let a=W?.includes(e.value),o=i===A;return(0,u.jsx)(r.BaseListItem,{asChild:!0,id:`${R}-option-${i}`,className:(0,l.default)(s.default.option,a&&s.default.selected),active:o,disabled:e.disabled,onClick:()=>!e.disabled&&K(e.value),onMouseEnter:()=>j(i),rightSection:a?(0,u.jsx)(n.Icon,{component:t.default,size:`sm`}):void 0,role:`option`,"aria-selected":a,tabIndex:-1,children:(0,u.jsx)(`li`,{children:e.label})},e.value)})})]})})};d.displayName=`MultiSelect`,exports.MultiSelect=d;
2
+ const e=require("../../../_virtual/_rolldown/runtime.cjs"),t=require("../../../icon/check.cjs"),n=require("../../media/Icon/Icon.cjs"),r=require("../../_internal/BaseListItem/BaseListItem.cjs"),i=require("../InputBase/InputBase.cjs"),a=require("../FieldTemplate/FieldTemplate.cjs"),o=require("../../data-display/Chip/Chip.cjs"),s=require("./multiselect.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=({options:e=[],value:d,onChange:f,placeholder:p,label:m,error:h,required:g,layout:_,className:v,disabled:y=!1,defaultValue:b=[],allowClear:x=!1,id:S,width:C,fullWidth:w=!1,...T})=>{let[E,D]=(0,c.useState)(!1),[O,k]=(0,c.useState)(b),[A,j]=(0,c.useState)(-1),[M,N]=(0,c.useState)(!1),P=(0,c.useRef)(null),F=(0,c.useRef)(null),I=(0,c.useRef)(null),L=(0,c.useId)(),R=S||`wim-multiselect-${L}`,z=`${R}-list`,B=m?`${R}-label`:void 0,V=h?`${R}-error`:void 0,H=`${R}-trigger`,U=d!==void 0,W=U?d:O;(0,c.useEffect)(()=>{let e=e=>{P.current&&!P.current.contains(e.target)&&D(!1)};return document.addEventListener(`mousedown`,e),()=>document.removeEventListener(`mousedown`,e)},[]);let G=e=>{if(y||e&&e.target.closest(`[data-chip-delete]`))return;let t=!E;D(t),j(t?0:-1)},K=e=>{if(y)return;let t;t=W?.includes(e)?W.filter(t=>t!==e):[...W||[],e],U||k(t),f&&f(t)},q=(e,t)=>{if(e.stopPropagation(),y)return;let n=(W||[]).filter(e=>e!==t);U||k(n),f&&f(n)},J=e=>{e?.stopPropagation(),!y&&(U||k([]),f&&f([]))},Y=e.filter(e=>W?.includes(e.value)),X=t=>{if(N(!0),!y)switch(t.key){case`ArrowDown`:t.preventDefault(),E?j(t=>t<e.length-1?t+1:0):(D(!0),j(0));break;case`ArrowUp`:t.preventDefault(),E&&j(t=>t>0?t-1:e.length-1);break;case`Enter`:case` `:t.preventDefault(),E?A>=0&&K(e[A].value):(D(!0),j(0));break;case`Escape`:E&&(t.preventDefault(),D(!1),j(-1),I.current?.focus());break;case`Home`:E&&(t.preventDefault(),j(0));break;case`End`:E&&(t.preventDefault(),j(e.length-1));break;case`Tab`:E&&(D(!1),j(-1));break}};(0,c.useEffect)(()=>{E&&A>=0&&F.current&&F.current.children[A]?.scrollIntoView({block:`nearest`})},[A,E]);let{"aria-label":Z,"aria-labelledby":Q,"aria-describedby":$,...ee}=T;return(0,u.jsx)(a.FieldTemplate,{label:m,error:h,required:g,layout:_,labelId:B,htmlFor:H,errorId:V,className:v,children:(0,u.jsxs)(`div`,{className:(0,l.default)(`wim-multi-select`,s.default.root,w&&s.default.fullWidth),ref:P,onMouseMove:()=>N(!1),"data-keyboard-nav":M,...ee,children:[(0,u.jsx)(i.InputBase,{disabled:y,allowClear:x,hasValue:W&&W.length>0,onClear:J,intent:h?`danger`:`default`,width:C,fullWidth:w,rightIcons:[{name:`ChevronDownIcon`,rotated:E}],className:(0,l.default)(E&&s.default.open),children:(0,u.jsx)(`div`,{id:H,"data-testid":`multiselect-trigger`,className:(0,l.default)(s.default.trigger,y&&s.default.disabled),onClick:G,tabIndex:y?-1:0,role:`combobox`,"aria-expanded":E,"aria-haspopup":`listbox`,"aria-controls":E?z:void 0,"aria-disabled":y,"aria-labelledby":B||Q,"aria-describedby":V||$,"aria-required":g,"aria-invalid":!!h,"aria-label":m?void 0:Z||p,onKeyDown:X,ref:I,"aria-activedescendant":E&&A>=0?`${R}-option-${A}`:void 0,children:(0,u.jsx)(`div`,{className:(0,l.default)(s.default.value,Y.length===0&&s.default.placeholder),children:Y.length>0?Y.map(e=>(0,u.jsx)(o.Chip,{"data-testid":`multiselect-chip`,size:`sm`,intent:`neutral`,variant:`solid`,disabled:y,onDelete:y?void 0:t=>q(t,e.value),children:e.label},e.value)):p})})}),E&&!y&&(0,u.jsx)(`ul`,{id:z,ref:F,className:s.default.list,role:`listbox`,"aria-multiselectable":`true`,"aria-labelledby":B||Q||void 0,children:e.map((e,i)=>{let a=W?.includes(e.value),o=i===A;return(0,u.jsx)(r.BaseListItem,{asChild:!0,id:`${R}-option-${i}`,className:(0,l.default)(s.default.option,a&&s.default.selected),active:o,disabled:e.disabled,onClick:()=>!e.disabled&&K(e.value),onMouseEnter:()=>j(i),rightSection:a?(0,u.jsx)(n.Icon,{component:t.default,size:`sm`}):void 0,role:`option`,"aria-selected":a,tabIndex:-1,children:(0,u.jsx)(`li`,{children:e.label})},e.value)})})]})})};d.displayName=`MultiSelect`,exports.MultiSelect=d;
@@ -114,7 +114,7 @@ var m = ({ options: m = [], value: h, onChange: g, placeholder: _, label: v, err
114
114
  children: Q.length > 0 ? Q.map((e) => /* @__PURE__ */ f(a, {
115
115
  "data-testid": "multiselect-chip",
116
116
  size: "sm",
117
- color: "primary",
117
+ intent: "neutral",
118
118
  variant: "solid",
119
119
  disabled: C,
120
120
  onDelete: C ? void 0 : (t) => X(t, e.value),
@@ -1,2 +1,2 @@
1
1
  "use client";
2
- const e=require("../../../_virtual/_rolldown/runtime.cjs"),t=require("../../../i18n/useWimTranslation.cjs"),n=require("../Button/Button.cjs"),r=require("../Input/Input.cjs"),i=require("../DatePicker/DatePicker.cjs"),a=require("../NumberInput/NumberInput.cjs"),o=require("../SegmentedControl/SegmentedControl.cjs"),s=require("../Select/Select.cjs"),c=require("../Switch/Switch.cjs"),l=require("../IconButton/IconButton.cjs"),u=require("./querybuilder.module.cjs");let d=require("react");d=e.__toESM(d,1);let f=require("classnames");f=e.__toESM(f,1);let p=require("react/jsx-runtime");var m=0,h=()=>typeof window<`u`&&window.__VRT__?(m+=1,`vrt-id-${m}`):Math.random().toString(36).substring(2,11),g={string:[{label:`Equals`,value:`=`,key:`equal`},{label:`Does not equal`,value:`!=`,key:`not_equal`},{label:`Contains`,value:`contains`,key:`contains`},{label:`Starts with`,value:`starts_with`,key:`starts_with`},{label:`Ends with`,value:`ends_with`,key:`ends_with`},{label:`Is null`,value:`is_null`,key:`is_null`},{label:`Is not null`,value:`is_not_null`,key:`is_not_null`}],number:[{label:`Equals`,value:`=`,key:`equal`},{label:`Does not equal`,value:`!=`,key:`not_equal`},{label:`Greater than`,value:`>`,key:`greater_than`},{label:`Less than`,value:`<`,key:`less_than`},{label:`Greater than or equal`,value:`>=`,key:`greater_than_or_equal`},{label:`Less than or equal`,value:`<=`,key:`less_than_or_equal`},{label:`Is null`,value:`is_null`,key:`is_null`},{label:`Is not null`,value:`is_not_null`,key:`is_not_null`}],date:[{label:`Equals`,value:`=`,key:`equal`},{label:`Does not equal`,value:`!=`,key:`not_equal`},{label:`After`,value:`>`,key:`after`},{label:`Before`,value:`<`,key:`before`},{label:`After or on`,value:`>=`,key:`after_or_on`},{label:`Before or on`,value:`<=`,key:`before_or_on`},{label:`Is null`,value:`is_null`,key:`is_null`},{label:`Is not null`,value:`is_not_null`,key:`is_not_null`}],boolean:[{label:`Equals`,value:`=`,key:`equal`},{label:`Does not equal`,value:`!=`,key:`not_equal`},{label:`Is null`,value:`is_null`,key:`is_null`},{label:`Is not null`,value:`is_not_null`,key:`is_not_null`}]},_=({fields:e,query:m,defaultQuery:_,onChange:v,maxDepth:y=3,className:b,id:x,labels:S={}})=>{let{t:C}=t.useWimTranslation(`components`),{ruleAdded:w=C(`query.builder.rule_added`),groupAdded:T=C(`query.builder.group_added`),removed:E=C(`query.builder.removed`),ruleAriaLabel:D=C(`query.builder.rule`),fieldAriaLabel:O=C(`query.builder.field`),operatorAriaLabel:k=C(`query.builder.operator`),valueAriaLabel:A=C(`query.builder.value`),trueLabel:j=C(`query.builder.true`),falseLabel:M=C(`query.builder.false`),removeRuleAriaLabel:N=C(`query.builder.remove_rule`),removeGroupAriaLabel:P=C(`query.builder.remove_group`),addRuleLabel:F=C(`query.builder.add_rule`),addGroupLabel:I=C(`query.builder.add_group`),regionAriaLabel:L=C(`query.builder.region_label`),combinatorAriaLabel:R=C(`query.builder.combinator`),operators:z={}}=S,B=(0,d.useId)(),V=x||`wim-qb-${B}`,H=(0,d.useRef)(null),[U,W]=(0,d.useState)(_||{id:h(),combinator:`and`,not:!1,rules:[]}),G=m===void 0?U:m,K=(0,d.useCallback)(e=>{H.current&&(H.current.textContent=``,setTimeout(()=>{H.current&&(H.current.textContent=e)},50))},[]),q=(0,d.useCallback)(e=>{m===void 0&&W(e),v?.(e)},[m,v]),J=(e,t)=>{let n=r=>r.id===e?{...r,...t}:{...r,rules:r.rules.map(r=>r.id===e?{...r,...t}:`rules`in r?n(r):r)};q(n(G))},Y=t=>{let n=e[0],r={id:h(),field:n?.name||``,operator:`=`,value:n?.type===`boolean`?!1:``},i=e=>e.id===t?{...e,rules:[...e.rules,r]}:{...e,rules:e.rules.map(e=>`rules`in e?i(e):e)};q(i(G)),K(w)},X=e=>{let t={id:h(),combinator:`and`,not:!1,rules:[]},n=r=>r.id===e?{...r,rules:[...r.rules,t]}:{...r,rules:r.rules.map(e=>`rules`in e?n(e):e)};q(n(G)),K(T)},Z=e=>{let t=n=>({...n,rules:n.rules.filter(t=>t.id!==e).map(e=>`rules`in e?t(e):e)});q(t(G)),K(E)},Q=(e,t,r)=>(0,p.jsxs)(`div`,{role:`group`,"aria-label":`${e.combinator.toUpperCase()} group`,className:(0,f.default)(u.default.group,t>0&&u.default.nested,r&&u.default.excluded),children:[(0,p.jsxs)(`div`,{className:u.default.groupHeader,children:[(0,p.jsxs)(`div`,{className:u.default.groupHeaderLeft,children:[(0,p.jsx)(o.SegmentedControl,{size:`md`,options:[{label:`AND`,value:`and`},{label:`OR`,value:`or`}],value:e.combinator,onChange:t=>J(e.id,{combinator:t}),"aria-label":R,styles:{root:u.default.segmentedControl,item:u.default.segmentedControlItem,slider:u.default.segmentedControlSlider}}),(0,p.jsx)(c.Switch,{size:`md`,checked:e.not,onChange:t=>J(e.id,{not:t.target.checked}),children:`NOT`})]}),t>0&&(0,p.jsx)(l.IconButton,{iconName:`TrashIcon`,"aria-label":P,variant:`ghost`,size:`md`,color:`danger`,onClick:()=>Z(e.id),className:u.default.removeGroup})]}),(0,p.jsx)(`div`,{className:u.default.ruleList,children:e.rules.map(e=>`rules`in e?Q(e,t+1,r):$(e))}),(0,p.jsxs)(`div`,{className:u.default.groupActions,children:[(0,p.jsx)(n.Button,{size:`md`,variant:`ghost`,icon:`PlusIcon`,onClick:()=>Y(e.id),children:F}),t<y&&(0,p.jsx)(n.Button,{size:`md`,variant:`ghost`,icon:`PlusIcon`,onClick:()=>X(e.id),children:I})]})]},e.id),$=t=>{let n=e.find(e=>e.name===t.field)?.type||`string`,o=g[n].map(e=>({...e,label:z[e.key]||e.label})),c=n=>{let r=e.find(e=>e.name===n);J(t.id,{field:n,operator:`=`,value:r?.type===`boolean`?!1:``})},d=t.operator===`is_null`||t.operator===`is_not_null`;return(0,p.jsx)(`div`,{className:u.default.rule,role:`group`,"aria-label":D,children:(0,p.jsxs)(`div`,{className:u.default.ruleFields,children:[(0,p.jsx)(s.Select,{className:u.default.field,options:e.map(e=>({label:e.label,value:e.name})),value:t.field,onChange:c,"aria-label":O,fullWidth:!0,styles:{root:u.default.select,trigger:u.default.selectTrigger,inputBase:{root:u.default.inputBase}}}),(0,p.jsx)(s.Select,{className:u.default.operator,options:o.map(e=>({label:e.label,value:e.value})),value:t.operator,onChange:e=>J(t.id,{operator:e}),"aria-label":k,fullWidth:!0,styles:{root:u.default.select,trigger:u.default.selectTrigger,inputBase:{root:u.default.inputBase}}}),!d&&(0,p.jsx)(`div`,{className:u.default.value,children:n===`number`?(0,p.jsx)(a.NumberInput,{value:typeof t.value==`boolean`?void 0:t.value??void 0,onChange:e=>J(t.id,{value:e.target.value}),"aria-label":A}):n===`date`?(0,p.jsx)(i.DatePicker,{value:typeof t.value==`string`||typeof t.value==`number`?new Date(t.value):void 0,onChange:e=>J(t.id,{value:e?e.toISOString():``}),"aria-label":A}):n===`boolean`?(0,p.jsx)(s.Select,{options:[{label:j,value:`true`},{label:M,value:`false`}],value:String(t.value),onChange:e=>J(t.id,{value:e===`true`}),"aria-label":A,fullWidth:!0,styles:{root:u.default.select,trigger:u.default.selectTrigger,inputBase:{root:u.default.inputBase}}}):(0,p.jsx)(r.Input,{value:typeof t.value==`boolean`?void 0:t.value??void 0,onChange:e=>J(t.id,{value:e.target.value}),"aria-label":A,styles:{root:u.default.inputBase}})}),(0,p.jsx)(l.IconButton,{iconName:`TrashIcon`,"aria-label":N,variant:`ghost`,size:`md`,color:`danger`,onClick:()=>Z(t.id),className:u.default.removeRule})]})},t.id)};return(0,p.jsxs)(`div`,{id:V,role:`region`,"aria-label":L,className:(0,f.default)(`wim-query-builder`,u.default.root,b),children:[(0,p.jsx)(`div`,{ref:H,"aria-live":`polite`,"aria-atomic":`true`,className:u.default.srOnly}),Q(G,0,!1)]})};exports.QueryBuilder=_;
2
+ const e=require("../../../_virtual/_rolldown/runtime.cjs"),t=require("../../../i18n/useWimTranslation.cjs"),n=require("../Button/Button.cjs"),r=require("../Input/Input.cjs"),i=require("../DatePicker/DatePicker.cjs"),a=require("../NumberInput/NumberInput.cjs"),o=require("../SegmentedControl/SegmentedControl.cjs"),s=require("../Select/Select.cjs"),c=require("../Switch/Switch.cjs"),l=require("../IconButton/IconButton.cjs"),u=require("./querybuilder.module.cjs"),d=require("./warn-unknown-operator.cjs");let f=require("react");f=e.__toESM(f,1);let p=require("classnames");p=e.__toESM(p,1);let m=require("react/jsx-runtime");var h=0,g=()=>typeof window<`u`&&window.__VRT__?(h+=1,`vrt-id-${h}`):Math.random().toString(36).substring(2,11),_={string:[{label:`Equals`,value:`=`,key:`equal`},{label:`Does not equal`,value:`!=`,key:`not_equal`},{label:`Contains`,value:`contains`,key:`contains`},{label:`Starts with`,value:`starts_with`,key:`starts_with`},{label:`Ends with`,value:`ends_with`,key:`ends_with`},{label:`Is null`,value:`is_null`,key:`is_null`},{label:`Is not null`,value:`is_not_null`,key:`is_not_null`}],number:[{label:`Equals`,value:`=`,key:`equal`},{label:`Does not equal`,value:`!=`,key:`not_equal`},{label:`Greater than`,value:`>`,key:`greater_than`},{label:`Less than`,value:`<`,key:`less_than`},{label:`Greater than or equal`,value:`>=`,key:`greater_than_or_equal`},{label:`Less than or equal`,value:`<=`,key:`less_than_or_equal`},{label:`Is null`,value:`is_null`,key:`is_null`},{label:`Is not null`,value:`is_not_null`,key:`is_not_null`}],date:[{label:`Equals`,value:`=`,key:`equal`},{label:`Does not equal`,value:`!=`,key:`not_equal`},{label:`After`,value:`>`,key:`after`},{label:`Before`,value:`<`,key:`before`},{label:`After or on`,value:`>=`,key:`after_or_on`},{label:`Before or on`,value:`<=`,key:`before_or_on`},{label:`Is null`,value:`is_null`,key:`is_null`},{label:`Is not null`,value:`is_not_null`,key:`is_not_null`}],boolean:[{label:`Equals`,value:`=`,key:`equal`},{label:`Does not equal`,value:`!=`,key:`not_equal`},{label:`Is null`,value:`is_null`,key:`is_null`},{label:`Is not null`,value:`is_not_null`,key:`is_not_null`}]},v=({fields:e,query:h,defaultQuery:v,onChange:y,maxDepth:b=3,className:x,id:S,labels:C={}})=>{let{t:w}=t.useWimTranslation(`components`),{ruleAdded:T=w(`query.builder.rule_added`),groupAdded:E=w(`query.builder.group_added`),removed:D=w(`query.builder.removed`),ruleAriaLabel:O=w(`query.builder.rule`),fieldAriaLabel:k=w(`query.builder.field`),operatorAriaLabel:A=w(`query.builder.operator`),valueAriaLabel:j=w(`query.builder.value`),trueLabel:M=w(`query.builder.true`),falseLabel:N=w(`query.builder.false`),removeRuleAriaLabel:P=w(`query.builder.remove_rule`),removeGroupAriaLabel:F=w(`query.builder.remove_group`),addRuleLabel:I=w(`query.builder.add_rule`),addGroupLabel:L=w(`query.builder.add_group`),regionAriaLabel:R=w(`query.builder.region_label`),combinatorAriaLabel:z=w(`query.builder.combinator`),operators:B={}}=C,V=(0,f.useId)(),H=S||`wim-qb-${V}`,U=(0,f.useRef)(null),[W,G]=(0,f.useState)(v||{id:g(),combinator:`and`,not:!1,rules:[]}),K=h===void 0?W:h,q=(0,f.useCallback)(e=>{U.current&&(U.current.textContent=``,setTimeout(()=>{U.current&&(U.current.textContent=e)},50))},[]),J=(0,f.useCallback)(e=>{h===void 0&&G(e),y?.(e)},[h,y]),Y=(e,t)=>{let n=r=>r.id===e?{...r,...t}:{...r,rules:r.rules.map(r=>r.id===e?{...r,...t}:`rules`in r?n(r):r)};J(n(K))},X=t=>{let n=e[0],r={id:g(),field:n?.name||``,operator:`=`,value:n?.type===`boolean`?!1:``},i=e=>e.id===t?{...e,rules:[...e.rules,r]}:{...e,rules:e.rules.map(e=>`rules`in e?i(e):e)};J(i(K)),q(T)},Z=e=>{let t={id:g(),combinator:`and`,not:!1,rules:[]},n=r=>r.id===e?{...r,rules:[...r.rules,t]}:{...r,rules:r.rules.map(e=>`rules`in e?n(e):e)};J(n(K)),q(E)},Q=e=>{let t=n=>({...n,rules:n.rules.filter(t=>t.id!==e).map(e=>`rules`in e?t(e):e)});J(t(K)),q(D)},$=(e,t,r)=>(0,m.jsxs)(`div`,{role:`group`,"aria-label":`${e.combinator.toUpperCase()} group`,className:(0,p.default)(u.default.group,t>0&&u.default.nested,r&&u.default.excluded),children:[(0,m.jsxs)(`div`,{className:u.default.groupHeader,children:[(0,m.jsxs)(`div`,{className:u.default.groupHeaderLeft,children:[(0,m.jsx)(o.SegmentedControl,{size:`md`,options:[{label:`AND`,value:`and`},{label:`OR`,value:`or`}],value:e.combinator,onChange:t=>Y(e.id,{combinator:t}),"aria-label":z,styles:{root:u.default.segmentedControl,item:u.default.segmentedControlItem,slider:u.default.segmentedControlSlider}}),(0,m.jsx)(c.Switch,{size:`md`,checked:e.not,onChange:t=>Y(e.id,{not:t.target.checked}),children:`NOT`})]}),t>0&&(0,m.jsx)(l.IconButton,{iconName:`TrashIcon`,"aria-label":F,variant:`ghost`,size:`md`,intent:`danger`,onClick:()=>Q(e.id),className:u.default.removeGroup})]}),(0,m.jsx)(`div`,{className:u.default.ruleList,children:e.rules.map(e=>`rules`in e?$(e,t+1,r):ee(e))}),(0,m.jsxs)(`div`,{className:u.default.groupActions,children:[(0,m.jsx)(n.Button,{size:`md`,variant:`ghost`,icon:`PlusIcon`,onClick:()=>X(e.id),children:I}),t<b&&(0,m.jsx)(n.Button,{size:`md`,variant:`ghost`,icon:`PlusIcon`,onClick:()=>Z(e.id),children:L})]})]},e.id),ee=t=>{let n=e.find(e=>e.name===t.field)?.type||`string`,o=_[n].map(e=>({...e,label:B[e.key]||e.label})),c=n=>{let r=e.find(e=>e.name===n);Y(t.id,{field:n,operator:`=`,value:r?.type===`boolean`?!1:``})};o.some(e=>e.value===t.operator)||d.warnUnknownOperator(t.operator,n,o.map(e=>e.value));let f=t.operator===`is_null`||t.operator===`is_not_null`;return(0,m.jsx)(`div`,{className:u.default.rule,role:`group`,"aria-label":O,children:(0,m.jsxs)(`div`,{className:u.default.ruleFields,children:[(0,m.jsx)(s.Select,{className:u.default.field,options:e.map(e=>({label:e.label,value:e.name})),value:t.field,onChange:c,"aria-label":k,fullWidth:!0,styles:{root:u.default.select,trigger:u.default.selectTrigger,inputBase:{root:u.default.inputBase}}}),(0,m.jsx)(s.Select,{className:u.default.operator,options:o.map(e=>({label:e.label,value:e.value})),value:t.operator,onChange:e=>Y(t.id,{operator:e}),"aria-label":A,fullWidth:!0,styles:{root:u.default.select,trigger:u.default.selectTrigger,inputBase:{root:u.default.inputBase}}}),!f&&(0,m.jsx)(`div`,{className:u.default.value,children:n===`number`?(0,m.jsx)(a.NumberInput,{value:typeof t.value==`boolean`?void 0:t.value??void 0,onChange:e=>Y(t.id,{value:e.target.value}),"aria-label":j}):n===`date`?(0,m.jsx)(i.DatePicker,{value:typeof t.value==`string`||typeof t.value==`number`?new Date(t.value):void 0,onChange:e=>Y(t.id,{value:e?e.toISOString():``}),"aria-label":j}):n===`boolean`?(0,m.jsx)(s.Select,{options:[{label:M,value:`true`},{label:N,value:`false`}],value:String(t.value),onChange:e=>Y(t.id,{value:e===`true`}),"aria-label":j,fullWidth:!0,styles:{root:u.default.select,trigger:u.default.selectTrigger,inputBase:{root:u.default.inputBase}}}):(0,m.jsx)(r.Input,{value:typeof t.value==`boolean`?void 0:t.value??void 0,onChange:e=>Y(t.id,{value:e.target.value}),"aria-label":j,styles:{root:u.default.inputBase}})}),(0,m.jsx)(l.IconButton,{iconName:`TrashIcon`,"aria-label":P,variant:`ghost`,size:`md`,intent:`danger`,onClick:()=>Q(t.id),className:u.default.removeRule})]})},t.id)};return(0,m.jsxs)(`div`,{id:H,role:`region`,"aria-label":R,className:(0,p.default)(`wim-query-builder`,u.default.root,x),children:[(0,m.jsx)(`div`,{ref:U,"aria-live":`polite`,"aria-atomic":`true`,className:u.default.srOnly}),$(K,0,!1)]})};exports.QueryBuilder=v;
@@ -8,7 +8,7 @@ export interface QueryField {
8
8
  export interface QueryRule {
9
9
  id: string;
10
10
  field: string;
11
- operator: string;
11
+ operator: QueryOperator;
12
12
  value: string | number | boolean | null;
13
13
  }
14
14
  export interface QueryGroup {
@@ -69,7 +69,130 @@ export interface QueryBuilderProps {
69
69
  */
70
70
  labels?: QueryBuilderLabels;
71
71
  }
72
+ /**
73
+ * 演算子の語彙。**利用者が `QueryRule.operator` に渡すのは `value`(記号)**で、
74
+ * `key` は翻訳の引き当てにしか使わない。以前は `operator: string` だったため
75
+ * `"greater_equal"` のような語を渡すと**空の Select が黙って描画された**(T124)。
76
+ * 型はこの表から導くので、値を足せば型も追随する(T38 と同じ形)。
77
+ */
78
+ declare const DEFAULT_OPERATORS: {
79
+ readonly string: readonly [{
80
+ readonly label: "Equals";
81
+ readonly value: "=";
82
+ readonly key: "equal";
83
+ }, {
84
+ readonly label: "Does not equal";
85
+ readonly value: "!=";
86
+ readonly key: "not_equal";
87
+ }, {
88
+ readonly label: "Contains";
89
+ readonly value: "contains";
90
+ readonly key: "contains";
91
+ }, {
92
+ readonly label: "Starts with";
93
+ readonly value: "starts_with";
94
+ readonly key: "starts_with";
95
+ }, {
96
+ readonly label: "Ends with";
97
+ readonly value: "ends_with";
98
+ readonly key: "ends_with";
99
+ }, {
100
+ readonly label: "Is null";
101
+ readonly value: "is_null";
102
+ readonly key: "is_null";
103
+ }, {
104
+ readonly label: "Is not null";
105
+ readonly value: "is_not_null";
106
+ readonly key: "is_not_null";
107
+ }];
108
+ readonly number: readonly [{
109
+ readonly label: "Equals";
110
+ readonly value: "=";
111
+ readonly key: "equal";
112
+ }, {
113
+ readonly label: "Does not equal";
114
+ readonly value: "!=";
115
+ readonly key: "not_equal";
116
+ }, {
117
+ readonly label: "Greater than";
118
+ readonly value: ">";
119
+ readonly key: "greater_than";
120
+ }, {
121
+ readonly label: "Less than";
122
+ readonly value: "<";
123
+ readonly key: "less_than";
124
+ }, {
125
+ readonly label: "Greater than or equal";
126
+ readonly value: ">=";
127
+ readonly key: "greater_than_or_equal";
128
+ }, {
129
+ readonly label: "Less than or equal";
130
+ readonly value: "<=";
131
+ readonly key: "less_than_or_equal";
132
+ }, {
133
+ readonly label: "Is null";
134
+ readonly value: "is_null";
135
+ readonly key: "is_null";
136
+ }, {
137
+ readonly label: "Is not null";
138
+ readonly value: "is_not_null";
139
+ readonly key: "is_not_null";
140
+ }];
141
+ readonly date: readonly [{
142
+ readonly label: "Equals";
143
+ readonly value: "=";
144
+ readonly key: "equal";
145
+ }, {
146
+ readonly label: "Does not equal";
147
+ readonly value: "!=";
148
+ readonly key: "not_equal";
149
+ }, {
150
+ readonly label: "After";
151
+ readonly value: ">";
152
+ readonly key: "after";
153
+ }, {
154
+ readonly label: "Before";
155
+ readonly value: "<";
156
+ readonly key: "before";
157
+ }, {
158
+ readonly label: "After or on";
159
+ readonly value: ">=";
160
+ readonly key: "after_or_on";
161
+ }, {
162
+ readonly label: "Before or on";
163
+ readonly value: "<=";
164
+ readonly key: "before_or_on";
165
+ }, {
166
+ readonly label: "Is null";
167
+ readonly value: "is_null";
168
+ readonly key: "is_null";
169
+ }, {
170
+ readonly label: "Is not null";
171
+ readonly value: "is_not_null";
172
+ readonly key: "is_not_null";
173
+ }];
174
+ readonly boolean: readonly [{
175
+ readonly label: "Equals";
176
+ readonly value: "=";
177
+ readonly key: "equal";
178
+ }, {
179
+ readonly label: "Does not equal";
180
+ readonly value: "!=";
181
+ readonly key: "not_equal";
182
+ }, {
183
+ readonly label: "Is null";
184
+ readonly value: "is_null";
185
+ readonly key: "is_null";
186
+ }, {
187
+ readonly label: "Is not null";
188
+ readonly value: "is_not_null";
189
+ readonly key: "is_not_null";
190
+ }];
191
+ };
192
+ /** `QueryRule.operator` に渡せる値(`DEFAULT_OPERATORS` の `value`)。 */
193
+ export type QueryOperator = (typeof DEFAULT_OPERATORS)[QueryFieldType][number]["value"];
72
194
  /**
73
195
  * 複雑な検索条件をネスト状に組み立てるためのクエリビルダーコンポーネント。
74
196
  */
75
197
  export declare const QueryBuilder: ({ fields, query, defaultQuery, onChange, maxDepth, className, id: customId, labels, }: QueryBuilderProps) => React.JSX.Element;
198
+ export {};