@scaleflex/ui-tw 0.0.47 → 0.0.48
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,3 +1,3 @@
|
|
|
1
1
|
import { InputTagsProps } from '@scaleflex/ui-tw/input-tags/input-tags.types';
|
|
2
2
|
import * as React from 'react';
|
|
3
|
-
export declare function InputTags({ value, onChange, suggestedTags, allTags, placeholder, allowCustomTags, disabled, size, onGenerateTags, popoverClassName, popoverContentProps, formItemId, readOnly, className, clearAllLabel, generateLabel, ...rest }: InputTagsProps): React.JSX.Element;
|
|
3
|
+
export declare function InputTags({ value, onChange, suggestedTags, allTags, placeholder, allowCustomTags, disabled, defaultOpen, size, onGenerateTags, popoverClassName, popoverContentProps, formItemId, readOnly, className, clearAllLabel, generateLabel, valueProp, generateTagsPending, ...rest }: InputTagsProps): React.JSX.Element;
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/extends";
|
|
2
|
+
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
2
3
|
import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
|
|
3
4
|
import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
|
|
4
5
|
import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
|
|
5
|
-
var _excluded = ["value", "onChange", "suggestedTags", "allTags", "placeholder", "allowCustomTags", "disabled", "size", "onGenerateTags", "popoverClassName", "popoverContentProps", "formItemId", "readOnly", "className", "clearAllLabel", "generateLabel"];
|
|
6
|
+
var _excluded = ["value", "onChange", "suggestedTags", "allTags", "placeholder", "allowCustomTags", "disabled", "defaultOpen", "size", "onGenerateTags", "popoverClassName", "popoverContentProps", "formItemId", "readOnly", "className", "clearAllLabel", "generateLabel", "valueProp", "generateTagsPending"];
|
|
6
7
|
import { SparkleIcon } from '@scaleflex/icons-tw/sparkle-icon';
|
|
7
8
|
import { Button } from '@scaleflex/ui-tw/button';
|
|
8
9
|
import { iconSizeInTriggerOptions } from '@scaleflex/ui-tw/combobox/combobox.constants';
|
|
@@ -40,6 +41,8 @@ export function InputTags(_ref) {
|
|
|
40
41
|
allowCustomTags = _ref$allowCustomTags === void 0 ? true : _ref$allowCustomTags,
|
|
41
42
|
_ref$disabled = _ref.disabled,
|
|
42
43
|
disabled = _ref$disabled === void 0 ? false : _ref$disabled,
|
|
44
|
+
_ref$defaultOpen = _ref.defaultOpen,
|
|
45
|
+
defaultOpen = _ref$defaultOpen === void 0 ? false : _ref$defaultOpen,
|
|
43
46
|
_ref$size = _ref.size,
|
|
44
47
|
size = _ref$size === void 0 ? FormSize.Md : _ref$size,
|
|
45
48
|
onGenerateTags = _ref.onGenerateTags,
|
|
@@ -52,6 +55,10 @@ export function InputTags(_ref) {
|
|
|
52
55
|
clearAllLabel = _ref$clearAllLabel === void 0 ? 'Clear all' : _ref$clearAllLabel,
|
|
53
56
|
_ref$generateLabel = _ref.generateLabel,
|
|
54
57
|
generateLabel = _ref$generateLabel === void 0 ? 'Generate' : _ref$generateLabel,
|
|
58
|
+
_ref$valueProp = _ref.valueProp,
|
|
59
|
+
valueProp = _ref$valueProp === void 0 ? 'value' : _ref$valueProp,
|
|
60
|
+
_ref$generateTagsPend = _ref.generateTagsPending,
|
|
61
|
+
generateTagsPending = _ref$generateTagsPend === void 0 ? false : _ref$generateTagsPend,
|
|
55
62
|
rest = _objectWithoutProperties(_ref, _excluded);
|
|
56
63
|
var _useState = useState(false),
|
|
57
64
|
_useState2 = _slicedToArray(_useState, 2),
|
|
@@ -66,7 +73,7 @@ export function InputTags(_ref) {
|
|
|
66
73
|
buttonSize = _getToolbarSizes.buttonSize;
|
|
67
74
|
var searchTrimmed = search.trim().toLowerCase();
|
|
68
75
|
var isSameTag = function isSameTag(a, b) {
|
|
69
|
-
return a.
|
|
76
|
+
return a[valueProp].trim().toLowerCase() === b[valueProp].trim().toLowerCase();
|
|
70
77
|
};
|
|
71
78
|
var isSelected = function isSelected(tag) {
|
|
72
79
|
return value.some(function (t) {
|
|
@@ -80,10 +87,9 @@ export function InputTags(_ref) {
|
|
|
80
87
|
return normalizeLabel(label).toLowerCase().replace(/\s+/g, '-');
|
|
81
88
|
};
|
|
82
89
|
var createTag = function createTag(label) {
|
|
83
|
-
return {
|
|
84
|
-
label: normalizeLabel(label)
|
|
85
|
-
|
|
86
|
-
};
|
|
90
|
+
return _defineProperty({
|
|
91
|
+
label: normalizeLabel(label)
|
|
92
|
+
}, valueProp, normalizeValue(label));
|
|
87
93
|
};
|
|
88
94
|
var newTag = createTag(search);
|
|
89
95
|
var canCreate = useMemo(function () {
|
|
@@ -118,7 +124,8 @@ export function InputTags(_ref) {
|
|
|
118
124
|
});
|
|
119
125
|
return /*#__PURE__*/React.createElement(Popover, {
|
|
120
126
|
open: open,
|
|
121
|
-
onOpenChange: setOpen
|
|
127
|
+
onOpenChange: setOpen,
|
|
128
|
+
defaultOpen: defaultOpen
|
|
122
129
|
}, /*#__PURE__*/React.createElement(PopoverTrigger, {
|
|
123
130
|
asChild: true
|
|
124
131
|
}, /*#__PURE__*/React.createElement("button", {
|
|
@@ -126,7 +133,7 @@ export function InputTags(_ref) {
|
|
|
126
133
|
role: "combobox-tags",
|
|
127
134
|
"aria-expanded": open,
|
|
128
135
|
"aria-invalid": rest['aria-invalid'],
|
|
129
|
-
disabled: disabled,
|
|
136
|
+
disabled: disabled || generateTagsPending,
|
|
130
137
|
className: cn.apply(void 0, ['relative flex w-full', onGenerateTags || value.length > 0 ? 'flex-col' : 'items-center'].concat(_toConsumableArray(getBaseInputClasses()), [selectionHighlightClassNames, focusRingClassNames, readOnly && selectReadOnlyClassNames, className])),
|
|
131
138
|
onClick: function onClick() {
|
|
132
139
|
return !disabled && setOpen(true);
|
|
@@ -139,7 +146,7 @@ export function InputTags(_ref) {
|
|
|
139
146
|
className: "text-muted-foreground"
|
|
140
147
|
}, placeholder) : value.map(function (tag) {
|
|
141
148
|
return /*#__PURE__*/React.createElement(Pill, {
|
|
142
|
-
key: tag
|
|
149
|
+
key: tag[valueProp],
|
|
143
150
|
size: size,
|
|
144
151
|
removable: true,
|
|
145
152
|
onRemove: function onRemove() {
|
|
@@ -163,6 +170,7 @@ export function InputTags(_ref) {
|
|
|
163
170
|
type: "button",
|
|
164
171
|
variant: "ghost-primary",
|
|
165
172
|
size: buttonSize,
|
|
173
|
+
loading: generateTagsPending,
|
|
166
174
|
startIcon: /*#__PURE__*/React.createElement(SparkleIcon, {
|
|
167
175
|
className: "size-3.5"
|
|
168
176
|
}),
|
|
@@ -188,7 +196,7 @@ export function InputTags(_ref) {
|
|
|
188
196
|
heading: "Suggested"
|
|
189
197
|
}, filteredSuggested.map(function (tag) {
|
|
190
198
|
return /*#__PURE__*/React.createElement(CommandItem, {
|
|
191
|
-
key: tag
|
|
199
|
+
key: tag[valueProp],
|
|
192
200
|
size: size,
|
|
193
201
|
onSelect: function onSelect() {
|
|
194
202
|
return handleAddTag(tag);
|
|
@@ -200,7 +208,7 @@ export function InputTags(_ref) {
|
|
|
200
208
|
heading: "All Tags"
|
|
201
209
|
}, filteredAll.map(function (tag) {
|
|
202
210
|
return /*#__PURE__*/React.createElement(CommandItem, {
|
|
203
|
-
key: tag
|
|
211
|
+
key: tag[valueProp],
|
|
204
212
|
size: size,
|
|
205
213
|
onSelect: function onSelect() {
|
|
206
214
|
return handleAddTag(tag);
|
|
@@ -3,7 +3,7 @@ import type { FormSizeType } from '@scaleflex/ui-tw/types/form-size';
|
|
|
3
3
|
import type { ComponentProps } from 'react';
|
|
4
4
|
export interface TagOption {
|
|
5
5
|
label: string;
|
|
6
|
-
|
|
6
|
+
[key: string]: string;
|
|
7
7
|
}
|
|
8
8
|
export interface InputTagsProps {
|
|
9
9
|
value: TagOption[];
|
|
@@ -13,6 +13,7 @@ export interface InputTagsProps {
|
|
|
13
13
|
placeholder?: string;
|
|
14
14
|
allowCustomTags?: boolean;
|
|
15
15
|
disabled?: boolean;
|
|
16
|
+
defaultOpen?: boolean;
|
|
16
17
|
popoverClassName?: string;
|
|
17
18
|
popoverContentProps?: ComponentProps<typeof PopoverPrimitive.Content>;
|
|
18
19
|
size?: FormSizeType;
|
|
@@ -23,4 +24,6 @@ export interface InputTagsProps {
|
|
|
23
24
|
clearAllLabel?: string;
|
|
24
25
|
generateLabel?: string;
|
|
25
26
|
'aria-invalid'?: boolean;
|
|
27
|
+
valueProp?: string;
|
|
28
|
+
generateTagsPending?: boolean;
|
|
26
29
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@scaleflex/ui-tw",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.48",
|
|
4
4
|
"author": "scaleflex",
|
|
5
5
|
"repository": "github:scaleflex/ui",
|
|
6
6
|
"homepage": "https://github.com/scaleflex/ui/blob/master/README.md",
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
"@radix-ui/react-slot": "^1.1.2",
|
|
24
24
|
"@radix-ui/react-switch": "^1.0.1",
|
|
25
25
|
"@radix-ui/react-tooltip": "^1.2.6",
|
|
26
|
-
"@scaleflex/icons-tw": "^0.0.
|
|
26
|
+
"@scaleflex/icons-tw": "^0.0.48",
|
|
27
27
|
"@tanstack/react-table": "^8.21.3",
|
|
28
28
|
"@types/lodash.merge": "^4.6.9",
|
|
29
29
|
"class-variance-authority": "^0.7.1",
|