@teach-in/react 1.5.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 (92) 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-VDPROXMN.mjs +57 -0
  9. package/dist/{chunk-R46SWVWL.mjs → chunk-ZK6VZMUJ.mjs} +1 -1
  10. package/dist/index.js +487 -248
  11. package/dist/index.mjs +189 -181
  12. package/dist/ui/data/index.js +56 -7
  13. package/dist/ui/data/index.mjs +10 -8
  14. package/dist/ui/data/user/index.js +51 -2
  15. package/dist/ui/data/user/index.mjs +3 -1
  16. package/dist/ui/data/user/user.d.ts +24 -2
  17. package/dist/ui/data/user/user.js +52 -2
  18. package/dist/ui/data/user/user.mjs +4 -1
  19. package/dist/ui/feedback/index.mjs +12 -12
  20. package/dist/ui/feedback/progress/index.mjs +3 -3
  21. package/dist/ui/form/index.js +76 -18
  22. package/dist/ui/form/index.mjs +24 -19
  23. package/dist/ui/form/rhf/fields/autocomplete-field.mjs +19 -14
  24. package/dist/ui/form/rhf/fields/checkbox-field.mjs +19 -14
  25. package/dist/ui/form/rhf/fields/date-picker-field.mjs +19 -14
  26. package/dist/ui/form/rhf/fields/email-field.js +58 -3
  27. package/dist/ui/form/rhf/fields/email-field.mjs +20 -15
  28. package/dist/ui/form/rhf/fields/index.js +76 -18
  29. package/dist/ui/form/rhf/fields/index.mjs +21 -16
  30. package/dist/ui/form/rhf/fields/input-field.mjs +19 -14
  31. package/dist/ui/form/rhf/fields/radio-field.mjs +19 -14
  32. package/dist/ui/form/rhf/fields/search-field.mjs +19 -14
  33. package/dist/ui/form/rhf/fields/select-field.js +18 -15
  34. package/dist/ui/form/rhf/fields/select-field.mjs +20 -15
  35. package/dist/ui/form/rhf/fields/switch-field.mjs +19 -14
  36. package/dist/ui/form/rhf/fields/text-field.mjs +19 -14
  37. package/dist/ui/form/rhf/fields/textarea-field.mjs +19 -14
  38. package/dist/ui/form/rhf/index.js +76 -18
  39. package/dist/ui/form/rhf/index.mjs +21 -16
  40. package/dist/ui/format/index.mjs +6 -6
  41. package/dist/ui/index.js +487 -248
  42. package/dist/ui/index.mjs +189 -181
  43. package/dist/ui/inputs/checkbox/index.mjs +3 -3
  44. package/dist/ui/inputs/email/email.js +58 -3
  45. package/dist/ui/inputs/email/email.mjs +1 -1
  46. package/dist/ui/inputs/email/index.js +58 -3
  47. package/dist/ui/inputs/email/index.mjs +1 -1
  48. package/dist/ui/inputs/index.d.ts +1 -0
  49. package/dist/ui/inputs/index.js +273 -67
  50. package/dist/ui/inputs/index.mjs +36 -26
  51. package/dist/ui/inputs/number/index.d.ts +1 -0
  52. package/dist/ui/inputs/number/index.js +218 -0
  53. package/dist/ui/inputs/number/index.mjs +12 -0
  54. package/dist/ui/inputs/number/number.d.ts +12 -0
  55. package/dist/ui/inputs/number/number.js +219 -0
  56. package/dist/ui/inputs/number/number.mjs +13 -0
  57. package/dist/ui/inputs/number/use-number.d.ts +20 -0
  58. package/dist/ui/inputs/number/use-number.js +104 -0
  59. package/dist/ui/inputs/number/use-number.mjs +7 -0
  60. package/dist/ui/inputs/radio/index.mjs +3 -3
  61. package/dist/ui/inputs/select/index.d.ts +1 -1
  62. package/dist/ui/inputs/select/index.js +23 -17
  63. package/dist/ui/inputs/select/index.mjs +8 -4
  64. package/dist/ui/inputs/select/select.d.ts +11 -22
  65. package/dist/ui/inputs/select/select.js +23 -17
  66. package/dist/ui/inputs/select/select.mjs +8 -4
  67. package/dist/ui/inputs/select/use-select.d.ts +0 -1
  68. package/dist/ui/inputs/select/use-select.js +2 -9
  69. package/dist/ui/inputs/select/use-select.mjs +1 -1
  70. package/dist/ui/inputs/switch/index.mjs +3 -3
  71. package/dist/ui/layout/container/container.mjs +88 -85
  72. package/dist/ui/layout/container/index.mjs +88 -85
  73. package/dist/ui/layout/index.js +7 -7
  74. package/dist/ui/layout/index.mjs +95 -92
  75. package/dist/ui/layout/page/index.mjs +6 -6
  76. package/dist/ui/layout/page/page-loading.mjs +5 -5
  77. package/dist/ui/layout/page/section-loading.mjs +5 -5
  78. package/dist/ui/navigation/index.mjs +5 -5
  79. package/dist/ui/overlays/index.mjs +4 -4
  80. package/dist/ui/provider/index.mjs +5 -5
  81. package/dist/ui/provider/ui-provider.mjs +5 -5
  82. package/dist/ui/surface/index.mjs +1 -1
  83. package/dist/ui/theme/colors/index.mjs +1 -1
  84. package/dist/ui/theme/colors.mjs +1 -1
  85. package/dist/ui/theme/index.mjs +1 -1
  86. package/dist/ui/theme/theme.d.ts +2 -1
  87. package/dist/ui/theme/theme.mjs +1 -1
  88. package/package.json +13 -9
  89. package/LICENSE +0 -21
  90. package/dist/chunk-46SKVFMZ.mjs +0 -16
  91. package/dist/chunk-XHCXM5MU.mjs +0 -14
  92. /package/dist/{chunk-UQAG7TKJ.mjs → chunk-37MCHF7U.mjs} +0 -0
