@teach-in/react 1.0.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.
Files changed (120) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +9 -9
  3. package/dist/{chunk-AMNORHD6.mjs → chunk-2ASQXBDD.mjs} +1 -1
  4. package/dist/{chunk-3VAZY2QK.mjs → chunk-2CEZXLZR.mjs} +1 -1
  5. package/dist/chunk-2UHA3DYG.mjs +62 -0
  6. package/dist/{chunk-LJIVY6GU.mjs → chunk-46SKVFMZ.mjs} +1 -1
  7. package/dist/{chunk-JDFRAN4S.mjs → chunk-5FFWQB7D.mjs} +12 -2
  8. package/dist/chunk-C2VWADF5.mjs +34 -0
  9. package/dist/{chunk-NLHQDWUK.mjs → chunk-CKJ5U5Q4.mjs} +1 -1
  10. package/dist/chunk-CUEG2BFV.mjs +34 -0
  11. package/dist/{chunk-CETCW7DS.mjs → chunk-IU2JYI7W.mjs} +1 -1
  12. package/dist/{chunk-KTUGFQWJ.mjs → chunk-KTWHCUYV.mjs} +1 -1
  13. package/dist/chunk-M5G6RR4Q.mjs +39 -0
  14. package/dist/chunk-MCQGBAUS.mjs +73 -0
  15. package/dist/chunk-NSU66J5E.mjs +59 -0
  16. package/dist/{chunk-CFG5V7VB.mjs → chunk-QCLLPJMB.mjs} +2 -2
  17. package/dist/{chunk-R7LDL5CU.mjs → chunk-R46SWVWL.mjs} +1 -1
  18. package/dist/chunk-SEJXJZSK.mjs +64 -0
  19. package/dist/chunk-TUIN5YJW.mjs +33 -0
  20. package/dist/chunk-UQAG7TKJ.mjs +1 -0
  21. package/dist/chunk-VXYV37IM.mjs +74 -0
  22. package/dist/index.js +609 -228
  23. package/dist/index.mjs +106 -86
  24. package/dist/ui/data/index.mjs +10 -10
  25. package/dist/ui/feedback/index.mjs +8 -8
  26. package/dist/ui/form/index.js +447 -106
  27. package/dist/ui/form/index.mjs +25 -15
  28. package/dist/ui/form/rhf/fields/autocomplete-field.mjs +16 -10
  29. package/dist/ui/form/rhf/fields/checkbox-field.mjs +16 -10
  30. package/dist/ui/form/rhf/fields/date-picker-field.mjs +16 -10
  31. package/dist/ui/form/rhf/fields/email-field.js +147 -10
  32. package/dist/ui/form/rhf/fields/email-field.mjs +17 -11
  33. package/dist/ui/form/rhf/fields/index.d.ts +1 -0
  34. package/dist/ui/form/rhf/fields/index.js +443 -102
  35. package/dist/ui/form/rhf/fields/index.mjs +25 -15
  36. package/dist/ui/form/rhf/fields/input-field.js +153 -6
  37. package/dist/ui/form/rhf/fields/input-field.mjs +17 -11
  38. package/dist/ui/form/rhf/fields/radio-field.mjs +16 -10
  39. package/dist/ui/form/rhf/fields/search-field.d.ts +10 -0
  40. package/dist/ui/form/rhf/fields/search-field.js +296 -0
  41. package/dist/ui/form/rhf/fields/search-field.mjs +37 -0
  42. package/dist/ui/form/rhf/fields/select-field.js +136 -26
  43. package/dist/ui/form/rhf/fields/select-field.mjs +17 -11
  44. package/dist/ui/form/rhf/fields/switch-field.mjs +16 -10
  45. package/dist/ui/form/rhf/fields/text-field.js +147 -10
  46. package/dist/ui/form/rhf/fields/text-field.mjs +17 -11
  47. package/dist/ui/form/rhf/fields/textarea-field.mjs +16 -10
  48. package/dist/ui/form/rhf/index.js +443 -102
  49. package/dist/ui/form/rhf/index.mjs +25 -15
  50. package/dist/ui/format/index.d.ts +1 -0
  51. package/dist/ui/format/index.js +41 -5
  52. package/dist/ui/format/index.mjs +15 -11
  53. package/dist/ui/format/uuid.d.ts +12 -0
  54. package/dist/ui/format/uuid.js +62 -0
  55. package/dist/ui/format/uuid.mjs +7 -0
  56. package/dist/ui/index.js +609 -228
  57. package/dist/ui/index.mjs +106 -86
  58. package/dist/ui/inputs/clear-button.d.ts +5 -0
  59. package/dist/ui/inputs/clear-button.js +67 -0
  60. package/dist/ui/inputs/clear-button.mjs +8 -0
  61. package/dist/ui/inputs/email/email.js +144 -7
  62. package/dist/ui/inputs/email/email.mjs +4 -2
  63. package/dist/ui/inputs/email/index.js +144 -7
  64. package/dist/ui/inputs/email/index.mjs +4 -2
  65. package/dist/ui/inputs/index.d.ts +2 -0
  66. package/dist/ui/inputs/index.js +363 -56
  67. package/dist/ui/inputs/index.mjs +27 -15
  68. package/dist/ui/inputs/input/index.js +140 -3
  69. package/dist/ui/inputs/input/index.mjs +3 -1
  70. package/dist/ui/inputs/input/input.d.ts +1 -0
  71. package/dist/ui/inputs/input/input.js +140 -3
  72. package/dist/ui/inputs/input/input.mjs +3 -1
  73. package/dist/ui/inputs/input/use-input.d.ts +19 -0
  74. package/dist/ui/inputs/input/use-input.js +82 -0
  75. package/dist/ui/inputs/input/use-input.mjs +7 -0
  76. package/dist/ui/inputs/radio/index.mjs +3 -3
  77. package/dist/ui/inputs/search/index.d.ts +1 -0
  78. package/dist/ui/inputs/search/index.js +270 -0
  79. package/dist/ui/inputs/search/index.mjs +13 -0
  80. package/dist/ui/inputs/search/search.d.ts +7 -0
  81. package/dist/ui/inputs/search/search.js +268 -0
  82. package/dist/ui/inputs/search/search.mjs +12 -0
  83. package/dist/ui/inputs/search/use-search.d.ts +12 -0
  84. package/dist/ui/inputs/search/use-search.js +57 -0
  85. package/dist/ui/inputs/search/use-search.mjs +7 -0
  86. package/dist/ui/inputs/select/index.js +132 -22
  87. package/dist/ui/inputs/select/index.mjs +3 -1
  88. package/dist/ui/inputs/select/select.d.ts +4 -0
  89. package/dist/ui/inputs/select/select.js +132 -22
  90. package/dist/ui/inputs/select/select.mjs +3 -1
  91. package/dist/ui/inputs/select/use-select.d.ts +17 -0
  92. package/dist/ui/inputs/select/use-select.js +85 -0
  93. package/dist/ui/inputs/select/use-select.mjs +7 -0
  94. package/dist/ui/inputs/text/index.js +144 -7
  95. package/dist/ui/inputs/text/index.mjs +4 -2
  96. package/dist/ui/inputs/text/text.js +144 -7
  97. package/dist/ui/inputs/text/text.mjs +4 -2
  98. package/dist/ui/layout/container/container.mjs +56 -48
  99. package/dist/ui/layout/container/index.mjs +56 -48
  100. package/dist/ui/layout/index.mjs +62 -54
  101. package/dist/ui/layout/page/index.mjs +4 -4
  102. package/dist/ui/layout/page/page-loading.mjs +4 -4
  103. package/dist/ui/layout/page/section-loading.mjs +4 -4
  104. package/dist/ui/navigation/index.mjs +8 -8
  105. package/dist/ui/overlays/index.mjs +5 -5
  106. package/dist/ui/provider/index.mjs +4 -4
  107. package/dist/ui/provider/ui-provider.mjs +4 -4
  108. package/dist/ui/theme/colors/common.mjs +5 -5
  109. package/dist/ui/theme/colors/index.mjs +8 -8
  110. package/dist/ui/theme/colors/semantic.mjs +6 -6
  111. package/dist/ui/theme/colors.mjs +8 -8
  112. package/dist/ui/theme/index.mjs +8 -8
  113. package/dist/ui/theme/theme.mjs +8 -8
  114. package/package.json +1 -1
  115. package/dist/chunk-3YOW5DEZ.mjs +0 -45
  116. package/dist/chunk-V2G5QHZZ.mjs +0 -14
  117. package/dist/{chunk-5IHVMMCK.mjs → chunk-5N3SIZHF.mjs} +0 -0
  118. package/dist/{chunk-CZEO3U25.mjs → chunk-5RNCFTW5.mjs} +0 -0
  119. package/dist/{chunk-STVN4B47.mjs → chunk-IXPMUODA.mjs} +12 -12
  120. /package/dist/{chunk-Q6JSJOU4.mjs → chunk-PTCNYQVY.mjs} +0 -0
