@scaleflex/ui-tw 0.0.36 → 0.0.38
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/date-picker/date-picker.component.d.ts +1 -1
- package/date-picker/date-picker.component.js +6 -4
- package/date-picker/date-picker.types.d.ts +1 -0
- package/date-picker/date-picker.utils.d.ts +1 -1
- package/date-picker/date-picker.utils.js +1 -0
- package/dialog/dialog.component.js +5 -5
- package/form/components/form-date-picker-field.component.d.ts +5 -0
- package/form/components/form-date-picker-field.component.js +43 -0
- package/form/form.types.d.ts +11 -0
- package/form/index.d.ts +1 -0
- package/form/index.js +2 -1
- package/package.json +2 -2
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { DatePickerProps } from './date-picker.types';
|
|
3
|
-
declare function DatePicker({ minDate, maxDate,
|
|
3
|
+
declare function DatePicker({ minDate, maxDate, readOnly, defaultDate, size, invalidDateText, disabled, onChange, ...rest }: DatePickerProps): React.JSX.Element;
|
|
4
4
|
export { DatePicker };
|
|
@@ -2,7 +2,7 @@ import _extends from "@babel/runtime/helpers/extends";
|
|
|
2
2
|
import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
|
|
3
3
|
import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
|
|
4
4
|
import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
|
|
5
|
-
var _excluded = ["minDate", "maxDate", "
|
|
5
|
+
var _excluded = ["minDate", "maxDate", "readOnly", "defaultDate", "size", "invalidDateText", "disabled", "onChange"];
|
|
6
6
|
import { Button } from '@scaleflex/ui-tw/button';
|
|
7
7
|
import { Calendar } from '@scaleflex/ui-tw/calendar';
|
|
8
8
|
import { Input } from '@scaleflex/ui-tw/input';
|
|
@@ -19,13 +19,14 @@ import { parseDateString, toHtmlDateString } from './date-picker.utils';
|
|
|
19
19
|
function DatePicker(_ref) {
|
|
20
20
|
var minDate = _ref.minDate,
|
|
21
21
|
maxDate = _ref.maxDate,
|
|
22
|
-
_ref$defaultDate = _ref.defaultDate,
|
|
23
|
-
defaultDate = _ref$defaultDate === void 0 ? new Date() : _ref$defaultDate,
|
|
24
22
|
readOnly = _ref.readOnly,
|
|
23
|
+
_ref$defaultDate = _ref.defaultDate,
|
|
24
|
+
defaultDate = _ref$defaultDate === void 0 ? undefined : _ref$defaultDate,
|
|
25
25
|
_ref$size = _ref.size,
|
|
26
26
|
size = _ref$size === void 0 ? FormSize.Md : _ref$size,
|
|
27
27
|
invalidDateText = _ref.invalidDateText,
|
|
28
28
|
disabled = _ref.disabled,
|
|
29
|
+
onChange = _ref.onChange,
|
|
29
30
|
rest = _objectWithoutProperties(_ref, _excluded);
|
|
30
31
|
var _useState = useState(false),
|
|
31
32
|
_useState2 = _slicedToArray(_useState, 2),
|
|
@@ -43,7 +44,7 @@ function DatePicker(_ref) {
|
|
|
43
44
|
_useState8 = _slicedToArray(_useState7, 2),
|
|
44
45
|
calendarMonth = _useState8[0],
|
|
45
46
|
setCalendarMonth = _useState8[1];
|
|
46
|
-
var parsedDate = parseDateString(inputValue);
|
|
47
|
+
var parsedDate = inputValue && parseDateString(inputValue);
|
|
47
48
|
var isInputValid = !inputValue || !!parsedDate;
|
|
48
49
|
var handleInputChange = function handleInputChange(e) {
|
|
49
50
|
var value = e.target.value;
|
|
@@ -60,6 +61,7 @@ function DatePicker(_ref) {
|
|
|
60
61
|
setInputValue(toHtmlDateString(date));
|
|
61
62
|
setCalendarMonth(date);
|
|
62
63
|
setOpen(false);
|
|
64
|
+
onChange === null || onChange === void 0 || onChange(date);
|
|
63
65
|
}
|
|
64
66
|
};
|
|
65
67
|
return /*#__PURE__*/React.createElement("div", {
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare function toHtmlDateString(date: Date): string;
|
|
1
|
+
export declare function toHtmlDateString(date: Date | undefined): string | undefined;
|
|
2
2
|
export declare function parseDateString(value: string): Date | undefined;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
|
|
2
2
|
export function toHtmlDateString(date) {
|
|
3
|
+
if (!date) return undefined;
|
|
3
4
|
var day = String(date.getDate()).padStart(2, '0');
|
|
4
5
|
var month = String(date.getMonth() + 1).padStart(2, '0');
|
|
5
6
|
var year = date.getFullYear();
|
|
@@ -62,7 +62,7 @@ function DialogWideContent(_ref6) {
|
|
|
62
62
|
"data-slot": "dialog-portal"
|
|
63
63
|
}, /*#__PURE__*/React.createElement(DialogOverlay, null), /*#__PURE__*/React.createElement(DialogPrimitive.Content, _extends({
|
|
64
64
|
"data-slot": "dialog-content",
|
|
65
|
-
className: cn('bg-background border-border fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border shadow-lg duration-200 lg:max-w-[62rem] xl:max-w-5xl', 'data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95', 'data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95', className)
|
|
65
|
+
className: cn('bg-background text-foreground border-border fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border shadow-lg duration-200 lg:max-w-[62rem] xl:max-w-5xl', 'data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95', 'data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95', className)
|
|
66
66
|
}, props), children, /*#__PURE__*/React.createElement(DialogPrimitive.Close, {
|
|
67
67
|
"data-state": "open",
|
|
68
68
|
className: cn('text-muted-foreground absolute top-3 right-3 cursor-pointer rounded-xs opacity-70 transition-opacity hover:opacity-100 disabled:pointer-events-none', "[&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-6", focusRingClassNames)
|
|
@@ -81,7 +81,7 @@ function DialogFormContent(_ref7) {
|
|
|
81
81
|
"data-slot": "dialog-portal"
|
|
82
82
|
}, /*#__PURE__*/React.createElement(DialogOverlay, null), /*#__PURE__*/React.createElement(DialogPrimitive.Content, _extends({
|
|
83
83
|
"data-slot": "dialog-content",
|
|
84
|
-
className: cn('bg-background border-border fixed top-[50%] left-[50%] z-50 grid w-full max-w-md translate-x-[-50%] translate-y-[-50%] rounded-lg border shadow-lg duration-200', 'data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95', 'data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95', className)
|
|
84
|
+
className: cn('bg-background text-foreground border-border fixed top-[50%] left-[50%] z-50 grid w-full max-w-md translate-x-[-50%] translate-y-[-50%] rounded-lg border shadow-lg duration-200', 'data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95', 'data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95', className)
|
|
85
85
|
}, props), children, /*#__PURE__*/React.createElement(DialogPrimitive.Close, {
|
|
86
86
|
"data-state": "open",
|
|
87
87
|
className: cn('text-muted-foreground absolute top-3 right-3 cursor-pointer rounded-xs opacity-70 transition-opacity hover:opacity-100 disabled:pointer-events-none', "[&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-6", focusRingClassNames)
|
|
@@ -97,7 +97,7 @@ function DialogWideHeader(_ref8) {
|
|
|
97
97
|
props = _objectWithoutProperties(_ref8, _excluded4);
|
|
98
98
|
return /*#__PURE__*/React.createElement("div", _extends({
|
|
99
99
|
"data-slot": "dialog-header",
|
|
100
|
-
className: cn('border-border flex h-16 items-center justify-center border-b', className)
|
|
100
|
+
className: cn('border-border text-foreground flex h-16 items-center justify-center border-b', className)
|
|
101
101
|
}, props));
|
|
102
102
|
}
|
|
103
103
|
function DialogFormHeader(_ref9) {
|
|
@@ -105,7 +105,7 @@ function DialogFormHeader(_ref9) {
|
|
|
105
105
|
props = _objectWithoutProperties(_ref9, _excluded5);
|
|
106
106
|
return /*#__PURE__*/React.createElement("div", _extends({
|
|
107
107
|
"data-slot": "dialog-header",
|
|
108
|
-
className: cn('flex flex-col items-center justify-center p-6 pt-8 text-center', className)
|
|
108
|
+
className: cn('text-foreground flex flex-col items-center justify-center p-6 pt-8 text-center', className)
|
|
109
109
|
}, props));
|
|
110
110
|
}
|
|
111
111
|
function DialogWideBody(_ref10) {
|
|
@@ -137,7 +137,7 @@ function DialogFormTitle(_ref13) {
|
|
|
137
137
|
props = _objectWithoutProperties(_ref13, _excluded9);
|
|
138
138
|
return /*#__PURE__*/React.createElement(DialogPrimitive.Title, _extends({
|
|
139
139
|
"data-slot": "dialog-title",
|
|
140
|
-
className: cn('text-lg leading-7 font-medium', className)
|
|
140
|
+
className: cn('text-foreground text-lg leading-7 font-medium', className)
|
|
141
141
|
}, props));
|
|
142
142
|
}
|
|
143
143
|
function DialogFormDescription(_ref14) {
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { FieldValues, Path } from 'react-hook-form';
|
|
3
|
+
import type { FormDatePickerFieldProps } from '../form.types';
|
|
4
|
+
declare function FormDatePickerField<TFieldValues extends FieldValues, TName extends Path<TFieldValues>>({ datePickerProps, ...rest }: FormDatePickerFieldProps<TFieldValues, TName>): React.JSX.Element;
|
|
5
|
+
export { FormDatePickerField };
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
|
|
2
|
+
import _extends from "@babel/runtime/helpers/extends";
|
|
3
|
+
var _excluded = ["datePickerProps"];
|
|
4
|
+
import { DatePicker } from '@scaleflex/ui-tw/date-picker';
|
|
5
|
+
import { useFormField } from '@scaleflex/ui-tw/form';
|
|
6
|
+
import { FormFieldGroup } from '@scaleflex/ui-tw/form';
|
|
7
|
+
import React from 'react';
|
|
8
|
+
function FormDatePickerInner(_ref) {
|
|
9
|
+
var field = _ref.field,
|
|
10
|
+
args = _ref.args,
|
|
11
|
+
datePickerProps = _ref.datePickerProps,
|
|
12
|
+
readOnly = _ref.readOnly,
|
|
13
|
+
disabled = _ref.disabled;
|
|
14
|
+
var _useFormField = useFormField(),
|
|
15
|
+
error = _useFormField.error;
|
|
16
|
+
return /*#__PURE__*/React.createElement(DatePicker, _extends({
|
|
17
|
+
defaultDate: field.value,
|
|
18
|
+
readOnly: readOnly,
|
|
19
|
+
disabled: disabled,
|
|
20
|
+
size: args === null || args === void 0 ? void 0 : args.size,
|
|
21
|
+
onChange: function onChange(date) {
|
|
22
|
+
return field.onChange(date);
|
|
23
|
+
},
|
|
24
|
+
invalidDateText: error === null || error === void 0 ? void 0 : error.message,
|
|
25
|
+
"aria-invalid": !!error
|
|
26
|
+
}, datePickerProps));
|
|
27
|
+
}
|
|
28
|
+
function FormDatePickerField(_ref2) {
|
|
29
|
+
var datePickerProps = _ref2.datePickerProps,
|
|
30
|
+
rest = _objectWithoutProperties(_ref2, _excluded);
|
|
31
|
+
var readOnly = rest.readOnly,
|
|
32
|
+
disabled = rest.disabled;
|
|
33
|
+
return /*#__PURE__*/React.createElement(FormFieldGroup, rest, function (field, args) {
|
|
34
|
+
return /*#__PURE__*/React.createElement(FormDatePickerInner, {
|
|
35
|
+
field: field,
|
|
36
|
+
args: args,
|
|
37
|
+
datePickerProps: datePickerProps,
|
|
38
|
+
readOnly: readOnly,
|
|
39
|
+
disabled: disabled
|
|
40
|
+
});
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
export { FormDatePickerField };
|
package/form/form.types.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { CheckboxProps } from '@scaleflex/ui-tw/checkbox/checkbox.types';
|
|
2
2
|
import type { ComboboxMultiInlineProps, ComboboxMultiTagProps, ComboboxSingleProps } from '@scaleflex/ui-tw/combobox/combobox.types';
|
|
3
|
+
import type { DatePickerProps } from '@scaleflex/ui-tw/date-picker/date-picker.types';
|
|
3
4
|
import type { InputProps } from '@scaleflex/ui-tw/input';
|
|
4
5
|
import type { RadioGroupItemProps } from '@scaleflex/ui-tw/radio-group/radio-group.types';
|
|
5
6
|
import type { SelectProps } from '@scaleflex/ui-tw/select/select.types';
|
|
@@ -116,4 +117,14 @@ export interface FormCheckboxGroupFieldProps<TFieldValues extends FieldValues> e
|
|
|
116
117
|
export interface FormRadioGroupFieldProps<TFieldValues extends FieldValues> extends BaseFormGroupFieldProps<TFieldValues> {
|
|
117
118
|
options: RadioOption[];
|
|
118
119
|
}
|
|
120
|
+
export type FormDatePickerFieldProps<TFieldValues extends FieldValues, TName extends Path<TFieldValues>> = Omit<FormFieldGroupProps<TFieldValues, TName>, 'children'> & {
|
|
121
|
+
datePickerProps?: Partial<DatePickerProps>;
|
|
122
|
+
};
|
|
123
|
+
export interface FormDatePickerInnerProps<TFieldValues extends FieldValues, TName extends Path<TFieldValues>> {
|
|
124
|
+
field: ControllerRenderProps<TFieldValues, TName>;
|
|
125
|
+
args: FormFieldArgs | undefined;
|
|
126
|
+
datePickerProps?: Partial<DatePickerProps>;
|
|
127
|
+
readOnly?: boolean;
|
|
128
|
+
disabled?: boolean;
|
|
129
|
+
}
|
|
119
130
|
export {};
|
package/form/index.d.ts
CHANGED
|
@@ -11,3 +11,4 @@ export { FormComboboxField } from './components/form-combobox-field.component';
|
|
|
11
11
|
export { FormCheckboxField } from './components/form-checkbox-field.component';
|
|
12
12
|
export { FormCheckboxGroupField } from './components/form-checkbox-group-field.component';
|
|
13
13
|
export { FormRadioGroupField } from './components/form-radio-group-field.component';
|
|
14
|
+
export { FormDatePickerField } from './components/form-date-picker-field.component';
|
package/form/index.js
CHANGED
|
@@ -9,4 +9,5 @@ export { FormSelectField } from './components/form-select-field.component';
|
|
|
9
9
|
export { FormComboboxField } from './components/form-combobox-field.component';
|
|
10
10
|
export { FormCheckboxField } from './components/form-checkbox-field.component';
|
|
11
11
|
export { FormCheckboxGroupField } from './components/form-checkbox-group-field.component';
|
|
12
|
-
export { FormRadioGroupField } from './components/form-radio-group-field.component';
|
|
12
|
+
export { FormRadioGroupField } from './components/form-radio-group-field.component';
|
|
13
|
+
export { FormDatePickerField } from './components/form-date-picker-field.component';
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@scaleflex/ui-tw",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.38",
|
|
4
4
|
"author": "scaleflex",
|
|
5
5
|
"repository": "github:scaleflex/ui",
|
|
6
6
|
"homepage": "https://github.com/scaleflex/ui/blob/master/README.md",
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
"@radix-ui/react-slot": "^1.1.2",
|
|
23
23
|
"@radix-ui/react-switch": "^1.0.1",
|
|
24
24
|
"@radix-ui/react-tooltip": "^1.2.6",
|
|
25
|
-
"@scaleflex/icons-tw": "^0.0.
|
|
25
|
+
"@scaleflex/icons-tw": "^0.0.38",
|
|
26
26
|
"@types/lodash.merge": "^4.6.9",
|
|
27
27
|
"class-variance-authority": "^0.7.1",
|
|
28
28
|
"cmdk": "^1.1.1",
|