@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.
Files changed (106) hide show
  1. package/dist/atoms/field-error-wrapper.js +2 -2
  2. package/dist/atoms/index.cjs.map +1 -1
  3. package/dist/atoms/index.js +62 -62
  4. package/dist/atoms/pagination.cjs.map +1 -1
  5. package/dist/atoms/pagination.js +3 -3
  6. package/dist/chunk-2L5FFIKE.js +340 -0
  7. package/dist/chunk-2L5FFIKE.js.map +1 -0
  8. package/dist/chunk-3GR5ZATM.js +128 -0
  9. package/dist/chunk-3GR5ZATM.js.map +1 -0
  10. package/dist/chunk-3H4ZZDX6.js +347 -0
  11. package/dist/chunk-3H4ZZDX6.js.map +1 -0
  12. package/dist/chunk-4AJJGCHR.js +354 -0
  13. package/dist/chunk-4AJJGCHR.js.map +1 -0
  14. package/dist/chunk-4QAWEAMF.js +340 -0
  15. package/dist/chunk-4QAWEAMF.js.map +1 -0
  16. package/dist/chunk-73EV5JWL.js +343 -0
  17. package/dist/chunk-73EV5JWL.js.map +1 -0
  18. package/dist/chunk-DMK6META.js +341 -0
  19. package/dist/chunk-DMK6META.js.map +1 -0
  20. package/dist/chunk-DTWPFSUG.js +169 -0
  21. package/dist/chunk-DTWPFSUG.js.map +1 -0
  22. package/dist/chunk-E6DAU6RB.js +192 -0
  23. package/dist/chunk-E6DAU6RB.js.map +1 -0
  24. package/dist/chunk-F77ES5Y3.js +79 -0
  25. package/dist/chunk-F77ES5Y3.js.map +1 -0
  26. package/dist/chunk-FGOSHO7B.js +343 -0
  27. package/dist/chunk-FGOSHO7B.js.map +1 -0
  28. package/dist/chunk-FIYBLL2Z.js +128 -0
  29. package/dist/chunk-FIYBLL2Z.js.map +1 -0
  30. package/dist/chunk-G2IPPQWC.js +354 -0
  31. package/dist/chunk-G2IPPQWC.js.map +1 -0
  32. package/dist/chunk-HBAMB3GV.js +347 -0
  33. package/dist/chunk-HBAMB3GV.js.map +1 -0
  34. package/dist/chunk-I7R4T7IL.js +169 -0
  35. package/dist/chunk-I7R4T7IL.js.map +1 -0
  36. package/dist/chunk-IOLHHERX.js +341 -0
  37. package/dist/chunk-IOLHHERX.js.map +1 -0
  38. package/dist/chunk-IXDGNHNP.js +345 -0
  39. package/dist/chunk-IXDGNHNP.js.map +1 -0
  40. package/dist/chunk-JQZRRHYW.js +192 -0
  41. package/dist/chunk-JQZRRHYW.js.map +1 -0
  42. package/dist/chunk-JZFBW2BA.js +169 -0
  43. package/dist/chunk-JZFBW2BA.js.map +1 -0
  44. package/dist/chunk-KGKST4RN.js +97 -0
  45. package/dist/chunk-KGKST4RN.js.map +1 -0
  46. package/dist/chunk-KVNTQ4LE.js +169 -0
  47. package/dist/chunk-KVNTQ4LE.js.map +1 -0
  48. package/dist/chunk-MJ3D2VRP.js +97 -0
  49. package/dist/chunk-MJ3D2VRP.js.map +1 -0
  50. package/dist/chunk-MR7N42HJ.js +97 -0
  51. package/dist/chunk-MR7N42HJ.js.map +1 -0
  52. package/dist/chunk-N6TISQLQ.js +340 -0
  53. package/dist/chunk-N6TISQLQ.js.map +1 -0
  54. package/dist/chunk-OAG6DLXW.js +192 -0
  55. package/dist/chunk-OAG6DLXW.js.map +1 -0
  56. package/dist/chunk-RGO56OV2.js +164 -0
  57. package/dist/chunk-RGO56OV2.js.map +1 -0
  58. package/dist/chunk-RWJ7HBJY.js +128 -0
  59. package/dist/chunk-RWJ7HBJY.js.map +1 -0
  60. package/dist/chunk-TSXQG24Q.js +398 -0
  61. package/dist/chunk-TSXQG24Q.js.map +1 -0
  62. package/dist/chunk-UGCMQWPU.js +343 -0
  63. package/dist/chunk-UGCMQWPU.js.map +1 -0
  64. package/dist/chunk-UWVMOI5J.js +341 -0
  65. package/dist/chunk-UWVMOI5J.js.map +1 -0
  66. package/dist/chunk-VPUWVGC2.js +340 -0
  67. package/dist/chunk-VPUWVGC2.js.map +1 -0
  68. package/dist/chunk-W7HWGDR4.js +97 -0
  69. package/dist/chunk-W7HWGDR4.js.map +1 -0
  70. package/dist/chunk-WYUPB5P3.js +349 -0
  71. package/dist/chunk-WYUPB5P3.js.map +1 -0
  72. package/dist/icon.cjs +2 -0
  73. package/dist/icon.cjs.map +1 -1
  74. package/dist/icon.d.cts +1 -1
  75. package/dist/icon.d.ts +1 -1
  76. package/dist/icon.js +3 -1
  77. package/dist/index.cjs +55 -46
  78. package/dist/index.cjs.map +1 -1
  79. package/dist/index.css +5 -0
  80. package/dist/index.css.map +1 -1
  81. package/dist/index.d.cts +1 -1
  82. package/dist/index.d.ts +1 -1
  83. package/dist/index.js +80 -78
  84. package/dist/molecules/date-picker/index.cjs.map +1 -1
  85. package/dist/molecules/date-picker/index.js +3 -3
  86. package/dist/molecules/expand-table/index.cjs.map +1 -1
  87. package/dist/molecules/expand-table/index.js +27 -27
  88. package/dist/molecules/expand-table/row.js +26 -26
  89. package/dist/molecules/form.d.cts +1 -1
  90. package/dist/molecules/form.d.ts +1 -1
  91. package/dist/molecules/form.js +2 -2
  92. package/dist/molecules/index.cjs +53 -46
  93. package/dist/molecules/index.cjs.map +1 -1
  94. package/dist/molecules/index.js +33 -33
  95. package/dist/molecules/learning-post.js +3 -3
  96. package/dist/molecules/navigation.js +27 -27
  97. package/dist/molecules/stepper.cjs.map +1 -1
  98. package/dist/molecules/stepper.js +3 -3
  99. package/dist/molecules/tag-selector.cjs +53 -46
  100. package/dist/molecules/tag-selector.cjs.map +1 -1
  101. package/dist/molecules/tag-selector.d.cts +1 -0
  102. package/dist/molecules/tag-selector.d.ts +1 -0
  103. package/dist/molecules/tag-selector.js +27 -27
  104. package/package.json +1 -1
  105. package/src/icon.ts +1 -0
  106. 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 ${focus ? 'focused' : ''} ${size}`}
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
- <Flex
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