@teach-in/react 1.4.0 → 1.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (109) hide show
  1. package/dist/{chunk-2UHA3DYG.mjs → chunk-6BWSC6ZH.mjs} +3 -10
  2. package/dist/chunk-7WIZONLU.mjs +81 -0
  3. package/dist/chunk-ALGSVEUS.mjs +1 -0
  4. package/dist/chunk-BHOCYKBI.mjs +81 -0
  5. package/dist/{chunk-VXYV37IM.mjs → chunk-C5FQB2UN.mjs} +16 -8
  6. package/dist/{chunk-CKJ5U5Q4.mjs → chunk-DEKPRZIQ.mjs} +1 -1
  7. package/dist/chunk-GEPCSZCU.mjs +71 -0
  8. package/dist/chunk-GTE5VEBV.mjs +68 -0
  9. package/dist/{chunk-UFYLYN5Z.mjs → chunk-QFWSQOF6.mjs} +20 -2
  10. package/dist/chunk-VDPROXMN.mjs +57 -0
  11. package/dist/{chunk-J3OZNLTZ.mjs → chunk-WG4IPOHE.mjs} +5 -5
  12. package/dist/{chunk-R46SWVWL.mjs → chunk-ZK6VZMUJ.mjs} +1 -1
  13. package/dist/index.js +536 -253
  14. package/dist/index.mjs +140 -132
  15. package/dist/ui/data/index.js +56 -7
  16. package/dist/ui/data/index.mjs +12 -10
  17. package/dist/ui/data/user/index.js +51 -2
  18. package/dist/ui/data/user/index.mjs +3 -1
  19. package/dist/ui/data/user/user.d.ts +24 -2
  20. package/dist/ui/data/user/user.js +52 -2
  21. package/dist/ui/data/user/user.mjs +4 -1
  22. package/dist/ui/feedback/index.mjs +7 -7
  23. package/dist/ui/form/index.js +76 -18
  24. package/dist/ui/form/index.mjs +25 -20
  25. package/dist/ui/form/rhf/fields/autocomplete-field.mjs +20 -15
  26. package/dist/ui/form/rhf/fields/checkbox-field.mjs +20 -15
  27. package/dist/ui/form/rhf/fields/date-picker-field.mjs +20 -15
  28. package/dist/ui/form/rhf/fields/email-field.js +58 -3
  29. package/dist/ui/form/rhf/fields/email-field.mjs +21 -16
  30. package/dist/ui/form/rhf/fields/index.js +76 -18
  31. package/dist/ui/form/rhf/fields/index.mjs +22 -17
  32. package/dist/ui/form/rhf/fields/input-field.mjs +20 -15
  33. package/dist/ui/form/rhf/fields/radio-field.mjs +20 -15
  34. package/dist/ui/form/rhf/fields/search-field.mjs +20 -15
  35. package/dist/ui/form/rhf/fields/select-field.js +18 -15
  36. package/dist/ui/form/rhf/fields/select-field.mjs +21 -16
  37. package/dist/ui/form/rhf/fields/switch-field.mjs +20 -15
  38. package/dist/ui/form/rhf/fields/text-field.mjs +20 -15
  39. package/dist/ui/form/rhf/fields/textarea-field.mjs +20 -15
  40. package/dist/ui/form/rhf/index.js +76 -18
  41. package/dist/ui/form/rhf/index.mjs +22 -17
  42. package/dist/ui/format/index.mjs +12 -12
  43. package/dist/ui/index.js +536 -253
  44. package/dist/ui/index.mjs +140 -132
  45. package/dist/ui/inputs/checkbox/index.mjs +3 -3
  46. package/dist/ui/inputs/email/email.js +58 -3
  47. package/dist/ui/inputs/email/email.mjs +1 -1
  48. package/dist/ui/inputs/email/index.js +58 -3
  49. package/dist/ui/inputs/email/index.mjs +1 -1
  50. package/dist/ui/inputs/index.d.ts +1 -0
  51. package/dist/ui/inputs/index.js +305 -69
  52. package/dist/ui/inputs/index.mjs +35 -25
  53. package/dist/ui/inputs/number/index.d.ts +1 -0
  54. package/dist/ui/inputs/number/index.js +218 -0
  55. package/dist/ui/inputs/number/index.mjs +12 -0
  56. package/dist/ui/inputs/number/number.d.ts +12 -0
  57. package/dist/ui/inputs/number/number.js +219 -0
  58. package/dist/ui/inputs/number/number.mjs +13 -0
  59. package/dist/ui/inputs/number/use-number.d.ts +20 -0
  60. package/dist/ui/inputs/number/use-number.js +104 -0
  61. package/dist/ui/inputs/number/use-number.mjs +7 -0
  62. package/dist/ui/inputs/select/index.d.ts +1 -1
  63. package/dist/ui/inputs/select/index.js +23 -17
  64. package/dist/ui/inputs/select/index.mjs +8 -4
  65. package/dist/ui/inputs/select/select.d.ts +11 -22
  66. package/dist/ui/inputs/select/select.js +23 -17
  67. package/dist/ui/inputs/select/select.mjs +8 -4
  68. package/dist/ui/inputs/select/use-select.d.ts +0 -1
  69. package/dist/ui/inputs/select/use-select.js +2 -9
  70. package/dist/ui/inputs/select/use-select.mjs +1 -1
  71. package/dist/ui/inputs/switch/favorite-switch.d.ts +23 -2
  72. package/dist/ui/inputs/switch/favorite-switch.js +34 -4
  73. package/dist/ui/inputs/switch/favorite-switch.mjs +1 -1
  74. package/dist/ui/inputs/switch/index.js +34 -4
  75. package/dist/ui/inputs/switch/index.mjs +1 -1
  76. package/dist/ui/layout/container/container.mjs +67 -64
  77. package/dist/ui/layout/container/index.mjs +67 -64
  78. package/dist/ui/layout/index.js +7 -7
  79. package/dist/ui/layout/index.mjs +71 -68
  80. package/dist/ui/layout/page/index.mjs +4 -4
  81. package/dist/ui/layout/page/page-loading.mjs +4 -4
  82. package/dist/ui/layout/page/section-loading.mjs +4 -4
  83. package/dist/ui/navigation/index.mjs +5 -5
  84. package/dist/ui/overlays/index.mjs +4 -4
  85. package/dist/ui/provider/index.mjs +4 -4
  86. package/dist/ui/provider/ui-provider.mjs +4 -4
  87. package/dist/ui/surface/bento/bento.d.ts +2 -2
  88. package/dist/ui/surface/bento/bento.js +5 -5
  89. package/dist/ui/surface/bento/bento.mjs +1 -1
  90. package/dist/ui/surface/bento/index.js +5 -5
  91. package/dist/ui/surface/bento/index.mjs +1 -1
  92. package/dist/ui/surface/card/card.d.ts +2427 -5
  93. package/dist/ui/surface/card/card.js +29 -2
  94. package/dist/ui/surface/card/card.mjs +5 -1
  95. package/dist/ui/surface/card/index.js +29 -2
  96. package/dist/ui/surface/card/index.mjs +5 -1
  97. package/dist/ui/surface/index.js +34 -7
  98. package/dist/ui/surface/index.mjs +9 -5
  99. package/dist/ui/theme/colors/index.mjs +1 -1
  100. package/dist/ui/theme/colors.mjs +1 -1
  101. package/dist/ui/theme/index.mjs +1 -1
  102. package/dist/ui/theme/theme.d.ts +2 -1
  103. package/dist/ui/theme/theme.mjs +1 -1
  104. package/package.json +13 -9
  105. package/LICENSE +0 -21
  106. package/dist/chunk-46SKVFMZ.mjs +0 -16
  107. package/dist/chunk-E5QSNLSR.mjs +0 -38
  108. package/dist/chunk-XHCXM5MU.mjs +0 -14
  109. /package/dist/{chunk-UQAG7TKJ.mjs → chunk-37MCHF7U.mjs} +0 -0
