wimui 0.19.0 → 0.21.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 (95) hide show
  1. package/dist/components/charts/AreaChart/AreaChart.cjs +1 -1
  2. package/dist/components/charts/AreaChart/AreaChart.d.ts +9 -2
  3. package/dist/components/charts/AreaChart/AreaChart.js +13 -29
  4. package/dist/components/charts/AreaChart/area-chart.module.cjs +1 -1
  5. package/dist/components/charts/AreaChart/area-chart.module.js +1 -1
  6. package/dist/components/charts/BarChart/BarChart.cjs +1 -1
  7. package/dist/components/charts/BarChart/BarChart.d.ts +9 -2
  8. package/dist/components/charts/BarChart/BarChart.js +12 -7
  9. package/dist/components/charts/BarChart/bar-chart.module.cjs +1 -1
  10. package/dist/components/charts/BarChart/bar-chart.module.js +1 -1
  11. package/dist/components/charts/FunnelChart/FunnelChart.cjs +1 -1
  12. package/dist/components/charts/FunnelChart/FunnelChart.js +36 -28
  13. package/dist/components/charts/FunnelChart/funnel-chart.module.cjs +1 -1
  14. package/dist/components/charts/FunnelChart/funnel-chart.module.js +1 -1
  15. package/dist/components/charts/GaugeChart/gauge-chart.module.cjs +1 -1
  16. package/dist/components/charts/GaugeChart/gauge-chart.module.js +1 -1
  17. package/dist/components/charts/Heatmap/Heatmap.cjs +1 -1
  18. package/dist/components/charts/Heatmap/Heatmap.js +11 -4
  19. package/dist/components/charts/Heatmap/heatmap.module.cjs +1 -1
  20. package/dist/components/charts/Heatmap/heatmap.module.js +1 -1
  21. package/dist/components/charts/LineChart/LineChart.cjs +1 -1
  22. package/dist/components/charts/LineChart/LineChart.d.ts +9 -2
  23. package/dist/components/charts/LineChart/LineChart.js +5 -3
  24. package/dist/components/charts/LineChart/line-chart.module.cjs +1 -1
  25. package/dist/components/charts/LineChart/line-chart.module.js +1 -1
  26. package/dist/components/charts/PieChart/PieChart.cjs +1 -1
  27. package/dist/components/charts/PieChart/PieChart.js +3 -2
  28. package/dist/components/charts/PieChart/pie-chart.module.cjs +1 -1
  29. package/dist/components/charts/PieChart/pie-chart.module.js +1 -1
  30. package/dist/components/charts/RadarChart/RadarChart.cjs +1 -1
  31. package/dist/components/charts/RadarChart/RadarChart.js +6 -2
  32. package/dist/components/charts/RadarChart/radar-chart.module.cjs +1 -1
  33. package/dist/components/charts/RadarChart/radar-chart.module.js +1 -1
  34. package/dist/components/charts/ScatterChart/ScatterChart.cjs +1 -1
  35. package/dist/components/charts/ScatterChart/ScatterChart.d.ts +12 -1
  36. package/dist/components/charts/ScatterChart/ScatterChart.js +10 -7
  37. package/dist/components/charts/ScatterChart/scatter-chart.module.cjs +1 -1
  38. package/dist/components/charts/ScatterChart/scatter-chart.module.js +1 -1
  39. package/dist/components/charts/Sparkline/Sparkline.cjs +1 -1
  40. package/dist/components/charts/Sparkline/Sparkline.js +62 -80
  41. package/dist/components/charts/Sparkline/sparkline.module.cjs +1 -1
  42. package/dist/components/charts/Sparkline/sparkline.module.js +1 -1
  43. package/dist/components/charts/Treemap/Treemap.cjs +1 -1
  44. package/dist/components/charts/Treemap/Treemap.js +87 -59
  45. package/dist/components/form/Button/button.module.cjs +1 -1
  46. package/dist/components/form/Button/button.module.js +2 -2
  47. package/dist/components/form/ColorInput/ColorInput.cjs +1 -1
  48. package/dist/components/form/ColorInput/ColorInput.d.ts +9 -1
  49. package/dist/components/form/ColorInput/ColorInput.js +36 -46
  50. package/dist/components/form/ColorInput/color-input.module.cjs +1 -1
  51. package/dist/components/form/ColorInput/color-input.module.js +4 -7
  52. package/dist/components/form/DateRangePicker/DateRangePicker.cjs +1 -1
  53. package/dist/components/form/DateRangePicker/DateRangePicker.js +36 -37
  54. package/dist/components/form/InputBase/input-base.module.cjs +1 -1
  55. package/dist/components/form/InputBase/input-base.module.js +1 -1
  56. package/dist/components/form/MultiSelect/MultiSelect.cjs +1 -1
  57. package/dist/components/form/MultiSelect/MultiSelect.js +1 -1
  58. package/dist/components/form/QueryBuilder/QueryBuilder.cjs +1 -1
  59. package/dist/components/form/QueryBuilder/QueryBuilder.d.ts +124 -1
  60. package/dist/components/form/QueryBuilder/QueryBuilder.js +87 -84
  61. package/dist/components/form/QueryBuilder/querybuilder.module.cjs +1 -1
  62. package/dist/components/form/QueryBuilder/querybuilder.module.js +1 -1
  63. package/dist/components/form/QueryBuilder/warn-unknown-operator.cjs +2 -0
  64. package/dist/components/form/QueryBuilder/warn-unknown-operator.d.ts +3 -0
  65. package/dist/components/form/QueryBuilder/warn-unknown-operator.js +4 -0
  66. package/dist/components/form/SmartSearchInput/SmartSearchInput.cjs +1 -1
  67. package/dist/components/form/SmartSearchInput/SmartSearchInput.js +4 -0
  68. package/dist/components/form/SmartSearchInput/smart-search-input.module.cjs +1 -1
  69. package/dist/components/form/SmartSearchInput/smart-search-input.module.js +5 -3
  70. package/dist/components/form/TagInput/TagInput.cjs +1 -1
  71. package/dist/components/form/TagInput/TagInput.js +1 -1
  72. package/dist/components/helpers.cjs +1 -1
  73. package/dist/components/helpers.d.ts +9 -0
  74. package/dist/components/helpers.js +2 -11
  75. package/dist/components/layout/Dashboard/Dashboard.cjs +1 -1
  76. package/dist/components/layout/Dashboard/Dashboard.d.ts +8 -0
  77. package/dist/components/layout/Dashboard/Dashboard.js +47 -42
  78. package/dist/components/layout/Dashboard/dashboard.module.cjs +1 -1
  79. package/dist/components/layout/Dashboard/dashboard.module.js +13 -13
  80. package/dist/components/layout/Header/header.module.cjs +1 -1
  81. package/dist/components/layout/Header/header.module.js +4 -4
  82. package/dist/i18n/generated/keys.d.ts +1 -1
  83. package/dist/i18n/generated/resources.cjs +1 -1
  84. package/dist/i18n/generated/resources.js +18 -3
  85. package/dist/llms-full.txt +22 -3
  86. package/dist/llms.txt +1 -1
  87. package/dist/locales/en/components.json +19 -2
  88. package/dist/locales/ja/components.json +19 -2
  89. package/dist/locales/pt/components.json +19 -2
  90. package/dist/reset.css +1 -1
  91. package/dist/styles.css +2 -2
  92. package/dist/types/generated-tokens.d.ts +1 -1
  93. package/dist/wimui.umd.css +1 -1
  94. package/dist/wimui.umd.js +5 -5
  95. package/package.json +6 -4
@@ -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 {};