react-semaphor 0.1.537 → 0.1.539

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 (174) 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-BjK9YfMI.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-DgiSuFT4.js +8083 -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-briefing-launcher-A2uVpHCp.js → dashboard-briefing-launcher-Bl3gCeBR.js} +580 -556
  24. package/dist/chunks/{dashboard-controls-DxTuVis_.js → dashboard-controls-0EX0HiJt.js} +683 -686
  25. package/dist/chunks/{common-types-g7yS12Cg.js → dashboard-filter-value-compatibility-D95O4nd7.js} +18 -24
  26. package/dist/chunks/dashboard-json-6X_2BDiL.js +69 -0
  27. package/dist/chunks/{dashboard-BPJo-Fnd.js → dashboard-y5BwcvzT.js} +1 -1
  28. package/dist/chunks/document-dashboard-inputs-BrYYlRVo.js +10678 -0
  29. package/dist/chunks/document-sheet-utils-C1eEldxs.js +1076 -0
  30. package/dist/chunks/{edit-dashboard-visual-ByV0OwSp.js → edit-dashboard-visual-Bzchfgga.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-DQ8avoIQ.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-CWhSbc5_.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-Dqve2jlB.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-CHu1L-lo.js → semaphor-ready-indicator-ldcwmLoY.js} +65803 -62954
  55. package/dist/chunks/{shelf-drop-preview-context-i-H6DFyU.js → shelf-drop-preview-context-BWxunXTq.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-Bj63WwHc.js → use-create-flow-overlay-state-RHgzVfcz.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-filter-option-browse.d.ts +5 -0
  101. package/dist/types/lib/hooks/use-text-filter.d.ts +9 -0
  102. package/dist/types/lib/print/print-inputs.d.ts +4 -2
  103. package/dist/types/lib/query-context/build-card-query-context.d.ts +12 -4
  104. package/dist/types/lib/query-context/build-dashboard-execution-snapshot.d.ts +93 -0
  105. package/dist/types/lib/query-context/card-server-request.d.ts +72 -0
  106. package/dist/types/lib/query-context/compile-dashboard-card-filters.d.ts +7 -0
  107. package/dist/types/lib/query-context/describe-card-execution-snapshot.d.ts +56 -0
  108. package/dist/types/lib/query-context/document-section-card-query.d.ts +45 -0
  109. package/dist/types/lib/query-context/resolve-runtime-card-filters.d.ts +17 -2
  110. package/dist/types/lib/stores/dashboard-store.d.ts +34 -11
  111. package/dist/types/lib/stores/editor-store.d.ts +4 -2
  112. package/dist/types/lib/types/token-types.d.ts +11 -0
  113. package/dist/types/lib/utils/card-type-change.d.ts +30 -0
  114. package/dist/types/lib/utils/comparison-window-caption.d.ts +12 -0
  115. package/dist/types/lib/utils/filter-default-value-utils.d.ts +13 -2
  116. package/dist/types/shared/analytics-protocol/applied-constraints.d.ts +74 -0
  117. package/dist/types/shared/analytics-protocol/contracts.d.ts +3 -0
  118. package/dist/types/shared/analytics-protocol/filter-field-ownership.d.ts +43 -0
  119. package/dist/types/shared/analytics-protocol/index.d.ts +3 -0
  120. package/dist/types/shared/analytics-protocol/matrix-window-contract.d.ts +1 -1
  121. package/dist/types/shared/analytics-protocol/visual-choice.d.ts +75 -0
  122. package/dist/types/shared/assistant-context/index.d.ts +9 -0
  123. package/dist/types/shared/assistant-context/project-context.d.ts +55 -0
  124. package/dist/types/shared/assistant-context/saved-dashboard-context.d.ts +130 -0
  125. package/dist/types/shared/assistant-protocol/add-to-dashboard.d.ts +17 -0
  126. package/dist/types/shared/assistant-protocol/artifact.d.ts +63 -0
  127. package/dist/types/shared/assistant-protocol/availability.d.ts +39 -0
  128. package/dist/types/shared/assistant-protocol/context.d.ts +952 -0
  129. package/dist/types/shared/assistant-protocol/conversation.d.ts +38 -0
  130. package/dist/types/shared/assistant-protocol/index.d.ts +16 -0
  131. package/dist/types/shared/assistant-protocol/limits.d.ts +53 -0
  132. package/dist/types/shared/assistant-protocol/parts.d.ts +140 -0
  133. package/dist/types/shared/assistant-protocol/request.d.ts +77 -0
  134. package/dist/types/shared/assistant-protocol/sources.d.ts +27 -0
  135. package/dist/types/shared/assistant-protocol/token-config.d.ts +32 -0
  136. package/dist/types/shared/assistant-protocol/transcript.d.ts +40 -0
  137. package/dist/types/shared/dashboard-authoring/card-query-request.d.ts +112 -0
  138. package/dist/types/shared/dashboard-authoring/control-execution-contract.d.ts +1794 -0
  139. package/dist/types/shared/dashboard-authoring/index.d.ts +5 -0
  140. package/dist/types/shared/dashboard-authoring/new-card.d.ts +10 -0
  141. package/dist/types/shared/dashboard-authoring/operations/apply-dashboard-operations.d.ts +40 -0
  142. package/dist/types/shared/dashboard-authoring/resolved-primary-date-field-validation.d.ts +16 -0
  143. package/dist/types/shared/format-utils/filter-detail.d.ts +70 -0
  144. package/dist/types/shared/format-utils/filter-value-text.d.ts +15 -0
  145. package/dist/types/shared/format-utils/index.d.ts +3 -0
  146. package/dist/types/shared/format-utils/raw-temporal.d.ts +7 -0
  147. package/dist/types/shared/format-utils/temporal-bucket.d.ts +7 -0
  148. package/dist/types/shared/layouts/frame-layouts.d.ts +23 -0
  149. package/dist/types/shared/layouts/index.d.ts +1 -0
  150. package/package.json +12 -2
  151. package/dist/chunks/calculated-field-identity-BptYhyOP.js +0 -1326
  152. package/dist/chunks/calendar-day-equality-BRjN1S9h.js +0 -383
  153. package/dist/chunks/card-config-utils-BOM1dxCk.js +0 -1150
  154. package/dist/chunks/constants-DNWVy8Y3.js +0 -9
  155. package/dist/chunks/dashboard-json-B1dEQu98.js +0 -65
  156. package/dist/chunks/field-aggregations-CoLzYHeL.js +0 -1229
  157. package/dist/chunks/index-DTcTAGGM.js +0 -4101
  158. package/dist/chunks/matrix-continuation-C4sRcjZU.js +0 -72
  159. package/dist/chunks/matrix-control-sources-DTqcA2_L.js +0 -636
  160. package/dist/chunks/matrix-definition-D9iShKZI.js +0 -87
  161. package/dist/chunks/matrix-member-presentation-Ct8GuxHt.js +0 -209
  162. package/dist/chunks/numeric-presentation-CWu3gunq.js +0 -537
  163. package/dist/chunks/pivot-header-presentation-CHs2GFrM.js +0 -753
  164. package/dist/chunks/pivot-result-lifecycle-DQz_gjGu.js +0 -789
  165. package/dist/chunks/raw-temporal-iMXRK-Qz.js +0 -930
  166. package/dist/chunks/report-preferences-dialog-DXPjteCU.js +0 -1623
  167. package/dist/chunks/save-kO6cIaob.js +0 -34
  168. package/dist/chunks/semantic-format-DiqYeKwU.js +0 -192
  169. package/dist/chunks/switch-DO8a0EfJ.js +0 -25004
  170. package/dist/chunks/temporal-input-presentation-BD7YNUzu.js +0 -195
  171. package/dist/chunks/x-CXDkqdur.js +0 -149
  172. package/dist/types/lib/class-utils.d.ts +0 -2
  173. package/dist/types/lib/document/document-input-runtime.d.ts +0 -26
  174. 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-BPJo-Fnd.js";
2
- import { C as s, E as C } from "../chunks/common-types-g7yS12Cg.js";
1
+ import { D as o } from "../chunks/dashboard-y5BwcvzT.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,