@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
package/dist/index.js CHANGED
@@ -64,19 +64,19 @@ __export(index_exports, {
64
64
  FavoriteSwitch: () => FavoriteSwitch,
65
65
  Flex: () => Flex,
66
66
  Form: () => Form,
67
- FormatBoolean: () => Boolean,
67
+ FormatBoolean: () => Boolean2,
68
68
  FormatCurrency: () => Currency,
69
69
  FormatDate: () => DateFormat,
70
70
  FormatDatetime: () => Datetime,
71
71
  FormatDuration: () => Duration,
72
- FormatNumber: () => Number2,
72
+ FormatNumber: () => Number3,
73
73
  FormatPercent: () => Percent,
74
74
  FormatPlural: () => Plural,
75
75
  FormatTime: () => Time,
76
76
  FormatUUID: () => Uuid,
77
77
  Grid: () => Grid,
78
78
  Header: () => Header2,
79
- Image: () => Image,
79
+ Image: () => Image2,
80
80
  Input: () => Input,
81
81
  InputField: () => InputField,
82
82
  Link: () => Link,
@@ -88,6 +88,7 @@ __export(index_exports, {
88
88
  NavbarMenu: () => NavbarMenu,
89
89
  NavbarMenuItem: () => NavbarMenuItem,
90
90
  NavbarMenuToggle: () => NavbarMenuToggle,
91
+ Number: () => Number2,
91
92
  PageContent: () => PageContent,
92
93
  PageLoading: () => PageLoading,
93
94
  Pagination: () => Pagination,
@@ -107,6 +108,7 @@ __export(index_exports, {
107
108
  SectionTitle: () => SectionTitle,
108
109
  Select: () => Select,
109
110
  SelectField: () => SelectField,
111
+ SelectItem: () => SelectItem,
110
112
  Spinner: () => Spinner,
111
113
  Switch: () => Switch,
112
114
  SwitchField: () => SwitchField,
@@ -202,20 +204,69 @@ var getKeyValue = import_table.getKeyValue;
202
204
  // src/ui/data/user/user.tsx
203
205
  var import_react4 = __toESM(require("react"));
204
206
  var import_user = require("@heroui/user");
207
+ var import_image = require("@heroui/image");
208
+ var import_tailwind_variants = require("tailwind-variants");
209
+
210
+ // src/ui/style/css.ts
211
+ var import_clsx = require("clsx");
212
+ var import_tailwind_merge = require("tailwind-merge");
213
+ function cn(...inputs) {
214
+ return (0, import_tailwind_merge.twMerge)((0, import_clsx.clsx)(inputs));
215
+ }
216
+
217
+ // src/ui/data/user/user.tsx
205
218
  var import_jsx_runtime4 = require("react/jsx-runtime");
206
- var User = import_react4.default.forwardRef((props, ref) => {
207
- return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_user.User, { ref, ...props });
219
+ function getNameInitials(fullName) {
220
+ const normalizedFullName = fullName.trim();
221
+ const parts = normalizedFullName.split(" ").filter((part) => part.length > 0);
222
+ if (parts.length >= 2) {
223
+ return parts[0][0].toUpperCase() + parts[1][0].toUpperCase();
224
+ }
225
+ return normalizedFullName.slice(0, 2).toUpperCase();
226
+ }
227
+ var userVariants = (0, import_tailwind_variants.tv)({
228
+ base: "flex items-start gap-2 hyphens-auto",
229
+ variants: {
230
+ direction: {
231
+ row: "flex-row",
232
+ column: "flex-col items-center"
233
+ }
234
+ },
235
+ defaultVariants: {
236
+ direction: "row"
237
+ }
208
238
  });
239
+ var User = import_react4.default.forwardRef(
240
+ ({ name, avatarProps, className, direction = "row", ...props }, ref) => {
241
+ var _a, _b;
242
+ return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
243
+ import_user.User,
244
+ {
245
+ ref,
246
+ avatarProps: {
247
+ ...avatarProps,
248
+ className: cn("shrink-0", avatarProps == null ? void 0 : avatarProps.className),
249
+ name: (_a = avatarProps == null ? void 0 : avatarProps.name) != null ? _a : getNameInitials(name),
250
+ ImgComponent: import_image.Image,
251
+ showFallback: (_b = avatarProps == null ? void 0 : avatarProps.showFallback) != null ? _b : true
252
+ },
253
+ className: userVariants({ direction, className }),
254
+ name,
255
+ ...props
256
+ }
257
+ );
258
+ }
259
+ );
209
260
  User.displayName = "TeachInUI.User";
210
261
 
211
262
  // src/ui/data/image/image.tsx
212
263
  var import_react5 = __toESM(require("react"));
213
- var import_image = require("@heroui/image");
264
+ var import_image2 = require("@heroui/image");
214
265
  var import_jsx_runtime5 = require("react/jsx-runtime");
215
- var Image = import_react5.default.forwardRef(({ ...props }, ref) => {
216
- return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_image.Image, { ref, ...props });
266
+ var Image2 = import_react5.default.forwardRef(({ ...props }, ref) => {
267
+ return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_image2.Image, { ref, ...props });
217
268
  });
218
- Image.displayName = "TeachInUI.Image";
269
+ Image2.displayName = "TeachInUI.Image";
219
270
 
220
271
  // src/ui/feedback/alert/alert.tsx
221
272
  var import_react6 = __toESM(require("react"));
@@ -359,7 +410,7 @@ var import_react20 = __toESM(require("react"));
359
410
  // src/ui/inputs/input/input.tsx
360
411
  var import_react19 = __toESM(require("react"));
361
412
  var import_input = require("@heroui/input");
362
- var import_tailwind_variants = require("tailwind-variants");
413
+ var import_tailwind_variants2 = require("tailwind-variants");
363
414
 
364
415
  // src/ui/inputs/clear-button.tsx
365
416
  var import_react17 = __toESM(require("react"));
@@ -445,7 +496,7 @@ function useInput({
445
496
 
446
497
  // src/ui/inputs/input/input.tsx
447
498
  var import_jsx_runtime18 = require("react/jsx-runtime");
448
- var inputWrapperVariants = (0, import_tailwind_variants.tv)({
499
+ var inputWrapperVariants = (0, import_tailwind_variants2.tv)({
449
500
  variants: {
450
501
  variant: {
451
502
  flat: "",
@@ -504,21 +555,219 @@ Input.displayName = "TeachInUI.Input";
504
555
 
505
556
  // src/ui/inputs/email/email.tsx
506
557
  var import_jsx_runtime19 = require("react/jsx-runtime");
507
- var Email = import_react20.default.forwardRef(({ ...props }, ref) => {
508
- return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(Input, { ref, autoComplete: "email", type: "email", ...props });
509
- });
558
+ 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;
559
+ var DEFAULT_ERROR_MESSAGE = "\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0439 \u0444\u043E\u0440\u043C\u0430\u0442 email";
560
+ var defaultValidateEmail = (value) => {
561
+ if (!value) {
562
+ return;
563
+ }
564
+ return EMAIL_REGEX.test(value) ? true : DEFAULT_ERROR_MESSAGE;
565
+ };
566
+ function getValidationMessage(result) {
567
+ if (typeof result === "string") {
568
+ return result;
569
+ }
570
+ if (Array.isArray(result)) {
571
+ return result.join(" ");
572
+ }
573
+ return;
574
+ }
575
+ var Email = import_react20.default.forwardRef(
576
+ ({
577
+ defaultValue,
578
+ errorMessage,
579
+ isInvalid,
580
+ onValueChange,
581
+ validate = defaultValidateEmail,
582
+ value,
583
+ ...props
584
+ }, ref) => {
585
+ const [internalValue, setInternalValue] = import_react20.default.useState(defaultValue != null ? defaultValue : "");
586
+ const isControlled = value !== void 0;
587
+ const currentValue = isControlled ? value : internalValue;
588
+ const handleValueChange = import_react20.default.useCallback(
589
+ (nextValue) => {
590
+ if (!isControlled) {
591
+ setInternalValue(nextValue);
592
+ }
593
+ onValueChange == null ? void 0 : onValueChange(nextValue);
594
+ },
595
+ [isControlled, onValueChange]
596
+ );
597
+ const validationMessage = getValidationMessage(validate(currentValue != null ? currentValue : ""));
598
+ const resolvedErrorMessage = errorMessage != null ? errorMessage : validationMessage;
599
+ const resolvedIsInvalid = isInvalid != null ? isInvalid : Boolean(validationMessage);
600
+ return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
601
+ Input,
602
+ {
603
+ ref,
604
+ autoComplete: "email",
605
+ errorMessage: resolvedErrorMessage,
606
+ isInvalid: resolvedIsInvalid,
607
+ type: "email",
608
+ validate,
609
+ value: currentValue,
610
+ onValueChange: handleValueChange,
611
+ ...props
612
+ }
613
+ );
614
+ }
615
+ );
510
616
  Email.displayName = "TeachInUI.Email";
511
617
 
512
- // src/ui/inputs/search/search.tsx
618
+ // src/ui/inputs/number/number.tsx
513
619
  var import_react22 = __toESM(require("react"));
620
+ var import_number_input = require("@heroui/number-input");
621
+ var import_tailwind_variants3 = require("tailwind-variants");
622
+
623
+ // src/ui/inputs/number/use-number.ts
624
+ var import_number = require("@internationalized/number");
625
+ var import_react21 = require("react");
626
+ function normalizeNumberValue(value) {
627
+ if (value == null || Number.isNaN(value)) {
628
+ return null;
629
+ }
630
+ return value;
631
+ }
632
+ function useNumber({
633
+ locale,
634
+ value,
635
+ onChange,
636
+ onValueChange,
637
+ onClear,
638
+ isReadOnly,
639
+ isClearable = true,
640
+ ref
641
+ }) {
642
+ const inputRef = (0, import_react21.useRef)(null);
643
+ const currentValue = normalizeNumberValue(value);
644
+ const hasValue = currentValue !== null;
645
+ const currentLocale = locale != null ? locale : Intl.NumberFormat().resolvedOptions().locale;
646
+ const numberParser = (0, import_react21.useMemo)(() => new import_number.NumberParser(currentLocale), [currentLocale]);
647
+ const emitValueChange = (0, import_react21.useCallback)(
648
+ (newValue) => {
649
+ onValueChange == null ? void 0 : onValueChange(newValue);
650
+ onChange == null ? void 0 : onChange(newValue);
651
+ },
652
+ [onChange, onValueChange]
653
+ );
654
+ const handleValueChange = (0, import_react21.useCallback)(
655
+ (incomingValue) => {
656
+ let newValue = null;
657
+ if (incomingValue === null) {
658
+ newValue = null;
659
+ } else if (typeof incomingValue === "number") {
660
+ newValue = Number.isNaN(incomingValue) ? null : incomingValue;
661
+ } else {
662
+ const rawValue = incomingValue.target.value;
663
+ newValue = rawValue === "" ? null : numberParser.parse(rawValue);
664
+ newValue = Number.isNaN(newValue) ? null : newValue;
665
+ }
666
+ emitValueChange(newValue);
667
+ },
668
+ [emitValueChange, numberParser]
669
+ );
670
+ const handleClear = (0, import_react21.useCallback)(() => {
671
+ var _a;
672
+ onClear == null ? void 0 : onClear();
673
+ emitValueChange(null);
674
+ (_a = inputRef.current) == null ? void 0 : _a.focus();
675
+ }, [emitValueChange, onClear]);
676
+ const mergedRef = (0, import_react21.useCallback)(
677
+ (node) => {
678
+ inputRef.current = node;
679
+ if (typeof ref === "function") {
680
+ ref(node);
681
+ } else if (ref) {
682
+ ref.current = node;
683
+ }
684
+ },
685
+ [ref]
686
+ );
687
+ const showClearButton = hasValue && !isReadOnly && isClearable;
688
+ return {
689
+ inputRef,
690
+ currentValue,
691
+ hasValue,
692
+ handleValueChange,
693
+ handleClear,
694
+ mergedRef,
695
+ showClearButton
696
+ };
697
+ }
698
+
699
+ // src/ui/inputs/number/number.tsx
700
+ var import_jsx_runtime20 = require("react/jsx-runtime");
701
+ var inputWrapperVariants2 = (0, import_tailwind_variants3.tv)({
702
+ variants: {
703
+ variant: {
704
+ flat: "",
705
+ underlined: "",
706
+ bordered: "border-1",
707
+ faded: "border-1"
708
+ }
709
+ }
710
+ });
711
+ var Number2 = import_react22.default.forwardRef(
712
+ ({
713
+ locale,
714
+ value,
715
+ onChange,
716
+ onValueChange,
717
+ onClear,
718
+ variant,
719
+ classNames,
720
+ endContent,
721
+ isReadOnly,
722
+ isClearable,
723
+ ...props
724
+ }, ref) => {
725
+ const { currentValue, handleValueChange, handleClear, mergedRef, showClearButton } = useNumber({
726
+ locale,
727
+ value,
728
+ onChange,
729
+ onValueChange,
730
+ onClear,
731
+ isReadOnly,
732
+ isClearable,
733
+ ref
734
+ });
735
+ const normalizedValue = currentValue === null ? globalThis.Number.NaN : currentValue;
736
+ return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
737
+ import_number_input.NumberInput,
738
+ {
739
+ ref: mergedRef,
740
+ classNames: {
741
+ ...classNames,
742
+ inputWrapper: cn(inputWrapperVariants2({ variant }), classNames == null ? void 0 : classNames.inputWrapper),
743
+ innerWrapper: cn("group", classNames == null ? void 0 : classNames.innerWrapper)
744
+ },
745
+ endContent: (endContent || showClearButton) && /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)("div", { className: "flex items-center gap-1", children: [
746
+ endContent,
747
+ showClearButton && /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(ClearButton, { onClear: handleClear })
748
+ ] }),
749
+ inputMode: "decimal",
750
+ isReadOnly,
751
+ value: normalizedValue,
752
+ variant,
753
+ onChange: handleValueChange,
754
+ ...props
755
+ }
756
+ );
757
+ }
758
+ );
759
+ Number2.displayName = "TeachInUI.Number";
760
+
761
+ // src/ui/inputs/search/search.tsx
762
+ var import_react24 = __toESM(require("react"));
514
763
  var import_lucide_react2 = require("lucide-react");
515
764
  var import_button4 = require("@heroui/button");
516
- var import_tailwind_variants2 = require("tailwind-variants");
765
+ var import_tailwind_variants4 = require("tailwind-variants");
517
766
 
518
767
  // src/ui/inputs/search/use-search.ts
519
- var import_react21 = require("react");
768
+ var import_react23 = require("react");
520
769
  function useSearch({ value, onSearch, onCancel, onKeyDown }) {
521
- const handleKeyDown = (0, import_react21.useCallback)(
770
+ const handleKeyDown = (0, import_react23.useCallback)(
522
771
  (event) => {
523
772
  if (event.key === "Enter") {
524
773
  event.preventDefault();
@@ -532,7 +781,7 @@ function useSearch({ value, onSearch, onCancel, onKeyDown }) {
532
781
  [onSearch, onCancel, onKeyDown]
533
782
  );
534
783
  const hasValue = value !== void 0 && String(value).length > 0;
535
- const handleSearchClick = (0, import_react21.useCallback)(() => {
784
+ const handleSearchClick = (0, import_react23.useCallback)(() => {
536
785
  if (hasValue) {
537
786
  onSearch == null ? void 0 : onSearch(value);
538
787
  }
@@ -545,8 +794,8 @@ function useSearch({ value, onSearch, onCancel, onKeyDown }) {
545
794
  }
546
795
 
547
796
  // src/ui/inputs/search/search.tsx
548
- var import_jsx_runtime20 = require("react/jsx-runtime");
549
- var searchIconVariants = (0, import_tailwind_variants2.tv)({
797
+ var import_jsx_runtime21 = require("react/jsx-runtime");
798
+ var searchIconVariants = (0, import_tailwind_variants4.tv)({
550
799
  base: "size-5 shrink-0",
551
800
  variants: {
552
801
  variant: {
@@ -557,7 +806,7 @@ var searchIconVariants = (0, import_tailwind_variants2.tv)({
557
806
  }
558
807
  }
559
808
  });
560
- var Search = import_react22.default.forwardRef(
809
+ var Search = import_react24.default.forwardRef(
561
810
  ({ variant = "bordered", radius = "full", value, onSearch, onCancel, onKeyDown, ...props }, ref) => {
562
811
  const { handleKeyDown, handleSearchClick, hasValue } = useSearch({
563
812
  value,
@@ -565,12 +814,12 @@ var Search = import_react22.default.forwardRef(
565
814
  onCancel,
566
815
  onKeyDown
567
816
  });
568
- return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
817
+ return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
569
818
  Input,
570
819
  {
571
820
  ref,
572
821
  radius,
573
- startContent: onSearch ? /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
822
+ startContent: onSearch ? /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
574
823
  import_button4.Button,
575
824
  {
576
825
  isIconOnly: true,
@@ -580,9 +829,9 @@ var Search = import_react22.default.forwardRef(
580
829
  size: "sm",
581
830
  variant: "light",
582
831
  onPress: handleSearchClick,
583
- children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_lucide_react2.SearchIcon, { className: searchIconVariants({ variant }) })
832
+ children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_lucide_react2.SearchIcon, { className: searchIconVariants({ variant }) })
584
833
  }
585
- ) : /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_lucide_react2.SearchIcon, { className: searchIconVariants({ variant }) }),
834
+ ) : /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_lucide_react2.SearchIcon, { className: searchIconVariants({ variant }) }),
586
835
  value,
587
836
  variant,
588
837
  onKeyDown: handleKeyDown,
@@ -594,12 +843,12 @@ var Search = import_react22.default.forwardRef(
594
843
  Search.displayName = "TeachInUI.Search";
595
844
 
596
845
  // src/ui/inputs/select/select.tsx
597
- var import_react24 = __toESM(require("react"));
846
+ var import_react26 = __toESM(require("react"));
598
847
  var import_select = require("@heroui/select");
599
- var import_tailwind_variants3 = require("tailwind-variants");
848
+ var import_tailwind_variants5 = require("tailwind-variants");
600
849
 
601
850
  // src/ui/inputs/select/use-select.ts
602
- var import_react23 = require("react");
851
+ var import_react25 = require("react");
603
852
  function useSelect({
604
853
  value,
605
854
  onChange,
@@ -608,34 +857,27 @@ function useSelect({
608
857
  isClearable = true
609
858
  }) {
610
859
  const isMultiple = selectionMode === "multiple";
611
- const [internalValue, setInternalValue] = (0, import_react23.useState)(
612
- isMultiple ? [] : null
613
- );
614
- const isControlled = value !== void 0;
615
- const currentValue = isControlled ? value : internalValue;
860
+ const currentValue = value != null ? value : isMultiple ? [] : null;
616
861
  const hasValue = currentValue != null && (Array.isArray(currentValue) ? currentValue.length > 0 : currentValue !== "");
617
- const handleChange = (0, import_react23.useCallback)(
862
+ const handleChange = (0, import_react25.useCallback)(
618
863
  (newValue) => {
619
- if (!isControlled) {
620
- setInternalValue(newValue);
621
- }
622
864
  if (isMultiple) {
623
865
  onChange == null ? void 0 : onChange(newValue);
624
866
  } else {
625
867
  onChange == null ? void 0 : onChange(newValue);
626
868
  }
627
869
  },
628
- [isControlled, onChange, isMultiple]
870
+ [onChange, isMultiple]
629
871
  );
630
- const handleClear = (0, import_react23.useCallback)(() => {
872
+ const handleClear = (0, import_react25.useCallback)(() => {
631
873
  onClear == null ? void 0 : onClear();
632
874
  handleChange(isMultiple ? [] : null);
633
875
  }, [onClear, handleChange, isMultiple]);
634
- const selectedKeys = (0, import_react23.useMemo)(() => {
876
+ const selectedKeys = (0, import_react25.useMemo)(() => {
635
877
  if (currentValue == null) return /* @__PURE__ */ new Set();
636
878
  return new Set(Array.isArray(currentValue) ? currentValue : [currentValue]);
637
879
  }, [currentValue]);
638
- const handleSelectionChange = (0, import_react23.useCallback)(
880
+ const handleSelectionChange = (0, import_react25.useCallback)(
639
881
  (keys) => {
640
882
  var _a;
641
883
  if (keys === "all") return;
@@ -656,8 +898,8 @@ function useSelect({
656
898
  }
657
899
 
658
900
  // src/ui/inputs/select/select.tsx
659
- var import_jsx_runtime21 = require("react/jsx-runtime");
660
- var selectWrapperVariants = (0, import_tailwind_variants3.tv)({
901
+ var import_jsx_runtime22 = require("react/jsx-runtime");
902
+ var selectWrapperVariants = (0, import_tailwind_variants5.tv)({
661
903
  variants: {
662
904
  variant: {
663
905
  flat: "",
@@ -667,12 +909,14 @@ var selectWrapperVariants = (0, import_tailwind_variants3.tv)({
667
909
  }
668
910
  }
669
911
  });
670
- var Select = import_react24.default.forwardRef(
912
+ var Select = import_react26.default.forwardRef(
671
913
  ({
672
914
  value,
673
- defaultSelectedKeys,
674
915
  items,
916
+ children,
917
+ selectedKeys: selectedKeysProp,
675
918
  onChange,
919
+ onSelectionChange,
676
920
  selectionMode,
677
921
  onClear,
678
922
  variant,
@@ -681,6 +925,8 @@ var Select = import_react24.default.forwardRef(
681
925
  isClearable,
682
926
  ...props
683
927
  }, ref) => {
928
+ const usesExternalSelectionControl = selectedKeysProp !== void 0 || onSelectionChange !== void 0;
929
+ const selectChildren = children != null ? children : (item) => /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(import_select.SelectItem, { children: item.label }, item.key);
684
930
  const { selectedKeys, handleSelectionChange, handleClear, showClearButton } = useSelect({
685
931
  value,
686
932
  onChange,
@@ -688,70 +934,100 @@ var Select = import_react24.default.forwardRef(
688
934
  selectionMode,
689
935
  isClearable
690
936
  });
691
- return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
937
+ return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
692
938
  import_select.Select,
693
939
  {
694
940
  ref,
695
941
  classNames: {
696
942
  ...classNames,
697
- trigger: selectWrapperVariants({ variant }),
943
+ trigger: cn(selectWrapperVariants({ variant }), classNames == null ? void 0 : classNames.trigger),
698
944
  innerWrapper: "group"
699
945
  },
700
- defaultSelectedKeys,
701
- endContent: (endContent || showClearButton) && /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)("div", { className: "flex items-center gap-1", children: [
946
+ endContent: (endContent || showClearButton) && /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)("div", { className: "flex items-center gap-1", children: [
702
947
  endContent,
703
- showClearButton && /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(ClearButton, { onClear: handleClear })
948
+ showClearButton && /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(ClearButton, { onClear: handleClear })
704
949
  ] }),
705
950
  items,
706
- selectedKeys,
951
+ selectedKeys: usesExternalSelectionControl ? selectedKeysProp : selectedKeys,
707
952
  selectionMode,
708
953
  variant,
709
- onSelectionChange: handleSelectionChange,
954
+ onSelectionChange: usesExternalSelectionControl ? onSelectionChange : handleSelectionChange,
710
955
  ...props,
711
- children: (item) => /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_select.SelectItem, { children: item.label }, item.key)
956
+ children: selectChildren
712
957
  }
713
958
  );
714
959
  }
715
960
  );
716
961
  Select.displayName = "TeachInUI.Select";
962
+ var SelectItem = import_select.SelectItem;
717
963
 
718
964
  // src/ui/inputs/switch/switch.tsx
719
- var import_react25 = __toESM(require("react"));
965
+ var import_react27 = __toESM(require("react"));
720
966
  var import_switch = require("@heroui/switch");
721
- var import_jsx_runtime22 = require("react/jsx-runtime");
722
- var Switch = import_react25.default.forwardRef(({ ...props }, ref) => {
723
- return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(import_switch.Switch, { ref, ...props });
967
+ var import_jsx_runtime23 = require("react/jsx-runtime");
968
+ var Switch = import_react27.default.forwardRef(({ ...props }, ref) => {
969
+ return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_switch.Switch, { ref, ...props });
724
970
  });
725
971
  Switch.displayName = "TeachInUI.Switch";
726
972
 
727
973
  // src/ui/inputs/switch/favorite-switch.tsx
728
974
  var import_switch2 = require("@heroui/switch");
729
975
  var import_lucide_react3 = require("lucide-react");
730
- var import_tailwind_variants4 = require("tailwind-variants");
731
- var import_jsx_runtime23 = require("react/jsx-runtime");
732
- var bookmarkVariants = (0, import_tailwind_variants4.tv)({
733
- base: "size-6 stroke-default-400 group-hover:fill-primary-100 group-hover:stroke-default-400",
976
+ var import_tailwind_variants6 = require("tailwind-variants");
977
+ var import_jsx_runtime24 = require("react/jsx-runtime");
978
+ var bookmarkVariants = (0, import_tailwind_variants6.tv)({
979
+ base: "stroke-default-400 group-hover:fill-primary-100 group-hover:stroke-default-400",
734
980
  variants: {
981
+ size: {
982
+ sm: "size-6",
983
+ md: "size-8",
984
+ lg: "size-10"
985
+ },
735
986
  isSelected: {
736
987
  true: "stroke-primary fill-primary-100"
737
988
  }
989
+ },
990
+ defaultVariants: {
991
+ size: "md"
738
992
  }
739
993
  });
740
- function FavoriteSwitch({ isSelected, onValueChange }) {
994
+ var wrapperVariants = (0, import_tailwind_variants6.tv)({
995
+ base: "flex cursor-pointer items-center justify-center rounded-sm bg-transparent!",
996
+ variants: {
997
+ size: {
998
+ sm: "h-8 w-8",
999
+ md: "h-10 w-10",
1000
+ lg: "h-12 w-12"
1001
+ }
1002
+ },
1003
+ defaultVariants: {
1004
+ size: "md"
1005
+ }
1006
+ });
1007
+ function FavoriteSwitch({ isSelected, onValueChange, size }) {
741
1008
  const { Component, slots, getBaseProps, getInputProps, getWrapperProps } = (0, import_switch2.useSwitch)({
742
1009
  isSelected,
743
1010
  onValueChange
744
1011
  });
745
- return /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(Component, { ...getBaseProps(), children: [
746
- /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("div", { className: "sr-only", children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("input", { ...getInputProps() }) }),
747
- /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
1012
+ return /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(Component, { ...getBaseProps(), children: [
1013
+ /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("div", { className: "sr-only", children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("input", { ...getInputProps() }) }),
1014
+ /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
748
1015
  "div",
749
1016
  {
750
1017
  ...getWrapperProps(),
751
1018
  className: slots.wrapper({
752
- class: "flex h-8 w-8 cursor-pointer items-center justify-center rounded-sm !bg-transparent"
1019
+ class: wrapperVariants({ size })
753
1020
  }),
754
- children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_lucide_react3.Bookmark, { className: bookmarkVariants({ isSelected }) })
1021
+ children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
1022
+ import_lucide_react3.BookmarkIcon,
1023
+ {
1024
+ absoluteStrokeWidth: true,
1025
+ className: bookmarkVariants({ isSelected, size }),
1026
+ strokeLinecap: "round",
1027
+ strokeLinejoin: "round",
1028
+ strokeWidth: 1.5
1029
+ }
1030
+ )
755
1031
  }
756
1032
  )
757
1033
  ] });
@@ -762,45 +1038,45 @@ var import_radio = require("@heroui/radio");
762
1038
  var Radio = Object.assign(import_radio.Radio, { displayName: "TeachInUI.Radio" });
763
1039
 
764
1040
  // src/ui/inputs/radio/radio-group.tsx
765
- var import_react26 = __toESM(require("react"));
1041
+ var import_react28 = __toESM(require("react"));
766
1042
  var import_radio2 = require("@heroui/radio");
767
- var import_jsx_runtime24 = require("react/jsx-runtime");
768
- var RadioGroup = import_react26.default.forwardRef(
1043
+ var import_jsx_runtime25 = require("react/jsx-runtime");
1044
+ var RadioGroup = import_react28.default.forwardRef(
769
1045
  (props, ref) => {
770
- return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_radio2.RadioGroup, { ref, ...props });
1046
+ return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_radio2.RadioGroup, { ref, ...props });
771
1047
  }
772
1048
  );
773
1049
  RadioGroup.displayName = "TeachInUI.RadioGroup";
774
1050
 
775
1051
  // src/ui/inputs/text/text.tsx
776
- var import_react27 = __toESM(require("react"));
777
- var import_jsx_runtime25 = require("react/jsx-runtime");
778
- var Text = import_react27.default.forwardRef(({ ...props }, ref) => {
779
- return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(Input, { ref, type: "text", ...props });
1052
+ var import_react29 = __toESM(require("react"));
1053
+ var import_jsx_runtime26 = require("react/jsx-runtime");
1054
+ var Text = import_react29.default.forwardRef(({ ...props }, ref) => {
1055
+ return /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(Input, { ref, type: "text", ...props });
780
1056
  });
781
1057
  Text.displayName = "TeachInUI.Text";
782
1058
 
783
1059
  // src/ui/inputs/textarea/textarea.tsx
784
1060
  var import_input6 = require("@heroui/input");
785
- var import_react28 = __toESM(require("react"));
786
- var import_jsx_runtime26 = require("react/jsx-runtime");
787
- var Textarea = import_react28.default.forwardRef(
1061
+ var import_react30 = __toESM(require("react"));
1062
+ var import_jsx_runtime27 = require("react/jsx-runtime");
1063
+ var Textarea = import_react30.default.forwardRef(
788
1064
  ({ minRows = 4, ...props }, ref) => {
789
- return /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_input6.Textarea, { ref, minRows, ...props });
1065
+ return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_input6.Textarea, { ref, minRows, ...props });
790
1066
  }
791
1067
  );
792
1068
  Textarea.displayName = "TeachInUI.Textarea";
793
1069
 
794
1070
  // src/ui/form/rhf/fields/input-field.tsx
795
- var import_jsx_runtime27 = require("react/jsx-runtime");
1071
+ var import_jsx_runtime28 = require("react/jsx-runtime");
796
1072
  function InputField({ name, ...props }) {
797
1073
  const { control } = (0, import_react_hook_form.useFormContext)();
798
- return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
1074
+ return /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
799
1075
  import_react_hook_form.Controller,
800
1076
  {
801
1077
  control,
802
1078
  name,
803
- render: ({ field: { ref, ...field }, fieldState: { error } }) => /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
1079
+ render: ({ field: { ref, ...field }, fieldState: { error } }) => /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
804
1080
  Input,
805
1081
  {
806
1082
  ...props,
@@ -818,15 +1094,15 @@ InputField.displayName = "TeachInUI.InputField";
818
1094
 
819
1095
  // src/ui/form/rhf/fields/text-field.tsx
820
1096
  var import_react_hook_form2 = require("react-hook-form");
821
- var import_jsx_runtime28 = require("react/jsx-runtime");
1097
+ var import_jsx_runtime29 = require("react/jsx-runtime");
822
1098
  function TextField({ name, ...props }) {
823
1099
  const { control } = (0, import_react_hook_form2.useFormContext)();
824
- return /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
1100
+ return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
825
1101
  import_react_hook_form2.Controller,
826
1102
  {
827
1103
  control,
828
1104
  name,
829
- render: ({ field: { ref, ...field }, fieldState: { error } }) => /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Text, { ...props, ...field, ref, errorMessage: error == null ? void 0 : error.message, isInvalid: !!error })
1105
+ render: ({ field: { ref, ...field }, fieldState: { error } }) => /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Text, { ...props, ...field, ref, errorMessage: error == null ? void 0 : error.message, isInvalid: !!error })
830
1106
  }
831
1107
  );
832
1108
  }
@@ -834,15 +1110,15 @@ TextField.displayName = "TeachInUI.TextField";
834
1110
 
835
1111
  // src/ui/form/rhf/fields/email-field.tsx
836
1112
  var import_react_hook_form3 = require("react-hook-form");
837
- var import_jsx_runtime29 = require("react/jsx-runtime");
1113
+ var import_jsx_runtime30 = require("react/jsx-runtime");
838
1114
  function EmailField({ name, ...props }) {
839
1115
  const { control } = (0, import_react_hook_form3.useFormContext)();
840
- return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
1116
+ return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
841
1117
  import_react_hook_form3.Controller,
842
1118
  {
843
1119
  control,
844
1120
  name,
845
- render: ({ field: { ref, ...field }, fieldState: { error } }) => /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Email, { ...props, ...field, ref, errorMessage: error == null ? void 0 : error.message, isInvalid: !!error })
1121
+ render: ({ field: { ref, ...field }, fieldState: { error } }) => /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Email, { ...props, ...field, ref, errorMessage: error == null ? void 0 : error.message, isInvalid: !!error })
846
1122
  }
847
1123
  );
848
1124
  }
@@ -850,15 +1126,15 @@ EmailField.displayName = "TeachInUI.EmailField";
850
1126
 
851
1127
  // src/ui/form/rhf/fields/search-field.tsx
852
1128
  var import_react_hook_form4 = require("react-hook-form");
853
- var import_jsx_runtime30 = require("react/jsx-runtime");
1129
+ var import_jsx_runtime31 = require("react/jsx-runtime");
854
1130
  function SearchField({ name, ...props }) {
855
1131
  const { control } = (0, import_react_hook_form4.useFormContext)();
856
- return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
1132
+ return /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
857
1133
  import_react_hook_form4.Controller,
858
1134
  {
859
1135
  control,
860
1136
  name,
861
- render: ({ field: { ref, ...field }, fieldState: { error } }) => /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
1137
+ render: ({ field: { ref, ...field }, fieldState: { error } }) => /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
862
1138
  Search,
863
1139
  {
864
1140
  ...props,
@@ -876,15 +1152,15 @@ SearchField.displayName = "TeachInUI.SearchField";
876
1152
 
877
1153
  // src/ui/form/rhf/fields/textarea-field.tsx
878
1154
  var import_react_hook_form5 = require("react-hook-form");
879
- var import_jsx_runtime31 = require("react/jsx-runtime");
1155
+ var import_jsx_runtime32 = require("react/jsx-runtime");
880
1156
  function TextareaField({ name, ...props }) {
881
1157
  const { control } = (0, import_react_hook_form5.useFormContext)();
882
- return /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
1158
+ return /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
883
1159
  import_react_hook_form5.Controller,
884
1160
  {
885
1161
  control,
886
1162
  name,
887
- render: ({ field: { ref, ...field }, fieldState: { error } }) => /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
1163
+ render: ({ field: { ref, ...field }, fieldState: { error } }) => /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
888
1164
  Textarea,
889
1165
  {
890
1166
  ...props,
@@ -901,15 +1177,15 @@ TextareaField.displayName = "TeachInUI.TextareaField";
901
1177
 
902
1178
  // src/ui/form/rhf/fields/select-field.tsx
903
1179
  var import_react_hook_form6 = require("react-hook-form");
904
- var import_jsx_runtime32 = require("react/jsx-runtime");
1180
+ var import_jsx_runtime33 = require("react/jsx-runtime");
905
1181
  function SelectField({ name, selectionMode, ...props }) {
906
1182
  const { control } = (0, import_react_hook_form6.useFormContext)();
907
- return /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
1183
+ return /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
908
1184
  import_react_hook_form6.Controller,
909
1185
  {
910
1186
  control,
911
1187
  name,
912
- render: ({ field, fieldState: { error } }) => /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
1188
+ render: ({ field, fieldState: { error } }) => /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
913
1189
  Select,
914
1190
  {
915
1191
  selectionMode,
@@ -927,15 +1203,15 @@ SelectField.displayName = "TeachInUI.SelectField";
927
1203
 
928
1204
  // src/ui/form/rhf/fields/autocomplete-field.tsx
929
1205
  var import_react_hook_form7 = require("react-hook-form");
930
- var import_jsx_runtime33 = require("react/jsx-runtime");
1206
+ var import_jsx_runtime34 = require("react/jsx-runtime");
931
1207
  function AutocompleteField({ name, ...props }) {
932
1208
  const { control } = (0, import_react_hook_form7.useFormContext)();
933
- return /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
1209
+ return /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
934
1210
  import_react_hook_form7.Controller,
935
1211
  {
936
1212
  control,
937
1213
  name,
938
- render: ({ field, fieldState: { error } }) => /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
1214
+ render: ({ field, fieldState: { error } }) => /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
939
1215
  Autocomplete,
940
1216
  {
941
1217
  ...props,
@@ -952,15 +1228,15 @@ AutocompleteField.displayName = "TeachInUI.AutocompleteField";
952
1228
 
953
1229
  // src/ui/form/rhf/fields/date-picker-field.tsx
954
1230
  var import_react_hook_form8 = require("react-hook-form");
955
- var import_jsx_runtime34 = require("react/jsx-runtime");
1231
+ var import_jsx_runtime35 = require("react/jsx-runtime");
956
1232
  function DatePickerField({ name, ...props }) {
957
1233
  const { control } = (0, import_react_hook_form8.useFormContext)();
958
- return /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
1234
+ return /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
959
1235
  import_react_hook_form8.Controller,
960
1236
  {
961
1237
  control,
962
1238
  name,
963
- render: ({ field: { ref, ...field }, fieldState: { error } }) => /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
1239
+ render: ({ field: { ref, ...field }, fieldState: { error } }) => /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
964
1240
  DatePicker,
965
1241
  {
966
1242
  ...props,
@@ -977,17 +1253,17 @@ DatePickerField.displayName = "TeachInUI.DatePickerField";
977
1253
 
978
1254
  // src/ui/form/rhf/fields/checkbox-field.tsx
979
1255
  var import_react_hook_form9 = require("react-hook-form");
980
- var import_jsx_runtime35 = require("react/jsx-runtime");
1256
+ var import_jsx_runtime36 = require("react/jsx-runtime");
981
1257
  function CheckboxField({ name, ...props }) {
982
1258
  const { control } = (0, import_react_hook_form9.useFormContext)();
983
- return /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
1259
+ return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
984
1260
  import_react_hook_form9.Controller,
985
1261
  {
986
1262
  control,
987
1263
  name,
988
- render: ({ field, fieldState: { error } }) => /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)("div", { children: [
989
- /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(Checkbox, { ...props, isSelected: field.value, onValueChange: field.onChange }),
990
- error && /* @__PURE__ */ (0, import_jsx_runtime35.jsx)("span", { className: "text-tiny text-danger", children: error.message })
1264
+ render: ({ field, fieldState: { error } }) => /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)("div", { children: [
1265
+ /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(Checkbox, { ...props, isSelected: field.value, onValueChange: field.onChange }),
1266
+ error && /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("span", { className: "text-tiny text-danger", children: error.message })
991
1267
  ] })
992
1268
  }
993
1269
  );
@@ -996,17 +1272,17 @@ CheckboxField.displayName = "TeachInUI.CheckboxField";
996
1272
 
997
1273
  // src/ui/form/rhf/fields/switch-field.tsx
998
1274
  var import_react_hook_form10 = require("react-hook-form");
999
- var import_jsx_runtime36 = require("react/jsx-runtime");
1275
+ var import_jsx_runtime37 = require("react/jsx-runtime");
1000
1276
  function SwitchField({ name, ...props }) {
1001
1277
  const { control } = (0, import_react_hook_form10.useFormContext)();
1002
- return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
1278
+ return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
1003
1279
  import_react_hook_form10.Controller,
1004
1280
  {
1005
1281
  control,
1006
1282
  name,
1007
- render: ({ field, fieldState: { error } }) => /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)("div", { children: [
1008
- /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(Switch, { ...props, isSelected: field.value, onValueChange: field.onChange }),
1009
- error && /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("span", { className: "text-tiny text-danger", children: error.message })
1283
+ render: ({ field, fieldState: { error } }) => /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)("div", { children: [
1284
+ /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(Switch, { ...props, isSelected: field.value, onValueChange: field.onChange }),
1285
+ error && /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("span", { className: "text-tiny text-danger", children: error.message })
1010
1286
  ] })
1011
1287
  }
1012
1288
  );
@@ -1015,15 +1291,15 @@ SwitchField.displayName = "TeachInUI.SwitchField";
1015
1291
 
1016
1292
  // src/ui/form/rhf/fields/radio-field.tsx
1017
1293
  var import_react_hook_form11 = require("react-hook-form");
1018
- var import_jsx_runtime37 = require("react/jsx-runtime");
1294
+ var import_jsx_runtime38 = require("react/jsx-runtime");
1019
1295
  function RadioField({ name, ...props }) {
1020
1296
  const { control } = (0, import_react_hook_form11.useFormContext)();
1021
- return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
1297
+ return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
1022
1298
  import_react_hook_form11.Controller,
1023
1299
  {
1024
1300
  control,
1025
1301
  name,
1026
- render: ({ field: { ref, value, onChange, ...field }, fieldState: { error } }) => /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
1302
+ render: ({ field: { ref, value, onChange, ...field }, fieldState: { error } }) => /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
1027
1303
  RadioGroup,
1028
1304
  {
1029
1305
  ...props,
@@ -1042,15 +1318,15 @@ RadioField.displayName = "TeachInUI.RadioField";
1042
1318
 
1043
1319
  // src/ui/form/form.tsx
1044
1320
  var import_form = require("@heroui/form");
1045
- var import_react29 = __toESM(require("react"));
1046
- var import_jsx_runtime38 = require("react/jsx-runtime");
1047
- var Form = import_react29.default.forwardRef(({ ...props }, ref) => {
1048
- return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(import_form.Form, { ref, ...props });
1321
+ var import_react31 = __toESM(require("react"));
1322
+ var import_jsx_runtime39 = require("react/jsx-runtime");
1323
+ var Form = import_react31.default.forwardRef(({ ...props }, ref) => {
1324
+ return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(import_form.Form, { ref, ...props });
1049
1325
  });
1050
1326
  Form.displayName = "TeachInUI.Form";
1051
1327
 
1052
1328
  // src/ui/format/datetime.tsx
1053
- var import_jsx_runtime39 = require("react/jsx-runtime");
1329
+ var import_jsx_runtime40 = require("react/jsx-runtime");
1054
1330
  var defaultFormat = {
1055
1331
  day: "numeric",
1056
1332
  month: "long",
@@ -1066,15 +1342,15 @@ function Datetime({
1066
1342
  fallback = "\u2014"
1067
1343
  }) {
1068
1344
  const formatter = new Intl.DateTimeFormat(locale, format);
1069
- if (!value) return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(import_jsx_runtime39.Fragment, { children: fallback });
1345
+ if (!value) return /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(import_jsx_runtime40.Fragment, { children: fallback });
1070
1346
  const date = value instanceof Date ? value : new Date(value);
1071
- if (isNaN(date.getTime())) return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(import_jsx_runtime39.Fragment, { children: fallback });
1072
- return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(import_jsx_runtime39.Fragment, { children: formatter.format(date) });
1347
+ if (isNaN(date.getTime())) return /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(import_jsx_runtime40.Fragment, { children: fallback });
1348
+ return /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(import_jsx_runtime40.Fragment, { children: formatter.format(date) });
1073
1349
  }
1074
1350
  Datetime.displayName = "TeachInUI.FormatDatetime";
1075
1351
 
1076
1352
  // src/ui/format/date.tsx
1077
- var import_jsx_runtime40 = require("react/jsx-runtime");
1353
+ var import_jsx_runtime41 = require("react/jsx-runtime");
1078
1354
  var defaultFormat2 = {
1079
1355
  day: "numeric",
1080
1356
  month: "long",
@@ -1087,15 +1363,15 @@ function DateFormat({
1087
1363
  fallback = "\u2014"
1088
1364
  }) {
1089
1365
  const formatter = new Intl.DateTimeFormat(locale, format);
1090
- if (!value) return /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(import_jsx_runtime40.Fragment, { children: fallback });
1366
+ if (!value) return /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(import_jsx_runtime41.Fragment, { children: fallback });
1091
1367
  const date = value instanceof Date ? value : new Date(value);
1092
- if (isNaN(date.getTime())) return /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(import_jsx_runtime40.Fragment, { children: fallback });
1093
- return /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(import_jsx_runtime40.Fragment, { children: formatter.format(date) });
1368
+ if (isNaN(date.getTime())) return /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(import_jsx_runtime41.Fragment, { children: fallback });
1369
+ return /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(import_jsx_runtime41.Fragment, { children: formatter.format(date) });
1094
1370
  }
1095
1371
  DateFormat.displayName = "TeachInUI.FormatDate";
1096
1372
 
1097
1373
  // src/ui/format/time.tsx
1098
- var import_jsx_runtime41 = require("react/jsx-runtime");
1374
+ var import_jsx_runtime42 = require("react/jsx-runtime");
1099
1375
  var defaultFormat3 = {
1100
1376
  hour: "2-digit",
1101
1377
  minute: "2-digit"
@@ -1107,15 +1383,15 @@ function Time({
1107
1383
  fallback = "\u2014"
1108
1384
  }) {
1109
1385
  const formatter = new Intl.DateTimeFormat(locale, format);
1110
- if (!value) return /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(import_jsx_runtime41.Fragment, { children: fallback });
1386
+ if (!value) return /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(import_jsx_runtime42.Fragment, { children: fallback });
1111
1387
  const date = value instanceof Date ? value : new Date(value);
1112
- if (isNaN(date.getTime())) return /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(import_jsx_runtime41.Fragment, { children: fallback });
1113
- return /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(import_jsx_runtime41.Fragment, { children: formatter.format(date) });
1388
+ if (isNaN(date.getTime())) return /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(import_jsx_runtime42.Fragment, { children: fallback });
1389
+ return /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(import_jsx_runtime42.Fragment, { children: formatter.format(date) });
1114
1390
  }
1115
1391
  Time.displayName = "TeachInUI.FormatTime";
1116
1392
 
1117
1393
  // src/ui/format/currency.tsx
1118
- var import_jsx_runtime42 = require("react/jsx-runtime");
1394
+ var import_jsx_runtime43 = require("react/jsx-runtime");
1119
1395
  function Currency({
1120
1396
  amount,
1121
1397
  currency = "RUB",
@@ -1130,23 +1406,23 @@ function Currency({
1130
1406
  maximumFractionDigits: decimals
1131
1407
  }
1132
1408
  });
1133
- return /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(import_jsx_runtime42.Fragment, { children: formatter.format(amount) });
1409
+ return /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(import_jsx_runtime43.Fragment, { children: formatter.format(amount) });
1134
1410
  }
1135
1411
  Currency.displayName = "TeachInUI.FormatCurrency";
1136
1412
 
1137
1413
  // src/ui/format/number.tsx
1138
- var import_jsx_runtime43 = require("react/jsx-runtime");
1139
- function Number2({ value, decimals, locale = "ru-RU" }) {
1414
+ var import_jsx_runtime44 = require("react/jsx-runtime");
1415
+ function Number3({ value, decimals, locale = "ru-RU" }) {
1140
1416
  const formatter = new Intl.NumberFormat(locale, {
1141
1417
  minimumFractionDigits: decimals != null ? decimals : 0,
1142
1418
  maximumFractionDigits: decimals != null ? decimals : 2
1143
1419
  });
1144
- return /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(import_jsx_runtime43.Fragment, { children: formatter.format(value) });
1420
+ return /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(import_jsx_runtime44.Fragment, { children: formatter.format(value) });
1145
1421
  }
1146
- Number2.displayName = "TeachInUI.FormatNumber";
1422
+ Number3.displayName = "TeachInUI.FormatNumber";
1147
1423
 
1148
1424
  // src/ui/format/percent.tsx
1149
- var import_jsx_runtime44 = require("react/jsx-runtime");
1425
+ var import_jsx_runtime45 = require("react/jsx-runtime");
1150
1426
  function Percent({
1151
1427
  value,
1152
1428
  decimals = 1,
@@ -1159,12 +1435,12 @@ function Percent({
1159
1435
  maximumFractionDigits: decimals
1160
1436
  });
1161
1437
  const normalizedValue = unit === "percent" ? value / 100 : value;
1162
- return /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(import_jsx_runtime44.Fragment, { children: formatter.format(normalizedValue) });
1438
+ return /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_jsx_runtime45.Fragment, { children: formatter.format(normalizedValue) });
1163
1439
  }
1164
1440
  Percent.displayName = "TeachInUI.FormatPercent";
1165
1441
 
1166
1442
  // src/ui/format/plural.tsx
1167
- var import_jsx_runtime45 = require("react/jsx-runtime");
1443
+ var import_jsx_runtime46 = require("react/jsx-runtime");
1168
1444
  function Plural({
1169
1445
  count,
1170
1446
  one,
@@ -1185,12 +1461,12 @@ function Plural({
1185
1461
  };
1186
1462
  const selectedForm = forms[rule];
1187
1463
  const result = showCount ? `${count} ${selectedForm}` : selectedForm;
1188
- return /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_jsx_runtime45.Fragment, { children: result });
1464
+ return /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(import_jsx_runtime46.Fragment, { children: result });
1189
1465
  }
1190
1466
  Plural.displayName = "TeachInUI.FormatPlural";
1191
1467
 
1192
1468
  // src/ui/format/duration.tsx
1193
- var import_jsx_runtime46 = require("react/jsx-runtime");
1469
+ var import_jsx_runtime47 = require("react/jsx-runtime");
1194
1470
  function Duration({
1195
1471
  minutes = 0,
1196
1472
  hours = 0,
@@ -1212,25 +1488,25 @@ function Duration({
1212
1488
  if (remainingMinutes > 0 || totalDays === 0 && totalHours === 0) {
1213
1489
  parts.push(compact ? `${remainingMinutes}\u043C` : `${remainingMinutes} \u043C\u0438\u043D`);
1214
1490
  }
1215
- return /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(import_jsx_runtime46.Fragment, { children: parts.join(" ") });
1491
+ return /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(import_jsx_runtime47.Fragment, { children: parts.join(" ") });
1216
1492
  }
1217
1493
  Duration.displayName = "TeachInUI.FormatDuration";
1218
1494
 
1219
1495
  // src/ui/format/boolean.tsx
1220
- var import_jsx_runtime47 = require("react/jsx-runtime");
1221
- function Boolean({
1496
+ var import_jsx_runtime48 = require("react/jsx-runtime");
1497
+ function Boolean2({
1222
1498
  value,
1223
1499
  trueLabel = "\u0414\u0430",
1224
1500
  falseLabel = "\u041D\u0435\u0442",
1225
1501
  nullLabel = "\u2014"
1226
1502
  }) {
1227
- if (value === null || value === void 0) return /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(import_jsx_runtime47.Fragment, { children: nullLabel });
1228
- return /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(import_jsx_runtime47.Fragment, { children: value ? trueLabel : falseLabel });
1503
+ if (value === null || value === void 0) return /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(import_jsx_runtime48.Fragment, { children: nullLabel });
1504
+ return /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(import_jsx_runtime48.Fragment, { children: value ? trueLabel : falseLabel });
1229
1505
  }
1230
- Boolean.displayName = "TeachInUI.FormatBoolean";
1506
+ Boolean2.displayName = "TeachInUI.FormatBoolean";
1231
1507
 
1232
1508
  // src/ui/format/uuid.tsx
1233
- var import_jsx_runtime48 = require("react/jsx-runtime");
1509
+ var import_jsx_runtime49 = require("react/jsx-runtime");
1234
1510
  var uuidHyphenatedRegex = /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$/;
1235
1511
  function normalizeUuid(value) {
1236
1512
  const trimmed = value.trim();
@@ -1253,24 +1529,24 @@ function Uuid({
1253
1529
  showVersion = false,
1254
1530
  invalidFallback = "\u2014"
1255
1531
  }) {
1256
- if (!value) return /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(import_jsx_runtime48.Fragment, { children: invalidFallback });
1532
+ if (!value) return /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(import_jsx_runtime49.Fragment, { children: invalidFallback });
1257
1533
  const normalized = normalizeUuid(value);
1258
- if (!normalized) return /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(import_jsx_runtime48.Fragment, { children: invalidFallback });
1534
+ if (!normalized) return /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(import_jsx_runtime49.Fragment, { children: invalidFallback });
1259
1535
  const formatted = letterCase === "upper" ? normalized.toUpperCase() : normalized;
1260
- if (!showVersion) return /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(import_jsx_runtime48.Fragment, { children: formatted });
1536
+ if (!showVersion) return /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(import_jsx_runtime49.Fragment, { children: formatted });
1261
1537
  const version = detectUuidVersion(normalized);
1262
- return /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(import_jsx_runtime48.Fragment, { children: version !== null ? `${formatted} (v${version})` : formatted });
1538
+ return /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(import_jsx_runtime49.Fragment, { children: version !== null ? `${formatted} (v${version})` : formatted });
1263
1539
  }
1264
1540
  Uuid.displayName = "TeachInUI.FormatUUID";
1265
1541
 
1266
1542
  // src/ui/surface/bento/bento.tsx
1267
- var import_tailwind_variants5 = require("tailwind-variants");
1268
- var import_jsx_runtime49 = require("react/jsx-runtime");
1269
- var bento = (0, import_tailwind_variants5.tv)({
1270
- base: "rounded-xl p-6 transition-colors",
1543
+ var import_tailwind_variants7 = require("tailwind-variants");
1544
+ var import_jsx_runtime50 = require("react/jsx-runtime");
1545
+ var bento = (0, import_tailwind_variants7.tv)({
1546
+ base: "p-8 transition-colors",
1271
1547
  variants: {
1272
1548
  color: {
1273
- default: "bg-default-50 text-default-700",
1549
+ default: "bg-content1 text-foreground",
1274
1550
  primary: "bg-primary-50 text-primary-700",
1275
1551
  secondary: "bg-secondary-50 text-secondary-700",
1276
1552
  success: "bg-success-50 text-success-700",
@@ -1279,9 +1555,9 @@ var bento = (0, import_tailwind_variants5.tv)({
1279
1555
  },
1280
1556
  radius: {
1281
1557
  none: "rounded-none",
1282
- sm: "rounded-md",
1283
- md: "rounded-lg",
1284
- lg: "rounded-xl",
1558
+ sm: "rounded-lg",
1559
+ md: "rounded-2xl",
1560
+ lg: "rounded-3xl",
1285
1561
  full: "rounded-full"
1286
1562
  },
1287
1563
  shadow: {
@@ -1303,28 +1579,40 @@ var bento = (0, import_tailwind_variants5.tv)({
1303
1579
  }
1304
1580
  });
1305
1581
  var Bento = ({ className, ...props }) => {
1306
- return /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("div", { className: bento({ ...props, className }), ...props });
1582
+ return /* @__PURE__ */ (0, import_jsx_runtime50.jsx)("div", { className: bento({ ...props, className }), ...props });
1307
1583
  };
1308
1584
  Bento.displayName = "TeachInUI.Bento";
1309
1585
 
1310
1586
  // src/ui/surface/card/card.tsx
1311
- var import_react30 = __toESM(require("react"));
1587
+ var import_react32 = __toESM(require("react"));
1312
1588
  var import_card = require("@heroui/card");
1313
- var import_jsx_runtime50 = require("react/jsx-runtime");
1314
- var Root = import_react30.default.forwardRef(({ children, ...props }, ref) => {
1315
- return /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(import_card.Card, { ref, ...props, children });
1589
+ var import_jsx_runtime51 = require("react/jsx-runtime");
1590
+ var CardBase = extendVariants2(import_card.Card, {
1591
+ variants: {
1592
+ radius: {
1593
+ sm: { base: "rounded-lg" },
1594
+ md: { base: "rounded-2xl" },
1595
+ lg: { base: "rounded-3xl" }
1596
+ }
1597
+ },
1598
+ defaultVariants: {
1599
+ shadow: "none"
1600
+ }
1601
+ });
1602
+ var Root = import_react32.default.forwardRef(({ children, className, ...props }, ref) => {
1603
+ return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(CardBase, { ref, className: cn("bg-default-100", className), ...props, children });
1316
1604
  });
1317
1605
  Root.displayName = "TeachInUI.Card.Root";
1318
- var Header = import_react30.default.forwardRef(({ children, ...props }, ref) => {
1319
- return /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(import_card.CardHeader, { ref, ...props, children });
1606
+ var Header = import_react32.default.forwardRef(({ children, ...props }, ref) => {
1607
+ return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_card.CardHeader, { ref, ...props, children });
1320
1608
  });
1321
1609
  Header.displayName = "TeachInUI.Card.Header";
1322
- var Body = import_react30.default.forwardRef(({ children, ...props }, ref) => {
1323
- return /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(import_card.CardBody, { ref, ...props, children });
1610
+ var Body = import_react32.default.forwardRef(({ children, ...props }, ref) => {
1611
+ return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_card.CardBody, { ref, ...props, children });
1324
1612
  });
1325
1613
  Body.displayName = "TeachInUI.Card.Body";
1326
- var Footer = import_react30.default.forwardRef(({ children, ...props }, ref) => {
1327
- return /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(import_card.CardFooter, { ref, ...props, children });
1614
+ var Footer = import_react32.default.forwardRef(({ children, ...props }, ref) => {
1615
+ return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_card.CardFooter, { ref, ...props, children });
1328
1616
  });
1329
1617
  Footer.displayName = "TeachInUI.Card.Footer";
1330
1618
  var Card = {
@@ -1336,9 +1624,9 @@ var Card = {
1336
1624
 
1337
1625
  // src/ui/layout/container/container.tsx
1338
1626
  var import_react_slot = require("@radix-ui/react-slot");
1339
- var import_tailwind_variants6 = require("tailwind-variants");
1340
- var import_jsx_runtime51 = require("react/jsx-runtime");
1341
- var variants = (0, import_tailwind_variants6.tv)({
1627
+ var import_tailwind_variants8 = require("tailwind-variants");
1628
+ var import_jsx_runtime52 = require("react/jsx-runtime");
1629
+ var variants = (0, import_tailwind_variants8.tv)({
1342
1630
  base: "w-full mx-auto px-6",
1343
1631
  variants: {
1344
1632
  size: {
@@ -1357,58 +1645,58 @@ var variants = (0, import_tailwind_variants6.tv)({
1357
1645
  });
1358
1646
  var Container = ({ children, asChild = false, className, size, ...props }) => {
1359
1647
  const Comp = asChild ? import_react_slot.Slot : "div";
1360
- return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(Comp, { className: cn(variants({ size }), className), ...props, children });
1648
+ return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(Comp, { className: cn(variants({ size }), className), ...props, children });
1361
1649
  };
1362
1650
  Container.displayName = "TeachInUI.Container";
1363
1651
 
1364
1652
  // src/ui/layout/page/breadcrumbs.tsx
1365
1653
  var import_breadcrumbs = require("@heroui/breadcrumbs");
1366
- var import_jsx_runtime52 = require("react/jsx-runtime");
1367
- var Breadcrumbs = ({ items }) => /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_breadcrumbs.Breadcrumbs, { children: items.map((item) => /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_breadcrumbs.BreadcrumbItem, { href: item.href, isDisabled: item.href === void 0, children: item.label }, item.label)) });
1654
+ var import_jsx_runtime53 = require("react/jsx-runtime");
1655
+ var Breadcrumbs = ({ items }) => /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_breadcrumbs.Breadcrumbs, { children: items.map((item) => /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_breadcrumbs.BreadcrumbItem, { href: item.href, isDisabled: item.href === void 0, children: item.label }, item.label)) });
1368
1656
 
1369
1657
  // src/ui/layout/page/page-content.tsx
1370
- var import_jsx_runtime53 = require("react/jsx-runtime");
1658
+ var import_jsx_runtime54 = require("react/jsx-runtime");
1371
1659
  var Root2 = ({
1372
1660
  children,
1373
1661
  breadcrumbs = []
1374
- }) => /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)("div", { className: "flex flex-col gap-6", children: [
1375
- breadcrumbs.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(Breadcrumbs, { items: breadcrumbs }),
1662
+ }) => /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)("div", { className: "flex flex-col gap-6", children: [
1663
+ breadcrumbs.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(Breadcrumbs, { items: breadcrumbs }),
1376
1664
  children
1377
1665
  ] });
1378
1666
  Root2.displayName = "TeachInUI.PageContent.Root";
1379
- var Header2 = ({ children, ...others }) => /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("header", { className: "flex items-center justify-between gap-4", role: "banner", ...others, children });
1667
+ var Header2 = ({ children, ...others }) => /* @__PURE__ */ (0, import_jsx_runtime54.jsx)("header", { className: "flex items-center justify-between gap-4", role: "banner", ...others, children });
1380
1668
  Header2.displayName = "TeachInUI.PageContent.Header";
1381
1669
  var Title = ({
1382
1670
  children,
1383
1671
  ...others
1384
- }) => /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("h1", { className: "text-4xl leading-10 font-bold", ...others, children });
1672
+ }) => /* @__PURE__ */ (0, import_jsx_runtime54.jsx)("h1", { className: "text-4xl leading-10 font-bold", ...others, children });
1385
1673
  Title.displayName = "TeachInUI.PageContent.Title";
1386
1674
  var Actions = ({
1387
1675
  children,
1388
1676
  ...others
1389
- }) => /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("div", { className: "flex gap-2", role: "group", ...others, children });
1677
+ }) => /* @__PURE__ */ (0, import_jsx_runtime54.jsx)("div", { className: "flex gap-2", role: "group", ...others, children });
1390
1678
  Actions.displayName = "TeachInUI.PageContent.Actions";
1391
- var Body2 = ({ children }) => /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("div", { className: "flex flex-col gap-6", children });
1679
+ var Body2 = ({ children }) => /* @__PURE__ */ (0, import_jsx_runtime54.jsx)("div", { className: "flex flex-col gap-6", children });
1392
1680
  Body2.displayName = "TeachInUI.PageContent.Body";
1393
1681
  var Section = ({
1394
1682
  children,
1395
1683
  ...others
1396
- }) => /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("section", { className: "flex flex-col gap-4", ...others, children });
1684
+ }) => /* @__PURE__ */ (0, import_jsx_runtime54.jsx)("section", { className: "flex flex-col gap-4", ...others, children });
1397
1685
  Section.displayName = "TeachInUI.PageContent.Section";
1398
1686
  var SectionHeader = ({
1399
1687
  children,
1400
1688
  ...others
1401
- }) => /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("div", { className: "flex items-center justify-between", ...others, children });
1689
+ }) => /* @__PURE__ */ (0, import_jsx_runtime54.jsx)("div", { className: "flex items-center justify-between", ...others, children });
1402
1690
  SectionHeader.displayName = "TeachInUI.PageContent.SectionHeader";
1403
1691
  var SectionTitle = ({
1404
1692
  children,
1405
1693
  ...others
1406
- }) => /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("h2", { className: "text-3xl leading-9 font-bold", ...others, children });
1694
+ }) => /* @__PURE__ */ (0, import_jsx_runtime54.jsx)("h2", { className: "text-3xl leading-9 font-bold", ...others, children });
1407
1695
  SectionTitle.displayName = "TeachInUI.PageContent.SectionTitle";
1408
1696
  var SectionActions = ({
1409
1697
  children,
1410
1698
  ...others
1411
- }) => /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("div", { className: "flex gap-2", role: "group", ...others, children });
1699
+ }) => /* @__PURE__ */ (0, import_jsx_runtime54.jsx)("div", { className: "flex gap-2", role: "group", ...others, children });
1412
1700
  SectionActions.displayName = "TeachInUI.PageContent.SectionActions";
1413
1701
  var PageContent = {
1414
1702
  Root: Root2,
@@ -1423,19 +1711,19 @@ var PageContent = {
1423
1711
  };
1424
1712
 
1425
1713
  // src/ui/layout/page/page-loading.tsx
1426
- var import_jsx_runtime54 = require("react/jsx-runtime");
1427
- var PageLoading = () => /* @__PURE__ */ (0, import_jsx_runtime54.jsx)("div", { className: "flex h-screen items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(Spinner, {}) });
1714
+ var import_jsx_runtime55 = require("react/jsx-runtime");
1715
+ var PageLoading = () => /* @__PURE__ */ (0, import_jsx_runtime55.jsx)("div", { className: "flex h-screen items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(Spinner, {}) });
1428
1716
  PageLoading.displayName = "TeachInUI.PageLoading";
1429
1717
 
1430
1718
  // src/ui/layout/page/section-loading.tsx
1431
- var import_jsx_runtime55 = require("react/jsx-runtime");
1432
- var SectionLoading = () => /* @__PURE__ */ (0, import_jsx_runtime55.jsx)("div", { className: "flex min-h-[400px] items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(Spinner, {}) });
1719
+ var import_jsx_runtime56 = require("react/jsx-runtime");
1720
+ var SectionLoading = () => /* @__PURE__ */ (0, import_jsx_runtime56.jsx)("div", { className: "flex min-h-[400px] items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(Spinner, {}) });
1433
1721
  SectionLoading.displayName = "TeachInUI.SectionLoading";
1434
1722
 
1435
1723
  // src/ui/layout/flex/flex.tsx
1436
- var import_tailwind_variants7 = require("tailwind-variants");
1437
- var import_jsx_runtime56 = require("react/jsx-runtime");
1438
- var variants2 = (0, import_tailwind_variants7.tv)({
1724
+ var import_tailwind_variants9 = require("tailwind-variants");
1725
+ var import_jsx_runtime57 = require("react/jsx-runtime");
1726
+ var variants2 = (0, import_tailwind_variants9.tv)({
1439
1727
  base: "flex",
1440
1728
  variants: {
1441
1729
  direction: {
@@ -1482,14 +1770,14 @@ var variants2 = (0, import_tailwind_variants7.tv)({
1482
1770
  }
1483
1771
  });
1484
1772
  var Flex = ({ className, ...props }) => {
1485
- return /* @__PURE__ */ (0, import_jsx_runtime56.jsx)("div", { className: variants2({ ...props, className }), ...props });
1773
+ return /* @__PURE__ */ (0, import_jsx_runtime57.jsx)("div", { className: variants2({ ...props, className }), ...props });
1486
1774
  };
1487
1775
  Flex.displayName = "TeachInUI.Flex";
1488
1776
 
1489
1777
  // src/ui/layout/grid/grid.tsx
1490
- var import_tailwind_variants8 = require("tailwind-variants");
1491
- var import_jsx_runtime57 = require("react/jsx-runtime");
1492
- var variants3 = (0, import_tailwind_variants8.tv)({
1778
+ var import_tailwind_variants10 = require("tailwind-variants");
1779
+ var import_jsx_runtime58 = require("react/jsx-runtime");
1780
+ var variants3 = (0, import_tailwind_variants10.tv)({
1493
1781
  base: "grid",
1494
1782
  variants: {
1495
1783
  columns: {
@@ -1538,26 +1826,26 @@ var variants3 = (0, import_tailwind_variants8.tv)({
1538
1826
  }
1539
1827
  });
1540
1828
  var Grid = ({ className, ...props }) => {
1541
- return /* @__PURE__ */ (0, import_jsx_runtime57.jsx)("div", { className: variants3({ ...props, className }), ...props });
1829
+ return /* @__PURE__ */ (0, import_jsx_runtime58.jsx)("div", { className: variants3({ ...props, className }), ...props });
1542
1830
  };
1543
1831
  Grid.displayName = "TeachInUI.Grid";
1544
1832
 
1545
1833
  // src/ui/layout/divider/divider.tsx
1546
- var import_react31 = __toESM(require("react"));
1834
+ var import_react33 = __toESM(require("react"));
1547
1835
  var import_divider = require("@heroui/divider");
1548
- var import_jsx_runtime58 = require("react/jsx-runtime");
1549
- var Divider = import_react31.default.forwardRef((props, ref) => {
1836
+ var import_jsx_runtime59 = require("react/jsx-runtime");
1837
+ var Divider = import_react33.default.forwardRef((props, ref) => {
1550
1838
  const { ...restProps } = props;
1551
- return /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(import_divider.Divider, { ref, ...restProps });
1839
+ return /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(import_divider.Divider, { ref, ...restProps });
1552
1840
  });
1553
1841
  Divider.displayName = "TeachInUI.Divider";
1554
1842
 
1555
1843
  // src/ui/layout/scroll-shadow/scroll-shadow.tsx
1556
- var import_react32 = __toESM(require("react"));
1844
+ var import_react34 = __toESM(require("react"));
1557
1845
  var import_scroll_shadow = require("@heroui/scroll-shadow");
1558
- var import_jsx_runtime59 = require("react/jsx-runtime");
1559
- var ScrollShadow = import_react32.default.forwardRef((props, ref) => {
1560
- return /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(import_scroll_shadow.ScrollShadow, { ref, ...props });
1846
+ var import_jsx_runtime60 = require("react/jsx-runtime");
1847
+ var ScrollShadow = import_react34.default.forwardRef((props, ref) => {
1848
+ return /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(import_scroll_shadow.ScrollShadow, { ref, ...props });
1561
1849
  });
1562
1850
  ScrollShadow.displayName = "TeachInUI.ScrollShadow";
1563
1851
 
@@ -1568,18 +1856,18 @@ var AccordionItem = Object.assign(import_accordion.AccordionItem, { displayName:
1568
1856
 
1569
1857
  // src/ui/navigation/link/link.tsx
1570
1858
  var import_link = require("@heroui/link");
1571
- var import_jsx_runtime60 = require("react/jsx-runtime");
1859
+ var import_jsx_runtime61 = require("react/jsx-runtime");
1572
1860
  function Link({ children, ...props }) {
1573
- return /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(import_link.Link, { ...props, children });
1861
+ return /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(import_link.Link, { ...props, children });
1574
1862
  }
1575
1863
  Link.displayName = "TeachInUI.Link";
1576
1864
 
1577
1865
  // src/ui/navigation/tabs/tabs.tsx
1578
- var import_react33 = __toESM(require("react"));
1866
+ var import_react35 = __toESM(require("react"));
1579
1867
  var import_tabs = require("@heroui/tabs");
1580
- var import_jsx_runtime61 = require("react/jsx-runtime");
1581
- var Root3 = import_react33.default.forwardRef(({ children, ...props }, ref) => {
1582
- return /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(import_tabs.Tabs, { ref, ...props, children });
1868
+ var import_jsx_runtime62 = require("react/jsx-runtime");
1869
+ var Root3 = import_react35.default.forwardRef(({ children, ...props }, ref) => {
1870
+ return /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(import_tabs.Tabs, { ref, ...props, children });
1583
1871
  });
1584
1872
  Root3.displayName = "TeachInUI.Tabs.Root";
1585
1873
  var Tab = Object.assign(import_tabs.Tab, {
@@ -1591,35 +1879,35 @@ var Tabs = {
1591
1879
  };
1592
1880
 
1593
1881
  // src/ui/navigation/navbar/navbar.tsx
1594
- var import_react34 = __toESM(require("react"));
1882
+ var import_react36 = __toESM(require("react"));
1595
1883
  var import_navbar = require("@heroui/navbar");
1596
- var import_jsx_runtime62 = require("react/jsx-runtime");
1597
- var Navbar = import_react34.default.forwardRef((props, ref) => {
1598
- return /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(import_navbar.Navbar, { ref, ...props });
1884
+ var import_jsx_runtime63 = require("react/jsx-runtime");
1885
+ var Navbar = import_react36.default.forwardRef((props, ref) => {
1886
+ return /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(import_navbar.Navbar, { ref, ...props });
1599
1887
  });
1600
1888
  Navbar.displayName = "TeachInUI.Navbar";
1601
- var NavbarBrand = import_react34.default.forwardRef((props, ref) => {
1602
- return /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(import_navbar.NavbarBrand, { ref, ...props });
1889
+ var NavbarBrand = import_react36.default.forwardRef((props, ref) => {
1890
+ return /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(import_navbar.NavbarBrand, { ref, ...props });
1603
1891
  });
1604
1892
  NavbarBrand.displayName = "TeachInUI.NavbarBrand";
1605
- var NavbarContent = import_react34.default.forwardRef((props, ref) => {
1606
- return /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(import_navbar.NavbarContent, { ref, ...props });
1893
+ var NavbarContent = import_react36.default.forwardRef((props, ref) => {
1894
+ return /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(import_navbar.NavbarContent, { ref, ...props });
1607
1895
  });
1608
1896
  NavbarContent.displayName = "TeachInUI.NavbarContent";
1609
- var NavbarItem = import_react34.default.forwardRef((props, ref) => {
1610
- return /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(import_navbar.NavbarItem, { ref, ...props });
1897
+ var NavbarItem = import_react36.default.forwardRef((props, ref) => {
1898
+ return /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(import_navbar.NavbarItem, { ref, ...props });
1611
1899
  });
1612
1900
  NavbarItem.displayName = "TeachInUI.NavbarItem";
1613
- var NavbarMenu = import_react34.default.forwardRef((props, ref) => {
1614
- return /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(import_navbar.NavbarMenu, { ref, ...props });
1901
+ var NavbarMenu = import_react36.default.forwardRef((props, ref) => {
1902
+ return /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(import_navbar.NavbarMenu, { ref, ...props });
1615
1903
  });
1616
1904
  NavbarMenu.displayName = "TeachInUI.NavbarMenu";
1617
- var NavbarMenuItem = import_react34.default.forwardRef((props, ref) => {
1618
- return /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(import_navbar.NavbarMenuItem, { ref, ...props });
1905
+ var NavbarMenuItem = import_react36.default.forwardRef((props, ref) => {
1906
+ return /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(import_navbar.NavbarMenuItem, { ref, ...props });
1619
1907
  });
1620
1908
  NavbarMenuItem.displayName = "TeachInUI.NavbarMenuItem";
1621
- var NavbarMenuToggle = import_react34.default.forwardRef((props, ref) => {
1622
- return /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(import_navbar.NavbarMenuToggle, { ref, ...props });
1909
+ var NavbarMenuToggle = import_react36.default.forwardRef((props, ref) => {
1910
+ return /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(import_navbar.NavbarMenuToggle, { ref, ...props });
1623
1911
  });
1624
1912
  NavbarMenuToggle.displayName = "TeachInUI.NavbarMenuToggle";
1625
1913
 
@@ -1632,30 +1920,30 @@ var BreadcrumbItem2 = Object.assign(import_breadcrumbs3.BreadcrumbItem, {
1632
1920
 
1633
1921
  // src/ui/overlays/modal/modal.tsx
1634
1922
  var import_modal = require("@heroui/modal");
1635
- var import_jsx_runtime63 = require("react/jsx-runtime");
1923
+ var import_jsx_runtime64 = require("react/jsx-runtime");
1636
1924
  function Root4({
1637
1925
  size = "md",
1638
1926
  placement = "center",
1639
1927
  children,
1640
1928
  ...props
1641
1929
  }) {
1642
- return /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(import_modal.Modal, { placement, size, ...props, children });
1930
+ return /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(import_modal.Modal, { placement, size, ...props, children });
1643
1931
  }
1644
1932
  Root4.displayName = "TeachInUI.Modal.Root";
1645
1933
  function Content({ children, ...props }) {
1646
- return /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(import_modal.ModalContent, { ...props, children: (onClose) => typeof children === "function" ? children(onClose) : children });
1934
+ return /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(import_modal.ModalContent, { ...props, children: (onClose) => typeof children === "function" ? children(onClose) : children });
1647
1935
  }
1648
1936
  Content.displayName = "TeachInUI.Modal.Content";
1649
1937
  function Header3({ children, ...props }) {
1650
- return /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(import_modal.ModalHeader, { ...props, children });
1938
+ return /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(import_modal.ModalHeader, { ...props, children });
1651
1939
  }
1652
1940
  Header3.displayName = "TeachInUI.Modal.Header";
1653
1941
  function Body3({ children, ...props }) {
1654
- return /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(import_modal.ModalBody, { ...props, children });
1942
+ return /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(import_modal.ModalBody, { ...props, children });
1655
1943
  }
1656
1944
  Body3.displayName = "TeachInUI.Modal.Body";
1657
1945
  function Footer2({ children, ...props }) {
1658
- return /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(import_modal.ModalFooter, { ...props, children });
1946
+ return /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(import_modal.ModalFooter, { ...props, children });
1659
1947
  }
1660
1948
  Footer2.displayName = "TeachInUI.Modal.Footer";
1661
1949
  var Modal = {
@@ -1680,17 +1968,17 @@ var DropdownSection = Object.assign(import_dropdown.DropdownSection, {
1680
1968
 
1681
1969
  // src/ui/overlays/popover/popover.tsx
1682
1970
  var import_popover = require("@heroui/popover");
1683
- var import_jsx_runtime64 = require("react/jsx-runtime");
1971
+ var import_jsx_runtime65 = require("react/jsx-runtime");
1684
1972
  var Root5 = ({ children, ...props }) => {
1685
- return /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(import_popover.Popover, { ...props, children });
1973
+ return /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(import_popover.Popover, { ...props, children });
1686
1974
  };
1687
1975
  Root5.displayName = "TeachInUI.Popover.Root";
1688
1976
  var Trigger = ({ children, ...props }) => {
1689
- return /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(import_popover.PopoverTrigger, { ...props, children });
1977
+ return /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(import_popover.PopoverTrigger, { ...props, children });
1690
1978
  };
1691
1979
  Trigger.displayName = "TeachInUI.Popover.Trigger";
1692
1980
  var Content2 = ({ children, ...props }) => {
1693
- return /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(import_popover.PopoverContent, { ...props, children });
1981
+ return /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(import_popover.PopoverContent, { ...props, children });
1694
1982
  };
1695
1983
  Content2.displayName = "TeachInUI.Popover.Content";
1696
1984
  var Popover = {
@@ -1701,7 +1989,7 @@ var Popover = {
1701
1989
 
1702
1990
  // src/ui/provider/ui-provider.tsx
1703
1991
  var import_system3 = require("@heroui/system");
1704
- var import_jsx_runtime65 = require("react/jsx-runtime");
1992
+ var import_jsx_runtime66 = require("react/jsx-runtime");
1705
1993
  function UIProvider({
1706
1994
  children,
1707
1995
  locale = "ru-RU",
@@ -1709,19 +1997,12 @@ function UIProvider({
1709
1997
  navigate,
1710
1998
  toastProviderProps
1711
1999
  }) {
1712
- return /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)(import_system3.HeroUIProvider, { labelPlacement, locale, navigate, children: [
2000
+ return /* @__PURE__ */ (0, import_jsx_runtime66.jsxs)(import_system3.HeroUIProvider, { labelPlacement, locale, navigate, children: [
1713
2001
  children,
1714
- /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(ToastProvider, { ...toastProviderProps })
2002
+ /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(ToastProvider, { ...toastProviderProps })
1715
2003
  ] });
1716
2004
  }
1717
2005
 
1718
- // src/ui/style/css.ts
1719
- var import_clsx = require("clsx");
1720
- var import_tailwind_merge = require("tailwind-merge");
1721
- function cn(...inputs) {
1722
- return (0, import_tailwind_merge.twMerge)((0, import_clsx.clsx)(inputs));
1723
- }
1724
-
1725
2006
  // src/ui/theme/tokens/breakpoints.ts
1726
2007
  var breakpoints = {
1727
2008
  xs: 480,
@@ -2172,6 +2453,7 @@ var theme = (0, import_theme.heroui)({
2172
2453
  NavbarMenu,
2173
2454
  NavbarMenuItem,
2174
2455
  NavbarMenuToggle,
2456
+ Number,
2175
2457
  PageContent,
2176
2458
  PageLoading,
2177
2459
  Pagination,
@@ -2191,6 +2473,7 @@ var theme = (0, import_theme.heroui)({
2191
2473
  SectionTitle,
2192
2474
  Select,
2193
2475
  SelectField,
2476
+ SelectItem,
2194
2477
  Spinner,
2195
2478
  Switch,
2196
2479
  SwitchField,