@@ -1,37 +1,42 @@
1
1
  "use client";
2
2
  import {
3
3
  EmailField
4
- } from "../../../../chunk-R46SWVWL.mjs";
5
- import "../../../../chunk-UQAG7TKJ.mjs";
4
+ } from "../../../../chunk-ZK6VZMUJ.mjs";
5
+ import "../../../../chunk-37MCHF7U.mjs";
6
6
  import "../../../../chunk-DUQFM3QS.mjs";
7
7
  import "../../../../chunk-KTWHCUYV.mjs";
8
- import "../../../../chunk-5HK7HRTR.mjs";
9
- import "../../../../chunk-HJUZTISD.mjs";
10
8
  import "../../../../chunk-LLP2PTPK.mjs";
11
- import "../../../../chunk-N3EAW6UO.mjs";
12
9
  import "../../../../chunk-GTE5VEBV.mjs";
10
+ import "../../../../chunk-N3EAW6UO.mjs";
11
+ import "../../../../chunk-5HK7HRTR.mjs";
12
+ import "../../../../chunk-HJUZTISD.mjs";
13
13
  import "../../../../chunk-5RNCFTW5.mjs";
14
14
  import "../../../../chunk-SEJXJZSK.mjs";
15
15
  import "../../../../chunk-C2VWADF5.mjs";
16
+ import "../../../../chunk-RRA7GWP2.mjs";
17
+ import "../../../../chunk-NOXFF2KJ.mjs";
18
+ import "../../../../chunk-2SNKT7I4.mjs";
16
19
  import "../../../../chunk-AQ3ISJKU.mjs";
17
- import "../../../../chunk-VXYV37IM.mjs";
18
- import "../../../../chunk-2UHA3DYG.mjs";
19
- import "../../../../chunk-UUKS7JYX.mjs";
20
- import "../../../../chunk-N3QOXWJI.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";
24
+ import "../../../../chunk-GEPCSZCU.mjs";
25
25
  import "../../../../chunk-ZRHEFEFS.mjs";
26
26
  import "../../../../chunk-MCQGBAUS.mjs";
27
27
  import "../../../../chunk-NSU66J5E.mjs";
28
- import "../../../../chunk-RRA7GWP2.mjs";
29
- import "../../../../chunk-2SNKT7I4.mjs";
30
- import "../../../../chunk-NOXFF2KJ.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
  EmailField