@@ -233,11 +233,73 @@ Input.displayName = "TeachInUI.Input";
233
233
 
234
234
  // src/ui/inputs/email/email.tsx
235
235
  var import_jsx_runtime6 = require("react/jsx-runtime");
236
- var Email = import_react7.default.forwardRef(({ ...props }, ref) => {
237
- return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(Input, { ref, autoComplete: "email", type: "email", ...props });
238
- });
236
+ var EMAIL_REGEX = /^(?!\.)(?!.*\.\.)[A-Za-zА-Яа-яЁё0-9._+%-]+(?<!\.)@(?:(?:[A-Za-zА-Яа-яЁё0-9](?:[A-Za-zА-Яа-яЁё0-9-]*[A-Za-zА-Яа-яЁё0-9])?)\.)+[A-Za-zА-Яа-яЁё]{2,}$/u;
237
+ var DEFAULT_ERROR_MESSAGE = "\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0439 \u0444\u043E\u0440\u043C\u0430\u0442 email";
238
+ var defaultValidateEmail = (value) => {
239
+ if (!value) {
240
+ return;
241
+ }
242
+ return EMAIL_REGEX.test(value) ? true : DEFAULT_ERROR_MESSAGE;
243
+ };
244
+ function getValidationMessage(result) {
245
+ if (typeof result === "string") {
246
+ return result;
247
+ }
248
+ if (Array.isArray(result)) {
249
+ return result.join(" ");
250
+ }
251
+ return;
252
+ }
253
+ var Email = import_react7.default.forwardRef(
254
+ ({
255
+ defaultValue,
256
+ errorMessage,
257
+ isInvalid,
258
+ onValueChange,
259
+ validate = defaultValidateEmail,
260
+ value,
261
+ ...props
262
+ }, ref) => {
263
+ const [internalValue, setInternalValue] = import_react7.default.useState(defaultValue != null ? defaultValue : "");
264
+ const isControlled = value !== void 0;
265
+ const currentValue = isControlled ? value : internalValue;
266
+ const handleValueChange = import_react7.default.useCallback(
267
+ (nextValue) => {
268
+ if (!isControlled) {
269
+ setInternalValue(nextValue);
270
+ }
271
+ onValueChange == null ? void 0 : onValueChange(nextValue);
272
+ },
273
+ [isControlled, onValueChange]
274
+ );
275
+ const validationMessage = getValidationMessage(validate(currentValue != null ? currentValue : ""));
276
+ const resolvedErrorMessage = errorMessage != null ? errorMessage : validationMessage;
277
+ const resolvedIsInvalid = isInvalid != null ? isInvalid : Boolean(validationMessage);
278
+ return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
279
+ Input,
280
+ {
281
+ ref,
282
+ autoComplete: "email",
283
+ errorMessage: resolvedErrorMessage,
284
+ isInvalid: resolvedIsInvalid,
285
+ type: "email",
286
+ validate,
287
+ value: currentValue,
288
+ onValueChange: handleValueChange,
289
+ ...props
290
+ }
291
+ );
292
+ }
293
+ );
239
294
  Email.displayName = "TeachInUI.Email";
