@malloydata/malloy-explorer 0.0.266-dev250425232629 → 0.0.269-dev250430213122

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 (39) hide show
  1. package/@flowtypes/components/ResizableCollapsiblePanel.flow.js +14 -0
  2. package/@flowtypes/components/ResultPanel/SubmittedQuery.flow.js +1 -0
  3. package/@flowtypes/index.flow.js +1 -1
  4. package/dist/cjs/index.cjs +732 -524
  5. package/dist/cjs/index.cjs.map +1 -1
  6. package/dist/esm/index.js +733 -525
  7. package/dist/esm/index.js.map +1 -1
  8. package/dist/malloy-explorer.css +13 -5
  9. package/dist/types/components/CollapsedPagePanel.d.ts +8 -0
  10. package/dist/types/components/QueryPanel/AddMenu/AddAggregate.d.ts +2 -1
  11. package/dist/types/components/QueryPanel/AddMenu/AddFieldItem.d.ts +2 -1
  12. package/dist/types/components/QueryPanel/AddMenu/AddGroupBy.d.ts +2 -1
  13. package/dist/types/components/QueryPanel/AddMenu/AddItem.d.ts +2 -1
  14. package/dist/types/components/QueryPanel/AddMenu/AddOrderBy.d.ts +2 -1
  15. package/dist/types/components/QueryPanel/AddMenu/AddView.d.ts +2 -1
  16. package/dist/types/components/QueryPanel/AddMenu/AddWhere.d.ts +2 -1
  17. package/dist/types/components/QueryPanel/AddMenu/FieldList.d.ts +4 -2
  18. package/dist/types/components/QueryPanel/AddMenu/colors.stylex.d.ts +2 -0
  19. package/dist/types/components/QueryPanel/AddMenu/styles.d.ts +1 -0
  20. package/dist/types/components/QueryPanel/operations/NestOperation.d.ts +6 -0
  21. package/dist/types/components/ResizableCollapsiblePanel.d.ts +30 -0
  22. package/dist/types/components/ResultPanel/SubmittedQuery.d.ts +1 -0
  23. package/dist/types/components/SourcePanel/FieldGroupList.d.ts +4 -4
  24. package/dist/types/components/primitives/index.d.ts +5 -3
  25. package/dist/types/components/primitives/lists/AccordionList.d.ts +20 -0
  26. package/dist/types/components/primitives/lists/AccordionListContext.d.ts +7 -0
  27. package/dist/types/components/primitives/lists/AccordionListItem.d.ts +32 -0
  28. package/dist/types/components/primitives/utils/icon.d.ts +6 -0
  29. package/dist/types/components/styles.d.ts +1 -0
  30. package/dist/types/components/utils/fields.d.ts +1 -1
  31. package/dist/types/contexts/ResizableCollapsiblePanelContext.d.ts +16 -0
  32. package/dist/types/index.d.ts +1 -1
  33. package/package.json +6 -6
  34. package/scripts/gen_flow.ts +1 -1
  35. package/@flowtypes/contexts/ExplorerPanelsContext.flow.js +0 -6
  36. package/dist/types/contexts/ExplorerPanelsContext.d.ts +0 -11
  37. /package/dist/types/components/primitives/{CollapsibleListItem.d.ts → lists/CollapsibleListItem.d.ts} +0 -0
  38. /package/dist/types/components/primitives/{List.d.ts → lists/List.d.ts} +0 -0
  39. /package/dist/types/components/primitives/{ListItem.d.ts → lists/ListItem.d.ts} +0 -0
