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