@scaleflex/ui-tw 0.0.30 → 0.0.32
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/combobox/combobox-multi-inline/combobox-multi-inline.component.d.ts +1 -1
- package/combobox/combobox-multi-inline/combobox-multi-inline.component.js +6 -2
- package/combobox/combobox-multi-tag/combobox-multi-tag.component.js +1 -1
- package/combobox/combobox-single/combobox-single.component.d.ts +1 -1
- package/combobox/combobox-single/combobox-single.component.js +4 -2
- package/combobox/combobox.component.d.ts +1 -1
- package/combobox/combobox.component.js +3 -1
- package/combobox/combobox.types.d.ts +2 -0
- package/form/components/form-combobox-field.component.d.ts +5 -0
- package/form/components/form-combobox-field.component.js +49 -0
- package/form/form.types.d.ts +7 -0
- package/form/index.d.ts +1 -0
- package/form/index.js +2 -1
- package/package.json +2 -2
- package/form/components/form-combobox-single-field.component.d.ts +0 -5
- package/form/components/form-combobox-single-field.component.js +0 -57
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { ComboboxMultiInlineProps } from '../combobox.types';
|
|
3
|
-
export declare function ComboboxMultiInline({ options, value, onChange, placeholder, className, disabled, size, readOnly, showClear, popoverClassName, }: ComboboxMultiInlineProps): React.JSX.Element;
|
|
3
|
+
export declare function ComboboxMultiInline({ options, value, onChange, placeholder, className, disabled, size, readOnly, showClear, popoverClassName, ...rest }: ComboboxMultiInlineProps): React.JSX.Element;
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
|
|
2
2
|
import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
|
|
3
|
+
import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
|
|
4
|
+
var _excluded = ["options", "value", "onChange", "placeholder", "className", "disabled", "size", "readOnly", "showClear", "popoverClassName"];
|
|
3
5
|
import { Popover } from '@scaleflex/ui-tw/popover';
|
|
4
6
|
import { FormSize } from '@scaleflex/ui-tw/types/form-size';
|
|
5
7
|
import React from 'react';
|
|
@@ -21,7 +23,8 @@ export function ComboboxMultiInline(_ref) {
|
|
|
21
23
|
readOnly = _ref$readOnly === void 0 ? false : _ref$readOnly,
|
|
22
24
|
_ref$showClear = _ref.showClear,
|
|
23
25
|
showClear = _ref$showClear === void 0 ? true : _ref$showClear,
|
|
24
|
-
popoverClassName = _ref.popoverClassName
|
|
26
|
+
popoverClassName = _ref.popoverClassName,
|
|
27
|
+
rest = _objectWithoutProperties(_ref, _excluded);
|
|
25
28
|
var _useState = useState(false),
|
|
26
29
|
_useState2 = _slicedToArray(_useState, 2),
|
|
27
30
|
open = _useState2[0],
|
|
@@ -56,7 +59,8 @@ export function ComboboxMultiInline(_ref) {
|
|
|
56
59
|
selected: selectedLabels.length > 0,
|
|
57
60
|
onClearAll: function onClearAll() {
|
|
58
61
|
return onChange([]);
|
|
59
|
-
}
|
|
62
|
+
},
|
|
63
|
+
"aria-invalid": rest['aria-invalid']
|
|
60
64
|
}, displayValue), /*#__PURE__*/React.createElement(ComboboxContent, {
|
|
61
65
|
className: popoverClassName,
|
|
62
66
|
options: options,
|
|
@@ -66,7 +66,7 @@ export function ComboboxMultiTag(_ref) {
|
|
|
66
66
|
}, /*#__PURE__*/React.createElement("button", {
|
|
67
67
|
role: "combobox",
|
|
68
68
|
"aria-expanded": open,
|
|
69
|
-
"
|
|
69
|
+
"aria-invalid": rest['aria-invalid'],
|
|
70
70
|
className: cn.apply(void 0, ['flex w-full', isSelected ? 'flex-col' : 'items-center'].concat(_toConsumableArray(getBaseInputClasses()), [readOnly && readOnlyClassNames, selectionHighlightClassNames, focusRingClassNames, !isSelected && textareaVariants({
|
|
71
71
|
size: size
|
|
72
72
|
}), !isSelected && comboboxMultiTagsDefaultSizeOptions[size], className])),
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { ComboboxSingleProps } from '../combobox.types';
|
|
3
|
-
export declare function ComboboxSingle({ options, value, onChange, placeholder, className, disabled, popoverClassName, size, readOnly, showClear, ...rest }: ComboboxSingleProps): React.JSX.Element;
|
|
3
|
+
export declare function ComboboxSingle({ options, value, onChange, placeholder, className, disabled, popoverClassName, size, readOnly, showClear, formItemId, ...rest }: ComboboxSingleProps): React.JSX.Element;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
|
|
2
2
|
import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
|
|
3
|
-
var _excluded = ["options", "value", "onChange", "placeholder", "className", "disabled", "popoverClassName", "size", "readOnly", "showClear"];
|
|
3
|
+
var _excluded = ["options", "value", "onChange", "placeholder", "className", "disabled", "popoverClassName", "size", "readOnly", "showClear", "formItemId"];
|
|
4
4
|
import { Popover } from '@scaleflex/ui-tw/popover';
|
|
5
5
|
import { FormSize } from '@scaleflex/ui-tw/types/form-size';
|
|
6
6
|
import * as React from 'react';
|
|
@@ -25,6 +25,7 @@ export function ComboboxSingle(_ref) {
|
|
|
25
25
|
readOnly = _ref$readOnly === void 0 ? false : _ref$readOnly,
|
|
26
26
|
_ref$showClear = _ref.showClear,
|
|
27
27
|
showClear = _ref$showClear === void 0 ? true : _ref$showClear,
|
|
28
|
+
formItemId = _ref.formItemId,
|
|
28
29
|
rest = _objectWithoutProperties(_ref, _excluded);
|
|
29
30
|
var _useState = useState(false),
|
|
30
31
|
_useState2 = _slicedToArray(_useState, 2),
|
|
@@ -47,7 +48,8 @@ export function ComboboxSingle(_ref) {
|
|
|
47
48
|
},
|
|
48
49
|
selected: !!selectedLabel,
|
|
49
50
|
showClear: showClear,
|
|
50
|
-
"aria-invalid": rest['aria-invalid']
|
|
51
|
+
"aria-invalid": rest['aria-invalid'],
|
|
52
|
+
formItemId: formItemId
|
|
51
53
|
}, selectedLabel || placeholder), /*#__PURE__*/React.createElement(ComboboxContent, {
|
|
52
54
|
className: popoverClassName,
|
|
53
55
|
options: options,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { ComboboxContentProps, ComboboxTriggerProps } from './combobox.types';
|
|
3
|
-
export declare function ComboboxTrigger({ children, open, disabled, readOnly, size, className, selected, showClear, onClearAll, ...rest }: ComboboxTriggerProps): React.JSX.Element;
|
|
3
|
+
export declare function ComboboxTrigger({ children, open, disabled, readOnly, size, className, selected, showClear, onClearAll, formItemId, ...rest }: ComboboxTriggerProps): React.JSX.Element;
|
|
4
4
|
export declare function ComboboxContent({ options, value: selectedValue, onSelect, size, multiple, className, }: ComboboxContentProps): React.JSX.Element;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
|
|
2
2
|
import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
|
|
3
|
-
var _excluded = ["children", "open", "disabled", "readOnly", "size", "className", "selected", "showClear", "onClearAll"];
|
|
3
|
+
var _excluded = ["children", "open", "disabled", "readOnly", "size", "className", "selected", "showClear", "onClearAll", "formItemId"];
|
|
4
4
|
import { buttonVariants } from '@scaleflex/ui-tw/button';
|
|
5
5
|
import { ButtonVariant, buttonBaseClassNames } from '@scaleflex/ui-tw/button/button.constants';
|
|
6
6
|
import { Command, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList } from '@scaleflex/ui-tw/command';
|
|
@@ -32,6 +32,7 @@ export function ComboboxTrigger(_ref) {
|
|
|
32
32
|
_ref$showClear = _ref.showClear,
|
|
33
33
|
showClear = _ref$showClear === void 0 ? false : _ref$showClear,
|
|
34
34
|
onClearAll = _ref.onClearAll,
|
|
35
|
+
formItemId = _ref.formItemId,
|
|
35
36
|
rest = _objectWithoutProperties(_ref, _excluded);
|
|
36
37
|
var _getToolbarSizes = getToolbarSizes(size),
|
|
37
38
|
iconSize = _getToolbarSizes.iconSize;
|
|
@@ -41,6 +42,7 @@ export function ComboboxTrigger(_ref) {
|
|
|
41
42
|
return /*#__PURE__*/React.createElement(PopoverTrigger, {
|
|
42
43
|
asChild: true
|
|
43
44
|
}, /*#__PURE__*/React.createElement("button", {
|
|
45
|
+
id: formItemId,
|
|
44
46
|
role: "combobox",
|
|
45
47
|
"aria-expanded": open,
|
|
46
48
|
"aria-invalid": rest['aria-invalid'],
|
|
@@ -6,6 +6,7 @@ export type ClearEvent = MouseEvent | KeyboardEvent;
|
|
|
6
6
|
export type ComboboxTriggerProps = {
|
|
7
7
|
children: ReactNode;
|
|
8
8
|
open: boolean;
|
|
9
|
+
formItemId?: string;
|
|
9
10
|
disabled?: boolean;
|
|
10
11
|
readOnly?: boolean;
|
|
11
12
|
size?: FormSizeType;
|
|
@@ -47,6 +48,7 @@ interface ComboboxCommonProps {
|
|
|
47
48
|
size?: FormSizeType;
|
|
48
49
|
popoverClassName?: string;
|
|
49
50
|
'aria-invalid'?: boolean;
|
|
51
|
+
formItemId?: string;
|
|
50
52
|
}
|
|
51
53
|
export interface ComboboxSingleProps extends ComboboxCommonProps {
|
|
52
54
|
value: string;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { FormComboboxFieldProps } from '@scaleflex/ui-tw/form/form.types';
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import { FieldValues, Path } from 'react-hook-form';
|
|
4
|
+
declare function FormComboboxField<TFieldValues extends FieldValues, TName extends Path<TFieldValues>>({ variant, comboboxProps, ...rest }: FormComboboxFieldProps<TFieldValues, TName>): React.JSX.Element;
|
|
5
|
+
export { FormComboboxField };
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import _extends from "@babel/runtime/helpers/extends";
|
|
2
|
+
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
3
|
+
import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
|
|
4
|
+
var _excluded = ["variant", "comboboxProps"];
|
|
5
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
6
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
7
|
+
import { ComboboxMultiInline, ComboboxMultiTag, ComboboxSingle } from '@scaleflex/ui-tw/combobox';
|
|
8
|
+
import { useFormField } from '@scaleflex/ui-tw/form';
|
|
9
|
+
import { FormFieldGroup } from '@scaleflex/ui-tw/form';
|
|
10
|
+
import React from 'react';
|
|
11
|
+
function FormComboboxField(_ref) {
|
|
12
|
+
var _ref$variant = _ref.variant,
|
|
13
|
+
variant = _ref$variant === void 0 ? 'single' : _ref$variant,
|
|
14
|
+
_ref$comboboxProps = _ref.comboboxProps,
|
|
15
|
+
comboboxProps = _ref$comboboxProps === void 0 ? {} : _ref$comboboxProps,
|
|
16
|
+
rest = _objectWithoutProperties(_ref, _excluded);
|
|
17
|
+
var readOnly = rest.readOnly,
|
|
18
|
+
disabled = rest.disabled;
|
|
19
|
+
return /*#__PURE__*/React.createElement(FormFieldGroup, rest, function (field, args) {
|
|
20
|
+
var _useFormField = useFormField(),
|
|
21
|
+
error = _useFormField.error,
|
|
22
|
+
formItemId = _useFormField.formItemId;
|
|
23
|
+
var commonProps = _objectSpread(_objectSpread({}, comboboxProps), {}, {
|
|
24
|
+
options: comboboxProps.options || [],
|
|
25
|
+
placeholder: comboboxProps.placeholder,
|
|
26
|
+
readOnly: readOnly,
|
|
27
|
+
disabled: disabled,
|
|
28
|
+
size: args === null || args === void 0 ? void 0 : args.size,
|
|
29
|
+
formItemId: formItemId,
|
|
30
|
+
value: field.value,
|
|
31
|
+
onChange: field.onChange,
|
|
32
|
+
'aria-invalid': !!error
|
|
33
|
+
});
|
|
34
|
+
switch (variant) {
|
|
35
|
+
case 'multi-inline':
|
|
36
|
+
return /*#__PURE__*/React.createElement(ComboboxMultiInline, _extends({}, commonProps, {
|
|
37
|
+
showClear: comboboxProps.showClear
|
|
38
|
+
}));
|
|
39
|
+
case 'multi-tags':
|
|
40
|
+
return /*#__PURE__*/React.createElement(ComboboxMultiTag, commonProps);
|
|
41
|
+
case 'single':
|
|
42
|
+
default:
|
|
43
|
+
return /*#__PURE__*/React.createElement(ComboboxSingle, _extends({}, commonProps, {
|
|
44
|
+
showClear: comboboxProps.showClear
|
|
45
|
+
}));
|
|
46
|
+
}
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
export { FormComboboxField };
|
package/form/form.types.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { ComboboxMultiInlineProps, ComboboxMultiTagProps, ComboboxSingleProps } from '@scaleflex/ui-tw/combobox/combobox.types';
|
|
1
2
|
import { InputProps } from '@scaleflex/ui-tw/input';
|
|
2
3
|
import { SelectProps } from '@scaleflex/ui-tw/select/select.types';
|
|
3
4
|
import { SwitchProps } from '@scaleflex/ui-tw/switch/switch.types';
|
|
@@ -15,6 +16,7 @@ export type FormItemContextValue = {
|
|
|
15
16
|
export type FormFieldContextValue<TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>> = {
|
|
16
17
|
name: TName;
|
|
17
18
|
};
|
|
19
|
+
export type ComboboxVariant = 'single' | 'multi-inline' | 'multi-tags';
|
|
18
20
|
export interface FormFieldArgs {
|
|
19
21
|
size?: FormSizeType;
|
|
20
22
|
readOnly?: boolean;
|
|
@@ -68,6 +70,11 @@ export type FormSelectFieldProps<TFieldValues extends FieldValues, TName extends
|
|
|
68
70
|
showGroupSeparator?: boolean;
|
|
69
71
|
selectProps?: FormSelectProps;
|
|
70
72
|
};
|
|
73
|
+
export type FormComboboxFieldProps<TFieldValues extends FieldValues, TName extends Path<TFieldValues>> = Omit<FormFieldGroupProps<TFieldValues, TName>, 'children'> & {
|
|
74
|
+
showGroupSeparator?: boolean;
|
|
75
|
+
variant?: ComboboxVariant;
|
|
76
|
+
comboboxProps?: Partial<ComboboxSingleProps & ComboboxMultiInlineProps & ComboboxMultiTagProps>;
|
|
77
|
+
};
|
|
71
78
|
export interface FormSelectInnerProps<TFieldValues extends FieldValues, TName extends Path<TFieldValues>> {
|
|
72
79
|
field: ControllerRenderProps<TFieldValues, TName>;
|
|
73
80
|
args: FormFieldArgs | undefined;
|
package/form/index.d.ts
CHANGED
|
@@ -7,3 +7,4 @@ export { FormPasswordField } from './components/form-password-field.component';
|
|
|
7
7
|
export { FormTextareaField } from './components/form-textarea-field.component';
|
|
8
8
|
export { FormSwitchField } from './components/form-switch-field.component';
|
|
9
9
|
export { FormSelectField } from './components/form-select-field.component';
|
|
10
|
+
export { FormComboboxField } from './components/form-combobox-field.component';
|
package/form/index.js
CHANGED
|
@@ -6,4 +6,5 @@ export { FormInputField } from './components/form-input-field.component';
|
|
|
6
6
|
export { FormPasswordField } from './components/form-password-field.component';
|
|
7
7
|
export { FormTextareaField } from './components/form-textarea-field.component';
|
|
8
8
|
export { FormSwitchField } from './components/form-switch-field.component';
|
|
9
|
-
export { FormSelectField } from './components/form-select-field.component';
|
|
9
|
+
export { FormSelectField } from './components/form-select-field.component';
|
|
10
|
+
export { FormComboboxField } from './components/form-combobox-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.32",
|
|
4
4
|
"author": "scaleflex",
|
|
5
5
|
"repository": "github:scaleflex/ui",
|
|
6
6
|
"homepage": "https://github.com/scaleflex/ui/blob/master/README.md",
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
"@radix-ui/react-slot": "^1.1.2",
|
|
21
21
|
"@radix-ui/react-switch": "^1.0.1",
|
|
22
22
|
"@radix-ui/react-tooltip": "^1.2.6",
|
|
23
|
-
"@scaleflex/icons-tw": "^0.0.
|
|
23
|
+
"@scaleflex/icons-tw": "^0.0.32",
|
|
24
24
|
"@types/lodash.merge": "^4.6.9",
|
|
25
25
|
"class-variance-authority": "^0.7.1",
|
|
26
26
|
"cmdk": "^1.1.1",
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { FieldValues, Path } from 'react-hook-form';
|
|
3
|
-
import { FormSelectFieldProps } from '../form.types';
|
|
4
|
-
declare function FormSelectField<TFieldValues extends FieldValues, TName extends Path<TFieldValues>>({ selectProps, showGroupSeparator, ...rest }: FormSelectFieldProps<TFieldValues, TName>): React.JSX.Element;
|
|
5
|
-
export { FormSelectField };
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
import _extends from "@babel/runtime/helpers/extends";
|
|
2
|
-
import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
|
|
3
|
-
var _excluded = ["icon", "placeholder", "options"],
|
|
4
|
-
_excluded2 = ["selectProps", "showGroupSeparator"];
|
|
5
|
-
import { useFormField } from '@scaleflex/ui-tw/form';
|
|
6
|
-
import { FormFieldGroup } from '@scaleflex/ui-tw/form';
|
|
7
|
-
import { Selector } from '@scaleflex/ui-tw/select';
|
|
8
|
-
import React from 'react';
|
|
9
|
-
function FormSelectInner(_ref) {
|
|
10
|
-
var field = _ref.field,
|
|
11
|
-
args = _ref.args,
|
|
12
|
-
selectProps = _ref.selectProps,
|
|
13
|
-
readOnly = _ref.readOnly,
|
|
14
|
-
disabled = _ref.disabled,
|
|
15
|
-
className = _ref.className,
|
|
16
|
-
showGroupSeparator = _ref.showGroupSeparator;
|
|
17
|
-
var _useFormField = useFormField(),
|
|
18
|
-
error = _useFormField.error,
|
|
19
|
-
formItemId = _useFormField.formItemId;
|
|
20
|
-
var _ref2 = selectProps || {},
|
|
21
|
-
icon = _ref2.icon,
|
|
22
|
-
placeholder = _ref2.placeholder,
|
|
23
|
-
options = _ref2.options,
|
|
24
|
-
restSelectProps = _objectWithoutProperties(_ref2, _excluded);
|
|
25
|
-
return /*#__PURE__*/React.createElement(Selector, _extends({
|
|
26
|
-
value: field.value,
|
|
27
|
-
onChange: field.onChange,
|
|
28
|
-
placeholder: placeholder,
|
|
29
|
-
disabled: disabled,
|
|
30
|
-
readOnly: readOnly,
|
|
31
|
-
size: args === null || args === void 0 ? void 0 : args.size,
|
|
32
|
-
className: className,
|
|
33
|
-
icon: icon,
|
|
34
|
-
options: options || [],
|
|
35
|
-
showGroupSeparator: showGroupSeparator,
|
|
36
|
-
formItemId: formItemId,
|
|
37
|
-
"aria-invalid": !!error
|
|
38
|
-
}, restSelectProps));
|
|
39
|
-
}
|
|
40
|
-
function FormSelectField(_ref3) {
|
|
41
|
-
var selectProps = _ref3.selectProps,
|
|
42
|
-
showGroupSeparator = _ref3.showGroupSeparator,
|
|
43
|
-
rest = _objectWithoutProperties(_ref3, _excluded2);
|
|
44
|
-
var readOnly = rest.readOnly,
|
|
45
|
-
disabled = rest.disabled;
|
|
46
|
-
return /*#__PURE__*/React.createElement(FormFieldGroup, rest, function (field, args) {
|
|
47
|
-
return /*#__PURE__*/React.createElement(FormSelectInner, {
|
|
48
|
-
field: field,
|
|
49
|
-
args: args,
|
|
50
|
-
selectProps: selectProps,
|
|
51
|
-
readOnly: readOnly,
|
|
52
|
-
disabled: disabled,
|
|
53
|
-
showGroupSeparator: showGroupSeparator
|
|
54
|
-
});
|
|
55
|
-
});
|
|
56
|
-
}
|
|
57
|
-
export { FormSelectField };
|