37
42
  };
@@ -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";
35
+ } from "../../../../chunk-ZK6VZMUJ.mjs";
36
+ import "../../../../chunk-37MCHF7U.mjs";
37
37
  import "../../../../chunk-DUQFM3QS.mjs";
38
38
  import "../../../../chunk-KTWHCUYV.mjs";
39
- import "../../../../chunk-5HK7HRTR.mjs";
40
- import "../../../../chunk-HJUZTISD.mjs";
41
39
  import "../../../../chunk-LLP2PTPK.mjs";
42
- import "../../../../chunk-N3EAW6UO.mjs";
43
40
  import "../../../../chunk-GTE5VEBV.mjs";
41
+ import "../../../../chunk-N3EAW6UO.mjs";
42
+ import "../../../../chunk-5HK7HRTR.mjs";
43
+ import "../../../../chunk-HJUZTISD.mjs";
44
44
  import "../../../../chunk-5RNCFTW5.mjs";
45
45
  import "../../../../chunk-SEJXJZSK.mjs";
46
46
  import "../../../../chunk-C2VWADF5.mjs";
47
+ import "../../../../chunk-RRA7GWP2.mjs";
48
+ import "../../../../chunk-NOXFF2KJ.mjs";
49
+ import "../../../../chunk-2SNKT7I4.mjs";
47
50
  import "../../../../chunk-AQ3ISJKU.mjs";
48
- import "../../../../chunk-VXYV37IM.mjs";
49
- import "../../../../chunk-2UHA3DYG.mjs";
50
- import "../../../../chunk-UUKS7JYX.mjs";
51
- import "../../../../chunk-N3QOXWJI.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";
55
+ import "../../../../chunk-GEPCSZCU.mjs";
56
56
  import "../../../../chunk-ZRHEFEFS.mjs";
57
57
  import "../../../../chunk-MCQGBAUS.mjs";
58
58
  import "../../../../chunk-NSU66J5E.mjs";
59
- import "../../../../chunk-RRA7GWP2.mjs";
60
- import "../../../../chunk-2SNKT7I4.mjs";
61
- import "../../../../chunk-NOXFF2KJ.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";
5
+ import "../../../../chunk-37MCHF7U.mjs";
6
6
  import "../../../../chunk-DUQFM3QS.mjs";
7
7
  import "../../../../chunk-KTWHCUYV.mjs";
8
- import "../../../../chunk-5HK7HRTR.mjs";
9
- import "../../../../chunk-HJUZTISD.mjs";
10
8
  import "../../../../chunk-LLP2PTPK.mjs";
11
- import "../../../../chunk-N3EAW6UO.mjs";
12
9
  import "../../../../chunk-GTE5VEBV.mjs";
10
+ import "../../../../chunk-N3EAW6UO.mjs";
11
+ import "../../../../chunk-5HK7HRTR.mjs";
12
+ import "../../../../chunk-HJUZTISD.mjs";
13
13
  import "../../../../chunk-5RNCFTW5.mjs";
14
14
  import "../../../../chunk-SEJXJZSK.mjs";
15
15
  import "../../../../chunk-C2VWADF5.mjs";
16
+ import "../../../../chunk-RRA7GWP2.mjs";
17
+ import "../../../../chunk-NOXFF2KJ.mjs";
18
+ import "../../../../chunk-2SNKT7I4.mjs";
16
19
  import "../../../../chunk-AQ3ISJKU.mjs";
17
- import "../../../../chunk-VXYV37IM.mjs";
18
- import "../../../../chunk-2UHA3DYG.mjs";
19
- import "../../../../chunk-UUKS7JYX.mjs";
20
- import "../../../../chunk-N3QOXWJI.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";
24
+ import "../../../../chunk-GEPCSZCU.mjs";
25
25
  import "../../../../chunk-ZRHEFEFS.mjs";
26
26
  import "../../../../chunk-MCQGBAUS.mjs";
27
27
  import "../../../../chunk-NSU66J5E.mjs";