@@ -36,21 +36,158 @@ __export(email_exports, {
36
36
  module.exports = __toCommonJS(email_exports);
37
37
 
38
38
  // src/ui/inputs/email/email.tsx
39
- var import_react2 = __toESM(require("react"));
39
+ var import_react4 = __toESM(require("react"));
40
40
 
41
41
  // src/ui/inputs/input/input.tsx
42
- var import_react = __toESM(require("react"));
42
+ var import_react3 = __toESM(require("react"));
43
43
  var import_input = require("@heroui/input");
44
+ var import_tailwind_variants = require("tailwind-variants");
45
+
46
+ // src/ui/inputs/clear-button.tsx
47
+ var import_react = __toESM(require("react"));
48
+ var import_button = require("@heroui/button");
49
+ var import_lucide_react = require("lucide-react");
44
50
  var import_jsx_runtime = require("react/jsx-runtime");
45
- var Input = import_react.default.forwardRef(({ ...props }, ref) => {
46
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_input.Input, { ref, ...props });
51
+ var ClearButton = import_react.default.forwardRef(
52
+ ({ onClear }, ref) => {
53
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
54
+ import_button.Button,
55
+ {
56
+ ref,
57
+ isIconOnly: true,
58
+ "aria-label": "\u041E\u0447\u0438\u0441\u0442\u0438\u0442\u044C",
59
+ as: "span",
60
+ className: "opacity-0 transition-opacity group-hover:opacity-100",
61
+ color: "default",
62
+ radius: "full",
63
+ size: "sm",
64
+ tabIndex: 0,
65
+ variant: "light",
66
+ onPress: onClear,
67
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_lucide_react.XIcon, { className: "size-4 text-default-500" })
68
+ }
69
+ );
70
+ }
71
+ );
72
+ ClearButton.displayName = "TeachInUI.ClearButton";
73
+
74
+ // src/ui/inputs/input/use-input.ts
75
+ var import_react2 = require("react");
76
+ function useInput({
77
+ value,
78
+ defaultValue,
79
+ onValueChange,
80
+ onClear,
81
+ isReadOnly,
82
+ isClearable = true,
83
+ ref
84
+ }) {
85
+ const inputRef = (0, import_react2.useRef)(null);
86
+ const [internalValue, setInternalValue] = (0, import_react2.useState)(defaultValue != null ? defaultValue : "");
87
+ const isControlled = value !== void 0;
88
+ const currentValue = isControlled ? value : internalValue;
89
+ const hasValue = String(currentValue).length > 0;
90
+ const handleValueChange = (0, import_react2.useCallback)(
91
+ (newValue) => {
92
+ if (!isControlled) {
93
+ setInternalValue(newValue);
94
+ }
95
+ onValueChange == null ? void 0 : onValueChange(newValue);
96
+ },
97
+ [isControlled, onValueChange]
98
+ );
99
+ const handleClear = (0, import_react2.useCallback)(() => {
100
+ var _a;
101
+ onClear == null ? void 0 : onClear();
102
+ handleValueChange("");
103
+ (_a = inputRef.current) == null ? void 0 : _a.focus();
104
+ }, [onClear, handleValueChange]);
105
+ const mergedRef = (0, import_react2.useCallback)(
106
+ (node) => {
107
+ inputRef.current = node;
108
+ if (typeof ref === "function") {
109
+ ref(node);
110
+ } else if (ref) {
111
+ ref.current = node;
112
+ }
113
+ },
114
+ [ref]
115
+ );
116
+ const showClearButton = hasValue && !isReadOnly && isClearable;
117
+ return {
118
+ inputRef,
119
+ currentValue,
120
+ hasValue,
121
+ handleValueChange,
122
+ handleClear,
123
+ mergedRef,
124
+ showClearButton
125
+ };
126
+ }
127
+
128
+ // src/ui/inputs/input/input.tsx
129
+ var import_jsx_runtime2 = require("react/jsx-runtime");
130
+ var inputWrapperVariants = (0, import_tailwind_variants.tv)({
131
+ variants: {
132
+ variant: {
133
+ flat: "",
134
+ underlined: "",
135
+ bordered: "border-1",
136
+ faded: "border-1"
137
+ }
138
+ }
47
139
  });
140
+ var Input = import_react3.default.forwardRef(
141
+ ({
142
+ value,
143
+ defaultValue,
144
+ onClear,
145
+ onValueChange,
146
+ variant,
147
+ classNames,
148
+ endContent,
149
+ isReadOnly,
150
+ isClearable,
151
+ ...props
152
+ }, ref) => {
153
+ const { currentValue, handleValueChange, handleClear, mergedRef, showClearButton } = useInput({
154
+ value,
155
+ defaultValue,
156
+ onValueChange,
157
+ onClear,
158
+ isReadOnly,
159
+ isClearable,
160
+ ref
161
+ });
162
+ return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
163
+ import_input.Input,
164
+ {
165
+ ref: mergedRef,
166
+ classNames: {
167
+ ...classNames,
168
+ inputWrapper: inputWrapperVariants({ variant }),
169
+ innerWrapper: "group"
170
+ },
171
+ defaultValue,
172
+ endContent: (endContent || showClearButton) && /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("div", { className: "flex items-center gap-1", children: [
173
+ endContent,
174
+ showClearButton && /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(ClearButton, { onClear: handleClear })
175
+ ] }),
176
+ isReadOnly,
177
+ value: currentValue,
178
+ variant,
179
+ onValueChange: handleValueChange,
180
+ ...props
181
+ }
182
+ );
183
+ }
184
+ );
48
185
  Input.displayName = "TeachInUI.Input";
