@malloydata/malloy-explorer 0.0.264-dev250418182827 → 0.0.266-dev250422000026

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.
package/dist/esm/index.js CHANGED
@@ -4991,6 +4991,8 @@ const SvgWarning = (props2) => /* @__PURE__ */ React.createElement("svg", { xmln
4991
4991
  const SvgCheckCircle = (props2) => /* @__PURE__ */ React.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", height: "24px", viewBox: "0 -960 960 960", width: "24px", fill: "currentColor", ...props2 }, /* @__PURE__ */ React.createElement("path", { d: "m424-296 282-282-56-56-226 226-114-114-56 56 170 170Zm56 216q-83 0-156-31.5T197-197q-54-54-85.5-127T80-480q0-83 31.5-156T197-763q54-54 127-85.5T480-880q83 0 156 31.5T763-763q54 54 85.5 127T880-480q0 83-31.5 156T763-197q-54 54-127 85.5T480-80Zm0-80q134 0 227-93t93-227q0-134-93-227t-227-93q-134 0-227 93t-93 227q0 134 93 227t227 93Zm0-320Z" }));
4992
4992
  const SvgInfo = (props2) => /* @__PURE__ */ React.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", height: "24px", viewBox: "0 -960 960 960", width: "24px", fill: "currentColor", ...props2 }, /* @__PURE__ */ React.createElement("path", { d: "M440-280h80v-240h-80v240Zm40-320q17 0 28.5-11.5T520-640q0-17-11.5-28.5T480-680q-17 0-28.5 11.5T440-640q0 17 11.5 28.5T480-600Zm0 520q-83 0-156-31.5T197-197q-54-54-85.5-127T80-480q0-83 31.5-156T197-763q54-54 127-85.5T480-880q83 0 156 31.5T763-763q54 54 85.5 127T880-480q0 83-31.5 156T763-197q-54 54-127 85.5T480-80Zm0-80q134 0 227-93t93-227q0-134-93-227t-227-93q-134 0-227 93t-93 227q0 134 93 227t227 93Zm0-320Z" }));
4993
4993
  const SvgError = (props2) => /* @__PURE__ */ React.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", height: "24px", viewBox: "0 -960 960 960", width: "24px", fill: "currentColor", ...props2 }, /* @__PURE__ */ React.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" }));
