@muffled-ui/react 1.0.21

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.
package/dist/index.js ADDED
@@ -0,0 +1,4476 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __defProps = Object.defineProperties;
5
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
6
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
7
+ var __getOwnPropNames = Object.getOwnPropertyNames;
8
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
9
+ var __getProtoOf = Object.getPrototypeOf;
10
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
11
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
12
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
13
+ var __spreadValues = (a, b) => {
14
+ for (var prop in b || (b = {}))
15
+ if (__hasOwnProp.call(b, prop))
16
+ __defNormalProp(a, prop, b[prop]);
17
+ if (__getOwnPropSymbols)
18
+ for (var prop of __getOwnPropSymbols(b)) {
19
+ if (__propIsEnum.call(b, prop))
20
+ __defNormalProp(a, prop, b[prop]);
21
+ }
22
+ return a;
23
+ };
24
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
25
+ var __objRest = (source, exclude) => {
26
+ var target = {};
27
+ for (var prop in source)
28
+ if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
29
+ target[prop] = source[prop];
30
+ if (source != null && __getOwnPropSymbols)
31
+ for (var prop of __getOwnPropSymbols(source)) {
32
+ if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
33
+ target[prop] = source[prop];
34
+ }
35
+ return target;
36
+ };
37
+ var __export = (target, all) => {
38
+ for (var name in all)
39
+ __defProp(target, name, { get: all[name], enumerable: true });
40
+ };
41
+ var __copyProps = (to, from, except, desc) => {
42
+ if (from && typeof from === "object" || typeof from === "function") {
43
+ for (let key of __getOwnPropNames(from))
44
+ if (!__hasOwnProp.call(to, key) && key !== except)
45
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
46
+ }
47
+ return to;
48
+ };
49
+ var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
50
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
51
+ // If the importer is in node compatibility mode or this is not an ESM
52
+ // file that has been converted to a CommonJS file using a Babel-
53
+ // compatible transform (i.e. "__esModule" has not been set), then set
54
+ // "default" to the CommonJS "module.exports" for node compatibility.
55
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
56
+ mod
57
+ ));
58
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
59
+
60
+ // src/index.ts
61
+ var index_exports = {};
62
+ __export(index_exports, {
63
+ Accordion: () => Accordion,
64
+ AccordionDetail: () => AccordionDetail,
65
+ AccordionSummary: () => AccordionSummary,
66
+ Alert: () => Alert,
67
+ Backdrop: () => Backdrop,
68
+ Badge: () => Badge,
69
+ BasePicker: () => BasePicker,
70
+ BaseUploader: () => BaseUploader,
71
+ Box: () => Box,
72
+ Breadcrumbs: () => Breadcrumbs,
73
+ Button: () => Button,
74
+ ButtonGroup: () => ButtonGroup,
75
+ Card: () => Card,
76
+ CardContent: () => CardContent,
77
+ CardMedia: () => CardMedia,
78
+ CenteredWidget: () => CenteredWidget,
79
+ Checkbox: () => Checkbox,
80
+ Chip: () => Chip,
81
+ CircleLoader: () => CircleLoader,
82
+ CircleProgress: () => CircleProgress,
83
+ ClickOutside: () => ClickOutside,
84
+ ClickableElement: () => ClickableElement,
85
+ Collapse: () => Collapse,
86
+ Container: () => Container5,
87
+ DarkTheme: () => DarkTheme,
88
+ DatePicker: () => DatePicker,
89
+ DateRangePicker: () => DateRangePicker,
90
+ DestructiveButton: () => DestructiveButton,
91
+ DetailsGrouping: () => DetailsGrouping,
92
+ Drawer: () => Drawer,
93
+ Fade: () => Fade,
94
+ GlobalStyles: () => GlobalStyles,
95
+ Grow: () => Grow,
96
+ ImageComp: () => ImageComp,
97
+ Input: () => Input2,
98
+ InputGroup: () => InputGroup,
99
+ Label: () => Label3,
100
+ LightTheme: () => LightTheme,
101
+ LinearLoader: () => LinearLoader,
102
+ LinearProgress: () => LinearProgress,
103
+ LinearSlide: () => LinearSlide,
104
+ List: () => List,
105
+ ListItem: () => ListItem,
106
+ Menu: () => Menu,
107
+ MenuItem: () => MenuItem,
108
+ Modal: () => Modal,
109
+ MuffledUI: () => MuffledUI,
110
+ NumberField: () => NumberField,
111
+ Open: () => Open,
112
+ OrderedList: () => OrderedList,
113
+ OutlineButton: () => OutlineButton,
114
+ Pagination: () => Pagination,
115
+ Panel: () => Panel,
116
+ Password: () => Password,
117
+ Portal: () => Portal,
118
+ PrimaryButton: () => PrimaryButton,
119
+ Radio: () => Radio,
120
+ RadioIcon: () => RadioIcon,
121
+ Scrollable: () => Scrollable,
122
+ SecondaryButton: () => SecondaryButton,
123
+ Select: () => Select,
124
+ SelectButton: () => SelectButton,
125
+ SelectContext: () => SelectContext,
126
+ SelectFilter: () => SelectFilter,
127
+ SelectItem: () => SelectItem,
128
+ SelectList: () => SelectList,
129
+ SettingsContext: () => SettingsContext,
130
+ SimpleSelect: () => SimpleSelect,
131
+ Skeleton: () => Skeleton,
132
+ Slide: () => Slide,
133
+ SnackbarContext: () => SnackbarContext,
134
+ SnackbarItem: () => SnackbarItem,
135
+ SnackbarProvider: () => SnackbarProvider,
136
+ StepIcon: () => StepIcon,
137
+ StepLabel: () => StepLabel,
138
+ Stepper: () => Stepper,
139
+ StepperContext: () => StepperContext,
140
+ Switch: () => Switch,
141
+ SyntaxHighlighter: () => SyntaxHighlighter,
142
+ TabItem: () => TabItem,
143
+ TabItems: () => TabItems,
144
+ TabPane: () => TabPane,
145
+ TabPaneList: () => TabPaneList,
146
+ Table: () => Table,
147
+ TableBody: () => TableBody,
148
+ TableCell: () => TableCell,
149
+ TableHead: () => TableHead,
150
+ TableRow: () => TableRow,
151
+ Tabs: () => Tabs,
152
+ TextArea: () => TextArea,
153
+ ThemeButton: () => ThemeButton,
154
+ ThemeSwitch: () => ThemeSwitch,
155
+ ThreeColumns: () => ThreeColumns,
156
+ Title: () => Title,
157
+ Tooltip: () => Tooltip,
158
+ TwoColumns: () => TwoColumns,
159
+ Typography: () => Typography,
160
+ UnorderedList: () => UnorderedList,
161
+ UploadButton: () => UploadButton,
162
+ UploadZone: () => UploadZone,
163
+ clearInputOnSelectItem: () => clearInputOnSelectItem,
164
+ stopPropagation: () => stopPropagation,
165
+ useMuffledSettings: () => useMuffledSettings,
166
+ useSelectContext: () => useSelectContext,
167
+ useSnackbar: () => useSnackbar,
168
+ useStepperContext: () => useStepperContext
169
+ });
170
+ module.exports = __toCommonJS(index_exports);
171
+
172
+ // src/inputs/Button/Button.tsx
173
+ var import_react2 = require("react");
174
+ var import_styled_components2 = __toESM(require("styled-components"));
175
+
176
+ // src/inputs/Button/BaseButton.tsx
177
+ var import_react = require("react");
178
+ var import_styled_components = __toESM(require("styled-components"));
179
+ var import_styled_system = require("styled-system");
180
+ var import_jsx_runtime = require("react/jsx-runtime");
181
+ var StyledButton = import_styled_components.default.button`
182
+ display: inline-flex;
183
+ place-content: center;
184
+ align-items: center;
185
+ user-select: none;
186
+ border-radius: ${({ theme: theme2 }) => theme2.radii[3]};
187
+ padding: ${({ theme: theme2 }) => `${theme2.space[2]} ${theme2.space[3]}`};
188
+ font-size: ${({ theme: theme2 }) => theme2.fontSizes[1]};
189
+ line-height: ${({ theme: theme2 }) => theme2.lineHeights[1]};
190
+ font-weight: 500;
191
+ > :not([hidden]) ~ :not([hidden]) {
192
+ margin-left: 0.5rem;
193
+ }
194
+ ${({ disabled }) => disabled && "cursor: not-allowed;"}
195
+ ${import_styled_system.layout}
196
+ ${import_styled_system.border}
197
+ ${import_styled_system.position}
198
+ ${import_styled_system.color}
199
+ ${import_styled_system.space}
200
+ ${import_styled_system.typography}
201
+ ${import_styled_system.flexbox}
202
+ ${import_styled_system.boxShadow}
203
+ `;
204
+ var BaseButton = (0, import_react.forwardRef)((_a, ref) => {
205
+ var _b = _a, {
206
+ children,
207
+ disabled
208
+ } = _b, rest = __objRest(_b, [
209
+ "children",
210
+ "disabled"
211
+ ]);
212
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(StyledButton, __spreadProps(__spreadValues({ ref, disabled }, rest), { children }));
213
+ });
214
+
215
+ // src/inputs/Button/Button.tsx
216
+ var import_polished = require("polished");
217
+ var import_jsx_runtime2 = require("react/jsx-runtime");
218
+ var StyledButton2 = (0, import_styled_components2.default)(BaseButton)`
219
+ color: ${({ theme: theme2 }) => theme2.colors.foreground};
220
+ background: ${({ theme: theme2, active }) => active ? theme2.colors.accent : "transparent"};
221
+ :disabled {
222
+ color: ${({ theme: theme2 }) => theme2.colors.mutedForeground};
223
+ }
224
+ :hover {
225
+ background: ${({ theme: theme2, active }) => active ? (0, import_polished.darken)(0.05, theme2.colors.accent) : theme2.colors.accent};
226
+ }
227
+ `;
228
+ var Button = (0, import_react2.forwardRef)((_a, ref) => {
229
+ var _b = _a, { children, color: color6 } = _b, rest = __objRest(_b, ["children", "color"]);
230
+ return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(StyledButton2, __spreadProps(__spreadValues({ ref }, rest), { children }));
231
+ });
232
+
233
+ // src/inputs/Button/PrimaryButton.tsx
234
+ var import_react3 = require("react");
235
+ var import_styled_components3 = __toESM(require("styled-components"));
236
+ var import_jsx_runtime3 = require("react/jsx-runtime");
237
+ var StyledButton3 = (0, import_styled_components3.default)(BaseButton)`
238
+ :hover {
239
+ opacity: 0.8;
240
+ }
241
+ :disabled {
242
+ opacity: 0.8;
243
+ }
244
+ `;
245
+ var PrimaryButton = (0, import_react3.forwardRef)((_a, ref) => {
246
+ var _b = _a, {
247
+ children
248
+ } = _b, rest = __objRest(_b, [
249
+ "children"
250
+ ]);
251
+ return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
252
+ StyledButton3,
253
+ __spreadProps(__spreadValues({
254
+ color: "background",
255
+ bg: "primary",
256
+ ref
257
+ }, rest), {
258
+ children
259
+ })
260
+ );
261
+ });
262
+
263
+ // src/inputs/Button/SecondaryButton.tsx
264
+ var import_react4 = require("react");
265
+ var import_styled_components4 = __toESM(require("styled-components"));
266
+ var import_jsx_runtime4 = require("react/jsx-runtime");
267
+ var StyledButton4 = (0, import_styled_components4.default)(BaseButton)`
268
+ :hover {
269
+ opacity: 0.7;
270
+ }
271
+ :disabled {
272
+ opacity: 0.7;
273
+ }
274
+ `;
275
+ var SecondaryButton = (0, import_react4.forwardRef)((_a, ref) => {
276
+ var _b = _a, {
277
+ children
278
+ } = _b, rest = __objRest(_b, [
279
+ "children"
280
+ ]);
281
+ return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
282
+ StyledButton4,
283
+ __spreadProps(__spreadValues({
284
+ color: "secondaryForeground",
285
+ bg: "secondary",
286
+ ref
287
+ }, rest), {
288
+ children
289
+ })
290
+ );
291
+ });
292
+
293
+ // src/inputs/Button/DestructiveButton.tsx
294
+ var import_react5 = require("react");
295
+ var import_styled_components5 = __toESM(require("styled-components"));
296
+ var import_polished2 = require("polished");
297
+ var import_jsx_runtime5 = require("react/jsx-runtime");
298
+ var StyledButton5 = (0, import_styled_components5.default)(BaseButton)`
299
+ :hover {
300
+ background: ${({ theme: theme2 }) => (0, import_polished2.darken)(0.1, theme2.colors.destructive)};
301
+ }
302
+ :disabled {
303
+ opacity: 0.8;
304
+ }
305
+ `;
306
+ var DestructiveButton = (0, import_react5.forwardRef)((_a, ref) => {
307
+ var _b = _a, {
308
+ children
309
+ } = _b, rest = __objRest(_b, [
310
+ "children"
311
+ ]);
312
+ return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
313
+ StyledButton5,
314
+ __spreadProps(__spreadValues({
315
+ color: "destructiveForeground",
316
+ bg: "destructive",
317
+ ref
318
+ }, rest), {
319
+ children
320
+ })
321
+ );
322
+ });
323
+
324
+ // src/inputs/Button/OutlineButton.tsx
325
+ var import_react6 = require("react");
326
+ var import_styled_components6 = __toESM(require("styled-components"));
327
+ var import_jsx_runtime6 = require("react/jsx-runtime");
328
+ var StyledButton6 = (0, import_styled_components6.default)(BaseButton)`
329
+ :disabled {
330
+ background: ${({ theme: theme2 }) => theme2.colors.accent};
331
+ }
332
+ :hover:not(:disabled) {
333
+ background: ${({ theme: theme2 }) => theme2.colors.accent};
334
+ }
335
+ `;
336
+ var OutlineButton = (0, import_react6.forwardRef)((_a, ref) => {
337
+ var _b = _a, { children } = _b, rest = __objRest(_b, ["children"]);
338
+ return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
339
+ StyledButton6,
340
+ __spreadProps(__spreadValues({
341
+ backgroundColor: "background",
342
+ boxShadow: "base.0",
343
+ border: "border.1",
344
+ color: "foreground",
345
+ lineHeight: "18px",
346
+ ref
347
+ }, rest), {
348
+ children
349
+ })
350
+ );
351
+ });
352
+
353
+ // src/inputs/Button/ClickableElement.tsx
354
+ var import_react7 = require("react");
355
+ var import_jsx_runtime7 = require("react/jsx-runtime");
356
+ var ClickableElement = (0, import_react7.forwardRef)((_a, ref) => {
357
+ var _b = _a, { children } = _b, rest = __objRest(_b, ["children"]);
358
+ return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
359
+ BaseButton,
360
+ __spreadProps(__spreadValues({
361
+ padding: "0",
362
+ backgroundColor: "transparent",
363
+ fontWeight: "inherit",
364
+ lineHeight: "inherit",
365
+ fontSize: "inherit",
366
+ ref
367
+ }, rest), {
368
+ children
369
+ })
370
+ );
371
+ });
372
+
373
+ // src/utils/Transitions/Collapse.tsx
374
+ var import_react_use = require("react-use");
375
+ var import_react_spring = require("react-spring");
376
+
377
+ // src/shared/usePrevious.tsx
378
+ var import_react8 = require("react");
379
+ function usePrevious(state) {
380
+ let ref = (0, import_react8.useRef)();
381
+ (0, import_react8.useEffect)(() => {
382
+ ref.current = state;
383
+ });
384
+ return ref.current;
385
+ }
386
+
387
+ // src/utils/Transitions/Collapse.tsx
388
+ var import_jsx_runtime8 = require("react/jsx-runtime");
389
+ var Collapse = (_a) => {
390
+ var _b = _a, { children, inProp = false } = _b, rest = __objRest(_b, ["children", "inProp"]);
391
+ let previous = usePrevious(inProp);
392
+ let [ref, { height: viewHeight }] = (0, import_react_use.useMeasure)();
393
+ let { height } = (0, import_react_spring.useSpring)(__spreadValues({
394
+ from: { height: 0 },
395
+ to: { height: inProp ? viewHeight : 0 }
396
+ }, rest));
397
+ return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_react_spring.animated.div, { style: { overflow: "hidden", height: inProp && previous === inProp ? "auto" : height }, children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_react_spring.animated.div, { ref, children }) });
398
+ };
399
+
400
+ // src/utils/Transitions/Slide.tsx
401
+ var import_react9 = require("react");
402
+ var import_react_spring2 = require("react-spring");
403
+ var import_jsx_runtime9 = require("react/jsx-runtime");
404
+ var Slide = (_a) => {
405
+ var _b = _a, { children, inProp } = _b, rest = __objRest(_b, ["children", "inProp"]);
406
+ let ref = (0, import_react9.useRef)(null);
407
+ let springRef = (0, import_react_spring2.useSpringRef)();
408
+ let { opacity } = (0, import_react_spring2.useSpring)({
409
+ ref: springRef,
410
+ from: { opacity: 1 },
411
+ to: { opacity: 0 }
412
+ });
413
+ let transRef = (0, import_react_spring2.useSpringRef)();
414
+ let transitions = (0, import_react_spring2.useTransition)(inProp, __spreadValues({
415
+ ref: transRef,
416
+ from: { translateX: "100%" },
417
+ enter: { translateX: "0" },
418
+ leave: { translateX: "100%" },
419
+ reverse: inProp
420
+ }, rest));
421
+ (0, import_react_spring2.useChain)(inProp ? [transRef] : [transRef, springRef], [0, 0.2]);
422
+ return transitions(
423
+ (styles, item) => item && /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
424
+ import_react_spring2.animated.div,
425
+ {
426
+ ref,
427
+ style: __spreadProps(__spreadValues({}, styles), { opacity }),
428
+ children
429
+ }
430
+ )
431
+ );
432
+ };
433
+
434
+ // src/utils/Transitions/Fade.tsx
435
+ var import_react_spring3 = require("react-spring");
436
+ var import_jsx_runtime10 = require("react/jsx-runtime");
437
+ var Fade = (_a) => {
438
+ var _b = _a, { children, inProp } = _b, rest = __objRest(_b, ["children", "inProp"]);
439
+ let transitions = (0, import_react_spring3.useTransition)(inProp, __spreadValues({
440
+ from: { opacity: 0 },
441
+ enter: { opacity: 1 },
442
+ leave: { opacity: 0 },
443
+ reverse: inProp
444
+ }, rest));
445
+ return transitions(
446
+ (styles, item) => item && /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_react_spring3.animated.div, { style: styles, children })
447
+ );
448
+ };
449
+
450
+ // src/utils/Transitions/LinearSlide.tsx
451
+ var import_react_spring4 = require("react-spring");
452
+ var import_jsx_runtime11 = require("react/jsx-runtime");
453
+ var LinearSlide = (_a) => {
454
+ var _b = _a, { children } = _b, rest = __objRest(_b, ["children"]);
455
+ let styles = (0, import_react_spring4.useSpring)(__spreadValues({
456
+ from: { translateX: "-100%", left: "0" },
457
+ to: { translateX: "100", left: "100%" },
458
+ config: { duration: 2e3 },
459
+ loop: true
460
+ }, rest));
461
+ return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_react_spring4.animated.div, { style: styles, children });
462
+ };
463
+
464
+ // src/utils/Transitions/Grow.tsx
465
+ var import_react_spring5 = require("react-spring");
466
+ var import_styled_components7 = __toESM(require("styled-components"));
467
+ var import_jsx_runtime12 = require("react/jsx-runtime");
468
+ var Container = (0, import_styled_components7.default)(import_react_spring5.animated.div)`
469
+ transform-origin: top left;
470
+ `;
471
+ var Grow = (_a) => {
472
+ var _b = _a, { children, inProp } = _b, rest = __objRest(_b, ["children", "inProp"]);
473
+ let transitions = (0, import_react_spring5.useTransition)(inProp, __spreadValues({
474
+ from: { opacity: 0, transform: "scale(0)" },
475
+ enter: { opacity: 1, transform: "scale(1)" },
476
+ leave: { opacity: 0, transform: "scale(0)" },
477
+ config: {
478
+ duration: 100
479
+ },
480
+ reverse: inProp
481
+ }, rest));
482
+ return transitions(
483
+ (styles, item) => item && /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(Container, { style: styles, children })
484
+ );
485
+ };
486
+
487
+ // src/utils/Transitions/Open.tsx
488
+ var import_react_spring6 = require("react-spring");
489
+ var import_jsx_runtime13 = require("react/jsx-runtime");
490
+ var Open = (_a) => {
491
+ var _b = _a, { children, direction = "right", inProp } = _b, rest = __objRest(_b, ["children", "direction", "inProp"]);
492
+ let transitions = (0, import_react_spring6.useTransition)(inProp, __spreadValues({
493
+ from: { translateX: direction === "right" ? "100%" : "-100%" },
494
+ enter: { translateX: direction === "right" ? "0%" : "0%" },
495
+ leave: { translateX: direction === "right" ? "100%" : "-100%" },
496
+ reverse: inProp
497
+ }, rest));
498
+ return transitions(
499
+ (styles, item) => item && /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_react_spring6.animated.div, __spreadProps(__spreadValues({}, rest), { style: styles, children }))
500
+ );
501
+ };
502
+
503
+ // src/data/Accordion/AccordionSummary.tsx
504
+ var import_styled_components8 = __toESM(require("styled-components"));
505
+ var import_solid = require("@heroicons/react/24/solid");
506
+ var import_jsx_runtime14 = require("react/jsx-runtime");
507
+ var StyledSummary = (0, import_styled_components8.default)(ClickableElement)`
508
+ width: 100%;
509
+ padding: ${({ theme: theme2 }) => `${theme2.space[2]} ${theme2.space[3]}`};
510
+ border-bottom: ${({ theme: theme2 }) => theme2.borders.border[1]};
511
+ border-left: ${({ theme: theme2 }) => theme2.borders.border[1]};
512
+ border-right: ${({ theme: theme2 }) => theme2.borders.border[1]};
513
+ background: ${({ theme: theme2 }) => theme2.colors.background};
514
+ place-content: flex-start;
515
+ border-radius: 0;
516
+ &:focus {
517
+ box-shadow: none;
518
+ }
519
+ &:first-of-type {
520
+ border-top: ${({ theme: theme2 }) => theme2.borders.border[1]};
521
+ border-top-left-radius: ${({ theme: theme2 }) => theme2.radii[3]};
522
+ border-top-right-radius: ${({ theme: theme2 }) => theme2.radii[3]};
523
+ }
524
+ &:last-of-type {
525
+ ${({ theme: theme2, isOpen }) => !isOpen && `
526
+ border-bottom-left-radius: ${theme2.radii[3]};
527
+ border-bottom-right-radius: ${theme2.radii[3]};
528
+ `}
529
+ }
530
+ `;
531
+ var StyledIcon = (0, import_styled_components8.default)(import_solid.ChevronRightIcon)`
532
+ margin-right: ${({ theme: theme2 }) => theme2.space[3]};
533
+ transition-property: all;
534
+ transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
535
+ transition-duration: 150ms;
536
+ ${({ isOpen }) => isOpen && `
537
+ transform: rotate(90deg);
538
+ `}
539
+ `;
540
+ var AccordionSummary = ({ isOpen, onClick, children }) => /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(StyledSummary, { isOpen, onClick, children: [
541
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
542
+ StyledIcon,
543
+ {
544
+ width: 16,
545
+ height: 16,
546
+ isOpen
547
+ }
548
+ ),
549
+ children
550
+ ] });
551
+
552
+ // src/data/Accordion/AccordionDetail.tsx
553
+ var import_styled_components9 = __toESM(require("styled-components"));
554
+ var AccordionDetail = import_styled_components9.default.div`
555
+ background: ${({ theme: theme2 }) => theme2.colors.background};
556
+ padding: ${({ theme: theme2 }) => `${theme2.space[3]} ${theme2.space[2]}`};
557
+ border-bottom: ${({ theme: theme2 }) => theme2.borders.border[1]};
558
+ border-left: ${({ theme: theme2 }) => theme2.borders.border[1]};
559
+ border-right: ${({ theme: theme2 }) => theme2.borders.border[1]};
560
+ box-shadow: ${({ theme: theme2 }) => theme2.shadows.inner};
561
+ `;
562
+ var DetailsGrouping = import_styled_components9.default.div`
563
+ :last-of-type ${AccordionDetail} {
564
+ border-bottom-left-radius: ${({ theme: theme2 }) => theme2.radii[3]};
565
+ border-bottom-right-radius: ${({ theme: theme2 }) => theme2.radii[3]};
566
+ }
567
+ `;
568
+
569
+ // src/data/Accordion/Accordion.tsx
570
+ var import_jsx_runtime15 = require("react/jsx-runtime");
571
+ var Accordion = ({
572
+ summary,
573
+ children,
574
+ onClick,
575
+ isOpen
576
+ }) => {
577
+ let accodingTitle = typeof summary === "string" ? /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(AccordionSummary, { onClick, isOpen, children: summary }) : /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(ClickableElement, { onClick, children: summary });
578
+ let details = typeof children === "string" ? /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(AccordionDetail, { children }) : children;
579
+ return /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(import_jsx_runtime15.Fragment, { children: [
580
+ accodingTitle,
581
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(DetailsGrouping, { children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(Collapse, { inProp: isOpen, children: details }) })
582
+ ] });
583
+ };
584
+
585
+ // src/data/Box/Box.tsx
586
+ var import_styled_components10 = __toESM(require("styled-components"));
587
+ var import_styled_system2 = require("styled-system");
588
+ var Box = import_styled_components10.default.div`
589
+ ${import_styled_system2.space}
590
+ ${import_styled_system2.layout}
591
+ ${import_styled_system2.color}
592
+ ${import_styled_system2.boxShadow}
593
+ ${import_styled_system2.border}
594
+ ${import_styled_system2.order}
595
+ ${import_styled_system2.grid}
596
+ ${import_styled_system2.flexbox}
597
+ ${import_styled_system2.position}
598
+ ${import_styled_system2.typography}
599
+ ${({ spaceXBetween: spaceXBetween2, theme: theme2 }) => spaceXBetween2 && theme2.spaceXBetween[spaceXBetween2]}
600
+ ${({ spaceYBetween: spaceYBetween2, theme: theme2 }) => spaceYBetween2 && theme2.spaceYBetween[spaceYBetween2]}
601
+ `;
602
+
603
+ // src/data/Cards/Card.tsx
604
+ var import_styled_components11 = __toESM(require("styled-components"));
605
+ var import_styled_system3 = require("styled-system");
606
+ var Card = import_styled_components11.default.div`
607
+ background: ${({ theme: theme2 }) => theme2.colors.background};
608
+ border-radius: ${({ theme: theme2 }) => theme2.radii[3]};
609
+ box-shadow: ${({ theme: theme2 }) => theme2.shadows.base[0]};
610
+ border:${({ theme: theme2 }) => theme2.borders.border[1]};
611
+ overflow: hidden;
612
+ ${import_styled_system3.layout}
613
+ ${import_styled_system3.flexbox}
614
+ ${import_styled_system3.space}
615
+ ${import_styled_system3.color}
616
+ ${import_styled_system3.background}
617
+ `;
618
+
619
+ // src/data/Cards/CardContent.tsx
620
+ var import_styled_components12 = __toESM(require("styled-components"));
621
+ var import_styled_system4 = require("styled-system");
622
+ var CardContent = import_styled_components12.default.div`
623
+ padding-top: ${({ theme: theme2 }) => theme2.space[2]};
624
+ padding-bottom: ${({ theme: theme2 }) => theme2.space[2]};
625
+ padding-left: ${({ theme: theme2 }) => theme2.space[3]};
626
+ padding-right: ${({ theme: theme2 }) => theme2.space[3]};
627
+ ${import_styled_system4.space}
628
+ ${import_styled_system4.border}
629
+ `;
630
+
631
+ // src/data/Cards/CardMedia.tsx
632
+ var import_react10 = require("react");
633
+ var import_styled_components13 = __toESM(require("styled-components"));
634
+ var import_styled_system5 = require("styled-system");
635
+ var import_jsx_runtime16 = require("react/jsx-runtime");
636
+ var MEDIA_COMPONENTS = ["video", "audio", "picture", "iframe", "img"];
637
+ var IMAGE_COMPONENTS = ["picture", "img"];
638
+ var Component = import_styled_components13.default.div`
639
+ ${import_styled_system5.layout}
640
+ object-fit: ${({ isImageComponent }) => isImageComponent ? "cover" : "unset"};
641
+ display: block;
642
+ background-size: cover;
643
+ background-repeat: no-repeat;
644
+ background-position: center;
645
+ ${({ image, showBgImagine }) => showBgImagine ? `background-image: url("${image}");` : ""}
646
+ `;
647
+ var CardMedia = (_a) => {
648
+ var _b = _a, {
649
+ children,
650
+ as,
651
+ image,
652
+ src,
653
+ fallback: fallback2
654
+ } = _b, rest = __objRest(_b, [
655
+ "children",
656
+ "as",
657
+ "image",
658
+ "src",
659
+ "fallback"
660
+ ]);
661
+ let [errored, setError] = (0, import_react10.useState)(false);
662
+ let isImageComponent = IMAGE_COMPONENTS.indexOf(as) !== -1;
663
+ let isMediaComponent = MEDIA_COMPONENTS.indexOf(as) !== -1;
664
+ let showBgImagine = !isMediaComponent && image !== void 0;
665
+ return errored ? /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(import_jsx_runtime16.Fragment, { children: fallback2 }) : /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
666
+ Component,
667
+ __spreadProps(__spreadValues({
668
+ as,
669
+ onError: () => setError(true),
670
+ src,
671
+ isImageComponent,
672
+ isMediaComponent,
673
+ showBgImagine
674
+ }, rest), {
675
+ children
676
+ })
677
+ );
678
+ };
679
+
680
+ // src/data/Image/Image.tsx
681
+ var import_react11 = require("react");
682
+ var import_styled_components14 = __toESM(require("styled-components"));
683
+ var import_styled_system6 = require("styled-system");
684
+ var import_jsx_runtime17 = require("react/jsx-runtime");
685
+ var Img = import_styled_components14.default.img`
686
+ ${import_styled_system6.space}
687
+ ${import_styled_system6.layout}
688
+ ${import_styled_system6.order}
689
+ ${import_styled_system6.grid}
690
+ ${import_styled_system6.flexbox}
691
+ ${import_styled_system6.position}
692
+ `;
693
+ var ImageComp = (_a) => {
694
+ var _b = _a, { fallback: fallback2 } = _b, rest = __objRest(_b, ["fallback"]);
695
+ let [hasError, setError] = (0, import_react11.useState)(false);
696
+ return hasError && fallback2 ? /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(import_jsx_runtime17.Fragment, { children: fallback2 }) : /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(Img, __spreadValues({ onError: () => setError(true) }, rest));
697
+ };
698
+
699
+ // src/data/List/List.tsx
700
+ var import_styled_components15 = __toESM(require("styled-components"));
701
+ var List = import_styled_components15.default.ul`
702
+ list-style-position: inside;
703
+ list-style-type: none;
704
+ `;
705
+
706
+ // src/data/Typography/Typography.tsx
707
+ var import_styled_components16 = __toESM(require("styled-components"));
708
+ var import_styled_system7 = require("styled-system");
709
+ var Typography = import_styled_components16.default.p`
710
+ font-family: ${({ mono, theme: theme2 }) => mono ? theme2.fonts.mono : ""};
711
+ ${import_styled_system7.color}
712
+ ${import_styled_system7.typography}
713
+ `;
714
+
715
+ // src/data/Typography/Title.tsx
716
+ var import_styled_components17 = __toESM(require("styled-components"));
717
+ var import_styled_system8 = require("styled-system");
718
+ var Title = import_styled_components17.default.h1`
719
+ color: ${({ theme: theme2 }) => theme2.colors.foreground};
720
+ font-weight: bold;
721
+ ${import_styled_system8.color}
722
+ ${import_styled_system8.typography}
723
+ ${import_styled_system8.layout}
724
+ ${(0, import_styled_system8.variant)({
725
+ prop: "as",
726
+ variants: {
727
+ h1: { fontSize: 5 },
728
+ h2: { fontSize: 4 },
729
+ h3: { fontSize: 3 },
730
+ h4: { fontSize: 2 },
731
+ h5: { fontSize: 1 },
732
+ h6: { fontSize: 0 }
733
+ }
734
+ })}
735
+ `;
736
+
737
+ // src/data/List/ListItem.tsx
738
+ var import_jsx_runtime18 = require("react/jsx-runtime");
739
+ var ListItem = (_a) => {
740
+ var _b = _a, { children } = _b, rest = __objRest(_b, ["children"]);
741
+ return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Typography, __spreadProps(__spreadValues({ as: "li" }, rest), { children }));
742
+ };
743
+
744
+ // src/data/List/OrderedList.tsx
745
+ var import_styled_components18 = __toESM(require("styled-components"));
746
+ var OrderedList = import_styled_components18.default.ol`
747
+ list-style-type: decimal;
748
+ list-style-position: inside;
749
+ *::marker {
750
+ color:${({ theme: theme2 }) => theme2.colors.foreground};
751
+ }
752
+ `;
753
+
754
+ // src/data/List/UnorderedList.tsx
755
+ var import_styled_components19 = __toESM(require("styled-components"));
756
+ var UnorderedList = import_styled_components19.default.ul`
757
+ list-style-type: disc;
758
+ list-style-position: inside;
759
+ *::marker {
760
+ color:${({ theme: theme2 }) => theme2.colors.foreground};
761
+ }
762
+ `;
763
+
764
+ // src/data/Pagination/Pagination.tsx
765
+ var import_styled_components22 = __toESM(require("styled-components"));
766
+
767
+ // src/data/Pagination/PaginationControls.tsx
768
+ var import_react12 = require("react");
769
+ var import_outline = require("@heroicons/react/24/outline");
770
+
771
+ // src/inputs/ButtonGroup/ButtonGroup.tsx
772
+ var import_styled_components20 = __toESM(require("styled-components"));
773
+ var import_jsx_runtime19 = require("react/jsx-runtime");
774
+ var Grouping = import_styled_components20.default.div`
775
+ ${StyledButton}:not([data-ignore-radius]) {
776
+ border-radius:0;
777
+ }
778
+ ${StyledButton} {
779
+ position: relative;
780
+ margin-right: -1px;
781
+ }
782
+ ${StyledButton}:first-of-type {
783
+ border-top-left-radius: ${({ theme: theme2 }) => theme2.radii[3]};
784
+ border-bottom-left-radius: ${({ theme: theme2 }) => theme2.radii[3]};
785
+ }
786
+
787
+ ${StyledButton}:last-of-type {
788
+ border-top-right-radius: ${({ theme: theme2 }) => theme2.radii[3]};
789
+ border-bottom-right-radius: ${({ theme: theme2 }) => theme2.radii[3]};
790
+ }
791
+ `;
792
+ var ButtonGroup = ({ children }) => /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(Grouping, { children });
793
+
794
+ // src/data/Pagination/utils.ts
795
+ var arrayRange = (from, to) => Array.from(Array(Math.max(0, to - from + 1)), (_, idx) => idx + from);
796
+ var clamp = (value, min, max) => Math.max(min, Math.min(value, max));
797
+ var calculatePageNumbers = (totalPages, currentPage, ellipsis) => {
798
+ let pageNeighbours = 1;
799
+ let totalNumbers = 7;
800
+ let totalControls = totalNumbers + pageNeighbours;
801
+ if (totalPages < totalControls) {
802
+ return arrayRange(1, totalPages);
803
+ }
804
+ let minPageNumber = 3;
805
+ let maxPageNumber = totalPages - 2;
806
+ let startPage = clamp(currentPage - pageNeighbours, minPageNumber, totalPages - 4);
807
+ let endPage = clamp(currentPage + pageNeighbours, 5, maxPageNumber);
808
+ let hasLeftEllipsis = startPage > minPageNumber;
809
+ let hasRightEllipsis = endPage < maxPageNumber;
810
+ return [
811
+ 1,
812
+ hasLeftEllipsis ? ellipsis : 2,
813
+ ...arrayRange(startPage, endPage),
814
+ hasRightEllipsis ? ellipsis : totalPages - 1,
815
+ totalPages
816
+ ];
817
+ };
818
+
819
+ // src/data/Pagination/PaginationControls.tsx
820
+ var import_styled_components21 = __toESM(require("styled-components"));
821
+ var import_jsx_runtime20 = require("react/jsx-runtime");
822
+ var StyledBtn = (0, import_styled_components21.default)(ClickableElement)`
823
+ :hover {
824
+ background: ${({ theme: theme2 }) => theme2.colors.accent};
825
+ }
826
+ `;
827
+ var ELLIPSIS_ELEMENT = /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_outline.EllipsisHorizontalIcon, { width: 16, height: 20 });
828
+ var PaginationControls = ({
829
+ skip,
830
+ limit,
831
+ itemCount,
832
+ setSkip
833
+ }) => {
834
+ let currentPage = skip === 0 ? 1 : Math.floor(skip / limit + 1);
835
+ let totalPages = Math.ceil(itemCount / limit);
836
+ let pages = (0, import_react12.useMemo)(() => {
837
+ return calculatePageNumbers(totalPages, currentPage, ELLIPSIS_ELEMENT);
838
+ }, [totalPages, currentPage]);
839
+ let handlePageClick = (page) => {
840
+ let newSkip = 0;
841
+ if (typeof page === "number" && page !== 1) {
842
+ newSkip = limit * (page - 1);
843
+ }
844
+ setSkip(newSkip);
845
+ };
846
+ if (totalPages <= 1) {
847
+ return null;
848
+ }
849
+ return /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(ButtonGroup, { children: [
850
+ /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
851
+ Button,
852
+ {
853
+ verticalAlign: "bottom",
854
+ onClick: () => setSkip(skip - limit),
855
+ disabled: currentPage === 1,
856
+ children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_outline.ChevronLeftIcon, { width: 16, height: 20 })
857
+ }
858
+ ),
859
+ pages.map((page, idx) => /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
860
+ StyledBtn,
861
+ {
862
+ borderRadius: 2,
863
+ verticalAlign: "bottom",
864
+ zIndex: page === currentPage ? 30 : "unset",
865
+ width: "36px",
866
+ height: "36px",
867
+ border: page === currentPage ? "border.1" : "none",
868
+ onClick: () => handlePageClick(page),
869
+ disabled: page === ELLIPSIS_ELEMENT,
870
+ "data-ignore-radius": true,
871
+ children: page
872
+ },
873
+ page === ELLIPSIS_ELEMENT ? "ellipsis" + idx : page
874
+ )),
875
+ /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
876
+ Button,
877
+ {
878
+ verticalAlign: "bottom",
879
+ onClick: () => setSkip(skip + limit),
880
+ disabled: currentPage === totalPages,
881
+ children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_outline.ChevronRightIcon, { width: 16, height: 20 })
882
+ }
883
+ )
884
+ ] });
885
+ };
886
+
887
+ // src/data/Pagination/Pagination.tsx
888
+ var import_jsx_runtime21 = require("react/jsx-runtime");
889
+ var Container2 = import_styled_components22.default.div`
890
+ width: 100%;
891
+ display: flex;
892
+ justify-content: space-between;
893
+ align-items: center;
894
+ min-height: 38px;
895
+ line-height: 1rem;
896
+ `;
897
+ var Strong = import_styled_components22.default.strong`
898
+ font-weight: 500;
899
+ `;
900
+ var Pagination = ({
901
+ limit,
902
+ skip,
903
+ setSkip,
904
+ itemCount
905
+ }) => {
906
+ let to = skip + limit > itemCount ? itemCount : skip + limit;
907
+ return /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(Container2, { children: [
908
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)("div", { children: [
909
+ "Showing ",
910
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Strong, { children: skip + 1 }),
911
+ " to ",
912
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Strong, { children: to }),
913
+ " of ",
914
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Strong, { children: itemCount }),
915
+ " results"
916
+ ] }),
917
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(PaginationControls, { itemCount, limit, skip, setSkip }) })
918
+ ] });
919
+ };
920
+
921
+ // src/data/Panel/Panel.tsx
922
+ var import_styled_components23 = __toESM(require("styled-components"));
923
+ var Panel = (0, import_styled_components23.default)(Box)`
924
+ border-radius:${({ theme: theme2 }) => theme2.radii[4]};
925
+ border: ${({ theme: theme2 }) => theme2.borders.border[1]};
926
+ background: ${({ theme: theme2 }) => theme2.colors.offsetBackground};
927
+ `;
928
+
929
+ // src/data/Table/Table.tsx
930
+ var import_react13 = require("react");
931
+ var import_styled_components24 = __toESM(require("styled-components"));
932
+ var import_jsx_runtime22 = require("react/jsx-runtime");
933
+ var Container3 = import_styled_components24.default.div`
934
+ background: ${({ theme: theme2 }) => theme2.colors.background};
935
+ border: 1px solid ${({ theme: theme2 }) => theme2.colors.border};
936
+ border-radius: ${({ theme: theme2 }) => theme2.radii[3]};
937
+ contain: paint;
938
+ padding-bottom: ${({ footer, theme: theme2 }) => !footer ? theme2.space[1] : "0"};
939
+ `;
940
+ var StyledTable = import_styled_components24.default.table`
941
+ width: 100%;
942
+ position: relative;
943
+ border-collapse: collapse;
944
+ > :not([hidden]) ~ :not([hidden]) & :not(:last-child) {
945
+ border-top-width: 1px;
946
+ border-bottom-width: 1px;
947
+ border-color: ${({ theme: theme2 }) => theme2.colors.border}
948
+ }
949
+ `;
950
+ var Footer = import_styled_components24.default.div`
951
+ padding: ${({ theme: theme2 }) => `${theme2.space[2]} ${theme2.space[4]}`};
952
+ border-top-width: 1px;
953
+ border-color: ${({ theme: theme2 }) => theme2.colors.border};
954
+ `;
955
+ var Table = (0, import_react13.forwardRef)((_a, ref) => {
956
+ var _b = _a, { children, containerClasses, footer } = _b, rest = __objRest(_b, ["children", "containerClasses", "footer"]);
957
+ return /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(Container3, { footer, children: [
958
+ /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(StyledTable, __spreadProps(__spreadValues({ ref }, rest), { children })),
959
+ footer && /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(Footer, { children: footer })
960
+ ] });
961
+ });
962
+
963
+ // src/data/Table/TableBody.tsx
964
+ var import_styled_components25 = __toESM(require("styled-components"));
965
+ var TableBody = import_styled_components25.default.tbody`
966
+ background: ${({ theme: theme2 }) => theme2.colors.background};
967
+ border-top-width: 1px;
968
+ > :not([hidden]) ~ :not([hidden]) {
969
+ border-top-width: 1px;
970
+ border-color: ${({ theme: theme2 }) => theme2.colors.border}
971
+ }
972
+ `;
973
+
974
+ // src/data/Table/TableCell.tsx
975
+ var import_styled_components26 = __toESM(require("styled-components"));
976
+ var TableCell = import_styled_components26.default.td`
977
+ padding: ${({ theme: theme2 }) => `0.625rem ${theme2.space[3]}`}
978
+ `;
979
+
980
+ // src/data/Table/TableRow.tsx
981
+ var import_styled_components27 = __toESM(require("styled-components"));
982
+ var TableRow = import_styled_components27.default.tr`
983
+ ${({ onClick, theme: theme2 }) => typeof onClick === "function" && `
984
+ cursor: pointer;
985
+ :hover {
986
+ background: ${theme2.colors.accent};
987
+ box-shadow: ${theme2.colors.primary} 3px 0px 0px 0px inset;
988
+ }
989
+ `}
990
+ ${({ active, theme: theme2 }) => active && `
991
+ cursor: pointer;
992
+ background: ${theme2.colors.accent};
993
+ box-shadow: ${theme2.colors.primary} 3px 0px 0px 0px inset;
994
+ `}
995
+ `;
996
+
997
+ // src/data/Table/TableHead.tsx
998
+ var import_react14 = require("react");
999
+ var import_styled_components28 = __toESM(require("styled-components"));
1000
+ var import_jsx_runtime23 = require("react/jsx-runtime");
1001
+ var Thead = import_styled_components28.default.thead`
1002
+ text-align: left;
1003
+ background: ${({ theme: theme2 }) => theme2.colors.background};
1004
+ border-bottom: 1px solid ${({ theme: theme2 }) => theme2.colors.border};
1005
+ ${({ sticky, theme: theme2 }) => sticky && `
1006
+ position: sticky;
1007
+ top: 0;
1008
+ box-shadow: ${theme2.shadows.base[1]};
1009
+ `}
1010
+ `;
1011
+ var TableHeadItem = import_styled_components28.default.th`
1012
+ padding: ${({ theme: theme2 }) => theme2.space[3]};
1013
+ font-weight: 500;
1014
+ text-transform: uppercase;
1015
+ letter-spacing: 0.025em;
1016
+ font-size: ${({ theme: theme2 }) => theme2.fontSizes[0]};
1017
+ line-height: ${({ theme: theme2 }) => theme2.lineHeights[0]};
1018
+ color: ${({ theme: theme2 }) => theme2.colors.mutedForeground};
1019
+ `;
1020
+ var TableHead = (0, import_react14.forwardRef)((_a, ref) => {
1021
+ var _b = _a, { children, headers, sticky } = _b, rest = __objRest(_b, ["children", "headers", "sticky"]);
1022
+ if (!headers) {
1023
+ return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(Thead, __spreadProps(__spreadValues({ sticky, ref }, rest), { children }));
1024
+ }
1025
+ return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(Thead, { sticky, ref, children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("tr", { children: headers.map((h) => /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(TableHeadItem, { children: h }, h)) }) });
1026
+ });
1027
+
1028
+ // src/feedback/Alert/Alert.tsx
1029
+ var import_styled_components30 = __toESM(require("styled-components"));
1030
+ var import_outline2 = require("@heroicons/react/24/outline");
1031
+
1032
+ // src/feedback/Alert/CloseBtn.tsx
1033
+ var import_styled_components29 = __toESM(require("styled-components"));
1034
+ var import_solid2 = require("@heroicons/react/24/solid");
1035
+ var import_jsx_runtime24 = require("react/jsx-runtime");
1036
+ var StyledButton7 = (0, import_styled_components29.default)(ClickableElement)`
1037
+ float:right;
1038
+ padding: ${({ theme: theme2 }) => `${theme2.sizes[1]} ${theme2.sizes[2]}`};
1039
+ `;
1040
+ var CloseBtn = ({ onClick }) => /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(StyledButton7, { onClick, children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_solid2.XMarkIcon, { width: 16, height: 16 }) });
1041
+
1042
+ // src/feedback/Alert/Alert.tsx
1043
+ var import_jsx_runtime25 = require("react/jsx-runtime");
1044
+ var Container4 = (0, import_styled_components30.default)(Box)`
1045
+ border: 1px solid;
1046
+ border-color: ${({ theme: theme2, destructive }) => destructive ? theme2.colors.destructive : theme2.colors.border};
1047
+ background: ${({ theme: theme2, destructive }) => destructive ? theme2.colors.destructive : theme2.colors.background};
1048
+ h1, svg, p {
1049
+ color: ${({ theme: theme2, destructive }) => destructive ? theme2.colors.destructiveForeground : theme2.colors.foreground};
1050
+ }
1051
+ `;
1052
+ var Icon = (0, import_styled_components30.default)(Box)`
1053
+ float: left;
1054
+ :empty {
1055
+ margin: 0;
1056
+ }
1057
+ `;
1058
+ var Content = (0, import_styled_components30.default)(Typography)`
1059
+ min-width: 100%;
1060
+ margin-top: ${({ theme: theme2 }) => theme2.space[2]};
1061
+ :empty {
1062
+ margin-top: 0;
1063
+ }
1064
+ `;
1065
+ var Alert = (_a) => {
1066
+ var _b = _a, {
1067
+ destructive = false,
1068
+ title,
1069
+ icon,
1070
+ children,
1071
+ withClose
1072
+ } = _b, rest = __objRest(_b, [
1073
+ "destructive",
1074
+ "title",
1075
+ "icon",
1076
+ "children",
1077
+ "withClose"
1078
+ ]);
1079
+ let Icons = icon || (destructive ? /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_outline2.ExclamationCircleIcon, { width: 20, height: 20 }) : /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_jsx_runtime25.Fragment, {}));
1080
+ return /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(Container4, __spreadProps(__spreadValues({ p: 2, display: "flex", flexGrow: 1, alignItems: "center", borderRadius: "4", overflow: "hidden", position: "relative", width: 29, fontSize: 1, lineHeight: 1, flexWrap: "wrap", destructive }, rest), { boxShadow: "highlight", children: [
1081
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(Box, { minWidth: "100%", children: [
1082
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(Icon, { mr: 3, mt: "1px", lineHeight: 5, alignSelf: "center", children: Icons }),
1083
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(Title, { display: "inline", fontWeight: "600", fontSize: 1, lineHeight: 2, letterSpacing: "0.025em", children: title }),
1084
+ withClose && /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(CloseBtn, { onClick: withClose })
1085
+ ] }),
1086
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(Content, { children })
1087
+ ] }));
1088
+ };
1089
+
1090
+ // src/feedback/Badge/Badge.tsx
1091
+ var import_styled_components31 = __toESM(require("styled-components"));
1092
+ var import_jsx_runtime26 = require("react/jsx-runtime");
1093
+ var getPosition = (position4) => {
1094
+ switch (position4) {
1095
+ case "N":
1096
+ return `
1097
+ top: 0;
1098
+ right: 50%;
1099
+ transform: translateY(-50%) translateX(50%);
1100
+ `;
1101
+ case "NE":
1102
+ return `
1103
+ top: 0;
1104
+ right: 0;
1105
+ transform: translateY(-50%) translateX(50%);
1106
+ `;
1107
+ case "E":
1108
+ return `
1109
+ top: 50%;
1110
+ right: 0;
1111
+ transform: translateY(-50%) translateX(50%);
1112
+ `;
1113
+ case "NW":
1114
+ return `
1115
+ top: 0;
1116
+ left: 0;
1117
+ transform: translateY(-50%) translateX(-50%);
1118
+ `;
1119
+ case "SE":
1120
+ return `
1121
+ right: 0;
1122
+ bottom: 0;
1123
+ transform: translateY(50%) translateX(50%);
1124
+ `;
1125
+ case "S":
1126
+ return `
1127
+ left: 50%;
1128
+ top: 50%;
1129
+ transform: translateY(50%) translateX(-50%);
1130
+ `;
1131
+ case "SW":
1132
+ return `
1133
+ left: 0;
1134
+ bottom: 0;
1135
+ transform: translateY(50%) translateX(-50%);
1136
+ `;
1137
+ case "W":
1138
+ return `
1139
+ right: 0;
1140
+ top: 0;
1141
+ transform: translateY(50%) translateX(-50%);
1142
+ `;
1143
+ }
1144
+ };
1145
+ var BadgeItem = import_styled_components31.default.div`
1146
+ position: absolute;
1147
+ border-radius: ${({ theme: theme2 }) => theme2.radii[8]};
1148
+ font-size: ${({ theme: theme2 }) => theme2.fontSizes[0]};
1149
+ line-height: ${({ theme: theme2 }) => theme2.lineHeights[0]};
1150
+ text-align: center;
1151
+ color: ${({ theme: theme2, destructive }) => destructive ? theme2.colors.destructiveForeground : theme2.colors.primaryForeground};
1152
+ background: ${({ theme: theme2, destructive }) => destructive ? theme2.colors.destructive : theme2.colors.primary};
1153
+ min-width: fit-content;
1154
+ width: ${({ theme: theme2 }) => theme2.sizes[5]};
1155
+ padding: calc(${({ theme: theme2 }) => theme2.space[1]} / 2) ${({ theme: theme2 }) => theme2.space[2]};
1156
+ z-index:9999;
1157
+ :empty {
1158
+ width: ${({ theme: theme2 }) => theme2.sizes[1]};
1159
+ height: ${({ theme: theme2 }) => theme2.sizes[2]};
1160
+ }
1161
+ ${({ position: position4 }) => getPosition(position4)}
1162
+ `;
1163
+ var Badge = ({ position: position4 = "NE", children, tag, destructive = false }) => /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(Box, { display: "inline-block", position: "relative", width: "fill-available", children: [
1164
+ /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(BadgeItem, { position: position4, destructive, children: tag }),
1165
+ children
1166
+ ] });
1167
+
1168
+ // src/feedback/Chip/Chip.tsx
1169
+ var import_styled_components32 = __toESM(require("styled-components"));
1170
+ var import_jsx_runtime27 = require("react/jsx-runtime");
1171
+ var Container5 = import_styled_components32.default.div`
1172
+ border-radius: ${({ theme: theme2 }) => theme2.radii[3]};
1173
+ display: inline-flex;
1174
+ justify-content: center;
1175
+ align-items: center;
1176
+ width: fit-content;
1177
+ padding: calc(${({ theme: theme2 }) => theme2.space[1]} / 2) ${({ theme: theme2 }) => theme2.space[2]};
1178
+ font-size: ${({ theme: theme2 }) => theme2.fontSizes[0]};
1179
+ line-height: ${({ theme: theme2 }) => theme2.lineHeights[0]};
1180
+ font-weight: 700;
1181
+ color: ${({ theme: theme2, destructive }) => destructive ? theme2.colors.destructiveForeground : theme2.colors.primaryForeground};
1182
+ background: ${({ theme: theme2, destructive }) => destructive ? theme2.colors.destructive : theme2.colors.primary};
1183
+
1184
+ > :not([hidden]) ~ :not([hidden]) {
1185
+ margin-left: 0.5rem;
1186
+ }
1187
+ `;
1188
+ var Chip = ({
1189
+ destructive,
1190
+ children
1191
+ }) => /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(Container5, { destructive, children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(Typography, { children }) });
1192
+
1193
+ // src/feedback/Code/SyntaxHighlighter.tsx
1194
+ var import_react_syntax_highlighter = __toESM(require("react-syntax-highlighter"));
1195
+
1196
+ // src/feedback/Code/theme.ts
1197
+ var githubLight = {
1198
+ "hljs": {
1199
+ "display": "block",
1200
+ "overflowX": "auto",
1201
+ "padding": "0.5em",
1202
+ "color": "#24292e",
1203
+ "background": "#ffffff"
1204
+ },
1205
+ "hljs-comment": {
1206
+ "color": "#6a737d",
1207
+ "fontStyle": "italic"
1208
+ },
1209
+ "hljs-quote": {
1210
+ "color": "#6a737d",
1211
+ "fontStyle": "italic"
1212
+ },
1213
+ "hljs-keyword": {
1214
+ "color": "#d73a49",
1215
+ "fontWeight": "bold"
1216
+ },
1217
+ "hljs-selector-tag": {
1218
+ "color": "#d73a49",
1219
+ "fontWeight": "bold"
1220
+ },
1221
+ "hljs-subst": {
1222
+ "color": "#24292e",
1223
+ "fontWeight": "normal"
1224
+ },
1225
+ "hljs-number": {
1226
+ "color": "#005cc5"
1227
+ },
1228
+ "hljs-literal": {
1229
+ "color": "#005cc5"
1230
+ },
1231
+ "hljs-variable": {
1232
+ "color": "#e36209"
1233
+ },
1234
+ "hljs-template-variable": {
1235
+ "color": "#e36209"
1236
+ },
1237
+ "hljs-tag .hljs-attr": {
1238
+ "color": "#005cc5"
1239
+ },
1240
+ "hljs-string": {
1241
+ "color": "#032f62"
1242
+ },
1243
+ "hljs-doctag": {
1244
+ "color": "#22863a"
1245
+ },
1246
+ "hljs-title": {
1247
+ "color": "#22863a",
1248
+ "fontWeight": "bold"
1249
+ },
1250
+ "hljs-section": {
1251
+ "color": "#22863a",
1252
+ "fontWeight": "bold"
1253
+ },
1254
+ "hljs-selector-id": {
1255
+ "color": "#22863a",
1256
+ "fontWeight": "bold"
1257
+ },
1258
+ "hljs-type": {
1259
+ "color": "#e36209",
1260
+ "fontWeight": "bold"
1261
+ },
1262
+ "hljs-class .hljs-title": {
1263
+ "color": "#e36209",
1264
+ "fontWeight": "bold"
1265
+ },
1266
+ "hljs-tag": {
1267
+ "color": "#22863a",
1268
+ "fontWeight": "normal"
1269
+ },
1270
+ "hljs-name": {
1271
+ "color": "#22863a",
1272
+ "fontWeight": "normal"
1273
+ },
1274
+ "hljs-attribute": {
1275
+ "color": "#005cc5",
1276
+ "fontWeight": "normal"
1277
+ },
1278
+ "hljs-regexp": {
1279
+ "color": "#032f62"
1280
+ },
1281
+ "hljs-link": {
1282
+ "color": "#032f62"
1283
+ },
1284
+ "hljs-symbol": {
1285
+ "color": "#22863a"
1286
+ },
1287
+ "hljs-bullet": {
1288
+ "color": "#22863a"
1289
+ },
1290
+ "hljs-built_in": {
1291
+ "color": "#e36209"
1292
+ },
1293
+ "hljs-builtin-name": {
1294
+ "color": "#e36209"
1295
+ },
1296
+ "hljs-meta": {
1297
+ "color": "#b31d28",
1298
+ "fontWeight": "bold"
1299
+ },
1300
+ "hljs-deletion": {
1301
+ "background": "#ffeef0"
1302
+ },
1303
+ "hljs-addition": {
1304
+ "background": "#f0fff4"
1305
+ },
1306
+ "hljs-emphasis": {
1307
+ "fontStyle": "italic"
1308
+ },
1309
+ "hljs-strong": {
1310
+ "fontWeight": "bold"
1311
+ }
1312
+ };
1313
+ var githubDark = {
1314
+ "hljs": {
1315
+ "display": "block",
1316
+ "overflowX": "auto",
1317
+ "padding": "0.5em",
1318
+ "color": "#adbac7",
1319
+ "background": "#22272e"
1320
+ },
1321
+ "hljs-comment": {
1322
+ "color": "#768390",
1323
+ "fontStyle": "italic"
1324
+ },
1325
+ "hljs-quote": {
1326
+ "color": "#768390",
1327
+ "fontStyle": "italic"
1328
+ },
1329
+ "hljs-keyword": {
1330
+ "color": "#f47067",
1331
+ "fontWeight": "bold"
1332
+ },
1333
+ "hljs-selector-tag": {
1334
+ "color": "#f47067",
1335
+ "fontWeight": "bold"
1336
+ },
1337
+ "hljs-subst": {
1338
+ "color": "#adbac7",
1339
+ "fontWeight": "normal"
1340
+ },
1341
+ "hljs-number": {
1342
+ "color": "#6cb6ff"
1343
+ },
1344
+ "hljs-literal": {
1345
+ "color": "#6cb6ff"
1346
+ },
1347
+ "hljs-variable": {
1348
+ "color": "#f69d50"
1349
+ },
1350
+ "hljs-template-variable": {
1351
+ "color": "#f69d50"
1352
+ },
1353
+ "hljs-tag .hljs-attr": {
1354
+ "color": "#6cb6ff"
1355
+ },
1356
+ "hljs-string": {
1357
+ "color": "#96d0ff"
1358
+ },
1359
+ "hljs-doctag": {
1360
+ "color": "#8ddb8c"
1361
+ },
1362
+ "hljs-title": {
1363
+ "color": "#8ddb8c",
1364
+ "fontWeight": "bold"
1365
+ },
1366
+ "hljs-section": {
1367
+ "color": "#8ddb8c",
1368
+ "fontWeight": "bold"
1369
+ },
1370
+ "hljs-selector-id": {
1371
+ "color": "#8ddb8c",
1372
+ "fontWeight": "bold"
1373
+ },
1374
+ "hljs-type": {
1375
+ "color": "#f69d50",
1376
+ "fontWeight": "bold"
1377
+ },
1378
+ "hljs-class .hljs-title": {
1379
+ "color": "#f69d50",
1380
+ "fontWeight": "bold"
1381
+ },
1382
+ "hljs-tag": {
1383
+ "color": "#8ddb8c",
1384
+ "fontWeight": "normal"
1385
+ },
1386
+ "hljs-name": {
1387
+ "color": "#8ddb8c",
1388
+ "fontWeight": "normal"
1389
+ },
1390
+ "hljs-attribute": {
1391
+ "color": "#6cb6ff",
1392
+ "fontWeight": "normal"
1393
+ },
1394
+ "hljs-regexp": {
1395
+ "color": "#96d0ff"
1396
+ },
1397
+ "hljs-link": {
1398
+ "color": "#96d0ff"
1399
+ },
1400
+ "hljs-symbol": {
1401
+ "color": "#8ddb8c"
1402
+ },
1403
+ "hljs-bullet": {
1404
+ "color": "#8ddb8c"
1405
+ },
1406
+ "hljs-built_in": {
1407
+ "color": "#f69d50"
1408
+ },
1409
+ "hljs-builtin-name": {
1410
+ "color": "#f69d50"
1411
+ },
1412
+ "hljs-meta": {
1413
+ "color": "#768390",
1414
+ "fontWeight": "bold"
1415
+ },
1416
+ "hljs-deletion": {
1417
+ "background": "#ffd8d3"
1418
+ },
1419
+ "hljs-addition": {
1420
+ "background": "#b4f1b4"
1421
+ },
1422
+ "hljs-emphasis": {
1423
+ "fontStyle": "italic"
1424
+ },
1425
+ "hljs-strong": {
1426
+ "fontWeight": "bold"
1427
+ }
1428
+ };
1429
+
1430
+ // src/feedback/Code/Wrapper.tsx
1431
+ var import_styled_components33 = __toESM(require("styled-components"));
1432
+ var import_jsx_runtime28 = require("react/jsx-runtime");
1433
+ var StyledDiv = import_styled_components33.default.div`
1434
+ overflow: hidden;
1435
+ font-size: ${({ theme: theme2 }) => theme2.fontSizes[1]};
1436
+ line-height: ${({ theme: theme2 }) => theme2.lineHeights[1]};
1437
+ font-family: ${({ theme: theme2 }) => theme2.fonts.mono};
1438
+ border: ${({ theme: theme2 }) => theme2.borders.border[1]};
1439
+ box-shadow: ${({ theme: theme2 }) => theme2.shadows.base[1]};
1440
+ border-radius: ${({ theme: theme2 }) => theme2.radii[3]};
1441
+ background: ${({ theme: theme2 }) => theme2.colors.offsetBackground};
1442
+ `;
1443
+ var Wrapper = ({
1444
+ children,
1445
+ skip
1446
+ }) => skip ? /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_jsx_runtime28.Fragment, { children }) : /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(StyledDiv, { children });
1447
+
1448
+ // src/utils/index.ts
1449
+ var utils_exports = {};
1450
+ __export(utils_exports, {
1451
+ Backdrop: () => Backdrop,
1452
+ ClickOutside: () => ClickOutside,
1453
+ Collapse: () => Collapse,
1454
+ DarkTheme: () => DarkTheme,
1455
+ Fade: () => Fade,
1456
+ GlobalStyles: () => GlobalStyles,
1457
+ Grow: () => Grow,
1458
+ LightTheme: () => LightTheme,
1459
+ LinearSlide: () => LinearSlide,
1460
+ MuffledUI: () => MuffledUI,
1461
+ Open: () => Open,
1462
+ Portal: () => Portal,
1463
+ RadioIcon: () => RadioIcon,
1464
+ Scrollable: () => Scrollable,
1465
+ SettingsContext: () => SettingsContext,
1466
+ Slide: () => Slide,
1467
+ ThemeButton: () => ThemeButton,
1468
+ ThemeSwitch: () => ThemeSwitch,
1469
+ stopPropagation: () => stopPropagation,
1470
+ useMuffledSettings: () => useMuffledSettings
1471
+ });
1472
+
1473
+ // src/utils/Backdrop/Backdrop.tsx
1474
+ var import_react15 = require("react");
1475
+ var import_react_focus_lock = __toESM(require("react-focus-lock"));
1476
+
1477
+ // src/utils/Portal/Portal.tsx
1478
+ var import_react_dom = require("react-dom");
1479
+ var Portal = ({ children, element }) => (0, import_react_dom.createPortal)(children, element || (document.getElementById("portal-root") || document.body));
1480
+
1481
+ // src/utils/Backdrop/Backdrop.tsx
1482
+ var import_jsx_runtime29 = require("react/jsx-runtime");
1483
+ var stopPropagation = (e) => e.stopPropagation();
1484
+ var Backdrop = (_a) => {
1485
+ var _b = _a, {
1486
+ children,
1487
+ onClick
1488
+ } = _b, rest = __objRest(_b, [
1489
+ "children",
1490
+ "onClick"
1491
+ ]);
1492
+ let [open, setOpen] = (0, import_react15.useState)(true);
1493
+ let handleClickBackdrop = (0, import_react15.useCallback)(
1494
+ (e) => {
1495
+ e.stopPropagation();
1496
+ setOpen(false);
1497
+ },
1498
+ [setOpen]
1499
+ );
1500
+ let closeModalOnESC = (0, import_react15.useCallback)(
1501
+ (e) => {
1502
+ if (e.key === "Escape") {
1503
+ e.stopPropagation();
1504
+ setOpen(false);
1505
+ }
1506
+ },
1507
+ [setOpen]
1508
+ );
1509
+ (0, import_react15.useEffect)(() => {
1510
+ window.addEventListener("keyup", closeModalOnESC);
1511
+ document.body.style.overflow = "hidden";
1512
+ return () => {
1513
+ window.removeEventListener("keyup", closeModalOnESC);
1514
+ document.body.style.overflow = "unset";
1515
+ };
1516
+ }, [closeModalOnESC]);
1517
+ return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_react_focus_lock.default, { children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Fade, __spreadProps(__spreadValues({ inProp: open, onProps: onClick }, rest), { children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
1518
+ Box,
1519
+ {
1520
+ width: "100vw",
1521
+ height: "100%",
1522
+ position: "fixed",
1523
+ top: 0,
1524
+ left: 0,
1525
+ right: 0,
1526
+ bottom: 0,
1527
+ overflow: "auto",
1528
+ bg: "rgba(0, 0, 0, .8)",
1529
+ display: "flex",
1530
+ justifyContent: "center",
1531
+ alignItems: "center",
1532
+ zIndex: "9999",
1533
+ onClick: handleClickBackdrop,
1534
+ children
1535
+ }
1536
+ ) })) }) });
1537
+ };
1538
+
1539
+ // src/utils/ClickOutside/ClickOutside.tsx
1540
+ var import_react16 = require("react");
1541
+ var import_jsx_runtime30 = require("react/jsx-runtime");
1542
+ var ClickOutside = ({ children, handleClose, target, wrapper, inline = false }) => {
1543
+ let [isOpen, setOpen] = (0, import_react16.useState)(true);
1544
+ (0, import_react16.useEffect)(() => {
1545
+ function handleClick(e) {
1546
+ e.preventDefault();
1547
+ if (!(target == null ? void 0 : target.contains(e.target))) {
1548
+ setOpen(false);
1549
+ }
1550
+ }
1551
+ if (isOpen) {
1552
+ document.addEventListener("mousedown", handleClick);
1553
+ } else {
1554
+ document.removeEventListener("mousedown", handleClick);
1555
+ }
1556
+ return () => document.removeEventListener("mousedown", handleClick);
1557
+ }, [isOpen, handleClose, target]);
1558
+ let WrappedTransition = /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Grow, { inProp: isOpen, onDestroyed: handleClose, children });
1559
+ let content = wrapper ? (0, import_react16.cloneElement)(wrapper, { children: WrappedTransition }) : WrappedTransition;
1560
+ return inline ? content : /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Portal, { children: content });
1561
+ };
1562
+
1563
+ // src/utils/FocusLock/index.ts
1564
+ var FocusLock_exports = {};
1565
+ __reExport(FocusLock_exports, require("react-focus-lock"));
1566
+
1567
+ // src/utils/index.ts
1568
+ __reExport(utils_exports, FocusLock_exports);
1569
+
1570
+ // src/utils/Scrollable/Scrollable.tsx
1571
+ var import_react17 = require("react");
1572
+ var import_styled_components34 = __toESM(require("styled-components"));
1573
+ var import_outline3 = require("@heroicons/react/24/outline");
1574
+ var import_jsx_runtime31 = require("react/jsx-runtime");
1575
+ var ScrollBox = (0, import_styled_components34.default)(Box)`
1576
+ white-space: nowrap;
1577
+ scroll-snap-type: x;
1578
+ `;
1579
+ var Scrollable = ({ children }) => {
1580
+ let [{ left, right }, setArrows] = (0, import_react17.useState)({ left: false, right: false });
1581
+ let [scrollable, setScrollable] = (0, import_react17.useState)(void 0);
1582
+ let ref = (0, import_react17.useRef)(null);
1583
+ let handleScroll = () => {
1584
+ var _a, _b, _c, _d;
1585
+ let rightShadow = ((_a = ref.current) == null ? void 0 : _a.scrollWidth) !== (((_b = ref.current) == null ? void 0 : _b.scrollLeft) || 0) + (((_c = ref.current) == null ? void 0 : _c.clientWidth) || 0);
1586
+ let leftShadow = (((_d = ref.current) == null ? void 0 : _d.scrollLeft) || 0) > 0;
1587
+ setArrows({
1588
+ left: leftShadow,
1589
+ right: rightShadow
1590
+ });
1591
+ };
1592
+ let checkIfScrollable = () => {
1593
+ var _a, _b;
1594
+ setScrollable((((_a = ref.current) == null ? void 0 : _a.scrollWidth) || 0) <= (((_b = ref.current) == null ? void 0 : _b.clientWidth) || 0));
1595
+ };
1596
+ (0, import_react17.useEffect)(() => {
1597
+ checkIfScrollable();
1598
+ handleScroll();
1599
+ }, []);
1600
+ if (!scrollable === false) {
1601
+ return /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(import_jsx_runtime31.Fragment, { children });
1602
+ }
1603
+ return /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(Box, { position: "relative", px: "5", children: [
1604
+ left && /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(Box, { height: "100%", width: "5", position: "absolute", left: "0", top: "0", zIndex: "50", display: "flex", alignItems: "center", color: "baseHighlight", children: /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(import_outline3.ChevronLeftIcon, { width: 16, height: 16 }) }),
1605
+ /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
1606
+ ScrollBox,
1607
+ {
1608
+ maxHeight: "100%",
1609
+ ref,
1610
+ overflowX: "auto",
1611
+ onScroll: handleScroll,
1612
+ children
1613
+ }
1614
+ ),
1615
+ right && /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(Box, { height: "100%", width: "5", position: "absolute", right: "0", top: "0", zIndex: "50", display: "flex", alignItems: "center", justifyContent: "end", color: "baseHighlight", children: /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(import_outline3.ChevronRightIcon, { width: 16, height: 16 }) })
1616
+ ] });
1617
+ };
1618
+
1619
+ // src/utils/Icons/index.tsx
1620
+ var import_jsx_runtime32 = require("react/jsx-runtime");
1621
+ var RadioIcon = (_a) => {
1622
+ var rest = __objRest(_a, []);
1623
+ return /* @__PURE__ */ (0, import_jsx_runtime32.jsx)("svg", __spreadProps(__spreadValues({ viewBox: "0 0 16 16", fill: "currentColor", xmlns: "http://www.w3.org/2000/svg" }, rest), { children: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)("circle", { cx: "8", cy: "8", r: "3" }) }));
1624
+ };
1625
+
1626
+ // src/utils/Theme/Borders.ts
1627
+ var generateBorders = (colors) => {
1628
+ let borderWidths = [0, 1, 3, 4];
1629
+ let borderColors = Object.keys(colors);
1630
+ return borderColors.reduce((borderObj, key) => {
1631
+ const colorKey = key;
1632
+ borderObj[colorKey] = borderWidths.map(
1633
+ (width) => `${width}px solid ${colors[colorKey]}`
1634
+ );
1635
+ return borderObj;
1636
+ }, {});
1637
+ };
1638
+ var radii = [
1639
+ 0,
1640
+ // 0 - none
1641
+ "0.125rem",
1642
+ // 1 - sm
1643
+ "0.25rem",
1644
+ // 2 -
1645
+ "0.375rem",
1646
+ // 3 - md
1647
+ "0.5rem",
1648
+ // 4 - lg
1649
+ "0.75rem",
1650
+ // 5 - xl
1651
+ "1rem",
1652
+ // 6 - 2xl
1653
+ "1.5rem",
1654
+ // 7 - 3xl
1655
+ "9999px"
1656
+ // 8 - full
1657
+ ];
1658
+
1659
+ // src/utils/Theme/Breakpoints.ts
1660
+ var breakpoints = ["640px", "768px", "1024px", "1280px"];
1661
+ breakpoints.sm = breakpoints[0];
1662
+ breakpoints.md = breakpoints[1];
1663
+ breakpoints.lg = breakpoints[2];
1664
+ breakpoints.xl = breakpoints[3];
1665
+
1666
+ // src/utils/Theme/Colors.ts
1667
+ var LightThemeColors = {
1668
+ background: "hsl(0, 0%, 100%)",
1669
+ foreground: "hsl(240, 10%, 3.9%)",
1670
+ card: "hsl(0, 0%, 100%)",
1671
+ cardForeground: "hsl(240, 10%, 3.9%)",
1672
+ popover: "hsl(0, 0%, 100%)",
1673
+ popoverForeground: "hsl(240, 10%, 3.9%)",
1674
+ primary: "hsl(240, 5.9%, 10%)",
1675
+ primaryForeground: "hsl(0, 0%, 98%)",
1676
+ secondary: "hsl(240, 4.8%, 95.9%)",
1677
+ secondaryForeground: "hsl(240, 5.9%, 10%)",
1678
+ muted: "hsl(240, 4.8%, 95.9%)",
1679
+ mutedForeground: "hsl(240, 3.8%, 46.1%)",
1680
+ accent: "hsl(240, 4.8%, 95.9%)",
1681
+ accentForeground: "hsl(240, 5.9%, 10%)",
1682
+ destructive: "hsl(0, 84.2%, 60.2%)",
1683
+ destructiveForeground: "hsl(0, 0%, 98%)",
1684
+ border: "hsl(240, 5.9%, 90%)",
1685
+ input: "hsl(240, 5.9%, 90%)",
1686
+ ring: "hsl(240, 5.9%, 10%)",
1687
+ offsetBackground: "hsl(0, 0%, 98%)",
1688
+ offsetForeground: "hsl(240, 5.3%, 26.1%)"
1689
+ };
1690
+ var DarkThemeColors = {
1691
+ background: "hsl(240, 10%, 3.9%)",
1692
+ foreground: "hsl(0, 0%, 98%)",
1693
+ card: "hsl(240, 10%, 3.9%)",
1694
+ cardForeground: "hsl(0, 0%, 98%)",
1695
+ popover: "hsl(240, 10%, 3.9%)",
1696
+ popoverForeground: "hsl(0, 0%, 98%)",
1697
+ primary: "hsl(0, 0%, 98%)",
1698
+ primaryForeground: "hsl(240, 5.9%, 10%)",
1699
+ secondary: "hsl(240, 3.7%, 15.9%)",
1700
+ secondaryForeground: "hsl(0, 0%, 98%)",
1701
+ muted: "hsl(240, 3.7%, 15.9%)",
1702
+ mutedForeground: "hsl(240, 5%, 64.9%)",
1703
+ accent: "hsl(240, 3.7%, 15.9%)",
1704
+ accentForeground: "hsl(0, 0%, 98%)",
1705
+ destructive: "hsl(0, 65.1%, 50.6%)",
1706
+ destructiveForeground: "hsl(0, 0%, 98%)",
1707
+ border: "hsl(240, 3.7%, 15.9%)",
1708
+ input: "hsl(240, 3.7%, 15.9%)",
1709
+ ring: "hsl(240, 4.9%, 83.9%)",
1710
+ offsetBackground: "hsl(240, 5.9%, 10%)",
1711
+ offsetForeground: "hsl(240, 4.8%, 95.9%)"
1712
+ };
1713
+
1714
+ // src/utils/Theme/Shadows.ts
1715
+ var ThemeBoxShadow = {
1716
+ error: "0 1px 2px 0 #fecaca",
1717
+ inner: "inset 0 2px 4px 0 rgb(0 0 0 / 0.05)",
1718
+ focus: "unset",
1719
+ highlight: "rgba(0, 0, 0, 0.1) 0px 10px 15px -3px, rgba(0, 0, 0, 0.1) 0px 4px 6px -4px",
1720
+ base: [
1721
+ "0 1px 2px 0 rgb(0 0 0 / 0.05)",
1722
+ "0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1)",
1723
+ "0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)",
1724
+ "0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1)",
1725
+ "0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1)"
1726
+ ]
1727
+ };
1728
+
1729
+ // src/utils/Theme/Animations.ts
1730
+ var animations = {
1731
+ spin: `
1732
+ animation: spin 1s linear infinite;
1733
+
1734
+ @keyframes spin {
1735
+ from {
1736
+ transform: rotate(0deg);
1737
+ }
1738
+ to {
1739
+ transform: rotate(360deg);
1740
+ }
1741
+ }
1742
+ `,
1743
+ pulse: `
1744
+ animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
1745
+
1746
+ @keyframes pulse {
1747
+ 0%, 100% {
1748
+ opacity: 1;
1749
+ }
1750
+ 50% {
1751
+ opacity: .5;
1752
+ }
1753
+ }
1754
+ `,
1755
+ bounce: `
1756
+ animation: bounce 1s infinite;
1757
+
1758
+ @keyframes bounce {
1759
+ 0%, 100% {
1760
+ transform: translateY(-25%);
1761
+ animation-timing-function: cubic-bezier(0.8, 0, 1, 1);
1762
+ }
1763
+ 50% {
1764
+ transform: translateY(0);
1765
+ animation-timing-function: cubic-bezier(0, 0, 0.2, 1);
1766
+ }
1767
+ }
1768
+ `
1769
+ };
1770
+
1771
+ // src/utils/Theme/spaces.ts
1772
+ var spaces = [
1773
+ 0,
1774
+ "0.25rem",
1775
+ "0.5rem",
1776
+ "0.75rem",
1777
+ "1rem",
1778
+ "1.25rem",
1779
+ "1.5rem",
1780
+ "1.75rem",
1781
+ "2rem",
1782
+ "2.25rem",
1783
+ "2.5rem"
1784
+ ];
1785
+ var spaceYBetween = spaces.map((s) => `> :not(:first-child) {
1786
+ margin-top: ${s};
1787
+ }`);
1788
+ var spaceXBetween = spaces.map((s) => `> :not(:last-child) {
1789
+ margin-right: calc(${s}/2);
1790
+ }`);
1791
+
1792
+ // src/utils/Theme/Theme.ts
1793
+ var theme = {
1794
+ radii,
1795
+ shadows: ThemeBoxShadow,
1796
+ breakpoints,
1797
+ animations,
1798
+ lineHeights: [
1799
+ "1rem",
1800
+ "1.25rem",
1801
+ "1.5rem",
1802
+ "1.75rem",
1803
+ "2rem"
1804
+ ],
1805
+ fontSizes: [
1806
+ "0.75rem",
1807
+ "0.875rem",
1808
+ "1rem",
1809
+ "1.125rem",
1810
+ "1.25rem",
1811
+ "1.875rem"
1812
+ ],
1813
+ fonts: {
1814
+ base: "'DM Sans', ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji'",
1815
+ mono: "ui-monospace, SFMono- Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace"
1816
+ },
1817
+ space: spaces,
1818
+ sizes: [
1819
+ 0,
1820
+ "0.25rem",
1821
+ "0.5rem",
1822
+ "0.75rem",
1823
+ "1rem",
1824
+ "1.25rem",
1825
+ "1.5rem",
1826
+ "1.75rem",
1827
+ "2rem",
1828
+ "2.25rem",
1829
+ "2.5rem",
1830
+ "2.75rem",
1831
+ "3rem",
1832
+ "3.5rem",
1833
+ "4rem",
1834
+ "5rem",
1835
+ "6rem",
1836
+ "7rem",
1837
+ "8rem",
1838
+ "9rem",
1839
+ "10rem",
1840
+ "11rem",
1841
+ "12rem",
1842
+ "13rem",
1843
+ "14rem",
1844
+ "15rem",
1845
+ "16rem",
1846
+ "18rem",
1847
+ "20rem",
1848
+ "24rem"
1849
+ ],
1850
+ transition: "transition-property: all; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 150ms;",
1851
+ spaceYBetween,
1852
+ spaceXBetween
1853
+ };
1854
+ var LightTheme = __spreadValues({
1855
+ name: "Light",
1856
+ colors: LightThemeColors,
1857
+ borders: generateBorders(LightThemeColors)
1858
+ }, theme);
1859
+ var DarkTheme = __spreadValues({
1860
+ name: "Dark",
1861
+ colors: DarkThemeColors,
1862
+ borders: generateBorders(DarkThemeColors)
1863
+ }, theme);
1864
+
1865
+ // src/utils/Theme/ThemeProvider.tsx
1866
+ var import_styled_components36 = require("styled-components");
1867
+
1868
+ // src/utils/Theme/GlobalStyles.ts
1869
+ var import_styled_components35 = require("styled-components");
1870
+ var GlobalStyles = import_styled_components35.createGlobalStyle`
1871
+ *,
1872
+ ::before,
1873
+ ::after {
1874
+ box-sizing: border-box;
1875
+ border-width: 0;
1876
+ border-style: solid;
1877
+ border-color: ${({ theme: theme2 }) => theme2.colors.background}
1878
+ }
1879
+
1880
+ body {
1881
+ -webkit-font-smoothing: antialiased;
1882
+ -moz-osx-font-smoothing: grayscale;
1883
+ font-size: 14px;
1884
+ font-optical-sizing: auto;
1885
+ font-style: normal;
1886
+ font-variation-settings: "wdth" 100, "YTLC" 500;
1887
+ tab-size: 4;
1888
+ background: ${({ theme: theme2 }) => theme2.colors.background};
1889
+ font-family: ${({ theme: theme2 }) => theme2.fonts.base};
1890
+ color: ${({ theme: theme2 }) => theme2.colors.foreground};
1891
+ margin: 0;
1892
+ }
1893
+
1894
+ hr {
1895
+ height: 0;
1896
+ color: inherit;
1897
+ border-top-width: 1px;
1898
+ }
1899
+ abbr:where([title]) {
1900
+ text-decoration: underline dotted;
1901
+ }
1902
+
1903
+ h1,
1904
+ h2,
1905
+ h3,
1906
+ h4,
1907
+ h5,
1908
+ h6 {
1909
+ font-size: inherit;
1910
+ font-weight: inherit;
1911
+ }
1912
+
1913
+ a {
1914
+ color: inherit;
1915
+ text-decoration: inherit;
1916
+ }
1917
+
1918
+ b,
1919
+ strong {
1920
+ font-weight: bolder;
1921
+ }
1922
+
1923
+ code,
1924
+ kbd,
1925
+ samp,
1926
+ pre {
1927
+ font-family: ${({ theme: theme2 }) => theme2.fonts.mono};
1928
+ font-size: 1em;
1929
+ }
1930
+
1931
+ small {
1932
+ font-size: 80%;
1933
+ }
1934
+
1935
+ sub,
1936
+ sup {
1937
+ font-size: 75%;
1938
+ line-height: 0;
1939
+ position: relative;
1940
+ vertical-align: baseline;
1941
+ }
1942
+
1943
+ sub {
1944
+ bottom: -0.25em;
1945
+ }
1946
+
1947
+ sup {
1948
+ top: -0.5em;
1949
+ }
1950
+
1951
+ table {
1952
+ text-indent: 0;
1953
+ border-color: inherit;
1954
+ border-collapse: collapse;
1955
+ }
1956
+
1957
+ button,
1958
+ input,
1959
+ optgroup,
1960
+ select,
1961
+ textarea {
1962
+ font-family: inherit;
1963
+ font-size: 100%;
1964
+ font-weight: inherit;
1965
+ line-height: inherit;
1966
+ color: inherit;
1967
+ margin: 0;
1968
+ padding: 0;
1969
+ }
1970
+
1971
+ button,
1972
+ select {
1973
+ text-transform: none;
1974
+ }
1975
+
1976
+ button,
1977
+ [type='button'],
1978
+ [type='reset'],
1979
+ [type='submit'] {
1980
+ -webkit-appearance: button;
1981
+ }
1982
+
1983
+ :-moz-focusring {
1984
+ outline: auto;
1985
+ }
1986
+
1987
+ :-moz-ui-invalid {
1988
+ box-shadow: none;
1989
+ }
1990
+
1991
+ progress {
1992
+ vertical-align: baseline;
1993
+ }
1994
+
1995
+ ::-webkit-inner-spin-button,
1996
+ ::-webkit-outer-spin-button {
1997
+ height: auto;
1998
+ }
1999
+
2000
+ [type='search'] {
2001
+ -webkit-appearance: textfield;
2002
+ outline-offset: -2px;
2003
+ }
2004
+
2005
+ ::-webkit-search-decoration {
2006
+ -webkit-appearance: none;
2007
+ }
2008
+
2009
+ ::-webkit-file-upload-button {
2010
+ -webkit-appearance: button;
2011
+ font: inherit;
2012
+ }
2013
+
2014
+ summary {
2015
+ display: list-item;
2016
+ }
2017
+
2018
+ blockquote,
2019
+ dl,
2020
+ dd,
2021
+ h1,
2022
+ h2,
2023
+ h3,
2024
+ h4,
2025
+ h5,
2026
+ h6,
2027
+ hr,
2028
+ figure,
2029
+ p,
2030
+ pre {
2031
+ margin: 0;
2032
+ }
2033
+
2034
+ fieldset {
2035
+ margin: 0;
2036
+ padding: 0;
2037
+ }
2038
+
2039
+ legend {
2040
+ padding: 0;
2041
+ }
2042
+
2043
+ ol,
2044
+ ul,
2045
+ menu {
2046
+ list-style: none;
2047
+ margin: 0;
2048
+ padding: 0;
2049
+ }
2050
+
2051
+ textarea {
2052
+ resize: vertical;
2053
+ }
2054
+ input::placeholder,
2055
+ textarea::placeholder {
2056
+ opacity: 1;
2057
+ color: ${({ theme: theme2 }) => theme2.colors.mutedForeground};
2058
+ }
2059
+
2060
+ button,
2061
+ [role="button"] {
2062
+ cursor: pointer;
2063
+ }
2064
+
2065
+ img,
2066
+ svg,
2067
+ video,
2068
+ canvas,
2069
+ audio,
2070
+ iframe,
2071
+ embed,
2072
+ object {
2073
+ display: block;
2074
+ vertical-align: middle;
2075
+ }
2076
+
2077
+ img,
2078
+ video {
2079
+ max-width: 100%;
2080
+ height: auto;
2081
+ }
2082
+
2083
+ [hidden] {
2084
+ display: none;
2085
+ }
2086
+ `;
2087
+
2088
+ // src/utils/Theme/ThemeProvider.tsx
2089
+ var import_react18 = require("react");
2090
+
2091
+ // src/shared/preferColorScheme.ts
2092
+ var InheritedTheme = window.matchMedia("(prefers-color-scheme: light)").matches ? "Light" : "Dark";
2093
+
2094
+ // src/utils/Theme/ThemeProvider.tsx
2095
+ var import_jsx_runtime33 = require("react/jsx-runtime");
2096
+ var LocalStorageKey = "@muffled-ui/settings";
2097
+ var SettingsContext = (0, import_react18.createContext)(void 0);
2098
+ var useMuffledSettings = () => {
2099
+ let context = (0, import_react18.useContext)(SettingsContext);
2100
+ if (context === void 0) {
2101
+ throw new Error("useMuffledSettings must be used within a MuffledUI provider");
2102
+ }
2103
+ return context;
2104
+ };
2105
+ var MuffledUI = ({ children }) => {
2106
+ let [themeKey, setThemeKey] = (0, import_react18.useState)(() => {
2107
+ var _a;
2108
+ if (localStorage.getItem(LocalStorageKey) !== null) {
2109
+ return (_a = JSON.parse(localStorage.getItem(LocalStorageKey) || "")) == null ? void 0 : _a.theme;
2110
+ }
2111
+ return InheritedTheme;
2112
+ });
2113
+ let theme2 = themeKey === "Light" ? LightTheme : DarkTheme;
2114
+ (0, import_react18.useEffect)(() => {
2115
+ localStorage.setItem(LocalStorageKey, JSON.stringify({ theme: themeKey }));
2116
+ }, [themeKey]);
2117
+ return /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(SettingsContext.Provider, { value: {
2118
+ theme: themeKey,
2119
+ setTheme: setThemeKey,
2120
+ toggleTheme: () => setThemeKey(themeKey == "Dark" ? "Light" : "Dark")
2121
+ }, children: /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(import_styled_components36.ThemeProvider, { theme: theme2, children: [
2122
+ /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(GlobalStyles, { theme: theme2 }),
2123
+ children
2124
+ ] }) });
2125
+ };
2126
+
2127
+ // src/utils/Theme/ThemeToggle.tsx
2128
+ var import_solid3 = require("@heroicons/react/16/solid");
2129
+
2130
+ // src/inputs/Controls/Checkbox/Checkbox.tsx
2131
+ var import_outline4 = require("@heroicons/react/24/outline");
2132
+
2133
+ // src/inputs/Controls/BaseControl.tsx
2134
+ var import_styled_components37 = __toESM(require("styled-components"));
2135
+ var import_jsx_runtime34 = require("react/jsx-runtime");
2136
+ var Label = import_styled_components37.default.label`
2137
+ display: flex;
2138
+ align-items: center;
2139
+ cursor: ${({ disabled }) => disabled ? "not-allowed" : "pointer"};
2140
+ color: ${({ theme: theme2, disabled }) => disabled ? theme2.colors.mutedForeground : theme2.colors.foreground};
2141
+ > :not([hidden]) ~ :not([hidden]) {
2142
+ margin-left: 0.5rem;
2143
+ }
2144
+ div > svg {
2145
+ ${({ theme: theme2, checked }) => checked && `
2146
+ color: ${theme2.colors.background};
2147
+ `}
2148
+ }
2149
+
2150
+ :hover div {
2151
+ ${({ theme: theme2, checked }) => `
2152
+ background: ${checked ? theme2.colors.foreground : theme2.colors.background};
2153
+ `}
2154
+ }
2155
+
2156
+ :hover div > svg {
2157
+ ${({ theme: theme2, checked }) => `
2158
+ color: ${checked ? theme2.colors.background : theme2.colors.foreground};
2159
+ `}
2160
+ }
2161
+ `;
2162
+ var Btn = import_styled_components37.default.div`
2163
+ position: relative;
2164
+ width: ${({ theme: theme2 }) => theme2.sizes[4]};
2165
+ height: ${({ theme: theme2 }) => theme2.sizes[4]};
2166
+ border: ${({ theme: theme2 }) => theme2.borders.background[1]};
2167
+ background: ${({ theme: theme2 }) => theme2.colors.background};
2168
+ overflow: hidden;
2169
+ border: ${({ theme: theme2 }) => theme2.borders.primary[1]};
2170
+ box-shadow: ${({ theme: theme2 }) => theme2.shadows.base[1]};
2171
+ display: flex;
2172
+ align-items: center;
2173
+ justify-content: center;
2174
+ margin-right: ${({ theme: theme2 }) => theme2.space[2]};
2175
+ border-radius: ${({ theme: theme2, rounded }) => rounded ? theme2.radii[8] : theme2.radii[2]};
2176
+ opacity: ${({ disabled }) => disabled ? 0.5 : 1};
2177
+ `;
2178
+ var Box2 = import_styled_components37.default.div`
2179
+ background: ${({ theme: theme2 }) => theme2.colors.background};
2180
+ width: 100%;
2181
+ height: 100%;
2182
+ position: absolute;
2183
+ ${({ checked, theme: theme2 }) => checked && `
2184
+ background: ${theme2.colors.primary};
2185
+ `}
2186
+
2187
+ `;
2188
+ var Icon2 = import_styled_components37.default.div`
2189
+ svg {
2190
+ color: transparent;
2191
+ z-index: 10;
2192
+ position: relative;
2193
+ }
2194
+ `;
2195
+ var Input = import_styled_components37.default.input`
2196
+ display: none;
2197
+ `;
2198
+ var BaseControl = (_a) => {
2199
+ var _b = _a, {
2200
+ labelText,
2201
+ icon,
2202
+ rounded = false,
2203
+ disabled = false
2204
+ } = _b, rest = __objRest(_b, [
2205
+ "labelText",
2206
+ "icon",
2207
+ "rounded",
2208
+ "disabled"
2209
+ ]);
2210
+ return /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(Label, { disabled, checked: rest.checked, children: [
2211
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(Btn, { rounded, disabled, children: [
2212
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(Input, __spreadValues({ disabled }, rest)),
2213
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(Box2, __spreadValues({}, rest)),
2214
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(Icon2, __spreadProps(__spreadValues({ disabled }, rest), { children: icon }))
2215
+ ] }),
2216
+ labelText
2217
+ ] });
2218
+ };
2219
+
2220
+ // src/inputs/Controls/Checkbox/Checkbox.tsx
2221
+ var import_jsx_runtime35 = require("react/jsx-runtime");
2222
+ var Checkbox = (_a) => {
2223
+ var rest = __objRest(_a, []);
2224
+ return /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(BaseControl, __spreadValues({ icon: /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(import_outline4.CheckIcon, { width: "12", height: "12" }), type: "checkbox" }, rest));
2225
+ };
2226
+
2227
+ // src/inputs/Controls/Radio/Radio.tsx
2228
+ var import_jsx_runtime36 = require("react/jsx-runtime");
2229
+ var Radio = (_a) => {
2230
+ var rest = __objRest(_a, []);
2231
+ var _a2;
2232
+ return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
2233
+ BaseControl,
2234
+ __spreadValues({
2235
+ icon: /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(RadioIcon, { width: "16", height: "16" }),
2236
+ type: "radio",
2237
+ labelText: rest.labelText || ((_a2 = rest.value) == null ? void 0 : _a2.toString()),
2238
+ value: rest.value || rest.labelText,
2239
+ rounded: true
2240
+ }, rest)
2241
+ );
2242
+ };
2243
+
2244
+ // src/inputs/Datepicker/Base/BasePicker.tsx
2245
+ var import_react23 = require("react");
2246
+ var import_react_datepicker = __toESM(require("react-datepicker"));
2247
+
2248
+ // src/inputs/Datepicker/Base/PopperContainer.tsx
2249
+ var import_jsx_runtime37 = require("react/jsx-runtime");
2250
+ var PopperContainer = ({ children }) => /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(Portal, { children });
2251
+
2252
+ // src/inputs/Datepicker/Base/DateHeader.tsx
2253
+ var import_react20 = require("react");
2254
+ var import_styled_components38 = __toESM(require("styled-components"));
2255
+ var import_date_fns = require("date-fns");
2256
+
2257
+ // src/navigation/Menu/Menu.tsx
2258
+ var import_react19 = require("react");
2259
+ var import_react_popper = require("react-popper");
2260
+ var import_jsx_runtime38 = require("react/jsx-runtime");
2261
+ var Menu = (_a) => {
2262
+ var _b = _a, { children, isOpen, direction = "bottom-start", itemRef, handleClose, inline = false } = _b, rest = __objRest(_b, ["children", "isOpen", "direction", "itemRef", "handleClose", "inline"]);
2263
+ let [popperRef, setPopperRef] = (0, import_react19.useState)(null);
2264
+ let { styles, attributes } = (0, import_react_popper.usePopper)(itemRef, popperRef, {
2265
+ placement: direction,
2266
+ modifiers: [
2267
+ {
2268
+ name: "offset",
2269
+ options: {
2270
+ offset: [0, 10]
2271
+ }
2272
+ }
2273
+ ]
2274
+ });
2275
+ let Popper = /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("div", __spreadValues({ ref: setPopperRef, style: styles.popper }, attributes.popper));
2276
+ return isOpen ? /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(ClickOutside, { handleClose, target: popperRef, wrapper: Popper, inline, children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(Box, __spreadProps(__spreadValues({ bg: "background", borderRadius: "3", boxShadow: "base.0", border: "border.1", display: "flex", flexDirection: "column", py: "1", overflowY: "scroll" }, rest), { children })) }) : null;
2277
+ };
2278
+
2279
+ // src/navigation/Menu/MenuItem.tsx
2280
+ var import_jsx_runtime39 = require("react/jsx-runtime");
2281
+ var MenuItem = ({ children, onClick }) => /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
2282
+ Button,
2283
+ {
2284
+ mx: "1",
2285
+ my: "0",
2286
+ borderRadius: "3",
2287
+ fontWeight: "400",
2288
+ onClick,
2289
+ children
2290
+ }
2291
+ );
2292
+
2293
+ // src/inputs/Datepicker/Base/DateNavigation.tsx
2294
+ var import_outline5 = require("@heroicons/react/24/outline");
2295
+ var import_jsx_runtime40 = require("react/jsx-runtime");
2296
+ var LeftNavigation = ({ decreaseYear, decreaseMonth }) => /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(import_jsx_runtime40.Fragment, { children: [
2297
+ decreaseYear && /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(OutlineButton, { px: "5px", py: "5px", height: "inherit", onClick: decreaseYear, children: /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(import_outline5.ChevronLeftIcon, { width: 16, height: 16 }) }),
2298
+ decreaseMonth && /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(OutlineButton, { px: "5px", py: "5px", height: "inherit", onClick: decreaseMonth, children: /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(import_outline5.ChevronLeftIcon, { width: 16, height: 16 }) })
2299
+ ] });
2300
+ var RightNavigation = ({ increaseYear, increaseMonth }) => /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(import_jsx_runtime40.Fragment, { children: [
2301
+ increaseMonth && /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(OutlineButton, { px: "5px", py: "5px", height: "inherit", onClick: increaseMonth, children: /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(import_outline5.ChevronRightIcon, { width: 16, height: 16 }) }),
2302
+ increaseYear && /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(OutlineButton, { px: "5px", py: "5px", height: "inherit", onClick: increaseYear, children: /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(import_outline5.ChevronRightIcon, { width: 16, height: 16 }) })
2303
+ ] });
2304
+
2305
+ // src/inputs/Datepicker/Base/DateHeader.tsx
2306
+ var import_jsx_runtime41 = require("react/jsx-runtime");
2307
+ var months = [
2308
+ "January",
2309
+ "February",
2310
+ "March",
2311
+ "April",
2312
+ "May",
2313
+ "June",
2314
+ "July",
2315
+ "August",
2316
+ "September",
2317
+ "October",
2318
+ "November",
2319
+ "December"
2320
+ ];
2321
+ var StyledMenu = (0, import_styled_components38.default)(Menu)`
2322
+ max-height: 200px;
2323
+ `;
2324
+ var getYearsPeriod = (date, yearItemNumber = 12) => {
2325
+ let endPeriod = Math.ceil((0, import_date_fns.getYear)(date) / yearItemNumber) * yearItemNumber;
2326
+ let startPeriod = endPeriod - (yearItemNumber - 1);
2327
+ return [startPeriod, endPeriod];
2328
+ };
2329
+ var DateHeader = ({
2330
+ monthsShown,
2331
+ monthDate,
2332
+ customHeaderCount,
2333
+ showMonthYearPicker,
2334
+ showYearPicker,
2335
+ date,
2336
+ decreaseMonth,
2337
+ increaseMonth,
2338
+ decreaseYear,
2339
+ increaseYear,
2340
+ changeMonth,
2341
+ changeYear
2342
+ }) => {
2343
+ let [monthMenuOpen, setMonthMenuOpen] = (0, import_react20.useState)(false);
2344
+ let [itemRef, setItemRef] = (0, import_react20.useState)(null);
2345
+ let showLeftNav = monthsShown === 1 || customHeaderCount === 0;
2346
+ let showRightNav = monthsShown === 1 || customHeaderCount === 1;
2347
+ let isOpen = showMonthYearPicker || showYearPicker ? false : monthMenuOpen;
2348
+ let formatting = showMonthYearPicker ? "yyyy" : "MMMM yyyy";
2349
+ let getFriendlyString = () => {
2350
+ if (showYearPicker) {
2351
+ let [start, end] = getYearsPeriod(date, 12);
2352
+ return `${start} - ${end}`;
2353
+ }
2354
+ return (0, import_date_fns.format)(monthDate, formatting);
2355
+ };
2356
+ let handleMonthChange = (month) => {
2357
+ setMonthMenuOpen(false);
2358
+ changeMonth(month);
2359
+ };
2360
+ let canModifyMonths = (fn) => {
2361
+ if (showMonthYearPicker || showYearPicker) {
2362
+ return void 0;
2363
+ }
2364
+ return fn;
2365
+ };
2366
+ let canModifyYear = (fn) => {
2367
+ if (showMonthYearPicker || showYearPicker) {
2368
+ return fn;
2369
+ }
2370
+ return void 0;
2371
+ };
2372
+ let decreaseYearFn = showYearPicker ? () => changeYear((0, import_date_fns.getYear)(date) - 12) : decreaseYear;
2373
+ let increaseYearFn = showYearPicker ? () => changeYear((0, import_date_fns.getYear)(date) + 12) : increaseYear;
2374
+ return /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)("div", { children: [
2375
+ /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(Box, { display: "flex", alignItems: "center", justifyContent: "center", py: "2", children: [
2376
+ showLeftNav && /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(LeftNavigation, { decreaseMonth: canModifyMonths(decreaseMonth), decreaseYear: canModifyYear(decreaseYearFn) }),
2377
+ /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
2378
+ ClickableElement,
2379
+ {
2380
+ ref: setItemRef,
2381
+ flexGrow: "1",
2382
+ fontWeight: "500",
2383
+ justifyContent: "center",
2384
+ onClick: () => setMonthMenuOpen(true),
2385
+ children: getFriendlyString()
2386
+ }
2387
+ ),
2388
+ showRightNav && /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(RightNavigation, { increaseMonth: canModifyMonths(increaseMonth), increaseYear: canModifyYear(increaseYearFn) })
2389
+ ] }),
2390
+ /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(StyledMenu, { inline: true, handleClose: () => setMonthMenuOpen(false), itemRef, isOpen, children: months.map((month, idx) => /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(MenuItem, { onClick: () => handleMonthChange(idx), children: month }, month)) })
2391
+ ] });
2392
+ };
2393
+
2394
+ // src/inputs/Datepicker/Base/DateInput.tsx
2395
+ var import_react21 = require("react");
2396
+ var import_outline6 = require("@heroicons/react/24/outline");
2397
+ var import_styled_components39 = __toESM(require("styled-components"));
2398
+ var import_jsx_runtime42 = require("react/jsx-runtime");
2399
+ var Container6 = import_styled_components39.default.div`
2400
+ display: flex;
2401
+ align-items: center;
2402
+ > :not([hidden]) ~ :not([hidden]) {
2403
+ margin-left: ${({ theme: theme2 }) => theme2.space[1]};
2404
+ margin-right:${({ theme: theme2 }) => theme2.space[4]};
2405
+ }
2406
+ `;
2407
+ var Icon3 = (0, import_styled_components39.default)(import_outline6.CalendarIcon)`
2408
+ color: ${({ theme: theme2 }) => theme2.colors.foreground};
2409
+ margin-right: ${({ theme: theme2 }) => theme2.space[2]};
2410
+ `;
2411
+ var ClearBtn = (0, import_styled_components39.default)(ClickableElement)`
2412
+ color: ${({ theme: theme2 }) => theme2.colors.foreground};
2413
+ :hover {
2414
+ color: ${({ theme: theme2 }) => theme2.colors.foreground};
2415
+ }
2416
+ `;
2417
+ var DateInput = (0, import_react21.forwardRef)(({
2418
+ value,
2419
+ placeholder,
2420
+ onClick,
2421
+ clear,
2422
+ showClear
2423
+ }, ref) => {
2424
+ let handleClear = (e) => {
2425
+ e.stopPropagation();
2426
+ clear == null ? void 0 : clear();
2427
+ };
2428
+ let displayValue = value ? /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Typography, { as: "span", children: value }) : /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Typography, { as: "span", color: "mutedForeground", children: placeholder });
2429
+ return /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(OutlineButton, { bg: "background", width: "100%", fontWeight: "400", lineHeight: "inherit", justifyContent: "space-between", ref, onClick, children: [
2430
+ /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(Container6, { children: [
2431
+ /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Icon3, { width: 16, height: 16 }),
2432
+ displayValue
2433
+ ] }),
2434
+ showClear && value && /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(ClearBtn, { onClick: handleClear, as: "a", children: "Clear" })
2435
+ ] });
2436
+ });
2437
+
2438
+ // src/inputs/Datepicker/Base/DateContainer.tsx
2439
+ var import_jsx_runtime43 = require("react/jsx-runtime");
2440
+ var DateContainer = ({ children }) => /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(Box, { display: "flex", p: "3", bg: "background", borderRadius: "2", boxShadow: "base.1", border: "border.1", fontSize: "1", lineHeight: "1", children });
2441
+
2442
+ // src/inputs/Datepicker/Base/DateWrapper.tsx
2443
+ var import_react22 = require("react");
2444
+ var import_react_popper2 = require("react-popper");
2445
+ var import_jsx_runtime44 = require("react/jsx-runtime");
2446
+ var DateWrapper = ({ children, itemRef, direction = "bottom-start", handleClose, isOpen }) => {
2447
+ let [popperRef, setPopperRef] = (0, import_react22.useState)(null);
2448
+ let { styles, attributes } = (0, import_react_popper2.usePopper)(itemRef, popperRef, {
2449
+ placement: direction,
2450
+ modifiers: [
2451
+ {
2452
+ name: "offset",
2453
+ options: {
2454
+ offset: [0, 10]
2455
+ }
2456
+ }
2457
+ ]
2458
+ });
2459
+ return isOpen ? /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(ClickOutside, { handleClose, target: popperRef, children: /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(Box, __spreadProps(__spreadValues({ ref: setPopperRef, style: styles.popper }, attributes.popper), { children })) }) : null;
2460
+ };
2461
+
2462
+ // src/inputs/Datepicker/Base/StylingBasePicker.tsx
2463
+ var import_polished3 = require("polished");
2464
+ var import_styled_components40 = __toESM(require("styled-components"));
2465
+ var Container7 = import_styled_components40.default.div`
2466
+ /*
2467
+ --------------------------
2468
+ Day names
2469
+ --------------------------
2470
+ */
2471
+ .react-datepicker__day-names {
2472
+ display: grid;
2473
+ grid-template-columns: repeat(7, minmax(0, 1fr));
2474
+ justify-content: space-between;
2475
+ }
2476
+
2477
+ .react-datepicker__day-name {
2478
+ text-align: center;
2479
+ padding: ${({ theme: theme2 }) => theme2.space[1]};
2480
+ color: ${({ theme: theme2 }) => theme2.colors.mutedForeground};
2481
+ font-size: ${({ theme: theme2 }) => theme2.fontSizes[1]};
2482
+ line-height: ${({ theme: theme2 }) => theme2.lineHeights[1]};
2483
+ }
2484
+
2485
+ /*
2486
+ --------------------------
2487
+ Calander body
2488
+ --------------------------
2489
+ */
2490
+
2491
+ .react-datepicker__aria-live {
2492
+ display: none;
2493
+ }
2494
+
2495
+ .react-datepicker__month {
2496
+ margin-top:${({ theme: theme2 }) => theme2.space[2]};
2497
+ > :not([hidden]) ~ :not([hidden]) {
2498
+ margin-bottom: ${({ theme: theme2 }) => theme2.space[1]};
2499
+ margin-top: ${({ theme: theme2 }) => theme2.space[1]};
2500
+ }
2501
+ }
2502
+ .react-datepicker__week {
2503
+ display: grid;
2504
+ grid-template-columns: repeat(7, minmax(0, 1fr));
2505
+ width: 100%;
2506
+ justify-content: space-between;
2507
+ }
2508
+
2509
+ .react-datepicker__day,
2510
+ .react-datepicker__year-text,
2511
+ .react-datepicker__month-text {
2512
+ cursor: pointer;
2513
+ text-align: center;
2514
+ :hover {
2515
+ background: ${({ theme: theme2 }) => theme2.colors.accent};
2516
+ border-radius:${({ theme: theme2 }) => theme2.radii[3]};
2517
+ }
2518
+ }
2519
+
2520
+ .react-datepicker__day--today {
2521
+ font-weight: 700;
2522
+ }
2523
+
2524
+ .react-datepicker__day div {
2525
+ padding: 0.375rem;
2526
+ }
2527
+
2528
+ .react-datepicker__day--in-range div,
2529
+ .react-datepicker__month--in-range div {
2530
+ :hover {
2531
+ border-radius: 0px;
2532
+ }
2533
+ background: ${({ theme: theme2 }) => theme2.colors.accent};
2534
+ color: ${({ theme: theme2 }) => theme2.colors.foreground};
2535
+ }
2536
+
2537
+ .react-datepicker__month--selected,
2538
+ .react-datepicker__month--range-start,
2539
+ .react-datepicker__month--range-end,
2540
+ .react-datepicker__year-text--selected,
2541
+ .react-datepicker__day--selected,
2542
+ .react-datepicker__day--range-start div,
2543
+ .react-datepicker__day--range-end div {
2544
+ color: ${({ theme: theme2 }) => theme2.colors.background};
2545
+ }
2546
+
2547
+ .react-datepicker__day--range-start div,
2548
+ .react-datepicker__day--range-end div,
2549
+ .react-datepicker__day--selecting-range-start div,
2550
+ .react-datepicker__day--selecting-range-end div,
2551
+ .react-datepicker__day--selected div,
2552
+ .react-datepicker__month--selected,
2553
+ .react-datepicker__year-text--selected {
2554
+ border-radius: ${({ theme: theme2 }) => theme2.radii[3]};
2555
+ }
2556
+
2557
+ .react-datepicker__day--selected div,
2558
+ .react-datepicker__day--range-start div,
2559
+ .react-datepicker__day--range-end div,
2560
+ .react-datepicker__month--selected,
2561
+ .react-datepicker__month--range-start,
2562
+ .react-datepicker__month--range-end,
2563
+ .react-datepicker__year-text--selected {
2564
+ background: ${({ theme: theme2 }) => theme2.colors.primary};
2565
+ :hover {
2566
+ background: ${({ theme: theme2 }) => theme2.colors.primary};
2567
+ }
2568
+ }
2569
+
2570
+ .react-datepicker__day--outside-month {
2571
+ pointer-events: none;
2572
+ opacity: 0;
2573
+ }
2574
+ .react-datepicker__day--highlighted,
2575
+ .react-datepicker__month--highlighted {
2576
+ border-radius: ${({ theme: theme2 }) => theme2.radii[3]};
2577
+ background: ${({ theme: theme2 }) => theme2.colors.accent};
2578
+ color: ${({ theme: theme2 }) => theme2.colors.foreground};
2579
+ }
2580
+
2581
+ .react-datepicker__day--disabled,
2582
+ .react-datepicker__month--disabled,
2583
+ .react-datepicker__day--excluded,
2584
+ .react-datepicker__month--excluded {
2585
+ cursor: not-allowed;
2586
+ opacity:0.5;
2587
+ :hover {
2588
+ background-color: transparent;
2589
+ }
2590
+ color: ${({ theme: theme2 }) => theme2.colors.accent};
2591
+ }
2592
+
2593
+ .react-datepicker__day--in-selecting-range {
2594
+ :hover {
2595
+ border-radius: ${({ theme: theme2 }) => theme2.radii[3]};
2596
+ background: ${({ theme: theme2 }) => (0, import_polished3.darken)(0.1, theme2.colors.accent)};
2597
+ }
2598
+ background: ${({ theme: theme2 }) => theme2.colors.accent};
2599
+ }
2600
+
2601
+ .react-datepicker__day--selecting-range-start div,
2602
+ .react-datepicker__day--selecting-range-end div {
2603
+ background: ${({ theme: theme2 }) => (0, import_polished3.darken)(0.1, theme2.colors.primary)};
2604
+ color: ${({ theme: theme2 }) => theme2.colors.primaryForeground};
2605
+ }
2606
+
2607
+
2608
+ .react-datepicker__month-container:last-of-type:not(:first-of-type) {
2609
+ margin-left: ${({ theme: theme2 }) => theme2.sizes[4]};
2610
+ }
2611
+
2612
+ /*
2613
+ -------------------------
2614
+ month selector
2615
+ -------------------------
2616
+ */
2617
+ .react-datepicker__monthPicker {
2618
+ display: grid;
2619
+ flex-direction: column;
2620
+ }
2621
+
2622
+ .react-datepicker__month-wrapper {
2623
+ display: grid;
2624
+ grid-template-columns: repeat(3, minmax(0, 1fr));
2625
+ }
2626
+
2627
+ .react-datepicker__month-text {
2628
+ text-align: center;
2629
+ padding: ${({ theme: theme2 }) => theme2.space[1]};
2630
+ }
2631
+
2632
+ /*
2633
+ ------------------------
2634
+ year selector
2635
+ ------------------------
2636
+ */
2637
+ .react-datepicker__year {
2638
+ margin-top: ${({ theme: theme2 }) => theme2.space[2]};
2639
+ }
2640
+
2641
+ .react-datepicker__year--container {
2642
+ padding-bottom: ${({ theme: theme2 }) => theme2.space[2]};
2643
+ padding-left: ${({ theme: theme2 }) => theme2.space[2]};
2644
+ padding-right: ${({ theme: theme2 }) => theme2.space[2]};
2645
+ }
2646
+
2647
+ .react-datepicker__year-wrapper {
2648
+ display: grid;
2649
+ gap: 5px;
2650
+ grid-template-columns: repeat(3, minmax(0, 1fr));
2651
+ }
2652
+
2653
+ .react-datepicker__year-text {
2654
+ text-align: center;
2655
+ padding: ${({ theme: theme2 }) => theme2.space[1]};
2656
+ }
2657
+ `;
2658
+
2659
+ // src/inputs/Datepicker/Base/BasePicker.tsx
2660
+ var import_jsx_runtime45 = require("react/jsx-runtime");
2661
+ var BasePicker = (_a) => {
2662
+ var _b = _a, {
2663
+ placeholder,
2664
+ handleClear,
2665
+ dateFormat = "dd/MM/yyyy",
2666
+ inputValue,
2667
+ monthsShown = 1,
2668
+ shouldCloseOnSelect = true,
2669
+ onChange,
2670
+ showMonthYearPicker,
2671
+ showYearPicker,
2672
+ showClear = false
2673
+ } = _b, rest = __objRest(_b, [
2674
+ "placeholder",
2675
+ "handleClear",
2676
+ "dateFormat",
2677
+ "inputValue",
2678
+ "monthsShown",
2679
+ "shouldCloseOnSelect",
2680
+ "onChange",
2681
+ "showMonthYearPicker",
2682
+ "showYearPicker",
2683
+ "showClear"
2684
+ ]);
2685
+ let [isOpen, setOpen] = (0, import_react23.useState)(false);
2686
+ let [wrappedRef, setWrappedRef] = (0, import_react23.useState)(null);
2687
+ let handleChange = (value, e) => {
2688
+ let isComplete = Array.isArray(value) && value[0] && value[1] || !Array.isArray(value) && value !== null;
2689
+ if (shouldCloseOnSelect && isComplete) {
2690
+ setOpen(false);
2691
+ }
2692
+ onChange(value, e);
2693
+ };
2694
+ let defaults = {
2695
+ dateFormat,
2696
+ monthsShown,
2697
+ showPopperArrow: false,
2698
+ inline: true,
2699
+ renderDayContents: (dayOfMonth) => /* @__PURE__ */ (0, import_jsx_runtime45.jsx)("div", { className: "in-month", children: dayOfMonth }),
2700
+ calendarContainer: DateContainer,
2701
+ popperContainer: PopperContainer,
2702
+ onChange: handleChange,
2703
+ showMonthYearPicker,
2704
+ showYearPicker,
2705
+ renderCustomHeader: (props) => /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(DateHeader, __spreadValues({ showMonthYearPicker, monthsShown, showYearPicker }, props))
2706
+ };
2707
+ return /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)(import_jsx_runtime45.Fragment, { children: [
2708
+ /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(
2709
+ DateInput,
2710
+ {
2711
+ ref: setWrappedRef,
2712
+ clear: handleClear,
2713
+ onClick: () => setOpen(true),
2714
+ value: inputValue,
2715
+ placeholder,
2716
+ showClear
2717
+ }
2718
+ ),
2719
+ /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(DateWrapper, { isOpen, handleClose: () => setOpen(false), itemRef: wrappedRef, children: /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(Container7, { children: /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(
2720
+ import_react_datepicker.default,
2721
+ __spreadValues(__spreadValues({}, defaults), rest)
2722
+ ) }) })
2723
+ ] });
2724
+ };
2725
+
2726
+ // src/inputs/Datepicker/DateRangePicker.tsx
2727
+ var import_react24 = require("react");
2728
+ var import_date_fns2 = require("date-fns");
2729
+ var import_jsx_runtime46 = require("react/jsx-runtime");
2730
+ var DateRangePicker = (_a) => {
2731
+ var _b = _a, { defaultStartDate, defaultEndDate, onChange = () => {
2732
+ }, inputValueFormat = "dd/MM/yyyy", monthsShown = 2 } = _b, rest = __objRest(_b, ["defaultStartDate", "defaultEndDate", "onChange", "inputValueFormat", "monthsShown"]);
2733
+ let [startDate, setStartDate] = (0, import_react24.useState)(defaultStartDate || null);
2734
+ let [endDate, setEndDate] = (0, import_react24.useState)(defaultEndDate || null);
2735
+ let inputValue = startDate && endDate && `${(0, import_date_fns2.format)(startDate, inputValueFormat)} - ${(0, import_date_fns2.format)(endDate, inputValueFormat)}`;
2736
+ let clear = () => {
2737
+ setStartDate(null);
2738
+ setEndDate(null);
2739
+ };
2740
+ let handleChange = (dates, event) => {
2741
+ let [start, end] = dates;
2742
+ setStartDate(start);
2743
+ setEndDate(end);
2744
+ onChange == null ? void 0 : onChange(dates, event);
2745
+ };
2746
+ return /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
2747
+ BasePicker,
2748
+ __spreadProps(__spreadValues({}, rest), {
2749
+ inputValue: inputValue || void 0,
2750
+ startDate,
2751
+ endDate,
2752
+ selectsRange: true,
2753
+ handleClear: clear,
2754
+ monthsShown,
2755
+ onChange: handleChange
2756
+ })
2757
+ );
2758
+ };
2759
+
2760
+ // src/inputs/Datepicker/DatePicker.tsx
2761
+ var import_react25 = require("react");
2762
+ var import_date_fns3 = require("date-fns");
2763
+ var import_jsx_runtime47 = require("react/jsx-runtime");
2764
+ var DatePicker = (_a) => {
2765
+ var _b = _a, {
2766
+ defaultDate,
2767
+ onChange = () => {
2768
+ },
2769
+ inputValueFormat = "dd/MM/yyyy"
2770
+ } = _b, rest = __objRest(_b, [
2771
+ "defaultDate",
2772
+ "onChange",
2773
+ "inputValueFormat"
2774
+ ]);
2775
+ let [selectedDate, setSelectedDate] = (0, import_react25.useState)(defaultDate || null);
2776
+ let inputValue = selectedDate && (0, import_date_fns3.format)(selectedDate, inputValueFormat);
2777
+ let clear = () => {
2778
+ setSelectedDate(null);
2779
+ };
2780
+ let handleChange = (date, event) => {
2781
+ setSelectedDate(date);
2782
+ onChange == null ? void 0 : onChange(date, event);
2783
+ };
2784
+ return /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
2785
+ BasePicker,
2786
+ __spreadProps(__spreadValues({}, rest), {
2787
+ inputValue: inputValue || void 0,
2788
+ selected: selectedDate,
2789
+ handleClear: clear,
2790
+ onChange: handleChange
2791
+ })
2792
+ );
2793
+ };
2794
+
2795
+ // src/inputs/Select/Select.tsx
2796
+ var import_downshift = __toESM(require("downshift"));
2797
+
2798
+ // src/inputs/Select/SelectContext.tsx
2799
+ var import_react26 = require("react");
2800
+ var SelectContext = (0, import_react26.createContext)(void 0);
2801
+ var useSelectContext = () => {
2802
+ let context = (0, import_react26.useContext)(SelectContext);
2803
+ if (context === void 0) {
2804
+ throw new Error("useSelectContext must be used within a SelectContext provider");
2805
+ }
2806
+ return context;
2807
+ };
2808
+
2809
+ // src/inputs/Select/Select.tsx
2810
+ var import_jsx_runtime48 = require("react/jsx-runtime");
2811
+ var clearInputOnSelectItem = (state, changes) => {
2812
+ if (changes.type === import_downshift.default.stateChangeTypes.clickButton) {
2813
+ return __spreadProps(__spreadValues({}, changes), {
2814
+ inputValue: ""
2815
+ });
2816
+ }
2817
+ return changes;
2818
+ };
2819
+ var Select = (_a) => {
2820
+ var _b = _a, { itemToString, children } = _b, rest = __objRest(_b, ["itemToString", "children"]);
2821
+ return /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(import_downshift.default, __spreadProps(__spreadValues({ itemToString, stateReducer: clearInputOnSelectItem }, rest), { children: (_a2) => {
2822
+ var _b2 = _a2, { getRootProps } = _b2, downshift = __objRest(_b2, ["getRootProps"]);
2823
+ return /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(Box, __spreadProps(__spreadValues({ position: "relative", width: "100%" }, getRootProps()), { children: /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(SelectContext.Provider, { value: __spreadValues(__spreadValues({}, downshift), getRootProps()), children }) }));
2824
+ } }));
2825
+ };
2826
+
2827
+ // src/inputs/Select/SelectButton.tsx
2828
+ var import_outline7 = require("@heroicons/react/24/outline");
2829
+ var import_styled_components41 = __toESM(require("styled-components"));
2830
+ var import_jsx_runtime49 = require("react/jsx-runtime");
2831
+ var ClearBtn2 = (0, import_styled_components41.default)(ClickableElement)`
2832
+ color: ${({ theme: theme2 }) => theme2.colors.mutedForeground};
2833
+ margin-right: 3px;
2834
+ :hover {
2835
+ color: ${({ theme: theme2 }) => theme2.colors.foreground};
2836
+ }
2837
+ `;
2838
+ var Container8 = (0, import_styled_components41.default)(Box)`
2839
+ > {
2840
+ margin-right: ${({ theme: theme2 }) => theme2.space[4]};
2841
+ }
2842
+ > :last-child {
2843
+ margin-right: 0;
2844
+ }
2845
+ `;
2846
+ var SelectButton = (_a) => {
2847
+ var _b = _a, {
2848
+ isClearable,
2849
+ children,
2850
+ isFilterable,
2851
+ placeholder
2852
+ } = _b, rest = __objRest(_b, [
2853
+ "isClearable",
2854
+ "children",
2855
+ "isFilterable",
2856
+ "placeholder"
2857
+ ]);
2858
+ let {
2859
+ getToggleButtonProps,
2860
+ itemToString,
2861
+ selectedItem,
2862
+ clearSelection
2863
+ } = useSelectContext();
2864
+ let buttonText = children || itemToString && itemToString(selectedItem) || selectedItem && selectedItem.value || placeholder;
2865
+ let isClearableActive = isClearable && selectedItem;
2866
+ let clear = (e) => {
2867
+ e.stopPropagation();
2868
+ clearSelection();
2869
+ };
2870
+ return /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)(
2871
+ OutlineButton,
2872
+ __spreadProps(__spreadValues(__spreadValues({
2873
+ width: "100%",
2874
+ bg: "background",
2875
+ justifyContent: "space-between"
2876
+ }, getToggleButtonProps()), rest), {
2877
+ children: [
2878
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(Typography, { fontWeight: "normal", children: buttonText }),
2879
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)(Container8, { display: "flex", alignItems: "center", children: [
2880
+ isClearableActive && /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(ClearBtn2, { as: "a", onClick: clear, children: "Clear" }),
2881
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(import_outline7.ChevronUpDownIcon, { height: 16, width: 16 })
2882
+ ] })
2883
+ ]
2884
+ })
2885
+ );
2886
+ };
2887
+
2888
+ // src/inputs/Select/SelectFilter.tsx
2889
+ var import_react29 = require("react");
2890
+ var import_outline9 = require("@heroicons/react/24/outline");
2891
+
2892
+ // src/inputs/Input/Input.tsx
2893
+ var import_react27 = require("react");
2894
+ var import_styled_components44 = __toESM(require("styled-components"));
2895
+
2896
+ // src/inputs/Input/BaseInput.tsx
2897
+ var import_styled_components42 = __toESM(require("styled-components"));
2898
+ var BaseInput = import_styled_components42.default.input`
2899
+ width: 100%;
2900
+ outline: 2px solid transparent;
2901
+ outline-offset: 2px;
2902
+ background: transparent;
2903
+ color: ${({ theme: theme2 }) => theme2.colors.foreground};
2904
+ padding: ${({ theme: theme2 }) => theme2.space[1]} ${({ theme: theme2 }) => theme2.space[3]};
2905
+ font-size: ${({ theme: theme2 }) => theme2.fontSizes[1]};
2906
+ line-height: ${({ theme: theme2 }) => theme2.lineHeights[1]};
2907
+ height: calc(${({ theme: theme2 }) => theme2.sizes[9]} - 2px);
2908
+ :placeholder {
2909
+ color: ${({ theme: theme2 }) => theme2.colors.mutedForeground};
2910
+ }
2911
+ `;
2912
+
2913
+ // src/inputs/Input/AddonElement.tsx
2914
+ var import_styled_components43 = __toESM(require("styled-components"));
2915
+ var import_jsx_runtime50 = require("react/jsx-runtime");
2916
+ var StyledBox = (0, import_styled_components43.default)(Box)`
2917
+ &:focus {
2918
+ z-index:0;
2919
+ outline: none;
2920
+ }
2921
+
2922
+ button:focus {
2923
+ outline: none;
2924
+ box-shadow: none;
2925
+ }
2926
+
2927
+ :hover {
2928
+ opacity: 0.8;
2929
+ }
2930
+ `;
2931
+ var AddonElement = ({
2932
+ addon,
2933
+ left,
2934
+ right
2935
+ }) => addon ? /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(StyledBox, { bg: "offsetBackground", borderRight: right ? "none" : "border.1", borderLeft: left ? "none" : "border.1", display: "flex", alignItems: "center", children: addon }) : null;
2936
+
2937
+ // src/inputs/Input/OptionalIcon.tsx
2938
+ var import_jsx_runtime51 = require("react/jsx-runtime");
2939
+ var OptionalIcon = ({ icon, left, right }) => icon ? /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
2940
+ Box,
2941
+ {
2942
+ bg: "offsetBackground",
2943
+ display: "flex",
2944
+ borderRight: right ? "none" : "border.1",
2945
+ borderLeft: left ? "none" : "border.1",
2946
+ alignItems: "center",
2947
+ px: "3",
2948
+ py: "2",
2949
+ children: icon
2950
+ }
2951
+ ) : null;
2952
+
2953
+ // src/inputs/Input/Input.tsx
2954
+ var import_jsx_runtime52 = require("react/jsx-runtime");
2955
+ var Container9 = (0, import_styled_components44.default)(Box)`
2956
+ overflow: hidden;
2957
+ :focus-within {
2958
+ border: ${({ theme: theme2 }) => theme2.borders.primary[1]};
2959
+ }
2960
+ ${({ disabled }) => disabled && `
2961
+ opacity: 0.5;
2962
+ cursor: not-allowed;
2963
+ div, svg, input {
2964
+ cursor: not-allowed;
2965
+ }
2966
+ `}
2967
+ `;
2968
+ var Input2 = (0, import_react27.forwardRef)((_a, ref) => {
2969
+ var _b = _a, {
2970
+ prefixMarkIcon: prefiXMarkIcon,
2971
+ suffixMarkIcon: suffiXMarkIcon,
2972
+ before,
2973
+ after,
2974
+ disabled = false
2975
+ } = _b, rest = __objRest(_b, [
2976
+ "prefixMarkIcon",
2977
+ "suffixMarkIcon",
2978
+ "before",
2979
+ "after",
2980
+ "disabled"
2981
+ ]);
2982
+ return /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)(
2983
+ Container9,
2984
+ {
2985
+ disabled,
2986
+ bg: "background",
2987
+ display: "flex",
2988
+ borderRadius: "3",
2989
+ border: "border.1",
2990
+ boxShadow: "base.0",
2991
+ children: [
2992
+ /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(OptionalIcon, { left: true, icon: prefiXMarkIcon }),
2993
+ /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(AddonElement, { left: true, addon: before }),
2994
+ /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(BaseInput, __spreadValues({ disabled, ref }, rest)),
2995
+ /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(OptionalIcon, { right: true, icon: suffiXMarkIcon }),
2996
+ /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(AddonElement, { right: true, addon: after })
2997
+ ]
2998
+ }
2999
+ );
3000
+ });
3001
+
3002
+ // src/inputs/Input/Password.tsx
3003
+ var import_react28 = require("react");
3004
+ var import_outline8 = require("@heroicons/react/24/outline");
3005
+ var import_jsx_runtime53 = require("react/jsx-runtime");
3006
+ var Btn2 = (_a) => {
3007
+ var _b = _a, { showPassword, onClick } = _b, rest = __objRest(_b, ["showPassword", "onClick"]);
3008
+ return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(ClickableElement, __spreadProps(__spreadValues({ px: "3", py: "2", type: "button", onClick }, rest), { children: showPassword ? /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_outline8.EyeSlashIcon, { width: 16 }) : /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_outline8.EyeIcon, { width: 16 }) }));
3009
+ };
3010
+ var Password = (_a) => {
3011
+ var rest = __objRest(_a, []);
3012
+ let [showPassword, setToggle] = (0, import_react28.useState)(false);
3013
+ let onClick = () => setToggle(!showPassword);
3014
+ return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
3015
+ Input2,
3016
+ __spreadProps(__spreadValues({}, rest), {
3017
+ after: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(Btn2, { showPassword, onClick }),
3018
+ type: showPassword ? "text" : "password"
3019
+ })
3020
+ );
3021
+ };
3022
+
3023
+ // src/inputs/Input/NumberField.tsx
3024
+ var import_jsx_runtime54 = require("react/jsx-runtime");
3025
+ var NumberField = (_a) => {
3026
+ var rest = __objRest(_a, []);
3027
+ return /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(Input2, __spreadValues({ type: "number" }, rest));
3028
+ };
3029
+
3030
+ // src/inputs/Select/SelectFilter.tsx
3031
+ var import_jsx_runtime55 = require("react/jsx-runtime");
3032
+ var SelectFilter = (_a) => {
3033
+ var _b = _a, { textProps } = _b, rest = __objRest(_b, ["textProps"]);
3034
+ let ref = (0, import_react29.useRef)(null);
3035
+ let { getInputProps, isOpen } = useSelectContext();
3036
+ (0, import_react29.useEffect)(() => {
3037
+ var _a2;
3038
+ if (isOpen) {
3039
+ (_a2 = ref == null ? void 0 : ref.current) == null ? void 0 : _a2.focus();
3040
+ }
3041
+ }, [isOpen]);
3042
+ if (!isOpen) {
3043
+ return /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(SelectButton, __spreadValues({}, rest));
3044
+ }
3045
+ return /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(Input2, __spreadValues(__spreadValues({ suffixMarkIcon: /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(import_outline9.ChevronUpDownIcon, { height: 16, width: 16 }), ref }, textProps), getInputProps()));
3046
+ };
3047
+
3048
+ // src/inputs/Select/SelectItem.tsx
3049
+ var import_react30 = require("react");
3050
+ var import_styled_components45 = __toESM(require("styled-components"));
3051
+ var import_jsx_runtime56 = require("react/jsx-runtime");
3052
+ var Item = (0, import_styled_components45.default)(ListItem)`
3053
+ cursor: pointer;
3054
+ padding: ${({ theme: theme2 }) => `${theme2.space[2]} ${theme2.space[4]}`};
3055
+ background: ${({ changeBg, theme: theme2 }) => changeBg ? theme2.colors.accent : "inherit"};
3056
+ font-size: ${({ theme: theme2 }) => theme2.fontSizes[1]};
3057
+ line-height: ${({ theme: theme2 }) => theme2.lineHeights[1]};
3058
+ border-radius: ${({ theme: theme2 }) => theme2.radii[3]};
3059
+ margin: 0px ${({ theme: theme2 }) => theme2.space[1]};
3060
+ &:hover {
3061
+ background: ${({ theme: theme2 }) => theme2.colors.accent};
3062
+ }
3063
+ `;
3064
+ var SelectItem = ({ children, item, index }) => {
3065
+ let {
3066
+ getItemProps,
3067
+ selectedItem,
3068
+ itemToString
3069
+ } = useSelectContext();
3070
+ let itemText = children || itemToString && itemToString(item) || item && item.value;
3071
+ let memoValue = (0, import_react30.useMemo)(() => itemToString(item), [item, itemToString]);
3072
+ let _a = getItemProps({
3073
+ key: item.value,
3074
+ item,
3075
+ index
3076
+ }), { key } = _a, itemProps = __objRest(_a, ["key"]);
3077
+ return /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(
3078
+ Item,
3079
+ __spreadProps(__spreadValues({
3080
+ changeBg: selectedItem === item || itemToString(SelectItem) === memoValue
3081
+ }, itemProps), {
3082
+ children: itemText
3083
+ }),
3084
+ key
3085
+ );
3086
+ };
3087
+
3088
+ // src/inputs/Select/SelectList.tsx
3089
+ var import_styled_components46 = __toESM(require("styled-components"));
3090
+ var import_jsx_runtime57 = require("react/jsx-runtime");
3091
+ var StyledList = (0, import_styled_components46.default)(List)`
3092
+ padding-top: ${({ theme: theme2 }) => theme2.space[1]};
3093
+ padding-bottom: ${({ theme: theme2 }) => theme2.space[1]};
3094
+ border-radius: ${({ theme: theme2 }) => theme2.radii[3]};
3095
+ box-shadow: ${({ theme: theme2 }) => theme2.shadows.base[4]};
3096
+ border: ${({ theme: theme2 }) => theme2.borders.border[1]};
3097
+ background: ${({ theme: theme2 }) => theme2.colors.background};
3098
+ margin-top: ${({ theme: theme2 }) => theme2.space[2]};
3099
+ position: absolute;
3100
+ min-width: 100%;
3101
+ z-index:1000;
3102
+ `;
3103
+ var SelectList = ({ children }) => {
3104
+ let { isOpen } = useSelectContext();
3105
+ if (!isOpen) {
3106
+ return null;
3107
+ }
3108
+ return /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(StyledList, { children });
3109
+ };
3110
+
3111
+ // src/inputs/Select/SimpleSelect/SimpleSelect.tsx
3112
+ var import_react31 = require("react");
3113
+ var import_jsx_runtime58 = require("react/jsx-runtime");
3114
+ var SimpleSelect = (_a) => {
3115
+ var _b = _a, {
3116
+ values,
3117
+ isFilterable,
3118
+ disabled,
3119
+ isClearable,
3120
+ placeholder,
3121
+ onInputValueChange,
3122
+ itemToString = (item) => item || ""
3123
+ } = _b, rest = __objRest(_b, [
3124
+ "values",
3125
+ "isFilterable",
3126
+ "disabled",
3127
+ "isClearable",
3128
+ "placeholder",
3129
+ "onInputValueChange",
3130
+ "itemToString"
3131
+ ]);
3132
+ let [filter, setFilter] = (0, import_react31.useState)("");
3133
+ let filterOptions = values.filter((item) => itemToString(item).toLowerCase().includes(filter));
3134
+ const handleOnputValueChange = (inputValue, stateAndHelpers) => {
3135
+ if (onInputValueChange) {
3136
+ onInputValueChange(inputValue, stateAndHelpers);
3137
+ }
3138
+ setFilter(inputValue);
3139
+ };
3140
+ return /* @__PURE__ */ (0, import_jsx_runtime58.jsxs)(Select, __spreadProps(__spreadValues({ onInputValueChange: handleOnputValueChange, itemToString }, rest), { children: [
3141
+ isFilterable ? /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(SelectFilter, { disabled, isClearable, placeholder }) : /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(SelectButton, { disabled, isClearable, placeholder }),
3142
+ /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(SelectList, { children: filterOptions.map((item, idx) => /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(SelectItem, { item, index: idx }, `key_${JSON.stringify(item)}`)) })
3143
+ ] }));
3144
+ };
3145
+
3146
+ // src/inputs/Switch/Switch.tsx
3147
+ var import_styled_components47 = __toESM(require("styled-components"));
3148
+ var import_jsx_runtime59 = require("react/jsx-runtime");
3149
+ var Label2 = import_styled_components47.default.label`
3150
+ position: relative;
3151
+ display: inline-flex;
3152
+ align-items: center;
3153
+ cursor: pointer;
3154
+ height: ${({ theme: theme2 }) => theme2.sizes[4]};
3155
+ width: ${({ theme: theme2 }) => theme2.sizes[8]};
3156
+ ${({ disabled }) => disabled && `
3157
+ cursor: not-allowed;
3158
+ opacity: 0.4;
3159
+ `}
3160
+ `;
3161
+ var Button2 = import_styled_components47.default.div`
3162
+ background: ${({ theme: theme2 }) => theme2.colors.background};
3163
+ position: absolute;
3164
+ border-radius: ${({ theme: theme2 }) => theme2.radii[8]};
3165
+ box-shadow: ${({ theme: theme2 }) => theme2.shadows.base[1]};
3166
+ right: 100%;
3167
+ transform: translateX(100%);
3168
+ height: ${({ theme: theme2 }) => theme2.sizes[4]};
3169
+ width: ${({ theme: theme2 }) => theme2.sizes[4]};
3170
+ ${({ checked }) => checked && `
3171
+ right: 0%;
3172
+ transform: translateX(0%);
3173
+ `}
3174
+ ${({ theme: theme2 }) => theme2.transition}
3175
+ `;
3176
+ var Input3 = import_styled_components47.default.input`
3177
+ display: none;
3178
+ `;
3179
+ var Backing = import_styled_components47.default.div`
3180
+ width: 100%;
3181
+ height: ${({ theme: theme2 }) => theme2.sizes[4]};
3182
+ border-radius: ${({ theme: theme2 }) => theme2.radii[8]};
3183
+ position: absolute;
3184
+ background: ${({ theme: theme2 }) => theme2.colors.input};
3185
+ box-shadow: ${({ theme: theme2 }) => theme2.colors.input} 0 0 0 2px;
3186
+ ${({ theme: theme2, checked }) => checked && `
3187
+ background: ${theme2.colors.primary};
3188
+ box-shadow: ${theme2.colors.primary} 0 0 0 2px;
3189
+ `}
3190
+ ${({ theme: theme2 }) => theme2.transition}
3191
+ `;
3192
+ var Switch = (_a) => {
3193
+ var _b = _a, { disabled = false } = _b, rest = __objRest(_b, ["disabled"]);
3194
+ return /* @__PURE__ */ (0, import_jsx_runtime59.jsxs)(Label2, { disabled, children: [
3195
+ /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(Input3, __spreadValues({ type: "checkbox", disabled }, rest)),
3196
+ /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(Backing, __spreadValues({}, rest)),
3197
+ /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(Button2, __spreadValues({}, rest))
3198
+ ] });
3199
+ };
3200
+
3201
+ // src/inputs/TextArea/TextArea.tsx
3202
+ var import_styled_components48 = __toESM(require("styled-components"));
3203
+ var TextArea = import_styled_components48.default.textarea`
3204
+ box-shadow: ${({ theme: theme2 }) => theme2.shadows.base[0]};
3205
+ border: ${({ theme: theme2 }) => theme2.borders.border[1]};
3206
+ padding: ${({ theme: theme2 }) => theme2.space[2]};
3207
+ width: 100%;
3208
+ min-height: ${({ theme: theme2 }) => theme2.sizes[16]};
3209
+ background: ${({ theme: theme2 }) => theme2.colors.background};
3210
+ font-size: ${({ theme: theme2 }) => theme2.fontSizes[1]};
3211
+ line-height: ${({ theme: theme2 }) => theme2.lineHeights[1]};
3212
+ border-radius: ${({ theme: theme2 }) => theme2.radii[3]};
3213
+ :focus {
3214
+ outline: 2px solid transparent;
3215
+ outline-offset: 2px;
3216
+ border-color: ${({ theme: theme2 }) => theme2.colors.primary};
3217
+ z-index: 10;
3218
+ }
3219
+ `;
3220
+
3221
+ // src/inputs/InputGroup/InputGroup.tsx
3222
+ var import_styled_components49 = __toESM(require("styled-components"));
3223
+ var import_jsx_runtime60 = require("react/jsx-runtime");
3224
+ var Group = import_styled_components49.default.div`
3225
+ > div {
3226
+ border-radius: 0;
3227
+ position: relative;
3228
+ }
3229
+
3230
+ > div:focus-within {
3231
+ z-index: 20;
3232
+ }
3233
+
3234
+ > :not(div:first-of-type) {
3235
+ margin-top: -1px;
3236
+ }
3237
+
3238
+ div:first-of-type {
3239
+ border-radius: ${({ theme: theme2 }) => `${theme2.radii[3]} ${theme2.radii[3]}`} 0 0 ;
3240
+ }
3241
+ div:last-of-type {
3242
+ border-radius: ${({ theme: theme2 }) => `0 0 ${theme2.radii[3]} ${theme2.radii[3]}`};
3243
+ }
3244
+ `;
3245
+ var InputGroup = ({ children }) => /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(Group, { children });
3246
+
3247
+ // src/inputs/Upload/UploadZone.tsx
3248
+ var import_react34 = require("react");
3249
+ var import_styled_components53 = __toESM(require("styled-components"));
3250
+ var import_outline12 = require("@heroicons/react/24/outline");
3251
+
3252
+ // src/inputs/Upload/TileItem.tsx
3253
+ var import_styled_components51 = __toESM(require("styled-components"));
3254
+ var import_outline10 = require("@heroicons/react/24/outline");
3255
+
3256
+ // src/feedback/Tooltip/Tooltip.tsx
3257
+ var import_react32 = require("react");
3258
+ var import_react_popper3 = require("react-popper");
3259
+ var import_styled_components50 = __toESM(require("styled-components"));
3260
+ var import_jsx_runtime61 = require("react/jsx-runtime");
3261
+ var Popover = import_styled_components50.default.div`
3262
+ border-radius: ${({ theme: theme2 }) => theme2.radii[2]};
3263
+ box-shadow: ${({ theme: theme2 }) => theme2.shadows.base[0]};
3264
+ border: ${({ theme: theme2 }) => theme2.borders.border[1]};
3265
+ padding: ${({ theme: theme2 }) => `${theme2.space[2]} ${theme2.space[3]}`};
3266
+ z-index: 10;
3267
+ font-size: ${({ theme: theme2 }) => theme2.fontSizes[1]};
3268
+ line-height: ${({ theme: theme2 }) => theme2.lineHeights[1]};
3269
+ background: ${({ theme: theme2 }) => theme2.colors.background};
3270
+ `;
3271
+ var Tooltip = ({
3272
+ tooltip,
3273
+ children,
3274
+ direction = "top",
3275
+ as: Component2 = "div",
3276
+ disabled
3277
+ }) => {
3278
+ let [showTooltip, setTooltip] = (0, import_react32.useState)(false);
3279
+ let [wrappedRef, setWrappedRef] = (0, import_react32.useState)(null);
3280
+ let [popperRef, setPopperRef] = (0, import_react32.useState)(null);
3281
+ let { styles, attributes } = (0, import_react_popper3.usePopper)(wrappedRef, popperRef, {
3282
+ placement: direction
3283
+ });
3284
+ let handleMouseEnter = () => setTooltip(true);
3285
+ let handleMouseLeave = () => setTooltip(false);
3286
+ return /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)(import_jsx_runtime61.Fragment, { children: [
3287
+ /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
3288
+ Component2,
3289
+ {
3290
+ style: { cursor: "pointer" },
3291
+ ref: setWrappedRef,
3292
+ onMouseEnter: handleMouseEnter,
3293
+ onMouseLeave: handleMouseLeave,
3294
+ children
3295
+ }
3296
+ ),
3297
+ !disabled && showTooltip && /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
3298
+ Popover,
3299
+ __spreadProps(__spreadValues({
3300
+ ref: setPopperRef,
3301
+ style: styles.popper
3302
+ }, attributes.popper), {
3303
+ children: tooltip
3304
+ })
3305
+ ) })
3306
+ ] });
3307
+ };
3308
+
3309
+ // src/inputs/Upload/TileItem.tsx
3310
+ var import_jsx_runtime62 = require("react/jsx-runtime");
3311
+ var fallback = /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(
3312
+ Box,
3313
+ {
3314
+ width: "12",
3315
+ height: "12",
3316
+ display: "flex",
3317
+ alignItems: "center",
3318
+ justifyContent: "center",
3319
+ color: "baseHighlight",
3320
+ borderRadius: "2",
3321
+ bg: "background.2",
3322
+ children: /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(import_outline10.PhotoIcon, { width: 30, height: 30 })
3323
+ }
3324
+ );
3325
+ var DeleteBtn = (0, import_styled_components51.default)(ClickableElement)`
3326
+ opacity: ${({ hasError }) => hasError ? 1 : 0};
3327
+ `;
3328
+ var BoxStyled = (0, import_styled_components51.default)(Box)`
3329
+ :hover button {
3330
+ opacity: 1;
3331
+ }
3332
+ `;
3333
+ var StyledImage = (0, import_styled_components51.default)(ImageComp)`
3334
+ width: ${({ theme: theme2 }) => theme2.sizes[12]};
3335
+ height: ${({ theme: theme2 }) => theme2.sizes[12]};
3336
+ object-fit: cover;
3337
+ border-radius: ${({ theme: theme2 }) => theme2.radii[2]};
3338
+ background: ${({ theme: theme2 }) => theme2.colors.background};
3339
+ `;
3340
+ var TileItem = ({ file, handleDelete }) => {
3341
+ var _a;
3342
+ let { name, bytes, type, extension } = file.meta;
3343
+ let imgSrc = URL.createObjectURL(file.file);
3344
+ let hasError = (((_a = file.errors) == null ? void 0 : _a.length) || 0) > 0;
3345
+ let errorMessage = hasError && file.errors.reduce((acc, curr) => acc += curr.message + " ", "");
3346
+ let meta = [bytes, type, extension].filter(Boolean).join(" - ");
3347
+ return /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(Tooltip, { disabled: !hasError, as: "li", tooltip: errorMessage, children: /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)(
3348
+ BoxStyled,
3349
+ {
3350
+ display: "flex",
3351
+ alignItems: "center",
3352
+ p: "2",
3353
+ overflow: "hidden",
3354
+ borderRadius: "3",
3355
+ border: hasError ? "error.1" : "background2.1",
3356
+ color: hasError ? "error" : "base",
3357
+ children: [
3358
+ /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(StyledImage, { src: imgSrc, fallback }),
3359
+ /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)(Box, { display: "flex", flexDirection: "column", ml: "2", children: [
3360
+ /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(Typography, { as: "span", fontWeight: "700", children: name }),
3361
+ /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(Typography, { fontSize: "0", lineHeight: "0", color: "baseHighlight", children: meta })
3362
+ ] }),
3363
+ /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(Box, { display: "flex", flexGrow: "1", alignItems: "center", justifyContent: "end", children: /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(DeleteBtn, { hasError, onClick: () => handleDelete(file.key), children: /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(import_outline10.TrashIcon, { width: 16, height: 16 }) }) })
3364
+ ]
3365
+ }
3366
+ ) });
3367
+ };
3368
+
3369
+ // src/inputs/Upload/BasicItem.tsx
3370
+ var import_styled_components52 = __toESM(require("styled-components"));
3371
+ var import_outline11 = require("@heroicons/react/24/outline");
3372
+ var import_jsx_runtime63 = require("react/jsx-runtime");
3373
+ var BoxStyled2 = (0, import_styled_components52.default)(Box)`
3374
+ :hover button {
3375
+ opacity: 1;
3376
+ }
3377
+ `;
3378
+ var DeleteBtn2 = (0, import_styled_components52.default)(ClickableElement)`
3379
+ opacity: ${({ hasError }) => hasError ? 1 : 0};
3380
+ `;
3381
+ var SpacedBox = (0, import_styled_components52.default)(Box)`
3382
+ > :not([hidden]) ~ :not([hidden]) {
3383
+ margin-left: ${({ theme: theme2 }) => theme2.space[2]};
3384
+ }
3385
+ `;
3386
+ var BasicItem = ({ file, handleDelete }) => {
3387
+ var _a;
3388
+ let { bytes, name } = file.meta;
3389
+ let hasError = (((_a = file.errors) == null ? void 0 : _a.length) || 0) > 0;
3390
+ let errorMessage = hasError && file.errors.reduce((acc, curr) => acc += curr.message + " ", "");
3391
+ return /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(Tooltip, { disabled: !hasError, as: "li", tooltip: errorMessage, children: /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)(
3392
+ BoxStyled2,
3393
+ {
3394
+ display: "flex",
3395
+ alignItems: "center",
3396
+ justifyContent: "space-between",
3397
+ px: "1",
3398
+ borderRadius: "1",
3399
+ color: hasError ? "error" : "base",
3400
+ children: [
3401
+ /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)(SpacedBox, { display: "flex", alignItems: "center", children: [
3402
+ /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(import_outline11.PaperClipIcon, { widths: 16, height: 16 }),
3403
+ /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(Typography, { as: "span", children: name }),
3404
+ !hasError && /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(Typography, { as: "span", fontSize: 1, lineHeight: 1, children: bytes })
3405
+ ] }),
3406
+ /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(SpacedBox, { display: "flex", alignItems: "center", children: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(DeleteBtn2, { hasError, onClick: () => handleDelete(file.key), children: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(import_outline11.TrashIcon, { width: 16, height: 16 }) }) })
3407
+ ]
3408
+ }
3409
+ ) });
3410
+ };
3411
+
3412
+ // src/inputs/Upload/BaseUploader.tsx
3413
+ var import_react33 = require("react");
3414
+ var import_react_dropzone = require("react-dropzone");
3415
+
3416
+ // src/inputs/Upload/Utils.ts
3417
+ var formatBytes = (bytes, decimals = 2) => {
3418
+ if (bytes == 0) return "0 Bytes";
3419
+ let k = 1024, dm = decimals || 2, sizes = ["Bytes", "KB", "MB", "GB", "TB", "PB", "EB", "ZB", "YB"], i = Math.floor(Math.log(bytes) / Math.log(k));
3420
+ return parseFloat((bytes / Math.pow(k, i)).toFixed(dm)) + " " + sizes[i];
3421
+ };
3422
+ var getMeta = (file, errors) => {
3423
+ let rawType = file.type.split("/");
3424
+ let rawName = file.name.split(".");
3425
+ return {
3426
+ key: file.name,
3427
+ file,
3428
+ errors,
3429
+ meta: {
3430
+ name: file.name,
3431
+ type: rawType[0] || "text",
3432
+ extension: rawType[1] || rawName[1] || "",
3433
+ bytes: formatBytes(file.size)
3434
+ }
3435
+ };
3436
+ };
3437
+
3438
+ // src/inputs/Upload/BaseUploader.tsx
3439
+ var import_jsx_runtime64 = require("react/jsx-runtime");
3440
+ var BaseUploader = ({
3441
+ container: Container13,
3442
+ options = {},
3443
+ renderUploader,
3444
+ filesRender,
3445
+ handleFileUpdate
3446
+ }) => {
3447
+ let [files, setFiles] = (0, import_react33.useState)([]);
3448
+ let _a = options, { onDrop } = _a, otherOptions = __objRest(_a, ["onDrop"]);
3449
+ let wrappedOnDrop = (acceptedFiles, fileRejections, event) => {
3450
+ onDrop == null ? void 0 : onDrop(acceptedFiles, fileRejections, event);
3451
+ let accepted = acceptedFiles.map((f) => getMeta(f, []));
3452
+ let rejected = fileRejections.map((f) => getMeta(f.file, f.errors));
3453
+ setFiles([...accepted, ...rejected]);
3454
+ };
3455
+ let { getRootProps, getInputProps, isDragActive, open } = (0, import_react_dropzone.useDropzone)(__spreadValues({ onDrop: wrappedOnDrop }, otherOptions));
3456
+ let handleDelete = (key) => {
3457
+ setFiles(files.filter((f) => f.key !== key));
3458
+ };
3459
+ (0, import_react33.useEffect)(() => {
3460
+ handleFileUpdate == null ? void 0 : handleFileUpdate(files);
3461
+ }, [files, handleFileUpdate]);
3462
+ return /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)(import_jsx_runtime64.Fragment, { children: [
3463
+ /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)(Container13, __spreadProps(__spreadValues({ isDragActive }, getRootProps()), { children: [
3464
+ /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("input", __spreadValues({}, getInputProps())),
3465
+ renderUploader == null ? void 0 : renderUploader(isDragActive, open)
3466
+ ] })),
3467
+ filesRender == null ? void 0 : filesRender(files, handleDelete)
3468
+ ] });
3469
+ };
3470
+
3471
+ // src/inputs/Upload/UploadZone.tsx
3472
+ var import_jsx_runtime65 = require("react/jsx-runtime");
3473
+ var Container10 = import_styled_components53.default.div`
3474
+ width: 100%;
3475
+ display: flex;
3476
+ flex-direction: column;
3477
+ text-align: center;
3478
+ justify-content: center;
3479
+ align-items: center;
3480
+ cursor: pointer;
3481
+ border-radius: ${({ theme: theme2 }) => theme2.radii[2]};
3482
+ border-color: ${({ theme: theme2 }) => theme2.colors.border};
3483
+ border-width: 4px;
3484
+ border-style: dashed;
3485
+ padding: ${({ theme: theme2 }) => `${theme2.space[5]} ${theme2.space[2]}`};
3486
+
3487
+ > :not([hidden]) ~ :not([hidden]) {
3488
+ margin: ${({ theme: theme2 }) => theme2.space[1]} 0;
3489
+ }
3490
+
3491
+ ${({ isDragActive, theme: theme2 }) => isDragActive && `
3492
+ background: ${theme2.colors.muted};
3493
+ border-color: ${theme2.colors.accent};
3494
+ `}
3495
+ `;
3496
+ var StyledList2 = (0, import_styled_components53.default)(List)`
3497
+ margin-top: ${({ theme: theme2 }) => theme2.space[2]};
3498
+ > :not([hidden]) ~ :not([hidden]) {
3499
+ margin-top: ${({ theme: theme2 }) => theme2.space[2]};
3500
+ margin-bottom: ${({ theme: theme2 }) => theme2.space[2]};
3501
+ }
3502
+ :empty {
3503
+ margin: 0px;
3504
+ }
3505
+ `;
3506
+ var TrayIcon = (0, import_styled_components53.default)(import_outline12.ArrowUpTrayIcon)`
3507
+ color: ${({ theme: theme2 }) => theme2.colors.foreground};
3508
+ ${({ isDragActive, theme: theme2 }) => isDragActive && `
3509
+ color: ${theme2.colors.foreground};
3510
+ ${theme2.animations.bounce}
3511
+ `}
3512
+ `;
3513
+ var UploadZone = (_a) => {
3514
+ var _b = _a, {
3515
+ showAsTile,
3516
+ filesRender,
3517
+ bottomText = "Support for a single or bulk upload."
3518
+ } = _b, rest = __objRest(_b, [
3519
+ "showAsTile",
3520
+ "filesRender",
3521
+ "bottomText"
3522
+ ]);
3523
+ let Uploader = (0, import_react34.useCallback)((isDragActive) => /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)(import_jsx_runtime65.Fragment, { children: [
3524
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(TrayIcon, { width: 30, height: 30, isDragActive }),
3525
+ isDragActive ? /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(Typography, { fontWeight: "700", color: "base", children: "And drop your file to upload" }) : /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)(Typography, { children: [
3526
+ "Drag and drop, or ",
3527
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(Typography, { as: "span", color: "primary", children: "click to find" }),
3528
+ " a file"
3529
+ ] }),
3530
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
3531
+ Typography,
3532
+ {
3533
+ fontSize: "1",
3534
+ lineHeight: "1",
3535
+ color: isDragActive ? "baseAccent" : "baseHighlight",
3536
+ children: bottomText
3537
+ }
3538
+ )
3539
+ ] }), [bottomText]);
3540
+ let defaultRender = (0, import_react34.useCallback)((files, handleDelete) => /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(StyledList2, { children: files.map((file) => showAsTile ? /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(TileItem, { file, handleDelete }, file.key) : /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(BasicItem, { file, handleDelete }, file.key)) }), [showAsTile]);
3541
+ return /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
3542
+ BaseUploader,
3543
+ __spreadProps(__spreadValues({}, rest), {
3544
+ container: Container10,
3545
+ renderUploader: Uploader,
3546
+ filesRender: filesRender || defaultRender
3547
+ })
3548
+ );
3549
+ };
3550
+
3551
+ // src/inputs/Upload/UploadButton.tsx
3552
+ var import_react35 = require("react");
3553
+ var import_outline13 = require("@heroicons/react/24/outline");
3554
+ var import_styled_components54 = __toESM(require("styled-components"));
3555
+ var import_jsx_runtime66 = require("react/jsx-runtime");
3556
+ var StyledList3 = (0, import_styled_components54.default)(List)`
3557
+ margin-top: ${({ theme: theme2 }) => theme2.space[2]};
3558
+ > :not([hidden]) ~ :not([hidden]) {
3559
+ margin-top: ${({ theme: theme2 }) => theme2.space[2]};
3560
+ margin-bottom: ${({ theme: theme2 }) => theme2.space[2]};
3561
+ }
3562
+ :empty {
3563
+ margin: 0px;
3564
+ }
3565
+ `;
3566
+ var UploadButton = (_a) => {
3567
+ var _b = _a, {
3568
+ buttonText = "Upload file"
3569
+ } = _b, rest = __objRest(_b, [
3570
+ "buttonText"
3571
+ ]);
3572
+ let Uploader = (0, import_react35.useCallback)((_, open) => /* @__PURE__ */ (0, import_jsx_runtime66.jsxs)(OutlineButton, { onClick: open, children: [
3573
+ /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(import_outline13.ArrowUpTrayIcon, { width: 16, height: 16 }),
3574
+ /* @__PURE__ */ (0, import_jsx_runtime66.jsx)("span", { children: buttonText })
3575
+ ] }), [buttonText]);
3576
+ let defaultRender = (0, import_react35.useCallback)((files, handleDelete) => /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(StyledList3, { children: files.map((file) => /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(BasicItem, { file, handleDelete }, file.key)) }), []);
3577
+ return /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(
3578
+ BaseUploader,
3579
+ __spreadProps(__spreadValues({
3580
+ container: (_a2) => {
3581
+ var params = __objRest(_a2, []);
3582
+ return /* @__PURE__ */ (0, import_jsx_runtime66.jsx)("div", __spreadValues({}, params));
3583
+ }
3584
+ }, rest), {
3585
+ options: {
3586
+ noClick: true,
3587
+ noKeyboard: true
3588
+ },
3589
+ renderUploader: Uploader,
3590
+ filesRender: defaultRender
3591
+ })
3592
+ );
3593
+ };
3594
+
3595
+ // src/inputs/WithLabel/Label.tsx
3596
+ var import_jsx_runtime67 = require("react/jsx-runtime");
3597
+ var Label3 = ({ value, children, error }) => {
3598
+ let isRequired = children.props.required;
3599
+ return /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)(Box, { as: "label", display: "block", children: [
3600
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)(Box, { color: error ? "destructive" : "inherit", display: "flex", fontSize: "1", lineHeight: "1", mt: "4", mb: "1", children: [
3601
+ value,
3602
+ " ",
3603
+ isRequired && /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(Typography, { children: "*" })
3604
+ ] }),
3605
+ children
3606
+ ] });
3607
+ };
3608
+
3609
+ // src/utils/Theme/ThemeToggle.tsx
3610
+ var import_jsx_runtime68 = require("react/jsx-runtime");
3611
+ var ThemeSwitch = () => {
3612
+ let { theme: theme2, toggleTheme } = useMuffledSettings();
3613
+ return /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)(Box, { display: "flex", alignSelf: "center", width: "120px", justifyContent: "space-between", borderRadius: "8", border: "border.1", px: "3", py: "3", bg: "background", children: [
3614
+ /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(import_solid3.SunIcon, { width: "16px" }),
3615
+ /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(Switch, { checked: theme2 === "Dark", onChange: toggleTheme }),
3616
+ /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(import_solid3.MoonIcon, { width: "16px" })
3617
+ ] });
3618
+ };
3619
+ var ThemeButton = () => {
3620
+ let { theme: theme2, toggleTheme } = useMuffledSettings();
3621
+ return /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)(OutlineButton, { onClick: toggleTheme, children: [
3622
+ theme2 === "Dark" && /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(import_solid3.SunIcon, { width: "16px" }),
3623
+ theme2 === "Light" && /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(import_solid3.MoonIcon, { width: "16px" })
3624
+ ] });
3625
+ };
3626
+
3627
+ // src/feedback/Code/SyntaxHighlighter.tsx
3628
+ var import_jsx_runtime69 = require("react/jsx-runtime");
3629
+ var SyntaxHighlighter = ({
3630
+ language,
3631
+ code,
3632
+ withWrapper = true
3633
+ }) => {
3634
+ let { theme: theme2 } = useMuffledSettings();
3635
+ return /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(Wrapper, { skip: !withWrapper, children: /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(import_react_syntax_highlighter.default, { language, style: theme2 === "Light" ? githubLight : githubDark, children: code }) });
3636
+ };
3637
+
3638
+ // src/feedback/Loader/CircleLoader.tsx
3639
+ var import_styled_components55 = __toESM(require("styled-components"));
3640
+ var import_jsx_runtime70 = require("react/jsx-runtime");
3641
+ var Svg = import_styled_components55.default.svg`
3642
+ ${({ theme: theme2 }) => theme2.animations.spin};
3643
+ stroke: currentColor;
3644
+ `;
3645
+ var OuterCircle = import_styled_components55.default.circle`
3646
+ color: ${({ theme: theme2 }) => theme2.colors.muted};
3647
+ `;
3648
+ var InnerCircle = import_styled_components55.default.circle`
3649
+ color: ${({ theme: theme2, destructive }) => destructive ? theme2.colors.destructive : theme2.colors.primary};
3650
+ `;
3651
+ var CircleLoader = (_a) => {
3652
+ var _b = _a, { height = 50, width = 50, destructive = false } = _b, rest = __objRest(_b, ["height", "width", "destructive"]);
3653
+ return /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)(Svg, __spreadProps(__spreadValues({ viewBox: "25 25 50 50", height, width }, rest), { children: [
3654
+ /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(OuterCircle, { cx: "50", cy: "50", r: "20", fill: "none", strokeWidth: "4" }),
3655
+ /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(InnerCircle, { destructive, cx: "50", cy: "50", r: "20", fill: "none", strokeWidth: "4", strokeDashoffset: "-50", strokeDasharray: "60", strokeLinecap: "round" })
3656
+ ] }));
3657
+ };
3658
+
3659
+ // src/feedback/Loader/LinearLoader.tsx
3660
+ var import_styled_components56 = __toESM(require("styled-components"));
3661
+ var import_jsx_runtime71 = require("react/jsx-runtime");
3662
+ var OuterLine = import_styled_components56.default.div`
3663
+ border-radius: ${({ theme: theme2 }) => theme2.radii[2]};
3664
+ width: 100%;
3665
+ height: 100%;
3666
+ position: absolute;
3667
+ top: 0px;
3668
+ right: 0px;
3669
+ bottom: 0px;
3670
+ left: 0px;
3671
+ background: ${({ theme: theme2 }) => theme2.colors.muted};
3672
+ `;
3673
+ var InnerLine = import_styled_components56.default.div`
3674
+ border-radius: ${({ theme: theme2 }) => theme2.radii[2]};
3675
+ background: ${({ theme: theme2, destructive }) => destructive ? theme2.colors.destructive : theme2.colors.primary};
3676
+ `;
3677
+ var StyledLinearSlider = (0, import_styled_components56.default)(LinearSlide)`
3678
+ width: 33.333333%;
3679
+ height: 100%;
3680
+ position: absolute;
3681
+ top: 0px;
3682
+ right: 0px;
3683
+ bottom: 0px;
3684
+ left: 0px;
3685
+ `;
3686
+ var LinearLoader = ({ height = 5, destructive = false }) => /* @__PURE__ */ (0, import_jsx_runtime71.jsxs)(Box, { overflow: "hidden", width: "100%", position: "relative", borderRadius: "8", style: { height }, children: [
3687
+ /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(OuterLine, {}),
3688
+ /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(StyledLinearSlider, { children: /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(InnerLine, { destructive, style: { height } }) })
3689
+ ] });
3690
+
3691
+ // src/feedback/Modal/Modal.tsx
3692
+ var import_react36 = require("react");
3693
+ var import_outline14 = require("@heroicons/react/24/outline");
3694
+ var import_jsx_runtime72 = require("react/jsx-runtime");
3695
+ var Header = ({ children, handleClose }) => /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)(Box, { display: "inline-flex", pr: "2", pl: "4", pt: "3", alignItems: "center", width: "100%", justifyContent: "space-between", children: [
3696
+ /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(Title, { as: "h3", children }),
3697
+ /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(ClickableElement, { px: 3, py: 2, ml: 5, onClick: handleClose, children: /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(import_outline14.XMarkIcon, { width: 20, height: 20 }) })
3698
+ ] });
3699
+ var Modal = ({ handleClose, title, children, open }) => {
3700
+ let [isOpen, setOpen] = (0, import_react36.useState)(false);
3701
+ if (!open) {
3702
+ return null;
3703
+ }
3704
+ return /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(Backdrop, { onClick: () => setOpen(!isOpen), onDestroyed: handleClose, children: /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)(Panel, { minWidth: "200px", onClick: stopPropagation, children: [
3705
+ title && /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(Header, { handleClose, children: title }),
3706
+ children
3707
+ ] }) });
3708
+ };
3709
+
3710
+ // src/feedback/Progress/CircleProgress.tsx
3711
+ var import_styled_components57 = __toESM(require("styled-components"));
3712
+ var import_jsx_runtime73 = require("react/jsx-runtime");
3713
+ var Svg2 = import_styled_components57.default.svg`
3714
+ stroke: currentColor;
3715
+ transform: rotate(-90deg);
3716
+ `;
3717
+ var OuterCircle2 = import_styled_components57.default.circle`
3718
+ color: ${({ theme: theme2 }) => theme2.colors.muted};
3719
+ `;
3720
+ var InnerCircle2 = import_styled_components57.default.circle`
3721
+ color: ${({ theme: theme2 }) => theme2.colors.foreground};
3722
+ `;
3723
+ var CircleProgress = ({ height = 50, width = 50, percentage = 0 }) => {
3724
+ let circumference = 2 * Math.PI * ((50 - 4) / 2);
3725
+ let strokeDasharray = circumference.toFixed(3);
3726
+ let strokeDashoffset = `${((100 - percentage) / 100 * circumference).toFixed(3)}px`;
3727
+ return /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)(Svg2, { viewBox: "25 25 50 50", height, width, children: [
3728
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(OuterCircle2, { cx: "50", cy: "50", r: "23", fill: "none", strokeWidth: "4" }),
3729
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
3730
+ InnerCircle2,
3731
+ {
3732
+ cx: "50",
3733
+ cy: "50",
3734
+ r: "23",
3735
+ fill: "none",
3736
+ strokeWidth: "4",
3737
+ strokeLinecap: "round",
3738
+ strokeDashoffset,
3739
+ strokeDasharray
3740
+ }
3741
+ )
3742
+ ] });
3743
+ };
3744
+
3745
+ // src/feedback/Progress/LinearProgress.tsx
3746
+ var import_styled_components58 = __toESM(require("styled-components"));
3747
+ var import_jsx_runtime74 = require("react/jsx-runtime");
3748
+ var OuterLine2 = import_styled_components58.default.div`
3749
+ border-radius: ${({ theme: theme2 }) => theme2.radii[8]};
3750
+ width: 100%;
3751
+ height: 100%;
3752
+ position: absolute;
3753
+ top: 0px;
3754
+ right: 0px;
3755
+ bottom: 0px;
3756
+ left: 0px;
3757
+ background: ${({ theme: theme2 }) => theme2.colors.muted};
3758
+ `;
3759
+ var InnerLine2 = import_styled_components58.default.div`
3760
+ border-radius: ${({ theme: theme2 }) => theme2.radii[2]};
3761
+ height: 100%;
3762
+ width: ${({ percentage }) => percentage}%;
3763
+ position: absolute;
3764
+ top: 0px;
3765
+ right: 0px;
3766
+ bottom: 0px;
3767
+ left: 0px;
3768
+ background: ${({ theme: theme2 }) => theme2.colors.foreground};
3769
+ `;
3770
+ var LinearProgress = ({ height = 5, percentage = 0 }) => /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)(Box, { overflow: "hidden", width: "100%", position: "relative", borderRadius: "8", style: { height }, children: [
3771
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(OuterLine2, {}),
3772
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(InnerLine2, { percentage })
3773
+ ] });
3774
+
3775
+ // src/feedback/Skeleton/Skeleton.tsx
3776
+ var import_styled_components59 = __toESM(require("styled-components"));
3777
+ var import_polished4 = require("polished");
3778
+ var import_styled_system9 = require("styled-system");
3779
+ var import_jsx_runtime75 = require("react/jsx-runtime");
3780
+ var Comp = import_styled_components59.default.div`
3781
+ ${({ theme: theme2 }) => theme2.animations.pulse}
3782
+ background: ${({ theme: theme2 }) => (0, import_polished4.rgba)(theme2.colors.primary, 0.1)};
3783
+ ${import_styled_system9.layout}
3784
+ ${import_styled_system9.space}
3785
+ ${({ theme: theme2, height, width }) => (0, import_styled_system9.variant)({
3786
+ prop: "variant",
3787
+ variants: {
3788
+ circle: {
3789
+ borderRadius: theme2.radii[8],
3790
+ height: height + "px",
3791
+ width: width + "px"
3792
+ },
3793
+ rectangle: {
3794
+ borderRadius: theme2.radii[3],
3795
+ height: height + "px",
3796
+ width: width + "px"
3797
+ },
3798
+ text: {
3799
+ display: "inline-flex",
3800
+ borderRadius: theme2.radii[3]
3801
+ }
3802
+ }
3803
+ })}
3804
+ `;
3805
+ var Skeleton = (_a) => {
3806
+ var rest = __objRest(_a, []);
3807
+ return /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(Comp, __spreadProps(__spreadValues({}, rest), { children: "\xA0" }));
3808
+ };
3809
+
3810
+ // src/feedback/Snackbar/SnackbarProvider.tsx
3811
+ var import_react39 = require("react");
3812
+ var import_styled_components61 = __toESM(require("styled-components"));
3813
+
3814
+ // src/feedback/Snackbar/SnackbarContext.tsx
3815
+ var import_react37 = require("react");
3816
+ var SnackbarContext = (0, import_react37.createContext)(void 0);
3817
+ var useSnackbar = () => {
3818
+ let context = (0, import_react37.useContext)(SnackbarContext);
3819
+ if (context === void 0) {
3820
+ throw new Error("useSnackbarCtx must be used within a SnackbarContext provider");
3821
+ }
3822
+ return context;
3823
+ };
3824
+
3825
+ // src/feedback/Snackbar/SnackbarItem.tsx
3826
+ var import_react38 = require("react");
3827
+ var import_styled_components60 = __toESM(require("styled-components"));
3828
+ var import_jsx_runtime76 = require("react/jsx-runtime");
3829
+ var StyledAlert = (0, import_styled_components60.default)(Alert)`
3830
+ margin: ${({ theme: theme2 }) => `${theme2.space[1]} ${theme2.space[4]}`};
3831
+ `;
3832
+ var SnackbarItem = (_a) => {
3833
+ var _b = _a, {
3834
+ body,
3835
+ handleClose,
3836
+ duration,
3837
+ title,
3838
+ persist
3839
+ } = _b, rest = __objRest(_b, [
3840
+ "body",
3841
+ "handleClose",
3842
+ "duration",
3843
+ "title",
3844
+ "persist"
3845
+ ]);
3846
+ let [open, setOpen] = (0, import_react38.useState)(true);
3847
+ (0, import_react38.useEffect)(() => {
3848
+ if (persist) {
3849
+ return;
3850
+ }
3851
+ let timeout = setTimeout(() => {
3852
+ setOpen(false);
3853
+ }, duration);
3854
+ return () => clearTimeout(timeout);
3855
+ }, [duration, persist]);
3856
+ return /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(Slide, { inProp: open, onDestroyed: handleClose, children: /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(
3857
+ StyledAlert,
3858
+ __spreadProps(__spreadValues({
3859
+ withClose: () => setOpen(false),
3860
+ title
3861
+ }, rest), {
3862
+ children: body
3863
+ })
3864
+ ) });
3865
+ };
3866
+
3867
+ // src/feedback/Snackbar/utils.ts
3868
+ var createId = () => {
3869
+ return Math.random().toString(36).substr(2, 9);
3870
+ };
3871
+ var getPosition2 = (position4) => {
3872
+ switch (position4) {
3873
+ case "NE":
3874
+ return `
3875
+ top: 0;
3876
+ right: 0;
3877
+ flex-direction: column;
3878
+ `;
3879
+ case "NW":
3880
+ return `
3881
+ top: 0;
3882
+ left: 0;
3883
+ flex-direction: column;
3884
+ `;
3885
+ case "SE":
3886
+ return `
3887
+ right: 0;
3888
+ bottom: 0;
3889
+ flex-direction: column-reverse;
3890
+ `;
3891
+ case "SW":
3892
+ return `
3893
+ left: 0;
3894
+ bottom: 0;
3895
+ flex-direction: column-reverse;
3896
+ `;
3897
+ }
3898
+ };
3899
+
3900
+ // src/feedback/Snackbar/SnackbarProvider.tsx
3901
+ var import_jsx_runtime77 = require("react/jsx-runtime");
3902
+ var Container11 = import_styled_components61.default.div`
3903
+ position: fixed;
3904
+ display: flex;
3905
+ z-index: 50;
3906
+ margin-bottom: ${({ theme: theme2 }) => theme2.space[1]};
3907
+ margin-top: ${({ theme: theme2 }) => theme2.space[1]};
3908
+ ${({ anchor }) => getPosition2(anchor)}
3909
+ `;
3910
+ var SnackbarProvider = ({
3911
+ anchor = "NE",
3912
+ children,
3913
+ max = 3,
3914
+ autoHideDuration = 5e3,
3915
+ portalLocation
3916
+ }) => {
3917
+ let [items, setItems] = (0, import_react39.useState)([]);
3918
+ let [queue, setQueue] = (0, import_react39.useState)([]);
3919
+ (0, import_react39.useEffect)(() => {
3920
+ if (queue.length <= 0) {
3921
+ return;
3922
+ }
3923
+ if (items.length < max) {
3924
+ let temp = queue;
3925
+ let item = temp.shift();
3926
+ setItems([...items, item]);
3927
+ setQueue(temp);
3928
+ }
3929
+ }, [items, queue, max]);
3930
+ let enqueue = (message, options) => {
3931
+ let item = __spreadProps(__spreadValues({
3932
+ title: message
3933
+ }, options), {
3934
+ id: (options == null ? void 0 : options.id) || createId()
3935
+ });
3936
+ if (items.length < max) {
3937
+ setItems([...items, item]);
3938
+ } else {
3939
+ setQueue([...queue, item]);
3940
+ }
3941
+ };
3942
+ let dequeue = (id) => {
3943
+ setItems([...items.filter((i) => i.id !== id)]);
3944
+ setQueue([...queue.filter((i) => i.id !== id)]);
3945
+ };
3946
+ let clearAll = () => {
3947
+ setItems([]);
3948
+ setQueue([]);
3949
+ };
3950
+ return /* @__PURE__ */ (0, import_jsx_runtime77.jsxs)(SnackbarContext.Provider, { value: {
3951
+ enqueue,
3952
+ dequeue,
3953
+ clearAll
3954
+ }, children: [
3955
+ /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(Portal, { element: portalLocation, children: /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(Container11, { anchor, children: items.map((_a) => {
3956
+ var _b = _a, { id, duration } = _b, rest = __objRest(_b, ["id", "duration"]);
3957
+ return /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(
3958
+ SnackbarItem,
3959
+ __spreadValues({
3960
+ duration: duration || autoHideDuration,
3961
+ handleClose: () => dequeue(id)
3962
+ }, rest),
3963
+ id
3964
+ );
3965
+ }) }) }),
3966
+ children
3967
+ ] });
3968
+ };
3969
+
3970
+ // src/layout/CenteredWidget/CenteredWidget.tsx
3971
+ var import_styled_components62 = __toESM(require("styled-components"));
3972
+ var import_jsx_runtime78 = require("react/jsx-runtime");
3973
+ var CenteredDiv = (0, import_styled_components62.default)(Box)`
3974
+ margin: 0 auto;
3975
+ width: 36rem;
3976
+ `;
3977
+ var CenteredWidget = (_a) => {
3978
+ var _b = _a, { children } = _b, rest = __objRest(_b, ["children"]);
3979
+ return /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(Box, { display: "flex", alignItems: "center", justifyItems: "center", height: "100vh", children: /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(CenteredDiv, __spreadProps(__spreadValues({}, rest), { children })) });
3980
+ };
3981
+
3982
+ // src/layout/TwoColumns/TwoColumns.tsx
3983
+ var import_jsx_runtime79 = require("react/jsx-runtime");
3984
+ var TwoColumns = ({ children, sideNav }) => /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)(
3985
+ Box,
3986
+ {
3987
+ height: "100%",
3988
+ "m-width": "0",
3989
+ display: { md: "grid" },
3990
+ gridTemplateColumns: { md: "19.5rem auto" },
3991
+ gridAutoFlow: { md: "row" },
3992
+ children: [
3993
+ sideNav,
3994
+ children
3995
+ ]
3996
+ }
3997
+ );
3998
+
3999
+ // src/layout/ThreeColumns/ThreeColumns.tsx
4000
+ var import_jsx_runtime80 = require("react/jsx-runtime");
4001
+ var ThreeColumns = ({
4002
+ children,
4003
+ sideNav,
4004
+ mainNav
4005
+ }) => /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(TwoColumns, { sideNav, children: /* @__PURE__ */ (0, import_jsx_runtime80.jsxs)(
4006
+ Box,
4007
+ {
4008
+ height: "100%",
4009
+ minWidth: "0",
4010
+ display: { md: "grid" },
4011
+ gridTemplateColumns: { md: "19.5rem auto" },
4012
+ gridAutoFlow: { md: "row" },
4013
+ children: [
4014
+ mainNav,
4015
+ children
4016
+ ]
4017
+ }
4018
+ ) });
4019
+
4020
+ // src/navigation/Breadcrumbs/Breadcrumbs.tsx
4021
+ var import_react40 = require("react");
4022
+ var import_outline15 = require("@heroicons/react/24/outline");
4023
+
4024
+ // src/navigation/Breadcrumbs/Item.tsx
4025
+ var import_jsx_runtime81 = require("react/jsx-runtime");
4026
+ var Item2 = ({
4027
+ item,
4028
+ isLastItem = false,
4029
+ dividerIcon
4030
+ }) => {
4031
+ return /* @__PURE__ */ (0, import_jsx_runtime81.jsxs)(Box, { display: "inline-flex", alignItems: "center", color: isLastItem ? "inherit" : "mutedForeground", children: [
4032
+ item,
4033
+ !isLastItem && /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(Box, { mx: "2", display: "inline-block", children: dividerIcon })
4034
+ ] });
4035
+ };
4036
+
4037
+ // src/navigation/Breadcrumbs/Breadcrumbs.tsx
4038
+ var import_jsx_runtime82 = require("react/jsx-runtime");
4039
+ var Breadcrumbs = ({
4040
+ children,
4041
+ maxItems = 8,
4042
+ itemsBefore = 1,
4043
+ itemsAfter = 1,
4044
+ dividerIcon = /* @__PURE__ */ (0, import_jsx_runtime82.jsx)("div", { children: "/" })
4045
+ }) => {
4046
+ let [showAll, setShow] = (0, import_react40.useState)(false);
4047
+ let items = import_react40.Children.toArray(children);
4048
+ if (items.length <= maxItems) {
4049
+ return /* @__PURE__ */ (0, import_jsx_runtime82.jsx)("div", { children: items.map((c, idx) => /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(Item2, { item: c, isLastItem: idx === items.length - 1, dividerIcon }, idx)) });
4050
+ }
4051
+ let beforeItems = items.slice(0, itemsBefore);
4052
+ let middleItems = items.slice(itemsBefore, -itemsAfter);
4053
+ let afterItems = items.slice(-itemsAfter);
4054
+ return /* @__PURE__ */ (0, import_jsx_runtime82.jsxs)(Box, { display: "flex", alignItems: "center", children: [
4055
+ beforeItems.map((c, idx) => /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(Item2, { item: c, dividerIcon }, idx)),
4056
+ showAll ? middleItems.map((c, idx) => /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(Item2, { item: c, dividerIcon }, idx)) : /* @__PURE__ */ (0, import_jsx_runtime82.jsxs)(Box, { display: "inline-flex", alignItems: "center", children: [
4057
+ /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(ClickableElement, { onClick: () => setShow(true), children: /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(import_outline15.EllipsisHorizontalIcon, { height: 16, width: 16 }) }),
4058
+ /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(Box, { display: "inline-block", color: "baseHighlight", mx: "2", children: dividerIcon })
4059
+ ] }),
4060
+ afterItems.map((c, idx) => /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(Item2, { item: c, isLastItem: idx === afterItems.length - 1, dividerIcon }, idx))
4061
+ ] });
4062
+ };
4063
+
4064
+ // src/navigation/Drawer/Drawer.tsx
4065
+ var import_react41 = require("react");
4066
+ var import_styled_components63 = __toESM(require("styled-components"));
4067
+ var import_jsx_runtime83 = require("react/jsx-runtime");
4068
+ var StyledOpen = (0, import_styled_components63.default)(Open)`
4069
+ position: fixed;
4070
+ width: 33.333333%;
4071
+ height: 100vh;
4072
+ top: 0px;
4073
+ ${({ direction }) => direction === "left" ? "left: 0px;" : "right: 0;"}
4074
+ `;
4075
+ var Container12 = import_styled_components63.default.div`
4076
+ width: 100%;
4077
+ height: 100%;
4078
+ background: ${({ theme: theme2 }) => theme2.colors.background};
4079
+ `;
4080
+ var Drawer = ({
4081
+ open,
4082
+ handleClose,
4083
+ direction = "right",
4084
+ children
4085
+ }) => {
4086
+ let [isOpen, setOpen] = (0, import_react41.useState)(false);
4087
+ if (!open) {
4088
+ return null;
4089
+ }
4090
+ return /* @__PURE__ */ (0, import_jsx_runtime83.jsx)(Backdrop, { config: { duration: 195 }, onClick: () => setOpen(!isOpen), onDestroyed: handleClose, children: /* @__PURE__ */ (0, import_jsx_runtime83.jsx)(StyledOpen, { inProp: isOpen, direction, "data-testId": "here", children: /* @__PURE__ */ (0, import_jsx_runtime83.jsx)(Container12, { onClick: stopPropagation, children }) }) });
4091
+ };
4092
+
4093
+ // src/navigation/Stepper/Stepper.tsx
4094
+ var import_styled_components64 = __toESM(require("styled-components"));
4095
+
4096
+ // src/navigation/Stepper/StepperContext.ts
4097
+ var import_react42 = require("react");
4098
+ var StepperContext = (0, import_react42.createContext)(void 0);
4099
+ var useStepperContext = () => {
4100
+ let context = (0, import_react42.useContext)(StepperContext);
4101
+ if (context === void 0) {
4102
+ throw new Error("useStepperContext must be used within a StepperContext provider");
4103
+ }
4104
+ return context;
4105
+ };
4106
+
4107
+ // src/navigation/Stepper/Stepper.tsx
4108
+ var import_react43 = require("react");
4109
+ var import_jsx_runtime84 = require("react/jsx-runtime");
4110
+ var parseChildren = (children, step) => {
4111
+ return import_react43.Children.toArray(children).map((node, idx) => {
4112
+ if (!(0, import_react43.isValidElement)(node)) {
4113
+ return null;
4114
+ }
4115
+ let completed = step > idx && "completed";
4116
+ let active = step === idx && "active";
4117
+ return __spreadProps(__spreadValues({
4118
+ state: completed || active || "default",
4119
+ idx
4120
+ }, node.props), {
4121
+ node
4122
+ });
4123
+ });
4124
+ };
4125
+ var StyledDiv2 = import_styled_components64.default.div`
4126
+ display: flex;
4127
+ postion: relative;
4128
+ ${({ direction }) => direction === "vertical" && `
4129
+ flex-direction: column;
4130
+ height: 100%;
4131
+ alignItems: flex-start;
4132
+ `}
4133
+ `;
4134
+ var Stepper = (_a) => {
4135
+ var _b = _a, {
4136
+ children,
4137
+ direction = "horizontal",
4138
+ step
4139
+ } = _b, rest = __objRest(_b, [
4140
+ "children",
4141
+ "direction",
4142
+ "step"
4143
+ ]);
4144
+ let alternativeLabel = rest.hasOwnProperty("alternativeLabel") ? rest.alternativeLabel : false;
4145
+ let items = parseChildren(children, step);
4146
+ return /* @__PURE__ */ (0, import_jsx_runtime84.jsx)(StepperContext.Provider, { value: {
4147
+ noOfItems: items.length - 1,
4148
+ activeStep: step,
4149
+ direction,
4150
+ alternativeLabel
4151
+ }, children: /* @__PURE__ */ (0, import_jsx_runtime84.jsx)(StyledDiv2, { direction, children: items.map((_a2) => {
4152
+ var _b2 = _a2, { node } = _b2, itemRest = __objRest(_b2, ["node"]);
4153
+ return (0, import_react43.cloneElement)(node, __spreadValues({}, itemRest));
4154
+ }) }) });
4155
+ };
4156
+
4157
+ // src/navigation/Stepper/StepIcon.tsx
4158
+ var import_styled_components65 = __toESM(require("styled-components"));
4159
+ var import_outline16 = require("@heroicons/react/24/outline");
4160
+ var import_jsx_runtime85 = require("react/jsx-runtime");
4161
+ var ErrorComp = (0, import_styled_components65.default)(import_outline16.ExclamationTriangleIcon)`
4162
+ width: 24px;
4163
+ height: 24px;
4164
+ color: ${({ theme: theme2 }) => theme2.colors.destructive};
4165
+ `;
4166
+ var DefaultSvg = import_styled_components65.default.svg`
4167
+ width: 30px;
4168
+ height: 30px;
4169
+ color: ${({ theme: theme2 }) => theme2.colors.primary};
4170
+ opacity: ${({ state }) => state === "default" ? "0.6" : "1"};
4171
+ `;
4172
+ var DefaultText = import_styled_components65.default.text`
4173
+ font-weight: 700;
4174
+ font-size: ${({ theme: theme2 }) => theme2.fontSizes[0]};
4175
+ line-height: ${({ theme: theme2 }) => theme2.lineHeights[0]};
4176
+ `;
4177
+ var Checkmark = (0, import_styled_components65.default)(import_outline16.CheckCircleIcon)`
4178
+ color: ${({ theme: theme2 }) => theme2.colors.primary};
4179
+ width: 30px;
4180
+ height: 30px;
4181
+ `;
4182
+ var InnerCirle = import_styled_components65.default.circle`
4183
+ color: ${({ theme: theme2 }) => theme2.colors.background};
4184
+ `;
4185
+ var StepIcon = ({
4186
+ state = "default",
4187
+ icon,
4188
+ number,
4189
+ error
4190
+ }) => {
4191
+ if (icon) {
4192
+ return /* @__PURE__ */ (0, import_jsx_runtime85.jsx)(import_jsx_runtime85.Fragment, { children: icon });
4193
+ }
4194
+ if (error) {
4195
+ return /* @__PURE__ */ (0, import_jsx_runtime85.jsx)(ErrorComp, {});
4196
+ }
4197
+ if (state === "active" || state === "default") {
4198
+ return /* @__PURE__ */ (0, import_jsx_runtime85.jsxs)(DefaultSvg, { fill: "currentColor", state, children: [
4199
+ /* @__PURE__ */ (0, import_jsx_runtime85.jsx)("circle", { cx: "50%", cy: "50%", r: "12" }),
4200
+ /* @__PURE__ */ (0, import_jsx_runtime85.jsx)(InnerCirle, { cx: "50%", cy: "50%", r: "10" }),
4201
+ /* @__PURE__ */ (0, import_jsx_runtime85.jsx)(DefaultText, { x: "50%", y: "65%", textAnchor: "middle", children: number })
4202
+ ] });
4203
+ }
4204
+ return /* @__PURE__ */ (0, import_jsx_runtime85.jsx)(Checkmark, {});
4205
+ };
4206
+
4207
+ // src/navigation/Stepper/StepLabel.tsx
4208
+ var import_styled_components66 = __toESM(require("styled-components"));
4209
+ var import_jsx_runtime86 = require("react/jsx-runtime");
4210
+ var Line = import_styled_components66.default.div`
4211
+ left: calc(-50% + 30px);
4212
+ right: calc(50% + 30px);
4213
+ background: ${({ theme: theme2 }) => theme2.colors.primary};
4214
+ opacity: 0.2;
4215
+ flex: 1 1 auto;
4216
+ width: 1px;
4217
+ ${({ direction }) => direction === "vertical" ? "height: 100%; width: 1px;" : "height: 1px;"}
4218
+ `;
4219
+ var AlternativeLine = import_styled_components66.default.div`
4220
+ left: calc(-50% + 30px);
4221
+ right: calc(50% + 30px);
4222
+ position: absolute;
4223
+ background: ${({ theme: theme2 }) => theme2.colors.primary};
4224
+ opacity: 0.2;
4225
+ top: ${({ theme: theme2 }) => theme2.sizes[3]};
4226
+ flex: 1 1 auto;
4227
+ ${({ direction }) => direction === "vertical" ? "height: 100%;" : "height: 1px;"}
4228
+ `;
4229
+ var Label4 = import_styled_components66.default.div`
4230
+ display: flex;
4231
+ align-items: center;
4232
+ justify-content: center;
4233
+ position: relative;
4234
+ font-size: ${({ theme: theme2 }) => theme2.fontSizes[0]};
4235
+ line-height: ${({ theme: theme2 }) => theme2.lineHeights[0]};
4236
+ ${({ alternativeLabel }) => alternativeLabel ? `
4237
+ flex-direction: column;
4238
+ flex: 1 1 0%;
4239
+ ` : `
4240
+ > :not([hidden]) ~ :not([hidden]) {
4241
+ margin-left: 0.5rem;
4242
+ }
4243
+ `}
4244
+ `;
4245
+ var LineContainer = import_styled_components66.default.div`
4246
+ flex: 1 1 auto;
4247
+ display: flex;
4248
+ width: 1px;
4249
+ align-items: center;
4250
+ margin-left: ${({ theme: theme2 }) => theme2.space[3]};
4251
+ margin-right: ${({ theme: theme2 }) => theme2.space[3]};
4252
+ ${({ direction, theme: theme2 }) => direction === "vertical" && `
4253
+ margin-top: ${theme2.space[3]};
4254
+ margin-bottom: ${theme2.space[3]};
4255
+ `}
4256
+ `;
4257
+ var StepLabel = ({
4258
+ icon,
4259
+ children,
4260
+ idx = 0,
4261
+ state,
4262
+ error
4263
+ }) => {
4264
+ let { direction, alternativeLabel, noOfItems } = useStepperContext();
4265
+ if (alternativeLabel) {
4266
+ return /* @__PURE__ */ (0, import_jsx_runtime86.jsxs)(Label4, { alternativeLabel, children: [
4267
+ idx !== 0 && /* @__PURE__ */ (0, import_jsx_runtime86.jsx)(AlternativeLine, { direction }),
4268
+ /* @__PURE__ */ (0, import_jsx_runtime86.jsx)(StepIcon, { number: idx + 1, icon, state, error }),
4269
+ children
4270
+ ] });
4271
+ }
4272
+ return /* @__PURE__ */ (0, import_jsx_runtime86.jsxs)(import_jsx_runtime86.Fragment, { children: [
4273
+ /* @__PURE__ */ (0, import_jsx_runtime86.jsxs)(Label4, { alternativeLabel: false, children: [
4274
+ /* @__PURE__ */ (0, import_jsx_runtime86.jsx)(StepIcon, { number: idx + 1, icon, state, error }),
4275
+ /* @__PURE__ */ (0, import_jsx_runtime86.jsx)(Typography, { opacity: state === "default" ? "0.6" : "1", children })
4276
+ ] }),
4277
+ idx !== noOfItems && /* @__PURE__ */ (0, import_jsx_runtime86.jsx)(LineContainer, { direction, children: /* @__PURE__ */ (0, import_jsx_runtime86.jsx)(Line, { direction }) })
4278
+ ] });
4279
+ };
4280
+
4281
+ // src/navigation/Tabs/Tabs.tsx
4282
+ var import_react44 = require("react");
4283
+
4284
+ // src/navigation/Tabs/TabItems.tsx
4285
+ var import_styled_components67 = __toESM(require("styled-components"));
4286
+ var import_jsx_runtime87 = require("react/jsx-runtime");
4287
+ var StyledBtn2 = (0, import_styled_components67.default)(ClickableElement)`
4288
+ scroll-snap-align: start;
4289
+ border-radius: ${({ theme: theme2 }) => theme2.radii[2]};
4290
+ margin-right: ${({ theme: theme2 }) => theme2.space[1]};
4291
+ &:last-of-type {
4292
+ margin-right: 0;
4293
+ }
4294
+ :focus {
4295
+ outline: 0;
4296
+ }
4297
+ `;
4298
+ var TabItem = ({ children, selected, onClick }) => /* @__PURE__ */ (0, import_jsx_runtime87.jsx)(
4299
+ StyledBtn2,
4300
+ {
4301
+ px: "3",
4302
+ py: "1",
4303
+ position: "relative",
4304
+ boxShadow: selected ? "base.1" : "none",
4305
+ bg: selected ? "background" : "transparent",
4306
+ color: selected ? "foreground" : "mutedForeground",
4307
+ onClick,
4308
+ children
4309
+ }
4310
+ );
4311
+ var TabItems = ({ tabs, selected, onChange }) => /* @__PURE__ */ (0, import_jsx_runtime87.jsx)(Box, { bg: "muted", borderRadius: 4, px: "1", py: "1", display: "inline-flex", border: "muted.1", children: tabs.map(({ tab, key }) => /* @__PURE__ */ (0, import_jsx_runtime87.jsx)(
4312
+ TabItem,
4313
+ {
4314
+ selected: selected === key,
4315
+ onClick: () => onChange(key),
4316
+ children: tab
4317
+ },
4318
+ key
4319
+ )) });
4320
+
4321
+ // src/navigation/Tabs/TabPane.tsx
4322
+ var import_jsx_runtime88 = require("react/jsx-runtime");
4323
+ var TabPane = (_a) => {
4324
+ var _b = _a, { children, selected } = _b, rest = __objRest(_b, ["children", "selected"]);
4325
+ return selected ? /* @__PURE__ */ (0, import_jsx_runtime88.jsx)(Box, __spreadProps(__spreadValues({ px: "4", py: "5" }, rest), { children })) : null;
4326
+ };
4327
+ var TabPaneList = ({ tabs, selected }) => {
4328
+ return /* @__PURE__ */ (0, import_jsx_runtime88.jsx)(Box, { children: tabs.map((_a) => {
4329
+ var _b = _a, { key, children } = _b, rest = __objRest(_b, ["key", "children"]);
4330
+ return /* @__PURE__ */ (0, import_jsx_runtime88.jsx)(
4331
+ TabPane,
4332
+ __spreadProps(__spreadValues({
4333
+ selected: selected === key
4334
+ }, rest), {
4335
+ children
4336
+ }),
4337
+ key
4338
+ );
4339
+ }) });
4340
+ };
4341
+
4342
+ // src/navigation/Tabs/Tabs.tsx
4343
+ var import_jsx_runtime89 = require("react/jsx-runtime");
4344
+ var parseChildrenToTabs = (children) => {
4345
+ return import_react44.Children.toArray(children).map((node) => {
4346
+ if (!(0, import_react44.isValidElement)(node)) {
4347
+ return null;
4348
+ }
4349
+ let key = node.props.value || node.key;
4350
+ return __spreadProps(__spreadValues({
4351
+ key
4352
+ }, node.props), {
4353
+ node
4354
+ });
4355
+ });
4356
+ };
4357
+ var Tabs = ({ children: childrenProp, value }) => {
4358
+ let tabs = parseChildrenToTabs(childrenProp);
4359
+ let [selected, setSelected] = (0, import_react44.useState)(value || tabs[0].key);
4360
+ return /* @__PURE__ */ (0, import_jsx_runtime89.jsxs)(import_jsx_runtime89.Fragment, { children: [
4361
+ /* @__PURE__ */ (0, import_jsx_runtime89.jsx)(TabItems, { tabs, selected, onChange: setSelected }),
4362
+ /* @__PURE__ */ (0, import_jsx_runtime89.jsx)(TabPaneList, { tabs, selected })
4363
+ ] });
4364
+ };
4365
+
4366
+ // src/index.ts
4367
+ __reExport(index_exports, utils_exports, module.exports);
4368
+ // Annotate the CommonJS export names for ESM import in node:
4369
+ 0 && (module.exports = {
4370
+ Accordion,
4371
+ AccordionDetail,
4372
+ AccordionSummary,
4373
+ Alert,
4374
+ Backdrop,
4375
+ Badge,
4376
+ BasePicker,
4377
+ BaseUploader,
4378
+ Box,
4379
+ Breadcrumbs,
4380
+ Button,
4381
+ ButtonGroup,
4382
+ Card,
4383
+ CardContent,
4384
+ CardMedia,
4385
+ CenteredWidget,
4386
+ Checkbox,
4387
+ Chip,
4388
+ CircleLoader,
4389
+ CircleProgress,
4390
+ ClickOutside,
4391
+ ClickableElement,
4392
+ Collapse,
4393
+ Container,
4394
+ DarkTheme,
4395
+ DatePicker,
4396
+ DateRangePicker,
4397
+ DestructiveButton,
4398
+ DetailsGrouping,
4399
+ Drawer,
4400
+ Fade,
4401
+ GlobalStyles,
4402
+ Grow,
4403
+ ImageComp,
4404
+ Input,
4405
+ InputGroup,
4406
+ Label,
4407
+ LightTheme,
4408
+ LinearLoader,
4409
+ LinearProgress,
4410
+ LinearSlide,
4411
+ List,
4412
+ ListItem,
4413
+ Menu,
4414
+ MenuItem,
4415
+ Modal,
4416
+ MuffledUI,
4417
+ NumberField,
4418
+ Open,
4419
+ OrderedList,
4420
+ OutlineButton,
4421
+ Pagination,
4422
+ Panel,
4423
+ Password,
4424
+ Portal,
4425
+ PrimaryButton,
4426
+ Radio,
4427
+ RadioIcon,
4428
+ Scrollable,
4429
+ SecondaryButton,
4430
+ Select,
4431
+ SelectButton,
4432
+ SelectContext,
4433
+ SelectFilter,
4434
+ SelectItem,
4435
+ SelectList,
4436
+ SettingsContext,
4437
+ SimpleSelect,
4438
+ Skeleton,
4439
+ Slide,
4440
+ SnackbarContext,
4441
+ SnackbarItem,
4442
+ SnackbarProvider,
4443
+ StepIcon,
4444
+ StepLabel,
4445
+ Stepper,
4446
+ StepperContext,
4447
+ Switch,
4448
+ SyntaxHighlighter,
4449
+ TabItem,
4450
+ TabItems,
4451
+ TabPane,
4452
+ TabPaneList,
4453
+ Table,
4454
+ TableBody,
4455
+ TableCell,
4456
+ TableHead,
4457
+ TableRow,
4458
+ Tabs,
4459
+ TextArea,
4460
+ ThemeButton,
4461
+ ThemeSwitch,
4462
+ ThreeColumns,
4463
+ Title,
4464
+ Tooltip,
4465
+ TwoColumns,
4466
+ Typography,
4467
+ UnorderedList,
4468
+ UploadButton,
4469
+ UploadZone,
4470
+ clearInputOnSelectItem,
4471
+ stopPropagation,
4472
+ useMuffledSettings,
4473
+ useSelectContext,
4474
+ useSnackbar,
4475
+ useStepperContext
4476
+ });