@soyfri/shared-library 2.0.0-beta.9 → 2.0.0-beta8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (168) hide show
  1. package/Autocomplete-BA-cGASd.js +316 -0
  2. package/Autocomplete-BA-cGASd.js.map +1 -0
  3. package/Autocomplete-C2x-lBvZ.cjs +315 -0
  4. package/Autocomplete-C2x-lBvZ.cjs.map +1 -0
  5. package/Avatar-9L7YMxya.cjs +162 -0
  6. package/Avatar-9L7YMxya.cjs.map +1 -0
  7. package/Avatar-BJTr-PBd.js +163 -0
  8. package/Avatar-BJTr-PBd.js.map +1 -0
  9. package/Card-DG_crfkK.cjs +185 -0
  10. package/Card-DG_crfkK.cjs.map +1 -0
  11. package/Card-Ug-ttVSh.js +186 -0
  12. package/Card-Ug-ttVSh.js.map +1 -0
  13. package/Chip-OPYQ1uQ_.js +74 -0
  14. package/Chip-OPYQ1uQ_.js.map +1 -0
  15. package/Chip-qoJLDiva.cjs +73 -0
  16. package/Chip-qoJLDiva.cjs.map +1 -0
  17. package/DatePicker-8f_9bwhS.js +202 -0
  18. package/DatePicker-8f_9bwhS.js.map +1 -0
  19. package/DatePicker-DLSfkgGA.cjs +201 -0
  20. package/DatePicker-DLSfkgGA.cjs.map +1 -0
  21. package/DateRangePicker-BVpeJCHI.js +76 -0
  22. package/DateRangePicker-BVpeJCHI.js.map +1 -0
  23. package/DateRangePicker-B_hKQhbj.cjs +75 -0
  24. package/DateRangePicker-B_hKQhbj.cjs.map +1 -0
  25. package/DateTimePicker-CWNW09-O.cjs +220 -0
  26. package/DateTimePicker-CWNW09-O.cjs.map +1 -0
  27. package/DateTimePicker-D4L9GAod.js +221 -0
  28. package/DateTimePicker-D4L9GAod.js.map +1 -0
  29. package/Input-Cp911l23.js +174 -0
  30. package/Input-Cp911l23.js.map +1 -0
  31. package/Input-DI0jfq5X.cjs +173 -0
  32. package/Input-DI0jfq5X.cjs.map +1 -0
  33. package/Modal-Bm_HH9cv.cjs +319 -0
  34. package/Modal-Bm_HH9cv.cjs.map +1 -0
  35. package/Modal-Bnz6d9m9.js +320 -0
  36. package/Modal-Bnz6d9m9.js.map +1 -0
  37. package/RadioGroup-CxqDHap1.cjs +200 -0
  38. package/RadioGroup-CxqDHap1.cjs.map +1 -0
  39. package/RadioGroup-DMi9FvMP.js +201 -0
  40. package/RadioGroup-DMi9FvMP.js.map +1 -0
  41. package/Select-3CBOfM2H.js +447 -0
  42. package/Select-3CBOfM2H.js.map +1 -0
  43. package/Select-Bku4f4f8.cjs +446 -0
  44. package/Select-Bku4f4f8.cjs.map +1 -0
  45. package/Stat-BUcFCGrz.cjs +83 -0
  46. package/Stat-BUcFCGrz.cjs.map +1 -0
  47. package/Stat-C06A_izS.js +84 -0
  48. package/Stat-C06A_izS.js.map +1 -0
  49. package/StatusMessage-C5B6oGZ_.cjs +78 -0
  50. package/StatusMessage-C5B6oGZ_.cjs.map +1 -0
  51. package/StatusMessage-D1GlfQdz.js +79 -0
  52. package/StatusMessage-D1GlfQdz.js.map +1 -0
  53. package/Step-Dq0N72YB.js +49 -0
  54. package/Step-Dq0N72YB.js.map +1 -0
  55. package/Step-a8U8O-91.cjs +48 -0
  56. package/Step-a8U8O-91.cjs.map +1 -0
  57. package/Switch-BIeobv6i.cjs +179 -0
  58. package/Switch-BIeobv6i.cjs.map +1 -0
  59. package/Switch-DQEOxM2R.js +180 -0
  60. package/Switch-DQEOxM2R.js.map +1 -0
  61. package/Tab-Co31KY2k.cjs +95 -0
  62. package/Tab-Co31KY2k.cjs.map +1 -0
  63. package/Tab-DiK62gRz.js +96 -0
  64. package/Tab-DiK62gRz.js.map +1 -0
  65. package/Table-C2LbW0B1.js +531 -0
  66. package/Table-C2LbW0B1.js.map +1 -0
  67. package/Table-C4OM6rrC.cjs +530 -0
  68. package/Table-C4OM6rrC.cjs.map +1 -0
  69. package/components/AppBar/AppBar.cjs +1 -1
  70. package/components/AppBar/AppBar.js +1 -1
  71. package/components/Autocomplete/Autocomplete.cjs +4 -311
  72. package/components/Autocomplete/Autocomplete.cjs.map +1 -1
  73. package/components/Autocomplete/Autocomplete.js +4 -311
  74. package/components/Autocomplete/Autocomplete.js.map +1 -1
  75. package/components/Avatar/Avatar.cjs +2 -160
  76. package/components/Avatar/Avatar.cjs.map +1 -1
  77. package/components/Avatar/Avatar.js +2 -160
  78. package/components/Avatar/Avatar.js.map +1 -1
  79. package/components/Card/Card.cjs +7 -184
  80. package/components/Card/Card.cjs.map +1 -1
  81. package/components/Card/Card.js +7 -184
  82. package/components/Card/Card.js.map +1 -1
  83. package/components/Chip/Chip.cjs +2 -71
  84. package/components/Chip/Chip.cjs.map +1 -1
  85. package/components/Chip/Chip.js +2 -71
  86. package/components/Chip/Chip.js.map +1 -1
  87. package/components/Column/Column.cjs +1 -1
  88. package/components/Column/Column.cjs.map +1 -1
  89. package/components/Column/Column.d.ts +1 -1
  90. package/components/Column/Column.js +1 -1
  91. package/components/Column/Column.js.map +1 -1
  92. package/components/Column/index.d.ts +1 -0
  93. package/components/DatePicker/DatePicker.cjs +3 -200
  94. package/components/DatePicker/DatePicker.cjs.map +1 -1
  95. package/components/DatePicker/DatePicker.js +3 -200
  96. package/components/DatePicker/DatePicker.js.map +1 -1
  97. package/components/DateRangePicker/DateRangePicker.cjs +2 -73
  98. package/components/DateRangePicker/DateRangePicker.cjs.map +1 -1
  99. package/components/DateRangePicker/DateRangePicker.js +2 -73
  100. package/components/DateRangePicker/DateRangePicker.js.map +1 -1
  101. package/components/DateTimePicker/DateTimePicker.cjs +3 -219
  102. package/components/DateTimePicker/DateTimePicker.cjs.map +1 -1
  103. package/components/DateTimePicker/DateTimePicker.js +3 -219
  104. package/components/DateTimePicker/DateTimePicker.js.map +1 -1
  105. package/components/Drawer/Drawer.cjs +1 -1
  106. package/components/Drawer/Drawer.js +1 -1
  107. package/components/Input/Input.cjs +3 -172
  108. package/components/Input/Input.cjs.map +1 -1
  109. package/components/Input/Input.js +3 -172
  110. package/components/Input/Input.js.map +1 -1
  111. package/components/Modal/Modal.cjs +7 -317
  112. package/components/Modal/Modal.cjs.map +1 -1
  113. package/components/Modal/Modal.js +6 -316
  114. package/components/Modal/Modal.js.map +1 -1
  115. package/components/Modal/index.d.ts +2 -1
  116. package/components/Modal.d.ts +4 -0
  117. package/components/RadioGroup/RadioGroup.cjs +3 -199
  118. package/components/RadioGroup/RadioGroup.cjs.map +1 -1
  119. package/components/RadioGroup/RadioGroup.js +3 -199
  120. package/components/RadioGroup/RadioGroup.js.map +1 -1
  121. package/components/ScrollTopButton/ScrollTopButton.cjs +1 -1
  122. package/components/ScrollTopButton/ScrollTopButton.js +1 -1
  123. package/components/Select/Select.cjs +4 -445
  124. package/components/Select/Select.cjs.map +1 -1
  125. package/components/Select/Select.js +4 -445
  126. package/components/Select/Select.js.map +1 -1
  127. package/components/Stat/Stat.cjs +2 -81
  128. package/components/Stat/Stat.cjs.map +1 -1
  129. package/components/Stat/Stat.js +2 -81
  130. package/components/Stat/Stat.js.map +1 -1
  131. package/components/StatusMessage/StatusMessage.cjs +4 -77
  132. package/components/StatusMessage/StatusMessage.cjs.map +1 -1
  133. package/components/StatusMessage/StatusMessage.d.ts +1 -1
  134. package/components/StatusMessage/StatusMessage.js +3 -76
  135. package/components/StatusMessage/StatusMessage.js.map +1 -1
  136. package/components/StatusMessage/index.d.ts +2 -1
  137. package/components/StatusMessage.d.ts +4 -0
  138. package/components/Stepper/Stepper.cjs +3 -89
  139. package/components/Stepper/Stepper.cjs.map +1 -1
  140. package/components/Stepper/Stepper.d.ts +0 -12
  141. package/components/Stepper/Stepper.js +3 -89
  142. package/components/Stepper/Stepper.js.map +1 -1
  143. package/components/Switch/Switch.cjs +3 -178
  144. package/components/Switch/Switch.cjs.map +1 -1
  145. package/components/Switch/Switch.js +3 -178
  146. package/components/Switch/Switch.js.map +1 -1
  147. package/components/Table/Table.cjs +2 -528
  148. package/components/Table/Table.cjs.map +1 -1
  149. package/components/Table/Table.d.ts +1 -1
  150. package/components/Table/Table.js +2 -528
  151. package/components/Table/Table.js.map +1 -1
  152. package/components/Tabs/Tabs.cjs +3 -93
  153. package/components/Tabs/Tabs.cjs.map +1 -1
  154. package/components/Tabs/Tabs.js +3 -93
  155. package/components/Tabs/Tabs.js.map +1 -1
  156. package/hooks/Wizard/WizardContext.d.ts +2 -2
  157. package/index.cjs +46 -1
  158. package/index.cjs.map +1 -1
  159. package/index.d.ts +30 -0
  160. package/index.js +46 -1
  161. package/index.js.map +1 -1
  162. package/package.json +5 -3
  163. package/{resolvePreset-CT3kU-K2.cjs → resolvePreset-CxTI6_Ln.cjs} +3 -3
  164. package/{resolvePreset-CT3kU-K2.cjs.map → resolvePreset-CxTI6_Ln.cjs.map} +1 -1
  165. package/{resolvePreset-B-IB0ehH.js → resolvePreset-K6_BfWHD.js} +3 -3
  166. package/{resolvePreset-B-IB0ehH.js.map → resolvePreset-K6_BfWHD.js.map} +1 -1
  167. package/useWizard-CWdIxZzX.cjs.map +1 -1
  168. package/useWizard-CWq--C3o.js.map +1 -1
