@teach-in/react 1.2.0 → 1.3.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 (113) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +9 -9
  3. package/dist/chunk-3YOW5DEZ.mjs +45 -0
  4. package/dist/{chunk-QCLLPJMB.mjs → chunk-544SDU73.mjs} +2 -2
  5. package/dist/{chunk-2CEZXLZR.mjs → chunk-AFVGHUW2.mjs} +1 -1
  6. package/dist/{chunk-IU2JYI7W.mjs → chunk-CETCW7DS.mjs} +1 -1
  7. package/dist/{chunk-5FFWQB7D.mjs → chunk-JDFRAN4S.mjs} +2 -12
  8. package/dist/{chunk-KTWHCUYV.mjs → chunk-KTUGFQWJ.mjs} +1 -1
  9. package/dist/{chunk-46SKVFMZ.mjs → chunk-LJIVY6GU.mjs} +1 -1
  10. package/dist/{chunk-CKJ5U5Q4.mjs → chunk-NLHQDWUK.mjs} +1 -1
  11. package/dist/{chunk-R46SWVWL.mjs → chunk-R7LDL5CU.mjs} +1 -1
  12. package/dist/chunk-V2G5QHZZ.mjs +14 -0
  13. package/dist/{chunk-2ASQXBDD.mjs → chunk-WFNNN6WU.mjs} +1 -1
  14. package/dist/index.js +230 -575
  15. package/dist/index.mjs +125 -141
  16. package/dist/ui/data/index.mjs +8 -8
  17. package/dist/ui/feedback/index.mjs +14 -14
  18. package/dist/ui/form/index.js +106 -447
  19. package/dist/ui/form/index.mjs +21 -31
  20. package/dist/ui/form/rhf/fields/autocomplete-field.mjs +14 -20
  21. package/dist/ui/form/rhf/fields/checkbox-field.mjs +14 -20
  22. package/dist/ui/form/rhf/fields/date-picker-field.mjs +14 -20
  23. package/dist/ui/form/rhf/fields/email-field.js +10 -147
  24. package/dist/ui/form/rhf/fields/email-field.mjs +15 -21
  25. package/dist/ui/form/rhf/fields/index.d.ts +0 -1
  26. package/dist/ui/form/rhf/fields/index.js +102 -443
  27. package/dist/ui/form/rhf/fields/index.mjs +21 -31
  28. package/dist/ui/form/rhf/fields/input-field.js +6 -153
  29. package/dist/ui/form/rhf/fields/input-field.mjs +15 -21
  30. package/dist/ui/form/rhf/fields/radio-field.mjs +14 -20
  31. package/dist/ui/form/rhf/fields/select-field.js +26 -136
  32. package/dist/ui/form/rhf/fields/select-field.mjs +15 -21
  33. package/dist/ui/form/rhf/fields/switch-field.mjs +14 -20
  34. package/dist/ui/form/rhf/fields/text-field.js +10 -147
  35. package/dist/ui/form/rhf/fields/text-field.mjs +15 -21
  36. package/dist/ui/form/rhf/fields/textarea-field.mjs +14 -20
  37. package/dist/ui/form/rhf/index.js +102 -443
  38. package/dist/ui/form/rhf/index.mjs +21 -31
  39. package/dist/ui/format/index.mjs +3 -3
  40. package/dist/ui/index.js +230 -575
  41. package/dist/ui/index.mjs +125 -141
  42. package/dist/ui/inputs/checkbox/index.mjs +3 -3
  43. package/dist/ui/inputs/email/email.js +7 -144
  44. package/dist/ui/inputs/email/email.mjs +2 -4
  45. package/dist/ui/inputs/email/index.js +7 -144
  46. package/dist/ui/inputs/email/index.mjs +2 -4
  47. package/dist/ui/inputs/index.d.ts +0 -2
  48. package/dist/ui/inputs/index.js +56 -363
  49. package/dist/ui/inputs/index.mjs +25 -37
  50. package/dist/ui/inputs/input/index.js +3 -140
  51. package/dist/ui/inputs/input/index.mjs +1 -3
  52. package/dist/ui/inputs/input/input.d.ts +0 -1
  53. package/dist/ui/inputs/input/input.js +3 -140
  54. package/dist/ui/inputs/input/input.mjs +1 -3
  55. package/dist/ui/inputs/select/index.js +22 -132
  56. package/dist/ui/inputs/select/index.mjs +1 -3
  57. package/dist/ui/inputs/select/select.d.ts +0 -4
  58. package/dist/ui/inputs/select/select.js +22 -132
  59. package/dist/ui/inputs/select/select.mjs +1 -3
  60. package/dist/ui/inputs/text/index.js +7 -144
  61. package/dist/ui/inputs/text/index.mjs +2 -4
  62. package/dist/ui/inputs/text/text.js +7 -144
  63. package/dist/ui/inputs/text/text.mjs +2 -4
  64. package/dist/ui/layout/container/container.mjs +64 -71
  65. package/dist/ui/layout/container/index.mjs +64 -71
  66. package/dist/ui/layout/index.mjs +69 -76
  67. package/dist/ui/layout/page/index.mjs +3 -3
  68. package/dist/ui/layout/page/page-loading.mjs +3 -3
  69. package/dist/ui/layout/page/section-loading.mjs +3 -3
  70. package/dist/ui/navigation/index.mjs +5 -5
  71. package/dist/ui/overlays/index.mjs +4 -4
  72. package/dist/ui/provider/index.mjs +3 -3
  73. package/dist/ui/provider/ui-provider.mjs +3 -3
  74. package/dist/ui/theme/colors/common.mjs +3 -3
  75. package/dist/ui/theme/colors/index.mjs +6 -6
  76. package/dist/ui/theme/colors/semantic.mjs +4 -4
  77. package/dist/ui/theme/colors.mjs +6 -6
  78. package/dist/ui/theme/index.mjs +6 -6
  79. package/dist/ui/theme/theme.mjs +6 -6
  80. package/package.json +1 -1
  81. package/dist/chunk-2UHA3DYG.mjs +0 -62
  82. package/dist/chunk-C2VWADF5.mjs +0 -34
  83. package/dist/chunk-CUEG2BFV.mjs +0 -34
  84. package/dist/chunk-MCQGBAUS.mjs +0 -73
  85. package/dist/chunk-NSU66J5E.mjs +0 -59
  86. package/dist/chunk-SEJXJZSK.mjs +0 -64
  87. package/dist/chunk-TUIN5YJW.mjs +0 -33
  88. package/dist/chunk-UQAG7TKJ.mjs +0 -1
  89. package/dist/chunk-VXYV37IM.mjs +0 -74
  90. package/dist/ui/form/rhf/fields/search-field.d.ts +0 -10
  91. package/dist/ui/form/rhf/fields/search-field.js +0 -296
  92. package/dist/ui/form/rhf/fields/search-field.mjs +0 -37
  93. package/dist/ui/inputs/clear-button.d.ts +0 -5
  94. package/dist/ui/inputs/clear-button.js +0 -67
  95. package/dist/ui/inputs/clear-button.mjs +0 -8
  96. package/dist/ui/inputs/input/use-input.d.ts +0 -19
  97. package/dist/ui/inputs/input/use-input.js +0 -82
  98. package/dist/ui/inputs/input/use-input.mjs +0 -7
  99. package/dist/ui/inputs/search/index.d.ts +0 -1
  100. package/dist/ui/inputs/search/index.js +0 -270
  101. package/dist/ui/inputs/search/index.mjs +0 -13
  102. package/dist/ui/inputs/search/search.d.ts +0 -7
  103. package/dist/ui/inputs/search/search.js +0 -268
  104. package/dist/ui/inputs/search/search.mjs +0 -12
  105. package/dist/ui/inputs/search/use-search.d.ts +0 -12
  106. package/dist/ui/inputs/search/use-search.js +0 -57
  107. package/dist/ui/inputs/search/use-search.mjs +0 -7
  108. package/dist/ui/inputs/select/use-select.d.ts +0 -17
  109. package/dist/ui/inputs/select/use-select.js +0 -85
  110. package/dist/ui/inputs/select/use-select.mjs +0 -7
  111. package/dist/{chunk-IXPMUODA.mjs → chunk-5WDV3PDI.mjs} +6 -6
  112. /package/dist/{chunk-5RNCFTW5.mjs → chunk-CZEO3U25.mjs} +0 -0
  113. /package/dist/{chunk-PTCNYQVY.mjs → chunk-Q6JSJOU4.mjs} +0 -0
