@burdenoff/microfe-bigconsole 2026.1004.3 → 2026.1004.5

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 (157) hide show
  1. package/dist/bigconsole/BigConsoleRoutes.d.ts +1 -1
  2. package/dist/bigconsole/BigConsoleRoutes.d.ts.map +1 -1
  3. package/dist/bigconsole/BigConsoleRoutes.js +15 -1
  4. package/dist/bigconsole/BigConsoleRoutes.js.map +1 -1
  5. package/dist/bigconsole/components/DrilldownDashboardRenderer.d.ts.map +1 -1
  6. package/dist/bigconsole/components/DrilldownDashboardRenderer.js +57 -56
  7. package/dist/bigconsole/components/DrilldownDashboardRenderer.js.map +1 -1
  8. package/dist/bigconsole/components/DrilldownModal.d.ts.map +1 -1
  9. package/dist/bigconsole/components/DrilldownModal.js +55 -53
  10. package/dist/bigconsole/components/DrilldownModal.js.map +1 -1
  11. package/dist/bigconsole/components/builder/inspector/DataBindingSection.d.ts +3 -1
  12. package/dist/bigconsole/components/builder/inspector/DataBindingSection.d.ts.map +1 -1
  13. package/dist/bigconsole/components/builder/inspector/DataBindingSection.js +40 -39
  14. package/dist/bigconsole/components/builder/inspector/DataBindingSection.js.map +1 -1
  15. package/dist/bigconsole/components/dashboard/DashboardCanvas.d.ts.map +1 -1
  16. package/dist/bigconsole/components/dashboard/DashboardCanvas.js +184 -177
  17. package/dist/bigconsole/components/dashboard/DashboardCanvas.js.map +1 -1
  18. package/dist/bigconsole/components/dashboard/DashboardGrid.d.ts.map +1 -1
  19. package/dist/bigconsole/components/dashboard/DashboardGrid.js +40 -22
  20. package/dist/bigconsole/components/dashboard/DashboardGrid.js.map +1 -1
  21. package/dist/bigconsole/components/dashboard/ExportDashboardDialog.d.ts.map +1 -1
  22. package/dist/bigconsole/components/dashboard/ExportDashboardDialog.js +31 -25
  23. package/dist/bigconsole/components/dashboard/ExportDashboardDialog.js.map +1 -1
  24. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterEditor.d.ts +1 -1
  25. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterEditor.d.ts.map +1 -1
  26. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterEditor.js +115 -80
  27. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterEditor.js.map +1 -1
  28. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/GlobalFiltersBar.d.ts.map +1 -1
  29. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/GlobalFiltersBar.js +177 -146
  30. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/GlobalFiltersBar.js.map +1 -1
  31. package/dist/bigconsole/components/dashboard/ShareDialog/ShareDialog.d.ts +1 -1
  32. package/dist/bigconsole/components/dashboard/ShareDialog/ShareDialog.d.ts.map +1 -1
  33. package/dist/bigconsole/components/dashboard/ShareDialog/ShareDialog.js +375 -325
  34. package/dist/bigconsole/components/dashboard/ShareDialog/ShareDialog.js.map +1 -1
  35. package/dist/bigconsole/components/datasink/CacheTTLSelector.d.ts.map +1 -1
  36. package/dist/bigconsole/components/datasink/CacheTTLSelector.js +7 -1
  37. package/dist/bigconsole/components/datasink/CacheTTLSelector.js.map +1 -1
  38. package/dist/bigconsole/components/parser/ParserSelector.d.ts +3 -1
  39. package/dist/bigconsole/components/parser/ParserSelector.d.ts.map +1 -1
  40. package/dist/bigconsole/components/parser/ParserSelector.js +94 -94
  41. package/dist/bigconsole/components/parser/ParserSelector.js.map +1 -1
  42. package/dist/bigconsole/components/pipeline/PipelineCard.d.ts.map +1 -1
  43. package/dist/bigconsole/components/pipeline/PipelineCard.js +111 -89
  44. package/dist/bigconsole/components/pipeline/PipelineCard.js.map +1 -1
  45. package/dist/bigconsole/components/pipeline/PipelineScopePicker.d.ts +8 -0
  46. package/dist/bigconsole/components/pipeline/PipelineScopePicker.d.ts.map +1 -0
  47. package/dist/bigconsole/components/pipeline/PipelineScopePicker.js +52 -0
  48. package/dist/bigconsole/components/pipeline/PipelineScopePicker.js.map +1 -0
  49. package/dist/bigconsole/components/widgets/PropertiesPanel.d.ts.map +1 -1
  50. package/dist/bigconsole/components/widgets/PropertiesPanel.js +257 -221
  51. package/dist/bigconsole/components/widgets/PropertiesPanel.js.map +1 -1
  52. package/dist/bigconsole/components/widgets/WidgetHeader.d.ts +1 -0
  53. package/dist/bigconsole/components/widgets/WidgetHeader.d.ts.map +1 -1
  54. package/dist/bigconsole/components/widgets/WidgetHeader.js +29 -29
  55. package/dist/bigconsole/components/widgets/WidgetHeader.js.map +1 -1
  56. package/dist/bigconsole/components/widgets/WidgetWrapper.d.ts +2 -0
  57. package/dist/bigconsole/components/widgets/WidgetWrapper.d.ts.map +1 -1
  58. package/dist/bigconsole/components/widgets/WidgetWrapper.js +247 -239
  59. package/dist/bigconsole/components/widgets/WidgetWrapper.js.map +1 -1
  60. package/dist/bigconsole/components/widgets/metric-card/MetricCardWidget.d.ts.map +1 -1
  61. package/dist/bigconsole/components/widgets/metric-card/MetricCardWidget.js +6 -4
  62. package/dist/bigconsole/components/widgets/metric-card/MetricCardWidget.js.map +1 -1
  63. package/dist/bigconsole/components/widgets/states/EmptyState.d.ts +1 -0
  64. package/dist/bigconsole/components/widgets/states/EmptyState.d.ts.map +1 -1
  65. package/dist/bigconsole/components/widgets/states/EmptyState.js +4 -4
  66. package/dist/bigconsole/components/widgets/states/EmptyState.js.map +1 -1
  67. package/dist/bigconsole/components/workflow/WorkflowDesignPreview.d.ts +7 -0
  68. package/dist/bigconsole/components/workflow/WorkflowDesignPreview.d.ts.map +1 -0
  69. package/dist/bigconsole/components/workflow/WorkflowDesignPreview.js +94 -0
  70. package/dist/bigconsole/components/workflow/WorkflowDesignPreview.js.map +1 -0
  71. package/dist/bigconsole/components/workflow/WorkflowSinkLinkForm.d.ts +7 -0
  72. package/dist/bigconsole/components/workflow/WorkflowSinkLinkForm.d.ts.map +1 -0
  73. package/dist/bigconsole/components/workflow/WorkflowSinkLinkForm.js +101 -0
  74. package/dist/bigconsole/components/workflow/WorkflowSinkLinkForm.js.map +1 -0
  75. package/dist/bigconsole/hooks/useBigConsoleSettings.d.ts +16 -0
  76. package/dist/bigconsole/hooks/useBigConsoleSettings.d.ts.map +1 -0
  77. package/dist/bigconsole/hooks/useBigConsoleSettings.js +57 -0
  78. package/dist/bigconsole/hooks/useBigConsoleSettings.js.map +1 -0
  79. package/dist/bigconsole/hooks/useDashboardOperations.d.ts.map +1 -1
  80. package/dist/bigconsole/hooks/useDashboardOperations.js +102 -79
  81. package/dist/bigconsole/hooks/useDashboardOperations.js.map +1 -1
  82. package/dist/bigconsole/hooks/useExportDashboard.d.ts +3 -1
  83. package/dist/bigconsole/hooks/useExportDashboard.d.ts.map +1 -1
  84. package/dist/bigconsole/hooks/useExportDashboard.js +23 -13
  85. package/dist/bigconsole/hooks/useExportDashboard.js.map +1 -1
  86. package/dist/bigconsole/hooks/useFilterUrlSync.d.ts +18 -0
  87. package/dist/bigconsole/hooks/useFilterUrlSync.d.ts.map +1 -1
  88. package/dist/bigconsole/hooks/useFilterUrlSync.js +87 -57
  89. package/dist/bigconsole/hooks/useFilterUrlSync.js.map +1 -1
  90. package/dist/bigconsole/hooks/useGlobalFilters.d.ts.map +1 -1
  91. package/dist/bigconsole/hooks/useGlobalFilters.js +39 -29
  92. package/dist/bigconsole/hooks/useGlobalFilters.js.map +1 -1
  93. package/dist/bigconsole/hooks/usePageOperations.d.ts.map +1 -1
  94. package/dist/bigconsole/hooks/usePageOperations.js +1 -0
  95. package/dist/bigconsole/hooks/usePageOperations.js.map +1 -1
  96. package/dist/bigconsole/hooks/usePipelineOperations.d.ts.map +1 -1
  97. package/dist/bigconsole/hooks/usePipelineOperations.js +114 -112
  98. package/dist/bigconsole/hooks/usePipelineOperations.js.map +1 -1
  99. package/dist/bigconsole/hooks/useShareRecipients.d.ts +22 -0
  100. package/dist/bigconsole/hooks/useShareRecipients.d.ts.map +1 -0
  101. package/dist/bigconsole/hooks/useShareRecipients.js +198 -0
  102. package/dist/bigconsole/hooks/useShareRecipients.js.map +1 -0
  103. package/dist/bigconsole/pages/DashboardBuilderPage.d.ts.map +1 -1
  104. package/dist/bigconsole/pages/DashboardBuilderPage.js +198 -193
  105. package/dist/bigconsole/pages/DashboardBuilderPage.js.map +1 -1
  106. package/dist/bigconsole/pages/DashboardViewPage.d.ts.map +1 -1
  107. package/dist/bigconsole/pages/DashboardViewPage.js +171 -167
  108. package/dist/bigconsole/pages/DashboardViewPage.js.map +1 -1
  109. package/dist/bigconsole/pages/DashboardsPage.d.ts.map +1 -1
  110. package/dist/bigconsole/pages/DashboardsPage.js +313 -266
  111. package/dist/bigconsole/pages/DashboardsPage.js.map +1 -1
  112. package/dist/bigconsole/pages/DataSinkBuilderPage.d.ts.map +1 -1
  113. package/dist/bigconsole/pages/DataSinkBuilderPage.js +84 -79
  114. package/dist/bigconsole/pages/DataSinkBuilderPage.js.map +1 -1
  115. package/dist/bigconsole/pages/DataSinkViewPage.d.ts.map +1 -1
  116. package/dist/bigconsole/pages/DataSinkViewPage.js +267 -257
  117. package/dist/bigconsole/pages/DataSinkViewPage.js.map +1 -1
  118. package/dist/bigconsole/pages/InsightsPage.d.ts.map +1 -1
  119. package/dist/bigconsole/pages/InsightsPage.js +465 -402
  120. package/dist/bigconsole/pages/InsightsPage.js.map +1 -1
  121. package/dist/bigconsole/pages/PipelineBuilderPage.d.ts.map +1 -1
  122. package/dist/bigconsole/pages/PipelineBuilderPage.js +169 -157
  123. package/dist/bigconsole/pages/PipelineBuilderPage.js.map +1 -1
  124. package/dist/bigconsole/pages/PipelineViewPage.d.ts.map +1 -1
  125. package/dist/bigconsole/pages/PipelineViewPage.js +370 -230
  126. package/dist/bigconsole/pages/PipelineViewPage.js.map +1 -1
  127. package/dist/bigconsole/pages/PipelinesPage.d.ts.map +1 -1
  128. package/dist/bigconsole/pages/PipelinesPage.js +181 -151
  129. package/dist/bigconsole/pages/PipelinesPage.js.map +1 -1
  130. package/dist/bigconsole/pages/SettingsPage.d.ts.map +1 -1
  131. package/dist/bigconsole/pages/SettingsPage.js +188 -208
  132. package/dist/bigconsole/pages/SettingsPage.js.map +1 -1
  133. package/dist/bigconsole/pages/WidgetDemoPage.d.ts.map +1 -1
  134. package/dist/bigconsole/pages/WidgetDemoPage.js +134 -117
  135. package/dist/bigconsole/pages/WidgetDemoPage.js.map +1 -1
  136. package/dist/bigconsole/pages/WorkflowViewPage.d.ts.map +1 -1
  137. package/dist/bigconsole/pages/WorkflowViewPage.js +315 -267
  138. package/dist/bigconsole/pages/WorkflowViewPage.js.map +1 -1
  139. package/dist/bigconsole/pages/WorkflowsPage.d.ts.map +1 -1
  140. package/dist/bigconsole/pages/WorkflowsPage.js +4 -3
  141. package/dist/bigconsole/pages/WorkflowsPage.js.map +1 -1
  142. package/dist/bigconsole/types/index.d.ts +4 -0
  143. package/dist/bigconsole/types/index.d.ts.map +1 -1
  144. package/dist/bigconsole/utils/drilldownParams.d.ts +3 -0
  145. package/dist/bigconsole/utils/drilldownParams.d.ts.map +1 -0
  146. package/dist/bigconsole/utils/drilldownParams.js +8 -0
  147. package/dist/bigconsole/utils/drilldownParams.js.map +1 -0
  148. package/dist/generated/wspace-operations.d.ts +148 -0
  149. package/dist/generated/wspace-operations.d.ts.map +1 -1
  150. package/dist/generated/wspace-operations.js +172 -133
  151. package/dist/generated/wspace-operations.js.map +1 -1
  152. package/dist/generated/wspace-types.d.ts +21 -0
  153. package/dist/generated/wspace-types.d.ts.map +1 -1
  154. package/dist/generated/wspace-types.js.map +1 -1
  155. package/dist/microfe-bigconsole.css +1 -1
  156. package/dist/translations/en.d.ts.map +1 -1
  157. package/package.json +2 -1
