@k3-universe/react-kit 0.0.42 → 0.0.44
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/dist/index.js +32 -4
- package/dist/kit/builder/form/components/fields/AutocompleteField.d.ts.map +1 -1
- package/dist/kit/builder/form/components/fields/DateField.d.ts.map +1 -1
- package/dist/kit/components/autocomplete/Autocomplete.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/kit/builder/form/components/fields/AutocompleteField.tsx +12 -2
- package/src/kit/builder/form/components/fields/DateField.tsx +16 -5
- package/src/kit/components/autocomplete/Autocomplete.tsx +7 -1
package/dist/index.js
CHANGED
|
@@ -20229,15 +20229,23 @@ function Autocomplete({
|
|
|
20229
20229
|
useImperativeHandle(
|
|
20230
20230
|
ref,
|
|
20231
20231
|
() => ({
|
|
20232
|
-
reset: handleClear
|
|
20232
|
+
reset: handleClear,
|
|
20233
|
+
experimental_injectInternalOptions: (options2) => {
|
|
20234
|
+
if (Array.isArray(options2)) {
|
|
20235
|
+
options2.forEach((opt) => {
|
|
20236
|
+
storeOption(opt);
|
|
20237
|
+
});
|
|
20238
|
+
}
|
|
20239
|
+
}
|
|
20233
20240
|
}),
|
|
20234
|
-
[handleClear]
|
|
20241
|
+
[handleClear, storeOption]
|
|
20235
20242
|
);
|
|
20236
20243
|
const showClearButton = clearable && (isMultiple && selectedItems.length > 0 || !isMultiple && currentValue !== null && currentValue !== void 0 && !Array.isArray(currentValue));
|
|
20237
20244
|
return /* @__PURE__ */ jsxs(Popover, { open: isOpen, onOpenChange: setIsOpen, children: [
|
|
20238
20245
|
/* @__PURE__ */ jsx(PopoverTrigger, { asChild: true, children: /* @__PURE__ */ jsxs(
|
|
20239
20246
|
"div",
|
|
20240
20247
|
{
|
|
20248
|
+
inert: disabled,
|
|
20241
20249
|
className: cn$1(
|
|
20242
20250
|
"flex min-h-10 items-center gap-2 rounded-md border border-border bg-background px-3 py-2 text-sm",
|
|
20243
20251
|
"ring-offset-background",
|
|
@@ -20372,6 +20380,7 @@ function AutocompleteField({
|
|
|
20372
20380
|
onChange,
|
|
20373
20381
|
className
|
|
20374
20382
|
}) {
|
|
20383
|
+
const acRef = useRef(null);
|
|
20375
20384
|
const options = (field.options ?? []).filter(
|
|
20376
20385
|
(o2) => o2.value !== null && o2.value !== void 0
|
|
20377
20386
|
).map((o2) => ({
|
|
@@ -20397,9 +20406,16 @@ function AutocompleteField({
|
|
|
20397
20406
|
defaultValueShaped = typeof field.defaultValue === "string" || typeof field.defaultValue === "number" || field.defaultValue === null ? field.defaultValue : null;
|
|
20398
20407
|
}
|
|
20399
20408
|
}
|
|
20409
|
+
useEffect(() => {
|
|
20410
|
+
var _a2;
|
|
20411
|
+
if (value == null || value === "") {
|
|
20412
|
+
(_a2 = acRef.current) == null ? void 0 : _a2.reset();
|
|
20413
|
+
}
|
|
20414
|
+
}, [value]);
|
|
20400
20415
|
return /* @__PURE__ */ jsx(
|
|
20401
|
-
|
|
20416
|
+
ForwardedRefAutocomplete,
|
|
20402
20417
|
{
|
|
20418
|
+
ref: acRef,
|
|
20403
20419
|
mode: field.autocompleteMode ?? "client",
|
|
20404
20420
|
options,
|
|
20405
20421
|
fetcher: field.fetcher,
|
|
@@ -22516,6 +22532,15 @@ function DateField({
|
|
|
22516
22532
|
onChange,
|
|
22517
22533
|
className
|
|
22518
22534
|
}) {
|
|
22535
|
+
const parseDateValueForInput = (date2) => {
|
|
22536
|
+
if (date2 instanceof Date) {
|
|
22537
|
+
return date2.toISOString().split("T")[0];
|
|
22538
|
+
}
|
|
22539
|
+
if (typeof date2 === "string") {
|
|
22540
|
+
return parseDateValueForInput(new Date(date2));
|
|
22541
|
+
}
|
|
22542
|
+
return "";
|
|
22543
|
+
};
|
|
22519
22544
|
return /* @__PURE__ */ jsx(
|
|
22520
22545
|
Input,
|
|
22521
22546
|
{
|
|
@@ -22523,7 +22548,10 @@ function DateField({
|
|
|
22523
22548
|
disabled: field.disabled || field.readOnly,
|
|
22524
22549
|
placeholder: field.placeholder,
|
|
22525
22550
|
type: "date",
|
|
22526
|
-
value:
|
|
22551
|
+
value: parseDateValueForInput(value),
|
|
22552
|
+
defaultValue: parseDateValueForInput(value),
|
|
22553
|
+
min: parseDateValueForInput(field.minDate),
|
|
22554
|
+
max: parseDateValueForInput(field.maxDate),
|
|
22527
22555
|
onChange: (e2) => onChange(e2.target.value ? new Date(e2.target.value) : null)
|
|
22528
22556
|
}
|
|
22529
22557
|
);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AutocompleteField.d.ts","sourceRoot":"","sources":["../../../../../../src/kit/builder/form/components/fields/AutocompleteField.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"AutocompleteField.d.ts","sourceRoot":"","sources":["../../../../../../src/kit/builder/form/components/fields/AutocompleteField.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAEhD,wBAAgB,iBAAiB,CAAC,EAChC,KAAK,EACL,KAAK,EACL,QAAQ,EACR,SAAS,GACV,EAAE,gBAAgB,2CAwFlB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DateField.d.ts","sourceRoot":"","sources":["../../../../../../src/kit/builder/form/components/fields/DateField.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAEhD,wBAAgB,SAAS,CAAC,EACxB,KAAK,EACL,KAAK,EACL,QAAQ,EACR,SAAS,GACV,EAAE,gBAAgB,
|
|
1
|
+
{"version":3,"file":"DateField.d.ts","sourceRoot":"","sources":["../../../../../../src/kit/builder/form/components/fields/DateField.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAEhD,wBAAgB,SAAS,CAAC,EACxB,KAAK,EACL,KAAK,EACL,QAAQ,EACR,SAAS,GACV,EAAE,gBAAgB,2CA4BlB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Autocomplete.d.ts","sourceRoot":"","sources":["../../../../src/kit/components/autocomplete/Autocomplete.tsx"],"names":[],"mappings":"AAEA,OAAO,EAEL,YAAY,EACZ,aAAa,EAOd,MAAM,OAAO,CAAC;AASf,OAAO,KAAK,EACV,mBAAmB,EAEnB,gBAAgB,EAChB,kBAAkB,EACnB,MAAM,SAAS,CAAC;AAEjB,MAAM,MAAM,iBAAiB,CAAC,CAAC,GAAG,OAAO,IAAI;IAC3C,IAAI,EAAE,gBAAgB,CAAC;IACvB,OAAO,CAAC,EAAE,kBAAkB,CAAC,CAAC,CAAC,EAAE,CAAC;IAClC,OAAO,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC;IACjC,aAAa,CAAC,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC,CAAC;IACvE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC;IACxD,QAAQ,CAAC,EAAE,CACT,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,EACtD,QAAQ,EAAE,kBAAkB,CAAC,CAAC,CAAC,GAAG,kBAAkB,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,EAChE,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,IAAI,KACjB,IAAI,CAAC;IACV,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,SAAS,GAAG,WAAW,GAAG,aAAa,GAAG,SAAS,CAAC;IAClE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,CACb,MAAM,EAAE,kBAAkB,CAAC,CAAC,CAAC,EAC7B,QAAQ,EAAE,OAAO,KACd,KAAK,CAAC,SAAS,CAAC;IACrB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC;IAC/D,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,sBAAsB,CAAC,EAAE,kBAAkB,CAAC,CAAC,CAAC,GAAG,kBAAkB,CAAC,CAAC,CAAC,EAAE,CAAC;IACzE,YAAY,CAAC,EAAE,CACb,MAAM,EAAE,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,KAC3B,OAAO,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;CACvC,CAAC;AAIF,wBAAgB,YAAY,CAAC,CAAC,GAAG,OAAO,EAAE,EACxC,IAAe,EACf,OAAY,EACZ,OAAO,EACP,aAAa,EACb,QAA4B,EAC5B,KAAK,EAAE,eAAe,EACtB,QAAQ,EACR,WAAmC,EACnC,QAAgB,EAChB,QAAgB,EAChB,SAAS,EACT,KAAK,EACL,WAAyB,EACzB,aAAa,EACb,SAA8B,EAC9B,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,gBAAwB,EACxB,SAAgB,EAChB,sBAAsB,EACtB,YAAY,GACb,EAAE,iBAAiB,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,
|
|
1
|
+
{"version":3,"file":"Autocomplete.d.ts","sourceRoot":"","sources":["../../../../src/kit/components/autocomplete/Autocomplete.tsx"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { useEffect, useRef } from 'react';
|
|
2
|
+
import { ForwardedRefAutocomplete } from '../../../../../kit/components/autocomplete/Autocomplete';
|
|
2
3
|
import type { AutocompleteOption } from '../../../../../kit/components/autocomplete/types';
|
|
3
4
|
import type { FieldRenderProps } from './types';
|
|
4
5
|
|
|
@@ -8,6 +9,8 @@ export function AutocompleteField({
|
|
|
8
9
|
onChange,
|
|
9
10
|
className,
|
|
10
11
|
}: FieldRenderProps) {
|
|
12
|
+
const acRef = useRef<any>(null);
|
|
13
|
+
|
|
11
14
|
const options: AutocompleteOption[] = (field.options ?? [])
|
|
12
15
|
.filter(
|
|
13
16
|
(o): o is { label: string; value: string | number } =>
|
|
@@ -56,8 +59,15 @@ export function AutocompleteField({
|
|
|
56
59
|
}
|
|
57
60
|
}
|
|
58
61
|
|
|
62
|
+
useEffect(() => {
|
|
63
|
+
if (value == null || value === "") {
|
|
64
|
+
acRef.current?.reset();
|
|
65
|
+
}
|
|
66
|
+
}, [value]);
|
|
67
|
+
|
|
59
68
|
return (
|
|
60
|
-
<
|
|
69
|
+
<ForwardedRefAutocomplete
|
|
70
|
+
ref={acRef}
|
|
61
71
|
mode={field.autocompleteMode ?? 'client'}
|
|
62
72
|
options={options}
|
|
63
73
|
fetcher={field.fetcher}
|
|
@@ -7,17 +7,28 @@ export function DateField({
|
|
|
7
7
|
onChange,
|
|
8
8
|
className,
|
|
9
9
|
}: FieldRenderProps) {
|
|
10
|
+
const parseDateValueForInput = (date: unknown) => {
|
|
11
|
+
if (date instanceof Date) {
|
|
12
|
+
return date.toISOString().split('T')[0];
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
if (typeof date === 'string') {
|
|
16
|
+
return parseDateValueForInput(new Date(date));
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
return '';
|
|
20
|
+
}
|
|
21
|
+
|
|
10
22
|
return (
|
|
11
23
|
<Input
|
|
12
24
|
className={className}
|
|
13
25
|
disabled={field.disabled || field.readOnly}
|
|
14
26
|
placeholder={field.placeholder}
|
|
15
27
|
type="date"
|
|
16
|
-
value={
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
}
|
|
28
|
+
value={parseDateValueForInput(value)}
|
|
29
|
+
defaultValue={parseDateValueForInput(value)}
|
|
30
|
+
min={parseDateValueForInput(field.minDate)}
|
|
31
|
+
max={parseDateValueForInput(field.maxDate)}
|
|
21
32
|
onChange={(e) =>
|
|
22
33
|
onChange(e.target.value ? new Date(e.target.value) : null)
|
|
23
34
|
}
|
|
@@ -502,8 +502,13 @@ export function Autocomplete<T = unknown>({
|
|
|
502
502
|
ref,
|
|
503
503
|
() => ({
|
|
504
504
|
reset: handleClear,
|
|
505
|
+
experimental_injectInternalOptions: (options: AutocompleteOption[]) => {
|
|
506
|
+
if(Array.isArray(options)) {
|
|
507
|
+
options.forEach(opt => { storeOption(opt as never); })
|
|
508
|
+
}
|
|
509
|
+
},
|
|
505
510
|
}),
|
|
506
|
-
[handleClear]
|
|
511
|
+
[handleClear, storeOption]
|
|
507
512
|
);
|
|
508
513
|
|
|
509
514
|
const showClearButton =
|
|
@@ -518,6 +523,7 @@ export function Autocomplete<T = unknown>({
|
|
|
518
523
|
<Popover open={isOpen} onOpenChange={setIsOpen}>
|
|
519
524
|
<PopoverTrigger asChild>
|
|
520
525
|
<div
|
|
526
|
+
inert={disabled}
|
|
521
527
|
className={cn(
|
|
522
528
|
'flex min-h-10 items-center gap-2 rounded-md border border-border bg-background px-3 py-2 text-sm',
|
|
523
529
|
'ring-offset-background',
|