@pstdio/ui 0.40.0 → 0.42.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (108) hide show
  1. package/dist/{MermaidComponent-81jr28u4.js → MermaidComponent-D7vhkpka.js} +3 -3
  2. package/dist/{MermaidComponent-81jr28u4.js.map → MermaidComponent-D7vhkpka.js.map} +1 -1
  3. package/dist/alert-MQ47wy7f.js +388 -0
  4. package/dist/alert-MQ47wy7f.js.map +1 -0
  5. package/dist/chat-ui.d.ts +129 -23
  6. package/dist/chat-ui.js +2596 -1591
  7. package/dist/chat-ui.js.map +1 -1
  8. package/dist/{types-DWA3enV6.d.ts → collection-view-fields-D3cysHNT.d.ts} +87 -37
  9. package/dist/collection-view-grouping-D4nZk8-3.js +90 -0
  10. package/dist/collection-view-grouping-D4nZk8-3.js.map +1 -0
  11. package/dist/collection-view-search-CpjJy76w.js +1973 -0
  12. package/dist/collection-view-search-CpjJy76w.js.map +1 -0
  13. package/dist/collection-view.d.ts +4 -0
  14. package/dist/collection-view.js +2 -0
  15. package/dist/{data-table-stats-row-CpRe_xK2.js → data-table-stats-row-64magT2g.js} +2 -2
  16. package/dist/{data-table-stats-row-CpRe_xK2.js.map → data-table-stats-row-64magT2g.js.map} +1 -1
  17. package/dist/data-table.d.ts +29 -7
  18. package/dist/data-table.js +1043 -878
  19. package/dist/data-table.js.map +1 -1
  20. package/dist/diff-bubble-DewUd_2w.js +61 -0
  21. package/dist/diff-bubble-DewUd_2w.js.map +1 -0
  22. package/dist/{diff-drawer-45rpk3aq.js → diff-drawer-IYpQ-QQK.js} +264 -242
  23. package/dist/diff-drawer-IYpQ-QQK.js.map +1 -0
  24. package/dist/diff-viewer-C-0VAt9P.js +574 -0
  25. package/dist/diff-viewer-C-0VAt9P.js.map +1 -0
  26. package/dist/diff.d.ts +11 -0
  27. package/dist/diff.js +107 -98
  28. package/dist/diff.js.map +1 -1
  29. package/dist/display-sort-control-f3rbILsV.js +588 -0
  30. package/dist/display-sort-control-f3rbILsV.js.map +1 -0
  31. package/dist/drop-indicator-HjlBSIeV.js +27 -0
  32. package/dist/drop-indicator-HjlBSIeV.js.map +1 -0
  33. package/dist/edit-mode-data-table-DnMB2jiy.js +1449 -0
  34. package/dist/edit-mode-data-table-DnMB2jiy.js.map +1 -0
  35. package/dist/host-storage-BIo5azql.js +31 -0
  36. package/dist/host-storage-BIo5azql.js.map +1 -0
  37. package/dist/host-storage-J0089Hyk.d.ts +17 -0
  38. package/dist/{slider-hwHYe98I.js → icon-options-Tt6Wzhtv.js} +86 -201
  39. package/dist/icon-options-Tt6Wzhtv.js.map +1 -0
  40. package/dist/{index-Bfddrlz8.d.ts → index-B79hwNcB.d.ts} +66 -14
  41. package/dist/index-CKsd23jv.d.ts +80 -0
  42. package/dist/{index-CbtbcvKm.d.ts → index-DlmvvQ6x.d.ts} +1 -1
  43. package/dist/index-ICoad2I_.d.ts +282 -0
  44. package/dist/index.d.ts +63 -22
  45. package/dist/index.js +1149 -1054
  46. package/dist/index.js.map +1 -1
  47. package/dist/kanban-renderer.d.ts +3 -326
  48. package/dist/kanban-renderer.js +980 -596
  49. package/dist/kanban-renderer.js.map +1 -1
  50. package/dist/list-row-Z4SHkseA.js +1195 -0
  51. package/dist/list-row-Z4SHkseA.js.map +1 -0
  52. package/dist/markdown-editor-Dd4mor7l.js +3236 -0
  53. package/dist/markdown-editor-Dd4mor7l.js.map +1 -0
  54. package/dist/{mermaid-renderer-DImi0fDp.js → mermaid-renderer-0PmNkOXI.js} +29 -29
  55. package/dist/mermaid-renderer-0PmNkOXI.js.map +1 -0
  56. package/dist/mermaid.js +1 -1
  57. package/dist/number-input-7K66wnSC.js +63 -0
  58. package/dist/number-input-7K66wnSC.js.map +1 -0
  59. package/dist/{param-editor-BQd4AOUP.js → param-editor-Dnix-fJo.js} +2 -2
  60. package/dist/{param-editor-BQd4AOUP.js.map → param-editor-Dnix-fJo.js.map} +1 -1
  61. package/dist/{param-editor-field-BJ_rLUnV.js → param-editor-field-B3vLST-B.js} +1436 -1427
  62. package/dist/param-editor-field-B3vLST-B.js.map +1 -0
  63. package/dist/param-editor.js +4 -3
  64. package/dist/prism-OG4H7Hu4.js +334 -0
  65. package/dist/prism-OG4H7Hu4.js.map +1 -0
  66. package/dist/queued-follow-up-Bj_vtMgd.js +208 -0
  67. package/dist/queued-follow-up-Bj_vtMgd.js.map +1 -0
  68. package/dist/{resource-badge-95WPVlZf.d.ts → resource-badge-nOWPqxFU.d.ts} +1 -0
  69. package/dist/rich-text-BgEnAHr2.js +1160 -0
  70. package/dist/rich-text-BgEnAHr2.js.map +1 -0
  71. package/dist/rich-text.d.ts +2 -2
  72. package/dist/rich-text.js +4 -2
  73. package/dist/style.css +1 -1
  74. package/dist/terminal.d.ts +5 -63
  75. package/dist/terminal.js +102 -122
  76. package/dist/terminal.js.map +1 -1
  77. package/dist/{theme-CbmSEbRF.js → theme-CMJdH59Z.js} +589 -265
  78. package/dist/theme-CMJdH59Z.js.map +1 -0
  79. package/dist/theme-kKuLN2jb.js +80 -0
  80. package/dist/theme-kKuLN2jb.js.map +1 -0
  81. package/dist/theme-preference-BV4cbJNB.js +115 -0
  82. package/dist/theme-preference-BV4cbJNB.js.map +1 -0
  83. package/dist/theme.js +3 -2
  84. package/dist/tree-list-jarhD31R.js +1652 -0
  85. package/dist/tree-list-jarhD31R.js.map +1 -0
  86. package/dist/use-virtualizer-uj43XjBp.js +10 -0
  87. package/dist/use-virtualizer-uj43XjBp.js.map +1 -0
  88. package/dist/{workspace-badge-Brm3Xr3m.d.ts → workspace-badge-BKtB805G.d.ts} +5 -1
  89. package/package.json +8 -4
  90. package/dist/diff-bubble-DZsarmSG.js +0 -61
  91. package/dist/diff-bubble-DZsarmSG.js.map +0 -1
  92. package/dist/diff-drawer-45rpk3aq.js.map +0 -1
  93. package/dist/diff-viewer-BP_mI6Wx.js +0 -558
  94. package/dist/diff-viewer-BP_mI6Wx.js.map +0 -1
  95. package/dist/list-row-uqD-q4gv.js +0 -1018
  96. package/dist/list-row-uqD-q4gv.js.map +0 -1
  97. package/dist/mermaid-renderer-DImi0fDp.js.map +0 -1
  98. package/dist/param-editor-field-BJ_rLUnV.js.map +0 -1
  99. package/dist/prism-BStPsJSB.js +0 -658
  100. package/dist/prism-BStPsJSB.js.map +0 -1
  101. package/dist/rich-text-VYAmEigU.js +0 -6979
  102. package/dist/rich-text-VYAmEigU.js.map +0 -1
  103. package/dist/slider-hwHYe98I.js.map +0 -1
  104. package/dist/theme-CbmSEbRF.js.map +0 -1
  105. package/dist/theme-preference-pzfuK5cH.js +0 -101
  106. package/dist/theme-preference-pzfuK5cH.js.map +0 -1
  107. package/dist/tree-list-BNZwjQZA.js +0 -1616
  108. package/dist/tree-list-BNZwjQZA.js.map +0 -1