@@ -17,13 +17,13 @@ var o = (e) => ({
17
17
  backdropBg: "rgba(0, 0, 0, 0.5)"
18
18
  });
19
19
  function s({ filter: s, onSave: c, onClose: l }) {
20
- let { t: u } = a(), [d, f] = n(s?.name || ""), [p, m] = n(s?.type || "CATEGORY"), [h, g] = n(s?.isRequired || !1), [_, v] = n(s?.config?.options || [{
20
+ let { t: u } = a(), [d, f] = n(!1), [p, m] = n(!1), [h, g] = n(s?.name || ""), [_, v] = n(s?.type || "CATEGORY"), [y, b] = n(s?.isRequired || !1), [x, S] = n(s?.config?.options || [{
21
21
  value: "",
22
22
  label: ""
23
- }]), [y, b] = n(s?.config?.placeholder || ""), [x, S] = n(!1);
23
+ }]), [C, w] = n(typeof s?.config?.field == "string" ? s.config.field : ""), [T, E] = n(s?.config?.placeholder || ""), [D, O] = n(!1);
24
24
  e(() => {
25
25
  let e = () => {
26
- S(document.documentElement.classList.contains("dark"));
26
+ O(document.documentElement.classList.contains("dark"));
27
27
  };
28
28
  e();
29
29
  let t = new MutationObserver(e);
@@ -32,7 +32,7 @@ function s({ filter: s, onSave: c, onClose: l }) {
32
32
  attributeFilter: ["class"]
33
33
  }), () => t.disconnect();
34
34
  }, []);