28
- import "../../../../chunk-RRA7GWP2.mjs";
29
- import "../../../../chunk-2SNKT7I4.mjs";
30
- import "../../../../chunk-NOXFF2KJ.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";
5
+ import "../../../../chunk-37MCHF7U.mjs";
6
6
  import "../../../../chunk-DUQFM3QS.mjs";
7
7
  import "../../../../chunk-KTWHCUYV.mjs";
8
- import "../../../../chunk-5HK7HRTR.mjs";
9
- import "../../../../chunk-HJUZTISD.mjs";
10
8
  import "../../../../chunk-LLP2PTPK.mjs";
11
- import "../../../../chunk-N3EAW6UO.mjs";
12
9
  import "../../../../chunk-GTE5VEBV.mjs";
10
+ import "../../../../chunk-N3EAW6UO.mjs";
11
+ import "../../../../chunk-5HK7HRTR.mjs";
12
+ import "../../../../chunk-HJUZTISD.mjs";
13
13
  import "../../../../chunk-5RNCFTW5.mjs";
14
14
  import "../../../../chunk-SEJXJZSK.mjs";
15
15
  import "../../../../chunk-C2VWADF5.mjs";
16
+ import "../../../../chunk-RRA7GWP2.mjs";
17
+ import "../../../../chunk-NOXFF2KJ.mjs";
18
+ import "../../../../chunk-2SNKT7I4.mjs";
16
19
  import "../../../../chunk-AQ3ISJKU.mjs";
17
- import "../../../../chunk-VXYV37IM.mjs";
18
- import "../../../../chunk-2UHA3DYG.mjs";
19
- import "../../../../chunk-UUKS7JYX.mjs";
20
- import "../../../../chunk-N3QOXWJI.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";
24
+ import "../../../../chunk-GEPCSZCU.mjs";
25
25
  import "../../../../chunk-ZRHEFEFS.mjs";
26
26
  import "../../../../chunk-MCQGBAUS.mjs";
27
27
  import "../../../../chunk-NSU66J5E.mjs";
28
- import "../../../../chunk-RRA7GWP2.mjs";
29
- import "../../../../chunk-2SNKT7I4.mjs";
30
- import "../../../../chunk-NOXFF2KJ.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";
5
+ import "../../../../chunk-37MCHF7U.mjs";
6
6
  import "../../../../chunk-DUQFM3QS.mjs";
7
7
  import "../../../../chunk-KTWHCUYV.mjs";
8
- import "../../../../chunk-5HK7HRTR.mjs";
9
- import "../../../../chunk-HJUZTISD.mjs";
10
8
  import "../../../../chunk-LLP2PTPK.mjs";
11
- import "../../../../chunk-N3EAW6UO.mjs";
12
9
  import "../../../../chunk-GTE5VEBV.mjs";
10
+ import "../../../../chunk-N3EAW6UO.mjs";
11
+ import "../../../../chunk-5HK7HRTR.mjs";
12
+ import "../../../../chunk-HJUZTISD.mjs";
13
13
  import "../../../../chunk-5RNCFTW5.mjs";
14
14
  import "../../../../chunk-SEJXJZSK.mjs";
15
15
  import "../../../../chunk-C2VWADF5.mjs";
16
+ import "../../../../chunk-RRA7GWP2.mjs";
17
+ import "../../../../chunk-NOXFF2KJ.mjs";
18
+ import "../../../../chunk-2SNKT7I4.mjs";
16
19
  import "../../../../chunk-AQ3ISJKU.mjs";
17
- import "../../../../chunk-VXYV37IM.mjs";
18
- import "../../../../chunk-2UHA3DYG.mjs";
19
- import "../../../../chunk-UUKS7JYX.mjs";
20
- import "../../../../chunk-N3QOXWJI.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";
24
+ import "../../../../chunk-GEPCSZCU.mjs";
25
25
  import "../../../../chunk-ZRHEFEFS.mjs";
26
26
  import "../../../../chunk-MCQGBAUS.mjs";
27
27
  import "../../../../chunk-NSU66J5E.mjs";