package/dist/ui/index.js CHANGED
@@ -49,7 +49,6 @@ __export(ui_exports, {
49
49
  CheckboxGroup: () => CheckboxGroup,
50
50
  Chip: () => Chip,
51
51
  CircularProgress: () => CircularProgress,
52
- ClearButton: () => ClearButton,
53
52
  Container: () => Container,
54
53
  DatePicker: () => DatePicker,
55
54
  DatePickerField: () => DatePickerField,
@@ -98,8 +97,6 @@ __export(ui_exports, {
98
97
  RadioGroup: () => RadioGroup,
99
98
  Root: () => Root2,
100
99
  ScrollShadow: () => ScrollShadow,
101
- Search: () => Search,
102
- SearchField: () => SearchField,
103
100
  Section: () => Section,
104
101
  SectionActions: () => SectionActions,
105
102
  SectionHeader: () => SectionHeader,
@@ -353,361 +350,58 @@ var DatePicker = import_react16.default.forwardRef(
353
350
  DatePicker.displayName = "TeachInUI.DatePicker";
354
351
 
355
352
  // src/ui/inputs/email/email.tsx
356
- var import_react20 = __toESM(require("react"));
353
+ var import_react18 = __toESM(require("react"));
357
354
 
358
355
  // src/ui/inputs/input/input.tsx
359
- var import_react19 = __toESM(require("react"));
360
- var import_input = require("@heroui/input");
361
- var import_tailwind_variants = require("tailwind-variants");
362
-
363
- // src/ui/inputs/clear-button.tsx
364
356
  var import_react17 = __toESM(require("react"));
365
- var import_button3 = require("@heroui/button");
366
- var import_lucide_react = require("lucide-react");
357
+ var import_input = require("@heroui/input");
367
358
  var import_jsx_runtime17 = require("react/jsx-runtime");
368
- var ClearButton = import_react17.default.forwardRef(
369
- ({ onClear }, ref) => {
370
- return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
371
- import_button3.Button,
372
- {
373
- ref,
374
- isIconOnly: true,
375
- "aria-label": "\u041E\u0447\u0438\u0441\u0442\u0438\u0442\u044C",
376
- as: "span",
377
- className: "opacity-0 transition-opacity group-hover:opacity-100",
378
- color: "default",
379
- radius: "full",
380
- size: "sm",
381
- tabIndex: 0,
382
- variant: "light",
383
- onPress: onClear,
384
- children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(import_lucide_react.XIcon, { className: "size-4 text-default-500" })
385
- }
386
- );
387
- }
388
- );
389
- ClearButton.displayName = "TeachInUI.ClearButton";
390
-
391
- // src/ui/inputs/input/use-input.ts
392
- var import_react18 = require("react");
393
- function useInput({
394
- value,
395
- defaultValue,
396
- onValueChange,
397
- onClear,
398
- isReadOnly,
399
- isClearable = true,
400
- ref
401
- }) {
402
- const inputRef = (0, import_react18.useRef)(null);
403
- const [internalValue, setInternalValue] = (0, import_react18.useState)(defaultValue != null ? defaultValue : "");
404
- const isControlled = value !== void 0;
405
- const currentValue = isControlled ? value : internalValue;
406
- const hasValue = String(currentValue).length > 0;
407
- const handleValueChange = (0, import_react18.useCallback)(
408
- (newValue) => {
409
- if (!isControlled) {
410
- setInternalValue(newValue);
411
- }
412
- onValueChange == null ? void 0 : onValueChange(newValue);
413
- },
414
- [isControlled, onValueChange]
415
- );
416
- const handleClear = (0, import_react18.useCallback)(() => {
417
- var _a;
418
- onClear == null ? void 0 : onClear();
419
- handleValueChange("");
420
- (_a = inputRef.current) == null ? void 0 : _a.focus();
421
- }, [onClear, handleValueChange]);
422
- const mergedRef = (0, import_react18.useCallback)(
423
- (node) => {
424
- inputRef.current = node;
425
- if (typeof ref === "function") {
426
- ref(node);
427
- } else if (ref) {
428
- ref.current = node;
429
- }
430
- },
431
- [ref]
432
- );
433
- const showClearButton = hasValue && !isReadOnly && isClearable;
434
- return {
435
- inputRef,
436
- currentValue,
437
- hasValue,
438
- handleValueChange,
439
- handleClear,
440
- mergedRef,
441
- showClearButton
442
- };
443
- }
444
-
445
- // src/ui/inputs/input/input.tsx
446
- var import_jsx_runtime18 = require("react/jsx-runtime");
447
- var inputWrapperVariants = (0, import_tailwind_variants.tv)({
448
- variants: {
449
- variant: {
450
- flat: "",
451
- underlined: "",
452
- bordered: "border-1",
453
- faded: "border-1"
454
- }
455
- }
359
+ var Input = import_react17.default.forwardRef(({ ...props }, ref) => {
360
+ return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(import_input.Input, { ref, ...props });
456
361
  });
457
- var Input = import_react19.default.forwardRef(
458
- ({
459
- value,
460
- defaultValue,
461
- onClear,
462
- onValueChange,
463
- variant,
464
- classNames,
465
- endContent,
466
- isReadOnly,
467
- isClearable,
468
- ...props
469
- }, ref) => {
470
- const { currentValue, handleValueChange, handleClear, mergedRef, showClearButton } = useInput({
471
- value,
472
- defaultValue,
473
- onValueChange,
474
- onClear,
475
- isReadOnly,
476
- isClearable,
477
- ref
478
- });
479
- return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
480
- import_input.Input,
481
- {
482
- ref: mergedRef,
483
- classNames: {
484
- ...classNames,
485
- inputWrapper: inputWrapperVariants({ variant }),
486
- innerWrapper: "group"
487
- },
488
- defaultValue,
489
- endContent: (endContent || showClearButton) && /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { className: "flex items-center gap-1", children: [
490
- endContent,
491
- showClearButton && /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(ClearButton, { onClear: handleClear })
492
- ] }),
493
- isReadOnly,
494
- value: currentValue,
495
- variant,
496
- onValueChange: handleValueChange,
497
- ...props
498
- }
499
- );
500
- }
501
- );
502
362
  Input.displayName = "TeachInUI.Input";
503
363
 
504
364
  // src/ui/inputs/email/email.tsx
505
- var import_jsx_runtime19 = require("react/jsx-runtime");
506
- var Email = import_react20.default.forwardRef(({ ...props }, ref) => {
507
- return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(Input, { ref, autoComplete: "email", type: "email", ...props });
365
+ var import_jsx_runtime18 = require("react/jsx-runtime");
366
+ var Email = import_react18.default.forwardRef(({ ...props }, ref) => {
367
+ return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Input, { ref, autoComplete: "email", type: "email", ...props });
508
368
  });
509
369
  Email.displayName = "TeachInUI.Email";
510
370
 
511
- // src/ui/inputs/search/search.tsx
512
- var import_react22 = __toESM(require("react"));
513
- var import_lucide_react2 = require("lucide-react");
514
- var import_button4 = require("@heroui/button");
515
- var import_tailwind_variants2 = require("tailwind-variants");
516
-
517
- // src/ui/inputs/search/use-search.ts
518
- var import_react21 = require("react");
519
- function useSearch({ value, onSearch, onCancel, onKeyDown }) {
520
- const handleKeyDown = (0, import_react21.useCallback)(
521
- (event) => {
522
- if (event.key === "Enter") {
523
- event.preventDefault();
524
- onSearch == null ? void 0 : onSearch(event.target.value);
525
- } else if (event.key === "Escape") {
526
- event.preventDefault();
527
- onCancel == null ? void 0 : onCancel();
528
- }
529
- onKeyDown == null ? void 0 : onKeyDown(event);
530
- },
531
- [onSearch, onCancel, onKeyDown]
532
- );
533
- const hasValue = value !== void 0 && String(value).length > 0;
534
- const handleSearchClick = (0, import_react21.useCallback)(() => {
535
- if (hasValue) {
536
- onSearch == null ? void 0 : onSearch(value);
537
- }
538
- }, [value, onSearch]);
539
- return {
540
- handleKeyDown,
541
- handleSearchClick,
542
- hasValue
543
- };
544
- }
545
-
546
- // src/ui/inputs/search/search.tsx
547
- var import_jsx_runtime20 = require("react/jsx-runtime");
548
- var searchIconVariants = (0, import_tailwind_variants2.tv)({
549
- base: "size-5 shrink-0",
550
- variants: {
551
- variant: {
552
- faded: "text-default-400",
553
- flat: "text-default-foreground",
554
- bordered: "text-default-400",
555
- underlined: "text-default-foreground"
556
- }
557
- }
558
- });
559
- var Search = import_react22.default.forwardRef(
560
- ({ variant = "bordered", radius = "full", value, onSearch, onCancel, onKeyDown, ...props }, ref) => {
561
- const { handleKeyDown, handleSearchClick, hasValue } = useSearch({
562
- value,
563
- onSearch,
564
- onCancel,
565
- onKeyDown
566
- });
567
- return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
568
- Input,
569
- {
570
- ref,
571
- radius,
572
- startContent: onSearch ? /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
573
- import_button4.Button,
574
- {
575
- isIconOnly: true,
576
- "aria-label": "\u041F\u043E\u0438\u0441\u043A",
577
- isDisabled: !hasValue,
578
- radius: "full",
579
- size: "sm",
580
- variant: "light",
581
- onPress: handleSearchClick,
582
- children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_lucide_react2.SearchIcon, { className: searchIconVariants({ variant }) })
583
- }
584
- ) : /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_lucide_react2.SearchIcon, { className: searchIconVariants({ variant }) }),
585
- value,
586
- variant,
587
- onKeyDown: handleKeyDown,
588
- ...props
589
- }
590
- );
591
- }
592
- );
593
- Search.displayName = "TeachInUI.Search";
594
-
595
371
  // src/ui/inputs/select/select.tsx
596
- var import_react24 = __toESM(require("react"));
372
+ var import_react19 = __toESM(require("react"));
597
373
  var import_select = require("@heroui/select");
598
- var import_tailwind_variants3 = require("tailwind-variants");
599
-
600
- // src/ui/inputs/select/use-select.ts
601
- var import_react23 = require("react");
602
- function useSelect({
603
- value,
604
- onChange,
605
- onClear,
606
- selectionMode,
607
- isClearable = true
608
- }) {
609
- const isMultiple = selectionMode === "multiple";
610
- const [internalValue, setInternalValue] = (0, import_react23.useState)(
611
- isMultiple ? [] : null
612
- );
613
- const isControlled = value !== void 0;
614
- const currentValue = isControlled ? value : internalValue;
615
- const hasValue = currentValue != null && (Array.isArray(currentValue) ? currentValue.length > 0 : currentValue !== "");
616
- const handleChange = (0, import_react23.useCallback)(
617
- (newValue) => {
618
- if (!isControlled) {
619
- setInternalValue(newValue);
620
- }
621
- if (isMultiple) {
622
- onChange == null ? void 0 : onChange(newValue);
623
- } else {
624
- onChange == null ? void 0 : onChange(newValue);
625
- }
626
- },
627
- [isControlled, onChange, isMultiple]
628
- );
629
- const handleClear = (0, import_react23.useCallback)(() => {
630
- onClear == null ? void 0 : onClear();
631
- handleChange(isMultiple ? [] : null);
632
- }, [onClear, handleChange, isMultiple]);
633
- const selectedKeys = (0, import_react23.useMemo)(() => {
634
- if (currentValue == null) return /* @__PURE__ */ new Set();
635
- return new Set(Array.isArray(currentValue) ? currentValue : [currentValue]);
636
- }, [currentValue]);
637
- const handleSelectionChange = (0, import_react23.useCallback)(
638
- (keys) => {
639
- var _a;
640
- if (keys === "all") return;
641
- const selected = Array.from(keys).filter((key) => typeof key === "string");
642
- handleChange(isMultiple ? selected : (_a = selected[0]) != null ? _a : null);
643
- },
644
- [handleChange, isMultiple]
645
- );
646
- const showClearButton = hasValue && isClearable;
647
- return {
648
- currentValue,
649
- hasValue,
650
- selectedKeys,
651
- handleSelectionChange,
652
- handleClear,
653
- showClearButton
654
- };
655
- }
656
-
657
- // src/ui/inputs/select/select.tsx
658
- var import_jsx_runtime21 = require("react/jsx-runtime");
659
- var selectWrapperVariants = (0, import_tailwind_variants3.tv)({
660
- variants: {
661
- variant: {
662
- flat: "",
663
- underlined: "",
664
- bordered: "border-1",
665
- faded: "border-1"
666
- }
667
- }
668
- });
669
- var Select = import_react24.default.forwardRef(
670
- ({
671
- value,
672
- defaultSelectedKeys,
673
- items,
674
- onChange,
675
- selectionMode,
676
- onClear,
677
- variant,
678
- classNames,
679
- endContent,
680
- isClearable,
681
- ...props
682
- }, ref) => {
683
- const { selectedKeys, handleSelectionChange, handleClear, showClearButton } = useSelect({
684
- value,
685
- onChange,
686
- onClear,
687
- selectionMode,
688
- isClearable
689
- });
690
- return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
374
+ var import_jsx_runtime19 = require("react/jsx-runtime");
375
+ var Select = import_react19.default.forwardRef(
376
+ ({ value, items, onChange, selectionMode, ...props }, ref) => {
377
+ const isMultiple = selectionMode === "multiple";
378
+ const selectedKeys = import_react19.default.useMemo(() => {
379
+ if (value == null) return /* @__PURE__ */ new Set();
380
+ return new Set(Array.isArray(value) ? value : [value]);
381
+ }, [value]);
382
+ const handleSelectionChange = import_react19.default.useCallback(
383
+ (keys) => {
384
+ var _a;
385
+ if (keys === "all") return;
386
+ const selected = Array.from(keys).filter((key) => typeof key === "string");
387
+ if (isMultiple) {
388
+ onChange == null ? void 0 : onChange(selected);
389
+ } else {
390
+ onChange == null ? void 0 : onChange((_a = selected[0]) != null ? _a : null);
391
+ }
392
+ },
393
+ [onChange, isMultiple]
394
+ );
395
+ return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
691
396
  import_select.Select,
692
397
  {
693
398
  ref,
694
- classNames: {
695
- ...classNames,
696
- trigger: selectWrapperVariants({ variant }),
697
- innerWrapper: "group"
698
- },
699
- defaultSelectedKeys,
700
- endContent: (endContent || showClearButton) && /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)("div", { className: "flex items-center gap-1", children: [
701
- endContent,
702
- showClearButton && /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(ClearButton, { onClear: handleClear })
703
- ] }),
704
399
  items,
705
400
  selectedKeys,
706
401
  selectionMode,
707
- variant,
708
402
  onSelectionChange: handleSelectionChange,
709
403
  ...props,
710
- children: (item) => /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_select.SelectItem, { children: item.label }, item.key)
404
+ children: (item) => /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_select.SelectItem, { children: item.label }, item.key)
711
405
  }
712
406
  );
713
407
  }
