@eqtylab/equality 0.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (94) hide show
  1. package/LICENSE +190 -0
  2. package/dist/alert-dialog.module.module.css.module.css +275 -0
  3. package/dist/alert.module.module.css.module.css +112 -0
  4. package/dist/avatar.module.module.css.module.css +119 -0
  5. package/dist/badge.module.module.css.module.css +141 -0
  6. package/dist/bg-gradient.module.module.css.module.css +7 -0
  7. package/dist/button.module.module.css.module.css +253 -0
  8. package/dist/card-content-header.module.module.css.module.css +27 -0
  9. package/dist/card.module.module.css.module.css +246 -0
  10. package/dist/checkbox.module.module.css.module.css +124 -0
  11. package/dist/code-block.module.module.css.module.css +100 -0
  12. package/dist/command.module.module.css.module.css +210 -0
  13. package/dist/control-status-badge.module.module.css.module.css +49 -0
  14. package/dist/date-range-picker.module.module.css.module.css +147 -0
  15. package/dist/dialog.module.module.css.module.css +300 -0
  16. package/dist/display-field.module.module.css.module.css +250 -0
  17. package/dist/drawer.module.module.css.module.css +202 -0
  18. package/dist/dropdown-menu.module.module.css.module.css +271 -0
  19. package/dist/empty-table-state.module.module.css.module.css +34 -0
  20. package/dist/filter-dropdown.module.module.css.module.css +18 -0
  21. package/dist/form.module.module.css.module.css +35 -0
  22. package/dist/generated/color-vars.css +354 -0
  23. package/dist/generated/dark-tokens.css +105 -0
  24. package/dist/generated/global-dark-tokens.css +105 -0
  25. package/dist/generated/global-light-tokens.css +254 -0
  26. package/dist/generated/light-tokens.css +254 -0
  27. package/dist/generated/tailwind-tokens.css +252 -0
  28. package/dist/global-theme-config.css +15 -0
  29. package/dist/heading.module.module.css.module.css +41 -0
  30. package/dist/icon-button.module.module.css.module.css +196 -0
  31. package/dist/icon.module.module.css.module.css +155 -0
  32. package/dist/index.cjs +3419 -0
  33. package/dist/index.cjs.map +1 -0
  34. package/dist/index.d.cts +819 -0
  35. package/dist/index.d.ts +819 -0
  36. package/dist/index.js +3134 -0
  37. package/dist/index.js.map +1 -0
  38. package/dist/info-card.module.module.css.module.css +25 -0
  39. package/dist/input.module.module.css.module.css +231 -0
  40. package/dist/label.module.module.css.module.css +23 -0
  41. package/dist/list-or-grid-view-toggle.module.module.css.module.css +52 -0
  42. package/dist/loading-overlay.module.module.css.module.css +151 -0
  43. package/dist/metric-card.module.module.css.module.css +171 -0
  44. package/dist/motion-collapsible.module.module.css.module.css +4 -0
  45. package/dist/page-not-found.module.module.css.module.css +71 -0
  46. package/dist/pagination.module.module.css.module.css +21 -0
  47. package/dist/panel-label.module.module.css.module.css +17 -0
  48. package/dist/popover.module.module.css.module.css +136 -0
  49. package/dist/progress.module.module.css.module.css +32 -0
  50. package/dist/radial-graph.module.module.css.module.css +223 -0
  51. package/dist/radio-dropdown.module.module.css.module.css +16 -0
  52. package/dist/radio-group.module.module.css.module.css +118 -0
  53. package/dist/resource-badge.module.module.css.module.css +77 -0
  54. package/dist/scripts.cjs +116 -0
  55. package/dist/scripts.cjs.map +1 -0
  56. package/dist/scripts.d.cts +5 -0
  57. package/dist/scripts.d.ts +5 -0
  58. package/dist/scripts.js +114 -0
  59. package/dist/scripts.js.map +1 -0
  60. package/dist/scroll-area.module.module.css.module.css +46 -0
  61. package/dist/search-bar.module.module.css.module.css +9 -0
  62. package/dist/section-heading.module.module.css.module.css +42 -0
  63. package/dist/select.module.module.css.module.css +362 -0
  64. package/dist/separator.module.module.css.module.css +13 -0
  65. package/dist/sheet.module.module.css.module.css +377 -0
  66. package/dist/skeleton.module.module.css.module.css +11 -0
  67. package/dist/sort-button.module.module.css.module.css +42 -0
  68. package/dist/sort-selector.module.module.css.module.css +11 -0
  69. package/dist/spinner.module.module.css.module.css +82 -0
  70. package/dist/switch.module.module.css.module.css +226 -0
  71. package/dist/table-components.module.module.css.module.css +116 -0
  72. package/dist/table.module.module.css.module.css +145 -0
  73. package/dist/tabs-components.module.module.css.module.css +136 -0
  74. package/dist/tabs.module.module.css.module.css +139 -0
  75. package/dist/textarea.module.module.css.module.css +115 -0
  76. package/dist/theme/lib/utils.cjs +125 -0
  77. package/dist/theme/lib/utils.cjs.map +1 -0
  78. package/dist/theme/lib/utils.d.cts +26 -0
  79. package/dist/theme/lib/utils.d.ts +26 -0
  80. package/dist/theme/lib/utils.js +110 -0
  81. package/dist/theme/lib/utils.js.map +1 -0
  82. package/dist/theme-base.css +51 -0
  83. package/dist/theme-components.css +27 -0
  84. package/dist/theme-preflight-global.css +260 -0
  85. package/dist/theme-preflight-scoped.css +261 -0
  86. package/dist/theme-utilities.css +54 -0
  87. package/dist/theme.module.css +15 -0
  88. package/dist/theme.module.module.css.module.css +978 -0
  89. package/dist/toast-components.module.module.css.module.css +393 -0
  90. package/dist/toast.module.module.css.module.css +11 -0
  91. package/dist/tokens.css +3 -0
  92. package/dist/tooltip.module.module.css.module.css +139 -0
  93. package/dist/truncated-description.module.module.css.module.css +15 -0
  94. package/package.json +101 -0
