@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.value.trim().toLowerCase() === b.value.trim().toLowerCase();
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
- value: normalizeValue(label)
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.value,
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.value,
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.value,
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
- value: string;
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.47",
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.47",
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",