@tipp/ui 1.4.17 → 1.4.19
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/atoms/field-error-wrapper.js +2 -2
- package/dist/atoms/index.cjs.map +1 -1
- package/dist/atoms/index.js +62 -62
- package/dist/atoms/pagination.cjs.map +1 -1
- package/dist/atoms/pagination.js +3 -3
- package/dist/chunk-2L5FFIKE.js +340 -0
- package/dist/chunk-2L5FFIKE.js.map +1 -0
- package/dist/chunk-3GR5ZATM.js +128 -0
- package/dist/chunk-3GR5ZATM.js.map +1 -0
- package/dist/chunk-3H4ZZDX6.js +347 -0
- package/dist/chunk-3H4ZZDX6.js.map +1 -0
- package/dist/chunk-4AJJGCHR.js +354 -0
- package/dist/chunk-4AJJGCHR.js.map +1 -0
- package/dist/chunk-4QAWEAMF.js +340 -0
- package/dist/chunk-4QAWEAMF.js.map +1 -0
- package/dist/chunk-73EV5JWL.js +343 -0
- package/dist/chunk-73EV5JWL.js.map +1 -0
- package/dist/chunk-DMK6META.js +341 -0
- package/dist/chunk-DMK6META.js.map +1 -0
- package/dist/chunk-DTWPFSUG.js +169 -0
- package/dist/chunk-DTWPFSUG.js.map +1 -0
- package/dist/chunk-E6DAU6RB.js +192 -0
- package/dist/chunk-E6DAU6RB.js.map +1 -0
- package/dist/chunk-F77ES5Y3.js +79 -0
- package/dist/chunk-F77ES5Y3.js.map +1 -0
- package/dist/chunk-FGOSHO7B.js +343 -0
- package/dist/chunk-FGOSHO7B.js.map +1 -0
- package/dist/chunk-FIYBLL2Z.js +128 -0
- package/dist/chunk-FIYBLL2Z.js.map +1 -0
- package/dist/chunk-G2IPPQWC.js +354 -0
- package/dist/chunk-G2IPPQWC.js.map +1 -0
- package/dist/chunk-HBAMB3GV.js +347 -0
- package/dist/chunk-HBAMB3GV.js.map +1 -0
- package/dist/chunk-I7R4T7IL.js +169 -0
- package/dist/chunk-I7R4T7IL.js.map +1 -0
- package/dist/chunk-IOLHHERX.js +341 -0
- package/dist/chunk-IOLHHERX.js.map +1 -0
- package/dist/chunk-IXDGNHNP.js +345 -0
- package/dist/chunk-IXDGNHNP.js.map +1 -0
- package/dist/chunk-JQZRRHYW.js +192 -0
- package/dist/chunk-JQZRRHYW.js.map +1 -0
- package/dist/chunk-JZFBW2BA.js +169 -0
- package/dist/chunk-JZFBW2BA.js.map +1 -0
- package/dist/chunk-KGKST4RN.js +97 -0
- package/dist/chunk-KGKST4RN.js.map +1 -0
- package/dist/chunk-KVNTQ4LE.js +169 -0
- package/dist/chunk-KVNTQ4LE.js.map +1 -0
- package/dist/chunk-MJ3D2VRP.js +97 -0
- package/dist/chunk-MJ3D2VRP.js.map +1 -0
- package/dist/chunk-MR7N42HJ.js +97 -0
- package/dist/chunk-MR7N42HJ.js.map +1 -0
- package/dist/chunk-N6TISQLQ.js +340 -0
- package/dist/chunk-N6TISQLQ.js.map +1 -0
- package/dist/chunk-OAG6DLXW.js +192 -0
- package/dist/chunk-OAG6DLXW.js.map +1 -0
- package/dist/chunk-RGO56OV2.js +164 -0
- package/dist/chunk-RGO56OV2.js.map +1 -0
- package/dist/chunk-RWJ7HBJY.js +128 -0
- package/dist/chunk-RWJ7HBJY.js.map +1 -0
- package/dist/chunk-TSXQG24Q.js +398 -0
- package/dist/chunk-TSXQG24Q.js.map +1 -0
- package/dist/chunk-UGCMQWPU.js +343 -0
- package/dist/chunk-UGCMQWPU.js.map +1 -0
- package/dist/chunk-UWVMOI5J.js +341 -0
- package/dist/chunk-UWVMOI5J.js.map +1 -0
- package/dist/chunk-VPUWVGC2.js +340 -0
- package/dist/chunk-VPUWVGC2.js.map +1 -0
- package/dist/chunk-W7HWGDR4.js +97 -0
- package/dist/chunk-W7HWGDR4.js.map +1 -0
- package/dist/chunk-WYUPB5P3.js +349 -0
- package/dist/chunk-WYUPB5P3.js.map +1 -0
- package/dist/icon.cjs +2 -0
- package/dist/icon.cjs.map +1 -1
- package/dist/icon.d.cts +1 -1
- package/dist/icon.d.ts +1 -1
- package/dist/icon.js +3 -1
- package/dist/index.cjs +55 -46
- package/dist/index.cjs.map +1 -1
- package/dist/index.css +5 -0
- package/dist/index.css.map +1 -1
- package/dist/index.d.cts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +80 -78
- package/dist/molecules/date-picker/index.cjs.map +1 -1
- package/dist/molecules/date-picker/index.js +3 -3
- package/dist/molecules/expand-table/index.cjs.map +1 -1
- package/dist/molecules/expand-table/index.js +27 -27
- package/dist/molecules/expand-table/row.js +26 -26
- package/dist/molecules/form.d.cts +1 -1
- package/dist/molecules/form.d.ts +1 -1
- package/dist/molecules/form.js +2 -2
- package/dist/molecules/index.cjs +53 -46
- package/dist/molecules/index.cjs.map +1 -1
- package/dist/molecules/index.js +33 -33
- package/dist/molecules/learning-post.js +3 -3
- package/dist/molecules/navigation.js +27 -27
- package/dist/molecules/stepper.cjs.map +1 -1
- package/dist/molecules/stepper.js +3 -3
- package/dist/molecules/tag-selector.cjs +53 -46
- package/dist/molecules/tag-selector.cjs.map +1 -1
- package/dist/molecules/tag-selector.d.cts +1 -0
- package/dist/molecules/tag-selector.d.ts +1 -0
- package/dist/molecules/tag-selector.js +27 -27
- package/package.json +1 -1
- package/src/icon.ts +1 -0
- package/src/molecules/tag-selector.tsx +66 -42
|
@@ -37,6 +37,7 @@ export interface TagSelectorProps<T extends Item> {
|
|
|
37
37
|
maxCount?: number;
|
|
38
38
|
style?: React.CSSProperties;
|
|
39
39
|
size?: 'large' | 'medium' | 'small';
|
|
40
|
+
readOnly?: boolean;
|
|
40
41
|
|
|
41
42
|
onChange?: (selected: ID[]) => void;
|
|
42
43
|
tagRender?: (item: T) => React.ReactElement;
|
|
@@ -65,6 +66,7 @@ export function TagSelector<T extends Item>(
|
|
|
65
66
|
DropdownContainer = DefaultDropdownContainer,
|
|
66
67
|
onChange,
|
|
67
68
|
size = 'medium',
|
|
69
|
+
readOnly,
|
|
68
70
|
} = props;
|
|
69
71
|
const [selected, setSelected] = useState<string[]>(props.selected || []);
|
|
70
72
|
const [value, setValue] = useState<string>('');
|
|
@@ -252,55 +254,77 @@ export function TagSelector<T extends Item>(
|
|
|
252
254
|
}
|
|
253
255
|
}, [size]);
|
|
254
256
|
|
|
257
|
+
const focusClassName = focus ? ' focused' : '';
|
|
258
|
+
const readOnlyClassName = readOnly ? ' read-only' : '';
|
|
259
|
+
|
|
260
|
+
const readonlyContent = (
|
|
261
|
+
<Flex gap="1">
|
|
262
|
+
{selectedItem.map((item) => {
|
|
263
|
+
return tagRender ? (
|
|
264
|
+
tagRender(item)
|
|
265
|
+
) : (
|
|
266
|
+
<Badge key={item.id} size={badgeSize}>
|
|
267
|
+
{item.name}
|
|
268
|
+
</Badge>
|
|
269
|
+
);
|
|
270
|
+
})}
|
|
271
|
+
</Flex>
|
|
272
|
+
);
|
|
273
|
+
|
|
274
|
+
const editContent = (
|
|
275
|
+
<>
|
|
276
|
+
<Flex
|
|
277
|
+
align="center"
|
|
278
|
+
gap="1"
|
|
279
|
+
maxWidth="100%"
|
|
280
|
+
overflow="hidden"
|
|
281
|
+
wrap="wrap"
|
|
282
|
+
>
|
|
283
|
+
{selectedItem.map((item) => {
|
|
284
|
+
return tagRender ? (
|
|
285
|
+
tagRender(item)
|
|
286
|
+
) : (
|
|
287
|
+
<Badge key={item.id} size={badgeSize}>
|
|
288
|
+
{item.name}
|
|
289
|
+
<Button
|
|
290
|
+
onClick={() => {
|
|
291
|
+
onDelete(item.id);
|
|
292
|
+
}}
|
|
293
|
+
variant="transparent"
|
|
294
|
+
>
|
|
295
|
+
<Cross1Icon />
|
|
296
|
+
</Button>
|
|
297
|
+
</Badge>
|
|
298
|
+
);
|
|
299
|
+
})}
|
|
300
|
+
{placeholderVisible ? (
|
|
301
|
+
<Typo color="gray" variant={placeholderVariant}>
|
|
302
|
+
{placeholder}
|
|
303
|
+
</Typo>
|
|
304
|
+
) : null}
|
|
305
|
+
<AutoSizingInput
|
|
306
|
+
onBlur={onBlur}
|
|
307
|
+
onChange={onChangeValue}
|
|
308
|
+
onFocus={onFocus}
|
|
309
|
+
onKeyDown={handleKeyDown}
|
|
310
|
+
ref={fieldRef}
|
|
311
|
+
value={value}
|
|
312
|
+
/>
|
|
313
|
+
</Flex>
|
|
314
|
+
{focus ? <MagnifyingGlassIcon /> : <ChevronRightIcon />}
|
|
315
|
+
</>
|
|
316
|
+
);
|
|
255
317
|
return (
|
|
256
318
|
<Popover.Root open={Boolean(filteredOptions.length) && open}>
|
|
257
|
-
<Popover.Trigger>
|
|
319
|
+
<Popover.Trigger style={{ position: 'relative' }}>
|
|
258
320
|
<Grid
|
|
259
321
|
align="center"
|
|
260
|
-
className={`tag-selector ${
|
|
322
|
+
className={`tag-selector ${size} ${focusClassName}${readOnlyClassName}`}
|
|
261
323
|
columns="1fr auto"
|
|
262
324
|
gap="1"
|
|
263
|
-
onClick={() => fieldRef.current?.focus()}
|
|
325
|
+
onClick={() => !readOnly && fieldRef.current?.focus()}
|
|
264
326
|
>
|
|
265
|
-
|
|
266
|
-
align="center"
|
|
267
|
-
gap="1"
|
|
268
|
-
maxWidth="100%"
|
|
269
|
-
overflow="hidden"
|
|
270
|
-
wrap="wrap"
|
|
271
|
-
>
|
|
272
|
-
{selectedItem.map((item) => {
|
|
273
|
-
return tagRender ? (
|
|
274
|
-
tagRender(item)
|
|
275
|
-
) : (
|
|
276
|
-
<Badge key={item.id} size={badgeSize}>
|
|
277
|
-
{item.name}
|
|
278
|
-
<Button
|
|
279
|
-
onClick={() => {
|
|
280
|
-
onDelete(item.id);
|
|
281
|
-
}}
|
|
282
|
-
variant="transparent"
|
|
283
|
-
>
|
|
284
|
-
<Cross1Icon />
|
|
285
|
-
</Button>
|
|
286
|
-
</Badge>
|
|
287
|
-
);
|
|
288
|
-
})}
|
|
289
|
-
{placeholderVisible ? (
|
|
290
|
-
<Typo color="gray" variant={placeholderVariant}>
|
|
291
|
-
{placeholder}
|
|
292
|
-
</Typo>
|
|
293
|
-
) : null}
|
|
294
|
-
<AutoSizingInput
|
|
295
|
-
onBlur={onBlur}
|
|
296
|
-
onChange={onChangeValue}
|
|
297
|
-
onFocus={onFocus}
|
|
298
|
-
onKeyDown={handleKeyDown}
|
|
299
|
-
ref={fieldRef}
|
|
300
|
-
value={value}
|
|
301
|
-
/>
|
|
302
|
-
</Flex>
|
|
303
|
-
{focus ? <MagnifyingGlassIcon /> : <ChevronRightIcon />}
|
|
327
|
+
{readOnly ? readonlyContent : editContent}
|
|
304
328
|
</Grid>
|
|
305
329
|
</Popover.Trigger>
|
|
306
330
|
|