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