react-semaphor 0.1.536 → 0.1.538

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 (173) hide show
  1. package/dist/analytics-protocol/index.js +352 -341
  2. package/dist/assistant-context/index.js +10 -0
  3. package/dist/assistant-protocol/index.js +104 -0
  4. package/dist/brand-studio/index.js +35 -31
  5. package/dist/briefings/index.js +46 -45
  6. package/dist/chunks/_commonjsHelpers-BkfeUUK-.js +28 -0
  7. package/dist/chunks/add-to-dashboard-CxtTfISD.js +56 -0
  8. package/dist/chunks/aggregate-table-row-presentation-Qgpv6_G8.js +979 -0
  9. package/dist/chunks/analytics-base-schemas-BFAoRlkU.js +472 -0
  10. package/dist/chunks/apply-dashboard-operations-C-iahGka.js +402 -0
  11. package/dist/chunks/assistant-chat-BAqUIFp5.js +7966 -0
  12. package/dist/chunks/availability-Bp5Gfu1I.js +44 -0
  13. package/dist/chunks/{bookmark-state-B-I9BDD0.js → bookmark-state-k7y5SNGf.js} +9 -9
  14. package/dist/chunks/{braces-8TRlDwDw.js → braces-o9UiRQes.js} +1 -1
  15. package/dist/chunks/calculated-field-identity-DcBS2NPP.js +2161 -0
  16. package/dist/chunks/calendar-day-equality-Bpl15IBo.js +487 -0
  17. package/dist/chunks/class-utils-Df1OVOT1.js +2315 -0
  18. package/dist/chunks/{field-dependencies-CpRUwr9J.js → common-types-CUf03Htv.js} +65 -58
  19. package/dist/chunks/context-HD9usB1P.js +349 -0
  20. package/dist/chunks/conversation-sQiWYUOb.js +16 -0
  21. package/dist/chunks/csv-utils-GUfKyT1J.js +56 -0
  22. package/dist/chunks/custom-visual-inputs-BrUOIwln.js +3288 -0
  23. package/dist/chunks/{dashboard-BTDY_I5L.js → dashboard-DTDDFQsS.js} +1 -1
  24. package/dist/chunks/{dashboard-briefing-launcher-DV_rlhT2.js → dashboard-briefing-launcher-Bb2QUqOa.js} +764 -740
  25. package/dist/chunks/{dashboard-controls-B4LxN5dr.js → dashboard-controls-FpONU8QV.js} +683 -686
  26. package/dist/chunks/{common-types-g7yS12Cg.js → dashboard-filter-value-compatibility-D95O4nd7.js} +18 -24
  27. package/dist/chunks/dashboard-json-DazPhBU_.js +69 -0
  28. package/dist/chunks/document-dashboard-inputs-D96rlU7S.js +10678 -0
  29. package/dist/chunks/document-sheet-utils-C1eEldxs.js +1076 -0
  30. package/dist/chunks/{edit-dashboard-visual-L5zsle6X.js → edit-dashboard-visual-CIhZodVH.js} +4744 -4746
  31. package/dist/chunks/editor-draft-sync-BN5qYHPF.js +15 -0
  32. package/dist/chunks/filter-value-text-BhWugPWE.js +163 -0
  33. package/dist/chunks/index-CqMiAkay.js +3164 -0
  34. package/dist/chunks/index-CuHybtft.js +51 -0
  35. package/dist/chunks/layout-grid-Bgzth8vd.js +16 -0
  36. package/dist/chunks/{matrix-analytical-definition-CgBTD6H8.js → matrix-analytical-definition-bcprSe4u.js} +1 -1
  37. package/dist/chunks/{matrix-card-CAdizkUl.js → matrix-card-CJn1hB5V.js} +13 -12
  38. package/dist/chunks/matrix-definition-DQDI2okF.js +206 -0
  39. package/dist/chunks/{matrix-formatter-DJCk8Znf.js → matrix-formatter-Bgw32tb3.js} +648 -457
  40. package/dist/chunks/matrix-member-presentation-BNPSDKBG.js +105 -0
  41. package/dist/chunks/{matrix-operation-contract-BKupLHXL.js → matrix-operation-contract-B8PBF1Gd.js} +134 -133
  42. package/dist/chunks/{metric-comparison-BKHyvnAy.js → metric-comparison-CojWeLqx.js} +1 -1
  43. package/dist/chunks/{palette-Cp1hqZtm.js → palette-D10o_yYX.js} +1 -1
  44. package/dist/chunks/pivot-header-presentation-MkcKnjn3.js +42 -0
  45. package/dist/chunks/{pivot-result-identity-Bs4tLtLo.js → pivot-result-identity-D6hhcRXi.js} +1 -1
  46. package/dist/chunks/pivot-result-lifecycle-8qCDmpKc.js +804 -0
  47. package/dist/chunks/raw-temporal-D61lr48Y.js +1464 -0
  48. package/dist/chunks/{raw-temporal-contract-mLFS-9wk.js → raw-temporal-contract-C51YG48G.js} +1 -1
  49. package/dist/chunks/report-preferences-dialog-BCGs4-AE.js +1808 -0
  50. package/dist/chunks/{report-runtime-context-CG_I0PPW.js → report-runtime-context-B984Nq1E.js} +8 -7
  51. package/dist/chunks/save-CfJpQQ68.js +21 -0
  52. package/dist/chunks/saved-dashboard-context-BrTkjcod.js +566 -0
  53. package/dist/chunks/{selection-reducer-CiDEtmAq.js → selection-reducer-vKIb_jS6.js} +2 -2
  54. package/dist/chunks/{semaphor-ready-indicator-3TXTZgw-.js → semaphor-ready-indicator-CHHoWhil.js} +65657 -62814
  55. package/dist/chunks/{shelf-drop-preview-context-CBCs9rjz.js → shelf-drop-preview-context-EsayECEC.js} +199 -196
  56. package/dist/chunks/{source-entity-resolution-C-oNyYMp.js → source-entity-resolution-CVA1a85c.js} +8 -8
  57. package/dist/chunks/switch-CvItuC1Q.js +8199 -0
  58. package/dist/chunks/{temporal-bucket-DlFuhCnT.js → temporal-bucket-D8JF7zKz.js} +86 -71
  59. package/dist/chunks/{temporal-bucket-contract-D2OuaVZ7.js → temporal-bucket-contract-DaOajRC7.js} +1 -1
  60. package/dist/chunks/{token-types-DtSJOUjh.js → token-types-bxUxXDX2.js} +1 -1
  61. package/dist/chunks/{upload-CAIpsti1.js → upload-BFX7apKV.js} +1 -1
  62. package/dist/chunks/{use-create-flow-overlay-state-Bk-SBnaY.js → use-create-flow-overlay-state-BqA92GkX.js} +331 -339
  63. package/dist/chunks/{validators-DMSH81OM.js → validators-Ej1DdCXa.js} +1050 -1510
  64. package/dist/chunks/visual-choice-JiJ-_3bi.js +204 -0
  65. package/dist/chunks/x-4f5U2XwU.js +100 -0
  66. package/dist/chunks/{zoned-wall-clock-1qlWCE20.js → zoned-wall-clock-MulfA26h.js} +2 -2
  67. package/dist/dashboard/index.js +2 -2
  68. package/dist/dashboard-authoring/index.js +823 -661
  69. package/dist/data-app-sdk/index.js +32 -30
  70. package/dist/data-app-sdk-adapters/index.js +23 -22
  71. package/dist/data-app-sdk-validation/index.js +23 -22
  72. package/dist/format-utils/index.js +173 -168
  73. package/dist/index.js +267 -258
  74. package/dist/layouts/index.js +236 -24
  75. package/dist/report-runtime-context/index.js +2 -2
  76. package/dist/style.css +1 -1
  77. package/dist/surfboard/index.js +2 -2
  78. package/dist/types/assistant-context.d.ts +2 -0
  79. package/dist/types/assistant-protocol.d.ts +2 -0
  80. package/dist/types/components/assistant/assistant-entry-points.d.ts +18 -0
  81. package/dist/types/components/assistant/assistant-provider.d.ts +19 -0
  82. package/dist/types/components/assistant/assistant-store.d.ts +52 -0
  83. package/dist/types/components/assistant/use-assistant.d.ts +38 -0
  84. package/dist/types/components/index.d.ts +5 -1
  85. package/dist/types/components/surfboard/filter/types.d.ts +5 -2
  86. package/dist/types/index.js +50 -51
  87. package/dist/types/lib/api/invalidate-token.d.ts +7 -0
  88. package/dist/types/lib/charts/cartesian-fields.d.ts +64 -0
  89. package/dist/types/lib/charts/types.d.ts +7 -0
  90. package/dist/types/lib/dashboard-inputs/dashboard-filter-mapping-storage-transition.d.ts +14 -2
  91. package/dist/types/lib/dashboard-inputs/dashboard-input-target-context.d.ts +5 -6
  92. package/dist/types/lib/dashboard-inputs/dashboard-input-values.d.ts +8 -3
  93. package/dist/types/lib/dashboard-inputs/resolve-dashboard-input-context.d.ts +11 -6
  94. package/dist/types/lib/dashboard-pagination/dashboard-card-pagination.d.ts +7 -0
  95. package/dist/types/lib/dashboard-viewer/compatibility-input-storage.d.ts +79 -0
  96. package/dist/types/lib/dashboard-viewer/viewer-state.d.ts +3 -2
  97. package/dist/types/lib/document/document-table-data-policy.d.ts +15 -0
  98. package/dist/types/lib/filter-values/filter-mode.d.ts +22 -0
  99. package/dist/types/lib/hooks/use-calendar-context.d.ts +5 -0
  100. package/dist/types/lib/hooks/use-text-filter.d.ts +7 -0
  101. package/dist/types/lib/print/print-inputs.d.ts +4 -2
  102. package/dist/types/lib/query-context/build-card-query-context.d.ts +12 -4
  103. package/dist/types/lib/query-context/build-dashboard-execution-snapshot.d.ts +93 -0
  104. package/dist/types/lib/query-context/card-server-request.d.ts +72 -0
  105. package/dist/types/lib/query-context/compile-dashboard-card-filters.d.ts +7 -0
  106. package/dist/types/lib/query-context/describe-card-execution-snapshot.d.ts +56 -0
  107. package/dist/types/lib/query-context/document-section-card-query.d.ts +45 -0
  108. package/dist/types/lib/query-context/resolve-runtime-card-filters.d.ts +17 -2
  109. package/dist/types/lib/stores/dashboard-store.d.ts +34 -11
  110. package/dist/types/lib/stores/editor-store.d.ts +4 -2
  111. package/dist/types/lib/types/token-types.d.ts +11 -0
  112. package/dist/types/lib/utils/card-type-change.d.ts +30 -0
  113. package/dist/types/lib/utils/comparison-window-caption.d.ts +12 -0
  114. package/dist/types/lib/utils/filter-default-value-utils.d.ts +13 -2
  115. package/dist/types/shared/analytics-protocol/applied-constraints.d.ts +74 -0
  116. package/dist/types/shared/analytics-protocol/contracts.d.ts +5 -0
  117. package/dist/types/shared/analytics-protocol/filter-field-ownership.d.ts +43 -0
  118. package/dist/types/shared/analytics-protocol/index.d.ts +3 -0
  119. package/dist/types/shared/analytics-protocol/matrix-window-contract.d.ts +1 -1
  120. package/dist/types/shared/analytics-protocol/visual-choice.d.ts +75 -0
  121. package/dist/types/shared/assistant-context/index.d.ts +9 -0
  122. package/dist/types/shared/assistant-context/project-context.d.ts +55 -0
  123. package/dist/types/shared/assistant-context/saved-dashboard-context.d.ts +130 -0
  124. package/dist/types/shared/assistant-protocol/add-to-dashboard.d.ts +17 -0
  125. package/dist/types/shared/assistant-protocol/artifact.d.ts +63 -0
  126. package/dist/types/shared/assistant-protocol/availability.d.ts +39 -0
  127. package/dist/types/shared/assistant-protocol/context.d.ts +952 -0
  128. package/dist/types/shared/assistant-protocol/conversation.d.ts +38 -0
  129. package/dist/types/shared/assistant-protocol/index.d.ts +16 -0
  130. package/dist/types/shared/assistant-protocol/limits.d.ts +53 -0
  131. package/dist/types/shared/assistant-protocol/parts.d.ts +131 -0
  132. package/dist/types/shared/assistant-protocol/request.d.ts +77 -0
  133. package/dist/types/shared/assistant-protocol/sources.d.ts +27 -0
  134. package/dist/types/shared/assistant-protocol/token-config.d.ts +32 -0
  135. package/dist/types/shared/assistant-protocol/transcript.d.ts +40 -0
  136. package/dist/types/shared/dashboard-authoring/card-query-request.d.ts +112 -0
  137. package/dist/types/shared/dashboard-authoring/control-execution-contract.d.ts +1794 -0
  138. package/dist/types/shared/dashboard-authoring/index.d.ts +5 -0
  139. package/dist/types/shared/dashboard-authoring/new-card.d.ts +10 -0
  140. package/dist/types/shared/dashboard-authoring/operations/apply-dashboard-operations.d.ts +40 -0
  141. package/dist/types/shared/dashboard-authoring/resolved-primary-date-field-validation.d.ts +16 -0
  142. package/dist/types/shared/format-utils/filter-detail.d.ts +70 -0
  143. package/dist/types/shared/format-utils/filter-value-text.d.ts +15 -0
  144. package/dist/types/shared/format-utils/index.d.ts +3 -0
  145. package/dist/types/shared/format-utils/raw-temporal.d.ts +7 -0
  146. package/dist/types/shared/format-utils/temporal-bucket.d.ts +7 -0
  147. package/dist/types/shared/layouts/frame-layouts.d.ts +23 -0
  148. package/dist/types/shared/layouts/index.d.ts +1 -0
  149. package/package.json +12 -2
  150. package/dist/chunks/calculated-field-identity-BptYhyOP.js +0 -1326
  151. package/dist/chunks/calendar-day-equality-BRjN1S9h.js +0 -383
  152. package/dist/chunks/card-config-utils-BOM1dxCk.js +0 -1150
  153. package/dist/chunks/constants-DNWVy8Y3.js +0 -9
  154. package/dist/chunks/dashboard-json-Ccjo0Dzw.js +0 -65
  155. package/dist/chunks/field-aggregations-CoLzYHeL.js +0 -1229
  156. package/dist/chunks/index-DTcTAGGM.js +0 -4101
  157. package/dist/chunks/matrix-continuation-C4sRcjZU.js +0 -72
  158. package/dist/chunks/matrix-control-sources-DTqcA2_L.js +0 -636
  159. package/dist/chunks/matrix-definition-D9iShKZI.js +0 -87
  160. package/dist/chunks/matrix-member-presentation-Ct8GuxHt.js +0 -209
  161. package/dist/chunks/numeric-presentation-CWu3gunq.js +0 -537
  162. package/dist/chunks/pivot-header-presentation-CHs2GFrM.js +0 -753
  163. package/dist/chunks/pivot-result-lifecycle-DQz_gjGu.js +0 -789
  164. package/dist/chunks/raw-temporal-iMXRK-Qz.js +0 -930
  165. package/dist/chunks/report-preferences-dialog-CW8VEIDx.js +0 -1623
  166. package/dist/chunks/save-kO6cIaob.js +0 -34
  167. package/dist/chunks/semantic-format-DiqYeKwU.js +0 -192
  168. package/dist/chunks/switch-CKB-kUaC.js +0 -25003
  169. package/dist/chunks/temporal-input-presentation-BD7YNUzu.js +0 -195
  170. package/dist/chunks/x-CXDkqdur.js +0 -149
  171. package/dist/types/lib/class-utils.d.ts +0 -2
  172. package/dist/types/lib/document/document-input-runtime.d.ts +0 -26
  173. package/dist/types/lib/utils.d.ts +0 -51
