@helpwave/hightide 0.1.27 → 0.1.28

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 (134) hide show
  1. package/dist/coloring/index.d.mts +2 -0
  2. package/dist/coloring/index.d.ts +2 -0
  3. package/dist/coloring/index.js +85 -0
  4. package/dist/coloring/index.js.map +1 -0
  5. package/dist/coloring/index.mjs +48 -0
  6. package/dist/coloring/index.mjs.map +1 -0
  7. package/dist/components/branding/index.d.mts +3 -0
  8. package/dist/components/branding/index.d.ts +3 -0
  9. package/dist/components/branding/index.js +140 -0
  10. package/dist/components/branding/index.js.map +1 -0
  11. package/dist/components/branding/index.mjs +104 -0
  12. package/dist/components/branding/index.mjs.map +1 -0
  13. package/dist/components/date/index.d.mts +10 -0
  14. package/dist/components/date/index.d.ts +10 -0
  15. package/dist/components/date/index.js +1168 -0
  16. package/dist/components/date/index.js.map +1 -0
  17. package/dist/components/date/index.mjs +1124 -0
  18. package/dist/components/date/index.mjs.map +1 -0
  19. package/dist/components/dialog/index.js.map +1 -1
  20. package/dist/components/form/index.d.mts +5 -0
  21. package/dist/components/form/index.d.ts +5 -0
  22. package/dist/components/form/index.js +100 -0
  23. package/dist/components/form/index.js.map +1 -0
  24. package/dist/components/form/index.mjs +64 -0
  25. package/dist/components/form/index.mjs.map +1 -0
  26. package/dist/components/icons-and-geometry/index.d.mts +7 -0
  27. package/dist/components/icons-and-geometry/index.d.ts +7 -0
  28. package/dist/components/icons-and-geometry/index.js +3955 -0
  29. package/dist/components/icons-and-geometry/index.js.map +1 -0
  30. package/dist/components/icons-and-geometry/index.mjs +3939 -0
  31. package/dist/components/icons-and-geometry/index.mjs.map +1 -0
  32. package/dist/components/index.d.mts +83 -0
  33. package/dist/components/index.d.ts +83 -0
  34. package/dist/components/index.js +15471 -0
  35. package/dist/components/index.js.map +1 -0
  36. package/dist/components/index.mjs +15377 -0
  37. package/dist/components/index.mjs.map +1 -0
  38. package/dist/components/layout/index.d.mts +18 -0
  39. package/dist/components/layout/index.d.ts +18 -0
  40. package/dist/components/layout/index.js +3111 -0
  41. package/dist/components/layout/index.js.map +1 -0
  42. package/dist/components/layout/index.mjs +3064 -0
  43. package/dist/components/layout/index.mjs.map +1 -0
  44. package/dist/components/loading-states/index.d.mts +12 -0
  45. package/dist/components/loading-states/index.d.ts +12 -0
  46. package/dist/components/loading-states/index.js +614 -0
  47. package/dist/components/loading-states/index.js.map +1 -0
  48. package/dist/components/loading-states/index.mjs +573 -0
  49. package/dist/components/loading-states/index.mjs.map +1 -0
  50. package/dist/components/navigation/index.d.mts +9 -0
  51. package/dist/components/navigation/index.d.ts +9 -0
  52. package/dist/components/navigation/index.js +4660 -0
  53. package/dist/components/navigation/index.js.map +1 -0
  54. package/dist/components/navigation/index.mjs +4648 -0
  55. package/dist/components/navigation/index.mjs.map +1 -0
  56. package/dist/components/properties/index.d.mts +12 -0
  57. package/dist/components/properties/index.d.ts +12 -0
  58. package/dist/components/properties/index.js +2983 -0
  59. package/dist/components/properties/index.js.map +1 -0
  60. package/dist/components/properties/index.mjs +2951 -0
  61. package/dist/components/properties/index.mjs.map +1 -0
  62. package/dist/components/table/index.d.mts +10 -0
  63. package/dist/components/table/index.d.ts +10 -0
  64. package/dist/components/table/index.js +2329 -0
  65. package/dist/components/table/index.js.map +1 -0
  66. package/dist/components/table/index.mjs +2293 -0
  67. package/dist/components/table/index.mjs.map +1 -0
  68. package/dist/components/user-action/index.d.mts +30 -0
  69. package/dist/components/user-action/index.d.ts +30 -0
  70. package/dist/components/user-action/index.js +4257 -0
  71. package/dist/components/user-action/index.js.map +1 -0
  72. package/dist/components/user-action/index.mjs +4195 -0
  73. package/dist/components/user-action/index.mjs.map +1 -0
  74. package/dist/components/user-action/input/index.d.mts +6 -0
  75. package/dist/components/user-action/input/index.d.ts +6 -0
  76. package/dist/components/user-action/input/index.js +398 -0
  77. package/dist/components/user-action/input/index.js.map +1 -0
  78. package/dist/components/user-action/input/index.mjs +357 -0
  79. package/dist/components/user-action/input/index.mjs.map +1 -0
  80. package/dist/components/user-action/select/index.d.mts +4 -0
  81. package/dist/components/user-action/select/index.d.ts +4 -0
  82. package/dist/components/user-action/select/index.js +1369 -0
  83. package/dist/components/user-action/select/index.js.map +1 -0
  84. package/dist/components/user-action/select/index.mjs +1333 -0
  85. package/dist/components/user-action/select/index.mjs.map +1 -0
  86. package/dist/components/utils/index.d.mts +4 -0
  87. package/dist/components/utils/index.d.ts +4 -0
  88. package/dist/components/utils/index.js +302 -0
  89. package/dist/components/utils/index.js.map +1 -0
  90. package/dist/components/utils/index.mjs +275 -0
  91. package/dist/components/utils/index.mjs.map +1 -0
  92. package/dist/hooks/focus/index.d.mts +6 -0
  93. package/dist/hooks/focus/index.d.ts +6 -0
  94. package/dist/hooks/focus/index.js +379 -0
  95. package/dist/hooks/focus/index.js.map +1 -0
  96. package/dist/hooks/focus/index.mjs +339 -0
  97. package/dist/hooks/focus/index.mjs.map +1 -0
  98. package/dist/hooks/index.d.mts +16 -0
  99. package/dist/hooks/index.d.ts +16 -0
  100. package/dist/hooks/index.js +844 -0
  101. package/dist/hooks/index.js.map +1 -0
  102. package/dist/hooks/index.mjs +794 -0
  103. package/dist/hooks/index.mjs.map +1 -0
  104. package/dist/index.d.mts +110 -0
  105. package/dist/index.d.ts +110 -0
  106. package/dist/index.js +16101 -0
  107. package/dist/index.js.map +1 -0
  108. package/dist/index.mjs +15941 -0
  109. package/dist/index.mjs.map +1 -0
  110. package/dist/localization/defaults/index.d.mts +4 -0
  111. package/dist/localization/defaults/index.d.ts +4 -0
  112. package/dist/localization/defaults/index.js +223 -0
  113. package/dist/localization/defaults/index.js.map +1 -0
  114. package/dist/localization/defaults/index.mjs +195 -0
  115. package/dist/localization/defaults/index.mjs.map +1 -0
  116. package/dist/localization/index.d.mts +7 -0
  117. package/dist/localization/index.d.ts +7 -0
  118. package/dist/localization/index.js +415 -0
  119. package/dist/localization/index.js.map +1 -0
  120. package/dist/localization/index.mjs +380 -0
  121. package/dist/localization/index.mjs.map +1 -0
  122. package/dist/theming/index.d.mts +5 -0
  123. package/dist/theming/index.d.ts +5 -0
  124. package/dist/theming/index.js +174 -0
  125. package/dist/theming/index.js.map +1 -0
  126. package/dist/theming/index.mjs +145 -0
  127. package/dist/theming/index.mjs.map +1 -0
  128. package/dist/utils/index.d.mts +15 -0
  129. package/dist/utils/index.d.ts +15 -0
  130. package/dist/utils/index.js +553 -0
  131. package/dist/utils/index.js.map +1 -0
  132. package/dist/utils/index.mjs +493 -0
  133. package/dist/utils/index.mjs.map +1 -0
  134. package/package.json +25 -24
