@flipdish/ui-library 0.41.1 → 0.42.0

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 (77) hide show
  1. package/dist/components/atoms/Dot/Dot.styles.cjs +1 -0
  2. package/dist/components/atoms/Dot/Dot.styles.cjs.map +1 -1
  3. package/dist/components/atoms/Dot/Dot.styles.d.ts +4 -0
  4. package/dist/components/atoms/Dot/Dot.styles.d.ts.map +1 -1
  5. package/dist/components/atoms/Dot/Dot.styles.js +1 -0
  6. package/dist/components/atoms/Dot/Dot.styles.js.map +1 -1
  7. package/dist/components/molecules/Select/components/MultiSelect.cjs +10 -36
  8. package/dist/components/molecules/Select/components/MultiSelect.cjs.map +1 -1
  9. package/dist/components/molecules/Select/components/MultiSelect.d.ts.map +1 -1
  10. package/dist/components/molecules/Select/components/MultiSelect.js +11 -37
  11. package/dist/components/molecules/Select/components/MultiSelect.js.map +1 -1
  12. package/dist/components/molecules/Select/hooks/useMultiSelectSelection.cjs +43 -0
  13. package/dist/components/molecules/Select/hooks/useMultiSelectSelection.cjs.map +1 -0
  14. package/dist/components/molecules/Select/hooks/useMultiSelectSelection.d.ts +35 -0
  15. package/dist/components/molecules/Select/hooks/useMultiSelectSelection.d.ts.map +1 -0
  16. package/dist/components/molecules/Select/hooks/useMultiSelectSelection.js +41 -0
  17. package/dist/components/molecules/Select/hooks/useMultiSelectSelection.js.map +1 -0
  18. package/dist/components/molecules/Select/multiSelect.utils.cjs +34 -0
  19. package/dist/components/molecules/Select/multiSelect.utils.cjs.map +1 -0
  20. package/dist/components/molecules/Select/multiSelect.utils.d.ts +23 -0
  21. package/dist/components/molecules/Select/multiSelect.utils.d.ts.map +1 -0
  22. package/dist/components/molecules/Select/multiSelect.utils.js +31 -0
  23. package/dist/components/molecules/Select/multiSelect.utils.js.map +1 -0
  24. package/dist/components/molecules/Tags/Tags.styles.cjs +66 -0
  25. package/dist/components/molecules/Tags/Tags.styles.cjs.map +1 -0
  26. package/dist/components/molecules/Tags/Tags.styles.d.ts +141 -0
  27. package/dist/components/molecules/Tags/Tags.styles.d.ts.map +1 -0
  28. package/dist/components/molecules/Tags/Tags.styles.js +64 -0
  29. package/dist/components/molecules/Tags/Tags.styles.js.map +1 -0
  30. package/dist/components/molecules/Tags/components/TagCheckbox.cjs +2 -1
  31. package/dist/components/molecules/Tags/components/TagCheckbox.cjs.map +1 -1
  32. package/dist/components/molecules/Tags/components/TagCheckbox.d.ts +2 -1
  33. package/dist/components/molecules/Tags/components/TagCheckbox.d.ts.map +1 -1
  34. package/dist/components/molecules/Tags/components/TagCheckbox.js +2 -1
  35. package/dist/components/molecules/Tags/components/TagCheckbox.js.map +1 -1
  36. package/dist/components/molecules/Tags/components/TagCloseX.cjs +2 -6
  37. package/dist/components/molecules/Tags/components/TagCloseX.cjs.map +1 -1
  38. package/dist/components/molecules/Tags/components/TagCloseX.d.ts +2 -1
  39. package/dist/components/molecules/Tags/components/TagCloseX.d.ts.map +1 -1
  40. package/dist/components/molecules/Tags/components/TagCloseX.js +2 -6
  41. package/dist/components/molecules/Tags/components/TagCloseX.js.map +1 -1
  42. package/dist/components/molecules/Tags/index.cjs +11 -48
  43. package/dist/components/molecules/Tags/index.cjs.map +1 -1
  44. package/dist/components/molecules/Tags/index.d.ts +12 -3
  45. package/dist/components/molecules/Tags/index.d.ts.map +1 -1
  46. package/dist/components/molecules/Tags/index.js +11 -48
  47. package/dist/components/molecules/Tags/index.js.map +1 -1
  48. package/dist/components/organisms/ColorPicker/colorPicker.utils.cjs +45 -0
  49. package/dist/components/organisms/ColorPicker/colorPicker.utils.cjs.map +1 -1
  50. package/dist/components/organisms/ColorPicker/colorPicker.utils.d.ts +29 -0
  51. package/dist/components/organisms/ColorPicker/colorPicker.utils.d.ts.map +1 -1
  52. package/dist/components/organisms/ColorPicker/colorPicker.utils.js +43 -1
  53. package/dist/components/organisms/ColorPicker/colorPicker.utils.js.map +1 -1
  54. package/dist/components/organisms/ColorPicker/hooks/useCssColorField.cjs +38 -0
  55. package/dist/components/organisms/ColorPicker/hooks/useCssColorField.cjs.map +1 -0
  56. package/dist/components/organisms/ColorPicker/hooks/useCssColorField.d.ts +28 -0
  57. package/dist/components/organisms/ColorPicker/hooks/useCssColorField.d.ts.map +1 -0
  58. package/dist/components/organisms/ColorPicker/hooks/useCssColorField.js +36 -0
  59. package/dist/components/organisms/ColorPicker/hooks/useCssColorField.js.map +1 -0
  60. package/dist/components/organisms/ColorPicker/index.cjs +15 -38
  61. package/dist/components/organisms/ColorPicker/index.cjs.map +1 -1
  62. package/dist/components/organisms/ColorPicker/index.d.ts.map +1 -1
  63. package/dist/components/organisms/ColorPicker/index.js +16 -39
  64. package/dist/components/organisms/ColorPicker/index.js.map +1 -1
  65. package/dist/native/components/atoms/Dot/Dot.styles.d.ts +4 -0
  66. package/dist/native/components/atoms/Dot/Dot.styles.d.ts.map +1 -1
  67. package/dist/native/components/atoms/Dot/Dot.styles.js +1 -0
  68. package/dist/native/components/atoms/Dot/Dot.styles.js.map +1 -1
  69. package/dist/native/components/molecules/Tags/Tags.styles.d.ts +141 -0
  70. package/dist/native/components/molecules/Tags/Tags.styles.d.ts.map +1 -0
  71. package/dist/native/components/molecules/Tags/Tags.styles.js +92 -0
  72. package/dist/native/components/molecules/Tags/Tags.styles.js.map +1 -0
  73. package/dist/native/components/molecules/Tags/index.d.ts +95 -8
  74. package/dist/native/components/molecules/Tags/index.d.ts.map +1 -0
  75. package/dist/native/components/molecules/Tags/index.js +98 -0
  76. package/dist/native/components/molecules/Tags/index.js.map +1 -0
  77. package/package.json +2 -2