@@ -0,0 +1,204 @@
1
+ function S(e, n) {
2
+ var t, i;
3
+ const r = e.name.split(".").pop(), o = (t = e.fieldMeta) == null ? void 0 : t.qualifiedFieldName, a = !!(n.qualifiedFieldName && (o || e.name) === n.qualifiedFieldName), s = !((i = n.qualifiedFieldName) != null && i.includes(".")) && r === n.name;
4
+ return a || s;
5
+ }
6
+ function N(e) {
7
+ var n;
8
+ return !e.negate && (e.logicalOperator === "AND" || e.conditions.length + (((n = e.groups) == null ? void 0 : n.length) ?? 0) <= 1);
9
+ }
10
+ function x(e) {
11
+ return !e || !Array.isArray(e.conditions) ? [] : N(e) ? [
12
+ ...e.conditions,
13
+ ...(e.groups ?? []).flatMap((n) => x(n))
14
+ ] : [];
15
+ }
16
+ function U(e, n) {
17
+ const r = e.filters;
18
+ if (!r || !Array.isArray(r.conditions) || !N(r) || !n.length)
19
+ return e;
20
+ const o = (s, t) => {
21
+ var c;
22
+ const i = { name: t.field.name, qualifiedFieldName: t.field.qualifiedFieldName }, d = !((c = s.fieldMeta) != null && c.qualifiedFieldName);
23
+ return S(s, i) || d && s.name === i.name;
24
+ }, a = r.conditions.filter(
25
+ (s) => !n.some((t) => o(t, s))
26
+ );
27
+ return a.length === r.conditions.length ? e : { ...e, filters: { ...r, conditions: a } };
28
+ }
29
+ const E = ["number", "line", "bar", "stackedBar", "table"], F = {
30
+ /** Fewest points on a line. */
31
+ lineMinPoints: 2,
32
+ /** Most measures on one line chart. */
33
+ lineMaxMeasures: 3,
34
+ /**
35
+ * Categories (or time points) on a bar chart. Up to `barDefaultMaxCategories`
36
+ * a category breakdown opens as bars; past it, up to `barMaxCategories`, it
37
+ * opens as a table with bars in the toggle and on request; past that, a
38
+ * table only.
39
+ */
40
+ barMinCategories: 2,
41
+ barDefaultMaxCategories: 12,
42
+ barMaxCategories: 30,
43
+ /** Series a bar with series shows, at least and at most. */
44
+ seriesMin: 2,
45
+ seriesMax: 6
46
+ }, f = { kind: "table", encodings: {} }, $ = {
47
+ number: "a single number",
48
+ line: "a line chart",
49
+ bar: "a bar chart",
50
+ stackedBar: "a stacked bar chart",
51
+ table: "a table"
52
+ };
53
+ function P(e, n) {
54
+ const { options: r, reason: o } = I(e), a = e.governed ? r : [...r.filter((i) => i.kind === "table"), ...r.filter((i) => i.kind !== "table")], s = a.map((i) => i.kind);
55
+ if (n === void 0)
56
+ return { ok: !0, visual: a[0], eligible: s, reason: e.governed ? o : `Advanced SQL opens as a table. ${o}` };
57
+ const t = a.find((i) => i.kind === n);
58
+ return t ? { ok: !0, visual: t, eligible: s, reason: o } : {
59
+ ok: !1,
60
+ code: "kind_not_eligible",
61
+ eligible: s,
62
+ message: `${L($[n])} does not fit this result: ${_(o)}. It can be shown as ${s.map((i) => $[i]).join(" or ")}.`
63
+ };
64
+ }
65
+ function I(e) {
66
+ const n = (l) => ({ options: [f], reason: l });
67
+ if (!e.complete) return n("Part of the question could not be answered");
68
+ if (e.truncated || e.records.length < e.rowCount) return n("The result has more rows than are kept");
69
+ if (e.records.length === 0) return n("The result has no rows");
70
+ const r = (l) => e.columns.filter((u) => q(u, e.governed) === l).map((u) => u.key), o = r("time"), a = r("dimension"), s = r("measure");
71
+ if (r("other").length) return n("A column cannot be charted");
72
+ if (s.length === 0) return n("The result has no measure");
73
+ if (!e.records.every((l) => s.every((u) => B(l[u]))))
74
+ return n("A measure has values that are not numbers");
75
+ const t = e.records.length, {
76
+ lineMinPoints: i,
77
+ lineMaxMeasures: d,
78
+ barMinCategories: c,
79
+ barDefaultMaxCategories: O,
80
+ barMaxCategories: h,
81
+ seriesMin: C,
82
+ seriesMax: M
83
+ } = F;
84
+ if (t === 1 && e.columns.length === 1)
85
+ return { options: [{ kind: "number", encodings: { y: s } }, f], reason: "One value" };
86
+ if (o.length === 1 && a.length === 0 && s.length <= d) {
87
+ if (t < i || !k(e.records, o)) return n("The time column does not form a series");
88
+ if (!T(e.records, o[0])) return n("The rows are not in time order");
89
+ const l = { x: o[0], y: s };
90
+ return {
91
+ options: [
92
+ { kind: "line", encodings: l },
93
+ ...t <= h ? [{ kind: "bar", encodings: l }] : [],
94
+ f
95
+ ],
96
+ reason: `A time column and ${p(s.length, "measure")} over ${t} points`
97
+ };
98
+ }
99
+ if (a.length === 1 && o.length === 0 && s.length === 1) {
100
+ if (!k(e.records, a)) return n("A category value repeats");
101
+ if (t < c) return n(`One category with ${p(t, "value")}`);
102
+ if (t > h)
103
+ return n(`One category with ${t} values, more than a bar chart shows (${h})`);
104
+ const l = { kind: "bar", encodings: { x: a[0], y: s } };
105
+ return t <= O ? { options: [l, f], reason: `One category with ${p(t, "value")} and one measure` } : { options: [f, l], reason: `One category with ${t} values: a table first, bars when asked` };
106
+ }
107
+ const b = [...o, ...a];
108
+ if (b.length === 2 && s.length === 1) {
109
+ const [l, u] = b, w = o.includes(l);
110
+ if (w && !T(e.records, l)) return n("The rows are not in time order");
111
+ const m = A(e.records, l), g = A(e.records, u);
112
+ if (!k(e.records, b)) return n("A pair of grouping values repeats");
113
+ if (m < (w ? i : c) || g < C)
114
+ return n("Two groupings with too few values to chart");
115
+ if (g > M)
116
+ return n(`${g} series, more than a chart tells apart (${M})`);
117
+ const v = { x: l, y: s, series: u }, y = m <= h ? [
118
+ { kind: "bar", encodings: v },
119
+ ...e.governed && V(e.columns, s[0]) ? [{ kind: "stackedBar", encodings: v }] : []
120
+ ] : [];
121
+ return w ? {
122
+ options: [{ kind: "line", encodings: v }, ...y, f],
123
+ reason: `A time column with ${g} series over ${m} points`
124
+ } : y.length === 0 ? n(`${m} values on the axis, more than a bar chart shows (${h})`) : {
125
+ options: [f, ...y],
126
+ reason: `Two groupings (${m} by ${g}) and one measure`
127
+ };
128
+ }
129
+ return n("The result does not have a chart shape");
130
+ }
131
+ function q(e, n) {
132
+ if (n) {
133
+ if (e.temporalBucket || e.role === "date") return "time";
134
+ if (e.role === "measure") return "measure";
135
+ if (e.role === "dimension" || e.role === "id") return "dimension";
136
+ }
137
+ switch (e.dataType) {
138
+ case "date":
139
+ case "datetime":
140
+ return "time";
141
+ case "string":
142
+ return "dimension";
143
+ case "number":
144
+ return "measure";
145
+ default:
146
+ return "other";
147
+ }
148
+ }
149
+ const D = /^\d{4}-\d{2}-\d{2}(?:[T ]\d{2}:\d{2}(?::\d{2}(?:\.\d+)?)?)?(Z|[+-]\d{2}:?\d{2})?$/;
150
+ function T(e, n) {
151
+ let r, o;
152
+ const a = /* @__PURE__ */ new Set();
153
+ for (const s of e) {
154
+ const t = s[n], i = typeof t == "string" ? D.exec(t) : null;
155
+ if (!i) return !1;
156
+ if (a.has(t)) continue;
157
+ a.add(t);
158
+ const d = i[1] !== void 0;
159
+ if (o === void 0 && (o = d), d !== o) return !1;
160
+ const c = d ? Date.parse(t.replace(" ", "T")) : t;
161
+ if (typeof c == "number" && Number.isNaN(c) || r !== void 0 && c <= r) return !1;
162
+ r = c;
163
+ }
164
+ return !0;
165
+ }
166
+ function V(e, n) {
167
+ var o;
168
+ const r = (o = e.find((a) => a.key === n)) == null ? void 0 : o.aggregate;
169
+ return r === "SUM" || r === "COUNT";
170
+ }
171
+ function B(e) {
172
+ return e == null || typeof e == "number" && Number.isFinite(e);
173
+ }
174
+ function k(e, n) {
175
+ const r = /* @__PURE__ */ new Set();
176
+ for (const o of e) {
177
+ const a = JSON.stringify(n.map((s) => o[s] ?? null));
178
+ if (r.has(a)) return !1;
179
+ r.add(a);
180
+ }
181
+ return !0;
182
+ }
183
+ function A(e, n) {
184
+ return new Set(e.map((r) => JSON.stringify(r[n] ?? null))).size;
185
+ }
186
+ function p(e, n) {
187
+ return e === 1 ? `one ${n}` : `${e} ${n}s`;
188
+ }
189
+ function L(e) {
190
+ return e.charAt(0).toUpperCase() + e.slice(1);
191
+ }
192
+ function _(e) {
193
+ return e.charAt(0).toLowerCase() + e.slice(1);
194
+ }
195
+ export {
196
+ E as V,
197
+ F as a,
198
+ P as c,
199
+ S as f,
200
+ N as i,
201
+ x as u,
202
+ q as v,
203
+ U as w
204
+ };
@@ -0,0 +1,100 @@
1
+ import { forwardRef as c, createElement as a } from "react";
2
+ /**
3
+ * @license lucide-react v0.453.0 - ISC
4
+ *
5
+ * This source code is licensed under the ISC license.
6
+ * See the LICENSE file in the root directory of this source tree.
7
+ */
8
+ const w = (e) => e.replace(/([a-z0-9])([A-Z])/g, "$1-$2").toLowerCase(), i = (...e) => e.filter((r, t, o) => !!r && o.indexOf(r) === t).join(" ");
9
+ /**
10
+ * @license lucide-react v0.453.0 - ISC
11
+ *
12
+ * This source code is licensed under the ISC license.
13
+ * See the LICENSE file in the root directory of this source tree.
14
+ */
15
+ var k = {
16
+ xmlns: "http://www.w3.org/2000/svg",
17
+ width: 24,
18
+ height: 24,
19
+ viewBox: "0 0 24 24",
20
+ fill: "none",
21
+ stroke: "currentColor",
22
+ strokeWidth: 2,
23
+ strokeLinecap: "round",
24
+ strokeLinejoin: "round"
25
+ };
26
+ /**
27
+ * @license lucide-react v0.453.0 - ISC
28
+ *
29
+ * This source code is licensed under the ISC license.
30
+ * See the LICENSE file in the root directory of this source tree.
31
+ */
32
+ const C = c(
33
+ ({
34
+ color: e = "currentColor",
35
+ size: r = 24,
36
+ strokeWidth: t = 2,
37
+ absoluteStrokeWidth: o,
38
+ className: s = "",
39
+ children: n,
40
+ iconNode: u,
41
+ ...d
42
+ }, m) => a(
43
+ "svg",
44
+ {
45
+ ref: m,
46
+ ...k,
47
+ width: r,
48
+ height: r,
49
+ stroke: e,
50
+ strokeWidth: o ? Number(t) * 24 / Number(r) : t,
51
+ className: i("lucide", s),
52
+ ...d
53
+ },
54
+ [
55
+ ...u.map(([h, p]) => a(h, p)),
56
+ ...Array.isArray(n) ? n : [n]
57
+ ]
58
+ )
59
+ );
60
+ /**
61
+ * @license lucide-react v0.453.0 - ISC
62
+ *
63
+ * This source code is licensed under the ISC license.
64
+ * See the LICENSE file in the root directory of this source tree.
65
+ */
66
+ const l = (e, r) => {
67
+ const t = c(
68
+ ({ className: o, ...s }, n) => a(C, {
69
+ ref: n,
70
+ iconNode: r,
71
+ className: i(`lucide-${w(e)}`, o),
72
+ ...s
73
+ })
74
+ );
75
+ return t.displayName = `${e}`, t;
76
+ };
77
+ /**
78
+ * @license lucide-react v0.453.0 - ISC
79
+ *
80
+ * This source code is licensed under the ISC license.
81
+ * See the LICENSE file in the root directory of this source tree.
82
+ */
83
+ const b = l("ChevronDown", [
84
+ ["path", { d: "m6 9 6 6 6-6", key: "qrunsl" }]
85
+ ]);
86
+ /**
87
+ * @license lucide-react v0.453.0 - ISC
88
+ *
89
+ * This source code is licensed under the ISC license.
90
+ * See the LICENSE file in the root directory of this source tree.
91
+ */
92
+ const g = l("X", [
93
+ ["path", { d: "M18 6 6 18", key: "1bl5f8" }],
94
+ ["path", { d: "m6 6 12 12", key: "d8bk6v" }]
95
+ ]);
96
+ export {
97
+ b as C,
98
+ g as X,
99
+ l as c
100
+ };
@@ -118,10 +118,10 @@ function $(t, e) {
118
118
  return new Date(i.length ? i[0] : o - s);
119
119
  }
120
120
  export {
121
- p as a,
121
+ l as a,
122
122
  $ as b,
123
123
  y as f,
124
- l as g,
124
+ p as g,
125
125
  T as p,
126
126
  w as r,
127
127
  c as w,
@@ -1,5 +1,5 @@
1
- import { D as o } from "../chunks/dashboard-BTDY_I5L.js";
2
- import { C as s, E as C } from "../chunks/common-types-g7yS12Cg.js";
1
+ import { D as o } from "../chunks/dashboard-DTDDFQsS.js";
2
+ import { C as s, E as C } from "../chunks/common-types-CUf03Htv.js";
3
3
  export {
4
4
  s as CONTROL_CARD_DEFAULT_VALUE,
5
5
  o as Dashboard,