@@ -715,20 +409,20 @@ var Select = import_react24.default.forwardRef(
715
409
  Select.displayName = "TeachInUI.Select";
716
410
 
717
411
  // src/ui/inputs/switch/switch.tsx
718
- var import_react25 = __toESM(require("react"));
412
+ var import_react20 = __toESM(require("react"));
719
413
  var import_switch = require("@heroui/switch");
720
- var import_jsx_runtime22 = require("react/jsx-runtime");
721
- var Switch = import_react25.default.forwardRef(({ ...props }, ref) => {
722
- return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(import_switch.Switch, { ref, ...props });
414
+ var import_jsx_runtime20 = require("react/jsx-runtime");
415
+ var Switch = import_react20.default.forwardRef(({ ...props }, ref) => {
416
+ return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_switch.Switch, { ref, ...props });
723
417
  });
724
418
  Switch.displayName = "TeachInUI.Switch";
725
419
 
726
420
  // src/ui/inputs/switch/favorite-switch.tsx
727
421
  var import_switch2 = require("@heroui/switch");
728
- var import_lucide_react3 = require("lucide-react");
729
- var import_tailwind_variants4 = require("tailwind-variants");
730
- var import_jsx_runtime23 = require("react/jsx-runtime");
731
- var bookmarkVariants = (0, import_tailwind_variants4.tv)({
422
+ var import_lucide_react = require("lucide-react");
423
+ var import_tailwind_variants = require("tailwind-variants");
424
+ var import_jsx_runtime21 = require("react/jsx-runtime");
425
+ var bookmarkVariants = (0, import_tailwind_variants.tv)({
732
426
  base: "size-6 stroke-default-400 group-hover:fill-primary-100 group-hover:stroke-default-400",
733
427
  variants: {
734
428
  isSelected: {
@@ -741,16 +435,16 @@ function FavoriteSwitch({ isSelected, onValueChange }) {
741
435
  isSelected,
742
436
  onValueChange
743
437
  });
744
- return /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(Component, { ...getBaseProps(), children: [
745
- /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("div", { className: "sr-only", children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("input", { ...getInputProps() }) }),
746
- /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
438
+ return /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(Component, { ...getBaseProps(), children: [
439
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { className: "sr-only", children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("input", { ...getInputProps() }) }),
440
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
747
441
  "div",
748
442
  {
749
443
  ...getWrapperProps(),
750
444
  className: slots.wrapper({
751
445
  class: "flex h-8 w-8 cursor-pointer items-center justify-center rounded-sm !bg-transparent"
752
446
  }),
753
- children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_lucide_react3.Bookmark, { className: bookmarkVariants({ isSelected }) })
447
+ children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_lucide_react.Bookmark, { className: bookmarkVariants({ isSelected }) })
754
448
  }
755
449
  )
756
450
  ] });
@@ -761,55 +455,45 @@ var import_radio = require("@heroui/radio");
761
455
  var Radio = Object.assign(import_radio.Radio, { displayName: "TeachInUI.Radio" });
762
456
 
763
457
  // src/ui/inputs/radio/radio-group.tsx
764
- var import_react26 = __toESM(require("react"));
458
+ var import_react21 = __toESM(require("react"));
765
459
  var import_radio2 = require("@heroui/radio");
766
- var import_jsx_runtime24 = require("react/jsx-runtime");
767
- var RadioGroup = import_react26.default.forwardRef(
460
+ var import_jsx_runtime22 = require("react/jsx-runtime");
461
+ var RadioGroup = import_react21.default.forwardRef(
768
462
  (props, ref) => {
769
- return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_radio2.RadioGroup, { ref, ...props });
463
+ return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(import_radio2.RadioGroup, { ref, ...props });
770
464
  }
771
465
  );
772
466
  RadioGroup.displayName = "TeachInUI.RadioGroup";
773
467
 
774
468
  // src/ui/inputs/text/text.tsx
775
- var import_react27 = __toESM(require("react"));
776
- var import_jsx_runtime25 = require("react/jsx-runtime");
777
- var Text = import_react27.default.forwardRef(({ ...props }, ref) => {
778
- return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(Input, { ref, type: "text", ...props });
469
+ var import_react22 = __toESM(require("react"));
470
+ var import_jsx_runtime23 = require("react/jsx-runtime");
471
+ var Text = import_react22.default.forwardRef(({ ...props }, ref) => {
472
+ return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(Input, { ref, type: "text", ...props });
779
473
  });
780
474
  Text.displayName = "TeachInUI.Text";
781
475
 
782
476
  // src/ui/inputs/textarea/textarea.tsx
783
- var import_input6 = require("@heroui/input");
784
- var import_react28 = __toESM(require("react"));
785
- var import_jsx_runtime26 = require("react/jsx-runtime");
786
- var Textarea = import_react28.default.forwardRef(
477
+ var import_input5 = require("@heroui/input");
478
+ var import_react23 = __toESM(require("react"));
479
+ var import_jsx_runtime24 = require("react/jsx-runtime");
480
+ var Textarea = import_react23.default.forwardRef(
787
481
  ({ minRows = 4, ...props }, ref) => {
788
- return /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_input6.Textarea, { ref, minRows, ...props });
482
+ return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_input5.Textarea, { ref, minRows, ...props });
789
483
  }
790
484
  );
791
485
  Textarea.displayName = "TeachInUI.Textarea";
792
486
 
793
487
  // src/ui/form/rhf/fields/input-field.tsx
794
- var import_jsx_runtime27 = require("react/jsx-runtime");
488
+ var import_jsx_runtime25 = require("react/jsx-runtime");
795
489
  function InputField({ name, ...props }) {
796
490
  const { control } = (0, import_react_hook_form.useFormContext)();
797
- return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
491
+ return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
798
492
  import_react_hook_form.Controller,
799
493
  {
800
494
  control,
801
495
  name,
802
- render: ({ field: { ref, ...field }, fieldState: { error } }) => /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
803
- Input,
804
- {
805
- ...props,
806
- ...field,
807
- ref,
808
- errorMessage: error == null ? void 0 : error.message,
809
- isInvalid: !!error,
810
- onValueChange: field.onChange
811
- }
812
- )
496
+ render: ({ field: { ref, ...field }, fieldState: { error } }) => /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(Input, { ...props, ...field, ref, errorMessage: error == null ? void 0 : error.message, isInvalid: !!error })
813
497
  }
814
498
  );
815
499
  }
@@ -817,15 +501,15 @@ InputField.displayName = "TeachInUI.InputField";
817
501
 
818
502
  // src/ui/form/rhf/fields/text-field.tsx
819
503
  var import_react_hook_form2 = require("react-hook-form");
820
- var import_jsx_runtime28 = require("react/jsx-runtime");
504
+ var import_jsx_runtime26 = require("react/jsx-runtime");
821
505
  function TextField({ name, ...props }) {
822
506
  const { control } = (0, import_react_hook_form2.useFormContext)();
823
- return /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
507
+ return /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
824
508
  import_react_hook_form2.Controller,
825
509
  {
826
510
  control,
827
511
  name,
828
- 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 })
512
+ render: ({ field: { ref, ...field }, fieldState: { error } }) => /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(Text, { ...props, ...field, ref, errorMessage: error == null ? void 0 : error.message, isInvalid: !!error })
829
513
  }
830
514
  );
831
515
  }
@@ -833,57 +517,31 @@ TextField.displayName = "TeachInUI.TextField";
833
517
 
834
518
  // src/ui/form/rhf/fields/email-field.tsx
835
519
  var import_react_hook_form3 = require("react-hook-form");
836
- var import_jsx_runtime29 = require("react/jsx-runtime");
520
+ var import_jsx_runtime27 = require("react/jsx-runtime");
837
521
  function EmailField({ name, ...props }) {
838
522
  const { control } = (0, import_react_hook_form3.useFormContext)();
839
- return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
523
+ return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
840
524
  import_react_hook_form3.Controller,
841
525
  {
842
526
  control,
843
527
  name,
844
- 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 })
528
+ render: ({ field: { ref, ...field }, fieldState: { error } }) => /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(Email, { ...props, ...field, ref, errorMessage: error == null ? void 0 : error.message, isInvalid: !!error })
845
529
  }
846
530
  );