@@ -0,0 +1,141 @@
1
+ /**
2
+ * Shared `Tags` style config, read by both `index.tsx` and `index.native.tsx`.
3
+ *
4
+ * Complete literal class names only — Tailwind scans source for whole candidates.
5
+ * `native` holds pixel sizes and light-mode hex colours that React Native needs as
6
+ * plain `style` / icon props (no `currentColor`, and `Text` ignores `className` under
7
+ * the current `react-native-css` preview).
8
+ */
9
+ export declare const styles: {
10
+ sizes: {
11
+ sm: {
12
+ root: {
13
+ base: string;
14
+ withCheckbox: string;
15
+ withAvatar: string;
16
+ withDot: string;
17
+ withCount: string;
18
+ withClose: string;
19
+ };
20
+ content: string;
21
+ count: string;
22
+ };
23
+ md: {
24
+ root: {
25
+ base: string;
26
+ withCheckbox: string;
27
+ withAvatar: string;
28
+ withDot: string;
29
+ withCount: string;
30
+ withClose: string;
31
+ };
32
+ content: string;
33
+ count: string;
34
+ };
35
+ lg: {
36
+ root: {
37
+ base: string;
38
+ withCheckbox: string;
39
+ withAvatar: string;
40
+ withDot: string;
41
+ withCount: string;
42
+ withClose: string;
43
+ };
44
+ content: string;
45
+ count: string;
46
+ };
47
+ };
48
+ /** Shared chrome for every tag root (size-specific padding lives under `sizes`). */
49
+ root: string;
50
+ /** Native root drops web-only focus/transition utilities and uses a border instead of an inset ring. */
51
+ rootNative: string;
52
+ close: {
53
+ sm: {
54
+ root: string;
55
+ icon: string;
56
+ };
57
+ md: {
58
+ root: string;
59
+ icon: string;
60
+ };
61
+ lg: {
62
+ root: string;
63
+ icon: string;
64
+ };
65
+ };
66
+ checkbox: {
67
+ sm: {
68
+ root: string;
69
+ icon: string;
70
+ };
71
+ md: {
72
+ root: string;
73
+ icon: string;
74
+ };
75
+ lg: {
76
+ root: string;
77
+ icon: string;
78
+ };
79
+ };
80
+ avatar: string;
81
+ count: string;
82
+ native: {
83
+ /** `text-secondary` → neutral-700 (light). */
84
+ labelColor: string;
85
+ /** `text-fg-quaternary` → neutral-400 (light) — close icon idle. */
86
+ closeIconColor: string;
87
+ /** `text-fg-quaternary_hover` → neutral-500 (light). */
88
+ closeIconColorPressed: string;
89
+ /** `text-fg-white` — checkbox glyph. */
90
+ checkColor: string;
91
+ labelText: {
92
+ sm: {
93
+ fontSize: number;
94
+ lineHeight: number;
95
+ };
96
+ md: {
97
+ fontSize: number;
98
+ lineHeight: number;
99
+ };
100
+ lg: {
101
+ fontSize: number;
102
+ lineHeight: number;
103
+ };
104
+ };
105
+ countText: {
106
+ sm: {
107
+ fontSize: number;
108
+ lineHeight: number;
109
+ };
110
+ md: {
111
+ fontSize: number;
112
+ lineHeight: number;
113
+ };
114
+ lg: {
115
+ fontSize: number;
116
+ lineHeight: number;
117
+ };
118
+ };
119
+ /** Tailwind `size-N` → `N * 4` px for RN icon components. */
120
+ closeIconSize: {
121
+ readonly sm: 10;
122
+ readonly md: 12;
123
+ readonly lg: 14;
124
+ };
125
+ closeIconStroke: {
126
+ readonly sm: 3.6;
127
+ readonly md: 2.86;
128
+ readonly lg: 3;
129
+ };
130
+ checkIconSize: {
131
+ readonly sm: 10;
132
+ readonly md: 12;
133
+ readonly lg: 14;
134
+ };
135
+ /** Avatar is always `size-4` / icon `size-3` on web. */
136
+ avatarSize: number;
137
+ avatarIconSize: number;
138
+ };
139
+ };
140
+ export type TagSize = keyof typeof styles.sizes;
141
+ //# sourceMappingURL=Tags.styles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Tags.styles.d.ts","sourceRoot":"","sources":["../../../../src/components/molecules/Tags/Tags.styles.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAuCjB,oFAAoF;;IAEpF,wGAAwG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAetG,8CAA8C;;QAE9C,oEAAoE;;QAEpE,wDAAwD;;QAExD,wCAAwC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAYxC,6DAA6D;;;;;;;;;;;;;;;;QAI7D,wDAAwD;;;;CAI3D,CAAC;AAEF,MAAM,MAAM,OAAO,GAAG,MAAM,OAAO,MAAM,CAAC,KAAK,CAAC"}
@@ -0,0 +1,64 @@
1
+ /**
2
+ * Shared `Tags` style config, read by both `index.tsx` and `index.native.tsx`.
3
+ *
4
+ * Complete literal class names only — Tailwind scans source for whole candidates.
5
+ * `native` holds pixel sizes and light-mode hex colours that React Native needs as
6
+ * plain `style` / icon props (no `currentColor`, and `Text` ignores `className` under
7
+ * the current `react-native-css` preview).
8
+ */
9
+ const styles = {
10
+ sizes: {
11
+ sm: {
12
+ root: {
13
+ base: 'px-2 py-0.75 text-xs font-medium',
14
+ withCheckbox: 'pl-1.25',
15
+ withAvatar: 'pl-1',
16
+ withDot: 'pl-1.5',
17
+ withCount: 'pr-1',
18
+ withClose: 'pr-1',
19
+ },
20
+ content: 'gap-1',
21
+ count: 'px-1 text-xs font-medium',
22
+ },
23
+ md: {
24
+ root: {
25
+ base: 'px-2.25 py-0.5 text-sm font-medium',
26
+ withCheckbox: 'pl-1',
27
+ withAvatar: 'pl-1.25',
28
+ withDot: 'pl-1.75',
29
+ withCount: 'pr-0.75',
30
+ withClose: 'pr-1',
31
+ },
32
+ content: 'gap-1.25',
33
+ count: 'px-1.25 text-xs font-medium',
34
+ },
35
+ lg: {
36
+ root: {
37
+ base: 'px-2.5 py-1 text-sm font-medium',
38
+ withCheckbox: 'pl-1.25',
39
+ withAvatar: 'pl-1.75',
40
+ withDot: 'pl-2.25',
41
+ withCount: 'pr-1',
42
+ withClose: 'pr-1',
43
+ },
44
+ content: 'gap-1.5',
45
+ count: 'px-1.5 text-sm font-medium',
46
+ },
47
+ },
48
+ /** Shared chrome for every tag root (size-specific padding lives under `sizes`). */
49
+ root: 'flex cursor-default items-center gap-0.75 rounded-md bg-primary text-secondary ring-1 ring-primary outline-focus-ring transition duration-50 ease-linear ring-inset focus-visible:outline-2 focus-visible:outline-offset-2',
50
+ close: {
51
+ sm: { root: 'p-0.5', icon: 'size-2.5 stroke-[3.6px]' },
52
+ md: { root: 'p-0.5', icon: 'size-3 stroke-[2.86px]' },
53
+ lg: { root: 'p-0.75', icon: 'size-3.5 stroke-3' },
54
+ },
55
+ checkbox: {
56
+ sm: { root: 'size-3.5', icon: 'size-2.5' },
57
+ md: { root: 'size-4', icon: 'size-3' },
58
+ lg: { root: 'size-4.5', icon: 'size-3.5' },
59
+ },
60
+ avatar: 'relative inline-flex size-4 shrink-0 items-center justify-center overflow-hidden rounded-full bg-tertiary',
61
+ count: 'flex items-center justify-center rounded-[3px] bg-tertiary text-center'};
62
+
63
+ export { styles };
64
+ //# sourceMappingURL=Tags.styles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Tags.styles.js","sources":["../../../../src/components/molecules/Tags/Tags.styles.ts"],"sourcesContent":[null],"names":[],"mappings":"AAAA;;;;;;;AAOG;AACI,MAAM,MAAM,GAAG;AACpB,IAAA,KAAK,EAAE;AACL,QAAA,EAAE,EAAE;AACF,YAAA,IAAI,EAAE;AACJ,gBAAA,IAAI,EAAE,kCAAkC;AACxC,gBAAA,YAAY,EAAE,SAAS;AACvB,gBAAA,UAAU,EAAE,MAAM;AAClB,gBAAA,OAAO,EAAE,QAAQ;AACjB,gBAAA,SAAS,EAAE,MAAM;AACjB,gBAAA,SAAS,EAAE,MAAM;AAClB,aAAA;AACD,YAAA,OAAO,EAAE,OAAO;AAChB,YAAA,KAAK,EAAE,0BAA0B;AAClC,SAAA;AACD,QAAA,EAAE,EAAE;AACF,YAAA,IAAI,EAAE;AACJ,gBAAA,IAAI,EAAE,oCAAoC;AAC1C,gBAAA,YAAY,EAAE,MAAM;AACpB,gBAAA,UAAU,EAAE,SAAS;AACrB,gBAAA,OAAO,EAAE,SAAS;AAClB,gBAAA,SAAS,EAAE,SAAS;AACpB,gBAAA,SAAS,EAAE,MAAM;AAClB,aAAA;AACD,YAAA,OAAO,EAAE,UAAU;AACnB,YAAA,KAAK,EAAE,6BAA6B;AACrC,SAAA;AACD,QAAA,EAAE,EAAE;AACF,YAAA,IAAI,EAAE;AACJ,gBAAA,IAAI,EAAE,iCAAiC;AACvC,gBAAA,YAAY,EAAE,SAAS;AACvB,gBAAA,UAAU,EAAE,SAAS;AACrB,gBAAA,OAAO,EAAE,SAAS;AAClB,gBAAA,SAAS,EAAE,MAAM;AACjB,gBAAA,SAAS,EAAE,MAAM;AAClB,aAAA;AACD,YAAA,OAAO,EAAE,SAAS;AAClB,YAAA,KAAK,EAAE,4BAA4B;AACpC,SAAA;AACF,KAAA;;AAED,IAAA,IAAI,EAAE,4NAA4N;IAGlO,KAAK,EAAE;QACL,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,yBAAyB,EAAE;QACtD,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,wBAAwB,EAAE;QACrD,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,mBAAmB,EAAE;AAClD,KAAA;AACD,IAAA,QAAQ,EAAE;QACR,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE;QAC1C,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE;QACtC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE;AAC3C,KAAA;AACD,IAAA,MAAM,EAAE,2GAA2G;AACnH,IAAA,KAAK,EAAE;;"}
@@ -2,9 +2,10 @@
2
2
 
3
3
  var jsxRuntime = require('react/jsx-runtime');
4
4
  var cx = require('@flipdish/ui-library/utilities/cx');
5
+ var Tags_styles = require('../Tags.styles.cjs');
5
6
 