49
186
 
50
187
  // src/ui/inputs/email/email.tsx
51
- var import_jsx_runtime2 = require("react/jsx-runtime");
52
- var Email = import_react2.default.forwardRef(({ ...props }, ref) => {
53
- return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(Input, { ref, autoComplete: "email", type: "email", ...props });
188
+ var import_jsx_runtime3 = require("react/jsx-runtime");
189
+ var Email = import_react4.default.forwardRef(({ ...props }, ref) => {
190
+ return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(Input, { ref, autoComplete: "email", type: "email", ...props });
54
191
  });
55
192
  Email.displayName = "TeachInUI.Email";
56
193
  // Annotate the CommonJS export names for ESM import in node:
@@ -2,9 +2,11 @@
2
2
  import "../../../chunk-V3KKDSQP.mjs";
3
3
  import {
4
4
  Email
5
- } from "../../../chunk-LJIVY6GU.mjs";
5
+ } from "../../../chunk-46SKVFMZ.mjs";
6
6
  import "../../../chunk-ZRHEFEFS.mjs";
7
- import "../../../chunk-V2G5QHZZ.mjs";
7
+ import "../../../chunk-MCQGBAUS.mjs";
8
+ import "../../../chunk-NSU66J5E.mjs";
9
+ import "../../../chunk-TUIN5YJW.mjs";
8
10
  export {
9
11
  Email
10
12
  };
@@ -3,8 +3,10 @@ export * from "./checkbox";
3
3
  export * from "./date-picker";
4
4
  export * from "./email";
5
5
  export * from "./input";
6
+ export * from "./search";
6
7
  export * from "./select";
7
8
  export * from "./switch";
8
9
  export * from "./radio";
9
10
  export * from "./text";
10
11
  export * from "./textarea";
12
+ export * from "./clear-button";