package/dist/index.cjs ADDED
@@ -0,0 +1,3419 @@
1
+ 'use strict';
2
+
3
+ var React15 = require('react');
4
+ var classVarianceAuthority = require('class-variance-authority');
5
+ var styles = require('./alert.module.module.css.module.css');
6
+ var clsx = require('clsx');
7
+ var tailwindMerge = require('tailwind-merge');
8
+ var jsxRuntime = require('react/jsx-runtime');
9
+ var AlertDialogPrimitive = require('@radix-ui/react-alert-dialog');
10
+ var styles3 = require('./alert-dialog.module.module.css.module.css');
11
+ var reactSlot = require('@radix-ui/react-slot');
12
+ var styles2 = require('./button.module.module.css.module.css');
13
+ var AvatarPrimitive = require('@radix-ui/react-avatar');
14
+ var styles4 = require('./avatar.module.module.css.module.css');
15
+ var LucideIcons = require('lucide-react');
16
+ var styles7 = require('./badge.module.module.css.module.css');
17
+ var styles5 = require('./icon.module.module.css.module.css');
18
+ var TooltipPrimitive = require('@radix-ui/react-tooltip');
19
+ var styles6 = require('./tooltip.module.module.css.module.css');
20
+ var styles8 = require('./bg-gradient.module.module.css.module.css');
21
+ var styles9 = require('./resource-badge.module.module.css.module.css');
22
+ var styles10 = require('./card-content-header.module.module.css.module.css');
23
+ var styles11 = require('./card.module.module.css.module.css');
24
+ var CheckboxPrimitive = require('@radix-ui/react-checkbox');
25
+ var styles12 = require('./checkbox.module.module.css.module.css');
26
+ var reactSyntaxHighlighter = require('react-syntax-highlighter');
27
+ var darkStyle = require('react-syntax-highlighter/dist/esm/styles/prism/a11y-dark');
28
+ var lightStyle = require('react-syntax-highlighter/dist/esm/styles/prism/prism');
29
+ var styles14 = require('./code-block.module.module.css.module.css');
30
+ var styles13 = require('./icon-button.module.module.css.module.css');
31
+ var cmdk = require('cmdk');
32
+ var styles16 = require('./command.module.module.css.module.css');
33
+ var DialogPrimitive = require('@radix-ui/react-dialog');
34
+ var styles15 = require('./dialog.module.module.css.module.css');
35
+ var styles18 = require('./date-range-picker.module.module.css.module.css');
36
+ var PopoverPrimitive = require('@radix-ui/react-popover');
37
+ var styles17 = require('./popover.module.module.css.module.css');
38
+ var Truncate = require('react-truncate-inside');
39
+ var styles19 = require('./display-field.module.module.css.module.css');
40
+ var vaul = require('vaul');
41
+ var styles20 = require('./drawer.module.module.css.module.css');
42
+ var DropdownMenuPrimitive = require('@radix-ui/react-dropdown-menu');
43
+ var styles21 = require('./dropdown-menu.module.module.css.module.css');
44
+ var styles22 = require('./empty-table-state.module.module.css.module.css');
45
+ var styles23 = require('./filter-dropdown.module.module.css.module.css');
46
+ var reactHookForm = require('react-hook-form');
47
+ var styles25 = require('./form.module.module.css.module.css');
48
+ var LabelPrimitive = require('@radix-ui/react-label');
49
+ var styles24 = require('./label.module.module.css.module.css');
50
+ var styles26 = require('./info-card.module.module.css.module.css');
51
+ var styles27 = require('./input.module.module.css.module.css');
52
+ var styles28 = require('./list-or-grid-view-toggle.module.module.css.module.css');
53
+ var styles30 = require('./loading-overlay.module.module.css.module.css');
54
+ var styles29 = require('./spinner.module.module.css.module.css');
55
+ var styles31 = require('./metric-card.module.module.css.module.css');
56
+ var react = require('motion/react');
57
+ var styles32 = require('./motion-collapsible.module.module.css.module.css');
58
+ var styles33 = require('./page-not-found.module.module.css.module.css');
59
+ var styles35 = require('./pagination.module.module.css.module.css');
60
+ var SelectPrimitive = require('@radix-ui/react-select');
61
+ var styles34 = require('./select.module.module.css.module.css');
62
+ var styles36 = require('./panel-label.module.module.css.module.css');
63
+ var ProgressPrimitive = require('@radix-ui/react-progress');
64
+ var styles37 = require('./progress.module.module.css.module.css');
65
+ var styles38 = require('./radial-graph.module.module.css.module.css');
66
+ var styles39 = require('./radio-dropdown.module.module.css.module.css');
67
+ var RadioGroupPrimitive = require('@radix-ui/react-radio-group');
68
+ var styles40 = require('./radio-group.module.module.css.module.css');
69
+ var ScrollAreaPrimitive = require('@radix-ui/react-scroll-area');
70
+ var styles41 = require('./scroll-area.module.module.css.module.css');
71
+ var styles42 = require('./search-bar.module.module.css.module.css');
72
+ var styles43 = require('./section-heading.module.module.css.module.css');
73
+ var SeparatorPrimitive = require('@radix-ui/react-separator');
74
+ var styles44 = require('./separator.module.module.css.module.css');
75
+ var styles45 = require('./sheet.module.module.css.module.css');
76
+ var styles46 = require('./skeleton.module.module.css.module.css');
77
+ var styles47 = require('./sort-selector.module.module.css.module.css');
78
+ var SwitchPrimitives = require('@radix-ui/react-switch');
79
+ var styles48 = require('./switch.module.module.css.module.css');
80
+ var styles49 = require('./sort-button.module.module.css.module.css');
81
+ var styles50 = require('./table-components.module.module.css.module.css');
82
+ var styles51 = require('./table.module.module.css.module.css');
83
+ var TabsPrimitive = require('@radix-ui/react-tabs');
84
+ var styles52 = require('./tabs-components.module.module.css.module.css');
85
+ var styles53 = require('./tabs.module.module.css.module.css');
86
+ var styles54 = require('./textarea.module.module.css.module.css');
87
+ var ToastPrimitives = require('@radix-ui/react-toast');
88
+ var styles55 = require('./toast-components.module.module.css.module.css');
89
+ var styles56 = require('./toast.module.module.css.module.css');
90
+ var styles57 = require('./truncated-description.module.module.css.module.css');
91
+ var styles58 = require('./heading.module.module.css.module.css');
92
+ var styles59 = require('./control-status-badge.module.module.css.module.css');
93
+ var styles60 = require('./theme.module.module.css.module.css');
94
+
95
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
96
+
97
+ function _interopNamespace(e) {
98
+ if (e && e.__esModule) return e;
99
+ var n = Object.create(null);
100
+ if (e) {
101
+ Object.keys(e).forEach(function (k) {
102
+ if (k !== 'default') {
103
+ var d = Object.getOwnPropertyDescriptor(e, k);
104
+ Object.defineProperty(n, k, d.get ? d : {
105
+ enumerable: true,
106
+ get: function () { return e[k]; }
107
+ });
108
+ }
109
+ });
110
+ }
111
+ n.default = e;
112
+ return Object.freeze(n);
113
+ }
114
+
115
+ var React15__namespace = /*#__PURE__*/_interopNamespace(React15);
116
+ var styles__default = /*#__PURE__*/_interopDefault(styles);
117
+ var AlertDialogPrimitive__namespace = /*#__PURE__*/_interopNamespace(AlertDialogPrimitive);
118
+ var styles3__default = /*#__PURE__*/_interopDefault(styles3);
119
+ var styles2__default = /*#__PURE__*/_interopDefault(styles2);
120
+ var AvatarPrimitive__namespace = /*#__PURE__*/_interopNamespace(AvatarPrimitive);
121
+ var styles4__default = /*#__PURE__*/_interopDefault(styles4);
122
+ var LucideIcons__namespace = /*#__PURE__*/_interopNamespace(LucideIcons);
123
+ var styles7__default = /*#__PURE__*/_interopDefault(styles7);
124
+ var styles5__default = /*#__PURE__*/_interopDefault(styles5);
125
+ var TooltipPrimitive__namespace = /*#__PURE__*/_interopNamespace(TooltipPrimitive);
126
+ var styles6__default = /*#__PURE__*/_interopDefault(styles6);
127
+ var styles8__default = /*#__PURE__*/_interopDefault(styles8);
128
+ var styles9__default = /*#__PURE__*/_interopDefault(styles9);
129
+ var styles10__default = /*#__PURE__*/_interopDefault(styles10);
130
+ var styles11__default = /*#__PURE__*/_interopDefault(styles11);
131
+ var CheckboxPrimitive__namespace = /*#__PURE__*/_interopNamespace(CheckboxPrimitive);
132
+ var styles12__default = /*#__PURE__*/_interopDefault(styles12);
133
+ var darkStyle__default = /*#__PURE__*/_interopDefault(darkStyle);
134
+ var lightStyle__default = /*#__PURE__*/_interopDefault(lightStyle);
135
+ var styles14__default = /*#__PURE__*/_interopDefault(styles14);
136
+ var styles13__default = /*#__PURE__*/_interopDefault(styles13);
137
+ var styles16__default = /*#__PURE__*/_interopDefault(styles16);
138
+ var DialogPrimitive__namespace = /*#__PURE__*/_interopNamespace(DialogPrimitive);
139
+ var styles15__default = /*#__PURE__*/_interopDefault(styles15);
140
+ var styles18__default = /*#__PURE__*/_interopDefault(styles18);
141
+ var PopoverPrimitive__namespace = /*#__PURE__*/_interopNamespace(PopoverPrimitive);
142
+ var styles17__default = /*#__PURE__*/_interopDefault(styles17);
143
+ var Truncate__default = /*#__PURE__*/_interopDefault(Truncate);
144
+ var styles19__default = /*#__PURE__*/_interopDefault(styles19);
145
+ var styles20__default = /*#__PURE__*/_interopDefault(styles20);
146
+ var DropdownMenuPrimitive__namespace = /*#__PURE__*/_interopNamespace(DropdownMenuPrimitive);
147
+ var styles21__default = /*#__PURE__*/_interopDefault(styles21);
148
+ var styles22__default = /*#__PURE__*/_interopDefault(styles22);
149
+ var styles23__default = /*#__PURE__*/_interopDefault(styles23);
150
+ var styles25__default = /*#__PURE__*/_interopDefault(styles25);
151
+ var LabelPrimitive__namespace = /*#__PURE__*/_interopNamespace(LabelPrimitive);
152
+ var styles24__default = /*#__PURE__*/_interopDefault(styles24);
153
+ var styles26__default = /*#__PURE__*/_interopDefault(styles26);
154
+ var styles27__default = /*#__PURE__*/_interopDefault(styles27);
155
+ var styles28__default = /*#__PURE__*/_interopDefault(styles28);
156
+ var styles30__default = /*#__PURE__*/_interopDefault(styles30);
157
+ var styles29__default = /*#__PURE__*/_interopDefault(styles29);
158
+ var styles31__default = /*#__PURE__*/_interopDefault(styles31);
159
+ var styles32__default = /*#__PURE__*/_interopDefault(styles32);
160
+ var styles33__default = /*#__PURE__*/_interopDefault(styles33);
161
+ var styles35__default = /*#__PURE__*/_interopDefault(styles35);
162
+ var SelectPrimitive__namespace = /*#__PURE__*/_interopNamespace(SelectPrimitive);
163
+ var styles34__default = /*#__PURE__*/_interopDefault(styles34);
164
+ var styles36__default = /*#__PURE__*/_interopDefault(styles36);
165
+ var ProgressPrimitive__namespace = /*#__PURE__*/_interopNamespace(ProgressPrimitive);
166
+ var styles37__default = /*#__PURE__*/_interopDefault(styles37);
167
+ var styles38__default = /*#__PURE__*/_interopDefault(styles38);
168
+ var styles39__default = /*#__PURE__*/_interopDefault(styles39);
169
+ var RadioGroupPrimitive__namespace = /*#__PURE__*/_interopNamespace(RadioGroupPrimitive);
170
+ var styles40__default = /*#__PURE__*/_interopDefault(styles40);
171
+ var ScrollAreaPrimitive__namespace = /*#__PURE__*/_interopNamespace(ScrollAreaPrimitive);
172
+ var styles41__default = /*#__PURE__*/_interopDefault(styles41);
173
+ var styles42__default = /*#__PURE__*/_interopDefault(styles42);
174
+ var styles43__default = /*#__PURE__*/_interopDefault(styles43);
175
+ var SeparatorPrimitive__namespace = /*#__PURE__*/_interopNamespace(SeparatorPrimitive);
176
+ var styles44__default = /*#__PURE__*/_interopDefault(styles44);
177
+ var styles45__default = /*#__PURE__*/_interopDefault(styles45);
178
+ var styles46__default = /*#__PURE__*/_interopDefault(styles46);
179
+ var styles47__default = /*#__PURE__*/_interopDefault(styles47);
180
+ var SwitchPrimitives__namespace = /*#__PURE__*/_interopNamespace(SwitchPrimitives);
181
+ var styles48__default = /*#__PURE__*/_interopDefault(styles48);
182
+ var styles49__default = /*#__PURE__*/_interopDefault(styles49);
183
+ var styles50__default = /*#__PURE__*/_interopDefault(styles50);
184
+ var styles51__default = /*#__PURE__*/_interopDefault(styles51);
185
+ var TabsPrimitive__namespace = /*#__PURE__*/_interopNamespace(TabsPrimitive);
186
+ var styles52__default = /*#__PURE__*/_interopDefault(styles52);
187
+ var styles53__default = /*#__PURE__*/_interopDefault(styles53);
188
+ var styles54__default = /*#__PURE__*/_interopDefault(styles54);
189
+ var ToastPrimitives__namespace = /*#__PURE__*/_interopNamespace(ToastPrimitives);
190
+ var styles55__default = /*#__PURE__*/_interopDefault(styles55);
191
+ var styles56__default = /*#__PURE__*/_interopDefault(styles56);
192
+ var styles57__default = /*#__PURE__*/_interopDefault(styles57);
193
+ var styles58__default = /*#__PURE__*/_interopDefault(styles58);
194
+ var styles59__default = /*#__PURE__*/_interopDefault(styles59);
195
+ var styles60__default = /*#__PURE__*/_interopDefault(styles60);
196
+
197
+ // src/components/alert/alert.tsx
198
+ function cn(...inputs) {
199
+ return tailwindMerge.twMerge(clsx.clsx(inputs));
200
+ }
201
+ function getThemeProviderRoot() {
202
+ return document.getElementById("equality-theme-provider-root-portal");
203
+ }
204
+ var alertVariants = classVarianceAuthority.cva(styles__default.default["alert"], {
205
+ variants: {
206
+ variant: {
207
+ default: styles__default.default["alert--default"],
208
+ success: styles__default.default["alert--success"],
209
+ warning: styles__default.default["alert--warning"],
210
+ danger: styles__default.default["alert--danger"]
211
+ }
212
+ },
213
+ defaultVariants: {
214
+ variant: "default"
215
+ }
216
+ });
217
+ var Alert = React15__namespace.forwardRef(({ className, variant, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx("div", { ref, role: "alert", className: cn(alertVariants({ variant }), className), ...props }));
218
+ Alert.displayName = "Alert";
219
+ var AlertTitle = React15__namespace.forwardRef(
220
+ ({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx("h5", { ref, className: cn(styles__default.default["alert-title"], className), ...props })
221
+ );
222
+ AlertTitle.displayName = "AlertTitle";
223
+ var AlertDescription = React15__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx("div", { ref, className: cn(styles__default.default["alert-description"], className), ...props }));
224
+ AlertDescription.displayName = "AlertDescription";
225
+ var buttonVariants = classVarianceAuthority.cva(styles2__default.default["button"], {
226
+ variants: {
227
+ variant: {
228
+ primary: styles2__default.default["button--primary"],
229
+ danger: styles2__default.default["button--danger"],
230
+ secondary: styles2__default.default["button--secondary"],
231
+ tertiary: styles2__default.default["button--tertiary"],
232
+ link: styles2__default.default["button--link"]
233
+ },
234
+ size: {
235
+ sm: styles2__default.default["size--sm"],
236
+ md: styles2__default.default["size--md"],
237
+ lg: styles2__default.default["size--lg"]
238
+ }
239
+ },
240
+ defaultVariants: {
241
+ variant: "primary",
242
+ size: "md"
243
+ }
244
+ });
245
+ var Button = React15__namespace.forwardRef(
246
+ ({ className, variant, size, asChild = false, prefix, suffix, children, ...props }, ref) => {
247
+ const isLink = "href" in props && props.href;
248
+ if (isLink) {
249
+ const { href, target, rel, download, ...anchorProps } = props;
250
+ return /* @__PURE__ */ jsxRuntime.jsxs(
251
+ "a",
252
+ {
253
+ href,
254
+ target,
255
+ rel,
256
+ download,
257
+ className: cn(buttonVariants({ variant, size, className })),
258
+ ref,
259
+ ...anchorProps,
260
+ children: [
261
+ prefix,
262
+ children,
263
+ suffix
264
+ ]
265
+ }
266
+ );
267
+ }
268
+ const Comp = asChild ? reactSlot.Slot : "button";
269
+ return /* @__PURE__ */ jsxRuntime.jsxs(
270
+ Comp,
271
+ {
272
+ className: cn(buttonVariants({ variant, size, className })),
273
+ ref,
274
+ ...props,
275
+ children: [
276
+ prefix,
277
+ children,
278
+ suffix
279
+ ]
280
+ }
281
+ );
282
+ }
283
+ );
284
+ Button.displayName = "Button";
285
+ var AlertDialog = AlertDialogPrimitive__namespace.Root;
286
+ var AlertDialogTrigger = AlertDialogPrimitive__namespace.Trigger;
287
+ var AlertDialogPortal = ({ children }) => /* @__PURE__ */ jsxRuntime.jsx(AlertDialogPrimitive__namespace.Portal, { container: getThemeProviderRoot(), children });
288
+ var AlertDialogOverlay = React15__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
289
+ AlertDialogPrimitive__namespace.Overlay,
290
+ {
291
+ className: cn(styles3__default.default["alert-dialog-overlay"], className),
292
+ ...props,
293
+ ref
294
+ }
295
+ ));
296
+ AlertDialogOverlay.displayName = AlertDialogPrimitive__namespace.Overlay.displayName;
297
+ var AlertDialogContent = React15__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(AlertDialogPortal, { children: [
298
+ /* @__PURE__ */ jsxRuntime.jsx(AlertDialogOverlay, {}),
299
+ /* @__PURE__ */ jsxRuntime.jsx(
300
+ AlertDialogPrimitive__namespace.Content,
301
+ {
302
+ ref,
303
+ className: cn(styles3__default.default["alert-dialog-content"], className),
304
+ ...props
305
+ }
306
+ )
307
+ ] }));
308
+ AlertDialogContent.displayName = AlertDialogPrimitive__namespace.Content.displayName;
309
+ var AlertDialogHeader = ({ className, ...props }) => /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn(styles3__default.default["alert-dialog-header"], className), ...props });
310
+ AlertDialogHeader.displayName = "AlertDialogHeader";
311
+ var AlertDialogFooter = ({ className, ...props }) => /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn(styles3__default.default["alert-dialog-footer"], className), ...props });
312
+ AlertDialogFooter.displayName = "AlertDialogFooter";
313
+ var AlertDialogTitle = React15__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
314
+ AlertDialogPrimitive__namespace.Title,
315
+ {
316
+ ref,
317
+ className: cn(styles3__default.default["alert-dialog-title"], className),
318
+ ...props
319
+ }
320
+ ));
321
+ AlertDialogTitle.displayName = AlertDialogPrimitive__namespace.Title.displayName;
322
+ var AlertDialogDescription = React15__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
323
+ AlertDialogPrimitive__namespace.Description,
324
+ {
325
+ ref,
326
+ className: cn(styles3__default.default["alert-dialog-description"], className),
327
+ ...props
328
+ }
329
+ ));
330
+ AlertDialogDescription.displayName = AlertDialogPrimitive__namespace.Description.displayName;
331
+ var AlertDialogAction = React15__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
332
+ AlertDialogPrimitive__namespace.Action,
333
+ {
334
+ ref,
335
+ className: cn(buttonVariants({ variant: "primary", size: "sm" }), className),
336
+ ...props
337
+ }
338
+ ));
339
+ AlertDialogAction.displayName = AlertDialogPrimitive__namespace.Action.displayName;
340
+ var AlertDialogCancel = React15__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
341
+ AlertDialogPrimitive__namespace.Cancel,
342
+ {
343
+ ref,
344
+ className: cn(
345
+ buttonVariants({ variant: "tertiary", size: "sm" }),
346
+ styles3__default.default["alert-dialog-cancel"],
347
+ className
348
+ ),
349
+ ...props
350
+ }
351
+ ));
352
+ AlertDialogCancel.displayName = AlertDialogPrimitive__namespace.Cancel.displayName;
353
+ var Avatar = React15__namespace.forwardRef(
354
+ ({ className, size = "md", shape = "circle", ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
355
+ AvatarPrimitive__namespace.Root,
356
+ {
357
+ ref,
358
+ className: cn(styles4__default.default.avatar, styles4__default.default[size], styles4__default.default[shape], className),
359
+ ...props
360
+ }
361
+ )
362
+ );
363
+ Avatar.displayName = AvatarPrimitive__namespace.Root.displayName;
364
+ var AvatarImage = React15__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(AvatarPrimitive__namespace.Image, { ref, className: cn(styles4__default.default["avatar-image"], className), ...props }));
365
+ AvatarImage.displayName = AvatarPrimitive__namespace.Image.displayName;
366
+ var AvatarFallback = React15__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
367
+ AvatarPrimitive__namespace.Fallback,
368
+ {
369
+ ref,
370
+ className: cn(styles4__default.default["avatar-fallback"], className),
371
+ ...props
372
+ }
373
+ ));
374
+ AvatarFallback.displayName = AvatarPrimitive__namespace.Fallback.displayName;
375
+ var ELEVATION = {
376
+ SUNKEN: "sunken",
377
+ BASE: "base",
378
+ RAISED: "raised",
379
+ OVERLAY: "overlay",
380
+ FLOATING: "floating"
381
+ };
382
+ var generateElevationVariants = (styles61, baseClassName, defaultElevation) => {
383
+ const classNames = {};
384
+ Object.values(ELEVATION).forEach((elevation) => {
385
+ classNames[elevation] = styles61[`${baseClassName}--${elevation}`];
386
+ });
387
+ const variants = classVarianceAuthority.cva(styles61[baseClassName], {
388
+ variants: {
389
+ elevation: classNames
390
+ },
391
+ defaultVariants: {
392
+ elevation: defaultElevation
393
+ }
394
+ });
395
+ return variants;
396
+ };
397
+ var getRelativeElevation = (elevation, offset) => {
398
+ const elevationIndex = Object.values(ELEVATION).indexOf(elevation);
399
+ const newElevationIndex = elevationIndex + offset;
400
+ const relativeElevation = Object.values(ELEVATION)[newElevationIndex];
401
+ if (!relativeElevation) {
402
+ console.warn(`Invalid elevation offset: from ${elevation} with offset ${offset}`);
403
+ }
404
+ return relativeElevation || elevation;
405
+ };
406
+ var iconVariants = classVarianceAuthority.cva(styles5__default.default["icon-container"], {
407
+ variants: {
408
+ size: {
409
+ xs: styles5__default.default["size--xs"],
410
+ sm: styles5__default.default["size--sm"],
411
+ md: styles5__default.default["size--md"],
412
+ lg: styles5__default.default["size--lg"]
413
+ },
414
+ background: {
415
+ square: styles5__default.default["background--square"],
416
+ circle: styles5__default.default["background--circle"],
417
+ transparent: styles5__default.default["background--transparent"]
418
+ }
419
+ },
420
+ defaultVariants: {
421
+ size: "md",
422
+ background: "transparent"
423
+ }
424
+ });
425
+ var iconElevationVariants = generateElevationVariants(styles5__default.default, "icon-container", ELEVATION.RAISED);
426
+ var Icon = React15.forwardRef(
427
+ ({ className, size, background, icon, elevation = ELEVATION.RAISED, ...props }, ref) => {
428
+ let renderedIcon;
429
+ if (typeof icon === "string") {
430
+ const LucideIcon = LucideIcons__namespace[icon];
431
+ if (!LucideIcon) {
432
+ throw new Error(`Icon "${icon}" not found in lucide-react`);
433
+ }
434
+ renderedIcon = /* @__PURE__ */ jsxRuntime.jsx(LucideIcon, { className: cn(styles5__default.default["icon"]) });
435
+ } else if (React15__namespace.isValidElement(icon)) {
436
+ const existingProps = icon.props;
437
+ renderedIcon = React15__namespace.cloneElement(
438
+ icon,
439
+ {
440
+ ...existingProps,
441
+ className: cn(styles5__default.default["icon"], existingProps.className)
442
+ }
443
+ );
444
+ } else {
445
+ throw new Error("Icon must be either a string (Lucide icon name) or a React element");
446
+ }
447
+ return /* @__PURE__ */ jsxRuntime.jsx(
448
+ "div",
449
+ {
450
+ ref,
451
+ className: cn(
452
+ iconVariants({ size, background }),
453
+ iconElevationVariants({ elevation }),
454
+ className
455
+ ),
456
+ ...props,
457
+ children: renderedIcon
458
+ }
459
+ );
460
+ }
461
+ );
462
+ Icon.displayName = "Icon";
463
+ var TooltipProvider = TooltipPrimitive__namespace.Provider;
464
+ var Tooltip = TooltipPrimitive__namespace.Root;
465
+ var TooltipTrigger = TooltipPrimitive__namespace.Trigger;
466
+ var TooltipPortal = ({ children }) => /* @__PURE__ */ jsxRuntime.jsx(TooltipPrimitive__namespace.Portal, { container: getThemeProviderRoot(), children });
467
+ var TooltipContent = React15__namespace.forwardRef(({ className, sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(TooltipPortal, { children: /* @__PURE__ */ jsxRuntime.jsxs(
468
+ TooltipPrimitive__namespace.Content,
469
+ {
470
+ ref,
471
+ sideOffset,
472
+ className: cn(styles6__default.default["tooltip-content"], className),
473
+ ...props,
474
+ children: [
475
+ props.children,
476
+ /* @__PURE__ */ jsxRuntime.jsx(TooltipPrimitive__namespace.Arrow, { width: 18, height: 6, className: styles6__default.default["tooltip-arrow"] })
477
+ ]
478
+ }
479
+ ) }));
480
+ TooltipContent.displayName = TooltipPrimitive__namespace.Content.displayName;
481
+ var XIcon = LucideIcons.X;
482
+ var badgeVariants = classVarianceAuthority.cva(styles7__default.default["badge"], {
483
+ variants: {
484
+ variant: {
485
+ primary: styles7__default.default["badge--primary"],
486
+ danger: styles7__default.default["badge--danger"],
487
+ neutral: styles7__default.default["badge--neutral"],
488
+ warning: styles7__default.default["badge--warning"],
489
+ success: styles7__default.default["badge--success"]
490
+ }
491
+ },
492
+ defaultVariants: {
493
+ variant: "primary"
494
+ }
495
+ });
496
+ var defaultVariantIcons = {
497
+ success: "Check",
498
+ warning: "OctagonAlert",
499
+ danger: "TriangleAlert"
500
+ };
501
+ function Badge({
502
+ className,
503
+ variant,
504
+ closeable,
505
+ handleClosable,
506
+ truncate = false,
507
+ truncateLength = 50,
508
+ icon,
509
+ display = "both",
510
+ ...props
511
+ }) {
512
+ const effectiveIcon = icon ?? (variant ? defaultVariantIcons[variant] : void 0);
513
+ const renderClosable = () => {
514
+ if (closeable && handleClosable)
515
+ return /* @__PURE__ */ jsxRuntime.jsx(
516
+ Button,
517
+ {
518
+ variant: "tertiary",
519
+ size: "sm",
520
+ onClick: handleClosable,
521
+ className: styles7__default.default["closable-btn"],
522
+ children: /* @__PURE__ */ jsxRuntime.jsx(XIcon, {})
523
+ }
524
+ );
525
+ return null;
526
+ };
527
+ const renderChildren = () => {
528
+ const children = props.children;
529
+ if (truncate && typeof children === "string" && children.length > truncateLength) {
530
+ const displayLabel = children.slice(0, truncateLength) + "...";
531
+ return /* @__PURE__ */ jsxRuntime.jsx(TooltipProvider, { children: /* @__PURE__ */ jsxRuntime.jsxs(Tooltip, { children: [
532
+ /* @__PURE__ */ jsxRuntime.jsx(TooltipTrigger, { children: displayLabel }),
533
+ /* @__PURE__ */ jsxRuntime.jsx(TooltipContent, { className: styles7__default.default["tooltip"], children })
534
+ ] }) });
535
+ }
536
+ return children;
537
+ };
538
+ const renderIcon = () => {
539
+ if (effectiveIcon && display !== "text-only") {
540
+ return /* @__PURE__ */ jsxRuntime.jsx(Icon, { icon: effectiveIcon, size: "xs", className: styles7__default.default["icon"] });
541
+ }
542
+ return null;
543
+ };
544
+ const effectiveDisplay = display === "icon-only" && !effectiveIcon ? "both" : display;
545
+ const shouldShowChildren = effectiveDisplay !== "icon-only";
546
+ const isIconOnly = effectiveDisplay === "icon-only" && effectiveIcon;
547
+ return /* @__PURE__ */ jsxRuntime.jsxs(
548
+ "div",
549
+ {
550
+ className: cn(
551
+ variant !== null && badgeVariants({ variant }),
552
+ variant === null && styles7__default.default["badge"],
553
+ isIconOnly && styles7__default.default["badge--icon-only"],
554
+ className
555
+ ),
556
+ ...props,
557
+ children: [
558
+ renderIcon(),
559
+ shouldShowChildren && renderChildren(),
560
+ renderClosable()
561
+ ]
562
+ }
563
+ );
564
+ }
565
+
566
+ // ../tokens/equality-tokens.json
567
+ var equality_tokens_default = {
568
+ Light: {
569
+ color: {
570
+ brand: {
571
+ green: {
572
+ $type: "color",
573
+ $value: {
574
+ colorSpace: "display-p3",
575
+ components: [0.4374, 0.6383, 0.4134],
576
+ hex: "#70A369"
577
+ }
578
+ },
579
+ primary: {
580
+ $type: "color",
581
+ $value: {
582
+ colorSpace: "display-p3",
583
+ components: [0.7319, 0.6108, 0.8873],
584
+ hex: "#BB9CE2"
585
+ }
586
+ },
587
+ red: {
588
+ $type: "color",
589
+ $value: {
590
+ colorSpace: "display-p3",
591
+ components: [0.8114, 0.4167, 0.3761],
592
+ hex: "#CF6A60"
593
+ }
594
+ },
595
+ secondary: {
596
+ $type: "color",
597
+ $value: {
598
+ colorSpace: "display-p3",
599
+ components: [0.3895, 0.4853, 0.8187],
600
+ hex: "#637CD1"
601
+ }
602
+ },
603
+ yellow: {
604
+ $type: "color",
605
+ $value: {
606
+ colorSpace: "display-p3",
607
+ components: [0.863, 0.6958, 0.4108],
608
+ hex: "#DCB169"
609
+ }
610
+ }
611
+ }}
612
+ }
613
+ };
614
+ var getBrandColors = () => {
615
+ const brandColors = equality_tokens_default.Light.color.brand;
616
+ const colors = {};
617
+ Object.entries(brandColors).forEach(([key, value]) => {
618
+ if (value.$value) {
619
+ const hex = value.$value.hex;
620
+ colors[key] = // Remove alpha channel on hex string (last 2 chars)
621
+ hex.slice(0, 7) || "#000000";
622
+ }
623
+ });
624
+ return colors;
625
+ };
626
+ var getThemeColour = (theme, brandColors) => {
627
+ return brandColors[theme] || "#000000";
628
+ };
629
+ var BgGradient = ({
630
+ theme,
631
+ placement = "full"
632
+ }) => {
633
+ const canvasRef = React15.useRef(null);
634
+ const brandColors = React15.useMemo(() => getBrandColors(), []);
635
+ React15.useEffect(() => {
636
+ const canvas = canvasRef.current;
637
+ if (!canvas) return;
638
+ const ctx = canvas.getContext("2d");
639
+ if (!ctx) return;
640
+ const updateSize = () => {
641
+ canvas.width = window.innerWidth;
642
+ canvas.height = window.innerHeight;
643
+ };
644
+ updateSize();
645
+ window.addEventListener("resize", updateSize);
646
+ const blobs = placement === "full" ? [
647
+ {
648
+ x: -0.15,
649
+ y: -0.15,
650
+ size: 0.45,
651
+ animation: { duration: 1e4, offset: 0 }
652
+ },
653
+ {
654
+ x: 1.25,
655
+ y: 0,
656
+ size: 0.45,
657
+ animation: { duration: 12e3, offset: 2e3 }
658
+ },
659
+ {
660
+ x: 0,
661
+ y: 1.5,
662
+ size: 0.4,
663
+ animation: { duration: 14e3, offset: 1e3 }
664
+ },
665
+ {
666
+ x: 0.9,
667
+ y: 1.25,
668
+ size: 0.6,
669
+ animation: { duration: 14e3, offset: 0 }
670
+ }
671
+ ] : [
672
+ {
673
+ x: -0.1,
674
+ y: -0.25,
675
+ size: 0.3,
676
+ animation: { duration: 1e4, offset: 0 }
677
+ },
678
+ {
679
+ x: 1,
680
+ y: -0.25,
681
+ size: 0.3,
682
+ animation: { duration: 12e3, offset: 2e3 }
683
+ }
684
+ ];
685
+ const themeColourBlobs = getThemeColour(theme, brandColors);
686
+ let animationFrame;
687
+ const animate = () => {
688
+ ctx.clearRect(0, 0, canvas.width, canvas.height);
689
+ const currentTime = Date.now();
690
+ blobs.forEach((blob) => {
691
+ const progress = (currentTime + blob.animation.offset) % blob.animation.duration / blob.animation.duration;
692
+ const scale = 1 + Math.sin(progress * Math.PI * 2) * 0.2;
693
+ const moveX = Math.sin(progress * Math.PI * 2) * 0.1;
694
+ const moveY = Math.cos(progress * Math.PI * 2) * 0.1;
695
+ const gradient = ctx.createRadialGradient(
696
+ (blob.x + moveX) * canvas.width,
697
+ (blob.y + moveY) * canvas.height,
698
+ 0,
699
+ (blob.x + moveX) * canvas.width,
700
+ (blob.y + moveY) * canvas.height,
701
+ blob.size * Math.max(canvas.width, 800) * scale
702
+ );
703
+ const opacity = 85;
704
+ gradient.addColorStop(0, `${themeColourBlobs}${opacity}` || "#00000040");
705
+ gradient.addColorStop(1, "transparent");
706
+ ctx.fillStyle = gradient;
707
+ ctx.fillRect(0, 0, canvas.width, canvas.height);
708
+ });
709
+ animationFrame = requestAnimationFrame(animate);
710
+ };
711
+ animate();
712
+ return () => {
713
+ window.removeEventListener("resize", updateSize);
714
+ cancelAnimationFrame(animationFrame);
715
+ };
716
+ }, [theme, placement, brandColors]);
717
+ return /* @__PURE__ */ jsxRuntime.jsx("canvas", { ref: canvasRef, className: styles8__default.default["bg-gradient"] });
718
+ };
719
+ var ResourceBadge = ({ type, display = "both" }) => {
720
+ const config = getTypeConfig(type);
721
+ return /* @__PURE__ */ jsxRuntime.jsx(Badge, { icon: config.icon, display, className: config.className, variant: null, children: config.label });
722
+ };
723
+ var getTypeConfig = (type) => {
724
+ switch (type) {
725
+ case "agent":
726
+ return {
727
+ icon: "Bot",
728
+ className: styles9__default.default["badge--agent"],
729
+ label: "Agent"
730
+ };
731
+ case "benchmark":
732
+ return {
733
+ icon: "LineChart",
734
+ className: styles9__default.default["badge--benchmark"],
735
+ label: "Benchmark"
736
+ };
737
+ case "code":
738
+ return {
739
+ icon: "Code",
740
+ className: styles9__default.default["badge--code"],
741
+ label: "Code"
742
+ };
743
+ case "compute":
744
+ return {
745
+ icon: "Cpu",
746
+ className: styles9__default.default["badge--compute"],
747
+ label: "Compute"
748
+ };
749
+ case "database":
750
+ return {
751
+ icon: "Database",
752
+ className: styles9__default.default["badge--database"],
753
+ label: "Database"
754
+ };
755
+ case "dataset":
756
+ return {
757
+ icon: "Table",
758
+ className: styles9__default.default["badge--dataset"],
759
+ label: "Dataset"
760
+ };
761
+ case "document":
762
+ return {
763
+ icon: "FileText",
764
+ className: styles9__default.default["badge--document"],
765
+ label: "Document"
766
+ };
767
+ case "guard":
768
+ return {
769
+ icon: "Shield",
770
+ className: styles9__default.default["badge--guard"],
771
+ label: "Guard"
772
+ };
773
+ case "guardrail":
774
+ return {
775
+ icon: "Fence",
776
+ className: styles9__default.default["badge--guardrail"],
777
+ label: "Guardrail"
778
+ };
779
+ case "inference":
780
+ return {
781
+ icon: "Zap",
782
+ className: styles9__default.default["badge--inference"],
783
+ label: "Inference"
784
+ };
785
+ case "model":
786
+ return {
787
+ icon: "Brain",
788
+ className: styles9__default.default["badge--model"],
789
+ label: "Model"
790
+ };
791
+ case "prompt":
792
+ return {
793
+ icon: "MessageSquareText",
794
+ className: styles9__default.default["badge--prompt"],
795
+ label: "Prompt"
796
+ };
797
+ case "system-prompt":
798
+ return {
799
+ icon: "MessageSquareCode",
800
+ className: styles9__default.default["badge--system-prompt"],
801
+ label: "System Prompt"
802
+ };
803
+ case "context":
804
+ return {
805
+ icon: "MessageSquareQuote",
806
+ className: styles9__default.default["badge--context"],
807
+ label: "Context"
808
+ };
809
+ case "reasoning":
810
+ return {
811
+ icon: "MessageSquareMore",
812
+ className: styles9__default.default["badge--reasoning"],
813
+ label: "Reasoning"
814
+ };
815
+ case "token":
816
+ return {
817
+ icon: "Coins",
818
+ className: styles9__default.default["badge--token"],
819
+ label: "Token"
820
+ };
821
+ case "tools":
822
+ return {
823
+ icon: "Wrench",
824
+ className: styles9__default.default["badge--tools"],
825
+ label: "Tools"
826
+ };
827
+ case "system-parameters":
828
+ return {
829
+ icon: "Settings2",
830
+ className: styles9__default.default["badge--system-parameters"],
831
+ label: "System Parameters"
832
+ };
833
+ case "unknown":
834
+ return {
835
+ icon: "Box",
836
+ className: styles9__default.default["badge--unknown"],
837
+ label: "Unknown"
838
+ };
839
+ }
840
+ };
841
+ var CardContentHeader = React15.forwardRef(
842
+ ({ className, icon, heading, onButtonClick, ...props }, ref) => {
843
+ const shouldRender = heading || onButtonClick;
844
+ const shouldWrap = !!onButtonClick;
845
+ if (!shouldRender) {
846
+ return null;
847
+ }
848
+ return /* @__PURE__ */ jsxRuntime.jsxs(
849
+ "div",
850
+ {
851
+ ref,
852
+ className: cn(
853
+ styles10__default.default["card-content-header"],
854
+ shouldWrap && styles10__default.default["card-content-header--wrap"],
855
+ className
856
+ ),
857
+ ...props,
858
+ children: [
859
+ /* @__PURE__ */ jsxRuntime.jsx(Icon, { icon, background: "circle", elevation: "overlay" }),
860
+ onButtonClick && /* @__PURE__ */ jsxRuntime.jsx(Button, { className: styles10__default.default.button, variant: "tertiary", size: "sm", onClick: onButtonClick, children: "See All" }),
861
+ heading && /* @__PURE__ */ jsxRuntime.jsx("h3", { className: cn(styles10__default.default.title, onButtonClick && styles10__default.default["title--button-click"]), children: heading })
862
+ ]
863
+ }
864
+ );
865
+ }
866
+ );
867
+ CardContentHeader.displayName = "CardContentHeader";
868
+ var cardElevationVariants = generateElevationVariants(styles11__default.default, "card", ELEVATION.RAISED);
869
+ var Card = React15__namespace.forwardRef(({ className, hoverGradientClassName, elevation = ELEVATION.RAISED, ...props }, ref) => {
870
+ const shouldHaveHoverStyle = props.onClick !== void 0;
871
+ return /* @__PURE__ */ jsxRuntime.jsxs(
872
+ "div",
873
+ {
874
+ ref,
875
+ className: cn(
876
+ styles11__default.default.card,
877
+ shouldHaveHoverStyle && styles11__default.default["card--hover"],
878
+ cardElevationVariants({ elevation }),
879
+ className
880
+ ),
881
+ ...props,
882
+ children: [
883
+ shouldHaveHoverStyle && /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn(styles11__default.default["card-hover-gradient"], hoverGradientClassName) }),
884
+ props.children
885
+ ]
886
+ }
887
+ );
888
+ });
889
+ Card.displayName = "Card";
890
+ var CardHeader = React15__namespace.forwardRef(
891
+ ({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx("div", { ref, className: cn(styles11__default.default["card-header"], className), ...props })
892
+ );
893
+ CardHeader.displayName = "CardHeader";
894
+ var CardTitle = React15__namespace.forwardRef(
895
+ ({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx("div", { ref, className: cn(styles11__default.default["card-title"], className), ...props })
896
+ );
897
+ CardTitle.displayName = "CardTitle";
898
+ var CardDescription = React15__namespace.forwardRef(
899
+ ({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx("div", { ref, className: cn(styles11__default.default["card-description"], className), ...props })
900
+ );
901
+ CardDescription.displayName = "CardDescription";
902
+ var CardContent = React15__namespace.forwardRef(
903
+ ({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx("div", { ref, className: cn(styles11__default.default["card-content"], className), ...props })
904
+ );
905
+ CardContent.displayName = "CardContent";
906
+ var CardFooter = React15__namespace.forwardRef(
907
+ ({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx("div", { ref, className: cn(styles11__default.default["card-footer"], className), ...props })
908
+ );
909
+ CardFooter.displayName = "CardFooter";
910
+ var CheckIcon = LucideIcons.Check;
911
+ var Checkbox = React15__namespace.forwardRef(
912
+ ({ className, icon: Icon3, size = "md", ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
913
+ CheckboxPrimitive__namespace.Root,
914
+ {
915
+ ref,
916
+ className: cn(styles12__default.default.checkbox, styles12__default.default[size], className),
917
+ ...props,
918
+ children: /* @__PURE__ */ jsxRuntime.jsx(CheckboxPrimitive__namespace.Indicator, { className: styles12__default.default.indicator, children: /* @__PURE__ */ jsxRuntime.jsx(CheckIcon, { className: styles12__default.default.check }) })
919
+ }
920
+ )
921
+ );
922
+ Checkbox.displayName = CheckboxPrimitive__namespace.Root.displayName;
923
+ var iconButtonVariants = classVarianceAuthority.cva(styles13__default.default["icon-btn"], {
924
+ variants: {
925
+ size: {
926
+ sm: styles13__default.default["size--sm"],
927
+ md: styles13__default.default["size--md"],
928
+ lg: styles13__default.default["size--lg"]
929
+ },
930
+ variant: {
931
+ primary: styles13__default.default["icon-btn--primary"],
932
+ danger: styles13__default.default["icon-btn--danger"]
933
+ }
934
+ },
935
+ defaultVariants: {
936
+ size: "sm",
937
+ variant: "primary"
938
+ }
939
+ });
940
+ var iconSizeMap = {
941
+ sm: 16,
942
+ md: 20,
943
+ lg: 32
944
+ };
945
+ function IconButton({
946
+ className,
947
+ size = "sm",
948
+ variant = "primary",
949
+ name,
950
+ label,
951
+ href,
952
+ target,
953
+ download,
954
+ disabled,
955
+ ...props
956
+ }) {
957
+ const Icon3 = LucideIcons__namespace[name];
958
+ const iconSize = iconSizeMap[size || "sm"];
959
+ const IconComponent = Icon3;
960
+ if (!Icon3) {
961
+ console.warn(`Icon "${name}" not found in lucide-react`);
962
+ return null;
963
+ }
964
+ const content = /* @__PURE__ */ jsxRuntime.jsx(IconComponent, { size: iconSize });
965
+ if (href && !disabled) {
966
+ return /* @__PURE__ */ jsxRuntime.jsx(
967
+ "a",
968
+ {
969
+ href,
970
+ target,
971
+ download,
972
+ "aria-label": label,
973
+ rel: target === "_blank" ? "noopener noreferrer" : void 0,
974
+ className: cn(iconButtonVariants({ size, variant }), className),
975
+ children: content
976
+ }
977
+ );
978
+ }
979
+ return /* @__PURE__ */ jsxRuntime.jsx(
980
+ "button",
981
+ {
982
+ type: "button",
983
+ "aria-label": label,
984
+ disabled,
985
+ className: cn(iconButtonVariants({ size, variant }), className),
986
+ ...props,
987
+ children: content
988
+ }
989
+ );
990
+ }
991
+ function CopyButton({
992
+ value,
993
+ label = "Copy to clipboard",
994
+ size = "sm",
995
+ className,
996
+ onClick
997
+ }) {
998
+ const [copied, setCopied] = React15__namespace.useState(false);
999
+ const handleCopy = async () => {
1000
+ try {
1001
+ if (navigator.clipboard && navigator.clipboard.writeText) {
1002
+ await navigator.clipboard.writeText(value);
1003
+ setCopied(true);
1004
+ setTimeout(() => setCopied(false), 2e3);
1005
+ return;
1006
+ }
1007
+ const textArea = document.createElement("textarea");
1008
+ textArea.value = value;
1009
+ textArea.style.position = "fixed";
1010
+ textArea.style.left = "-999999px";
1011
+ textArea.style.top = "-999999px";
1012
+ document.body.appendChild(textArea);
1013
+ textArea.focus();
1014
+ textArea.select();
1015
+ const successful = document.execCommand("copy");
1016
+ document.body.removeChild(textArea);
1017
+ if (successful) {
1018
+ setCopied(true);
1019
+ setTimeout(() => setCopied(false), 2e3);
1020
+ } else {
1021
+ throw new Error("Copy command failed");
1022
+ }
1023
+ } catch (err) {
1024
+ console.error("Failed to copy text:", err);
1025
+ }
1026
+ };
1027
+ const handleClick = () => {
1028
+ handleCopy();
1029
+ onClick?.();
1030
+ };
1031
+ return /* @__PURE__ */ jsxRuntime.jsx(
1032
+ IconButton,
1033
+ {
1034
+ name: copied ? "Check" : "Copy",
1035
+ label: copied ? "Copied!" : label,
1036
+ size,
1037
+ onClick: handleClick,
1038
+ className
1039
+ }
1040
+ );
1041
+ }
1042
+
1043
+ // src/theme/lib/utils.ts
1044
+ var STORAGE_KEY = "equality-theme";
1045
+ var UPDATE_EVENT = "equality-theme-change";
1046
+ var FALLBACK_THEME = "light";
1047
+ var getFallbackTheme = (options = {}) => {
1048
+ const { canFallbackToBrowserSettings = false } = options;
1049
+ if (typeof window === "undefined" || !canFallbackToBrowserSettings) {
1050
+ return FALLBACK_THEME;
1051
+ }
1052
+ return window.matchMedia("(prefers-color-scheme: dark)").matches ? "dark" : "light";
1053
+ };
1054
+ var getDefaultTheme = () => {
1055
+ const themeProviderRootElement = document.querySelector("[data-equality-theme]") || document.documentElement;
1056
+ if (themeProviderRootElement) {
1057
+ return themeProviderRootElement.getAttribute("data-equality-theme") || void 0;
1058
+ } else {
1059
+ return void 0;
1060
+ }
1061
+ };
1062
+ var getThemeFromLocalStorage = () => {
1063
+ const safeReadStorage = (key) => {
1064
+ try {
1065
+ return window.localStorage.getItem(key);
1066
+ } catch {
1067
+ return null;
1068
+ }
1069
+ };
1070
+ const themeLocalStorageValue = safeReadStorage(STORAGE_KEY);
1071
+ return themeLocalStorageValue;
1072
+ };
1073
+ var getThemeFromWindow = () => {
1074
+ return window.__equalityTheme;
1075
+ };
1076
+ var applyThemeToDom = (theme) => {
1077
+ const themeProviderRootElement = document.querySelector("[data-equality-theme]") || document.documentElement;
1078
+ if (themeProviderRootElement) {
1079
+ themeProviderRootElement.setAttribute("data-equality-theme", theme);
1080
+ }
1081
+ };
1082
+ var setThemeInLocalStorage = (theme) => {
1083
+ try {
1084
+ window.localStorage.setItem(STORAGE_KEY, theme);
1085
+ window.dispatchEvent(new CustomEvent(UPDATE_EVENT, { detail: theme }));
1086
+ } catch {
1087
+ console.error("Failed to set theme in localStorage");
1088
+ }
1089
+ };
1090
+ var setThemeOnWindow = (theme) => {
1091
+ window.__equalityTheme = theme;
1092
+ window.dispatchEvent(new CustomEvent(UPDATE_EVENT, { detail: theme }));
1093
+ };
1094
+ var setTheme = (theme) => {
1095
+ const isUsingLocalStorage = window.__equalityIsUsingLocalStorage;
1096
+ if (isUsingLocalStorage) {
1097
+ setThemeInLocalStorage(theme);
1098
+ } else {
1099
+ setThemeOnWindow(theme);
1100
+ }
1101
+ applyThemeToDom(theme);
1102
+ };
1103
+ var getCurrentThemeState = (options = {}) => {
1104
+ const { canFallbackToBrowserSettings = false } = options;
1105
+ if (typeof window === "undefined") {
1106
+ return void 0;
1107
+ }
1108
+ const isUsingLocalStorage = window.__equalityIsUsingLocalStorage;
1109
+ const storedTheme = isUsingLocalStorage ? getThemeFromLocalStorage() : getThemeFromWindow();
1110
+ const theme = storedTheme || getDefaultTheme() || getFallbackTheme({ canFallbackToBrowserSettings });
1111
+ if (!storedTheme) {
1112
+ setTheme(theme);
1113
+ }
1114
+ return theme;
1115
+ };
1116
+ var subscribeToThemeChange = (listener) => {
1117
+ if (typeof window === "undefined") {
1118
+ return () => {
1119
+ };
1120
+ }
1121
+ const isUsingLocalStorage = window.__equalityIsUsingLocalStorage;
1122
+ if (isUsingLocalStorage) {
1123
+ const storageListener = (event) => {
1124
+ if (event.key === STORAGE_KEY) listener();
1125
+ };
1126
+ const updateListener = () => listener();
1127
+ window.addEventListener("storage", storageListener);
1128
+ window.addEventListener(UPDATE_EVENT, updateListener);
1129
+ return () => {
1130
+ window.removeEventListener("storage", storageListener);
1131
+ window.removeEventListener(UPDATE_EVENT, updateListener);
1132
+ };
1133
+ } else {
1134
+ const windowListener = () => {
1135
+ listener();
1136
+ };
1137
+ window.addEventListener(UPDATE_EVENT, windowListener);
1138
+ return () => {
1139
+ window.removeEventListener(UPDATE_EVENT, windowListener);
1140
+ };
1141
+ }
1142
+ };
1143
+
1144
+ // src/theme/hooks/use-theme.ts
1145
+ var subscribe = (listener) => {
1146
+ return subscribeToThemeChange(listener);
1147
+ };
1148
+ var getSnapshot = () => {
1149
+ return getCurrentThemeState();
1150
+ };
1151
+ var getServerSnapshot = () => {
1152
+ return void 0;
1153
+ };
1154
+ var useTheme = () => {
1155
+ const theme = React15.useSyncExternalStore(subscribe, getSnapshot, getServerSnapshot);
1156
+ return [theme, setTheme];
1157
+ };
1158
+ var WRAP = true;
1159
+ var CodeBlock = ({
1160
+ className,
1161
+ title,
1162
+ code,
1163
+ language = "text",
1164
+ variant = "neutral",
1165
+ codeLabel,
1166
+ copy
1167
+ }) => {
1168
+ const [theme] = useTheme();
1169
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn(styles14__default.default["code-block"], styles14__default.default[variant], className), children: [
1170
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: styles14__default.default.header, children: [
1171
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: styles14__default.default["header-left"], children: [
1172
+ title && /* @__PURE__ */ jsxRuntime.jsx("span", { className: styles14__default.default.title, children: title }),
1173
+ /* @__PURE__ */ jsxRuntime.jsx(Badge, { variant: "neutral", className: styles14__default.default["badge"], children: language })
1174
+ ] }),
1175
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: styles14__default.default["header-right"], children: /* @__PURE__ */ jsxRuntime.jsx(CopyButton, { value: copy || code, size: "sm" }) })
1176
+ ] }),
1177
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn(styles14__default.default.content), children: /* @__PURE__ */ jsxRuntime.jsx(
1178
+ reactSyntaxHighlighter.Prism,
1179
+ {
1180
+ language,
1181
+ style: theme === "dark" ? darkStyle__default.default : lightStyle__default.default,
1182
+ wrapLines: WRAP,
1183
+ wrapLongLines: WRAP,
1184
+ className: styles14__default.default.pre,
1185
+ codeTagProps: { className: cn(styles14__default.default.code, { [styles14__default.default.wrap]: WRAP }) },
1186
+ children: code
1187
+ }
1188
+ ) }),
1189
+ codeLabel && /* @__PURE__ */ jsxRuntime.jsx("div", { className: styles14__default.default["code-label"], children: /* @__PURE__ */ jsxRuntime.jsx("p", { className: styles14__default.default["code-label-text"], children: codeLabel }) })
1190
+ ] });
1191
+ };
1192
+ var Dialog = DialogPrimitive__namespace.Root;
1193
+ var DialogTrigger = DialogPrimitive__namespace.Trigger;
1194
+ var DialogPortal = ({ children }) => /* @__PURE__ */ jsxRuntime.jsx(DialogPrimitive__namespace.Portal, { container: getThemeProviderRoot(), children });
1195
+ var DialogClose = DialogPrimitive__namespace.Close;
1196
+ var DialogOverlay = React15__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
1197
+ DialogPrimitive__namespace.Overlay,
1198
+ {
1199
+ ref,
1200
+ className: cn(styles15__default.default["dialog-overlay"], className),
1201
+ ...props
1202
+ }
1203
+ ));
1204
+ DialogOverlay.displayName = DialogPrimitive__namespace.Overlay.displayName;
1205
+ var DialogContainer = React15__namespace.forwardRef(({ className, children, size = "md", ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(DialogPortal, { children: [
1206
+ /* @__PURE__ */ jsxRuntime.jsx(DialogOverlay, {}),
1207
+ /* @__PURE__ */ jsxRuntime.jsx(
1208
+ DialogPrimitive__namespace.Content,
1209
+ {
1210
+ ref,
1211
+ className: cn(styles15__default.default["dialog-content"], styles15__default.default[`dialog-content--size-${size}`], className),
1212
+ onCloseAutoFocus: (event) => {
1213
+ event.preventDefault();
1214
+ document.body.style.pointerEvents = "";
1215
+ },
1216
+ ...props,
1217
+ children
1218
+ }
1219
+ )
1220
+ ] }));
1221
+ DialogContainer.displayName = DialogPrimitive__namespace.Content.displayName;
1222
+ var DialogHeader = ({ className, children, ...props }) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn(styles15__default.default["dialog-header"], className), ...props, children: [
1223
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: styles15__default.default["dialog-header-content"], children }),
1224
+ /* @__PURE__ */ jsxRuntime.jsx(DialogPrimitive__namespace.Close, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsx(IconButton, { name: "X", label: "Close", size: "sm" }) })
1225
+ ] });
1226
+ DialogHeader.displayName = "DialogHeader";
1227
+ var DialogFooter = ({ className, ...props }) => /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn(styles15__default.default["dialog-footer"], className), ...props });
1228
+ DialogFooter.displayName = "DialogFooter";
1229
+ var DialogTitle = React15__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(DialogPrimitive__namespace.Title, { ref, className: cn(styles15__default.default["dialog-title"], className), ...props }));
1230
+ DialogTitle.displayName = DialogPrimitive__namespace.Title.displayName;
1231
+ var DialogDescription = React15__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
1232
+ DialogPrimitive__namespace.Description,
1233
+ {
1234
+ ref,
1235
+ className: cn(styles15__default.default["dialog-description"], className),
1236
+ ...props
1237
+ }
1238
+ ));
1239
+ DialogDescription.displayName = DialogPrimitive__namespace.Description.displayName;
1240
+ var DialogContent = ({ className, ...props }) => /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn(styles15__default.default["dialog-body"], "styled-vertical-scrollbar", className), ...props });
1241
+ DialogContent.displayName = "DialogContent";
1242
+ function Command({ className, ...props }) {
1243
+ return /* @__PURE__ */ jsxRuntime.jsx(cmdk.Command, { "data-slot": "command", className: cn(styles16__default.default.command, className), ...props });
1244
+ }
1245
+ function CommandDialog({
1246
+ title = "Command Palette",
1247
+ description = "Search for a command to run...",
1248
+ children,
1249
+ ...props
1250
+ }) {
1251
+ return /* @__PURE__ */ jsxRuntime.jsxs(Dialog, { ...props, children: [
1252
+ /* @__PURE__ */ jsxRuntime.jsxs(DialogHeader, { className: styles16__default.default["command-dialog-header"], children: [
1253
+ /* @__PURE__ */ jsxRuntime.jsx(DialogTitle, { children: title }),
1254
+ /* @__PURE__ */ jsxRuntime.jsx(DialogDescription, { children: description })
1255
+ ] }),
1256
+ /* @__PURE__ */ jsxRuntime.jsx(DialogContent, { className: styles16__default.default["command-dialog-content"], children: /* @__PURE__ */ jsxRuntime.jsx(Command, { className: styles16__default.default["command-dialog-content-inner"], children }) })
1257
+ ] });
1258
+ }
1259
+ function CommandInput({
1260
+ className,
1261
+ ...props
1262
+ }) {
1263
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { "data-slot": "command-input-wrapper", className: styles16__default.default["command-input"], children: [
1264
+ /* @__PURE__ */ jsxRuntime.jsx(LucideIcons.SearchIcon, { className: styles16__default.default["command-input-icon"] }),
1265
+ /* @__PURE__ */ jsxRuntime.jsx(
1266
+ cmdk.Command.Input,
1267
+ {
1268
+ "data-slot": "command-input",
1269
+ className: cn(styles16__default.default["command-input-input"], className),
1270
+ ...props
1271
+ }
1272
+ )
1273
+ ] });
1274
+ }
1275
+ function CommandList({ className, ...props }) {
1276
+ return /* @__PURE__ */ jsxRuntime.jsx(
1277
+ cmdk.Command.List,
1278
+ {
1279
+ "data-slot": "command-list",
1280
+ className: cn(styles16__default.default["command-list"], className),
1281
+ ...props
1282
+ }
1283
+ );
1284
+ }
1285
+ function CommandEmpty({ ...props }) {
1286
+ return /* @__PURE__ */ jsxRuntime.jsx(
1287
+ cmdk.Command.Empty,
1288
+ {
1289
+ "data-slot": "command-empty",
1290
+ className: styles16__default.default["command-empty"],
1291
+ ...props
1292
+ }
1293
+ );
1294
+ }
1295
+ function CommandGroup({
1296
+ className,
1297
+ ...props
1298
+ }) {
1299
+ return /* @__PURE__ */ jsxRuntime.jsx(
1300
+ cmdk.Command.Group,
1301
+ {
1302
+ "data-slot": "command-group",
1303
+ className: cn(styles16__default.default["command-group"], className),
1304
+ ...props
1305
+ }
1306
+ );
1307
+ }
1308
+ function CommandSeparator({
1309
+ className,
1310
+ ...props
1311
+ }) {
1312
+ return /* @__PURE__ */ jsxRuntime.jsx(
1313
+ cmdk.Command.Separator,
1314
+ {
1315
+ "data-slot": "command-separator",
1316
+ className: cn(styles16__default.default["command-separator"], className),
1317
+ ...props
1318
+ }
1319
+ );
1320
+ }
1321
+ function CommandItem({ className, ...props }) {
1322
+ return /* @__PURE__ */ jsxRuntime.jsx(
1323
+ cmdk.Command.Item,
1324
+ {
1325
+ "data-slot": "command-item",
1326
+ className: cn(styles16__default.default["command-item"], className),
1327
+ ...props
1328
+ }
1329
+ );
1330
+ }
1331
+ function CommandShortcut({ className, ...props }) {
1332
+ return /* @__PURE__ */ jsxRuntime.jsx(
1333
+ "span",
1334
+ {
1335
+ "data-slot": "command-shortcut",
1336
+ className: cn(styles16__default.default["command-shortcut"], className),
1337
+ ...props
1338
+ }
1339
+ );
1340
+ }
1341
+ var Popover = PopoverPrimitive__namespace.Root;
1342
+ var PopoverTrigger = PopoverPrimitive__namespace.Trigger;
1343
+ var PopoverPortal = ({ children }) => /* @__PURE__ */ jsxRuntime.jsx(PopoverPrimitive__namespace.Portal, { container: getThemeProviderRoot(), children });
1344
+ var PopoverContent = React15__namespace.forwardRef(({ className, align = "center", sideOffset = 4, arrow = false, children, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(PopoverPortal, { children: /* @__PURE__ */ jsxRuntime.jsxs(
1345
+ PopoverPrimitive__namespace.Content,
1346
+ {
1347
+ ref,
1348
+ align,
1349
+ sideOffset,
1350
+ className: cn(styles17__default.default["popover-content"], className),
1351
+ ...props,
1352
+ children: [
1353
+ arrow && /* @__PURE__ */ jsxRuntime.jsx(PopoverPrimitive__namespace.Arrow, { className: styles17__default.default["popover-arrow"] }),
1354
+ children
1355
+ ]
1356
+ }
1357
+ ) }));
1358
+ PopoverContent.displayName = PopoverPrimitive__namespace.Content.displayName;
1359
+ var CalendarDaysIcon = LucideIcons.CalendarDays;
1360
+ var ChevronLeftIcon = LucideIcons.ChevronLeft;
1361
+ var ChevronRightIcon = LucideIcons.ChevronRight;
1362
+ var DateRangePicker = ({ dateRange, onSelect, className }) => {
1363
+ const [selecting, setSelecting] = React15.useState(null);
1364
+ const [displayedMonth, setDisplayedMonth] = React15.useState((/* @__PURE__ */ new Date()).getMonth());
1365
+ const [displayedYear, setDisplayedYear] = React15.useState((/* @__PURE__ */ new Date()).getFullYear());
1366
+ const daysInMonth = new Date(displayedYear, displayedMonth + 1, 0).getDate();
1367
+ const firstDayOfMonth = new Date(displayedYear, displayedMonth, 1).getDay();
1368
+ const days = Array.from(
1369
+ { length: daysInMonth },
1370
+ (_, i) => new Date(displayedYear, displayedMonth, i + 1)
1371
+ );
1372
+ const paddingDays = Array.from({ length: firstDayOfMonth }, (_, _i) => null);
1373
+ const hasSelection = dateRange.from || dateRange.to;
1374
+ const MONTHS = [
1375
+ "January",
1376
+ "February",
1377
+ "March",
1378
+ "April",
1379
+ "May",
1380
+ "June",
1381
+ "July",
1382
+ "August",
1383
+ "September",
1384
+ "October",
1385
+ "November",
1386
+ "December"
1387
+ ];
1388
+ const DAY_HEADERS = ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"];
1389
+ const formatDate = (date) => {
1390
+ return date.toLocaleDateString("en-US", {
1391
+ year: "numeric",
1392
+ month: "2-digit",
1393
+ day: "2-digit"
1394
+ });
1395
+ };
1396
+ const formatRange = (range) => {
1397
+ if (!range.from && !range.to) return "Select Date Range";
1398
+ if (!range.to) return `From ${formatDate(range.from)}`;
1399
+ if (!range.from) return `Until ${formatDate(range.to)}`;
1400
+ return `${formatDate(range.from)} - ${formatDate(range.to)}`;
1401
+ };
1402
+ const isDateSelected = (day, dateRange2) => {
1403
+ const matchesFrom = dateRange2.from && day.getDate() === dateRange2.from.getDate() && day.getMonth() === dateRange2.from.getMonth() && day.getFullYear() === dateRange2.from.getFullYear();
1404
+ const matchesTo = dateRange2.to && day.getDate() === dateRange2.to.getDate() && day.getMonth() === dateRange2.to.getMonth() && day.getFullYear() === dateRange2.to.getFullYear();
1405
+ return !!matchesFrom || !!matchesTo;
1406
+ };
1407
+ const checkIsToday = (day) => {
1408
+ const today = /* @__PURE__ */ new Date();
1409
+ return day.getDate() === today.getDate() && day.getMonth() === today.getMonth() && day.getFullYear() === today.getFullYear();
1410
+ };
1411
+ const goToPreviousMonth = () => {
1412
+ if (displayedMonth === 0) {
1413
+ setDisplayedMonth(11);
1414
+ setDisplayedYear(displayedYear - 1);
1415
+ } else {
1416
+ setDisplayedMonth(displayedMonth - 1);
1417
+ }
1418
+ };
1419
+ const goToNextMonth = () => {
1420
+ if (displayedMonth === 11) {
1421
+ setDisplayedMonth(0);
1422
+ setDisplayedYear(displayedYear + 1);
1423
+ } else {
1424
+ setDisplayedMonth(displayedMonth + 1);
1425
+ }
1426
+ };
1427
+ const isInRange = (date) => {
1428
+ if (!dateRange.from || !dateRange.to) return false;
1429
+ return date >= dateRange.from && date <= dateRange.to;
1430
+ };
1431
+ const handleDateSelect = (selectedDate) => {
1432
+ const startOfDay = (date) => {
1433
+ const d = new Date(date);
1434
+ d.setHours(0, 0, 0, 0);
1435
+ return d;
1436
+ };
1437
+ const endOfDay = (date) => {
1438
+ const d = new Date(date);
1439
+ d.setHours(23, 59, 59, 999);
1440
+ return d;
1441
+ };
1442
+ if (!selecting || !dateRange) {
1443
+ onSelect({ from: startOfDay(selectedDate), to: void 0 });
1444
+ setSelecting("to");
1445
+ return;
1446
+ }
1447
+ if (selecting === "to") {
1448
+ if (dateRange.from && selectedDate < dateRange.from) {
1449
+ onSelect({ from: startOfDay(selectedDate), to: endOfDay(dateRange.from) });
1450
+ } else {
1451
+ onSelect({ from: startOfDay(dateRange.from), to: endOfDay(selectedDate) });
1452
+ }
1453
+ setSelecting(null);
1454
+ }
1455
+ };
1456
+ const clearSelection = () => {
1457
+ onSelect({ from: void 0, to: void 0 });
1458
+ setSelecting(null);
1459
+ };
1460
+ const handleClearClick = (e) => {
1461
+ e.stopPropagation();
1462
+ clearSelection();
1463
+ };
1464
+ return /* @__PURE__ */ jsxRuntime.jsxs(Popover, { children: [
1465
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: styles18__default.default["popover-header"], children: /* @__PURE__ */ jsxRuntime.jsx(PopoverTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsx(
1466
+ Button,
1467
+ {
1468
+ variant: "tertiary",
1469
+ prefix: /* @__PURE__ */ jsxRuntime.jsx(CalendarDaysIcon, {}),
1470
+ suffix: hasSelection && /* @__PURE__ */ jsxRuntime.jsx(
1471
+ IconButton,
1472
+ {
1473
+ name: "X",
1474
+ size: "sm",
1475
+ onClick: handleClearClick,
1476
+ label: "Clear dates"
1477
+ }
1478
+ ),
1479
+ className: cn(dateRange.from && dateRange.to && styles18__default.default, className),
1480
+ children: /* @__PURE__ */ jsxRuntime.jsx("span", { className: styles18__default.default["date-range"], children: formatRange(dateRange) })
1481
+ }
1482
+ ) }) }),
1483
+ /* @__PURE__ */ jsxRuntime.jsxs(PopoverContent, { className: styles18__default.default["popover-content"], align: "end", children: [
1484
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: styles18__default.default["month-navigation"], children: [
1485
+ /* @__PURE__ */ jsxRuntime.jsx(
1486
+ Button,
1487
+ {
1488
+ variant: "tertiary",
1489
+ size: "sm",
1490
+ className: styles18__default.default["month-navigation-btn"],
1491
+ onClick: goToPreviousMonth,
1492
+ children: /* @__PURE__ */ jsxRuntime.jsx(ChevronLeftIcon, {})
1493
+ }
1494
+ ),
1495
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: styles18__default.default["month-date-display"], children: [
1496
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: styles18__default.default["month-date-display-title"], children: `${MONTHS[displayedMonth]} ${displayedYear}` }),
1497
+ selecting && /* @__PURE__ */ jsxRuntime.jsx("div", { className: styles18__default.default["month-date-display-subtitle"], children: selecting === "from" ? "Select start date" : "Select end date" })
1498
+ ] }),
1499
+ /* @__PURE__ */ jsxRuntime.jsx(
1500
+ Button,
1501
+ {
1502
+ variant: "tertiary",
1503
+ size: "sm",
1504
+ className: styles18__default.default["month-navigation-btn"],
1505
+ onClick: goToNextMonth,
1506
+ children: /* @__PURE__ */ jsxRuntime.jsx(ChevronRightIcon, {})
1507
+ }
1508
+ )
1509
+ ] }),
1510
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: styles18__default.default["day-headers"], children: DAY_HEADERS.map((day) => /* @__PURE__ */ jsxRuntime.jsx("div", { className: styles18__default.default["day-headers-inner"], children: day }, day)) }),
1511
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: styles18__default.default["calendar-grid"], children: [
1512
+ paddingDays.map((_, index) => /* @__PURE__ */ jsxRuntime.jsx("div", {}, `padding-${index}`)),
1513
+ days.map((day, index) => {
1514
+ const isSelected = isDateSelected(day, dateRange);
1515
+ const isToday = checkIsToday(day);
1516
+ const inRange = isInRange(day);
1517
+ return /* @__PURE__ */ jsxRuntime.jsx(
1518
+ Button,
1519
+ {
1520
+ variant: "tertiary",
1521
+ className: cn(
1522
+ styles18__default.default["calendar-day-btn"],
1523
+ isSelected && styles18__default.default["calendar-day-btn--selected"],
1524
+ isToday && !isSelected && styles18__default.default["calendar-day-btn--today"],
1525
+ inRange && !isSelected && styles18__default.default["calendar-day-btn--in-range"]
1526
+ ),
1527
+ onClick: () => handleDateSelect(day),
1528
+ children: day.getDate()
1529
+ },
1530
+ index
1531
+ );
1532
+ })
1533
+ ] })
1534
+ ] })
1535
+ ] });
1536
+ };
1537
+ var displayFieldVariants = classVarianceAuthority.cva("", {
1538
+ variants: {
1539
+ variant: {
1540
+ neutral: styles19__default.default["display-field--neutral"],
1541
+ neutralCheck: styles19__default.default["display-field--neutral"],
1542
+ success: styles19__default.default["display-field--success"],
1543
+ failure: styles19__default.default["display-field--failure"]
1544
+ }
1545
+ },
1546
+ defaultVariants: {
1547
+ variant: "neutral"
1548
+ }
1549
+ });
1550
+ var displayFieldElevationVariants = generateElevationVariants(
1551
+ styles19__default.default,
1552
+ "display-field",
1553
+ ELEVATION.BASE
1554
+ );
1555
+ function DisplayField({
1556
+ className,
1557
+ variant,
1558
+ elevation = ELEVATION.BASE,
1559
+ children,
1560
+ prefix,
1561
+ truncate = false,
1562
+ copy = true,
1563
+ actions,
1564
+ slot,
1565
+ ...props
1566
+ }) {
1567
+ const middleTruncationContainerRef = React15.useRef(null);
1568
+ const [middleTruncationWidth, setMiddleTruncationWidth] = React15.useState(void 0);
1569
+ const getIcon = () => {
1570
+ if (variant === "success" || variant === "neutralCheck") {
1571
+ return /* @__PURE__ */ jsxRuntime.jsx(LucideIcons.Check, { className: styles19__default.default["icon-width"] });
1572
+ }
1573
+ if (variant === "failure") {
1574
+ return /* @__PURE__ */ jsxRuntime.jsx(LucideIcons.TriangleAlert, { className: styles19__default.default["icon-width"] });
1575
+ }
1576
+ return null;
1577
+ };
1578
+ const renderContent = () => {
1579
+ if (truncate === "middle" && typeof children === "string") {
1580
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { ref: middleTruncationContainerRef, children: /* @__PURE__ */ jsxRuntime.jsx(Truncate__default.default, { text: children, offset: 8, ellipsis: "\u2026", width: middleTruncationWidth }) });
1581
+ }
1582
+ return children;
1583
+ };
1584
+ const getTruncateClass = () => {
1585
+ if (truncate === "middle") return styles19__default.default["overflow-hidden"];
1586
+ if (truncate === true) return styles19__default.default["truncate"];
1587
+ return styles19__default.default["overflow-x-scroll"];
1588
+ };
1589
+ const getValueForCopy = () => {
1590
+ if (typeof children === "string") {
1591
+ return children;
1592
+ }
1593
+ return "";
1594
+ };
1595
+ const showActions = copy || actions;
1596
+ React15.useEffect(() => {
1597
+ const calcMiddleTruncationWidth = () => {
1598
+ const targetW = middleTruncationContainerRef.current?.getBoundingClientRect().width;
1599
+ setMiddleTruncationWidth(targetW);
1600
+ };
1601
+ const observer = new ResizeObserver((entries) => {
1602
+ if (entries.length > 0) {
1603
+ calcMiddleTruncationWidth();
1604
+ }
1605
+ });
1606
+ if (middleTruncationContainerRef.current) {
1607
+ observer.observe(middleTruncationContainerRef.current);
1608
+ }
1609
+ return () => {
1610
+ observer.disconnect();
1611
+ };
1612
+ }, []);
1613
+ return /* @__PURE__ */ jsxRuntime.jsxs(
1614
+ "div",
1615
+ {
1616
+ className: cn(
1617
+ styles19__default.default["display-field"],
1618
+ displayFieldElevationVariants({ elevation }),
1619
+ className
1620
+ ),
1621
+ ...props,
1622
+ children: [
1623
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: styles19__default.default["display-field-inner"], children: [
1624
+ prefix && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn(styles19__default.default["prefix"], displayFieldVariants({ variant })), children: [
1625
+ getIcon(),
1626
+ prefix
1627
+ ] }),
1628
+ /* @__PURE__ */ jsxRuntime.jsx(
1629
+ "span",
1630
+ {
1631
+ className: cn(styles19__default.default["content"], getTruncateClass()),
1632
+ style: { scrollbarWidth: "thin" },
1633
+ children: renderContent()
1634
+ }
1635
+ ),
1636
+ showActions && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: styles19__default.default["actions"], children: [
1637
+ actions,
1638
+ copy && /* @__PURE__ */ jsxRuntime.jsx(CopyButton, { value: getValueForCopy(), size: "sm" })
1639
+ ] })
1640
+ ] }),
1641
+ slot && /* @__PURE__ */ jsxRuntime.jsx("div", { className: styles19__default.default["slot"], children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: styles19__default.default["slot-inner"], children: slot }) })
1642
+ ]
1643
+ }
1644
+ );
1645
+ }
1646
+ var Drawer = ({
1647
+ shouldScaleBackground = true,
1648
+ ...props
1649
+ }) => /* @__PURE__ */ jsxRuntime.jsx(vaul.Drawer.Root, { shouldScaleBackground, ...props });
1650
+ Drawer.displayName = "Drawer";
1651
+ var DrawerTrigger = vaul.Drawer.Trigger;
1652
+ var DrawerPortal = ({ children }) => /* @__PURE__ */ jsxRuntime.jsx(vaul.Drawer.Portal, { container: getThemeProviderRoot(), children });
1653
+ var DrawerClose = vaul.Drawer.Close;
1654
+ var DrawerOverlay = React15__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
1655
+ vaul.Drawer.Overlay,
1656
+ {
1657
+ ref,
1658
+ className: cn(styles20__default.default["drawer-overlay"], className),
1659
+ ...props
1660
+ }
1661
+ ));
1662
+ DrawerOverlay.displayName = vaul.Drawer.Overlay.displayName;
1663
+ var DrawerContent = React15__namespace.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(DrawerPortal, { children: [
1664
+ /* @__PURE__ */ jsxRuntime.jsx(DrawerOverlay, {}),
1665
+ /* @__PURE__ */ jsxRuntime.jsxs(
1666
+ vaul.Drawer.Content,
1667
+ {
1668
+ ref,
1669
+ className: cn(styles20__default.default["drawer-content"], className),
1670
+ ...props,
1671
+ children: [
1672
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: styles20__default.default["drawer-content-divider"] }),
1673
+ children
1674
+ ]
1675
+ }
1676
+ )
1677
+ ] }));
1678
+ DrawerContent.displayName = "DrawerContent";
1679
+ var DrawerHeader = ({ className, ...props }) => /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn(styles20__default.default["drawer-header"], className), ...props });
1680
+ DrawerHeader.displayName = "DrawerHeader";
1681
+ var DrawerHeaderActions = React15__namespace.forwardRef(({ className, rowSpan, style, ...props }, ref) => {
1682
+ return /* @__PURE__ */ jsxRuntime.jsx(
1683
+ "div",
1684
+ {
1685
+ ref,
1686
+ className: cn(styles20__default.default["drawer-header-actions"], className),
1687
+ style: { "--row-span": rowSpan },
1688
+ ...props
1689
+ }
1690
+ );
1691
+ });
1692
+ DrawerHeaderActions.displayName = "DrawerHeaderActions";
1693
+ var DrawerFooter = ({ className, ...props }) => /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn(styles20__default.default["drawer-footer"], className), ...props });
1694
+ DrawerFooter.displayName = "DrawerFooter";
1695
+ var DrawerTitle = React15__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(vaul.Drawer.Title, { ref, className: cn(styles20__default.default["drawer-title"], className), ...props }));
1696
+ DrawerTitle.displayName = vaul.Drawer.Title.displayName;
1697
+ var DrawerDescription = React15__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
1698
+ vaul.Drawer.Description,
1699
+ {
1700
+ ref,
1701
+ className: cn(styles20__default.default["drawer-description"], className),
1702
+ ...props
1703
+ }
1704
+ ));
1705
+ DrawerDescription.displayName = vaul.Drawer.Description.displayName;
1706
+ var DrawerInnerContent = ({ className, ...props }) => /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn(styles20__default.default["drawer-inner-content"], className), ...props });
1707
+ DrawerInnerContent.displayName = "DrawerInnerContent";
1708
+ var CheckIcon2 = LucideIcons.Check;
1709
+ var ChevronRightIcon2 = LucideIcons.ChevronRight;
1710
+ var CircleIcon = LucideIcons.Circle;
1711
+ var DropdownMenu = DropdownMenuPrimitive__namespace.Root;
1712
+ var DropdownMenuTrigger = DropdownMenuPrimitive__namespace.Trigger;
1713
+ var DropdownMenuGroup = DropdownMenuPrimitive__namespace.Group;
1714
+ var DropdownMenuPortal = ({ children }) => /* @__PURE__ */ jsxRuntime.jsx(DropdownMenuPrimitive__namespace.Portal, { container: getThemeProviderRoot(), children });
1715
+ var DropdownMenuSub = DropdownMenuPrimitive__namespace.Sub;
1716
+ var DropdownMenuRadioGroup = DropdownMenuPrimitive__namespace.RadioGroup;
1717
+ var DropdownMenuSubTrigger = React15__namespace.forwardRef(({ className, inset, children, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(
1718
+ DropdownMenuPrimitive__namespace.SubTrigger,
1719
+ {
1720
+ ref,
1721
+ className: cn(
1722
+ styles21__default.default["dropdown-menu-trigger"],
1723
+ inset && styles21__default.default["dropdown-menu-inset"],
1724
+ className
1725
+ ),
1726
+ ...props,
1727
+ children: [
1728
+ children,
1729
+ /* @__PURE__ */ jsxRuntime.jsx(ChevronRightIcon2, { className: "ml-auto" })
1730
+ ]
1731
+ }
1732
+ ));
1733
+ DropdownMenuSubTrigger.displayName = DropdownMenuPrimitive__namespace.SubTrigger.displayName;
1734
+ var DropdownMenuSubContent = React15__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
1735
+ DropdownMenuPrimitive__namespace.SubContent,
1736
+ {
1737
+ ref,
1738
+ className: cn(styles21__default.default["dropdown-menu-sub-content"], className),
1739
+ ...props
1740
+ }
1741
+ ));
1742
+ DropdownMenuSubContent.displayName = DropdownMenuPrimitive__namespace.SubContent.displayName;
1743
+ var DropdownMenuContent = React15__namespace.forwardRef(({ className, sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(DropdownMenuPortal, { children: /* @__PURE__ */ jsxRuntime.jsx(
1744
+ DropdownMenuPrimitive__namespace.Content,
1745
+ {
1746
+ ref,
1747
+ sideOffset,
1748
+ className: cn(styles21__default.default["dropdown-menu-content"], className),
1749
+ ...props
1750
+ }
1751
+ ) }));
1752
+ DropdownMenuContent.displayName = DropdownMenuPrimitive__namespace.Content.displayName;
1753
+ var DropdownMenuItem = React15__namespace.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
1754
+ DropdownMenuPrimitive__namespace.Item,
1755
+ {
1756
+ ref,
1757
+ className: cn(styles21__default.default["dropdown-menu-item"], inset && styles21__default.default["dropdown-menu-inset"], className),
1758
+ ...props
1759
+ }
1760
+ ));
1761
+ DropdownMenuItem.displayName = DropdownMenuPrimitive__namespace.Item.displayName;
1762
+ var DropdownMenuCheckboxItem = React15__namespace.forwardRef(({ className, children, checked, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(
1763
+ DropdownMenuPrimitive__namespace.CheckboxItem,
1764
+ {
1765
+ ref,
1766
+ className: cn(styles21__default.default["dropdown-menu-checkbox-item"], className),
1767
+ checked,
1768
+ ...props,
1769
+ children: [
1770
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: styles21__default.default["dropdown-menu-item-indicator-checkbox"], children: /* @__PURE__ */ jsxRuntime.jsx(DropdownMenuPrimitive__namespace.ItemIndicator, { children: /* @__PURE__ */ jsxRuntime.jsx(CheckIcon2, { className: styles21__default.default["icon-size"] }) }) }),
1771
+ children
1772
+ ]
1773
+ }
1774
+ ));
1775
+ DropdownMenuCheckboxItem.displayName = DropdownMenuPrimitive__namespace.CheckboxItem.displayName;
1776
+ var DropdownMenuRadioItem = React15__namespace.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(
1777
+ DropdownMenuPrimitive__namespace.RadioItem,
1778
+ {
1779
+ ref,
1780
+ className: cn(styles21__default.default["dropdown-menu-radio-item"], className),
1781
+ ...props,
1782
+ children: [
1783
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: styles21__default.default["dropdown-menu-item-indicator-radio"], children: /* @__PURE__ */ jsxRuntime.jsx(DropdownMenuPrimitive__namespace.ItemIndicator, { children: /* @__PURE__ */ jsxRuntime.jsx(CircleIcon, { className: styles21__default.default["radio-icon"] }) }) }),
1784
+ children
1785
+ ]
1786
+ }
1787
+ ));
1788
+ DropdownMenuRadioItem.displayName = DropdownMenuPrimitive__namespace.RadioItem.displayName;
1789
+ var DropdownMenuLabel = React15__namespace.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
1790
+ DropdownMenuPrimitive__namespace.Label,
1791
+ {
1792
+ ref,
1793
+ className: cn(styles21__default.default["dropdown-menu-label"], inset && styles21__default.default["dropdown-menu-inset"], className),
1794
+ ...props
1795
+ }
1796
+ ));
1797
+ DropdownMenuLabel.displayName = DropdownMenuPrimitive__namespace.Label.displayName;
1798
+ var DropdownMenuSeparator = React15__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
1799
+ DropdownMenuPrimitive__namespace.Separator,
1800
+ {
1801
+ ref,
1802
+ className: cn(styles21__default.default["dropdown-menu-separator"], className),
1803
+ ...props
1804
+ }
1805
+ ));
1806
+ DropdownMenuSeparator.displayName = DropdownMenuPrimitive__namespace.Separator.displayName;
1807
+ var DropdownMenuShortcut = ({ className, ...props }) => {
1808
+ return /* @__PURE__ */ jsxRuntime.jsx("span", { className: cn(styles21__default.default["dropdown-menu-shortcut"], className), ...props });
1809
+ };
1810
+ DropdownMenuShortcut.displayName = "DropdownMenuShortcut";
1811
+ var EmptyTableState = ({
1812
+ icon,
1813
+ title,
1814
+ description,
1815
+ showClearButton = false,
1816
+ onClear,
1817
+ className
1818
+ }) => {
1819
+ const showButton = showClearButton && onClear;
1820
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn(styles22__default.default["empty-table-state"], className), children: [
1821
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: styles22__default.default["icon-and-title-container"], children: [
1822
+ /* @__PURE__ */ jsxRuntime.jsx(Icon, { icon, size: "md", background: "circle" }),
1823
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: styles22__default.default["title"], children: title })
1824
+ ] }),
1825
+ description && /* @__PURE__ */ jsxRuntime.jsx("span", { className: styles22__default.default["description"], children: description }),
1826
+ showButton && /* @__PURE__ */ jsxRuntime.jsx(Button, { variant: "tertiary", size: "sm", onClick: onClear, className: styles22__default.default["clear-button"], children: "Clear Filters" })
1827
+ ] });
1828
+ };
1829
+ var ChevronDownIcon = LucideIcons.ChevronDown;
1830
+ var FilterDropdown = ({
1831
+ label,
1832
+ options,
1833
+ selectedFilters,
1834
+ onToggleFilter,
1835
+ onClearAll,
1836
+ buttonClassName,
1837
+ contentClassName
1838
+ }) => {
1839
+ const hasSelectedFilters = selectedFilters.length > 0;
1840
+ const filteredOptions = options.filter(
1841
+ (option) => option.value && option.value.trim() !== "" && option.label && option.label.trim() !== ""
1842
+ ).sort((a, b) => a.label.localeCompare(b.label));
1843
+ return /* @__PURE__ */ jsxRuntime.jsxs(DropdownMenu, { children: [
1844
+ /* @__PURE__ */ jsxRuntime.jsx(DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsxs(Button, { variant: "tertiary", className: cn(styles23__default.default["selector-button"], buttonClassName), children: [
1845
+ /* @__PURE__ */ jsxRuntime.jsxs("span", { className: styles23__default.default["selector-button-inner"], children: [
1846
+ label,
1847
+ hasSelectedFilters && /* @__PURE__ */ jsxRuntime.jsx(Badge, { variant: "primary", children: selectedFilters.length })
1848
+ ] }),
1849
+ /* @__PURE__ */ jsxRuntime.jsx(ChevronDownIcon, { className: styles23__default.default["chevron-icon"] })
1850
+ ] }) }),
1851
+ /* @__PURE__ */ jsxRuntime.jsxs(
1852
+ DropdownMenuContent,
1853
+ {
1854
+ align: "end",
1855
+ className: cn(styles23__default.default["dropdown-menu-content"], contentClassName),
1856
+ children: [
1857
+ /* @__PURE__ */ jsxRuntime.jsxs(DropdownMenuLabel, { children: [
1858
+ "Filters",
1859
+ hasSelectedFilters && /* @__PURE__ */ jsxRuntime.jsx(Button, { variant: "link", size: "sm", onClick: onClearAll, children: "Clear all" })
1860
+ ] }),
1861
+ /* @__PURE__ */ jsxRuntime.jsx(DropdownMenuSeparator, {}),
1862
+ filteredOptions.map((option) => {
1863
+ const isSelected = selectedFilters.includes(option.value);
1864
+ return /* @__PURE__ */ jsxRuntime.jsx(
1865
+ DropdownMenuCheckboxItem,
1866
+ {
1867
+ checked: isSelected,
1868
+ onCheckedChange: () => onToggleFilter(option.value),
1869
+ onSelect: (e) => e.preventDefault(),
1870
+ children: option.label
1871
+ },
1872
+ option.value
1873
+ );
1874
+ })
1875
+ ]
1876
+ }
1877
+ )
1878
+ ] });
1879
+ };
1880
+ var labelVariants = classVarianceAuthority.cva(styles24__default.default["label"]);
1881
+ var Label2 = React15__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(LabelPrimitive__namespace.Root, { ref, className: cn(labelVariants(), className), ...props }));
1882
+ Label2.displayName = LabelPrimitive__namespace.Root.displayName;
1883
+ var Form = reactHookForm.FormProvider;
1884
+ var FormFieldContext = React15__namespace.createContext({});
1885
+ var FormField = ({
1886
+ ...props
1887
+ }) => {
1888
+ return /* @__PURE__ */ jsxRuntime.jsx(FormFieldContext.Provider, { value: { name: props.name }, children: /* @__PURE__ */ jsxRuntime.jsx(reactHookForm.Controller, { ...props }) });
1889
+ };
1890
+ var useFormField = () => {
1891
+ const fieldContext = React15__namespace.useContext(FormFieldContext);
1892
+ const itemContext = React15__namespace.useContext(FormItemContext);
1893
+ const { getFieldState, formState } = reactHookForm.useFormContext();
1894
+ const fieldState = getFieldState(fieldContext.name, formState);
1895
+ if (!fieldContext) {
1896
+ throw new Error("useFormField should be used within <FormField>");
1897
+ }
1898
+ const { id } = itemContext;
1899
+ return {
1900
+ id,
1901
+ name: fieldContext.name,
1902
+ formItemId: `${id}-form-item`,
1903
+ formDescriptionId: `${id}-form-item-description`,
1904
+ formMessageId: `${id}-form-item-message`,
1905
+ ...fieldState
1906
+ };
1907
+ };
1908
+ var FormItemContext = React15__namespace.createContext({});
1909
+ var FormItem = React15__namespace.forwardRef(
1910
+ ({ className, ...props }, ref) => {
1911
+ const id = React15__namespace.useId();
1912
+ return /* @__PURE__ */ jsxRuntime.jsx(FormItemContext.Provider, { value: { id }, children: /* @__PURE__ */ jsxRuntime.jsx("div", { ref, className: cn(styles25__default.default["form-item"], className), ...props }) });
1913
+ }
1914
+ );
1915
+ FormItem.displayName = "FormItem";
1916
+ var FormLabel = React15__namespace.forwardRef(({ className, ...props }, ref) => {
1917
+ const { error, formItemId } = useFormField();
1918
+ return /* @__PURE__ */ jsxRuntime.jsx(
1919
+ Label2,
1920
+ {
1921
+ ref,
1922
+ className: cn(styles25__default.default["form-label"], error && styles25__default.default["form-label--failure"], className),
1923
+ htmlFor: formItemId,
1924
+ ...props
1925
+ }
1926
+ );
1927
+ });
1928
+ FormLabel.displayName = "FormLabel";
1929
+ var FormControl = React15__namespace.forwardRef(({ ...props }, ref) => {
1930
+ const { error, formItemId, formDescriptionId, formMessageId } = useFormField();
1931
+ return /* @__PURE__ */ jsxRuntime.jsx(
1932
+ reactSlot.Slot,
1933
+ {
1934
+ ref,
1935
+ id: formItemId,
1936
+ "aria-describedby": !error ? `${formDescriptionId}` : `${formDescriptionId} ${formMessageId}`,
1937
+ "aria-invalid": !!error,
1938
+ ...props
1939
+ }
1940
+ );
1941
+ });
1942
+ FormControl.displayName = "FormControl";
1943
+ var FormDescription = React15__namespace.forwardRef(({ className, ...props }, ref) => {
1944
+ const { formDescriptionId } = useFormField();
1945
+ return /* @__PURE__ */ jsxRuntime.jsx(
1946
+ "p",
1947
+ {
1948
+ ref,
1949
+ id: formDescriptionId,
1950
+ className: cn(styles25__default.default["form-description"], className),
1951
+ ...props
1952
+ }
1953
+ );
1954
+ });
1955
+ FormDescription.displayName = "FormDescription";
1956
+ var FormMessage = React15__namespace.forwardRef(({ className, children, ...props }, ref) => {
1957
+ const { error, formMessageId } = useFormField();
1958
+ const body = error ? String(error?.message ?? "") : children;
1959
+ if (!body) {
1960
+ return null;
1961
+ }
1962
+ return /* @__PURE__ */ jsxRuntime.jsx("p", { ref, id: formMessageId, className: cn(styles25__default.default["form-message"], className), ...props, children: body });
1963
+ });
1964
+ FormMessage.displayName = "FormMessage";
1965
+ var InfoCard = ({
1966
+ label,
1967
+ description,
1968
+ icon,
1969
+ elevation = ELEVATION.RAISED,
1970
+ className,
1971
+ onClick,
1972
+ ...props
1973
+ }) => {
1974
+ return /* @__PURE__ */ jsxRuntime.jsx(Card, { className, onClick, elevation, ...props, children: /* @__PURE__ */ jsxRuntime.jsx(CardContent, { children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: styles26__default.default["info-card-content"], children: [
1975
+ /* @__PURE__ */ jsxRuntime.jsx(
1976
+ Icon,
1977
+ {
1978
+ icon,
1979
+ size: "sm",
1980
+ background: "square",
1981
+ elevation: elevation === ELEVATION.SUNKEN ? ELEVATION.BASE : getRelativeElevation(elevation, -1)
1982
+ }
1983
+ ),
1984
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: styles26__default.default["copy-container"], children: [
1985
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: styles26__default.default["label"], children: label }),
1986
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: styles26__default.default["description"], children: description })
1987
+ ] })
1988
+ ] }) }) });
1989
+ };
1990
+ var Input = React15__namespace.forwardRef(
1991
+ ({ className, type, prefix, suffix, ...props }, ref) => {
1992
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn(styles27__default.default["input-wrapper"], className), children: [
1993
+ prefix && /* @__PURE__ */ jsxRuntime.jsx("span", { className: styles27__default.default["input-prefix"], children: prefix }),
1994
+ /* @__PURE__ */ jsxRuntime.jsx("input", { type, className: styles27__default.default["input-element"], ref, ...props }),
1995
+ suffix && /* @__PURE__ */ jsxRuntime.jsx("span", { className: styles27__default.default["input-suffix"], children: suffix })
1996
+ ] });
1997
+ }
1998
+ );
1999
+ Input.displayName = "Input";
2000
+ var ListOrGridViewToggle = ({
2001
+ viewMode,
2002
+ onViewModeChange,
2003
+ order = ["grid", "list"],
2004
+ className
2005
+ }) => {
2006
+ const currentActiveIndex = order.indexOf(viewMode);
2007
+ const handleGridClick = () => {
2008
+ onViewModeChange("grid");
2009
+ };
2010
+ const handleListClick = () => {
2011
+ onViewModeChange("list");
2012
+ };
2013
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn(styles28__default.default["list-or-grid-view-toggle"], className), children: [
2014
+ order.map((mode) => {
2015
+ const currentlyActive = mode === viewMode;
2016
+ const Icon3 = mode === "grid" ? LucideIcons.Grid3X3 : LucideIcons.List;
2017
+ return /* @__PURE__ */ jsxRuntime.jsx(
2018
+ "button",
2019
+ {
2020
+ type: "button",
2021
+ "aria-label": mode === "grid" ? "Grid view" : "List view",
2022
+ className: cn(
2023
+ styles28__default.default["icon-button"],
2024
+ currentlyActive ? styles28__default.default["icon-button--active"] : styles28__default.default["icon-button--inactive"]
2025
+ ),
2026
+ onClick: mode === "grid" ? handleGridClick : handleListClick,
2027
+ children: /* @__PURE__ */ jsxRuntime.jsx(Icon3, { size: 16 })
2028
+ },
2029
+ mode
2030
+ );
2031
+ }),
2032
+ /* @__PURE__ */ jsxRuntime.jsx(
2033
+ "div",
2034
+ {
2035
+ className: styles28__default.default["active-button-indicator"],
2036
+ style: {
2037
+ transform: `translateX(${currentActiveIndex * 100}%)`,
2038
+ width: `${100 / order.length}%`
2039
+ }
2040
+ }
2041
+ )
2042
+ ] });
2043
+ };
2044
+ var Spinner = ({ size = "md", variant = "neutral" }) => {
2045
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: styles29__default.default["spinner-container"], children: [
2046
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn(styles29__default.default["spinner"], styles29__default.default[size], styles29__default.default[variant]) }),
2047
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn(styles29__default.default["spinner-background"], styles29__default.default[size]) })
2048
+ ] });
2049
+ };
2050
+ function LoadingOverlay({ isVisible, message = "Loading..." }) {
2051
+ if (!isVisible) return null;
2052
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: styles30__default.default["loading-overlay"], children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: styles30__default.default["content"], children: [
2053
+ /* @__PURE__ */ jsxRuntime.jsx(Spinner, { variant: "primary" }),
2054
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: styles30__default.default["message"], children: message })
2055
+ ] }) });
2056
+ }
2057
+ var metricCardElevationVariants = generateElevationVariants(
2058
+ styles31__default.default,
2059
+ "metric-card",
2060
+ ELEVATION.RAISED
2061
+ );
2062
+ var VARIANTS = {
2063
+ default: {
2064
+ text: styles31__default.default["text-default"],
2065
+ iconBg: styles31__default.default["bg-default"]
2066
+ },
2067
+ primary: {
2068
+ text: styles31__default.default["text-primary"],
2069
+ iconBg: styles31__default.default["bg-primary"]
2070
+ },
2071
+ danger: {
2072
+ text: styles31__default.default["text-danger"],
2073
+ iconBg: styles31__default.default["bg-danger"]
2074
+ },
2075
+ success: {
2076
+ text: styles31__default.default["text-success"],
2077
+ iconBg: styles31__default.default["bg-success"]
2078
+ },
2079
+ warning: {
2080
+ text: styles31__default.default["text-warning"],
2081
+ iconBg: styles31__default.default["bg-warning"]
2082
+ }
2083
+ };
2084
+ var MetricCard = ({
2085
+ value,
2086
+ label,
2087
+ icon,
2088
+ variant = "default",
2089
+ elevation = ELEVATION.RAISED,
2090
+ className
2091
+ }) => {
2092
+ const variantStyles = VARIANTS[variant];
2093
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn(metricCardElevationVariants({ elevation }), className), children: [
2094
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: styles31__default.default["value-container"], children: [
2095
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn(styles31__default.default.value), children: value }),
2096
+ /* @__PURE__ */ jsxRuntime.jsx(
2097
+ Icon,
2098
+ {
2099
+ icon,
2100
+ size: "md",
2101
+ background: "circle",
2102
+ className: cn(variantStyles.iconBg, variantStyles.text)
2103
+ }
2104
+ )
2105
+ ] }),
2106
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: styles31__default.default.label, children: label })
2107
+ ] });
2108
+ };
2109
+ var MotionCollapsibleContent = ({
2110
+ isOpen,
2111
+ children,
2112
+ className
2113
+ }) => {
2114
+ const [contentHeight, setContentHeight] = React15.useState(0);
2115
+ const contentRef = React15.useRef(null);
2116
+ React15.useEffect(() => {
2117
+ if (contentRef.current) {
2118
+ const resizeObserver = new ResizeObserver(() => {
2119
+ if (contentRef.current) {
2120
+ setContentHeight(contentRef.current.scrollHeight);
2121
+ }
2122
+ });
2123
+ resizeObserver.observe(contentRef.current);
2124
+ setContentHeight(contentRef.current.scrollHeight);
2125
+ return () => resizeObserver.disconnect();
2126
+ }
2127
+ }, [children]);
2128
+ return /* @__PURE__ */ jsxRuntime.jsx(react.AnimatePresence, { initial: false, mode: "wait", children: isOpen && /* @__PURE__ */ jsxRuntime.jsx(
2129
+ react.motion.div,
2130
+ {
2131
+ initial: { height: 0, opacity: 0 },
2132
+ animate: { height: contentHeight, opacity: 1 },
2133
+ exit: { height: 0, opacity: 0 },
2134
+ transition: { duration: 0.3, ease: "easeInOut" },
2135
+ className: cn(styles32__default.default["motion-collapsible"], className),
2136
+ children: /* @__PURE__ */ jsxRuntime.jsx("div", { ref: contentRef, children })
2137
+ },
2138
+ "motion-content"
2139
+ ) });
2140
+ };
2141
+ var OctagonAlert = LucideIcons.AlertOctagon;
2142
+ var HomeIcon = LucideIcons.Home;
2143
+ var NotFound = ({
2144
+ className,
2145
+ title = "Oops! Page Not Found",
2146
+ description = "The page or resource you're looking for doesn't exist or has been moved.",
2147
+ showHomeButton = true,
2148
+ onHomeClick = () => window.location.href = "/"
2149
+ }) => {
2150
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn(styles33__default.default["page-not-found"], className), children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: styles33__default.default["page-not-found-inner"], children: [
2151
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: styles33__default.default["icon-container"], children: /* @__PURE__ */ jsxRuntime.jsx(OctagonAlert, { className: styles33__default.default["alert-icon"] }) }),
2152
+ /* @__PURE__ */ jsxRuntime.jsx("h1", { className: styles33__default.default["title"], children: title }),
2153
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: styles33__default.default["description"], children: description }),
2154
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: styles33__default.default["actions"], children: showHomeButton && /* @__PURE__ */ jsxRuntime.jsxs(Button, { onClick: onHomeClick, variant: "secondary", children: [
2155
+ /* @__PURE__ */ jsxRuntime.jsx(HomeIcon, { className: styles33__default.default["home-icon"] }),
2156
+ "Return Home"
2157
+ ] }) })
2158
+ ] }) });
2159
+ };
2160
+ var CheckIcon3 = LucideIcons.Check;
2161
+ var ChevronDownIcon2 = LucideIcons.ChevronDown;
2162
+ var ChevronUpIcon = LucideIcons.ChevronUp;
2163
+ var Select = SelectPrimitive__namespace.Root;
2164
+ var SelectGroup = SelectPrimitive__namespace.Group;
2165
+ var SelectValue = SelectPrimitive__namespace.Value;
2166
+ var SelectTrigger = React15__namespace.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(SelectPrimitive__namespace.Trigger, { ref, className: cn(styles34__default.default["select-trigger"], className), ...props, children: [
2167
+ children,
2168
+ /* @__PURE__ */ jsxRuntime.jsx(SelectPrimitive__namespace.Icon, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsx(ChevronDownIcon2, { className: cn(styles34__default.default["select-icon"], styles34__default.default["select-icon--low-opacity"]) }) })
2169
+ ] }));
2170
+ SelectTrigger.displayName = SelectPrimitive__namespace.Trigger.displayName;
2171
+ var SelectScrollUpButton = React15__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
2172
+ SelectPrimitive__namespace.ScrollUpButton,
2173
+ {
2174
+ ref,
2175
+ className: cn(styles34__default.default["select-scroll-button"], className),
2176
+ ...props,
2177
+ children: /* @__PURE__ */ jsxRuntime.jsx(ChevronUpIcon, { className: styles34__default.default["select-icon"] })
2178
+ }
2179
+ ));
2180
+ SelectScrollUpButton.displayName = SelectPrimitive__namespace.ScrollUpButton.displayName;
2181
+ var SelectScrollDownButton = React15__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
2182
+ SelectPrimitive__namespace.ScrollDownButton,
2183
+ {
2184
+ ref,
2185
+ className: cn(styles34__default.default["select-scroll-button"], className),
2186
+ ...props,
2187
+ children: /* @__PURE__ */ jsxRuntime.jsx(ChevronDownIcon2, { className: styles34__default.default["select-icon"] })
2188
+ }
2189
+ ));
2190
+ SelectScrollDownButton.displayName = SelectPrimitive__namespace.ScrollDownButton.displayName;
2191
+ var SelectPortal = ({ children }) => /* @__PURE__ */ jsxRuntime.jsx(SelectPrimitive__namespace.Portal, { container: getThemeProviderRoot(), children });
2192
+ var selectContentElevationVariants = generateElevationVariants(
2193
+ styles34__default.default,
2194
+ "select-content",
2195
+ ELEVATION.OVERLAY
2196
+ );
2197
+ var SelectContent = React15__namespace.forwardRef(({ className, children, position = "popper", elevation = ELEVATION.OVERLAY, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(SelectPortal, { children: /* @__PURE__ */ jsxRuntime.jsxs(
2198
+ SelectPrimitive__namespace.Content,
2199
+ {
2200
+ ref,
2201
+ className: cn(
2202
+ styles34__default.default["select-content"],
2203
+ position === "popper" && styles34__default.default["select-content--popper"],
2204
+ selectContentElevationVariants({ elevation }),
2205
+ className
2206
+ ),
2207
+ position,
2208
+ ...props,
2209
+ children: [
2210
+ /* @__PURE__ */ jsxRuntime.jsx(SelectScrollUpButton, {}),
2211
+ /* @__PURE__ */ jsxRuntime.jsx(
2212
+ SelectPrimitive__namespace.Viewport,
2213
+ {
2214
+ className: cn(
2215
+ styles34__default.default["select-viewport"],
2216
+ position === "popper" && styles34__default.default["select-viewport--popper"]
2217
+ ),
2218
+ children
2219
+ }
2220
+ ),
2221
+ /* @__PURE__ */ jsxRuntime.jsx(SelectScrollDownButton, {})
2222
+ ]
2223
+ }
2224
+ ) }));
2225
+ SelectContent.displayName = SelectPrimitive__namespace.Content.displayName;
2226
+ var SelectLabel = React15__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(SelectPrimitive__namespace.Label, { ref, className: cn(styles34__default.default["select-label"], className), ...props }));
2227
+ SelectLabel.displayName = SelectPrimitive__namespace.Label.displayName;
2228
+ var SelectItem = React15__namespace.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(SelectPrimitive__namespace.Item, { ref, className: cn(styles34__default.default["select-item"], className), ...props, children: [
2229
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: styles34__default.default["select-item-indicator"], children: /* @__PURE__ */ jsxRuntime.jsx(SelectPrimitive__namespace.ItemIndicator, { children: /* @__PURE__ */ jsxRuntime.jsx(CheckIcon3, { className: styles34__default.default["select-icon"] }) }) }),
2230
+ /* @__PURE__ */ jsxRuntime.jsx(SelectPrimitive__namespace.ItemText, { children })
2231
+ ] }));
2232
+ SelectItem.displayName = SelectPrimitive__namespace.Item.displayName;
2233
+ var SelectSeparator = React15__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
2234
+ SelectPrimitive__namespace.Separator,
2235
+ {
2236
+ ref,
2237
+ className: cn(styles34__default.default["select-separator"], className),
2238
+ ...props
2239
+ }
2240
+ ));
2241
+ SelectSeparator.displayName = SelectPrimitive__namespace.Separator.displayName;
2242
+ var ChevronLeftIcon2 = LucideIcons.ChevronLeft;
2243
+ var ChevronRightIcon3 = LucideIcons.ChevronRight;
2244
+ var Pagination = ({
2245
+ currentPage,
2246
+ totalItems,
2247
+ filteredItems,
2248
+ itemsPerPage,
2249
+ onPageChange,
2250
+ onItemsPerPageChange,
2251
+ itemsPerPageOptions = [10, 25, 50, 100],
2252
+ showInfo = true,
2253
+ maxVisiblePages = 5,
2254
+ className = "",
2255
+ type = "",
2256
+ scrollTargetRef
2257
+ }) => {
2258
+ const totalPages = Math.ceil(filteredItems / itemsPerPage);
2259
+ const startItem = Math.min(filteredItems, 1 + (currentPage - 1) * itemsPerPage);
2260
+ const endItem = Math.min(currentPage * itemsPerPage, filteredItems);
2261
+ const hasFilteredItems = filteredItems > 0;
2262
+ const isFirstPage = currentPage === 1;
2263
+ const isLastPage = currentPage === totalPages;
2264
+ if (totalItems <= itemsPerPageOptions[0]) {
2265
+ return null;
2266
+ }
2267
+ const handlePageChange = (page) => {
2268
+ onPageChange(page);
2269
+ if (scrollTargetRef) {
2270
+ if (typeof scrollTargetRef === "string") {
2271
+ const target = document.getElementById(scrollTargetRef);
2272
+ if (target) {
2273
+ target.scrollIntoView({ behavior: "smooth" });
2274
+ }
2275
+ } else {
2276
+ if (scrollTargetRef.current) {
2277
+ scrollTargetRef.current.scrollIntoView({ behavior: "smooth" });
2278
+ }
2279
+ }
2280
+ const viewport = document.querySelector("[data-radix-scroll-area-viewport]");
2281
+ if (viewport) {
2282
+ viewport.scrollTop = 0;
2283
+ }
2284
+ }
2285
+ };
2286
+ const handleItemsPerPageChange = (value) => {
2287
+ const newItemsPerPage = parseInt(value);
2288
+ onItemsPerPageChange?.(newItemsPerPage);
2289
+ onPageChange(1);
2290
+ };
2291
+ const handlePreviousPage = () => {
2292
+ handlePageChange(Math.max(1, currentPage - 1));
2293
+ };
2294
+ const handleNextPage = () => {
2295
+ handlePageChange(Math.min(totalPages, currentPage + 1));
2296
+ };
2297
+ const getVisiblePages = () => {
2298
+ const pageButtons = [];
2299
+ let startPage = 1;
2300
+ let endPage = totalPages;
2301
+ if (totalPages > maxVisiblePages) {
2302
+ const halfVisible = Math.floor(maxVisiblePages / 2);
2303
+ if (currentPage <= halfVisible + 1) {
2304
+ endPage = maxVisiblePages;
2305
+ } else if (currentPage >= totalPages - halfVisible) {
2306
+ startPage = totalPages - maxVisiblePages + 1;
2307
+ } else {
2308
+ startPage = currentPage - halfVisible;
2309
+ endPage = currentPage + halfVisible;
2310
+ }
2311
+ }
2312
+ for (let i = startPage; i <= endPage; i++) {
2313
+ pageButtons.push(
2314
+ /* @__PURE__ */ jsxRuntime.jsx(
2315
+ Button,
2316
+ {
2317
+ variant: currentPage === i ? "primary" : "tertiary",
2318
+ size: "sm",
2319
+ onClick: () => handlePageChange(i),
2320
+ children: i
2321
+ },
2322
+ i
2323
+ )
2324
+ );
2325
+ }
2326
+ return pageButtons;
2327
+ };
2328
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn(styles35__default.default["pagination"], className), children: [
2329
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: styles35__default.default["info-container"], children: showInfo && hasFilteredItems && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
2330
+ /* @__PURE__ */ jsxRuntime.jsxs("span", { children: [
2331
+ "Showing ",
2332
+ startItem,
2333
+ " to"
2334
+ ] }),
2335
+ onItemsPerPageChange ? /* @__PURE__ */ jsxRuntime.jsxs(Select, { value: itemsPerPage.toString(), onValueChange: handleItemsPerPageChange, children: [
2336
+ /* @__PURE__ */ jsxRuntime.jsx(SelectTrigger, { children: /* @__PURE__ */ jsxRuntime.jsx(SelectValue, {}) }),
2337
+ /* @__PURE__ */ jsxRuntime.jsx(SelectContent, { children: itemsPerPageOptions.map((option) => /* @__PURE__ */ jsxRuntime.jsx(SelectItem, { value: option.toString(), children: option }, option)) })
2338
+ ] }) : /* @__PURE__ */ jsxRuntime.jsx("span", { children: endItem }),
2339
+ /* @__PURE__ */ jsxRuntime.jsxs("span", { children: [
2340
+ "of ",
2341
+ filteredItems,
2342
+ " ",
2343
+ type
2344
+ ] })
2345
+ ] }) }),
2346
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: styles35__default.default["page-navigation-container"], children: [
2347
+ /* @__PURE__ */ jsxRuntime.jsx(
2348
+ Button,
2349
+ {
2350
+ variant: "tertiary",
2351
+ size: "sm",
2352
+ onClick: handlePreviousPage,
2353
+ disabled: isFirstPage,
2354
+ "aria-label": "Previous page",
2355
+ children: /* @__PURE__ */ jsxRuntime.jsx(ChevronLeftIcon2, {})
2356
+ }
2357
+ ),
2358
+ getVisiblePages(),
2359
+ /* @__PURE__ */ jsxRuntime.jsx(
2360
+ Button,
2361
+ {
2362
+ variant: "tertiary",
2363
+ size: "sm",
2364
+ onClick: handleNextPage,
2365
+ disabled: isLastPage,
2366
+ "aria-label": "Next page",
2367
+ children: /* @__PURE__ */ jsxRuntime.jsx(ChevronRightIcon3, {})
2368
+ }
2369
+ )
2370
+ ] })
2371
+ ] });
2372
+ };
2373
+ var PanelLabel = ({ className, label }) => {
2374
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn(styles36__default.default["panel-label"], className), children: label });
2375
+ };
2376
+ var Progress = React15__namespace.forwardRef(
2377
+ ({ className, value, color = "primary", ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(ProgressPrimitive__namespace.Root, { ref, className: cn(styles37__default.default["progress"], className), ...props, children: /* @__PURE__ */ jsxRuntime.jsx(
2378
+ ProgressPrimitive__namespace.Indicator,
2379
+ {
2380
+ className: cn(styles37__default.default["progress-indicator"], styles37__default.default[color]),
2381
+ style: { transform: `translateX(-${100 - (value || 0)}%)` }
2382
+ }
2383
+ ) })
2384
+ );
2385
+ Progress.displayName = ProgressPrimitive__namespace.Root.displayName;
2386
+ var RadialGraph = React15.forwardRef(
2387
+ ({
2388
+ percentage,
2389
+ displayLabel,
2390
+ className,
2391
+ subLabel,
2392
+ graphSize = "md",
2393
+ variant = "primary",
2394
+ ...props
2395
+ }, ref) => {
2396
+ const bars = Array.from({ length: 100 });
2397
+ const label = displayLabel ?? `${Math.round(percentage)}%`;
2398
+ return /* @__PURE__ */ jsxRuntime.jsxs(
2399
+ "div",
2400
+ {
2401
+ ref,
2402
+ className: cn(styles38__default.default["radial-graph"], styles38__default.default[graphSize], className),
2403
+ ...props,
2404
+ children: [
2405
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: styles38__default.default["bars-container"], children: bars.map((_, i) => {
2406
+ const isActive = i < percentage;
2407
+ const delay = `${i * 10}ms`;
2408
+ return /* @__PURE__ */ jsxRuntime.jsx(
2409
+ "div",
2410
+ {
2411
+ className: styles38__default.default["bar"],
2412
+ style: {
2413
+ transform: `rotate(${i * 3.6}deg)`
2414
+ },
2415
+ children: /* @__PURE__ */ jsxRuntime.jsxs(
2416
+ "div",
2417
+ {
2418
+ className: cn(
2419
+ styles38__default.default["bar-inner"],
2420
+ isActive ? styles38__default.default["bar-inner--active"] : styles38__default.default["bar-inner--inactive"]
2421
+ ),
2422
+ style: {
2423
+ transitionDelay: delay,
2424
+ animationDelay: delay
2425
+ },
2426
+ children: [
2427
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: styles38__default.default["bar-background"] }),
2428
+ /* @__PURE__ */ jsxRuntime.jsx(
2429
+ "div",
2430
+ {
2431
+ className: cn(
2432
+ styles38__default.default["bar-gradient"],
2433
+ styles38__default.default[`bar-gradient--${variant}`],
2434
+ isActive ? styles38__default.default["bar-gradient--active"] : styles38__default.default["bar-gradient--inactive"]
2435
+ ),
2436
+ style: {
2437
+ transitionDelay: delay,
2438
+ animationDelay: delay
2439
+ }
2440
+ }
2441
+ )
2442
+ ]
2443
+ }
2444
+ )
2445
+ },
2446
+ i
2447
+ );
2448
+ }) }),
2449
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: styles38__default.default["label-container"], children: [
2450
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn(styles38__default.default["label"], styles38__default.default[graphSize]), children: label }),
2451
+ subLabel && /* @__PURE__ */ jsxRuntime.jsx("p", { className: styles38__default.default["sub-label"], children: subLabel })
2452
+ ] })
2453
+ ]
2454
+ }
2455
+ );
2456
+ }
2457
+ );
2458
+ RadialGraph.displayName = "RadialGraph";
2459
+ var ChevronDownIcon3 = LucideIcons.ChevronDown;
2460
+ var RadioDropdown = ({
2461
+ label,
2462
+ options,
2463
+ selectedValue,
2464
+ onSelect,
2465
+ className
2466
+ }) => {
2467
+ const selectedOption = options.find((opt) => opt.value === selectedValue);
2468
+ const hasSelectedCount = selectedOption?.count !== void 0;
2469
+ const filteredOptions = options.filter(
2470
+ (option) => option.value && option.value.trim() !== "" && option.label && option.label.trim() !== ""
2471
+ );
2472
+ return /* @__PURE__ */ jsxRuntime.jsxs(DropdownMenu, { children: [
2473
+ /* @__PURE__ */ jsxRuntime.jsx(DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsxs(Button, { variant: "tertiary", className, children: [
2474
+ /* @__PURE__ */ jsxRuntime.jsxs("span", { className: styles39__default.default["selector-button-inner"], children: [
2475
+ selectedOption?.label || label,
2476
+ hasSelectedCount && /* @__PURE__ */ jsxRuntime.jsx(Badge, { variant: "primary", children: selectedOption.count })
2477
+ ] }),
2478
+ /* @__PURE__ */ jsxRuntime.jsx(ChevronDownIcon3, { className: styles39__default.default["chevron-icon"] })
2479
+ ] }) }),
2480
+ /* @__PURE__ */ jsxRuntime.jsxs(DropdownMenuContent, { align: "end", className: styles39__default.default["dropdown-menu-content"], children: [
2481
+ /* @__PURE__ */ jsxRuntime.jsx(DropdownMenuLabel, { children: label }),
2482
+ /* @__PURE__ */ jsxRuntime.jsx(DropdownMenuSeparator, {}),
2483
+ /* @__PURE__ */ jsxRuntime.jsx(DropdownMenuRadioGroup, { value: selectedValue, onValueChange: onSelect, children: filteredOptions.map((option) => {
2484
+ const hasCount = option.count !== void 0;
2485
+ return /* @__PURE__ */ jsxRuntime.jsxs(DropdownMenuRadioItem, { value: option.value, children: [
2486
+ option.label,
2487
+ hasCount && ` (${option.count})`
2488
+ ] }, option.value);
2489
+ }) })
2490
+ ] })
2491
+ ] });
2492
+ };
2493
+ var CircleIcon2 = LucideIcons.Circle;
2494
+ var RadioGroup2 = React15__namespace.forwardRef(({ className, ...props }, ref) => {
2495
+ return /* @__PURE__ */ jsxRuntime.jsx(
2496
+ RadioGroupPrimitive__namespace.Root,
2497
+ {
2498
+ className: cn(styles40__default.default["radio-group"], className),
2499
+ ...props,
2500
+ ref
2501
+ }
2502
+ );
2503
+ });
2504
+ RadioGroup2.displayName = RadioGroupPrimitive__namespace.Root.displayName;
2505
+ var RadioGroupItem = React15__namespace.forwardRef(({ className, ...props }, ref) => {
2506
+ return /* @__PURE__ */ jsxRuntime.jsx(
2507
+ RadioGroupPrimitive__namespace.Item,
2508
+ {
2509
+ ref,
2510
+ className: cn(styles40__default.default["radio-group-item"], className),
2511
+ ...props,
2512
+ children: /* @__PURE__ */ jsxRuntime.jsx(RadioGroupPrimitive__namespace.Indicator, { className: styles40__default.default["radio-group-item-indicator"], children: /* @__PURE__ */ jsxRuntime.jsx(CircleIcon2, { className: styles40__default.default["indicator-icon"] }) })
2513
+ }
2514
+ );
2515
+ });
2516
+ RadioGroupItem.displayName = RadioGroupPrimitive__namespace.Item.displayName;
2517
+ var ScrollArea = React15__namespace.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(ScrollAreaPrimitive__namespace.Root, { ref, className: cn(styles41__default.default["scroll-area"], className), ...props, children: [
2518
+ /* @__PURE__ */ jsxRuntime.jsx(ScrollAreaPrimitive__namespace.Viewport, { className: styles41__default.default["scroll-area-viewport"], children }),
2519
+ /* @__PURE__ */ jsxRuntime.jsx(ScrollBar, {}),
2520
+ /* @__PURE__ */ jsxRuntime.jsx(ScrollAreaPrimitive__namespace.Corner, {})
2521
+ ] }));
2522
+ ScrollArea.displayName = ScrollAreaPrimitive__namespace.Root.displayName;
2523
+ var ScrollBar = React15__namespace.forwardRef(({ className, orientation = "vertical", ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
2524
+ ScrollAreaPrimitive__namespace.ScrollAreaScrollbar,
2525
+ {
2526
+ ref,
2527
+ orientation,
2528
+ className: cn(
2529
+ styles41__default.default["scroll-bar"],
2530
+ orientation === "vertical" && styles41__default.default["scroll-bar--vertical"],
2531
+ orientation === "horizontal" && styles41__default.default["scroll-bar--horizontal"],
2532
+ className
2533
+ ),
2534
+ ...props,
2535
+ children: /* @__PURE__ */ jsxRuntime.jsx(ScrollAreaPrimitive__namespace.ScrollAreaThumb, { className: styles41__default.default["scroll-area-thumb"] })
2536
+ }
2537
+ ));
2538
+ ScrollBar.displayName = ScrollAreaPrimitive__namespace.ScrollAreaScrollbar.displayName;
2539
+ var SearchIcon2 = LucideIcons.Search;
2540
+ var SearchBar = ({
2541
+ searchQuery,
2542
+ setSearchQuery,
2543
+ placeholder = "Search...",
2544
+ className
2545
+ }) => {
2546
+ const handleChange = (e) => {
2547
+ setSearchQuery(e.target.value);
2548
+ };
2549
+ const handleClear = () => {
2550
+ setSearchQuery("");
2551
+ };
2552
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn(styles42__default.default["search-bar"], className), children: /* @__PURE__ */ jsxRuntime.jsx(
2553
+ Input,
2554
+ {
2555
+ placeholder,
2556
+ value: searchQuery,
2557
+ onChange: handleChange,
2558
+ className: styles42__default.default["input"],
2559
+ prefix: /* @__PURE__ */ jsxRuntime.jsx(SearchIcon2, { className: styles42__default.default["search-icon"] }),
2560
+ suffix: searchQuery && /* @__PURE__ */ jsxRuntime.jsx(
2561
+ IconButton,
2562
+ {
2563
+ name: "XIcon",
2564
+ onClick: handleClear,
2565
+ className: styles42__default.default["clear-button"],
2566
+ label: "Clear search"
2567
+ }
2568
+ )
2569
+ }
2570
+ ) });
2571
+ };
2572
+ var SectionHeading = ({
2573
+ heading,
2574
+ description,
2575
+ renderRightContent,
2576
+ className
2577
+ }) => {
2578
+ const hasRightContent = !!renderRightContent;
2579
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn(hasRightContent && styles43__default.default["section-heading--right-content"], className), children: [
2580
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: styles43__default.default["content"], children: [
2581
+ /* @__PURE__ */ jsxRuntime.jsx("h3", { className: styles43__default.default["heading"], children: heading }),
2582
+ description && /* @__PURE__ */ jsxRuntime.jsx("p", { className: styles43__default.default["description"], children: description })
2583
+ ] }),
2584
+ hasRightContent && renderRightContent()
2585
+ ] });
2586
+ };
2587
+ var Separator3 = React15__namespace.forwardRef(({ className, orientation = "horizontal", decorative = true, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
2588
+ SeparatorPrimitive__namespace.Root,
2589
+ {
2590
+ ref,
2591
+ decorative,
2592
+ orientation,
2593
+ className: cn(
2594
+ styles44__default.default["separator"],
2595
+ orientation === "horizontal" ? styles44__default.default["separator--horizontal"] : styles44__default.default["separator--vertical"],
2596
+ className
2597
+ ),
2598
+ ...props
2599
+ }
2600
+ ));
2601
+ Separator3.displayName = SeparatorPrimitive__namespace.Root.displayName;
2602
+ var Sheet = DialogPrimitive__namespace.Root;
2603
+ var SheetTrigger = DialogPrimitive__namespace.Trigger;
2604
+ var SheetClose = DialogPrimitive__namespace.Close;
2605
+ var SheetPortal = ({ children }) => /* @__PURE__ */ jsxRuntime.jsx(DialogPrimitive__namespace.Portal, { container: getThemeProviderRoot(), children });
2606
+ var SheetOverlay = React15__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(DialogPrimitive__namespace.Overlay, { className: cn(styles45__default.default["sheet-overlay"], className), ...props, ref }));
2607
+ SheetOverlay.displayName = DialogPrimitive__namespace.Overlay.displayName;
2608
+ var sheetVariants = classVarianceAuthority.cva(styles45__default.default["sheet-content"], {
2609
+ variants: {
2610
+ side: {
2611
+ top: styles45__default.default["sheet-content--side-top"],
2612
+ bottom: styles45__default.default["sheet-content--side-bottom"],
2613
+ left: styles45__default.default["sheet-content--side-left"],
2614
+ right: styles45__default.default["sheet-content--side-right"]
2615
+ }
2616
+ },
2617
+ defaultVariants: {
2618
+ side: "right"
2619
+ }
2620
+ });
2621
+ var SheetContainer = React15__namespace.forwardRef(({ side = "right", className, children, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(SheetPortal, { children: [
2622
+ /* @__PURE__ */ jsxRuntime.jsx(SheetOverlay, {}),
2623
+ /* @__PURE__ */ jsxRuntime.jsx(DialogPrimitive__namespace.Content, { ref, className: cn(sheetVariants({ side }), className), ...props, children })
2624
+ ] }));
2625
+ SheetContainer.displayName = DialogPrimitive__namespace.Content.displayName;
2626
+ var SheetHeaderIcon = ({ className, ...props }) => /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn(styles45__default.default["sheet-header-icon"], className), ...props });
2627
+ SheetHeaderIcon.displayName = "SheetHeaderIcon";
2628
+ var SheetHeader = ({ className, children, ...props }) => {
2629
+ const childrenArray = React15__namespace.Children.toArray(children);
2630
+ const icon = childrenArray.find(
2631
+ (child) => React15__namespace.isValidElement(child) && child.type === SheetHeaderIcon
2632
+ );
2633
+ const otherChildren = childrenArray.filter(
2634
+ (child) => !(React15__namespace.isValidElement(child) && child.type === SheetHeaderIcon)
2635
+ );
2636
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn(styles45__default.default["sheet-header"], className), ...props, children: [
2637
+ icon,
2638
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: styles45__default.default["sheet-header-text-content"], children: otherChildren }),
2639
+ /* @__PURE__ */ jsxRuntime.jsx(DialogPrimitive__namespace.Close, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsx(IconButton, { name: "X", label: "Close", className: styles45__default.default["sheet-close"] }) })
2640
+ ] });
2641
+ };
2642
+ SheetHeader.displayName = "SheetHeader";
2643
+ var SheetFooter = ({ className, ...props }) => /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn(styles45__default.default["sheet-footer"], className), ...props });
2644
+ SheetFooter.displayName = "SheetFooter";
2645
+ var SheetTitle = React15__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(DialogPrimitive__namespace.Title, { ref, className: cn(styles45__default.default["sheet-title"], className), ...props }));
2646
+ SheetTitle.displayName = DialogPrimitive__namespace.Title.displayName;
2647
+ var SheetDescription = React15__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
2648
+ DialogPrimitive__namespace.Description,
2649
+ {
2650
+ ref,
2651
+ className: cn(styles45__default.default["sheet-description"], className),
2652
+ ...props
2653
+ }
2654
+ ));
2655
+ SheetDescription.displayName = DialogPrimitive__namespace.Description.displayName;
2656
+ var SheetContent = ({ className, ...props }) => /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn(styles45__default.default["sheet-body"], "styled-vertical-scrollbar", className), ...props });
2657
+ SheetContent.displayName = "SheetContent";
2658
+ function Skeleton({ className, ...props }) {
2659
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn(styles46__default.default["skeleton"], className), ...props });
2660
+ }
2661
+ var ChevronDownIcon4 = LucideIcons.ChevronDown;
2662
+ function SortSelector({
2663
+ sortField,
2664
+ defaultSortField = "name",
2665
+ sortOrder,
2666
+ defaultSortOrder = "asc",
2667
+ sortMode = "created",
2668
+ setSortField,
2669
+ setSortOrder,
2670
+ setCurrentPage,
2671
+ showDateOptions = true,
2672
+ className
2673
+ }) {
2674
+ const options = [
2675
+ { value: "name-asc", label: "Name (A-Z)" },
2676
+ { value: "name-desc", label: "Name (Z-A)" },
2677
+ ...showDateOptions ? sortMode === "created" ? [
2678
+ { value: "createdAt-desc", label: "Recently Created" },
2679
+ { value: "createdAt-asc", label: "Oldest Created" }
2680
+ ] : [
2681
+ { value: "updatedAt-desc", label: "Recently Updated" },
2682
+ { value: "updatedAt-asc", label: "Oldest Updated" }
2683
+ ] : []
2684
+ ];
2685
+ const currentValue = `${sortField}-${sortOrder}`;
2686
+ const currentLabel = options.find((option) => option.value === currentValue)?.label || "Sort";
2687
+ const isDefaultSort = sortField === defaultSortField && sortOrder === defaultSortOrder;
2688
+ const filteredOptions = options.filter(
2689
+ (option) => option.value && option.value.trim() !== "" && option.label && option.label.trim() !== ""
2690
+ );
2691
+ const handleChange = (value) => {
2692
+ const [field, order] = value.split("-");
2693
+ setSortField(field);
2694
+ setSortOrder(order);
2695
+ setCurrentPage?.(1);
2696
+ };
2697
+ const handleReset = () => {
2698
+ setSortField(defaultSortField);
2699
+ setSortOrder(defaultSortOrder);
2700
+ setCurrentPage?.(1);
2701
+ };
2702
+ return /* @__PURE__ */ jsxRuntime.jsxs(DropdownMenu, { children: [
2703
+ /* @__PURE__ */ jsxRuntime.jsx(DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsxs(Button, { variant: "tertiary", className: cn(styles47__default.default["sort-selector-trigger"], className), children: [
2704
+ /* @__PURE__ */ jsxRuntime.jsx("span", { children: currentLabel }),
2705
+ /* @__PURE__ */ jsxRuntime.jsx(ChevronDownIcon4, { className: styles47__default.default["chevron-down-icon"] })
2706
+ ] }) }),
2707
+ /* @__PURE__ */ jsxRuntime.jsxs(DropdownMenuContent, { align: "end", className: styles47__default.default["dropdown-menu-content"], children: [
2708
+ /* @__PURE__ */ jsxRuntime.jsxs(DropdownMenuLabel, { children: [
2709
+ "Sort",
2710
+ !isDefaultSort && /* @__PURE__ */ jsxRuntime.jsx(Button, { variant: "link", size: "sm", onClick: handleReset, children: "Reset" })
2711
+ ] }),
2712
+ /* @__PURE__ */ jsxRuntime.jsx(DropdownMenuSeparator, {}),
2713
+ filteredOptions.map((option) => {
2714
+ const isSelected = currentValue === option.value;
2715
+ return /* @__PURE__ */ jsxRuntime.jsx(
2716
+ DropdownMenuCheckboxItem,
2717
+ {
2718
+ checked: isSelected,
2719
+ onCheckedChange: () => handleChange(option.value),
2720
+ onSelect: (e) => e.preventDefault(),
2721
+ children: option.label
2722
+ },
2723
+ option.value
2724
+ );
2725
+ })
2726
+ ] })
2727
+ ] });
2728
+ }
2729
+ var Switch = React15__namespace.forwardRef(
2730
+ ({ className, size = "md", variant = "default", thumbIcon, ...props }, ref) => {
2731
+ const iconSize = size === "sm" ? "xs" : size === "md" ? "sm" : "md";
2732
+ return /* @__PURE__ */ jsxRuntime.jsx(
2733
+ SwitchPrimitives__namespace.Root,
2734
+ {
2735
+ className: cn(styles48__default.default["switch"], styles48__default.default[size], styles48__default.default[variant], className),
2736
+ ...props,
2737
+ ref,
2738
+ children: /* @__PURE__ */ jsxRuntime.jsx(SwitchPrimitives__namespace.Thumb, { className: cn(styles48__default.default["thumb"], styles48__default.default[size]), children: thumbIcon && /* @__PURE__ */ jsxRuntime.jsx(Icon, { icon: thumbIcon, className: styles48__default.default["thumb-icon"], size: iconSize }) })
2739
+ }
2740
+ );
2741
+ }
2742
+ );
2743
+ Switch.displayName = SwitchPrimitives__namespace.Root.displayName;
2744
+ var ArrowDownIcon = LucideIcons.ArrowDown;
2745
+ var ArrowUpIcon = LucideIcons.ArrowUp;
2746
+ var ArrowUpDownIcon = LucideIcons.ArrowUpDown;
2747
+ function SortButton({
2748
+ field,
2749
+ children,
2750
+ icon,
2751
+ sortField,
2752
+ sortDirection,
2753
+ onSort
2754
+ }) {
2755
+ const isActive = sortField === field;
2756
+ const isAscending = sortDirection === "asc";
2757
+ const handleClick = () => {
2758
+ onSort(field);
2759
+ };
2760
+ return /* @__PURE__ */ jsxRuntime.jsxs("button", { type: "button", onClick: handleClick, className: styles49__default.default["sort-button"], children: [
2761
+ icon,
2762
+ children,
2763
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: styles49__default.default["arrow-container"], children: isActive ? isAscending ? /* @__PURE__ */ jsxRuntime.jsx(ArrowUpIcon, {}) : /* @__PURE__ */ jsxRuntime.jsx(ArrowDownIcon, {}) : /* @__PURE__ */ jsxRuntime.jsx(ArrowUpDownIcon, { className: styles49__default.default["arrow-up-down-icon"] }) })
2764
+ ] });
2765
+ }
2766
+ var tableElevationVariants = generateElevationVariants(styles50__default.default, "table", ELEVATION.RAISED);
2767
+ var TableContainer = React15__namespace.forwardRef(({ className, elevation = ELEVATION.RAISED, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx("div", { className: (styles50__default.default["table"], tableElevationVariants({ elevation })), children: /* @__PURE__ */ jsxRuntime.jsx("table", { ref, className: styles50__default.default["table-inner"], ...props }) }));
2768
+ TableContainer.displayName = "Table";
2769
+ var TableHeader = React15__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx("thead", { ref, className: cn(styles50__default.default["table-header"], className), ...props }));
2770
+ TableHeader.displayName = "TableHeader";
2771
+ var TableBody = React15__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx("tbody", { ref, className: cn(styles50__default.default["table-body"], className), ...props }));
2772
+ TableBody.displayName = "TableBody";
2773
+ var TableFooter = React15__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx("tfoot", { ref, className: cn(styles50__default.default["table-footer"], className), ...props }));
2774
+ TableFooter.displayName = "TableFooter";
2775
+ var TableRow = React15__namespace.forwardRef(
2776
+ ({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx("tr", { ref, className: cn(styles50__default.default["table-row"], className), ...props })
2777
+ );
2778
+ TableRow.displayName = "TableRow";
2779
+ var TableHead = React15__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx("th", { ref, className: cn(styles50__default.default["table-head"], className), ...props }));
2780
+ TableHead.displayName = "TableHead";
2781
+ var TableCell = React15__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx("td", { ref, className: styles50__default.default["table-cell"], ...props }));
2782
+ TableCell.displayName = "TableCell";
2783
+ var TableCaption = React15__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx("caption", { ref, className: styles50__default.default["table-caption"], ...props }));
2784
+ TableCaption.displayName = "TableCaption";
2785
+ var tableElevationVariants2 = generateElevationVariants(styles51__default.default, "table", ELEVATION.BASE);
2786
+ var Table = ({
2787
+ columns,
2788
+ rows,
2789
+ className,
2790
+ border = false,
2791
+ elevation = ELEVATION.BASE
2792
+ }) => {
2793
+ return /* @__PURE__ */ jsxRuntime.jsx(
2794
+ "div",
2795
+ {
2796
+ className: cn(
2797
+ styles51__default.default["table"],
2798
+ border && styles51__default.default["table-border"],
2799
+ tableElevationVariants2({ elevation }),
2800
+ className
2801
+ ),
2802
+ children: /* @__PURE__ */ jsxRuntime.jsxs(TableContainer, { elevation, children: [
2803
+ /* @__PURE__ */ jsxRuntime.jsx(TableHeader, { children: /* @__PURE__ */ jsxRuntime.jsx(TableRow, { children: columns.map((column) => /* @__PURE__ */ jsxRuntime.jsx(TableHead, { className: column.className, children: column.content }, column.key)) }) }),
2804
+ /* @__PURE__ */ jsxRuntime.jsx(TableBody, { children: rows.map((row) => /* @__PURE__ */ jsxRuntime.jsx(
2805
+ TableRow,
2806
+ {
2807
+ className: cn(row.className, row.onClick && styles51__default.default["table-row-clickable"]),
2808
+ onClick: row.onClick,
2809
+ children: row.cells.map((cell) => /* @__PURE__ */ jsxRuntime.jsx(TableCell, { className: cell.className, children: cell.content }, cell.key))
2810
+ },
2811
+ row.key
2812
+ )) })
2813
+ ] })
2814
+ }
2815
+ );
2816
+ };
2817
+ var TabsContainer = TabsPrimitive__namespace.Root;
2818
+ var TabsList = React15__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(TabsPrimitive__namespace.List, { ref, className: cn(styles52__default.default["tabs-list"], className), ...props }));
2819
+ TabsList.displayName = TabsPrimitive__namespace.List.displayName;
2820
+ var TabsTrigger = React15__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(TabsPrimitive__namespace.Trigger, { ref, className: cn(styles52__default.default["tabs-trigger"], className), ...props }));
2821
+ TabsTrigger.displayName = TabsPrimitive__namespace.Trigger.displayName;
2822
+ var TabsContent = React15__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(TabsPrimitive__namespace.Content, { ref, className: cn(styles52__default.default["tabs-content"], className), ...props }));
2823
+ TabsContent.displayName = TabsPrimitive__namespace.Content.displayName;
2824
+ var Tabs = ({ id, items, className, tabsListBackground = "transparent" }) => {
2825
+ const [activeTab, setActiveTab] = React15.useState(items[0].value);
2826
+ const isFilled = tabsListBackground === "filled";
2827
+ const handleValueChange = (newTab) => {
2828
+ setActiveTab(newTab);
2829
+ };
2830
+ const renderIcon = (icon) => {
2831
+ if (icon) {
2832
+ return /* @__PURE__ */ jsxRuntime.jsx(Icon, { icon, size: "sm", className: styles53__default.default["tabs-icon"] });
2833
+ }
2834
+ return null;
2835
+ };
2836
+ const renderActiveStyle = (isActive) => {
2837
+ if (isActive) {
2838
+ return /* @__PURE__ */ jsxRuntime.jsx(
2839
+ react.motion.span,
2840
+ {
2841
+ className: cn(
2842
+ styles53__default.default["active-tab-indicator"],
2843
+ isFilled ? styles53__default.default["active-tab-indicator--filled"] : styles53__default.default["active-tab-indicator--transparent"]
2844
+ ),
2845
+ initial: false,
2846
+ layoutId: `${id}-active-tab-indicator`
2847
+ }
2848
+ );
2849
+ }
2850
+ return null;
2851
+ };
2852
+ return /* @__PURE__ */ jsxRuntime.jsxs(
2853
+ TabsContainer,
2854
+ {
2855
+ value: activeTab,
2856
+ onValueChange: handleValueChange,
2857
+ className: cn(styles53__default.default["tabs"], className),
2858
+ children: [
2859
+ /* @__PURE__ */ jsxRuntime.jsx(
2860
+ TabsList,
2861
+ {
2862
+ className: cn(
2863
+ styles53__default.default["tabs-list"],
2864
+ isFilled ? styles53__default.default["tabs-list--filled"] : styles53__default.default["tabs-list--transparent"]
2865
+ ),
2866
+ children: items.map(({ label, value, icon }) => {
2867
+ const isActive = activeTab === value;
2868
+ return /* @__PURE__ */ jsxRuntime.jsxs(
2869
+ TabsTrigger,
2870
+ {
2871
+ value,
2872
+ className: cn(
2873
+ styles53__default.default["tabs-trigger"],
2874
+ isFilled ? styles53__default.default["tabs-trigger--filled"] : styles53__default.default["tabs-trigger--transparent"]
2875
+ ),
2876
+ "data-tour": `${value}-tab-overview`,
2877
+ children: [
2878
+ renderIcon(icon),
2879
+ label,
2880
+ renderActiveStyle(isActive)
2881
+ ]
2882
+ },
2883
+ value
2884
+ );
2885
+ })
2886
+ }
2887
+ ),
2888
+ items.map(({ value, content }) => /* @__PURE__ */ jsxRuntime.jsx(TabsContent, { value, className: styles53__default.default["content"], children: content }, value))
2889
+ ]
2890
+ }
2891
+ );
2892
+ };
2893
+ var Textarea = React15__namespace.forwardRef(
2894
+ ({ className, ...props }, ref) => {
2895
+ return /* @__PURE__ */ jsxRuntime.jsx("textarea", { className: cn(styles54__default.default["textarea"], className), ref, ...props });
2896
+ }
2897
+ );
2898
+ Textarea.displayName = "Textarea";
2899
+ var XIcon2 = LucideIcons.X;
2900
+ var ToastProvider = ToastPrimitives__namespace.Provider;
2901
+ var ToastViewport = React15__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
2902
+ ToastPrimitives__namespace.Viewport,
2903
+ {
2904
+ ref,
2905
+ className: cn(styles55__default.default["toast-viewport"], className),
2906
+ ...props
2907
+ }
2908
+ ));
2909
+ ToastViewport.displayName = ToastPrimitives__namespace.Viewport.displayName;
2910
+ var toastVariants = classVarianceAuthority.cva(styles55__default.default["toast"], {
2911
+ variants: {
2912
+ variant: {
2913
+ default: styles55__default.default["toast--default"],
2914
+ danger: styles55__default.default["toast--danger"],
2915
+ warning: styles55__default.default["toast--warning"],
2916
+ success: styles55__default.default["toast--success"]
2917
+ }
2918
+ },
2919
+ defaultVariants: {
2920
+ variant: "default"
2921
+ }
2922
+ });
2923
+ var ToastContainer = React15__namespace.forwardRef(({ className, variant, ...props }, ref) => {
2924
+ return /* @__PURE__ */ jsxRuntime.jsx(
2925
+ ToastPrimitives__namespace.Root,
2926
+ {
2927
+ ref,
2928
+ className: cn(toastVariants({ variant }), className),
2929
+ ...props
2930
+ }
2931
+ );
2932
+ });
2933
+ ToastContainer.displayName = ToastPrimitives__namespace.Root.displayName;
2934
+ var ToastAction = React15__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(ToastPrimitives__namespace.Action, { ref, className: cn(styles55__default.default["toast-action"], className), ...props }));
2935
+ ToastAction.displayName = ToastPrimitives__namespace.Action.displayName;
2936
+ var ToastClose = React15__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(ToastPrimitives__namespace.Close, { ref, className: cn(styles55__default.default["toast-close"], className), ...props, children: /* @__PURE__ */ jsxRuntime.jsx(XIcon2, { className: styles55__default.default["toast-close-icon"] }) }));
2937
+ ToastClose.displayName = ToastPrimitives__namespace.Close.displayName;
2938
+ var ToastTitle = React15__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(ToastPrimitives__namespace.Title, { ref, className: cn(styles55__default.default["toast-title"], className), ...props }));
2939
+ ToastTitle.displayName = ToastPrimitives__namespace.Title.displayName;
2940
+ var ToastDescription = React15__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
2941
+ ToastPrimitives__namespace.Description,
2942
+ {
2943
+ ref,
2944
+ className: cn(styles55__default.default["toast-description"], className),
2945
+ ...props
2946
+ }
2947
+ ));
2948
+ ToastDescription.displayName = ToastPrimitives__namespace.Description.displayName;
2949
+ var TOAST_LIMIT = 1;
2950
+ var TOAST_REMOVE_DELAY = 1e6;
2951
+ var count = 0;
2952
+ function genId() {
2953
+ count = (count + 1) % Number.MAX_SAFE_INTEGER;
2954
+ return count.toString();
2955
+ }
2956
+ var toastTimeouts = /* @__PURE__ */ new Map();
2957
+ var addToRemoveQueue = (toastId) => {
2958
+ if (toastTimeouts.has(toastId)) {
2959
+ return;
2960
+ }
2961
+ const timeout = setTimeout(() => {
2962
+ toastTimeouts.delete(toastId);
2963
+ dispatch({
2964
+ type: "REMOVE_TOAST",
2965
+ toastId
2966
+ });
2967
+ }, TOAST_REMOVE_DELAY);
2968
+ toastTimeouts.set(toastId, timeout);
2969
+ };
2970
+ var reducer = (state, action) => {
2971
+ switch (action.type) {
2972
+ case "ADD_TOAST":
2973
+ return {
2974
+ ...state,
2975
+ toasts: [action.toast, ...state.toasts].slice(0, TOAST_LIMIT)
2976
+ };
2977
+ case "UPDATE_TOAST":
2978
+ return {
2979
+ ...state,
2980
+ toasts: state.toasts.map((t) => t.id === action.toast.id ? { ...t, ...action.toast } : t)
2981
+ };
2982
+ case "DISMISS_TOAST": {
2983
+ const { toastId } = action;
2984
+ if (toastId) {
2985
+ addToRemoveQueue(toastId);
2986
+ } else {
2987
+ state.toasts.forEach((toast2) => {
2988
+ addToRemoveQueue(toast2.id);
2989
+ });
2990
+ }
2991
+ return {
2992
+ ...state,
2993
+ toasts: state.toasts.map(
2994
+ (t) => t.id === toastId || toastId === void 0 ? {
2995
+ ...t,
2996
+ open: false
2997
+ } : t
2998
+ )
2999
+ };
3000
+ }
3001
+ case "REMOVE_TOAST":
3002
+ if (action.toastId === void 0) {
3003
+ return {
3004
+ ...state,
3005
+ toasts: []
3006
+ };
3007
+ }
3008
+ return {
3009
+ ...state,
3010
+ toasts: state.toasts.filter((t) => t.id !== action.toastId)
3011
+ };
3012
+ }
3013
+ };
3014
+ var listeners = [];
3015
+ var memoryState = { toasts: [] };
3016
+ function dispatch(action) {
3017
+ memoryState = reducer(memoryState, action);
3018
+ listeners.forEach((listener) => {
3019
+ listener(memoryState);
3020
+ });
3021
+ }
3022
+ function toast({ ...props }) {
3023
+ const id = genId();
3024
+ const update = (props2) => dispatch({
3025
+ type: "UPDATE_TOAST",
3026
+ toast: { ...props2, id }
3027
+ });
3028
+ const dismiss = () => dispatch({ type: "DISMISS_TOAST", toastId: id });
3029
+ dispatch({
3030
+ type: "ADD_TOAST",
3031
+ toast: {
3032
+ ...props,
3033
+ id,
3034
+ open: true,
3035
+ onOpenChange: (open) => {
3036
+ if (!open) dismiss();
3037
+ }
3038
+ }
3039
+ });
3040
+ return {
3041
+ id,
3042
+ dismiss,
3043
+ update
3044
+ };
3045
+ }
3046
+ function useToast() {
3047
+ const [state, setState] = React15.useState(memoryState);
3048
+ React15.useEffect(() => {
3049
+ listeners.push(setState);
3050
+ return () => {
3051
+ const index = listeners.indexOf(setState);
3052
+ if (index > -1) {
3053
+ listeners.splice(index, 1);
3054
+ }
3055
+ };
3056
+ }, []);
3057
+ return {
3058
+ ...state,
3059
+ toast,
3060
+ dismiss: (toastId) => dispatch({ type: "DISMISS_TOAST", toastId })
3061
+ };
3062
+ }
3063
+ var Toast = ({ toast: toast2 }) => {
3064
+ const { id, title, description, action, ...props } = toast2;
3065
+ return /* @__PURE__ */ jsxRuntime.jsxs(ToastContainer, { ...props, children: [
3066
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: styles56__default.default["toast-copy"], children: [
3067
+ title && /* @__PURE__ */ jsxRuntime.jsx(ToastTitle, { children: title }),
3068
+ description && /* @__PURE__ */ jsxRuntime.jsx(ToastDescription, { children: description })
3069
+ ] }),
3070
+ action && /* @__PURE__ */ jsxRuntime.jsx("div", { className: styles56__default.default["toast-action"], children: action }),
3071
+ /* @__PURE__ */ jsxRuntime.jsx(ToastClose, {})
3072
+ ] });
3073
+ };
3074
+ var Toaster = () => {
3075
+ const { toasts } = useToast();
3076
+ return toasts.map(function(toast2) {
3077
+ return /* @__PURE__ */ jsxRuntime.jsx(Toast, { toast: toast2 }, toast2.id);
3078
+ });
3079
+ };
3080
+ var ToastRoot = () => {
3081
+ return /* @__PURE__ */ jsxRuntime.jsxs(ToastProvider, { children: [
3082
+ /* @__PURE__ */ jsxRuntime.jsx(Toaster, {}),
3083
+ /* @__PURE__ */ jsxRuntime.jsx(ToastViewport, {})
3084
+ ] });
3085
+ };
3086
+ var TruncatedDescription = ({
3087
+ className,
3088
+ description,
3089
+ maxLength = 120
3090
+ }) => {
3091
+ const plainText = removeHtmlTags(description);
3092
+ const isLongDescription = plainText.length > maxLength;
3093
+ const truncatedDescription = isLongDescription ? `${description.slice(0, maxLength)}...` : description;
3094
+ const [expanded, setExpanded] = React15.useState(!isLongDescription);
3095
+ const displayDescription = expanded ? description : truncatedDescription;
3096
+ const handleToggle = (e) => {
3097
+ e.stopPropagation();
3098
+ setExpanded(!expanded);
3099
+ };
3100
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn(styles57__default.default["truncated-description"], className), children: [
3101
+ /* @__PURE__ */ jsxRuntime.jsx("div", { dangerouslySetInnerHTML: { __html: displayDescription } }),
3102
+ isLongDescription && /* @__PURE__ */ jsxRuntime.jsx(Button, { variant: "link", size: "sm", onClick: handleToggle, children: expanded ? "Show less" : "Show more" })
3103
+ ] });
3104
+ };
3105
+ var removeHtmlTags = (html) => {
3106
+ return html.replace(/<[^>]*>/g, "");
3107
+ };
3108
+ var Heading = React15.forwardRef(
3109
+ ({ className, as, displayAs, children, ...props }, ref) => {
3110
+ const displayClasses = {
3111
+ h1: styles58__default.default["h1"],
3112
+ h2: styles58__default.default["h2"],
3113
+ h3: styles58__default.default["h3"],
3114
+ h4: styles58__default.default["h4"],
3115
+ h5: styles58__default.default["h5"],
3116
+ h6: styles58__default.default["h6"]
3117
+ };
3118
+ const displayClass = displayClasses[displayAs] || displayClasses[as];
3119
+ const HeadingTag = as;
3120
+ return /* @__PURE__ */ jsxRuntime.jsx(HeadingTag, { ref, className: cn(displayClass, className), ...props, children });
3121
+ }
3122
+ );
3123
+ Heading.displayName = "Heading";
3124
+ var ControlStatusBadge = ({ status, display = "both" }) => {
3125
+ const config = getStatusConfig(status);
3126
+ return /* @__PURE__ */ jsxRuntime.jsx(Badge, { icon: config.icon, display, className: config.className, variant: null, children: config.label });
3127
+ };
3128
+ var getStatusConfig = (status) => {
3129
+ switch (status) {
3130
+ case "in-progress":
3131
+ return {
3132
+ icon: "Clock",
3133
+ className: styles59__default.default["badge--in-progress"],
3134
+ label: "In Progress"
3135
+ };
3136
+ case "not-started":
3137
+ return {
3138
+ icon: "Circle",
3139
+ className: styles59__default.default["badge--not-started"],
3140
+ label: "Not Started"
3141
+ };
3142
+ case "ready-for-review":
3143
+ return {
3144
+ icon: "ClipboardCheck",
3145
+ className: styles59__default.default["badge--ready-for-review"],
3146
+ label: "Ready for Review"
3147
+ };
3148
+ case "in-review":
3149
+ return {
3150
+ icon: "Eye",
3151
+ className: styles59__default.default["badge--in-review"],
3152
+ label: "In Review"
3153
+ };
3154
+ case "comment":
3155
+ return {
3156
+ icon: "MessageCircle",
3157
+ className: styles59__default.default["badge--comment"],
3158
+ label: "Comment"
3159
+ };
3160
+ case "not-applicable":
3161
+ return {
3162
+ icon: "MinusCircle",
3163
+ className: styles59__default.default["badge--not-applicable"],
3164
+ label: "Not Applicable"
3165
+ };
3166
+ case "accepted":
3167
+ return {
3168
+ icon: /* @__PURE__ */ jsxRuntime.jsx(MessageCircleCheckIcon, {}),
3169
+ className: styles59__default.default["badge--accepted"],
3170
+ label: "Accepted"
3171
+ };
3172
+ case "questioned":
3173
+ return {
3174
+ icon: "MessageCircleQuestion",
3175
+ className: styles59__default.default["badge--question"],
3176
+ label: "Questioned"
3177
+ };
3178
+ case "general":
3179
+ return {
3180
+ icon: "MessageCircle",
3181
+ className: styles59__default.default["badge--comment"],
3182
+ label: "General"
3183
+ };
3184
+ case "compliant":
3185
+ return {
3186
+ icon: "Check",
3187
+ className: styles59__default.default["badge--compliant"],
3188
+ label: "Compliant"
3189
+ };
3190
+ case "non-compliant":
3191
+ return {
3192
+ icon: "X",
3193
+ className: styles59__default.default["badge--non-compliant"],
3194
+ label: "Non-compliant"
3195
+ };
3196
+ default:
3197
+ return {
3198
+ icon: "Circle",
3199
+ className: styles59__default.default["badge--not-started"],
3200
+ label: status
3201
+ };
3202
+ }
3203
+ };
3204
+ var MessageCircleCheckIcon = ({ className }) => {
3205
+ return /* @__PURE__ */ jsxRuntime.jsxs(
3206
+ "svg",
3207
+ {
3208
+ xmlns: "http://www.w3.org/2000/svg",
3209
+ width: "12",
3210
+ height: "12",
3211
+ viewBox: "0 0 24 24",
3212
+ fill: "none",
3213
+ stroke: "currentColor",
3214
+ "stroke-width": "2",
3215
+ "stroke-linecap": "round",
3216
+ "stroke-linejoin": "round",
3217
+ children: [
3218
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M2.992 16.342a2 2 0 0 1 .094 1.167l-1.065 3.29a1 1 0 0 0 1.236 1.168l3.413-.998a2 2 0 0 1 1.099.092 10 10 0 1 0-4.777-4.719" }),
3219
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "m9 12 2 2 4-4" })
3220
+ ]
3221
+ }
3222
+ );
3223
+ };
3224
+ var Portal8 = () => {
3225
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { id: "equality-theme-provider-root-portal" });
3226
+ };
3227
+ var ThemeProvider = ({ customVars, children }) => {
3228
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { id: "equality-theme-provider-root", className: styles60__default.default.root, style: customVars, children: [
3229
+ children,
3230
+ /* @__PURE__ */ jsxRuntime.jsx(Portal8, {})
3231
+ ] });
3232
+ };
3233
+
3234
+ exports.Alert = Alert;
3235
+ exports.AlertDescription = AlertDescription;
3236
+ exports.AlertDialog = AlertDialog;
3237
+ exports.AlertDialogAction = AlertDialogAction;
3238
+ exports.AlertDialogCancel = AlertDialogCancel;
3239
+ exports.AlertDialogContent = AlertDialogContent;
3240
+ exports.AlertDialogDescription = AlertDialogDescription;
3241
+ exports.AlertDialogFooter = AlertDialogFooter;
3242
+ exports.AlertDialogHeader = AlertDialogHeader;
3243
+ exports.AlertDialogOverlay = AlertDialogOverlay;
3244
+ exports.AlertDialogPortal = AlertDialogPortal;
3245
+ exports.AlertDialogTitle = AlertDialogTitle;
3246
+ exports.AlertDialogTrigger = AlertDialogTrigger;
3247
+ exports.AlertTitle = AlertTitle;
3248
+ exports.Avatar = Avatar;
3249
+ exports.AvatarFallback = AvatarFallback;
3250
+ exports.AvatarImage = AvatarImage;
3251
+ exports.Badge = Badge;
3252
+ exports.BgGradient = BgGradient;
3253
+ exports.Button = Button;
3254
+ exports.Card = Card;
3255
+ exports.CardContent = CardContent;
3256
+ exports.CardContentHeader = CardContentHeader;
3257
+ exports.CardDescription = CardDescription;
3258
+ exports.CardFooter = CardFooter;
3259
+ exports.CardHeader = CardHeader;
3260
+ exports.CardTitle = CardTitle;
3261
+ exports.Checkbox = Checkbox;
3262
+ exports.CodeBlock = CodeBlock;
3263
+ exports.Command = Command;
3264
+ exports.CommandDialog = CommandDialog;
3265
+ exports.CommandEmpty = CommandEmpty;
3266
+ exports.CommandGroup = CommandGroup;
3267
+ exports.CommandInput = CommandInput;
3268
+ exports.CommandItem = CommandItem;
3269
+ exports.CommandList = CommandList;
3270
+ exports.CommandSeparator = CommandSeparator;
3271
+ exports.CommandShortcut = CommandShortcut;
3272
+ exports.ControlStatusBadge = ControlStatusBadge;
3273
+ exports.CopyButton = CopyButton;
3274
+ exports.DateRangePicker = DateRangePicker;
3275
+ exports.Dialog = Dialog;
3276
+ exports.DialogClose = DialogClose;
3277
+ exports.DialogContainer = DialogContainer;
3278
+ exports.DialogContent = DialogContent;
3279
+ exports.DialogDescription = DialogDescription;
3280
+ exports.DialogFooter = DialogFooter;
3281
+ exports.DialogHeader = DialogHeader;
3282
+ exports.DialogOverlay = DialogOverlay;
3283
+ exports.DialogPortal = DialogPortal;
3284
+ exports.DialogTitle = DialogTitle;
3285
+ exports.DialogTrigger = DialogTrigger;
3286
+ exports.DisplayField = DisplayField;
3287
+ exports.Drawer = Drawer;
3288
+ exports.DrawerClose = DrawerClose;
3289
+ exports.DrawerContent = DrawerContent;
3290
+ exports.DrawerDescription = DrawerDescription;
3291
+ exports.DrawerFooter = DrawerFooter;
3292
+ exports.DrawerHeader = DrawerHeader;
3293
+ exports.DrawerHeaderActions = DrawerHeaderActions;
3294
+ exports.DrawerInnerContent = DrawerInnerContent;
3295
+ exports.DrawerOverlay = DrawerOverlay;
3296
+ exports.DrawerPortal = DrawerPortal;
3297
+ exports.DrawerTitle = DrawerTitle;
3298
+ exports.DrawerTrigger = DrawerTrigger;
3299
+ exports.DropdownMenu = DropdownMenu;
3300
+ exports.DropdownMenuCheckboxItem = DropdownMenuCheckboxItem;
3301
+ exports.DropdownMenuContent = DropdownMenuContent;
3302
+ exports.DropdownMenuGroup = DropdownMenuGroup;
3303
+ exports.DropdownMenuItem = DropdownMenuItem;
3304
+ exports.DropdownMenuLabel = DropdownMenuLabel;
3305
+ exports.DropdownMenuPortal = DropdownMenuPortal;
3306
+ exports.DropdownMenuRadioGroup = DropdownMenuRadioGroup;
3307
+ exports.DropdownMenuRadioItem = DropdownMenuRadioItem;
3308
+ exports.DropdownMenuSeparator = DropdownMenuSeparator;
3309
+ exports.DropdownMenuShortcut = DropdownMenuShortcut;
3310
+ exports.DropdownMenuSub = DropdownMenuSub;
3311
+ exports.DropdownMenuSubContent = DropdownMenuSubContent;
3312
+ exports.DropdownMenuSubTrigger = DropdownMenuSubTrigger;
3313
+ exports.DropdownMenuTrigger = DropdownMenuTrigger;
3314
+ exports.ELEVATION = ELEVATION;
3315
+ exports.EmptyTableState = EmptyTableState;
3316
+ exports.FilterDropdown = FilterDropdown;
3317
+ exports.Form = Form;
3318
+ exports.FormControl = FormControl;
3319
+ exports.FormDescription = FormDescription;
3320
+ exports.FormField = FormField;
3321
+ exports.FormItem = FormItem;
3322
+ exports.FormLabel = FormLabel;
3323
+ exports.FormMessage = FormMessage;
3324
+ exports.Heading = Heading;
3325
+ exports.Icon = Icon;
3326
+ exports.IconButton = IconButton;
3327
+ exports.InfoCard = InfoCard;
3328
+ exports.Input = Input;
3329
+ exports.Label = Label2;
3330
+ exports.ListOrGridViewToggle = ListOrGridViewToggle;
3331
+ exports.LoadingOverlay = LoadingOverlay;
3332
+ exports.MetricCard = MetricCard;
3333
+ exports.MotionCollapsibleContent = MotionCollapsibleContent;
3334
+ exports.NotFound = NotFound;
3335
+ exports.Pagination = Pagination;
3336
+ exports.PanelLabel = PanelLabel;
3337
+ exports.Popover = Popover;
3338
+ exports.PopoverContent = PopoverContent;
3339
+ exports.PopoverTrigger = PopoverTrigger;
3340
+ exports.Progress = Progress;
3341
+ exports.RadialGraph = RadialGraph;
3342
+ exports.RadioDropdown = RadioDropdown;
3343
+ exports.RadioGroup = RadioGroup2;
3344
+ exports.RadioGroupItem = RadioGroupItem;
3345
+ exports.ResourceBadge = ResourceBadge;
3346
+ exports.ScrollArea = ScrollArea;
3347
+ exports.ScrollBar = ScrollBar;
3348
+ exports.SearchBar = SearchBar;
3349
+ exports.SectionHeading = SectionHeading;
3350
+ exports.Select = Select;
3351
+ exports.SelectContent = SelectContent;
3352
+ exports.SelectGroup = SelectGroup;
3353
+ exports.SelectItem = SelectItem;
3354
+ exports.SelectLabel = SelectLabel;
3355
+ exports.SelectScrollDownButton = SelectScrollDownButton;
3356
+ exports.SelectScrollUpButton = SelectScrollUpButton;
3357
+ exports.SelectSeparator = SelectSeparator;
3358
+ exports.SelectTrigger = SelectTrigger;
3359
+ exports.SelectValue = SelectValue;
3360
+ exports.Separator = Separator3;
3361
+ exports.Sheet = Sheet;
3362
+ exports.SheetClose = SheetClose;
3363
+ exports.SheetContainer = SheetContainer;
3364
+ exports.SheetContent = SheetContent;
3365
+ exports.SheetDescription = SheetDescription;
3366
+ exports.SheetFooter = SheetFooter;
3367
+ exports.SheetHeader = SheetHeader;
3368
+ exports.SheetHeaderIcon = SheetHeaderIcon;
3369
+ exports.SheetOverlay = SheetOverlay;
3370
+ exports.SheetPortal = SheetPortal;
3371
+ exports.SheetTitle = SheetTitle;
3372
+ exports.SheetTrigger = SheetTrigger;
3373
+ exports.Skeleton = Skeleton;
3374
+ exports.SortButton = SortButton;
3375
+ exports.SortSelector = SortSelector;
3376
+ exports.Spinner = Spinner;
3377
+ exports.Switch = Switch;
3378
+ exports.Table = Table;
3379
+ exports.TableBody = TableBody;
3380
+ exports.TableCaption = TableCaption;
3381
+ exports.TableCell = TableCell;
3382
+ exports.TableContainer = TableContainer;
3383
+ exports.TableFooter = TableFooter;
3384
+ exports.TableHead = TableHead;
3385
+ exports.TableHeader = TableHeader;
3386
+ exports.TableRow = TableRow;
3387
+ exports.Tabs = Tabs;
3388
+ exports.TabsContainer = TabsContainer;
3389
+ exports.TabsContent = TabsContent;
3390
+ exports.TabsList = TabsList;
3391
+ exports.TabsTrigger = TabsTrigger;
3392
+ exports.Textarea = Textarea;
3393
+ exports.ThemeProvider = ThemeProvider;
3394
+ exports.Toast = Toast;
3395
+ exports.ToastAction = ToastAction;
3396
+ exports.ToastClose = ToastClose;
3397
+ exports.ToastContainer = ToastContainer;
3398
+ exports.ToastDescription = ToastDescription;
3399
+ exports.ToastProvider = ToastProvider;
3400
+ exports.ToastRoot = ToastRoot;
3401
+ exports.ToastTitle = ToastTitle;
3402
+ exports.ToastViewport = ToastViewport;
3403
+ exports.Toaster = Toaster;
3404
+ exports.Tooltip = Tooltip;
3405
+ exports.TooltipContent = TooltipContent;
3406
+ exports.TooltipProvider = TooltipProvider;
3407
+ exports.TooltipTrigger = TooltipTrigger;
3408
+ exports.TruncatedDescription = TruncatedDescription;
3409
+ exports.badgeVariants = badgeVariants;
3410
+ exports.buttonVariants = buttonVariants;
3411
+ exports.displayFieldVariants = displayFieldVariants;
3412
+ exports.iconButtonVariants = iconButtonVariants;
3413
+ exports.reducer = reducer;
3414
+ exports.toast = toast;
3415
+ exports.useFormField = useFormField;
3416
+ exports.useTheme = useTheme;
3417
+ exports.useToast = useToast;
3418
+ //# sourceMappingURL=index.cjs.map
3419
+ //# sourceMappingURL=index.cjs.map