4994
+ const SvgRefresh = (props2) => /* @__PURE__ */ React.createElement("svg", { height: 20, viewBox: "0 0 20 20", width: 20, xmlns: "http://www.w3.org/2000/svg", ...props2 }, /* @__PURE__ */ React.createElement("g", { fill: "none", stroke: "currentColor" }, /* @__PURE__ */ React.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.createElement("path", { d: "m9.9 2 2.89 2.89-3 3.01" })));
4995
+ const SvgSidebarCollapse = (props2) => /* @__PURE__ */ React.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.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.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.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.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" }));
4994
4996
  const SvgVizBarChart = (props2) => /* @__PURE__ */ React.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.createElement("g", { id: "viz_bar_chart", stroke: "none", strokeWidth: 1, fill: "none", fillRule: "evenodd" }, /* @__PURE__ */ React.createElement("g", { id: "Group-3", transform: "translate(20.000000, 24.000000)", fill: "currentColor" }, /* @__PURE__ */ React.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.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.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.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.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) " })))));
4995
4997
  const SvgVizBoolean = (props2) => /* @__PURE__ */ React.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.createElement("g", { id: "viz_boolean", stroke: "none", strokeWidth: 1, fill: "none", fillRule: "evenodd" }, /* @__PURE__ */ React.createElement("g", { id: "noun_switch_3350414-2", transform: "translate(20.000000, 22.000000)", fill: "currentColor", fillRule: "nonzero" }, /* @__PURE__ */ React.createElement("g", { id: "noun_switch_3350414" }, /* @__PURE__ */ React.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.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.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.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" })))));
4996
4998
  const SvgVizColumnChart = (props2) => /* @__PURE__ */ React.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.createElement("g", { id: "viz_column_chart", stroke: "none", strokeWidth: 1, fill: "none", fillRule: "evenodd" }, /* @__PURE__ */ React.createElement("g", { id: "Group", transform: "translate(23.500000, 19.500000)", fill: "currentColor" }, /* @__PURE__ */ React.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.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.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.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) " }))));
@@ -5028,6 +5030,8 @@ const ICON_MAP = {
5028
5030
  check_circle: SvgCheckCircle,
5029
5031
  info: SvgInfo,
5030
5032
  error: SvgError,
5033
+ refresh: SvgRefresh,
5034
+ sidebarCollapse: SvgSidebarCollapse,
5031
5035
  // Operations
5032
5036
  aggregate: SvgInsertMeasure,
5033
5037
  dimension: SvgTypeIconString,
@@ -5094,10 +5098,10 @@ function Icon({
5094
5098
  return null;
5095
5099
  }
5096
5100
  return /* @__PURE__ */ jsx(IconComponent, {
5097
- ..._stylex.props(styles$F.main, colorVariants$3[color], SMALL_ICONS.includes(name) && styles$F.scaleUp, customStyle)
5101
+ ..._stylex.props(styles$G.main, colorVariants$3[color], SMALL_ICONS.includes(name) && styles$G.scaleUp, customStyle)
5098
5102
  });
5099
5103
  }
5100
- const styles$F = {
5104
+ const styles$G = {
5101
5105
  main: {
5102
5106
  display: "mly1rg5ohu",
5103
5107
  width: "mly1kky2od",
@@ -5170,17 +5174,17 @@ function Badge({
5170
5174
  customStyle
5171
5175
  }) {
5172
5176
  return /* @__PURE__ */ jsxs("div", {
5173
- ..._stylex.props(styles$E.main, colorVariants$2[color], customStyle),
5177
+ ..._stylex.props(styles$F.main, colorVariants$2[color], customStyle),
5174
5178
  children: [icon && /* @__PURE__ */ jsx(Icon, {
5175
5179
  color,
5176
5180
  name: icon
5177
5181
  }), /* @__PURE__ */ jsx("div", {
5178
- ..._stylex.props(fontStyles.badge, styles$E.label),
5182
+ ..._stylex.props(fontStyles.badge, styles$F.label),
5179
5183
  children: label
5180
5184
  })]
5181
5185
  });
5182
5186
  }
5183
- const styles$E = {
5187
+ const styles$F = {
5184
5188
  main: {
5185
5189
  display: "mly3nfvp2",
5186
5190
  height: "mly1qx5ct2",
@@ -5262,10 +5266,10 @@ function Divider({
5262
5266
  customStyle
5263
5267
  }) {
5264
5268
  return /* @__PURE__ */ jsx("div", {
5265
- ..._stylex.props(styles$D.main, orientationVariants[orientation], customStyle)
5269
+ ..._stylex.props(styles$E.main, orientationVariants[orientation], customStyle)
5266
5270
  });
5267
5271
  }
5268
- const styles$D = {
5272
+ const styles$E = {
5269
5273
  main: {
5270
5274
  background: "mly1xnbgy5",
5271
5275
  backgroundAttachment: null,
@@ -5318,7 +5322,7 @@ function ListItem({
5318
5322
  children: [startIcon && /* @__PURE__ */ jsx(Fragment, {
5319
5323
  children: startIcon
5320
5324
  }), /* @__PURE__ */ jsx("span", {
5321
- ..._stylex.props(fontStyles.body, styles$C.label),
5325
+ ..._stylex.props(fontStyles.body, styles$D.label),
5322
5326
  children: label
5323
5327
  }), badge && /* @__PURE__ */ jsx(Fragment, {
5324
5328
  children: badge
@@ -5327,7 +5331,7 @@ function ListItem({
5327
5331
  })]
5328
5332
  });
5329
5333
  }
5330
- const styles$C = {
5334
+ const styles$D = {
5331
5335
  label: {
5332
5336
  flexGrow: "mly1iyjqo2",
5333
5337
  $$css: true
@@ -6102,7 +6106,7 @@ function Button({
6102
6106
  ...props2
6103
6107
  }) {
6104
6108
  const button = /* @__PURE__ */ jsxs("button", {
6105
- ..._stylex.props(styles$B.main, colorVariants$1[variant], sizeVariants$1[size2], customStyle),
6109
+ ..._stylex.props(styles$C.main, colorVariants$1[variant], sizeVariants$1[size2], customStyle),
6106
6110
  ...onClick && {
6107
6111
  onClick: (e) => {
6108
6112
  e.preventDefault();
@@ -6118,9 +6122,9 @@ function Button({
6118
6122
  },
6119
6123
  children: [icon && /* @__PURE__ */ jsx(Icon, {
6120
6124
  name: icon,
6121
- customStyle: styles$B.icon
6125
+ customStyle: styles$C.icon
6122
6126
  }), label && /* @__PURE__ */ jsx("div", {
6123
- ..._stylex.props(variant === "primary" ? fontStyles.emphasized : fontStyles.body, styles$B.label),
6127
+ ..._stylex.props(variant === "primary" ? fontStyles.emphasized : fontStyles.body, styles$C.label),
6124
6128
  children: label
6125
6129
  })]
6126
6130
  }), isDisabled && /* @__PURE__ */ jsx("div", {
@@ -6147,7 +6151,7 @@ function Button({
6147
6151
  return button;
6148
6152
  }
6149
6153
  }
6150
- const styles$B = {
6154
+ const styles$C = {
6151
6155
  main: {
6152
6156
  display: "mly3nfvp2",
6153
6157
  flexDirection: "mlydt5ytf",
@@ -6269,7 +6273,8 @@ const sizeVariants$1 = {
6269
6273
  };
6270
6274
  const tokenStyles = {
6271
6275
  main: {
6272
- display: "mly78zum5",
6276
+ display: "mlywz0xwf",
6277
+ gridAutoFlow: "mly1mt1orb",
6273
6278
  alignItems: "mly6s0dn4",
6274
6279
  justifyContent: "mlyl56j7k",
6275
6280
  gap: "mly167g77z",
@@ -6326,6 +6331,7 @@ const tokenStyles = {
6326
6331
  overflow: "mlyb3r6kr",
6327
6332
  overflowX: null,
6328
6333
  overflowY: null,
6334
+ whiteSpace: "mlyuxw1ft",
6329
6335
  $$css: true
6330
6336
  }
6331
6337
  };
@@ -6394,7 +6400,7 @@ function Token({
6394
6400
  }) {
6395
6401
  const isInteractive = onClick !== void 0 || asButtonTrigger;
6396
6402
  const token2 = /* @__PURE__ */ jsxs("div", {
6397
- ..._stylex.props(tokenStyles.main, tokenColorVariants[color], tokenSizeVariants[size2], !isInteractive && styles$A.nonInteractive, customStyle),
6403
+ ..._stylex.props(tokenStyles.main, tokenColorVariants[color], tokenSizeVariants[size2], !isInteractive && styles$B.nonInteractive, customStyle),
6398
6404
  children: [icon && /* @__PURE__ */ jsx(Icon, {
6399
6405
  name: icon,
6400
6406
  customStyle: tokenStyles.icon
@@ -6429,7 +6435,7 @@ function Token({
6429
6435
  })]
6430
6436
  }) : token2;
6431
6437
  }
6432
- const styles$A = {
6438
+ const styles$B = {
6433
6439
  nonInteractive: {
6434
6440
  cursor: "mlyt0e3qv",
6435
6441
  background: "mly1np9qvj",
@@ -6453,7 +6459,7 @@ function TokenGroup({
6453
6459
  }) {
6454
6460
  const count2 = React.Children.count(children);
6455
6461
  return /* @__PURE__ */ jsx("div", {
6456
- ..._stylex.props(styles$z.main, customStyle),
6462
+ ..._stylex.props(styles$A.main, customStyle),
6457
6463
  children: React.Children.map(children, (child, index2) => /* @__PURE__ */ React.cloneElement(child, {
6458
6464
  customStyle: {
6459
6465
  ...child.props.customStyle,
@@ -6464,16 +6470,16 @@ function TokenGroup({
6464
6470
  });
6465
6471
  }
6466
6472
  const getChildStyle = (index2, count2) => {
6467
- if (count2 === 1) return styles$z.onlyChild;
6468
- if (index2 === 0) return styles$z.firstChild;
6469
- if (index2 === count2 - 1) return styles$z.lastChild;
6470
- return styles$z.innerChild;
6473
+ if (count2 === 1) return styles$A.onlyChild;
6474
+ if (index2 === 0) return styles$A.firstChild;
6475
+ if (index2 === count2 - 1) return styles$A.lastChild;
6476
+ return styles$A.innerChild;
6471
6477
  };
6472
6478
  const getTokenColor = (child, groupColor) => {
6473
6479
  const childColor = child.props.color;
6474
6480
  return childColor === void 0 ? groupColor : childColor;
6475
6481
  };
6476
- const styles$z = {
6482
+ const styles$A = {
6477
6483
  main: {
6478
6484
  display: "mlyrvj5dj",
6479
6485
  gridAutoFlow: "mly1mt1orb",
@@ -6545,7 +6551,7 @@ function ErrorIcon({
6545
6551
  },
6546
6552
  children: /* @__PURE__ */ jsx(Icon, {
6547
6553
  name: "warning",
6548
- customStyle: styles$y.errorIcon
6554
+ customStyle: styles$z.errorIcon
6549
6555
  })
6550
6556
  })
6551
6557
  }), /* @__PURE__ */ jsx(TooltipPortal, {
@@ -6558,7 +6564,7 @@ function ErrorIcon({
6558
6564
  })]
6559
6565
  });
6560
6566
  }
6561
- const styles$y = {
6567
+ const styles$z = {
6562
6568
  errorIcon: {
6563
6569
  color: "mly1e2nbdu",
6564
6570
  $$css: true
@@ -6603,22 +6609,22 @@ function EditableToken({
6603
6609
  className: "mly78zum5 mly6s0dn4"
6604
6610
  },
6605
6611
  children: [/* @__PURE__ */ jsxs("div", {
6606
- ..._stylex.props(tokenStyles.main, tokenColorVariants[color], tokenSizeVariants[size2], isFocused && styles$x.focused, !!errorMessage && styles$x.hasError, customStyle),
6612
+ ..._stylex.props(tokenStyles.main, tokenColorVariants[color], tokenSizeVariants[size2], isFocused && styles$y.focused, !!errorMessage && styles$y.hasError, customStyle),
6607
6613
  children: [icon && /* @__PURE__ */ jsx(Icon, {
6608
6614
  name: icon,
6609
- customStyle: styles$x.icon
6615
+ customStyle: styles$y.icon
6610
6616
  }), /* @__PURE__ */ jsxs("span", {
6611
6617
  ...{
6612
6618
  className: "mlywz0xwf"
6613
6619
  },
6614
6620
  children: [/* @__PURE__ */ jsx("span", {
6615
- ..._stylex.props(fontStyles.body, styles$x.placeholder),
6621
+ ..._stylex.props(fontStyles.body, styles$y.placeholder),
6616
6622
  style: {
6617
6623
  whiteSpaceCollapse: "preserve"
6618
6624
  },
6619
6625
  children: value
6620
6626
  }), /* @__PURE__ */ jsx("input", {
6621
- ..._stylex.props(styles$x.input, fontStyles.body),
6627
+ ..._stylex.props(styles$y.input, fontStyles.body),
6622
6628
  ref: inputRef,
6623
6629
  pattern: type === "number" ? "^-?[0-9.]*$" : void 0,
6624
6630
  value,
@@ -6643,7 +6649,7 @@ function EditableToken({
6643
6649
  })]
6644
6650
  });
6645
6651
  }
6646
- const styles$x = {
6652
+ const styles$y = {
6647
6653
  focused: {
6648
6654
  background: "mlyotlr4g",
6649
6655
  backgroundAttachment: null,
@@ -7987,12 +7993,12 @@ function TextInput({
7987
7993
  }
7988
7994
  };
7989
7995
  return /* @__PURE__ */ jsxs("div", {
7990
- ..._stylex.props(styles$w.main, isFocused && styles$w.focused, sizeVariants[size2], customStyle),
7996
+ ..._stylex.props(styles$x.main, isFocused && styles$x.focused, sizeVariants[size2], customStyle),
7991
7997
  children: [icon && /* @__PURE__ */ jsx(Icon, {
7992
7998
  name: icon,
7993
7999
  color: "secondary"
7994
8000
  }), /* @__PURE__ */ jsx("input", {
7995
- ..._stylex.props(fontStyles.body, styles$w.input),
8001
+ ..._stylex.props(fontStyles.body, styles$x.input),
7996
8002
  value,
7997
8003
  placeholder,
7998
8004
  onChange: handleChange,
@@ -8000,7 +8006,7 @@ function TextInput({
8000
8006
  onBlur: handleBlur,
8001
8007
  onKeyDown
8002
8008
  }), hasClear && /* @__PURE__ */ jsx("button", {
8003
- ..._stylex.props(fontStyles.supporting, styles$w.actionButton, value === "" && styles$w.hidden),
8009
+ ..._stylex.props(fontStyles.supporting, styles$x.actionButton, value === "" && styles$x.hidden),
8004
8010
  ref: buttonRef,
8005
8011
  onClick: () => onChange(""),
8006
8012
  tabIndex: 0,
@@ -8008,7 +8014,7 @@ function TextInput({
8008
8014
  })]
8009
8015
  });
8010
8016
  }
8011
- const styles$w = {
8017
+ const styles$x = {
8012
8018
  main: {
8013
8019
  display: "mly78zum5",
8014
8020
  alignItems: "mly6s0dn4",
@@ -8217,7 +8223,7 @@ function SelectorToken({
8217
8223
  onValueChange: handleValueChange,
8218
8224
  required: true,
8219
8225
  children: [/* @__PURE__ */ jsxs(Trigger$3, {
8220
- ..._stylex.props(tokenStyles.main, styles$v.selectTrigger, tokenColorVariants[color], tokenSizeVariants[size2], fontStyles.body, tokenStyles.label, customStyle),
8226
+ ..._stylex.props(tokenStyles.main, styles$w.selectTrigger, tokenColorVariants[color], tokenSizeVariants[size2], fontStyles.body, tokenStyles.label, customStyle),
8221
8227
  children: [icon && /* @__PURE__ */ jsx(Icon, {
8222
8228
  name: icon,
8223
8229
  customStyle: tokenStyles.icon
@@ -8246,7 +8252,7 @@ function SelectorToken({
8246
8252
  size: "compact",
8247
8253
  icon: "search",
8248
8254
  hasClear: true,
8249
- customStyle: styles$v.searchInput,
8255
+ customStyle: styles$w.searchInput,
8250
8256
  onKeyDown: (event) => {
8251
8257
  const excludedKeys = ["ArrowUp", "ArrowDown"];
8252
8258
  if (!excludedKeys.includes(event.key)) {
@@ -8279,21 +8285,21 @@ function SelectItem({
8279
8285
  ...props2
8280
8286
  }) {
8281
8287
  return /* @__PURE__ */ jsxs(Item$1, {
8282
- ..._stylex.props(fontStyles.body, styles$v.selectItem),
8288
+ ..._stylex.props(fontStyles.body, styles$w.selectItem),
8283
8289
  value,
8284
8290
  ...props2,
8285
8291
  children: [value === selectedValue ? /* @__PURE__ */ jsx(Icon, {
8286
8292
  name: "radioChecked",
8287
- customStyle: styles$v.radioChecked
8293
+ customStyle: styles$w.radioChecked
8288
8294
  }) : /* @__PURE__ */ jsx(Icon, {
8289
8295
  name: "radioUnchecked",
8290
- customStyle: styles$v.radioUnchecked
8296
+ customStyle: styles$w.radioUnchecked
8291
8297
  }), /* @__PURE__ */ jsx(ItemText, {
8292
8298
  children
8293
8299
  })]
8294
8300
  });
8295
8301
  }
8296
- const styles$v = {
8302
+ const styles$w = {
8297
8303
  selectTrigger: {
8298
8304
  whiteSpace: "mlyuxw1ft",
8299
8305
  overflow: "mlyb3r6kr",
@@ -8383,7 +8389,7 @@ function Card({
8383
8389
  customStyle
8384
8390
  }) {
8385
8391
  return /* @__PURE__ */ jsxs("div", {
8386
- ..._stylex.props(styles$u.container, customStyle),
8392
+ ..._stylex.props(styles$v.container, customStyle),
8387
8393
  children: [/* @__PURE__ */ jsx("div", {
8388
8394
  ...{
8389
8395
  className: "mly1717udv"
@@ -8397,7 +8403,7 @@ function Card({
8397
8403
  })]
8398
8404
  });
8399
8405
  }
8400
- const styles$u = {
8406
+ const styles$v = {
8401
8407
  container: {
8402
8408
  display: "mly78zum5",
8403
8409
  flexDirection: "mlydt5ytf",
@@ -8488,10 +8494,10 @@ function CollapsibleListItem({
8488
8494
  className: "mly78zum5 mlydt5ytf mly1iyjqo2 mlyb3r6kr"
8489
8495
  },
8490
8496
  children: [/* @__PURE__ */ jsx("span", {
8491
- ..._stylex.props(fontStyles.body, styles$t.label),
8497
+ ..._stylex.props(fontStyles.body, styles$u.label),
8492
8498
  children: label
8493
8499
  }), sublabel && /* @__PURE__ */ jsx("span", {
8494
- ..._stylex.props(fontStyles.supporting, styles$t.sublabel),
8500
+ ..._stylex.props(fontStyles.supporting, styles$u.sublabel),
8495
8501
  children: sublabel
8496
8502
  })]
8497
8503
  })]
@@ -8503,7 +8509,7 @@ function CollapsibleListItem({
8503
8509
  })]
8504
8510
  });
8505
8511
  }
8506
- const styles$t = {
8512
+ const styles$u = {
8507
8513
  label: {
8508
8514
  flexGrow: "mly1iyjqo2",
8509
8515
  fontWeight: "mly1xlr1w8",
@@ -19313,7 +19319,7 @@ function Spinner({
19313
19319
  } = SIZES[size2];
19314
19320
  const frameSize = diameter + border * 2;
19315
19321
  return /* @__PURE__ */ jsx("div", {
19316
- ..._stylex.props(styles$s.root, customStyle),
19322
+ ..._stylex.props(styles$t.root, customStyle),
19317
19323
  children: /* @__PURE__ */ jsx("span", {
19318
19324
  "aria-valuetext": "Loading",
19319
19325
  ...{
@@ -19333,7 +19339,7 @@ function Spinner({
19333
19339
  })
19334
19340
  });
19335
19341
  }
19336
- const styles$s = {
19342
+ const styles$t = {
19337
19343
  root: {
19338
19344
  alignItems: "mly6s0dn4",
19339
19345
  display: "mly3nfvp2",
@@ -23732,7 +23738,7 @@ const Popover = ({
23732
23738
  })
23733
23739
  });
23734
23740
  };
23735
- const styles$r = {
23741
+ const styles$s = {
23736
23742
  wrapper: {
23737
23743
  position: "mly1n2onr6",
23738
23744
  $$css: true
@@ -23783,7 +23789,7 @@ const SelectDropdown = ({
23783
23789
  setOpen(false);
23784
23790
  };
23785
23791
  return /* @__PURE__ */ jsxs("div", {
23786
- ..._stylex.props(styles$r.wrapper, customStyle),
23792
+ ..._stylex.props(styles$s.wrapper, customStyle),
23787
23793
  children: [/* @__PURE__ */ jsxs("button", {
23788
23794
  type: "button",
23789
23795
  autoFocus,
@@ -23850,7 +23856,7 @@ function SelectList({
23850
23856
  }) {
23851
23857
  const [hoveredIndex, setHoveredIndex] = useState(null);
23852
23858
  return /* @__PURE__ */ jsx("div", {
23853
- ..._stylex.props(styles$r.selectListDiv, customStyle),
23859
+ ..._stylex.props(styles$s.selectListDiv, customStyle),
23854
23860
  children: options.reduce((result, option2, index2) => {
23855
23861
  const isSelected = value !== void 0 && valueEqual(value, option2.value);
23856
23862
  if (option2.divider) {
@@ -23882,8 +23888,8 @@ function SelectList({
23882
23888
  }), /* @__PURE__ */ jsx(Icon, {
23883
23889
  name: "checkmark",
23884
23890
  customStyle: {
23885
- ...styles$r.checkIcon,
23886
- ...isSelected ? styles$r.checkIconSelected : void 0
23891
+ ...styles$s.checkIcon,
23892
+ ...isSelected ? styles$s.checkIconSelected : void 0
23887
23893
  }
23888
23894
  }), /* @__PURE__ */ jsx("span", {
23889
23895
  ...{
@@ -23993,7 +23999,7 @@ function DatePicker({
23993
23999
  });
23994
24000
  };
23995
24001
  return /* @__PURE__ */ jsxs("div", {
23996
- ..._stylex.props(styles$q.outer, customStyle),
24002
+ ..._stylex.props(styles$r.outer, customStyle),
23997
24003
  children: [/* @__PURE__ */ jsxs("div", {
23998
24004
  ...{
23999
24005
  className: "mly78zum5 mly1q0g3np mly1qughib mly1nejdyq mlyu06os2"
@@ -24308,7 +24314,7 @@ function DatePicker({
24308
24314
  })]
24309
24315
  });
24310
24316
  }
24311
- const styles$q = {
24317
+ const styles$r = {
24312
24318
  outer: {
24313
24319
  userSelect: "mly87ps6o",
24314
24320
  fontSize: "mlymhiqyu",
@@ -24394,7 +24400,7 @@ function Banner({
24394
24400
  className: "mly1q4ynmn mlyh8yej3 mly5yr21d mly78zum5 mlydt5ytf mly1kmqopl mly16zck5j"
24395
24401
  },
24396
24402
  children: [/* @__PURE__ */ jsxs("div", {
24397
- ..._stylex.props(styles$p.header, variantColors[variant], children ? styles$p.headerWithContent : null),
24403
+ ..._stylex.props(styles$q.header, variantColors[variant], children ? styles$q.headerWithContent : null),
24398
24404
  children: [/* @__PURE__ */ jsx("div", {
24399
24405
  ...{
24400
24406
  className: "mly1qx5ct2 mly78zum5 mlyl56j7k mly6s0dn4"
@@ -24407,22 +24413,22 @@ function Banner({
24407
24413
  className: "mly78zum5 mlydt5ytf mlyb3r6kr"
24408
24414
  },
24409
24415
  children: [/* @__PURE__ */ jsx("div", {
24410
- ..._stylex.props(styles$p.title, fontStyles.emphasized),
24416
+ ..._stylex.props(styles$q.title, fontStyles.emphasized),
24411
24417
  children: title
24412
24418
  }), /* @__PURE__ */ jsx("div", {
24413
- ..._stylex.props(styles$p.description, fontStyles.supporting),
24419
+ ..._stylex.props(styles$q.description, fontStyles.supporting),
24414
24420
  children: description
24415
24421
  })]
24416
24422
  })]
24417
24423
  }), children && /* @__PURE__ */ jsx("div", {
24418
- ..._stylex.props(styles$p.content, fontStyles.body),
24424
+ ..._stylex.props(styles$q.content, fontStyles.body),
24419
24425
  children: /* @__PURE__ */ jsx(ScrollableArea, {
24420
24426
  children
24421
24427
  })
24422
24428
  })]
24423
24429
  });
24424
24430
  }
24425
- const styles$p = {
24431
+ const styles$q = {
24426
24432
  header: {
24427
24433
  borderRadius: "mly1q4ynmn",
24428
24434
  borderStartStartRadius: null,
@@ -25857,7 +25863,7 @@ function DropdownMenu({
25857
25863
  children: trigger
25858
25864
  }), /* @__PURE__ */ jsx(Portal2, {
25859
25865
  children: /* @__PURE__ */ jsx(Content2, {
25860
- ..._stylex.props(fontStyles.body, styles$o.content),
25866
+ ..._stylex.props(fontStyles.body, styles$p.content),
25861
25867
  side: "bottom",
25862
25868
  align: "start",
25863
25869
  sideOffset: 4,
@@ -25884,16 +25890,16 @@ function DropdownMenuItem({
25884
25890
  disabled,
25885
25891
  children: [icon && /* @__PURE__ */ jsx(Icon, {
25886
25892
  name: icon,
25887
- customStyle: styles$o.icon
25893
+ customStyle: styles$p.icon
25888
25894
  }), /* @__PURE__ */ jsxs("div", {
25889
25895
  ...{
25890
25896
  className: "mly78zum5 mlydt5ytf mly1iyjqo2"
25891
25897
  },
25892
25898
  children: [/* @__PURE__ */ jsx("span", {
25893
- ..._stylex.props(fontStyles.body, styles$o.label),
25899
+ ..._stylex.props(fontStyles.body, styles$p.label),
25894
25900
  children: label
25895
25901
  }), sublabel && /* @__PURE__ */ jsx("span", {
25896
- ..._stylex.props(fontStyles.supporting, styles$o.sublabel),
25902
+ ..._stylex.props(fontStyles.supporting, styles$p.sublabel),
25897
25903
  children: sublabel
25898
25904
  })]
25899
25905
  })]
@@ -25914,21 +25920,21 @@ function DropdownSubMenuItem({
25914
25920
  disabled,
25915
25921
  children: [icon && /* @__PURE__ */ jsx(Icon, {
25916
25922
  name: icon,
25917
- customStyle: styles$o.icon
25923
+ customStyle: styles$p.icon
25918
25924
  }), /* @__PURE__ */ jsxs("div", {
25919
25925
  ...{
25920
25926
  className: "mly78zum5 mlydt5ytf mly1iyjqo2"
25921
25927
  },
25922
25928
  children: [/* @__PURE__ */ jsx("span", {
25923
- ..._stylex.props(fontStyles.body, styles$o.label),
25929
+ ..._stylex.props(fontStyles.body, styles$p.label),
25924
25930
  children: label
25925
25931
  }), sublabel && /* @__PURE__ */ jsx("span", {
25926
- ..._stylex.props(fontStyles.supporting, styles$o.sublabel),
25932
+ ..._stylex.props(fontStyles.supporting, styles$p.sublabel),
25927
25933
  children: sublabel
25928
25934
  })]
25929
25935
  }), /* @__PURE__ */ jsx(Icon, {
25930
25936
  name: "chevronRight",
25931
- customStyle: styles$o.icon
25937
+ customStyle: styles$p.icon
25932
25938
  })]
25933
25939
  }), /* @__PURE__ */ jsx(SubContent2, {
25934
25940
  ...{
@@ -25943,11 +25949,11 @@ function DropdownMenuLabel({
25943
25949
  label
25944
25950
  }) {
25945
25951
  return /* @__PURE__ */ jsx(Label2, {
25946
- ..._stylex.props(fontStyles.supporting, styles$o.menuLabel),
25952
+ ..._stylex.props(fontStyles.supporting, styles$p.menuLabel),
25947
25953
  children: label
25948
25954
  });
25949
25955
  }
25950
- const styles$o = {
25956
+ const styles$p = {
25951
25957
  content: {
25952
25958
  display: "mly78zum5",
25953
25959
  flexDirection: "mlydt5ytf",
@@ -26056,6 +26062,76 @@ const filterStyles = {
26056
26062
  rowGap: null,
26057
26063
  columnGap: null,
26058
26064
  $$css: true
26065
+ },
26066
+ editor: {
26067
+ width: "mlyxsgkw5",
26068
+ display: "mly78zum5",
26069
+ flexDirection: "mlydt5ytf",
26070
+ gap: "mly167g77z",
26071
+ rowGap: null,
26072
+ columnGap: null,
26073
+ $$css: true
26074
+ },
26075
+ editorRow: {
26076
+ display: "mly78zum5",
26077
+ gap: "mly167g77z",
26078
+ rowGap: null,
26079
+ columnGap: null,
26080
+ $$css: true
26081
+ },
26082
+ editorCell: {
26083
+ flexGrow: "mly1iyjqo2",
26084
+ $$css: true
26085
+ },
26086
+ input: {
26087
+ border: "mly2yh2zd",
26088
+ borderWidth: null,
26089
+ borderInlineWidth: null,
26090
+ borderInlineStartWidth: null,
26091
+ borderLeftWidth: null,
26092
+ borderInlineEndWidth: null,
26093
+ borderRightWidth: null,
26094
+ borderBlockWidth: null,
26095
+ borderTopWidth: null,
26096
+ borderBottomWidth: null,
26097
+ borderStyle: null,
26098
+ borderInlineStyle: null,
26099
+ borderInlineStartStyle: null,
26100
+ borderLeftStyle: null,
26101
+ borderInlineEndStyle: null,
26102
+ borderRightStyle: null,
26103
+ borderBlockStyle: null,
26104
+ borderTopStyle: null,
26105
+ borderBottomStyle: null,
26106
+ borderColor: null,
26107
+ borderInlineColor: null,
26108
+ borderInlineStartColor: null,
26109
+ borderLeftColor: null,
26110
+ borderInlineEndColor: null,
26111
+ borderRightColor: null,
26112
+ borderBlockColor: null,
26113
+ borderTopColor: null,
26114
+ borderBottomColor: null,
26115
+ color: "mlyizdh9v",
26116
+ padding: "mly9cpjcd",
26117
+ paddingInline: null,
26118
+ paddingStart: null,
26119
+ paddingLeft: null,
26120
+ paddingEnd: null,
26121
+ paddingRight: null,
26122
+ paddingBlock: null,
26123
+ paddingTop: null,
26124
+ paddingBottom: null,
26125
+ borderRadius: "mly1sxf85j",
26126
+ borderStartStartRadius: null,
26127
+ borderStartEndRadius: null,
26128
+ borderEndStartRadius: null,
26129
+ borderEndEndRadius: null,
26130
+ borderTopLeftRadius: null,
26131
+ borderTopRightRadius: null,
26132
+ borderBottomLeftRadius: null,
26133
+ borderBottomRightRadius: null,
26134
+ $$css: true
26059
26135
  }
26060
26136
  };
26061
26137
  function typeFromFilter$3(filter) {
@@ -26078,7 +26154,8 @@ function BooleanFilterCore({
26078
26154
  };
26079
26155
  setFilter(filter2);
26080
26156
  };
26081
- return /* @__PURE__ */ jsx(Fragment, {
26157
+ return /* @__PURE__ */ jsx("div", {
26158
+ ..._stylex.props(filterStyles.editor),
26082
26159
  children: /* @__PURE__ */ jsx(SelectDropdown, {
26083
26160
  value: type,
26084
26161
  onChange: onChangeType,
@@ -26207,7 +26284,7 @@ const PillInput = ({
26207
26284
  }
26208
26285
  };
26209
26286
  const commitValue = () => {
26210
- if (value.length > 0) {
26287
+ if (value.length > 0 && !values.includes(value)) {
26211
26288
  setValues([...values, value]);
26212
26289
  setValue("");
26213
26290
  }
@@ -26217,7 +26294,7 @@ const PillInput = ({
26217
26294
  commitValue();
26218
26295
  });
26219
26296
  return /* @__PURE__ */ jsxs("div", {
26220
- ..._stylex.props(styles$n.outer, customStyle),
26297
+ ..._stylex.props(styles$o.outer, customStyle),
26221
26298
  onKeyUp,
26222
26299
  onClick: () => {
26223
26300
  var _a2;
@@ -26282,7 +26359,7 @@ const Pill = ({
26282
26359
  onClick,
26283
26360
  tabIndex: 0,
26284
26361
  ref: forwardRef,
26285
- ..._stylex.props(styles$n.pill, colorVariants[color]),
26362
+ ..._stylex.props(styles$o.pill, colorVariants[color]),
26286
26363
  children: [children, /* @__PURE__ */ jsx("div", {
26287
26364
  title: "Remove",
26288
26365
  ...{
@@ -26297,7 +26374,7 @@ const Pill = ({
26297
26374
  })]
26298
26375
  });
26299
26376
  };
26300
- const styles$n = {
26377
+ const styles$o = {
26301
26378
  outer: {
26302
26379
  fontFamily: "mly6icuqf",
26303
26380
  fontSize: "mlyif65rj",
@@ -26563,7 +26640,7 @@ function ValueList({
26563
26640
  children: (stringSearchResults == null ? void 0 : stringSearchResults.length) ? stringSearchResults.map((value) => /* @__PURE__ */ jsxs("div", {
26564
26641
  role: "menuitem",
26565
26642
  tabIndex: -1,
26566
- ..._stylex.props(addMenuStyles.item, styles$m.valueItem),
26643
+ ..._stylex.props(addMenuStyles.item, styles$n.valueItem),
26567
26644
  onClick: () => onClick(value),
26568
26645
  children: [/* @__PURE__ */ jsx(Value, {
26569
26646
  value
@@ -26587,10 +26664,10 @@ function Value({
26587
26664
  label: value.fieldValue ?? "∅",
26588
26665
  icon: "filter",
26589
26666
  color: "purple",
26590
- customStyle: styles$m.token
26667
+ customStyle: styles$n.token
26591
26668
  });
26592
26669
  }
26593
- const styles$m = {
26670
+ const styles$n = {
26594
26671
  valueItem: {
26595
26672
  height: "mly1qx5ct2",
26596
26673
  paddingTop: "mly1y1aw1k",
@@ -26689,7 +26766,8 @@ const StringFilterCore = ({
26689
26766
  setCurrentFilter(newFilter);
26690
26767
  setFilter(newFilter);
26691
26768
  };
26692
- return /* @__PURE__ */ jsxs(Fragment, {
26769
+ return /* @__PURE__ */ jsxs("div", {
26770
+ ..._stylex.props(filterStyles.editor),
26693
26771
  children: [/* @__PURE__ */ jsx(SelectDropdown, {
26694
26772
  value: type,
26695
26773
  onChange: changeType,
@@ -26760,7 +26838,7 @@ const StringFilterCore = ({
26760
26838
  setSearchValue("");
26761
26839
  }
26762
26840
  },
26763
- customStyle: styles$l.valueList
26841
+ customStyle: styles$m.valueList
26764
26842
  })]
26765
26843
  }) : currentFilter.operator === "~" ? /* @__PURE__ */ jsx(StringEditor, {
26766
26844
  values: currentFilter.escaped_values,
@@ -26827,7 +26905,7 @@ function stringFilterChangeType(filter, type) {
26827
26905
  };
26828
26906
  }
26829
26907
  }
26830
- const styles$l = {
26908
+ const styles$m = {
26831
26909
  valueList: {
26832
26910
  maxHeight: "mly1hkcv85",
26833
26911
  overflow: "mlyysyzu8",
@@ -26836,6 +26914,9 @@ const styles$l = {
26836
26914
  $$css: true
26837
26915
  }
26838
26916
  };
26917
+ const isRangeOperator = (operator) => {
26918
+ return operator === "range";
26919
+ };
26839
26920
  const NumberFilterFragments = {
26840
26921
  is_equal_to: {
26841
26922
  operator: "="
@@ -26856,7 +26937,11 @@ const NumberFilterFragments = {
26856
26937
  is_less_than_or_equal_to: {
26857
26938
  operator: "<="
26858
26939
  },
26859
- // is_between: {operator: 'to'},
26940
+ is_between: {
26941
+ operator: "range",
26942
+ startOperator: ">=",
26943
+ endOperator: "<="
26944
+ },
26860
26945
  is_null: {
26861
26946
  operator: "null"
26862
26947
  },
@@ -26885,7 +26970,7 @@ const NumberFilterCore = ({
26885
26970
  operator: "=",
26886
26971
  values: []
26887
26972
  });
26888
- const [innerValues, setInnerValues] = useState(["0"]);
26973
+ const [innerValues, setInnerValues] = useState(isRangeOperator(filter.operator) ? ["0", "0"] : ["0"]);
26889
26974
  const [errorMessage, setErrorMessage] = useState("");
26890
26975
  const changeType = (type2) => {
26891
26976
  const maybeNumberCondition = filter;
@@ -26899,19 +26984,23 @@ const NumberFilterCore = ({
26899
26984
  const type = typeFromFilter$1(filter);
26900
26985
  useEffect(() => {
26901
26986
  setErrorMessage("");
26902
- const maybeNumberCondition = filter;
26903
- if (maybeNumberCondition.values) {
26904
- let values = maybeNumberCondition.values;
26905
- if (!values || values.length === 0) {
26906
- values = ["0"];
26907
- }
26908
- setInnerValues(values);
26987
+ if (isRangeOperator(filter.operator)) {
26988
+ const numberRange = filter;
26989
+ setInnerValues([numberRange.startValue, numberRange.endValue]);
26909
26990
  } else {
26910
- setInnerValues(["0"]);
26991
+ const maybeNumberCondition = filter;
26992
+ if (maybeNumberCondition.values) {
26993
+ let values = maybeNumberCondition.values;
26994
+ if (!values || values.length === 0) {
26995
+ values = ["0"];
26996
+ }
26997
+ setInnerValues(values);
26998
+ } else {
26999
+ setInnerValues(["0"]);
27000
+ }
26911
27001
  }
26912
27002
  }, [filter]);
26913
27003
  const validateAndUpdateValues = (values) => {
26914
- const numberCondition = filter;
26915
27004
  setInnerValues(values);
26916
27005
  const hasInvalidValues = values.some((v2) => {
26917
27006
  return isNaN(parseFloat(v2));
@@ -26922,10 +27011,22 @@ const NumberFilterCore = ({
26922
27011
  setErrorMessage("Requires at least one numeric value.");
26923
27012
  } else {
26924
27013
  setErrorMessage("");
26925
- setFilter({
26926
- ...numberCondition,
26927
- values
26928
- });
27014
+ if (filter.operator === "range") {
27015
+ const numberCondition = filter;
27016
+ setFilter({
27017
+ ...numberCondition,
27018
+ startOperator: ">=",
27019
+ startValue: values[0],
27020
+ endOperator: "<=",
27021
+ endValue: values[1]
27022
+ });
27023
+ } else {
27024
+ const numberCondition = filter;
27025
+ setFilter({
27026
+ ...numberCondition,
27027
+ values
27028
+ });
27029
+ }
26929
27030
  }
26930
27031
  };
26931
27032
  return /* @__PURE__ */ jsxs(Fragment, {
@@ -26950,6 +27051,9 @@ const NumberFilterCore = ({
26950
27051
  }, {
26951
27052
  value: "is_less_than_or_equal_to",
26952
27053
  label: "is less than or equal to"
27054
+ }, {
27055
+ value: "is_between",
27056
+ label: "between"
26953
27057
  }, {
26954
27058
  value: "is_null",
26955
27059
  label: "is null"
@@ -26980,6 +27084,23 @@ function getEditor(filter, innerValues, validateAndUpdateValues) {
26980
27084
  setValue: (value) => validateAndUpdateValues([value]),
26981
27085
  type: "number"
26982
27086
  });
27087
+ case "range":
27088
+ return /* @__PURE__ */ jsxs("div", {
27089
+ ...{
27090
+ className: "mlyrvj5dj mly15396mt mly167g77z mlypqajaz"
27091
+ },
27092
+ children: [/* @__PURE__ */ jsx(SingleNumberEditor, {
27093
+ value: innerValues[0],
27094
+ setValue: (value) => validateAndUpdateValues([value, innerValues[1]]),
27095
+ type: "number"
27096
+ }), /* @__PURE__ */ jsx("span", {
27097
+ children: "to"
27098
+ }), /* @__PURE__ */ jsx(SingleNumberEditor, {
27099
+ value: innerValues[1],
27100
+ setValue: (value) => validateAndUpdateValues([innerValues[0], value]),
27101
+ type: "number"
27102
+ })]
27103
+ });
26983
27104
  }
26984
27105
  return null;
26985
27106
  }
@@ -27030,6 +27151,12 @@ function makeFilterWithNewType(filter, type) {
27030
27151
  return {
27031
27152
  ...NumberFilterFragments[type]
27032
27153
  };
27154
+ case "is_between":
27155
+ return {
27156
+ ...NumberFilterFragments[type],
27157
+ startValue: values.length > 0 ? values[0] : "0",
27158
+ endValue: values.length > 1 ? values[1] : "0"
27159
+ };
27033
27160
  }
27034
27161
  }
27035
27162
  const formats = {
@@ -27069,7 +27196,7 @@ const DateInput = ({
27069
27196
  setTempValue(hooks(value).format(format2));
27070
27197
  }, [value, format2]);
27071
27198
  return /* @__PURE__ */ jsx("input", {
27072
- ..._stylex.props(customStyle, isActive ? styles$k.active : null),
27199
+ ..._stylex.props(customStyle, isActive ? styles$l.active : null),
27073
27200
  type: "text",
27074
27201
  placeholder: placeholder || format2,
27075
27202
  value: tempValue,
@@ -27103,7 +27230,7 @@ function guessUnits(moment2, isDateTime) {
27103
27230
  }
27104
27231
  return isDateTime ? "second" : "day";
27105
27232
  }
27106
- const styles$k = {
27233
+ const styles$l = {
27107
27234
  active: {
27108
27235
  backgroundColor: "mly1vzefiq",
27109
27236
  $$css: true
@@ -27151,13 +27278,9 @@ const DateTimeFilterCore = ({
27151
27278
  const maxLevel = isDateTime ? "second" : "day";
27152
27279
  const type = typeFromFilter(currentFilter);
27153
27280
  return /* @__PURE__ */ jsxs("div", {
27154
- ...{
27155
- className: "mlyxsgkw5 mly78zum5 mlydt5ytf mly167g77z"
27156
- },
27281
+ ..._stylex.props(filterStyles.editor),
27157
27282
  children: [/* @__PURE__ */ jsxs("div", {
27158
- ...{
27159
- className: "mly78zum5 mly167g77z"
27160
- },
27283
+ ..._stylex.props(filterStyles.editorRow),
27161
27284
  children: [/* @__PURE__ */ jsx(SelectDropdown, {
27162
27285
  value: type,
27163
27286
  onChange: changeType,
@@ -27186,7 +27309,7 @@ const DateTimeFilterCore = ({
27186
27309
  value: "-null",
27187
27310
  label: "not null"
27188
27311
  }],
27189
- customStyle: styles$j.editorCell
27312
+ customStyle: filterStyles.editorCell
27190
27313
  }), getTopEditorRow(currentFilter, updateFilter, units, setUnits, maxLevel)]
27191
27314
  }), getBottomEditorRow(currentFilter, updateFilter, units, setUnits, maxLevel)]
27192
27315
  });
@@ -27294,15 +27417,13 @@ function NUnitFilter({
27294
27417
  children: [/* @__PURE__ */ jsx("input", {
27295
27418
  type: "number",
27296
27419
  value: n,
27297
- ...{
27298
- className: "mly2yh2zd mlyizdh9v mly9cpjcd mly1sxf85j mly1iyjqo2"
27299
- },
27420
+ ..._stylex.props(filterStyles.input, filterStyles.editorCell),
27300
27421
  onChange: updateN
27301
27422
  }), /* @__PURE__ */ jsx(SelectDropdown, {
27302
27423
  options,
27303
27424
  value: units,
27304
27425
  onChange: updateUnits,
27305
- customStyle: styles$j.editorCell
27426
+ customStyle: filterStyles.editorCell
27306
27427
  })]
27307
27428
  });
27308
27429
  }
@@ -27316,7 +27437,7 @@ function UnitFilter({
27316
27437
  options,
27317
27438
  value: units,
27318
27439
  onChange: setUnits,
27319
- customStyle: styles$j.editorCell
27440
+ customStyle: filterStyles.editorCell
27320
27441
  });
27321
27442
  }
27322
27443
  function SingleDateFilter({
@@ -27335,28 +27456,24 @@ function SingleDateFilter({
27335
27456
  };
27336
27457
  return /* @__PURE__ */ jsxs(Fragment, {
27337
27458
  children: [/* @__PURE__ */ jsx("div", {
27338
- ...{
27339
- className: "mly78zum5 mly167g77z"
27340
- },
27459
+ ..._stylex.props(filterStyles.editorRow),
27341
27460
  children: /* @__PURE__ */ jsx(DateInput, {
27342
27461
  value: date,
27343
27462
  setValue: updateDate,
27344
27463
  units,
27345
27464
  customStyle: {
27346
- ...styles$j.input,
27347
- ...styles$j.editorCell
27465
+ ...filterStyles.input,
27466
+ ...filterStyles.editorCell
27348
27467
  }
27349
27468
  })
27350
27469
  }), /* @__PURE__ */ jsx("div", {
27351
- ...{
27352
- className: "mly78zum5 mly167g77z"
27353
- },
27470
+ ..._stylex.props(filterStyles.editorRow),
27354
27471
  children: /* @__PURE__ */ jsx(DatePicker, {
27355
27472
  value: date,
27356
27473
  setValue: updateDate,
27357
27474
  units,
27358
27475
  maxLevel,
27359
- customStyle: styles$j.editorCell
27476
+ customStyle: filterStyles.editorCell
27360
27477
  })
27361
27478
  })]
27362
27479
  });
@@ -27407,16 +27524,14 @@ function DoubleDateFilter({
27407
27524
  };
27408
27525
  return /* @__PURE__ */ jsxs(Fragment, {
27409
27526
  children: [/* @__PURE__ */ jsxs("div", {
27410
- ...{
27411
- className: "mly78zum5 mly167g77z"
27412
- },
27527
+ ..._stylex.props(filterStyles.editorRow),
27413
27528
  children: [/* @__PURE__ */ jsx(DateInput, {
27414
27529
  value: fromDate,
27415
27530
  setValue: updateFromDate,
27416
27531
  units,
27417
27532
  customStyle: {
27418
- ...styles$j.input,
27419
- ...styles$j.editorCell
27533
+ ...filterStyles.input,
27534
+ ...filterStyles.editorCell
27420
27535
  },
27421
27536
  onFocus: () => updateFocusedDate("from"),
27422
27537
  isActive: focusedDate === "from"
@@ -27425,22 +27540,20 @@ function DoubleDateFilter({
27425
27540
  setValue: updateToDate,
27426
27541
  units,
27427
27542
  customStyle: {
27428
- ...styles$j.input,
27429
- ...styles$j.editorCell
27543
+ ...filterStyles.input,
27544
+ ...filterStyles.editorCell
27430
27545
  },
27431
27546
  onFocus: () => updateFocusedDate("to"),
27432
27547
  isActive: focusedDate === "to"
27433
27548
  })]
27434
27549
  }), /* @__PURE__ */ jsx("div", {
27435
- ...{
27436
- className: "mly78zum5 mly167g77z"
27437
- },
27550
+ ..._stylex.props(filterStyles.editorRow),
27438
27551
  children: /* @__PURE__ */ jsx(DatePicker, {
27439
27552
  value: date,
27440
27553
  setValue: updateDate,
27441
27554
  units,
27442
27555
  maxLevel,
27443
- customStyle: styles$j.editorCell
27556
+ customStyle: filterStyles.editorCell
27444
27557
  })
27445
27558
  })]
27446
27559
  });
@@ -27516,62 +27629,6 @@ function dateTimeFilterChangeType(filter, type, units) {
27516
27629
  }
27517
27630
  return filter;
27518
27631
  }
27519
- const styles$j = {
27520
- editorCell: {
27521
- flexGrow: "mly1iyjqo2",
27522
- $$css: true
27523
- },
27524
- input: {
27525
- border: "mly2yh2zd",
27526
- borderWidth: null,
27527
- borderInlineWidth: null,
27528
- borderInlineStartWidth: null,
27529
- borderLeftWidth: null,
27530
- borderInlineEndWidth: null,
27531
- borderRightWidth: null,
27532
- borderBlockWidth: null,
27533
- borderTopWidth: null,
27534
- borderBottomWidth: null,
27535
- borderStyle: null,
27536
- borderInlineStyle: null,
27537
- borderInlineStartStyle: null,
27538
- borderLeftStyle: null,
27539
- borderInlineEndStyle: null,
27540
- borderRightStyle: null,
27541
- borderBlockStyle: null,
27542
- borderTopStyle: null,
27543
- borderBottomStyle: null,
27544
- borderColor: null,
27545
- borderInlineColor: null,
27546
- borderInlineStartColor: null,
27547
- borderLeftColor: null,
27548
- borderInlineEndColor: null,
27549
- borderRightColor: null,
27550
- borderBlockColor: null,
27551
- borderTopColor: null,
27552
- borderBottomColor: null,
27553
- color: "mlyizdh9v",
27554
- padding: "mly9cpjcd",
27555
- paddingInline: null,
27556
- paddingStart: null,
27557
- paddingLeft: null,
27558
- paddingEnd: null,
27559
- paddingRight: null,
27560
- paddingBlock: null,
27561
- paddingTop: null,
27562
- paddingBottom: null,
27563
- borderRadius: "mly1sxf85j",
27564
- borderStartStartRadius: null,
27565
- borderStartEndRadius: null,
27566
- borderEndStartRadius: null,
27567
- borderEndEndRadius: null,
27568
- borderTopLeftRadius: null,
27569
- borderTopRightRadius: null,
27570
- borderBottomLeftRadius: null,
27571
- borderBottomRightRadius: null,
27572
- $$css: true
27573
- }
27574
- };
27575
27632
  function FilterDialog({
27576
27633
  fieldInfo,
27577
27634
  path,
@@ -27714,9 +27771,12 @@ function useFilterModal({
27714
27771
  middleware: [offset$1({
27715
27772
  mainAxis: 3,
27716
27773
  crossAxis: 3
27717
- }), flip({
27718
- boundary: document.body
27719
- })]
27774
+ }), shift({
27775
+ boundary: document.body,
27776
+ crossAxis: true,
27777
+ padding: 10
27778
+ })],
27779
+ whileElementsMounted: autoUpdate
27720
27780
  });
27721
27781
  return /* @__PURE__ */ jsx(Root$2, {
27722
27782
  open,
@@ -27855,12 +27915,10 @@ function QueryActionBar({
27855
27915
  };
27856
27916
  return /* @__PURE__ */ jsxs("div", {
27857
27917
  ...{
27858
- className: "mly78zum5 mly1qughib mly6s0dn4 mly1vjfegm"
27918
+ className: "mly78zum5 mly1qughib mly6s0dn4 mly153ncpu"
27859
27919
  },
27860
27920
  children: [/* @__PURE__ */ jsx("div", {
27861
- ...{
27862
- className: "mly6icuqf mly117nqv4 mly1j61zf2"
27863
- },
27921
+ ..._stylex.props(fontStyles.largeBody, styles$k.title),
27864
27922
  children: "Query"
27865
27923
  }), /* @__PURE__ */ jsxs("div", {
27866
27924
  ...{
@@ -27895,7 +27953,13 @@ function QueryActionBar({
27895
27953
  })]
27896
27954
  });
27897
27955
  }
27898
- const styles$i = {
27956
+ const styles$k = {
27957
+ title: {
27958
+ fontWeight: "mly1xlr1w8",
27959
+ $$css: true
27960
+ }
27961
+ };
27962
+ const styles$j = {
27899
27963
  labelWithIcon: {
27900
27964
  display: "mly78zum5",
27901
27965
  alignItems: "mly6s0dn4",
@@ -28087,6 +28151,21 @@ function getSegmentIfPresent(parent) {
28087
28151
  }
28088
28152
  return void 0;
28089
28153
  }
28154
+ const QUERY_RENDERERS = ["table", "bar_chart", "dashboard", "json", "line_chart", "list", "list_detail", "point_map", "scatter_chart", "segment_map", "shape_map", "sparkline"];
28155
+ const ATOMIC_RENDERERS = ["number", "boolean", "currency", "image", "url", "percent", "text", "time"];
28156
+ const RENDERERS = [...QUERY_RENDERERS, ...ATOMIC_RENDERERS];
28157
+ function tagToRenderer(tag) {
28158
+ if (tag) {
28159
+ const tagProps = tag.getProperties();
28160
+ const tags = Object.keys(tagProps);
28161
+ for (const tag2 of tags) {
28162
+ if (RENDERERS.includes(tag2) && !tagProps[tag2].deleted) {
28163
+ return tag2;
28164
+ }
28165
+ }
28166
+ }
28167
+ return null;
28168
+ }
28090
28169
  function atomicTypeToIcon(type) {
28091
28170
  return atomicTypeMap[type];
28092
28171
  }
@@ -28112,6 +28191,11 @@ function fieldToIcon(field) {
28112
28191
  function relationshipToIcon(relationship) {
28113
28192
  return relationshipMap[relationship];
28114
28193
  }
28194
+ function viewToVisualizationIcon(view) {
28195
+ const currentTag = view.getTag();
28196
+ const currentRenderer = tagToRenderer(currentTag) ?? "table";
28197
+ return `viz_${currentRenderer}`;
28198
+ }
28115
28199
  const atomicTypeMap = {
28116
28200
  array_type: "array",
28117
28201
  string_type: "string",
@@ -28150,16 +28234,11 @@ function FieldToken({
28150
28234
  className: "mly78zum5 mly6s0dn4 mly1nhvcw1 mly1jnr06f mly1ypdohk mlym9y5t7"
28151
28235
  }
28152
28236
  }[!!hoverActionsVisible << 0],
28153
- children: [/* @__PURE__ */ jsx("div", {
28154
- style: {
28155
- display: "inline-grid"
28156
- },
28157
- children: /* @__PURE__ */ jsx(Token, {
28158
- label: field.name,
28159
- color: fieldKindToColor(field.kind),
28160
- icon: fieldToIcon(field),
28161
- ...props2
28162
- })
28237
+ children: [/* @__PURE__ */ jsx(Token, {
28238
+ label: field.name,
28239
+ color: fieldKindToColor(field.kind),
28240
+ icon: fieldToIcon(field),
28241
+ ...props2
28163
28242
  }), hoverActions && /* @__PURE__ */ jsx("div", {
28164
28243
  ...{
28165
28244
  className: "mly1vsucm1 mly2lah0s"
@@ -28176,52 +28255,37 @@ function BadgeForField({
28176
28255
  label: "view",
28177
28256
  icon: "view_filled",
28178
28257
  color: "purple",
28179
- customStyle: styles$h.noBackground
28258
+ customStyle: styles$i.noBackground
28180
28259
  });
28181
28260
  } else if (field.kind === "dimension") {
28182
28261
  return /* @__PURE__ */ jsx(Badge, {
28183
28262
  label: "dimension",
28184
- icon: "dimension",
28263
+ icon: fieldToIcon(field),
28185
28264
  color: "cyan",
28186
- customStyle: styles$h.noBackground
28265
+ customStyle: styles$i.noBackground
28187
28266
  });
28188
28267
  } else if (field.kind === "measure") {
28189
28268
  return /* @__PURE__ */ jsx(Badge, {
28190
28269
  label: "measure",
28191
- icon: "measure",
28270
+ icon: fieldToIcon(field),
28192
28271
  color: "green",
28193
- customStyle: styles$h.noBackground
28272
+ customStyle: styles$i.noBackground
28194
28273
  });
28195
28274
  } else if (field.kind === "join") {
28196
28275
  return /* @__PURE__ */ jsx(Badge, {
28197
28276
  label: "join",
28198
- icon: "many_to_one",
28277
+ icon: fieldToIcon(field),
28199
28278
  color: "gray",
28200
- customStyle: styles$h.noBackground
28279
+ customStyle: styles$i.noBackground
28201
28280
  });
28202
28281
  }
28203
28282
  }
28204
- const styles$h = {
28283
+ const styles$i = {
28205
28284
  noBackground: {
28206
28285
  backgroundColor: "mlyjbqb8w",
28207
28286
  $$css: true
28208
28287
  }
28209
28288
  };
28210
- const QUERY_RENDERERS = ["table", "bar_chart", "dashboard", "json", "line_chart", "list", "list_detail", "point_map", "scatter_chart", "segment_map", "shape_map", "sparkline"];
28211
- const ATOMIC_RENDERERS = ["number", "boolean", "currency", "image", "url", "percent", "text", "time"];
28212
- const RENDERERS = [...QUERY_RENDERERS, ...ATOMIC_RENDERERS];
28213
- function tagToRenderer(tag) {
28214
- if (tag) {
28215
- const tagProps = tag.getProperties();
28216
- const tags = Object.keys(tagProps);
28217
- for (const tag2 of tags) {
28218
- if (RENDERERS.includes(tag2) && !tagProps[tag2].deleted) {
28219
- return tag2;
28220
- }
28221
- }
28222
- }
28223
- return null;
28224
- }
28225
28289
  function Visualization$1({
28226
28290
  rootQuery,
28227
28291
  view
@@ -28245,7 +28309,7 @@ function Visualization$1({
28245
28309
  onClick: () => setRenderer(viz)
28246
28310
  }));
28247
28311
  const tokens2 = [/* @__PURE__ */ jsx(SelectorToken, {
28248
- customStyle: styles$g.first,
28312
+ customStyle: styles$h.first,
28249
28313
  icon: `viz_${currentRenderer}`,
28250
28314
  value: currentRenderer,
28251
28315
  items: vizes,
@@ -28255,7 +28319,7 @@ function Visualization$1({
28255
28319
  children: tokens2
28256
28320
  });
28257
28321
  }
28258
- const styles$g = {
28322
+ const styles$h = {
28259
28323
  first: {
28260
28324
  flexGrow: "mly1iyjqo2",
28261
28325
  justifyContent: "mlylqzeqv",
@@ -28284,7 +28348,7 @@ function ViewAttributeTable({
28284
28348
  }) {
28285
28349
  const dimensions = viewInfo.schema.fields.filter((f2) => f2.kind === "dimension");
28286
28350
  return /* @__PURE__ */ jsx("div", {
28287
- ..._stylex.props(styles$f.attributeTableContainer, style),
28351
+ ..._stylex.props(styles$g.attributeTableContainer, style),
28288
28352
  children: /* @__PURE__ */ jsx(ScrollableArea, {
28289
28353
  children: /* @__PURE__ */ jsx("table", {
28290
28354
  ...{
@@ -28324,9 +28388,9 @@ function ViewAttributeTableRow({
28324
28388
  className: "mlydpxx8g"
28325
28389
  },
28326
28390
  children: [/* @__PURE__ */ jsx("td", {
28327
- ..._stylex.props(styles$f.attributeTableKeyCell, fontStyles.supporting),
28391
+ ..._stylex.props(styles$g.attributeTableKeyCell, fontStyles.supporting),
28328
28392
  children: /* @__PURE__ */ jsx("div", {
28329
- ..._stylex.props(styles$f.attributeTableKeyCellContent, fontStyles.supporting),
28393
+ ..._stylex.props(styles$g.attributeTableKeyCellContent, fontStyles.supporting),
28330
28394
  children: attribute
28331
28395
  })
28332
28396
  }), /* @__PURE__ */ jsx("td", {
@@ -28337,7 +28401,7 @@ function ViewAttributeTableRow({
28337
28401
  })]
28338
28402
  });
28339
28403
  }
28340
- const styles$f = {
28404
+ const styles$g = {
28341
28405
  attributeTableContainer: {
28342
28406
  padding: "mlye8ttls",
28343
28407
  paddingInline: null,
@@ -28493,7 +28557,7 @@ function HoverText({
28493
28557
  asChild: true,
28494
28558
  children: /* @__PURE__ */ jsx("div", {
28495
28559
  ref: textRef,
28496
- ..._stylex.props(styles$e.text, fontStyles.supporting),
28560
+ ..._stylex.props(styles$f.text, fontStyles.supporting),
28497
28561
  children: text2
28498
28562
  })
28499
28563
  }), /* @__PURE__ */ jsx(Portal$4, {
@@ -28501,7 +28565,7 @@ function HoverText({
28501
28565
  side,
28502
28566
  align,
28503
28567
  children: /* @__PURE__ */ jsx("pre", {
28504
- ..._stylex.props(styles$e.hoverText, fontStyles.tooltipText),
28568
+ ..._stylex.props(styles$f.hoverText, fontStyles.tooltipText),
28505
28569
  children: text2
28506
28570
  })
28507
28571
  })
@@ -28510,7 +28574,7 @@ function HoverText({
28510
28574
  })
28511
28575
  });
28512
28576
  }
28513
- const styles$e = {
28577
+ const styles$f = {
28514
28578
  text: {
28515
28579
  whiteSpace: "mlyuxw1ft",
28516
28580
  textOverflow: "mlylyipyv",
@@ -28572,7 +28636,7 @@ function FieldHoverCard({
28572
28636
  details = /* @__PURE__ */ jsx(ViewAttributeTable, {
28573
28637
  viewInfo: field,
28574
28638
  isCompact: true,
28575
- style: styles$d.viewAttributeTable
28639
+ style: styles$e.viewAttributeTable
28576
28640
  });
28577
28641
  } else if (field.kind === "dimension") {
28578
28642
  details = /* @__PURE__ */ jsx(TopValuesTable, {
@@ -28581,7 +28645,7 @@ function FieldHoverCard({
28581
28645
  });
28582
28646
  }
28583
28647
  return /* @__PURE__ */ jsxs("div", {
28584
- ..._stylex.props(styles$d.container, fontStyles.body),
28648
+ ..._stylex.props(styles$e.container, fontStyles.body),
28585
28649
  children: [/* @__PURE__ */ jsxs("div", {
28586
28650
  children: [/* @__PURE__ */ jsx("div", {
28587
28651
  ...{
@@ -28591,7 +28655,7 @@ function FieldHoverCard({
28591
28655
  field
28592
28656
  })
28593
28657
  }), /* @__PURE__ */ jsx("div", {
28594
- ..._stylex.props(fontStyles.supporting, styles$d.path),
28658
+ ..._stylex.props(fontStyles.supporting, styles$e.path),
28595
28659
  children: pathString
28596
28660
  }), /* @__PURE__ */ jsx("div", {
28597
28661
  ..._stylex.props(fontStyles.emphasized),
@@ -28605,7 +28669,7 @@ function FieldHoverCard({
28605
28669
  })]
28606
28670
  });
28607
28671
  }
28608
- const styles$d = {
28672
+ const styles$e = {
28609
28673
  container: {
28610
28674
  width: "mlybl57os",
28611
28675
  maxHeight: "mly1t2cwa7",
@@ -28645,6 +28709,7 @@ const styles$d = {
28645
28709
  $$css: true
28646
28710
  }
28647
28711
  };
28712
+ const isArrayOrRecord = (field) => field.kind === "dimension" && (field.type.kind === "array_type" && field.type.element_type.kind === "record_type" || field.type.kind === "record_type");
28648
28713
  function FieldList({
28649
28714
  view,
28650
28715
  fields,
@@ -28656,8 +28721,9 @@ function FieldList({
28656
28721
  const groups = useMemo(() => {
28657
28722
  const groups2 = [];
28658
28723
  const buildGroups = (types22, path, name, fields2) => {
28659
- const filteredFields = sortFieldInfos(fields2).filter((field) => field.kind !== "join").filter((field) => field.name.includes(search) && types22.includes(field.kind)).filter((field) => filter ? filter(view, field, path) : true);
28724
+ 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);
28660
28725
  const joins = fields2.filter((field) => field.kind === "join");
28726
+ const arraysAndRecords = fields2.filter(isArrayOrRecord);
28661
28727
  if (filteredFields.length) {
28662
28728
  groups2.push({
28663
28729
  path,
@@ -28665,6 +28731,19 @@ function FieldList({
28665
28731
  fields: filteredFields
28666
28732
  });
28667
28733
  }
28734
+ for (const array of arraysAndRecords) {
28735
+ if (array.type.kind === "array_type" && array.type.element_type.kind === "record_type") {
28736
+ buildGroups(types22, [...path, array.name], array.name, array.type.element_type.fields.map((dimension) => ({
28737
+ kind: "dimension",
28738
+ ...dimension
28739
+ })));
28740
+ } else if (array.type.kind === "record_type") {
28741
+ buildGroups(types22, [...path, array.name], array.name, array.type.fields.map((dimension) => ({
28742
+ kind: "dimension",
28743
+ ...dimension
28744
+ })));
28745
+ }
28746
+ }
28668
28747
  for (const join of joins) {
28669
28748
  buildGroups(
28670
28749
  types22.filter((type) => type !== "view"),
@@ -28682,14 +28761,14 @@ function FieldList({
28682
28761
  children: groups.length ? groups.map((group) => /* @__PURE__ */ jsxs("div", {
28683
28762
  children: [/* @__PURE__ */ jsx("div", {
28684
28763
  children: /* @__PURE__ */ jsx("div", {
28685
- ..._stylex.props(addMenuStyles.item, styles$c.fieldItem),
28764
+ ..._stylex.props(addMenuStyles.item, styles$d.fieldItem),
28686
28765
  "data-disabled": "true",
28687
28766
  children: group.name
28688
28767
  })
28689
28768
  }), group.fields.map((field) => /* @__PURE__ */ jsx("div", {
28690
28769
  role: "menuitem",
28691
28770
  tabIndex: -1,
28692
- ..._stylex.props(addMenuStyles.item, styles$c.fieldItem),
28771
+ ..._stylex.props(addMenuStyles.item, styles$d.fieldItem),
28693
28772
  children: /* @__PURE__ */ jsx(FieldToken, {
28694
28773
  field,
28695
28774
  onClick: (event) => onClick(field, group.path, event),
@@ -28712,7 +28791,7 @@ function FieldList({
28712
28791
  })
28713
28792
  });
28714
28793
  }
28715
- const styles$c = {
28794
+ const styles$d = {
28716
28795
  fieldItem: {
28717
28796
  height: "mly1qx5ct2",
28718
28797
  paddingTop: "mly1y1aw1k",
@@ -28766,7 +28845,7 @@ function OperationActionTitle({
28766
28845
  }) {
28767
28846
  const [isMenuOpen, setIsMenuOpen] = React.useState(false);
28768
28847
  return /* @__PURE__ */ jsxs("div", {
28769
- ..._stylex.props(styles$i.title, hoverStyles.main),
28848
+ ..._stylex.props(styles$j.title, hoverStyles.main),
28770
28849
  children: [/* @__PURE__ */ jsx("div", {
28771
28850
  children: title
28772
28851
  }), /* @__PURE__ */ jsx("div", {
@@ -28849,7 +28928,7 @@ function GroupByOperations({
28849
28928
  addGroupBy(rootQuery, segment, field, path, setQuery);
28850
28929
  }
28851
28930
  }), /* @__PURE__ */ jsx("div", {
28852
- ..._stylex.props(styles$i.tokenContainer),
28931
+ ..._stylex.props(styles$j.tokenContainer),
28853
28932
  children: groupBys.map((groupBy) => {
28854
28933
  const fieldInfo = groupBy.getFieldInfo();
28855
28934
  const path = groupBy.field.getReference().path ?? [];
@@ -28939,10 +29018,10 @@ function FilterOperations({
28939
29018
  }
28940
29019
  return /* @__PURE__ */ jsxs("div", {
28941
29020
  children: [/* @__PURE__ */ jsx("div", {
28942
- ..._stylex.props(styles$i.title),
29021
+ ..._stylex.props(styles$j.title),
28943
29022
  children: "filter by"
28944
29023
  }), /* @__PURE__ */ jsx("div", {
28945
- ..._stylex.props(styles$i.tokenContainer),
29024
+ ..._stylex.props(styles$j.tokenContainer),
28946
29025
  children: filters.map((filterOperation, key2) => {
28947
29026
  return /* @__PURE__ */ jsx(ErrorElement, {
28948
29027
  fallback: /* @__PURE__ */ jsxs("div", {
@@ -29200,7 +29279,7 @@ function LimitOperation({
29200
29279
  }
29201
29280
  return /* @__PURE__ */ jsxs("div", {
29202
29281
  children: [/* @__PURE__ */ jsx("div", {
29203
- ..._stylex.props(styles$i.title),
29282
+ ..._stylex.props(styles$j.title),
29204
29283
  children: "limit"
29205
29284
  }), /* @__PURE__ */ jsxs("div", {
29206
29285
  ..._stylex.props(hoverStyles.main),
@@ -29252,7 +29331,7 @@ function AggregateOperations({
29252
29331
  setQuery == null ? void 0 : setQuery(rootQuery.build());
29253
29332
  }
29254
29333
  }), " ", /* @__PURE__ */ jsx("div", {
29255
- ..._stylex.props(styles$i.tokenContainer),
29334
+ ..._stylex.props(styles$j.tokenContainer),
29256
29335
  children: aggregates.map((aggregate) => {
29257
29336
  const fieldInfo = aggregate.getFieldInfo();
29258
29337
  const path = aggregate.field.getReference().path ?? [];
@@ -29293,10 +29372,10 @@ function OrderByOperations({
29293
29372
  }
29294
29373
  return /* @__PURE__ */ jsxs("div", {
29295
29374
  children: [/* @__PURE__ */ jsx("div", {
29296
- ..._stylex.props(styles$i.title),
29375
+ ..._stylex.props(styles$j.title),
29297
29376
  children: "order by"
29298
29377
  }), /* @__PURE__ */ jsx("div", {
29299
- ..._stylex.props(styles$i.tokenContainer),
29378
+ ..._stylex.props(styles$j.tokenContainer),
29300
29379
  children: orderBys.map((orderBy) => {
29301
29380
  const {
29302
29381
  fieldReference
@@ -29387,7 +29466,7 @@ function CollapsiblePanel({
29387
29466
  },
29388
29467
  children: [icon && /* @__PURE__ */ jsx(Icon, {
29389
29468
  name: icon,
29390
- customStyle: styles$b.icon
29469
+ customStyle: styles$c.icon
29391
29470
  }), /* @__PURE__ */ jsx("div", {
29392
29471
  ...{
29393
29472
  className: "mlyuxw1ft mlyb3r6kr mlylyipyv mlyehqz9p mly1ghz6dp"
@@ -29424,7 +29503,7 @@ function CollapsiblePanel({
29424
29503
  })]
29425
29504
  });
29426
29505
  }
29427
- const styles$b = {
29506
+ const styles$c = {
29428
29507
  icon: {
29429
29508
  $$css: true
29430
29509
  }
@@ -29524,7 +29603,7 @@ function AddFieldItem({
29524
29603
  const trigger = /* @__PURE__ */ jsxs("div", {
29525
29604
  role: "menuitem",
29526
29605
  tabIndex: -1,
29527
- ..._stylex.props(addMenuStyles.item, addMenuStyles.clickable, open ? styles$a.open : null),
29606
+ ..._stylex.props(addMenuStyles.item, addMenuStyles.clickable, open ? styles$b.open : null),
29528
29607
  "data-disabled": disabled ? "true" : void 0,
29529
29608
  children: [/* @__PURE__ */ jsxs("div", {
29530
29609
  ..._stylex.props(addMenuStyles.label),
@@ -29579,7 +29658,7 @@ function AddFieldItem({
29579
29658
  })]
29580
29659
  });
29581
29660
  }
29582
- const styles$a = {
29661
+ const styles$b = {
29583
29662
  open: {
29584
29663
  background: "mly1p5yd3t",
29585
29664
  backgroundAttachment: null,
@@ -29836,15 +29915,6 @@ function AddMenu({
29836
29915
  })]
29837
29916
  });
29838
29917
  }
29839
- function VisualizationIcon({
29840
- view
29841
- }) {
29842
- const currentTag = view.getTag();
29843
- const currentRenderer = tagToRenderer(currentTag) ?? "table";
29844
- return /* @__PURE__ */ jsx(Icon, {
29845
- name: `viz_${currentRenderer}`
29846
- });
29847
- }
29848
29918
  function NestOperations({
29849
29919
  rootQuery,
29850
29920
  nests
@@ -29855,8 +29925,29 @@ function NestOperations({
29855
29925
  if (nests.length === 0) {
29856
29926
  return null;
29857
29927
  }
29928
+ const getControls = (nest) => /* @__PURE__ */ jsxs(Fragment, {
29929
+ children: [/* @__PURE__ */ jsx(DropdownMenu, {
29930
+ trigger: /* @__PURE__ */ jsx(Button, {
29931
+ variant: "flat",
29932
+ icon: "meatballs",
29933
+ size: "compact",
29934
+ tooltip: "More Actions"
29935
+ }),
29936
+ children: /* @__PURE__ */ jsx(DropdownMenuItem, {
29937
+ icon: "clear",
29938
+ label: "Delete Query",
29939
+ onClick: () => {
29940
+ nest.delete();
29941
+ setQuery == null ? void 0 : setQuery(rootQuery.build());
29942
+ }
29943
+ })
29944
+ }), /* @__PURE__ */ jsx(AddMenu, {
29945
+ rootQuery,
29946
+ view: nest.view
29947
+ })]
29948
+ });
29858
29949
  return /* @__PURE__ */ jsx("div", {
29859
- ..._stylex.props(styles$i.tokenContainer),
29950
+ ..._stylex.props(styles$j.tokenContainer),
29860
29951
  children: nests.map((nest) => {
29861
29952
  const defaultOpen = nest.view.definition.node.kind === "segment" && nest.view.definition.node.operations.length === 0;
29862
29953
  return /* @__PURE__ */ jsx("div", {
@@ -29865,32 +29956,10 @@ function NestOperations({
29865
29956
  },
29866
29957
  children: /* @__PURE__ */ jsx(CollapsiblePanel, {
29867
29958
  title: nest.name,
29868
- icon: "nest",
29959
+ icon: viewToVisualizationIcon(nest.view),
29869
29960
  defaultOpen,
29870
- controls: /* @__PURE__ */ jsxs(Fragment, {
29871
- children: [/* @__PURE__ */ jsx(DropdownMenu, {
29872
- trigger: /* @__PURE__ */ jsx(Button, {
29873
- variant: "flat",
29874
- icon: "meatballs",
29875
- size: "compact",
29876
- tooltip: "More Actions"
29877
- }),
29878
- children: /* @__PURE__ */ jsx(DropdownMenuItem, {
29879
- icon: "clear",
29880
- label: "Delete Query",
29881
- onClick: () => {
29882
- nest.delete();
29883
- setQuery == null ? void 0 : setQuery(rootQuery.build());
29884
- }
29885
- })
29886
- }), /* @__PURE__ */ jsx(AddMenu, {
29887
- rootQuery,
29888
- view: nest.view
29889
- })]
29890
- }),
29891
- collapsedControls: /* @__PURE__ */ jsx(VisualizationIcon, {
29892
- view: nest.view
29893
- }),
29961
+ controls: getControls(nest),
29962
+ collapsedControls: getControls(nest),
29894
29963
  children: /* @__PURE__ */ jsx(View, {
29895
29964
  rootQuery,
29896
29965
  view: nest.view
@@ -30027,11 +30096,11 @@ function CollapsingView({
30027
30096
  })]
30028
30097
  }), !collapsed && /* @__PURE__ */ jsx(ViewAttributeTable, {
30029
30098
  viewInfo: viewDef.getViewInfo(),
30030
- style: styles$9.preview
30099
+ style: styles$a.preview
30031
30100
  })]
30032
30101
  });
30033
30102
  }
30034
- const styles$9 = {
30103
+ const styles$a = {
30035
30104
  preview: {
30036
30105
  height: "mlyt7dq6l",
30037
30106
  maxHeight: "mly1hkcv85",
@@ -30073,21 +30142,33 @@ function Query({
30073
30142
  size: "compact",
30074
30143
  tooltip: "More Actions"
30075
30144
  }),
30076
- children: setQuery ? /* @__PURE__ */ jsx(DropdownMenuItem, {
30077
- icon: "clear",
30078
- label: "Clear query",
30079
- onClick: () => {
30080
- setQuery == null ? void 0 : setQuery(void 0);
30081
- },
30082
- disabled: rootQuery.isEmpty()
30145
+ children: setQuery ? /* @__PURE__ */ jsxs(Fragment, {
30146
+ children: [/* @__PURE__ */ jsx(DropdownMenuItem, {
30147
+ icon: "clear",
30148
+ label: "Clear query",
30149
+ onClick: () => {
30150
+ setQuery == null ? void 0 : setQuery(void 0);
30151
+ },
30152
+ disabled: rootQuery.isEmpty()
30153
+ }), /* @__PURE__ */ jsx(DropdownMenuItem, {
30154
+ icon: "nest",
30155
+ label: "Nest query",
30156
+ onClick: () => {
30157
+ if (rootQuery.definition instanceof ASTArrowQueryDefinition) {
30158
+ rootQuery.definition.view.convertToNest("Nest");
30159
+ }
30160
+ setQuery == null ? void 0 : setQuery(rootQuery.build());
30161
+ },
30162
+ disabled: rootQuery.isEmpty()
30163
+ })]
30083
30164
  }) : /* @__PURE__ */ jsx(Fragment, {})
30084
30165
  }), query.definition instanceof ASTArrowQueryDefinition ? /* @__PURE__ */ jsx(AddMenu, {
30085
30166
  rootQuery,
30086
30167
  view: query.definition
30087
30168
  }) : null]
30088
30169
  }),
30089
- collapsedControls: /* @__PURE__ */ jsx(VisualizationIcon, {
30090
- view: query
30170
+ collapsedControls: /* @__PURE__ */ jsx(Icon, {
30171
+ name: viewToVisualizationIcon(query)
30091
30172
  }),
30092
30173
  children: [query.definition instanceof ASTArrowQueryDefinition ? /* @__PURE__ */ jsxs("div", {
30093
30174
  style: {
@@ -30135,9 +30216,9 @@ function Source({
30135
30216
  } = useContext(ExplorerPanelsContext);
30136
30217
  if (!(isSourcePanelOpen && setIsSourcePanelOpen) && rootQuery.definition instanceof ASTArrowQueryDefinition) {
30137
30218
  return /* @__PURE__ */ jsxs("div", {
30138
- ..._stylex.props(styles$i.queryCard, styles$8.flex),
30219
+ ..._stylex.props(styles$j.queryCard, styles$9.flex),
30139
30220
  children: [/* @__PURE__ */ jsxs("div", {
30140
- ..._stylex.props(styles$i.labelWithIcon),
30221
+ ..._stylex.props(styles$j.labelWithIcon),
30141
30222
  children: [/* @__PURE__ */ jsx(Icon, {
30142
30223
  name: "database"
30143
30224
  }), rootQuery.definition.as.ArrowQueryDefinition().source.as.ReferenceQueryArrowSource().name]
@@ -30150,7 +30231,7 @@ function Source({
30150
30231
  }
30151
30232
  return null;
30152
30233
  }
30153
- const styles$8 = {
30234
+ const styles$9 = {
30154
30235
  flex: {
30155
30236
  display: "mly78zum5",
30156
30237
  justifyContent: "mly1qughib",
@@ -30243,7 +30324,7 @@ function Parameters({
30243
30324
  children: sourceParameters.map((parameter) => {
30244
30325
  var _a2;
30245
30326
  return /* @__PURE__ */ jsxs(TokenGroup, {
30246
- customStyle: styles$7.tokenGroup,
30327
+ customStyle: styles$8.tokenGroup,
30247
30328
  children: [/* @__PURE__ */ jsx(Token, {
30248
30329
  icon: atomicTypeToIcon(parameter.type.kind),
30249
30330
  label: parameter.name
@@ -30261,7 +30342,7 @@ function Parameters({
30261
30342
  }
30262
30343
  return null;
30263
30344
  }
30264
- const styles$7 = {
30345
+ const styles$8 = {
30265
30346
  tokenGroup: {
30266
30347
  display: "mly78zum5",
30267
30348
  $$css: true
@@ -30276,21 +30357,40 @@ function QueryEditor() {
30276
30357
  console.error("Missing <MalloyExplorerProvider>");
30277
30358
  return null;
30278
30359
  }
30279
- return /* @__PURE__ */ jsxs("div", {
30280
- ...{
30281
- className: "mly6icuqf mlyif65rj mlywxc2jc mly78zum5 mlydt5ytf mly167g77z"
30282
- },
30283
- children: [/* @__PURE__ */ jsx(Source, {
30284
- rootQuery
30285
- }), /* @__PURE__ */ jsx(Parameters, {
30286
- rootQuery
30287
- }), /* @__PURE__ */ jsx(Query, {
30288
- rootQuery,
30289
- query: rootQuery,
30290
- setQuery
30291
- })]
30360
+ return /* @__PURE__ */ jsx(ScrollableArea, {
30361
+ children: /* @__PURE__ */ jsxs("div", {
30362
+ ..._stylex.props(fontStyles.body, styles$7.main),
30363
+ children: [/* @__PURE__ */ jsx(Source, {
30364
+ rootQuery
30365
+ }), /* @__PURE__ */ jsx(Parameters, {
30366
+ rootQuery
30367
+ }), /* @__PURE__ */ jsx(Query, {
30368
+ rootQuery,
30369
+ query: rootQuery,
30370
+ setQuery
30371
+ })]
30372
+ })
30292
30373
  });
30293
30374
  }
30375
+ const styles$7 = {
30376
+ main: {
30377
+ display: "mly78zum5",
30378
+ flexDirection: "mlydt5ytf",
30379
+ gap: "mly167g77z",
30380
+ rowGap: null,
30381
+ columnGap: null,
30382
+ padding: "mly1fut7tt",
30383
+ paddingInline: null,
30384
+ paddingStart: null,
30385
+ paddingLeft: null,
30386
+ paddingEnd: null,
30387
+ paddingRight: null,
30388
+ paddingBlock: null,
30389
+ paddingTop: null,
30390
+ paddingBottom: null,
30391
+ $$css: true
30392
+ }
30393
+ };
30294
30394
  function QueryPanel({
30295
30395
  runQuery
30296
30396
  }) {
@@ -30298,20 +30398,10 @@ function QueryPanel({
30298
30398
  ...{
30299
30399
  className: "mly78zum5 mlydt5ytf mly2lah0s mlyh8yej3 mly5yr21d mlyotlr4g mly1roky18"
30300
30400
  },
30301
- children: [/* @__PURE__ */ jsx("div", {
30302
- ...{
30303
- className: "mly78zum5 mlydt5ytf mly153ncpu"
30304
- },
30305
- children: /* @__PURE__ */ jsx(QueryActionBar, {
30306
- runQuery
30307
- })
30401
+ children: [/* @__PURE__ */ jsx(QueryActionBar, {
30402
+ runQuery
30308
30403
  }), /* @__PURE__ */ jsx(ScrollableArea, {
30309
- children: /* @__PURE__ */ jsx("div", {
30310
- ...{
30311
- className: "mly78zum5 mlydt5ytf mly1fut7tt mly167g77z"
30312
- },
30313
- children: /* @__PURE__ */ jsx(QueryEditor, {})
30314
- })
30404
+ children: /* @__PURE__ */ jsx(QueryEditor, {})
30315
30405
  })]
30316
30406
  });
30317
30407
  }
@@ -31104,7 +31194,22 @@ function flattenFieldsTree(fields, path = []) {
31104
31194
  }];
31105
31195
  }
31106
31196
  case "measure":
31197
+ return [{
31198
+ path,
31199
+ field
31200
+ }];
31107
31201
  case "dimension":
31202
+ if (field.type.kind === "array_type" && field.type.element_type.kind === "record_type") {
31203
+ return flattenFieldsTree(field.type.element_type.fields.map((dimension) => ({
31204
+ kind: "dimension",
31205
+ ...dimension
31206
+ })), [...path, field.name]);
31207
+ } else if (field.type.kind === "record_type") {
31208
+ return flattenFieldsTree(field.type.fields.map((dimension) => ({
31209
+ kind: "dimension",
31210
+ ...dimension
31211
+ })), [...path, field.name]);
31212
+ }
31108
31213
  return [{
31109
31214
  path,
31110
31215
  field
@@ -31598,7 +31703,9 @@ const styles$1 = {
31598
31703
  $$css: true
31599
31704
  }
31600
31705
  };
31601
- function SourcePanel() {
31706
+ function SourcePanel({
31707
+ onRefresh
31708
+ }) {
31602
31709
  const {
31603
31710
  source
31604
31711
  } = React.useContext(QueryEditorContext);
@@ -31671,13 +31778,23 @@ function SourcePanel() {
31671
31778
  variant: "flat",
31672
31779
  size: "compact",
31673
31780
  onClick: () => setSubpanelType(null)
31674
- }), setIsSourcePanelOpen && /* @__PURE__ */ jsx("div", {
31675
- children: /* @__PURE__ */ jsx(Button, {
31676
- icon: "chevronLeft",
31781
+ }), /* @__PURE__ */ jsxs("div", {
31782
+ ...{
31783
+ className: "mly78zum5"
31784
+ },
31785
+ children: [/* @__PURE__ */ jsx(Button, {
31786
+ icon: "refresh",
31787
+ tooltip: "Refresh the source",
31788
+ onClick: onRefresh,
31789
+ size: "compact",
31790
+ variant: "flat"
31791
+ }), setIsSourcePanelOpen && /* @__PURE__ */ jsx(Button, {
31792
+ icon: "sidebarCollapse",
31677
31793
  tooltip: "Close the source panel",
31678
31794
  onClick: () => setIsSourcePanelOpen(false),
31679
- size: "compact"
31680
- })
31795
+ size: "compact",
31796
+ variant: "flat"
31797
+ })]
31681
31798
  })]
31682
31799
  }), /* @__PURE__ */ jsx(TextInput, {
31683
31800
  value: searchQuery,