847
531
  }
848
532
  EmailField.displayName = "TeachInUI.EmailField";
849
533
 
850
- // src/ui/form/rhf/fields/search-field.tsx
534
+ // src/ui/form/rhf/fields/textarea-field.tsx
851
535
  var import_react_hook_form4 = require("react-hook-form");
852
- var import_jsx_runtime30 = require("react/jsx-runtime");
853
- function SearchField({ name, ...props }) {
536
+ var import_jsx_runtime28 = require("react/jsx-runtime");
537
+ function TextareaField({ name, ...props }) {
854
538
  const { control } = (0, import_react_hook_form4.useFormContext)();
855
- return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
539
+ return /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
856
540
  import_react_hook_form4.Controller,
857
541
  {
858
542
  control,
859
543
  name,
860
- render: ({ field: { ref, ...field }, fieldState: { error } }) => /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
861
- Search,
862
- {
863
- ...props,
864
- ...field,
865
- ref,
866
- errorMessage: error == null ? void 0 : error.message,
867
- isInvalid: !!error,
868
- onValueChange: field.onChange
869
- }
870
- )
871
- }
872
- );
873
- }
874
- SearchField.displayName = "TeachInUI.SearchField";
875
-
876
- // src/ui/form/rhf/fields/textarea-field.tsx
877
- var import_react_hook_form5 = require("react-hook-form");
878
- var import_jsx_runtime31 = require("react/jsx-runtime");
879
- function TextareaField({ name, ...props }) {
880
- const { control } = (0, import_react_hook_form5.useFormContext)();
881
- return /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
882
- import_react_hook_form5.Controller,
883
- {
884
- control,
885
- name,
886
- render: ({ field: { ref, ...field }, fieldState: { error } }) => /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
544
+ render: ({ field: { ref, ...field }, fieldState: { error } }) => /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
887
545
  Textarea,
888
546
  {
889
547
  ...props,
@@ -899,16 +557,16 @@ function TextareaField({ name, ...props }) {
899
557
  TextareaField.displayName = "TeachInUI.TextareaField";
900
558
 
901
559
  // src/ui/form/rhf/fields/select-field.tsx
902
- var import_react_hook_form6 = require("react-hook-form");
903
- var import_jsx_runtime32 = require("react/jsx-runtime");
560
+ var import_react_hook_form5 = require("react-hook-form");
561
+ var import_jsx_runtime29 = require("react/jsx-runtime");
904
562
  function SelectField({ name, selectionMode, ...props }) {
905
- const { control } = (0, import_react_hook_form6.useFormContext)();
906
- return /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
907
- import_react_hook_form6.Controller,
563
+ const { control } = (0, import_react_hook_form5.useFormContext)();
564
+ return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
565
+ import_react_hook_form5.Controller,
908
566
  {
909
567
  control,
910
568
  name,
911
- render: ({ field, fieldState: { error } }) => /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
569
+ render: ({ field, fieldState: { error } }) => /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
912
570
  Select,
913
571
  {
914
572
  selectionMode,
@@ -925,16 +583,16 @@ function SelectField({ name, selectionMode, ...props }) {
925
583
  SelectField.displayName = "TeachInUI.SelectField";
926
584
 
927
585
  // src/ui/form/rhf/fields/autocomplete-field.tsx
928
- var import_react_hook_form7 = require("react-hook-form");
929
- var import_jsx_runtime33 = require("react/jsx-runtime");
586
+ var import_react_hook_form6 = require("react-hook-form");
587
+ var import_jsx_runtime30 = require("react/jsx-runtime");
930
588
  function AutocompleteField({ name, ...props }) {
931
- const { control } = (0, import_react_hook_form7.useFormContext)();
932
- return /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
933
- import_react_hook_form7.Controller,
589
+ const { control } = (0, import_react_hook_form6.useFormContext)();
590
+ return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
591
+ import_react_hook_form6.Controller,
934
592
  {
935
593
  control,
936
594
  name,
937
- render: ({ field, fieldState: { error } }) => /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
595
+ render: ({ field, fieldState: { error } }) => /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
938
596
  Autocomplete,
939
597
  {
940
598
  ...props,
@@ -950,16 +608,16 @@ function AutocompleteField({ name, ...props }) {
950
608
  AutocompleteField.displayName = "TeachInUI.AutocompleteField";
951
609
 
952
610
  // src/ui/form/rhf/fields/date-picker-field.tsx
953
- var import_react_hook_form8 = require("react-hook-form");
954
- var import_jsx_runtime34 = require("react/jsx-runtime");
611
+ var import_react_hook_form7 = require("react-hook-form");
612
+ var import_jsx_runtime31 = require("react/jsx-runtime");
955
613
  function DatePickerField({ name, ...props }) {
956
- const { control } = (0, import_react_hook_form8.useFormContext)();
957
- return /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
958
- import_react_hook_form8.Controller,
614
+ const { control } = (0, import_react_hook_form7.useFormContext)();
615
+ return /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
616
+ import_react_hook_form7.Controller,
959
617
  {
960
618
  control,
961
619
  name,
962
- render: ({ field: { ref, ...field }, fieldState: { error } }) => /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
620
+ render: ({ field: { ref, ...field }, fieldState: { error } }) => /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
963
621
  DatePicker,
964
622
  {
965
623
  ...props,
@@ -975,18 +633,18 @@ function DatePickerField({ name, ...props }) {
975
633
  DatePickerField.displayName = "TeachInUI.DatePickerField";
976
634
 
977
635
  // src/ui/form/rhf/fields/checkbox-field.tsx
978
- var import_react_hook_form9 = require("react-hook-form");
979
- var import_jsx_runtime35 = require("react/jsx-runtime");
636
+ var import_react_hook_form8 = require("react-hook-form");
637
+ var import_jsx_runtime32 = require("react/jsx-runtime");
980
638
  function CheckboxField({ name, ...props }) {
981
- const { control } = (0, import_react_hook_form9.useFormContext)();
982
- return /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
983
- import_react_hook_form9.Controller,
639
+ const { control } = (0, import_react_hook_form8.useFormContext)();
640
+ return /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
641
+ import_react_hook_form8.Controller,
984
642
  {
985
643
  control,
986
644
  name,
987
- render: ({ field, fieldState: { error } }) => /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)("div", { children: [
988
- /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(Checkbox, { ...props, isSelected: field.value, onValueChange: field.onChange }),
989
- error && /* @__PURE__ */ (0, import_jsx_runtime35.jsx)("span", { className: "text-tiny text-danger", children: error.message })
645
+ render: ({ field, fieldState: { error } }) => /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)("div", { children: [
646
+ /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(Checkbox, { ...props, isSelected: field.value, onValueChange: field.onChange }),
647
+ error && /* @__PURE__ */ (0, import_jsx_runtime32.jsx)("span", { className: "text-tiny text-danger", children: error.message })
990
648
  ] })
991
649
  }
992
650
  );
@@ -994,18 +652,18 @@ function CheckboxField({ name, ...props }) {
994
652
  CheckboxField.displayName = "TeachInUI.CheckboxField";
995
653
 
996
654
  // src/ui/form/rhf/fields/switch-field.tsx
997
- var import_react_hook_form10 = require("react-hook-form");
998
- var import_jsx_runtime36 = require("react/jsx-runtime");
655
+ var import_react_hook_form9 = require("react-hook-form");
656
+ var import_jsx_runtime33 = require("react/jsx-runtime");
999
657
  function SwitchField({ name, ...props }) {
1000
- const { control } = (0, import_react_hook_form10.useFormContext)();
1001
- return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
1002
- import_react_hook_form10.Controller,
658
+ const { control } = (0, import_react_hook_form9.useFormContext)();
659
+ return /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
660
+ import_react_hook_form9.Controller,
1003
661
  {
1004
662
  control,
1005
663
  name,
1006
- render: ({ field, fieldState: { error } }) => /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)("div", { children: [
1007
- /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(Switch, { ...props, isSelected: field.value, onValueChange: field.onChange }),
1008
- error && /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("span", { className: "text-tiny text-danger", children: error.message })
664
+ render: ({ field, fieldState: { error } }) => /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)("div", { children: [
665
+ /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(Switch, { ...props, isSelected: field.value, onValueChange: field.onChange }),
666
+ error && /* @__PURE__ */ (0, import_jsx_runtime33.jsx)("span", { className: "text-tiny text-danger", children: error.message })
1009
667
  ] })
1010
668
  }
1011
669
  );
@@ -1013,16 +671,16 @@ function SwitchField({ name, ...props }) {
1013
671
  SwitchField.displayName = "TeachInUI.SwitchField";
1014
672
 
1015
673
  // src/ui/form/rhf/fields/radio-field.tsx
1016
- var import_react_hook_form11 = require("react-hook-form");
1017
- var import_jsx_runtime37 = require("react/jsx-runtime");
674
+ var import_react_hook_form10 = require("react-hook-form");
675
+ var import_jsx_runtime34 = require("react/jsx-runtime");
1018
676
  function RadioField({ name, ...props }) {
1019
- const { control } = (0, import_react_hook_form11.useFormContext)();
1020
- return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
1021
- import_react_hook_form11.Controller,
677
+ const { control } = (0, import_react_hook_form10.useFormContext)();
678
+ return /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
679
+ import_react_hook_form10.Controller,
1022
680
  {
1023
681
  control,
1024
682
  name,
1025
- render: ({ field: { ref, value, onChange, ...field }, fieldState: { error } }) => /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
683
+ render: ({ field: { ref, value, onChange, ...field }, fieldState: { error } }) => /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
1026
684
  RadioGroup,
1027
685
  {
1028
686
  ...props,
@@ -1041,15 +699,15 @@ RadioField.displayName = "TeachInUI.RadioField";
1041
699
 
1042
700
  // src/ui/form/form.tsx
1043
701
  var import_form = require("@heroui/form");
1044
- var import_react29 = __toESM(require("react"));
1045
- var import_jsx_runtime38 = require("react/jsx-runtime");
1046
- var Form = import_react29.default.forwardRef(({ ...props }, ref) => {
1047
- return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(import_form.Form, { ref, ...props });
702
+ var import_react24 = __toESM(require("react"));
703
+ var import_jsx_runtime35 = require("react/jsx-runtime");
704
+ var Form = import_react24.default.forwardRef(({ ...props }, ref) => {
705
+ return /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(import_form.Form, { ref, ...props });
1048
706
  });
1049
707
  Form.displayName = "TeachInUI.Form";
1050
708
 
1051
709
  // src/ui/format/datetime.tsx
1052
- var import_jsx_runtime39 = require("react/jsx-runtime");
710
+ var import_jsx_runtime36 = require("react/jsx-runtime");
1053
711
  var defaultFormat = {
1054
712
  day: "numeric",
1055
713
  month: "long",
@@ -1065,15 +723,15 @@ function Datetime({
1065
723
  fallback = "\u2014"
1066
724
  }) {
1067
725
  const formatter = new Intl.DateTimeFormat(locale, format);
1068
- if (!value) return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(import_jsx_runtime39.Fragment, { children: fallback });
726
+ if (!value) return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(import_jsx_runtime36.Fragment, { children: fallback });
1069
727
  const date = value instanceof Date ? value : new Date(value);
1070
- if (isNaN(date.getTime())) return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(import_jsx_runtime39.Fragment, { children: fallback });
1071
- return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(import_jsx_runtime39.Fragment, { children: formatter.format(date) });
728
+ if (isNaN(date.getTime())) return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(import_jsx_runtime36.Fragment, { children: fallback });
729
+ return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(import_jsx_runtime36.Fragment, { children: formatter.format(date) });
1072
730
  }
1073
731
  Datetime.displayName = "TeachInUI.FormatDatetime";
1074
732
 
1075
733
  // src/ui/format/date.tsx
1076
- var import_jsx_runtime40 = require("react/jsx-runtime");
734
+ var import_jsx_runtime37 = require("react/jsx-runtime");
1077
735
  var defaultFormat2 = {
1078
736
  day: "numeric",
1079
737
  month: "long",
@@ -1086,15 +744,15 @@ function DateFormat({
1086
744
  fallback = "\u2014"
1087
745
  }) {
1088
746
  const formatter = new Intl.DateTimeFormat(locale, format);
1089
- if (!value) return /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(import_jsx_runtime40.Fragment, { children: fallback });
747
+ if (!value) return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(import_jsx_runtime37.Fragment, { children: fallback });
1090
748
  const date = value instanceof Date ? value : new Date(value);
1091
- if (isNaN(date.getTime())) return /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(import_jsx_runtime40.Fragment, { children: fallback });
1092
- return /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(import_jsx_runtime40.Fragment, { children: formatter.format(date) });
749
+ if (isNaN(date.getTime())) return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(import_jsx_runtime37.Fragment, { children: fallback });
750
+ return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(import_jsx_runtime37.Fragment, { children: formatter.format(date) });
1093
751
  }
1094
752
  DateFormat.displayName = "TeachInUI.FormatDate";
1095
753
 
1096
754
  // src/ui/format/time.tsx
1097
- var import_jsx_runtime41 = require("react/jsx-runtime");
755
+ var import_jsx_runtime38 = require("react/jsx-runtime");
1098
756
  var defaultFormat3 = {
1099
757
  hour: "2-digit",
1100
758
  minute: "2-digit"
@@ -1106,15 +764,15 @@ function Time({
1106
764
  fallback = "\u2014"
1107
765
  }) {
1108
766
  const formatter = new Intl.DateTimeFormat(locale, format);
1109
- if (!value) return /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(import_jsx_runtime41.Fragment, { children: fallback });
767
+ if (!value) return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(import_jsx_runtime38.Fragment, { children: fallback });
1110
768
  const date = value instanceof Date ? value : new Date(value);
1111
- if (isNaN(date.getTime())) return /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(import_jsx_runtime41.Fragment, { children: fallback });
1112
- return /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(import_jsx_runtime41.Fragment, { children: formatter.format(date) });
769
+ if (isNaN(date.getTime())) return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(import_jsx_runtime38.Fragment, { children: fallback });
770
+ return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(import_jsx_runtime38.Fragment, { children: formatter.format(date) });
1113
771
  }
1114
772
  Time.displayName = "TeachInUI.FormatTime";
1115
773
 
1116
774
  // src/ui/format/currency.tsx
1117
- var import_jsx_runtime42 = require("react/jsx-runtime");
775
+ var import_jsx_runtime39 = require("react/jsx-runtime");
1118
776
  function Currency({
1119
777
  amount,
1120
778
  currency = "RUB",
@@ -1129,23 +787,23 @@ function Currency({
1129
787
  maximumFractionDigits: decimals
1130
788
  }
1131
789
  });
1132
- return /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(import_jsx_runtime42.Fragment, { children: formatter.format(amount) });
790
+ return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(import_jsx_runtime39.Fragment, { children: formatter.format(amount) });
1133
791
  }
1134
792
  Currency.displayName = "TeachInUI.FormatCurrency";
1135
793
 
1136
794
  // src/ui/format/number.tsx
1137
- var import_jsx_runtime43 = require("react/jsx-runtime");
795
+ var import_jsx_runtime40 = require("react/jsx-runtime");
1138
796
  function Number2({ value, decimals, locale = "ru-RU" }) {
1139
797
  const formatter = new Intl.NumberFormat(locale, {
1140
798
  minimumFractionDigits: decimals != null ? decimals : 0,
1141
799
  maximumFractionDigits: decimals != null ? decimals : 2
1142
800
  });
1143
- return /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(import_jsx_runtime43.Fragment, { children: formatter.format(value) });
801
+ return /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(import_jsx_runtime40.Fragment, { children: formatter.format(value) });
1144
802
  }
1145
803
  Number2.displayName = "TeachInUI.FormatNumber";
1146
804
 
1147
805
  // src/ui/format/percent.tsx
1148
- var import_jsx_runtime44 = require("react/jsx-runtime");
806
+ var import_jsx_runtime41 = require("react/jsx-runtime");
1149
807
  function Percent({
1150
808
  value,
1151
809
  decimals = 1,
@@ -1158,12 +816,12 @@ function Percent({
1158
816
  maximumFractionDigits: decimals
1159
817
  });
1160
818
  const normalizedValue = unit === "percent" ? value / 100 : value;
1161
- return /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(import_jsx_runtime44.Fragment, { children: formatter.format(normalizedValue) });
819
+ return /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(import_jsx_runtime41.Fragment, { children: formatter.format(normalizedValue) });
1162
820
  }
1163
821
  Percent.displayName = "TeachInUI.FormatPercent";
1164
822
 
1165
823
  // src/ui/format/plural.tsx
1166
- var import_jsx_runtime45 = require("react/jsx-runtime");
824
+ var import_jsx_runtime42 = require("react/jsx-runtime");
1167
825
  function Plural({
1168
826
  count,
1169
827
  one,
@@ -1184,12 +842,12 @@ function Plural({
1184
842
  };
1185
843
  const selectedForm = forms[rule];
1186
844
  const result = showCount ? `${count} ${selectedForm}` : selectedForm;
1187
- return /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_jsx_runtime45.Fragment, { children: result });
845
+ return /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(import_jsx_runtime42.Fragment, { children: result });
1188
846
  }
1189
847
  Plural.displayName = "TeachInUI.FormatPlural";
1190
848
 
1191
849
  // src/ui/format/duration.tsx
1192
- var import_jsx_runtime46 = require("react/jsx-runtime");
850
+ var import_jsx_runtime43 = require("react/jsx-runtime");
1193
851
  function Duration({
1194
852
  minutes = 0,
1195
853
  hours = 0,
@@ -1211,25 +869,25 @@ function Duration({
1211
869
  if (remainingMinutes > 0 || totalDays === 0 && totalHours === 0) {
1212
870
  parts.push(compact ? `${remainingMinutes}\u043C` : `${remainingMinutes} \u043C\u0438\u043D`);
1213
871
  }
1214
- return /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(import_jsx_runtime46.Fragment, { children: parts.join(" ") });
872
+ return /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(import_jsx_runtime43.Fragment, { children: parts.join(" ") });
1215
873
  }
1216
874
  Duration.displayName = "TeachInUI.FormatDuration";
1217
875
 
1218
876
  // src/ui/format/boolean.tsx
1219
- var import_jsx_runtime47 = require("react/jsx-runtime");
877
+ var import_jsx_runtime44 = require("react/jsx-runtime");
1220
878
  function Boolean({
1221
879
  value,
1222
880
  trueLabel = "\u0414\u0430",
1223
881
  falseLabel = "\u041D\u0435\u0442",
1224
882
  nullLabel = "\u2014"
1225
883
  }) {
1226
- if (value === null || value === void 0) return /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(import_jsx_runtime47.Fragment, { children: nullLabel });
1227
- return /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(import_jsx_runtime47.Fragment, { children: value ? trueLabel : falseLabel });
884
+ if (value === null || value === void 0) return /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(import_jsx_runtime44.Fragment, { children: nullLabel });
885
+ return /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(import_jsx_runtime44.Fragment, { children: value ? trueLabel : falseLabel });
1228
886
  }
1229
887
  Boolean.displayName = "TeachInUI.FormatBoolean";
1230
888
 
1231
889
  // src/ui/format/uuid.tsx
1232
- var import_jsx_runtime48 = require("react/jsx-runtime");
890
+ var import_jsx_runtime45 = require("react/jsx-runtime");
1233
891
  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}$/;
1234
892
  function normalizeUuid(value) {
1235
893
  const trimmed = value.trim();
@@ -1252,20 +910,20 @@ function Uuid({
1252
910
  showVersion = false,
1253
911
  invalidFallback = "\u2014"
1254
912
  }) {
1255
- if (!value) return /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(import_jsx_runtime48.Fragment, { children: invalidFallback });
913
+ if (!value) return /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_jsx_runtime45.Fragment, { children: invalidFallback });
1256
914
  const normalized = normalizeUuid(value);
1257
- if (!normalized) return /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(import_jsx_runtime48.Fragment, { children: invalidFallback });
915
+ if (!normalized) return /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_jsx_runtime45.Fragment, { children: invalidFallback });
1258
916
  const formatted = letterCase === "upper" ? normalized.toUpperCase() : normalized;
1259
- if (!showVersion) return /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(import_jsx_runtime48.Fragment, { children: formatted });
917
+ if (!showVersion) return /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_jsx_runtime45.Fragment, { children: formatted });
1260
918
  const version = detectUuidVersion(normalized);
1261
- return /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(import_jsx_runtime48.Fragment, { children: version !== null ? `${formatted} (v${version})` : formatted });
919
+ return /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_jsx_runtime45.Fragment, { children: version !== null ? `${formatted} (v${version})` : formatted });
1262
920
  }
1263
921
  Uuid.displayName = "TeachInUI.FormatUUID";
1264
922
 
1265
923
  // src/ui/surface/bento/bento.tsx
1266
- var import_tailwind_variants5 = require("tailwind-variants");
1267
- var import_jsx_runtime49 = require("react/jsx-runtime");
1268
- var bento = (0, import_tailwind_variants5.tv)({
924
+ var import_tailwind_variants2 = require("tailwind-variants");
925
+ var import_jsx_runtime46 = require("react/jsx-runtime");
926
+ var bento = (0, import_tailwind_variants2.tv)({
1269
927
  base: "rounded-xl p-6 transition-colors",
1270
928
  variants: {
1271
929
  color: {
@@ -1302,28 +960,28 @@ var bento = (0, import_tailwind_variants5.tv)({
1302
960
  }
1303
961
  });
1304
962
  var Bento = ({ className, ...props }) => {
1305
- return /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("div", { className: bento({ ...props, className }), ...props });
963
+ return /* @__PURE__ */ (0, import_jsx_runtime46.jsx)("div", { className: bento({ ...props, className }), ...props });
1306
964
  };
1307
965
  Bento.displayName = "TeachInUI.Bento";
1308
966
 
1309
967
  // src/ui/surface/card/card.tsx
1310
- var import_react30 = __toESM(require("react"));
968
+ var import_react25 = __toESM(require("react"));
1311
969
  var import_card = require("@heroui/card");
1312
- var import_jsx_runtime50 = require("react/jsx-runtime");
1313
- var Root = import_react30.default.forwardRef(({ children, ...props }, ref) => {
1314
- return /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(import_card.Card, { ref, ...props, children });
970
+ var import_jsx_runtime47 = require("react/jsx-runtime");
971
+ var Root = import_react25.default.forwardRef(({ children, ...props }, ref) => {
972
+ return /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(import_card.Card, { ref, ...props, children });
1315
973
  });
1316
974
  Root.displayName = "TeachInUI.Card.Root";
1317
- var Header = import_react30.default.forwardRef(({ children, ...props }, ref) => {
1318
- return /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(import_card.CardHeader, { ref, ...props, children });
975
+ var Header = import_react25.default.forwardRef(({ children, ...props }, ref) => {
976
+ return /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(import_card.CardHeader, { ref, ...props, children });
1319
977
  });
1320
978
  Header.displayName = "TeachInUI.Card.Header";
1321
- var Body = import_react30.default.forwardRef(({ children, ...props }, ref) => {
1322
- return /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(import_card.CardBody, { ref, ...props, children });
979
+ var Body = import_react25.default.forwardRef(({ children, ...props }, ref) => {
980
+ return /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(import_card.CardBody, { ref, ...props, children });
1323
981
  });
1324
982
  Body.displayName = "TeachInUI.Card.Body";
1325
- var Footer = import_react30.default.forwardRef(({ children, ...props }, ref) => {
1326
- return /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(import_card.CardFooter, { ref, ...props, children });
983
+ var Footer = import_react25.default.forwardRef(({ children, ...props }, ref) => {
984
+ return /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(import_card.CardFooter, { ref, ...props, children });
1327
985
  });
1328
986
  Footer.displayName = "TeachInUI.Card.Footer";
1329
987
  var Card = {
@@ -1335,9 +993,9 @@ var Card = {
1335
993
 
1336
994
  // src/ui/layout/container/container.tsx
1337
995
  var import_react_slot = require("@radix-ui/react-slot");
1338
- var import_tailwind_variants6 = require("tailwind-variants");
1339
- var import_jsx_runtime51 = require("react/jsx-runtime");
1340
- var variants = (0, import_tailwind_variants6.tv)({
996
+ var import_tailwind_variants3 = require("tailwind-variants");
997
+ var import_jsx_runtime48 = require("react/jsx-runtime");
998
+ var variants = (0, import_tailwind_variants3.tv)({
1341
999
  base: "w-full mx-auto px-6",
1342
1000
  variants: {
1343
1001
  size: {
@@ -1356,58 +1014,58 @@ var variants = (0, import_tailwind_variants6.tv)({
1356
1014
  });
1357
1015
  var Container = ({ children, asChild = false, className, size, ...props }) => {
1358
1016
  const Comp = asChild ? import_react_slot.Slot : "div";
1359
- return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(Comp, { className: cn(variants({ size }), className), ...props, children });
1017
+ return /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(Comp, { className: cn(variants({ size }), className), ...props, children });
1360
1018
  };
1361
1019
  Container.displayName = "TeachInUI.Container";
1362
1020
 
1363
1021
  // src/ui/layout/page/breadcrumbs.tsx
1364
1022
  var import_breadcrumbs = require("@heroui/breadcrumbs");
1365
- var import_jsx_runtime52 = require("react/jsx-runtime");
1366
- 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)) });
1023
+ var import_jsx_runtime49 = require("react/jsx-runtime");
1024
+ var Breadcrumbs = ({ items }) => /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(import_breadcrumbs.Breadcrumbs, { children: items.map((item) => /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(import_breadcrumbs.BreadcrumbItem, { href: item.href, isDisabled: item.href === void 0, children: item.label }, item.label)) });
1367
1025
 
1368
1026
  // src/ui/layout/page/page-content.tsx
1369
- var import_jsx_runtime53 = require("react/jsx-runtime");
1027
+ var import_jsx_runtime50 = require("react/jsx-runtime");
1370
1028
  var Root2 = ({
1371
1029
  children,
1372
1030
  breadcrumbs = []
1373
- }) => /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)("div", { className: "flex flex-col gap-6", children: [
1374
- breadcrumbs.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(Breadcrumbs, { items: breadcrumbs }),
1031
+ }) => /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)("div", { className: "flex flex-col gap-6", children: [
1032
+ breadcrumbs.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(Breadcrumbs, { items: breadcrumbs }),
1375
1033
  children
1376
1034
  ] });
1377
1035
  Root2.displayName = "TeachInUI.PageContent.Root";
1378
- var Header2 = ({ children, ...others }) => /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("header", { className: "flex items-center justify-between gap-4", role: "banner", ...others, children });
1036
+ var Header2 = ({ children, ...others }) => /* @__PURE__ */ (0, import_jsx_runtime50.jsx)("header", { className: "flex items-center justify-between gap-4", role: "banner", ...others, children });
1379
1037
  Header2.displayName = "TeachInUI.PageContent.Header";
1380
1038
  var Title = ({
1381
1039
  children,
1382
1040
  ...others
1383
- }) => /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("h1", { className: "text-4xl leading-10 font-bold", ...others, children });
1041
+ }) => /* @__PURE__ */ (0, import_jsx_runtime50.jsx)("h1", { className: "text-4xl leading-10 font-bold", ...others, children });
1384
1042
  Title.displayName = "TeachInUI.PageContent.Title";
1385
1043
  var Actions = ({
1386
1044
  children,
1387
1045
  ...others
1388
- }) => /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("div", { className: "flex gap-2", role: "group", ...others, children });
1046
+ }) => /* @__PURE__ */ (0, import_jsx_runtime50.jsx)("div", { className: "flex gap-2", role: "group", ...others, children });
1389
1047
  Actions.displayName = "TeachInUI.PageContent.Actions";
1390
- var Body2 = ({ children }) => /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("div", { className: "flex flex-col gap-6", children });
1048
+ var Body2 = ({ children }) => /* @__PURE__ */ (0, import_jsx_runtime50.jsx)("div", { className: "flex flex-col gap-6", children });
1391
1049
  Body2.displayName = "TeachInUI.PageContent.Body";
1392
1050
  var Section = ({
1393
1051
  children,
1394
1052
  ...others
1395
- }) => /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("section", { className: "flex flex-col gap-4", ...others, children });
1053
+ }) => /* @__PURE__ */ (0, import_jsx_runtime50.jsx)("section", { className: "flex flex-col gap-4", ...others, children });
1396
1054
  Section.displayName = "TeachInUI.PageContent.Section";
1397
1055
  var SectionHeader = ({
1398
1056
  children,
1399
1057
  ...others
1400
- }) => /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("div", { className: "flex items-center justify-between", ...others, children });
1058
+ }) => /* @__PURE__ */ (0, import_jsx_runtime50.jsx)("div", { className: "flex items-center justify-between", ...others, children });
1401
1059
  SectionHeader.displayName = "TeachInUI.PageContent.SectionHeader";
1402
1060
  var SectionTitle = ({
1403
1061
  children,
1404
1062
  ...others
1405
- }) => /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("h2", { className: "text-3xl leading-9 font-bold", ...others, children });
1063
+ }) => /* @__PURE__ */ (0, import_jsx_runtime50.jsx)("h2", { className: "text-3xl leading-9 font-bold", ...others, children });
1406
1064
  SectionTitle.displayName = "TeachInUI.PageContent.SectionTitle";
1407
1065
  var SectionActions = ({
1408
1066
  children,
1409
1067
  ...others
1410
- }) => /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("div", { className: "flex gap-2", role: "group", ...others, children });
1068
+ }) => /* @__PURE__ */ (0, import_jsx_runtime50.jsx)("div", { className: "flex gap-2", role: "group", ...others, children });
1411
1069
  SectionActions.displayName = "TeachInUI.PageContent.SectionActions";
1412
1070
  var PageContent = {
1413
1071
  Root: Root2,
@@ -1422,19 +1080,19 @@ var PageContent = {
1422
1080
  };
1423
1081
 
1424
1082
  // src/ui/layout/page/page-loading.tsx
1425
- var import_jsx_runtime54 = require("react/jsx-runtime");
1426
- 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, {}) });
1083
+ var import_jsx_runtime51 = require("react/jsx-runtime");
1084
+ var PageLoading = () => /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("div", { className: "flex h-screen items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(Spinner, {}) });
1427
1085
  PageLoading.displayName = "TeachInUI.PageLoading";
1428
1086
 
1429
1087
  // src/ui/layout/page/section-loading.tsx
1430
- var import_jsx_runtime55 = require("react/jsx-runtime");
1431
- 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, {}) });
1088
+ var import_jsx_runtime52 = require("react/jsx-runtime");
1089
+ var SectionLoading = () => /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("div", { className: "flex min-h-[400px] items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(Spinner, {}) });
1432
1090
  SectionLoading.displayName = "TeachInUI.SectionLoading";
1433
1091
 
1434
1092
  // src/ui/layout/flex/flex.tsx
1435
- var import_tailwind_variants7 = require("tailwind-variants");
1436
- var import_jsx_runtime56 = require("react/jsx-runtime");
1437
- var variants2 = (0, import_tailwind_variants7.tv)({
1093
+ var import_tailwind_variants4 = require("tailwind-variants");
1094
+ var import_jsx_runtime53 = require("react/jsx-runtime");
1095
+ var variants2 = (0, import_tailwind_variants4.tv)({
1438
1096
  base: "flex",
1439
1097
  variants: {
1440
1098
  direction: {
@@ -1481,14 +1139,14 @@ var variants2 = (0, import_tailwind_variants7.tv)({
1481
1139
  }
1482
1140
  });
1483
1141
  var Flex = ({ className, ...props }) => {
1484
- return /* @__PURE__ */ (0, import_jsx_runtime56.jsx)("div", { className: variants2({ ...props, className }), ...props });
1142
+ return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("div", { className: variants2({ ...props, className }), ...props });
1485
1143
  };
1486
1144
  Flex.displayName = "TeachInUI.Flex";
1487
1145
 
1488
1146
  // src/ui/layout/grid/grid.tsx
1489
- var import_tailwind_variants8 = require("tailwind-variants");
1490
- var import_jsx_runtime57 = require("react/jsx-runtime");
1491
- var variants3 = (0, import_tailwind_variants8.tv)({
1147
+ var import_tailwind_variants5 = require("tailwind-variants");
1148
+ var import_jsx_runtime54 = require("react/jsx-runtime");
1149
+ var variants3 = (0, import_tailwind_variants5.tv)({
1492
1150
  base: "grid",
1493
1151
  variants: {
1494
1152
  columns: {
@@ -1537,26 +1195,26 @@ var variants3 = (0, import_tailwind_variants8.tv)({
1537
1195
  }
1538
1196
  });
1539
1197
  var Grid = ({ className, ...props }) => {
1540
- return /* @__PURE__ */ (0, import_jsx_runtime57.jsx)("div", { className: variants3({ ...props, className }), ...props });
1198
+ return /* @__PURE__ */ (0, import_jsx_runtime54.jsx)("div", { className: variants3({ ...props, className }), ...props });
1541
1199
  };
1542
1200
  Grid.displayName = "TeachInUI.Grid";
1543
1201
 
1544
1202
  // src/ui/layout/divider/divider.tsx
1545
- var import_react31 = __toESM(require("react"));
1203
+ var import_react26 = __toESM(require("react"));
1546
1204
  var import_divider = require("@heroui/divider");
1547
- var import_jsx_runtime58 = require("react/jsx-runtime");
1548
- var Divider = import_react31.default.forwardRef((props, ref) => {
1205
+ var import_jsx_runtime55 = require("react/jsx-runtime");
1206
+ var Divider = import_react26.default.forwardRef((props, ref) => {
1549
1207
  const { ...restProps } = props;
1550
- return /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(import_divider.Divider, { ref, ...restProps });
1208
+ return /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(import_divider.Divider, { ref, ...restProps });
1551
1209
  });
1552
1210
  Divider.displayName = "TeachInUI.Divider";
1553
1211
 
1554
1212
  // src/ui/layout/scroll-shadow/scroll-shadow.tsx
1555
- var import_react32 = __toESM(require("react"));
1213
+ var import_react27 = __toESM(require("react"));
1556
1214
  var import_scroll_shadow = require("@heroui/scroll-shadow");
1557
- var import_jsx_runtime59 = require("react/jsx-runtime");
1558
- var ScrollShadow = import_react32.default.forwardRef((props, ref) => {
1559
- return /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(import_scroll_shadow.ScrollShadow, { ref, ...props });
1215
+ var import_jsx_runtime56 = require("react/jsx-runtime");
1216
+ var ScrollShadow = import_react27.default.forwardRef((props, ref) => {
1217
+ return /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_scroll_shadow.ScrollShadow, { ref, ...props });
1560
1218
  });
1561
1219
  ScrollShadow.displayName = "TeachInUI.ScrollShadow";
1562
1220
 
@@ -1567,18 +1225,18 @@ var AccordionItem = Object.assign(import_accordion.AccordionItem, { displayName:
1567
1225
 
1568
1226
  // src/ui/navigation/link/link.tsx
1569
1227
  var import_link = require("@heroui/link");
1570
- var import_jsx_runtime60 = require("react/jsx-runtime");
1228
+ var import_jsx_runtime57 = require("react/jsx-runtime");
1571
1229
  function Link({ children, ...props }) {
1572
- return /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(import_link.Link, { ...props, children });
1230
+ return /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(import_link.Link, { ...props, children });
1573
1231
  }
1574
1232
  Link.displayName = "TeachInUI.Link";
1575
1233
 
1576
1234
  // src/ui/navigation/tabs/tabs.tsx
1577
- var import_react33 = __toESM(require("react"));
1235
+ var import_react28 = __toESM(require("react"));
1578
1236
  var import_tabs = require("@heroui/tabs");
1579
- var import_jsx_runtime61 = require("react/jsx-runtime");
1580
- var Root3 = import_react33.default.forwardRef(({ children, ...props }, ref) => {
1581
- return /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(import_tabs.Tabs, { ref, ...props, children });
1237
+ var import_jsx_runtime58 = require("react/jsx-runtime");
1238
+ var Root3 = import_react28.default.forwardRef(({ children, ...props }, ref) => {
1239
+ return /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(import_tabs.Tabs, { ref, ...props, children });
1582
1240
  });
1583
1241
  Root3.displayName = "TeachInUI.Tabs.Root";
1584
1242
  var Tab = Object.assign(import_tabs.Tab, {
@@ -1590,35 +1248,35 @@ var Tabs = {
1590
1248
  };
1591
1249
 
1592
1250
  // src/ui/navigation/navbar/navbar.tsx
1593
- var import_react34 = __toESM(require("react"));
1251
+ var import_react29 = __toESM(require("react"));
1594
1252
  var import_navbar = require("@heroui/navbar");
1595
- var import_jsx_runtime62 = require("react/jsx-runtime");
1596
- var Navbar = import_react34.default.forwardRef((props, ref) => {
1597
- return /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(import_navbar.Navbar, { ref, ...props });
1253
+ var import_jsx_runtime59 = require("react/jsx-runtime");
1254
+ var Navbar = import_react29.default.forwardRef((props, ref) => {
1255
+ return /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(import_navbar.Navbar, { ref, ...props });
1598
1256
  });
1599
1257
  Navbar.displayName = "TeachInUI.Navbar";
1600
- var NavbarBrand = import_react34.default.forwardRef((props, ref) => {
1601
- return /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(import_navbar.NavbarBrand, { ref, ...props });
1258
+ var NavbarBrand = import_react29.default.forwardRef((props, ref) => {
1259
+ return /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(import_navbar.NavbarBrand, { ref, ...props });
1602
1260
  });
1603
1261
  NavbarBrand.displayName = "TeachInUI.NavbarBrand";
1604
- var NavbarContent = import_react34.default.forwardRef((props, ref) => {
1605
- return /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(import_navbar.NavbarContent, { ref, ...props });
1262
+ var NavbarContent = import_react29.default.forwardRef((props, ref) => {
1263
+ return /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(import_navbar.NavbarContent, { ref, ...props });
1606
1264
  });
1607
1265
  NavbarContent.displayName = "TeachInUI.NavbarContent";
1608
- var NavbarItem = import_react34.default.forwardRef((props, ref) => {
1609
- return /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(import_navbar.NavbarItem, { ref, ...props });
1266
+ var NavbarItem = import_react29.default.forwardRef((props, ref) => {
1267
+ return /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(import_navbar.NavbarItem, { ref, ...props });
1610
1268
  });
1611
1269
  NavbarItem.displayName = "TeachInUI.NavbarItem";
1612
- var NavbarMenu = import_react34.default.forwardRef((props, ref) => {
1613
- return /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(import_navbar.NavbarMenu, { ref, ...props });
1270
+ var NavbarMenu = import_react29.default.forwardRef((props, ref) => {
1271
+ return /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(import_navbar.NavbarMenu, { ref, ...props });
1614
1272
  });
1615
1273
  NavbarMenu.displayName = "TeachInUI.NavbarMenu";
1616
- var NavbarMenuItem = import_react34.default.forwardRef((props, ref) => {
1617
- return /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(import_navbar.NavbarMenuItem, { ref, ...props });
1274
+ var NavbarMenuItem = import_react29.default.forwardRef((props, ref) => {
1275
+ return /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(import_navbar.NavbarMenuItem, { ref, ...props });
1618
1276
  });
1619
1277
  NavbarMenuItem.displayName = "TeachInUI.NavbarMenuItem";
1620
- var NavbarMenuToggle = import_react34.default.forwardRef((props, ref) => {
1621
- return /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(import_navbar.NavbarMenuToggle, { ref, ...props });
1278
+ var NavbarMenuToggle = import_react29.default.forwardRef((props, ref) => {
1279
+ return /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(import_navbar.NavbarMenuToggle, { ref, ...props });
1622
1280
  });
1623
1281
  NavbarMenuToggle.displayName = "TeachInUI.NavbarMenuToggle";
1624
1282
 
@@ -1631,30 +1289,30 @@ var BreadcrumbItem2 = Object.assign(import_breadcrumbs3.BreadcrumbItem, {
1631
1289
 
1632
1290
  // src/ui/overlays/modal/modal.tsx
1633
1291
  var import_modal = require("@heroui/modal");
1634
- var import_jsx_runtime63 = require("react/jsx-runtime");
1292
+ var import_jsx_runtime60 = require("react/jsx-runtime");
1635
1293
  function Root4({
1636
1294
  size = "md",
1637
1295
  placement = "center",
1638
1296
  children,
1639
1297
  ...props
1640
1298
  }) {
1641
- return /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(import_modal.Modal, { placement, size, ...props, children });
1299
+ return /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(import_modal.Modal, { placement, size, ...props, children });
1642
1300
  }
1643
1301
  Root4.displayName = "TeachInUI.Modal.Root";
1644
1302
  function Content({ children, ...props }) {
1645
- return /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(import_modal.ModalContent, { ...props, children: (onClose) => typeof children === "function" ? children(onClose) : children });
1303
+ return /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(import_modal.ModalContent, { ...props, children: (onClose) => typeof children === "function" ? children(onClose) : children });
1646
1304
  }
1647
1305
  Content.displayName = "TeachInUI.Modal.Content";
1648
1306
  function Header3({ children, ...props }) {
1649
- return /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(import_modal.ModalHeader, { ...props, children });
1307
+ return /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(import_modal.ModalHeader, { ...props, children });
1650
1308
  }
1651
1309
  Header3.displayName = "TeachInUI.Modal.Header";
1652
1310
  function Body3({ children, ...props }) {
1653
- return /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(import_modal.ModalBody, { ...props, children });
1311
+ return /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(import_modal.ModalBody, { ...props, children });
1654
1312
  }
1655
1313
  Body3.displayName = "TeachInUI.Modal.Body";
1656
1314
  function Footer2({ children, ...props }) {
1657
- return /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(import_modal.ModalFooter, { ...props, children });
1315
+ return /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(import_modal.ModalFooter, { ...props, children });
1658
1316
  }
1659
1317
  Footer2.displayName = "TeachInUI.Modal.Footer";
1660
1318
  var Modal = {
@@ -1679,17 +1337,17 @@ var DropdownSection = Object.assign(import_dropdown.DropdownSection, {
1679
1337
 
1680
1338
  // src/ui/overlays/popover/popover.tsx
1681
1339
  var import_popover = require("@heroui/popover");
1682
- var import_jsx_runtime64 = require("react/jsx-runtime");
1340
+ var import_jsx_runtime61 = require("react/jsx-runtime");
1683
1341
  var Root5 = ({ children, ...props }) => {
1684
- return /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(import_popover.Popover, { ...props, children });
1342
+ return /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(import_popover.Popover, { ...props, children });
1685
1343
  };
1686
1344
  Root5.displayName = "TeachInUI.Popover.Root";
1687
1345
  var Trigger = ({ children, ...props }) => {
1688
- return /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(import_popover.PopoverTrigger, { ...props, children });
1346
+ return /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(import_popover.PopoverTrigger, { ...props, children });
1689
1347
  };
1690
1348
  Trigger.displayName = "TeachInUI.Popover.Trigger";
1691
1349
  var Content2 = ({ children, ...props }) => {
1692
- return /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(import_popover.PopoverContent, { ...props, children });
1350
+ return /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(import_popover.PopoverContent, { ...props, children });
1693
1351
  };
1694
1352
  Content2.displayName = "TeachInUI.Popover.Content";
1695
1353
  var Popover = {
@@ -1700,7 +1358,7 @@ var Popover = {
1700
1358
 
1701
1359
  // src/ui/provider/ui-provider.tsx
1702
1360
  var import_system3 = require("@heroui/system");
1703
- var import_jsx_runtime65 = require("react/jsx-runtime");
1361
+ var import_jsx_runtime62 = require("react/jsx-runtime");
1704
1362
  function UIProvider({
1705
1363
  children,
1706
1364
  locale = "ru-RU",
@@ -1708,9 +1366,9 @@ function UIProvider({
1708
1366
  navigate,
1709
1367
  toastProviderProps
1710
1368
  }) {
1711
- return /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)(import_system3.HeroUIProvider, { labelPlacement, locale, navigate, children: [
1369
+ return /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)(import_system3.HeroUIProvider, { labelPlacement, locale, navigate, children: [
1712
1370
  children,
1713
- /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(ToastProvider, { ...toastProviderProps })
1371
+ /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(ToastProvider, { ...toastProviderProps })
1714
1372
  ] });
1715
1373
  }
1716
1374
 
@@ -2110,7 +1768,6 @@ var theme = (0, import_theme.heroui)({
2110
1768
  CheckboxGroup,
2111
1769
  Chip,
2112
1770
  CircularProgress,
2113
- ClearButton,
2114
1771
  Container,
2115
1772
  DatePicker,
2116
1773
  DatePickerField,
@@ -2159,8 +1816,6 @@ var theme = (0, import_theme.heroui)({
2159
1816
  RadioGroup,
2160
1817
  Root,
2161
1818
  ScrollShadow,
2162
- Search,
2163
- SearchField,
2164
1819
  Section,
2165
1820
  SectionActions,
2166
1821
  SectionHeader,