@pathscale/ui 1.1.33 → 1.1.35
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/components/badge/Badge.css +5 -5
- package/dist/components/badge/Badge.d.ts +1 -1
- package/dist/components/badge/Badge.js +1 -2
- package/dist/components/button/Button.css +10 -1
- package/dist/components/button/Button.d.ts +2 -0
- package/dist/components/button/Button.js +31 -6
- package/dist/components/button-group/ButtonGroup.css +117 -0
- package/dist/components/button-group/ButtonGroup.d.ts +23 -0
- package/dist/components/button-group/ButtonGroup.js +91 -0
- package/dist/components/button-group/context.d.ts +8 -0
- package/dist/components/button-group/context.js +3 -0
- package/dist/components/button-group/index.d.ts +1 -0
- package/dist/components/button-group/index.js +6 -0
- package/dist/components/card/Card.css +110 -0
- package/dist/components/card/Card.d.ts +26 -26
- package/dist/components/card/Card.js +131 -70
- package/dist/components/card/index.d.ts +1 -1
- package/dist/components/card/index.js +6 -1
- package/dist/components/checkbox/Checkbox.js +18 -4
- package/dist/components/checkbox-group/CheckboxGroup.css +10 -0
- package/dist/components/checkbox-group/CheckboxGroup.d.ts +18 -0
- package/dist/components/checkbox-group/CheckboxGroup.js +97 -0
- package/dist/components/checkbox-group/context.d.ts +11 -0
- package/dist/components/checkbox-group/context.js +3 -0
- package/dist/components/checkbox-group/index.d.ts +4 -0
- package/dist/components/checkbox-group/index.js +4 -0
- package/dist/components/chip/Chip.css +197 -0
- package/dist/components/chip/Chip.d.ts +25 -0
- package/dist/components/chip/Chip.js +142 -0
- package/dist/components/chip/index.d.ts +8 -0
- package/dist/components/chip/index.js +9 -0
- package/dist/components/close-button/CloseButton.css +81 -0
- package/dist/components/close-button/CloseButton.d.ts +14 -0
- package/dist/components/close-button/CloseButton.js +76 -0
- package/dist/components/close-button/index.d.ts +1 -0
- package/dist/components/close-button/index.js +3 -0
- package/dist/components/combo-box/ComboBox.css +344 -0
- package/dist/components/combo-box/ComboBox.d.ts +86 -0
- package/dist/components/combo-box/ComboBox.js +708 -0
- package/dist/components/combo-box/index.d.ts +1 -0
- package/dist/components/combo-box/index.js +10 -0
- package/dist/components/date-field/DateField.css +215 -0
- package/dist/components/date-field/DateField.d.ts +64 -0
- package/dist/components/date-field/DateField.js +341 -0
- package/dist/components/date-field/index.d.ts +1 -0
- package/dist/components/date-field/index.js +11 -0
- package/dist/components/description/Description.css +10 -0
- package/dist/components/description/Description.d.ts +11 -0
- package/dist/components/{form/Label.js → description/Description.js} +23 -14
- package/dist/components/description/index.d.ts +1 -0
- package/dist/components/description/index.js +5 -0
- package/dist/components/drawer/Drawer.css +15 -0
- package/dist/components/drawer/Drawer.d.ts +2 -0
- package/dist/components/drawer/Drawer.js +24 -16
- package/dist/components/error-message/ErrorMessage.css +20 -0
- package/dist/components/error-message/ErrorMessage.d.ts +11 -0
- package/dist/components/error-message/ErrorMessage.js +40 -0
- package/dist/components/error-message/index.d.ts +1 -0
- package/dist/components/error-message/index.js +5 -0
- package/dist/components/field-error/FieldError.css +27 -0
- package/dist/components/field-error/FieldError.d.ts +21 -0
- package/dist/components/field-error/FieldError.js +69 -0
- package/dist/components/field-error/index.d.ts +1 -0
- package/dist/components/field-error/index.js +5 -0
- package/dist/components/fieldset/Fieldset.css +30 -0
- package/dist/components/fieldset/Fieldset.d.ts +22 -9
- package/dist/components/fieldset/Fieldset.js +88 -44
- package/dist/components/fieldset/index.d.ts +1 -2
- package/dist/components/fieldset/index.js +7 -2
- package/dist/components/form/Form.css +5 -0
- package/dist/components/form/Form.d.ts +10 -16
- package/dist/components/form/Form.js +33 -16
- package/dist/components/form/index.d.ts +1 -4
- package/dist/components/form/index.js +3 -4
- package/dist/components/header/Header.css +13 -0
- package/dist/components/header/Header.d.ts +9 -0
- package/dist/components/{menu/MenuDetails.js → header/Header.js} +17 -20
- package/dist/components/header/index.d.ts +1 -0
- package/dist/components/header/index.js +5 -0
- package/dist/components/immersive-landing/components/FirefoxPWABanner.js +62 -68
- package/dist/components/immersive-landing/components/PWAInstallPrompt.js +58 -64
- package/dist/components/input/Input.css +3 -2
- package/dist/components/input/Input.d.ts +2 -2
- package/dist/components/input/Input.js +7 -7
- package/dist/components/input-group/InputGroup.css +172 -0
- package/dist/components/input-group/InputGroup.d.ts +44 -0
- package/dist/components/input-group/InputGroup.js +227 -0
- package/dist/components/input-group/index.d.ts +1 -0
- package/dist/components/input-group/index.js +9 -0
- package/dist/components/input-otp/InputOTP.css +170 -0
- package/dist/components/input-otp/InputOTP.d.ts +46 -0
- package/dist/components/input-otp/InputOTP.js +385 -0
- package/dist/components/input-otp/index.d.ts +1 -0
- package/dist/components/input-otp/index.js +11 -0
- package/dist/components/label/Label.css +30 -0
- package/dist/components/label/Label.d.ts +17 -0
- package/dist/components/label/Label.js +64 -0
- package/dist/components/label/index.d.ts +1 -0
- package/dist/components/label/index.js +5 -0
- package/dist/components/list-box/ListBox.css +148 -0
- package/dist/components/list-box/ListBox.d.ts +23 -0
- package/dist/components/list-box/ListBox.js +224 -0
- package/dist/components/list-box/ListBoxItem.d.ts +28 -0
- package/dist/components/list-box/ListBoxItem.js +231 -0
- package/dist/components/list-box/ListBoxSection.d.ts +11 -0
- package/dist/components/list-box/ListBoxSection.js +48 -0
- package/dist/components/list-box/context.d.ts +27 -0
- package/dist/components/list-box/context.js +3 -0
- package/dist/components/list-box/index.d.ts +17 -0
- package/dist/components/list-box/index.js +17 -0
- package/dist/components/menu/Menu.css +199 -0
- package/dist/components/menu/Menu.d.ts +32 -20
- package/dist/components/menu/Menu.js +213 -39
- package/dist/components/menu/MenuItem.d.ts +35 -5
- package/dist/components/menu/MenuItem.js +270 -19
- package/dist/components/menu/MenuSection.d.ts +11 -0
- package/dist/components/menu/MenuSection.js +48 -0
- package/dist/components/menu/context.d.ts +26 -0
- package/dist/components/menu/context.js +3 -0
- package/dist/components/menu/index.d.ts +4 -3
- package/dist/components/menu/index.js +11 -2
- package/dist/components/number-field/NumberField.css +198 -0
- package/dist/components/number-field/NumberField.d.ts +48 -0
- package/dist/components/number-field/NumberField.js +350 -0
- package/dist/components/number-field/index.d.ts +1 -0
- package/dist/components/number-field/index.js +9 -0
- package/dist/components/search-field/SearchField.css +183 -0
- package/dist/components/search-field/SearchField.d.ts +53 -0
- package/dist/components/search-field/SearchField.js +303 -0
- package/dist/components/search-field/index.d.ts +1 -0
- package/dist/components/search-field/index.js +9 -0
- package/dist/components/select/Select.css +16 -10
- package/dist/components/select/Select.d.ts +10 -2
- package/dist/components/select/Select.js +119 -33
- package/dist/components/separator/Separator.css +35 -0
- package/dist/components/separator/Separator.d.ts +12 -0
- package/dist/components/separator/Separator.js +57 -0
- package/dist/components/separator/index.d.ts +1 -0
- package/dist/components/separator/index.js +4 -0
- package/dist/components/sidenav/Sidenav.js +2 -2
- package/dist/components/surface/Surface.css +37 -0
- package/dist/components/surface/Surface.d.ts +12 -0
- package/dist/components/surface/Surface.js +41 -0
- package/dist/components/surface/index.d.ts +1 -0
- package/dist/components/surface/index.js +4 -0
- package/dist/components/table/hooks/index.d.ts +1 -9
- package/dist/components/table/hooks/index.js +1 -18
- package/dist/components/tag/Tag.css +121 -0
- package/dist/components/tag/Tag.d.ts +33 -0
- package/dist/components/tag/Tag.js +241 -0
- package/dist/components/tag/index.d.ts +1 -0
- package/dist/components/tag/index.js +6 -0
- package/dist/components/tag-group/TagGroup.css +22 -0
- package/dist/components/tag-group/TagGroup.d.ts +32 -0
- package/dist/components/tag-group/TagGroup.js +177 -0
- package/dist/components/tag-group/context.d.ts +15 -0
- package/dist/components/tag-group/context.js +3 -0
- package/dist/components/tag-group/index.d.ts +2 -0
- package/dist/components/tag-group/index.js +6 -0
- package/dist/components/text/Text.css +66 -0
- package/dist/components/text/Text.d.ts +17 -0
- package/dist/components/text/Text.js +46 -0
- package/dist/components/text/index.d.ts +1 -0
- package/dist/components/text/index.js +5 -0
- package/dist/components/text-area/TextArea.css +95 -0
- package/dist/components/text-area/TextArea.d.ts +19 -0
- package/dist/components/text-area/TextArea.js +64 -0
- package/dist/components/text-area/index.d.ts +1 -0
- package/dist/components/text-area/index.js +5 -0
- package/dist/components/text-field/TextField.css +33 -0
- package/dist/components/text-field/TextField.d.ts +34 -0
- package/dist/components/text-field/TextField.js +85 -0
- package/dist/components/text-field/index.d.ts +1 -0
- package/dist/components/text-field/index.js +7 -0
- package/dist/components/textarea/Textarea.d.ts +8 -13
- package/dist/components/textarea/Textarea.js +14 -45
- package/dist/components/textarea/index.d.ts +2 -1
- package/dist/components/textarea/index.js +4 -1
- package/dist/components/time-field/TimeField.css +215 -0
- package/dist/components/time-field/TimeField.d.ts +64 -0
- package/dist/components/time-field/TimeField.js +341 -0
- package/dist/components/time-field/index.d.ts +1 -0
- package/dist/components/time-field/index.js +11 -0
- package/dist/components/utils.d.ts +2 -2
- package/dist/components/utils.js +3 -17
- package/dist/hooks/form/index.d.ts +5 -0
- package/dist/hooks/form/index.js +12 -0
- package/dist/hooks/form/useField.d.ts +11 -0
- package/dist/hooks/form/useField.js +20 -0
- package/dist/hooks/form/useFieldError.d.ts +3 -0
- package/dist/hooks/form/useFieldError.js +3 -0
- package/dist/hooks/form/useFieldMeta.d.ts +20 -0
- package/dist/hooks/form/useFieldMeta.js +49 -0
- package/dist/hooks/form/useFieldProps.d.ts +10 -0
- package/dist/hooks/form/useFieldProps.js +51 -0
- package/dist/hooks/form/useForm.d.ts +27 -0
- package/dist/hooks/form/useForm.js +54 -0
- package/dist/hooks/form/utils.d.ts +4 -0
- package/dist/hooks/form/utils.js +30 -0
- package/dist/hooks/layout/index.d.ts +1 -0
- package/dist/hooks/layout/index.js +3 -0
- package/dist/hooks/layout/useDesktop.d.ts +1 -0
- package/dist/hooks/layout/useDesktop.js +17 -0
- package/dist/hooks/table/index.d.ts +9 -0
- package/dist/hooks/table/index.js +18 -0
- package/dist/index.d.ts +63 -7
- package/dist/index.js +145 -15
- package/dist/primitives/streaming/index.d.ts +2 -0
- package/dist/primitives/streaming/index.js +5 -0
- package/dist/primitives/streaming/useStreamingBuffer.d.ts +15 -0
- package/dist/primitives/streaming/useStreamingBuffer.js +115 -0
- package/dist/primitives/streaming/useStreamingSubscription.d.ts +27 -0
- package/dist/primitives/streaming/useStreamingSubscription.js +115 -0
- package/dist/styles/icons/generated-icons.css +1 -1
- package/package.json +1 -1
- package/dist/components/card/CardActions.d.ts +0 -4
- package/dist/components/card/CardActions.js +0 -15
- package/dist/components/card/CardBody.d.ts +0 -4
- package/dist/components/card/CardBody.js +0 -15
- package/dist/components/card/CardImage.d.ts +0 -3
- package/dist/components/card/CardImage.js +0 -10
- package/dist/components/card/CardTitle.d.ts +0 -6
- package/dist/components/card/CardTitle.js +0 -13
- package/dist/components/card/card.css +0 -171
- package/dist/components/form/FormBase.d.ts +0 -8
- package/dist/components/form/FormBase.js +0 -74
- package/dist/components/form/FormDropdown.d.ts +0 -25
- package/dist/components/form/FormDropdown.js +0 -139
- package/dist/components/form/FormField.d.ts +0 -14
- package/dist/components/form/FormField.js +0 -78
- package/dist/components/form/Label.d.ts +0 -7
- package/dist/components/form/NumberField.d.ts +0 -20
- package/dist/components/form/NumberField.js +0 -109
- package/dist/components/form/PasswordField.d.ts +0 -16
- package/dist/components/form/PasswordField.js +0 -113
- package/dist/components/form/ValidatedForm.d.ts +0 -26
- package/dist/components/form/ValidatedForm.js +0 -55
- package/dist/components/menu/MenuDetails.d.ts +0 -8
- package/dist/components/menu/MenuDropdown.d.ts +0 -12
- package/dist/components/menu/MenuDropdown.js +0 -48
- package/dist/components/menu/MenuTitle.d.ts +0 -8
- package/dist/components/menu/MenuTitle.js +0 -22
- package/dist/components/menu/menu.css +0 -364
- package/dist/components/textarea/textarea.css +0 -191
- /package/dist/{components/table/hooks → hooks/table}/helpers.d.ts +0 -0
- /package/dist/{components/table/hooks → hooks/table}/helpers.js +0 -0
- /package/dist/{components/table/hooks → hooks/table}/useAnchoredOverlayPosition.d.ts +0 -0
- /package/dist/{components/table/hooks → hooks/table}/useAnchoredOverlayPosition.js +0 -0
- /package/dist/{components/table/hooks → hooks/table}/useTableExpansion.d.ts +0 -0
- /package/dist/{components/table/hooks → hooks/table}/useTableExpansion.js +0 -0
- /package/dist/{components/table/hooks → hooks/table}/useTableFiltering.d.ts +0 -0
- /package/dist/{components/table/hooks → hooks/table}/useTableFiltering.js +0 -0
- /package/dist/{components/table/hooks → hooks/table}/useTableModel.d.ts +0 -0
- /package/dist/{components/table/hooks → hooks/table}/useTableModel.js +0 -0
- /package/dist/{components/table/hooks → hooks/table}/useTablePagination.d.ts +0 -0
- /package/dist/{components/table/hooks → hooks/table}/useTablePagination.js +0 -0
- /package/dist/{components/table/hooks → hooks/table}/useTableSelection.d.ts +0 -0
- /package/dist/{components/table/hooks → hooks/table}/useTableSelection.js +0 -0
- /package/dist/{components/table/hooks → hooks/table}/useTableSorting.d.ts +0 -0
- /package/dist/{components/table/hooks → hooks/table}/useTableSorting.js +0 -0
|
@@ -0,0 +1,341 @@
|
|
|
1
|
+
import * as __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__ from "solid-js/web";
|
|
2
|
+
import "./TimeField.css";
|
|
3
|
+
import * as __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__ from "solid-js";
|
|
4
|
+
import * as __WEBPACK_EXTERNAL_MODULE_tailwind_merge_e05e3e95__ from "tailwind-merge";
|
|
5
|
+
var _tmpl$ = /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.template)("<div>"), _tmpl$2 = /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.template)("<input>"), _tmpl$3 = /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.template)("<span>");
|
|
6
|
+
const VARIANT_CLASS_MAP = {
|
|
7
|
+
primary: "time-field--primary",
|
|
8
|
+
secondary: "time-field--secondary"
|
|
9
|
+
};
|
|
10
|
+
const GROUP_VARIANT_CLASS_MAP = {
|
|
11
|
+
primary: "date-input-group--primary",
|
|
12
|
+
secondary: "date-input-group--secondary"
|
|
13
|
+
};
|
|
14
|
+
const TimeFieldContext = (0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.createContext)();
|
|
15
|
+
const invokeEventHandler = (handler, event)=>{
|
|
16
|
+
if ("function" == typeof handler) return void handler(event);
|
|
17
|
+
if (Array.isArray(handler) && "function" == typeof handler[0]) handler[0](handler[1], event);
|
|
18
|
+
};
|
|
19
|
+
const TimeFieldRoot = (props)=>{
|
|
20
|
+
const [local, others] = (0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.splitProps)(props, [
|
|
21
|
+
"children",
|
|
22
|
+
"class",
|
|
23
|
+
"className",
|
|
24
|
+
"dataTheme",
|
|
25
|
+
"style",
|
|
26
|
+
"name",
|
|
27
|
+
"value",
|
|
28
|
+
"defaultValue",
|
|
29
|
+
"onChange",
|
|
30
|
+
"onBlur",
|
|
31
|
+
"fullWidth",
|
|
32
|
+
"variant",
|
|
33
|
+
"isDisabled",
|
|
34
|
+
"disabled",
|
|
35
|
+
"isInvalid",
|
|
36
|
+
"isRequired",
|
|
37
|
+
"required"
|
|
38
|
+
]);
|
|
39
|
+
const [internalValue, setInternalValue] = (0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.createSignal)(local.defaultValue ?? "");
|
|
40
|
+
const isControlled = ()=>void 0 !== local.value;
|
|
41
|
+
const value = ()=>isControlled() ? local.value ?? "" : internalValue();
|
|
42
|
+
const variant = ()=>local.variant ?? "primary";
|
|
43
|
+
const fullWidth = ()=>Boolean(local.fullWidth);
|
|
44
|
+
const isDisabled = ()=>Boolean(local.isDisabled) || Boolean(local.disabled);
|
|
45
|
+
const isInvalid = ()=>Boolean(local.isInvalid);
|
|
46
|
+
const isRequired = ()=>Boolean(local.isRequired) || Boolean(local.required);
|
|
47
|
+
const setValue = (nextValue)=>{
|
|
48
|
+
if (!isControlled()) setInternalValue(nextValue);
|
|
49
|
+
local.onChange?.(nextValue);
|
|
50
|
+
};
|
|
51
|
+
const renderProps = ()=>({
|
|
52
|
+
value: value(),
|
|
53
|
+
isInvalid: isInvalid(),
|
|
54
|
+
isDisabled: isDisabled(),
|
|
55
|
+
isRequired: isRequired()
|
|
56
|
+
});
|
|
57
|
+
const contextValue = {
|
|
58
|
+
value,
|
|
59
|
+
name: ()=>local.name,
|
|
60
|
+
variant,
|
|
61
|
+
fullWidth,
|
|
62
|
+
isDisabled,
|
|
63
|
+
isInvalid,
|
|
64
|
+
isRequired,
|
|
65
|
+
onBlur: ()=>local.onBlur,
|
|
66
|
+
setValue
|
|
67
|
+
};
|
|
68
|
+
return (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.createComponent)(TimeFieldContext.Provider, {
|
|
69
|
+
value: contextValue,
|
|
70
|
+
get children () {
|
|
71
|
+
var _el$ = _tmpl$();
|
|
72
|
+
(0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.spread)(_el$, (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.mergeProps)(others, {
|
|
73
|
+
get ["class"] () {
|
|
74
|
+
return (0, __WEBPACK_EXTERNAL_MODULE_tailwind_merge_e05e3e95__.twMerge)("time-field", VARIANT_CLASS_MAP[variant()], fullWidth() && "time-field--full-width", local.class, local.className);
|
|
75
|
+
},
|
|
76
|
+
"data-slot": "time-field",
|
|
77
|
+
get ["data-invalid"] () {
|
|
78
|
+
return isInvalid() ? "true" : void 0;
|
|
79
|
+
},
|
|
80
|
+
get ["data-disabled"] () {
|
|
81
|
+
return isDisabled() ? "true" : void 0;
|
|
82
|
+
},
|
|
83
|
+
get ["data-required"] () {
|
|
84
|
+
return isRequired() ? "true" : void 0;
|
|
85
|
+
},
|
|
86
|
+
get ["aria-invalid"] () {
|
|
87
|
+
return isInvalid() ? "true" : void 0;
|
|
88
|
+
},
|
|
89
|
+
get ["aria-disabled"] () {
|
|
90
|
+
return isDisabled() ? "true" : void 0;
|
|
91
|
+
},
|
|
92
|
+
get ["data-theme"] () {
|
|
93
|
+
return local.dataTheme;
|
|
94
|
+
},
|
|
95
|
+
get style () {
|
|
96
|
+
return local.style;
|
|
97
|
+
}
|
|
98
|
+
}), false, true);
|
|
99
|
+
(0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.insert)(_el$, (()=>{
|
|
100
|
+
var _c$ = (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.memo)(()=>"function" == typeof local.children);
|
|
101
|
+
return ()=>_c$() ? local.children(renderProps()) : (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.memo)(()=>!!local.children)() ? local.children : (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.createComponent)(TimeFieldGroup, {
|
|
102
|
+
get children () {
|
|
103
|
+
return (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.createComponent)(TimeFieldInput, {});
|
|
104
|
+
}
|
|
105
|
+
});
|
|
106
|
+
})());
|
|
107
|
+
return _el$;
|
|
108
|
+
}
|
|
109
|
+
});
|
|
110
|
+
};
|
|
111
|
+
const TimeFieldGroup = (props)=>{
|
|
112
|
+
const context = (0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.useContext)(TimeFieldContext);
|
|
113
|
+
const [local, others] = (0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.splitProps)(props, [
|
|
114
|
+
"children",
|
|
115
|
+
"class",
|
|
116
|
+
"className",
|
|
117
|
+
"dataTheme",
|
|
118
|
+
"style"
|
|
119
|
+
]);
|
|
120
|
+
const renderProps = ()=>({
|
|
121
|
+
value: context?.value() ?? "",
|
|
122
|
+
isInvalid: context?.isInvalid() ?? false,
|
|
123
|
+
isDisabled: context?.isDisabled() ?? false,
|
|
124
|
+
isRequired: context?.isRequired() ?? false
|
|
125
|
+
});
|
|
126
|
+
return (()=>{
|
|
127
|
+
var _el$2 = _tmpl$();
|
|
128
|
+
(0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.spread)(_el$2, (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.mergeProps)(others, {
|
|
129
|
+
get ["class"] () {
|
|
130
|
+
return (0, __WEBPACK_EXTERNAL_MODULE_tailwind_merge_e05e3e95__.twMerge)("date-input-group", GROUP_VARIANT_CLASS_MAP[context?.variant() ?? "primary"], context?.fullWidth() && "date-input-group--full-width", local.class, local.className);
|
|
131
|
+
},
|
|
132
|
+
"data-slot": "date-input-group",
|
|
133
|
+
get ["data-invalid"] () {
|
|
134
|
+
return context?.isInvalid() ? "true" : void 0;
|
|
135
|
+
},
|
|
136
|
+
get ["data-disabled"] () {
|
|
137
|
+
return context?.isDisabled() ? "true" : void 0;
|
|
138
|
+
},
|
|
139
|
+
get ["data-theme"] () {
|
|
140
|
+
return local.dataTheme;
|
|
141
|
+
},
|
|
142
|
+
get style () {
|
|
143
|
+
return local.style;
|
|
144
|
+
}
|
|
145
|
+
}), false, true);
|
|
146
|
+
(0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.insert)(_el$2, (()=>{
|
|
147
|
+
var _c$2 = (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.memo)(()=>"function" == typeof local.children);
|
|
148
|
+
return ()=>_c$2() ? local.children(renderProps()) : local.children;
|
|
149
|
+
})());
|
|
150
|
+
return _el$2;
|
|
151
|
+
})();
|
|
152
|
+
};
|
|
153
|
+
const TimeFieldInput = (props)=>{
|
|
154
|
+
const context = (0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.useContext)(TimeFieldContext);
|
|
155
|
+
const [local, others] = (0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.splitProps)(props, [
|
|
156
|
+
"class",
|
|
157
|
+
"className",
|
|
158
|
+
"dataTheme",
|
|
159
|
+
"style",
|
|
160
|
+
"onInput",
|
|
161
|
+
"onBlur",
|
|
162
|
+
"name"
|
|
163
|
+
]);
|
|
164
|
+
const handleInput = (event)=>{
|
|
165
|
+
invokeEventHandler(local.onInput, event);
|
|
166
|
+
if (event.defaultPrevented) return;
|
|
167
|
+
context?.setValue(event.currentTarget.value);
|
|
168
|
+
};
|
|
169
|
+
const handleBlur = (event)=>{
|
|
170
|
+
invokeEventHandler(local.onBlur, event);
|
|
171
|
+
invokeEventHandler(context?.onBlur(), event);
|
|
172
|
+
};
|
|
173
|
+
return (()=>{
|
|
174
|
+
var _el$3 = _tmpl$2();
|
|
175
|
+
(0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.spread)(_el$3, (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.mergeProps)(others, {
|
|
176
|
+
type: "time",
|
|
177
|
+
get ["class"] () {
|
|
178
|
+
return (0, __WEBPACK_EXTERNAL_MODULE_tailwind_merge_e05e3e95__.twMerge)("date-input-group__input", local.class, local.className);
|
|
179
|
+
},
|
|
180
|
+
"data-slot": "date-input-group-input",
|
|
181
|
+
get ["data-theme"] () {
|
|
182
|
+
return local.dataTheme;
|
|
183
|
+
},
|
|
184
|
+
get style () {
|
|
185
|
+
return local.style;
|
|
186
|
+
},
|
|
187
|
+
get name () {
|
|
188
|
+
return local.name ?? context?.name();
|
|
189
|
+
},
|
|
190
|
+
get value () {
|
|
191
|
+
return context?.value() ?? "";
|
|
192
|
+
},
|
|
193
|
+
get disabled () {
|
|
194
|
+
return context?.isDisabled();
|
|
195
|
+
},
|
|
196
|
+
get required () {
|
|
197
|
+
return context?.isRequired();
|
|
198
|
+
},
|
|
199
|
+
get ["aria-invalid"] () {
|
|
200
|
+
return context?.isInvalid() ? "true" : void 0;
|
|
201
|
+
},
|
|
202
|
+
get ["aria-disabled"] () {
|
|
203
|
+
return context?.isDisabled() ? "true" : void 0;
|
|
204
|
+
},
|
|
205
|
+
onInput: handleInput,
|
|
206
|
+
onBlur: handleBlur
|
|
207
|
+
}), false, false);
|
|
208
|
+
return _el$3;
|
|
209
|
+
})();
|
|
210
|
+
};
|
|
211
|
+
const TimeFieldInputContainer = (props)=>{
|
|
212
|
+
const [local, others] = (0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.splitProps)(props, [
|
|
213
|
+
"children",
|
|
214
|
+
"class",
|
|
215
|
+
"className",
|
|
216
|
+
"dataTheme",
|
|
217
|
+
"style"
|
|
218
|
+
]);
|
|
219
|
+
return (()=>{
|
|
220
|
+
var _el$4 = _tmpl$();
|
|
221
|
+
(0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.spread)(_el$4, (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.mergeProps)(others, {
|
|
222
|
+
get ["class"] () {
|
|
223
|
+
return (0, __WEBPACK_EXTERNAL_MODULE_tailwind_merge_e05e3e95__.twMerge)("date-input-group__input-container", local.class, local.className);
|
|
224
|
+
},
|
|
225
|
+
"data-slot": "date-input-group-input-container",
|
|
226
|
+
get ["data-theme"] () {
|
|
227
|
+
return local.dataTheme;
|
|
228
|
+
},
|
|
229
|
+
get style () {
|
|
230
|
+
return local.style;
|
|
231
|
+
}
|
|
232
|
+
}), false, true);
|
|
233
|
+
(0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.insert)(_el$4, ()=>local.children);
|
|
234
|
+
return _el$4;
|
|
235
|
+
})();
|
|
236
|
+
};
|
|
237
|
+
const TimeFieldSegment = (props)=>{
|
|
238
|
+
const [local, others] = (0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.splitProps)(props, [
|
|
239
|
+
"children",
|
|
240
|
+
"class",
|
|
241
|
+
"className",
|
|
242
|
+
"dataTheme",
|
|
243
|
+
"style",
|
|
244
|
+
"segment"
|
|
245
|
+
]);
|
|
246
|
+
return (()=>{
|
|
247
|
+
var _el$5 = _tmpl$3();
|
|
248
|
+
(0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.spread)(_el$5, (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.mergeProps)(others, {
|
|
249
|
+
get ["class"] () {
|
|
250
|
+
return (0, __WEBPACK_EXTERNAL_MODULE_tailwind_merge_e05e3e95__.twMerge)("date-input-group__segment", local.class, local.className);
|
|
251
|
+
},
|
|
252
|
+
"data-slot": "date-input-group-segment",
|
|
253
|
+
get ["data-type"] () {
|
|
254
|
+
return local.segment?.type;
|
|
255
|
+
},
|
|
256
|
+
get ["data-placeholder"] () {
|
|
257
|
+
return local.segment?.isPlaceholder ? "true" : void 0;
|
|
258
|
+
},
|
|
259
|
+
get ["data-invalid"] () {
|
|
260
|
+
return local.segment?.isInvalid ? "true" : void 0;
|
|
261
|
+
},
|
|
262
|
+
get ["data-focused"] () {
|
|
263
|
+
return local.segment?.isFocused ? "true" : void 0;
|
|
264
|
+
},
|
|
265
|
+
get ["data-disabled"] () {
|
|
266
|
+
return local.segment?.isDisabled ? "true" : void 0;
|
|
267
|
+
},
|
|
268
|
+
get ["data-theme"] () {
|
|
269
|
+
return local.dataTheme;
|
|
270
|
+
},
|
|
271
|
+
get style () {
|
|
272
|
+
return local.style;
|
|
273
|
+
}
|
|
274
|
+
}), false, true);
|
|
275
|
+
(0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.insert)(_el$5, ()=>local.children ?? local.segment?.text);
|
|
276
|
+
return _el$5;
|
|
277
|
+
})();
|
|
278
|
+
};
|
|
279
|
+
const TimeFieldPrefix = (props)=>{
|
|
280
|
+
const [local, others] = (0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.splitProps)(props, [
|
|
281
|
+
"children",
|
|
282
|
+
"class",
|
|
283
|
+
"className",
|
|
284
|
+
"dataTheme",
|
|
285
|
+
"style"
|
|
286
|
+
]);
|
|
287
|
+
return (()=>{
|
|
288
|
+
var _el$6 = _tmpl$();
|
|
289
|
+
(0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.spread)(_el$6, (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.mergeProps)(others, {
|
|
290
|
+
get ["class"] () {
|
|
291
|
+
return (0, __WEBPACK_EXTERNAL_MODULE_tailwind_merge_e05e3e95__.twMerge)("date-input-group__prefix", local.class, local.className);
|
|
292
|
+
},
|
|
293
|
+
"data-slot": "date-input-group-prefix",
|
|
294
|
+
get ["data-theme"] () {
|
|
295
|
+
return local.dataTheme;
|
|
296
|
+
},
|
|
297
|
+
get style () {
|
|
298
|
+
return local.style;
|
|
299
|
+
}
|
|
300
|
+
}), false, true);
|
|
301
|
+
(0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.insert)(_el$6, ()=>local.children);
|
|
302
|
+
return _el$6;
|
|
303
|
+
})();
|
|
304
|
+
};
|
|
305
|
+
const TimeFieldSuffix = (props)=>{
|
|
306
|
+
const [local, others] = (0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.splitProps)(props, [
|
|
307
|
+
"children",
|
|
308
|
+
"class",
|
|
309
|
+
"className",
|
|
310
|
+
"dataTheme",
|
|
311
|
+
"style"
|
|
312
|
+
]);
|
|
313
|
+
return (()=>{
|
|
314
|
+
var _el$7 = _tmpl$();
|
|
315
|
+
(0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.spread)(_el$7, (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.mergeProps)(others, {
|
|
316
|
+
get ["class"] () {
|
|
317
|
+
return (0, __WEBPACK_EXTERNAL_MODULE_tailwind_merge_e05e3e95__.twMerge)("date-input-group__suffix", local.class, local.className);
|
|
318
|
+
},
|
|
319
|
+
"data-slot": "date-input-group-suffix",
|
|
320
|
+
get ["data-theme"] () {
|
|
321
|
+
return local.dataTheme;
|
|
322
|
+
},
|
|
323
|
+
get style () {
|
|
324
|
+
return local.style;
|
|
325
|
+
}
|
|
326
|
+
}), false, true);
|
|
327
|
+
(0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.insert)(_el$7, ()=>local.children);
|
|
328
|
+
return _el$7;
|
|
329
|
+
})();
|
|
330
|
+
};
|
|
331
|
+
const TimeField = Object.assign(TimeFieldRoot, {
|
|
332
|
+
Root: TimeFieldRoot,
|
|
333
|
+
Group: TimeFieldGroup,
|
|
334
|
+
Input: TimeFieldInput,
|
|
335
|
+
InputContainer: TimeFieldInputContainer,
|
|
336
|
+
Segment: TimeFieldSegment,
|
|
337
|
+
Prefix: TimeFieldPrefix,
|
|
338
|
+
Suffix: TimeFieldSuffix
|
|
339
|
+
});
|
|
340
|
+
const time_field_TimeField = TimeField;
|
|
341
|
+
export { TimeField, TimeFieldGroup, TimeFieldInput, TimeFieldInputContainer, TimeFieldPrefix, TimeFieldRoot, TimeFieldSegment, TimeFieldSuffix, time_field_TimeField as default };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default, TimeField, TimeFieldRoot, TimeFieldGroup, TimeFieldInput, TimeFieldInputContainer, TimeFieldSegment, TimeFieldPrefix, TimeFieldSuffix, type TimeFieldProps, type TimeFieldRootProps, type TimeFieldGroupProps, type TimeFieldInputProps, type TimeFieldInputContainerProps, type TimeFieldSegmentProps, type TimeFieldPrefixProps, type TimeFieldSuffixProps, type TimeFieldVariant, type TimeFieldRenderProps, type TimeFieldSegmentValue, } from "./TimeField";
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import * as __WEBPACK_EXTERNAL_MODULE__TimeField_js_ff91d5fb__ from "./TimeField.js";
|
|
2
|
+
var __webpack_exports__TimeField = __WEBPACK_EXTERNAL_MODULE__TimeField_js_ff91d5fb__.TimeField;
|
|
3
|
+
var __webpack_exports__TimeFieldGroup = __WEBPACK_EXTERNAL_MODULE__TimeField_js_ff91d5fb__.TimeFieldGroup;
|
|
4
|
+
var __webpack_exports__TimeFieldInput = __WEBPACK_EXTERNAL_MODULE__TimeField_js_ff91d5fb__.TimeFieldInput;
|
|
5
|
+
var __webpack_exports__TimeFieldInputContainer = __WEBPACK_EXTERNAL_MODULE__TimeField_js_ff91d5fb__.TimeFieldInputContainer;
|
|
6
|
+
var __webpack_exports__TimeFieldPrefix = __WEBPACK_EXTERNAL_MODULE__TimeField_js_ff91d5fb__.TimeFieldPrefix;
|
|
7
|
+
var __webpack_exports__TimeFieldRoot = __WEBPACK_EXTERNAL_MODULE__TimeField_js_ff91d5fb__.TimeFieldRoot;
|
|
8
|
+
var __webpack_exports__TimeFieldSegment = __WEBPACK_EXTERNAL_MODULE__TimeField_js_ff91d5fb__.TimeFieldSegment;
|
|
9
|
+
var __webpack_exports__TimeFieldSuffix = __WEBPACK_EXTERNAL_MODULE__TimeField_js_ff91d5fb__.TimeFieldSuffix;
|
|
10
|
+
var __webpack_exports__default = __WEBPACK_EXTERNAL_MODULE__TimeField_js_ff91d5fb__["default"];
|
|
11
|
+
export { __webpack_exports__TimeField as TimeField, __webpack_exports__TimeFieldGroup as TimeFieldGroup, __webpack_exports__TimeFieldInput as TimeFieldInput, __webpack_exports__TimeFieldInputContainer as TimeFieldInputContainer, __webpack_exports__TimeFieldPrefix as TimeFieldPrefix, __webpack_exports__TimeFieldRoot as TimeFieldRoot, __webpack_exports__TimeFieldSegment as TimeFieldSegment, __webpack_exports__TimeFieldSuffix as TimeFieldSuffix, __webpack_exports__default as default };
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type { JSX } from "solid-js";
|
|
2
2
|
import type { ResponsiveProp } from "./types";
|
|
3
|
+
export { useDesktop } from "../hooks/layout";
|
|
3
4
|
export declare function wrapWithElementIfInvalid({ node, wrapper, className, }: {
|
|
4
5
|
node: JSX.Element | string | number | null | undefined;
|
|
5
6
|
wrapper?: keyof JSX.IntrinsicElements;
|
|
6
7
|
className?: string;
|
|
7
8
|
}): JSX.Element;
|
|
8
9
|
export declare function mapResponsiveProp<T extends string | boolean>(prop: ResponsiveProp<T> | undefined, classMap: Record<string, string>): string[];
|
|
9
|
-
export declare function useDesktop(breakpoint?: number): import("solid-js").Accessor<boolean>;
|
package/dist/components/utils.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__ from "solid-js/web";
|
|
2
|
-
import * as __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__ from "solid-js";
|
|
3
2
|
import * as __WEBPACK_EXTERNAL_MODULE__types_js_7eec16d2__ from "./types.js";
|
|
3
|
+
import * as __WEBPACK_EXTERNAL_MODULE__hooks_layout_index_js_ad74a5db__ from "../hooks/layout/index.js";
|
|
4
4
|
function isJSXElement(node) {
|
|
5
5
|
return "object" == typeof node && null !== node;
|
|
6
6
|
}
|
|
@@ -28,19 +28,5 @@ function mapResponsiveProp(prop, classMap) {
|
|
|
28
28
|
];
|
|
29
29
|
});
|
|
30
30
|
}
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
const checkIfDesktop = ()=>{
|
|
34
|
-
const width = window.innerWidth;
|
|
35
|
-
setIsDesktop(width >= breakpoint);
|
|
36
|
-
};
|
|
37
|
-
(0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.onMount)(()=>{
|
|
38
|
-
checkIfDesktop();
|
|
39
|
-
window.addEventListener("resize", checkIfDesktop);
|
|
40
|
-
});
|
|
41
|
-
(0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.onCleanup)(()=>{
|
|
42
|
-
window.removeEventListener("resize", checkIfDesktop);
|
|
43
|
-
});
|
|
44
|
-
return isDesktop;
|
|
45
|
-
}
|
|
46
|
-
export { mapResponsiveProp, useDesktop, wrapWithElementIfInvalid };
|
|
31
|
+
var __webpack_exports__useDesktop = __WEBPACK_EXTERNAL_MODULE__hooks_layout_index_js_ad74a5db__.useDesktop;
|
|
32
|
+
export { mapResponsiveProp, wrapWithElementIfInvalid, __webpack_exports__useDesktop as useDesktop };
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export { useForm, getFormControllerFromElement, type FormController, type FormDirective, type FormPathQuery, type UseFormOptions, } from "./useForm";
|
|
2
|
+
export { useFieldMeta, type FieldName, type UseFieldOptions, type UseFieldMetaResult, } from "./useFieldMeta";
|
|
3
|
+
export { useFieldError } from "./useFieldError";
|
|
4
|
+
export { useField, type UseFieldResult } from "./useField";
|
|
5
|
+
export { useFieldProps, type UseFieldPropsResult } from "./useFieldProps";
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import * as __WEBPACK_EXTERNAL_MODULE__useForm_js_e31b00cd__ from "./useForm.js";
|
|
2
|
+
import * as __WEBPACK_EXTERNAL_MODULE__useFieldMeta_js_65e8362d__ from "./useFieldMeta.js";
|
|
3
|
+
import * as __WEBPACK_EXTERNAL_MODULE__useFieldError_js_33478ad6__ from "./useFieldError.js";
|
|
4
|
+
import * as __WEBPACK_EXTERNAL_MODULE__useField_js_8e8be5a6__ from "./useField.js";
|
|
5
|
+
import * as __WEBPACK_EXTERNAL_MODULE__useFieldProps_js_5d2e9ac4__ from "./useFieldProps.js";
|
|
6
|
+
var __webpack_exports__getFormControllerFromElement = __WEBPACK_EXTERNAL_MODULE__useForm_js_e31b00cd__.getFormControllerFromElement;
|
|
7
|
+
var __webpack_exports__useField = __WEBPACK_EXTERNAL_MODULE__useField_js_8e8be5a6__.useField;
|
|
8
|
+
var __webpack_exports__useFieldError = __WEBPACK_EXTERNAL_MODULE__useFieldError_js_33478ad6__.useFieldError;
|
|
9
|
+
var __webpack_exports__useFieldMeta = __WEBPACK_EXTERNAL_MODULE__useFieldMeta_js_65e8362d__.useFieldMeta;
|
|
10
|
+
var __webpack_exports__useFieldProps = __WEBPACK_EXTERNAL_MODULE__useFieldProps_js_5d2e9ac4__.useFieldProps;
|
|
11
|
+
var __webpack_exports__useForm = __WEBPACK_EXTERNAL_MODULE__useForm_js_e31b00cd__.useForm;
|
|
12
|
+
export { __webpack_exports__getFormControllerFromElement as getFormControllerFromElement, __webpack_exports__useField as useField, __webpack_exports__useFieldError as useFieldError, __webpack_exports__useFieldMeta as useFieldMeta, __webpack_exports__useFieldProps as useFieldProps, __webpack_exports__useForm as useForm };
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { type Accessor } from "solid-js";
|
|
2
|
+
import { type FieldName, type UseFieldOptions } from "./useFieldMeta";
|
|
3
|
+
export type UseFieldResult = {
|
|
4
|
+
name: Accessor<string | undefined>;
|
|
5
|
+
value: Accessor<unknown>;
|
|
6
|
+
error: Accessor<string | undefined>;
|
|
7
|
+
touched: Accessor<boolean>;
|
|
8
|
+
invalid: Accessor<boolean>;
|
|
9
|
+
setValue: (value: unknown) => void;
|
|
10
|
+
};
|
|
11
|
+
export declare const useField: (name: FieldName, options?: UseFieldOptions) => UseFieldResult;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import * as __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__ from "solid-js";
|
|
2
|
+
import * as __WEBPACK_EXTERNAL_MODULE__useFieldMeta_js_65e8362d__ from "./useFieldMeta.js";
|
|
3
|
+
const useField = (name, options = {})=>{
|
|
4
|
+
const meta = (0, __WEBPACK_EXTERNAL_MODULE__useFieldMeta_js_65e8362d__.useFieldMeta)(name, options);
|
|
5
|
+
const setValue = (value)=>{
|
|
6
|
+
const form = meta.controller();
|
|
7
|
+
const fieldName = meta.name();
|
|
8
|
+
if (!form || !fieldName) return;
|
|
9
|
+
form.setFieldValue(fieldName, value);
|
|
10
|
+
};
|
|
11
|
+
return {
|
|
12
|
+
name: meta.name,
|
|
13
|
+
value: meta.value,
|
|
14
|
+
error: meta.error,
|
|
15
|
+
touched: meta.touched,
|
|
16
|
+
invalid: (0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.createMemo)(()=>meta.invalid()),
|
|
17
|
+
setValue
|
|
18
|
+
};
|
|
19
|
+
};
|
|
20
|
+
export { useField };
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { type Accessor } from "solid-js";
|
|
2
|
+
import { type FormController } from "./useForm";
|
|
3
|
+
type AnyFormController = FormController<Record<string, unknown>>;
|
|
4
|
+
export type FieldName = string | Accessor<string | undefined>;
|
|
5
|
+
export type UseFieldOptions = {
|
|
6
|
+
form?: AnyFormController | Accessor<AnyFormController | undefined>;
|
|
7
|
+
element?: Accessor<Element | undefined>;
|
|
8
|
+
showWhenTouched?: boolean;
|
|
9
|
+
};
|
|
10
|
+
export type UseFieldMetaResult = {
|
|
11
|
+
controller: Accessor<AnyFormController | undefined>;
|
|
12
|
+
name: Accessor<string | undefined>;
|
|
13
|
+
value: Accessor<unknown>;
|
|
14
|
+
rawError: Accessor<string | undefined>;
|
|
15
|
+
error: Accessor<string | undefined>;
|
|
16
|
+
touched: Accessor<boolean>;
|
|
17
|
+
invalid: Accessor<boolean>;
|
|
18
|
+
};
|
|
19
|
+
export declare const useFieldMeta: (name: FieldName, options?: UseFieldOptions) => UseFieldMetaResult;
|
|
20
|
+
export {};
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import * as __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__ from "solid-js";
|
|
2
|
+
import * as __WEBPACK_EXTERNAL_MODULE__useForm_js_e31b00cd__ from "./useForm.js";
|
|
3
|
+
import * as __WEBPACK_EXTERNAL_MODULE__utils_js_d88b7fe1__ from "./utils.js";
|
|
4
|
+
const isFormController = (value)=>{
|
|
5
|
+
if ("function" != typeof value) return false;
|
|
6
|
+
const candidate = value;
|
|
7
|
+
return "function" == typeof candidate.errors && "function" == typeof candidate.touched && "function" == typeof candidate.data && "function" == typeof candidate.setFieldValue;
|
|
8
|
+
};
|
|
9
|
+
const resolveFieldName = (name)=>{
|
|
10
|
+
if ("function" == typeof name) return name;
|
|
11
|
+
return ()=>name;
|
|
12
|
+
};
|
|
13
|
+
const readFieldState = (form, name, reader)=>{
|
|
14
|
+
if (!form || !name) return;
|
|
15
|
+
return reader(name);
|
|
16
|
+
};
|
|
17
|
+
const useFieldMeta = (name, options = {})=>{
|
|
18
|
+
const nameAccessor = resolveFieldName(name);
|
|
19
|
+
const showWhenTouched = options.showWhenTouched ?? true;
|
|
20
|
+
const controller = (0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.createMemo)(()=>{
|
|
21
|
+
if (options.form) {
|
|
22
|
+
if (isFormController(options.form)) return options.form;
|
|
23
|
+
return options.form();
|
|
24
|
+
}
|
|
25
|
+
const currentElement = options.element?.();
|
|
26
|
+
if (!currentElement) return;
|
|
27
|
+
return (0, __WEBPACK_EXTERNAL_MODULE__useForm_js_e31b00cd__.getFormControllerFromElement)(currentElement);
|
|
28
|
+
});
|
|
29
|
+
const value = (0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.createMemo)(()=>readFieldState(controller(), nameAccessor(), (path)=>controller()?.data(path)));
|
|
30
|
+
const touched = (0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.createMemo)(()=>Boolean(readFieldState(controller(), nameAccessor(), (path)=>controller()?.touched(path))));
|
|
31
|
+
const rawError = (0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.createMemo)(()=>(0, __WEBPACK_EXTERNAL_MODULE__utils_js_d88b7fe1__.normalizeFieldError)(readFieldState(controller(), nameAccessor(), (path)=>controller()?.errors(path))));
|
|
32
|
+
const error = (0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.createMemo)(()=>{
|
|
33
|
+
const message = rawError();
|
|
34
|
+
if (!message) return;
|
|
35
|
+
if (!showWhenTouched) return message;
|
|
36
|
+
return touched() ? message : void 0;
|
|
37
|
+
});
|
|
38
|
+
const invalid = (0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.createMemo)(()=>Boolean(error()));
|
|
39
|
+
return {
|
|
40
|
+
controller,
|
|
41
|
+
name: nameAccessor,
|
|
42
|
+
value,
|
|
43
|
+
rawError,
|
|
44
|
+
error,
|
|
45
|
+
touched,
|
|
46
|
+
invalid
|
|
47
|
+
};
|
|
48
|
+
};
|
|
49
|
+
export { useFieldMeta };
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { JSX } from "solid-js";
|
|
2
|
+
import { type FieldName, type UseFieldOptions } from "./useFieldMeta";
|
|
3
|
+
export type UseFieldPropsResult = {
|
|
4
|
+
name: () => string | undefined;
|
|
5
|
+
value: () => unknown;
|
|
6
|
+
onInput: JSX.EventHandlerUnion<HTMLInputElement | HTMLTextAreaElement | HTMLSelectElement, InputEvent>;
|
|
7
|
+
onChange: (valueOrEvent: unknown) => void;
|
|
8
|
+
onBlur: JSX.EventHandlerUnion<HTMLInputElement | HTMLTextAreaElement | HTMLSelectElement, FocusEvent>;
|
|
9
|
+
};
|
|
10
|
+
export declare const useFieldProps: (name: FieldName, options?: UseFieldOptions) => UseFieldPropsResult;
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import * as __WEBPACK_EXTERNAL_MODULE__useFieldMeta_js_65e8362d__ from "./useFieldMeta.js";
|
|
2
|
+
const isEventLike = (value)=>value instanceof Event;
|
|
3
|
+
const getValueFromInputLikeEvent = (event)=>{
|
|
4
|
+
const currentTarget = event.currentTarget;
|
|
5
|
+
const target = event.target;
|
|
6
|
+
const element = currentTarget instanceof Element ? currentTarget : target instanceof Element ? target : void 0;
|
|
7
|
+
if (!element) return;
|
|
8
|
+
if (element instanceof HTMLInputElement) {
|
|
9
|
+
if ("checkbox" === element.type || "radio" === element.type) return element.checked;
|
|
10
|
+
return element.value;
|
|
11
|
+
}
|
|
12
|
+
if (element instanceof HTMLTextAreaElement || element instanceof HTMLSelectElement) return element.value;
|
|
13
|
+
};
|
|
14
|
+
const useFieldProps = (name, options = {})=>{
|
|
15
|
+
const meta = (0, __WEBPACK_EXTERNAL_MODULE__useFieldMeta_js_65e8362d__.useFieldMeta)(name, options);
|
|
16
|
+
const setValue = (nextValue)=>{
|
|
17
|
+
const form = meta.controller();
|
|
18
|
+
const fieldName = meta.name();
|
|
19
|
+
if (!form || !fieldName) return;
|
|
20
|
+
form.setFieldValue(fieldName, nextValue);
|
|
21
|
+
};
|
|
22
|
+
const markTouched = ()=>{
|
|
23
|
+
const form = meta.controller();
|
|
24
|
+
const fieldName = meta.name();
|
|
25
|
+
if (!form || !fieldName) return;
|
|
26
|
+
form.setTouched(fieldName, true);
|
|
27
|
+
};
|
|
28
|
+
const onInput = (event)=>{
|
|
29
|
+
const nextValue = getValueFromInputLikeEvent(event) ?? event.currentTarget.value;
|
|
30
|
+
setValue(nextValue);
|
|
31
|
+
};
|
|
32
|
+
const onChange = (valueOrEvent)=>{
|
|
33
|
+
if (isEventLike(valueOrEvent)) {
|
|
34
|
+
const extractedValue = getValueFromInputLikeEvent(valueOrEvent);
|
|
35
|
+
setValue(extractedValue);
|
|
36
|
+
return;
|
|
37
|
+
}
|
|
38
|
+
setValue(valueOrEvent);
|
|
39
|
+
};
|
|
40
|
+
const onBlur = ()=>{
|
|
41
|
+
markTouched();
|
|
42
|
+
};
|
|
43
|
+
return {
|
|
44
|
+
name: meta.name,
|
|
45
|
+
value: meta.value,
|
|
46
|
+
onInput,
|
|
47
|
+
onChange,
|
|
48
|
+
onBlur
|
|
49
|
+
};
|
|
50
|
+
};
|
|
51
|
+
export { useFieldProps };
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { ObjectSetter, Paths } from "@felte/common";
|
|
2
|
+
import type { Accessor } from "solid-js";
|
|
3
|
+
import type { z } from "zod";
|
|
4
|
+
type AnyValues = Record<string, unknown>;
|
|
5
|
+
export type FormPathQuery<TValues extends AnyValues = AnyValues> = string | ((data: TValues) => unknown);
|
|
6
|
+
export type FormDirective = (element: HTMLFormElement, accessor?: Accessor<unknown>) => void | (() => void);
|
|
7
|
+
export type UseFormOptions<TValues extends AnyValues = AnyValues> = {
|
|
8
|
+
schema?: z.ZodType<TValues>;
|
|
9
|
+
initialValues?: TValues;
|
|
10
|
+
onSubmit?: (values: TValues) => void | Promise<void>;
|
|
11
|
+
};
|
|
12
|
+
export type FormController<TValues extends AnyValues = AnyValues> = FormDirective & {
|
|
13
|
+
errors: (path?: FormPathQuery<TValues>) => unknown;
|
|
14
|
+
touched: (path?: FormPathQuery<TValues>) => unknown;
|
|
15
|
+
data: (path?: FormPathQuery<TValues>) => unknown;
|
|
16
|
+
isValid: () => boolean;
|
|
17
|
+
isSubmitting: () => boolean;
|
|
18
|
+
setData: ObjectSetter<TValues, Paths<TValues>>;
|
|
19
|
+
setErrors: (...args: unknown[]) => unknown;
|
|
20
|
+
setWarnings: (...args: unknown[]) => unknown;
|
|
21
|
+
setTouched: (...args: unknown[]) => unknown;
|
|
22
|
+
reset: () => void;
|
|
23
|
+
setFieldValue: (name: string, value: unknown) => void;
|
|
24
|
+
};
|
|
25
|
+
export declare const getFormControllerFromElement: (element?: Element | null) => FormController<AnyValues> | undefined;
|
|
26
|
+
export declare const useForm: <TValues extends AnyValues = AnyValues>(options?: UseFormOptions<TValues>) => FormController<TValues>;
|
|
27
|
+
export {};
|