@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
@@ -1,5 +1,6 @@
1
1
  "use client";
2
2
  "use strict";
3
+ "use client";
3
4
  var __create = Object.create;
4
5
  var __defProp = Object.defineProperty;
5
6
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
@@ -36,10 +37,59 @@ __export(user_exports, {
36
37
  module.exports = __toCommonJS(user_exports);
37
38
  var import_react = __toESM(require("react"));
38
39
  var import_user = require("@heroui/user");
40
+ var import_image = require("@heroui/image");
41
+ var import_tailwind_variants = require("tailwind-variants");
42
+
43
+ // src/ui/style/css.ts
44
+ var import_clsx = require("clsx");
45
+ var import_tailwind_merge = require("tailwind-merge");
46
+ function cn(...inputs) {
47
+ return (0, import_tailwind_merge.twMerge)((0, import_clsx.clsx)(inputs));
48
+ }
49
+
50
+ // src/ui/data/user/user.tsx
39
51
  var import_jsx_runtime = require("react/jsx-runtime");
40
- var User = import_react.default.forwardRef((props, ref) => {
41
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_user.User, { ref, ...props });
52
+ function getNameInitials(fullName) {
53
+ const normalizedFullName = fullName.trim();
54
+ const parts = normalizedFullName.split(" ").filter((part) => part.length > 0);
55
+ if (parts.length >= 2) {
56
+ return parts[0][0].toUpperCase() + parts[1][0].toUpperCase();
57
+ }
58
+ return normalizedFullName.slice(0, 2).toUpperCase();
59
+ }
60
+ var userVariants = (0, import_tailwind_variants.tv)({
61
+ base: "flex items-start gap-2 hyphens-auto",
62
+ variants: {
63
+ direction: {
64
+ row: "flex-row",
65
+ column: "flex-col items-center"
66
+ }
67
+ },
68
+ defaultVariants: {
69
+ direction: "row"
70
+ }
42
71
  });
72
+ var User = import_react.default.forwardRef(
73
+ ({ name, avatarProps, className, direction = "row", ...props }, ref) => {
74
+ var _a, _b;
75
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
76
+ import_user.User,
77
+ {
78
+ ref,
79
+ avatarProps: {
80
+ ...avatarProps,
81
+ className: cn("shrink-0", avatarProps == null ? void 0 : avatarProps.className),
82
+ name: (_a = avatarProps == null ? void 0 : avatarProps.name) != null ? _a : getNameInitials(name),
83
+ ImgComponent: import_image.Image,
84
+ showFallback: (_b = avatarProps == null ? void 0 : avatarProps.showFallback) != null ? _b : true
85
+ },
86
+ className: userVariants({ direction, className }),
87
+ name,
88
+ ...props
89
+ }
90
+ );
91
+ }
92
+ );
43
93
  User.displayName = "TeachInUI.User";
44
94
  // Annotate the CommonJS export names for ESM import in node:
45
95
  0 && (module.exports = {
@@ -1,7 +1,10 @@
1
1
  "use client";
2
+ "use client";
2
3
  import {
3
4
  User
4
- } from "../../../chunk-XHCXM5MU.mjs";
5
+ } from "../../../chunk-VDPROXMN.mjs";
6
+ import "../../../chunk-Q6XJI7Q2.mjs";
7
+ import "../../../chunk-LOMRTWX5.mjs";
5
8
  export {
6
9
  User
7
10
  };
@@ -1,6 +1,5 @@
1
1
  "use client";
2
2
  import "../../chunk-AR4IYKG5.mjs";
3
- import "../../chunk-K3WTHFIG.mjs";
4
3
  import "../../chunk-U4FAPNVK.mjs";
5
4
  import {
6
5
  CircularProgress
@@ -8,6 +7,10 @@ import {
8
7
  import {
9
8
  Progress
10
9
  } from "../../chunk-JTPBZJ4S.mjs";
10
+ import "../../chunk-WZDFBWUL.mjs";
11
+ import {
12
+ Spinner
13
+ } from "../../chunk-ZXCQ73RT.mjs";
11
14
  import {
12
15
  Toast,
13
16
  ToastProvider,
@@ -22,17 +25,14 @@ import "../../chunk-3BST3PYD.mjs";
22
25
  import {
23
26
  Tooltip
24
27
  } from "../../chunk-TJBXXTYS.mjs";
25
- import {
26
- Chip
27
- } from "../../chunk-EEGPGLDC.mjs";
28
28
  import "../../chunk-V77JZXH7.mjs";
29
29
  import {
30
30
  Alert
31
31
  } from "../../chunk-TIFF5WZA.mjs";
32
- import "../../chunk-WZDFBWUL.mjs";
32
+ import "../../chunk-K3WTHFIG.mjs";
33
33
  import {
34
- Spinner
35
- } from "../../chunk-ZXCQ73RT.mjs";
34
+ Chip
35
+ } from "../../chunk-EEGPGLDC.mjs";
36
36
  import "../../chunk-Q2ILWL7L.mjs";
37
37
  import "../../chunk-7BTEKEON.mjs";
38
38
  export {
@@ -234,11 +234,73 @@ Input.displayName = "TeachInUI.Input";
234
234
 
235
235
  // src/ui/inputs/email/email.tsx
236
236
  var import_jsx_runtime6 = require("react/jsx-runtime");
237
- var Email = import_react7.default.forwardRef(({ ...props }, ref) => {
238
- return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(Input, { ref, autoComplete: "email", type: "email", ...props });
239
- });
237
+ 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;
238
+ var DEFAULT_ERROR_MESSAGE = "\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0439 \u0444\u043E\u0440\u043C\u0430\u0442 email";
239
+ var defaultValidateEmail = (value) => {
240
+ if (!value) {
241
+ return;
242
+ }
243
+ return EMAIL_REGEX.test(value) ? true : DEFAULT_ERROR_MESSAGE;
244
+ };
245
+ function getValidationMessage(result) {
246
+ if (typeof result === "string") {
247
+ return result;
248
+ }
249
+ if (Array.isArray(result)) {
250
+ return result.join(" ");
251
+ }
252
+ return;
253
+ }
254
+ var Email = import_react7.default.forwardRef(
255
+ ({
256
+ defaultValue,
257
+ errorMessage,
258
+ isInvalid,
259
+ onValueChange,
260
+ validate = defaultValidateEmail,
261
+ value,
262
+ ...props
263
+ }, ref) => {
264
+ const [internalValue, setInternalValue] = import_react7.default.useState(defaultValue != null ? defaultValue : "");
265
+ const isControlled = value !== void 0;
266
+ const currentValue = isControlled ? value : internalValue;
267
+ const handleValueChange = import_react7.default.useCallback(
268
+ (nextValue) => {
269
+ if (!isControlled) {
270
+ setInternalValue(nextValue);
271
+ }
272
+ onValueChange == null ? void 0 : onValueChange(nextValue);
273
+ },
274
+ [isControlled, onValueChange]
275
+ );
276
+ const validationMessage = getValidationMessage(validate(currentValue != null ? currentValue : ""));
277
+ const resolvedErrorMessage = errorMessage != null ? errorMessage : validationMessage;
278
+ const resolvedIsInvalid = isInvalid != null ? isInvalid : Boolean(validationMessage);
279
+ return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
280
+ Input,
281
+ {
282
+ ref,
283
+ autoComplete: "email",
284
+ errorMessage: resolvedErrorMessage,
285
+ isInvalid: resolvedIsInvalid,
286
+ type: "email",
287
+ validate,
288
+ value: currentValue,
289
+ onValueChange: handleValueChange,
290
+ ...props
291
+ }
292
+ );
293
+ }
294
+ );
240
295
  Email.displayName = "TeachInUI.Email";
241
296
 
297
+ // src/ui/style/css.ts
298
+ var import_clsx = require("clsx");
299
+ var import_tailwind_merge = require("tailwind-merge");
300
+ function cn(...inputs) {
301
+ return (0, import_tailwind_merge.twMerge)((0, import_clsx.clsx)(inputs));
302
+ }
303
+
242
304
  // src/ui/inputs/search/search.tsx
243
305
  var import_react9 = __toESM(require("react"));
244
306
  var import_lucide_react2 = require("lucide-react");
@@ -338,24 +400,17 @@ function useSelect({
338
400
  isClearable = true
339
401
  }) {
340
402
  const isMultiple = selectionMode === "multiple";
341
- const [internalValue, setInternalValue] = (0, import_react10.useState)(
342
- isMultiple ? [] : null
343
- );
344
- const isControlled = value !== void 0;
345
- const currentValue = isControlled ? value : internalValue;
403
+ const currentValue = value != null ? value : isMultiple ? [] : null;
346
404
  const hasValue = currentValue != null && (Array.isArray(currentValue) ? currentValue.length > 0 : currentValue !== "");
347
405
  const handleChange = (0, import_react10.useCallback)(
348
406
  (newValue) => {
349
- if (!isControlled) {
350
- setInternalValue(newValue);
351
- }
352
407
  if (isMultiple) {
353
408
  onChange == null ? void 0 : onChange(newValue);
354
409
  } else {
355
410
  onChange == null ? void 0 : onChange(newValue);
356
411
  }
357
412
  },
358
- [isControlled, onChange, isMultiple]
413
+ [onChange, isMultiple]
359
414
  );
360
415
  const handleClear = (0, import_react10.useCallback)(() => {
361
416
  onClear == null ? void 0 : onClear();
@@ -400,9 +455,11 @@ var selectWrapperVariants = (0, import_tailwind_variants3.tv)({
400
455
  var Select = import_react11.default.forwardRef(
401
456
  ({
402
457
  value,
403
- defaultSelectedKeys,
404
458
  items,
459
+ children,
460
+ selectedKeys: selectedKeysProp,
405
461
  onChange,
462
+ onSelectionChange,
406
463
  selectionMode,
407
464
  onClear,
408
465
  variant,
@@ -411,6 +468,8 @@ var Select = import_react11.default.forwardRef(
411
468
  isClearable,
412
469
  ...props
413
470
  }, ref) => {
471
+ const usesExternalSelectionControl = selectedKeysProp !== void 0 || onSelectionChange !== void 0;
472
+ const selectChildren = children != null ? children : (item) => /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_select.SelectItem, { children: item.label }, item.key);
414
473
  const { selectedKeys, handleSelectionChange, handleClear, showClearButton } = useSelect({
415
474
  value,
416
475
  onChange,
@@ -424,21 +483,20 @@ var Select = import_react11.default.forwardRef(
424
483
  ref,
425
484
  classNames: {
426
485
  ...classNames,
427
- trigger: selectWrapperVariants({ variant }),
486
+ trigger: cn(selectWrapperVariants({ variant }), classNames == null ? void 0 : classNames.trigger),
428
487
  innerWrapper: "group"
429
488
  },
430
- defaultSelectedKeys,
431
489
  endContent: (endContent || showClearButton) && /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("div", { className: "flex items-center gap-1", children: [
432
490
  endContent,
433
491
  showClearButton && /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(ClearButton, { onClear: handleClear })
434
492
  ] }),
435
493
  items,
436
- selectedKeys,
494
+ selectedKeys: usesExternalSelectionControl ? selectedKeysProp : selectedKeys,
437
495
  selectionMode,
438
496
  variant,
439
- onSelectionChange: handleSelectionChange,
497
+ onSelectionChange: usesExternalSelectionControl ? onSelectionChange : handleSelectionChange,
440
498
  ...props,
441
- children: (item) => /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_select.SelectItem, { children: item.label }, item.key)
499
+ children: selectChildren
442
500
  }
443
501
  );
444
502
  }
@@ -13,7 +13,7 @@ import {
13
13
  } from "../../chunk-CUEG2BFV.mjs";
14
14
  import {
15
15
  SelectField
16
- } from "../../chunk-CKJ5U5Q4.mjs";
16
+ } from "../../chunk-DEKPRZIQ.mjs";
17
17
  import {
18
18
  SwitchField
19
19
  } from "../../chunk-EC3NSPHR.mjs";
@@ -34,40 +34,45 @@ import {
34
34
  } from "../../chunk-7GHK5XYK.mjs";
35
35
  import {
36
36
  EmailField
37
- } from "../../chunk-R46SWVWL.mjs";
38
- import "../../chunk-UQAG7TKJ.mjs";
39
- import "../../chunk-LLP2PTPK.mjs";
40
- import "../../chunk-E5QSNLSR.mjs";
41
- import "../../chunk-N3EAW6UO.mjs";
37
+ } from "../../chunk-ZK6VZMUJ.mjs";
38
+ import {
39
+ Form
40
+ } from "../../chunk-A3AAC7PF.mjs";
41
+ import "../../chunk-37MCHF7U.mjs";
42
42
  import "../../chunk-DUQFM3QS.mjs";
43
43
  import "../../chunk-KTWHCUYV.mjs";
44
+ import "../../chunk-LLP2PTPK.mjs";
45
+ import "../../chunk-GTE5VEBV.mjs";
46
+ import "../../chunk-N3EAW6UO.mjs";
44
47
  import "../../chunk-5HK7HRTR.mjs";
45
48
  import "../../chunk-HJUZTISD.mjs";
46
- import "../../chunk-AQ3ISJKU.mjs";
47
- import "../../chunk-VXYV37IM.mjs";
48
- import "../../chunk-2UHA3DYG.mjs";
49
+ import "../../chunk-5RNCFTW5.mjs";
50
+ import "../../chunk-SEJXJZSK.mjs";
51
+ import "../../chunk-C2VWADF5.mjs";
49
52
  import "../../chunk-RRA7GWP2.mjs";
50
53
  import "../../chunk-NOXFF2KJ.mjs";
51
54
  import "../../chunk-2SNKT7I4.mjs";
52
- import "../../chunk-UUKS7JYX.mjs";
53
- import "../../chunk-N3QOXWJI.mjs";
55
+ import "../../chunk-AQ3ISJKU.mjs";
56
+ import "../../chunk-C5FQB2UN.mjs";
57
+ import "../../chunk-6BWSC6ZH.mjs";
54
58
  import "../../chunk-V2HNFTTX.mjs";
55
- import "../../chunk-IAJ6G633.mjs";
56
59
  import "../../chunk-V3KKDSQP.mjs";
57
- import "../../chunk-46SKVFMZ.mjs";
58
- import "../../chunk-5RNCFTW5.mjs";
59
- import "../../chunk-SEJXJZSK.mjs";
60
- import "../../chunk-C2VWADF5.mjs";
60
+ import "../../chunk-GEPCSZCU.mjs";
61
61
  import "../../chunk-ZRHEFEFS.mjs";
62
62
  import "../../chunk-MCQGBAUS.mjs";
63
63
  import "../../chunk-NSU66J5E.mjs";
64
+ import "../../chunk-UUKS7JYX.mjs";
65
+ import "../../chunk-C4PCTOGM.mjs";
66
+ import "../../chunk-N3QOXWJI.mjs";
67
+ import "../../chunk-ALGSVEUS.mjs";
68
+ import "../../chunk-BHOCYKBI.mjs";
69
+ import "../../chunk-7WIZONLU.mjs";
70
+ import "../../chunk-IAJ6G633.mjs";
64
71
  import "../../chunk-WYJW5NNA.mjs";
65
72
  import "../../chunk-C3MURCMZ.mjs";
66
- import "../../chunk-C4PCTOGM.mjs";
67
73
  import "../../chunk-TUIN5YJW.mjs";
68
- import {
69
- Form
70
- } from "../../chunk-A3AAC7PF.mjs";
74
+ import "../../chunk-Q6XJI7Q2.mjs";
75
+ import "../../chunk-LOMRTWX5.mjs";
71
76
  export {
72
77
  AutocompleteField,
73
78
  CheckboxField,
@@ -2,36 +2,41 @@
2
2
  import {
3
3
  AutocompleteField
4
4
  } from "../../../../chunk-S3ET5HKP.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
  AutocompleteField
37
42
  };
@@ -2,36 +2,41 @@
2
2
  import {
3
3
  CheckboxField
4
4
  } from "../../../../chunk-MCZBJUTN.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
  CheckboxField
37
42
  };
@@ -2,36 +2,41 @@
2
2
  import {
3
3
  DatePickerField
4
4
  } from "../../../../chunk-7GHK5XYK.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
  DatePickerField
37
42
  };
@@ -187,9 +187,64 @@ Input.displayName = "TeachInUI.Input";
187
187
 
188
188
  // src/ui/inputs/email/email.tsx
189
189
  var import_jsx_runtime3 = require("react/jsx-runtime");
190
- var Email = import_react4.default.forwardRef(({ ...props }, ref) => {
191
- return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(Input, { ref, autoComplete: "email", type: "email", ...props });
192
- });
190
+ 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;
191
+ var DEFAULT_ERROR_MESSAGE = "\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0439 \u0444\u043E\u0440\u043C\u0430\u0442 email";
192
+ var defaultValidateEmail = (value) => {
193
+ if (!value) {
194
+ return;
195
+ }
196
+ return EMAIL_REGEX.test(value) ? true : DEFAULT_ERROR_MESSAGE;
197
+ };
198
+ function getValidationMessage(result) {
199
+ if (typeof result === "string") {
200
+ return result;
201
+ }
202
+ if (Array.isArray(result)) {
203
+ return result.join(" ");
204
+ }
205
+ return;
206
+ }
207
+ var Email = import_react4.default.forwardRef(
208
+ ({
209
+ defaultValue,
210
+ errorMessage,
211
+ isInvalid,
212
+ onValueChange,
213
+ validate = defaultValidateEmail,
214
+ value,
215
+ ...props
216
+ }, ref) => {
217
+ const [internalValue, setInternalValue] = import_react4.default.useState(defaultValue != null ? defaultValue : "");
218
+ const isControlled = value !== void 0;
219
+ const currentValue = isControlled ? value : internalValue;
220
+ const handleValueChange = import_react4.default.useCallback(
221
+ (nextValue) => {
222
+ if (!isControlled) {
223
+ setInternalValue(nextValue);
224
+ }
225
+ onValueChange == null ? void 0 : onValueChange(nextValue);
226
+ },
227
+ [isControlled, onValueChange]
228
+ );
229
+ const validationMessage = getValidationMessage(validate(currentValue != null ? currentValue : ""));
230
+ const resolvedErrorMessage = errorMessage != null ? errorMessage : validationMessage;
231
+ const resolvedIsInvalid = isInvalid != null ? isInvalid : Boolean(validationMessage);
232
+ return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
233
+ Input,
234
+ {
235
+ ref,
236
+ autoComplete: "email",
237
+ errorMessage: resolvedErrorMessage,
238
+ isInvalid: resolvedIsInvalid,
239
+ type: "email",
240
+ validate,
241
+ value: currentValue,
242
+ onValueChange: handleValueChange,
243
+ ...props
244
+ }
245
+ );
246
+ }
247
+ );
193
248
  Email.displayName = "TeachInUI.Email";
194
249
 
195
250
  // src/ui/form/rhf/fields/email-field.tsx
@@ -1,37 +1,42 @@
1
1
  "use client";
2
2
  import {
3
3
  EmailField
4
- } from "../../../../chunk-R46SWVWL.mjs";
5
- import "../../../../chunk-UQAG7TKJ.mjs";
6
- import "../../../../chunk-LLP2PTPK.mjs";
7
- import "../../../../chunk-E5QSNLSR.mjs";
8
- import "../../../../chunk-N3EAW6UO.mjs";
4
+ } from "../../../../chunk-ZK6VZMUJ.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
  EmailField
37
42
  };