@@ -0,0 +1,1973 @@
1
+ import { n as e, t } from "./scroll-area-Cr1lNXAr.js";
2
+ import { a as n, r, t as i, u as a } from "./list-row-Z4SHkseA.js";
3
+ import { t as o } from "./icon-options-Tt6Wzhtv.js";
4
+ import { i as s, n as c, r as l } from "./host-storage-BIo5azql.js";
5
+ import { n as u, r as d, t as f } from "./number-input-7K66wnSC.js";
6
+ import { Box as p, Button as m, Dialog as h, Editable as g, HStack as _, Icon as v, IconButton as y, Input as b, Popover as x, Portal as S, Stack as C, Tabs as w, Text as T } from "@chakra-ui/react";
7
+ import { c as E } from "react/compiler-runtime";
8
+ import { Fragment as D, jsx as O, jsxs as k } from "react/jsx-runtime";
9
+ import { createContext as A, useContext as j, useEffect as M, useRef as N, useState as P } from "react";
10
+ import { Calendar as F, Check as I, ChevronDown as L, ChevronRight as R, CircleDashed as z, Copy as B, Hash as V, LayersPlus as H, ListFilter as U, Pencil as W, Plus as G, RotateCcw as K, Search as ee, SquareCheck as te, Tags as ne, Trash2 as re, Type as ie, UserRound as ae, X as q } from "lucide-react";
11
+ import { useStore as oe } from "zustand";
12
+ import { persist as se } from "zustand/middleware";
13
+ import { createStore as ce } from "zustand/vanilla";
14
+ import { VIEW_FILTER_CONDITIONS as le, normalizeBooleanViewRule as J } from "@pstdio/sdk/extensions";
15
+ //#region src/components/collection-view/advanced-filter.ts
16
+ var ue = (e) => e.conjunction === "or" ? {
17
+ conjunction: "and",
18
+ rules: [],
19
+ groups: [{
20
+ conjunction: "or",
21
+ rules: e.rules
22
+ }]
23
+ } : e, de = (e, t, n) => {
24
+ let r = e.groups ?? [], i = n === void 0 ? r.filter((e, n) => n !== t) : r.map((e, r) => r === t ? n : e), { groups: a, ...o } = e;
25
+ return i.length ? {
26
+ ...o,
27
+ groups: i
28
+ } : o;
29
+ }, fe = (e) => ({
30
+ ...e,
31
+ groups: [...e.groups ?? [], {
32
+ conjunction: "and",
33
+ rules: []
34
+ }]
35
+ }), pe = "none", me = (e) => !Array.isArray(e), he = (e) => !Array.isArray(e), ge = {
36
+ viewMode: "board",
37
+ columnGrouping: pe,
38
+ rowGrouping: pe,
39
+ displayProperties: []
40
+ }, _e = (e, t) => {
41
+ if (t && t !== "none") return e.find((e) => e.id === t);
42
+ }, ve = (e) => {
43
+ let t = /* @__PURE__ */ new Set();
44
+ return e.filter((e) => !t.has(e.value) && (t.add(e.value), !0));
45
+ }, ye = (e) => e.kind !== "enum" && e.kind !== "enum-multi" ? [] : ve(me(e.options) ? e.options.getSnapshot() : e.options), be = (e) => e.replaceAll("_", " ").split(" ").filter((e) => e.length > 0).map((e) => e[0].toUpperCase() + e.slice(1)).join(" "), xe = (e, t) => {
46
+ if (e.kind === "enum" || e.kind === "enum-multi") return ye(e).find((e) => e.value === t);
47
+ }, Se = (e, t) => xe(e, t)?.label ?? be(t), Ce = {
48
+ id: "title",
49
+ label: "Title",
50
+ type: { kind: "string" },
51
+ filterable: !0,
52
+ sortable: !0
53
+ }, we = (e) => e.some((e) => e.id === Ce.id) ? e : [Ce, ...e], Y = (e, t) => e.find((e) => e.id === t), Te = (e) => e.type.kind === "enum" || e.type.kind === "enum-multi" || e.type.kind === "user", Ee = (e) => e.sortable === !0 && e.type.kind !== "enum-multi", De = (e) => le[e.type.kind], Oe = {
54
+ "is-any-of": "has-any-of",
55
+ "has-any-of": "is-any-of",
56
+ "is-none-of": "has-none-of",
57
+ "has-none-of": "is-none-of"
58
+ }, ke = (e, t) => {
59
+ let n = De(e);
60
+ if (n.includes(t)) return t;
61
+ let r = Oe[t];
62
+ return r && n.includes(r) ? r : void 0;
63
+ }, X = (e, t) => {
64
+ let n = t === Ce ? e.title : e.attributes[t.id];
65
+ return t.type.kind === "enum-multi" ? Array.isArray(n) ? n.filter((e) => typeof e == "string") : [] : n;
66
+ }, Z = (e, t) => {
67
+ let n = X(e, t);
68
+ return t.type.kind === "boolean" ? typeof n == "boolean" ? [String(n)] : [] : t.type.kind === "enum-multi" ? n : n == null ? [] : typeof n == "string" ? n === "" ? [] : [n] : typeof n == "number" || typeof n == "boolean" ? [String(n)] : [];
69
+ }, Ae = /^(\d{4})-(\d{2})-(\d{2})$/, je = (e) => {
70
+ if (typeof e != "string" && typeof e != "number") return;
71
+ let t = typeof e == "string" ? Ae.exec(e) : null, n = t ? new Date(Number(t[1]), Number(t[2]) - 1, Number(t[3])) : new Date(e);
72
+ return Number.isNaN(n.getTime()) ? void 0 : n;
73
+ }, Me = (e, t) => {
74
+ let n = Z(e, t);
75
+ if (t.type.kind === "enum" || t.type.kind === "enum-multi") return n.map((e) => Se(t.type, e));
76
+ if (t.type.kind !== "date") return n;
77
+ let r = je(X(e, t));
78
+ return r ? [r.toLocaleDateString()] : n;
79
+ }, Ne = (e) => De(e)[0], Pe = (e) => ({
80
+ attributeId: e.id,
81
+ condition: Ne(e),
82
+ ...e.type.kind === "boolean" ? { value: !0 } : {}
83
+ }), Q = (e, t, n) => ({
84
+ ...e,
85
+ rules: n === void 0 ? e.rules.filter((e, n) => n !== t) : e.rules.map((e, r) => r === t ? n : e)
86
+ }), Fe = (e, t) => ({
87
+ ...e,
88
+ rules: [...e.rules, t]
89
+ }), Ie = (e, t) => ({
90
+ ...e,
91
+ conjunction: t
92
+ }), Le = (e, t, n) => {
93
+ if (e.type.kind === "boolean" && typeof n == "boolean") {
94
+ let r = t.condition === "is-not";
95
+ return {
96
+ attributeId: e.id,
97
+ condition: r ? "is-not" : "is",
98
+ value: r ? !n : n
99
+ };
100
+ }
101
+ let r = t.condition;
102
+ if (Array.isArray(n) && (r === "is-empty" || r === "is-not-empty")) {
103
+ let t = r === "is-not-empty";
104
+ r = e.type.kind === "enum-multi" ? t ? "has-none-of" : "has-any-of" : t ? "is-none-of" : "is-any-of";
105
+ }
106
+ return {
107
+ ...t,
108
+ condition: r,
109
+ value: n
110
+ };
111
+ }, Re = A("Item"), ze = () => j(Re), Be = {
112
+ string: ie,
113
+ number: V,
114
+ date: F,
115
+ boolean: te,
116
+ enum: z,
117
+ "enum-multi": ne,
118
+ user: ae
119
+ }, Ve = (e) => Be[e.type.kind], He = (e) => {
120
+ let t = E(3), { children: n } = e, r;
121
+ t[0] === Symbol.for("react.memo_cache_sentinel") ? (r = /* @__PURE__ */ O(d, { name: "Value" }), t[0] = r) : r = t[0];
122
+ let i;
123
+ return t[1] === n ? i = t[2] : (i = /* @__PURE__ */ k(C, {
124
+ height: "full",
125
+ minH: "0",
126
+ gap: "xs",
127
+ padding: "sm",
128
+ minW: "0",
129
+ children: [r, n]
130
+ }), t[1] = n, t[2] = i), i;
131
+ }, Ue = (e) => Array.isArray(e) ? e : e === void 0 ? [] : [e], $ = (e) => {
132
+ let t = E(57), { options: n, value: i, onSelect: a, multiple: o, placeholder: s, width: c, showSearch: l } = e, u = o !== void 0 && o, d = s === void 0 ? "Choose…" : s, f, p, h, g, _, y, b, x, S, C, w, D, A, j, M;
133
+ if (t[0] !== u || t[1] !== a || t[2] !== n || t[3] !== d || t[4] !== e || t[5] !== l || t[6] !== i) {
134
+ let o = Ue(i);
135
+ g = n.filter((e) => o.includes(e.value)), h = g.map(We).join(", ") || d, p = g.length === 1 ? g[0]?.icon : void 0, f = r, x = !1, S = e.open, t[22] === e ? C = t[23] : (C = e.onOpenChange ? (t) => e.onOpenChange?.(t.open) : void 0, t[22] = e, t[23] = C), t[24] === Symbol.for("react.memo_cache_sentinel") ? (w = {
136
+ strategy: "fixed",
137
+ hideWhenDetached: !0
138
+ }, t[24] = w) : w = t[24], D = u, A = !u, j = l ?? n.length > 8, M = "Search…", t[25] === Symbol.for("react.memo_cache_sentinel") ? (_ = /* @__PURE__ */ O(T, {
139
+ textStyle: "label/S/regular",
140
+ color: "fg.muted",
141
+ padding: "xs",
142
+ children: "No matches"
143
+ }), t[25] = _) : _ = t[25], y = "14rem", b = n.map((e) => ({
144
+ id: e.value,
145
+ label: e.label,
146
+ icon: e.icon,
147
+ iconColor: e.iconColor,
148
+ variant: "compact",
149
+ secondaryLabel: e.count && e.count > 0 ? String(e.count) : void 0,
150
+ isDisabled: e.disabled,
151
+ isSelected: o.includes(e.value),
152
+ onSelect: () => a(e.value)
153
+ })), t[0] = u, t[1] = a, t[2] = n, t[3] = d, t[4] = e, t[5] = l, t[6] = i, t[7] = f, t[8] = p, t[9] = h, t[10] = g, t[11] = _, t[12] = y, t[13] = b, t[14] = x, t[15] = S, t[16] = C, t[17] = w, t[18] = D, t[19] = A, t[20] = j, t[21] = M;
154
+ } else f = t[7], p = t[8], h = t[9], g = t[10], _ = t[11], y = t[12], b = t[13], x = t[14], S = t[15], C = t[16], w = t[17], D = t[18], A = t[19], j = t[20], M = t[21];
155
+ let N = e["aria-label"], P = e.variant ?? "subtle", F = e.size ?? "2xs", I;
156
+ t[26] !== p || t[27] !== e.showSelectedIcon || t[28] !== g ? (I = p && e.showSelectedIcon !== !1 ? /* @__PURE__ */ O(v, {
157
+ as: p,
158
+ color: g[0]?.iconColor ?? "fg.muted"
159
+ }) : null, t[26] = p, t[27] = e.showSelectedIcon, t[28] = g, t[29] = I) : I = t[29];
160
+ let R = e.size === "sm" ? "label/S/regular" : "label/XS", z = e.selectedLabel ?? h, B;
161
+ t[30] !== R || t[31] !== z ? (B = /* @__PURE__ */ O(T, {
162
+ as: "span",
163
+ flex: "1",
164
+ minW: "0",
165
+ textAlign: "start",
166
+ textStyle: R,
167
+ truncate: !0,
168
+ children: z
169
+ }), t[30] = R, t[31] = z, t[32] = B) : B = t[32];
170
+ let V;
171
+ t[33] === e.variant ? V = t[34] : (V = e.variant !== "filter-segment" && e.variant !== "filter-condition" ? /* @__PURE__ */ O(v, {
172
+ as: L,
173
+ color: "fg.subtle"
174
+ }) : null, t[33] = e.variant, t[34] = V);
175
+ let H;
176
+ t[35] !== N || t[36] !== P || t[37] !== F || t[38] !== I || t[39] !== B || t[40] !== V || t[41] !== c ? (H = /* @__PURE__ */ k(m, {
177
+ "aria-label": N,
178
+ variant: P,
179
+ size: F,
180
+ width: c,
181
+ minW: "0",
182
+ justifyContent: "flex-start",
183
+ gap: "2xs",
184
+ flexShrink: 0,
185
+ children: [
186
+ I,
187
+ B,
188
+ V
189
+ ]
190
+ }), t[35] = N, t[36] = P, t[37] = F, t[38] = I, t[39] = B, t[40] = V, t[41] = c, t[42] = H) : H = t[42];
191
+ let U;
192
+ return t[43] !== f || t[44] !== _ || t[45] !== y || t[46] !== b || t[47] !== x || t[48] !== H || t[49] !== S || t[50] !== C || t[51] !== w || t[52] !== D || t[53] !== A || t[54] !== j || t[55] !== M ? (U = /* @__PURE__ */ O(f, {
193
+ portalled: x,
194
+ open: S,
195
+ onOpenChange: C,
196
+ positioning: w,
197
+ multiple: D,
198
+ closeOnSelect: A,
199
+ showSearch: j,
200
+ searchPlaceholder: M,
201
+ emptyState: _,
202
+ width: y,
203
+ items: b,
204
+ trigger: H
205
+ }), t[43] = f, t[44] = _, t[45] = y, t[46] = b, t[47] = x, t[48] = H, t[49] = S, t[50] = C, t[51] = w, t[52] = D, t[53] = A, t[54] = j, t[55] = M, t[56] = U) : U = t[56], U;
206
+ };
207
+ function We(e) {
208
+ return e.label;
209
+ }
210
+ //#endregion
211
+ //#region src/components/collection-view/collection-view-labels.ts
212
+ var Ge = {
213
+ contains: "contains",
214
+ "does-not-contain": "does not contain",
215
+ is: "is",
216
+ "is-not": "is not",
217
+ gt: ">",
218
+ gte: "≥",
219
+ lt: "<",
220
+ lte: "≤",
221
+ "is-before": "is before",
222
+ "is-after": "is after",
223
+ "is-on-or-before": "is on or before",
224
+ "is-on-or-after": "is on or after",
225
+ "is-any-of": "is any of",
226
+ "is-none-of": "is none of",
227
+ "has-any-of": "has any of",
228
+ "has-all-of": "has all of",
229
+ "has-none-of": "has none of",
230
+ "is-empty": "is empty",
231
+ "is-not-empty": "is not empty"
232
+ }, Ke = (e, t) => t?.type.kind === "number" && e === "is" ? "=" : t?.type.kind === "number" && e === "is-not" ? "≠" : Ge[e], qe = (e, t) => {
233
+ if (t?.type.kind === "boolean" && e.value === !1 && (e.condition === "is" || e.condition === "is-not")) return Ke(e.condition === "is" ? "is-not" : "is");
234
+ let n = Array.isArray(e.value) && e.value.length === 1;
235
+ return Array.isArray(e.value) && e.value.length > 1 && ["is-any-of", "has-any-of"].includes(e.condition) ? "is any of" : ["is-none-of", "has-none-of"].includes(e.condition) ? "is not" : n && e.condition === "is-any-of" ? "is" : n && e.condition === "is-none-of" ? "is not" : Ke(e.condition, t);
236
+ }, Je = /^today([+-])(\d+)$/, Ye = (e) => {
237
+ if (e === "today") return "today";
238
+ let t = Je.exec(e);
239
+ if (t) {
240
+ let e = Number(t[2]), n = e === 1 ? "day" : "days";
241
+ return t[1] === "-" ? `${e} ${n} ago` : `in ${e} ${n}`;
242
+ }
243
+ let n = /* @__PURE__ */ new Date(`${e}T00:00:00`);
244
+ return Number.isNaN(n.getTime()) ? e : n.toLocaleDateString();
245
+ }, Xe = (e, t) => e ? Se(e.type, t) : t, Ze = (e, t) => {
246
+ let { value: n } = e;
247
+ return n === void 0 ? "" : t?.type.kind === "boolean" && typeof n == "boolean" ? t.label : Array.isArray(n) ? n.map((e) => Xe(t, e)).join(", ") : t?.type.kind === "date" && typeof n == "string" ? Ye(n) : String(n);
248
+ }, Qe = {
249
+ boolean: ["False first", "True first"],
250
+ number: ["1 → 9", "9 → 1"],
251
+ date: ["Oldest first", "Newest first"],
252
+ enum: ["Option order", "Reverse order"]
253
+ }, $e = (e, t) => {
254
+ let [n, r] = Qe[e?.type.kind ?? ""] ?? ["A → Z", "Z → A"];
255
+ return t === "asc" ? n : r;
256
+ }, et = A(!1), tt = (e) => {
257
+ let t = E(28), { open: n, onOpenChange: r, anchorRef: i, width: a, placement: o, padding: s, testId: c, children: l } = e, u = o === void 0 ? "bottom-start" : o, d = s === void 0 ? "2xs" : s, f = N(null), p = j(et), m, h;
258
+ t[0] !== i || t[1] !== r || t[2] !== n ? (m = () => {
259
+ if (!n) return;
260
+ let e = (e) => {
261
+ let t = e.target;
262
+ t instanceof Node && (f.current?.contains(t) || i.current?.contains(t) || r(!1));
263
+ };
264
+ return document.addEventListener("pointerdown", e), () => document.removeEventListener("pointerdown", e);
265
+ }, h = [
266
+ n,
267
+ i,
268
+ r
269
+ ], t[0] = i, t[1] = r, t[2] = n, t[3] = m, t[4] = h) : (m = t[3], h = t[4]), M(m, h);
270
+ let g;
271
+ t[5] === Symbol.for("react.memo_cache_sentinel") ? (g = { mainAxis: 8 }, t[5] = g) : g = t[5];
272
+ let _;
273
+ t[6] === i ? _ = t[7] : (_ = () => i.current, t[6] = i, t[7] = _);
274
+ let v;
275
+ t[8] !== u || t[9] !== _ ? (v = {
276
+ placement: u,
277
+ strategy: "fixed",
278
+ hideWhenDetached: !0,
279
+ offset: g,
280
+ getAnchorElement: _
281
+ }, t[8] = u, t[9] = _, t[10] = v) : v = t[10];
282
+ let y;
283
+ t[11] === r ? y = t[12] : (y = (e) => r(e.open), t[11] = r, t[12] = y);
284
+ let b;
285
+ t[13] === l ? b = t[14] : (b = /* @__PURE__ */ O(et, {
286
+ value: !0,
287
+ children: l
288
+ }), t[13] = l, t[14] = b);
289
+ let C;
290
+ t[15] !== d || t[16] !== b || t[17] !== c || t[18] !== a ? (C = /* @__PURE__ */ O(x.Positioner, { children: /* @__PURE__ */ O(x.Content, {
291
+ ref: f,
292
+ "data-testid": c,
293
+ width: a,
294
+ maxWidth: "calc(100vw - 32px)",
295
+ padding: d,
296
+ gap: "0",
297
+ overflow: "visible",
298
+ children: b
299
+ }) }), t[15] = d, t[16] = b, t[17] = c, t[18] = a, t[19] = C) : C = t[19];
300
+ let w;
301
+ t[20] !== p || t[21] !== C ? (w = /* @__PURE__ */ O(S, {
302
+ disabled: p,
303
+ children: C
304
+ }), t[20] = p, t[21] = C, t[22] = w) : w = t[22];
305
+ let T;
306
+ return t[23] !== n || t[24] !== w || t[25] !== v || t[26] !== y ? (T = /* @__PURE__ */ O(x.Root, {
307
+ open: n,
308
+ lazyMount: !0,
309
+ unmountOnExit: !0,
310
+ closeOnInteractOutside: !1,
311
+ positioning: v,
312
+ onOpenChange: y,
313
+ children: w
314
+ }), t[23] = n, t[24] = w, t[25] = v, t[26] = y, t[27] = T) : T = t[27], T;
315
+ }, nt = /^\d{4}-\d{2}-\d{2}$/, rt = (e) => {
316
+ let t = E(9), { rule: n, onChange: r } = e, i = typeof n.value == "number" ? n.value : void 0, a = i === void 0 ? "" : String(i), o;
317
+ t[0] !== a || t[1] !== i ? (o = {
318
+ source: i,
319
+ text: a
320
+ }, t[0] = a, t[1] = i, t[2] = o) : o = t[2];
321
+ let [s, c] = P(o);
322
+ s.source !== i && c({
323
+ source: i,
324
+ text: i === void 0 ? "" : String(i)
325
+ });
326
+ let l;
327
+ t[3] === r ? l = t[4] : (l = (e) => {
328
+ let t = Number.isFinite(e.valueAsNumber) ? e.valueAsNumber : void 0;
329
+ c({
330
+ source: t,
331
+ text: e.value
332
+ }), r(t);
333
+ }, t[3] = r, t[4] = l);
334
+ let d;
335
+ t[5] === Symbol.for("react.memo_cache_sentinel") ? (d = /* @__PURE__ */ O(f, { "aria-label": "Value" }), t[5] = d) : d = t[5];
336
+ let p;
337
+ return t[6] !== s.text || t[7] !== l ? (p = /* @__PURE__ */ O(u, {
338
+ size: "sm",
339
+ width: "full",
340
+ value: s.text,
341
+ onValueChange: l,
342
+ children: d
343
+ }), t[6] = s.text, t[7] = l, t[8] = p) : p = t[8], p;
344
+ }, it = (e) => {
345
+ let t = E(10), { field: n, rule: r, onChange: i } = e, a = typeof r.value == "string" ? r.value : "";
346
+ if (n.type.kind === "date") {
347
+ let e = nt.test(a) ? a : "", n;
348
+ t[0] === i ? n = t[1] : (n = (e) => i(e.target.value || void 0), t[0] = i, t[1] = n);
349
+ let r;
350
+ return t[2] !== e || t[3] !== n ? (r = /* @__PURE__ */ O(He, { children: /* @__PURE__ */ O(b, {
351
+ "aria-label": "Value",
352
+ type: "date",
353
+ size: "sm",
354
+ width: "full",
355
+ value: e,
356
+ onChange: n
357
+ }) }), t[2] = e, t[3] = n, t[4] = r) : r = t[4], r;
358
+ }
359
+ let o;
360
+ return t[5] !== n.type.kind || t[6] !== i || t[7] !== e || t[8] !== a ? (o = /* @__PURE__ */ O(He, { children: n.type.kind === "number" ? /* @__PURE__ */ O(rt, { ...e }) : /* @__PURE__ */ O(b, {
361
+ "aria-label": "Value",
362
+ size: "sm",
363
+ placeholder: "Enter text…",
364
+ width: "full",
365
+ value: a,
366
+ onChange: (e) => i(e.target.value)
367
+ }) }), t[5] = n.type.kind, t[6] = i, t[7] = e, t[8] = a, t[9] = o) : o = t[9], o;
368
+ }, at = (e) => {
369
+ let t = E(20), { rule: n, variant: r } = e, [i, a] = P(!1), o = N(null), s = e.open ?? i, c = e.onOpenChange ?? a, l = r ?? "subtle", u;
370
+ t[0] !== s || t[1] !== c ? (u = () => c(!s), t[0] = s, t[1] = c, t[2] = u) : u = t[2];
371
+ let d;
372
+ t[3] === n.value ? d = t[4] : (d = typeof n.value == "string" ? Ye(n.value) : "Choose date…", t[3] = n.value, t[4] = d);
373
+ let f;
374
+ t[5] === d ? f = t[6] : (f = /* @__PURE__ */ O(T, {
375
+ textStyle: "label/XS",
376
+ children: d
377
+ }), t[5] = d, t[6] = f);
378
+ let p;
379
+ t[7] !== l || t[8] !== u || t[9] !== f ? (p = /* @__PURE__ */ O(m, {
380
+ ref: o,
381
+ "aria-label": "Values",
382
+ variant: l,
383
+ size: "2xs",
384
+ onClick: u,
385
+ children: f
386
+ }), t[7] = l, t[8] = u, t[9] = f, t[10] = p) : p = t[10];
387
+ let h;
388
+ t[11] === e ? h = t[12] : (h = /* @__PURE__ */ O(it, { ...e }), t[11] = e, t[12] = h);
389
+ let g;
390
+ t[13] !== s || t[14] !== c || t[15] !== h ? (g = /* @__PURE__ */ O(tt, {
391
+ open: s,
392
+ onOpenChange: c,
393
+ anchorRef: o,
394
+ width: "18rem",
395
+ padding: "0",
396
+ children: h
397
+ }), t[13] = s, t[14] = c, t[15] = h, t[16] = g) : g = t[16];
398
+ let _;
399
+ return t[17] !== p || t[18] !== g ? (_ = /* @__PURE__ */ k(D, { children: [p, g] }), t[17] = p, t[18] = g, t[19] = _) : _ = t[19], _;
400
+ }, ot = (e, t) => t.condition === "is-empty" || t.condition === "is-not-empty" ? [
401
+ "enum",
402
+ "enum-multi",
403
+ "user"
404
+ ].includes(e.type.kind) ? "options" : "none" : Array.isArray(t.value) ? "options" : e.type.kind === "boolean" ? "boolean" : e.type.kind === "number" ? "number" : e.type.kind === "date" ? "day" : e.type.kind === "string" ? "text" : "options", st = (e, t) => e.includes(t) ? e.filter((e) => e !== t) : [...e, t], ct = (e, t) => [...e, ...lt(t).filter((t) => !e.some((e) => e.value === t)).map((e) => ({
405
+ value: e,
406
+ label: e
407
+ }))], lt = (e) => Array.isArray(e.value) ? e.value : [], ut = (e) => {
408
+ let t = E(7), { rule: n, onChange: r, width: i } = e, a = e.variant === "filter-segment" ? "borderless" : "outline", o = typeof n.value == "number" ? String(n.value) : "", s;
409
+ t[0] === r ? s = t[1] : (s = (e) => r(e.target.value === "" ? void 0 : Number(e.target.value)), t[0] = r, t[1] = s);
410
+ let c;
411
+ return t[2] !== a || t[3] !== o || t[4] !== s || t[5] !== i ? (c = /* @__PURE__ */ O(b, {
412
+ "aria-label": "Value",
413
+ type: "number",
414
+ variant: a,
415
+ size: "2xs",
416
+ width: i,
417
+ value: o,
418
+ onChange: s
419
+ }), t[2] = a, t[3] = o, t[4] = s, t[5] = i, t[6] = c) : c = t[6], c;
420
+ }, dt = (e) => {
421
+ let t = E(6), { rule: n, onChange: r, width: i } = e, a = typeof n.value == "string" ? n.value : "", o;
422
+ t[0] === r ? o = t[1] : (o = (e) => r(e.target.value), t[0] = r, t[1] = o);
423
+ let s;
424
+ return t[2] !== a || t[3] !== o || t[4] !== i ? (s = /* @__PURE__ */ O(b, {
425
+ "aria-label": "Value",
426
+ size: "2xs",
427
+ width: i,
428
+ value: a,
429
+ onChange: o
430
+ }), t[2] = a, t[3] = o, t[4] = i, t[5] = s) : s = t[5], s;
431
+ }, ft = (e) => {
432
+ let t = E(13), { rule: n, onChange: r, open: i, onOpenChange: a } = e, o = typeof n.value == "string" ? n.value : "", s;
433
+ t[0] === a ? s = t[1] : (s = (e) => a?.(e.edit), t[0] = a, t[1] = s);
434
+ let c, l;
435
+ t[2] === r ? (c = t[3], l = t[4]) : (c = (e) => r(e.value), l = (e) => r(e.value), t[2] = r, t[3] = c, t[4] = l);
436
+ let u, d;
437
+ t[5] === Symbol.for("react.memo_cache_sentinel") ? (u = /* @__PURE__ */ O(g.Preview, {}), d = /* @__PURE__ */ O(g.Input, { "aria-label": "Value" }), t[5] = u, t[6] = d) : (u = t[5], d = t[6]);
438
+ let f;
439
+ return t[7] !== i || t[8] !== o || t[9] !== s || t[10] !== c || t[11] !== l ? (f = /* @__PURE__ */ k(g.Root, {
440
+ size: "xs",
441
+ variant: "filter-segment",
442
+ value: o,
443
+ placeholder: "Value…",
444
+ edit: i,
445
+ activationMode: "click",
446
+ selectOnFocus: !0,
447
+ onEditChange: s,
448
+ onValueChange: c,
449
+ onValueRevert: l,
450
+ children: [u, d]
451
+ }), t[7] = i, t[8] = o, t[9] = s, t[10] = c, t[11] = l, t[12] = f) : f = t[12], f;
452
+ }, pt = (e) => {
453
+ let t = E(40), { field: n, rule: r, options: i, onChange: a } = e, o, s, c, l, u, d, f, p, m, h;
454
+ if (t[0] !== n || t[1] !== e || t[2] !== r || t[3] !== i) {
455
+ h = Symbol.for("react.early_return_sentinel");
456
+ bb0: {
457
+ let a = ct(i, r), g = ot(n, r);
458
+ if (g === "none") {
459
+ h = null;
460
+ break bb0;
461
+ }
462
+ if (g === "boolean") {
463
+ let r = e.variant === "filter-segment" ? "label/XS" : "label/S/medium", i;
464
+ t[14] !== n.label || t[15] !== r ? (i = /* @__PURE__ */ O(T, {
465
+ textStyle: r,
466
+ paddingX: "xs",
467
+ children: n.label
468
+ }), t[14] = n.label, t[15] = r, t[16] = i) : i = t[16], h = i;
469
+ break bb0;
470
+ }
471
+ if (g === "number") {
472
+ let n;
473
+ t[17] === e ? n = t[18] : (n = /* @__PURE__ */ O(ut, {
474
+ ...e,
475
+ width: "9rem"
476
+ }), t[17] = e, t[18] = n), h = n;
477
+ break bb0;
478
+ }
479
+ if (g === "text") {
480
+ let n;
481
+ t[19] === e ? n = t[20] : (n = e.variant === "filter-segment" ? /* @__PURE__ */ O(ft, { ...e }) : /* @__PURE__ */ O(dt, {
482
+ ...e,
483
+ width: "9rem"
484
+ }), t[19] = e, t[20] = n), h = n;
485
+ break bb0;
486
+ }
487
+ if (g === "day") {
488
+ let n;
489
+ t[21] === e ? n = t[22] : (n = /* @__PURE__ */ O(at, { ...e }), t[21] = e, t[22] = n), h = n;
490
+ break bb0;
491
+ }
492
+ let _ = r.condition === "is-empty" || r.condition === "is-not-empty" ? "Empty" : void 0, v = r.condition === "has-all-of" ? `all of ${a.filter((e) => lt(r).includes(e.value)).map(gt).join(", ")}` : _;
493
+ o = $, s = "Values", c = v, l = !0, u = e.variant, d = e.variant === "filter-segment" ? void 0 : "9rem", f = e.open, p = e.onOpenChange, m = a.map(_t);
494
+ }
495
+ t[0] = n, t[1] = e, t[2] = r, t[3] = i, t[4] = o, t[5] = s, t[6] = c, t[7] = l, t[8] = u, t[9] = d, t[10] = f, t[11] = p, t[12] = m, t[13] = h;
496
+ } else o = t[4], s = t[5], c = t[6], l = t[7], u = t[8], d = t[9], f = t[10], p = t[11], m = t[12], h = t[13];
497
+ if (h !== Symbol.for("react.early_return_sentinel")) return h;
498
+ let g;
499
+ t[23] === r ? g = t[24] : (g = lt(r), t[23] = r, t[24] = g);
500
+ let _;
501
+ t[25] !== a || t[26] !== r ? (_ = (e) => a(st(lt(r), e)), t[25] = a, t[26] = r, t[27] = _) : _ = t[27];
502
+ let v;
503
+ return t[28] !== o || t[29] !== s || t[30] !== c || t[31] !== _ || t[32] !== l || t[33] !== u || t[34] !== d || t[35] !== f || t[36] !== p || t[37] !== m || t[38] !== g ? (v = /* @__PURE__ */ O(o, {
504
+ "aria-label": s,
505
+ selectedLabel: c,
506
+ multiple: l,
507
+ variant: u,
508
+ width: d,
509
+ open: f,
510
+ onOpenChange: p,
511
+ options: m,
512
+ value: g,
513
+ onSelect: _
514
+ }), t[28] = o, t[29] = s, t[30] = c, t[31] = _, t[32] = l, t[33] = u, t[34] = d, t[35] = f, t[36] = p, t[37] = m, t[38] = g, t[39] = v) : v = t[39], v;
515
+ }, mt = (e) => {
516
+ let r = E(25), { rule: a, options: s, onChange: c } = e, l, u, d, f, p, m, h, g, y;
517
+ if (r[0] !== c || r[1] !== a || r[2] !== s) {
518
+ let e = ct(s, a), b = lt(a);
519
+ u = C, h = "0", g = "1", y = "0", l = t, d = "1", f = "0", r[12] === Symbol.for("react.memo_cache_sentinel") ? (p = { overscrollBehavior: "contain" }, r[12] = p) : p = r[12], m = e.map((e) => {
520
+ let t = b.includes(e.value);
521
+ return /* @__PURE__ */ O(i, {
522
+ id: e.value,
523
+ role: "checkbox",
524
+ "aria-label": e.label,
525
+ "aria-checked": t,
526
+ variant: "compact",
527
+ label: /* @__PURE__ */ k(_, {
528
+ minW: "0",
529
+ gap: "xs",
530
+ children: [e.icon ? /* @__PURE__ */ O(v, {
531
+ as: o(e.icon),
532
+ boxSize: "3",
533
+ color: e.color ? `${e.color}.500` : "fg.muted"
534
+ }) : null, /* @__PURE__ */ O(T, {
535
+ textStyle: "label/S/regular",
536
+ truncate: !0,
537
+ children: e.label
538
+ })]
539
+ }),
540
+ endContent: /* @__PURE__ */ k(_, {
541
+ gap: "xs",
542
+ children: [e.count && e.count > 0 ? /* @__PURE__ */ O(T, {
543
+ textStyle: "label/XS",
544
+ color: "fg.muted",
545
+ children: e.count
546
+ }) : null, /* @__PURE__ */ O(n, {
547
+ checked: t,
548
+ readOnly: !0,
549
+ "aria-readonly": "true",
550
+ inputProps: {
551
+ tabIndex: -1,
552
+ "aria-hidden": !0
553
+ },
554
+ pointerEvents: "none",
555
+ size: "xs"
556
+ })]
557
+ }),
558
+ onActivate: () => c(st(b, e.value))
559
+ }, e.value);
560
+ }), r[0] = c, r[1] = a, r[2] = s, r[3] = l, r[4] = u, r[5] = d, r[6] = f, r[7] = p, r[8] = m, r[9] = h, r[10] = g, r[11] = y;
561
+ } else l = r[3], u = r[4], d = r[5], f = r[6], p = r[7], m = r[8], h = r[9], g = r[10], y = r[11];
562
+ let b;
563
+ r[13] !== l || r[14] !== d || r[15] !== f || r[16] !== p || r[17] !== m ? (b = /* @__PURE__ */ O(l, {
564
+ flex: d,
565
+ minH: f,
566
+ viewportProps: p,
567
+ children: m
568
+ }), r[13] = l, r[14] = d, r[15] = f, r[16] = p, r[17] = m, r[18] = b) : b = r[18];
569
+ let x;
570
+ return r[19] !== u || r[20] !== h || r[21] !== g || r[22] !== y || r[23] !== b ? (x = /* @__PURE__ */ O(u, {
571
+ gap: h,
572
+ flex: g,
573
+ minH: y,
574
+ children: b
575
+ }), r[19] = u, r[20] = h, r[21] = g, r[22] = y, r[23] = b, r[24] = x) : x = r[24], x;
576
+ }, ht = (e) => {
577
+ let t = E(6), { field: n, rule: r } = e, i = ot(n, r);
578
+ if (i === "none") return null;
579
+ if (i === "boolean") {
580
+ let e;
581
+ return t[0] === n.label ? e = t[1] : (e = /* @__PURE__ */ O(He, { children: /* @__PURE__ */ O(T, {
582
+ textStyle: "label/S/medium",
583
+ children: n.label
584
+ }) }), t[0] = n.label, t[1] = e), e;
585
+ }
586
+ if (i === "options") {
587
+ let n;
588
+ return t[2] === e ? n = t[3] : (n = /* @__PURE__ */ O(He, { children: /* @__PURE__ */ O(mt, { ...e }) }), t[2] = e, t[3] = n), n;
589
+ }
590
+ let a;
591
+ return t[4] === e ? a = t[5] : (a = /* @__PURE__ */ O(it, { ...e }), t[4] = e, t[5] = a), a;
592
+ };
593
+ function gt(e) {
594
+ return e.label;
595
+ }
596
+ function _t(e) {
597
+ return {
598
+ ...e,
599
+ icon: e.icon ? o(e.icon) : void 0,
600
+ iconColor: e.color ? `${e.color}.500` : void 0
601
+ };
602
+ }
603
+ //#endregion
604
+ //#region src/components/collection-view/view-filter-rule-editor.tsx
605
+ var vt = (e, t) => t === "is-empty" || t === "is-not-empty" ? {
606
+ attributeId: e.attributeId,
607
+ condition: t
608
+ } : {
609
+ ...e,
610
+ condition: t
611
+ }, yt = (e) => {
612
+ let t = E(19), { field: n, rule: r, width: i, onChange: a } = e, o = r.condition === "is-empty" || r.condition === "is-not-empty", s;
613
+ t[0] === Symbol.for("react.memo_cache_sentinel") ? (s = [
614
+ "is-none-of",
615
+ "has-none-of",
616
+ "is-not-empty"
617
+ ], t[0] = s) : s = t[0];
618
+ let c = s.includes(r.condition), l = n.type.kind === "enum-multi" ? "has-any-of" : "is-any-of", u = n.type.kind === "enum-multi" ? "has-none-of" : "is-none-of", d = Array.isArray(r.value) && r.value.length > 1 ? "is any of" : "is", f;
619
+ t[1] === d ? f = t[2] : (f = {
620
+ value: "is",
621
+ label: d
622
+ }, t[1] = d, t[2] = f);
623
+ let p;
624
+ t[3] === Symbol.for("react.memo_cache_sentinel") ? (p = {
625
+ value: "is-not",
626
+ label: "is not"
627
+ }, t[3] = p) : p = t[3];
628
+ let m;
629
+ t[4] === f ? m = t[5] : (m = [f, p], t[4] = f, t[5] = m);
630
+ let h = c ? "is-not" : "is", g;
631
+ t[6] !== o || t[7] !== c || t[8] !== u || t[9] !== a || t[10] !== l || t[11] !== r ? (g = (e) => {
632
+ if (e !== (c ? "is-not" : "is")) {
633
+ if (o) {
634
+ a({
635
+ attributeId: r.attributeId,
636
+ condition: e === "is" ? "is-empty" : "is-not-empty"
637
+ });
638
+ return;
639
+ }
640
+ a({
641
+ ...r,
642
+ condition: e === "is" ? l : u
643
+ });
644
+ }
645
+ }, t[6] = o, t[7] = c, t[8] = u, t[9] = a, t[10] = l, t[11] = r, t[12] = g) : g = t[12];
646
+ let _;
647
+ return t[13] !== e.variant || t[14] !== m || t[15] !== h || t[16] !== g || t[17] !== i ? (_ = /* @__PURE__ */ O($, {
648
+ "aria-label": "Condition",
649
+ width: i,
650
+ variant: e.variant,
651
+ options: m,
652
+ value: h,
653
+ onSelect: g
654
+ }), t[13] = e.variant, t[14] = m, t[15] = h, t[16] = g, t[17] = i, t[18] = _) : _ = t[18], _;
655
+ }, bt = (e) => {
656
+ let t = E(39), { field: n, rule: r, width: i, onChange: a } = e, o = n.type.kind === "boolean";
657
+ if ([
658
+ "enum",
659
+ "enum-multi",
660
+ "user"
661
+ ].includes(n.type.kind) || Array.isArray(r.value)) {
662
+ let n;
663
+ return t[0] === e ? n = t[1] : (n = /* @__PURE__ */ O(yt, { ...e }), t[0] = e, t[1] = n), n;
664
+ }
665
+ let s;
666
+ t[2] !== o || t[3] !== r.condition || t[4] !== r.value ? (s = r.condition, o && r.value === !1 && (r.condition === "is" && (s = "is-not"), r.condition === "is-not" && (s = "is")), t[2] = o, t[3] = r.condition, t[4] = r.value, t[5] = s) : s = t[5];
667
+ let c, l, u, d, f, p, m, h;
668
+ if (t[6] !== o || t[7] !== n || t[8] !== e.onOpenChange || t[9] !== e.open || t[10] !== e.variant || t[11] !== r.condition || t[12] !== i) {
669
+ l = o ? ["is", "is-not"] : De(n);
670
+ let a = l.includes(r.condition) ? l : [r.condition, ...l];
671
+ c = $, u = "Condition", d = e.variant, f = e.open, p = e.onOpenChange, m = i;
672
+ let s;
673
+ t[21] === n ? s = t[22] : (s = (e) => ({
674
+ value: e,
675
+ label: Ke(e, n)
676
+ }), t[21] = n, t[22] = s), h = a.map(s), t[6] = o, t[7] = n, t[8] = e.onOpenChange, t[9] = e.open, t[10] = e.variant, t[11] = r.condition, t[12] = i, t[13] = c, t[14] = l, t[15] = u, t[16] = d, t[17] = f, t[18] = p, t[19] = m, t[20] = h;
677
+ } else c = t[13], l = t[14], u = t[15], d = t[16], f = t[17], p = t[18], m = t[19], h = t[20];
678
+ let g;
679
+ t[23] !== o || t[24] !== s || t[25] !== l || t[26] !== a || t[27] !== r ? (g = (e) => {
680
+ if (e === s && (!o || typeof r.value == "boolean")) return;
681
+ let t = e, n = vt(!l.includes(r.condition) && Array.isArray(r.value) ? {
682
+ attributeId: r.attributeId,
683
+ condition: r.condition
684
+ } : r, t);
685
+ if (o && (t === "is" || t === "is-not")) {
686
+ let e = r.condition === "is-not";
687
+ a({
688
+ attributeId: r.attributeId,
689
+ condition: e ? "is-not" : "is",
690
+ value: e ? t === "is-not" : t === "is"
691
+ });
692
+ return;
693
+ }
694
+ a(n);
695
+ }, t[23] = o, t[24] = s, t[25] = l, t[26] = a, t[27] = r, t[28] = g) : g = t[28];
696
+ let _;
697
+ return t[29] !== c || t[30] !== s || t[31] !== u || t[32] !== d || t[33] !== f || t[34] !== p || t[35] !== m || t[36] !== h || t[37] !== g ? (_ = /* @__PURE__ */ O(c, {
698
+ "aria-label": u,
699
+ variant: d,
700
+ open: f,
701
+ onOpenChange: p,
702
+ width: m,
703
+ options: h,
704
+ value: s,
705
+ onSelect: g
706
+ }), t[29] = c, t[30] = s, t[31] = u, t[32] = d, t[33] = f, t[34] = p, t[35] = m, t[36] = h, t[37] = g, t[38] = _) : _ = t[38], _;
707
+ }, xt = (e) => {
708
+ let t = E(8), { index: n, conjunction: r, onConjunctionChange: i } = e, a = r === "and" ? "And" : "Or";
709
+ if (n === 1 && i) {
710
+ let e;
711
+ t[0] === Symbol.for("react.memo_cache_sentinel") ? (e = [{
712
+ value: "and",
713
+ label: "And"
714
+ }, {
715
+ value: "or",
716
+ label: "Or"
717
+ }], t[0] = e) : e = t[0];
718
+ let n;
719
+ t[1] === i ? n = t[2] : (n = (e) => i(e), t[1] = i, t[2] = n);
720
+ let a;
721
+ return t[3] !== r || t[4] !== n ? (a = /* @__PURE__ */ O($, {
722
+ "aria-label": "Conjunction",
723
+ width: "3.75rem",
724
+ options: e,
725
+ value: r,
726
+ onSelect: n
727
+ }), t[3] = r, t[4] = n, t[5] = a) : a = t[5], a;
728
+ }
729
+ let o = n === 0 ? "Where" : a, s;
730
+ return t[6] === o ? s = t[7] : (s = /* @__PURE__ */ O(T, {
731
+ width: "3.75rem",
732
+ flexShrink: 0,
733
+ paddingX: "xs",
734
+ textStyle: "label/S/regular",
735
+ color: "fg.muted",
736
+ children: o
737
+ }), t[6] = o, t[7] = s), s;
738
+ }, St = (e) => {
739
+ let t = E(31), { fields: n, rule: r, optionsFor: i, onChange: a, onDelete: o } = e, s, c;
740
+ t[0] !== n || t[1] !== r ? (s = Y(n, r.attributeId), c = s ? J(r, s.type) : r, t[0] = n, t[1] = r, t[2] = s, t[3] = c) : (s = t[2], c = t[3]);
741
+ let l = c, u = ze(), d;
742
+ t[4] === e ? d = t[5] : (d = /* @__PURE__ */ O(xt, { ...e }), t[4] = e, t[5] = d);
743
+ let f;
744
+ t[6] === n ? f = t[7] : (f = n.map(Ct), t[6] = n, t[7] = f);
745
+ let p = s?.type.kind === "boolean" && typeof l.value == "boolean" ? u : void 0, m;
746
+ t[8] !== n || t[9] !== a || t[10] !== l.attributeId ? (m = (e) => {
747
+ let t = Y(n, e);
748
+ t && e !== l.attributeId && a(Pe(t));
749
+ }, t[8] = n, t[9] = a, t[10] = l.attributeId, t[11] = m) : m = t[11];
750
+ let h;
751
+ t[12] !== l.attributeId || t[13] !== f || t[14] !== p || t[15] !== m ? (h = /* @__PURE__ */ O($, {
752
+ "aria-label": "Field",
753
+ width: "8.75rem",
754
+ showSearch: !0,
755
+ options: f,
756
+ showSelectedIcon: !1,
757
+ selectedLabel: p,
758
+ value: l.attributeId,
759
+ onSelect: m
760
+ }), t[12] = l.attributeId, t[13] = f, t[14] = p, t[15] = m, t[16] = h) : h = t[16];
761
+ let g;
762
+ t[17] !== s || t[18] !== a || t[19] !== i || t[20] !== l ? (g = s ? /* @__PURE__ */ k(D, { children: [/* @__PURE__ */ O(bt, {
763
+ field: s,
764
+ rule: l,
765
+ width: "7.5rem",
766
+ onChange: a
767
+ }), /* @__PURE__ */ O(pt, {
768
+ field: s,
769
+ rule: l,
770
+ options: i(s),
771
+ onChange: (e) => a(Le(s, l, e))
772
+ })] }) : /* @__PURE__ */ O(T, {
773
+ textStyle: "label/S/regular",
774
+ color: "fg.muted",
775
+ children: "This field is no longer available"
776
+ }), t[17] = s, t[18] = a, t[19] = i, t[20] = l, t[21] = g) : g = t[21];
777
+ let b;
778
+ t[22] === Symbol.for("react.memo_cache_sentinel") ? (b = /* @__PURE__ */ O(_, { flex: "1" }), t[22] = b) : b = t[22];
779
+ let x;
780
+ t[23] === Symbol.for("react.memo_cache_sentinel") ? (x = /* @__PURE__ */ O(v, { as: q }), t[23] = x) : x = t[23];
781
+ let S;
782
+ t[24] === o ? S = t[25] : (S = /* @__PURE__ */ O(y, {
783
+ "aria-label": "Remove filter",
784
+ variant: "ghost",
785
+ size: "2xs",
786
+ flexShrink: 0,
787
+ onClick: o,
788
+ children: x
789
+ }), t[24] = o, t[25] = S);
790
+ let C;
791
+ return t[26] !== d || t[27] !== h || t[28] !== g || t[29] !== S ? (C = /* @__PURE__ */ k(_, {
792
+ "data-testid": "filter-rule-row",
793
+ gap: "xs",
794
+ minH: "1.75rem",
795
+ minW: "0",
796
+ children: [
797
+ d,
798
+ h,
799
+ g,
800
+ b,
801
+ S
802
+ ]
803
+ }), t[26] = d, t[27] = h, t[28] = g, t[29] = S, t[30] = C) : C = t[30], C;
804
+ };
805
+ function Ct(e) {
806
+ return {
807
+ value: e.id,
808
+ label: e.label,
809
+ icon: Ve(e)
810
+ };
811
+ }
812
+ //#endregion
813
+ //#region src/components/collection-view/advanced-filter-menu.tsx
814
+ var wt = (e) => {
815
+ let t = E(20), { fields: n, filter: r, optionsFor: i, onChange: a } = e, o = n[0], s;
816
+ t[0] !== n || t[1] !== r || t[2] !== a || t[3] !== i ? (s = r.rules.map((e, t) => /* @__PURE__ */ O(St, {
817
+ index: t,
818
+ conjunction: r.conjunction,
819
+ onConjunctionChange: (e) => a(Ie(r, e)),
820
+ fields: n,
821
+ rule: e,
822
+ optionsFor: i,
823
+ onChange: (e) => a(Q(r, t, e)),
824
+ onDelete: () => a(Q(r, t, void 0))
825
+ }, `${t}:${e.attributeId}`)), t[0] = n, t[1] = r, t[2] = a, t[3] = i, t[4] = s) : s = t[4];
826
+ let c;
827
+ t[5] === r.rules.length ? c = t[6] : (c = r.rules.length === 0 ? /* @__PURE__ */ O(T, {
828
+ textStyle: "label/S/regular",
829
+ color: "fg.muted",
830
+ paddingY: "xs",
831
+ children: "No filter rules. Add one to narrow this view."
832
+ }) : null, t[5] = r.rules.length, t[6] = c);
833
+ let l;
834
+ t[7] !== s || t[8] !== c ? (l = /* @__PURE__ */ k(C, {
835
+ gap: "2xs",
836
+ paddingX: "xs",
837
+ children: [s, c]
838
+ }), t[7] = s, t[8] = c, t[9] = l) : l = t[9];
839
+ let u;
840
+ t[10] === Symbol.for("react.memo_cache_sentinel") ? (u = /* @__PURE__ */ O(p, {
841
+ borderTopWidth: "1px",
842
+ borderColor: "border.subtle"
843
+ }), t[10] = u) : u = t[10];
844
+ let d;
845
+ t[11] !== r || t[12] !== o || t[13] !== a ? (d = o ? /* @__PURE__ */ k(m, {
846
+ size: "2xs",
847
+ variant: "ghost",
848
+ onClick: () => a(Fe(r, Pe(o))),
849
+ children: [/* @__PURE__ */ O(G, {}), "Add filter rule"]
850
+ }) : null, t[11] = r, t[12] = o, t[13] = a, t[14] = d) : d = t[14];
851
+ let f;
852
+ t[15] === d ? f = t[16] : (f = /* @__PURE__ */ O(_, {
853
+ gap: "2xs",
854
+ paddingX: "2xs",
855
+ paddingBottom: "2xs",
856
+ children: d
857
+ }), t[15] = d, t[16] = f);
858
+ let h;
859
+ return t[17] !== l || t[18] !== f ? (h = /* @__PURE__ */ k(C, {
860
+ "data-testid": "advanced-filter-menu",
861
+ gap: "2xs",
862
+ minW: "0",
863
+ children: [
864
+ l,
865
+ u,
866
+ f
867
+ ]
868
+ }), t[17] = l, t[18] = f, t[19] = h) : h = t[19], h;
869
+ }, Tt = (e) => {
870
+ let t = E(29), { group: n, fields: r, optionsFor: i, onChange: a, onRemove: o } = e, [s, c] = P(n.rules.length === 0), l = N(null), u = ze(), d;
871
+ if (t[0] !== r || t[1] !== n.conjunction || t[2] !== n.rules || t[3] !== u) {
872
+ let e;
873
+ t[5] !== r || t[6] !== u ? (e = (e) => {
874
+ let t = Y(r, e.attributeId);
875
+ return [
876
+ t?.type.kind === "boolean" && typeof e.value == "boolean" ? u : t?.label ?? e.attributeId,
877
+ qe(e, t),
878
+ Ze(e, t)
879
+ ].filter(Boolean).join(" ");
880
+ }, t[5] = r, t[6] = u, t[7] = e) : e = t[7], d = n.rules.map(e).join(n.conjunction === "and" ? " and " : " or "), t[0] = r, t[1] = n.conjunction, t[2] = n.rules, t[3] = u, t[4] = d;
881
+ } else d = t[4];
882
+ let f = d, p;
883
+ t[8] === s ? p = t[9] : (p = () => c(!s), t[8] = s, t[9] = p);
884
+ let h;
885
+ t[10] === Symbol.for("react.memo_cache_sentinel") ? (h = /* @__PURE__ */ O(v, { as: U }), t[10] = h) : h = t[10];
886
+ let g = f || "Advanced filter", b;
887
+ t[11] !== p || t[12] !== g ? (b = /* @__PURE__ */ k(m, {
888
+ ref: l,
889
+ "aria-label": "Edit advanced filter",
890
+ variant: "filter-segment",
891
+ size: "2xs",
892
+ onClick: p,
893
+ children: [h, g]
894
+ }), t[11] = p, t[12] = g, t[13] = b) : b = t[13];
895
+ let x;
896
+ t[14] === Symbol.for("react.memo_cache_sentinel") ? (x = /* @__PURE__ */ O(v, { as: q }), t[14] = x) : x = t[14];
897
+ let S;
898
+ t[15] === o ? S = t[16] : (S = /* @__PURE__ */ O(y, {
899
+ "aria-label": "Remove advanced filter",
900
+ variant: "ghost",
901
+ size: "2xs",
902
+ onClick: o,
903
+ children: x
904
+ }), t[15] = o, t[16] = S);
905
+ let C;
906
+ t[17] !== r || t[18] !== n || t[19] !== a || t[20] !== i ? (C = /* @__PURE__ */ O(wt, {
907
+ fields: r,
908
+ filter: n,
909
+ optionsFor: i,
910
+ onChange: a
911
+ }), t[17] = r, t[18] = n, t[19] = a, t[20] = i, t[21] = C) : C = t[21];
912
+ let w;
913
+ t[22] !== s || t[23] !== C ? (w = /* @__PURE__ */ O(tt, {
914
+ open: s,
915
+ onOpenChange: c,
916
+ anchorRef: l,
917
+ width: "40rem",
918
+ testId: "advanced-filter-popover",
919
+ children: C
920
+ }), t[22] = s, t[23] = C, t[24] = w) : w = t[24];
921
+ let T;
922
+ return t[25] !== b || t[26] !== S || t[27] !== w ? (T = /* @__PURE__ */ k(_, {
923
+ role: "group",
924
+ "aria-label": "Advanced filter",
925
+ layerStyle: "filterPill",
926
+ gap: "0",
927
+ flexShrink: 0,
928
+ children: [
929
+ b,
930
+ S,
931
+ w
932
+ ]
933
+ }), t[25] = b, t[26] = S, t[27] = w, t[28] = T) : T = t[28], T;
934
+ }, Et = /^today([+-]\d+)?$/, Dt = /^(\d{4})-(\d{2})-(\d{2})$/, Ot = (e) => e.getFullYear() * 1e4 + (e.getMonth() + 1) * 100 + e.getDate(), kt = (e, t) => {
935
+ let n = Et.exec(e);
936
+ if (n) {
937
+ let e = Number(n[1] ?? 0);
938
+ return Ot(new Date(t.getFullYear(), t.getMonth(), t.getDate() + e));
939
+ }
940
+ let r = Dt.exec(e);
941
+ if (r) return Number(r[1]) * 1e4 + Number(r[2]) * 100 + Number(r[3]);
942
+ }, At = (e) => {
943
+ let t = je(e);
944
+ return t && Ot(t);
945
+ }, jt = (e) => {
946
+ if (typeof e == "number") return Number.isFinite(e) ? e : void 0;
947
+ if (typeof e == "string" && e.trim() !== "" && Number.isFinite(Number(e))) return Number(e);
948
+ }, Mt = (e, t) => Z(e, t).join(" ").toLocaleLowerCase(), Nt = {
949
+ is: (e, t) => e === t,
950
+ gt: (e, t) => e > t,
951
+ gte: (e, t) => e >= t,
952
+ lt: (e, t) => e < t,
953
+ lte: (e, t) => e <= t,
954
+ "is-before": (e, t) => e < t,
955
+ "is-after": (e, t) => e > t,
956
+ "is-on-or-before": (e, t) => e <= t,
957
+ "is-on-or-after": (e, t) => e >= t
958
+ }, Pt = (e, t, n) => {
959
+ if (t === "is-not") return (t) => e(t) !== n;
960
+ let r = Nt[t];
961
+ return (t) => {
962
+ let i = e(t);
963
+ return i !== void 0 && r(i, n);
964
+ };
965
+ }, Ft = (e, t, n) => {
966
+ if (n.length === 0) return;
967
+ let r = (t) => Z(t, e).filter((e) => n.includes(e));
968
+ if (t === "is-any-of" || t === "has-any-of") return (e) => r(e).length > 0;
969
+ if (t === "is-none-of" || t === "has-none-of") return (e) => r(e).length === 0;
970
+ if (t === "has-all-of") return (e) => new Set(r(e)).size === new Set(n).size;
971
+ }, It = (e, t, n) => {
972
+ if (n === "") return;
973
+ let r = n.toLocaleLowerCase();
974
+ if (t === "contains") return (t) => Mt(t, e).includes(r);
975
+ if (t === "does-not-contain") return (t) => !Mt(t, e).includes(r);
976
+ if (t === "is") return (t) => Mt(t, e) === r;
977
+ if (t === "is-not") return (t) => Mt(t, e) !== r;
978
+ }, Lt = (e, t, n, r) => {
979
+ let i = e.type.kind;
980
+ if (Array.isArray(n)) return Ft(e, t, n);
981
+ if (i === "boolean" && typeof n == "boolean") return (r) => {
982
+ let i = X(r, e);
983
+ return t === "is-not" && i == null || typeof i == "boolean" && (t === "is" ? i === n : i !== n);
984
+ };
985
+ if (i === "number" && typeof n == "number") {
986
+ let r = Pt(jt, t, n);
987
+ return (t) => r(X(t, e));
988
+ }
989
+ if (i === "date" && typeof n == "string") {
990
+ let i = kt(n, r);
991
+ if (i === void 0) return;
992
+ let a = Pt(At, t, i);
993
+ return (t) => a(X(t, e));
994
+ }
995
+ if (i === "string" && typeof n == "string") return It(e, t, n);
996
+ }, Rt = (e, t, n) => {
997
+ let r = Y(t, e.attributeId);
998
+ if (!r || r.filterable === !1) return;
999
+ e = J(e, r.type);
1000
+ let i = ke(r, e.condition);
1001
+ if (!i && r.type.kind !== "boolean" && ["is-any-of", "is-none-of"].includes(e.condition) && Array.isArray(e.value)) return Ft(r, e.condition, e.value);
1002
+ if (i) return i === "is-empty" ? (e) => Z(e, r).length === 0 : i === "is-not-empty" ? (e) => Z(e, r).length > 0 : Lt(r, i, e.value, n);
1003
+ }, zt = (e, t, n) => {
1004
+ let r = e.rules.flatMap((e) => {
1005
+ let r = Rt(e, t, n);
1006
+ return r ? [r] : [];
1007
+ });
1008
+ for (let i of e.groups ?? []) {
1009
+ let e = zt(i, t, n);
1010
+ e && r.push(e);
1011
+ }
1012
+ if (r.length !== 0) return e.conjunction === "or" ? (e) => r.some((t) => t(e)) : (e) => r.every((t) => t(e));
1013
+ }, Bt = (e, t, n, r = /* @__PURE__ */ new Date()) => {
1014
+ let i = zt(t, n, r);
1015
+ return i ? e.filter(i) : e;
1016
+ }, Vt = (e) => e.rules.length + (e.groups ?? []).reduce((e, t) => e + t.rules.length, 0), Ht = (e) => {
1017
+ let t = E(23), { fields: n, rule: r, options: i, open: a, onOpenChange: o, onChange: s, onRemove: c } = e, l, u;
1018
+ t[0] !== n || t[1] !== r ? (l = Y(n, r.attributeId), u = l ? J(r, l.type) : r, t[0] = n, t[1] = r, t[2] = l, t[3] = u) : (l = t[2], u = t[3]);
1019
+ let d = u, f = ze(), p = l?.label ?? d.attributeId, m = l?.type.kind === "boolean", h = `${p} filter`, g = m && typeof d.value == "boolean" ? f : p, b;
1020
+ t[4] === g ? b = t[5] : (b = /* @__PURE__ */ O(T, {
1021
+ as: "span",
1022
+ textStyle: "label/XS",
1023
+ layerStyle: "filterLabel",
1024
+ alignItems: "center",
1025
+ flexShrink: "0",
1026
+ children: g
1027
+ }), t[4] = g, t[5] = b);
1028
+ let x;
1029
+ t[6] !== m || t[7] !== l || t[8] !== s || t[9] !== o || t[10] !== a || t[11] !== i || t[12] !== d ? (x = l ? /* @__PURE__ */ k(D, { children: [/* @__PURE__ */ O(bt, {
1030
+ field: l,
1031
+ rule: d,
1032
+ variant: "filter-condition",
1033
+ onChange: s,
1034
+ open: m ? a : void 0,
1035
+ onOpenChange: m ? o : void 0
1036
+ }), /* @__PURE__ */ O(pt, {
1037
+ field: l,
1038
+ rule: d,
1039
+ options: i,
1040
+ variant: "filter-segment",
1041
+ open: a,
1042
+ onOpenChange: o,
1043
+ onChange: (e) => s(Le(l, d, e))
1044
+ })] }) : /* @__PURE__ */ O(T, {
1045
+ textStyle: "label/XS",
1046
+ children: "Unavailable field"
1047
+ }), t[6] = m, t[7] = l, t[8] = s, t[9] = o, t[10] = a, t[11] = i, t[12] = d, t[13] = x) : x = t[13];
1048
+ let S = `Remove ${p} filter`, C;
1049
+ t[14] === Symbol.for("react.memo_cache_sentinel") ? (C = /* @__PURE__ */ O(v, { as: q }), t[14] = C) : C = t[14];
1050
+ let w;
1051
+ t[15] !== c || t[16] !== S ? (w = /* @__PURE__ */ O(y, {
1052
+ "aria-label": S,
1053
+ variant: "ghost",
1054
+ size: "2xs",
1055
+ onClick: c,
1056
+ children: C
1057
+ }), t[15] = c, t[16] = S, t[17] = w) : w = t[17];
1058
+ let A;
1059
+ return t[18] !== h || t[19] !== b || t[20] !== x || t[21] !== w ? (A = /* @__PURE__ */ k(_, {
1060
+ role: "group",
1061
+ "aria-label": h,
1062
+ layerStyle: "filterPill",
1063
+ gap: "0",
1064
+ flexShrink: 0,
1065
+ children: [
1066
+ b,
1067
+ x,
1068
+ w
1069
+ ]
1070
+ }), t[18] = h, t[19] = b, t[20] = x, t[21] = w, t[22] = A) : A = t[22], A;
1071
+ }, Ut = (e) => {
1072
+ let t = E(27), { title: n, onClose: r, onRename: i } = e, [a, o] = P(n), s;
1073
+ t[0] !== r || t[1] !== i || t[2] !== a ? (s = (e) => {
1074
+ e.preventDefault();
1075
+ let t = a.trim();
1076
+ t && (i(t), r());
1077
+ }, t[0] = r, t[1] = i, t[2] = a, t[3] = s) : s = t[3];
1078
+ let c = s, l;
1079
+ t[4] === r ? l = t[5] : (l = (e) => !e.open && r(), t[4] = r, t[5] = l);
1080
+ let u;
1081
+ t[6] === Symbol.for("react.memo_cache_sentinel") ? (u = /* @__PURE__ */ O(h.Backdrop, {}), t[6] = u) : u = t[6];
1082
+ let d;
1083
+ t[7] === Symbol.for("react.memo_cache_sentinel") ? (d = /* @__PURE__ */ O(h.Header, { children: /* @__PURE__ */ O(h.Title, { children: "Rename view" }) }), t[7] = d) : d = t[7];
1084
+ let f;
1085
+ t[8] === Symbol.for("react.memo_cache_sentinel") ? (f = (e) => o(e.target.value), t[8] = f) : f = t[8];
1086
+ let p;
1087
+ t[9] === a ? p = t[10] : (p = /* @__PURE__ */ O(h.Body, { children: /* @__PURE__ */ O(b, {
1088
+ autoFocus: !0,
1089
+ "aria-label": "View name",
1090
+ value: a,
1091
+ onChange: f
1092
+ }) }), t[9] = a, t[10] = p);
1093
+ let g;
1094
+ t[11] === r ? g = t[12] : (g = /* @__PURE__ */ O(m, {
1095
+ variant: "ghost",
1096
+ onClick: r,
1097
+ children: "Cancel"
1098
+ }), t[11] = r, t[12] = g);
1099
+ let _;
1100
+ t[13] === a ? _ = t[14] : (_ = a.trim(), t[13] = a, t[14] = _);
1101
+ let v = !_, y;
1102
+ t[15] === v ? y = t[16] : (y = /* @__PURE__ */ O(m, {
1103
+ type: "submit",
1104
+ variant: "primary",
1105
+ disabled: v,
1106
+ children: "Rename"
1107
+ }), t[15] = v, t[16] = y);
1108
+ let x;
1109
+ t[17] !== g || t[18] !== y ? (x = /* @__PURE__ */ k(h.Footer, { children: [g, y] }), t[17] = g, t[18] = y, t[19] = x) : x = t[19];
1110
+ let S;
1111
+ t[20] !== c || t[21] !== x || t[22] !== p ? (S = /* @__PURE__ */ O(h.Positioner, { children: /* @__PURE__ */ O(h.Content, {
1112
+ asChild: !0,
1113
+ children: /* @__PURE__ */ k("form", {
1114
+ onSubmit: c,
1115
+ children: [
1116
+ d,
1117
+ p,
1118
+ x
1119
+ ]
1120
+ })
1121
+ }) }), t[20] = c, t[21] = x, t[22] = p, t[23] = S) : S = t[23];
1122
+ let C;
1123
+ return t[24] !== l || t[25] !== S ? (C = /* @__PURE__ */ k(h.Root, {
1124
+ open: !0,
1125
+ onOpenChange: l,
1126
+ children: [u, S]
1127
+ }), t[24] = l, t[25] = S, t[26] = C) : C = t[26], C;
1128
+ }, Wt = (e) => {
1129
+ let t = e.length + 1;
1130
+ for (; e.some((e) => e.title === `View ${t}`);) t += 1;
1131
+ return `View ${t}`;
1132
+ }, Gt = (t) => {
1133
+ let n = E(42), { views: r, activeViewId: i, viewsSource: o, dirty: s, busy: c, state: l, onActivate: u, run: d, createView: f } = t, [m, h] = P(), g;
1134
+ n[0] !== c || n[1] !== f || n[2] !== d || n[3] !== r.length || n[4] !== o ? (g = (e) => o ? [
1135
+ {
1136
+ key: "rename",
1137
+ label: "Rename",
1138
+ isDisabled: c,
1139
+ icon: /* @__PURE__ */ O(v, {
1140
+ as: W,
1141
+ boxSize: "0.875rem"
1142
+ }),
1143
+ onClick: () => h(e)
1144
+ },
1145
+ {
1146
+ key: "duplicate",
1147
+ label: "Duplicate",
1148
+ icon: /* @__PURE__ */ O(v, {
1149
+ as: B,
1150
+ boxSize: "0.875rem"
1151
+ }),
1152
+ isDisabled: c,
1153
+ onClick: () => d(() => f({
1154
+ settings: e.settings,
1155
+ filter: e.filter,
1156
+ sorts: e.sorts,
1157
+ title: `${e.title} copy`,
1158
+ copyFrom: e.id
1159
+ }))
1160
+ },
1161
+ {
1162
+ key: "delete",
1163
+ label: "Delete view",
1164
+ icon: /* @__PURE__ */ O(v, {
1165
+ as: re,
1166
+ boxSize: "0.875rem"
1167
+ }),
1168
+ isDisabled: r.length === 1 || c,
1169
+ separatorBefore: !0,
1170
+ onClick: () => d(() => o.onDeleteView(e.id))
1171
+ }
1172
+ ] : [], n[0] = c, n[1] = f, n[2] = d, n[3] = r.length, n[4] = o, n[5] = g) : g = n[5];
1173
+ let _ = g, b;
1174
+ n[6] !== u || n[7] !== r ? (b = (e) => {
1175
+ let t = r.find((t) => t.id === e.value);
1176
+ t && u(t);
1177
+ }, n[6] = u, n[7] = r, n[8] = b) : b = n[8];
1178
+ let x;
1179
+ if (n[9] !== _ || n[10] !== i || n[11] !== s || n[12] !== r) {
1180
+ let e;
1181
+ n[14] !== _ || n[15] !== i || n[16] !== s ? (e = (e) => /* @__PURE__ */ O(a, {
1182
+ actions: _(e),
1183
+ positioning: { placement: "bottom-start" },
1184
+ children: /* @__PURE__ */ k(w.Trigger, {
1185
+ value: e.id,
1186
+ title: e.title,
1187
+ children: [/* @__PURE__ */ O(T, {
1188
+ as: "span",
1189
+ "data-tab-label": !0,
1190
+ children: e.title
1191
+ }), s && e.id === i ? /* @__PURE__ */ O(p, {
1192
+ "aria-label": "Unsaved view changes",
1193
+ width: "0.375rem",
1194
+ height: "0.375rem",
1195
+ flexShrink: 0,
1196
+ borderRadius: "full",
1197
+ bg: "fg.warning"
1198
+ }) : null]
1199
+ })
1200
+ }, e.id), n[14] = _, n[15] = i, n[16] = s, n[17] = e) : e = n[17], x = r.map(e), n[9] = _, n[10] = i, n[11] = s, n[12] = r, n[13] = x;
1201
+ } else x = n[13];
1202
+ let S;
1203
+ n[18] === x ? S = n[19] : (S = /* @__PURE__ */ O(w.List, {
1204
+ overflowX: "auto",
1205
+ overflowY: "hidden",
1206
+ children: x
1207
+ }), n[18] = x, n[19] = S);
1208
+ let C;
1209
+ n[20] !== i || n[21] !== b || n[22] !== S ? (C = /* @__PURE__ */ O(w.Root, {
1210
+ value: i,
1211
+ size: "sm",
1212
+ variant: "subtle",
1213
+ minW: "0",
1214
+ overflow: "hidden",
1215
+ onValueChange: b,
1216
+ children: S
1217
+ }), n[20] = i, n[21] = b, n[22] = S, n[23] = C) : C = n[23];
1218
+ let A = !o || c, j;
1219
+ n[24] !== f || n[25] !== d || n[26] !== l || n[27] !== r || n[28] !== o ? (j = () => o && d(() => f({
1220
+ title: Wt(r),
1221
+ ...l
1222
+ })), n[24] = f, n[25] = d, n[26] = l, n[27] = r, n[28] = o, n[29] = j) : j = n[29];
1223
+ let M;
1224
+ n[30] === Symbol.for("react.memo_cache_sentinel") ? (M = /* @__PURE__ */ O(v, { as: H }), n[30] = M) : M = n[30];
1225
+ let N;
1226
+ n[31] !== A || n[32] !== j ? (N = /* @__PURE__ */ O(e, {
1227
+ content: "Add view",
1228
+ children: /* @__PURE__ */ O(y, {
1229
+ "aria-label": "Add view",
1230
+ size: "2xs",
1231
+ variant: "ghost",
1232
+ disabled: A,
1233
+ onClick: j,
1234
+ children: M
1235
+ })
1236
+ }), n[31] = A, n[32] = j, n[33] = N) : N = n[33];
1237
+ let F;
1238
+ n[34] !== m || n[35] !== d || n[36] !== o ? (F = m && o ? /* @__PURE__ */ O(Ut, {
1239
+ title: m.title,
1240
+ onClose: () => h(void 0),
1241
+ onRename: (e) => d(() => o.onUpdateView(m.id, { title: e }))
1242
+ }, m.id) : null, n[34] = m, n[35] = d, n[36] = o, n[37] = F) : F = n[37];
1243
+ let I;
1244
+ return n[38] !== C || n[39] !== N || n[40] !== F ? (I = /* @__PURE__ */ k(D, { children: [
1245
+ C,
1246
+ N,
1247
+ F
1248
+ ] }), n[38] = C, n[39] = N, n[40] = F, n[41] = I) : I = n[41], I;
1249
+ }, Kt = {
1250
+ conjunction: "and",
1251
+ rules: []
1252
+ }, qt = (e) => {
1253
+ let n = E(23), { field: r, rule: i, options: a, onSelectRule: o } = e, [s, c] = P(i.value), l = r.type.kind === "string" || s !== void 0 && s !== "", u;
1254
+ n[0] !== l || n[1] !== r || n[2] !== o || n[3] !== i || n[4] !== s ? (u = () => {
1255
+ l && o(Le(r, i, s));
1256
+ }, n[0] = l, n[1] = r, n[2] = o, n[3] = i, n[4] = s, n[5] = u) : u = n[5];
1257
+ let d = u, f;
1258
+ n[6] === d ? f = n[7] : (f = (e) => {
1259
+ e.key === "Enter" && (e.preventDefault(), d());
1260
+ }, n[6] = d, n[7] = f);
1261
+ let h;
1262
+ n[8] === Symbol.for("react.memo_cache_sentinel") ? (h = { overscrollBehavior: "contain" }, n[8] = h) : h = n[8];
1263
+ let g;
1264
+ n[9] !== i || n[10] !== s ? (g = {
1265
+ ...i,
1266
+ value: s
1267
+ }, n[9] = i, n[10] = s, n[11] = g) : g = n[11];
1268
+ let _;
1269
+ n[12] !== r || n[13] !== a || n[14] !== g ? (_ = /* @__PURE__ */ O(t, {
1270
+ flex: "1",
1271
+ minH: "0",
1272
+ viewportProps: h,
1273
+ children: /* @__PURE__ */ O(ht, {
1274
+ field: r,
1275
+ rule: g,
1276
+ options: a,
1277
+ onChange: c
1278
+ })
1279
+ }), n[12] = r, n[13] = a, n[14] = g, n[15] = _) : _ = n[15];
1280
+ let v = !l, y;
1281
+ n[16] !== d || n[17] !== v ? (y = /* @__PURE__ */ O(p, {
1282
+ paddingX: "sm",
1283
+ paddingBottom: "sm",
1284
+ flexShrink: 0,
1285
+ children: /* @__PURE__ */ O(m, {
1286
+ size: "sm",
1287
+ variant: "primary",
1288
+ width: "full",
1289
+ disabled: v,
1290
+ onClick: d,
1291
+ children: "Apply filter"
1292
+ })
1293
+ }), n[16] = d, n[17] = v, n[18] = y) : y = n[18];
1294
+ let b;
1295
+ return n[19] !== f || n[20] !== _ || n[21] !== y ? (b = /* @__PURE__ */ k(C, {
1296
+ height: "full",
1297
+ minH: "0",
1298
+ gap: "xs",
1299
+ onKeyDown: f,
1300
+ children: [_, y]
1301
+ }), n[19] = f, n[20] = _, n[21] = y, n[22] = b) : b = n[22], b;
1302
+ }, Jt = (e) => {
1303
+ let t = E(21), { field: r, options: a, onSelectRule: o } = e, s, c, l;
1304
+ if (t[0] !== r || t[1] !== o || t[2] !== e.rule) {
1305
+ l = Symbol.for("react.early_return_sentinel");
1306
+ bb0: {
1307
+ let a = J(e.rule ?? Pe(r), r.type);
1308
+ if (c = [
1309
+ "string",
1310
+ "number",
1311
+ "date"
1312
+ ].includes(r.type.kind), s = c && ["is-empty", "is-not-empty"].includes(a.condition) ? Pe(r) : a, r.type.kind === "boolean") {
1313
+ let a = /* @__PURE__ */ O(C, {
1314
+ gap: "0",
1315
+ children: [!0, !1].map((t) => /* @__PURE__ */ O(i, {
1316
+ id: String(t),
1317
+ role: "button",
1318
+ variant: "compact",
1319
+ icon: /* @__PURE__ */ O(v, {
1320
+ as: t ? I : q,
1321
+ boxSize: "3"
1322
+ }),
1323
+ label: t ? "Yes" : "No",
1324
+ endContent: /* @__PURE__ */ O(n, {
1325
+ checked: !!e.rule && typeof s.value == "boolean" && (s.condition === "is-not" ? !s.value : s.value) === t,
1326
+ readOnly: !0,
1327
+ inputProps: {
1328
+ tabIndex: -1,
1329
+ "aria-hidden": !0
1330
+ },
1331
+ pointerEvents: "none",
1332
+ size: "xs"
1333
+ }),
1334
+ onActivate: () => o(Le(r, s, t))
1335
+ }, String(t)))
1336
+ }), c;
1337
+ t[6] === a ? c = t[7] : (c = /* @__PURE__ */ O(He, { children: a }), t[6] = a, t[7] = c), l = c;
1338
+ break bb0;
1339
+ }
1340
+ }
1341
+ t[0] = r, t[1] = o, t[2] = e.rule, t[3] = s, t[4] = c, t[5] = l;
1342
+ } else s = t[3], c = t[4], l = t[5];
1343
+ if (l !== Symbol.for("react.early_return_sentinel")) return l;
1344
+ if (c) {
1345
+ let n;
1346
+ return t[8] !== r.id || t[9] !== e || t[10] !== s ? (n = /* @__PURE__ */ O(qt, {
1347
+ ...e,
1348
+ rule: s
1349
+ }, r.id), t[8] = r.id, t[9] = e, t[10] = s, t[11] = n) : n = t[11], n;
1350
+ }
1351
+ let u;
1352
+ t[12] !== r || t[13] !== o || t[14] !== s ? (u = (e) => {
1353
+ e !== void 0 && e !== "" && o(Le(r, s, e));
1354
+ }, t[12] = r, t[13] = o, t[14] = s, t[15] = u) : u = t[15];
1355
+ let d;
1356
+ return t[16] !== r || t[17] !== a || t[18] !== s || t[19] !== u ? (d = /* @__PURE__ */ O(ht, {
1357
+ field: r,
1358
+ rule: s,
1359
+ options: a,
1360
+ onChange: u
1361
+ }), t[16] = r, t[17] = a, t[18] = s, t[19] = u, t[20] = d) : d = t[20], d;
1362
+ }, Yt = {
1363
+ p: "2xs",
1364
+ display: "flex",
1365
+ flexDirection: "column",
1366
+ gap: "1px"
1367
+ }, Xt = (e) => {
1368
+ let n = E(61), { fields: r, filter: a, optionsFor: o, onSelectRule: s } = e, [c, l] = P(""), u;
1369
+ n[0] === r ? u = n[1] : (u = r.filter(Te), n[0] = r, n[1] = u);
1370
+ let [d, f] = P(u[0]?.id ?? r[0]?.id ?? ""), m, h, g, y, x, S, w, D, A, j, M, N, F, I, L, z, B, V;
1371
+ if (n[2] !== d || n[3] !== r || n[4] !== a || n[5] !== s || n[6] !== o || n[7] !== c) {
1372
+ let e = c.trim().toLocaleLowerCase(), u = r.filter((t) => t.label.toLocaleLowerCase().includes(e)), T;
1373
+ n[26] === d ? T = n[27] : (T = (e) => e.id === d, n[26] = d, n[27] = T);
1374
+ let E = u.find(T);
1375
+ g = C, S = "filter-menu", w = "filterPicker", D = "0", A = "hidden";
1376
+ let P;
1377
+ n[28] === Symbol.for("react.memo_cache_sentinel") ? (P = /* @__PURE__ */ O(v, {
1378
+ as: ee,
1379
+ boxSize: "0.875rem",
1380
+ color: "fg.muted"
1381
+ }), n[28] = P) : P = n[28];
1382
+ let H;
1383
+ n[29] === Symbol.for("react.memo_cache_sentinel") ? (H = (e) => l(e.target.value), n[29] = H) : H = n[29], n[30] === c ? j = n[31] : (j = /* @__PURE__ */ k(_, {
1384
+ height: "2.25rem",
1385
+ gap: "xs",
1386
+ paddingX: "sm",
1387
+ borderBottomWidth: "1px",
1388
+ borderColor: "border.subtle",
1389
+ children: [P, /* @__PURE__ */ O(b, {
1390
+ autoFocus: !0,
1391
+ "aria-label": "Filter properties",
1392
+ value: c,
1393
+ placeholder: "Filter by…",
1394
+ variant: "flushed",
1395
+ border: "0",
1396
+ height: "full",
1397
+ padding: "0",
1398
+ onChange: H
1399
+ })]
1400
+ }), n[30] = c, n[31] = j), h = _, L = "stretch", z = "0", B = "1", V = "0";
1401
+ let U;
1402
+ n[32] === Symbol.for("react.memo_cache_sentinel") ? (U = { overscrollBehavior: "contain" }, n[32] = U) : U = n[32], x = /* @__PURE__ */ O(C, {
1403
+ "data-testid": "filter-property-column",
1404
+ width: "11.75rem",
1405
+ flexShrink: 0,
1406
+ borderRightWidth: "1px",
1407
+ borderColor: "border.subtle",
1408
+ gap: "0",
1409
+ minH: "0",
1410
+ children: /* @__PURE__ */ O(t, {
1411
+ flex: "1",
1412
+ minH: "0",
1413
+ viewportProps: U,
1414
+ contentProps: Yt,
1415
+ children: u.map((e) => /* @__PURE__ */ O(i, {
1416
+ id: e.id,
1417
+ role: "button",
1418
+ variant: "compact",
1419
+ isSelected: E?.id === e.id,
1420
+ icon: /* @__PURE__ */ O(v, {
1421
+ as: Ve(e),
1422
+ boxSize: "3"
1423
+ }),
1424
+ label: e.label,
1425
+ endContent: /* @__PURE__ */ O(v, {
1426
+ as: R,
1427
+ boxSize: "3",
1428
+ color: "fg.subtle"
1429
+ }),
1430
+ onActivate: () => f(e.id)
1431
+ }, e.id))
1432
+ })
1433
+ }), m = C, y = "1", M = "0", N = "0", F = "0", I = E ? /* @__PURE__ */ O(p, {
1434
+ "data-testid": "filter-value-column",
1435
+ flex: "1",
1436
+ minH: "0",
1437
+ children: /* @__PURE__ */ O(Jt, {
1438
+ field: E,
1439
+ rule: a.rules.find((e) => e.attributeId === E.id),
1440
+ options: o(E),
1441
+ onSelectRule: s
1442
+ })
1443
+ }) : null, n[2] = d, n[3] = r, n[4] = a, n[5] = s, n[6] = o, n[7] = c, n[8] = m, n[9] = h, n[10] = g, n[11] = y, n[12] = x, n[13] = S, n[14] = w, n[15] = D, n[16] = A, n[17] = j, n[18] = M, n[19] = N, n[20] = F, n[21] = I, n[22] = L, n[23] = z, n[24] = B, n[25] = V;
1444
+ } else m = n[8], h = n[9], g = n[10], y = n[11], x = n[12], S = n[13], w = n[14], D = n[15], A = n[16], j = n[17], M = n[18], N = n[19], F = n[20], I = n[21], L = n[22], z = n[23], B = n[24], V = n[25];
1445
+ let H;
1446
+ n[33] !== m || n[34] !== y || n[35] !== M || n[36] !== N || n[37] !== F || n[38] !== I ? (H = /* @__PURE__ */ O(m, {
1447
+ flex: y,
1448
+ minW: M,
1449
+ minH: N,
1450
+ gap: F,
1451
+ children: I
1452
+ }), n[33] = m, n[34] = y, n[35] = M, n[36] = N, n[37] = F, n[38] = I, n[39] = H) : H = n[39];
1453
+ let W;
1454
+ n[40] !== h || n[41] !== x || n[42] !== H || n[43] !== L || n[44] !== z || n[45] !== B || n[46] !== V ? (W = /* @__PURE__ */ k(h, {
1455
+ alignItems: L,
1456
+ gap: z,
1457
+ flex: B,
1458
+ minH: V,
1459
+ children: [x, H]
1460
+ }), n[40] = h, n[41] = x, n[42] = H, n[43] = L, n[44] = z, n[45] = B, n[46] = V, n[47] = W) : W = n[47];
1461
+ let G;
1462
+ n[48] !== a || n[49] !== e.onAddAdvanced || n[50] !== e.onClear ? (G = e.onAddAdvanced || e.onClear ? /* @__PURE__ */ k(_, {
1463
+ "data-testid": "filter-menu-footer",
1464
+ padding: "2xs",
1465
+ borderTopWidth: "1px",
1466
+ borderColor: "border.subtle",
1467
+ children: [e.onAddAdvanced ? /* @__PURE__ */ O(i, {
1468
+ id: "advanced-filter",
1469
+ role: "button",
1470
+ variant: "compact",
1471
+ flex: "1",
1472
+ label: "Advanced filter",
1473
+ icon: /* @__PURE__ */ O(v, {
1474
+ as: U,
1475
+ boxSize: "3"
1476
+ }),
1477
+ onActivate: e.onAddAdvanced
1478
+ }) : /* @__PURE__ */ O(p, { flex: "1" }), e.onClear ? /* @__PURE__ */ O(i, {
1479
+ id: "clear-all",
1480
+ role: "button",
1481
+ "aria-label": "Clear all",
1482
+ variant: "compact",
1483
+ flex: "1",
1484
+ label: "",
1485
+ endContent: /* @__PURE__ */ O(T, {
1486
+ textStyle: "label/S/regular",
1487
+ children: "Clear all"
1488
+ }),
1489
+ disabled: a.rules.length === 0 && !a.groups?.length,
1490
+ onActivate: e.onClear
1491
+ }) : null]
1492
+ }) : null, n[48] = a, n[49] = e.onAddAdvanced, n[50] = e.onClear, n[51] = G) : G = n[51];
1493
+ let K;
1494
+ return n[52] !== g || n[53] !== S || n[54] !== w || n[55] !== D || n[56] !== A || n[57] !== j || n[58] !== W || n[59] !== G ? (K = /* @__PURE__ */ k(g, {
1495
+ "data-testid": S,
1496
+ layerStyle: w,
1497
+ gap: D,
1498
+ overflow: A,
1499
+ children: [
1500
+ j,
1501
+ W,
1502
+ G
1503
+ ]
1504
+ }), n[52] = g, n[53] = S, n[54] = w, n[55] = D, n[56] = A, n[57] = j, n[58] = W, n[59] = G, n[60] = K) : K = n[60], K;
1505
+ }, Zt = "pstdio/ui/kanban-renderer", Qt = (e) => {
1506
+ let { storageKey: t, initialState: n, storage: r } = e, i = {
1507
+ settings: n.settings,
1508
+ filter: n.filter ?? Kt,
1509
+ sorts: (n.sorts ?? []).slice(0, 1),
1510
+ expandedGroups: {},
1511
+ activeViewId: ""
1512
+ };
1513
+ return ce()(se((e) => ({
1514
+ ...i,
1515
+ openMenu: null,
1516
+ openRuleIndex: null,
1517
+ setOpenMenu: (t) => e(t ? {
1518
+ openMenu: t,
1519
+ openRuleIndex: null
1520
+ } : { openMenu: t }),
1521
+ setOpenRuleIndex: (t) => e(t === null ? { openRuleIndex: t } : {
1522
+ openRuleIndex: t,
1523
+ openMenu: null
1524
+ }),
1525
+ startRule: (t) => e((e) => {
1526
+ let n = ue(e.filter), r = n.rules.findIndex((e) => e.attributeId === t.id);
1527
+ if (r !== -1) return {
1528
+ filter: n,
1529
+ openMenu: null,
1530
+ openRuleIndex: r
1531
+ };
1532
+ let i = Fe(n, Pe(t));
1533
+ return {
1534
+ filter: i,
1535
+ openMenu: null,
1536
+ openRuleIndex: i.rules.length - 1
1537
+ };
1538
+ }),
1539
+ selectRule: (t) => e((e) => {
1540
+ let n = ue(e.filter), r = n.rules.findIndex((e) => e.attributeId === t.attributeId);
1541
+ if (Array.isArray(t.value) && t.value.length === 0) return {
1542
+ filter: Q(n, r, void 0),
1543
+ openRuleIndex: null
1544
+ };
1545
+ let i = r === -1 ? Fe(n, t) : Q(n, r, t);
1546
+ return Array.isArray(t.value) && e.openMenu === "filter" ? {
1547
+ filter: i,
1548
+ openRuleIndex: null
1549
+ } : {
1550
+ filter: i,
1551
+ openMenu: null,
1552
+ openRuleIndex: r === -1 ? i.rules.length - 1 : r
1553
+ };
1554
+ }),
1555
+ setSettings: (t) => e((e) => ({ settings: {
1556
+ ...e.settings,
1557
+ ...t
1558
+ } })),
1559
+ setFilter: (t) => e({ filter: t }),
1560
+ setSorts: (t) => e({ sorts: t.slice(0, 1) }),
1561
+ setExpandedGroup: (t, n) => e((e) => ({ expandedGroups: {
1562
+ ...e.expandedGroups,
1563
+ [t]: n
1564
+ } })),
1565
+ activateView: (t) => e({
1566
+ settings: structuredClone(t.settings),
1567
+ filter: structuredClone(t.filter),
1568
+ sorts: structuredClone(t.sorts.slice(0, 1)),
1569
+ activeViewId: t.id,
1570
+ expandedGroups: {},
1571
+ openRuleIndex: null
1572
+ }),
1573
+ reset: () => e(i)
1574
+ }), {
1575
+ name: `${Zt}/${t}`,
1576
+ version: 5,
1577
+ migrate: () => i,
1578
+ storage: c(r),
1579
+ merge: (e, t) => {
1580
+ let n = {
1581
+ ...t,
1582
+ ...e
1583
+ };
1584
+ return {
1585
+ ...n,
1586
+ sorts: n.sorts.slice(0, 1)
1587
+ };
1588
+ },
1589
+ partialize: (e) => ({
1590
+ settings: e.settings,
1591
+ filter: e.filter,
1592
+ sorts: e.sorts,
1593
+ activeViewId: e.activeViewId,
1594
+ expandedGroups: e.expandedGroups
1595
+ })
1596
+ }));
1597
+ }, $t = l((e, t, n) => Qt({
1598
+ storageKey: e,
1599
+ initialState: n,
1600
+ storage: t
1601
+ })), en = (e, t, n) => $t(e, n, t), tn = (e, t, n) => {
1602
+ let r = E(4), i = s(), a;
1603
+ return r[0] !== t || r[1] !== e || r[2] !== i ? (a = en(e, t, i), r[0] = t, r[1] = e, r[2] = i, r[3] = a) : a = r[3], oe(a, n);
1604
+ }, nn = (e, t) => {
1605
+ let n = e.rules.map((e) => {
1606
+ let n = t.find((t) => t.id === e.attributeId);
1607
+ return n ? J(e, n.type) : e;
1608
+ }), r = e.groups?.map((e) => nn(e, t));
1609
+ return n.some((t, n) => t !== e.rules[n]) || r?.some((t, n) => t !== e.groups?.[n]) ? {
1610
+ ...e,
1611
+ rules: n,
1612
+ ...r ? { groups: r } : {}
1613
+ } : e;
1614
+ }, rn = /* @__PURE__ */ new Set(["displayProperties", "hiddenColumns"]), an = (e) => Object.entries(e).sort(([e], [t]) => e.localeCompare(t)).map(([e, t]) => [e, rn.has(e) && Array.isArray(t) ? [...t].sort() : t]), on = (e) => ({
1615
+ conjunction: e.conjunction,
1616
+ rules: e.rules.map((e) => ({
1617
+ attributeId: e.attributeId,
1618
+ condition: e.condition,
1619
+ value: Array.isArray(e.value) ? [...e.value].sort() : e.value
1620
+ })),
1621
+ groups: e.groups?.length ? e.groups.map(on) : void 0
1622
+ }), sn = (e, t) => {
1623
+ if (!e) return !1;
1624
+ let n = (e) => JSON.stringify([
1625
+ an(e.settings),
1626
+ on(ue(e.filter)),
1627
+ e.sorts.map((e) => [e.attributeId, e.direction])
1628
+ ]);
1629
+ return n(e) !== n(t);
1630
+ }, cn = (e) => {
1631
+ let t = E(37), n = e.storageKey, r = e.initialState, i = s(), a;
1632
+ t[0] !== e.initialState || t[1] !== e.storageKey || t[2] !== i ? (a = en(n, r, i), t[0] = e.initialState, t[1] = e.storageKey, t[2] = i, t[3] = a) : a = t[3];
1633
+ let o = a, c = oe(o, ln), { settings: l, filter: u, sorts: d } = e.initialState, f = u === void 0 ? Kt : u, p;
1634
+ t[4] === d ? p = t[5] : (p = d === void 0 ? [] : d, t[4] = d, t[5] = p);
1635
+ let m = p, h;
1636
+ t[6] !== f || t[7] !== e.defaultViews || t[8] !== l || t[9] !== m ? (h = e.defaultViews?.length ? e.defaultViews : [{
1637
+ id: "default",
1638
+ title: "All",
1639
+ settings: l,
1640
+ filter: f,
1641
+ sorts: m
1642
+ }], t[6] = f, t[7] = e.defaultViews, t[8] = l, t[9] = m, t[10] = h) : h = t[10];
1643
+ let g = h, _;
1644
+ t[11] !== g || t[12] !== e.viewsSource?.views ? (_ = e.viewsSource?.views ?? g.map(un), t[11] = g, t[12] = e.viewsSource?.views, t[13] = _) : _ = t[13];
1645
+ let v = _, y;
1646
+ t[14] !== e.fields || t[15] !== v ? (y = e.fields ? v.map((t) => {
1647
+ let n = nn(t.filter, e.fields);
1648
+ return n === t.filter ? t : {
1649
+ ...t,
1650
+ filter: n
1651
+ };
1652
+ }) : v, t[14] = e.fields, t[15] = v, t[16] = y) : y = t[16];
1653
+ let b = y, x = e.viewsSource?.defaultViewId, S;
1654
+ t[17] === e.defaultViews ? S = t[18] : (S = e.defaultViews?.find(dn)?.id, t[17] = e.defaultViews, t[18] = S);
1655
+ let C = b[0]?.id, w;
1656
+ t[19] !== e.defaultActiveViewId || t[20] !== x || t[21] !== S || t[22] !== C ? (w = [
1657
+ x,
1658
+ e.defaultActiveViewId,
1659
+ S,
1660
+ C
1661
+ ], t[19] = e.defaultActiveViewId, t[20] = x, t[21] = S, t[22] = C, t[23] = w) : w = t[23];
1662
+ let T;
1663
+ t[24] !== w || t[25] !== b ? (T = w.find((e) => b.some((t) => t.id === e)), t[24] = w, t[25] = b, t[26] = T) : T = t[26];
1664
+ let D = T, O = N(void 0), k, A;
1665
+ t[27] !== c || t[28] !== D || t[29] !== e.fields || t[30] !== o || t[31] !== b ? (k = () => {
1666
+ let t = o.getState();
1667
+ if (e.fields) {
1668
+ let n = nn(t.filter, e.fields);
1669
+ n !== t.filter && t.setFilter(n);
1670
+ }
1671
+ let n = b.find((e) => e.id === c), r = O.current;
1672
+ if (n) r?.active?.id === n.id && !sn(r.active, t) && sn(n, t) && t.activateView(n);
1673
+ else if (!r || !c || r.views.some((e) => e.id === c)) {
1674
+ let e = b.find((e) => e.id === D) ?? b[0];
1675
+ e && t.activateView(e);
1676
+ }
1677
+ O.current = {
1678
+ views: b,
1679
+ active: n
1680
+ };
1681
+ }, A = [
1682
+ o,
1683
+ b,
1684
+ D,
1685
+ c,
1686
+ e.fields
1687
+ ], t[27] = c, t[28] = D, t[29] = e.fields, t[30] = o, t[31] = b, t[32] = k, t[33] = A) : (k = t[32], A = t[33]), M(k, A);
1688
+ let j;
1689
+ return t[34] !== D || t[35] !== b ? (j = {
1690
+ views: b,
1691
+ defaultId: D
1692
+ }, t[34] = D, t[35] = b, t[36] = j) : j = t[36], j;
1693
+ };
1694
+ function ln(e) {
1695
+ return e.activeViewId;
1696
+ }
1697
+ function un(e) {
1698
+ return {
1699
+ ...e,
1700
+ builtIn: !0
1701
+ };
1702
+ }
1703
+ function dn(e) {
1704
+ return e.isDefault;
1705
+ }
1706
+ //#endregion
1707
+ //#region src/components/collection-view/view-search-field.tsx
1708
+ var fn = (t) => {
1709
+ let n = E(25), { value: r, onValueChange: i, resultLabel: a } = t, [o, s] = P(!1), c = N(null), l;
1710
+ n[0] === i ? l = n[1] : (l = () => {
1711
+ i(""), s(!1);
1712
+ }, n[0] = i, n[1] = l);
1713
+ let u = l;
1714
+ if (!o && !r) {
1715
+ let t;
1716
+ return n[2] === Symbol.for("react.memo_cache_sentinel") ? (t = /* @__PURE__ */ O(e, {
1717
+ content: "Search",
1718
+ children: /* @__PURE__ */ O(y, {
1719
+ "aria-label": "Search this view",
1720
+ variant: "ghost",
1721
+ size: "2xs",
1722
+ onClick: () => {
1723
+ s(!0), setTimeout(() => c.current?.focus(), 0);
1724
+ },
1725
+ children: /* @__PURE__ */ O(v, { as: ee })
1726
+ })
1727
+ }), n[2] = t) : t = n[2], t;
1728
+ }
1729
+ let d;
1730
+ n[3] === Symbol.for("react.memo_cache_sentinel") ? (d = /* @__PURE__ */ O(v, {
1731
+ as: ee,
1732
+ boxSize: "0.75rem",
1733
+ color: "fg.muted",
1734
+ flexShrink: 0
1735
+ }), n[3] = d) : d = n[3];
1736
+ let f;
1737
+ n[4] === i ? f = n[5] : (f = (e) => i(e.target.value), n[4] = i, n[5] = f);
1738
+ let p;
1739
+ n[6] === r ? p = n[7] : (p = () => !r && s(!1), n[6] = r, n[7] = p);
1740
+ let m;
1741
+ n[8] === u ? m = n[9] : (m = (e) => {
1742
+ e.key === "Escape" && u();
1743
+ }, n[8] = u, n[9] = m);
1744
+ let h;
1745
+ n[10] !== f || n[11] !== p || n[12] !== m || n[13] !== r ? (h = /* @__PURE__ */ O(b, {
1746
+ ref: c,
1747
+ autoFocus: !0,
1748
+ "aria-label": "Search this view",
1749
+ value: r,
1750
+ placeholder: "Search…",
1751
+ variant: "borderless",
1752
+ size: "2xs",
1753
+ height: "full",
1754
+ padding: "0",
1755
+ textStyle: "label/S/regular",
1756
+ onChange: f,
1757
+ onBlur: p,
1758
+ onKeyDown: m
1759
+ }), n[10] = f, n[11] = p, n[12] = m, n[13] = r, n[14] = h) : h = n[14];
1760
+ let g;
1761
+ n[15] !== a || n[16] !== r ? (g = r && a ? /* @__PURE__ */ O(T, {
1762
+ textStyle: "label/XS",
1763
+ color: "fg.subtle",
1764
+ flexShrink: 0,
1765
+ children: a
1766
+ }) : null, n[15] = a, n[16] = r, n[17] = g) : g = n[17];
1767
+ let x;
1768
+ n[18] === Symbol.for("react.memo_cache_sentinel") ? (x = /* @__PURE__ */ O(v, {
1769
+ as: q,
1770
+ boxSize: "0.6875rem",
1771
+ color: "fg.subtle"
1772
+ }), n[18] = x) : x = n[18];
1773
+ let S;
1774
+ n[19] === u ? S = n[20] : (S = /* @__PURE__ */ O(y, {
1775
+ "aria-label": "Close search",
1776
+ variant: "ghost",
1777
+ size: "2xs",
1778
+ minW: "1rem",
1779
+ h: "1rem",
1780
+ onClick: u,
1781
+ children: x
1782
+ }), n[19] = u, n[20] = S);
1783
+ let C;
1784
+ return n[21] !== h || n[22] !== g || n[23] !== S ? (C = /* @__PURE__ */ k(_, {
1785
+ "data-testid": "view-search-field",
1786
+ width: "13.75rem",
1787
+ height: "filter-pill",
1788
+ gap: "2xs",
1789
+ paddingX: "xs",
1790
+ borderWidth: "1px",
1791
+ borderColor: "border",
1792
+ borderRadius: "xs",
1793
+ bg: "bg.subtle",
1794
+ flexShrink: 0,
1795
+ children: [
1796
+ d,
1797
+ h,
1798
+ g,
1799
+ S
1800
+ ]
1801
+ }), n[21] = h, n[22] = g, n[23] = S, n[24] = C) : C = n[24], C;
1802
+ }, pn = (t) => {
1803
+ let n = E(12), { label: r, icon: i, count: a, buttonRef: o, onClick: s } = t, c = a > 0 ? "subtle" : "ghost", l;
1804
+ n[0] === i ? l = n[1] : (l = /* @__PURE__ */ O(v, { as: i }), n[0] = i, n[1] = l);
1805
+ let u = a > 0 ? a : null, d;
1806
+ n[2] !== o || n[3] !== r || n[4] !== s || n[5] !== c || n[6] !== l || n[7] !== u ? (d = /* @__PURE__ */ k(m, {
1807
+ ref: o,
1808
+ "aria-label": r,
1809
+ variant: c,
1810
+ size: "2xs",
1811
+ onClick: s,
1812
+ children: [l, u]
1813
+ }), n[2] = o, n[3] = r, n[4] = s, n[5] = c, n[6] = l, n[7] = u, n[8] = d) : d = n[8];
1814
+ let f;
1815
+ return n[9] !== r || n[10] !== d ? (f = /* @__PURE__ */ O(e, {
1816
+ content: r,
1817
+ children: d
1818
+ }), n[9] = r, n[10] = d, n[11] = f) : f = n[11], f;
1819
+ }, mn = (e) => {
1820
+ let { storageKey: t, initialState: n, views: r, viewsSource: i, fields: a, optionsFor: o } = e, { search: s, onSearchChange: c, searchResultLabel: l, leading: u, actions: d, displayControl: f, align: h = "split" } = e, g = tn(t, n, (e) => e), { activeViewId: v, settings: y, sorts: b, openMenu: x, openRuleIndex: S } = g, w = ue(g.filter), { activateView: E, setFilter: A, setOpenMenu: j, setOpenRuleIndex: M, selectRule: F } = g, I = r.find((e) => e.id === v), L = {
1821
+ settings: y,
1822
+ filter: w,
1823
+ sorts: b
1824
+ }, R = sn(I, L), z = a.filter((e) => e.filterable), B = N(null), [V, H] = P(), [W, G] = P(!1), ee = () => j(x === "filter" ? null : "filter"), te = async (e) => {
1825
+ G(!0), H(void 0);
1826
+ try {
1827
+ await e();
1828
+ } catch (e) {
1829
+ H(e instanceof Error ? e.message : String(e));
1830
+ } finally {
1831
+ G(!1);
1832
+ }
1833
+ }, ne = async (e) => {
1834
+ i && E(await i.onCreateView(e));
1835
+ }, re = (e) => {
1836
+ let t = Y(z, e);
1837
+ return t ? o(t) : [];
1838
+ }, ie = R || w.rules.length > 0 || !!w.groups?.length;
1839
+ return /* @__PURE__ */ O(Re.Provider, {
1840
+ value: e.itemLabel ?? "Item",
1841
+ children: /* @__PURE__ */ k(C, {
1842
+ "data-testid": "collection-view-bar",
1843
+ gap: "0",
1844
+ flexShrink: 0,
1845
+ borderBottomWidth: "1px",
1846
+ borderColor: "border.subtle",
1847
+ children: [
1848
+ /* @__PURE__ */ k(_, {
1849
+ height: "view-bar",
1850
+ minW: "0",
1851
+ gap: "2xs",
1852
+ paddingX: "xs",
1853
+ children: [
1854
+ u,
1855
+ /* @__PURE__ */ O(Gt, {
1856
+ views: r,
1857
+ activeViewId: v,
1858
+ viewsSource: i,
1859
+ dirty: R,
1860
+ busy: W,
1861
+ state: L,
1862
+ onActivate: E,
1863
+ run: te,
1864
+ createView: ne
1865
+ }),
1866
+ h === "split" ? /* @__PURE__ */ O(p, { flex: "1" }) : null,
1867
+ /* @__PURE__ */ O(fn, {
1868
+ value: s,
1869
+ onValueChange: c,
1870
+ resultLabel: l
1871
+ }),
1872
+ /* @__PURE__ */ O(pn, {
1873
+ label: "Filter",
1874
+ icon: U,
1875
+ count: Vt(w),
1876
+ buttonRef: B,
1877
+ onClick: ee
1878
+ }),
1879
+ f,
1880
+ d
1881
+ ]
1882
+ }),
1883
+ ie ? /* @__PURE__ */ k(_, {
1884
+ "data-testid": "collection-view-criteria",
1885
+ height: "view-subheader",
1886
+ minW: "0",
1887
+ gap: "2xs",
1888
+ paddingX: "xs",
1889
+ borderTopWidth: "1px",
1890
+ borderColor: "border.subtle",
1891
+ children: [
1892
+ /* @__PURE__ */ k(_, {
1893
+ minW: "0",
1894
+ gap: "2xs",
1895
+ overflowX: "auto",
1896
+ children: [w.rules.map((e, t) => /* @__PURE__ */ O(Ht, {
1897
+ fields: z,
1898
+ rule: e,
1899
+ options: re(e.attributeId),
1900
+ open: S === t,
1901
+ onOpenChange: (e) => M(e ? t : null),
1902
+ onChange: (e) => A(Q(w, t, e)),
1903
+ onRemove: () => {
1904
+ M(null), A(Q(w, t, void 0));
1905
+ }
1906
+ }, `${t}:${e.attributeId}`)), w.groups?.map((e, t) => /* @__PURE__ */ O(Tt, {
1907
+ fields: z,
1908
+ group: e,
1909
+ optionsFor: o,
1910
+ onChange: (e) => A(de(w, t, e)),
1911
+ onRemove: () => A(de(w, t))
1912
+ }, t))]
1913
+ }),
1914
+ /* @__PURE__ */ O(p, { flex: "1" }),
1915
+ R ? /* @__PURE__ */ k(D, { children: [/* @__PURE__ */ k(m, {
1916
+ size: "2xs",
1917
+ variant: "outline",
1918
+ onClick: () => I && E(I),
1919
+ children: [/* @__PURE__ */ O(K, {}), "Reset"]
1920
+ }), /* @__PURE__ */ O(m, {
1921
+ size: "2xs",
1922
+ variant: "primary",
1923
+ disabled: !i || W,
1924
+ onClick: () => i && I && te(() => i.onUpdateView(I.id, L)),
1925
+ children: "Save view"
1926
+ })] }) : null
1927
+ ]
1928
+ }) : null,
1929
+ V ? /* @__PURE__ */ O(T, {
1930
+ role: "alert",
1931
+ color: "fg.error",
1932
+ textStyle: "label/S",
1933
+ padding: "xs",
1934
+ children: V
1935
+ }) : null,
1936
+ /* @__PURE__ */ O(tt, {
1937
+ open: x === "filter",
1938
+ onOpenChange: (e) => j(e ? "filter" : null),
1939
+ anchorRef: B,
1940
+ placement: "bottom-end",
1941
+ width: "min(440px, calc(100vw - 32px))",
1942
+ padding: "0",
1943
+ testId: "filter-menu-popover",
1944
+ children: /* @__PURE__ */ O(Xt, {
1945
+ fields: z,
1946
+ filter: w,
1947
+ optionsFor: o,
1948
+ onSelectRule: F,
1949
+ onAddAdvanced: () => {
1950
+ j(null), A(fe(w));
1951
+ },
1952
+ onClear: () => {
1953
+ j(null), M(null), A(Kt);
1954
+ }
1955
+ })
1956
+ })
1957
+ ]
1958
+ })
1959
+ });
1960
+ }, hn = (e) => e.trim().toLocaleLowerCase(), gn = (e, t) => {
1961
+ let n = hn(t), r = [];
1962
+ if (!n) return r;
1963
+ let i = e.toLocaleLowerCase(), a = i.indexOf(n);
1964
+ for (; a !== -1;) r.push([a, a + n.length]), a = i.indexOf(n, a + n.length);
1965
+ return r;
1966
+ }, _n = (e, t, n) => {
1967
+ let r = hn(t);
1968
+ return r ? e.filter((e) => n(e).some((e) => e.toLocaleLowerCase().includes(r))) : e;
1969
+ };
1970
+ //#endregion
1971
+ export { be as C, he as D, _e as E, me as O, ye as S, pe as T, X as _, tn as a, Se as b, Bt as c, $ as d, Ve as f, Z as g, Me as h, cn as i, tt as l, Y as m, _n as n, Kt as o, Ee as p, mn as r, Vt as s, gn as t, $e as u, je as v, ge as w, xe as x, we as y };
1972
+
1973
+ //# sourceMappingURL=collection-view-search-CpjJy76w.js.map