@manafishrov/ui 1.3.2 → 1.3.4

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.
@@ -1,7 +1,8 @@
1
1
  import { ComboboxRootProps } from '@ark-ui/solid';
2
2
  import { Component, ComponentProps } from 'solid-js';
3
- import { ComboboxInput } from '../Combobox';
4
- export type ComboboxFieldProps = ComponentProps<typeof ComboboxInput> & {
3
+ import { Combobox, ComboboxInput } from '../Combobox';
4
+ declare const COMBOBOX_ROOT_PROPS: readonly ["placeholder", "inputBehavior", "openOnChange", "openOnClick", "openOnKeyPress", "closeOnSelect", "allowCustomValue", "multiple", "selectionBehavior", "autoFocus", "loopFocus", "positioning", "alwaysSubmitOnEnter", "composite", "defaultHighlightedValue", "defaultInputValue", "defaultOpen", "defaultValue", "disableLayer", "highlightedValue", "ids", "immediate", "inputValue", "lazyMount", "navigate", "onExitComplete", "onFocusOutside", "onHighlightChange", "onInputValueChange", "onInteractOutside", "onOpenChange", "onPointerDownOutside", "onSelect", "open", "present", "scrollToIndexFn", "skipAnimationOnMount", "translations", "unmountOnExit"];
5
+ export type ComboboxFieldProps = ComponentProps<typeof ComboboxInput> & Pick<ComponentProps<typeof Combobox<string>>, (typeof COMBOBOX_ROOT_PROPS)[number]> & {
5
6
  collection: ComboboxRootProps<string>['collection'];
6
7
  label?: string;
7
8
  description?: string;
@@ -11,3 +12,4 @@ export type ComboboxFieldProps = ComponentProps<typeof ComboboxInput> & {
11
12
  class?: string;
12
13
  };
13
14
  export declare const ComboboxField: Component<ComboboxFieldProps>;
15
+ export {};
@@ -1,27 +1,27 @@
1
- import { createComponent as e, mergeProps as s, insert as i, memo as g, template as d } from "solid-js/web";
2
- import { Combobox as u, ComboboxControl as c, ComboboxInput as h, ComboboxClearTrigger as m, ComboboxTrigger as b, ComboboxPositioner as C, ComboboxContent as p, ComboboxList as x } from "../Combobox.js";
3
- import { Field as f, FieldLabel as T, FieldContent as v, FieldError as w, FieldDescription as O } from "../Field.js";
4
- import { useFieldContext as F } from "./context.js";
5
- import { splitProps as a } from "solid-js";
6
- var _ = /* @__PURE__ */ d('<div class="gap-1 flex items-center">');
7
- const y = (l) => {
8
- const [t, r] = a(l, ["showTrigger", "showClearTrigger", "children"]);
9
- return [e(c, {
1
+ import { createComponent as e, mergeProps as a, insert as s, memo as u, template as c } from "solid-js/web";
2
+ import { Combobox as h, ComboboxControl as p, ComboboxInput as m, ComboboxClearTrigger as C, ComboboxTrigger as b, ComboboxPositioner as O, ComboboxContent as f, ComboboxList as x } from "../Combobox.js";
3
+ import { Field as T, FieldLabel as v, FieldContent as w, FieldError as F, FieldDescription as P } from "../Field.js";
4
+ import { useFieldContext as y } from "./context.js";
5
+ import { splitProps as i } from "solid-js";
6
+ var B = /* @__PURE__ */ c('<div class="gap-1 flex items-center">');
7
+ const V = ["placeholder", "inputBehavior", "openOnChange", "openOnClick", "openOnKeyPress", "closeOnSelect", "allowCustomValue", "multiple", "selectionBehavior", "autoFocus", "loopFocus", "positioning", "alwaysSubmitOnEnter", "composite", "defaultHighlightedValue", "defaultInputValue", "defaultOpen", "defaultValue", "disableLayer", "highlightedValue", "ids", "immediate", "inputValue", "lazyMount", "navigate", "onExitComplete", "onFocusOutside", "onHighlightChange", "onInputValueChange", "onInteractOutside", "onOpenChange", "onPointerDownOutside", "onSelect", "open", "present", "scrollToIndexFn", "skipAnimationOnMount", "translations", "unmountOnExit"], _ = (l) => {
8
+ const [t, r] = i(l, ["showTrigger", "showClearTrigger", "children"]);
9
+ return [e(p, {
10
10
  get children() {
11
- return [e(h, r), (() => {
12
- var o = _();
13
- return i(o, (() => {
14
- var n = g(() => t.showClearTrigger === !0);
15
- return () => n() && e(m, {});
16
- })(), null), i(o, (() => {
17
- var n = g(() => t.showTrigger === !0);
11
+ return [e(m, r), (() => {
12
+ var o = B();
13
+ return s(o, (() => {
14
+ var n = u(() => t.showClearTrigger === !0);
15
+ return () => n() && e(C, {});
16
+ })(), null), s(o, (() => {
17
+ var n = u(() => t.showTrigger === !0);
18
18
  return () => n() && e(b, {});
19
19
  })(), null), o;
20
20
  })()];
21
21
  }
22
- }), e(C, {
22
+ }), e(O, {
23
23
  get children() {
24
- return e(p, {
24
+ return e(f, {
25
25
  get children() {
26
26
  return e(x, {
27
27
  get children() {
@@ -32,9 +32,9 @@ const y = (l) => {
32
32
  });
33
33
  }
34
34
  })];
35
- }, P = ["label", "description", "required", "disabled", "readOnly", "collection", "showTrigger", "showClearTrigger", "children"], D = (l) => {
36
- const t = F(), [r, o] = a(l, P);
37
- return e(f, {
35
+ }, I = ["label", "description", "required", "disabled", "readOnly", "collection", "showTrigger", "showClearTrigger", "children"], q = (l) => {
36
+ const t = y(), [r, o] = i(l, I), [n, g] = i(o, V);
37
+ return e(T, {
38
38
  get invalid() {
39
39
  return t().state.meta.errors.length > 0;
40
40
  },
@@ -48,21 +48,21 @@ const y = (l) => {
48
48
  return r.required ?? !1;
49
49
  },
50
50
  get children() {
51
- return [e(T, {
51
+ return [e(v, {
52
52
  get children() {
53
53
  return r.label;
54
54
  }
55
- }), e(v, {
55
+ }), e(w, {
56
56
  get children() {
57
- return [e(u, {
57
+ return [e(h, a({
58
58
  get collection() {
59
59
  return r.collection;
60
60
  },
61
61
  get value() {
62
62
  return t().state.value;
63
63
  },
64
- onValueChange: (n) => {
65
- t().handleChange(n.value);
64
+ onValueChange: (d) => {
65
+ t().handleChange(d.value);
66
66
  },
67
67
  onBlur: () => {
68
68
  t().handleBlur();
@@ -75,26 +75,27 @@ const y = (l) => {
75
75
  },
76
76
  get readOnly() {
77
77
  return r.readOnly ?? !1;
78
- },
78
+ }
79
+ }, n, {
79
80
  get children() {
80
- return e(y, s({
81
+ return e(_, a({
81
82
  get showTrigger() {
82
83
  return r.showTrigger;
83
84
  },
84
85
  get showClearTrigger() {
85
86
  return r.showClearTrigger;
86
87
  }
87
- }, o, {
88
+ }, g, {
88
89
  get children() {
89
90
  return r.children;
90
91
  }
91
92
  }));
92
93
  }
93
- }), e(w, {
94
+ })), e(F, {
94
95
  get errors() {
95
96
  return t().state.meta.errors;
96
97
  }
97
- }), e(O, {
98
+ }), e(P, {
98
99
  get children() {
99
100
  return r.description;
100
101
  }
@@ -105,6 +106,6 @@ const y = (l) => {
105
106
  });
106
107
  };
107
108
  export {
108
- D as ComboboxField
109
+ q as ComboboxField
109
110
  };
110
111
  //# sourceMappingURL=ComboboxField.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ComboboxField.js","sources":["../../../src/components/form/ComboboxField.tsx"],"sourcesContent":["import type { ComboboxRootProps } from '@ark-ui/solid';\nimport type { Component, ComponentProps } from 'solid-js';\n\nimport {\n Combobox,\n ComboboxContent,\n ComboboxInput,\n ComboboxList,\n ComboboxPositioner,\n ComboboxControl,\n ComboboxTrigger,\n ComboboxClearTrigger,\n} from '@/components/Combobox';\nimport { Field, FieldContent, FieldDescription, FieldError, FieldLabel } from '@/components/Field';\n\nimport { useFieldContext } from './context';\n\nexport type ComboboxFieldProps = ComponentProps<typeof ComboboxInput> & {\n collection: ComboboxRootProps<string>['collection'];\n label?: string;\n description?: string;\n showTrigger?: boolean;\n showClearTrigger?: boolean;\n} & { class?: string };\n\nconst ComboboxInputGroup: Component<\n ComponentProps<typeof ComboboxInput> & {\n showTrigger?: boolean | undefined;\n showClearTrigger?: boolean | undefined;\n }\n> = (props) => {\n const [local, others] = splitProps(props, ['showTrigger', 'showClearTrigger', 'children']);\n\n return (\n <>\n <ComboboxControl>\n <ComboboxInput {...others} />\n <div class='gap-1 flex items-center'>\n {local.showClearTrigger === true && <ComboboxClearTrigger />}\n {local.showTrigger === true && <ComboboxTrigger />}\n </div>\n </ComboboxControl>\n <ComboboxPositioner>\n <ComboboxContent>\n <ComboboxList>{local.children}</ComboboxList>\n </ComboboxContent>\n </ComboboxPositioner>\n </>\n );\n};\n\nconst COMBOBOX_FIELD_PROPS = [\n 'label',\n 'description',\n 'required',\n 'disabled',\n 'readOnly',\n 'collection',\n 'showTrigger',\n 'showClearTrigger',\n 'children',\n] as const;\n\nexport const ComboboxField: Component<ComboboxFieldProps> = (props) => {\n const field = useFieldContext<string[]>();\n const [local, others] = splitProps(props, COMBOBOX_FIELD_PROPS);\n\n return (\n <Field\n invalid={field().state.meta.errors.length > 0}\n disabled={local.disabled ?? false}\n readOnly={local.readOnly ?? false}\n required={local.required ?? false}\n >\n <FieldLabel>{local.label}</FieldLabel>\n <FieldContent>\n <Combobox<string>\n collection={local.collection}\n value={field().state.value}\n onValueChange={(details) => {\n field().handleChange(details.value);\n }}\n onBlur={() => {\n field().handleBlur();\n }}\n invalid={field().state.meta.errors.length > 0}\n disabled={local.disabled ?? false}\n readOnly={local.readOnly ?? false}\n >\n <ComboboxInputGroup\n showTrigger={local.showTrigger}\n showClearTrigger={local.showClearTrigger}\n {...others}\n >\n {local.children}\n </ComboboxInputGroup>\n </Combobox>\n <FieldError errors={field().state.meta.errors} />\n <FieldDescription>{local.description}</FieldDescription>\n </FieldContent>\n </Field>\n );\n};\n"],"names":["ComboboxInputGroup","props","local","others","splitProps","_$createComponent","ComboboxControl","children","ComboboxInput","_el$","_tmpl$","_$insert","_c$","_$memo","showClearTrigger","ComboboxClearTrigger","_c$2","showTrigger","ComboboxTrigger","ComboboxPositioner","ComboboxContent","ComboboxList","COMBOBOX_FIELD_PROPS","ComboboxField","field","useFieldContext","Field","invalid","state","meta","errors","length","disabled","readOnly","required","FieldLabel","label","FieldContent","Combobox","collection","value","onValueChange","details","handleChange","onBlur","handleBlur","_$mergeProps","FieldError","FieldDescription","description"],"mappings":"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"}
1
+ {"version":3,"file":"ComboboxField.js","sources":["../../../src/components/form/ComboboxField.tsx"],"sourcesContent":["import type { ComboboxRootProps } from '@ark-ui/solid';\nimport type { Component, ComponentProps } from 'solid-js';\n\nimport {\n Combobox,\n ComboboxContent,\n ComboboxInput,\n ComboboxList,\n ComboboxPositioner,\n ComboboxControl,\n ComboboxTrigger,\n ComboboxClearTrigger,\n} from '@/components/Combobox';\nimport { Field, FieldContent, FieldDescription, FieldError, FieldLabel } from '@/components/Field';\n\nimport { useFieldContext } from './context';\n\nconst COMBOBOX_ROOT_PROPS = [\n 'placeholder',\n 'inputBehavior',\n 'openOnChange',\n 'openOnClick',\n 'openOnKeyPress',\n 'closeOnSelect',\n 'allowCustomValue',\n 'multiple',\n 'selectionBehavior',\n 'autoFocus',\n 'loopFocus',\n 'positioning',\n 'alwaysSubmitOnEnter',\n 'composite',\n 'defaultHighlightedValue',\n 'defaultInputValue',\n 'defaultOpen',\n 'defaultValue',\n 'disableLayer',\n 'highlightedValue',\n 'ids',\n 'immediate',\n 'inputValue',\n 'lazyMount',\n 'navigate',\n 'onExitComplete',\n 'onFocusOutside',\n 'onHighlightChange',\n 'onInputValueChange',\n 'onInteractOutside',\n 'onOpenChange',\n 'onPointerDownOutside',\n 'onSelect',\n 'open',\n 'present',\n 'scrollToIndexFn',\n 'skipAnimationOnMount',\n 'translations',\n 'unmountOnExit',\n] as const;\n\nexport type ComboboxFieldProps = ComponentProps<typeof ComboboxInput> &\n Pick<ComponentProps<typeof Combobox<string>>, (typeof COMBOBOX_ROOT_PROPS)[number]> & {\n collection: ComboboxRootProps<string>['collection'];\n label?: string;\n description?: string;\n showTrigger?: boolean;\n showClearTrigger?: boolean;\n } & { class?: string };\n\nconst ComboboxInputGroup: Component<\n ComponentProps<typeof ComboboxInput> & {\n showTrigger?: boolean | undefined;\n showClearTrigger?: boolean | undefined;\n }\n> = (props) => {\n const [local, others] = splitProps(props, ['showTrigger', 'showClearTrigger', 'children']);\n\n return (\n <>\n <ComboboxControl>\n <ComboboxInput {...others} />\n <div class='gap-1 flex items-center'>\n {local.showClearTrigger === true && <ComboboxClearTrigger />}\n {local.showTrigger === true && <ComboboxTrigger />}\n </div>\n </ComboboxControl>\n <ComboboxPositioner>\n <ComboboxContent>\n <ComboboxList>{local.children}</ComboboxList>\n </ComboboxContent>\n </ComboboxPositioner>\n </>\n );\n};\n\nconst COMBOBOX_FIELD_PROPS = [\n 'label',\n 'description',\n 'required',\n 'disabled',\n 'readOnly',\n 'collection',\n 'showTrigger',\n 'showClearTrigger',\n 'children',\n] as const;\n\nexport const ComboboxField: Component<ComboboxFieldProps> = (props) => {\n const field = useFieldContext<string[]>();\n const [local, others] = splitProps(props, COMBOBOX_FIELD_PROPS);\n const [rootProps, inputProps] = splitProps(others, COMBOBOX_ROOT_PROPS);\n\n return (\n <Field\n invalid={field().state.meta.errors.length > 0}\n disabled={local.disabled ?? false}\n readOnly={local.readOnly ?? false}\n required={local.required ?? false}\n >\n <FieldLabel>{local.label}</FieldLabel>\n <FieldContent>\n <Combobox<string>\n collection={local.collection}\n value={field().state.value}\n onValueChange={(details) => {\n field().handleChange(details.value);\n }}\n onBlur={() => {\n field().handleBlur();\n }}\n invalid={field().state.meta.errors.length > 0}\n disabled={local.disabled ?? false}\n readOnly={local.readOnly ?? false}\n {...rootProps}\n >\n <ComboboxInputGroup\n showTrigger={local.showTrigger}\n showClearTrigger={local.showClearTrigger}\n {...inputProps}\n >\n {local.children}\n </ComboboxInputGroup>\n </Combobox>\n <FieldError errors={field().state.meta.errors} />\n <FieldDescription>{local.description}</FieldDescription>\n </FieldContent>\n </Field>\n );\n};\n"],"names":["COMBOBOX_ROOT_PROPS","ComboboxInputGroup","props","local","others","splitProps","_$createComponent","ComboboxControl","children","ComboboxInput","_el$","_tmpl$","_$insert","_c$","_$memo","showClearTrigger","ComboboxClearTrigger","_c$2","showTrigger","ComboboxTrigger","ComboboxPositioner","ComboboxContent","ComboboxList","COMBOBOX_FIELD_PROPS","ComboboxField","field","useFieldContext","rootProps","inputProps","Field","invalid","state","meta","errors","length","disabled","readOnly","required","FieldLabel","label","FieldContent","Combobox","_$mergeProps","collection","value","onValueChange","details","handleChange","onBlur","handleBlur","FieldError","FieldDescription","description"],"mappings":"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"}
@@ -1,8 +1,11 @@
1
1
  import { DatePickerInputProps } from '@ark-ui/solid';
2
- import { Component } from 'solid-js';
3
- export type DatePickerFieldProps = DatePickerInputProps & {
2
+ import { Component, ComponentProps } from 'solid-js';
3
+ import { DatePicker } from '../DatePicker';
4
+ declare const DATE_PICKER_ROOT_PROPS: readonly ["min", "max", "locale", "timeZone", "format", "parse", "selectionMode", "numOfMonths", "fixedWeeks", "startOfWeek", "showWeekNumbers", "outsideDaySelectable", "isDateUnavailable", "openOnClick", "positioning", "closeOnSelect", "defaultFocusedValue", "defaultOpen", "defaultValue", "defaultView", "focusedValue", "ids", "immediate", "inline", "lazyMount", "maxSelectedDates", "maxView", "minView", "name", "onExitComplete", "onFocusChange", "onOpenChange", "onValueChange", "onViewChange", "onVisibleRangeChange", "open", "present", "skipAnimationOnMount", "translations", "unmountOnExit", "view"];
5
+ export type DatePickerFieldProps = DatePickerInputProps & Pick<ComponentProps<typeof DatePicker>, (typeof DATE_PICKER_ROOT_PROPS)[number]> & {
4
6
  label?: string;
5
7
  description?: string;
6
8
  showTrigger?: boolean;
7
9
  };
8
10
  export declare const DatePickerField: Component<DatePickerFieldProps>;
11
+ export {};
@@ -1,33 +1,33 @@
1
- import { createComponent as e, mergeProps as a, Show as d } from "solid-js/web";
2
- import { DatePicker as s, DatePickerControl as g, DatePickerInput as u, DatePickerTrigger as c, DatePickerPositioner as h, DatePickerContent as p, DatePickerViews as m } from "../DatePicker.js";
3
- import { Field as P, FieldLabel as f, FieldContent as D, FieldError as b, FieldDescription as k } from "../Field.js";
4
- import { useFieldContext as w } from "./context.js";
5
- import { splitProps as l } from "solid-js";
6
- const C = (n) => {
7
- const [t, r] = l(n, ["showTrigger"]);
8
- return [e(g, {
1
+ import { createComponent as e, mergeProps as o, Show as u } from "solid-js/web";
2
+ import { DatePicker as g, DatePickerControl as c, DatePickerInput as h, DatePickerTrigger as p, DatePickerPositioner as m, DatePickerContent as f, DatePickerViews as P } from "../DatePicker.js";
3
+ import { Field as O, FieldLabel as C, FieldContent as D, FieldError as w, FieldDescription as k } from "../Field.js";
4
+ import { useFieldContext as b } from "./context.js";
5
+ import { splitProps as i } from "solid-js";
6
+ const V = ["min", "max", "locale", "timeZone", "format", "parse", "selectionMode", "numOfMonths", "fixedWeeks", "startOfWeek", "showWeekNumbers", "outsideDaySelectable", "isDateUnavailable", "openOnClick", "positioning", "closeOnSelect", "defaultFocusedValue", "defaultOpen", "defaultValue", "defaultView", "focusedValue", "ids", "immediate", "inline", "lazyMount", "maxSelectedDates", "maxView", "minView", "name", "onExitComplete", "onFocusChange", "onOpenChange", "onValueChange", "onViewChange", "onVisibleRangeChange", "open", "present", "skipAnimationOnMount", "translations", "unmountOnExit", "view"], F = (n) => {
7
+ const [t, r] = i(n, ["showTrigger"]);
8
+ return [e(c, {
9
9
  get children() {
10
- return [e(u, r), e(d, {
10
+ return [e(h, r), e(u, {
11
11
  get when() {
12
12
  return t.showTrigger !== !1;
13
13
  },
14
14
  get children() {
15
- return e(c, {});
15
+ return e(p, {});
16
16
  }
17
17
  })];
18
18
  }
19
- }), e(h, {
19
+ }), e(m, {
20
20
  get children() {
21
- return e(p, {
21
+ return e(f, {
22
22
  get children() {
23
- return e(m, {});
23
+ return e(P, {});
24
24
  }
25
25
  });
26
26
  }
27
27
  })];
28
- }, F = ["label", "description", "required", "disabled", "readOnly", "placeholder", "showTrigger"], I = (n) => {
29
- const t = w(), [r, i] = l(n, F);
30
- return e(P, {
28
+ }, T = ["label", "description", "required", "disabled", "readOnly", "placeholder", "showTrigger"], S = (n) => {
29
+ const t = b(), [r, l] = i(n, T), [a, s] = i(l, V);
30
+ return e(O, {
31
31
  get invalid() {
32
32
  return t().state.meta.errors.length > 0;
33
33
  },
@@ -41,18 +41,18 @@ const C = (n) => {
41
41
  return r.required ?? !1;
42
42
  },
43
43
  get children() {
44
- return [e(f, {
44
+ return [e(C, {
45
45
  get children() {
46
46
  return r.label;
47
47
  }
48
48
  }), e(D, {
49
49
  get children() {
50
- return [e(s, {
50
+ return [e(g, o({
51
51
  get value() {
52
52
  return t().state.value;
53
53
  },
54
- onValueChange: (o) => {
55
- t().handleChange(o.value);
54
+ onValueChange: (d) => {
55
+ t().handleChange(d.value);
56
56
  },
57
57
  onBlur: () => {
58
58
  t().handleBlur();
@@ -65,9 +65,10 @@ const C = (n) => {
65
65
  },
66
66
  get readOnly() {
67
67
  return r.readOnly ?? !1;
68
- },
68
+ }
69
+ }, a, {
69
70
  get children() {
70
- return e(C, a(i, {
71
+ return e(F, o(s, {
71
72
  get placeholder() {
72
73
  return r.placeholder;
73
74
  }
@@ -75,7 +76,7 @@ const C = (n) => {
75
76
  showTrigger: r.showTrigger
76
77
  }));
77
78
  }
78
- }), e(b, {
79
+ })), e(w, {
79
80
  get errors() {
80
81
  return t().state.meta.errors;
81
82
  }
@@ -90,6 +91,6 @@ const C = (n) => {
90
91
  });
91
92
  };
92
93
  export {
93
- I as DatePickerField
94
+ S as DatePickerField
94
95
  };
95
96
  //# sourceMappingURL=DatePickerField.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DatePickerField.js","sources":["../../../src/components/form/DatePickerField.tsx"],"sourcesContent":["import type { DatePickerInputProps, DateValue } from '@ark-ui/solid';\nimport type { Component } from 'solid-js';\n\nimport {\n DatePicker,\n DatePickerContent,\n DatePickerControl,\n DatePickerInput,\n DatePickerPositioner,\n DatePickerTrigger,\n DatePickerViews,\n} from '@/components/DatePicker';\nimport { Field, FieldContent, FieldDescription, FieldError, FieldLabel } from '@/components/Field';\n\nimport { useFieldContext } from './context';\n\nexport type DatePickerFieldProps = DatePickerInputProps & {\n label?: string;\n description?: string;\n showTrigger?: boolean;\n};\n\nconst DatePickerInputGroup: Component<DatePickerInputProps & { showTrigger?: boolean }> = (\n props,\n) => {\n const [local, others] = splitProps(props, ['showTrigger']);\n\n return (\n <>\n <DatePickerControl>\n <DatePickerInput {...others} />\n <Show when={local.showTrigger !== false}>\n <DatePickerTrigger />\n </Show>\n </DatePickerControl>\n <DatePickerPositioner>\n <DatePickerContent>\n <DatePickerViews />\n </DatePickerContent>\n </DatePickerPositioner>\n </>\n );\n};\n\nconst DATE_PICKER_FIELD_PROPS = [\n 'label',\n 'description',\n 'required',\n 'disabled',\n 'readOnly',\n 'placeholder',\n 'showTrigger',\n] as const;\n\nexport const DatePickerField: Component<DatePickerFieldProps> = (props) => {\n const field = useFieldContext<DateValue[]>();\n const [local, others] = splitProps(props, DATE_PICKER_FIELD_PROPS);\n\n return (\n <Field\n invalid={field().state.meta.errors.length > 0}\n disabled={local.disabled ?? false}\n readOnly={local.readOnly ?? false}\n required={local.required ?? false}\n >\n <FieldLabel>{local.label}</FieldLabel>\n <FieldContent>\n <DatePicker\n value={field().state.value}\n onValueChange={(details) => {\n field().handleChange(details.value);\n }}\n onBlur={() => {\n field().handleBlur();\n }}\n invalid={field().state.meta.errors.length > 0}\n disabled={local.disabled ?? false}\n readOnly={local.readOnly ?? false}\n >\n <DatePickerInputGroup\n {...others}\n placeholder={local.placeholder}\n {...(typeof local.showTrigger === 'boolean' && { showTrigger: local.showTrigger })}\n />\n </DatePicker>\n <FieldError errors={field().state.meta.errors} />\n <FieldDescription>{local.description}</FieldDescription>\n </FieldContent>\n </Field>\n );\n};\n"],"names":["DatePickerInputGroup","props","local","others","splitProps","_$createComponent","DatePickerControl","children","DatePickerInput","_$Show","when","showTrigger","DatePickerTrigger","DatePickerPositioner","DatePickerContent","DatePickerViews","DATE_PICKER_FIELD_PROPS","DatePickerField","field","useFieldContext","Field","invalid","state","meta","errors","length","disabled","readOnly","required","FieldLabel","label","FieldContent","DatePicker","value","onValueChange","details","handleChange","onBlur","handleBlur","_$mergeProps","placeholder","FieldError","FieldDescription","description"],"mappings":"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"}
1
+ {"version":3,"file":"DatePickerField.js","sources":["../../../src/components/form/DatePickerField.tsx"],"sourcesContent":["import type { DatePickerInputProps, DateValue } from '@ark-ui/solid';\nimport type { Component, ComponentProps } from 'solid-js';\n\nimport {\n DatePicker,\n DatePickerContent,\n DatePickerControl,\n DatePickerInput,\n DatePickerPositioner,\n DatePickerTrigger,\n DatePickerViews,\n} from '@/components/DatePicker';\nimport { Field, FieldContent, FieldDescription, FieldError, FieldLabel } from '@/components/Field';\n\nimport { useFieldContext } from './context';\n\nconst DATE_PICKER_ROOT_PROPS = [\n 'min',\n 'max',\n 'locale',\n 'timeZone',\n 'format',\n 'parse',\n 'selectionMode',\n 'numOfMonths',\n 'fixedWeeks',\n 'startOfWeek',\n 'showWeekNumbers',\n 'outsideDaySelectable',\n 'isDateUnavailable',\n 'openOnClick',\n 'positioning',\n 'closeOnSelect',\n 'defaultFocusedValue',\n 'defaultOpen',\n 'defaultValue',\n 'defaultView',\n 'focusedValue',\n 'ids',\n 'immediate',\n 'inline',\n 'lazyMount',\n 'maxSelectedDates',\n 'maxView',\n 'minView',\n 'name',\n 'onExitComplete',\n 'onFocusChange',\n 'onOpenChange',\n 'onValueChange',\n 'onViewChange',\n 'onVisibleRangeChange',\n 'open',\n 'present',\n 'skipAnimationOnMount',\n 'translations',\n 'unmountOnExit',\n 'view',\n] as const;\n\nexport type DatePickerFieldProps = DatePickerInputProps &\n Pick<ComponentProps<typeof DatePicker>, (typeof DATE_PICKER_ROOT_PROPS)[number]> & {\n label?: string;\n description?: string;\n showTrigger?: boolean;\n };\n\nconst DatePickerInputGroup: Component<DatePickerInputProps & { showTrigger?: boolean }> = (\n props,\n) => {\n const [local, others] = splitProps(props, ['showTrigger']);\n\n return (\n <>\n <DatePickerControl>\n <DatePickerInput {...others} />\n <Show when={local.showTrigger !== false}>\n <DatePickerTrigger />\n </Show>\n </DatePickerControl>\n <DatePickerPositioner>\n <DatePickerContent>\n <DatePickerViews />\n </DatePickerContent>\n </DatePickerPositioner>\n </>\n );\n};\n\nconst DATE_PICKER_FIELD_PROPS = [\n 'label',\n 'description',\n 'required',\n 'disabled',\n 'readOnly',\n 'placeholder',\n 'showTrigger',\n] as const;\n\nexport const DatePickerField: Component<DatePickerFieldProps> = (props) => {\n const field = useFieldContext<DateValue[]>();\n const [local, others] = splitProps(props, DATE_PICKER_FIELD_PROPS);\n const [rootProps, inputProps] = splitProps(others, DATE_PICKER_ROOT_PROPS);\n\n return (\n <Field\n invalid={field().state.meta.errors.length > 0}\n disabled={local.disabled ?? false}\n readOnly={local.readOnly ?? false}\n required={local.required ?? false}\n >\n <FieldLabel>{local.label}</FieldLabel>\n <FieldContent>\n <DatePicker\n value={field().state.value}\n onValueChange={(details) => {\n field().handleChange(details.value);\n }}\n onBlur={() => {\n field().handleBlur();\n }}\n invalid={field().state.meta.errors.length > 0}\n disabled={local.disabled ?? false}\n readOnly={local.readOnly ?? false}\n {...rootProps}\n >\n <DatePickerInputGroup\n {...inputProps}\n placeholder={local.placeholder}\n {...(typeof local.showTrigger === 'boolean' && { showTrigger: local.showTrigger })}\n />\n </DatePicker>\n <FieldError errors={field().state.meta.errors} />\n <FieldDescription>{local.description}</FieldDescription>\n </FieldContent>\n </Field>\n );\n};\n"],"names":["DATE_PICKER_ROOT_PROPS","DatePickerInputGroup","props","local","others","splitProps","_$createComponent","DatePickerControl","children","DatePickerInput","_$Show","when","showTrigger","DatePickerTrigger","DatePickerPositioner","DatePickerContent","DatePickerViews","DATE_PICKER_FIELD_PROPS","DatePickerField","field","useFieldContext","rootProps","inputProps","Field","invalid","state","meta","errors","length","disabled","readOnly","required","FieldLabel","label","FieldContent","DatePicker","_$mergeProps","value","onValueChange","details","handleChange","onBlur","handleBlur","placeholder","FieldError","FieldDescription","description"],"mappings":"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"}
@@ -29,7 +29,7 @@ const y = (e) => {
29
29
  });
30
30
  }), l(o, f({
31
31
  get class() {
32
- return u("space-y-6 relative", r.class);
32
+ return u("space-y-8 relative", r.class);
33
33
  }
34
34
  }, i), !1, !0), n(o, () => r.children), o;
35
35
  })();
@@ -1 +1 @@
1
- {"version":3,"file":"Form.js","sources":["../../../src/components/form/Form.tsx"],"sourcesContent":["import { createFormHook } from '@tanstack/solid-form';\nimport { splitProps, type Component, type ComponentProps } from 'solid-js';\nimport { cn } from 'tailwind-variants';\n\nimport { AutoSubmit } from './AutoSubmit';\nimport { CheckboxField } from './CheckboxField';\nimport { ComboboxField } from './ComboboxField';\nimport { fieldContext, formContext, useFormContext } from './context';\nimport { DatePickerField } from './DatePickerField';\nimport { NumberInputField } from './NumberInputField';\nimport { PasswordInputField } from './PasswordInputField';\nimport { PinInputField } from './PinInputField';\nimport { RadioGroupField } from './RadioGroupField';\nimport { SelectField } from './SelectField';\nimport { SliderField } from './SliderField';\nimport { SubmitButton } from './SubmitButton';\nimport { SwitchField } from './SwitchField';\nimport { TagsInputField } from './TagsInputField';\nimport { TextareaField } from './TextareaField';\nimport { TextInputField } from './TextInputField';\n\nexport type FormProps = Omit<ComponentProps<'form'>, 'onSubmit'>;\n\nexport const Form: Component<FormProps> = (props) => {\n const form = useFormContext();\n const [local, formProps] = splitProps(props, ['children', 'class']);\n\n return (\n <form\n class={cn('space-y-6 relative', local.class)}\n onSubmit={(submitEvent) => {\n submitEvent.preventDefault();\n submitEvent.stopPropagation();\n form.handleSubmit().catch((error: unknown) => {\n throw error;\n });\n }}\n {...formProps}\n >\n {local.children}\n </form>\n );\n};\n\nexport const { useAppForm, withForm, withFieldGroup } = createFormHook({\n formContext,\n fieldContext,\n fieldComponents: {\n CheckboxField,\n ComboboxField,\n DatePickerField,\n NumberInputField,\n PasswordInputField,\n PinInputField,\n RadioGroupField,\n SelectField,\n SliderField,\n SwitchField,\n TagsInputField,\n TextInputField,\n TextareaField,\n },\n formComponents: {\n AutoSubmit,\n Form,\n SubmitButton,\n },\n});\n"],"names":["Form","props","form","useFormContext","local","formProps","splitProps","_el$","_tmpl$","addEventListener","submitEvent","preventDefault","stopPropagation","handleSubmit","catch","error","_$spread","_$mergeProps","cn","class","_$insert","children","useAppForm","withForm","withFieldGroup","createFormHook","formContext","fieldContext","fieldComponents","CheckboxField","ComboboxField","DatePickerField","NumberInputField","PasswordInputField","PinInputField","RadioGroupField","SelectField","SliderField","SwitchField","TagsInputField","TextInputField","TextareaField","formComponents","AutoSubmit","SubmitButton"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAuBO,MAAMA,IAA8BC,CAAAA,MAAU;AACnD,QAAMC,IAAOC,EAAAA,GACP,CAACC,GAAOC,CAAS,IAAIC,EAAWL,GAAO,CAAC,YAAY,OAAO,CAAC;AAElE,UAAA,MAAA;AAAA,QAAAM,IAAAC,EAAAA;AAAAD,WAAAA,EAAAE,iBAAA,UAGeC,CAAAA,MAAgB;AACzBA,MAAAA,EAAYC,eAAAA,GACZD,EAAYE,gBAAAA,GACZV,EAAKW,aAAAA,EAAeC,MAAM,CAACC,MAAmB;AAC5C,cAAMA;AAAAA,MACR,CAAC;AAAA,IACH,CAAC,GAAAC,EAAAT,GAAAU,EAAA;AAAA,MAAA,IAAA,QAAA;AAAA,eAPMC,EAAG,sBAAsBd,EAAMe,KAAK;AAAA,MAAC;AAAA,IAAA,GAQxCd,CAAS,GAAA,IAAA,EAAA,GAAAe,EAAAb,GAAA,MAEZH,EAAMiB,QAAQ,GAAAd;AAAAA,EAAA,GAAA;AAGrB,GAEa;AAAA,EAAEe,YAAAA;AAAAA,EAAYC,UAAAA;AAAAA,EAAUC,gBAAAA;AAAe,IAAIC,EAAe;AAAA,EACrEC,aAAAA;AAAAA,EACAC,cAAAA;AAAAA,EACAC,iBAAiB;AAAA,IACfC,eAAAA;AAAAA,IACAC,eAAAA;AAAAA,IACAC,iBAAAA;AAAAA,IACAC,kBAAAA;AAAAA,IACAC,oBAAAA;AAAAA,IACAC,eAAAA;AAAAA,IACAC,iBAAAA;AAAAA,IACAC,aAAAA;AAAAA,IACAC,aAAAA;AAAAA,IACAC,aAAAA;AAAAA,IACAC,gBAAAA;AAAAA,IACAC,gBAAAA;AAAAA,IACAC,eAAAA;AAAAA,EAAAA;AAAAA,EAEFC,gBAAgB;AAAA,IACdC,YAAAA;AAAAA,IACA3C,MAAAA;AAAAA,IACA4C,cAAAA;AAAAA,EAAAA;AAEJ,CAAC;"}
1
+ {"version":3,"file":"Form.js","sources":["../../../src/components/form/Form.tsx"],"sourcesContent":["import { createFormHook } from '@tanstack/solid-form';\nimport { splitProps, type Component, type ComponentProps } from 'solid-js';\nimport { cn } from 'tailwind-variants';\n\nimport { AutoSubmit } from './AutoSubmit';\nimport { CheckboxField } from './CheckboxField';\nimport { ComboboxField } from './ComboboxField';\nimport { fieldContext, formContext, useFormContext } from './context';\nimport { DatePickerField } from './DatePickerField';\nimport { NumberInputField } from './NumberInputField';\nimport { PasswordInputField } from './PasswordInputField';\nimport { PinInputField } from './PinInputField';\nimport { RadioGroupField } from './RadioGroupField';\nimport { SelectField } from './SelectField';\nimport { SliderField } from './SliderField';\nimport { SubmitButton } from './SubmitButton';\nimport { SwitchField } from './SwitchField';\nimport { TagsInputField } from './TagsInputField';\nimport { TextareaField } from './TextareaField';\nimport { TextInputField } from './TextInputField';\n\nexport type FormProps = Omit<ComponentProps<'form'>, 'onSubmit'>;\n\nexport const Form: Component<FormProps> = (props) => {\n const form = useFormContext();\n const [local, formProps] = splitProps(props, ['children', 'class']);\n\n return (\n <form\n class={cn('space-y-8 relative', local.class)}\n onSubmit={(submitEvent) => {\n submitEvent.preventDefault();\n submitEvent.stopPropagation();\n form.handleSubmit().catch((error: unknown) => {\n throw error;\n });\n }}\n {...formProps}\n >\n {local.children}\n </form>\n );\n};\n\nexport const { useAppForm, withForm, withFieldGroup } = createFormHook({\n formContext,\n fieldContext,\n fieldComponents: {\n CheckboxField,\n ComboboxField,\n DatePickerField,\n NumberInputField,\n PasswordInputField,\n PinInputField,\n RadioGroupField,\n SelectField,\n SliderField,\n SwitchField,\n TagsInputField,\n TextInputField,\n TextareaField,\n },\n formComponents: {\n AutoSubmit,\n Form,\n SubmitButton,\n },\n});\n"],"names":["Form","props","form","useFormContext","local","formProps","splitProps","_el$","_tmpl$","addEventListener","submitEvent","preventDefault","stopPropagation","handleSubmit","catch","error","_$spread","_$mergeProps","cn","class","_$insert","children","useAppForm","withForm","withFieldGroup","createFormHook","formContext","fieldContext","fieldComponents","CheckboxField","ComboboxField","DatePickerField","NumberInputField","PasswordInputField","PinInputField","RadioGroupField","SelectField","SliderField","SwitchField","TagsInputField","TextInputField","TextareaField","formComponents","AutoSubmit","SubmitButton"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAuBO,MAAMA,IAA8BC,CAAAA,MAAU;AACnD,QAAMC,IAAOC,EAAAA,GACP,CAACC,GAAOC,CAAS,IAAIC,EAAWL,GAAO,CAAC,YAAY,OAAO,CAAC;AAElE,UAAA,MAAA;AAAA,QAAAM,IAAAC,EAAAA;AAAAD,WAAAA,EAAAE,iBAAA,UAGeC,CAAAA,MAAgB;AACzBA,MAAAA,EAAYC,eAAAA,GACZD,EAAYE,gBAAAA,GACZV,EAAKW,aAAAA,EAAeC,MAAM,CAACC,MAAmB;AAC5C,cAAMA;AAAAA,MACR,CAAC;AAAA,IACH,CAAC,GAAAC,EAAAT,GAAAU,EAAA;AAAA,MAAA,IAAA,QAAA;AAAA,eAPMC,EAAG,sBAAsBd,EAAMe,KAAK;AAAA,MAAC;AAAA,IAAA,GAQxCd,CAAS,GAAA,IAAA,EAAA,GAAAe,EAAAb,GAAA,MAEZH,EAAMiB,QAAQ,GAAAd;AAAAA,EAAA,GAAA;AAGrB,GAEa;AAAA,EAAEe,YAAAA;AAAAA,EAAYC,UAAAA;AAAAA,EAAUC,gBAAAA;AAAe,IAAIC,EAAe;AAAA,EACrEC,aAAAA;AAAAA,EACAC,cAAAA;AAAAA,EACAC,iBAAiB;AAAA,IACfC,eAAAA;AAAAA,IACAC,eAAAA;AAAAA,IACAC,iBAAAA;AAAAA,IACAC,kBAAAA;AAAAA,IACAC,oBAAAA;AAAAA,IACAC,eAAAA;AAAAA,IACAC,iBAAAA;AAAAA,IACAC,aAAAA;AAAAA,IACAC,aAAAA;AAAAA,IACAC,aAAAA;AAAAA,IACAC,gBAAAA;AAAAA,IACAC,gBAAAA;AAAAA,IACAC,eAAAA;AAAAA,EAAAA;AAAAA,EAEFC,gBAAgB;AAAA,IACdC,YAAAA;AAAAA,IACA3C,MAAAA;AAAAA,IACA4C,cAAAA;AAAAA,EAAAA;AAEJ,CAAC;"}
@@ -1,8 +1,10 @@
1
1
  import { Component, ComponentProps } from 'solid-js';
2
- import { NumberInputInput } from '../NumberInput';
3
- export type NumberInputFieldProps = ComponentProps<typeof NumberInputInput> & {
2
+ import { NumberInput, NumberInputInput } from '../NumberInput';
3
+ declare const NUMBER_INPUT_ROOT_PROPS: readonly ["min", "max", "step", "allowMouseWheel", "allowOverflow", "clampValueOnBlur", "formatOptions", "inputMode", "locale", "pattern", "spinOnPress", "focusInputOnChange", "translations", "form", "name", "onValueInvalid"];
4
+ export type NumberInputFieldProps = ComponentProps<typeof NumberInputInput> & Pick<ComponentProps<typeof NumberInput>, (typeof NUMBER_INPUT_ROOT_PROPS)[number]> & {
4
5
  label?: string;
5
6
  description?: string;
6
7
  showTriggers?: boolean;
7
8
  };
8
9
  export declare const NumberInputField: Component<NumberInputFieldProps>;
10
+ export {};
@@ -1,25 +1,25 @@
1
- import { createComponent as r, mergeProps as o, Show as d } from "solid-js/web";
2
- import { Field as m, FieldLabel as g, FieldContent as c, FieldError as s, FieldDescription as h } from "../Field.js";
3
- import { NumberInput as b, NumberInputControl as V, NumberInputInput as f, NumberInputTriggers as C } from "../NumberInput.js";
4
- import { useFieldContext as N } from "./context.js";
5
- import { splitProps as F, createSignal as I, createEffect as v } from "solid-js";
6
- const a = (e) => typeof e != "number" || !Number.isFinite(e) ? "" : String(e), B = (e) => {
7
- const [u, t] = I(a(e().state.value));
1
+ import { createComponent as r, mergeProps as s, Show as d } from "solid-js/web";
2
+ import { Field as c, FieldLabel as g, FieldContent as h, FieldError as b, FieldDescription as f } from "../Field.js";
3
+ import { NumberInput as V, NumberInputControl as C, NumberInputInput as N, NumberInputTriggers as I } from "../NumberInput.js";
4
+ import { useFieldContext as O } from "./context.js";
5
+ import { splitProps as m, createSignal as F, createEffect as v } from "solid-js";
6
+ const P = ["min", "max", "step", "allowMouseWheel", "allowOverflow", "clampValueOnBlur", "formatOptions", "inputMode", "locale", "pattern", "spinOnPress", "focusInputOnChange", "translations", "form", "name", "onValueInvalid"], u = (e) => typeof e != "number" || !Number.isFinite(e) ? "" : String(e), B = (e) => {
7
+ const [l, n] = F(u(e().state.value));
8
8
  return v(() => {
9
- t(a(e().state.value));
9
+ n(u(e().state.value));
10
10
  }), {
11
- inputValue: u,
12
- onValueChange: (l) => {
13
- t(l.value);
11
+ inputValue: l,
12
+ onValueChange: (t) => {
13
+ n(t.value);
14
14
  },
15
- onValueCommit: (l) => {
16
- t(l.value), Number.isFinite(l.valueAsNumber) && e().handleChange(l.valueAsNumber);
15
+ onValueCommit: (t) => {
16
+ n(t.value), Number.isFinite(t.valueAsNumber) && e().handleChange(t.valueAsNumber);
17
17
  },
18
18
  onBlur: () => {
19
- t(a(e().state.value)), e().handleBlur();
19
+ n(u(e().state.value)), e().handleBlur();
20
20
  }
21
21
  };
22
- }, y = (e) => r(m, {
22
+ }, p = (e) => r(c, {
23
23
  get invalid() {
24
24
  return e.field().state.meta.errors.length > 0;
25
25
  },
@@ -37,9 +37,9 @@ const a = (e) => typeof e != "number" || !Number.isFinite(e) ? "" : String(e), B
37
37
  get children() {
38
38
  return e.local.label;
39
39
  }
40
- }), r(c, {
40
+ }), r(h, {
41
41
  get children() {
42
- return [r(b, {
42
+ return [r(V, s({
43
43
  get value() {
44
44
  return e.inputValue();
45
45
  },
@@ -63,26 +63,27 @@ const a = (e) => typeof e != "number" || !Number.isFinite(e) ? "" : String(e), B
63
63
  },
64
64
  get required() {
65
65
  return e.local.required ?? !1;
66
- },
66
+ }
67
+ }, () => e.rootProps, {
67
68
  get children() {
68
- return r(V, {
69
+ return r(C, {
69
70
  get children() {
70
- return [r(f, o(() => e.others)), r(d, {
71
+ return [r(N, s(() => e.inputProps)), r(d, {
71
72
  get when() {
72
73
  return e.local.showTriggers !== !1;
73
74
  },
74
75
  get children() {
75
- return r(C, {});
76
+ return r(I, {});
76
77
  }
77
78
  })];
78
79
  }
79
80
  });
80
81
  }
81
- }), r(s, {
82
+ })), r(b, {
82
83
  get errors() {
83
84
  return e.field().state.meta.errors;
84
85
  }
85
- }), r(h, {
86
+ }), r(f, {
86
87
  get children() {
87
88
  return e.local.description;
88
89
  }
@@ -90,19 +91,20 @@ const a = (e) => typeof e != "number" || !Number.isFinite(e) ? "" : String(e), B
90
91
  }
91
92
  })];
92
93
  }
93
- }), A = (e) => {
94
- const u = N(), [t, i] = F(e, ["label", "description", "required", "disabled", "readOnly", "showTriggers"]), n = B(u);
95
- return y({
96
- field: u,
97
- local: t,
98
- others: i,
99
- inputValue: n.inputValue,
100
- onValueChange: n.onValueChange,
101
- onValueCommit: n.onValueCommit,
102
- onBlur: n.onBlur
94
+ }), x = (e) => {
95
+ const l = O(), [n, a] = m(e, ["label", "description", "required", "disabled", "readOnly", "showTriggers"]), [o, i] = m(a, P), t = B(l);
96
+ return p({
97
+ field: l,
98
+ local: n,
99
+ rootProps: o,
100
+ inputProps: i,
101
+ inputValue: t.inputValue,
102
+ onValueChange: t.onValueChange,
103
+ onValueCommit: t.onValueCommit,
104
+ onBlur: t.onBlur
103
105
  });
104
106
  };
105
107
  export {
106
- A as NumberInputField
108
+ x as NumberInputField
107
109
  };
108
110
  //# sourceMappingURL=NumberInputField.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"NumberInputField.js","sources":["../../../src/components/form/NumberInputField.tsx"],"sourcesContent":["import type { Component, ComponentProps, JSX } from 'solid-js';\n\nimport { Field, FieldLabel, FieldContent, FieldError, FieldDescription } from '@/components/Field';\nimport {\n NumberInput,\n NumberInputControl,\n NumberInputInput,\n NumberInputTriggers,\n} from '@/components/NumberInput';\n\nimport { useFieldContext } from './context';\n\nexport type NumberInputFieldProps = ComponentProps<typeof NumberInputInput> & {\n label?: string;\n description?: string;\n showTriggers?: boolean;\n};\n\nconst toNumberInputValue = (value: number | undefined): string => {\n if (typeof value !== 'number' || !Number.isFinite(value)) {\n return '';\n }\n\n return String(value);\n};\n\ntype NumberInputFieldLocalProps = Pick<\n NumberInputFieldProps,\n 'label' | 'description' | 'required' | 'disabled' | 'readOnly' | 'showTriggers'\n>;\n\ntype RenderNumberInputFieldProps = {\n field: ReturnType<typeof useFieldContext<number>>;\n local: NumberInputFieldLocalProps;\n others: Omit<NumberInputFieldProps, keyof NumberInputFieldLocalProps>;\n inputValue: () => string;\n onValueChange: NonNullable<ComponentProps<typeof NumberInput>['onValueChange']>;\n onValueCommit: NonNullable<ComponentProps<typeof NumberInput>['onValueCommit']>;\n onBlur: () => void;\n};\n\ntype NumberInputFieldState = Pick<\n RenderNumberInputFieldProps,\n 'inputValue' | 'onValueChange' | 'onValueCommit' | 'onBlur'\n>;\n\nconst createNumberInputFieldState = (\n field: ReturnType<typeof useFieldContext<number>>,\n): NumberInputFieldState => {\n const [inputValue, setInputValue] = createSignal(toNumberInputValue(field().state.value));\n\n createEffect(() => {\n setInputValue(toNumberInputValue(field().state.value));\n });\n\n const onValueChange: NonNullable<ComponentProps<typeof NumberInput>['onValueChange']> = (\n details,\n ) => {\n setInputValue(details.value);\n };\n\n const onValueCommit: NonNullable<ComponentProps<typeof NumberInput>['onValueCommit']> = (\n details,\n ) => {\n setInputValue(details.value);\n\n if (!Number.isFinite(details.valueAsNumber)) {\n return;\n }\n\n field().handleChange(details.valueAsNumber);\n };\n\n const onBlur = (): void => {\n setInputValue(toNumberInputValue(field().state.value));\n field().handleBlur();\n };\n\n return {\n inputValue,\n onValueChange,\n onValueCommit,\n onBlur,\n };\n};\n\nconst renderNumberInputField = (props: RenderNumberInputFieldProps): JSX.Element => (\n <Field\n invalid={props.field().state.meta.errors.length > 0}\n required={props.local.required ?? false}\n disabled={props.local.disabled ?? false}\n readOnly={props.local.readOnly ?? false}\n >\n <FieldLabel>{props.local.label}</FieldLabel>\n <FieldContent>\n <NumberInput\n value={props.inputValue()}\n onValueChange={props.onValueChange}\n onValueCommit={props.onValueCommit}\n onBlur={props.onBlur}\n invalid={props.field().state.meta.errors.length > 0}\n disabled={props.local.disabled ?? false}\n readOnly={props.local.readOnly ?? false}\n required={props.local.required ?? false}\n >\n <NumberInputControl>\n <NumberInputInput {...props.others} />\n <Show when={props.local.showTriggers !== false}>\n <NumberInputTriggers />\n </Show>\n </NumberInputControl>\n </NumberInput>\n <FieldError errors={props.field().state.meta.errors} />\n <FieldDescription>{props.local.description}</FieldDescription>\n </FieldContent>\n </Field>\n);\n\nexport const NumberInputField: Component<NumberInputFieldProps> = (props) => {\n const field = useFieldContext<number>();\n const [local, others] = splitProps(props, [\n 'label',\n 'description',\n 'required',\n 'disabled',\n 'readOnly',\n 'showTriggers',\n ]);\n const state = createNumberInputFieldState(field);\n\n return renderNumberInputField({\n field,\n local,\n others,\n inputValue: state.inputValue,\n onValueChange: state.onValueChange,\n onValueCommit: state.onValueCommit,\n onBlur: state.onBlur,\n });\n};\n"],"names":["toNumberInputValue","value","Number","isFinite","String","createNumberInputFieldState","field","inputValue","setInputValue","createSignal","state","createEffect","onValueChange","details","onValueCommit","valueAsNumber","handleChange","onBlur","handleBlur","renderNumberInputField","props","_$createComponent","Field","invalid","meta","errors","length","required","local","disabled","readOnly","children","FieldLabel","label","FieldContent","NumberInput","NumberInputControl","NumberInputInput","_$mergeProps","others","_$Show","when","showTriggers","NumberInputTriggers","FieldError","FieldDescription","description","NumberInputField","useFieldContext","splitProps"],"mappings":"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"}
1
+ {"version":3,"file":"NumberInputField.js","sources":["../../../src/components/form/NumberInputField.tsx"],"sourcesContent":["import type { Component, ComponentProps, JSX } from 'solid-js';\n\nimport { Field, FieldLabel, FieldContent, FieldError, FieldDescription } from '@/components/Field';\nimport {\n NumberInput,\n NumberInputControl,\n NumberInputInput,\n NumberInputTriggers,\n} from '@/components/NumberInput';\n\nimport { useFieldContext } from './context';\n\nconst NUMBER_INPUT_ROOT_PROPS = [\n 'min',\n 'max',\n 'step',\n 'allowMouseWheel',\n 'allowOverflow',\n 'clampValueOnBlur',\n 'formatOptions',\n 'inputMode',\n 'locale',\n 'pattern',\n 'spinOnPress',\n 'focusInputOnChange',\n 'translations',\n 'form',\n 'name',\n 'onValueInvalid',\n] as const;\n\nexport type NumberInputFieldProps = ComponentProps<typeof NumberInputInput> &\n Pick<ComponentProps<typeof NumberInput>, (typeof NUMBER_INPUT_ROOT_PROPS)[number]> & {\n label?: string;\n description?: string;\n showTriggers?: boolean;\n };\n\nconst toNumberInputValue = (value: number | undefined): string => {\n if (typeof value !== 'number' || !Number.isFinite(value)) {\n return '';\n }\n\n return String(value);\n};\n\ntype NumberInputFieldLocalProps = Pick<\n NumberInputFieldProps,\n 'label' | 'description' | 'required' | 'disabled' | 'readOnly' | 'showTriggers'\n>;\n\ntype NumberInputFieldRootProps = Pick<\n NumberInputFieldProps,\n (typeof NUMBER_INPUT_ROOT_PROPS)[number]\n>;\n\ntype RenderNumberInputFieldProps = {\n field: ReturnType<typeof useFieldContext<number>>;\n local: NumberInputFieldLocalProps;\n rootProps: NumberInputFieldRootProps;\n inputProps: Omit<\n NumberInputFieldProps,\n keyof NumberInputFieldLocalProps | keyof NumberInputFieldRootProps\n >;\n inputValue: () => string;\n onValueChange: NonNullable<ComponentProps<typeof NumberInput>['onValueChange']>;\n onValueCommit: NonNullable<ComponentProps<typeof NumberInput>['onValueCommit']>;\n onBlur: () => void;\n};\n\ntype NumberInputFieldState = Pick<\n RenderNumberInputFieldProps,\n 'inputValue' | 'onValueChange' | 'onValueCommit' | 'onBlur'\n>;\n\nconst createNumberInputFieldState = (\n field: ReturnType<typeof useFieldContext<number>>,\n): NumberInputFieldState => {\n const [inputValue, setInputValue] = createSignal(toNumberInputValue(field().state.value));\n\n createEffect(() => {\n setInputValue(toNumberInputValue(field().state.value));\n });\n\n const onValueChange: NonNullable<ComponentProps<typeof NumberInput>['onValueChange']> = (\n details,\n ) => {\n setInputValue(details.value);\n };\n\n const onValueCommit: NonNullable<ComponentProps<typeof NumberInput>['onValueCommit']> = (\n details,\n ) => {\n setInputValue(details.value);\n\n if (!Number.isFinite(details.valueAsNumber)) {\n return;\n }\n\n field().handleChange(details.valueAsNumber);\n };\n\n const onBlur = (): void => {\n setInputValue(toNumberInputValue(field().state.value));\n field().handleBlur();\n };\n\n return {\n inputValue,\n onValueChange,\n onValueCommit,\n onBlur,\n };\n};\n\nconst renderNumberInputField = (props: RenderNumberInputFieldProps): JSX.Element => (\n <Field\n invalid={props.field().state.meta.errors.length > 0}\n required={props.local.required ?? false}\n disabled={props.local.disabled ?? false}\n readOnly={props.local.readOnly ?? false}\n >\n <FieldLabel>{props.local.label}</FieldLabel>\n <FieldContent>\n <NumberInput\n value={props.inputValue()}\n onValueChange={props.onValueChange}\n onValueCommit={props.onValueCommit}\n onBlur={props.onBlur}\n invalid={props.field().state.meta.errors.length > 0}\n disabled={props.local.disabled ?? false}\n readOnly={props.local.readOnly ?? false}\n required={props.local.required ?? false}\n {...props.rootProps}\n >\n <NumberInputControl>\n <NumberInputInput {...props.inputProps} />\n <Show when={props.local.showTriggers !== false}>\n <NumberInputTriggers />\n </Show>\n </NumberInputControl>\n </NumberInput>\n <FieldError errors={props.field().state.meta.errors} />\n <FieldDescription>{props.local.description}</FieldDescription>\n </FieldContent>\n </Field>\n);\n\nexport const NumberInputField: Component<NumberInputFieldProps> = (props) => {\n const field = useFieldContext<number>();\n const [local, others] = splitProps(props, [\n 'label',\n 'description',\n 'required',\n 'disabled',\n 'readOnly',\n 'showTriggers',\n ]);\n const [rootProps, inputProps] = splitProps(others, NUMBER_INPUT_ROOT_PROPS);\n const state = createNumberInputFieldState(field);\n\n return renderNumberInputField({\n field,\n local,\n rootProps,\n inputProps,\n inputValue: state.inputValue,\n onValueChange: state.onValueChange,\n onValueCommit: state.onValueCommit,\n onBlur: state.onBlur,\n });\n};\n"],"names":["NUMBER_INPUT_ROOT_PROPS","toNumberInputValue","value","Number","isFinite","String","createNumberInputFieldState","field","inputValue","setInputValue","createSignal","state","createEffect","onValueChange","details","onValueCommit","valueAsNumber","handleChange","onBlur","handleBlur","renderNumberInputField","props","_$createComponent","Field","invalid","meta","errors","length","required","local","disabled","readOnly","children","FieldLabel","label","FieldContent","NumberInput","_$mergeProps","rootProps","NumberInputControl","NumberInputInput","inputProps","_$Show","when","showTriggers","NumberInputTriggers","FieldError","FieldDescription","description","NumberInputField","useFieldContext","others","splitProps"],"mappings":"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"}
@@ -1,11 +1,11 @@
1
- import { createComponent as t, mergeProps as i } from "solid-js/web";
2
- import { Field as a, FieldContent as o, FieldError as s, FieldDescription as u } from "../Field.js";
3
- import { RadioGroup as g } from "../RadioGroup.js";
4
- import { useFieldContext as m } from "./context.js";
5
- import { splitProps as p } from "solid-js";
6
- const q = (n) => {
7
- const r = m(), [e, l] = p(n, ["description", "required", "disabled", "readOnly"]);
8
- return t(a, {
1
+ import { createComponent as t, mergeProps as i, memo as a } from "solid-js/web";
2
+ import { splitProps as o } from "solid-js";
3
+ import { Field as u, FieldContent as s, FieldError as g, FieldDescription as m } from "../Field.js";
4
+ import { RadioGroup as p, RadioGroupLabel as c } from "../RadioGroup.js";
5
+ import { useFieldContext as h } from "./context.js";
6
+ const y = (l) => {
7
+ const r = h(), [e, n] = o(l, ["label", "description", "required", "disabled", "readOnly", "children"]);
8
+ return t(u, {
9
9
  get invalid() {
10
10
  return r().state.meta.errors.length > 0;
11
11
  },
@@ -19,9 +19,9 @@ const q = (n) => {
19
19
  return e.readOnly ?? !1;
20
20
  },
21
21
  get children() {
22
- return t(o, {
22
+ return t(s, {
23
23
  get children() {
24
- return [t(g, i({
24
+ return [t(p, i({
25
25
  get value() {
26
26
  return r().state.value;
27
27
  },
@@ -43,11 +43,19 @@ const q = (n) => {
43
43
  get required() {
44
44
  return e.required ?? !1;
45
45
  }
46
- }, l)), t(s, {
46
+ }, n, {
47
+ get children() {
48
+ return [t(c, {
49
+ get children() {
50
+ return e.label;
51
+ }
52
+ }), a(() => e.children)];
53
+ }
54
+ })), t(g, {
47
55
  get errors() {
48
56
  return r().state.meta.errors;
49
57
  }
50
- }), t(u, {
58
+ }), t(m, {
51
59
  get children() {
52
60
  return e.description;
53
61
  }
@@ -58,6 +66,6 @@ const q = (n) => {
58
66
  });
59
67
  };
60
68
  export {
61
- q as RadioGroupField
69
+ y as RadioGroupField
62
70
  };
63
71
  //# sourceMappingURL=RadioGroupField.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"RadioGroupField.js","sources":["../../../src/components/form/RadioGroupField.tsx"],"sourcesContent":["import type { Component, ComponentProps } from 'solid-js';\n\nimport { Field, FieldContent, FieldError, FieldDescription } from '@/components/Field';\nimport { RadioGroup } from '@/components/RadioGroup';\n\nimport { useFieldContext } from './context';\n\nexport type RadioGroupFieldProps = ComponentProps<typeof RadioGroup> & {\n label?: string;\n description?: string;\n};\n\nexport const RadioGroupField: Component<RadioGroupFieldProps> = (props) => {\n const field = useFieldContext<string>();\n const [local, others] = splitProps(props, ['description', 'required', 'disabled', 'readOnly']);\n\n return (\n <Field\n invalid={field().state.meta.errors.length > 0}\n required={local.required ?? false}\n disabled={local.disabled ?? false}\n readOnly={local.readOnly ?? false}\n >\n <FieldContent>\n <RadioGroup\n value={field().state.value}\n onValueChange={(details) => {\n field().handleChange(details.value ?? '');\n }}\n onBlur={() => {\n field().handleBlur();\n }}\n invalid={field().state.meta.errors.length > 0}\n disabled={local.disabled ?? false}\n readOnly={local.readOnly ?? false}\n required={local.required ?? false}\n {...others}\n />\n <FieldError errors={field().state.meta.errors} />\n <FieldDescription>{local.description}</FieldDescription>\n </FieldContent>\n </Field>\n );\n};\n"],"names":["RadioGroupField","props","field","useFieldContext","local","others","splitProps","_$createComponent","Field","invalid","state","meta","errors","length","required","disabled","readOnly","children","FieldContent","RadioGroup","_$mergeProps","value","onValueChange","details","handleChange","onBlur","handleBlur","FieldError","FieldDescription","description"],"mappings":";;;;;AAYO,MAAMA,IAAoDC,CAAAA,MAAU;AACzE,QAAMC,IAAQC,EAAAA,GACR,CAACC,GAAOC,CAAM,IAAIC,EAAWL,GAAO,CAAC,eAAe,YAAY,YAAY,UAAU,CAAC;AAE7F,SAAAM,EACGC,GAAK;AAAA,IAAA,IACJC,UAAO;AAAA,aAAEP,EAAAA,EAAQQ,MAAMC,KAAKC,OAAOC,SAAS;AAAA,IAAC;AAAA,IAAA,IAC7CC,WAAQ;AAAA,aAAEV,EAAMU,YAAY;AAAA,IAAK;AAAA,IAAA,IACjCC,WAAQ;AAAA,aAAEX,EAAMW,YAAY;AAAA,IAAK;AAAA,IAAA,IACjCC,WAAQ;AAAA,aAAEZ,EAAMY,YAAY;AAAA,IAAK;AAAA,IAAA,IAAAC,WAAA;AAAA,aAAAV,EAEhCW,GAAY;AAAA,QAAA,IAAAD,WAAA;AAAA,iBAAA,CAAAV,EACVY,GAAUC,EAAA;AAAA,YAAA,IACTC,QAAK;AAAA,qBAAEnB,EAAAA,EAAQQ,MAAMW;AAAAA,YAAK;AAAA,YAC1BC,eAAgBC,CAAAA,MAAY;AAC1BrB,cAAAA,EAAAA,EAAQsB,aAAaD,EAAQF,SAAS,EAAE;AAAA,YAC1C;AAAA,YACAI,QAAQA,MAAM;AACZvB,cAAAA,EAAAA,EAAQwB,WAAAA;AAAAA,YACV;AAAA,YAAC,IACDjB,UAAO;AAAA,qBAAEP,EAAAA,EAAQQ,MAAMC,KAAKC,OAAOC,SAAS;AAAA,YAAC;AAAA,YAAA,IAC7CE,WAAQ;AAAA,qBAAEX,EAAMW,YAAY;AAAA,YAAK;AAAA,YAAA,IACjCC,WAAQ;AAAA,qBAAEZ,EAAMY,YAAY;AAAA,YAAK;AAAA,YAAA,IACjCF,WAAQ;AAAA,qBAAEV,EAAMU,YAAY;AAAA,YAAK;AAAA,UAAA,GAC7BT,CAAM,CAAA,GAAAE,EAEXoB,GAAU;AAAA,YAAA,IAACf,SAAM;AAAA,qBAAEV,EAAAA,EAAQQ,MAAMC,KAAKC;AAAAA,YAAM;AAAA,UAAA,CAAA,GAAAL,EAC5CqB,GAAgB;AAAA,YAAA,IAAAX,WAAA;AAAA,qBAAEb,EAAMyB;AAAAA,YAAW;AAAA,UAAA,CAAA,CAAA;AAAA,QAAA;AAAA,MAAA,CAAA;AAAA,IAAA;AAAA,EAAA,CAAA;AAI5C;"}
1
+ {"version":3,"file":"RadioGroupField.js","sources":["../../../src/components/form/RadioGroupField.tsx"],"sourcesContent":["import { type Component, type ComponentProps, splitProps } from 'solid-js';\n\nimport { Field, FieldContent, FieldError, FieldDescription } from '@/components/Field';\nimport { RadioGroup, RadioGroupLabel } from '@/components/RadioGroup';\n\nimport { useFieldContext } from './context';\n\nexport type RadioGroupFieldProps = ComponentProps<typeof RadioGroup> & {\n label?: string;\n description?: string;\n};\n\nexport const RadioGroupField: Component<RadioGroupFieldProps> = (props) => {\n const field = useFieldContext<string>();\n const [local, others] = splitProps(props, [\n 'label',\n 'description',\n 'required',\n 'disabled',\n 'readOnly',\n 'children',\n ]);\n\n return (\n <Field\n invalid={field().state.meta.errors.length > 0}\n required={local.required ?? false}\n disabled={local.disabled ?? false}\n readOnly={local.readOnly ?? false}\n >\n <FieldContent>\n <RadioGroup\n value={field().state.value}\n onValueChange={(details) => {\n field().handleChange(details.value ?? '');\n }}\n onBlur={() => {\n field().handleBlur();\n }}\n invalid={field().state.meta.errors.length > 0}\n disabled={local.disabled ?? false}\n readOnly={local.readOnly ?? false}\n required={local.required ?? false}\n {...others}\n >\n <RadioGroupLabel>{local.label}</RadioGroupLabel>\n {local.children}\n </RadioGroup>\n <FieldError errors={field().state.meta.errors} />\n <FieldDescription>{local.description}</FieldDescription>\n </FieldContent>\n </Field>\n );\n};\n"],"names":["RadioGroupField","props","field","useFieldContext","local","others","splitProps","_$createComponent","Field","invalid","state","meta","errors","length","required","disabled","readOnly","children","FieldContent","RadioGroup","_$mergeProps","value","onValueChange","details","handleChange","onBlur","handleBlur","RadioGroupLabel","label","_$memo","FieldError","FieldDescription","description"],"mappings":";;;;;AAYO,MAAMA,IAAoDC,CAAAA,MAAU;AACzE,QAAMC,IAAQC,EAAAA,GACR,CAACC,GAAOC,CAAM,IAAIC,EAAWL,GAAO,CACxC,SACA,eACA,YACA,YACA,YACA,UAAU,CACX;AAED,SAAAM,EACGC,GAAK;AAAA,IAAA,IACJC,UAAO;AAAA,aAAEP,EAAAA,EAAQQ,MAAMC,KAAKC,OAAOC,SAAS;AAAA,IAAC;AAAA,IAAA,IAC7CC,WAAQ;AAAA,aAAEV,EAAMU,YAAY;AAAA,IAAK;AAAA,IAAA,IACjCC,WAAQ;AAAA,aAAEX,EAAMW,YAAY;AAAA,IAAK;AAAA,IAAA,IACjCC,WAAQ;AAAA,aAAEZ,EAAMY,YAAY;AAAA,IAAK;AAAA,IAAA,IAAAC,WAAA;AAAA,aAAAV,EAEhCW,GAAY;AAAA,QAAA,IAAAD,WAAA;AAAA,iBAAA,CAAAV,EACVY,GAAUC,EAAA;AAAA,YAAA,IACTC,QAAK;AAAA,qBAAEnB,EAAAA,EAAQQ,MAAMW;AAAAA,YAAK;AAAA,YAC1BC,eAAgBC,CAAAA,MAAY;AAC1BrB,cAAAA,EAAAA,EAAQsB,aAAaD,EAAQF,SAAS,EAAE;AAAA,YAC1C;AAAA,YACAI,QAAQA,MAAM;AACZvB,cAAAA,EAAAA,EAAQwB,WAAAA;AAAAA,YACV;AAAA,YAAC,IACDjB,UAAO;AAAA,qBAAEP,EAAAA,EAAQQ,MAAMC,KAAKC,OAAOC,SAAS;AAAA,YAAC;AAAA,YAAA,IAC7CE,WAAQ;AAAA,qBAAEX,EAAMW,YAAY;AAAA,YAAK;AAAA,YAAA,IACjCC,WAAQ;AAAA,qBAAEZ,EAAMY,YAAY;AAAA,YAAK;AAAA,YAAA,IACjCF,WAAQ;AAAA,qBAAEV,EAAMU,YAAY;AAAA,YAAK;AAAA,UAAA,GAC7BT,GAAM;AAAA,YAAA,IAAAY,WAAA;AAAA,qBAAA,CAAAV,EAEToB,GAAe;AAAA,gBAAA,IAAAV,WAAA;AAAA,yBAAEb,EAAMwB;AAAAA,gBAAK;AAAA,cAAA,CAAA,GAAAC,EAAA,MAC5BzB,EAAMa,QAAQ,CAAA;AAAA,YAAA;AAAA,UAAA,CAAA,CAAA,GAAAV,EAEhBuB,GAAU;AAAA,YAAA,IAAClB,SAAM;AAAA,qBAAEV,EAAAA,EAAQQ,MAAMC,KAAKC;AAAAA,YAAM;AAAA,UAAA,CAAA,GAAAL,EAC5CwB,GAAgB;AAAA,YAAA,IAAAd,WAAA;AAAA,qBAAEb,EAAM4B;AAAAA,YAAW;AAAA,UAAA,CAAA,CAAA;AAAA,QAAA;AAAA,MAAA,CAAA;AAAA,IAAA;AAAA,EAAA,CAAA;AAI5C;"}
@@ -1,8 +1,10 @@
1
1
  import { Component, ComponentProps } from 'solid-js';
2
- import { TagsInputInput } from '../TagsInput';
3
- export type TagsInputFieldProps = ComponentProps<typeof TagsInputInput> & {
2
+ import { TagsInput, TagsInputInput } from '../TagsInput';
3
+ declare const TAGS_INPUT_ROOT_PROPS: readonly ["max", "maxLength", "delimiter", "addOnPaste", "blurBehavior", "validate", "autoFocus", "editable", "allowOverflow", "translations", "ids", "onFocusOutside", "onHighlightChange", "onInputValueChange", "onInteractOutside", "onPointerDownOutside", "onValueInvalid"];
4
+ export type TagsInputFieldProps = ComponentProps<typeof TagsInputInput> & Pick<ComponentProps<typeof TagsInput>, (typeof TAGS_INPUT_ROOT_PROPS)[number]> & {
4
5
  label?: string;
5
6
  description?: string;
6
7
  showClearTrigger?: boolean;
7
8
  };
8
9
  export declare const TagsInputField: Component<TagsInputFieldProps>;
10
+ export {};
@@ -1,46 +1,46 @@
1
- import { createComponent as e, mergeProps as o, Show as s, memo as u } from "solid-js/web";
2
- import { splitProps as i, For as d } from "solid-js";
3
- import { Field as h, FieldLabel as p, FieldContent as c, FieldError as T, FieldDescription as I } from "../Field.js";
4
- import { TagsInput as m, TagsInputContext as C, TagsInputControl as f, TagsInputItem as b, TagsInputItemPreview as w, TagsInputItemText as F, TagsInputItemDeleteTrigger as v, TagsInputItemInput as y, TagsInputInput as O, TagsInputClearTrigger as P, TagsInputHiddenInput as x } from "../TagsInput.js";
5
- import { useFieldContext as q } from "./context.js";
6
- const D = (l) => {
1
+ import { createComponent as e, mergeProps as s, Show as g, memo as d } from "solid-js/web";
2
+ import { splitProps as i, For as h } from "solid-js";
3
+ import { Field as p, FieldLabel as c, FieldContent as I, FieldError as T, FieldDescription as m } from "../Field.js";
4
+ import { TagsInput as C, TagsInputContext as f, TagsInputControl as O, TagsInputItem as P, TagsInputItemPreview as w, TagsInputItemText as b, TagsInputItemDeleteTrigger as F, TagsInputItemInput as v, TagsInputInput as x, TagsInputClearTrigger as y, TagsInputHiddenInput as _ } from "../TagsInput.js";
5
+ import { useFieldContext as S } from "./context.js";
6
+ const D = ["max", "maxLength", "delimiter", "addOnPaste", "blurBehavior", "validate", "autoFocus", "editable", "allowOverflow", "translations", "ids", "onFocusOutside", "onHighlightChange", "onInputValueChange", "onInteractOutside", "onPointerDownOutside", "onValueInvalid"], q = (l) => {
7
7
  const [t, r] = i(l, ["children", "showClearTrigger"]);
8
- return [e(C, {
9
- children: (a) => e(f, {
8
+ return [e(f, {
9
+ children: (a) => e(O, {
10
10
  get children() {
11
- return [e(d, {
11
+ return [e(h, {
12
12
  get each() {
13
13
  return a().value;
14
14
  },
15
- children: (n, g) => e(b, {
15
+ children: (n, o) => e(P, {
16
16
  get index() {
17
- return g();
17
+ return o();
18
18
  },
19
19
  value: n,
20
20
  get children() {
21
21
  return [e(w, {
22
22
  get children() {
23
- return [e(F, {
23
+ return [e(b, {
24
24
  children: n
25
- }), e(v, {})];
25
+ }), e(F, {})];
26
26
  }
27
- }), e(y, {})];
27
+ }), e(v, {})];
28
28
  }
29
29
  })
30
- }), e(O, r), e(s, {
30
+ }), e(x, r), e(g, {
31
31
  get when() {
32
32
  return t.showClearTrigger !== !1;
33
33
  },
34
34
  get children() {
35
- return e(P, {});
35
+ return e(y, {});
36
36
  }
37
- }), u(() => t.children)];
37
+ }), d(() => t.children)];
38
38
  }
39
39
  })
40
- }), e(x, {})];
41
- }, S = ["label", "description", "required", "disabled", "readOnly", "showClearTrigger"], A = (l) => {
42
- const t = q(), [r, a] = i(l, S);
43
- return e(h, {
40
+ }), e(_, {})];
41
+ }, B = ["label", "description", "required", "disabled", "readOnly", "showClearTrigger"], E = (l) => {
42
+ const t = S(), [r, a] = i(l, B), [n, o] = i(a, D);
43
+ return e(p, {
44
44
  get invalid() {
45
45
  return t().state.meta.errors.length > 0;
46
46
  },
@@ -54,18 +54,18 @@ const D = (l) => {
54
54
  return r.required ?? !1;
55
55
  },
56
56
  get children() {
57
- return [e(p, {
57
+ return [e(c, {
58
58
  get children() {
59
59
  return r.label;
60
60
  }
61
- }), e(c, {
61
+ }), e(I, {
62
62
  get children() {
63
- return [e(m, {
63
+ return [e(C, s({
64
64
  get value() {
65
65
  return t().state.value;
66
66
  },
67
- onValueChange: (n) => {
68
- t().handleChange(n.value);
67
+ onValueChange: (u) => {
68
+ t().handleChange(u.value);
69
69
  },
70
70
  onBlur: () => {
71
71
  t().handleBlur();
@@ -78,17 +78,18 @@ const D = (l) => {
78
78
  },
79
79
  get readOnly() {
80
80
  return r.readOnly ?? !1;
81
- },
81
+ }
82
+ }, n, {
82
83
  get children() {
83
- return e(D, o(a, () => typeof r.showClearTrigger == "boolean" && {
84
+ return e(q, s(o, () => typeof r.showClearTrigger == "boolean" && {
84
85
  showClearTrigger: r.showClearTrigger
85
86
  }));
86
87
  }
87
- }), e(T, {
88
+ })), e(T, {
88
89
  get errors() {
89
90
  return t().state.meta.errors;
90
91
  }
91
- }), e(I, {
92
+ }), e(m, {
92
93
  get children() {
93
94
  return r.description;
94
95
  }
@@ -99,6 +100,6 @@ const D = (l) => {
99
100
  });
100
101
  };
101
102
  export {
102
- A as TagsInputField
103
+ E as TagsInputField
103
104
  };
104
105
  //# sourceMappingURL=TagsInputField.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TagsInputField.js","sources":["../../../src/components/form/TagsInputField.tsx"],"sourcesContent":["import { type Component, type ComponentProps, splitProps, For } from 'solid-js';\n\nimport { Field, FieldContent, FieldDescription, FieldError, FieldLabel } from '@/components/Field';\nimport {\n TagsInput,\n TagsInputClearTrigger,\n TagsInputContext,\n TagsInputControl,\n TagsInputHiddenInput,\n TagsInputInput,\n TagsInputItemInput,\n TagsInputItemPreview,\n TagsInputItemText,\n TagsInputItem,\n TagsInputItemDeleteTrigger,\n} from '@/components/TagsInput';\n\nimport { useFieldContext } from './context';\n\nexport type TagsInputFieldProps = ComponentProps<typeof TagsInputInput> & {\n label?: string;\n description?: string;\n showClearTrigger?: boolean;\n};\n\nconst TagsInputGroup: Component<\n ComponentProps<typeof TagsInputInput> & { showClearTrigger?: boolean }\n> = (props) => {\n const [local, others] = splitProps(props, ['children', 'showClearTrigger']);\n\n return (\n <>\n <TagsInputContext>\n {(context) => (\n <TagsInputControl>\n <For each={context().value}>\n {(value, index) => (\n <TagsInputItem index={index()} value={value}>\n <TagsInputItemPreview>\n <TagsInputItemText>{value}</TagsInputItemText>\n <TagsInputItemDeleteTrigger />\n </TagsInputItemPreview>\n <TagsInputItemInput />\n </TagsInputItem>\n )}\n </For>\n <TagsInputInput {...others} />\n <Show when={local.showClearTrigger !== false}>\n <TagsInputClearTrigger />\n </Show>\n {local.children}\n </TagsInputControl>\n )}\n </TagsInputContext>\n <TagsInputHiddenInput />\n </>\n );\n};\n\nconst TAGS_INPUT_FIELD_PROPS = [\n 'label',\n 'description',\n 'required',\n 'disabled',\n 'readOnly',\n 'showClearTrigger',\n] as const;\n\nexport const TagsInputField: Component<TagsInputFieldProps> = (props) => {\n const field = useFieldContext<string[]>();\n const [local, others] = splitProps(props, TAGS_INPUT_FIELD_PROPS);\n\n return (\n <Field\n invalid={field().state.meta.errors.length > 0}\n disabled={local.disabled ?? false}\n readOnly={local.readOnly ?? false}\n required={local.required ?? false}\n >\n <FieldLabel>{local.label}</FieldLabel>\n <FieldContent>\n <TagsInput\n value={field().state.value}\n onValueChange={(details) => {\n field().handleChange(details.value);\n }}\n onBlur={() => {\n field().handleBlur();\n }}\n invalid={field().state.meta.errors.length > 0}\n disabled={local.disabled ?? false}\n readOnly={local.readOnly ?? false}\n >\n <TagsInputGroup\n {...others}\n {...(typeof local.showClearTrigger === 'boolean' && {\n showClearTrigger: local.showClearTrigger,\n })}\n />\n </TagsInput>\n <FieldError errors={field().state.meta.errors} />\n <FieldDescription>{local.description}</FieldDescription>\n </FieldContent>\n </Field>\n );\n};\n"],"names":["TagsInputGroup","props","local","others","splitProps","_$createComponent","TagsInputContext","children","context","TagsInputControl","For","each","value","index","TagsInputItem","TagsInputItemPreview","TagsInputItemText","TagsInputItemDeleteTrigger","TagsInputItemInput","TagsInputInput","_$Show","when","showClearTrigger","TagsInputClearTrigger","_$memo","TagsInputHiddenInput","TAGS_INPUT_FIELD_PROPS","TagsInputField","field","useFieldContext","Field","invalid","state","meta","errors","length","disabled","readOnly","required","FieldLabel","label","FieldContent","TagsInput","onValueChange","details","handleChange","onBlur","handleBlur","_$mergeProps","FieldError","FieldDescription","description"],"mappings":"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"}
1
+ {"version":3,"file":"TagsInputField.js","sources":["../../../src/components/form/TagsInputField.tsx"],"sourcesContent":["import { type Component, type ComponentProps, splitProps, For } from 'solid-js';\n\nimport { Field, FieldContent, FieldDescription, FieldError, FieldLabel } from '@/components/Field';\nimport {\n TagsInput,\n TagsInputClearTrigger,\n TagsInputContext,\n TagsInputControl,\n TagsInputHiddenInput,\n TagsInputInput,\n TagsInputItemInput,\n TagsInputItemPreview,\n TagsInputItemText,\n TagsInputItem,\n TagsInputItemDeleteTrigger,\n} from '@/components/TagsInput';\n\nimport { useFieldContext } from './context';\n\nconst TAGS_INPUT_ROOT_PROPS = [\n 'max',\n 'maxLength',\n 'delimiter',\n 'addOnPaste',\n 'blurBehavior',\n 'validate',\n 'autoFocus',\n 'editable',\n 'allowOverflow',\n 'translations',\n 'ids',\n 'onFocusOutside',\n 'onHighlightChange',\n 'onInputValueChange',\n 'onInteractOutside',\n 'onPointerDownOutside',\n 'onValueInvalid',\n] as const;\n\nexport type TagsInputFieldProps = ComponentProps<typeof TagsInputInput> &\n Pick<ComponentProps<typeof TagsInput>, (typeof TAGS_INPUT_ROOT_PROPS)[number]> & {\n label?: string;\n description?: string;\n showClearTrigger?: boolean;\n };\n\nconst TagsInputGroup: Component<\n { showClearTrigger?: boolean } & ComponentProps<typeof TagsInputInput>\n> = (props) => {\n const [local, others] = splitProps(props, ['children', 'showClearTrigger']);\n\n return (\n <>\n <TagsInputContext>\n {(context) => (\n <TagsInputControl>\n <For each={context().value}>\n {(value, index) => (\n <TagsInputItem index={index()} value={value}>\n <TagsInputItemPreview>\n <TagsInputItemText>{value}</TagsInputItemText>\n <TagsInputItemDeleteTrigger />\n </TagsInputItemPreview>\n <TagsInputItemInput />\n </TagsInputItem>\n )}\n </For>\n <TagsInputInput {...others} />\n <Show when={local.showClearTrigger !== false}>\n <TagsInputClearTrigger />\n </Show>\n {local.children}\n </TagsInputControl>\n )}\n </TagsInputContext>\n <TagsInputHiddenInput />\n </>\n );\n};\n\nconst TAGS_INPUT_FIELD_PROPS = [\n 'label',\n 'description',\n 'required',\n 'disabled',\n 'readOnly',\n 'showClearTrigger',\n] as const;\n\nexport const TagsInputField: Component<TagsInputFieldProps> = (props) => {\n const field = useFieldContext<string[]>();\n const [local, others] = splitProps(props, TAGS_INPUT_FIELD_PROPS);\n const [rootProps, inputProps] = splitProps(others, TAGS_INPUT_ROOT_PROPS);\n\n return (\n <Field\n invalid={field().state.meta.errors.length > 0}\n disabled={local.disabled ?? false}\n readOnly={local.readOnly ?? false}\n required={local.required ?? false}\n >\n <FieldLabel>{local.label}</FieldLabel>\n <FieldContent>\n <TagsInput\n value={field().state.value}\n onValueChange={(details) => {\n field().handleChange(details.value);\n }}\n onBlur={() => {\n field().handleBlur();\n }}\n invalid={field().state.meta.errors.length > 0}\n disabled={local.disabled ?? false}\n readOnly={local.readOnly ?? false}\n {...rootProps}\n >\n <TagsInputGroup\n {...inputProps}\n {...(typeof local.showClearTrigger === 'boolean' && {\n showClearTrigger: local.showClearTrigger,\n })}\n />\n </TagsInput>\n <FieldError errors={field().state.meta.errors} />\n <FieldDescription>{local.description}</FieldDescription>\n </FieldContent>\n </Field>\n );\n};\n"],"names":["TAGS_INPUT_ROOT_PROPS","TagsInputGroup","props","local","others","splitProps","_$createComponent","TagsInputContext","children","context","TagsInputControl","For","each","value","index","TagsInputItem","TagsInputItemPreview","TagsInputItemText","TagsInputItemDeleteTrigger","TagsInputItemInput","TagsInputInput","_$Show","when","showClearTrigger","TagsInputClearTrigger","_$memo","TagsInputHiddenInput","TAGS_INPUT_FIELD_PROPS","TagsInputField","field","useFieldContext","rootProps","inputProps","Field","invalid","state","meta","errors","length","disabled","readOnly","required","FieldLabel","label","FieldContent","TagsInput","_$mergeProps","onValueChange","details","handleChange","onBlur","handleBlur","FieldError","FieldDescription","description"],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://json.schemastore.org/package",
3
3
  "name": "@manafishrov/ui",
4
- "version": "1.3.2",
4
+ "version": "1.3.4",
5
5
  "description": "Styled component library for Manafish interfaces ",
6
6
  "license": "AGPL-3.0-or-later",
7
7
  "repository": {
@@ -15,13 +15,56 @@ import { Field, FieldContent, FieldDescription, FieldError, FieldLabel } from '@
15
15
 
16
16
  import { useFieldContext } from './context';
17
17
 
18
- export type ComboboxFieldProps = ComponentProps<typeof ComboboxInput> & {
19
- collection: ComboboxRootProps<string>['collection'];
20
- label?: string;
21
- description?: string;
22
- showTrigger?: boolean;
23
- showClearTrigger?: boolean;
24
- } & { class?: string };
18
+ const COMBOBOX_ROOT_PROPS = [
19
+ 'placeholder',
20
+ 'inputBehavior',
21
+ 'openOnChange',
22
+ 'openOnClick',
23
+ 'openOnKeyPress',
24
+ 'closeOnSelect',
25
+ 'allowCustomValue',
26
+ 'multiple',
27
+ 'selectionBehavior',
28
+ 'autoFocus',
29
+ 'loopFocus',
30
+ 'positioning',
31
+ 'alwaysSubmitOnEnter',
32
+ 'composite',
33
+ 'defaultHighlightedValue',
34
+ 'defaultInputValue',
35
+ 'defaultOpen',
36
+ 'defaultValue',
37
+ 'disableLayer',
38
+ 'highlightedValue',
39
+ 'ids',
40
+ 'immediate',
41
+ 'inputValue',
42
+ 'lazyMount',
43
+ 'navigate',
44
+ 'onExitComplete',
45
+ 'onFocusOutside',
46
+ 'onHighlightChange',
47
+ 'onInputValueChange',
48
+ 'onInteractOutside',
49
+ 'onOpenChange',
50
+ 'onPointerDownOutside',
51
+ 'onSelect',
52
+ 'open',
53
+ 'present',
54
+ 'scrollToIndexFn',
55
+ 'skipAnimationOnMount',
56
+ 'translations',
57
+ 'unmountOnExit',
58
+ ] as const;
59
+
60
+ export type ComboboxFieldProps = ComponentProps<typeof ComboboxInput> &
61
+ Pick<ComponentProps<typeof Combobox<string>>, (typeof COMBOBOX_ROOT_PROPS)[number]> & {
62
+ collection: ComboboxRootProps<string>['collection'];
63
+ label?: string;
64
+ description?: string;
65
+ showTrigger?: boolean;
66
+ showClearTrigger?: boolean;
67
+ } & { class?: string };
25
68
 
26
69
  const ComboboxInputGroup: Component<
27
70
  ComponentProps<typeof ComboboxInput> & {
@@ -64,6 +107,7 @@ const COMBOBOX_FIELD_PROPS = [
64
107
  export const ComboboxField: Component<ComboboxFieldProps> = (props) => {
65
108
  const field = useFieldContext<string[]>();
66
109
  const [local, others] = splitProps(props, COMBOBOX_FIELD_PROPS);
110
+ const [rootProps, inputProps] = splitProps(others, COMBOBOX_ROOT_PROPS);
67
111
 
68
112
  return (
69
113
  <Field
@@ -86,11 +130,12 @@ export const ComboboxField: Component<ComboboxFieldProps> = (props) => {
86
130
  invalid={field().state.meta.errors.length > 0}
87
131
  disabled={local.disabled ?? false}
88
132
  readOnly={local.readOnly ?? false}
133
+ {...rootProps}
89
134
  >
90
135
  <ComboboxInputGroup
91
136
  showTrigger={local.showTrigger}
92
137
  showClearTrigger={local.showClearTrigger}
93
- {...others}
138
+ {...inputProps}
94
139
  >
95
140
  {local.children}
96
141
  </ComboboxInputGroup>
@@ -1,5 +1,5 @@
1
1
  import type { DatePickerInputProps, DateValue } from '@ark-ui/solid';
2
- import type { Component } from 'solid-js';
2
+ import type { Component, ComponentProps } from 'solid-js';
3
3
 
4
4
  import {
5
5
  DatePicker,
@@ -14,11 +14,56 @@ import { Field, FieldContent, FieldDescription, FieldError, FieldLabel } from '@
14
14
 
15
15
  import { useFieldContext } from './context';
16
16
 
17
- export type DatePickerFieldProps = DatePickerInputProps & {
18
- label?: string;
19
- description?: string;
20
- showTrigger?: boolean;
21
- };
17
+ const DATE_PICKER_ROOT_PROPS = [
18
+ 'min',
19
+ 'max',
20
+ 'locale',
21
+ 'timeZone',
22
+ 'format',
23
+ 'parse',
24
+ 'selectionMode',
25
+ 'numOfMonths',
26
+ 'fixedWeeks',
27
+ 'startOfWeek',
28
+ 'showWeekNumbers',
29
+ 'outsideDaySelectable',
30
+ 'isDateUnavailable',
31
+ 'openOnClick',
32
+ 'positioning',
33
+ 'closeOnSelect',
34
+ 'defaultFocusedValue',
35
+ 'defaultOpen',
36
+ 'defaultValue',
37
+ 'defaultView',
38
+ 'focusedValue',
39
+ 'ids',
40
+ 'immediate',
41
+ 'inline',
42
+ 'lazyMount',
43
+ 'maxSelectedDates',
44
+ 'maxView',
45
+ 'minView',
46
+ 'name',
47
+ 'onExitComplete',
48
+ 'onFocusChange',
49
+ 'onOpenChange',
50
+ 'onValueChange',
51
+ 'onViewChange',
52
+ 'onVisibleRangeChange',
53
+ 'open',
54
+ 'present',
55
+ 'skipAnimationOnMount',
56
+ 'translations',
57
+ 'unmountOnExit',
58
+ 'view',
59
+ ] as const;
60
+
61
+ export type DatePickerFieldProps = DatePickerInputProps &
62
+ Pick<ComponentProps<typeof DatePicker>, (typeof DATE_PICKER_ROOT_PROPS)[number]> & {
63
+ label?: string;
64
+ description?: string;
65
+ showTrigger?: boolean;
66
+ };
22
67
 
23
68
  const DatePickerInputGroup: Component<DatePickerInputProps & { showTrigger?: boolean }> = (
24
69
  props,
@@ -55,6 +100,7 @@ const DATE_PICKER_FIELD_PROPS = [
55
100
  export const DatePickerField: Component<DatePickerFieldProps> = (props) => {
56
101
  const field = useFieldContext<DateValue[]>();
57
102
  const [local, others] = splitProps(props, DATE_PICKER_FIELD_PROPS);
103
+ const [rootProps, inputProps] = splitProps(others, DATE_PICKER_ROOT_PROPS);
58
104
 
59
105
  return (
60
106
  <Field
@@ -76,9 +122,10 @@ export const DatePickerField: Component<DatePickerFieldProps> = (props) => {
76
122
  invalid={field().state.meta.errors.length > 0}
77
123
  disabled={local.disabled ?? false}
78
124
  readOnly={local.readOnly ?? false}
125
+ {...rootProps}
79
126
  >
80
127
  <DatePickerInputGroup
81
- {...others}
128
+ {...inputProps}
82
129
  placeholder={local.placeholder}
83
130
  {...(typeof local.showTrigger === 'boolean' && { showTrigger: local.showTrigger })}
84
131
  />
@@ -27,7 +27,7 @@ export const Form: Component<FormProps> = (props) => {
27
27
 
28
28
  return (
29
29
  <form
30
- class={cn('space-y-6 relative', local.class)}
30
+ class={cn('space-y-8 relative', local.class)}
31
31
  onSubmit={(submitEvent) => {
32
32
  submitEvent.preventDefault();
33
33
  submitEvent.stopPropagation();
@@ -10,11 +10,31 @@ import {
10
10
 
11
11
  import { useFieldContext } from './context';
12
12
 
13
- export type NumberInputFieldProps = ComponentProps<typeof NumberInputInput> & {
14
- label?: string;
15
- description?: string;
16
- showTriggers?: boolean;
17
- };
13
+ const NUMBER_INPUT_ROOT_PROPS = [
14
+ 'min',
15
+ 'max',
16
+ 'step',
17
+ 'allowMouseWheel',
18
+ 'allowOverflow',
19
+ 'clampValueOnBlur',
20
+ 'formatOptions',
21
+ 'inputMode',
22
+ 'locale',
23
+ 'pattern',
24
+ 'spinOnPress',
25
+ 'focusInputOnChange',
26
+ 'translations',
27
+ 'form',
28
+ 'name',
29
+ 'onValueInvalid',
30
+ ] as const;
31
+
32
+ export type NumberInputFieldProps = ComponentProps<typeof NumberInputInput> &
33
+ Pick<ComponentProps<typeof NumberInput>, (typeof NUMBER_INPUT_ROOT_PROPS)[number]> & {
34
+ label?: string;
35
+ description?: string;
36
+ showTriggers?: boolean;
37
+ };
18
38
 
19
39
  const toNumberInputValue = (value: number | undefined): string => {
20
40
  if (typeof value !== 'number' || !Number.isFinite(value)) {
@@ -29,10 +49,19 @@ type NumberInputFieldLocalProps = Pick<
29
49
  'label' | 'description' | 'required' | 'disabled' | 'readOnly' | 'showTriggers'
30
50
  >;
31
51
 
52
+ type NumberInputFieldRootProps = Pick<
53
+ NumberInputFieldProps,
54
+ (typeof NUMBER_INPUT_ROOT_PROPS)[number]
55
+ >;
56
+
32
57
  type RenderNumberInputFieldProps = {
33
58
  field: ReturnType<typeof useFieldContext<number>>;
34
59
  local: NumberInputFieldLocalProps;
35
- others: Omit<NumberInputFieldProps, keyof NumberInputFieldLocalProps>;
60
+ rootProps: NumberInputFieldRootProps;
61
+ inputProps: Omit<
62
+ NumberInputFieldProps,
63
+ keyof NumberInputFieldLocalProps | keyof NumberInputFieldRootProps
64
+ >;
36
65
  inputValue: () => string;
37
66
  onValueChange: NonNullable<ComponentProps<typeof NumberInput>['onValueChange']>;
38
67
  onValueCommit: NonNullable<ComponentProps<typeof NumberInput>['onValueCommit']>;
@@ -102,9 +131,10 @@ const renderNumberInputField = (props: RenderNumberInputFieldProps): JSX.Element
102
131
  disabled={props.local.disabled ?? false}
103
132
  readOnly={props.local.readOnly ?? false}
104
133
  required={props.local.required ?? false}
134
+ {...props.rootProps}
105
135
  >
106
136
  <NumberInputControl>
107
- <NumberInputInput {...props.others} />
137
+ <NumberInputInput {...props.inputProps} />
108
138
  <Show when={props.local.showTriggers !== false}>
109
139
  <NumberInputTriggers />
110
140
  </Show>
@@ -126,12 +156,14 @@ export const NumberInputField: Component<NumberInputFieldProps> = (props) => {
126
156
  'readOnly',
127
157
  'showTriggers',
128
158
  ]);
159
+ const [rootProps, inputProps] = splitProps(others, NUMBER_INPUT_ROOT_PROPS);
129
160
  const state = createNumberInputFieldState(field);
130
161
 
131
162
  return renderNumberInputField({
132
163
  field,
133
164
  local,
134
- others,
165
+ rootProps,
166
+ inputProps,
135
167
  inputValue: state.inputValue,
136
168
  onValueChange: state.onValueChange,
137
169
  onValueCommit: state.onValueCommit,
@@ -1,7 +1,7 @@
1
- import type { Component, ComponentProps } from 'solid-js';
1
+ import { type Component, type ComponentProps, splitProps } from 'solid-js';
2
2
 
3
3
  import { Field, FieldContent, FieldError, FieldDescription } from '@/components/Field';
4
- import { RadioGroup } from '@/components/RadioGroup';
4
+ import { RadioGroup, RadioGroupLabel } from '@/components/RadioGroup';
5
5
 
6
6
  import { useFieldContext } from './context';
7
7
 
@@ -12,7 +12,14 @@ export type RadioGroupFieldProps = ComponentProps<typeof RadioGroup> & {
12
12
 
13
13
  export const RadioGroupField: Component<RadioGroupFieldProps> = (props) => {
14
14
  const field = useFieldContext<string>();
15
- const [local, others] = splitProps(props, ['description', 'required', 'disabled', 'readOnly']);
15
+ const [local, others] = splitProps(props, [
16
+ 'label',
17
+ 'description',
18
+ 'required',
19
+ 'disabled',
20
+ 'readOnly',
21
+ 'children',
22
+ ]);
16
23
 
17
24
  return (
18
25
  <Field
@@ -35,7 +42,10 @@ export const RadioGroupField: Component<RadioGroupFieldProps> = (props) => {
35
42
  readOnly={local.readOnly ?? false}
36
43
  required={local.required ?? false}
37
44
  {...others}
38
- />
45
+ >
46
+ <RadioGroupLabel>{local.label}</RadioGroupLabel>
47
+ {local.children}
48
+ </RadioGroup>
39
49
  <FieldError errors={field().state.meta.errors} />
40
50
  <FieldDescription>{local.description}</FieldDescription>
41
51
  </FieldContent>
@@ -17,14 +17,35 @@ import {
17
17
 
18
18
  import { useFieldContext } from './context';
19
19
 
20
- export type TagsInputFieldProps = ComponentProps<typeof TagsInputInput> & {
21
- label?: string;
22
- description?: string;
23
- showClearTrigger?: boolean;
24
- };
20
+ const TAGS_INPUT_ROOT_PROPS = [
21
+ 'max',
22
+ 'maxLength',
23
+ 'delimiter',
24
+ 'addOnPaste',
25
+ 'blurBehavior',
26
+ 'validate',
27
+ 'autoFocus',
28
+ 'editable',
29
+ 'allowOverflow',
30
+ 'translations',
31
+ 'ids',
32
+ 'onFocusOutside',
33
+ 'onHighlightChange',
34
+ 'onInputValueChange',
35
+ 'onInteractOutside',
36
+ 'onPointerDownOutside',
37
+ 'onValueInvalid',
38
+ ] as const;
39
+
40
+ export type TagsInputFieldProps = ComponentProps<typeof TagsInputInput> &
41
+ Pick<ComponentProps<typeof TagsInput>, (typeof TAGS_INPUT_ROOT_PROPS)[number]> & {
42
+ label?: string;
43
+ description?: string;
44
+ showClearTrigger?: boolean;
45
+ };
25
46
 
26
47
  const TagsInputGroup: Component<
27
- ComponentProps<typeof TagsInputInput> & { showClearTrigger?: boolean }
48
+ { showClearTrigger?: boolean } & ComponentProps<typeof TagsInputInput>
28
49
  > = (props) => {
29
50
  const [local, others] = splitProps(props, ['children', 'showClearTrigger']);
30
51
 
@@ -69,6 +90,7 @@ const TAGS_INPUT_FIELD_PROPS = [
69
90
  export const TagsInputField: Component<TagsInputFieldProps> = (props) => {
70
91
  const field = useFieldContext<string[]>();
71
92
  const [local, others] = splitProps(props, TAGS_INPUT_FIELD_PROPS);
93
+ const [rootProps, inputProps] = splitProps(others, TAGS_INPUT_ROOT_PROPS);
72
94
 
73
95
  return (
74
96
  <Field
@@ -90,9 +112,10 @@ export const TagsInputField: Component<TagsInputFieldProps> = (props) => {
90
112
  invalid={field().state.meta.errors.length > 0}
91
113
  disabled={local.disabled ?? false}
92
114
  readOnly={local.readOnly ?? false}
115
+ {...rootProps}
93
116
  >
94
117
  <TagsInputGroup
95
- {...others}
118
+ {...inputProps}
96
119
  {...(typeof local.showClearTrigger === 'boolean' && {
97
120
  showClearTrigger: local.showClearTrigger,
98
121
  })}