35
- let C = o(x), w = !!s, T = t(() => [
35
+ let k = o(D), A = !!s, j = t(() => [
36
36
  {
37
37
  value: "CATEGORY",
38
38
  label: u("bigconsole.filters.editor.type.category.label", "Category"),
@@ -58,27 +58,36 @@ function s({ filter: s, onSave: c, onClose: l }) {
58
58
  label: u("bigconsole.filters.editor.type.custom.label", "Custom"),
59
59
  description: u("bigconsole.filters.editor.type.custom.description", "Custom filter configuration")
60
60
  }
61
- ], [u]), E = () => {
62
- v([..._, {
61
+ ], [u]), M = () => {
62
+ S([...x, {
63
63
  value: "",
64
64
  label: ""
65
65
  }]);
66
- }, D = (e) => {
67
- v(_.filter((t, n) => n !== e));
68
- }, O = (e, t, n) => {
69
- v(_.map((r, i) => i === e ? {
66
+ }, N = (e) => {
67
+ S(x.filter((t, n) => n !== e));
68
+ }, P = (e, t, n) => {
69
+ S(x.map((r, i) => i === e ? {
70
70
  ...r,
71
71
  [t]: n
72
72
  } : r));
73
- }, k = () => {
74
- let e = {};
75
- p === "CATEGORY" && (e.options = _.filter((e) => e.value && e.label)), y && (e.placeholder = y), c({
76
- name: d,
77
- type: p,
78
- config: e,
79
- isRequired: h
80
- });
81
- }, A = d.trim() !== "" && (p !== "CATEGORY" || _.some((e) => e.value && e.label));
73
+ }, F = async () => {
74
+ if (d) return;
75
+ f(!0), m(!1);
76
+ let e = { ...s?.config };
77
+ _ === "CATEGORY" && (e.options = x.filter((e) => e.value && e.label)), T ? e.placeholder = T : delete e.placeholder, C.trim() ? e.field = C.trim() : delete e.field;
78
+ try {
79
+ await c({
80
+ name: h,
81
+ type: _,
82
+ config: e,
83
+ isRequired: y
84
+ });
85
+ } catch {
86
+ m(!0);
87
+ } finally {
88
+ f(!1);
89
+ }
90
+ }, I = h.trim() !== "" && (_ !== "CATEGORY" || x.some((e) => e.value && e.label));
82
91
  return /* @__PURE__ */ r("div", {
83
92
  style: {
84
93
  position: "fixed",
@@ -88,7 +97,7 @@ function s({ filter: s, onSave: c, onClose: l }) {
88
97
  bottom: 0,
89
98
  width: "100vw",
90
99
  height: "100vh",
91
- backgroundColor: C.backdropBg,
100
+ backgroundColor: k.backdropBg,
92
101
  display: "flex",
93
102
  alignItems: "center",
94
103
  justifyContent: "center",
@@ -101,7 +110,7 @@ function s({ filter: s, onSave: c, onClose: l }) {
101
110
  width: "100%",
102
111
  maxWidth: "min(480px, calc(100vw - 2rem))",
103
112
  maxHeight: "80vh",
104
- backgroundColor: C.bgPrimary,
113
+ backgroundColor: k.bgPrimary,
105
114
  borderRadius: "8px",
106
115
  boxShadow: "var(--shadow-elevation-3)",
107
116
  overflow: "hidden",
@@ -112,20 +121,20 @@ function s({ filter: s, onSave: c, onClose: l }) {
112
121
  /* @__PURE__ */ i("div", {
113
122
  style: {
114
123
  padding: "16px 20px",
115
- borderBottom: `1px solid ${C.borderDefault}`,
124
+ borderBottom: `1px solid ${k.borderDefault}`,
116
125
  display: "flex",
117
126
  alignItems: "center",
118
127
  justifyContent: "space-between",
119
- backgroundColor: C.bgPrimary
128
+ backgroundColor: k.bgPrimary
120
129
  },
121
130
  children: [/* @__PURE__ */ r("h3", {
122
131
  style: {
123
132
  margin: 0,
124
133
  fontSize: "16px",
125
134
  fontWeight: 600,
126
- color: C.textPrimary
135
+ color: k.textPrimary
127
136
  },
128
- children: w ? u("bigconsole.filters.editor.title.edit", "Edit Filter") : u("bigconsole.filters.editor.title.add", "Add Filter")
137
+ children: A ? u("bigconsole.filters.editor.title.edit", "Edit Filter") : u("bigconsole.filters.editor.title.add", "Add Filter")
129
138
  }), /* @__PURE__ */ r("button", {
130
139
  onClick: l,
131
140
  style: {
@@ -133,7 +142,7 @@ function s({ filter: s, onSave: c, onClose: l }) {
133
142
  border: "none",
134
143
  fontSize: "20px",
135
144
  cursor: "pointer",
136
- color: C.textSecondary,
145
+ color: k.textSecondary,
137
146
  lineHeight: 1
138
147
  },
139
148
  children: "×"
@@ -144,7 +153,7 @@ function s({ filter: s, onSave: c, onClose: l }) {
144
153
  padding: "20px",
145
154
  overflowY: "auto",
146
155
  maxHeight: "calc(80vh - 130px)",
147
- backgroundColor: C.bgPrimary
156
+ backgroundColor: k.bgPrimary
148
157
  },
149
158
  children: [
150
159
  /* @__PURE__ */ i("div", {
@@ -155,27 +164,53 @@ function s({ filter: s, onSave: c, onClose: l }) {
155
164
  marginBottom: "6px",
156
165
  fontSize: "13px",
157
166
  fontWeight: 500,
158
- color: C.textPrimary
167
+ color: k.textPrimary
159
168
  },
160
169
  children: u("bigconsole.filters.editor.field.name.label", "Filter Name *")
161
170
  }), /* @__PURE__ */ r("input", {
162
171
  type: "text",
163
- value: d,
164
- onChange: (e) => f(e.target.value),
172
+ value: h,
173
+ onChange: (e) => g(e.target.value),
165
174
  placeholder: u("bigconsole.filters.editor.field.name.placeholder", "e.g., Status, Date Range, Category"),
166
175
  style: {
167
176
  width: "100%",
168
177
  padding: "10px 12px",
169
- border: `1px solid ${C.borderDefault}`,
178
+ border: `1px solid ${k.borderDefault}`,
170
179
  borderRadius: "6px",
171
180
  fontSize: "14px",
172
181
  boxSizing: "border-box",
173
- backgroundColor: C.bgPrimary,
174
- color: C.textPrimary
182
+ backgroundColor: k.bgPrimary,
183
+ color: k.textPrimary
175
184
  }
176
185
  })]
177
186
  }),
178
- !w && /* @__PURE__ */ i("div", {
187
+ /* @__PURE__ */ i("div", {
188
+ style: { marginBottom: "16px" },
189
+ children: [
190
+ /* @__PURE__ */ r("label", {
191
+ htmlFor: "global-filter-data-field",
192
+ className: "mb-2 block text-sm font-medium text-text-primary",
193
+ children: u("bigconsole.filters.editor.dataField", "Data field (optional)")
194
+ }),
195
+ /* @__PURE__ */ r("input", {
196
+ id: "global-filter-data-field",
197
+ value: C,
198
+ onChange: (e) => w(e.target.value),
199
+ className: "w-full rounded-button border border-border-subtle bg-bg-surface px-3 py-2 text-text-primary",
200
+ placeholder: u("bigconsole.filters.editor.dataFieldPlaceholder", "e.g., region, country, cohort")
201
+ }),
202
+ /* @__PURE__ */ r("p", {
203
+ className: "mt-1 text-xs text-text-secondary",
204
+ children: u("bigconsole.filters.editor.dataFieldHelp", "Match a field in the parser output. Leave blank to use automatic matching.")
205
+ })
206
+ ]
207
+ }),
208
+ p && /* @__PURE__ */ r("p", {
209
+ role: "alert",
210
+ className: "mb-3 text-sm text-status-error-text",
211
+ children: u("bigconsole.filters.editor.saveError", "The filter could not be saved. Your changes are still here; try again.")
212
+ }),
213
+ !A && /* @__PURE__ */ i("div", {
179
214
  style: { marginBottom: "16px" },
180
215
  children: [/* @__PURE__ */ r("label", {
181
216
  style: {
@@ -183,7 +218,7 @@ function s({ filter: s, onSave: c, onClose: l }) {
183
218
  marginBottom: "8px",
184
219
  fontSize: "13px",
185
220
  fontWeight: 500,
186
- color: C.textPrimary
221
+ color: k.textPrimary
187
222
  },
188
223
  children: u("bigconsole.filters.editor.field.type.label", "Filter Type *")
189
224
  }), /* @__PURE__ */ r("div", {
@@ -192,14 +227,14 @@ function s({ filter: s, onSave: c, onClose: l }) {
192
227
  gridTemplateColumns: "repeat(2, 1fr)",
193
228
  gap: "10px"
194
229
  },
195
- children: T.map((e) => /* @__PURE__ */ i("button", {
196
- onClick: () => m(e.value),
230
+ children: j.map((e) => /* @__PURE__ */ i("button", {
231
+ onClick: () => v(e.value),
197
232
  type: "button",
198
233
  style: {
199
234
  padding: "12px",
200
235
  textAlign: "left",
201
- backgroundColor: p === e.value ? C.actionPrimaryBgSubtle : C.bgSecondary,
202
- border: `2px solid ${p === e.value ? C.actionPrimaryBg : C.borderDefault}`,
236
+ backgroundColor: _ === e.value ? k.actionPrimaryBgSubtle : k.bgSecondary,
237
+ border: `2px solid ${_ === e.value ? k.actionPrimaryBg : k.borderDefault}`,
203
238
  borderRadius: "6px",
204
239
  cursor: "pointer",
205
240
  transition: "all 0.2s ease",
@@ -209,13 +244,13 @@ function s({ filter: s, onSave: c, onClose: l }) {
209
244
  style: {
210
245
  fontWeight: 500,
211
246
  fontSize: "13px",
212
- color: C.textPrimary
247
+ color: k.textPrimary
213
248
  },
214
249
  children: e.label
215
250
  }), /* @__PURE__ */ r("div", {
216
251
  style: {
217
252
  fontSize: "11px",
218
- color: C.textSecondary,
253
+ color: k.textSecondary,
219
254
  marginTop: "4px",
220
255
  lineHeight: "1.3"
221
256
  },
@@ -224,7 +259,7 @@ function s({ filter: s, onSave: c, onClose: l }) {
224
259
  }, e.value))
225
260
  })]
226
261
  }),
227
- p === "CATEGORY" && /* @__PURE__ */ i("div", {
262
+ _ === "CATEGORY" && /* @__PURE__ */ i("div", {
228
263
  style: { marginBottom: "16px" },
229
264
  children: [/* @__PURE__ */ r("label", {
230
265
  style: {
@@ -232,7 +267,7 @@ function s({ filter: s, onSave: c, onClose: l }) {
232
267
  marginBottom: "8px",
233
268
  fontSize: "13px",
234
269
  fontWeight: 500,
235
- color: C.textPrimary
270
+ color: k.textPrimary
236
271
  },
237
272
  children: u("bigconsole.filters.editor.field.options.label", "Options")
238
273
  }), /* @__PURE__ */ i("div", {
@@ -241,7 +276,7 @@ function s({ filter: s, onSave: c, onClose: l }) {
241
276
  flexDirection: "column",
242
277
  gap: "8px"
243
278
  },
244
- children: [_.map((e, t) => /* @__PURE__ */ i("div", {
279
+ children: [x.map((e, t) => /* @__PURE__ */ i("div", {
245
280
  style: {
246
281
  display: "flex",
247
282
  gap: "8px",
@@ -251,45 +286,45 @@ function s({ filter: s, onSave: c, onClose: l }) {
251
286
  /* @__PURE__ */ r("input", {
252
287
  type: "text",
253
288
  value: e.value,
254
- onChange: (e) => O(t, "value", e.target.value),
289
+ onChange: (e) => P(t, "value", e.target.value),
255
290
  placeholder: u("bigconsole.filters.editor.field.options.valuePlaceholder", "Value"),
256
291
  style: {
257
292
  flex: 1,
258
293
  padding: "8px 10px",
259
- border: `1px solid ${C.borderDefault}`,
294
+ border: `1px solid ${k.borderDefault}`,
260
295
  borderRadius: "4px",
261
296
  fontSize: "13px",
262
297
  boxSizing: "border-box",
263
- backgroundColor: C.bgPrimary,
264
- color: C.textPrimary
298
+ backgroundColor: k.bgPrimary,
299
+ color: k.textPrimary
265
300
  }
266
301
  }),
267
302
  /* @__PURE__ */ r("input", {
268
303
  type: "text",
269
304
  value: e.label,
270
- onChange: (e) => O(t, "label", e.target.value),
305
+ onChange: (e) => P(t, "label", e.target.value),
271
306
  placeholder: u("bigconsole.filters.editor.field.options.labelPlaceholder", "Label"),
272
307
  style: {
273
308
  flex: 1,
274
309
  padding: "8px 10px",
275
- border: `1px solid ${C.borderDefault}`,
310
+ border: `1px solid ${k.borderDefault}`,
276
311
  borderRadius: "4px",
277
312
  fontSize: "13px",
278
313
  boxSizing: "border-box",
279
- backgroundColor: C.bgPrimary,
280
- color: C.textPrimary
314
+ backgroundColor: k.bgPrimary,
315
+ color: k.textPrimary
281
316
  }
282
317
  }),
283
- _.length > 1 && /* @__PURE__ */ r("button", {
318
+ x.length > 1 && /* @__PURE__ */ r("button", {
284
319
  type: "button",
285
- onClick: () => D(t),
320
+ onClick: () => N(t),
286
321
  style: {
287
322
  padding: "6px 10px",
288
323
  backgroundColor: "transparent",
289
- border: `1px solid ${C.statusErrorText}`,
324
+ border: `1px solid ${k.statusErrorText}`,
290
325
  borderRadius: "4px",
291
326
  cursor: "pointer",
292
- color: C.statusErrorText,
327
+ color: k.statusErrorText,
293
328
  fontSize: "12px"
294
329
  },
295
330
  children: u("bigconsole.filters.editor.field.options.remove", "Remove")
@@ -297,21 +332,21 @@ function s({ filter: s, onSave: c, onClose: l }) {
297
332
  ]
298
333
  }, t)), /* @__PURE__ */ r("button", {
299
334
  type: "button",
300
- onClick: E,
335
+ onClick: M,
301
336
  style: {
302
337
  padding: "8px",
303
338
  backgroundColor: "transparent",
304
- border: `1px dashed ${C.borderDefault}`,
339
+ border: `1px dashed ${k.borderDefault}`,
305
340
  borderRadius: "4px",
306
341
  cursor: "pointer",
307
- color: C.textSecondary,
342
+ color: k.textSecondary,
308
343
  fontSize: "12px"
309
344
  },
310
345
  children: u("bigconsole.filters.editor.field.options.add", "+ Add Option")
311
346
  })]
312
347
  })]
313
348
  }),
314
- (p === "TEXT_SEARCH" || p === "CATEGORY") && /* @__PURE__ */ i("div", {
349
+ (_ === "TEXT_SEARCH" || _ === "CATEGORY") && /* @__PURE__ */ i("div", {
315
350
  style: { marginBottom: "16px" },
316
351
  children: [/* @__PURE__ */ r("label", {
317
352
  style: {
@@ -319,23 +354,23 @@ function s({ filter: s, onSave: c, onClose: l }) {
319
354
  marginBottom: "8px",
320
355
  fontSize: "13px",
321
356
  fontWeight: 500,
322
- color: C.textPrimary
357
+ color: k.textPrimary
323
358
  },
324
359
  children: u("bigconsole.filters.editor.field.placeholder.label", "Placeholder Text")
325
360
  }), /* @__PURE__ */ r("input", {
326
361
  type: "text",
327
- value: y,
328
- onChange: (e) => b(e.target.value),
362
+ value: T,
363
+ onChange: (e) => E(e.target.value),
329
364
  placeholder: u("bigconsole.filters.editor.field.placeholder.placeholder", "e.g., Select an option..."),
330
365
  style: {
331
366
  width: "100%",
332
367
  padding: "10px 12px",
333
- border: `1px solid ${C.borderDefault}`,
368
+ border: `1px solid ${k.borderDefault}`,
334
369
  borderRadius: "6px",
335
370
  fontSize: "14px",
336
371
  boxSizing: "border-box",
337
- backgroundColor: C.bgPrimary,
338
- color: C.textPrimary
372
+ backgroundColor: k.bgPrimary,
373
+ color: k.textPrimary
339
374
  }
340
375
  })]
341
376
  }),
@@ -350,8 +385,8 @@ function s({ filter: s, onSave: c, onClose: l }) {
350
385
  },
351
386
  children: [/* @__PURE__ */ r("input", {
352
387
  type: "checkbox",
353
- checked: h,
354
- onChange: (e) => g(e.target.checked),
388
+ checked: y,
389
+ onChange: (e) => b(e.target.checked),
355
390
  style: {
356
391
  width: "16px",
357
392
  height: "16px"
@@ -359,7 +394,7 @@ function s({ filter: s, onSave: c, onClose: l }) {
359
394
  }), /* @__PURE__ */ r("span", {
360
395
  style: {
361
396
  fontSize: "13px",
362
- color: C.textPrimary
397
+ color: k.textPrimary
363
398
  },
364
399
  children: u("bigconsole.filters.editor.field.required.label", "Required filter (must have a value)")
365
400
  })]
@@ -370,40 +405,40 @@ function s({ filter: s, onSave: c, onClose: l }) {
370
405
  /* @__PURE__ */ i("div", {
371
406
  style: {
372
407
  padding: "16px 20px",
373
- borderTop: `1px solid ${C.borderDefault}`,
408
+ borderTop: `1px solid ${k.borderDefault}`,
374
409
  display: "flex",
375
410
  justifyContent: "flex-end",
376
411
  gap: "12px",
377
- backgroundColor: C.bgPrimary
412
+ backgroundColor: k.bgPrimary
378
413
  },
379
414
  children: [/* @__PURE__ */ r("button", {
380
415
  type: "button",
381
416
  onClick: l,
382
417
  style: {
383
418
  padding: "10px 20px",
384
- backgroundColor: C.bgPrimary,
385
- border: `1px solid ${C.borderDefault}`,
419
+ backgroundColor: k.bgPrimary,
420
+ border: `1px solid ${k.borderDefault}`,
386
421
  borderRadius: "6px",
387
422
  cursor: "pointer",
388
423
  fontSize: "14px",
389
- color: C.textSecondary
424
+ color: k.textSecondary
390
425
  },
391
426
  children: u("bigconsole.filters.editor.action.cancel", "Cancel")
392
427
  }), /* @__PURE__ */ r("button", {
393
428
  type: "button",
394
- onClick: k,
395
- disabled: !A,
429
+ onClick: F,
430
+ disabled: !I || d,
396
431
  style: {
397
432
  padding: "10px 20px",
398
- backgroundColor: A ? C.actionPrimaryBg : C.bgTertiary,
399
- color: A ? C.actionPrimaryFg : C.textTertiary,
433
+ backgroundColor: I ? k.actionPrimaryBg : k.bgTertiary,
434
+ color: I ? k.actionPrimaryFg : k.textTertiary,
400
435
  border: "none",
401
436
  borderRadius: "6px",
402
- cursor: A ? "pointer" : "not-allowed",
437
+ cursor: I ? "pointer" : "not-allowed",
403
438
  fontSize: "14px",
404
439
  fontWeight: 500
405
440
  },
406
- children: w ? u("bigconsole.filters.editor.action.saveChanges", "Save Changes") : u("bigconsole.filters.editor.action.add", "Add Filter")
441
+ children: A ? u("bigconsole.filters.editor.action.saveChanges", "Save Changes") : u("bigconsole.filters.editor.action.add", "Add Filter")
407
442
  })]
408
443
  })
409
444
  ]
@@ -1 +1 @@
1
- {"version":3,"file":"FilterEditor.js","names":[],"sources":["../../../../../src/bigconsole/components/dashboard/GlobalFiltersBar/FilterEditor.tsx"],"sourcesContent":["/**\n * FilterEditor Component\n *\n * Modal for creating/editing global filters.\n */\n\nimport React, { useState, useEffect, useMemo } from 'react';\nimport { useI18n } from '@burdenoff/fe-libs/shared/providers/shell/I18nProvider';\nimport type { GlobalFilter, FilterType } from '../../../hooks';\n\n// Dynamic colors that respect dark mode\nconst getColors = (isDark: boolean) => ({\n bgPrimary: isDark ? '#1f2937' : '#ffffff',\n bgSecondary: isDark ? '#374151' : '#f9fafb',\n textPrimary: isDark ? '#f9fafb' : '#111827',\n textSecondary: isDark ? '#9ca3af' : '#6b7280',\n borderDefault: isDark ? '#4b5563' : '#e5e7eb',\n actionPrimaryBg: '#6366f1',\n actionPrimaryBgSubtle: isDark ? '#312e81' : '#eef2ff',\n actionPrimaryFg: '#ffffff',\n bgTertiary: isDark ? '#4b5563' : '#f3f4f6',\n textTertiary: isDark ? '#6b7280' : '#9ca3af',\n statusErrorText: '#dc2626',\n backdropBg: 'rgba(0, 0, 0, 0.5)',\n});\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport interface FilterEditorProps {\n filter: GlobalFilter | null;\n onSave: (data: {\n name: string;\n type: FilterType;\n config: Record<string, unknown>;\n defaultValue?: unknown;\n isRequired?: boolean;\n }) => void;\n onClose: () => void;\n}\n\n// ============================================================================\n// Component\n// ============================================================================\n\nexport function FilterEditor({ filter, onSave, onClose }: FilterEditorProps) {\n const { t } = useI18n();\n const [name, setName] = useState(filter?.name || '');\n const [type, setType] = useState<FilterType>(filter?.type || 'CATEGORY');\n const [isRequired, setIsRequired] = useState(filter?.isRequired || false);\n const [options, setOptions] = useState<{ value: string; label: string }[]>(\n (filter?.config?.options as { value: string; label: string }[] | undefined) || [{ value: '', label: '' }]\n );\n const [placeholder, setPlaceholder] = useState((filter?.config?.placeholder as string) || '');\n const [isDarkMode, setIsDarkMode] = useState(false);\n\n // Detect dark mode\n useEffect(() => {\n const checkDarkMode = () => {\n setIsDarkMode(document.documentElement.classList.contains('dark'));\n };\n checkDarkMode();\n\n // Watch for theme changes\n const observer = new MutationObserver(checkDarkMode);\n observer.observe(document.documentElement, { attributes: true, attributeFilter: ['class'] });\n return () => observer.disconnect();\n }, []);\n\n const COLORS = getColors(isDarkMode);\n const isEditing = !!filter;\n\n /**\n * Filter types as per spec (03-graphql-contract.md)\n * Spec values: date_range, category, custom, numeric_range, text_search\n */\n const FILTER_TYPES = useMemo<{ value: FilterType; label: string; description: string }[]>(\n () => [\n {\n value: 'CATEGORY',\n label: t('bigconsole.filters.editor.type.category.label', 'Category'),\n description: t('bigconsole.filters.editor.type.category.description', 'Selection from predefined categories'),\n },\n {\n value: 'DATE_RANGE',\n label: t('bigconsole.filters.editor.type.dateRange.label', 'Date Range'),\n description: t('bigconsole.filters.editor.type.dateRange.description', 'Start and end date selection'),\n },\n {\n value: 'NUMERIC_RANGE',\n label: t('bigconsole.filters.editor.type.numericRange.label', 'Numeric Range'),\n description: t('bigconsole.filters.editor.type.numericRange.description', 'Min and max number values'),\n },\n {\n value: 'TEXT_SEARCH',\n label: t('bigconsole.filters.editor.type.textSearch.label', 'Text Search'),\n description: t('bigconsole.filters.editor.type.textSearch.description', 'Free text search input'),\n },\n {\n value: 'CUSTOM',\n label: t('bigconsole.filters.editor.type.custom.label', 'Custom'),\n description: t('bigconsole.filters.editor.type.custom.description', 'Custom filter configuration'),\n },\n ],\n [t]\n );\n\n const handleAddOption = () => {\n setOptions([...options, { value: '', label: '' }]);\n };\n\n const handleRemoveOption = (index: number) => {\n setOptions(options.filter((_, i) => i !== index));\n };\n\n const handleOptionChange = (index: number, field: 'value' | 'label', value: string) => {\n setOptions(options.map((opt, i) => (i === index ? { ...opt, [field]: value } : opt)));\n };\n\n const handleSave = () => {\n const config: Record<string, unknown> = {};\n\n // CATEGORY type uses options for selection\n if (type === 'CATEGORY') {\n config.options = options.filter((opt) => opt.value && opt.label);\n }\n\n if (placeholder) {\n config.placeholder = placeholder;\n }\n\n onSave({\n name,\n type,\n config,\n isRequired,\n });\n };\n\n const isValid = name.trim() !== '' && (type !== 'CATEGORY' || options.some((opt) => opt.value && opt.label));\n\n return (\n <div\n style={{\n position: 'fixed',\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n width: '100vw',\n height: '100vh',\n backgroundColor: COLORS.backdropBg,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n zIndex: 10000,\n isolation: 'isolate',\n }}\n onClick={onClose}\n >\n <div\n style={{\n width: '100%',\n maxWidth: 'min(480px, calc(100vw - 2rem))',\n maxHeight: '80vh',\n backgroundColor: COLORS.bgPrimary,\n borderRadius: '8px',\n boxShadow: 'var(--shadow-elevation-3)',\n overflow: 'hidden',\n position: 'relative',\n }}\n onClick={(e) => e.stopPropagation()}\n >\n {/* Header */}\n <div\n style={{\n padding: '16px 20px',\n borderBottom: `1px solid ${COLORS.borderDefault}`,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n backgroundColor: COLORS.bgPrimary,\n }}\n >\n <h3 style={{ margin: 0, fontSize: '16px', fontWeight: 600, color: COLORS.textPrimary }}>\n {isEditing\n ? t('bigconsole.filters.editor.title.edit', 'Edit Filter')\n : t('bigconsole.filters.editor.title.add', 'Add Filter')}\n </h3>\n <button\n onClick={onClose}\n style={{\n background: 'none',\n border: 'none',\n fontSize: '20px',\n cursor: 'pointer',\n color: COLORS.textSecondary,\n lineHeight: 1,\n }}\n >\n ×\n </button>\n </div>\n\n {/* Content */}\n <div\n style={{\n padding: '20px',\n overflowY: 'auto',\n maxHeight: 'calc(80vh - 130px)',\n backgroundColor: COLORS.bgPrimary,\n }}\n >\n {/* Filter Name */}\n <div style={{ marginBottom: '16px' }}>\n <label\n style={{\n display: 'block',\n marginBottom: '6px',\n fontSize: '13px',\n fontWeight: 500,\n color: COLORS.textPrimary,\n }}\n >\n {t('bigconsole.filters.editor.field.name.label', 'Filter Name *')}\n </label>\n <input\n type=\"text\"\n value={name}\n onChange={(e) => setName(e.target.value)}\n placeholder={t('bigconsole.filters.editor.field.name.placeholder', 'e.g., Status, Date Range, Category')}\n style={{\n width: '100%',\n padding: '10px 12px',\n border: `1px solid ${COLORS.borderDefault}`,\n borderRadius: '6px',\n fontSize: '14px',\n boxSizing: 'border-box',\n backgroundColor: COLORS.bgPrimary,\n color: COLORS.textPrimary,\n }}\n />\n </div>\n\n {/* Filter Type */}\n {!isEditing && (\n <div style={{ marginBottom: '16px' }}>\n <label\n style={{\n display: 'block',\n marginBottom: '8px',\n fontSize: '13px',\n fontWeight: 500,\n color: COLORS.textPrimary,\n }}\n >\n {t('bigconsole.filters.editor.field.type.label', 'Filter Type *')}\n </label>\n <div style={{ display: 'grid', gridTemplateColumns: 'repeat(2, 1fr)', gap: '10px' }}>\n {FILTER_TYPES.map((ft) => (\n <button\n key={ft.value}\n onClick={() => setType(ft.value)}\n type=\"button\"\n style={{\n padding: '12px',\n textAlign: 'left',\n backgroundColor: type === ft.value ? COLORS.actionPrimaryBgSubtle : COLORS.bgSecondary,\n border: `2px solid ${type === ft.value ? COLORS.actionPrimaryBg : COLORS.borderDefault}`,\n borderRadius: '6px',\n cursor: 'pointer',\n transition: 'all 0.2s ease',\n minHeight: '60px',\n }}\n >\n <div style={{ fontWeight: 500, fontSize: '13px', color: COLORS.textPrimary }}>{ft.label}</div>\n <div\n style={{\n fontSize: '11px',\n color: COLORS.textSecondary,\n marginTop: '4px',\n lineHeight: '1.3',\n }}\n >\n {ft.description}\n </div>\n </button>\n ))}\n </div>\n </div>\n )}\n\n {/* Options (for CATEGORY type) */}\n {type === 'CATEGORY' && (\n <div style={{ marginBottom: '16px' }}>\n <label\n style={{\n display: 'block',\n marginBottom: '8px',\n fontSize: '13px',\n fontWeight: 500,\n color: COLORS.textPrimary,\n }}\n >\n {t('bigconsole.filters.editor.field.options.label', 'Options')}\n </label>\n <div style={{ display: 'flex', flexDirection: 'column', gap: '8px' }}>\n {options.map((opt, index) => (\n <div key={index} style={{ display: 'flex', gap: '8px', alignItems: 'center' }}>\n <input\n type=\"text\"\n value={opt.value}\n onChange={(e) => handleOptionChange(index, 'value', e.target.value)}\n placeholder={t('bigconsole.filters.editor.field.options.valuePlaceholder', 'Value')}\n style={{\n flex: 1,\n padding: '8px 10px',\n border: `1px solid ${COLORS.borderDefault}`,\n borderRadius: '4px',\n fontSize: '13px',\n boxSizing: 'border-box',\n backgroundColor: COLORS.bgPrimary,\n color: COLORS.textPrimary,\n }}\n />\n <input\n type=\"text\"\n value={opt.label}\n onChange={(e) => handleOptionChange(index, 'label', e.target.value)}\n placeholder={t('bigconsole.filters.editor.field.options.labelPlaceholder', 'Label')}\n style={{\n flex: 1,\n padding: '8px 10px',\n border: `1px solid ${COLORS.borderDefault}`,\n borderRadius: '4px',\n fontSize: '13px',\n boxSizing: 'border-box',\n backgroundColor: COLORS.bgPrimary,\n color: COLORS.textPrimary,\n }}\n />\n {options.length > 1 && (\n <button\n type=\"button\"\n onClick={() => handleRemoveOption(index)}\n style={{\n padding: '6px 10px',\n backgroundColor: 'transparent',\n border: `1px solid ${COLORS.statusErrorText}`,\n borderRadius: '4px',\n cursor: 'pointer',\n color: COLORS.statusErrorText,\n fontSize: '12px',\n }}\n >\n {t('bigconsole.filters.editor.field.options.remove', 'Remove')}\n </button>\n )}\n </div>\n ))}\n <button\n type=\"button\"\n onClick={handleAddOption}\n style={{\n padding: '8px',\n backgroundColor: 'transparent',\n border: `1px dashed ${COLORS.borderDefault}`,\n borderRadius: '4px',\n cursor: 'pointer',\n color: COLORS.textSecondary,\n fontSize: '12px',\n }}\n >\n {t('bigconsole.filters.editor.field.options.add', '+ Add Option')}\n </button>\n </div>\n </div>\n )}\n\n {/* Placeholder */}\n {(type === 'TEXT_SEARCH' || type === 'CATEGORY') && (\n <div style={{ marginBottom: '16px' }}>\n <label\n style={{\n display: 'block',\n marginBottom: '8px',\n fontSize: '13px',\n fontWeight: 500,\n color: COLORS.textPrimary,\n }}\n >\n {t('bigconsole.filters.editor.field.placeholder.label', 'Placeholder Text')}\n </label>\n <input\n type=\"text\"\n value={placeholder}\n onChange={(e) => setPlaceholder(e.target.value)}\n placeholder={t('bigconsole.filters.editor.field.placeholder.placeholder', 'e.g., Select an option...')}\n style={{\n width: '100%',\n padding: '10px 12px',\n border: `1px solid ${COLORS.borderDefault}`,\n borderRadius: '6px',\n fontSize: '14px',\n boxSizing: 'border-box',\n backgroundColor: COLORS.bgPrimary,\n color: COLORS.textPrimary,\n }}\n />\n </div>\n )}\n\n {/* Required Toggle */}\n <div style={{ marginBottom: '16px' }}>\n <label\n style={{\n display: 'flex',\n alignItems: 'center',\n gap: '8px',\n cursor: 'pointer',\n }}\n >\n <input\n type=\"checkbox\"\n checked={isRequired}\n onChange={(e) => setIsRequired(e.target.checked)}\n style={{ width: '16px', height: '16px' }}\n />\n <span style={{ fontSize: '13px', color: COLORS.textPrimary }}>\n {t('bigconsole.filters.editor.field.required.label', 'Required filter (must have a value)')}\n </span>\n </label>\n </div>\n </div>\n\n {/* Footer */}\n <div\n style={{\n padding: '16px 20px',\n borderTop: `1px solid ${COLORS.borderDefault}`,\n display: 'flex',\n justifyContent: 'flex-end',\n gap: '12px',\n backgroundColor: COLORS.bgPrimary,\n }}\n >\n <button\n type=\"button\"\n onClick={onClose}\n style={{\n padding: '10px 20px',\n backgroundColor: COLORS.bgPrimary,\n border: `1px solid ${COLORS.borderDefault}`,\n borderRadius: '6px',\n cursor: 'pointer',\n fontSize: '14px',\n color: COLORS.textSecondary,\n }}\n >\n {t('bigconsole.filters.editor.action.cancel', 'Cancel')}\n </button>\n <button\n type=\"button\"\n onClick={handleSave}\n disabled={!isValid}\n style={{\n padding: '10px 20px',\n backgroundColor: isValid ? COLORS.actionPrimaryBg : COLORS.bgTertiary,\n color: isValid ? COLORS.actionPrimaryFg : COLORS.textTertiary,\n border: 'none',\n borderRadius: '6px',\n cursor: isValid ? 'pointer' : 'not-allowed',\n fontSize: '14px',\n fontWeight: 500,\n }}\n >\n {isEditing\n ? t('bigconsole.filters.editor.action.saveChanges', 'Save Changes')\n : t('bigconsole.filters.editor.action.add', 'Add Filter')}\n </button>\n </div>\n </div>\n </div>\n );\n}\n\nexport default FilterEditor;\n"],"mappings":"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"}
1
+ {"version":3,"file":"FilterEditor.js","names":[],"sources":["../../../../../src/bigconsole/components/dashboard/GlobalFiltersBar/FilterEditor.tsx"],"sourcesContent":["/**\n * FilterEditor Component\n *\n * Modal for creating/editing global filters.\n */\n\nimport React, { useState, useEffect, useMemo } from 'react';\nimport { useI18n } from '@burdenoff/fe-libs/shared/providers/shell/I18nProvider';\nimport type { GlobalFilter, FilterType } from '../../../hooks';\n\n// Dynamic colors that respect dark mode\nconst getColors = (isDark: boolean) => ({\n bgPrimary: isDark ? '#1f2937' : '#ffffff',\n bgSecondary: isDark ? '#374151' : '#f9fafb',\n textPrimary: isDark ? '#f9fafb' : '#111827',\n textSecondary: isDark ? '#9ca3af' : '#6b7280',\n borderDefault: isDark ? '#4b5563' : '#e5e7eb',\n actionPrimaryBg: '#6366f1',\n actionPrimaryBgSubtle: isDark ? '#312e81' : '#eef2ff',\n actionPrimaryFg: '#ffffff',\n bgTertiary: isDark ? '#4b5563' : '#f3f4f6',\n textTertiary: isDark ? '#6b7280' : '#9ca3af',\n statusErrorText: '#dc2626',\n backdropBg: 'rgba(0, 0, 0, 0.5)',\n});\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport interface FilterEditorProps {\n filter: GlobalFilter | null;\n onSave: (data: {\n name: string;\n type: FilterType;\n config: Record<string, unknown>;\n defaultValue?: unknown;\n isRequired?: boolean;\n }) => void | Promise<void>;\n onClose: () => void;\n}\n\n// ============================================================================\n// Component\n// ============================================================================\n\nexport function FilterEditor({ filter, onSave, onClose }: FilterEditorProps) {\n const { t } = useI18n();\n const [isSaving, setIsSaving] = useState(false);\n const [saveError, setSaveError] = useState(false);\n const [name, setName] = useState(filter?.name || '');\n const [type, setType] = useState<FilterType>(filter?.type || 'CATEGORY');\n const [isRequired, setIsRequired] = useState(filter?.isRequired || false);\n const [options, setOptions] = useState<{ value: string; label: string }[]>(\n (filter?.config?.options as { value: string; label: string }[] | undefined) || [{ value: '', label: '' }]\n );\n const [dataField, setDataField] = useState(typeof filter?.config?.field === 'string' ? filter.config.field : '');\n const [placeholder, setPlaceholder] = useState((filter?.config?.placeholder as string) || '');\n const [isDarkMode, setIsDarkMode] = useState(false);\n\n // Detect dark mode\n useEffect(() => {\n const checkDarkMode = () => {\n setIsDarkMode(document.documentElement.classList.contains('dark'));\n };\n checkDarkMode();\n\n // Watch for theme changes\n const observer = new MutationObserver(checkDarkMode);\n observer.observe(document.documentElement, { attributes: true, attributeFilter: ['class'] });\n return () => observer.disconnect();\n }, []);\n\n const COLORS = getColors(isDarkMode);\n const isEditing = !!filter;\n\n /**\n * Filter types as per spec (03-graphql-contract.md)\n * Spec values: date_range, category, custom, numeric_range, text_search\n */\n const FILTER_TYPES = useMemo<{ value: FilterType; label: string; description: string }[]>(\n () => [\n {\n value: 'CATEGORY',\n label: t('bigconsole.filters.editor.type.category.label', 'Category'),\n description: t('bigconsole.filters.editor.type.category.description', 'Selection from predefined categories'),\n },\n {\n value: 'DATE_RANGE',\n label: t('bigconsole.filters.editor.type.dateRange.label', 'Date Range'),\n description: t('bigconsole.filters.editor.type.dateRange.description', 'Start and end date selection'),\n },\n {\n value: 'NUMERIC_RANGE',\n label: t('bigconsole.filters.editor.type.numericRange.label', 'Numeric Range'),\n description: t('bigconsole.filters.editor.type.numericRange.description', 'Min and max number values'),\n },\n {\n value: 'TEXT_SEARCH',\n label: t('bigconsole.filters.editor.type.textSearch.label', 'Text Search'),\n description: t('bigconsole.filters.editor.type.textSearch.description', 'Free text search input'),\n },\n {\n value: 'CUSTOM',\n label: t('bigconsole.filters.editor.type.custom.label', 'Custom'),\n description: t('bigconsole.filters.editor.type.custom.description', 'Custom filter configuration'),\n },\n ],\n [t]\n );\n\n const handleAddOption = () => {\n setOptions([...options, { value: '', label: '' }]);\n };\n\n const handleRemoveOption = (index: number) => {\n setOptions(options.filter((_, i) => i !== index));\n };\n\n const handleOptionChange = (index: number, field: 'value' | 'label', value: string) => {\n setOptions(options.map((opt, i) => (i === index ? { ...opt, [field]: value } : opt)));\n };\n\n const handleSave = async () => {\n if (isSaving) return;\n setIsSaving(true);\n setSaveError(false);\n const config: Record<string, unknown> = { ...filter?.config };\n\n // CATEGORY type uses options for selection\n if (type === 'CATEGORY') {\n config.options = options.filter((opt) => opt.value && opt.label);\n }\n\n if (placeholder) config.placeholder = placeholder;\n else delete config.placeholder;\n if (dataField.trim()) config.field = dataField.trim();\n else delete config.field;\n\n try {\n await onSave({ name, type, config, isRequired });\n } catch {\n setSaveError(true);\n } finally {\n setIsSaving(false);\n }\n };\n\n const isValid = name.trim() !== '' && (type !== 'CATEGORY' || options.some((opt) => opt.value && opt.label));\n\n return (\n <div\n style={{\n position: 'fixed',\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n width: '100vw',\n height: '100vh',\n backgroundColor: COLORS.backdropBg,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n zIndex: 10000,\n isolation: 'isolate',\n }}\n onClick={onClose}\n >\n <div\n style={{\n width: '100%',\n maxWidth: 'min(480px, calc(100vw - 2rem))',\n maxHeight: '80vh',\n backgroundColor: COLORS.bgPrimary,\n borderRadius: '8px',\n boxShadow: 'var(--shadow-elevation-3)',\n overflow: 'hidden',\n position: 'relative',\n }}\n onClick={(e) => e.stopPropagation()}\n >\n {/* Header */}\n <div\n style={{\n padding: '16px 20px',\n borderBottom: `1px solid ${COLORS.borderDefault}`,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n backgroundColor: COLORS.bgPrimary,\n }}\n >\n <h3 style={{ margin: 0, fontSize: '16px', fontWeight: 600, color: COLORS.textPrimary }}>\n {isEditing\n ? t('bigconsole.filters.editor.title.edit', 'Edit Filter')\n : t('bigconsole.filters.editor.title.add', 'Add Filter')}\n </h3>\n <button\n onClick={onClose}\n style={{\n background: 'none',\n border: 'none',\n fontSize: '20px',\n cursor: 'pointer',\n color: COLORS.textSecondary,\n lineHeight: 1,\n }}\n >\n ×\n </button>\n </div>\n\n {/* Content */}\n <div\n style={{\n padding: '20px',\n overflowY: 'auto',\n maxHeight: 'calc(80vh - 130px)',\n backgroundColor: COLORS.bgPrimary,\n }}\n >\n {/* Filter Name */}\n <div style={{ marginBottom: '16px' }}>\n <label\n style={{\n display: 'block',\n marginBottom: '6px',\n fontSize: '13px',\n fontWeight: 500,\n color: COLORS.textPrimary,\n }}\n >\n {t('bigconsole.filters.editor.field.name.label', 'Filter Name *')}\n </label>\n <input\n type=\"text\"\n value={name}\n onChange={(e) => setName(e.target.value)}\n placeholder={t('bigconsole.filters.editor.field.name.placeholder', 'e.g., Status, Date Range, Category')}\n style={{\n width: '100%',\n padding: '10px 12px',\n border: `1px solid ${COLORS.borderDefault}`,\n borderRadius: '6px',\n fontSize: '14px',\n boxSizing: 'border-box',\n backgroundColor: COLORS.bgPrimary,\n color: COLORS.textPrimary,\n }}\n />\n </div>\n\n <div style={{ marginBottom: '16px' }}>\n <label htmlFor=\"global-filter-data-field\" className=\"mb-2 block text-sm font-medium text-text-primary\">\n {t('bigconsole.filters.editor.dataField', 'Data field (optional)')}\n </label>\n <input\n id=\"global-filter-data-field\"\n value={dataField}\n onChange={(event) => setDataField(event.target.value)}\n className=\"w-full rounded-button border border-border-subtle bg-bg-surface px-3 py-2 text-text-primary\"\n placeholder={t('bigconsole.filters.editor.dataFieldPlaceholder', 'e.g., region, country, cohort')}\n />\n <p className=\"mt-1 text-xs text-text-secondary\">\n {t(\n 'bigconsole.filters.editor.dataFieldHelp',\n 'Match a field in the parser output. Leave blank to use automatic matching.'\n )}\n </p>\n </div>\n\n {saveError && (\n <p role=\"alert\" className=\"mb-3 text-sm text-status-error-text\">\n {t(\n 'bigconsole.filters.editor.saveError',\n 'The filter could not be saved. Your changes are still here; try again.'\n )}\n </p>\n )}\n {/* Filter Type */}\n {!isEditing && (\n <div style={{ marginBottom: '16px' }}>\n <label\n style={{\n display: 'block',\n marginBottom: '8px',\n fontSize: '13px',\n fontWeight: 500,\n color: COLORS.textPrimary,\n }}\n >\n {t('bigconsole.filters.editor.field.type.label', 'Filter Type *')}\n </label>\n <div style={{ display: 'grid', gridTemplateColumns: 'repeat(2, 1fr)', gap: '10px' }}>\n {FILTER_TYPES.map((ft) => (\n <button\n key={ft.value}\n onClick={() => setType(ft.value)}\n type=\"button\"\n style={{\n padding: '12px',\n textAlign: 'left',\n backgroundColor: type === ft.value ? COLORS.actionPrimaryBgSubtle : COLORS.bgSecondary,\n border: `2px solid ${type === ft.value ? COLORS.actionPrimaryBg : COLORS.borderDefault}`,\n borderRadius: '6px',\n cursor: 'pointer',\n transition: 'all 0.2s ease',\n minHeight: '60px',\n }}\n >\n <div style={{ fontWeight: 500, fontSize: '13px', color: COLORS.textPrimary }}>{ft.label}</div>\n <div\n style={{\n fontSize: '11px',\n color: COLORS.textSecondary,\n marginTop: '4px',\n lineHeight: '1.3',\n }}\n >\n {ft.description}\n </div>\n </button>\n ))}\n </div>\n </div>\n )}\n\n {/* Options (for CATEGORY type) */}\n {type === 'CATEGORY' && (\n <div style={{ marginBottom: '16px' }}>\n <label\n style={{\n display: 'block',\n marginBottom: '8px',\n fontSize: '13px',\n fontWeight: 500,\n color: COLORS.textPrimary,\n }}\n >\n {t('bigconsole.filters.editor.field.options.label', 'Options')}\n </label>\n <div style={{ display: 'flex', flexDirection: 'column', gap: '8px' }}>\n {options.map((opt, index) => (\n <div key={index} style={{ display: 'flex', gap: '8px', alignItems: 'center' }}>\n <input\n type=\"text\"\n value={opt.value}\n onChange={(e) => handleOptionChange(index, 'value', e.target.value)}\n placeholder={t('bigconsole.filters.editor.field.options.valuePlaceholder', 'Value')}\n style={{\n flex: 1,\n padding: '8px 10px',\n border: `1px solid ${COLORS.borderDefault}`,\n borderRadius: '4px',\n fontSize: '13px',\n boxSizing: 'border-box',\n backgroundColor: COLORS.bgPrimary,\n color: COLORS.textPrimary,\n }}\n />\n <input\n type=\"text\"\n value={opt.label}\n onChange={(e) => handleOptionChange(index, 'label', e.target.value)}\n placeholder={t('bigconsole.filters.editor.field.options.labelPlaceholder', 'Label')}\n style={{\n flex: 1,\n padding: '8px 10px',\n border: `1px solid ${COLORS.borderDefault}`,\n borderRadius: '4px',\n fontSize: '13px',\n boxSizing: 'border-box',\n backgroundColor: COLORS.bgPrimary,\n color: COLORS.textPrimary,\n }}\n />\n {options.length > 1 && (\n <button\n type=\"button\"\n onClick={() => handleRemoveOption(index)}\n style={{\n padding: '6px 10px',\n backgroundColor: 'transparent',\n border: `1px solid ${COLORS.statusErrorText}`,\n borderRadius: '4px',\n cursor: 'pointer',\n color: COLORS.statusErrorText,\n fontSize: '12px',\n }}\n >\n {t('bigconsole.filters.editor.field.options.remove', 'Remove')}\n </button>\n )}\n </div>\n ))}\n <button\n type=\"button\"\n onClick={handleAddOption}\n style={{\n padding: '8px',\n backgroundColor: 'transparent',\n border: `1px dashed ${COLORS.borderDefault}`,\n borderRadius: '4px',\n cursor: 'pointer',\n color: COLORS.textSecondary,\n fontSize: '12px',\n }}\n >\n {t('bigconsole.filters.editor.field.options.add', '+ Add Option')}\n </button>\n </div>\n </div>\n )}\n\n {/* Placeholder */}\n {(type === 'TEXT_SEARCH' || type === 'CATEGORY') && (\n <div style={{ marginBottom: '16px' }}>\n <label\n style={{\n display: 'block',\n marginBottom: '8px',\n fontSize: '13px',\n fontWeight: 500,\n color: COLORS.textPrimary,\n }}\n >\n {t('bigconsole.filters.editor.field.placeholder.label', 'Placeholder Text')}\n </label>\n <input\n type=\"text\"\n value={placeholder}\n onChange={(e) => setPlaceholder(e.target.value)}\n placeholder={t('bigconsole.filters.editor.field.placeholder.placeholder', 'e.g., Select an option...')}\n style={{\n width: '100%',\n padding: '10px 12px',\n border: `1px solid ${COLORS.borderDefault}`,\n borderRadius: '6px',\n fontSize: '14px',\n boxSizing: 'border-box',\n backgroundColor: COLORS.bgPrimary,\n color: COLORS.textPrimary,\n }}\n />\n </div>\n )}\n\n {/* Required Toggle */}\n <div style={{ marginBottom: '16px' }}>\n <label\n style={{\n display: 'flex',\n alignItems: 'center',\n gap: '8px',\n cursor: 'pointer',\n }}\n >\n <input\n type=\"checkbox\"\n checked={isRequired}\n onChange={(e) => setIsRequired(e.target.checked)}\n style={{ width: '16px', height: '16px' }}\n />\n <span style={{ fontSize: '13px', color: COLORS.textPrimary }}>\n {t('bigconsole.filters.editor.field.required.label', 'Required filter (must have a value)')}\n </span>\n </label>\n </div>\n </div>\n\n {/* Footer */}\n <div\n style={{\n padding: '16px 20px',\n borderTop: `1px solid ${COLORS.borderDefault}`,\n display: 'flex',\n justifyContent: 'flex-end',\n gap: '12px',\n backgroundColor: COLORS.bgPrimary,\n }}\n >\n <button\n type=\"button\"\n onClick={onClose}\n style={{\n padding: '10px 20px',\n backgroundColor: COLORS.bgPrimary,\n border: `1px solid ${COLORS.borderDefault}`,\n borderRadius: '6px',\n cursor: 'pointer',\n fontSize: '14px',\n color: COLORS.textSecondary,\n }}\n >\n {t('bigconsole.filters.editor.action.cancel', 'Cancel')}\n </button>\n <button\n type=\"button\"\n onClick={handleSave}\n disabled={!isValid || isSaving}\n style={{\n padding: '10px 20px',\n backgroundColor: isValid ? COLORS.actionPrimaryBg : COLORS.bgTertiary,\n color: isValid ? COLORS.actionPrimaryFg : COLORS.textTertiary,\n border: 'none',\n borderRadius: '6px',\n cursor: isValid ? 'pointer' : 'not-allowed',\n fontSize: '14px',\n fontWeight: 500,\n }}\n >\n {isEditing\n ? t('bigconsole.filters.editor.action.saveChanges', 'Save Changes')\n : t('bigconsole.filters.editor.action.add', 'Add Filter')}\n </button>\n </div>\n </div>\n </div>\n );\n}\n\nexport default FilterEditor;\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"GlobalFiltersBar.d.ts","sourceRoot":"","sources":["../../../../../src/bigconsole/components/dashboard/GlobalFiltersBar/GlobalFiltersBar.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAA2C,MAAM,OAAO,CAAC;AAkChE,MAAM,WAAW,qBAAqB;IACpC,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;IAC3D,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mDAAmD;IACnD,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,4BAA4B;IAC5B,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAMD,wBAAgB,gBAAgB,CAAC,EAC/B,WAAW,EACX,cAAc,EACd,WAAkB,EAClB,SAAc,EACd,aAAoB,EACpB,aAAoB,GACrB,EAAE,qBAAqB,qBAwXvB;AAED,eAAe,gBAAgB,CAAC"}
1
+ {"version":3,"file":"GlobalFiltersBar.d.ts","sourceRoot":"","sources":["../../../../../src/bigconsole/components/dashboard/GlobalFiltersBar/GlobalFiltersBar.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAA2C,MAAM,OAAO,CAAC;AAmChE,MAAM,WAAW,qBAAqB;IACpC,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;IAC3D,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mDAAmD;IACnD,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,4BAA4B;IAC5B,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAMD,wBAAgB,gBAAgB,CAAC,EAC/B,WAAW,EACX,cAAc,EACd,WAAkB,EAClB,SAAc,EACd,aAAoB,EACpB,aAAoB,GACrB,EAAE,qBAAqB,qBAmZvB;AAED,eAAe,gBAAgB,CAAC"}