@@ -0,0 +1,180 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __defProps = Object.defineProperties;
3
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
4
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
7
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
8
+ var __spreadValues = (a, b) => {
9
+ for (var prop in b || (b = {}))
10
+ if (__hasOwnProp.call(b, prop))
11
+ __defNormalProp(a, prop, b[prop]);
12
+ if (__getOwnPropSymbols)
13
+ for (var prop of __getOwnPropSymbols(b)) {
14
+ if (__propIsEnum.call(b, prop))
15
+ __defNormalProp(a, prop, b[prop]);
16
+ }
17
+ return a;
18
+ };
19
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
20
+ var __objRest = (source, exclude) => {
21
+ var target = {};
22
+ for (var prop in source)
23
+ if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
24
+ target[prop] = source[prop];
25
+ if (source != null && __getOwnPropSymbols)
26
+ for (var prop of __getOwnPropSymbols(source)) {
27
+ if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
28
+ target[prop] = source[prop];
29
+ }
30
+ return target;
31
+ };
32
+ import { jsx, jsxs } from "react/jsx-runtime";
33
+ import { useTheme } from "@mui/material/styles";
34
+ import { FormControl, FormHelperText, Switch as Switch$1, FormControlLabel } from "@mui/material";
35
+ import { Controller } from "react-hook-form";
36
+ import { r as resolvePreset } from "./resolvePreset-K6_BfWHD.js";
37
+ const toRadius = (borderRadius) => typeof borderRadius === "number" ? `${borderRadius}px` : borderRadius;
38
+ const FOCUS_TRANSITION = "border-color 200ms cubic-bezier(0.0, 0, 0.2, 1) 0ms, box-shadow 200ms cubic-bezier(0.0, 0, 0.2, 1) 0ms";
39
+ const buildSwitchSx = ({
40
+ bordered,
41
+ borderRadius,
42
+ hasLabel,
43
+ error
44
+ }) => {
45
+ const radius = toRadius(borderRadius);
46
+ if (!bordered) {
47
+ return {
48
+ "& .MuiFormHelperText-root": { marginLeft: 0 }
49
+ };
50
+ }
51
+ return (theme) => ({
52
+ "& .MuiFormControlLabel-root": __spreadValues(__spreadProps(__spreadValues({
53
+ marginLeft: 0,
54
+ marginRight: 0,
55
+ paddingX: 1.5,
56
+ paddingY: 1.25,
57
+ border: `1px solid ${error ? theme.palette.error.main : theme.palette.divider}`,
58
+ borderRadius: radius,
59
+ transition: FOCUS_TRANSITION
60
+ }, error && {
61
+ boxShadow: `0 0 0 1px ${theme.palette.error.main}`
62
+ }), {
63
+ // Focus del usuario sobre el switch interno.
64
+ "&:focus-within": {
65
+ borderColor: error ? theme.palette.error.main : theme.palette.primary.main,
66
+ boxShadow: `0 0 0 1px ${error ? theme.palette.error.main : theme.palette.primary.main}`
67
+ }
68
+ }), hasLabel && {
69
+ width: "100%",
70
+ justifyContent: "space-between"
71
+ }),
72
+ "& .MuiFormHelperText-root": {
73
+ marginLeft: 0
74
+ }
75
+ });
76
+ };
77
+ const Switch = (props) => {
78
+ const _a = props, {
79
+ label,
80
+ size = "medium",
81
+ labelPlacement = "end",
82
+ disabled = false,
83
+ error = false,
84
+ helperText,
85
+ bordered = false,
86
+ borderRadius = 10,
87
+ defaultChecked,
88
+ preset,
89
+ sx
90
+ } = _a, rest = __objRest(_a, [
91
+ "label",
92
+ "size",
93
+ "labelPlacement",
94
+ "disabled",
95
+ "error",
96
+ "helperText",
97
+ "bordered",
98
+ "borderRadius",
99
+ "defaultChecked",
100
+ "preset",
101
+ "sx"
102
+ ]);
103
+ const theme = useTheme();
104
+ const presetSx = resolvePreset("Switch", preset, theme);
105
+ const buildSx = (effectiveError) => [
106
+ buildSwitchSx({
107
+ bordered,
108
+ borderRadius,
109
+ hasLabel: !!label,
110
+ error: effectiveError
111
+ }),
112
+ ...presetSx ? [presetSx] : [],
113
+ ...Array.isArray(sx) ? sx : [sx]
114
+ ];
115
+ const renderSwitch = (checked2, onChange2, onBlur, inputRef) => {
116
+ const switchEl = /* @__PURE__ */ jsx(
117
+ Switch$1,
118
+ __spreadProps(__spreadValues({}, rest), {
119
+ size,
120
+ checked: !!checked2,
121
+ onChange: (_e, next) => onChange2(next),
122
+ onBlur,
123
+ inputRef,
124
+ disabled
125
+ })
126
+ );
127
+ return label ? /* @__PURE__ */ jsx(
128
+ FormControlLabel,
129
+ {
130
+ control: switchEl,
131
+ label,
132
+ labelPlacement,
133
+ disabled
134
+ }
135
+ ) : switchEl;
136
+ };
137
+ if ("control" in props && props.control) {
138
+ const { name, control, validation } = props;
139
+ return /* @__PURE__ */ jsx(
140
+ Controller,
141
+ {
142
+ name,
143
+ control,
144
+ rules: validation,
145
+ defaultValue: defaultChecked,
146
+ render: ({ field, fieldState: { error: fieldError } }) => {
147
+ var _a2;
148
+ const finalError = !!fieldError || error;
149
+ const finalHelperText = (_a2 = fieldError == null ? void 0 : fieldError.message) != null ? _a2 : helperText;
150
+ return /* @__PURE__ */ jsxs(
151
+ FormControl,
152
+ {
153
+ error: finalError,
154
+ disabled,
155
+ sx: buildSx(finalError),
156
+ children: [
157
+ renderSwitch(
158
+ !!field.value,
159
+ (next) => field.onChange(next),
160
+ field.onBlur,
161
+ field.ref
162
+ ),
163
+ finalHelperText && /* @__PURE__ */ jsx(FormHelperText, { children: finalHelperText })
164
+ ]
165
+ }
166
+ );
167
+ }
168
+ }
169
+ );
170
+ }
171
+ const { checked, onChange } = props;
172
+ return /* @__PURE__ */ jsxs(FormControl, { error, disabled, sx: buildSx(error), children: [
173
+ renderSwitch(checked, onChange),
174
+ helperText && /* @__PURE__ */ jsx(FormHelperText, { children: helperText })
175
+ ] });
176
+ };
177
+ export {
178
+ Switch as S
179
+ };
180
+ //# sourceMappingURL=Switch-DQEOxM2R.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Switch-DQEOxM2R.js","sources":["../src/components/Switch/Switch.sx.ts","../src/components/Switch/Switch.tsx"],"sourcesContent":["import type { SxProps, Theme } from '@mui/material/styles';\n\nexport interface BuildSwitchSxOptions {\n bordered: boolean;\n borderRadius: number | string;\n hasLabel: boolean;\n error: boolean;\n}\n\nconst toRadius = (borderRadius: number | string) =>\n typeof borderRadius === 'number' ? `${borderRadius}px` : borderRadius;\n\n/**\n * Transición compartida (matchea el InputGroup y el RadioGroup).\n */\nconst FOCUS_TRANSITION =\n 'border-color 200ms cubic-bezier(0.0, 0, 0.2, 1) 0ms, ' +\n 'box-shadow 200ms cubic-bezier(0.0, 0, 0.2, 1) 0ms';\n\n/**\n * Builder de sx para Switch. Reproduce el estilo del antiguo\n * `FormToggleInput` legacy cuando `bordered=true`: contenedor con borde,\n * label a la izquierda y switch a la derecha (vía justify-content: space-between).\n *\n * Cuando `bordered=true`, el contenedor gana:\n * - `:focus-within` → borde + shadow primario (mismo patrón que `InputGroup`).\n * - `error=true` → borde + shadow de error (palette.error.main).\n *\n * El shadow es de 1px, así que no hay shift de layout — sólo se intensifica\n * visualmente el borde sin empujar nada alrededor.\n *\n * Si `bordered=false`, sólo aplica un reset de margin del helper text.\n */\nexport const buildSwitchSx = ({\n bordered,\n borderRadius,\n hasLabel,\n error,\n}: BuildSwitchSxOptions): SxProps<Theme> => {\n const radius = toRadius(borderRadius);\n\n if (!bordered) {\n return {\n '& .MuiFormHelperText-root': { marginLeft: 0 },\n };\n }\n\n return (theme) => ({\n '& .MuiFormControlLabel-root': {\n marginLeft: 0,\n marginRight: 0,\n paddingX: 1.5,\n paddingY: 1.25,\n border: `1px solid ${\n error ? theme.palette.error.main : theme.palette.divider\n }`,\n borderRadius: radius,\n transition: FOCUS_TRANSITION,\n ...(error && {\n boxShadow: `0 0 0 1px ${theme.palette.error.main}`,\n }),\n // Focus del usuario sobre el switch interno.\n '&:focus-within': {\n borderColor: error\n ? theme.palette.error.main\n : theme.palette.primary.main,\n boxShadow: `0 0 0 1px ${\n error ? theme.palette.error.main : theme.palette.primary.main\n }`,\n },\n // Si hay label, separar el switch al borde opuesto.\n ...(hasLabel && {\n width: '100%',\n justifyContent: 'space-between',\n }),\n },\n '& .MuiFormHelperText-root': {\n marginLeft: 0,\n },\n });\n};\n","import { useTheme } from '@mui/material/styles';\nimport {\n FormControl,\n FormControlLabel,\n FormHelperText,\n Switch as MuiSwitch,\n type SwitchProps as MuiSwitchProps,\n type SxProps,\n type Theme,\n} from '@mui/material';\nimport { Controller, type Control, type RegisterOptions } from 'react-hook-form';\n\nimport { buildSwitchSx } from './Switch.sx';\nimport { resolvePreset } from '../_shared/resolvePreset';\n\n// ── Tipos de dominio ─────────────────────────────────────────────────────\nexport type SwitchSize = 'small' | 'medium';\nexport type SwitchLabelPlacement = 'start' | 'end' | 'top' | 'bottom';\n\n// ── Props base (todo lo común entre RHF y controlado) ────────────────────\nexport interface BaseSwitchProps\n extends Omit<MuiSwitchProps, 'value' | 'onChange' | 'checked' | 'defaultChecked' | 'size'> {\n /** Texto al lado del switch. Si está ausente, no se renderiza FormControlLabel. */\n label?: string;\n size?: SwitchSize;\n /** Posición del label. Default: 'end' (legacy `FormToggleInput` lo ponía a la izquierda con su flex-stack). */\n labelPlacement?: SwitchLabelPlacement;\n disabled?: boolean;\n error?: boolean;\n helperText?: string;\n /** Renderiza un contenedor con borde alrededor del switch + label. Default: false. */\n bordered?: boolean;\n /** Border radius del contenedor (cuando bordered). Default: 10. */\n borderRadius?: number | string;\n defaultChecked?: boolean;\n /**\n * Nombre del preset de estilo registrado en `theme.styles.Switch`.\n * - `\"default\"` (o ausente) = estilo built-in del paquete.\n * - Cualquier otro string = mergea el preset encima del estilo built-in.\n */\n preset?: string;\n sx?: SxProps<Theme>;\n}\n\n// ── Variantes discriminadas (RHF vs controlado) ──────────────────────────\nexport interface RHFSwitchProps extends BaseSwitchProps {\n name: string;\n control: Control<any>;\n validation?: RegisterOptions;\n checked?: never;\n onChange?: never;\n}\n\nexport interface ControlledSwitchProps extends BaseSwitchProps {\n name?: string;\n control?: never;\n validation?: never;\n checked: boolean;\n onChange: (checked: boolean) => void;\n}\n\n// ── API pública final ────────────────────────────────────────────────────\nexport type SwitchProps = RHFSwitchProps | ControlledSwitchProps;\n\nexport const Switch: React.FC<SwitchProps> = (props) => {\n const {\n label,\n size = 'medium',\n labelPlacement = 'end',\n disabled = false,\n error = false,\n helperText,\n bordered = false,\n borderRadius = 10,\n defaultChecked,\n preset,\n sx,\n ...rest\n } = props as ControlledSwitchProps & {\n control?: Control<any>;\n validation?: RegisterOptions;\n };\n\n const theme = useTheme();\n const presetSx = resolvePreset('Switch', preset, theme);\n\n // Construye el sx con el estado de error efectivo; se llama por rama\n // (RHF usa el error del Controller, controlado usa el prop `error`).\n const buildSx = (effectiveError: boolean) => [\n buildSwitchSx({\n bordered,\n borderRadius,\n hasLabel: !!label,\n error: effectiveError,\n }),\n ...(presetSx ? [presetSx] : []),\n ...(Array.isArray(sx) ? sx : [sx]),\n ];\n\n const renderSwitch = (\n checked: boolean,\n onChange: (next: boolean) => void,\n onBlur?: () => void,\n inputRef?: React.Ref<HTMLInputElement>,\n ) => {\n const switchEl = (\n <MuiSwitch\n {...rest}\n size={size}\n checked={!!checked}\n onChange={(_e, next) => onChange(next)}\n onBlur={onBlur}\n // @ts-ignore — Ref<HTMLInputElement> type mismatch between @types/react versions in monorepo\n inputRef={inputRef}\n disabled={disabled}\n />\n );\n\n return label ? (\n <FormControlLabel\n control={switchEl}\n label={label}\n labelPlacement={labelPlacement}\n disabled={disabled}\n />\n ) : (\n switchEl\n );\n };\n\n // ── RHF mode ──────────────────────────────────────────────────────────\n if ('control' in props && props.control) {\n const { name, control, validation } = props as RHFSwitchProps;\n return (\n <Controller\n name={name}\n control={control}\n rules={validation}\n defaultValue={defaultChecked}\n render={({ field, fieldState: { error: fieldError } }) => {\n const finalError = !!fieldError || error;\n const finalHelperText = fieldError?.message ?? helperText;\n return (\n <FormControl\n error={finalError}\n disabled={disabled}\n sx={buildSx(finalError)}\n >\n {renderSwitch(\n !!field.value,\n (next) => field.onChange(next),\n field.onBlur,\n field.ref,\n )}\n {finalHelperText && <FormHelperText>{finalHelperText}</FormHelperText>}\n </FormControl>\n );\n }}\n />\n );\n }\n\n // ── Controlled mode ───────────────────────────────────────────────────\n const { checked, onChange } = props as ControlledSwitchProps;\n return (\n <FormControl error={error} disabled={disabled} sx={buildSx(error)}>\n {renderSwitch(checked, onChange)}\n {helperText && <FormHelperText>{helperText}</FormHelperText>}\n </FormControl>\n );\n};\n\nexport default Switch;\n"],"names":["checked","onChange","MuiSwitch","_a"],"mappings":"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"}
@@ -0,0 +1,95 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
6
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
7
+ var __spreadValues = (a, b) => {
8
+ for (var prop in b || (b = {}))
9
+ if (__hasOwnProp.call(b, prop))
10
+ __defNormalProp(a, prop, b[prop]);
11
+ if (__getOwnPropSymbols)
12
+ for (var prop of __getOwnPropSymbols(b)) {
13
+ if (__propIsEnum.call(b, prop))
14
+ __defNormalProp(a, prop, b[prop]);
15
+ }
16
+ return a;
17
+ };
18
+ const jsxRuntime = require("react/jsx-runtime");
19
+ const React = require("react");
20
+ const material = require("@mui/material");
21
+ const TAB_DISPLAY_MAP = {
22
+ horizontal: { display: "flex", flexDirection: "column" },
23
+ vertical: { display: "flex", flexDirection: "row" }
24
+ };
25
+ const Tabs = ({
26
+ children,
27
+ defaultValue,
28
+ onChange,
29
+ centered = true,
30
+ orientation = "horizontal",
31
+ scrollButtons = "auto",
32
+ variant = "standard",
33
+ indicatorColor = "primary",
34
+ labelColor = "primary",
35
+ className,
36
+ onChangeValue,
37
+ allowScrollButtonsMobile = true,
38
+ sx
39
+ }) => {
40
+ var _a, _b;
41
+ const firstValue = (_a = children[0]) == null ? void 0 : _a.props.value;
42
+ const [currentValue, setCurrentValue] = React.useState(
43
+ (_b = defaultValue != null ? defaultValue : firstValue) != null ? _b : 0
44
+ );
45
+ const handleChange = (_event, newValue) => {
46
+ setCurrentValue(newValue);
47
+ onChange == null ? void 0 : onChange();
48
+ onChangeValue == null ? void 0 : onChangeValue(newValue);
49
+ };
50
+ return /* @__PURE__ */ jsxRuntime.jsxs(material.Box, { sx: { display: TAB_DISPLAY_MAP[orientation].display, flexDirection: TAB_DISPLAY_MAP[orientation].flexDirection }, children: [
51
+ /* @__PURE__ */ jsxRuntime.jsx(
52
+ material.Tabs,
53
+ {
54
+ value: currentValue,
55
+ onChange: handleChange,
56
+ centered,
57
+ indicatorColor,
58
+ orientation,
59
+ scrollButtons,
60
+ variant,
61
+ className,
62
+ textColor: labelColor,
63
+ sx: __spreadValues({}, sx),
64
+ allowScrollButtonsMobile,
65
+ children: children.map((child, idx) => {
66
+ const { label, icon, value = idx, disabled, wrapped, iconPosition, className: tabClassName, sx: tabSx } = child.props;
67
+ return /* @__PURE__ */ jsxRuntime.jsx(
68
+ material.Tab,
69
+ {
70
+ label,
71
+ icon,
72
+ value,
73
+ disabled,
74
+ wrapped,
75
+ iconPosition,
76
+ className: tabClassName,
77
+ sx: tabSx
78
+ },
79
+ value
80
+ );
81
+ })
82
+ }
83
+ ),
84
+ /* @__PURE__ */ jsxRuntime.jsx(material.Box, { m: 2, role: "tabpanel", sx: { width: "100%" }, children: children.map((child, idx) => {
85
+ var _a2;
86
+ const value = (_a2 = child.props.value) != null ? _a2 : idx;
87
+ return value === currentValue ? /* @__PURE__ */ jsxRuntime.jsx(material.Box, { children: child.props.children }, value) : null;
88
+ }) })
89
+ ] });
90
+ };
91
+ const Tab = (_) => null;
92
+ Tab.displayName = "Tab";
93
+ exports.Tab = Tab;
94
+ exports.Tabs = Tabs;
95
+ //# sourceMappingURL=Tab-Co31KY2k.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Tab-Co31KY2k.cjs","sources":["../src/components/Tabs/_tabUtils.tsx","../src/components/Tabs/Tabs.tsx","../src/components/Tabs/Tab.tsx"],"sourcesContent":["export const TAB_DISPLAY_MAP: Record<\"horizontal\" | \"vertical\", { display: string, flexDirection: string }> = {\n horizontal: { display: \"flex\", flexDirection: \"column\" },\n vertical: { display: \"flex\", flexDirection: \"row\" }\n};","import React, { useState, ReactElement } from \"react\";\nimport { Tabs as MuiTabs, Tab as MuiTab, Box, TabsProps as MuiTabsProps } from \"@mui/material\";\nimport { TabProps } from \"./Tab\";\nimport { TAB_DISPLAY_MAP } from \"./_tabUtils\";\n\ntype PickTabsProps = Pick<\n MuiTabsProps,\n \"centered\" | \"indicatorColor\" | \"orientation\" | \"scrollButtons\" | \"variant\" | \"className\" | \"sx\" | \"visibleScrollbar\" | 'indicatorColor'| 'allowScrollButtonsMobile'\n>;\n\ninterface MyTabsProps extends PickTabsProps {\n children: ReactElement<TabProps>[];\n defaultValue?: number;\n onChange?: () => void;\n centered?: boolean;\n orientation?: \"horizontal\" | \"vertical\";\n scrollButtons?: \"auto\" | false | true;\n variant?: \"standard\" | \"scrollable\" | \"fullWidth\";\n indicatorColor?: \"primary\" | \"secondary\";\n labelColor?: \"primary\" | \"secondary\" | \"inherit\";\n onChangeValue?: (newValue: number) => void;\n allowScrollButtonsMobile?: boolean;\n}\n\nexport const Tabs: React.FC<MyTabsProps> = ({\n children,\n defaultValue,\n onChange,\n centered = true,\n orientation = 'horizontal',\n scrollButtons = \"auto\",\n variant = \"standard\",\n indicatorColor = \"primary\",\n labelColor = \"primary\",\n className,\n onChangeValue,\n allowScrollButtonsMobile = true,\n sx,\n}) => {\n const firstValue = children[0]?.props.value;\n const [currentValue, setCurrentValue] = useState<string | number>(\n defaultValue ?? firstValue ?? 0\n );\n\n const handleChange = (_event: React.SyntheticEvent, newValue: number) => {\n setCurrentValue(newValue);\n onChange?.();\n onChangeValue?.(newValue);\n };\n\n return (\n <Box sx={{ display: TAB_DISPLAY_MAP[orientation].display, flexDirection: TAB_DISPLAY_MAP[orientation].flexDirection}}>\n <MuiTabs\n value={currentValue}\n onChange={handleChange}\n centered={centered}\n indicatorColor={indicatorColor}\n orientation={orientation}\n scrollButtons={scrollButtons}\n variant={variant}\n className={className}\n textColor={labelColor}\n sx={{ ...sx }}\n allowScrollButtonsMobile={allowScrollButtonsMobile}\n \n\n >\n {children.map((child, idx) => {\n const { label, icon, value = idx, disabled, wrapped, iconPosition, className: tabClassName, sx: tabSx } = child.props;\n return (\n <MuiTab\n key={value}\n label={label}\n icon={icon}\n value={value}\n disabled={disabled}\n wrapped={wrapped}\n iconPosition={iconPosition}\n className={tabClassName}\n sx={tabSx}\n />\n );\n })}\n </MuiTabs>\n\n <Box m={2} role=\"tabpanel\" sx={{width:'100%'}} >\n {children.map((child, idx) => {\n const value = child.props.value ?? idx;\n return value === currentValue ? (\n <Box key={value}>{child.props.children}</Box>\n ) : null;\n })}\n </Box>\n </Box>\n\n );\n};\n\nexport default Tabs;\n","import React from \"react\";\nimport { TabProps as MuiTabProps } from \"@mui/material\";\n\ntype PickMuiTabProps = Pick<\n MuiTabProps,\n \"label\" | \"icon\" | \"disabled\" | \"sx\" | \"value\" | \"wrapped\" | \"iconPosition\" | \"className\" | \"disabled\"| 'disableRipple'\n>;\n\nexport interface TabProps extends PickMuiTabProps {\n value?: number;\n onChange?: () => void;\n children?: React.ReactNode;\n}\n\nexport const Tab = (_: TabProps): null => null;\n\nTab.displayName = \"Tab\";\n\nexport default Tab;\n"],"names":["useState","jsxs","Box","jsx","MuiTabs","MuiTab","_a"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAO,MAAM,kBAAiG;AAAA,EAC5G,YAAY,EAAE,SAAS,QAAQ,eAAe,SAAA;AAAA,EAC9C,UAAU,EAAE,SAAS,QAAQ,eAAe,MAAA;AAC9C;ACqBO,MAAM,OAA8B,CAAC;AAAA,EAC1C;AAAA,EACA;AAAA,EACA;AAAA,EACA,WAAW;AAAA,EACX,cAAc;AAAA,EACd,gBAAgB;AAAA,EAChB,UAAU;AAAA,EACV,iBAAiB;AAAA,EACjB,aAAa;AAAA,EACb;AAAA,EACA;AAAA,EACA,2BAA2B;AAAA,EAC3B;AACF,MAAM;;AACJ,QAAM,cAAa,cAAS,CAAC,MAAV,mBAAa,MAAM;AACtC,QAAM,CAAC,cAAc,eAAe,IAAIA,MAAAA;AAAAA,KACtC,2CAAgB,eAAhB,YAA8B;AAAA,EAAA;AAGhC,QAAM,eAAe,CAAC,QAA8B,aAAqB;AACvE,oBAAgB,QAAQ;AACxB;AACA,mDAAgB;AAAA,EAClB;AAEA,SACEC,2BAAAA,KAACC,SAAAA,KAAA,EAAI,IAAI,EAAE,SAAS,gBAAgB,WAAW,EAAE,SAAS,eAAe,gBAAgB,WAAW,EAAE,iBACpG,UAAA;AAAA,IAAAC,2BAAAA;AAAAA,MAACC,SAAAA;AAAAA,MAAA;AAAA,QACC,OAAO;AAAA,QACP,UAAU;AAAA,QACV;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA,WAAW;AAAA,QACX,IAAI,mBAAK;AAAA,QACT;AAAA,QAIC,UAAA,SAAS,IAAI,CAAC,OAAO,QAAQ;AAC5B,gBAAM,EAAE,OAAO,MAAM,QAAQ,KAAK,UAAU,SAAS,cAAc,WAAW,cAAc,IAAI,MAAA,IAAU,MAAM;AAChH,iBACED,2BAAAA;AAAAA,YAACE,SAAAA;AAAAA,YAAA;AAAA,cAEC;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA,WAAW;AAAA,cACX,IAAI;AAAA,YAAA;AAAA,YARC;AAAA,UAAA;AAAA,QAWX,CAAC;AAAA,MAAA;AAAA,IAAA;AAAA,IAGHF,2BAAAA,IAACD,SAAAA,KAAA,EAAI,GAAG,GAAG,MAAK,YAAW,IAAI,EAAC,OAAM,UACnC,UAAA,SAAS,IAAI,CAAC,OAAO,QAAQ;;AAC5B,YAAM,SAAQI,MAAA,MAAM,MAAM,UAAZ,OAAAA,MAAqB;AACnC,aAAO,UAAU,eACfH,2BAAAA,IAACD,SAAAA,KAAA,EAAiB,gBAAM,MAAM,YAApB,KAA6B,IACrC;AAAA,IACN,CAAC,EAAA,CACH;AAAA,EAAA,GACF;AAGJ;AClFO,MAAM,MAAM,CAAC,MAAsB;AAE1C,IAAI,cAAc;;;"}
@@ -0,0 +1,96 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
3
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
4
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
5
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
6
+ var __spreadValues = (a, b) => {
7
+ for (var prop in b || (b = {}))
8
+ if (__hasOwnProp.call(b, prop))
9
+ __defNormalProp(a, prop, b[prop]);
10
+ if (__getOwnPropSymbols)
11
+ for (var prop of __getOwnPropSymbols(b)) {
12
+ if (__propIsEnum.call(b, prop))
13
+ __defNormalProp(a, prop, b[prop]);
14
+ }
15
+ return a;
16
+ };
17
+ import { jsxs, jsx } from "react/jsx-runtime";
18
+ import { useState } from "react";
19
+ import { Box, Tabs as Tabs$1, Tab as Tab$1 } from "@mui/material";
20
+ const TAB_DISPLAY_MAP = {
21
+ horizontal: { display: "flex", flexDirection: "column" },
22
+ vertical: { display: "flex", flexDirection: "row" }
23
+ };
24
+ const Tabs = ({
25
+ children,
26
+ defaultValue,
27
+ onChange,
28
+ centered = true,
29
+ orientation = "horizontal",
30
+ scrollButtons = "auto",
31
+ variant = "standard",
32
+ indicatorColor = "primary",
33
+ labelColor = "primary",
34
+ className,
35
+ onChangeValue,
36
+ allowScrollButtonsMobile = true,
37
+ sx
38
+ }) => {
39
+ var _a, _b;
40
+ const firstValue = (_a = children[0]) == null ? void 0 : _a.props.value;
41
+ const [currentValue, setCurrentValue] = useState(
42
+ (_b = defaultValue != null ? defaultValue : firstValue) != null ? _b : 0
43
+ );
44
+ const handleChange = (_event, newValue) => {
45
+ setCurrentValue(newValue);
46
+ onChange == null ? void 0 : onChange();
47
+ onChangeValue == null ? void 0 : onChangeValue(newValue);
48
+ };
49
+ return /* @__PURE__ */ jsxs(Box, { sx: { display: TAB_DISPLAY_MAP[orientation].display, flexDirection: TAB_DISPLAY_MAP[orientation].flexDirection }, children: [
50
+ /* @__PURE__ */ jsx(
51
+ Tabs$1,
52
+ {
53
+ value: currentValue,
54
+ onChange: handleChange,
55
+ centered,
56
+ indicatorColor,
57
+ orientation,
58
+ scrollButtons,
59
+ variant,
60
+ className,
61
+ textColor: labelColor,
62
+ sx: __spreadValues({}, sx),
63
+ allowScrollButtonsMobile,
64
+ children: children.map((child, idx) => {
65
+ const { label, icon, value = idx, disabled, wrapped, iconPosition, className: tabClassName, sx: tabSx } = child.props;
66
+ return /* @__PURE__ */ jsx(
67
+ Tab$1,
68
+ {
69
+ label,
70
+ icon,
71
+ value,
72
+ disabled,
73
+ wrapped,
74
+ iconPosition,
75
+ className: tabClassName,
76
+ sx: tabSx
77
+ },
78
+ value
79
+ );
80
+ })
81
+ }
82
+ ),
83
+ /* @__PURE__ */ jsx(Box, { m: 2, role: "tabpanel", sx: { width: "100%" }, children: children.map((child, idx) => {
84
+ var _a2;
85
+ const value = (_a2 = child.props.value) != null ? _a2 : idx;
86
+ return value === currentValue ? /* @__PURE__ */ jsx(Box, { children: child.props.children }, value) : null;
87
+ }) })
88
+ ] });
89
+ };
90
+ const Tab = (_) => null;
91
+ Tab.displayName = "Tab";
92
+ export {
93
+ Tabs as T,
94
+ Tab as a
95
+ };
96
+ //# sourceMappingURL=Tab-DiK62gRz.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Tab-DiK62gRz.js","sources":["../src/components/Tabs/_tabUtils.tsx","../src/components/Tabs/Tabs.tsx","../src/components/Tabs/Tab.tsx"],"sourcesContent":["export const TAB_DISPLAY_MAP: Record<\"horizontal\" | \"vertical\", { display: string, flexDirection: string }> = {\n horizontal: { display: \"flex\", flexDirection: \"column\" },\n vertical: { display: \"flex\", flexDirection: \"row\" }\n};","import React, { useState, ReactElement } from \"react\";\nimport { Tabs as MuiTabs, Tab as MuiTab, Box, TabsProps as MuiTabsProps } from \"@mui/material\";\nimport { TabProps } from \"./Tab\";\nimport { TAB_DISPLAY_MAP } from \"./_tabUtils\";\n\ntype PickTabsProps = Pick<\n MuiTabsProps,\n \"centered\" | \"indicatorColor\" | \"orientation\" | \"scrollButtons\" | \"variant\" | \"className\" | \"sx\" | \"visibleScrollbar\" | 'indicatorColor'| 'allowScrollButtonsMobile'\n>;\n\ninterface MyTabsProps extends PickTabsProps {\n children: ReactElement<TabProps>[];\n defaultValue?: number;\n onChange?: () => void;\n centered?: boolean;\n orientation?: \"horizontal\" | \"vertical\";\n scrollButtons?: \"auto\" | false | true;\n variant?: \"standard\" | \"scrollable\" | \"fullWidth\";\n indicatorColor?: \"primary\" | \"secondary\";\n labelColor?: \"primary\" | \"secondary\" | \"inherit\";\n onChangeValue?: (newValue: number) => void;\n allowScrollButtonsMobile?: boolean;\n}\n\nexport const Tabs: React.FC<MyTabsProps> = ({\n children,\n defaultValue,\n onChange,\n centered = true,\n orientation = 'horizontal',\n scrollButtons = \"auto\",\n variant = \"standard\",\n indicatorColor = \"primary\",\n labelColor = \"primary\",\n className,\n onChangeValue,\n allowScrollButtonsMobile = true,\n sx,\n}) => {\n const firstValue = children[0]?.props.value;\n const [currentValue, setCurrentValue] = useState<string | number>(\n defaultValue ?? firstValue ?? 0\n );\n\n const handleChange = (_event: React.SyntheticEvent, newValue: number) => {\n setCurrentValue(newValue);\n onChange?.();\n onChangeValue?.(newValue);\n };\n\n return (\n <Box sx={{ display: TAB_DISPLAY_MAP[orientation].display, flexDirection: TAB_DISPLAY_MAP[orientation].flexDirection}}>\n <MuiTabs\n value={currentValue}\n onChange={handleChange}\n centered={centered}\n indicatorColor={indicatorColor}\n orientation={orientation}\n scrollButtons={scrollButtons}\n variant={variant}\n className={className}\n textColor={labelColor}\n sx={{ ...sx }}\n allowScrollButtonsMobile={allowScrollButtonsMobile}\n \n\n >\n {children.map((child, idx) => {\n const { label, icon, value = idx, disabled, wrapped, iconPosition, className: tabClassName, sx: tabSx } = child.props;\n return (\n <MuiTab\n key={value}\n label={label}\n icon={icon}\n value={value}\n disabled={disabled}\n wrapped={wrapped}\n iconPosition={iconPosition}\n className={tabClassName}\n sx={tabSx}\n />\n );\n })}\n </MuiTabs>\n\n <Box m={2} role=\"tabpanel\" sx={{width:'100%'}} >\n {children.map((child, idx) => {\n const value = child.props.value ?? idx;\n return value === currentValue ? (\n <Box key={value}>{child.props.children}</Box>\n ) : null;\n })}\n </Box>\n </Box>\n\n );\n};\n\nexport default Tabs;\n","import React from \"react\";\nimport { TabProps as MuiTabProps } from \"@mui/material\";\n\ntype PickMuiTabProps = Pick<\n MuiTabProps,\n \"label\" | \"icon\" | \"disabled\" | \"sx\" | \"value\" | \"wrapped\" | \"iconPosition\" | \"className\" | \"disabled\"| 'disableRipple'\n>;\n\nexport interface TabProps extends PickMuiTabProps {\n value?: number;\n onChange?: () => void;\n children?: React.ReactNode;\n}\n\nexport const Tab = (_: TabProps): null => null;\n\nTab.displayName = \"Tab\";\n\nexport default Tab;\n"],"names":["MuiTabs","MuiTab","_a"],"mappings":";;;;;;;;;;;;;;;;;;;AAAO,MAAM,kBAAiG;AAAA,EAC5G,YAAY,EAAE,SAAS,QAAQ,eAAe,SAAA;AAAA,EAC9C,UAAU,EAAE,SAAS,QAAQ,eAAe,MAAA;AAC9C;ACqBO,MAAM,OAA8B,CAAC;AAAA,EAC1C;AAAA,EACA;AAAA,EACA;AAAA,EACA,WAAW;AAAA,EACX,cAAc;AAAA,EACd,gBAAgB;AAAA,EAChB,UAAU;AAAA,EACV,iBAAiB;AAAA,EACjB,aAAa;AAAA,EACb;AAAA,EACA;AAAA,EACA,2BAA2B;AAAA,EAC3B;AACF,MAAM;;AACJ,QAAM,cAAa,cAAS,CAAC,MAAV,mBAAa,MAAM;AACtC,QAAM,CAAC,cAAc,eAAe,IAAI;AAAA,KACtC,2CAAgB,eAAhB,YAA8B;AAAA,EAAA;AAGhC,QAAM,eAAe,CAAC,QAA8B,aAAqB;AACvE,oBAAgB,QAAQ;AACxB;AACA,mDAAgB;AAAA,EAClB;AAEA,SACE,qBAAC,KAAA,EAAI,IAAI,EAAE,SAAS,gBAAgB,WAAW,EAAE,SAAS,eAAe,gBAAgB,WAAW,EAAE,iBACpG,UAAA;AAAA,IAAA;AAAA,MAACA;AAAAA,MAAA;AAAA,QACC,OAAO;AAAA,QACP,UAAU;AAAA,QACV;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA,WAAW;AAAA,QACX,IAAI,mBAAK;AAAA,QACT;AAAA,QAIC,UAAA,SAAS,IAAI,CAAC,OAAO,QAAQ;AAC5B,gBAAM,EAAE,OAAO,MAAM,QAAQ,KAAK,UAAU,SAAS,cAAc,WAAW,cAAc,IAAI,MAAA,IAAU,MAAM;AAChH,iBACE;AAAA,YAACC;AAAAA,YAAA;AAAA,cAEC;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA,WAAW;AAAA,cACX,IAAI;AAAA,YAAA;AAAA,YARC;AAAA,UAAA;AAAA,QAWX,CAAC;AAAA,MAAA;AAAA,IAAA;AAAA,IAGH,oBAAC,KAAA,EAAI,GAAG,GAAG,MAAK,YAAW,IAAI,EAAC,OAAM,UACnC,UAAA,SAAS,IAAI,CAAC,OAAO,QAAQ;;AAC5B,YAAM,SAAQC,MAAA,MAAM,MAAM,UAAZ,OAAAA,MAAqB;AACnC,aAAO,UAAU,eACf,oBAAC,KAAA,EAAiB,gBAAM,MAAM,YAApB,KAA6B,IACrC;AAAA,IACN,CAAC,EAAA,CACH;AAAA,EAAA,GACF;AAGJ;AClFO,MAAM,MAAM,CAAC,MAAsB;AAE1C,IAAI,cAAc;"}