28
- import "../../../../chunk-RRA7GWP2.mjs";
29
- import "../../../../chunk-2SNKT7I4.mjs";
30
- import "../../../../chunk-NOXFF2KJ.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";
4
+ } from "../../../../chunk-DEKPRZIQ.mjs";
5
+ import "../../../../chunk-37MCHF7U.mjs";
6
6
  import "../../../../chunk-DUQFM3QS.mjs";
7
7
  import "../../../../chunk-KTWHCUYV.mjs";
8
- import "../../../../chunk-5HK7HRTR.mjs";
9
- import "../../../../chunk-HJUZTISD.mjs";
10
8
  import "../../../../chunk-LLP2PTPK.mjs";
11
- import "../../../../chunk-N3EAW6UO.mjs";
12
9
  import "../../../../chunk-GTE5VEBV.mjs";
10
+ import "../../../../chunk-N3EAW6UO.mjs";
11
+ import "../../../../chunk-5HK7HRTR.mjs";
12
+ import "../../../../chunk-HJUZTISD.mjs";
13
13
  import "../../../../chunk-5RNCFTW5.mjs";
14
14
  import "../../../../chunk-SEJXJZSK.mjs";
15
15
  import "../../../../chunk-C2VWADF5.mjs";
16
+ import "../../../../chunk-RRA7GWP2.mjs";
17
+ import "../../../../chunk-NOXFF2KJ.mjs";
18
+ import "../../../../chunk-2SNKT7I4.mjs";
16
19
  import "../../../../chunk-AQ3ISJKU.mjs";
17
- import "../../../../chunk-VXYV37IM.mjs";
18
- import "../../../../chunk-2UHA3DYG.mjs";
19
- import "../../../../chunk-UUKS7JYX.mjs";
20
- import "../../../../chunk-N3QOXWJI.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";
24
+ import "../../../../chunk-GEPCSZCU.mjs";
25
25
  import "../../../../chunk-ZRHEFEFS.mjs";
26
26
  import "../../../../chunk-MCQGBAUS.mjs";
27
27
  import "../../../../chunk-NSU66J5E.mjs";
28
- import "../../../../chunk-RRA7GWP2.mjs";
29
- import "../../../../chunk-2SNKT7I4.mjs";
30
- import "../../../../chunk-NOXFF2KJ.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";
5
+ import "../../../../chunk-37MCHF7U.mjs";
6
6
  import "../../../../chunk-DUQFM3QS.mjs";
7
7
  import "../../../../chunk-KTWHCUYV.mjs";
8
- import "../../../../chunk-5HK7HRTR.mjs";
9
- import "../../../../chunk-HJUZTISD.mjs";
10
8
  import "../../../../chunk-LLP2PTPK.mjs";
11
- import "../../../../chunk-N3EAW6UO.mjs";
12
9
  import "../../../../chunk-GTE5VEBV.mjs";
10
+ import "../../../../chunk-N3EAW6UO.mjs";
11
+ import "../../../../chunk-5HK7HRTR.mjs";
12
+ import "../../../../chunk-HJUZTISD.mjs";
13
13
  import "../../../../chunk-5RNCFTW5.mjs";
14
14
  import "../../../../chunk-SEJXJZSK.mjs";
15
15
  import "../../../../chunk-C2VWADF5.mjs";
16
+ import "../../../../chunk-RRA7GWP2.mjs";
17
+ import "../../../../chunk-NOXFF2KJ.mjs";
18
+ import "../../../../chunk-2SNKT7I4.mjs";
16
19
  import "../../../../chunk-AQ3ISJKU.mjs";
17
- import "../../../../chunk-VXYV37IM.mjs";
18
- import "../../../../chunk-2UHA3DYG.mjs";
19
- import "../../../../chunk-UUKS7JYX.mjs";
20
- import "../../../../chunk-N3QOXWJI.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";
24
+ import "../../../../chunk-GEPCSZCU.mjs";
25
25
  import "../../../../chunk-ZRHEFEFS.mjs";
26
26
  import "../../../../chunk-MCQGBAUS.mjs";
27
27
  import "../../../../chunk-NSU66J5E.mjs";
28
- import "../../../../chunk-RRA7GWP2.mjs";
29
- import "../../../../chunk-2SNKT7I4.mjs";
30
- import "../../../../chunk-NOXFF2KJ.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
  };