@@ -0,0 +1,357 @@
1
+ // src/components/user-action/input/Input.tsx
2
+ import { forwardRef, useEffect as useEffect2, useImperativeHandle, useRef, useState as useState2 } from "react";
3
+ import clsx from "clsx";
4
+
5
+ // src/hooks/useDelay.ts
6
+ import { useEffect, useState } from "react";
7
+ var defaultOptions = {
8
+ delay: 3e3,
9
+ disabled: false
10
+ };
11
+ function useDelay(options) {
12
+ const [timer, setTimer] = useState(void 0);
13
+ const { delay, disabled } = {
14
+ ...defaultOptions,
15
+ ...options
16
+ };
17
+ const clearTimer = () => {
18
+ clearTimeout(timer);
19
+ setTimer(void 0);
20
+ };
21
+ const restartTimer = (onDelayFinish) => {
22
+ if (disabled) {
23
+ return;
24
+ }
25
+ clearTimeout(timer);
26
+ setTimer(setTimeout(() => {
27
+ onDelayFinish();
28
+ setTimer(void 0);
29
+ }, delay));
30
+ };
31
+ useEffect(() => {
32
+ return () => {
33
+ clearTimeout(timer);
34
+ };
35
+ }, [timer]);
36
+ useEffect(() => {
37
+ if (disabled) {
38
+ clearTimeout(timer);
39
+ setTimer(void 0);
40
+ }
41
+ }, [disabled, timer]);
42
+ return { restartTimer, clearTimer, hasActiveTimer: !!timer };
43
+ }
44
+
45
+ // src/hooks/focus/useFocusManagement.ts
46
+ import { useCallback } from "react";
47
+ function useFocusManagement() {
48
+ const getFocusableElements = useCallback(() => {
49
+ return Array.from(
50
+ document.querySelectorAll(
51
+ 'input, button, select, textarea, a[href], [tabindex]:not([tabindex="-1"])'
52
+ )
53
+ ).filter(
54
+ (el) => el instanceof HTMLElement && !el.hasAttribute("disabled") && !el.hasAttribute("hidden") && el.tabIndex !== -1
55
+ );
56
+ }, []);
57
+ const getNextFocusElement = useCallback(() => {
58
+ const elements = getFocusableElements();
59
+ if (elements.length === 0) {
60
+ return void 0;
61
+ }
62
+ let nextElement = elements[0];
63
+ if (document.activeElement instanceof HTMLElement) {
64
+ const currentIndex = elements.indexOf(document.activeElement);
65
+ nextElement = elements[(currentIndex + 1) % elements.length];
66
+ }
67
+ return nextElement;
68
+ }, [getFocusableElements]);
69
+ const focusNext = useCallback(() => {
70
+ const nextElement = getNextFocusElement();
71
+ nextElement?.focus();
72
+ }, [getNextFocusElement]);
73
+ const getPreviousFocusElement = useCallback(() => {
74
+ const elements = getFocusableElements();
75
+ if (elements.length === 0) {
76
+ return void 0;
77
+ }
78
+ let previousElement = elements[0];
79
+ if (document.activeElement instanceof HTMLElement) {
80
+ const currentIndex = elements.indexOf(document.activeElement);
81
+ if (currentIndex === 0) {
82
+ previousElement = elements[elements.length - 1];
83
+ } else {
84
+ previousElement = elements[currentIndex - 1];
85
+ }
86
+ }
87
+ return previousElement;
88
+ }, [getFocusableElements]);
89
+ const focusPrevious = useCallback(() => {
90
+ const previousElement = getPreviousFocusElement();
91
+ if (previousElement) previousElement.focus();
92
+ }, [getPreviousFocusElement]);
93
+ return {
94
+ getFocusableElements,
95
+ getNextFocusElement,
96
+ getPreviousFocusElement,
97
+ focusNext,
98
+ focusPrevious
99
+ };
100
+ }
101
+
102
+ // src/components/user-action/input/Input.tsx
103
+ import { jsx } from "react/jsx-runtime";
104
+ var defaultEditCompleteOptions = {
105
+ allowEnterComplete: false,
106
+ onBlur: true,
107
+ afterDelay: true,
108
+ delay: 2500
109
+ };
110
+ var Input = forwardRef(function Input2({
111
+ value,
112
+ onChange,
113
+ onChangeText,
114
+ onEditCompleted,
115
+ editCompleteOptions,
116
+ disabled = false,
117
+ invalid = false,
118
+ defaultStyle = true,
119
+ className,
120
+ ...props
121
+ }, forwardedRef) {
122
+ const {
123
+ onBlur: allowEditCompleteOnBlur,
124
+ afterDelay,
125
+ delay,
126
+ allowEnterComplete
127
+ } = { ...defaultEditCompleteOptions, ...editCompleteOptions };
128
+ const {
129
+ restartTimer,
130
+ clearTimer
131
+ } = useDelay({ delay, disabled: !afterDelay });
132
+ const innerRef = useRef(null);
133
+ useImperativeHandle(forwardedRef, () => innerRef.current);
134
+ const { focusNext } = useFocusManagement();
135
+ return /* @__PURE__ */ jsx(
136
+ "input",
137
+ {
138
+ ...props,
139
+ ref: innerRef,
140
+ value,
141
+ disabled,
142
+ className: defaultStyle ? clsx(
143
+ "px-2.5 py-1.75 rounded-md border-1 text-sm",
144
+ {
145
+ "bg-input-background text-input-text hover:border-primary focus:border-primary": !disabled && !invalid,
146
+ "bg-on-negative text-negative border-negative-border hover:border-negative-border-hover focus-visible:ring-negative-border": !disabled && invalid,
147
+ "bg-disabled-background text-disabled-text border-disabled-border": disabled
148
+ },
149
+ className
150
+ ) : className,
151
+ onKeyDown: (event) => {
152
+ props.onKeyDown?.(event);
153
+ if (!allowEnterComplete) {
154
+ return;
155
+ }
156
+ if (event.key === "Enter" && !event.shiftKey) {
157
+ event.preventDefault();
158
+ innerRef.current?.blur();
159
+ onEditCompleted?.(event.target.value);
160
+ focusNext();
161
+ }
162
+ },
163
+ onBlur: (event) => {
164
+ props.onBlur?.(event);
165
+ if (allowEditCompleteOnBlur) {
166
+ onEditCompleted?.(event.target.value);
167
+ clearTimer();
168
+ }
169
+ },
170
+ onChange: (event) => {
171
+ onChange?.(event);
172
+ const value2 = event.target.value;
173
+ restartTimer(() => {
174
+ innerRef.current?.blur();
175
+ onEditCompleted?.(value2);
176
+ });
177
+ onChangeText?.(value2);
178
+ },
179
+ "aria-invalid": props["aria-invalid"] ?? invalid,
180
+ "aria-disabled": props["aria-disabled"] ?? disabled
181
+ }
182
+ );
183
+ });
184
+ var InputUncontrolled = ({
185
+ value = "",
186
+ onChangeText,
187
+ ...props
188
+ }) => {
189
+ const [usedValue, setUsedValue] = useState2(value);
190
+ useEffect2(() => {
191
+ setUsedValue(value);
192
+ }, [value]);
193
+ return /* @__PURE__ */ jsx(
194
+ Input,
195
+ {
196
+ ...props,
197
+ value: usedValue,
198
+ onChangeText: (text) => {
199
+ onChangeText?.(text);
200
+ setUsedValue(text);
201
+ }
202
+ }
203
+ );
204
+ };
205
+
206
+ // src/components/user-action/input/InsideLabelInput.tsx
207
+ import { useId } from "react";
208
+ import { forwardRef as forwardRef2, useEffect as useEffect3, useState as useState3 } from "react";
209
+ import clsx2 from "clsx";
210
+ import { jsx as jsx2, jsxs } from "react/jsx-runtime";
211
+ var InsideLabelInput = forwardRef2(function InsideLabelInput2({
212
+ id: customId,
213
+ label,
214
+ ...props
215
+ }, forwardedRef) {
216
+ const { value } = props;
217
+ const [isFocused, setIsFocused] = useState3(false);
218
+ const generatedId = useId();
219
+ const id = customId ?? generatedId;
220
+ return /* @__PURE__ */ jsxs("div", { className: clsx2("relative"), children: [
221
+ /* @__PURE__ */ jsx2(
222
+ Input,
223
+ {
224
+ ...props,
225
+ id,
226
+ className: clsx2("h-14 px-4 pb-2 py-6.5", props.className),
227
+ ref: forwardedRef,
228
+ "aria-labelledby": id + "-label",
229
+ onFocus: (event) => {
230
+ props.onFocus?.(event);
231
+ setIsFocused(true);
232
+ },
233
+ onBlur: (event) => {
234
+ props.onBlur?.(event);
235
+ setIsFocused(false);
236
+ }
237
+ }
238
+ ),
239
+ /* @__PURE__ */ jsx2(
240
+ "label",
241
+ {
242
+ id: id + "-label",
243
+ "aria-hidden": true,
244
+ "data-display": isFocused || !!value ? "small" : "full",
245
+ className: clsx2(
246
+ "absolute left-4 top-2 transition-all pointer-events-none touch-none",
247
+ "data-[display=small]:top-2 data-[display=small]:h-force-4.5 data-[display=small]:typography-caption-sm-regular data-[display=small]:overflow-y-hidden",
248
+ "data-[display=full]:top-1/2 data-[display=full]:-translate-y-1/2 data-[display=full]:typography-body-md-regular"
249
+ ),
250
+ children: label
251
+ }
252
+ )
253
+ ] });
254
+ });
255
+ var InsideLabelInputUncontrolled = ({
256
+ value: initialValue,
257
+ ...props
258
+ }) => {
259
+ const [value, setValue] = useState3(initialValue);
260
+ useEffect3(() => {
261
+ setValue(initialValue);
262
+ }, [initialValue]);
263
+ return /* @__PURE__ */ jsx2(
264
+ InsideLabelInput,
265
+ {
266
+ ...props,
267
+ value,
268
+ onChangeText: (text) => {
269
+ props.onChangeText?.(text);
270
+ setValue(text);
271
+ }
272
+ }
273
+ );
274
+ };
275
+
276
+ // src/components/user-action/input/ToggleableInput.tsx
277
+ import { forwardRef as forwardRef3, useEffect as useEffect4, useImperativeHandle as useImperativeHandle2, useRef as useRef2, useState as useState4 } from "react";
278
+ import { Pencil } from "lucide-react";
279
+ import clsx3 from "clsx";
280
+ import { jsx as jsx3, jsxs as jsxs2 } from "react/jsx-runtime";
281
+ var ToggleableInput = forwardRef3(function ToggleableInput2({
282
+ value,
283
+ initialState = "display",
284
+ editCompleteOptions,
285
+ ...props
286
+ }, forwardedRef) {
287
+ const [isEditing, setIsEditing] = useState4(initialState !== "display");
288
+ const innerRef = useRef2(null);
289
+ useImperativeHandle2(forwardedRef, () => innerRef.current);
290
+ useEffect4(() => {
291
+ if (isEditing) {
292
+ innerRef.current?.focus();
293
+ }
294
+ }, [isEditing]);
295
+ return /* @__PURE__ */ jsxs2("div", { className: clsx3("relative flex-row-2", { "flex-1": isEditing }), children: [
296
+ /* @__PURE__ */ jsx3(
297
+ Input,
298
+ {
299
+ ...props,
300
+ ref: innerRef,
301
+ value,
302
+ onEditCompleted: (text) => {
303
+ props.onEditCompleted?.(text);
304
+ setIsEditing(false);
305
+ },
306
+ onFocus: (event) => {
307
+ props.onFocus?.(event);
308
+ setIsEditing(true);
309
+ event.target.select();
310
+ },
311
+ editCompleteOptions: {
312
+ ...editCompleteOptions,
313
+ allowEnterComplete: true
314
+ },
315
+ className: clsx3(`w-full ring-0 outline-0 decoration-primary underline-offset-4`, {
316
+ "underline": isEditing,
317
+ "text-transparent": !isEditing
318
+ }),
319
+ defaultStyle: false
320
+ }
321
+ ),
322
+ !isEditing && /* @__PURE__ */ jsxs2("div", { className: "absolute left-0 flex-row-2 items-center pointer-events-none touch-none w-full overflow-hidden", children: [
323
+ /* @__PURE__ */ jsx3("span", { className: clsx3(" truncate"), children: value }),
324
+ /* @__PURE__ */ jsx3(Pencil, { className: clsx3(`size-force-4`, { "text-transparent": isEditing }) })
325
+ ] })
326
+ ] });
327
+ });
328
+ var ToggleableInputUncontrolled = ({
329
+ value: initialValue,
330
+ onChangeText,
331
+ ...restProps
332
+ }) => {
333
+ const [value, setValue] = useState4(initialValue);
334
+ useEffect4(() => {
335
+ setValue(initialValue);
336
+ }, [initialValue]);
337
+ return /* @__PURE__ */ jsx3(
338
+ ToggleableInput,
339
+ {
340
+ value,
341
+ onChangeText: (text) => {
342
+ onChangeText?.(text);
343
+ setValue(text);
344
+ },
345
+ ...restProps
346
+ }
347
+ );
348
+ };
349
+ export {
350
+ Input,
351
+ InputUncontrolled,
352
+ InsideLabelInput,
353
+ InsideLabelInputUncontrolled,
354
+ ToggleableInput,
355
+ ToggleableInputUncontrolled
356
+ };
357
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/components/user-action/input/Input.tsx","../../../../src/hooks/useDelay.ts","../../../../src/hooks/focus/useFocusManagement.ts","../../../../src/components/user-action/input/InsideLabelInput.tsx","../../../../src/components/user-action/input/ToggleableInput.tsx"],"sourcesContent":["import type { InputHTMLAttributes } from 'react'\nimport React, { forwardRef, useEffect, useImperativeHandle, useRef, useState } from 'react'\nimport clsx from 'clsx'\nimport type { UseDelayOptionsResolved } from '@/src/hooks/useDelay'\nimport { useDelay } from '@/src/hooks/useDelay'\nimport { useFocusManagement } from '@/src/hooks/focus/useFocusManagement'\n\nexport type EditCompleteOptionsResolved = {\n onBlur: boolean,\n afterDelay: boolean,\n allowEnterComplete?: boolean,\n} & Omit<UseDelayOptionsResolved, 'disabled'>\n\nexport type EditCompleteOptions = Partial<EditCompleteOptionsResolved>\n\nconst defaultEditCompleteOptions: EditCompleteOptionsResolved = {\n allowEnterComplete: false,\n onBlur: true,\n afterDelay: true,\n delay: 2500\n}\n\nexport type InputProps = InputHTMLAttributes<HTMLInputElement> & {\n invalid?: boolean,\n onChangeText?: (text: string) => void,\n onEditCompleted?: (text: string) => void,\n editCompleteOptions?: EditCompleteOptions,\n defaultStyle?: boolean,\n}\n\n/**\n * A Component for inputting text or other information\n *\n * Its state is managed must be managed by the parent\n */\nexport const Input = forwardRef<HTMLInputElement, InputProps>(function Input({\n value,\n onChange,\n onChangeText,\n onEditCompleted,\n editCompleteOptions,\n disabled = false,\n invalid = false,\n defaultStyle = true,\n className,\n ...props\n }, forwardedRef) {\n const {\n onBlur: allowEditCompleteOnBlur,\n afterDelay,\n delay,\n allowEnterComplete\n } = { ...defaultEditCompleteOptions, ...editCompleteOptions }\n\n const {\n restartTimer,\n clearTimer\n } = useDelay({ delay, disabled: !afterDelay })\n\n const innerRef = useRef<HTMLInputElement>(null)\n useImperativeHandle(forwardedRef, () => innerRef.current)\n\n const { focusNext } = useFocusManagement()\n\n return (\n <input\n {...props}\n ref={innerRef}\n value={value}\n disabled={disabled}\n className={defaultStyle ? clsx(\n 'px-2.5 py-1.75 rounded-md border-1 text-sm',\n {\n 'bg-input-background text-input-text hover:border-primary focus:border-primary': !disabled && !invalid,\n 'bg-on-negative text-negative border-negative-border hover:border-negative-border-hover focus-visible:ring-negative-border': !disabled && invalid,\n 'bg-disabled-background text-disabled-text border-disabled-border': disabled,\n }, className\n ) : className}\n onKeyDown={event => {\n props.onKeyDown?.(event)\n if (!allowEnterComplete) {\n return\n }\n if (event.key === 'Enter' && !event.shiftKey) {\n event.preventDefault()\n innerRef.current?.blur()\n onEditCompleted?.((event.target as HTMLInputElement).value)\n focusNext()\n }\n }}\n onBlur={event => {\n props.onBlur?.(event)\n if (allowEditCompleteOnBlur) {\n onEditCompleted?.(event.target.value)\n clearTimer()\n }\n }}\n onChange={event => {\n onChange?.(event)\n const value = event.target.value\n restartTimer(() => {\n innerRef.current?.blur()\n onEditCompleted?.(value)\n })\n onChangeText?.(value)\n }}\n\n aria-invalid={props['aria-invalid'] ?? invalid}\n aria-disabled={props['aria-disabled'] ?? disabled}\n />\n )\n})\n\n\n/**\n * A Component for inputting text or other information\n *\n * Its state is managed by the component itself\n */\nexport const InputUncontrolled = ({\n value = '',\n onChangeText,\n ...props\n }: InputProps) => {\n const [usedValue, setUsedValue] = useState(value)\n\n useEffect(() => {\n setUsedValue(value)\n }, [value])\n\n return (\n <Input\n {...props}\n value={usedValue}\n onChangeText={text => {\n onChangeText?.(text)\n setUsedValue(text)\n }}\n />\n )\n}\n","import { useEffect, useState } from 'react'\n\nexport type UseDelayOptionsResolved = {\n delay: number,\n disabled: boolean,\n}\n\nexport type UseDelayOptions = Partial<UseDelayOptionsResolved>\n\nconst defaultOptions: UseDelayOptionsResolved = {\n delay: 3000,\n disabled: false,\n}\n\nexport function useDelay(options?: UseDelayOptions) {\n const [timer, setTimer] = useState<NodeJS.Timeout | undefined>(undefined)\n const { delay, disabled }: UseDelayOptionsResolved = {\n ...defaultOptions,\n ...options\n }\n\n const clearTimer = () => {\n clearTimeout(timer)\n setTimer(undefined)\n }\n\n const restartTimer = (onDelayFinish: () => void) => {\n if(disabled) {\n return\n }\n clearTimeout(timer)\n setTimer(setTimeout(() => {\n onDelayFinish()\n setTimer(undefined)\n }, delay))\n }\n\n useEffect(() => {\n return () => {\n clearTimeout(timer)\n }\n }, [timer])\n\n useEffect(() => {\n if(disabled){\n clearTimeout(timer)\n setTimer(undefined)\n }\n }, [disabled, timer])\n\n return { restartTimer, clearTimer, hasActiveTimer: !!timer }\n}","import { useCallback } from 'react'\n\nexport function useFocusManagement() {\n const getFocusableElements = useCallback((): HTMLElement[] => {\n return Array.from(\n document.querySelectorAll(\n 'input, button, select, textarea, a[href], [tabindex]:not([tabindex=\"-1\"])'\n )\n ).filter(\n (el): el is HTMLElement =>\n el instanceof HTMLElement &&\n !el.hasAttribute('disabled') &&\n !el.hasAttribute('hidden') &&\n el.tabIndex !== -1\n )\n }, [])\n\n const getNextFocusElement = useCallback((): HTMLElement | undefined => {\n const elements = getFocusableElements()\n if(elements.length === 0) {\n return undefined\n }\n let nextElement = elements[0]\n if(document.activeElement instanceof HTMLElement) {\n const currentIndex = elements.indexOf(document.activeElement)\n nextElement = elements[(currentIndex + 1) % elements.length]\n }\n return nextElement\n }, [getFocusableElements])\n\n const focusNext = useCallback(() => {\n const nextElement = getNextFocusElement()\n nextElement?.focus()\n }, [getNextFocusElement])\n\n const getPreviousFocusElement = useCallback((): HTMLElement | undefined => {\n const elements = getFocusableElements()\n if(elements.length === 0) {\n return undefined\n }\n let previousElement = elements[0]\n if(document.activeElement instanceof HTMLElement) {\n const currentIndex = elements.indexOf(document.activeElement)\n if(currentIndex === 0) {\n previousElement = elements[elements.length - 1]\n } else {\n previousElement = elements[currentIndex - 1]\n }\n }\n return previousElement\n }, [getFocusableElements])\n\n const focusPrevious = useCallback(() => {\n const previousElement = getPreviousFocusElement()\n if (previousElement) previousElement.focus()\n }, [getPreviousFocusElement])\n\n return {\n getFocusableElements,\n getNextFocusElement,\n getPreviousFocusElement,\n focusNext,\n focusPrevious,\n }\n}","import type { ReactNode } from 'react'\nimport { useId } from 'react'\nimport { forwardRef, useEffect, useState } from 'react'\nimport clsx from 'clsx'\nimport type { InputProps } from '@/src/components/user-action/input/Input'\nimport { Input } from '@/src/components/user-action/input/Input'\n\ntype InsideLabelInputProps = Omit<InputProps, 'aria-label' | 'aria-labelledby' | 'placeholder'> & {\n label: ReactNode,\n}\n\n/**\n * Text input component with a label inside the input that moves up when editing\n *\n * The State is managed by the parent\n */\nexport const InsideLabelInput = forwardRef<HTMLInputElement, InsideLabelInputProps>(function InsideLabelInput({\n id: customId,\n label,\n ...props\n }, forwardedRef) {\n const { value } = props\n const [isFocused, setIsFocused] = useState(false)\n const generatedId = useId()\n const id = customId ?? generatedId\n\n return (\n <div className={clsx('relative')}>\n <Input\n {...props}\n id={id}\n className={clsx('h-14 px-4 pb-2 py-6.5', props.className)}\n ref={forwardedRef}\n aria-labelledby={id+ '-label'}\n onFocus={event => {\n props.onFocus?.(event)\n setIsFocused(true)\n }}\n onBlur={event => {\n props.onBlur?.(event)\n setIsFocused(false)\n }}\n />\n <label\n id={id+ '-label'}\n aria-hidden={true}\n data-display={isFocused || !!value ? 'small' : 'full'}\n className={clsx(\n 'absolute left-4 top-2 transition-all pointer-events-none touch-none',\n 'data-[display=small]:top-2 data-[display=small]:h-force-4.5 data-[display=small]:typography-caption-sm-regular data-[display=small]:overflow-y-hidden',\n 'data-[display=full]:top-1/2 data-[display=full]:-translate-y-1/2 data-[display=full]:typography-body-md-regular'\n )}\n >\n {label}\n </label>\n </div>\n )\n})\n\nexport const InsideLabelInputUncontrolled = ({\n value: initialValue,\n ...props\n }: InsideLabelInputProps) => {\n const [value, setValue] = useState(initialValue)\n\n useEffect(() => {\n setValue(initialValue)\n }, [initialValue])\n\n return (\n <InsideLabelInput\n {...props}\n value={value}\n onChangeText={text => {\n props.onChangeText?.(text)\n setValue(text)\n }}\n />\n )\n}\n","import { forwardRef, useEffect, useImperativeHandle, useRef, useState } from 'react'\nimport { Pencil } from 'lucide-react'\nimport clsx from 'clsx'\nimport type { EditCompleteOptions, InputProps } from '@/src/components/user-action/input/Input'\nimport { Input } from '@/src/components/user-action/input/Input'\n\ntype ToggleableInputProps = Omit<InputProps, 'defaultStyle'> & {\n initialState?: 'editing' | 'display',\n editCompleteOptions?: Omit<EditCompleteOptions, 'allowEnterComplete'>,\n}\n\n/**\n * A Text input component for inputting text. It changes appearance upon entering the edit mode and switches\n * back to display mode on loss of focus or on enter\n *\n * The State is managed by the parent\n */\nexport const ToggleableInput = forwardRef<HTMLInputElement, ToggleableInputProps>(function ToggleableInput({\n value,\n initialState = 'display',\n editCompleteOptions,\n ...props\n }, forwardedRef) {\n const [isEditing, setIsEditing] = useState(initialState !== 'display')\n\n const innerRef = useRef<HTMLInputElement>(null)\n useImperativeHandle(forwardedRef, () => innerRef.current)\n\n useEffect(() => {\n if (isEditing) {\n innerRef.current?.focus()\n }\n }, [isEditing])\n\n return (\n <div className={clsx('relative flex-row-2', { 'flex-1': isEditing })}>\n <Input\n {...props}\n ref={innerRef}\n value={value}\n onEditCompleted={(text) => {\n props.onEditCompleted?.(text)\n setIsEditing(false)\n }}\n onFocus={event => {\n props.onFocus?.(event)\n setIsEditing(true)\n event.target.select()\n }}\n editCompleteOptions={{\n ...editCompleteOptions,\n allowEnterComplete: true\n }}\n className={clsx(`w-full ring-0 outline-0 decoration-primary underline-offset-4`, {\n 'underline': isEditing,\n 'text-transparent': !isEditing,\n })}\n defaultStyle={false}\n />\n {!isEditing && (\n <div className=\"absolute left-0 flex-row-2 items-center pointer-events-none touch-none w-full overflow-hidden\">\n <span className={clsx(' truncate')}>\n {value}\n </span>\n <Pencil className={clsx(`size-force-4`, { 'text-transparent': isEditing })} />\n </div>\n )}\n </div>\n )\n})\n\nexport const ToggleableInputUncontrolled = ({\n value: initialValue,\n onChangeText,\n ...restProps\n }: ToggleableInputProps) => {\n const [value, setValue] = useState(initialValue)\n\n useEffect(() => {\n setValue(initialValue)\n }, [initialValue])\n\n return (\n <ToggleableInput\n value={value}\n onChangeText={text => {\n onChangeText?.(text)\n setValue(text)\n }}\n {...restProps}\n />\n )\n}\n"],"mappings":"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","names":["useEffect","useState","Input","value","useState","useEffect","forwardRef","useEffect","useState","clsx","jsx","forwardRef","InsideLabelInput","useState","clsx","useEffect","forwardRef","useEffect","useImperativeHandle","useRef","useState","clsx","jsx","jsxs","forwardRef","ToggleableInput","useState","useRef","useImperativeHandle","useEffect","clsx"]}
@@ -0,0 +1,4 @@
1
+ export { MultiSelect, MultiSelectChipDisplay, MultiSelectChipDisplayProps, MultiSelectChipDisplayUncontrolled, MultiSelectChipDisplayUncontrolledProps, MultiSelectProps, MultiSelectUncontrolled, MultiSelectUncontrolledProps, Select, SelectButton, SelectChipDisplay, SelectContent, SelectContentProps, SelectOption, SelectOptionProps, SelectProps, SelectRoot, SelectRootProps, SelectUncontrolled, SelectUncontrolledProps } from './Select.mjs';
2
+ import 'react/jsx-runtime';
3
+ import 'react';
4
+ import '../../../hooks/useFloatingElement.mjs';
@@ -0,0 +1,4 @@
1
+ export { MultiSelect, MultiSelectChipDisplay, MultiSelectChipDisplayProps, MultiSelectChipDisplayUncontrolled, MultiSelectChipDisplayUncontrolledProps, MultiSelectProps, MultiSelectUncontrolled, MultiSelectUncontrolledProps, Select, SelectButton, SelectChipDisplay, SelectContent, SelectContentProps, SelectOption, SelectOptionProps, SelectProps, SelectRoot, SelectRootProps, SelectUncontrolled, SelectUncontrolledProps } from './Select.js';
2
+ import 'react/jsx-runtime';
3
+ import 'react';
4
+ import '../../../hooks/useFloatingElement.js';