@@ -15,8 +15,8 @@ var __privateMethod = (obj, member, method) => (__accessCheck(obj, member, "acce
15
15
  var __superGet = (cls, obj, key2) => __reflectGet(__getProtoOf(cls), key2, obj);
16
16
  var _a, _b, _captureMap, _compiled, _pattern, _nameMap, _strategy, __EmulatedRegExp_instances, execCore_fn, _c;
17
17
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
18
- const React = require("react");
19
18
  const jsxRuntime = require("react/jsx-runtime");
19
+ const React = require("react");
20
20
  const QB = require("@malloydata/malloy-query-builder");
21
21
  const malloyTag = require("@malloydata/malloy-tag");
22
22
  const render = require("@malloydata/render");
@@ -3729,6 +3729,7 @@ const SvgInfo = (props2) => /* @__PURE__ */ React__namespace.createElement("svg"
3729
3729
  const SvgError = (props2) => /* @__PURE__ */ React__namespace.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", height: "24px", viewBox: "0 -960 960 960", width: "24px", fill: "currentColor", ...props2 }, /* @__PURE__ */ React__namespace.createElement("path", { d: "M480-280q17 0 28.5-11.5T520-320q0-17-11.5-28.5T480-360q-17 0-28.5 11.5T440-320q0 17 11.5 28.5T480-280Zm-40-160h80v-240h-80v240ZM330-120 120-330v-300l210-210h300l210 210v300L630-120H330Zm34-80h232l164-164v-232L596-760H364L200-596v232l164 164Zm116-280Z" }));
3730
3730
  const SvgRefresh = (props2) => /* @__PURE__ */ React__namespace.createElement("svg", { height: 20, viewBox: "0 0 20 20", width: 20, xmlns: "http://www.w3.org/2000/svg", ...props2 }, /* @__PURE__ */ React__namespace.createElement("g", { fill: "none", stroke: "currentColor" }, /* @__PURE__ */ React__namespace.createElement("path", { d: "m17.08 11.15c.01.16.02.32.02.49 0 3.89-3.16 7.05-7.05 7.05-3.89-.01-7.05-3.16-7.05-7.06 0-3.89 3.16-7.05 7.05-7.05.85 0 1.66.15 2.41.42", strokeWidth: 1.1 }), /* @__PURE__ */ React__namespace.createElement("path", { d: "m9.9 2 2.89 2.89-3 3.01" })));
3731
3731
  const SvgSidebarCollapse = (props2) => /* @__PURE__ */ React__namespace.createElement("svg", { height: 24, viewBox: "0 0 24 24", width: 24, xmlns: "http://www.w3.org/2000/svg", fill: "currentColor", stroke: "none", ...props2 }, /* @__PURE__ */ React__namespace.createElement("path", { fill: "currentColor", stroke: "none", d: "m20 24h-16c-2.2 0-4-1.8-4-4v-16c0-2.2 1.8-4 4-4h16c2.2 0 4 1.8 4 4v16c0 2.2-1.8 4-4 4zm-16-22c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2v-16c0-1.1-.9-2-2-2z" }), /* @__PURE__ */ React__namespace.createElement("path", { fill: "currentColor", d: "m8 24c-.6 0-1-.4-1-1v-22c0-.6.4-1 1-1s1 .4 1 1v22c0 .6-.4 1-1 1z" }), /* @__PURE__ */ React__namespace.createElement("path", { fill: "currentColor", d: "m14 13c-.3 0-.5-.1-.7-.3-.4-.4-.4-1 0-1.4l3-3c.4-.4 1-.4 1.4 0s.4 1 0 1.4l-3 3c-.2.2-.4.3-.7.3z" }), /* @__PURE__ */ React__namespace.createElement("path", { fill: "currentColor", d: "m17 16c-.3 0-.5-.1-.7-.3l-3-3c-.4-.4-.4-1 0-1.4s1-.4 1.4 0l3 3c.4.4.4 1 0 1.4-.2.2-.4.3-.7.3z" }));
3732
+ const SvgFilterSliders = (props2) => /* @__PURE__ */ React__namespace.createElement("svg", { fill: "none", height: 24, viewBox: "0 0 24 24", width: 24, xmlns: "http://www.w3.org/2000/svg", ...props2 }, /* @__PURE__ */ React__namespace.createElement("path", { d: "m11 8h10m-10 0c0 1.65685-1.34315 3-3 3s-3-1.34315-3-3m6 0c0-1.65685-1.34315-3-3-3s-3 1.34315-3 3m0 0h-2m10 8h-10m10 0c0-1.6569 1.3431-3 3-3s3 1.3431 3 3m-6 0c0 1.6569 1.3431 3 3 3s3-1.3431 3-3m0 0h2", stroke: "currentColor", strokeWidth: 1.5 }));
3732
3733
  const SvgVizBarChart = (props2) => /* @__PURE__ */ React__namespace.createElement("svg", { width: "110px", height: "110px", viewBox: "0 0 110 110", xmlns: "http://www.w3.org/2000/svg", xmlnsXlink: "http://www.w3.org/1999/xlink", ...props2 }, /* @__PURE__ */ React__namespace.createElement("g", { id: "viz_bar_chart", stroke: "none", strokeWidth: 1, fill: "none", fillRule: "evenodd" }, /* @__PURE__ */ React__namespace.createElement("g", { id: "Group-3", transform: "translate(20.000000, 24.000000)", fill: "currentColor" }, /* @__PURE__ */ React__namespace.createElement("g", { id: "Group-2", transform: "translate(34.500000, 31.000000) rotate(-270.000000) translate(-34.500000, -31.000000) translate(3.500000, -3.500000)" }, /* @__PURE__ */ React__namespace.createElement("path", { d: "M-26.056314,30.056314 L34.943686,30.056314 C37.152825,30.056314 38.943686,31.847175 38.943686,34.056314 L38.943686,34.943686 C38.943686,37.152825 37.152825,38.943686 34.943686,38.943686 L-26.056314,38.943686 C-28.265453,38.943686 -30.056314,37.152825 -30.056314,34.943686 L-30.056314,34.056314 C-30.056314,31.847175 -28.265453,30.056314 -26.056314,30.056314 Z", id: "Rectangle-Copy-59", transform: "translate(4.443686, 34.500000) rotate(-90.000000) translate(-4.443686, -34.500000) " }), /* @__PURE__ */ React__namespace.createElement("path", { d: "M-0.491247385,37.8466366 L44.9281075,37.8466366 C47.1372465,37.8466366 48.9281075,39.6374976 48.9281075,41.8466366 L48.9281075,42.7340086 C48.9281075,44.9431476 47.1372465,46.7340086 44.9281075,46.7340086 L-0.491247385,46.7340086 C-2.70038638,46.7340086 -4.49124739,44.9431476 -4.49124739,42.7340086 L-4.49124739,41.8466366 C-4.49124739,39.6374976 -2.70038638,37.8466366 -0.491247385,37.8466366 Z", id: "Rectangle-Copy-62", transform: "translate(22.218430, 42.290323) rotate(-90.000000) translate(-22.218430, -42.290323) " }), /* @__PURE__ */ React__namespace.createElement("path", { d: "M23.3837854,43.9469253 L56.6025627,43.9469253 C58.8117017,43.9469253 60.6025627,45.7377863 60.6025627,47.9469253 L60.6025627,48.8342973 C60.6025627,51.0434363 58.8117017,52.8342973 56.6025627,52.8342973 L23.3837854,52.8342973 C21.1746464,52.8342973 19.3837854,51.0434363 19.3837854,48.8342973 L19.3837854,47.9469253 C19.3837854,45.7377863 21.1746464,43.9469253 23.3837854,43.9469253 Z", id: "Rectangle-Copy-66", transform: "translate(39.993174, 48.390611) rotate(-90.000000) translate(-39.993174, -48.390611) " }), /* @__PURE__ */ React__namespace.createElement("path", { d: "M46.7286345,49.7286345 L68.8072017,49.7286345 C71.0163407,49.7286345 72.8072017,51.5194955 72.8072017,53.7286345 L72.8072017,54.1927983 C72.8072017,56.4019373 71.0163407,58.1927983 68.8072017,58.1927983 L46.7286345,58.1927983 C44.5194955,58.1927983 42.7286345,56.4019373 42.7286345,54.1927983 L42.7286345,53.7286345 C42.7286345,51.5194955 44.5194955,49.7286345 46.7286345,49.7286345 Z", id: "Rectangle-Copy-67", transform: "translate(57.767918, 53.960716) rotate(-90.000000) translate(-57.767918, -53.960716) " })))));
3733
3734
  const SvgVizBoolean = (props2) => /* @__PURE__ */ React__namespace.createElement("svg", { width: "110px", height: "110px", viewBox: "0 0 110 110", xmlns: "http://www.w3.org/2000/svg", xmlnsXlink: "http://www.w3.org/1999/xlink", ...props2 }, /* @__PURE__ */ React__namespace.createElement("g", { id: "viz_boolean", stroke: "none", strokeWidth: 1, fill: "none", fillRule: "evenodd" }, /* @__PURE__ */ React__namespace.createElement("g", { id: "noun_switch_3350414-2", transform: "translate(20.000000, 22.000000)", fill: "currentColor", fillRule: "nonzero" }, /* @__PURE__ */ React__namespace.createElement("g", { id: "noun_switch_3350414" }, /* @__PURE__ */ React__namespace.createElement("path", { d: "M15.2972028,30.8 L54.7027972,30.8 C63.151209,30.8 70,23.9051851 70,15.4 C70,6.89481485 63.151209,0 54.7027972,0 L15.2972028,0 C6.84879098,0 0,6.89481485 0,15.4 C0,23.9051851 6.84879098,30.8 15.2972028,30.8 Z M15.2972028,6.16 L54.7027972,6.16 C59.7718443,6.16 63.8811189,10.2968889 63.8811189,15.4 C63.8811189,20.5031111 59.7718443,24.64 54.7027972,24.64 L15.2972028,24.64 C10.2281557,24.64 6.11888112,20.5031111 6.11888112,15.4 C6.11888112,10.2968889 10.2281557,6.16 15.2972028,6.16 Z", id: "Shape" }), /* @__PURE__ */ React__namespace.createElement("path", { d: "M19.6340542,21.9997804 C22.2930484,22.0215224 24.7022661,20.4273668 25.7348338,17.9629544 C26.7674016,15.4985421 26.2191958,12.6510518 24.3466309,10.7523518 C22.474066,8.85365189 19.6473211,8.27908795 17.1885612,9.29740315 C14.7298014,10.3157183 13.125,12.7256064 13.125,15.3998806 C13.125,19.0240523 16.0305897,21.9703156 19.6340542,21.9997804 L19.6340542,21.9997804 Z", id: "Path" }), /* @__PURE__ */ React__namespace.createElement("path", { d: "M54.7027971,35.2 L15.2972025,35.2 C6.84879081,35.2 0,42.094815 0,50.6 C0,59.105185 6.84879081,66 15.2972025,66 L54.7027971,66 C63.151209,66 70,59.1051851 70,50.6 C70,42.0948149 63.151209,35.2 54.7027971,35.2 L54.7027971,35.2 Z M54.7027971,59.84 L15.2972025,59.84 C10.2281554,59.84 6.11888082,55.7031111 6.11888082,50.6 C6.11888082,45.4968889 10.2281554,41.36 15.2972025,41.36 L54.7027971,41.36 C59.7718442,41.36 63.8811189,45.4968889 63.8811189,50.6 C63.8811189,55.7031111 59.7718442,59.84 54.7027971,59.84 L54.7027971,59.84 Z", id: "Shape" }), /* @__PURE__ */ React__namespace.createElement("path", { d: "M50.3659458,44.0002196 C47.7069516,43.9784776 45.2977339,45.5726332 44.2651662,48.0370456 C43.2325984,50.5014579 43.7808042,53.3489482 45.6533691,55.2476482 C47.525934,57.1463481 50.3526789,57.720912 52.8114388,56.7025969 C55.2701986,55.6842817 56.875,53.2743936 56.875,50.6001194 C56.875,46.9759477 53.9694103,44.0296844 50.3659458,44.0002196 Z", id: "Path" })))));
3734
3735
  const SvgVizColumnChart = (props2) => /* @__PURE__ */ React__namespace.createElement("svg", { width: "110px", height: "110px", viewBox: "0 0 110 110", xmlns: "http://www.w3.org/2000/svg", xmlnsXlink: "http://www.w3.org/1999/xlink", ...props2 }, /* @__PURE__ */ React__namespace.createElement("g", { id: "viz_column_chart", stroke: "none", strokeWidth: 1, fill: "none", fillRule: "evenodd" }, /* @__PURE__ */ React__namespace.createElement("g", { id: "Group", transform: "translate(23.500000, 19.500000)", fill: "currentColor" }, /* @__PURE__ */ React__namespace.createElement("path", { d: "M-26.5,30.5 L35.5,30.5 C37.709139,30.5 39.5,32.290861 39.5,34.5 L39.5,35.5 C39.5,37.709139 37.709139,39.5 35.5,39.5 L-26.5,39.5 C-28.709139,39.5 -30.5,37.709139 -30.5,35.5 L-30.5,34.5 C-30.5,32.290861 -28.709139,30.5 -26.5,30.5 Z", id: "Rectangle-Copy-59", transform: "translate(4.500000, 35.000000) rotate(-90.000000) translate(-4.500000, -35.000000) " }), /* @__PURE__ */ React__namespace.createElement("path", { d: "M-0.5,38.5 L45.5,38.5 C47.709139,38.5 49.5,40.290861 49.5,42.5 L49.5,43.5 C49.5,45.709139 47.709139,47.5 45.5,47.5 L-0.5,47.5 C-2.709139,47.5 -4.5,45.709139 -4.5,43.5 L-4.5,42.5 C-4.5,40.290861 -2.709139,38.5 -0.5,38.5 Z", id: "Rectangle-Copy-62", transform: "translate(22.500000, 43.000000) rotate(-90.000000) translate(-22.500000, -43.000000) " }), /* @__PURE__ */ React__namespace.createElement("path", { d: "M23.5,45.5 L57.5,45.5 C59.709139,45.5 61.5,47.290861 61.5,49.5 L61.5,50.5 C61.5,52.709139 59.709139,54.5 57.5,54.5 L23.5,54.5 C21.290861,54.5 19.5,52.709139 19.5,50.5 L19.5,49.5 C19.5,47.290861 21.290861,45.5 23.5,45.5 Z", id: "Rectangle-Copy-66", transform: "translate(40.500000, 50.000000) rotate(-90.000000) translate(-40.500000, -50.000000) " }), /* @__PURE__ */ React__namespace.createElement("path", { d: "M47.5,50.5 L70.5,50.5 C72.709139,50.5 74.5,52.290861 74.5,54.5 L74.5,55.5 C74.5,57.709139 72.709139,59.5 70.5,59.5 L47.5,59.5 C45.290861,59.5 43.5,57.709139 43.5,55.5 L43.5,54.5 C43.5,52.290861 45.290861,50.5 47.5,50.5 Z", id: "Rectangle-Copy-67", transform: "translate(59.000000, 55.000000) rotate(-90.000000) translate(-59.000000, -55.000000) " }))));
@@ -3768,6 +3769,7 @@ const ICON_MAP = {
3768
3769
  error: SvgError,
3769
3770
  refresh: SvgRefresh,
3770
3771
  sidebarCollapse: SvgSidebarCollapse,
3772
+ filterSliders: SvgFilterSliders,
3771
3773
  // Operations
3772
3774
  aggregate: SvgInsertMeasure,
3773
3775
  dimension: SvgTypeIconString,
@@ -3834,10 +3836,10 @@ function Icon({
3834
3836
  return null;
3835
3837
  }
3836
3838
  return /* @__PURE__ */ jsxRuntime.jsx(IconComponent, {
3837
- ..._stylex.props(styles$I.main, colorVariants$3[color], SMALL_ICONS.includes(name) && styles$I.scaleUp, customStyle)
3839
+ ..._stylex.props(styles$M.main, colorVariants$3[color], SMALL_ICONS.includes(name) && styles$M.scaleUp, customStyle)
3838
3840
  });
3839
3841
  }
3840
- const styles$I = {
3842
+ const styles$M = {
3841
3843
  main: {
3842
3844
  display: "mly1rg5ohu",
3843
3845
  width: "mly1kky2od",
@@ -3910,17 +3912,17 @@ function Badge({
3910
3912
  customStyle
3911
3913
  }) {
3912
3914
  return /* @__PURE__ */ jsxRuntime.jsxs("div", {
3913
- ..._stylex.props(styles$H.main, colorVariants$2[color], customStyle),
3915
+ ..._stylex.props(styles$L.main, colorVariants$2[color], customStyle),
3914
3916
  children: [icon && /* @__PURE__ */ jsxRuntime.jsx(Icon, {
3915
3917
  color,
3916
3918
  name: icon
3917
3919
  }), /* @__PURE__ */ jsxRuntime.jsx("div", {
3918
- ..._stylex.props(fontStyles.badge, styles$H.label),
3920
+ ..._stylex.props(fontStyles.badge, styles$L.label),
3919
3921
  children: label
3920
3922
  })]
3921
3923
  });
3922
3924
  }
3923
- const styles$H = {
3925
+ const styles$L = {
3924
3926
  main: {
3925
3927
  display: "mly3nfvp2",
3926
3928
  height: "mly1qx5ct2",
@@ -4002,10 +4004,10 @@ function Divider({
4002
4004
  customStyle
4003
4005
  }) {
4004
4006
  return /* @__PURE__ */ jsxRuntime.jsx("div", {
4005
- ..._stylex.props(styles$G.main, orientationVariants[orientation], customStyle)
4007
+ ..._stylex.props(styles$K.main, orientationVariants[orientation], customStyle)
4006
4008
  });
4007
4009
  }
4008
- const styles$G = {
4010
+ const styles$K = {
4009
4011
  main: {
4010
4012
  background: "mly1xnbgy5",
4011
4013
  backgroundAttachment: null,
@@ -4043,36 +4045,6 @@ function List$1({
4043
4045
  children: React__namespace.Children.map(children, (child) => child)
4044
4046
  });
4045
4047
  }
4046
- function ListItem({
4047
- label,
4048
- startIcon,
4049
- badge,
4050
- endIcon,
4051
- onClick
4052
- }) {
4053
- return /* @__PURE__ */ jsxRuntime.jsxs("div", {
4054
- ...{
4055
- className: "mly78zum5 mly6s0dn4 mlyl56j7k mlye8ttls mly167g77z mlyur7f20 mly1ypdohk mly1haqvef"
4056
- },
4057
- onClick,
4058
- children: [startIcon && /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, {
4059
- children: startIcon
4060
- }), /* @__PURE__ */ jsxRuntime.jsx("span", {
4061
- ..._stylex.props(fontStyles.body, styles$F.label),
4062
- children: label
4063
- }), badge && /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, {
4064
- children: badge
4065
- }), endIcon && /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, {
4066
- children: endIcon
4067
- })]
4068
- });
4069
- }
4070
- const styles$F = {
4071
- label: {
4072
- flexGrow: "mly1iyjqo2",
4073
- $$css: true
4074
- }
4075
- };
4076
4048
  var DirectionContext = React__namespace.createContext(void 0);
4077
4049
  function useDirection(localDir) {
4078
4050
  const globalDir = React__namespace.useContext(DirectionContext);
@@ -4842,7 +4814,7 @@ function Button({
4842
4814
  ...props2
4843
4815
  }) {
4844
4816
  const button = /* @__PURE__ */ jsxRuntime.jsxs("button", {
4845
- ..._stylex.props(styles$E.main, colorVariants$1[variant], sizeVariants$1[size2], customStyle),
4817
+ ..._stylex.props(styles$J.main, colorVariants$1[variant], sizeVariants$1[size2], customStyle),
4846
4818
  ...onClick && {
4847
4819
  onClick: (e) => {
4848
4820
  e.preventDefault();
@@ -4858,9 +4830,9 @@ function Button({
4858
4830
  },
4859
4831
  children: [icon && /* @__PURE__ */ jsxRuntime.jsx(Icon, {
4860
4832
  name: icon,
4861
- customStyle: styles$E.icon
4833
+ customStyle: styles$J.icon
4862
4834
  }), label && /* @__PURE__ */ jsxRuntime.jsx("div", {
4863
- ..._stylex.props(variant === "primary" ? fontStyles.emphasized : fontStyles.body, styles$E.label),
4835
+ ..._stylex.props(variant === "primary" ? fontStyles.emphasized : fontStyles.body, styles$J.label),
4864
4836
  children: label
4865
4837
  })]
4866
4838
  }), isDisabled && /* @__PURE__ */ jsxRuntime.jsx("div", {
@@ -4887,7 +4859,7 @@ function Button({
4887
4859
  return button;
4888
4860
  }
4889
4861
  }
4890
- const styles$E = {
4862
+ const styles$J = {
4891
4863
  main: {
4892
4864
  display: "mly3nfvp2",
4893
4865
  flexDirection: "mlydt5ytf",
@@ -5138,7 +5110,7 @@ function Token({
5138
5110
  }) {
5139
5111
  const isInteractive = onClick !== void 0 || asButtonTrigger;
5140
5112
  const token2 = /* @__PURE__ */ jsxRuntime.jsxs("div", {
5141
- ..._stylex.props(tokenStyles.main, tokenColorVariants[color], tokenSizeVariants[size2], !isInteractive && styles$D.nonInteractive, customStyle),
5113
+ ..._stylex.props(tokenStyles.main, tokenColorVariants[color], tokenSizeVariants[size2], !isInteractive && styles$I.nonInteractive, customStyle),
5142
5114
  ...dragProps == null ? void 0 : dragProps.attributes,
5143
5115
  ...dragProps == null ? void 0 : dragProps.listeners,
5144
5116
  children: [icon && /* @__PURE__ */ jsxRuntime.jsx(Icon, {
@@ -5175,7 +5147,7 @@ function Token({
5175
5147
  })]
5176
5148
  }) : token2;
5177
5149
  }
5178
- const styles$D = {
5150
+ const styles$I = {
5179
5151
  nonInteractive: {
5180
5152
  cursor: "mlyt0e3qv",
5181
5153
  background: "mly1np9qvj",
@@ -5199,7 +5171,7 @@ function TokenGroup({
5199
5171
  }) {
5200
5172
  const count2 = React__namespace.Children.count(children);
5201
5173
  return /* @__PURE__ */ jsxRuntime.jsx("div", {
5202
- ..._stylex.props(styles$C.main, customStyle),
5174
+ ..._stylex.props(styles$H.main, customStyle),
5203
5175
  children: React__namespace.Children.map(children, (child, index2) => /* @__PURE__ */ React__namespace.cloneElement(child, {
5204
5176
  customStyle: {
5205
5177
  ...child.props.customStyle,
@@ -5210,16 +5182,16 @@ function TokenGroup({
5210
5182
  });
5211
5183
  }
5212
5184
  const getChildStyle = (index2, count2) => {
5213
- if (count2 === 1) return styles$C.onlyChild;
5214
- if (index2 === 0) return styles$C.firstChild;
5215
- if (index2 === count2 - 1) return styles$C.lastChild;
5216
- return styles$C.innerChild;
5185
+ if (count2 === 1) return styles$H.onlyChild;
5186
+ if (index2 === 0) return styles$H.firstChild;
5187
+ if (index2 === count2 - 1) return styles$H.lastChild;
5188
+ return styles$H.innerChild;
5217
5189
  };
5218
5190
  const getTokenColor = (child, groupColor) => {
5219
5191
  const childColor = child.props.color;
5220
5192
  return childColor === void 0 ? groupColor : childColor;
5221
5193
  };
5222
- const styles$C = {
5194
+ const styles$H = {
5223
5195
  main: {
5224
5196
  display: "mlyrvj5dj",
5225
5197
  gridAutoFlow: "mly1mt1orb",
@@ -5291,7 +5263,7 @@ function ErrorIcon({
5291
5263
  },
5292
5264
  children: /* @__PURE__ */ jsxRuntime.jsx(Icon, {
5293
5265
  name: "warning",
5294
- customStyle: styles$B.errorIcon
5266
+ customStyle: styles$G.errorIcon
5295
5267
  })
5296
5268
  })
5297
5269
  }), /* @__PURE__ */ jsxRuntime.jsx(TooltipPortal, {
@@ -5304,7 +5276,7 @@ function ErrorIcon({
5304
5276
  })]
5305
5277
  });
5306
5278
  }
5307
- const styles$B = {
5279
+ const styles$G = {
5308
5280
  errorIcon: {
5309
5281
  color: "mly1e2nbdu",
5310
5282
  $$css: true
@@ -5349,22 +5321,22 @@ function EditableToken({
5349
5321
  className: "mly78zum5 mly6s0dn4"
5350
5322
  },
5351
5323
  children: [/* @__PURE__ */ jsxRuntime.jsxs("div", {
5352
- ..._stylex.props(tokenStyles.main, tokenColorVariants[color], tokenSizeVariants[size2], isFocused && styles$A.focused, !!errorMessage && styles$A.hasError, customStyle),
5324
+ ..._stylex.props(tokenStyles.main, tokenColorVariants[color], tokenSizeVariants[size2], isFocused && styles$F.focused, !!errorMessage && styles$F.hasError, customStyle),
5353
5325
  children: [icon && /* @__PURE__ */ jsxRuntime.jsx(Icon, {
5354
5326
  name: icon,
5355
- customStyle: styles$A.icon
5327
+ customStyle: styles$F.icon
5356
5328
  }), /* @__PURE__ */ jsxRuntime.jsxs("span", {
5357
5329
  ...{
5358
5330
  className: "mlywz0xwf"
5359
5331
  },
5360
5332
  children: [/* @__PURE__ */ jsxRuntime.jsx("span", {
5361
- ..._stylex.props(fontStyles.body, styles$A.placeholder),
5333
+ ..._stylex.props(fontStyles.body, styles$F.placeholder),
5362
5334
  style: {
5363
5335
  whiteSpaceCollapse: "preserve"
5364
5336
  },
5365
5337
  children: value
5366
5338
  }), /* @__PURE__ */ jsxRuntime.jsx("input", {
5367
- ..._stylex.props(styles$A.input, fontStyles.body),
5339
+ ..._stylex.props(styles$F.input, fontStyles.body),
5368
5340
  ref: inputRef,
5369
5341
  pattern: type === "number" ? "^-?[0-9.]*$" : void 0,
5370
5342
  value,
@@ -5389,7 +5361,7 @@ function EditableToken({
5389
5361
  })]
5390
5362
  });
5391
5363
  }
5392
- const styles$A = {
5364
+ const styles$F = {
5393
5365
  focused: {
5394
5366
  background: "mlyotlr4g",
5395
5367
  backgroundAttachment: null,
@@ -7731,12 +7703,12 @@ function TextInput({
7731
7703
  }
7732
7704
  };
7733
7705
  return /* @__PURE__ */ jsxRuntime.jsxs("div", {
7734
- ..._stylex.props(styles$z.main, isFocused && styles$z.focused, sizeVariants[size2], customStyle),
7706
+ ..._stylex.props(styles$E.main, isFocused && styles$E.focused, sizeVariants[size2], customStyle),
7735
7707
  children: [icon && /* @__PURE__ */ jsxRuntime.jsx(Icon, {
7736
7708
  name: icon,
7737
7709
  color: "secondary"
7738
7710
  }), /* @__PURE__ */ jsxRuntime.jsx("input", {
7739
- ..._stylex.props(fontStyles.body, styles$z.input),
7711
+ ..._stylex.props(fontStyles.body, styles$E.input),
7740
7712
  value,
7741
7713
  placeholder,
7742
7714
  onChange: handleChange,
@@ -7744,7 +7716,7 @@ function TextInput({
7744
7716
  onBlur: handleBlur,
7745
7717
  onKeyDown
7746
7718
  }), hasClear && /* @__PURE__ */ jsxRuntime.jsx("button", {
7747
- ..._stylex.props(fontStyles.supporting, styles$z.actionButton, value === "" && styles$z.hidden),
7719
+ ..._stylex.props(fontStyles.supporting, styles$E.actionButton, value === "" && styles$E.hidden),
7748
7720
  ref: buttonRef,
7749
7721
  onClick: () => onChange(""),
7750
7722
  tabIndex: 0,
@@ -7752,7 +7724,7 @@ function TextInput({
7752
7724
  })]
7753
7725
  });
7754
7726
  }
7755
- const styles$z = {
7727
+ const styles$E = {
7756
7728
  main: {
7757
7729
  display: "mly78zum5",
7758
7730
  alignItems: "mly6s0dn4",
@@ -7961,7 +7933,7 @@ function SelectorToken({
7961
7933
  onValueChange: handleValueChange,
7962
7934
  required: true,
7963
7935
  children: [/* @__PURE__ */ jsxRuntime.jsxs(Trigger$3, {
7964
- ..._stylex.props(tokenStyles.main, styles$y.selectTrigger, tokenColorVariants[color], tokenSizeVariants[size2], fontStyles.body, tokenStyles.label, customStyle),
7936
+ ..._stylex.props(tokenStyles.main, styles$D.selectTrigger, tokenColorVariants[color], tokenSizeVariants[size2], fontStyles.body, tokenStyles.label, customStyle),
7965
7937
  children: [icon && /* @__PURE__ */ jsxRuntime.jsx(Icon, {
7966
7938
  name: icon,
7967
7939
  customStyle: tokenStyles.icon
@@ -7990,7 +7962,7 @@ function SelectorToken({
7990
7962
  size: "compact",
7991
7963
  icon: "search",
7992
7964
  hasClear: true,
7993
- customStyle: styles$y.searchInput,
7965
+ customStyle: styles$D.searchInput,
7994
7966
  onKeyDown: (event) => {
7995
7967
  const excludedKeys = ["ArrowUp", "ArrowDown"];
7996
7968
  if (!excludedKeys.includes(event.key)) {
@@ -8023,21 +7995,21 @@ function SelectItem({
8023
7995
  ...props2
8024
7996
  }) {
8025
7997
  return /* @__PURE__ */ jsxRuntime.jsxs(Item$1, {
8026
- ..._stylex.props(fontStyles.body, styles$y.selectItem),
7998
+ ..._stylex.props(fontStyles.body, styles$D.selectItem),
8027
7999
  value,
8028
8000
  ...props2,
8029
8001
  children: [value === selectedValue ? /* @__PURE__ */ jsxRuntime.jsx(Icon, {
8030
8002
  name: "radioChecked",
8031
- customStyle: styles$y.radioChecked
8003
+ customStyle: styles$D.radioChecked
8032
8004
  }) : /* @__PURE__ */ jsxRuntime.jsx(Icon, {
8033
8005
  name: "radioUnchecked",
8034
- customStyle: styles$y.radioUnchecked
8006
+ customStyle: styles$D.radioUnchecked
8035
8007
  }), /* @__PURE__ */ jsxRuntime.jsx(ItemText, {
8036
8008
  children
8037
8009
  })]
8038
8010
  });
8039
8011
  }
8040
- const styles$y = {
8012
+ const styles$D = {
8041
8013
  selectTrigger: {
8042
8014
  whiteSpace: "mlyuxw1ft",
8043
8015
  overflow: "mlyb3r6kr",
@@ -8127,7 +8099,7 @@ function Card({
8127
8099
  customStyle
8128
8100
  }) {
8129
8101
  return /* @__PURE__ */ jsxRuntime.jsxs("div", {
8130
- ..._stylex.props(styles$x.container, customStyle),
8102
+ ..._stylex.props(styles$C.container, customStyle),
8131
8103
  children: [/* @__PURE__ */ jsxRuntime.jsx("div", {
8132
8104
  ...{
8133
8105
  className: "mly1717udv"
@@ -8141,7 +8113,7 @@ function Card({
8141
8113
  })]
8142
8114
  });
8143
8115
  }
8144
- const styles$x = {
8116
+ const styles$C = {
8145
8117
  container: {
8146
8118
  display: "mly78zum5",
8147
8119
  flexDirection: "mlydt5ytf",
@@ -8232,10 +8204,10 @@ function CollapsibleListItem({
8232
8204
  className: "mly78zum5 mlydt5ytf mly1iyjqo2 mlyb3r6kr"
8233
8205
  },
8234
8206
  children: [/* @__PURE__ */ jsxRuntime.jsx("span", {
8235
- ..._stylex.props(fontStyles.body, styles$w.label),
8207
+ ..._stylex.props(fontStyles.body, styles$B.label),
8236
8208
  children: label
8237
8209
  }), sublabel && /* @__PURE__ */ jsxRuntime.jsx("span", {
8238
- ..._stylex.props(fontStyles.supporting, styles$w.sublabel),
8210
+ ..._stylex.props(fontStyles.supporting, styles$B.sublabel),
8239
8211
  children: sublabel
8240
8212
  })]
8241
8213
  })]
@@ -8247,7 +8219,7 @@ function CollapsibleListItem({
8247
8219
  })]
8248
8220
  });
8249
8221
  }
8250
- const styles$w = {
8222
+ const styles$B = {
8251
8223
  label: {
8252
8224
  flexGrow: "mly1iyjqo2",
8253
8225
  fontWeight: "mly1xlr1w8",
@@ -19061,7 +19033,7 @@ function Spinner({
19061
19033
  } = SIZES[size2];
19062
19034
  const frameSize = diameter + border * 2;
19063
19035
  return /* @__PURE__ */ jsxRuntime.jsx("div", {
19064
- ..._stylex.props(styles$v.root, customStyle),
19036
+ ..._stylex.props(styles$A.root, customStyle),
19065
19037
  children: /* @__PURE__ */ jsxRuntime.jsx("span", {
19066
19038
  "aria-valuetext": "Loading",
19067
19039
  ...{
@@ -19081,7 +19053,7 @@ function Spinner({
19081
19053
  })
19082
19054
  });
19083
19055
  }
19084
- const styles$v = {
19056
+ const styles$A = {
19085
19057
  root: {
19086
19058
  alignItems: "mly6s0dn4",
19087
19059
  display: "mly3nfvp2",
@@ -23401,7 +23373,6 @@ var Anchor2$1 = PopoverAnchor;
23401
23373
  var Trigger$2 = PopoverTrigger;
23402
23374
  var Portal$2 = PopoverPortal;
23403
23375
  var Content2$2 = PopoverContent;
23404
- var Arrow2$1 = PopoverArrow;
23405
23376
  const styleX = {
23406
23377
  wrapper: {
23407
23378
  position: "mly1n2onr6",
@@ -23480,7 +23451,7 @@ const Popover = ({
23480
23451
  })
23481
23452
  });
23482
23453
  };
23483
- const styles$u = {
23454
+ const styles$z = {
23484
23455
  wrapper: {
23485
23456
  position: "mly1n2onr6",
23486
23457
  $$css: true
@@ -23532,7 +23503,7 @@ const SelectDropdown = ({
23532
23503
  setOpen(false);
23533
23504
  };
23534
23505
  return /* @__PURE__ */ jsxRuntime.jsxs("div", {
23535
- ..._stylex.props(styles$u.wrapper, customStyle),
23506
+ ..._stylex.props(styles$z.wrapper, customStyle),
23536
23507
  children: [/* @__PURE__ */ jsxRuntime.jsxs("button", {
23537
23508
  type: "button",
23538
23509
  autoFocus,
@@ -23600,7 +23571,7 @@ function SelectList({
23600
23571
  const [hoveredIndex, setHoveredIndex] = React.useState(null);
23601
23572
  return /* @__PURE__ */ jsxRuntime.jsx(ScrollableArea, {
23602
23573
  children: /* @__PURE__ */ jsxRuntime.jsx("div", {
23603
- ..._stylex.props(styles$u.selectListDiv, customStyle),
23574
+ ..._stylex.props(styles$z.selectListDiv, customStyle),
23604
23575
  children: options.reduce((result, option2, index2) => {
23605
23576
  const isSelected = value !== void 0 && valueEqual(value, option2.value);
23606
23577
  if (option2.divider) {
@@ -23632,8 +23603,8 @@ function SelectList({
23632
23603
  }), /* @__PURE__ */ jsxRuntime.jsx(Icon, {
23633
23604
  name: "checkmark",
23634
23605
  customStyle: {
23635
- ...styles$u.checkIcon,
23636
- ...isSelected ? styles$u.checkIconSelected : void 0
23606
+ ...styles$z.checkIcon,
23607
+ ...isSelected ? styles$z.checkIconSelected : void 0
23637
23608
  }
23638
23609
  }), /* @__PURE__ */ jsxRuntime.jsx("span", {
23639
23610
  ...{
@@ -23744,7 +23715,7 @@ function DatePicker({
23744
23715
  });
23745
23716
  };
23746
23717
  return /* @__PURE__ */ jsxRuntime.jsxs("div", {
23747
- ..._stylex.props(styles$t.outer, customStyle),
23718
+ ..._stylex.props(styles$y.outer, customStyle),
23748
23719
  children: [/* @__PURE__ */ jsxRuntime.jsxs("div", {
23749
23720
  ...{
23750
23721
  className: "mly78zum5 mly1q0g3np mly1qughib mly1nejdyq mlyu06os2"
@@ -24059,7 +24030,7 @@ function DatePicker({
24059
24030
  })]
24060
24031
  });
24061
24032
  }
24062
- const styles$t = {
24033
+ const styles$y = {
24063
24034
  outer: {
24064
24035
  userSelect: "mly87ps6o",
24065
24036
  fontSize: "mlymhiqyu",
@@ -24145,7 +24116,7 @@ function Banner({
24145
24116
  className: "mly1q4ynmn mlyh8yej3 mly5yr21d mly78zum5 mlydt5ytf mly1kmqopl mly16zck5j"
24146
24117
  },
24147
24118
  children: [/* @__PURE__ */ jsxRuntime.jsxs("div", {
24148
- ..._stylex.props(styles$s.header, variantColors[variant], children ? styles$s.headerWithContent : null),
24119
+ ..._stylex.props(styles$x.header, variantColors[variant], children ? styles$x.headerWithContent : null),
24149
24120
  children: [/* @__PURE__ */ jsxRuntime.jsx("div", {
24150
24121
  ...{
24151
24122
  className: "mly1qx5ct2 mly78zum5 mlyl56j7k mly6s0dn4"
@@ -24158,22 +24129,22 @@ function Banner({
24158
24129
  className: "mly78zum5 mlydt5ytf mlyb3r6kr"
24159
24130
  },
24160
24131
  children: [/* @__PURE__ */ jsxRuntime.jsx("div", {
24161
- ..._stylex.props(styles$s.title, fontStyles.emphasized),
24132
+ ..._stylex.props(styles$x.title, fontStyles.emphasized),
24162
24133
  children: title
24163
24134
  }), /* @__PURE__ */ jsxRuntime.jsx("div", {
24164
- ..._stylex.props(styles$s.description, fontStyles.supporting),
24135
+ ..._stylex.props(styles$x.description, fontStyles.supporting),
24165
24136
  children: description
24166
24137
  })]
24167
24138
  })]
24168
24139
  }), children && /* @__PURE__ */ jsxRuntime.jsx("div", {
24169
- ..._stylex.props(styles$s.content, fontStyles.body),
24140
+ ..._stylex.props(styles$x.content, fontStyles.body),
24170
24141
  children: /* @__PURE__ */ jsxRuntime.jsx(ScrollableArea, {
24171
24142
  children
24172
24143
  })
24173
24144
  })]
24174
24145
  });
24175
24146
  }
24176
- const styles$s = {
24147
+ const styles$x = {
24177
24148
  header: {
24178
24149
  borderRadius: "mly1q4ynmn",
24179
24150
  borderStartStartRadius: null,
@@ -24294,6 +24265,106 @@ const variantColors = {
24294
24265
  $$css: true
24295
24266
  }
24296
24267
  };
24268
+ const AccordionListContext = /* @__PURE__ */ React__namespace.createContext({});
24269
+ function AccordionList({
24270
+ defaultExpandedItemId,
24271
+ children,
24272
+ customStyle
24273
+ }) {
24274
+ const [expandedItemId, setExpandedItemId] = React__namespace.useState(defaultExpandedItemId);
24275
+ const handleExpandedItemChange = (currentItemId) => {
24276
+ setExpandedItemId((prev) => {
24277
+ if (prev === currentItemId) {
24278
+ return void 0;
24279
+ }
24280
+ return currentItemId;
24281
+ });
24282
+ };
24283
+ return /* @__PURE__ */ jsxRuntime.jsx(AccordionListContext.Provider, {
24284
+ value: {
24285
+ expandedItemId,
24286
+ onExpandedItemChange: handleExpandedItemChange
24287
+ },
24288
+ children: /* @__PURE__ */ jsxRuntime.jsx("div", {
24289
+ ..._stylex.props(styles$w.main, customStyle),
24290
+ children: React__namespace.Children.map(children, (child) => /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, {
24291
+ children: [child, /* @__PURE__ */ jsxRuntime.jsx(Divider, {})]
24292
+ }))
24293
+ })
24294
+ });
24295
+ }
24296
+ const styles$w = {
24297
+ main: {
24298
+ display: "mly78zum5",
24299
+ flexDirection: "mlydt5ytf",
24300
+ overflow: "mlyb3r6kr",
24301
+ overflowX: null,
24302
+ overflowY: null,
24303
+ flexGrow: "mly1iyjqo2",
24304
+ $$css: true
24305
+ }
24306
+ };
24307
+ function AccordionListItem({
24308
+ id,
24309
+ label,
24310
+ sublabel,
24311
+ startIcon,
24312
+ badge,
24313
+ endIcon,
24314
+ children
24315
+ }) {
24316
+ const {
24317
+ expandedItemId,
24318
+ onExpandedItemChange
24319
+ } = React__namespace.useContext(AccordionListContext);
24320
+ return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, {
24321
+ children: [/* @__PURE__ */ jsxRuntime.jsxs("div", {
24322
+ ...{
24323
+ className: "mly78zum5 mly6s0dn4 mlylqzeqv mlye8ttls mly167g77z mly1ypdohk"
24324
+ },
24325
+ onClick: () => onExpandedItemChange == null ? void 0 : onExpandedItemChange(id),
24326
+ children: [startIcon && /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, {
24327
+ children: startIcon
24328
+ }), /* @__PURE__ */ jsxRuntime.jsxs("div", {
24329
+ ...{
24330
+ className: "mly78zum5 mlydt5ytf mlyb3r6kr mly1iyjqo2"
24331
+ },
24332
+ children: [/* @__PURE__ */ jsxRuntime.jsx("span", {
24333
+ ..._stylex.props(fontStyles.body, styles$v.label),
24334
+ children: label
24335
+ }), sublabel && /* @__PURE__ */ jsxRuntime.jsx("span", {
24336
+ ..._stylex.props(fontStyles.supporting, styles$v.sublabel),
24337
+ children: sublabel
24338
+ })]
24339
+ }), badge && badge, endIcon && endIcon]
24340
+ }), id === expandedItemId && /* @__PURE__ */ jsxRuntime.jsx("div", {
24341
+ ...{
24342
+ className: "mly78zum5 mlydt5ytf mly1iyjqo2 mlytdwleo mly1jnr06f mly10cdfl8 mlyysyzu8"
24343
+ },
24344
+ children: React__namespace.Children.map(children, (child) => child)
24345
+ })]
24346
+ });
24347
+ }
24348
+ const styles$v = {
24349
+ label: {
24350
+ flexGrow: "mly1iyjqo2",
24351
+ fontWeight: "mly1xlr1w8",
24352
+ overflow: "mlyb3r6kr",
24353
+ overflowX: null,
24354
+ overflowY: null,
24355
+ textOverflow: "mlylyipyv",
24356
+ $$css: true
24357
+ },
24358
+ sublabel: {
24359
+ flexGrow: "mly1iyjqo2",
24360
+ color: "mly9dwj6z",
24361
+ overflow: "mlyb3r6kr",
24362
+ overflowX: null,
24363
+ overflowY: null,
24364
+ textOverflow: "mlylyipyv",
24365
+ $$css: true
24366
+ }
24367
+ };
24297
24368
  var ENTRY_FOCUS = "rovingFocusGroup.onEntryFocus";
24298
24369
  var EVENT_OPTIONS = { bubbles: false, cancelable: true };
24299
24370
  var GROUP_NAME$2 = "RovingFocusGroup";
@@ -25608,7 +25679,7 @@ function DropdownMenu({
25608
25679
  children: trigger
25609
25680
  }), /* @__PURE__ */ jsxRuntime.jsx(Portal2, {
25610
25681
  children: /* @__PURE__ */ jsxRuntime.jsx(Content2, {
25611
- ..._stylex.props(fontStyles.body, styles$r.content),
25682
+ ..._stylex.props(fontStyles.body, styles$u.content),
25612
25683
  side: "bottom",
25613
25684
  align: "start",
25614
25685
  sideOffset: 4,
@@ -25635,16 +25706,16 @@ function DropdownMenuItem({
25635
25706
  disabled,
25636
25707
  children: [icon && /* @__PURE__ */ jsxRuntime.jsx(Icon, {
25637
25708
  name: icon,
25638
- customStyle: styles$r.icon
25709
+ customStyle: styles$u.icon
25639
25710
  }), /* @__PURE__ */ jsxRuntime.jsxs("div", {
25640
25711
  ...{
25641
25712
  className: "mly78zum5 mlydt5ytf mly1iyjqo2"
25642
25713
  },
25643
25714
  children: [/* @__PURE__ */ jsxRuntime.jsx("span", {
25644
- ..._stylex.props(fontStyles.body, styles$r.label),
25715
+ ..._stylex.props(fontStyles.body, styles$u.label),
25645
25716
  children: label
25646
25717
  }), sublabel && /* @__PURE__ */ jsxRuntime.jsx("span", {
25647
- ..._stylex.props(fontStyles.supporting, styles$r.sublabel),
25718
+ ..._stylex.props(fontStyles.supporting, styles$u.sublabel),
25648
25719
  children: sublabel
25649
25720
  })]
25650
25721
  })]
@@ -25674,21 +25745,21 @@ function DropdownSubMenuItem({
25674
25745
  },
25675
25746
  children: [icon && /* @__PURE__ */ jsxRuntime.jsx(Icon, {
25676
25747
  name: icon,
25677
- customStyle: styles$r.icon
25748
+ customStyle: styles$u.icon
25678
25749
  }), /* @__PURE__ */ jsxRuntime.jsxs("div", {
25679
25750
  ...{
25680
25751
  className: "mly78zum5 mlydt5ytf mly1iyjqo2"
25681
25752
  },
25682
25753
  children: [/* @__PURE__ */ jsxRuntime.jsx("span", {
25683
- ..._stylex.props(fontStyles.body, styles$r.label),
25754
+ ..._stylex.props(fontStyles.body, styles$u.label),
25684
25755
  children: label
25685
25756
  }), sublabel && /* @__PURE__ */ jsxRuntime.jsx("span", {
25686
- ..._stylex.props(fontStyles.supporting, styles$r.sublabel),
25757
+ ..._stylex.props(fontStyles.supporting, styles$u.sublabel),
25687
25758
  children: sublabel
25688
25759
  })]
25689
25760
  }), !isControlled && /* @__PURE__ */ jsxRuntime.jsx(Icon, {
25690
25761
  name: "chevronRight",
25691
- customStyle: styles$r.icon
25762
+ customStyle: styles$u.icon
25692
25763
  })]
25693
25764
  }), /* @__PURE__ */ jsxRuntime.jsx(SubContent2, {
25694
25765
  ...{
@@ -25703,11 +25774,11 @@ function DropdownMenuLabel({
25703
25774
  label
25704
25775
  }) {
25705
25776
  return /* @__PURE__ */ jsxRuntime.jsx(Label2, {
25706
- ..._stylex.props(fontStyles.supporting, styles$r.menuLabel),
25777
+ ..._stylex.props(fontStyles.supporting, styles$u.menuLabel),
25707
25778
  children: label
25708
25779
  });
25709
25780
  }
25710
- const styles$r = {
25781
+ const styles$u = {
25711
25782
  content: {
25712
25783
  display: "mly78zum5",
25713
25784
  flexDirection: "mlydt5ytf",
@@ -25771,6 +25842,7 @@ const styles$r = {
25771
25842
  $$css: true
25772
25843
  }
25773
25844
  };
25845
+ const ResizableCollapsiblePanelContext = /* @__PURE__ */ React__namespace.createContext({});
25774
25846
  function QueryActionBar({
25775
25847
  runQuery
25776
25848
  }) {
@@ -25779,6 +25851,9 @@ function QueryActionBar({
25779
25851
  setQuery,
25780
25852
  source
25781
25853
  } = React.useContext(QueryEditorContext);
25854
+ const {
25855
+ onCollapse
25856
+ } = React.useContext(ResizableCollapsiblePanelContext);
25782
25857
  const isQueryEmpty = !rootQuery || rootQuery.isEmpty();
25783
25858
  const isRunEnabled = rootQuery == null ? void 0 : rootQuery.isRunnable();
25784
25859
  const onRunQuery = () => {
@@ -25788,11 +25863,18 @@ function QueryActionBar({
25788
25863
  };
25789
25864
  return /* @__PURE__ */ jsxRuntime.jsxs("div", {
25790
25865
  ...{
25791
- className: "mly78zum5 mly1qughib mly6s0dn4 mly153ncpu"
25866
+ className: "mly78zum5 mly1qughib mly6s0dn4 mlye8ttls"
25792
25867
  },
25793
- children: [/* @__PURE__ */ jsxRuntime.jsx("div", {
25794
- ..._stylex.props(fontStyles.largeBody, styles$q.title),
25795
- children: "Query"
25868
+ children: [/* @__PURE__ */ jsxRuntime.jsxs("div", {
25869
+ ...{
25870
+ className: "mly78zum5 mly167g77z mly6s0dn4 mlydqdrvq"
25871
+ },
25872
+ children: [/* @__PURE__ */ jsxRuntime.jsx(Icon, {
25873
+ name: "filterSliders"
25874
+ }), /* @__PURE__ */ jsxRuntime.jsx("div", {
25875
+ ..._stylex.props(fontStyles.largeBody, styles$t.title),
25876
+ children: "Query"
25877
+ })]
25796
25878
  }), /* @__PURE__ */ jsxRuntime.jsxs("div", {
25797
25879
  ...{
25798
25880
  className: "mly78zum5 mly167g77z"
@@ -25822,17 +25904,23 @@ function QueryActionBar({
25822
25904
  })
25823
25905
  })
25824
25906
  })]
25907
+ }), onCollapse && /* @__PURE__ */ jsxRuntime.jsx(Button, {
25908
+ icon: "sidebarCollapse",
25909
+ tooltip: "Close the source panel",
25910
+ onClick: onCollapse,
25911
+ size: "compact",
25912
+ variant: "flat"
25825
25913
  })]
25826
25914
  })]
25827
25915
  });
25828
25916
  }
25829
- const styles$q = {
25917
+ const styles$t = {
25830
25918
  title: {
25831
25919
  fontWeight: "mly1xlr1w8",
25832
25920
  $$css: true
25833
25921
  }
25834
25922
  };
25835
- const styles$p = {
25923
+ const styles$s = {
25836
25924
  labelWithIcon: {
25837
25925
  display: "mly78zum5",
25838
25926
  alignItems: "mly6s0dn4",
@@ -25840,6 +25928,9 @@ const styles$p = {
25840
25928
  gap: "mly167g77z",
25841
25929
  rowGap: null,
25842
25930
  columnGap: null,
25931
+ overflow: "mlyb3r6kr",
25932
+ overflowX: null,
25933
+ overflowY: null,
25843
25934
  $$css: true
25844
25935
  },
25845
25936
  queryCard: {
@@ -29730,6 +29821,7 @@ const addMenuStyles = {
29730
29821
  marginBlock: null,
29731
29822
  marginTop: null,
29732
29823
  marginBottom: null,
29824
+ maxHeight: "mly3d5gib",
29733
29825
  display: "mly78zum5",
29734
29826
  flexDirection: "mlydt5ytf",
29735
29827
  $$css: true
@@ -29823,7 +29915,20 @@ function getInputSchemaFromViewParent(parent) {
29823
29915
  function isNotAnnotatedFilteredField(field) {
29824
29916
  return !hasExplorerFilterFieldAnnotation(field.annotations ?? []);
29825
29917
  }
29826
- function findUniqueFieldName(fields, rename) {
29918
+ function findUniqueFieldName(fields, rename, path = []) {
29919
+ if (!fields.find((field) => field.name === rename)) {
29920
+ return rename;
29921
+ }
29922
+ if (path.length) {
29923
+ const parts = [...path];
29924
+ while (parts.length) {
29925
+ const part = parts.pop();
29926
+ rename = `${part} ${rename}`;
29927
+ if (!fields.find((field) => field.name === rename)) {
29928
+ return rename;
29929
+ }
29930
+ }
29931
+ }
29827
29932
  let idx = 2;
29828
29933
  while (fields.find((field) => field.name === `${rename} ${idx}`)) {
29829
29934
  idx++;
@@ -29934,32 +30039,32 @@ function BadgeForField({
29934
30039
  label: "view",
29935
30040
  icon: "view_filled",
29936
30041
  color: "purple",
29937
- customStyle: styles$o.noBackground
30042
+ customStyle: styles$r.noBackground
29938
30043
  });
29939
30044
  } else if (field.kind === "dimension") {
29940
30045
  return /* @__PURE__ */ jsxRuntime.jsx(Badge, {
29941
30046
  label: "dimension",
29942
30047
  icon: fieldToIcon(field),
29943
30048
  color: "cyan",
29944
- customStyle: styles$o.noBackground
30049
+ customStyle: styles$r.noBackground
29945
30050
  });
29946
30051
  } else if (field.kind === "measure") {
29947
30052
  return /* @__PURE__ */ jsxRuntime.jsx(Badge, {
29948
30053
  label: "measure",
29949
30054
  icon: fieldToIcon(field),
29950
30055
  color: "green",
29951
- customStyle: styles$o.noBackground
30056
+ customStyle: styles$r.noBackground
29952
30057
  });
29953
30058
  } else if (field.kind === "join") {
29954
30059
  return /* @__PURE__ */ jsxRuntime.jsx(Badge, {
29955
30060
  label: "join",
29956
30061
  icon: fieldToIcon(field),
29957
30062
  color: "gray",
29958
- customStyle: styles$o.noBackground
30063
+ customStyle: styles$r.noBackground
29959
30064
  });
29960
30065
  }
29961
30066
  }
29962
- const styles$o = {
30067
+ const styles$r = {
29963
30068
  noBackground: {
29964
30069
  backgroundColor: "mlyjbqb8w",
29965
30070
  $$css: true
@@ -29988,7 +30093,7 @@ function Visualization$1({
29988
30093
  onClick: () => setRenderer(viz)
29989
30094
  }));
29990
30095
  const tokens2 = [/* @__PURE__ */ jsxRuntime.jsx(SelectorToken, {
29991
- customStyle: styles$n.first,
30096
+ customStyle: styles$q.first,
29992
30097
  icon: `viz_${currentRenderer}`,
29993
30098
  value: currentRenderer,
29994
30099
  items: vizes,
@@ -29998,7 +30103,7 @@ function Visualization$1({
29998
30103
  children: tokens2
29999
30104
  });
30000
30105
  }
30001
- const styles$n = {
30106
+ const styles$q = {
30002
30107
  first: {
30003
30108
  flexGrow: "mly1iyjqo2",
30004
30109
  justifyContent: "mlylqzeqv",
@@ -30027,7 +30132,7 @@ function ViewAttributeTable({
30027
30132
  }) {
30028
30133
  const dimensions = viewInfo.schema.fields.filter((f2) => f2.kind === "dimension");
30029
30134
  return /* @__PURE__ */ jsxRuntime.jsx("div", {
30030
- ..._stylex.props(styles$m.attributeTableContainer, style),
30135
+ ..._stylex.props(styles$p.attributeTableContainer, style),
30031
30136
  children: /* @__PURE__ */ jsxRuntime.jsx(ScrollableArea, {
30032
30137
  children: /* @__PURE__ */ jsxRuntime.jsx("table", {
30033
30138
  ...{
@@ -30067,9 +30172,9 @@ function ViewAttributeTableRow({
30067
30172
  className: "mlydpxx8g"
30068
30173
  },
30069
30174
  children: [/* @__PURE__ */ jsxRuntime.jsx("td", {
30070
- ..._stylex.props(styles$m.attributeTableKeyCell, fontStyles.supporting),
30175
+ ..._stylex.props(styles$p.attributeTableKeyCell, fontStyles.supporting),
30071
30176
  children: /* @__PURE__ */ jsxRuntime.jsx("div", {
30072
- ..._stylex.props(styles$m.attributeTableKeyCellContent, fontStyles.supporting),
30177
+ ..._stylex.props(styles$p.attributeTableKeyCellContent, fontStyles.supporting),
30073
30178
  children: attribute
30074
30179
  })
30075
30180
  }), /* @__PURE__ */ jsxRuntime.jsx("td", {
@@ -30080,7 +30185,7 @@ function ViewAttributeTableRow({
30080
30185
  })]
30081
30186
  });
30082
30187
  }
30083
- const styles$m = {
30188
+ const styles$p = {
30084
30189
  attributeTableContainer: {
30085
30190
  padding: "mlye8ttls",
30086
30191
  paddingInline: null,
@@ -30228,7 +30333,7 @@ function HoverText({
30228
30333
  asChild: true,
30229
30334
  children: /* @__PURE__ */ jsxRuntime.jsx("div", {
30230
30335
  ref: textRef,
30231
- ..._stylex.props(styles$l.text, fontStyles.supporting),
30336
+ ..._stylex.props(styles$o.text, fontStyles.supporting),
30232
30337
  children: text2
30233
30338
  })
30234
30339
  }), /* @__PURE__ */ jsxRuntime.jsx(Portal$4, {
@@ -30236,7 +30341,7 @@ function HoverText({
30236
30341
  side,
30237
30342
  align,
30238
30343
  children: /* @__PURE__ */ jsxRuntime.jsx("pre", {
30239
- ..._stylex.props(styles$l.hoverText, fontStyles.tooltipText),
30344
+ ..._stylex.props(styles$o.hoverText, fontStyles.tooltipText),
30240
30345
  children: text2
30241
30346
  })
30242
30347
  })
@@ -30245,7 +30350,7 @@ function HoverText({
30245
30350
  })
30246
30351
  });
30247
30352
  }
30248
- const styles$l = {
30353
+ const styles$o = {
30249
30354
  text: {
30250
30355
  overflow: "mlyb3r6kr",
30251
30356
  overflowX: null,
@@ -30298,11 +30403,11 @@ function HoverCard({
30298
30403
  customStyle
30299
30404
  }) {
30300
30405
  return /* @__PURE__ */ jsxRuntime.jsx("div", {
30301
- ..._stylex.props(styles$k.container, fontStyles.body, customStyle),
30406
+ ..._stylex.props(styles$n.container, fontStyles.body, customStyle),
30302
30407
  children
30303
30408
  });
30304
30409
  }
30305
- const styles$k = {
30410
+ const styles$n = {
30306
30411
  container: {
30307
30412
  boxShadow: "mly5n1uv4",
30308
30413
  backgroundColor: "mly12peec7",
@@ -30347,7 +30452,7 @@ function FieldHoverCard({
30347
30452
  details = /* @__PURE__ */ jsxRuntime.jsx(ViewAttributeTable, {
30348
30453
  viewInfo: field,
30349
30454
  isCompact: true,
30350
- style: styles$j.viewAttributeTable
30455
+ style: styles$m.viewAttributeTable
30351
30456
  });
30352
30457
  } else if (field.kind === "dimension") {
30353
30458
  details = /* @__PURE__ */ jsxRuntime.jsx(TopValuesTable, {
@@ -30356,7 +30461,7 @@ function FieldHoverCard({
30356
30461
  });
30357
30462
  }
30358
30463
  return /* @__PURE__ */ jsxRuntime.jsxs(HoverCard, {
30359
- customStyle: styles$j.container,
30464
+ customStyle: styles$m.container,
30360
30465
  children: [/* @__PURE__ */ jsxRuntime.jsxs("div", {
30361
30466
  children: [/* @__PURE__ */ jsxRuntime.jsx("div", {
30362
30467
  ...{
@@ -30366,10 +30471,10 @@ function FieldHoverCard({
30366
30471
  field
30367
30472
  })
30368
30473
  }), /* @__PURE__ */ jsxRuntime.jsx("div", {
30369
- ..._stylex.props(fontStyles.supporting, styles$j.path),
30474
+ ..._stylex.props(fontStyles.supporting, styles$m.path),
30370
30475
  children: pathString
30371
30476
  }), /* @__PURE__ */ jsxRuntime.jsx("div", {
30372
- ..._stylex.props(fontStyles.emphasized, styles$j.title),
30477
+ ..._stylex.props(fontStyles.emphasized, styles$m.title),
30373
30478
  children: field.name
30374
30479
  }), description && /* @__PURE__ */ jsxRuntime.jsx(HoverText, {
30375
30480
  text: description
@@ -30379,7 +30484,7 @@ function FieldHoverCard({
30379
30484
  })]
30380
30485
  });
30381
30486
  }
30382
- const styles$j = {
30487
+ const styles$m = {
30383
30488
  container: {
30384
30489
  width: "mlybl57os",
30385
30490
  maxHeight: "mlyq3t0pi",
@@ -30671,10 +30776,10 @@ const PillInput = ({
30671
30776
  commitValue();
30672
30777
  });
30673
30778
  return /* @__PURE__ */ jsxRuntime.jsx("div", {
30674
- ..._stylex.props(fontStyles.body, styles$i.main),
30779
+ ..._stylex.props(fontStyles.body, styles$l.main),
30675
30780
  children: /* @__PURE__ */ jsxRuntime.jsx(ScrollableArea, {
30676
30781
  children: /* @__PURE__ */ jsxRuntime.jsxs("div", {
30677
- ..._stylex.props(styles$i.content, customStyle),
30782
+ ..._stylex.props(styles$l.content, customStyle),
30678
30783
  onKeyUp,
30679
30784
  onClick: () => {
30680
30785
  var _a2;
@@ -30741,7 +30846,7 @@ const Pill = ({
30741
30846
  onClick,
30742
30847
  tabIndex: 0,
30743
30848
  ref: forwardRef,
30744
- ..._stylex.props(styles$i.pill, colorVariants[color]),
30849
+ ..._stylex.props(styles$l.pill, colorVariants[color]),
30745
30850
  children: [children, /* @__PURE__ */ jsxRuntime.jsx("div", {
30746
30851
  title: "Remove",
30747
30852
  ...{
@@ -30756,7 +30861,7 @@ const Pill = ({
30756
30861
  })]
30757
30862
  });
30758
30863
  };
30759
- const styles$i = {
30864
+ const styles$l = {
30760
30865
  main: {
30761
30866
  borderRadius: "mly12oqio5",
30762
30867
  borderStartStartRadius: null,
@@ -30940,7 +31045,7 @@ function ValueList({
30940
31045
  children: (stringSearchResults == null ? void 0 : stringSearchResults.length) ? stringSearchResults.map((value) => /* @__PURE__ */ jsxRuntime.jsxs("div", {
30941
31046
  role: "menuitem",
30942
31047
  tabIndex: -1,
30943
- ..._stylex.props(addMenuStyles.item, styles$h.valueItem),
31048
+ ..._stylex.props(addMenuStyles.item, styles$k.valueItem),
30944
31049
  onClick: () => onClick(value),
30945
31050
  children: [/* @__PURE__ */ jsxRuntime.jsx(Value, {
30946
31051
  value
@@ -30964,10 +31069,10 @@ function Value({
30964
31069
  label: value.fieldValue ?? "∅",
30965
31070
  icon: "filter",
30966
31071
  color: "purple",
30967
- customStyle: styles$h.token
31072
+ customStyle: styles$k.token
30968
31073
  });
30969
31074
  }
30970
- const styles$h = {
31075
+ const styles$k = {
30971
31076
  valueItem: {
30972
31077
  height: "mly1qx5ct2",
30973
31078
  paddingTop: "mly1y1aw1k",
@@ -31130,22 +31235,20 @@ const StringFilterCore = ({
31130
31235
  minHeight: 0,
31131
31236
  display: "grid"
31132
31237
  },
31133
- children: /* @__PURE__ */ jsxRuntime.jsx(ScrollableArea, {
31134
- children: /* @__PURE__ */ jsxRuntime.jsx(ValueList, {
31135
- ref: valueListRef,
31136
- search: searchValue,
31137
- fieldPath: [...path, field.name].join("."),
31138
- onClick: (value) => {
31139
- if (value.fieldValue) {
31140
- updateFilter({
31141
- ...currentFilter,
31142
- values: [...currentFilter.values, value.fieldValue]
31143
- });
31144
- setSearchValue("");
31145
- }
31146
- },
31147
- customStyle: styles$g.valueList
31148
- })
31238
+ children: /* @__PURE__ */ jsxRuntime.jsx(ValueList, {
31239
+ ref: valueListRef,
31240
+ search: searchValue,
31241
+ fieldPath: [...path, field.name].join("."),
31242
+ onClick: (value) => {
31243
+ if (value.fieldValue) {
31244
+ updateFilter({
31245
+ ...currentFilter,
31246
+ values: [...currentFilter.values, value.fieldValue]
31247
+ });
31248
+ setSearchValue("");
31249
+ }
31250
+ },
31251
+ customStyle: styles$j.valueList
31149
31252
  })
31150
31253
  })]
31151
31254
  }) : currentFilter.operator === "~" ? /* @__PURE__ */ jsxRuntime.jsx(StringEditor, {
@@ -31213,8 +31316,13 @@ function stringFilterChangeType(filter, type) {
31213
31316
  };
31214
31317
  }
31215
31318
  }
31216
- const styles$g = {
31319
+ const styles$j = {
31217
31320
  valueList: {
31321
+ maxHeight: "mly3d5gib",
31322
+ width: "mly1hfn5x7",
31323
+ overflow: "mlyysyzu8",
31324
+ overflowX: null,
31325
+ overflowY: null,
31218
31326
  $$css: true
31219
31327
  }
31220
31328
  };
@@ -31500,7 +31608,7 @@ const DateInput = ({
31500
31608
  setTempValue(hooks(value).format(format2));
31501
31609
  }, [value, format2]);
31502
31610
  return /* @__PURE__ */ jsxRuntime.jsx("input", {
31503
- ..._stylex.props(customStyle, isActive ? styles$f.active : null),
31611
+ ..._stylex.props(customStyle, isActive ? styles$i.active : null),
31504
31612
  type: "text",
31505
31613
  placeholder: placeholder || format2,
31506
31614
  value: tempValue,
@@ -31534,7 +31642,7 @@ function guessUnits(moment2, isDateTime) {
31534
31642
  }
31535
31643
  return isDateTime ? "second" : "day";
31536
31644
  }
31537
- const styles$f = {
31645
+ const styles$i = {
31538
31646
  active: {
31539
31647
  backgroundColor: "mly1vzefiq",
31540
31648
  $$css: true
@@ -32118,15 +32226,17 @@ function FieldList({
32118
32226
  view,
32119
32227
  fields,
32120
32228
  onAddOperation,
32121
- search,
32229
+ search = "",
32122
32230
  types: types2,
32123
32231
  filter,
32124
- isFilterOperation
32232
+ isFilterOperation,
32233
+ customStyle
32125
32234
  }) {
32126
32235
  const groups = React.useMemo(() => {
32127
32236
  const groups2 = [];
32237
+ const lcSearch = search.toLocaleLowerCase();
32128
32238
  const buildGroups = (types22, path, name, fields2) => {
32129
- const filteredFields = sortFieldInfos(fields2).filter((field) => field.kind !== "join").filter((field) => !isArrayOrRecord(field)).filter((field) => field.name.includes(search) && types22.includes(field.kind)).filter((field) => filter ? filter(view, field, path) : true);
32239
+ const filteredFields = sortFieldInfos(fields2).filter((field) => field.kind !== "join").filter((field) => !isArrayOrRecord(field)).filter((field) => field.name.toLocaleLowerCase().includes(lcSearch) && types22.includes(field.kind)).filter((field) => filter ? filter(view, field, path) : true);
32130
32240
  const joins = fields2.filter((field) => field.kind === "join");
32131
32241
  const arraysAndRecords = fields2.filter(isArrayOrRecord);
32132
32242
  if (filteredFields.length) {
@@ -32163,16 +32273,12 @@ function FieldList({
32163
32273
  return groups2;
32164
32274
  }, [fields, filter, search, view, types2]);
32165
32275
  return /* @__PURE__ */ jsxRuntime.jsx("div", {
32166
- ...{
32167
- className: "mly3d5gib"
32168
- },
32276
+ ..._stylex.props(customStyle),
32169
32277
  children: groups.length ? groups.map((group) => /* @__PURE__ */ jsxRuntime.jsxs("div", {
32170
32278
  children: [/* @__PURE__ */ jsxRuntime.jsx("div", {
32171
- children: /* @__PURE__ */ jsxRuntime.jsx("div", {
32172
- ..._stylex.props(addMenuStyles.item, styles$e.fieldItem),
32173
- "data-disabled": "true",
32174
- children: group.name
32175
- })
32279
+ ..._stylex.props(addMenuStyles.item, styles$h.fieldItem),
32280
+ "data-disabled": "true",
32281
+ children: group.name
32176
32282
  }), group.fields.map((field) => isFilterOperation && (field.kind === "dimension" || field.kind === "measure") ? /* @__PURE__ */ jsxRuntime.jsx(FilterPopover, {
32177
32283
  fieldInfo: field,
32178
32284
  path: group.path,
@@ -32180,7 +32286,7 @@ function FieldList({
32180
32286
  anchor: /* @__PURE__ */ jsxRuntime.jsx("div", {
32181
32287
  role: "menuitem",
32182
32288
  tabIndex: -1,
32183
- ..._stylex.props(addMenuStyles.item, styles$e.fieldItem),
32289
+ ..._stylex.props(addMenuStyles.item, styles$h.fieldItem),
32184
32290
  children: /* @__PURE__ */ jsxRuntime.jsx(PopoverTrigger, {
32185
32291
  asChild: true,
32186
32292
  children: /* @__PURE__ */ jsxRuntime.jsx(FieldToken, {
@@ -32207,7 +32313,7 @@ function FieldList({
32207
32313
  }, group.name + ":" + field.name) : /* @__PURE__ */ jsxRuntime.jsx("div", {
32208
32314
  role: "menuitem",
32209
32315
  tabIndex: -1,
32210
- ..._stylex.props(addMenuStyles.item, styles$e.fieldItem),
32316
+ ..._stylex.props(addMenuStyles.item, styles$h.fieldItem),
32211
32317
  children: /* @__PURE__ */ jsxRuntime.jsx(FieldToken, {
32212
32318
  field,
32213
32319
  onClick: () => onAddOperation(field, group.path),
@@ -32230,7 +32336,7 @@ function FieldList({
32230
32336
  })
32231
32337
  });
32232
32338
  }
32233
- const styles$e = {
32339
+ const styles$h = {
32234
32340
  fieldItem: {
32235
32341
  height: "mly1qx5ct2",
32236
32342
  paddingTop: "mly1y1aw1k",
@@ -32248,7 +32354,7 @@ function FieldMenu({
32248
32354
  }) {
32249
32355
  const [search, setSearch] = React.useState("");
32250
32356
  return /* @__PURE__ */ jsxRuntime.jsxs("div", {
32251
- ..._stylex.props(addMenuStyles.content),
32357
+ ..._stylex.props(addMenuStyles.content, styles$g.content),
32252
32358
  role: "menu",
32253
32359
  children: [/* @__PURE__ */ jsxRuntime.jsx("div", {
32254
32360
  ..._stylex.props(addMenuStyles.item),
@@ -32258,7 +32364,10 @@ function FieldMenu({
32258
32364
  onChange: setSearch,
32259
32365
  placeholder: "Search..."
32260
32366
  })
32261
- }), /* @__PURE__ */ jsxRuntime.jsx(Divider, {}), /* @__PURE__ */ jsxRuntime.jsx(ScrollableArea, {
32367
+ }), /* @__PURE__ */ jsxRuntime.jsx(Divider, {}), /* @__PURE__ */ jsxRuntime.jsx("div", {
32368
+ ...{
32369
+ className: "mly1odjw0f"
32370
+ },
32262
32371
  children: /* @__PURE__ */ jsxRuntime.jsx(FieldList, {
32263
32372
  view,
32264
32373
  fields,
@@ -32271,6 +32380,12 @@ function FieldMenu({
32271
32380
  })]
32272
32381
  });
32273
32382
  }
32383
+ const styles$g = {
32384
+ content: {
32385
+ maxHeight: "mly3d5gib",
32386
+ $$css: true
32387
+ }
32388
+ };
32274
32389
  function segmentHasLimit(segment) {
32275
32390
  return segment.operations.items.find((operation) => operation instanceof QB.ASTLimitViewOperation) !== void 0;
32276
32391
  }
@@ -32300,7 +32415,7 @@ function addGroupBy(view, field, path) {
32300
32415
  } = view.getOutputSchema();
32301
32416
  let rename;
32302
32417
  if (fields.find((f2) => f2.name === field.name)) {
32303
- rename = findUniqueFieldName(fields, field.name);
32418
+ rename = findUniqueFieldName(fields, field.name, path);
32304
32419
  }
32305
32420
  segment.addGroupBy(field.name, path, rename);
32306
32421
  }
@@ -32311,7 +32426,7 @@ function addAggregate(view, field, path) {
32311
32426
  } = view.getOutputSchema();
32312
32427
  let rename;
32313
32428
  if (fields.find((f2) => f2.name === field.name)) {
32314
- rename = findUniqueFieldName(fields, field.name);
32429
+ rename = findUniqueFieldName(fields, field.name, path);
32315
32430
  }
32316
32431
  segment.addAggregate(field.name, path, rename);
32317
32432
  }
@@ -32351,7 +32466,7 @@ function OperationActionTitle({
32351
32466
  return !(segment == null ? void 0 : segment.hasField(field.name, path)) && isNotAnnotatedFilteredField(field);
32352
32467
  };
32353
32468
  return /* @__PURE__ */ jsxRuntime.jsxs("div", {
32354
- ..._stylex.props(styles$p.title, hoverStyles.main),
32469
+ ..._stylex.props(styles$s.title, hoverStyles.main),
32355
32470
  children: [/* @__PURE__ */ jsxRuntime.jsx("div", {
32356
32471
  children: title
32357
32472
  }), /* @__PURE__ */ jsxRuntime.jsx("div", {
@@ -32921,7 +33036,7 @@ function SortableOperations({
32921
33036
  fields,
32922
33037
  ...props2
32923
33038
  }), /* @__PURE__ */ jsxRuntime.jsx("div", {
32924
- ..._stylex.props(styles$p.tokenContainer),
33039
+ ..._stylex.props(styles$s.tokenContainer),
32925
33040
  children: /* @__PURE__ */ jsxRuntime.jsx(DndContext, {
32926
33041
  sensors,
32927
33042
  collisionDetection: closestCenter,
@@ -33071,10 +33186,10 @@ function FilterOperations({
33071
33186
  }
33072
33187
  return /* @__PURE__ */ jsxRuntime.jsxs("div", {
33073
33188
  children: [/* @__PURE__ */ jsxRuntime.jsx("div", {
33074
- ..._stylex.props(styles$p.title),
33189
+ ..._stylex.props(styles$s.title),
33075
33190
  children: "filter by"
33076
33191
  }), /* @__PURE__ */ jsxRuntime.jsx("div", {
33077
- ..._stylex.props(styles$p.tokenContainer),
33192
+ ..._stylex.props(styles$s.tokenContainer),
33078
33193
  children: filters.map((filterOperation, key2) => {
33079
33194
  return /* @__PURE__ */ jsxRuntime.jsx(ErrorElement, {
33080
33195
  fallback: /* @__PURE__ */ jsxRuntime.jsxs("div", {
@@ -33338,7 +33453,7 @@ function LimitOperation({
33338
33453
  }
33339
33454
  return /* @__PURE__ */ jsxRuntime.jsxs("div", {
33340
33455
  children: [/* @__PURE__ */ jsxRuntime.jsx("div", {
33341
- ..._stylex.props(styles$p.title),
33456
+ ..._stylex.props(styles$s.title),
33342
33457
  children: "limit"
33343
33458
  }), /* @__PURE__ */ jsxRuntime.jsxs("div", {
33344
33459
  ..._stylex.props(hoverStyles.main),
@@ -33388,10 +33503,10 @@ function OrderByOperations({
33388
33503
  }
33389
33504
  return /* @__PURE__ */ jsxRuntime.jsxs("div", {
33390
33505
  children: [/* @__PURE__ */ jsxRuntime.jsx("div", {
33391
- ..._stylex.props(styles$p.title),
33506
+ ..._stylex.props(styles$s.title),
33392
33507
  children: "order by"
33393
33508
  }), /* @__PURE__ */ jsxRuntime.jsx("div", {
33394
- ..._stylex.props(styles$p.tokenContainer),
33509
+ ..._stylex.props(styles$s.tokenContainer),
33395
33510
  children: orderBys.map((orderBy) => {
33396
33511
  const {
33397
33512
  fieldReference
@@ -33482,7 +33597,7 @@ function CollapsiblePanel({
33482
33597
  },
33483
33598
  children: [icon && /* @__PURE__ */ jsxRuntime.jsx(Icon, {
33484
33599
  name: icon,
33485
- customStyle: styles$d.icon
33600
+ customStyle: styles$f.icon
33486
33601
  }), /* @__PURE__ */ jsxRuntime.jsx("div", {
33487
33602
  ...{
33488
33603
  className: "mlyuxw1ft mlyb3r6kr mlylyipyv mlyehqz9p mly1ghz6dp"
@@ -33519,7 +33634,7 @@ function CollapsiblePanel({
33519
33634
  })]
33520
33635
  });
33521
33636
  }
33522
- const styles$d = {
33637
+ const styles$f = {
33523
33638
  icon: {
33524
33639
  $$css: true
33525
33640
  }
@@ -33529,39 +33644,59 @@ function AddItem({
33529
33644
  label,
33530
33645
  detail,
33531
33646
  disable,
33532
- onClick
33647
+ onClick,
33648
+ open
33533
33649
  }) {
33534
33650
  const disabled = disable == null ? void 0 : disable();
33535
33651
  const doOnClick = () => {
33536
33652
  if (!(disable == null ? void 0 : disable())) onClick == null ? void 0 : onClick();
33537
33653
  };
33538
- return /* @__PURE__ */ jsxRuntime.jsx("div", {
33539
- role: "menuitem",
33540
- tabIndex: -1,
33541
- ..._stylex.props(addMenuStyles.item, addMenuStyles.clickable),
33542
- onClick: doOnClick,
33543
- "data-disabled": disabled ? "true" : void 0,
33544
- children: /* @__PURE__ */ jsxRuntime.jsxs(Root3$1, {
33545
- children: [/* @__PURE__ */ jsxRuntime.jsx(Trigger$4, {
33546
- asChild: true,
33547
- children: /* @__PURE__ */ jsxRuntime.jsxs("div", {
33654
+ return /* @__PURE__ */ jsxRuntime.jsxs(Root3$1, {
33655
+ children: [/* @__PURE__ */ jsxRuntime.jsx(Trigger$4, {
33656
+ asChild: true,
33657
+ children: /* @__PURE__ */ jsxRuntime.jsxs("div", {
33658
+ role: "menuitem",
33659
+ tabIndex: -1,
33660
+ ..._stylex.props(addMenuStyles.item, addMenuStyles.clickable, open ? styles$e.open : null),
33661
+ onClick: doOnClick,
33662
+ "data-disabled": disabled ? "true" : void 0,
33663
+ children: [/* @__PURE__ */ jsxRuntime.jsxs("div", {
33548
33664
  ..._stylex.props(addMenuStyles.label),
33549
33665
  children: [icon, /* @__PURE__ */ jsxRuntime.jsx("div", {
33550
33666
  children: label
33551
33667
  })]
33552
- })
33553
- }), detail ? /* @__PURE__ */ jsxRuntime.jsx(Portal$4, {
33554
- children: /* @__PURE__ */ jsxRuntime.jsx(Content2$4, {
33555
- ..._stylex.props(addMenuStyles.tooltip),
33556
- side: "right",
33557
- align: "start",
33558
- alignOffset: -16,
33559
- children: detail
33560
- })
33561
- }) : null]
33562
- })
33668
+ }), open !== void 0 && /* @__PURE__ */ jsxRuntime.jsx(Icon, {
33669
+ name: "chevronRight",
33670
+ color: "gray"
33671
+ })]
33672
+ })
33673
+ }), detail ? /* @__PURE__ */ jsxRuntime.jsx(Portal$4, {
33674
+ children: /* @__PURE__ */ jsxRuntime.jsx(Content2$4, {
33675
+ ..._stylex.props(addMenuStyles.tooltip),
33676
+ side: "right",
33677
+ align: "start",
33678
+ alignOffset: -16,
33679
+ children: detail
33680
+ })
33681
+ }) : null]
33563
33682
  });
33564
33683
  }
33684
+ const styles$e = {
33685
+ open: {
33686
+ background: "mly16o7sp0",
33687
+ backgroundAttachment: null,
33688
+ backgroundClip: null,
33689
+ backgroundColor: null,
33690
+ backgroundImage: null,
33691
+ backgroundOrigin: null,
33692
+ backgroundPosition: null,
33693
+ backgroundPositionX: null,
33694
+ backgroundPositionY: null,
33695
+ backgroundRepeat: null,
33696
+ backgroundSize: null,
33697
+ $$css: true
33698
+ }
33699
+ };
33565
33700
  function AddLimit({
33566
33701
  rootQuery,
33567
33702
  view
@@ -33607,95 +33742,33 @@ function AddEmptyNest({
33607
33742
  function AddFieldItem({
33608
33743
  view,
33609
33744
  fields,
33610
- icon,
33611
- label,
33612
33745
  onAddOperation,
33613
33746
  types: types2,
33614
33747
  filter,
33615
- disabledMessage,
33616
- isFilterOperation
33748
+ isFilterOperation,
33749
+ search
33617
33750
  }) {
33618
- const disabled = fields.length === 0;
33619
- const [open, setOpen] = React.useState(false);
33620
- const trigger = /* @__PURE__ */ jsxRuntime.jsxs("div", {
33621
- role: "menuitem",
33622
- tabIndex: -1,
33623
- ..._stylex.props(addMenuStyles.item, addMenuStyles.clickable, open ? styles$c.open : null),
33624
- "data-disabled": disabled ? "true" : void 0,
33625
- children: [/* @__PURE__ */ jsxRuntime.jsxs("div", {
33626
- ..._stylex.props(addMenuStyles.label),
33627
- children: [/* @__PURE__ */ jsxRuntime.jsx(Icon, {
33628
- name: icon
33629
- }), /* @__PURE__ */ jsxRuntime.jsx("div", {
33630
- children: label
33631
- })]
33632
- }), /* @__PURE__ */ jsxRuntime.jsx(Icon, {
33633
- name: "chevronRight",
33634
- color: "gray"
33635
- })]
33636
- });
33637
- if (disabled && disabledMessage) {
33638
- return /* @__PURE__ */ jsxRuntime.jsxs(Tooltip, {
33639
- children: [/* @__PURE__ */ jsxRuntime.jsx(TooltipTrigger, {
33640
- asChild: true,
33641
- children: trigger
33642
- }), /* @__PURE__ */ jsxRuntime.jsx(TooltipPortal, {
33643
- children: /* @__PURE__ */ jsxRuntime.jsx(TooltipContent, {
33644
- children: /* @__PURE__ */ jsxRuntime.jsx("div", {
33645
- ..._stylex.props(fontStyles.supporting, tooltipStyles.default),
33646
- children: disabledMessage
33647
- })
33648
- })
33649
- })]
33650
- });
33651
- }
33652
- return /* @__PURE__ */ jsxRuntime.jsxs(Root2$2, {
33653
- open,
33654
- onOpenChange: setOpen,
33655
- children: [/* @__PURE__ */ jsxRuntime.jsx(Trigger$2, {
33656
- asChild: true,
33657
- disabled,
33658
- children: trigger
33659
- }), /* @__PURE__ */ jsxRuntime.jsx(Portal$2, {
33660
- children: /* @__PURE__ */ jsxRuntime.jsxs(Content2$2, {
33661
- side: "right",
33662
- align: "start",
33663
- alignOffset: -8,
33664
- sideOffset: -6,
33665
- children: [/* @__PURE__ */ jsxRuntime.jsx(Arrow2$1, {
33666
- width: 0,
33667
- height: 0
33668
- }), /* @__PURE__ */ jsxRuntime.jsx(FieldMenu, {
33669
- types: types2,
33670
- filter,
33671
- view,
33672
- fields,
33673
- onAddOperation,
33674
- isFilterOperation
33675
- })]
33676
- })
33677
- })]
33751
+ return /* @__PURE__ */ jsxRuntime.jsx(FieldList, {
33752
+ types: types2,
33753
+ filter,
33754
+ view,
33755
+ fields,
33756
+ onAddOperation,
33757
+ isFilterOperation,
33758
+ search,
33759
+ customStyle: styles$d.list
33678
33760
  });
33679
33761
  }
33680
- const styles$c = {
33681
- open: {
33682
- background: "mly1p5yd3t",
33683
- backgroundAttachment: null,
33684
- backgroundClip: null,
33685
- backgroundColor: null,
33686
- backgroundImage: null,
33687
- backgroundOrigin: null,
33688
- backgroundPosition: null,
33689
- backgroundPositionX: null,
33690
- backgroundPositionY: null,
33691
- backgroundRepeat: null,
33692
- backgroundSize: null,
33762
+ const styles$d = {
33763
+ list: {
33764
+ width: "mlyqyf9gi",
33693
33765
  $$css: true
33694
33766
  }
33695
33767
  };
33696
33768
  function AddOrderBy({
33697
33769
  rootQuery,
33698
- view
33770
+ view,
33771
+ search
33699
33772
  }) {
33700
33773
  const {
33701
33774
  setQuery
@@ -33714,13 +33787,15 @@ function AddOrderBy({
33714
33787
  segment2.addOrderBy(field.name, "asc");
33715
33788
  setQuery == null ? void 0 : setQuery(rootQuery.build());
33716
33789
  },
33717
- disabledMessage: "There must be at least one field in the output to order by."
33790
+ disabledMessage: "There must be at least one field in the output to order by.",
33791
+ search
33718
33792
  });
33719
33793
  }
33720
33794
  const ORDERABLE_TYPES$1 = ["string_type", "number_type", "boolean_type", "date_type", "timestamp_type"];
33721
33795
  function AddGroupBy({
33722
33796
  rootQuery,
33723
- view
33797
+ view,
33798
+ search
33724
33799
  }) {
33725
33800
  const {
33726
33801
  setQuery
@@ -33742,12 +33817,14 @@ function AddGroupBy({
33742
33817
  onAddOperation: (field, path) => {
33743
33818
  addGroupBy(view, field, path);
33744
33819
  setQuery == null ? void 0 : setQuery(rootQuery.build());
33745
- }
33820
+ },
33821
+ search
33746
33822
  });
33747
33823
  }
33748
33824
  function AddAggregate({
33749
33825
  rootQuery,
33750
- view
33826
+ view,
33827
+ search
33751
33828
  }) {
33752
33829
  const {
33753
33830
  setQuery
@@ -33769,11 +33846,13 @@ function AddAggregate({
33769
33846
  onAddOperation: (field, path) => {
33770
33847
  addAggregate(view, field, path);
33771
33848
  setQuery == null ? void 0 : setQuery(rootQuery.build());
33772
- }
33849
+ },
33850
+ search
33773
33851
  });
33774
33852
  }
33775
33853
  function AddWhere({
33776
- view
33854
+ view,
33855
+ search
33777
33856
  }) {
33778
33857
  const {
33779
33858
  rootQuery,
@@ -33801,14 +33880,16 @@ function AddWhere({
33801
33880
  setQuery == null ? void 0 : setQuery(rootQuery == null ? void 0 : rootQuery.build());
33802
33881
  }
33803
33882
  },
33804
- isFilterOperation: true
33883
+ isFilterOperation: true,
33884
+ search
33805
33885
  })
33806
33886
  });
33807
33887
  }
33808
33888
  const FILTERABLE_TYPES$1 = /* @__PURE__ */ new Set(["string_type", "boolean_type", "number_type", "date_type", "timestamp_type"]);
33809
33889
  function AddView({
33810
33890
  rootQuery,
33811
- view
33891
+ view,
33892
+ search
33812
33893
  }) {
33813
33894
  const {
33814
33895
  setQuery
@@ -33829,7 +33910,8 @@ function AddView({
33829
33910
  addNest(view, field);
33830
33911
  }
33831
33912
  setQuery == null ? void 0 : setQuery(rootQuery.build());
33832
- }
33913
+ },
33914
+ search
33833
33915
  });
33834
33916
  }
33835
33917
  function AddMenu({
@@ -33837,11 +33919,19 @@ function AddMenu({
33837
33919
  view
33838
33920
  }) {
33839
33921
  const [open, setOpen] = React.useState(false);
33922
+ const [active, setActive] = React.useState("");
33840
33923
  const {
33841
33924
  setQuery
33842
33925
  } = React.useContext(QueryEditorContext);
33843
33926
  const [search, setSearch] = React.useState("");
33844
33927
  const segment = getSegmentIfPresent(view);
33928
+ const toggleActive = (toggle) => {
33929
+ if (toggle === active) {
33930
+ setActive("");
33931
+ } else {
33932
+ setActive(toggle);
33933
+ }
33934
+ };
33845
33935
  return /* @__PURE__ */ jsxRuntime.jsxs(Root2$2, {
33846
33936
  open,
33847
33937
  onOpenChange: (open2) => {
@@ -33872,87 +33962,162 @@ function AddMenu({
33872
33962
  icon: "search",
33873
33963
  value: search,
33874
33964
  onChange: setSearch,
33875
- placeholder: "Search..."
33965
+ placeholder: "Search...",
33966
+ customStyle: styles$c.search
33876
33967
  })
33877
- }), /* @__PURE__ */ jsxRuntime.jsx(Divider, {}), search ? /* @__PURE__ */ jsxRuntime.jsxs("div", {
33878
- style: {
33879
- overflow: "auto",
33880
- overflowY: "scroll",
33881
- flex: 1
33968
+ }), /* @__PURE__ */ jsxRuntime.jsx(Divider, {}), /* @__PURE__ */ jsxRuntime.jsxs("div", {
33969
+ ...{
33970
+ className: "mly78zum5 mly1odjw0f mlywib8y2 mly1xyq3li"
33882
33971
  },
33883
- children: [/* @__PURE__ */ jsxRuntime.jsx(FieldList, {
33884
- view,
33885
- fields: getInputSchemaFromViewParent(view).fields,
33886
- filter: (_2, field, path) => !(segment == null ? void 0 : segment.hasField(field.name, path)) && isNotAnnotatedFilteredField(field),
33887
- types: ["dimension", "measure", "view"],
33888
- onAddOperation: function(field, path) {
33889
- if (field.kind === "dimension") {
33890
- addGroupBy(view, field, path);
33891
- } else if (field.kind === "measure") {
33892
- addAggregate(view, field, path);
33893
- } else {
33894
- addNest(view, field);
33895
- }
33896
- setQuery == null ? void 0 : setQuery(rootQuery.build());
33972
+ children: [search && !active ? /* @__PURE__ */ jsxRuntime.jsxs("div", {
33973
+ ...{
33974
+ className: "mly1odjw0f"
33897
33975
  },
33898
- search
33899
- }), /* @__PURE__ */ jsxRuntime.jsx(Divider, {}), /* @__PURE__ */ jsxRuntime.jsx(ValueList, {
33900
- search,
33901
- onClick: (value) => {
33902
- const path = value.fieldName.split(".");
33903
- const name = path.pop();
33904
- const segment2 = view.getOrAddDefaultSegment();
33905
- segment2.addWhere(name, path, {
33906
- kind: "string",
33907
- parsed: {
33908
- operator: "=",
33909
- values: [value.fieldValue ?? "∅"]
33976
+ children: [/* @__PURE__ */ jsxRuntime.jsx(FieldList, {
33977
+ view,
33978
+ fields: getInputSchemaFromViewParent(view).fields,
33979
+ filter: (_2, field, path) => !(segment == null ? void 0 : segment.hasField(field.name, path)) && isNotAnnotatedFilteredField(field),
33980
+ types: ["dimension", "measure", "view"],
33981
+ onAddOperation: function(field, path) {
33982
+ if (field.kind === "dimension") {
33983
+ addGroupBy(view, field, path);
33984
+ } else if (field.kind === "measure") {
33985
+ addAggregate(view, field, path);
33986
+ } else {
33987
+ addNest(view, field);
33910
33988
  }
33911
- });
33912
- setQuery == null ? void 0 : setQuery(rootQuery.build());
33913
- }
33914
- })]
33915
- }) : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, {
33916
- children: [/* @__PURE__ */ jsxRuntime.jsx(AddGroupBy, {
33917
- rootQuery,
33918
- view
33919
- }), /* @__PURE__ */ jsxRuntime.jsx(AddAggregate, {
33920
- rootQuery,
33921
- view
33922
- }), /* @__PURE__ */ jsxRuntime.jsx(AddWhere, {
33923
- rootQuery,
33924
- view
33925
- }), /* @__PURE__ */ jsxRuntime.jsx(AddView, {
33926
- rootQuery,
33927
- view
33928
- }), /* @__PURE__ */ jsxRuntime.jsx(Divider, {}), /* @__PURE__ */ jsxRuntime.jsx(AddLimit, {
33929
- rootQuery,
33930
- view
33931
- }), /* @__PURE__ */ jsxRuntime.jsx(AddOrderBy, {
33932
- rootQuery,
33933
- view
33934
- }), /* @__PURE__ */ jsxRuntime.jsx(AddEmptyNest, {
33935
- rootQuery,
33936
- view
33989
+ setQuery == null ? void 0 : setQuery(rootQuery.build());
33990
+ },
33991
+ search
33992
+ }), /* @__PURE__ */ jsxRuntime.jsx(Divider, {}), /* @__PURE__ */ jsxRuntime.jsx(ValueList, {
33993
+ search,
33994
+ onClick: (value) => {
33995
+ const path = value.fieldName.split(".");
33996
+ const name = path.pop();
33997
+ const segment2 = view.getOrAddDefaultSegment();
33998
+ segment2.addWhere(name, path, {
33999
+ kind: "string",
34000
+ parsed: {
34001
+ operator: "=",
34002
+ values: [value.fieldValue ?? "∅"]
34003
+ }
34004
+ });
34005
+ setQuery == null ? void 0 : setQuery(rootQuery.build());
34006
+ }
34007
+ })]
34008
+ }) : /* @__PURE__ */ jsxRuntime.jsxs("div", {
34009
+ "data-testid": "add-menu-operations",
34010
+ ...{
34011
+ className: "mly18kybhu"
34012
+ },
34013
+ children: [/* @__PURE__ */ jsxRuntime.jsx(AddItem, {
34014
+ icon: /* @__PURE__ */ jsxRuntime.jsx(Icon, {
34015
+ name: "groupBy"
34016
+ }),
34017
+ label: "Add group by",
34018
+ onClick: () => toggleActive("group_by"),
34019
+ open: active === "group_by"
34020
+ }), /* @__PURE__ */ jsxRuntime.jsx(AddItem, {
34021
+ icon: /* @__PURE__ */ jsxRuntime.jsx(Icon, {
34022
+ name: "aggregate"
34023
+ }),
34024
+ label: "Add aggregate",
34025
+ onClick: () => toggleActive("aggregate"),
34026
+ open: active === "aggregate"
34027
+ }), /* @__PURE__ */ jsxRuntime.jsx(AddItem, {
34028
+ icon: /* @__PURE__ */ jsxRuntime.jsx(Icon, {
34029
+ name: "filter"
34030
+ }),
34031
+ label: "Add filter",
34032
+ onClick: () => toggleActive("where"),
34033
+ open: active === "where"
34034
+ }), /* @__PURE__ */ jsxRuntime.jsx(AddItem, {
34035
+ icon: /* @__PURE__ */ jsxRuntime.jsx(Icon, {
34036
+ name: "view"
34037
+ }),
34038
+ label: "Add view",
34039
+ onClick: () => toggleActive("view"),
34040
+ open: active === "view"
34041
+ }), /* @__PURE__ */ jsxRuntime.jsx(Divider, {}), /* @__PURE__ */ jsxRuntime.jsx(AddLimit, {
34042
+ rootQuery,
34043
+ view
34044
+ }), /* @__PURE__ */ jsxRuntime.jsx(AddItem, {
34045
+ icon: /* @__PURE__ */ jsxRuntime.jsx(Icon, {
34046
+ name: "orderBy"
34047
+ }),
34048
+ label: "Order by",
34049
+ onClick: () => toggleActive("order_by"),
34050
+ open: active === "order_by"
34051
+ }), /* @__PURE__ */ jsxRuntime.jsx(AddEmptyNest, {
34052
+ rootQuery,
34053
+ view
34054
+ })]
34055
+ }), /* @__PURE__ */ jsxRuntime.jsxs("div", {
34056
+ "data-testid": "add-menu-right-column",
34057
+ style: {
34058
+ overflowY: "auto"
34059
+ },
34060
+ children: [active === "group_by" && /* @__PURE__ */ jsxRuntime.jsx(AddGroupBy, {
34061
+ rootQuery,
34062
+ view,
34063
+ search
34064
+ }), active === "aggregate" && /* @__PURE__ */ jsxRuntime.jsx(AddAggregate, {
34065
+ rootQuery,
34066
+ view,
34067
+ search
34068
+ }), active === "where" && /* @__PURE__ */ jsxRuntime.jsx(AddWhere, {
34069
+ rootQuery,
34070
+ view,
34071
+ search
34072
+ }), active === "view" && /* @__PURE__ */ jsxRuntime.jsx(AddView, {
34073
+ rootQuery,
34074
+ view,
34075
+ search
34076
+ }), active === "order_by" && /* @__PURE__ */ jsxRuntime.jsx(AddOrderBy, {
34077
+ rootQuery,
34078
+ view,
34079
+ search
34080
+ })]
33937
34081
  })]
33938
34082
  })]
33939
34083
  })
33940
34084
  })]
33941
34085
  });
33942
34086
  }
34087
+ const styles$c = {
34088
+ search: {
34089
+ width: "mlyh8yej3",
34090
+ $$css: true
34091
+ }
34092
+ };
33943
34093
  function NestOperations({
33944
34094
  rootQuery,
33945
34095
  view,
33946
34096
  nests
34097
+ }) {
34098
+ if (nests.length === 0) {
34099
+ return null;
34100
+ }
34101
+ return /* @__PURE__ */ jsxRuntime.jsx("div", {
34102
+ ..._stylex.props(styles$s.tokenContainer),
34103
+ children: nests.map((nest) => /* @__PURE__ */ jsxRuntime.jsx(NestOperation, {
34104
+ rootQuery,
34105
+ view,
34106
+ nest
34107
+ }, nest.name))
34108
+ });
34109
+ }
34110
+ function NestOperation({
34111
+ rootQuery,
34112
+ view,
34113
+ nest
33947
34114
  }) {
33948
34115
  const {
33949
34116
  setQuery
33950
34117
  } = React.useContext(QueryEditorContext);
33951
34118
  const [renameOpen, setRenameOpen] = React.useState(false);
33952
- if (nests.length === 0) {
33953
- return null;
33954
- }
33955
- const getControls = (nest) => /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, {
34119
+ const defaultOpen = nest.view.definition.node.kind === "segment" && nest.view.definition.node.operations.length === 0;
34120
+ const getControls = (nest2) => /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, {
33956
34121
  children: [/* @__PURE__ */ jsxRuntime.jsxs(DropdownMenu, {
33957
34122
  trigger: /* @__PURE__ */ jsxRuntime.jsx(Button, {
33958
34123
  variant: "flat",
@@ -33964,7 +34129,7 @@ function NestOperations({
33964
34129
  icon: "clear",
33965
34130
  label: "Delete Query",
33966
34131
  onClick: () => {
33967
- nest.delete();
34132
+ nest2.delete();
33968
34133
  setQuery == null ? void 0 : setQuery(rootQuery.build());
33969
34134
  }
33970
34135
  }), /* @__PURE__ */ jsxRuntime.jsx(DropdownMenuItem, {
@@ -33975,37 +34140,31 @@ function NestOperations({
33975
34140
  })]
33976
34141
  }), /* @__PURE__ */ jsxRuntime.jsx(AddMenu, {
33977
34142
  rootQuery,
33978
- view: nest.view
34143
+ view: nest2.view
33979
34144
  })]
33980
34145
  });
33981
- return /* @__PURE__ */ jsxRuntime.jsx("div", {
33982
- ..._stylex.props(styles$p.tokenContainer),
33983
- children: nests.map((nest) => {
33984
- const defaultOpen = nest.view.definition.node.kind === "segment" && nest.view.definition.node.operations.length === 0;
33985
- return /* @__PURE__ */ jsxRuntime.jsxs("div", {
33986
- ...{
33987
- className: "mlyj3b58b mly1yf7rl7 mly1xmf6yo mlyh8yej3"
33988
- },
33989
- children: [/* @__PURE__ */ jsxRuntime.jsx(CollapsiblePanel, {
33990
- title: nest.name,
33991
- icon: viewToVisualizationIcon(nest.view),
33992
- defaultOpen,
33993
- controls: getControls(nest),
33994
- collapsedControls: getControls(nest),
33995
- children: /* @__PURE__ */ jsxRuntime.jsx(View, {
33996
- rootQuery,
33997
- view: nest.view
33998
- })
33999
- }), /* @__PURE__ */ jsxRuntime.jsx(RenameDialog, {
34000
- rootQuery,
34001
- view,
34002
- target: nest,
34003
- open: renameOpen,
34004
- setOpen: setRenameOpen
34005
- })]
34006
- }, nest.name);
34007
- })
34008
- });
34146
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", {
34147
+ ...{
34148
+ className: "mlyj3b58b mly1yf7rl7 mly1xmf6yo mlyh8yej3"
34149
+ },
34150
+ children: [/* @__PURE__ */ jsxRuntime.jsx(CollapsiblePanel, {
34151
+ title: nest.name,
34152
+ icon: viewToVisualizationIcon(nest.view),
34153
+ defaultOpen,
34154
+ controls: getControls(nest),
34155
+ collapsedControls: getControls(nest),
34156
+ children: /* @__PURE__ */ jsxRuntime.jsx(View, {
34157
+ rootQuery,
34158
+ view: nest.view
34159
+ })
34160
+ }), /* @__PURE__ */ jsxRuntime.jsx(RenameDialog, {
34161
+ rootQuery,
34162
+ view,
34163
+ target: nest,
34164
+ open: renameOpen,
34165
+ setOpen: setRenameOpen
34166
+ })]
34167
+ }, nest.name);
34009
34168
  }
34010
34169
  function Operations({
34011
34170
  rootQuery,
@@ -34244,30 +34403,23 @@ function Query({
34244
34403
  }) : null]
34245
34404
  });
34246
34405
  }
34247
- const ExplorerPanelsContext = /* @__PURE__ */ React__namespace.createContext({
34248
- isSourcePanelOpen: true,
34249
- setIsSourcePanelOpen: void 0
34250
- });
34251
34406
  function Source({
34252
34407
  rootQuery
34253
34408
  }) {
34254
- const {
34255
- isSourcePanelOpen,
34256
- setIsSourcePanelOpen
34257
- } = React.useContext(ExplorerPanelsContext);
34258
- if (!(isSourcePanelOpen && setIsSourcePanelOpen) && rootQuery.definition instanceof QB.ASTArrowQueryDefinition) {
34259
- return /* @__PURE__ */ jsxRuntime.jsxs("div", {
34260
- ..._stylex.props(styles$p.queryCard, styles$a.content),
34261
- children: [/* @__PURE__ */ jsxRuntime.jsxs("div", {
34262
- ..._stylex.props(styles$p.labelWithIcon),
34409
+ if (rootQuery.definition instanceof QB.ASTArrowQueryDefinition) {
34410
+ return /* @__PURE__ */ jsxRuntime.jsx("div", {
34411
+ ..._stylex.props(styles$s.queryCard, styles$a.content),
34412
+ children: /* @__PURE__ */ jsxRuntime.jsxs("div", {
34413
+ ..._stylex.props(styles$s.labelWithIcon),
34263
34414
  children: [/* @__PURE__ */ jsxRuntime.jsx(Icon, {
34264
34415
  name: "database"
34265
- }), rootQuery.definition.as.ArrowQueryDefinition().source.as.ReferenceQueryArrowSource().name]
34266
- }), setIsSourcePanelOpen && /* @__PURE__ */ jsxRuntime.jsx(Button, {
34267
- variant: "flat",
34268
- onClick: () => setIsSourcePanelOpen(true),
34269
- label: "Open data panel"
34270
- })]
34416
+ }), /* @__PURE__ */ jsxRuntime.jsx("div", {
34417
+ ...{
34418
+ className: "mlyb3r6kr mlylyipyv"
34419
+ },
34420
+ children: rootQuery.definition.as.ArrowQueryDefinition().source.as.ReferenceQueryArrowSource().name
34421
+ })]
34422
+ })
34271
34423
  });
34272
34424
  }
34273
34425
  return null;
@@ -34276,7 +34428,7 @@ const styles$a = {
34276
34428
  content: {
34277
34429
  display: "mlyrvj5dj",
34278
34430
  gridAutoFlow: "mly1mt1orb",
34279
- gridTemplateColumns: "mly52fmzj",
34431
+ gridTemplateColumns: "mlybyjr8",
34280
34432
  gap: "mly1jnr06f",
34281
34433
  rowGap: null,
34282
34434
  columnGap: null,
@@ -34764,7 +34916,7 @@ function RunInfoHover({
34764
34916
  children: /* @__PURE__ */ jsxRuntime.jsx(HoverCard, {
34765
34917
  customStyle: styles$5.card,
34766
34918
  children: /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, {
34767
- children: [(runInfo == null ? void 0 : runInfo.performanceAspects) && Object.entries(runInfo.performanceAspects).map(([aspect, properties2]) => {
34919
+ children: [runInfo.customContent, (runInfo == null ? void 0 : runInfo.performanceAspects) && Object.entries(runInfo.performanceAspects).map(([aspect, properties2]) => {
34768
34920
  return /* @__PURE__ */ jsxRuntime.jsx("div", {
34769
34921
  children: Object.entries(properties2).map(([k2, v2]) => /* @__PURE__ */ jsxRuntime.jsxs("div", {
34770
34922
  children: [/* @__PURE__ */ jsxRuntime.jsxs("span", {
@@ -34778,6 +34930,8 @@ function RunInfoHover({
34778
34930
  }, aspect);
34779
34931
  }), runInfo.queryLink && /* @__PURE__ */ jsxRuntime.jsx("a", {
34780
34932
  href: runInfo.queryLink.href,
34933
+ target: "_blank",
34934
+ rel: "noreferrer",
34781
34935
  ..._stylex.props(styles$5.link, fontStyles.link),
34782
34936
  children: runInfo.queryLink.linkText
34783
34937
  })]
@@ -35835,7 +35989,7 @@ function FieldTokenWithActions({
35835
35989
  }
35836
35990
  });
35837
35991
  }
35838
- const FIELD_KIND_ORDER = ["view", "dimension", "measure"];
35992
+ const FIELD_KIND_ORDER = ["dimension", "measure", "view"];
35839
35993
  function SearchResultList({
35840
35994
  source,
35841
35995
  items
@@ -35848,7 +36002,7 @@ function SearchResultList({
35848
36002
  }, [source, items]);
35849
36003
  return /* @__PURE__ */ jsxRuntime.jsxs("div", {
35850
36004
  ...{
35851
- className: "mly78zum5 mlydt5ytf mly1cy8zhl mlyou54vl mlye8ttls"
36005
+ className: "mly78zum5 mlydt5ytf mly1cy8zhl mlyou54vl mlye8ttls mly10cdfl8"
35852
36006
  },
35853
36007
  children: [/* @__PURE__ */ jsxRuntime.jsx("div", {
35854
36008
  ..._stylex.props(fontStyles.body, styles$2.heading),
@@ -35905,17 +36059,29 @@ const getSublabelFromPath = (source, path) => {
35905
36059
  };
35906
36060
  function FieldGroupList({
35907
36061
  source,
35908
- title,
35909
- items
36062
+ fieldItems,
36063
+ fieldGroupType
35910
36064
  }) {
35911
- return /* @__PURE__ */ jsxRuntime.jsxs("div", {
36065
+ const fieldGroupsByKindByPath = React__namespace.useMemo(() => {
36066
+ if (source) {
36067
+ return groupFieldItemsByKind(fieldItems).map((group) => ({
36068
+ ...group,
36069
+ items: groupFieldItemsByPath(source, group.items)
36070
+ }));
36071
+ }
36072
+ return [];
36073
+ }, [source, fieldItems]);
36074
+ const items = React__namespace.useMemo(() => {
36075
+ var _a2;
36076
+ return ((_a2 = fieldGroupsByKindByPath.find(({
36077
+ group
36078
+ }) => group === fieldGroupType)) == null ? void 0 : _a2.items) ?? [];
36079
+ }, [fieldGroupsByKindByPath, fieldGroupType]);
36080
+ return /* @__PURE__ */ jsxRuntime.jsx("div", {
35912
36081
  ...{
35913
36082
  className: "mly78zum5 mlydt5ytf mly167g77z"
35914
36083
  },
35915
- children: [/* @__PURE__ */ jsxRuntime.jsx("div", {
35916
- ..._stylex.props(fontStyles.body, styles$1.title),
35917
- children: title
35918
- }), /* @__PURE__ */ jsxRuntime.jsx(List$1, {
36084
+ children: /* @__PURE__ */ jsxRuntime.jsx(List$1, {
35919
36085
  children: items.map((item, index2) => /* @__PURE__ */ jsxRuntime.jsx(CollapsibleListItem, {
35920
36086
  label: getLabelFromPath(source, item.groupPath),
35921
36087
  sublabel: getSublabelFromPath(source, item.groupPath),
@@ -35928,36 +36094,19 @@ function FieldGroupList({
35928
36094
  path
35929
36095
  }, [...path, field.name].join(".")))
35930
36096
  }, item.groupPath.join(".")))
35931
- })]
36097
+ })
35932
36098
  });
35933
36099
  }
35934
- const styles$1 = {
35935
- title: {
35936
- padding: "mlye8ttls",
35937
- paddingInline: null,
35938
- paddingStart: null,
35939
- paddingLeft: null,
35940
- paddingEnd: null,
35941
- paddingRight: null,
35942
- paddingBlock: null,
35943
- paddingTop: null,
35944
- paddingBottom: null,
35945
- fontWeight: "mly1xlr1w8",
35946
- $$css: true
35947
- }
35948
- };
35949
36100
  function SourcePanel({
35950
36101
  onRefresh
35951
36102
  }) {
35952
36103
  const {
35953
36104
  source
35954
36105
  } = React__namespace.useContext(QueryEditorContext);
35955
- const [subpanelType, setSubpanelType] = React__namespace.useState(null);
35956
36106
  const [searchQuery, setSearchQuery] = React__namespace.useState("");
35957
36107
  const {
35958
- isSourcePanelOpen,
35959
- setIsSourcePanelOpen
35960
- } = React.useContext(ExplorerPanelsContext);
36108
+ onCollapse
36109
+ } = React.useContext(ResizableCollapsiblePanelContext);
35961
36110
  const fieldItems = React__namespace.useMemo(() => {
35962
36111
  if (source) {
35963
36112
  return sourceToFieldItems(source).filter((fi) => !hasExplorerFilterFieldAnnotation(fi.field.annotations ?? []));
@@ -35969,40 +36118,26 @@ function SourcePanel({
35969
36118
  const dimensions = fieldItems.filter((item) => item.field.kind === "dimension");
35970
36119
  const searchResultItems = React__namespace.useMemo(() => {
35971
36120
  if (searchQuery) {
35972
- return fieldItems.filter((item) => item.field.name.includes(searchQuery));
36121
+ const lcSearch = searchQuery.toLocaleLowerCase();
36122
+ return fieldItems.filter((item) => item.field.name.toLocaleLowerCase().includes(lcSearch));
35973
36123
  }
35974
36124
  return [];
35975
36125
  }, [fieldItems, searchQuery]);
35976
- const fieldGroupsByKindByPath = React__namespace.useMemo(() => {
35977
- if (source) {
35978
- return groupFieldItemsByKind(fieldItems).map((group) => ({
35979
- ...group,
35980
- items: groupFieldItemsByPath(source, group.items)
35981
- }));
35982
- }
35983
- return [];
35984
- }, [source, fieldItems]);
35985
- const fieldGroupList = React__namespace.useMemo(() => {
35986
- var _a2;
35987
- return ((_a2 = fieldGroupsByKindByPath.find(({
35988
- group
35989
- }) => group === subpanelType)) == null ? void 0 : _a2.items) ?? [];
35990
- }, [fieldGroupsByKindByPath, subpanelType]);
35991
36126
  const isSearchActive = !!searchQuery;
35992
- if (!isSourcePanelOpen || !source) {
36127
+ if (!source) {
35993
36128
  return null;
35994
36129
  }
35995
36130
  return /* @__PURE__ */ jsxRuntime.jsxs("div", {
35996
36131
  ...{
35997
- className: "mly78zum5 mlydt5ytf mly2lah0s mlyh8yej3 mly5yr21d mly1dr8pv1 mlyy8678h"
36132
+ className: "mly78zum5 mlydt5ytf mly5yr21d mly1gzqxud mlyfuqftd"
35998
36133
  },
35999
36134
  children: [/* @__PURE__ */ jsxRuntime.jsxs("div", {
36000
- ..._stylex.props(fontStyles.body, styles.header),
36135
+ ..._stylex.props(fontStyles.body, styles$1.header),
36001
36136
  children: [/* @__PURE__ */ jsxRuntime.jsxs("div", {
36002
36137
  ...{
36003
36138
  className: "mly78zum5 mly1qughib"
36004
36139
  },
36005
- children: [subpanelType == null ? /* @__PURE__ */ jsxRuntime.jsxs("div", {
36140
+ children: [/* @__PURE__ */ jsxRuntime.jsxs("div", {
36006
36141
  ...{
36007
36142
  className: "mly78zum5 mly6s0dn4 mly167g77z mlydqdrvq mlyb3r6kr"
36008
36143
  },
@@ -36010,17 +36145,9 @@ function SourcePanel({
36010
36145
  name: "database",
36011
36146
  color: "gray"
36012
36147
  }), /* @__PURE__ */ jsxRuntime.jsx("div", {
36013
- ...{
36014
- className: "mlyb3r6kr mlylyipyv"
36015
- },
36148
+ ..._stylex.props(fontStyles.largeBody, styles$1.title),
36016
36149
  children: source.name
36017
36150
  })]
36018
- }) : /* @__PURE__ */ jsxRuntime.jsx(Button, {
36019
- icon: "chevronLeft",
36020
- label: "Back",
36021
- variant: "flat",
36022
- size: "compact",
36023
- onClick: () => setSubpanelType(null)
36024
36151
  }), /* @__PURE__ */ jsxRuntime.jsxs("div", {
36025
36152
  ...{
36026
36153
  className: "mly78zum5"
@@ -36031,10 +36158,10 @@ function SourcePanel({
36031
36158
  onClick: onRefresh,
36032
36159
  size: "compact",
36033
36160
  variant: "flat"
36034
- }), setIsSourcePanelOpen && /* @__PURE__ */ jsxRuntime.jsx(Button, {
36161
+ }), onCollapse && /* @__PURE__ */ jsxRuntime.jsx(Button, {
36035
36162
  icon: "sidebarCollapse",
36036
36163
  tooltip: "Close the source panel",
36037
- onClick: () => setIsSourcePanelOpen(false),
36164
+ onClick: onCollapse,
36038
36165
  size: "compact",
36039
36166
  variant: "flat"
36040
36167
  })]
@@ -36047,71 +36174,69 @@ function SourcePanel({
36047
36174
  icon: "search",
36048
36175
  hasClear: true
36049
36176
  })]
36050
- }), /* @__PURE__ */ jsxRuntime.jsx(Divider, {}), /* @__PURE__ */ jsxRuntime.jsx(ScrollableArea, {
36051
- children: /* @__PURE__ */ jsxRuntime.jsx("div", {
36052
- ...{
36053
- className: "mly78zum5 mlydt5ytf mlye8ttls"
36054
- },
36055
- children: isSearchActive ? /* @__PURE__ */ jsxRuntime.jsx(SearchResultList, {
36056
- source,
36057
- items: searchResultItems
36058
- }) : subpanelType == null ? /* @__PURE__ */ jsxRuntime.jsxs(List$1, {
36059
- children: [/* @__PURE__ */ jsxRuntime.jsx(ListItem, {
36060
- label: "Views",
36061
- startIcon: /* @__PURE__ */ jsxRuntime.jsx(Icon, {
36062
- name: "view",
36063
- color: "purple"
36064
- }),
36065
- badge: /* @__PURE__ */ jsxRuntime.jsx(Badge, {
36066
- label: views.length.toString(),
36067
- color: "purple"
36068
- }),
36069
- endIcon: /* @__PURE__ */ jsxRuntime.jsx(Icon, {
36070
- name: "chevronRight",
36071
- color: "secondary"
36072
- }),
36073
- onClick: () => setSubpanelType("view")
36074
- }, "views"), /* @__PURE__ */ jsxRuntime.jsx(ListItem, {
36075
- label: "Dimensions",
36076
- startIcon: /* @__PURE__ */ jsxRuntime.jsx(Icon, {
36077
- name: "dimension",
36078
- color: "cyan"
36079
- }),
36080
- badge: /* @__PURE__ */ jsxRuntime.jsx(Badge, {
36081
- label: dimensions.length.toString(),
36082
- color: "cyan"
36083
- }),
36084
- endIcon: /* @__PURE__ */ jsxRuntime.jsx(Icon, {
36085
- name: "chevronRight",
36086
- color: "secondary"
36087
- }),
36088
- onClick: () => setSubpanelType("dimension")
36089
- }, "dimensions"), /* @__PURE__ */ jsxRuntime.jsx(ListItem, {
36090
- label: "Measures",
36091
- startIcon: /* @__PURE__ */ jsxRuntime.jsx(Icon, {
36092
- name: "measure",
36093
- color: "green"
36094
- }),
36095
- badge: /* @__PURE__ */ jsxRuntime.jsx(Badge, {
36096
- label: measures.length.toString(),
36097
- color: "green"
36098
- }),
36099
- endIcon: /* @__PURE__ */ jsxRuntime.jsx(Icon, {
36100
- name: "chevronRight",
36101
- color: "secondary"
36102
- }),
36103
- onClick: () => setSubpanelType("measure")
36104
- }, "measures")]
36105
- }) : /* @__PURE__ */ jsxRuntime.jsx(FieldGroupList, {
36106
- source,
36107
- title: FIELD_KIND_TO_TITLE[subpanelType],
36108
- items: fieldGroupList
36109
- })
36177
+ }), /* @__PURE__ */ jsxRuntime.jsx(Divider, {}), /* @__PURE__ */ jsxRuntime.jsx("div", {
36178
+ ...{
36179
+ className: "mly78zum5 mlydt5ytf mlyysyzu8 mly1iyjqo2"
36180
+ },
36181
+ children: isSearchActive ? /* @__PURE__ */ jsxRuntime.jsx(SearchResultList, {
36182
+ source,
36183
+ items: searchResultItems
36184
+ }) : /* @__PURE__ */ jsxRuntime.jsxs(AccordionList, {
36185
+ defaultExpandedItemId: "views",
36186
+ children: [/* @__PURE__ */ jsxRuntime.jsx(AccordionListItem, {
36187
+ id: "dimensions",
36188
+ label: "Dimensions",
36189
+ startIcon: /* @__PURE__ */ jsxRuntime.jsx(Icon, {
36190
+ name: "dimension",
36191
+ color: "cyan"
36192
+ }),
36193
+ badge: /* @__PURE__ */ jsxRuntime.jsx(Badge, {
36194
+ label: dimensions.length.toString(),
36195
+ color: "cyan"
36196
+ }),
36197
+ children: /* @__PURE__ */ jsxRuntime.jsx(FieldGroupList, {
36198
+ source,
36199
+ fieldItems,
36200
+ fieldGroupType: "dimension"
36201
+ })
36202
+ }, "dimensions"), /* @__PURE__ */ jsxRuntime.jsx(AccordionListItem, {
36203
+ id: "measures",
36204
+ label: "Measures",
36205
+ startIcon: /* @__PURE__ */ jsxRuntime.jsx(Icon, {
36206
+ name: "measure",
36207
+ color: "green"
36208
+ }),
36209
+ badge: /* @__PURE__ */ jsxRuntime.jsx(Badge, {
36210
+ label: measures.length.toString(),
36211
+ color: "green"
36212
+ }),
36213
+ children: /* @__PURE__ */ jsxRuntime.jsx(FieldGroupList, {
36214
+ source,
36215
+ fieldItems,
36216
+ fieldGroupType: "measure"
36217
+ })
36218
+ }, "measures"), /* @__PURE__ */ jsxRuntime.jsx(AccordionListItem, {
36219
+ id: "views",
36220
+ label: "Views",
36221
+ startIcon: /* @__PURE__ */ jsxRuntime.jsx(Icon, {
36222
+ name: "view",
36223
+ color: "purple"
36224
+ }),
36225
+ badge: /* @__PURE__ */ jsxRuntime.jsx(Badge, {
36226
+ label: views.length.toString(),
36227
+ color: "purple"
36228
+ }),
36229
+ children: /* @__PURE__ */ jsxRuntime.jsx(FieldGroupList, {
36230
+ source,
36231
+ fieldItems,
36232
+ fieldGroupType: "view"
36233
+ })
36234
+ }, "views")]
36110
36235
  })
36111
36236
  })]
36112
36237
  });
36113
36238
  }
36114
- const styles = {
36239
+ const styles$1 = {
36115
36240
  header: {
36116
36241
  display: "mly78zum5",
36117
36242
  flexDirection: "mlydt5ytf",
@@ -36124,19 +36249,102 @@ const styles = {
36124
36249
  paddingBlock: null,
36125
36250
  paddingTop: null,
36126
36251
  paddingBottom: null,
36127
- color: "mly1ue28sr",
36128
- fontWeight: "mly1xlr1w8",
36129
36252
  gap: "mly167g77z",
36130
36253
  rowGap: null,
36131
36254
  columnGap: null,
36132
36255
  $$css: true
36256
+ },
36257
+ title: {
36258
+ overflow: "mlyb3r6kr",
36259
+ overflowX: null,
36260
+ overflowY: null,
36261
+ textOverflow: "mlylyipyv",
36262
+ fontWeight: "mly1xlr1w8",
36263
+ color: "mly1ue28sr",
36264
+ $$css: true
36265
+ }
36266
+ };
36267
+ function CollapsedPagePanel({
36268
+ icon,
36269
+ title,
36270
+ tooltip
36271
+ }) {
36272
+ const {
36273
+ onExpand
36274
+ } = React__namespace.useContext(ResizableCollapsiblePanelContext);
36275
+ return /* @__PURE__ */ jsxRuntime.jsx("div", {
36276
+ ...{
36277
+ className: "mly78zum5 mlydt5ytf mly7a106z mlylqzeqv mly5yr21d mly1gzqxud mlyfuqftd"
36278
+ },
36279
+ children: /* @__PURE__ */ jsxRuntime.jsxs("div", {
36280
+ ...{
36281
+ className: "mly78zum5 mlydt5ytf mly6s0dn4 mlyl56j7k mly167g77z mlye8ttls"
36282
+ },
36283
+ children: [/* @__PURE__ */ jsxRuntime.jsx(Button, {
36284
+ icon,
36285
+ variant: "flat",
36286
+ size: "compact",
36287
+ tooltip,
36288
+ onClick: onExpand
36289
+ }), title && /* @__PURE__ */ jsxRuntime.jsx("div", {
36290
+ ..._stylex.props(fontStyles.body, styles.title),
36291
+ children: title
36292
+ })]
36293
+ })
36294
+ });
36295
+ }
36296
+ const styles = {
36297
+ title: {
36298
+ fontWeight: "mly1xlr1w8",
36299
+ cursor: "mlyt0e3qv",
36300
+ "writing-mode": "mly35i7",
36301
+ $$css: true
36133
36302
  }
36134
36303
  };
36135
- exports.ExplorerPanelsContext = ExplorerPanelsContext;
36304
+ function ResizableCollapsiblePanel({
36305
+ isInitiallyExpanded = true,
36306
+ initialWidth,
36307
+ minWidth,
36308
+ icon,
36309
+ title,
36310
+ children
36311
+ }) {
36312
+ const [isExpanded, setIsExpanded] = React__namespace.useState(isInitiallyExpanded);
36313
+ const [width, setWidth] = React__namespace.useState(initialWidth);
36314
+ const isCollapsed = !isExpanded;
36315
+ return /* @__PURE__ */ jsxRuntime.jsxs(ResizableCollapsiblePanelContext.Provider, {
36316
+ value: {
36317
+ onExpand: () => setIsExpanded(true),
36318
+ onCollapse: () => setIsExpanded(false)
36319
+ },
36320
+ children: [/* @__PURE__ */ jsxRuntime.jsxs("div", {
36321
+ ...{
36322
+ 0: {
36323
+ className: "mly1n2onr6 mly5yr21d mly3psx0u"
36324
+ },
36325
+ 1: {
36326
+ className: "mly1n2onr6 mly5yr21d mly3psx0u mly1s85apg"
36327
+ }
36328
+ }[!!isCollapsed << 0],
36329
+ style: {
36330
+ width: `${width}px`
36331
+ },
36332
+ children: [children, /* @__PURE__ */ jsxRuntime.jsx(ResizeBar, {
36333
+ width: initialWidth,
36334
+ minWidth,
36335
+ onWidthChange: setWidth
36336
+ })]
36337
+ }), isCollapsed && /* @__PURE__ */ jsxRuntime.jsx(CollapsedPagePanel, {
36338
+ icon,
36339
+ title
36340
+ })]
36341
+ });
36342
+ }
36136
36343
  exports.MalloyExplorerProvider = MalloyExplorerProvider;
36137
36344
  exports.QueryActionBar = QueryActionBar;
36138
36345
  exports.QueryEditor = QueryEditor;
36139
36346
  exports.QueryPanel = QueryPanel;
36347
+ exports.ResizableCollapsiblePanel = ResizableCollapsiblePanel;
36140
36348
  exports.ResizeBar = ResizeBar;
36141
36349
  exports.ResultPanel = ResultPanel;
36142
36350
  exports.SourcePanel = SourcePanel;