6
7
  const TagCheckbox = ({ className, isFocused, isSelected, isDisabled, size = 'sm' }) => {
7
- return (jsxRuntime.jsx("div", { className: cx.cx('flex cursor-pointer appearance-none items-center justify-center rounded bg-primary ring-1 ring-primary ring-inset', size === 'sm' && 'size-3.5', size === 'md' && 'size-4', size === 'lg' && 'size-4.5', isSelected && 'bg-brand-solid ring-brand-solid', isDisabled && 'cursor-not-allowed opacity-50', isDisabled && !isSelected && 'bg-tertiary', isFocused && 'outline-2 outline-offset-2 outline-focus-ring', className), children: jsxRuntime.jsx("svg", { "aria-hidden": "true", viewBox: "0 0 14 14", fill: "none", className: cx.cx('pointer-events-none absolute text-fg-white opacity-0 transition-inherit-all', size === 'sm' && 'size-2.5', size === 'md' && 'size-3', size === 'lg' && 'size-3.5', isSelected && 'opacity-100'), children: jsxRuntime.jsx("path", { d: "M11.6666 3.5L5.24992 9.91667L2.33325 7", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" }) }) }));
8
+ return (jsxRuntime.jsx("div", { className: cx.cx('flex cursor-pointer appearance-none items-center justify-center rounded bg-primary ring-1 ring-primary ring-inset', Tags_styles.styles.checkbox[size].root, isSelected && 'bg-brand-solid ring-brand-solid', isDisabled && 'cursor-not-allowed opacity-50', isDisabled && !isSelected && 'bg-tertiary', isFocused && 'outline-2 outline-offset-2 outline-focus-ring', className), children: jsxRuntime.jsx("svg", { "aria-hidden": "true", viewBox: "0 0 14 14", fill: "none", className: cx.cx('pointer-events-none absolute text-fg-white opacity-0 transition-inherit-all', Tags_styles.styles.checkbox[size].icon, isSelected && 'opacity-100'), children: jsxRuntime.jsx("path", { d: "M11.6666 3.5L5.24992 9.91667L2.33325 7", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" }) }) }));
8
9
  };
9
10
  TagCheckbox.displayName = 'TagCheckbox';
10
11
 
@@ -1 +1 @@
1
- {"version":3,"file":"TagCheckbox.cjs","sources":["../../../../../src/components/molecules/Tags/components/TagCheckbox.tsx"],"sourcesContent":[null],"names":["_jsx","cx"],"mappings":";;;;;AAYO,MAAM,WAAW,GAAG,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,IAAI,GAAG,IAAI,EAAoB,KAAI;IAC7G,QACEA,cAAA,CAAA,KAAA,EAAA,EACE,SAAS,EAAEC,KAAE,CACX,mHAAmH,EACnH,IAAI,KAAK,IAAI,IAAI,UAAU,EAC3B,IAAI,KAAK,IAAI,IAAI,QAAQ,EACzB,IAAI,KAAK,IAAI,IAAI,UAAU,EAC3B,UAAU,IAAI,iCAAiC,EAC/C,UAAU,IAAI,+BAA+B,EAC7C,UAAU,IAAI,CAAC,UAAU,IAAI,aAAa,EAC1C,SAAS,IAAI,+CAA+C,EAC5D,SAAS,CACV,EAAA,QAAA,EAEDD,cAAA,CAAA,KAAA,EAAA,EAAA,aAAA,EACc,MAAM,EAClB,OAAO,EAAC,WAAW,EACnB,IAAI,EAAC,MAAM,EACX,SAAS,EAAEC,KAAE,CACX,6EAA6E,EAC7E,IAAI,KAAK,IAAI,IAAI,UAAU,EAC3B,IAAI,KAAK,IAAI,IAAI,QAAQ,EACzB,IAAI,KAAK,IAAI,IAAI,UAAU,EAC3B,UAAU,IAAI,aAAa,CAC5B,EAAA,QAAA,EAEDD,cAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,wCAAwC,EAAC,MAAM,EAAC,cAAc,EAAC,WAAW,EAAC,GAAG,EAAC,aAAa,EAAC,OAAO,EAAC,cAAc,EAAC,OAAO,EAAA,CAAG,EAAA,CAClI,EAAA,CACF;AAEV;AACA,WAAW,CAAC,WAAW,GAAG,aAAa;;"}
1
+ {"version":3,"file":"TagCheckbox.cjs","sources":["../../../../../src/components/molecules/Tags/components/TagCheckbox.tsx"],"sourcesContent":[null],"names":["_jsx","cx","styles"],"mappings":";;;;;;AAaO,MAAM,WAAW,GAAG,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,IAAI,GAAG,IAAI,EAAoB,KAAI;IAC7G,QACEA,wBACE,SAAS,EAAEC,KAAE,CACX,mHAAmH,EACnHC,kBAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,EAC1B,UAAU,IAAI,iCAAiC,EAC/C,UAAU,IAAI,+BAA+B,EAC7C,UAAU,IAAI,CAAC,UAAU,IAAI,aAAa,EAC1C,SAAS,IAAI,+CAA+C,EAC5D,SAAS,CACV,EAAA,QAAA,EAEDF,cAAA,CAAA,KAAA,EAAA,EAAA,aAAA,EACc,MAAM,EAClB,OAAO,EAAC,WAAW,EACnB,IAAI,EAAC,MAAM,EACX,SAAS,EAAEC,KAAE,CACX,6EAA6E,EAC7EC,kBAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,EAC1B,UAAU,IAAI,aAAa,CAC5B,EAAA,QAAA,EAEDF,cAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,wCAAwC,EAAC,MAAM,EAAC,cAAc,EAAC,WAAW,EAAC,GAAG,EAAC,aAAa,EAAC,OAAO,EAAC,cAAc,EAAC,OAAO,EAAA,CAAG,EAAA,CAClI,EAAA,CACF;AAEV;AACA,WAAW,CAAC,WAAW,GAAG,aAAa;;"}
@@ -1,5 +1,6 @@
1
+ import { type TagSize } from '../Tags.styles';
1
2
  interface TagCheckboxProps {
2
- size?: 'sm' | 'md' | 'lg';
3
+ size?: TagSize;
3
4
  className?: string;
4
5
  isFocused?: boolean;
5
6
  isSelected?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"TagCheckbox.d.ts","sourceRoot":"","sources":["../../../../../src/components/molecules/Tags/components/TagCheckbox.tsx"],"names":[],"mappings":"AAIA,UAAU,gBAAgB;IACxB,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,eAAO,MAAM,WAAW;6DAAmE,gBAAgB;;CA+B1G,CAAC"}
1
+ {"version":3,"file":"TagCheckbox.d.ts","sourceRoot":"","sources":["../../../../../src/components/molecules/Tags/components/TagCheckbox.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAU,KAAK,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAEtD,UAAU,gBAAgB;IACxB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,eAAO,MAAM,WAAW;6DAAmE,gBAAgB;;CA2B1G,CAAC"}
@@ -1,8 +1,9 @@
1
1
  import { jsx } from 'react/jsx-runtime';
2
2
  import { cx } from '@flipdish/ui-library/utilities/cx';
3
+ import { styles } from '../Tags.styles.js';
3
4
 
4
5
  const TagCheckbox = ({ className, isFocused, isSelected, isDisabled, size = 'sm' }) => {
5
- return (jsx("div", { className: cx('flex cursor-pointer appearance-none items-center justify-center rounded bg-primary ring-1 ring-primary ring-inset', size === 'sm' && 'size-3.5', size === 'md' && 'size-4', size === 'lg' && 'size-4.5', isSelected && 'bg-brand-solid ring-brand-solid', isDisabled && 'cursor-not-allowed opacity-50', isDisabled && !isSelected && 'bg-tertiary', isFocused && 'outline-2 outline-offset-2 outline-focus-ring', className), children: jsx("svg", { "aria-hidden": "true", viewBox: "0 0 14 14", fill: "none", className: cx('pointer-events-none absolute text-fg-white opacity-0 transition-inherit-all', size === 'sm' && 'size-2.5', size === 'md' && 'size-3', size === 'lg' && 'size-3.5', isSelected && 'opacity-100'), children: jsx("path", { d: "M11.6666 3.5L5.24992 9.91667L2.33325 7", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" }) }) }));
6
+ return (jsx("div", { className: cx('flex cursor-pointer appearance-none items-center justify-center rounded bg-primary ring-1 ring-primary ring-inset', styles.checkbox[size].root, isSelected && 'bg-brand-solid ring-brand-solid', isDisabled && 'cursor-not-allowed opacity-50', isDisabled && !isSelected && 'bg-tertiary', isFocused && 'outline-2 outline-offset-2 outline-focus-ring', className), children: jsx("svg", { "aria-hidden": "true", viewBox: "0 0 14 14", fill: "none", className: cx('pointer-events-none absolute text-fg-white opacity-0 transition-inherit-all', styles.checkbox[size].icon, isSelected && 'opacity-100'), children: jsx("path", { d: "M11.6666 3.5L5.24992 9.91667L2.33325 7", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" }) }) }));
6
7
  };
7
8
  TagCheckbox.displayName = 'TagCheckbox';
8
9
 
@@ -1 +1 @@
1
- {"version":3,"file":"TagCheckbox.js","sources":["../../../../../src/components/molecules/Tags/components/TagCheckbox.tsx"],"sourcesContent":[null],"names":["_jsx"],"mappings":";;;AAYO,MAAM,WAAW,GAAG,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,IAAI,GAAG,IAAI,EAAoB,KAAI;IAC7G,QACEA,GAAA,CAAA,KAAA,EAAA,EACE,SAAS,EAAE,EAAE,CACX,mHAAmH,EACnH,IAAI,KAAK,IAAI,IAAI,UAAU,EAC3B,IAAI,KAAK,IAAI,IAAI,QAAQ,EACzB,IAAI,KAAK,IAAI,IAAI,UAAU,EAC3B,UAAU,IAAI,iCAAiC,EAC/C,UAAU,IAAI,+BAA+B,EAC7C,UAAU,IAAI,CAAC,UAAU,IAAI,aAAa,EAC1C,SAAS,IAAI,+CAA+C,EAC5D,SAAS,CACV,EAAA,QAAA,EAEDA,GAAA,CAAA,KAAA,EAAA,EAAA,aAAA,EACc,MAAM,EAClB,OAAO,EAAC,WAAW,EACnB,IAAI,EAAC,MAAM,EACX,SAAS,EAAE,EAAE,CACX,6EAA6E,EAC7E,IAAI,KAAK,IAAI,IAAI,UAAU,EAC3B,IAAI,KAAK,IAAI,IAAI,QAAQ,EACzB,IAAI,KAAK,IAAI,IAAI,UAAU,EAC3B,UAAU,IAAI,aAAa,CAC5B,EAAA,QAAA,EAEDA,GAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,wCAAwC,EAAC,MAAM,EAAC,cAAc,EAAC,WAAW,EAAC,GAAG,EAAC,aAAa,EAAC,OAAO,EAAC,cAAc,EAAC,OAAO,EAAA,CAAG,EAAA,CAClI,EAAA,CACF;AAEV;AACA,WAAW,CAAC,WAAW,GAAG,aAAa;;"}
1
+ {"version":3,"file":"TagCheckbox.js","sources":["../../../../../src/components/molecules/Tags/components/TagCheckbox.tsx"],"sourcesContent":[null],"names":["_jsx"],"mappings":";;;;AAaO,MAAM,WAAW,GAAG,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,IAAI,GAAG,IAAI,EAAoB,KAAI;IAC7G,QACEA,aACE,SAAS,EAAE,EAAE,CACX,mHAAmH,EACnH,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,EAC1B,UAAU,IAAI,iCAAiC,EAC/C,UAAU,IAAI,+BAA+B,EAC7C,UAAU,IAAI,CAAC,UAAU,IAAI,aAAa,EAC1C,SAAS,IAAI,+CAA+C,EAC5D,SAAS,CACV,EAAA,QAAA,EAEDA,GAAA,CAAA,KAAA,EAAA,EAAA,aAAA,EACc,MAAM,EAClB,OAAO,EAAC,WAAW,EACnB,IAAI,EAAC,MAAM,EACX,SAAS,EAAE,EAAE,CACX,6EAA6E,EAC7E,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,EAC1B,UAAU,IAAI,aAAa,CAC5B,EAAA,QAAA,EAEDA,GAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,wCAAwC,EAAC,MAAM,EAAC,cAAc,EAAC,WAAW,EAAC,GAAG,EAAC,aAAa,EAAC,OAAO,EAAC,cAAc,EAAC,OAAO,EAAA,CAAG,EAAA,CAClI,EAAA,CACF;AAEV;AACA,WAAW,CAAC,WAAW,GAAG,aAAa;;"}
@@ -4,14 +4,10 @@ var jsxRuntime = require('react/jsx-runtime');
4
4
  var uiIcons = require('@flipdish/ui-icons');
5
5
  var cx = require('@flipdish/ui-library/utilities/cx');
6
6
  var reactAriaComponents = require('react-aria-components');
7
+ var Tags_styles = require('../Tags.styles.cjs');
7
8
 
8
- const styles = {
9
- sm: { root: 'p-0.5', icon: 'size-2.5 stroke-[3.6px]' },
10
- md: { root: 'p-0.5', icon: 'size-3 stroke-[2.86px]' },
11
- lg: { root: 'p-0.75', icon: 'size-3.5 stroke-3' },
12
- };
13
9
  const TagCloseX = ({ size = 'md', className, ...otherProps }) => {
14
- return (jsxRuntime.jsx(reactAriaComponents.Button, { slot: "remove", "aria-label": "Remove this tag", className: cx.cx('flex cursor-pointer rounded-[3px] text-fg-quaternary outline-transparent transition duration-100 ease-linear hover:bg-primary_hover hover:text-fg-quaternary_hover focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-focus-ring disabled:cursor-not-allowed', styles[size].root, className), ...otherProps, children: jsxRuntime.jsx(uiIcons.XClose, { className: cx.cx('transition-inherit-all', styles[size].icon) }) }));
10
+ return (jsxRuntime.jsx(reactAriaComponents.Button, { slot: "remove", "aria-label": "Remove this tag", className: cx.cx('flex cursor-pointer rounded-[3px] text-fg-quaternary outline-transparent transition duration-100 ease-linear hover:bg-primary_hover hover:text-fg-quaternary_hover focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-focus-ring disabled:cursor-not-allowed', Tags_styles.styles.close[size].root, className), ...otherProps, children: jsxRuntime.jsx(uiIcons.XClose, { className: cx.cx('transition-inherit-all', Tags_styles.styles.close[size].icon) }) }));
15
11
  };
16
12
 
17
13
  exports.TagCloseX = TagCloseX;
@@ -1 +1 @@
1
- {"version":3,"file":"TagCloseX.cjs","sources":["../../../../../src/components/molecules/Tags/components/TagCloseX.tsx"],"sourcesContent":[null],"names":["_jsx","AriaButton","cx","XClose"],"mappings":";;;;;;;AAYA,MAAM,MAAM,GAAG;IACb,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,yBAAyB,EAAE;IACtD,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,wBAAwB,EAAE;IACrD,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,mBAAmB,EAAE;CAClD;AAEM,MAAM,SAAS,GAAG,CAAC,EAAE,IAAI,GAAG,IAAI,EAAE,SAAS,EAAE,GAAG,UAAU,EAAkB,KAAI;IACrF,QACEA,eAACC,0BAAU,EAAA,EACT,IAAI,EAAC,QAAQ,gBACF,iBAAiB,EAC5B,SAAS,EAAEC,KAAE,CACX,wRAAwR,EACxR,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EACjB,SAAS,CACV,EAAA,GACG,UAAU,EAAA,QAAA,EAEdF,cAAA,CAACG,cAAM,EAAA,EAAC,SAAS,EAAED,KAAE,CAAC,wBAAwB,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAA,CAAI,EAAA,CAC3D;AAEjB;;"}
1
+ {"version":3,"file":"TagCloseX.cjs","sources":["../../../../../src/components/molecules/Tags/components/TagCloseX.tsx"],"sourcesContent":[null],"names":["_jsx","AriaButton","cx","styles","XClose"],"mappings":";;;;;;;;AAaO,MAAM,SAAS,GAAG,CAAC,EAAE,IAAI,GAAG,IAAI,EAAE,SAAS,EAAE,GAAG,UAAU,EAAkB,KAAI;IACrF,QACEA,eAACC,0BAAU,EAAA,EACT,IAAI,EAAC,QAAQ,EAAA,YAAA,EACF,iBAAiB,EAC5B,SAAS,EAAEC,KAAE,CACX,wRAAwR,EACxRC,kBAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EACvB,SAAS,CACV,EAAA,GACG,UAAU,EAAA,QAAA,EAEdH,cAAA,CAACI,cAAM,IAAC,SAAS,EAAEF,KAAE,CAAC,wBAAwB,EAAEC,kBAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAA,CAAI,EAAA,CACjE;AAEjB;;"}
@@ -1,7 +1,8 @@
1
1
  import type { RefAttributes } from 'react';
2
2
  import { type ButtonProps as AriaButtonProps } from 'react-aria-components';
3
+ import { type TagSize } from '../Tags.styles';
3
4
  interface TagCloseXProps extends AriaButtonProps, RefAttributes<HTMLButtonElement> {
4
- size?: 'sm' | 'md' | 'lg';
5
+ size?: TagSize;
5
6
  className?: string;
6
7
  }
7
8
  export declare const TagCloseX: ({ size, className, ...otherProps }: TagCloseXProps) => import("react").JSX.Element;
@@ -1 +1 @@
1
- {"version":3,"file":"TagCloseX.d.ts","sourceRoot":"","sources":["../../../../../src/components/molecules/Tags/components/TagCloseX.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAC3C,OAAO,EAAwB,KAAK,WAAW,IAAI,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAElG,UAAU,cAAe,SAAQ,eAAe,EAAE,aAAa,CAAC,iBAAiB,CAAC;IAChF,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAQD,eAAO,MAAM,SAAS,GAAI,oCAA2C,cAAc,gCAelF,CAAC"}
1
+ {"version":3,"file":"TagCloseX.d.ts","sourceRoot":"","sources":["../../../../../src/components/molecules/Tags/components/TagCloseX.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAC3C,OAAO,EAAwB,KAAK,WAAW,IAAI,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAClG,OAAO,EAAU,KAAK,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAEtD,UAAU,cAAe,SAAQ,eAAe,EAAE,aAAa,CAAC,iBAAiB,CAAC;IAChF,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,eAAO,MAAM,SAAS,GAAI,oCAA2C,cAAc,gCAelF,CAAC"}
@@ -2,14 +2,10 @@ import { jsx } from 'react/jsx-runtime';
2
2
  import { XClose } from '@flipdish/ui-icons';
3
3
  import { cx } from '@flipdish/ui-library/utilities/cx';
4
4
  import { Button } from 'react-aria-components';
5
+ import { styles } from '../Tags.styles.js';
5
6
 
6
- const styles = {
7
- sm: { root: 'p-0.5', icon: 'size-2.5 stroke-[3.6px]' },
8
- md: { root: 'p-0.5', icon: 'size-3 stroke-[2.86px]' },
9
- lg: { root: 'p-0.75', icon: 'size-3.5 stroke-3' },
10
- };
11
7
  const TagCloseX = ({ size = 'md', className, ...otherProps }) => {
12
- return (jsx(Button, { slot: "remove", "aria-label": "Remove this tag", className: cx('flex cursor-pointer rounded-[3px] text-fg-quaternary outline-transparent transition duration-100 ease-linear hover:bg-primary_hover hover:text-fg-quaternary_hover focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-focus-ring disabled:cursor-not-allowed', styles[size].root, className), ...otherProps, children: jsx(XClose, { className: cx('transition-inherit-all', styles[size].icon) }) }));
8
+ return (jsx(Button, { slot: "remove", "aria-label": "Remove this tag", className: cx('flex cursor-pointer rounded-[3px] text-fg-quaternary outline-transparent transition duration-100 ease-linear hover:bg-primary_hover hover:text-fg-quaternary_hover focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-focus-ring disabled:cursor-not-allowed', styles.close[size].root, className), ...otherProps, children: jsx(XClose, { className: cx('transition-inherit-all', styles.close[size].icon) }) }));
13
9
  };
14
10
 
15
11
  export { TagCloseX };
@@ -1 +1 @@
1
- {"version":3,"file":"TagCloseX.js","sources":["../../../../../src/components/molecules/Tags/components/TagCloseX.tsx"],"sourcesContent":[null],"names":["_jsx","AriaButton"],"mappings":";;;;;AAYA,MAAM,MAAM,GAAG;IACb,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,yBAAyB,EAAE;IACtD,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,wBAAwB,EAAE;IACrD,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,mBAAmB,EAAE;CAClD;AAEM,MAAM,SAAS,GAAG,CAAC,EAAE,IAAI,GAAG,IAAI,EAAE,SAAS,EAAE,GAAG,UAAU,EAAkB,KAAI;IACrF,QACEA,IAACC,MAAU,EAAA,EACT,IAAI,EAAC,QAAQ,gBACF,iBAAiB,EAC5B,SAAS,EAAE,EAAE,CACX,wRAAwR,EACxR,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EACjB,SAAS,CACV,EAAA,GACG,UAAU,EAAA,QAAA,EAEdD,GAAA,CAAC,MAAM,EAAA,EAAC,SAAS,EAAE,EAAE,CAAC,wBAAwB,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAA,CAAI,EAAA,CAC3D;AAEjB;;"}
1
+ {"version":3,"file":"TagCloseX.js","sources":["../../../../../src/components/molecules/Tags/components/TagCloseX.tsx"],"sourcesContent":[null],"names":["_jsx","AriaButton"],"mappings":";;;;;;AAaO,MAAM,SAAS,GAAG,CAAC,EAAE,IAAI,GAAG,IAAI,EAAE,SAAS,EAAE,GAAG,UAAU,EAAkB,KAAI;IACrF,QACEA,IAACC,MAAU,EAAA,EACT,IAAI,EAAC,QAAQ,EAAA,YAAA,EACF,iBAAiB,EAC5B,SAAS,EAAE,EAAE,CACX,wRAAwR,EACxR,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EACvB,SAAS,CACV,EAAA,GACG,UAAU,EAAA,QAAA,EAEdD,GAAA,CAAC,MAAM,IAAC,SAAS,EAAE,EAAE,CAAC,wBAAwB,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAA,CAAI,EAAA,CACjE;AAEjB;;"}
@@ -9,11 +9,12 @@ var React = require('react');
9
9
  var reactAriaComponents = require('react-aria-components');
10
10
  var TagCheckbox = require('./components/TagCheckbox.cjs');
11
11
  var TagCloseX = require('./components/TagCloseX.cjs');
12
+ var Tags_styles = require('./Tags.styles.cjs');
12
13
 
13
14
  /** Small round avatar shown at the start of a `Tag`, falling back to a user icon when the image is missing or fails. */
14
15
  const TagAvatar = ({ src, alt, contrastBorder = true, className }) => {
15
16
  const [isFailed, setIsFailed] = React.useState(false);
16
- return (jsxRuntime.jsx("div", { className: cx.cx('relative inline-flex size-4 shrink-0 items-center justify-center overflow-hidden rounded-full bg-tertiary', contrastBorder && 'outline-[0.5px] -outline-offset-[0.5px] outline-black/16', className), children: src && !isFailed ? (jsxRuntime.jsx("img", { "data-avatar-img": true, className: "size-full object-cover", src: src, alt: alt, onError: () => setIsFailed(true) })) : (jsxRuntime.jsx(uiIcons.User01, { className: "size-3 stroke-[2.25px] text-fg-quaternary" })) }));
17
+ return (jsxRuntime.jsx("div", { className: cx.cx(Tags_styles.styles.avatar, contrastBorder && 'outline-[0.5px] -outline-offset-[0.5px] outline-black/16', className), children: src && !isFailed ? (jsxRuntime.jsx("img", { "data-avatar-img": true, className: "size-full object-cover", src: src, alt: alt, onError: () => setIsFailed(true) })) : (jsxRuntime.jsx(uiIcons.User01, { className: "size-3 stroke-[2.25px] text-fg-quaternary" })) }));
17
18
  };
18
19
  const TagGroupContext = React.createContext({
19
20
  selectionMode: 'none',
@@ -31,65 +32,27 @@ const TagGroup = ({ label, selectionMode = 'none', size = 'sm', children, 'data-
31
32
  };
32
33
  /** Container for the `Tag` items inside a `TagGroup`; a plain alias of react-aria-components' `TagList`. */
33
34
  const TagList = reactAriaComponents.TagList;
34
- const styles = {
35
- sm: {
36
- root: {
37
- base: 'px-2 py-0.75 text-xs font-medium',
38
- withCheckbox: 'pl-1.25',
39
- withAvatar: 'pl-1',
40
- withDot: 'pl-1.5',
41
- withCount: 'pr-1',
42
- withClose: 'pr-1',
43
- },
44
- content: 'gap-1',
45
- count: 'px-1 text-xs font-medium',
46
- },
47
- md: {
48
- root: {
49
- base: 'px-2.25 py-0.5 text-sm font-medium',
50
- withCheckbox: 'pl-1',
51
- withAvatar: 'pl-1.25',
52
- withDot: 'pl-1.75',
53
- withCount: 'pr-0.75',
54
- withClose: 'pr-1',
55
- },
56
- content: 'gap-1.25',
57
- count: 'px-1.25 text-xs font-medium',
58
- },
59
- lg: {
60
- root: {
61
- base: 'px-2.5 py-1 text-sm font-medium',
62
- withCheckbox: 'pl-1.25',
63
- withAvatar: 'pl-1.75',
64
- withDot: 'pl-2.25',
65
- withCount: 'pr-1',
66
- withClose: 'pr-1',
67
- },
68
- content: 'gap-1.5',
69
- count: 'px-1.5 text-sm font-medium',
70
- },
71
- };
72
35
  /** A single tag inside a `TagList`, with an optional avatar or dot, count, selection checkbox and remove button. */
73
- const Tag = ({ id, avatarSrc, avatarContrastBorder = true, dot, dotClassName, isDisabled, count, className, children, onClose, 'data-testid': dataTestId, }) => {
36
+ const Tag = ({ id, avatarSrc, avatarContrastBorder = true, dot, dotColor = 'fg-success-secondary', dotClassName, isDisabled, count, className, children, onClose, 'data-testid': dataTestId, }) => {
74
37
  const context = React.useContext(TagGroupContext);
75
38
  const prefix = testIdUtils.useTestIdPrefix();
76
39
  const idPart = id !== undefined ? testIdUtils.slugifyTestId(String(id)) : 'tag';
77
40
  const tagTestId = dataTestId ?? (prefix ? testIdUtils.joinTestId(prefix, `tag-${idPart}`) : undefined);
78
41
  const closeTestId = tagTestId ? `${tagTestId}-close` : undefined;
79
- const leadingContent = avatarSrc ? (jsxRuntime.jsx(TagAvatar, { src: avatarSrc, alt: "Avatar", contrastBorder: avatarContrastBorder })) : dot ? (jsxRuntime.jsx(Dot.Dot, { color: "fg-success-secondary", className: dotClassName, size: "sm" })) : null;
80
- return (jsxRuntime.jsx(reactAriaComponents.Tag, { id: id, isDisabled: isDisabled, textValue: typeof children === 'string' ? children : undefined, "data-testid": tagTestId, className: (state) => cx.cx('flex cursor-default items-center gap-0.75 rounded-md bg-primary text-secondary ring-1 ring-primary outline-focus-ring transition duration-50 ease-linear ring-inset focus-visible:outline-2 focus-visible:outline-offset-2', styles[context.size].root.base,
42
+ const leadingContent = avatarSrc ? (jsxRuntime.jsx(TagAvatar, { src: avatarSrc, alt: "Avatar", contrastBorder: avatarContrastBorder })) : dot ? (jsxRuntime.jsx(Dot.Dot, { color: dotColor, className: dotClassName, size: "sm" })) : null;
43
+ return (jsxRuntime.jsx(reactAriaComponents.Tag, { id: id, isDisabled: isDisabled, textValue: typeof children === 'string' ? children : undefined, "data-testid": tagTestId, className: (state) => cx.cx(Tags_styles.styles.root, Tags_styles.styles.sizes[context.size].root.base,
81
44
  // With avatar
82
- avatarSrc && styles[context.size].root.withAvatar,
45
+ avatarSrc && Tags_styles.styles.sizes[context.size].root.withAvatar,
83
46
  // With X button
84
- (onClose || state.allowsRemoving) && styles[context.size].root.withClose,
47
+ (onClose || state.allowsRemoving) && Tags_styles.styles.sizes[context.size].root.withClose,
85
48
  // With dot
86
- dot && styles[context.size].root.withDot,
49
+ dot && Tags_styles.styles.sizes[context.size].root.withDot,
87
50
  // With count
88
- typeof count === 'number' && styles[context.size].root.withCount,
51
+ typeof count === 'number' && Tags_styles.styles.sizes[context.size].root.withCount,
89
52
  // With checkbox
90
- context.selectionMode !== 'none' && styles[context.size].root.withCheckbox,
53
+ context.selectionMode !== 'none' && Tags_styles.styles.sizes[context.size].root.withCheckbox,
91
54
  // Disabled
92
- isDisabled && 'cursor-not-allowed', typeof className === 'function' ? className(state) : className), children: ({ isSelected, isDisabled, allowsRemoving }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsxs("div", { className: cx.cx('flex items-center gap-1', styles[context.size].content), children: [context.selectionMode !== 'none' && jsxRuntime.jsx(TagCheckbox.TagCheckbox, { size: context.size, isSelected: isSelected, isDisabled: isDisabled }), leadingContent, children, typeof count === 'number' && (jsxRuntime.jsx("span", { className: cx.cx('flex items-center justify-center rounded-[3px] bg-tertiary text-center', styles[context.size].count), children: count }))] }), (onClose || allowsRemoving) && (jsxRuntime.jsx(TagCloseX.TagCloseX, { size: context.size, excludeFromTabOrder: allowsRemoving, onPress: () => id && onClose?.(id.toString()), "data-testid": closeTestId }))] })) }));
55
+ isDisabled && 'cursor-not-allowed', typeof className === 'function' ? className(state) : className), children: ({ isSelected, isDisabled, allowsRemoving }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsxs("div", { className: cx.cx('flex items-center gap-1', Tags_styles.styles.sizes[context.size].content), children: [context.selectionMode !== 'none' && jsxRuntime.jsx(TagCheckbox.TagCheckbox, { size: context.size, isSelected: isSelected, isDisabled: isDisabled }), leadingContent, children, typeof count === 'number' && jsxRuntime.jsx("span", { className: cx.cx(Tags_styles.styles.count, Tags_styles.styles.sizes[context.size].count), children: count })] }), (onClose || allowsRemoving) && (jsxRuntime.jsx(TagCloseX.TagCloseX, { size: context.size, excludeFromTabOrder: allowsRemoving, onPress: () => id && onClose?.(id.toString()), "data-testid": closeTestId }))] })) }));
93
56
  };
94
57
 
95
58
  exports.Tag = Tag;
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":["../../../../src/components/molecules/Tags/index.tsx"],"sourcesContent":[null],"names":["useState","_jsx","cx","User01","createContext","useResolvedTestId","TestIdProvider","AriaTagGroup","AriaTagList","useContext","useTestIdPrefix","slugifyTestId","joinTestId","Dot","AriaTag","_jsxs","_Fragment","TagCheckbox","TagCloseX"],"mappings":";;;;;;;;;;;;AAiBA;AACO,MAAM,SAAS,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,cAAc,GAAG,IAAI,EAAE,SAAS,EAAsE,KAAI;IAC9I,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAGA,cAAQ,CAAC,KAAK,CAAC;AAE/C,IAAA,QACEC,cAAA,CAAA,KAAA,EAAA,EACE,SAAS,EAAEC,KAAE,CACX,2GAA2G,EAC3G,cAAc,IAAI,0DAA0D,EAC5E,SAAS,CACV,EAAA,QAAA,EAEA,GAAG,IAAI,CAAC,QAAQ,IACfD,cAAA,CAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,IAAA,EAAqB,SAAS,EAAC,wBAAwB,EAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC,IAAI,CAAC,EAAA,CAAI,KAEhHA,cAAA,CAACE,cAAM,EAAA,EAAC,SAAS,EAAC,2CAA2C,EAAA,CAAG,CACjE,EAAA,CACG;AAEV;AAcA,MAAM,eAAe,GAAGC,mBAAa,CAGlC;AACD,IAAA,aAAa,EAAE,MAAM;AACrB,IAAA,IAAI,EAAE,IAAI;AACX,CAAA,CAAC;AAeF;;;;;AAKG;AACI,MAAM,QAAQ,GAAG,CAAC,EAAE,KAAK,EAAE,aAAa,GAAG,MAAM,EAAE,IAAI,GAAG,IAAI,EAAE,QAAQ,EAAE,aAAa,EAAE,UAAU,EAAE,GAAG,UAAU,EAAiB,KAAI;AAC5I,IAAA,MAAM,UAAU,GAAGC,6BAAiB,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC;IAEzG,QACEJ,eAAC,eAAe,CAAC,QAAQ,EAAA,EAAC,KAAK,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,YACtDA,cAAA,CAACK,0BAAc,IAAC,KAAK,EAAE,UAAU,EAAA,QAAA,EAC/BL,cAAA,CAACM,4BAAY,EAAA,EAAA,YAAA,EACC,KAAK,EACjB,aAAa,EAAE,aAAa,EAC5B,sBAAsB,EAAE,aAAa,KAAK,QAAQ,EAAA,GAC9C,UAAU,iBACD,UAAU,EAAA,QAAA,EAEtB,QAAQ,EAAA,CACI,EAAA,CACA,EAAA,CACQ;AAE/B;AAEA;AACO,MAAM,OAAO,GAAGC;AAEvB,MAAM,MAAM,GAAG;AACb,IAAA,EAAE,EAAE;AACF,QAAA,IAAI,EAAE;AACJ,YAAA,IAAI,EAAE,kCAAkC;AACxC,YAAA,YAAY,EAAE,SAAS;AACvB,YAAA,UAAU,EAAE,MAAM;AAClB,YAAA,OAAO,EAAE,QAAQ;AACjB,YAAA,SAAS,EAAE,MAAM;AACjB,YAAA,SAAS,EAAE,MAAM;AAClB,SAAA;AACD,QAAA,OAAO,EAAE,OAAO;AAChB,QAAA,KAAK,EAAE,0BAA0B;AAClC,KAAA;AACD,IAAA,EAAE,EAAE;AACF,QAAA,IAAI,EAAE;AACJ,YAAA,IAAI,EAAE,oCAAoC;AAC1C,YAAA,YAAY,EAAE,MAAM;AACpB,YAAA,UAAU,EAAE,SAAS;AACrB,YAAA,OAAO,EAAE,SAAS;AAClB,YAAA,SAAS,EAAE,SAAS;AACpB,YAAA,SAAS,EAAE,MAAM;AAClB,SAAA;AACD,QAAA,OAAO,EAAE,UAAU;AACnB,QAAA,KAAK,EAAE,6BAA6B;AACrC,KAAA;AACD,IAAA,EAAE,EAAE;AACF,QAAA,IAAI,EAAE;AACJ,YAAA,IAAI,EAAE,iCAAiC;AACvC,YAAA,YAAY,EAAE,SAAS;AACvB,YAAA,UAAU,EAAE,SAAS;AACrB,YAAA,OAAO,EAAE,SAAS;AAClB,YAAA,SAAS,EAAE,MAAM;AACjB,YAAA,SAAS,EAAE,MAAM;AAClB,SAAA;AACD,QAAA,OAAO,EAAE,SAAS;AAClB,QAAA,KAAK,EAAE,4BAA4B;AACpC,KAAA;CACF;AAUD;AACO,MAAM,GAAG,GAAG,CAAC,EAClB,EAAE,EACF,SAAS,EACT,oBAAoB,GAAG,IAAI,EAC3B,GAAG,EACH,YAAY,EACZ,UAAU,EACV,KAAK,EACL,SAAS,EACT,QAAQ,EACR,OAAO,EACP,aAAa,EAAE,UAAU,GACG,KAAI;AAChC,IAAA,MAAM,OAAO,GAAGC,gBAAU,CAAC,eAAe,CAAC;AAC3C,IAAA,MAAM,MAAM,GAAGC,2BAAe,EAAE;AAChC,IAAA,MAAM,MAAM,GAAG,EAAE,KAAK,SAAS,GAAGC,yBAAa,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,GAAG,KAAK;IACnE,MAAM,SAAS,GAAG,UAAU,KAAK,MAAM,GAAGC,sBAAU,CAAC,MAAM,EAAE,CAAA,IAAA,EAAO,MAAM,CAAA,CAAE,CAAC,GAAG,SAAS,CAAC;AAC1F,IAAA,MAAM,WAAW,GAAG,SAAS,GAAG,CAAA,EAAG,SAAS,CAAA,MAAA,CAAQ,GAAG,SAAS;IAEhE,MAAM,cAAc,GAAG,SAAS,IAC9BX,cAAA,CAAC,SAAS,EAAA,EAAC,GAAG,EAAE,SAAS,EAAE,GAAG,EAAC,QAAQ,EAAC,cAAc,EAAE,oBAAoB,EAAA,CAAI,IAC9E,GAAG,IACLA,cAAA,CAACY,OAAG,EAAA,EAAC,KAAK,EAAC,sBAAsB,EAAC,SAAS,EAAE,YAAY,EAAE,IAAI,EAAC,IAAI,EAAA,CAAG,IACrE,IAAI;IAER,QACEZ,eAACa,uBAAO,EAAA,EACN,EAAE,EAAE,EAAE,EACN,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,OAAO,QAAQ,KAAK,QAAQ,GAAG,QAAQ,GAAG,SAAS,EAAA,aAAA,EACjD,SAAS,EACtB,SAAS,EAAE,CAAC,KAAK,KACfZ,KAAE,CACA,4NAA4N,EAC5N,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI;;QAG9B,SAAS,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU;;AAEjD,QAAA,CAAC,OAAO,IAAI,KAAK,CAAC,cAAc,KAAK,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS;;QAExE,GAAG,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO;;AAExC,QAAA,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS;;AAEhE,QAAA,OAAO,CAAC,aAAa,KAAK,MAAM,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,YAAY;;AAE1E,QAAA,UAAU,IAAI,oBAAoB,EAElC,OAAO,SAAS,KAAK,UAAU,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,SAAS,CAC/D,EAAA,QAAA,EAGF,CAAC,EAAE,UAAU,EAAE,UAAU,EAAE,cAAc,EAAE,MAC1Ca,eAAA,CAAAC,mBAAA,EAAA,EAAA,QAAA,EAAA,CACED,yBAAK,SAAS,EAAEb,KAAE,CAAC,yBAAyB,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,EAAA,QAAA,EAAA,CACxE,OAAO,CAAC,aAAa,KAAK,MAAM,IAAID,cAAA,CAACgB,uBAAW,EAAA,EAAC,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAA,CAAI,EAEvH,cAAc,EAEd,QAAQ,EAER,OAAO,KAAK,KAAK,QAAQ,KACxBhB,cAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAEC,KAAE,CAAC,wEAAwE,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,EAAA,QAAA,EACtH,KAAK,EAAA,CACD,CACR,IACG,EAEL,CAAC,OAAO,IAAI,cAAc,MACzBD,cAAA,CAACiB,mBAAS,EAAA,EACR,IAAI,EAAE,OAAO,CAAC,IAAI,EAClB,mBAAmB,EAAE,cAAc,EACnC,OAAO,EAAE,MAAM,EAAE,IAAI,OAAO,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,EAAA,aAAA,EAChC,WAAW,GACxB,CACH,CAAA,EAAA,CACA,CACJ,EAAA,CACO;AAEd;;;;;"}
1
+ {"version":3,"file":"index.cjs","sources":["../../../../src/components/molecules/Tags/index.tsx"],"sourcesContent":[null],"names":["useState","_jsx","cx","styles","User01","createContext","useResolvedTestId","TestIdProvider","AriaTagGroup","AriaTagList","useContext","useTestIdPrefix","slugifyTestId","joinTestId","Dot","AriaTag","_jsxs","_Fragment","TagCheckbox","TagCloseX"],"mappings":";;;;;;;;;;;;;AAqBA;AACO,MAAM,SAAS,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,cAAc,GAAG,IAAI,EAAE,SAAS,EAAsE,KAAI;IAC9I,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAGA,cAAQ,CAAC,KAAK,CAAC;AAE/C,IAAA,QACEC,cAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEC,KAAE,CAACC,kBAAM,CAAC,MAAM,EAAE,cAAc,IAAI,0DAA0D,EAAE,SAAS,CAAC,EAAA,QAAA,EACvH,GAAG,IAAI,CAAC,QAAQ,IACfF,cAAA,CAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,IAAA,EAAqB,SAAS,EAAC,wBAAwB,EAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC,IAAI,CAAC,EAAA,CAAI,KAEhHA,cAAA,CAACG,cAAM,EAAA,EAAC,SAAS,EAAC,2CAA2C,EAAA,CAAG,CACjE,EAAA,CACG;AAEV;AAoBA,MAAM,eAAe,GAAGC,mBAAa,CAGlC;AACD,IAAA,aAAa,EAAE,MAAM;AACrB,IAAA,IAAI,EAAE,IAAI;AACX,CAAA,CAAC;AAeF;;;;;AAKG;AACI,MAAM,QAAQ,GAAG,CAAC,EAAE,KAAK,EAAE,aAAa,GAAG,MAAM,EAAE,IAAI,GAAG,IAAI,EAAE,QAAQ,EAAE,aAAa,EAAE,UAAU,EAAE,GAAG,UAAU,EAAiB,KAAI;AAC5I,IAAA,MAAM,UAAU,GAAGC,6BAAiB,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC;IAEzG,QACEL,eAAC,eAAe,CAAC,QAAQ,EAAA,EAAC,KAAK,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,YACtDA,cAAA,CAACM,0BAAc,IAAC,KAAK,EAAE,UAAU,EAAA,QAAA,EAC/BN,cAAA,CAACO,4BAAY,EAAA,EAAA,YAAA,EACC,KAAK,EACjB,aAAa,EAAE,aAAa,EAC5B,sBAAsB,EAAE,aAAa,KAAK,QAAQ,EAAA,GAC9C,UAAU,iBACD,UAAU,EAAA,QAAA,EAEtB,QAAQ,EAAA,CACI,EAAA,CACA,EAAA,CACQ;AAE/B;AAEA;AACO,MAAM,OAAO,GAAGC;AAUvB;AACO,MAAM,GAAG,GAAG,CAAC,EAClB,EAAE,EACF,SAAS,EACT,oBAAoB,GAAG,IAAI,EAC3B,GAAG,EACH,QAAQ,GAAG,sBAAsB,EACjC,YAAY,EACZ,UAAU,EACV,KAAK,EACL,SAAS,EACT,QAAQ,EACR,OAAO,EACP,aAAa,EAAE,UAAU,GACG,KAAI;AAChC,IAAA,MAAM,OAAO,GAAGC,gBAAU,CAAC,eAAe,CAAC;AAC3C,IAAA,MAAM,MAAM,GAAGC,2BAAe,EAAE;AAChC,IAAA,MAAM,MAAM,GAAG,EAAE,KAAK,SAAS,GAAGC,yBAAa,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,GAAG,KAAK;IACnE,MAAM,SAAS,GAAG,UAAU,KAAK,MAAM,GAAGC,sBAAU,CAAC,MAAM,EAAE,CAAA,IAAA,EAAO,MAAM,CAAA,CAAE,CAAC,GAAG,SAAS,CAAC;AAC1F,IAAA,MAAM,WAAW,GAAG,SAAS,GAAG,CAAA,EAAG,SAAS,CAAA,MAAA,CAAQ,GAAG,SAAS;IAEhE,MAAM,cAAc,GAAG,SAAS,IAC9BZ,cAAA,CAAC,SAAS,EAAA,EAAC,GAAG,EAAE,SAAS,EAAE,GAAG,EAAC,QAAQ,EAAC,cAAc,EAAE,oBAAoB,EAAA,CAAI,IAC9E,GAAG,IACLA,cAAA,CAACa,OAAG,EAAA,EAAC,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,YAAY,EAAE,IAAI,EAAC,IAAI,EAAA,CAAG,IACzD,IAAI;IAER,QACEb,cAAA,CAACc,uBAAO,EAAA,EACN,EAAE,EAAE,EAAE,EACN,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,OAAO,QAAQ,KAAK,QAAQ,GAAG,QAAQ,GAAG,SAAS,iBACjD,SAAS,EACtB,SAAS,EAAE,CAAC,KAAK,KACfb,KAAE,CACAC,kBAAM,CAAC,IAAI,EACXA,kBAAM,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI;;AAGpC,QAAA,SAAS,IAAIA,kBAAM,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU;;AAEvD,QAAA,CAAC,OAAO,IAAI,KAAK,CAAC,cAAc,KAAKA,kBAAM,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS;;AAE9E,QAAA,GAAG,IAAIA,kBAAM,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO;;AAE9C,QAAA,OAAO,KAAK,KAAK,QAAQ,IAAIA,kBAAM,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS;;AAEtE,QAAA,OAAO,CAAC,aAAa,KAAK,MAAM,IAAIA,kBAAM,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,YAAY;;AAEhF,QAAA,UAAU,IAAI,oBAAoB,EAElC,OAAO,SAAS,KAAK,UAAU,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,SAAS,CAC/D,YAGF,CAAC,EAAE,UAAU,EAAE,UAAU,EAAE,cAAc,EAAE,MAC1Ca,eAAA,CAAAC,mBAAA,EAAA,EAAA,QAAA,EAAA,CACED,eAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEd,KAAE,CAAC,yBAAyB,EAAEC,kBAAM,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,EAAA,QAAA,EAAA,CAC9E,OAAO,CAAC,aAAa,KAAK,MAAM,IAAIF,eAACiB,uBAAW,EAAA,EAAC,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAA,CAAI,EAEvH,cAAc,EAEd,QAAQ,EAER,OAAO,KAAK,KAAK,QAAQ,IAAIjB,cAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAEC,KAAE,CAACC,kBAAM,CAAC,KAAK,EAAEA,kBAAM,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,EAAA,QAAA,EAAG,KAAK,GAAQ,CAAA,EAAA,CAC7G,EAEL,CAAC,OAAO,IAAI,cAAc,MACzBF,eAACkB,mBAAS,EAAA,EACR,IAAI,EAAE,OAAO,CAAC,IAAI,EAClB,mBAAmB,EAAE,cAAc,EACnC,OAAO,EAAE,MAAM,EAAE,IAAI,OAAO,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,EAAA,aAAA,EAChC,WAAW,GACxB,CACH,CAAA,EAAA,CACA,CACJ,EAAA,CACO;AAEd;;;;;"}
@@ -1,5 +1,9 @@
1
+ import { type DotColor } from '@flipdish/ui-library/components/atoms/Dot';
1
2
  import { type ImgHTMLAttributes, type PropsWithChildren, type RefAttributes } from 'react';
2
3
  import { type TagGroupProps as AriaTagGroupProps, type TagProps as AriaTagProps } from 'react-aria-components';
4
+ import { type TagSize } from './Tags.styles';
5
+ export type { DotColor } from '@flipdish/ui-library/components/atoms/Dot';
6
+ export type { TagSize } from './Tags.styles';
3
7
  /** Small round avatar shown at the start of a `Tag`, falling back to a user icon when the image is missing or fails. */
4
8
  export declare const TagAvatar: ({ src, alt, contrastBorder, className }: ImgHTMLAttributes<HTMLImageElement> & {
5
9
  contrastBorder?: boolean;
@@ -11,6 +15,12 @@ export interface TagItem {
11
15
  avatarSrc?: string;
12
16
  avatarContrastBorder?: boolean;
13
17
  dot?: boolean;
18
+ /** Semantic fill for the status dot; same tokens as `Dot`'s `color`. Defaults to `fg-success-secondary`. */
19
+ dotColor?: DotColor;
20
+ /**
21
+ * @deprecated Prefer `dotColor`. Web-only `text-*` class merged onto the status `Dot` via
22
+ * `currentColor` — not available on React Native.
23
+ */
14
24
  dotClassName?: string;
15
25
  isDisabled?: boolean;
16
26
  onClose?: (id: string) => void;
@@ -19,7 +29,7 @@ export interface TagGroupProps extends AriaTagGroupProps, RefAttributes<HTMLDivE
19
29
  /** Accessible name of the group, applied as its `aria-label`. */
20
30
  label: string;
21
31
  /** Size of every `Tag` in the group, shared through context. */
22
- size?: 'sm' | 'md' | 'lg';
32
+ size?: TagSize;
23
33
  /**
24
34
  * Overrides the derived root `data-testid` (defaults to `fd-tag-group`).
25
35
  * Tags derive their ids from this prefix, so overriding it re-roots every
@@ -44,6 +54,5 @@ interface TagProps extends AriaTagProps, RefAttributes<object>, Omit<TagItem, 'l
44
54
  'data-testid'?: string;
45
55
  }
46
56
  /** A single tag inside a `TagList`, with an optional avatar or dot, count, selection checkbox and remove button. */
47
- export declare const Tag: ({ id, avatarSrc, avatarContrastBorder, dot, dotClassName, isDisabled, count, className, children, onClose, "data-testid": dataTestId, }: PropsWithChildren<TagProps>) => import("react").JSX.Element;
48
- export {};
57
+ export declare const Tag: ({ id, avatarSrc, avatarContrastBorder, dot, dotColor, dotClassName, isDisabled, count, className, children, onClose, "data-testid": dataTestId, }: PropsWithChildren<TagProps>) => import("react").JSX.Element;
49
58
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/molecules/Tags/index.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAiB,KAAK,iBAAiB,EAAE,KAAK,iBAAiB,EAAE,KAAK,aAAa,EAAwB,MAAM,OAAO,CAAC;AAChI,OAAO,EAGL,KAAK,aAAa,IAAI,iBAAiB,EAEvC,KAAK,QAAQ,IAAI,YAAY,EAC9B,MAAM,uBAAuB,CAAC;AAI/B,wHAAwH;AACxH,eAAO,MAAM,SAAS,GAAI,yCAAgD,iBAAiB,CAAC,gBAAgB,CAAC,GAAG;IAAE,cAAc,CAAC,EAAE,OAAO,CAAA;CAAE,gCAkB3I,CAAC;AAEF,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,OAAO,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;CAChC;AAUD,MAAM,WAAW,aAAc,SAAQ,iBAAiB,EAAE,aAAa,CAAC,cAAc,CAAC;IACrF,iEAAiE;IACjE,KAAK,EAAE,MAAM,CAAC;IACd,gEAAgE;IAChE,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IAC1B;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;;;;GAKG;AACH,eAAO,MAAM,QAAQ,GAAI,oFAAoG,aAAa,gCAkBzI,CAAC;AAEF,4GAA4G;AAC5G,eAAO,MAAM,OAAO,oLAAc,CAAC;AAyCnC,UAAU,QAAS,SAAQ,YAAY,EAAE,aAAa,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IAC3F;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,oHAAoH;AACpH,eAAO,MAAM,GAAG,GAAI,yIAYjB,iBAAiB,CAAC,QAAQ,CAAC,gCAqE7B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/molecules/Tags/index.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAO,KAAK,QAAQ,EAAE,MAAM,2CAA2C,CAAC;AAG/E,OAAO,EAAiB,KAAK,iBAAiB,EAAE,KAAK,iBAAiB,EAAE,KAAK,aAAa,EAAwB,MAAM,OAAO,CAAC;AAChI,OAAO,EAGL,KAAK,aAAa,IAAI,iBAAiB,EAEvC,KAAK,QAAQ,IAAI,YAAY,EAC9B,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EAAU,KAAK,OAAO,EAAE,MAAM,eAAe,CAAC;AAErD,YAAY,EAAE,QAAQ,EAAE,MAAM,2CAA2C,CAAC;AAC1E,YAAY,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAE7C,wHAAwH;AACxH,eAAO,MAAM,SAAS,GAAI,yCAAgD,iBAAiB,CAAC,gBAAgB,CAAC,GAAG;IAAE,cAAc,CAAC,EAAE,OAAO,CAAA;CAAE,gCAY3I,CAAC;AAEF,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,4GAA4G;IAC5G,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,OAAO,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;CAChC;AAUD,MAAM,WAAW,aAAc,SAAQ,iBAAiB,EAAE,aAAa,CAAC,cAAc,CAAC;IACrF,iEAAiE;IACjE,KAAK,EAAE,MAAM,CAAC;IACd,gEAAgE;IAChE,IAAI,CAAC,EAAE,OAAO,CAAC;IACf;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;;;;GAKG;AACH,eAAO,MAAM,QAAQ,GAAI,oFAAoG,aAAa,gCAkBzI,CAAC;AAEF,4GAA4G;AAC5G,eAAO,MAAM,OAAO,oLAAc,CAAC;AAEnC,UAAU,QAAS,SAAQ,YAAY,EAAE,aAAa,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IAC3F;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,oHAAoH;AACpH,eAAO,MAAM,GAAG,GAAI,mJAajB,iBAAiB,CAAC,QAAQ,CAAC,gCAiE7B,CAAC"}
@@ -7,11 +7,12 @@ import { createContext, useContext, useState } from 'react';
7
7
  import { TagList as TagList$1, Tag as Tag$1, TagGroup as TagGroup$1 } from 'react-aria-components';
8
8
  import { TagCheckbox } from './components/TagCheckbox.js';
9
9
  import { TagCloseX } from './components/TagCloseX.js';
10
+ import { styles } from './Tags.styles.js';
10
11
 
11
12
  /** Small round avatar shown at the start of a `Tag`, falling back to a user icon when the image is missing or fails. */
12
13
  const TagAvatar = ({ src, alt, contrastBorder = true, className }) => {
13
14
  const [isFailed, setIsFailed] = useState(false);
14
- return (jsx("div", { className: cx('relative inline-flex size-4 shrink-0 items-center justify-center overflow-hidden rounded-full bg-tertiary', contrastBorder && 'outline-[0.5px] -outline-offset-[0.5px] outline-black/16', className), children: src && !isFailed ? (jsx("img", { "data-avatar-img": true, className: "size-full object-cover", src: src, alt: alt, onError: () => setIsFailed(true) })) : (jsx(User01, { className: "size-3 stroke-[2.25px] text-fg-quaternary" })) }));
15
+ return (jsx("div", { className: cx(styles.avatar, contrastBorder && 'outline-[0.5px] -outline-offset-[0.5px] outline-black/16', className), children: src && !isFailed ? (jsx("img", { "data-avatar-img": true, className: "size-full object-cover", src: src, alt: alt, onError: () => setIsFailed(true) })) : (jsx(User01, { className: "size-3 stroke-[2.25px] text-fg-quaternary" })) }));
15
16
  };
16
17
  const TagGroupContext = createContext({
17
18
  selectionMode: 'none',
@@ -29,65 +30,27 @@ const TagGroup = ({ label, selectionMode = 'none', size = 'sm', children, 'data-
29
30
  };
30
31
  /** Container for the `Tag` items inside a `TagGroup`; a plain alias of react-aria-components' `TagList`. */
31
32
  const TagList = TagList$1;
32
- const styles = {
33
- sm: {
34
- root: {
35
- base: 'px-2 py-0.75 text-xs font-medium',
36
- withCheckbox: 'pl-1.25',
37
- withAvatar: 'pl-1',
38
- withDot: 'pl-1.5',
39
- withCount: 'pr-1',
40
- withClose: 'pr-1',
41
- },
42
- content: 'gap-1',
43
- count: 'px-1 text-xs font-medium',
44
- },
45
- md: {
46
- root: {
47
- base: 'px-2.25 py-0.5 text-sm font-medium',
48
- withCheckbox: 'pl-1',
49
- withAvatar: 'pl-1.25',
50
- withDot: 'pl-1.75',
51
- withCount: 'pr-0.75',
52
- withClose: 'pr-1',
53
- },
54
- content: 'gap-1.25',
55
- count: 'px-1.25 text-xs font-medium',
56
- },
57
- lg: {
58
- root: {
59
- base: 'px-2.5 py-1 text-sm font-medium',
60
- withCheckbox: 'pl-1.25',
61
- withAvatar: 'pl-1.75',
62
- withDot: 'pl-2.25',
63
- withCount: 'pr-1',
64
- withClose: 'pr-1',
65
- },
66
- content: 'gap-1.5',
67
- count: 'px-1.5 text-sm font-medium',
68
- },
69
- };
70
33
  /** A single tag inside a `TagList`, with an optional avatar or dot, count, selection checkbox and remove button. */
71
- const Tag = ({ id, avatarSrc, avatarContrastBorder = true, dot, dotClassName, isDisabled, count, className, children, onClose, 'data-testid': dataTestId, }) => {
34
+ const Tag = ({ id, avatarSrc, avatarContrastBorder = true, dot, dotColor = 'fg-success-secondary', dotClassName, isDisabled, count, className, children, onClose, 'data-testid': dataTestId, }) => {
72
35
  const context = useContext(TagGroupContext);
73
36
  const prefix = useTestIdPrefix();
74
37
  const idPart = id !== undefined ? slugifyTestId(String(id)) : 'tag';
75
38
  const tagTestId = dataTestId ?? (prefix ? joinTestId(prefix, `tag-${idPart}`) : undefined);
76
39
  const closeTestId = tagTestId ? `${tagTestId}-close` : undefined;
77
- const leadingContent = avatarSrc ? (jsx(TagAvatar, { src: avatarSrc, alt: "Avatar", contrastBorder: avatarContrastBorder })) : dot ? (jsx(Dot, { color: "fg-success-secondary", className: dotClassName, size: "sm" })) : null;
78
- return (jsx(Tag$1, { id: id, isDisabled: isDisabled, textValue: typeof children === 'string' ? children : undefined, "data-testid": tagTestId, className: (state) => cx('flex cursor-default items-center gap-0.75 rounded-md bg-primary text-secondary ring-1 ring-primary outline-focus-ring transition duration-50 ease-linear ring-inset focus-visible:outline-2 focus-visible:outline-offset-2', styles[context.size].root.base,
40
+ const leadingContent = avatarSrc ? (jsx(TagAvatar, { src: avatarSrc, alt: "Avatar", contrastBorder: avatarContrastBorder })) : dot ? (jsx(Dot, { color: dotColor, className: dotClassName, size: "sm" })) : null;
41
+ return (jsx(Tag$1, { id: id, isDisabled: isDisabled, textValue: typeof children === 'string' ? children : undefined, "data-testid": tagTestId, className: (state) => cx(styles.root, styles.sizes[context.size].root.base,
79
42
  // With avatar
80
- avatarSrc && styles[context.size].root.withAvatar,
43
+ avatarSrc && styles.sizes[context.size].root.withAvatar,
81
44
  // With X button
82
- (onClose || state.allowsRemoving) && styles[context.size].root.withClose,
45
+ (onClose || state.allowsRemoving) && styles.sizes[context.size].root.withClose,
83
46
  // With dot
84
- dot && styles[context.size].root.withDot,
47
+ dot && styles.sizes[context.size].root.withDot,
85
48
  // With count
86
- typeof count === 'number' && styles[context.size].root.withCount,
49
+ typeof count === 'number' && styles.sizes[context.size].root.withCount,
87
50
  // With checkbox
88
- context.selectionMode !== 'none' && styles[context.size].root.withCheckbox,
51
+ context.selectionMode !== 'none' && styles.sizes[context.size].root.withCheckbox,
89
52
  // Disabled
90
- isDisabled && 'cursor-not-allowed', typeof className === 'function' ? className(state) : className), children: ({ isSelected, isDisabled, allowsRemoving }) => (jsxs(Fragment, { children: [jsxs("div", { className: cx('flex items-center gap-1', styles[context.size].content), children: [context.selectionMode !== 'none' && jsx(TagCheckbox, { size: context.size, isSelected: isSelected, isDisabled: isDisabled }), leadingContent, children, typeof count === 'number' && (jsx("span", { className: cx('flex items-center justify-center rounded-[3px] bg-tertiary text-center', styles[context.size].count), children: count }))] }), (onClose || allowsRemoving) && (jsx(TagCloseX, { size: context.size, excludeFromTabOrder: allowsRemoving, onPress: () => id && onClose?.(id.toString()), "data-testid": closeTestId }))] })) }));
53
+ isDisabled && 'cursor-not-allowed', typeof className === 'function' ? className(state) : className), children: ({ isSelected, isDisabled, allowsRemoving }) => (jsxs(Fragment, { children: [jsxs("div", { className: cx('flex items-center gap-1', styles.sizes[context.size].content), children: [context.selectionMode !== 'none' && jsx(TagCheckbox, { size: context.size, isSelected: isSelected, isDisabled: isDisabled }), leadingContent, children, typeof count === 'number' && jsx("span", { className: cx(styles.count, styles.sizes[context.size].count), children: count })] }), (onClose || allowsRemoving) && (jsx(TagCloseX, { size: context.size, excludeFromTabOrder: allowsRemoving, onPress: () => id && onClose?.(id.toString()), "data-testid": closeTestId }))] })) }));
91
54
  };
92
55
 
93
56
  export { Tag, TagAvatar, TagGroup, TagList };