@foi/design-system 0.0.9 → 0.0.10

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.
@@ -3,33 +3,83 @@ import { r } from "./theme-DEqiATmv.js";
3
3
  import i, { createContext as a, useContext as o, useState as s } from "react";
4
4
  import { css as c } from "@emotion/react";
5
5
  import { useController as l } from "react-hook-form";
6
- import u from "@mui/icons-material/CheckOutlined";
7
6
  //#region src/hocs/ThemeProvider/interfaces/Components.interface.ts
8
- var d = /* @__PURE__ */ function(e) {
7
+ var u = /* @__PURE__ */ function(e) {
9
8
  return e.BUTTON = "BUTTON", e.ICONBUTTON = "ICONBUTTON", e.INPUT = "INPUT", e.CHECKBOX = "CHECKBOX", e.SELECT = "SELECT", e.SELECTMENU = "SELECTMENU", e.SWITCH = "SWITCH", e.SLIDER = "SLIDER", e.DATEPICKER = "DATEPICKER", e.DATEPICKERMENU = "DATEPICKERMENU", e.CHECKBOXGROUP = "CHECKBOXGROUP", e.CHECKBOXTREE = "CHECKBOXTREE", e.RADIOGROUP = "RADIOGROUP", e.RADIO = "RADIO", e;
10
- }({}), f = (e, t) => `
9
+ }({}), d = () => c`
10
+ &.--ICON {
11
+ font-family: 'Material Symbols Rounded';
12
+ font-weight: normal;
13
+ font-style: normal;
14
+ font-size: 20px;
15
+ line-height: 1;
16
+ letter-spacing: normal;
17
+ text-transform: none;
18
+ display: inline-block;
19
+ white-space: nowrap;
20
+ word-wrap: normal;
21
+ direction: ltr;
22
+ font-variation-settings:
23
+ 'FILL' 0,
24
+ 'wght' 400,
25
+ 'GRAD' 0,
26
+ 'opsz' 24;
27
+ user-select: none;
28
+ vertical-align: middle;
29
+
30
+ &.--ICON-fill {
31
+ font-variation-settings:
32
+ 'FILL' 1,
33
+ 'wght' 500,
34
+ 'GRAD' 0,
35
+ 'opsz' 24;
36
+ }
37
+
38
+ &.--ICON-sm {
39
+ font-size: 18px;
40
+ }
41
+ &.--ICON-lg {
42
+ font-size: 24px;
43
+ }
44
+ &.--ICON-xl {
45
+ font-size: 36px;
46
+ }
47
+ }
48
+ `, f = "--ICON", p = ({ name: e, fill: n = !1, size: r = "md", className: i, style: a }) => /* @__PURE__ */ t("span", {
49
+ className: [
50
+ f,
51
+ n && `${f}-fill`,
52
+ r !== "md" && `${f}-${r}`,
53
+ i
54
+ ].filter(Boolean).join(" "),
55
+ css: d(),
56
+ style: a,
57
+ "aria-hidden": "true",
58
+ "data-testid": f,
59
+ children: e
60
+ }), m = (e, t) => `
11
61
  // BACKGROUNDS
12
62
  ${r(e, "background-color", `--CHECKBOX-EVENTS-${t}-BACKGROUND-COLOR`)}
13
- `, p = (e, t) => `
63
+ `, h = (e, t) => `
14
64
  // BORDERS
15
65
  ${r(e, "border-color", `--CHECKBOX-EVENTS-${t}-BORDER-COLOR`)}
16
66
  ${r(e, "border-width", `--CHECKBOX-EVENTS-${t}-BORDER-WIDTH`)}
17
67
  ${r(e, "border-style", `--CHECKBOX-EVENTS-${t}-BORDER-STYLE`)}
18
- `, m = (e, t) => `
68
+ `, g = (e, t) => `
19
69
  // OUTLINE
20
70
  ${r(e, "outline-color", `--CHECKBOX-EVENTS-${t}-OUTLINE-COLOR`)}
21
71
  ${r(e, "outline-width", `--CHECKBOX-EVENTS-${t}-OUTLINE-WIDTH`)}
22
72
  ${r(e, "outline-style", `--CHECKBOX-EVENTS-${t}-OUTLINE-STYLE`)}
23
73
  ${r(e, "outline-offset", `--CHECKBOX-EVENTS-${t}-OUTLINE-OFFSET`)}
24
- `, h = (e, t) => `
74
+ `, _ = (e, t) => `
25
75
  // SHADOW
26
76
  ${r(e, "background-color", `--CHECKBOX-EVENTS-${t}-SHADOW-COLOR`)}
27
- `, g = (e, t) => `
77
+ `, v = (e, t) => `
28
78
  // UTILS
29
- > svg > path {
30
- ${r(e, "fill", `--CHECKBOX-EVENTS-${t}-ICON-COLOR`)};
79
+ > span {
80
+ ${r(e, "color", `--CHECKBOX-EVENTS-${t}-ICON-COLOR`)};
31
81
  }
32
- `, _ = (e, t) => `
82
+ `, y = (e, t) => `
33
83
  // TYPOGRAPHY
34
84
  .--CHECKBOX-label {
35
85
  ${r(e, "color", `--CHECKBOX-EVENTS-${t}-COLOR-PRIMARY`)}
@@ -38,7 +88,7 @@ var d = /* @__PURE__ */ function(e) {
38
88
  ~ .--CHECKBOX-helperText {
39
89
  ${r(e, "color", `--CHECKBOX-EVENTS-${t}-COLOR-SECONDARY`)}
40
90
  }
41
- `, v = (e) => c`
91
+ `, b = (e) => c`
42
92
  &.--CHECKBOX {
43
93
  display: flex;
44
94
  flex-direction: column;
@@ -53,53 +103,53 @@ var d = /* @__PURE__ */ function(e) {
53
103
  cursor: pointer;
54
104
 
55
105
  // ENABLED
56
- ${_(e, "ENABLED")};
106
+ ${y(e, "ENABLED")};
57
107
 
58
108
  // VALUE
59
109
  &:has(.--CHECKBOX-inputField:checked) {
60
- ${_(e, "VALUE")};
110
+ ${y(e, "VALUE")};
61
111
  }
62
112
 
63
113
  // HOVER
64
114
  &:hover {
65
- ${_(e, "HOVER")};
115
+ ${y(e, "HOVER")};
66
116
 
67
117
  .--CHECKBOX-checkbox .--CHECKBOX-span {
68
118
  &:before {
69
119
  opacity: 1;
70
- ${h(e, "HOVER")};
120
+ ${_(e, "HOVER")};
71
121
  }
72
122
  }
73
123
  }
74
124
 
75
125
  // ACTIVE
76
126
  &:has(.--CHECKBOX-inputField.--CHECKBOX-active, .--CHECKBOX-inputField:active) {
77
- ${_(e, "ACTIVE")};
127
+ ${y(e, "ACTIVE")};
78
128
  }
79
129
 
80
130
  // FOCUS-VISIBLE
81
131
  &:has(.--CHECKBOX-inputField:focus-visible) {
82
- ${_(e, "FOCUS")};
132
+ ${y(e, "FOCUS")};
83
133
  }
84
134
 
85
135
  // ERROR
86
136
  &:has(.--CHECKBOX-inputField.--CHECKBOX-error) {
87
- ${_(e, "ERROR")};
137
+ ${y(e, "ERROR")};
88
138
  }
89
139
 
90
140
  // ERROR + VALUE
91
141
  &:has(.--CHECKBOX-inputField.--CHECKBOX-error:checked) {
92
- ${_(e, "ERROR_VALUE")};
142
+ ${y(e, "ERROR_VALUE")};
93
143
  }
94
144
 
95
145
  // ERROR + HOVER
96
146
  &:hover:has(.--CHECKBOX-inputField.--CHECKBOX-error) {
97
- ${_(e, "ERROR_HOVER")};
147
+ ${y(e, "ERROR_HOVER")};
98
148
 
99
149
  .--CHECKBOX-checkbox .--CHECKBOX-span {
100
150
  &:before {
101
151
  opacity: 1;
102
- ${h(e, "ERROR_HOVER")};
152
+ ${_(e, "ERROR_HOVER")};
103
153
  }
104
154
  }
105
155
  }
@@ -107,23 +157,23 @@ var d = /* @__PURE__ */ function(e) {
107
157
  // ERROR + ACTIVE
108
158
  &:has(.--CHECKBOX-inputField.--CHECKBOX-error:active),
109
159
  &:has(.--CHECKBOX-inputField.--CHECKBOX-error.--CHECKBOX-active) {
110
- ${_(e, "ERROR_ACTIVE")};
160
+ ${y(e, "ERROR_ACTIVE")};
111
161
  }
112
162
 
113
163
  // ERROR + FOCUS
114
164
  &:has(.--CHECKBOX-inputField.--CHECKBOX-error:focus-visible) {
115
- ${_(e, "ERROR_FOCUS")};
165
+ ${y(e, "ERROR_FOCUS")};
116
166
  }
117
167
 
118
168
  // DISABLED
119
169
  &:has(.--CHECKBOX-inputField:disabled) {
120
170
  pointer-events: none;
121
- ${_(e, "DISABLED")};
171
+ ${y(e, "DISABLED")};
122
172
  }
123
173
 
124
174
  // DISABLED + VALUE
125
175
  &:has(.--CHECKBOX-inputField:disabled:checked) {
126
- ${_(e, "DISABLED_VALUE")};
176
+ ${y(e, "DISABLED_VALUE")};
127
177
  }
128
178
 
129
179
  .--CHECKBOX-checkbox {
@@ -143,33 +193,33 @@ var d = /* @__PURE__ */ function(e) {
143
193
  margin: 0;
144
194
  -webkit-tap-highlight-color: transparent;
145
195
 
146
- ~ .--CHECKBOX-span > svg {
196
+ ~ .--CHECKBOX-span > span {
147
197
  visibility: hidden;
148
198
  }
149
- &:checked ~ .--CHECKBOX-span > svg,
150
- &:indeterminate ~ .--CHECKBOX-span > svg {
199
+ &:checked ~ .--CHECKBOX-span > span,
200
+ &:indeterminate ~ .--CHECKBOX-span > span {
151
201
  visibility: visible;
152
202
  }
153
203
 
154
204
  // ENABLED
155
205
  ~ .--CHECKBOX-span {
156
- ${f(e, "ENABLED")};
157
- ${p(e, "ENABLED")};
158
- ${g(e, "ENABLED")};
206
+ ${m(e, "ENABLED")};
207
+ ${h(e, "ENABLED")};
208
+ ${v(e, "ENABLED")};
159
209
  }
160
210
 
161
211
  // VALUE
162
212
  &:checked ~ .--CHECKBOX-span {
163
- ${f(e, "VALUE")};
164
- ${p(e, "VALUE")};
165
- ${g(e, "VALUE")};
213
+ ${m(e, "VALUE")};
214
+ ${h(e, "VALUE")};
215
+ ${v(e, "VALUE")};
166
216
  }
167
217
 
168
218
  // INDETERMINATE (same appearance as VALUE)
169
219
  &:indeterminate ~ .--CHECKBOX-span {
170
- ${f(e, "VALUE")};
171
- ${p(e, "VALUE")};
172
- ${g(e, "VALUE")};
220
+ ${m(e, "VALUE")};
221
+ ${h(e, "VALUE")};
222
+ ${v(e, "VALUE")};
173
223
  }
174
224
 
175
225
  // HOVER
@@ -180,29 +230,29 @@ var d = /* @__PURE__ */ function(e) {
180
230
  &:active ~ .--CHECKBOX-span {
181
231
  &:before {
182
232
  opacity: 1;
183
- ${h(e, "ACTIVE")};
233
+ ${_(e, "ACTIVE")};
184
234
  }
185
235
  }
186
236
 
187
237
  // FOCUS
188
238
  &:focus-visible ~ .--CHECKBOX-span {
189
239
  outline: none;
190
- ${m(e, "FOCUS")};
191
240
  ${g(e, "FOCUS")};
241
+ ${v(e, "FOCUS")};
192
242
  }
193
243
 
194
244
  // ERROR
195
245
  &.--CHECKBOX-error ~ .--CHECKBOX-span {
196
- ${f(e, "ERROR")};
197
- ${p(e, "ERROR")};
198
- ${g(e, "ERROR")};
246
+ ${m(e, "ERROR")};
247
+ ${h(e, "ERROR")};
248
+ ${v(e, "ERROR")};
199
249
  }
200
250
 
201
251
  // ERROR + VALUE
202
252
  &.--CHECKBOX-error:checked ~ .--CHECKBOX-span {
203
- ${f(e, "ERROR_VALUE")};
204
- ${p(e, "ERROR_VALUE")};
205
- ${g(e, "ERROR_VALUE")};
253
+ ${m(e, "ERROR_VALUE")};
254
+ ${h(e, "ERROR_VALUE")};
255
+ ${v(e, "ERROR_VALUE")};
206
256
  }
207
257
 
208
258
  // ERROR + VALUE
@@ -213,28 +263,28 @@ var d = /* @__PURE__ */ function(e) {
213
263
  &.--CHECKBOX-error.--CHECKBOX-active ~ .--CHECKBOX-span {
214
264
  &:before {
215
265
  opacity: 1;
216
- ${h(e, "ERROR_ACTIVE")};
266
+ ${_(e, "ERROR_ACTIVE")};
217
267
  }
218
268
  }
219
269
 
220
270
  // ERROR + FOCUS
221
271
  &.--CHECKBOX-error:focus-visible ~ .--CHECKBOX-span {
222
- ${m(e, "ERROR_FOCUS")};
223
272
  ${g(e, "ERROR_FOCUS")};
273
+ ${v(e, "ERROR_FOCUS")};
224
274
  }
225
275
 
226
276
  // DISABLED
227
277
  &:disabled ~ .--CHECKBOX-span {
228
- ${f(e, "DISABLED")};
229
- ${p(e, "DISABLED")};
230
- ${g(e, "DISABLED")};
278
+ ${m(e, "DISABLED")};
279
+ ${h(e, "DISABLED")};
280
+ ${v(e, "DISABLED")};
231
281
  }
232
282
 
233
283
  // DISABLED + VALUE
234
284
  &:disabled:checked ~ .--CHECKBOX-span {
235
- ${f(e, "DISABLED_VALUE")};
236
- ${p(e, "DISABLED_VALUE")};
237
- ${g(e, "DISABLED_VALUE")};
285
+ ${m(e, "DISABLED_VALUE")};
286
+ ${h(e, "DISABLED_VALUE")};
287
+ ${v(e, "DISABLED_VALUE")};
238
288
  }
239
289
  }
240
290
 
@@ -251,7 +301,7 @@ var d = /* @__PURE__ */ function(e) {
251
301
  background-color 150ms ease-in-out,
252
302
  border-color 150ms ease-in-out;
253
303
 
254
- > svg {
304
+ > span {
255
305
  width: 100%;
256
306
  height: auto;
257
307
  z-index: 1;
@@ -260,8 +310,8 @@ var d = /* @__PURE__ */ function(e) {
260
310
  &:before {
261
311
  content: '';
262
312
  position: absolute;
263
- width: 36px;
264
- height: 36px;
313
+ width: 32px;
314
+ height: 32px;
265
315
  border-radius: 50%;
266
316
  opacity: 0;
267
317
  transition: opacity 150ms ease-in-out;
@@ -287,68 +337,68 @@ var d = /* @__PURE__ */ function(e) {
287
337
  margin-left: 14px;
288
338
  }
289
339
  }
290
- `, y = a(null), b = a(null), x = "--CHECKBOX", S = i.forwardRef(({ label: e, icon: r = /* @__PURE__ */ t(u, {}), helperText: i, showErrorText: a = !0, className: o, style: c = {}, disabled: l, checked: d, onChecked: f, error: p, onKeyDown: m, onKeyUp: h, onBlur: g, ..._ }, y) => {
291
- let [b, S] = s(!1);
340
+ `, x = a(null), S = a(null), C = "--CHECKBOX", w = i.forwardRef(({ label: e, icon: r = /* @__PURE__ */ t(p, { name: "check" }), helperText: i, showErrorText: a = !0, className: o, style: c = {}, disabled: l, checked: u, onChecked: d, error: f, onKeyDown: m, onKeyUp: h, onBlur: g, ..._ }, v) => {
341
+ let [y, x] = s(!1);
292
342
  return /* @__PURE__ */ n("div", {
293
343
  className: [
294
- x,
295
- b ? `${x}-active` : "",
344
+ C,
345
+ y ? `${C}-active` : "",
296
346
  o || ""
297
347
  ].join(" "),
298
- css: v(c),
299
- "data-testid": x,
348
+ css: b(c),
349
+ "data-testid": C,
300
350
  children: [/* @__PURE__ */ n("label", {
301
- className: `${x}-container`,
351
+ className: `${C}-container`,
302
352
  children: [/* @__PURE__ */ n("div", {
303
- className: `${x}-checkbox`,
353
+ className: `${C}-checkbox`,
304
354
  children: [/* @__PURE__ */ t("input", {
305
355
  className: [
306
- `${x}-inputField`,
307
- b ? `${x}-active` : "",
308
- a && p && `${x}-error`
356
+ `${C}-inputField`,
357
+ y ? `${C}-active` : "",
358
+ a && f && `${C}-error`
309
359
  ].join(" "),
310
360
  type: "checkbox",
311
- checked: d,
361
+ checked: u,
312
362
  disabled: l,
313
- onChange: (e) => f(e.target.checked),
363
+ onChange: (e) => d(e.target.checked),
314
364
  onKeyDown: (e) => {
315
- (e.key === "Enter" || e.key === "Space") && S(!0), m?.(e);
365
+ (e.key === "Enter" || e.key === "Space") && x(!0), m?.(e);
316
366
  },
317
367
  onKeyUp: (e) => {
318
- (e.key === "Enter" || e.key === "Space") && (S(!1), f(!d)), h?.(e);
368
+ (e.key === "Enter" || e.key === "Space") && (x(!1), d(!u)), h?.(e);
319
369
  },
320
370
  onBlur: () => {
321
- S(!1), g?.({});
371
+ x(!1), g?.({});
322
372
  },
323
- ref: y,
324
- "data-testid": `${x}-inputField`,
373
+ ref: v,
374
+ "data-testid": `${C}-inputField`,
325
375
  ..._
326
376
  }), /* @__PURE__ */ t("span", {
327
- className: `${x}-span`,
328
- "data-testid": `${x}-icon`,
377
+ className: `${C}-span`,
378
+ "data-testid": `${C}-icon`,
329
379
  children: r
330
380
  })]
331
381
  }), /* @__PURE__ */ t("span", {
332
- className: `${x}-label`,
333
- "data-testid": `${x}-label`,
382
+ className: `${C}-label`,
383
+ "data-testid": `${C}-label`,
334
384
  children: e
335
385
  })]
336
386
  }), (i || a) && /* @__PURE__ */ n("span", {
337
- className: `${x}-helperText`,
338
- "data-testid": `${x}-helperText`,
339
- children: [i && (!p || !a) && i, a && p && p.message]
387
+ className: `${C}-helperText`,
388
+ "data-testid": `${C}-helperText`,
389
+ children: [i && (!f || !a) && i, a && f && f.message]
340
390
  })]
341
391
  });
342
392
  });
343
- S.displayName = "CheckboxBase";
344
- var C = ({ name: e, control: n, ...r }) => {
393
+ w.displayName = "CheckboxBase";
394
+ var T = ({ name: e, control: n, ...r }) => {
345
395
  let { field: i, fieldState: a } = l({
346
396
  control: n,
347
397
  name: e
348
398
  }), [o, c] = s(i.value || !1), u = a.error, d = (e) => {
349
399
  i.onChange(e), c(e), u && i.onBlur();
350
400
  };
351
- return /* @__PURE__ */ t(S, {
401
+ return /* @__PURE__ */ t(w, {
352
402
  ...r,
353
403
  name: e,
354
404
  checked: o,
@@ -356,11 +406,11 @@ var C = ({ name: e, control: n, ...r }) => {
356
406
  onBlur: () => i.onBlur(),
357
407
  error: u
358
408
  });
359
- }, w = (e) => {
360
- let n = o(y), r = o(b), i = n ?? r;
409
+ }, E = (e) => {
410
+ let n = o(x), r = o(S), i = n ?? r;
361
411
  if (typeof e.checked == "boolean" && !e.control) {
362
412
  let { checked: n, onChecked: r, name: i, control: a, ...o } = e;
363
- return /* @__PURE__ */ t(S, {
413
+ return /* @__PURE__ */ t(w, {
364
414
  ...o,
365
415
  name: i,
366
416
  checked: n,
@@ -369,7 +419,7 @@ var C = ({ name: e, control: n, ...r }) => {
369
419
  }
370
420
  if (i) {
371
421
  let { value: n, name: r, control: a, ...o } = e, s = n ?? r ?? "", c = i.checkedValues.includes(s);
372
- return /* @__PURE__ */ t(S, {
422
+ return /* @__PURE__ */ t(w, {
373
423
  ...o,
374
424
  name: r,
375
425
  value: s,
@@ -381,15 +431,15 @@ var C = ({ name: e, control: n, ...r }) => {
381
431
  helperText: void 0
382
432
  });
383
433
  }
384
- return /* @__PURE__ */ t(C, { ...e });
385
- }, T = ({ theme: n, ...r }) => {
386
- let { componentStyles: i } = e([d.CHECKBOX], n);
387
- return /* @__PURE__ */ t(w, {
434
+ return /* @__PURE__ */ t(T, { ...e });
435
+ }, D = ({ theme: n, ...r }) => {
436
+ let { componentStyles: i } = e([u.CHECKBOX], n);
437
+ return /* @__PURE__ */ t(E, {
388
438
  ...r,
389
439
  style: i
390
440
  });
391
- }, E = a(null);
441
+ }, O = a(null);
392
442
  //#endregion
393
- export { d as a, y as i, T as n, b as r, E as t };
443
+ export { p as a, x as i, D as n, u as o, S as r, O as t };
394
444
 
395
- //# sourceMappingURL=RadioGroup.context-zJGC5Sjc.js.map
445
+ //# sourceMappingURL=RadioGroup.context-DJLdImVO.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RadioGroup.context-DJLdImVO.js","names":[],"sources":["../src/hocs/ThemeProvider/interfaces/Components.interface.ts","../src/components/atoms/Icon/Icon.emotion.ts","../src/components/atoms/Icon/Icon.tsx","../src/components/atoms/Checkbox/Checkbox.emotion.ts","../src/components/molecules/CheckboxGroup/CheckboxGroup.context.ts","../src/components/molecules/CheckboxTree/CheckboxTree.context.ts","../src/components/atoms/Checkbox/Checkbox.tsx","../src/components/atoms/Checkbox/index.tsx","../src/components/atoms/Radio/RadioGroup.context.ts"],"sourcesContent":["export enum Component {\n // atoms\n BUTTON = 'BUTTON',\n ICONBUTTON = 'ICONBUTTON',\n INPUT = 'INPUT',\n CHECKBOX = 'CHECKBOX',\n SELECT = 'SELECT',\n SELECTMENU = 'SELECTMENU',\n SWITCH = 'SWITCH',\n SLIDER = 'SLIDER',\n DATEPICKER = 'DATEPICKER',\n DATEPICKERMENU = 'DATEPICKERMENU',\n\n // molecules\n CHECKBOXGROUP = 'CHECKBOXGROUP',\n CHECKBOXTREE = 'CHECKBOXTREE',\n RADIOGROUP = 'RADIOGROUP',\n\n // atoms\n RADIO = 'RADIO',\n}\n","import { css } from '@emotion/react';\n\nconst Style = () => css`\n &.--ICON {\n font-family: 'Material Symbols Rounded';\n font-weight: normal;\n font-style: normal;\n font-size: 20px;\n line-height: 1;\n letter-spacing: normal;\n text-transform: none;\n display: inline-block;\n white-space: nowrap;\n word-wrap: normal;\n direction: ltr;\n font-variation-settings:\n 'FILL' 0,\n 'wght' 400,\n 'GRAD' 0,\n 'opsz' 24;\n user-select: none;\n vertical-align: middle;\n\n &.--ICON-fill {\n font-variation-settings:\n 'FILL' 1,\n 'wght' 500,\n 'GRAD' 0,\n 'opsz' 24;\n }\n\n &.--ICON-sm {\n font-size: 18px;\n }\n &.--ICON-lg {\n font-size: 24px;\n }\n &.--ICON-xl {\n font-size: 36px;\n }\n }\n`;\n\nexport default Style;\n","import type { FC } from 'react';\nimport emotion from './Icon.emotion';\nimport type { IconProps } from './Icon.interface';\n\nconst CLASS = '--ICON';\n\n/**\n * Renders a single Material Symbols Rounded icon using font ligatures.\n *\n * Pass the ligature name as `name` (e.g. `'home'`, `'search'`, `'close'`).\n * The icon font is loaded once by `ThemeProvider` — no extra requests per icon.\n */\nconst Icon: FC<IconProps> = ({ name, fill = false, size = 'md', className, style }) => {\n return (\n <span\n className={[CLASS, fill && `${CLASS}-fill`, size !== 'md' && `${CLASS}-${size}`, className]\n .filter(Boolean)\n .join(' ')}\n css={emotion()}\n style={style}\n aria-hidden='true'\n data-testid={CLASS}\n >\n {name}\n </span>\n );\n};\n\nexport default Icon;\n","import { css } from '@emotion/react';\nimport { getStyle } from '@utilities/emotion/styles';\n\nconst background = (theme: Record<string, string>, event: string): string => `\n // BACKGROUNDS \n ${getStyle(theme, 'background-color', `--CHECKBOX-EVENTS-${event}-BACKGROUND-COLOR`)}\n`;\n\nconst border = (theme: Record<string, string>, event: string): string => `\n // BORDERS\n ${getStyle(theme, 'border-color', `--CHECKBOX-EVENTS-${event}-BORDER-COLOR`)}\n ${getStyle(theme, 'border-width', `--CHECKBOX-EVENTS-${event}-BORDER-WIDTH`)}\n ${getStyle(theme, 'border-style', `--CHECKBOX-EVENTS-${event}-BORDER-STYLE`)}\n`;\n\nconst outline = (theme: Record<string, string>, event: string): string => ` \n // OUTLINE\n ${getStyle(theme, 'outline-color', `--CHECKBOX-EVENTS-${event}-OUTLINE-COLOR`)}\n ${getStyle(theme, 'outline-width', `--CHECKBOX-EVENTS-${event}-OUTLINE-WIDTH`)}\n ${getStyle(theme, 'outline-style', `--CHECKBOX-EVENTS-${event}-OUTLINE-STYLE`)}\n ${getStyle(theme, 'outline-offset', `--CHECKBOX-EVENTS-${event}-OUTLINE-OFFSET`)}\n`;\n\nconst shadow = (theme: Record<string, string>, event: string): string => ` \n // SHADOW\n ${getStyle(theme, 'background-color', `--CHECKBOX-EVENTS-${event}-SHADOW-COLOR`)}\n`;\n\nconst icon = (theme: Record<string, string>, event: string): string => `\n // UTILS\n > span {\n ${getStyle(theme, 'color', `--CHECKBOX-EVENTS-${event}-ICON-COLOR`)};\n }\n`;\n\nconst label = (theme: Record<string, string>, event: string): string => `\n // TYPOGRAPHY\n .--CHECKBOX-label {\n ${getStyle(theme, 'color', `--CHECKBOX-EVENTS-${event}-COLOR-PRIMARY`)}\n }\n\n ~ .--CHECKBOX-helperText {\n ${getStyle(theme, 'color', `--CHECKBOX-EVENTS-${event}-COLOR-SECONDARY`)}\n }\n`;\n\nconst Style = (theme: Record<string, string>) => css`\n &.--CHECKBOX {\n display: flex;\n flex-direction: column;\n gap: 8px;\n width: fit-content;\n\n .--CHECKBOX-container {\n display: flex;\n flex-direction: row;\n gap: 12px;\n align-items: center;\n cursor: pointer;\n\n // ENABLED\n ${label(theme, 'ENABLED')};\n\n // VALUE\n &:has(.--CHECKBOX-inputField:checked) {\n ${label(theme, 'VALUE')};\n }\n\n // HOVER\n &:hover {\n ${label(theme, 'HOVER')};\n\n .--CHECKBOX-checkbox .--CHECKBOX-span {\n &:before {\n opacity: 1;\n ${shadow(theme, 'HOVER')};\n }\n }\n }\n\n // ACTIVE\n &:has(.--CHECKBOX-inputField.--CHECKBOX-active, .--CHECKBOX-inputField:active) {\n ${label(theme, 'ACTIVE')};\n }\n\n // FOCUS-VISIBLE\n &:has(.--CHECKBOX-inputField:focus-visible) {\n ${label(theme, 'FOCUS')};\n }\n\n // ERROR\n &:has(.--CHECKBOX-inputField.--CHECKBOX-error) {\n ${label(theme, 'ERROR')};\n }\n\n // ERROR + VALUE\n &:has(.--CHECKBOX-inputField.--CHECKBOX-error:checked) {\n ${label(theme, 'ERROR_VALUE')};\n }\n\n // ERROR + HOVER\n &:hover:has(.--CHECKBOX-inputField.--CHECKBOX-error) {\n ${label(theme, 'ERROR_HOVER')};\n\n .--CHECKBOX-checkbox .--CHECKBOX-span {\n &:before {\n opacity: 1;\n ${shadow(theme, 'ERROR_HOVER')};\n }\n }\n }\n\n // ERROR + ACTIVE\n &:has(.--CHECKBOX-inputField.--CHECKBOX-error:active),\n &:has(.--CHECKBOX-inputField.--CHECKBOX-error.--CHECKBOX-active) {\n ${label(theme, 'ERROR_ACTIVE')};\n }\n\n // ERROR + FOCUS\n &:has(.--CHECKBOX-inputField.--CHECKBOX-error:focus-visible) {\n ${label(theme, 'ERROR_FOCUS')};\n }\n\n // DISABLED\n &:has(.--CHECKBOX-inputField:disabled) {\n pointer-events: none;\n ${label(theme, 'DISABLED')};\n }\n\n // DISABLED + VALUE\n &:has(.--CHECKBOX-inputField:disabled:checked) {\n ${label(theme, 'DISABLED_VALUE')};\n }\n\n .--CHECKBOX-checkbox {\n position: relative;\n display: inline-flex;\n width: 24px;\n height: 24px;\n isolation: isolate;\n\n .--CHECKBOX-inputField {\n cursor: pointer;\n position: absolute;\n opacity: 0;\n width: 100%;\n height: 100%;\n z-index: 2;\n margin: 0;\n -webkit-tap-highlight-color: transparent;\n\n ~ .--CHECKBOX-span > span {\n visibility: hidden;\n }\n &:checked ~ .--CHECKBOX-span > span,\n &:indeterminate ~ .--CHECKBOX-span > span {\n visibility: visible;\n }\n\n // ENABLED\n ~ .--CHECKBOX-span {\n ${background(theme, 'ENABLED')};\n ${border(theme, 'ENABLED')};\n ${icon(theme, 'ENABLED')};\n }\n\n // VALUE\n &:checked ~ .--CHECKBOX-span {\n ${background(theme, 'VALUE')};\n ${border(theme, 'VALUE')};\n ${icon(theme, 'VALUE')};\n }\n\n // INDETERMINATE (same appearance as VALUE)\n &:indeterminate ~ .--CHECKBOX-span {\n ${background(theme, 'VALUE')};\n ${border(theme, 'VALUE')};\n ${icon(theme, 'VALUE')};\n }\n\n // HOVER\n // Is at the container level\n\n // ACTIVE\n &.--CHECKBOX-active ~ .--CHECKBOX-span,\n &:active ~ .--CHECKBOX-span {\n &:before {\n opacity: 1;\n ${shadow(theme, 'ACTIVE')};\n }\n }\n\n // FOCUS\n &:focus-visible ~ .--CHECKBOX-span {\n outline: none;\n ${outline(theme, 'FOCUS')};\n ${icon(theme, 'FOCUS')};\n }\n\n // ERROR\n &.--CHECKBOX-error ~ .--CHECKBOX-span {\n ${background(theme, 'ERROR')};\n ${border(theme, 'ERROR')};\n ${icon(theme, 'ERROR')};\n }\n\n // ERROR + VALUE\n &.--CHECKBOX-error:checked ~ .--CHECKBOX-span {\n ${background(theme, 'ERROR_VALUE')};\n ${border(theme, 'ERROR_VALUE')};\n ${icon(theme, 'ERROR_VALUE')};\n }\n\n // ERROR + VALUE\n // Is at the container level\n\n // ERROR + ACTIVE\n &.--CHECKBOX-error:active ~ .--CHECKBOX-span,\n &.--CHECKBOX-error.--CHECKBOX-active ~ .--CHECKBOX-span {\n &:before {\n opacity: 1;\n ${shadow(theme, 'ERROR_ACTIVE')};\n }\n }\n\n // ERROR + FOCUS\n &.--CHECKBOX-error:focus-visible ~ .--CHECKBOX-span {\n ${outline(theme, 'ERROR_FOCUS')};\n ${icon(theme, 'ERROR_FOCUS')};\n }\n\n // DISABLED\n &:disabled ~ .--CHECKBOX-span {\n ${background(theme, 'DISABLED')};\n ${border(theme, 'DISABLED')};\n ${icon(theme, 'DISABLED')};\n }\n\n // DISABLED + VALUE\n &:disabled:checked ~ .--CHECKBOX-span {\n ${background(theme, 'DISABLED_VALUE')};\n ${border(theme, 'DISABLED_VALUE')};\n ${icon(theme, 'DISABLED_VALUE')};\n }\n }\n\n .--CHECKBOX-span {\n width: 24px;\n height: 24px;\n ${getStyle(theme, 'border-radius', '--CHECKBOX-ROOT-BORDER-RADIUS')};\n position: absolute;\n box-sizing: border-box;\n display: flex;\n align-items: center;\n justify-content: center;\n transition:\n background-color 150ms ease-in-out,\n border-color 150ms ease-in-out;\n\n > span {\n width: 100%;\n height: auto;\n z-index: 1;\n }\n\n &:before {\n content: '';\n position: absolute;\n width: 32px;\n height: 32px;\n border-radius: 50%;\n opacity: 0;\n transition: opacity 150ms ease-in-out;\n z-index: -1;\n }\n }\n }\n\n .--CHECKBOX-label {\n // FONT\n font-family: ${theme['--FONTFAMILY-PRIMARY']};\n font-size: 0.875rem;\n font-weight: 500;\n line-height: 1;\n }\n }\n\n .--CHECKBOX-helperText {\n // FONT\n font-family: ${theme['--FONTFAMILY-PRIMARY']};\n font-size: 13px;\n line-height: 16px;\n margin-left: 14px;\n }\n }\n`;\n\nexport default Style;\n","import { createContext } from 'react';\n\nexport interface CheckboxGroupContextValue {\n /** Array of currently checked option values */\n checkedValues: string[];\n /** Toggle a value in/out of the checked array */\n onChange: (value: string, checked: boolean) => void;\n /** Group-level disabled state */\n disabled?: boolean;\n /** Group-level validation error */\n error?: { message?: string };\n}\n\nexport const CheckboxGroupContext = createContext<CheckboxGroupContextValue | null>(null);\n","import { createContext } from 'react';\n\nexport interface CheckboxTreeContextValue {\n /** Array of currently checked option values */\n checkedValues: string[];\n /** Toggle a value in/out of the checked array */\n onChange: (value: string, checked: boolean) => void;\n /** Tree-level disabled state */\n disabled?: boolean;\n /** Tree-level validation error */\n error?: { message?: string };\n}\n\nexport const CheckboxTreeContext = createContext<CheckboxTreeContextValue | null>(null);\n","import React, { useState, useContext } from 'react';\n// Component Base\nimport emotion from './Checkbox.emotion';\nimport type { CheckboxProps, CheckboxBaseProps } from './Checkbox.interface';\nimport { CheckboxGroupContext } from '../../molecules/CheckboxGroup/CheckboxGroup.context';\nimport { CheckboxTreeContext } from '../../molecules/CheckboxTree/CheckboxTree.context';\n// External libraries\nimport { useController, type FieldValues, type FieldPath } from 'react-hook-form';\n// Custom Components\nimport Icon from '@components/atoms/Icon';\n\nconst CLASS = '--CHECKBOX';\n\n/** @internal Headless presentational layer shared by all checkbox variants. */\nexport const CheckboxBase = React.forwardRef<HTMLInputElement, CheckboxBaseProps>(\n (\n {\n label,\n icon = <Icon name='check' />,\n helperText,\n showErrorText = true,\n className,\n style = {},\n disabled,\n checked,\n onChecked,\n error,\n onKeyDown,\n onKeyUp,\n onBlur,\n ...rest\n }: CheckboxBaseProps,\n ref,\n ) => {\n const [isActive, setIsActive] = useState(false);\n\n const handleKeyDown = (event: React.KeyboardEvent<HTMLInputElement>) => {\n if (event.key === 'Enter' || event.key === 'Space') setIsActive(true);\n onKeyDown?.(event);\n };\n\n const handleKeyUp = (event: React.KeyboardEvent<HTMLInputElement>) => {\n if (event.key === 'Enter' || event.key === 'Space') {\n setIsActive(false);\n onChecked(!checked);\n }\n onKeyUp?.(event);\n };\n\n const handleBlur = () => {\n setIsActive(false);\n onBlur?.({} as React.FocusEvent<HTMLInputElement>);\n };\n\n return (\n <div\n className={[CLASS, isActive ? `${CLASS}-active` : '', className || ''].join(' ')}\n css={emotion(style)}\n data-testid={CLASS}\n >\n <label className={`${CLASS}-container`}>\n <div className={`${CLASS}-checkbox`}>\n <input\n className={[\n `${CLASS}-inputField`,\n isActive ? `${CLASS}-active` : '',\n showErrorText && error && `${CLASS}-error`,\n ].join(' ')}\n type='checkbox'\n checked={checked}\n disabled={disabled}\n onChange={e => onChecked(e.target.checked)}\n onKeyDown={handleKeyDown}\n onKeyUp={handleKeyUp}\n onBlur={handleBlur}\n ref={ref}\n data-testid={`${CLASS}-inputField`}\n {...rest}\n />\n <span className={`${CLASS}-span`} data-testid={`${CLASS}-icon`}>\n {icon}\n </span>\n </div>\n <span className={`${CLASS}-label`} data-testid={`${CLASS}-label`}>\n {label}\n </span>\n </label>\n {(helperText || showErrorText) && (\n <span className={`${CLASS}-helperText`} data-testid={`${CLASS}-helperText`}>\n {helperText && (!error || !showErrorText) && helperText}\n {showErrorText && error && error.message}\n </span>\n )}\n </div>\n );\n },\n);\n\nCheckboxBase.displayName = 'CheckboxBase';\n\nconst CheckboxRHF = <TFieldValues extends FieldValues = FieldValues>({\n name,\n control,\n ...rest\n}: CheckboxProps<TFieldValues>) => {\n const { field, fieldState } = useController({ control: control!, name: name! as FieldPath<TFieldValues> });\n const [value, setValue] = useState<boolean>(field.value || false);\n const errorText = fieldState.error;\n\n const onChecked = (checked: boolean) => {\n field.onChange(checked);\n setValue(checked);\n if (errorText) field.onBlur();\n };\n\n return (\n <CheckboxBase\n {...rest}\n name={name}\n checked={value}\n onChecked={onChecked}\n onBlur={() => field.onBlur()}\n error={errorText}\n />\n );\n};\n\nconst Checkbox = <TFieldValues extends FieldValues = FieldValues>(props: CheckboxProps<TFieldValues>) => {\n const groupCtx = useContext(CheckboxGroupContext);\n const treeCtx = useContext(CheckboxTreeContext);\n const ctx = groupCtx ?? treeCtx;\n\n if (typeof props.checked === 'boolean' && !props.control) {\n const { checked, onChecked, name, control, ...rest } = props;\n return <CheckboxBase {...rest} name={name} checked={checked} onChecked={onChecked ?? (() => {})} />;\n }\n\n if (ctx) {\n const { value, name, control, ...rest } = props;\n const itemValue = (value as string) ?? name ?? '';\n const checked = ctx.checkedValues.includes(itemValue);\n\n return (\n <CheckboxBase\n {...rest}\n name={name}\n value={itemValue}\n checked={checked}\n onChecked={c => ctx.onChange(itemValue, c)}\n disabled={rest.disabled ?? ctx.disabled}\n error={ctx.error}\n showErrorText={false}\n helperText={undefined}\n />\n );\n }\n\n return <CheckboxRHF {...props} />;\n};\n\nexport default Checkbox;\n","import { useCreateComponentStyles } from '@hocs/ThemeProvider/useThemeProvider.hook';\nimport { Component } from '@hocs/ThemeProvider/interfaces';\nimport type { CheckboxStyleProps } from './Checkbox.interface';\nimport type { FieldValues } from 'react-hook-form';\nimport CheckboxBase from './Checkbox';\n\nconst Checkbox = <TFieldValues extends FieldValues = FieldValues>({\n theme,\n ...rest\n}: CheckboxStyleProps<TFieldValues>) => {\n const { componentStyles } = useCreateComponentStyles([Component.CHECKBOX], theme);\n\n return <CheckboxBase {...rest} style={componentStyles} />;\n};\n\nexport default Checkbox;\n","import { createContext } from 'react';\n\nexport interface RadioGroupContextValue {\n /** The name attribute shared by all radios in this group */\n name: string;\n /** The currently selected value */\n selectedValue: string;\n /** Select a value */\n onChange: (value: string) => void;\n /** Group-level disabled state */\n disabled?: boolean;\n /** Group-level validation error */\n error?: { message?: string };\n}\n\nexport const RadioGroupContext = createContext<RadioGroupContextValue | null>(null);\n"],"mappings":"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"}