240
295
 
296
+ // src/ui/style/css.ts
297
+ var import_clsx = require("clsx");
298
+ var import_tailwind_merge = require("tailwind-merge");
299
+ function cn(...inputs) {
300
+ return (0, import_tailwind_merge.twMerge)((0, import_clsx.clsx)(inputs));
301
+ }
302
+
241
303
  // src/ui/inputs/search/search.tsx
242
304
  var import_react9 = __toESM(require("react"));
243
305
  var import_lucide_react2 = require("lucide-react");
@@ -337,24 +399,17 @@ function useSelect({
337
399
  isClearable = true
338
400
  }) {
339
401
  const isMultiple = selectionMode === "multiple";
340
- const [internalValue, setInternalValue] = (0, import_react10.useState)(
341
- isMultiple ? [] : null
342
- );
343
- const isControlled = value !== void 0;
344
- const currentValue = isControlled ? value : internalValue;
402
+ const currentValue = value != null ? value : isMultiple ? [] : null;
345
403
  const hasValue = currentValue != null && (Array.isArray(currentValue) ? currentValue.length > 0 : currentValue !== "");
346
404
  const handleChange = (0, import_react10.useCallback)(
347
405
  (newValue) => {
348
- if (!isControlled) {
349
- setInternalValue(newValue);
350
- }
351
406
  if (isMultiple) {
352
407
  onChange == null ? void 0 : onChange(newValue);
353
408
  } else {
354
409
  onChange == null ? void 0 : onChange(newValue);
355
410
  }
356
411
  },
357
- [isControlled, onChange, isMultiple]
412
+ [onChange, isMultiple]
358
413
  );
359
414
  const handleClear = (0, import_react10.useCallback)(() => {
360
415
  onClear == null ? void 0 : onClear();
@@ -399,9 +454,11 @@ var selectWrapperVariants = (0, import_tailwind_variants3.tv)({
399
454
  var Select = import_react11.default.forwardRef(
400
455
  ({
401
456
  value,
402
- defaultSelectedKeys,
403
457
  items,
458
+ children,
459
+ selectedKeys: selectedKeysProp,
404
460
  onChange,
461
+ onSelectionChange,
405
462
  selectionMode,
406
463
  onClear,
407
464
  variant,
@@ -410,6 +467,8 @@ var Select = import_react11.default.forwardRef(
410
467
  isClearable,
411
468
  ...props
412
469
  }, ref) => {
470
+ const usesExternalSelectionControl = selectedKeysProp !== void 0 || onSelectionChange !== void 0;
471
+ const selectChildren = children != null ? children : (item) => /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_select.SelectItem, { children: item.label }, item.key);
413
472
  const { selectedKeys, handleSelectionChange, handleClear, showClearButton } = useSelect({
414
473
  value,
415
474
  onChange,
@@ -423,21 +482,20 @@ var Select = import_react11.default.forwardRef(
423
482
  ref,
424
483
  classNames: {
425
484
  ...classNames,
426
- trigger: selectWrapperVariants({ variant }),
485
+ trigger: cn(selectWrapperVariants({ variant }), classNames == null ? void 0 : classNames.trigger),
427
486
  innerWrapper: "group"
428
487
  },
429
- defaultSelectedKeys,
430
488
  endContent: (endContent || showClearButton) && /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("div", { className: "flex items-center gap-1", children: [
431
489
  endContent,
432
490
  showClearButton && /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(ClearButton, { onClear: handleClear })
433
491
  ] }),
434
492
  items,
435
- selectedKeys,
493
+ selectedKeys: usesExternalSelectionControl ? selectedKeysProp : selectedKeys,
436
494
  selectionMode,
437
495
  variant,
438
- onSelectionChange: handleSelectionChange,
496
+ onSelectionChange: usesExternalSelectionControl ? onSelectionChange : handleSelectionChange,
439
497
  ...props,
440
- children: (item) => /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_select.SelectItem, { children: item.label }, item.key)
498
+ children: selectChildren
441
499
  }
442
500
  );
443
501
  }
@@ -11,7 +11,7 @@ import {
11
11
  } from "../../../../chunk-CUEG2BFV.mjs";
12
12
  import {
13
13
  SelectField
14
- } from "../../../../chunk-CKJ5U5Q4.mjs";
14
+ } from "../../../../chunk-DEKPRZIQ.mjs";
15
15
  import {
16
16
  SwitchField
17
17
  } from "../../../../chunk-EC3NSPHR.mjs";
@@ -32,37 +32,42 @@ import {
32
32
  } from "../../../../chunk-7GHK5XYK.mjs";
33
33
  import {
34
34
  EmailField
35
- } from "../../../../chunk-R46SWVWL.mjs";
36
- import "../../../../chunk-UQAG7TKJ.mjs";
37
- import "../../../../chunk-LLP2PTPK.mjs";
38
- import "../../../../chunk-E5QSNLSR.mjs";
39
- import "../../../../chunk-N3EAW6UO.mjs";
35
+ } from "../../../../chunk-ZK6VZMUJ.mjs";
36
+ import "../../../../chunk-37MCHF7U.mjs";
40
37
  import "../../../../chunk-DUQFM3QS.mjs";
41
38
  import "../../../../chunk-KTWHCUYV.mjs";
39
+ import "../../../../chunk-LLP2PTPK.mjs";
40
+ import "../../../../chunk-GTE5VEBV.mjs";
41
+ import "../../../../chunk-N3EAW6UO.mjs";
42
42
  import "../../../../chunk-5HK7HRTR.mjs";
43
43
  import "../../../../chunk-HJUZTISD.mjs";
44
- import "../../../../chunk-AQ3ISJKU.mjs";
45
- import "../../../../chunk-VXYV37IM.mjs";
46
- import "../../../../chunk-2UHA3DYG.mjs";
44
+ import "../../../../chunk-5RNCFTW5.mjs";
45
+ import "../../../../chunk-SEJXJZSK.mjs";
46
+ import "../../../../chunk-C2VWADF5.mjs";
47
47
  import "../../../../chunk-RRA7GWP2.mjs";
48
48
  import "../../../../chunk-NOXFF2KJ.mjs";
49
49
  import "../../../../chunk-2SNKT7I4.mjs";
50
- import "../../../../chunk-UUKS7JYX.mjs";
51
- import "../../../../chunk-N3QOXWJI.mjs";
50
+ import "../../../../chunk-AQ3ISJKU.mjs";
51
+ import "../../../../chunk-C5FQB2UN.mjs";
52
+ import "../../../../chunk-6BWSC6ZH.mjs";
52
53
  import "../../../../chunk-V2HNFTTX.mjs";
53
- import "../../../../chunk-IAJ6G633.mjs";
54
54
  import "../../../../chunk-V3KKDSQP.mjs";
55
- import "../../../../chunk-46SKVFMZ.mjs";
56
- import "../../../../chunk-5RNCFTW5.mjs";
57
- import "../../../../chunk-SEJXJZSK.mjs";
58
- import "../../../../chunk-C2VWADF5.mjs";
55
+ import "../../../../chunk-GEPCSZCU.mjs";
59
56
  import "../../../../chunk-ZRHEFEFS.mjs";
60
57
  import "../../../../chunk-MCQGBAUS.mjs";
61
58
  import "../../../../chunk-NSU66J5E.mjs";
59
+ import "../../../../chunk-UUKS7JYX.mjs";
60
+ import "../../../../chunk-C4PCTOGM.mjs";
61
+ import "../../../../chunk-N3QOXWJI.mjs";
62
+ import "../../../../chunk-ALGSVEUS.mjs";
63
+ import "../../../../chunk-BHOCYKBI.mjs";
64
+ import "../../../../chunk-7WIZONLU.mjs";
65
+ import "../../../../chunk-IAJ6G633.mjs";
62
66
  import "../../../../chunk-WYJW5NNA.mjs";
63
67
  import "../../../../chunk-C3MURCMZ.mjs";
64
- import "../../../../chunk-C4PCTOGM.mjs";
65
68
  import "../../../../chunk-TUIN5YJW.mjs";
69
+ import "../../../../chunk-Q6XJI7Q2.mjs";
70
+ import "../../../../chunk-LOMRTWX5.mjs";
66
71
  export {
67
72
  AutocompleteField,
68
73
  CheckboxField,
@@ -2,36 +2,41 @@
2
2
  import {
3
3
  InputField
4
4
  } from "../../../../chunk-5FFWQB7D.mjs";
5
- import "../../../../chunk-UQAG7TKJ.mjs";
6
- import "../../../../chunk-LLP2PTPK.mjs";
7
- import "../../../../chunk-E5QSNLSR.mjs";
8
- import "../../../../chunk-N3EAW6UO.mjs";
5
+ import "../../../../chunk-37MCHF7U.mjs";
9
6
  import "../../../../chunk-DUQFM3QS.mjs";
10
7
  import "../../../../chunk-KTWHCUYV.mjs";
8
+ import "../../../../chunk-LLP2PTPK.mjs";
9
+ import "../../../../chunk-GTE5VEBV.mjs";
10
+ import "../../../../chunk-N3EAW6UO.mjs";
11
11
  import "../../../../chunk-5HK7HRTR.mjs";
12
12
  import "../../../../chunk-HJUZTISD.mjs";
13
- import "../../../../chunk-AQ3ISJKU.mjs";
14
- import "../../../../chunk-VXYV37IM.mjs";
15
- import "../../../../chunk-2UHA3DYG.mjs";
13
+ import "../../../../chunk-5RNCFTW5.mjs";
14
+ import "../../../../chunk-SEJXJZSK.mjs";
15
+ import "../../../../chunk-C2VWADF5.mjs";
16
16
  import "../../../../chunk-RRA7GWP2.mjs";
17
17
  import "../../../../chunk-NOXFF2KJ.mjs";
18
18
  import "../../../../chunk-2SNKT7I4.mjs";
19
- import "../../../../chunk-UUKS7JYX.mjs";
20
- import "../../../../chunk-N3QOXWJI.mjs";
19
+ import "../../../../chunk-AQ3ISJKU.mjs";
20
+ import "../../../../chunk-C5FQB2UN.mjs";
21
+ import "../../../../chunk-6BWSC6ZH.mjs";
21
22
  import "../../../../chunk-V2HNFTTX.mjs";
22
- import "../../../../chunk-IAJ6G633.mjs";
23
23
  import "../../../../chunk-V3KKDSQP.mjs";
24
- import "../../../../chunk-46SKVFMZ.mjs";
25
- import "../../../../chunk-5RNCFTW5.mjs";
26
- import "../../../../chunk-SEJXJZSK.mjs";
27
- import "../../../../chunk-C2VWADF5.mjs";
24
+ import "../../../../chunk-GEPCSZCU.mjs";
28
25
  import "../../../../chunk-ZRHEFEFS.mjs";
29
26
  import "../../../../chunk-MCQGBAUS.mjs";
30
27
  import "../../../../chunk-NSU66J5E.mjs";
28
+ import "../../../../chunk-UUKS7JYX.mjs";
29
+ import "../../../../chunk-C4PCTOGM.mjs";
30
+ import "../../../../chunk-N3QOXWJI.mjs";
31
+ import "../../../../chunk-ALGSVEUS.mjs";
32
+ import "../../../../chunk-BHOCYKBI.mjs";
33
+ import "../../../../chunk-7WIZONLU.mjs";
34
+ import "../../../../chunk-IAJ6G633.mjs";
31
35
  import "../../../../chunk-WYJW5NNA.mjs";
32
36
  import "../../../../chunk-C3MURCMZ.mjs";
33
- import "../../../../chunk-C4PCTOGM.mjs";
34
37
  import "../../../../chunk-TUIN5YJW.mjs";
38
+ import "../../../../chunk-Q6XJI7Q2.mjs";
39
+ import "../../../../chunk-LOMRTWX5.mjs";
35
40
  export {
36
41
  InputField
37
42
  };
@@ -2,36 +2,41 @@
2
2
  import {
3
3
  RadioField
4
4
  } from "../../../../chunk-W2A6C27Y.mjs";
5
- import "../../../../chunk-UQAG7TKJ.mjs";
6
- import "../../../../chunk-LLP2PTPK.mjs";
7
- import "../../../../chunk-E5QSNLSR.mjs";
8
- import "../../../../chunk-N3EAW6UO.mjs";
5
+ import "../../../../chunk-37MCHF7U.mjs";
9
6
  import "../../../../chunk-DUQFM3QS.mjs";
10
7
  import "../../../../chunk-KTWHCUYV.mjs";
8
+ import "../../../../chunk-LLP2PTPK.mjs";
9
+ import "../../../../chunk-GTE5VEBV.mjs";
10
+ import "../../../../chunk-N3EAW6UO.mjs";
11
11
  import "../../../../chunk-5HK7HRTR.mjs";
12
12
  import "../../../../chunk-HJUZTISD.mjs";
13
- import "../../../../chunk-AQ3ISJKU.mjs";
14
- import "../../../../chunk-VXYV37IM.mjs";
15
- import "../../../../chunk-2UHA3DYG.mjs";
13
+ import "../../../../chunk-5RNCFTW5.mjs";
14
+ import "../../../../chunk-SEJXJZSK.mjs";
15
+ import "../../../../chunk-C2VWADF5.mjs";
16
16
  import "../../../../chunk-RRA7GWP2.mjs";
17
17
  import "../../../../chunk-NOXFF2KJ.mjs";
18
18
  import "../../../../chunk-2SNKT7I4.mjs";
19
- import "../../../../chunk-UUKS7JYX.mjs";
20
- import "../../../../chunk-N3QOXWJI.mjs";
19
+ import "../../../../chunk-AQ3ISJKU.mjs";
20
+ import "../../../../chunk-C5FQB2UN.mjs";
21
+ import "../../../../chunk-6BWSC6ZH.mjs";
21
22
  import "../../../../chunk-V2HNFTTX.mjs";
22
- import "../../../../chunk-IAJ6G633.mjs";
23
23
  import "../../../../chunk-V3KKDSQP.mjs";
24
- import "../../../../chunk-46SKVFMZ.mjs";
25
- import "../../../../chunk-5RNCFTW5.mjs";
26
- import "../../../../chunk-SEJXJZSK.mjs";
27
- import "../../../../chunk-C2VWADF5.mjs";
24
+ import "../../../../chunk-GEPCSZCU.mjs";
28
25
  import "../../../../chunk-ZRHEFEFS.mjs";
29
26
  import "../../../../chunk-MCQGBAUS.mjs";
30
27
  import "../../../../chunk-NSU66J5E.mjs";
28
+ import "../../../../chunk-UUKS7JYX.mjs";
29
+ import "../../../../chunk-C4PCTOGM.mjs";
30
+ import "../../../../chunk-N3QOXWJI.mjs";
31
+ import "../../../../chunk-ALGSVEUS.mjs";
32
+ import "../../../../chunk-BHOCYKBI.mjs";
33
+ import "../../../../chunk-7WIZONLU.mjs";
34
+ import "../../../../chunk-IAJ6G633.mjs";
31
35
  import "../../../../chunk-WYJW5NNA.mjs";
32
36
  import "../../../../chunk-C3MURCMZ.mjs";
33
- import "../../../../chunk-C4PCTOGM.mjs";
34
37
  import "../../../../chunk-TUIN5YJW.mjs";
38
+ import "../../../../chunk-Q6XJI7Q2.mjs";
39
+ import "../../../../chunk-LOMRTWX5.mjs";
35
40
  export {
36
41
  RadioField
37
42
  };
@@ -2,36 +2,41 @@
2
2
  import {
3
3
  SearchField
4
4
  } from "../../../../chunk-CUEG2BFV.mjs";
5
- import "../../../../chunk-UQAG7TKJ.mjs";
6
- import "../../../../chunk-LLP2PTPK.mjs";
7
- import "../../../../chunk-E5QSNLSR.mjs";
8
- import "../../../../chunk-N3EAW6UO.mjs";
5
+ import "../../../../chunk-37MCHF7U.mjs";
9
6
  import "../../../../chunk-DUQFM3QS.mjs";
10
7
  import "../../../../chunk-KTWHCUYV.mjs";
8
+ import "../../../../chunk-LLP2PTPK.mjs";
9
+ import "../../../../chunk-GTE5VEBV.mjs";
10
+ import "../../../../chunk-N3EAW6UO.mjs";
11
11
  import "../../../../chunk-5HK7HRTR.mjs";
12
12
  import "../../../../chunk-HJUZTISD.mjs";
13
- import "../../../../chunk-AQ3ISJKU.mjs";
14
- import "../../../../chunk-VXYV37IM.mjs";
15
- import "../../../../chunk-2UHA3DYG.mjs";
13
+ import "../../../../chunk-5RNCFTW5.mjs";
14
+ import "../../../../chunk-SEJXJZSK.mjs";
15
+ import "../../../../chunk-C2VWADF5.mjs";
16
16
  import "../../../../chunk-RRA7GWP2.mjs";
17
17
  import "../../../../chunk-NOXFF2KJ.mjs";
18
18
  import "../../../../chunk-2SNKT7I4.mjs";
19
- import "../../../../chunk-UUKS7JYX.mjs";
20
- import "../../../../chunk-N3QOXWJI.mjs";
19
+ import "../../../../chunk-AQ3ISJKU.mjs";
20
+ import "../../../../chunk-C5FQB2UN.mjs";
21
+ import "../../../../chunk-6BWSC6ZH.mjs";
21
22
  import "../../../../chunk-V2HNFTTX.mjs";
22
- import "../../../../chunk-IAJ6G633.mjs";
23
23
  import "../../../../chunk-V3KKDSQP.mjs";
24
- import "../../../../chunk-46SKVFMZ.mjs";
25
- import "../../../../chunk-5RNCFTW5.mjs";
26
- import "../../../../chunk-SEJXJZSK.mjs";
27
- import "../../../../chunk-C2VWADF5.mjs";
24
+ import "../../../../chunk-GEPCSZCU.mjs";
28
25
  import "../../../../chunk-ZRHEFEFS.mjs";
29
26
  import "../../../../chunk-MCQGBAUS.mjs";
30
27
  import "../../../../chunk-NSU66J5E.mjs";
28
+ import "../../../../chunk-UUKS7JYX.mjs";
29
+ import "../../../../chunk-C4PCTOGM.mjs";
30
+ import "../../../../chunk-N3QOXWJI.mjs";
31
+ import "../../../../chunk-ALGSVEUS.mjs";
32
+ import "../../../../chunk-BHOCYKBI.mjs";
33
+ import "../../../../chunk-7WIZONLU.mjs";
34
+ import "../../../../chunk-IAJ6G633.mjs";
31
35
  import "../../../../chunk-WYJW5NNA.mjs";
32
36
  import "../../../../chunk-C3MURCMZ.mjs";
33
- import "../../../../chunk-C4PCTOGM.mjs";
34
37
  import "../../../../chunk-TUIN5YJW.mjs";
38
+ import "../../../../chunk-Q6XJI7Q2.mjs";
39
+ import "../../../../chunk-LOMRTWX5.mjs";
35
40
  export {
36
41
  SearchField
37
42
  };
@@ -64,6 +64,13 @@ var ClearButton = import_react.default.forwardRef(
64
64
  );
65
65
  ClearButton.displayName = "TeachInUI.ClearButton";
66
66
 
67
+ // src/ui/style/css.ts
68
+ var import_clsx = require("clsx");
69
+ var import_tailwind_merge = require("tailwind-merge");
70
+ function cn(...inputs) {
71
+ return (0, import_tailwind_merge.twMerge)((0, import_clsx.clsx)(inputs));
72
+ }
73
+
67
74
  // src/ui/inputs/select/select.tsx
68
75
  var import_react3 = __toESM(require("react"));
69
76
  var import_select = require("@heroui/select");
@@ -79,24 +86,17 @@ function useSelect({
79
86
  isClearable = true
80
87
  }) {
81
88
  const isMultiple = selectionMode === "multiple";
82
- const [internalValue, setInternalValue] = (0, import_react2.useState)(
83
- isMultiple ? [] : null
84
- );
85
- const isControlled = value !== void 0;
86
- const currentValue = isControlled ? value : internalValue;
89
+ const currentValue = value != null ? value : isMultiple ? [] : null;
87
90
  const hasValue = currentValue != null && (Array.isArray(currentValue) ? currentValue.length > 0 : currentValue !== "");
88
91
  const handleChange = (0, import_react2.useCallback)(
89
92
  (newValue) => {
90
- if (!isControlled) {
91
- setInternalValue(newValue);
92
- }
93
93
  if (isMultiple) {
94
94
  onChange == null ? void 0 : onChange(newValue);
95
95
  } else {
96
96
  onChange == null ? void 0 : onChange(newValue);
97
97
  }
98
98
  },
99
- [isControlled, onChange, isMultiple]
99
+ [onChange, isMultiple]
100
100
  );
101
101
  const handleClear = (0, import_react2.useCallback)(() => {
102
102
  onClear == null ? void 0 : onClear();
@@ -141,9 +141,11 @@ var selectWrapperVariants = (0, import_tailwind_variants.tv)({
141
141
  var Select = import_react3.default.forwardRef(
142
142
  ({
143
143
  value,
144
- defaultSelectedKeys,
145
144
  items,
145
+ children,
146
+ selectedKeys: selectedKeysProp,
146
147
  onChange,
148
+ onSelectionChange,
147
149
  selectionMode,
148
150
  onClear,
149
151
  variant,
@@ -152,6 +154,8 @@ var Select = import_react3.default.forwardRef(
152
154
  isClearable,
153
155
  ...props
154
156
  }, ref) => {
157
+ const usesExternalSelectionControl = selectedKeysProp !== void 0 || onSelectionChange !== void 0;
158
+ const selectChildren = children != null ? children : (item) => /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_select.SelectItem, { children: item.label }, item.key);
155
159
  const { selectedKeys, handleSelectionChange, handleClear, showClearButton } = useSelect({
156
160
  value,
157
161
  onChange,
@@ -165,21 +169,20 @@ var Select = import_react3.default.forwardRef(
165
169
  ref,
166
170
  classNames: {
167
171
  ...classNames,
168
- trigger: selectWrapperVariants({ variant }),
172
+ trigger: cn(selectWrapperVariants({ variant }), classNames == null ? void 0 : classNames.trigger),
169
173
  innerWrapper: "group"
170
174
  },
171
- defaultSelectedKeys,
172
175
  endContent: (endContent || showClearButton) && /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("div", { className: "flex items-center gap-1", children: [
173
176
  endContent,
174
177
  showClearButton && /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(ClearButton, { onClear: handleClear })
175
178
  ] }),
176
179
  items,
177
- selectedKeys,
180
+ selectedKeys: usesExternalSelectionControl ? selectedKeysProp : selectedKeys,
178
181
  selectionMode,
179
182
  variant,
180
- onSelectionChange: handleSelectionChange,
183
+ onSelectionChange: usesExternalSelectionControl ? onSelectionChange : handleSelectionChange,
181
184
  ...props,
182
- children: (item) => /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_select.SelectItem, { children: item.label }, item.key)
185
+ children: selectChildren
183
186
  }
184
187
  );
185
188
  }
@@ -1,37 +1,42 @@
1
1
  "use client";
2
2
  import {
3
3
  SelectField
4
- } from "../../../../chunk-CKJ5U5Q4.mjs";
5
- import "../../../../chunk-UQAG7TKJ.mjs";
6
- import "../../../../chunk-LLP2PTPK.mjs";
7
- import "../../../../chunk-E5QSNLSR.mjs";
8
- import "../../../../chunk-N3EAW6UO.mjs";
4
+ } from "../../../../chunk-DEKPRZIQ.mjs";
5
+ import "../../../../chunk-37MCHF7U.mjs";
9
6
  import "../../../../chunk-DUQFM3QS.mjs";
10
7
  import "../../../../chunk-KTWHCUYV.mjs";
8
+ import "../../../../chunk-LLP2PTPK.mjs";
9
+ import "../../../../chunk-GTE5VEBV.mjs";
10
+ import "../../../../chunk-N3EAW6UO.mjs";
11
11
  import "../../../../chunk-5HK7HRTR.mjs";
12
12
  import "../../../../chunk-HJUZTISD.mjs";
13
- import "../../../../chunk-AQ3ISJKU.mjs";
14
- import "../../../../chunk-VXYV37IM.mjs";
15
- import "../../../../chunk-2UHA3DYG.mjs";
13
+ import "../../../../chunk-5RNCFTW5.mjs";
14
+ import "../../../../chunk-SEJXJZSK.mjs";
15
+ import "../../../../chunk-C2VWADF5.mjs";
16
16
  import "../../../../chunk-RRA7GWP2.mjs";
17
17
  import "../../../../chunk-NOXFF2KJ.mjs";
18
18
  import "../../../../chunk-2SNKT7I4.mjs";
19
- import "../../../../chunk-UUKS7JYX.mjs";
20
- import "../../../../chunk-N3QOXWJI.mjs";
19
+ import "../../../../chunk-AQ3ISJKU.mjs";
20
+ import "../../../../chunk-C5FQB2UN.mjs";
21
+ import "../../../../chunk-6BWSC6ZH.mjs";
21
22
  import "../../../../chunk-V2HNFTTX.mjs";
22
- import "../../../../chunk-IAJ6G633.mjs";
23
23
  import "../../../../chunk-V3KKDSQP.mjs";
24
- import "../../../../chunk-46SKVFMZ.mjs";
25
- import "../../../../chunk-5RNCFTW5.mjs";
26
- import "../../../../chunk-SEJXJZSK.mjs";
27
- import "../../../../chunk-C2VWADF5.mjs";
24
+ import "../../../../chunk-GEPCSZCU.mjs";
28
25
  import "../../../../chunk-ZRHEFEFS.mjs";
29
26
  import "../../../../chunk-MCQGBAUS.mjs";
30
27
  import "../../../../chunk-NSU66J5E.mjs";
28
+ import "../../../../chunk-UUKS7JYX.mjs";
29
+ import "../../../../chunk-C4PCTOGM.mjs";
30
+ import "../../../../chunk-N3QOXWJI.mjs";
31
+ import "../../../../chunk-ALGSVEUS.mjs";
32
+ import "../../../../chunk-BHOCYKBI.mjs";
33
+ import "../../../../chunk-7WIZONLU.mjs";
34
+ import "../../../../chunk-IAJ6G633.mjs";
31
35
  import "../../../../chunk-WYJW5NNA.mjs";
32
36
  import "../../../../chunk-C3MURCMZ.mjs";
33
- import "../../../../chunk-C4PCTOGM.mjs";
34
37
  import "../../../../chunk-TUIN5YJW.mjs";
38
+ import "../../../../chunk-Q6XJI7Q2.mjs";
39
+ import "../../../../chunk-LOMRTWX5.mjs";
35
40
  export {
36
41
  SelectField
37
42
  };
@@ -2,36 +2,41 @@
2
2
  import {
3
3
  SwitchField
4
4
  } from "../../../../chunk-EC3NSPHR.mjs";
5
- import "../../../../chunk-UQAG7TKJ.mjs";
6
- import "../../../../chunk-LLP2PTPK.mjs";
7
- import "../../../../chunk-E5QSNLSR.mjs";
8
- import "../../../../chunk-N3EAW6UO.mjs";
5
+ import "../../../../chunk-37MCHF7U.mjs";
9
6
  import "../../../../chunk-DUQFM3QS.mjs";
10
7
  import "../../../../chunk-KTWHCUYV.mjs";
8
+ import "../../../../chunk-LLP2PTPK.mjs";
9
+ import "../../../../chunk-GTE5VEBV.mjs";
10
+ import "../../../../chunk-N3EAW6UO.mjs";
11
11
  import "../../../../chunk-5HK7HRTR.mjs";
12
12
  import "../../../../chunk-HJUZTISD.mjs";
13
- import "../../../../chunk-AQ3ISJKU.mjs";
14
- import "../../../../chunk-VXYV37IM.mjs";
15
- import "../../../../chunk-2UHA3DYG.mjs";
13
+ import "../../../../chunk-5RNCFTW5.mjs";
14
+ import "../../../../chunk-SEJXJZSK.mjs";
15
+ import "../../../../chunk-C2VWADF5.mjs";
16
16
  import "../../../../chunk-RRA7GWP2.mjs";
17
17
  import "../../../../chunk-NOXFF2KJ.mjs";
18
18
  import "../../../../chunk-2SNKT7I4.mjs";
19
- import "../../../../chunk-UUKS7JYX.mjs";
20
- import "../../../../chunk-N3QOXWJI.mjs";
19
+ import "../../../../chunk-AQ3ISJKU.mjs";
20
+ import "../../../../chunk-C5FQB2UN.mjs";
21
+ import "../../../../chunk-6BWSC6ZH.mjs";
21
22
  import "../../../../chunk-V2HNFTTX.mjs";
22
- import "../../../../chunk-IAJ6G633.mjs";
23
23
  import "../../../../chunk-V3KKDSQP.mjs";
24
- import "../../../../chunk-46SKVFMZ.mjs";
25
- import "../../../../chunk-5RNCFTW5.mjs";
26
- import "../../../../chunk-SEJXJZSK.mjs";
27
- import "../../../../chunk-C2VWADF5.mjs";
24
+ import "../../../../chunk-GEPCSZCU.mjs";
28
25
  import "../../../../chunk-ZRHEFEFS.mjs";
29
26
  import "../../../../chunk-MCQGBAUS.mjs";
30
27
  import "../../../../chunk-NSU66J5E.mjs";
28
+ import "../../../../chunk-UUKS7JYX.mjs";
29
+ import "../../../../chunk-C4PCTOGM.mjs";
30
+ import "../../../../chunk-N3QOXWJI.mjs";
31
+ import "../../../../chunk-ALGSVEUS.mjs";
32
+ import "../../../../chunk-BHOCYKBI.mjs";
33
+ import "../../../../chunk-7WIZONLU.mjs";
34
+ import "../../../../chunk-IAJ6G633.mjs";
31
35
  import "../../../../chunk-WYJW5NNA.mjs";
32
36
  import "../../../../chunk-C3MURCMZ.mjs";
33
- import "../../../../chunk-C4PCTOGM.mjs";
34
37
  import "../../../../chunk-TUIN5YJW.mjs";
38
+ import "../../../../chunk-Q6XJI7Q2.mjs";
39
+ import "../../../../chunk-LOMRTWX5.mjs";
35
40
  export {
36
41
  SwitchField
37
42
  };