@avenue-ticketing/ui 0.11.0 → 0.12.0-beta.2

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 (226) hide show
  1. package/README.md +47 -0
  2. package/dist/badge-types-B67wcd4m.d.ts +22 -0
  3. package/dist/react/app-store-buttons-outline.d.ts +17 -0
  4. package/dist/react/app-store-buttons-outline.js +582 -0
  5. package/dist/react/app-store-buttons-outline.js.map +1 -0
  6. package/dist/react/app-store-buttons.d.ts +20 -0
  7. package/dist/react/app-store-buttons.js +817 -0
  8. package/dist/react/app-store-buttons.js.map +1 -0
  9. package/dist/react/avatar-label-group.d.ts +14 -0
  10. package/dist/react/avatar-label-group.js +183 -0
  11. package/dist/react/avatar-label-group.js.map +1 -0
  12. package/dist/react/avatar-profile-photo.d.ts +9 -0
  13. package/dist/react/avatar-profile-photo.js +202 -0
  14. package/dist/react/avatar-profile-photo.js.map +1 -0
  15. package/dist/react/avatar.d.ts +66 -40
  16. package/dist/react/avatar.js +159 -149
  17. package/dist/react/avatar.js.map +1 -1
  18. package/dist/react/badge-groups.d.ts +25 -0
  19. package/dist/react/badge-groups.js +162 -0
  20. package/dist/react/badge-groups.js.map +1 -0
  21. package/dist/react/badge.d.ts +123 -59
  22. package/dist/react/badge.js +314 -86
  23. package/dist/react/badge.js.map +1 -1
  24. package/dist/react/button-group.d.ts +43 -0
  25. package/dist/react/button-group.js +108 -0
  26. package/dist/react/button-group.js.map +1 -0
  27. package/dist/react/button-utility.d.ts +47 -0
  28. package/dist/react/button-utility.js +158 -0
  29. package/dist/react/button-utility.js.map +1 -0
  30. package/dist/react/button.d.ts +112 -37
  31. package/dist/react/button.js +270 -55
  32. package/dist/react/button.js.map +1 -1
  33. package/dist/react/checkbox.d.ts +25 -8
  34. package/dist/react/checkbox.js +115 -110
  35. package/dist/react/checkbox.js.map +1 -1
  36. package/dist/react/close-button.d.ts +25 -0
  37. package/dist/react/close-button.js +54 -0
  38. package/dist/react/close-button.js.map +1 -0
  39. package/dist/react/combobox.d.ts +18 -0
  40. package/dist/react/combobox.js +574 -0
  41. package/dist/react/combobox.js.map +1 -0
  42. package/dist/react/dialog.d.ts +15 -15
  43. package/dist/react/dialog.js +43 -108
  44. package/dist/react/dialog.js.map +1 -1
  45. package/dist/react/dropdown-account-breadcrumb.d.ts +5 -0
  46. package/dist/react/dropdown-account-breadcrumb.js +481 -0
  47. package/dist/react/dropdown-account-breadcrumb.js.map +1 -0
  48. package/dist/react/dropdown-account-button.d.ts +5 -0
  49. package/dist/react/dropdown-account-button.js +938 -0
  50. package/dist/react/dropdown-account-button.js.map +1 -0
  51. package/dist/react/dropdown-account-card-md.d.ts +5 -0
  52. package/dist/react/dropdown-account-card-md.js +714 -0
  53. package/dist/react/dropdown-account-card-md.js.map +1 -0
  54. package/dist/react/dropdown-account-card-sm.d.ts +5 -0
  55. package/dist/react/dropdown-account-card-sm.js +692 -0
  56. package/dist/react/dropdown-account-card-sm.js.map +1 -0
  57. package/dist/react/dropdown-account-card-xs.d.ts +5 -0
  58. package/dist/react/dropdown-account-card-xs.js +672 -0
  59. package/dist/react/dropdown-account-card-xs.js.map +1 -0
  60. package/dist/react/dropdown-avatar.d.ts +5 -0
  61. package/dist/react/dropdown-avatar.js +955 -0
  62. package/dist/react/dropdown-avatar.js.map +1 -0
  63. package/dist/react/dropdown-button-advanced.d.ts +5 -0
  64. package/dist/react/dropdown-button-advanced.js +964 -0
  65. package/dist/react/dropdown-button-advanced.js.map +1 -0
  66. package/dist/react/dropdown-button-link.d.ts +5 -0
  67. package/dist/react/dropdown-button-link.js +666 -0
  68. package/dist/react/dropdown-button-link.js.map +1 -0
  69. package/dist/react/dropdown-button-simple.d.ts +5 -0
  70. package/dist/react/dropdown-button-simple.js +919 -0
  71. package/dist/react/dropdown-button-simple.js.map +1 -0
  72. package/dist/react/dropdown-icon-advanced.d.ts +5 -0
  73. package/dist/react/dropdown-icon-advanced.js +708 -0
  74. package/dist/react/dropdown-icon-advanced.js.map +1 -0
  75. package/dist/react/dropdown-icon-simple.d.ts +5 -0
  76. package/dist/react/dropdown-icon-simple.js +670 -0
  77. package/dist/react/dropdown-icon-simple.js.map +1 -0
  78. package/dist/react/dropdown-integration.d.ts +5 -0
  79. package/dist/react/dropdown-integration.js +1490 -0
  80. package/dist/react/dropdown-integration.js.map +1 -0
  81. package/dist/react/dropdown-search-advanced.d.ts +5 -0
  82. package/dist/react/dropdown-search-advanced.js +1163 -0
  83. package/dist/react/dropdown-search-advanced.js.map +1 -0
  84. package/dist/react/dropdown-search-simple.d.ts +5 -0
  85. package/dist/react/dropdown-search-simple.js +1125 -0
  86. package/dist/react/dropdown-search-simple.js.map +1 -0
  87. package/dist/react/dropdown.d.ts +35 -133
  88. package/dist/react/dropdown.js +536 -1318
  89. package/dist/react/dropdown.js.map +1 -1
  90. package/dist/react/file-upload-trigger.d.ts +34 -0
  91. package/dist/react/file-upload-trigger.js +39 -0
  92. package/dist/react/file-upload-trigger.js.map +1 -0
  93. package/dist/react/form.d.ts +10 -0
  94. package/dist/react/form.js +11 -0
  95. package/dist/react/form.js.map +1 -0
  96. package/dist/react/hint-text.d.ts +17 -0
  97. package/dist/react/hint-text.js +36 -0
  98. package/dist/react/hint-text.js.map +1 -0
  99. package/dist/react/hook-form.d.ts +35 -0
  100. package/dist/react/hook-form.js +50 -0
  101. package/dist/react/hook-form.js.map +1 -0
  102. package/dist/react/input-date.d.ts +43 -0
  103. package/dist/react/input-date.js +306 -0
  104. package/dist/react/input-date.js.map +1 -0
  105. package/dist/react/input-file.d.ts +45 -0
  106. package/dist/react/input-file.js +748 -0
  107. package/dist/react/input-file.js.map +1 -0
  108. package/dist/react/input-group.d.ts +37 -0
  109. package/dist/react/input-group.js +251 -0
  110. package/dist/react/input-group.js.map +1 -0
  111. package/dist/react/input-number.d.ts +32 -0
  112. package/dist/react/input-number.js +553 -0
  113. package/dist/react/input-number.js.map +1 -0
  114. package/dist/react/input-payment.d.ts +16 -0
  115. package/dist/react/input-payment.js +593 -0
  116. package/dist/react/input-payment.js.map +1 -0
  117. package/dist/react/input-tags-outer.d.ts +53 -0
  118. package/dist/react/input-tags-outer.js +607 -0
  119. package/dist/react/input-tags-outer.js.map +1 -0
  120. package/dist/react/input-tags.d.ts +53 -0
  121. package/dist/react/input-tags.js +565 -0
  122. package/dist/react/input-tags.js.map +1 -0
  123. package/dist/react/input.d.ts +71 -22
  124. package/dist/react/input.js +332 -45
  125. package/dist/react/input.js.map +1 -1
  126. package/dist/react/label.d.ts +18 -0
  127. package/dist/react/label.js +112 -0
  128. package/dist/react/label.js.map +1 -0
  129. package/dist/react/multi-select.d.ts +90 -0
  130. package/dist/react/multi-select.js +1237 -0
  131. package/dist/react/multi-select.js.map +1 -0
  132. package/dist/react/pin-input.d.ts +59 -0
  133. package/dist/react/pin-input.js +229 -0
  134. package/dist/react/pin-input.js.map +1 -0
  135. package/dist/react/popover.d.ts +14 -71
  136. package/dist/react/popover.js +171 -540
  137. package/dist/react/popover.js.map +1 -1
  138. package/dist/react/progress-circle.d.ts +9 -0
  139. package/dist/react/progress-circle.js +36 -0
  140. package/dist/react/progress-circle.js.map +1 -0
  141. package/dist/react/progress-circles.d.ts +14 -0
  142. package/dist/react/progress-circles.js +160 -0
  143. package/dist/react/progress-circles.js.map +1 -0
  144. package/dist/react/progress-indicators.d.ts +52 -0
  145. package/dist/react/progress-indicators.js +78 -0
  146. package/dist/react/progress-indicators.js.map +1 -0
  147. package/dist/react/radio-buttons.d.ts +35 -0
  148. package/dist/react/radio-buttons.js +117 -0
  149. package/dist/react/radio-buttons.js.map +1 -0
  150. package/dist/react/scroll-header.d.ts +6 -0
  151. package/dist/react/scroll-header.js +42 -61
  152. package/dist/react/scroll-header.js.map +1 -1
  153. package/dist/react/scroll-wheel.d.ts +4 -5
  154. package/dist/react/scroll-wheel.js +19 -15
  155. package/dist/react/scroll-wheel.js.map +1 -1
  156. package/dist/react/select-item.d.ts +14 -0
  157. package/dist/react/select-item.js +340 -0
  158. package/dist/react/select-item.js.map +1 -0
  159. package/dist/react/select-native.d.ts +17 -0
  160. package/dist/react/select-native.js +203 -0
  161. package/dist/react/select-native.js.map +1 -0
  162. package/dist/react/select.d.ts +19 -61
  163. package/dist/react/select.js +866 -908
  164. package/dist/react/select.js.map +1 -1
  165. package/dist/react/sheet.d.ts +19 -19
  166. package/dist/react/sheet.js +97 -219
  167. package/dist/react/sheet.js.map +1 -1
  168. package/dist/react/slider.d.ts +15 -0
  169. package/dist/react/slider.js +66 -0
  170. package/dist/react/slider.js.map +1 -0
  171. package/dist/react/social-button.d.ts +55 -0
  172. package/dist/react/social-button.js +263 -0
  173. package/dist/react/social-button.js.map +1 -0
  174. package/dist/react/social-logos.d.ts +20 -0
  175. package/dist/react/social-logos.js +131 -0
  176. package/dist/react/social-logos.js.map +1 -0
  177. package/dist/react/switch.d.ts +21 -36
  178. package/dist/react/switch.js +121 -109
  179. package/dist/react/switch.js.map +1 -1
  180. package/dist/react/tag-select.d.ts +47 -0
  181. package/dist/react/tag-select.js +1252 -0
  182. package/dist/react/tag-select.js.map +1 -0
  183. package/dist/react/tags.d.ts +30 -0
  184. package/dist/react/tags.js +228 -0
  185. package/dist/react/tags.js.map +1 -0
  186. package/dist/react/textarea.d.ts +40 -4
  187. package/dist/react/textarea.js +193 -27
  188. package/dist/react/textarea.js.map +1 -1
  189. package/dist/react/tooltip.d.ts +30 -43
  190. package/dist/react/tooltip.js +65 -521
  191. package/dist/react/tooltip.js.map +1 -1
  192. package/dist/select-mobile-sheet-CB2ptDTJ.d.ts +12 -0
  193. package/dist/select-shared-oJEeJxeB.d.ts +68 -0
  194. package/package.json +28 -21
  195. package/source.css +2 -13
  196. package/theme.css +883 -79
  197. package/dist/react/calendar.d.ts +0 -13
  198. package/dist/react/calendar.js +0 -4639
  199. package/dist/react/calendar.js.map +0 -1
  200. package/dist/react/card.d.ts +0 -11
  201. package/dist/react/card.js +0 -113
  202. package/dist/react/card.js.map +0 -1
  203. package/dist/react/datetime-picker.d.ts +0 -21
  204. package/dist/react/datetime-picker.js +0 -6142
  205. package/dist/react/datetime-picker.js.map +0 -1
  206. package/dist/react/pagination.d.ts +0 -28
  207. package/dist/react/pagination.js +0 -262
  208. package/dist/react/pagination.js.map +0 -1
  209. package/dist/react/table-pagination.d.ts +0 -15
  210. package/dist/react/table-pagination.js +0 -1247
  211. package/dist/react/table-pagination.js.map +0 -1
  212. package/dist/react/table-view/column-menu.d.ts +0 -15
  213. package/dist/react/table-view/column-menu.js +0 -1049
  214. package/dist/react/table-view/column-menu.js.map +0 -1
  215. package/dist/react/table-view/index.d.ts +0 -70
  216. package/dist/react/table-view/index.js +0 -2284
  217. package/dist/react/table-view/index.js.map +0 -1
  218. package/dist/react/table.d.ts +0 -86
  219. package/dist/react/table.js +0 -414
  220. package/dist/react/table.js.map +0 -1
  221. package/dist/react/tabs.d.ts +0 -34
  222. package/dist/react/tabs.js +0 -423
  223. package/dist/react/tabs.js.map +0 -1
  224. package/dist/react/time-picker.d.ts +0 -22
  225. package/dist/react/time-picker.js +0 -856
  226. package/dist/react/time-picker.js.map +0 -1
@@ -1,67 +1,131 @@
1
- import * as React from 'react';
1
+ import * as react from 'react';
2
+ import { ReactNode, MouseEventHandler } from 'react';
3
+ import { B as BadgeTypes, S as Sizes, a as BadgeTypeToColorMap, b as BadgeColors, I as IconComponentType, F as FlagTypes } from '../badge-types-B67wcd4m.js';
2
4
 
3
- /** Matches `button.tsx` primary / secondary — no separate outline variants. */
4
- declare const variantClass: {
5
- readonly primary: "border border-transparent bg-primary text-background";
6
- readonly secondary: "border border-primary/10 bg-transparent text-primary";
5
+ declare const filledColors: Record<BadgeColors, {
6
+ root: string;
7
+ addon: string;
8
+ addonButton: string;
9
+ }>;
10
+ declare const withPillTypes: {
11
+ "pill-color": {
12
+ common: string;
13
+ styles: Record<BadgeColors, {
14
+ root: string;
15
+ addon: string;
16
+ addonButton: string;
17
+ }>;
18
+ };
19
+ color: {
20
+ common: string;
21
+ styles: Record<BadgeColors, {
22
+ root: string;
23
+ addon: string;
24
+ addonButton: string;
25
+ }>;
26
+ };
27
+ modern: {
28
+ common: string;
29
+ styles: {
30
+ gray: {
31
+ root: string;
32
+ addon: string;
33
+ addonButton: string;
34
+ };
35
+ };
36
+ };
7
37
  };
8
- /** Same keys as `button.tsx` `roundedClass`. */
9
- declare const roundedClass: {
10
- readonly full: "rounded-full";
11
- readonly lg: "rounded-lg";
12
- readonly md: "rounded-md";
38
+ declare const withBadgeTypes: {
39
+ "pill-color": {
40
+ common: string;
41
+ styles: Record<BadgeColors, {
42
+ root: string;
43
+ addon: string;
44
+ addonButton: string;
45
+ }>;
46
+ };
47
+ color: {
48
+ common: string;
49
+ styles: Record<BadgeColors, {
50
+ root: string;
51
+ addon: string;
52
+ addonButton: string;
53
+ }>;
54
+ };
55
+ modern: {
56
+ common: string;
57
+ styles: Record<BadgeColors, {
58
+ root: string;
59
+ addon: string;
60
+ }>;
61
+ };
13
62
  };
14
- declare const sizeClass: {
15
- readonly md: "min-h-6 min-w-6 px-2 text-xs";
16
- readonly lg: "min-h-7 min-w-7 px-2.5 text-sm";
17
- };
18
- type BadgeProps = React.HTMLAttributes<HTMLSpanElement> & {
19
- /** @default secondary — same as Button default. */
20
- variant?: keyof typeof variantClass;
21
- /** @default md */
22
- size?: keyof typeof sizeClass;
23
- /**
24
- * Corner radius — same options as `Button` (`full` | `lg` | `md`).
25
- * @default full (pill)
26
- */
27
- rounded?: keyof typeof roundedClass;
28
- /**
29
- * When set, the label is the number capped at `max` with a "+" suffix
30
- * (e.g. `max={99}` `99+`). Ignores `children` for the visible text.
31
- */
32
- count?: number;
33
- /** Upper bound before showing `{max}+`. Default `99`. */
34
- max?: number;
35
- /**
36
- * Hex color (`#RGB`, `#RRGGBB`, or `#RRGGBBAA`) — tints the badge to that
37
- * hue. When set, `variant` is ignored for colors. Invalid values are ignored
38
- * and the badge falls back to `variant`.
39
- */
40
- overrideColor?: string;
41
- };
42
- declare const Badge: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLSpanElement> & {
43
- /** @default secondary — same as Button default. */
44
- variant?: keyof typeof variantClass;
45
- /** @default md */
46
- size?: keyof typeof sizeClass;
47
- /**
48
- * Corner radius same options as `Button` (`full` | `lg` | `md`).
49
- * @default full (pill)
50
- */
51
- rounded?: keyof typeof roundedClass;
63
+ type BadgeColor<T extends BadgeTypes> = BadgeTypeToColorMap<typeof withPillTypes>[T];
64
+ interface BadgeProps<T extends BadgeTypes> {
65
+ type?: T;
66
+ size?: Sizes;
67
+ color?: BadgeColor<T>;
68
+ children: ReactNode;
69
+ className?: string;
70
+ }
71
+ declare const Badge: <T extends BadgeTypes>(props: BadgeProps<T>) => react.JSX.Element;
72
+ interface BadgeWithDotProps<T extends BadgeTypes> {
73
+ type?: T;
74
+ size?: Sizes;
75
+ color?: BadgeTypeToColorMap<typeof withBadgeTypes>[T];
76
+ className?: string;
77
+ children: ReactNode;
78
+ }
79
+ declare const BadgeWithDot: <T extends BadgeTypes>(props: BadgeWithDotProps<T>) => react.JSX.Element;
80
+ interface BadgeWithIconProps<T extends BadgeTypes> {
81
+ type?: T;
82
+ size?: Sizes;
83
+ color?: BadgeTypeToColorMap<typeof withBadgeTypes>[T];
84
+ iconLeading?: IconComponentType;
85
+ iconTrailing?: IconComponentType;
86
+ children: ReactNode;
87
+ className?: string;
88
+ }
89
+ declare const BadgeWithIcon: <T extends BadgeTypes>(props: BadgeWithIconProps<T>) => react.JSX.Element;
90
+ interface BadgeWithFlagProps<T extends BadgeTypes> {
91
+ type?: T;
92
+ size?: Sizes;
93
+ flag?: FlagTypes;
94
+ color?: BadgeTypeToColorMap<typeof withPillTypes>[T];
95
+ children: ReactNode;
96
+ }
97
+ declare const BadgeWithFlag: <T extends BadgeTypes>(props: BadgeWithFlagProps<T>) => react.JSX.Element;
98
+ interface BadgeWithImageProps<T extends BadgeTypes> {
99
+ type?: T;
100
+ size?: Sizes;
101
+ imgSrc: string;
102
+ color?: BadgeTypeToColorMap<typeof withPillTypes>[T];
103
+ children: ReactNode;
104
+ }
105
+ declare const BadgeWithImage: <T extends BadgeTypes>(props: BadgeWithImageProps<T>) => react.JSX.Element;
106
+ interface BadgeWithButtonProps<T extends BadgeTypes> {
107
+ type?: T;
108
+ size?: Sizes;
109
+ icon?: IconComponentType;
110
+ color?: BadgeTypeToColorMap<typeof withPillTypes>[T];
111
+ children: ReactNode;
52
112
  /**
53
- * When set, the label is the number capped at `max` with a "+" suffix
54
- * (e.g. `max={99}` → `99+`). Ignores `children` for the visible text.
113
+ * The label for the button.
55
114
  */
56
- count?: number;
57
- /** Upper bound before showing `{max}+`. Default `99`. */
58
- max?: number;
115
+ buttonLabel?: string;
59
116
  /**
60
- * Hex color (`#RGB`, `#RRGGBB`, or `#RRGGBBAA`) — tints the badge to that
61
- * hue. When set, `variant` is ignored for colors. Invalid values are ignored
62
- * and the badge falls back to `variant`.
117
+ * The click event handler for the button.
63
118
  */
64
- overrideColor?: string;
65
- } & React.RefAttributes<HTMLSpanElement>>;
119
+ onButtonClick?: MouseEventHandler<HTMLButtonElement>;
120
+ }
121
+ declare const BadgeWithButton: <T extends BadgeTypes>(props: BadgeWithButtonProps<T>) => react.JSX.Element;
122
+ interface BadgeIconProps<T extends BadgeTypes> {
123
+ type?: T;
124
+ size?: Sizes;
125
+ icon: IconComponentType;
126
+ color?: BadgeTypeToColorMap<typeof withPillTypes>[T];
127
+ children?: ReactNode;
128
+ }
129
+ declare const BadgeIcon: <T extends BadgeTypes>(props: BadgeIconProps<T>) => react.JSX.Element;
66
130
 
67
- export { Badge, type BadgeProps };
131
+ export { Badge, type BadgeColor, BadgeIcon, BadgeWithButton, BadgeWithDot, BadgeWithFlag, BadgeWithIcon, BadgeWithImage, filledColors };
@@ -1,98 +1,326 @@
1
- import * as React from 'react';
2
- import { clsx } from 'clsx';
3
- import { twMerge } from 'tailwind-merge';
4
- import { jsx } from 'react/jsx-runtime';
1
+ import { XIcon } from '@phosphor-icons/react/dist/csr/X';
2
+ import { jsx, jsxs } from 'react/jsx-runtime';
3
+ import { extendTailwindMerge } from 'tailwind-merge';
5
4
 
6
- function cn(...inputs) {
7
- return twMerge(clsx(inputs));
8
- }
9
- var variantClass = {
10
- primary: "border border-transparent bg-primary text-background",
11
- secondary: "border border-primary/10 bg-transparent text-primary"
5
+ var sizes = {
6
+ sm: {
7
+ wh: 8,
8
+ c: 4,
9
+ r: 2.5
10
+ },
11
+ md: {
12
+ wh: 10,
13
+ c: 5,
14
+ r: 4
15
+ }
16
+ };
17
+ var Dot = ({ size = "md", ...props }) => {
18
+ return /* @__PURE__ */ jsx("svg", { width: sizes[size].wh, height: sizes[size].wh, viewBox: `0 0 ${sizes[size].wh} ${sizes[size].wh}`, fill: "none", ...props, children: /* @__PURE__ */ jsx("circle", { cx: sizes[size].c, cy: sizes[size].c, r: sizes[size].r, fill: "currentColor", stroke: "currentColor" }) });
19
+ };
20
+ var twMerge = extendTailwindMerge({
21
+ extend: {
22
+ theme: {
23
+ text: ["display-xs", "display-sm", "display-md", "display-lg", "display-xl", "display-2xl"]
24
+ }
25
+ }
26
+ });
27
+ var cx = twMerge;
28
+
29
+ // ../../components/base/badges/badge-types.ts
30
+ var badgeTypes = {
31
+ pillColor: "pill-color",
32
+ badgeColor: "color",
33
+ badgeModern: "modern"
12
34
  };
13
- var roundedClass = {
14
- full: "rounded-full",
15
- lg: "rounded-lg",
16
- md: "rounded-md"
35
+ var focusShadowPlain = "focus-visible:outline-none focus-visible:[box-shadow:0px_0px_0px_2px_var(--color-bg-primary),0px_0px_0px_4px_var(--color-focus-ring)]";
36
+ var filledColors = {
37
+ gray: {
38
+ root: "bg-utility-neutral-50 text-utility-neutral-700 ring-utility-neutral-200",
39
+ addon: "text-utility-neutral-500",
40
+ addonButton: "hover:bg-utility-neutral-100 text-utility-neutral-400 hover:text-utility-neutral-500"
41
+ },
42
+ brand: {
43
+ root: "bg-utility-brand-50 text-utility-brand-700 ring-utility-brand-200",
44
+ addon: "text-utility-brand-500",
45
+ addonButton: "hover:bg-utility-brand-100 text-utility-brand-400 hover:text-utility-brand-500"
46
+ },
47
+ error: {
48
+ root: "bg-utility-red-50 text-utility-red-700 ring-utility-red-200",
49
+ addon: "text-utility-red-500",
50
+ addonButton: "hover:bg-utility-red-100 text-utility-red-400 hover:text-utility-red-500"
51
+ },
52
+ warning: {
53
+ root: "bg-utility-yellow-50 text-utility-yellow-700 ring-utility-yellow-200",
54
+ addon: "text-utility-yellow-500",
55
+ addonButton: "hover:bg-utility-yellow-100 text-utility-yellow-400 hover:text-utility-yellow-500"
56
+ },
57
+ success: {
58
+ root: "bg-utility-green-50 text-utility-green-700 ring-utility-green-200",
59
+ addon: "text-utility-green-500",
60
+ addonButton: "hover:bg-utility-green-100 text-utility-green-400 hover:text-utility-green-500"
61
+ },
62
+ slate: {
63
+ root: "bg-utility-slate-50 text-utility-slate-700 ring-utility-slate-200",
64
+ addon: "text-utility-slate-500",
65
+ addonButton: "hover:bg-utility-slate-100 text-utility-slate-400 hover:text-utility-slate-500"
66
+ },
67
+ sky: {
68
+ root: "bg-utility-sky-50 text-utility-sky-700 ring-utility-sky-200",
69
+ addon: "text-utility-sky-500",
70
+ addonButton: "hover:bg-utility-sky-100 text-utility-sky-400 hover:text-utility-sky-500"
71
+ },
72
+ blue: {
73
+ root: "bg-utility-blue-50 text-utility-blue-700 ring-utility-blue-200",
74
+ addon: "text-utility-blue-500",
75
+ addonButton: "hover:bg-utility-blue-100 text-utility-blue-400 hover:text-utility-blue-500"
76
+ },
77
+ indigo: {
78
+ root: "bg-utility-indigo-50 text-utility-indigo-700 ring-utility-indigo-200",
79
+ addon: "text-utility-indigo-500",
80
+ addonButton: "hover:bg-utility-indigo-100 text-utility-indigo-400 hover:text-utility-indigo-500"
81
+ },
82
+ purple: {
83
+ root: "bg-utility-purple-50 text-utility-purple-700 ring-utility-purple-200",
84
+ addon: "text-utility-purple-500",
85
+ addonButton: "hover:bg-utility-purple-100 text-utility-purple-400 hover:text-utility-purple-500"
86
+ },
87
+ pink: {
88
+ root: "bg-utility-pink-50 text-utility-pink-700 ring-utility-pink-200",
89
+ addon: "text-utility-pink-500",
90
+ addonButton: "hover:bg-utility-pink-100 text-utility-pink-400 hover:text-utility-pink-500"
91
+ },
92
+ orange: {
93
+ root: "bg-utility-orange-50 text-utility-orange-700 ring-utility-orange-200",
94
+ addon: "text-utility-orange-500",
95
+ addonButton: "hover:bg-utility-orange-100 text-utility-orange-400 hover:text-utility-orange-500"
96
+ }
17
97
  };
18
- var sizeClass = {
19
- md: "min-h-6 min-w-6 px-2 text-xs",
20
- lg: "min-h-7 min-w-7 px-2.5 text-sm"
98
+ var addonOnlyColors = Object.fromEntries(Object.entries(filledColors).map(([key, value]) => [key, { root: "", addon: value.addon }]));
99
+ var withPillTypes = {
100
+ [badgeTypes.pillColor]: {
101
+ common: "size-max flex items-center whitespace-nowrap rounded-full ring-1 ring-inset",
102
+ styles: filledColors
103
+ },
104
+ [badgeTypes.badgeColor]: {
105
+ common: "size-max flex items-center whitespace-nowrap rounded-md ring-1 ring-inset",
106
+ styles: filledColors
107
+ },
108
+ [badgeTypes.badgeModern]: {
109
+ common: "size-max flex items-center whitespace-nowrap rounded-md ring-1 ring-inset shadow-xs",
110
+ styles: {
111
+ gray: {
112
+ root: "bg-primary text-secondary ring-primary",
113
+ addon: "text-neutral-500",
114
+ addonButton: "hover:bg-utility-neutral-100 text-utility-neutral-400 hover:text-utility-neutral-500"
115
+ }
116
+ }
117
+ }
21
118
  };
22
- var OVERRIDE_BG_ALPHA = 0.18;
23
- var OVERRIDE_BORDER_ALPHA = 0.38;
24
- function parseHexToRgb(value) {
25
- const v = value.trim();
26
- if (!v.startsWith("#") || v.length < 2) return null;
27
- let h = v.slice(1);
28
- if (h.length === 3) {
29
- h = h.split("").map((c) => c + c).join("");
30
- } else if (h.length === 8) {
31
- h = h.slice(0, 6);
119
+ var withBadgeTypes = {
120
+ [badgeTypes.pillColor]: {
121
+ common: "size-max flex items-center whitespace-nowrap rounded-full ring-1 ring-inset",
122
+ styles: filledColors
123
+ },
124
+ [badgeTypes.badgeColor]: {
125
+ common: "size-max flex items-center whitespace-nowrap rounded-md ring-1 ring-inset",
126
+ styles: filledColors
127
+ },
128
+ [badgeTypes.badgeModern]: {
129
+ common: "size-max flex items-center whitespace-nowrap rounded-md ring-1 ring-inset bg-primary text-secondary ring-primary shadow-xs",
130
+ styles: addonOnlyColors
32
131
  }
33
- if (h.length !== 6 || !/^[0-9A-Fa-f]{6}$/i.test(h)) return null;
34
- const r = parseInt(h.slice(0, 2), 16);
35
- const g = parseInt(h.slice(2, 4), 16);
36
- const b = parseInt(h.slice(4, 6), 16);
37
- if ([r, g, b].some((n) => Number.isNaN(n))) return null;
38
- return { r, g, b };
39
- }
40
- function overrideColorStyles(rgb) {
41
- const { r, g, b } = rgb;
42
- return {
43
- backgroundColor: `rgba(${r},${g},${b},${OVERRIDE_BG_ALPHA})`,
44
- color: `rgb(${r},${g},${b})`,
45
- boxShadow: `inset 0 0 0 1px rgba(${r},${g},${b},${OVERRIDE_BORDER_ALPHA})`
46
- };
47
- }
48
- function formatCount(count, max) {
49
- if (count > max) return `${max}+`;
50
- return String(count);
51
- }
52
- var Badge = React.forwardRef(
53
- ({
54
- className,
55
- variant = "secondary",
56
- size = "md",
57
- rounded = "full",
58
- count,
59
- max = 99,
132
+ };
133
+ var Badge = (props) => {
134
+ const { type = "pill-color", size = "md", color = "gray", children } = props;
135
+ const colors = withPillTypes[type];
136
+ const pillSizes = {
137
+ sm: "py-0.5 px-2 text-xs font-semibold",
138
+ md: "py-0.5 px-2.5 text-sm font-semibold",
139
+ lg: "py-1 px-3 text-sm font-semibold"
140
+ };
141
+ const badgeSizes = {
142
+ sm: "py-0.5 px-1.5 text-xs font-semibold",
143
+ md: "py-0.5 px-2 text-sm font-semibold",
144
+ lg: "py-1 px-2.5 text-sm font-semibold rounded-lg"
145
+ };
146
+ const sizes2 = {
147
+ [badgeTypes.pillColor]: pillSizes,
148
+ [badgeTypes.badgeColor]: badgeSizes,
149
+ [badgeTypes.badgeModern]: badgeSizes
150
+ };
151
+ return /* @__PURE__ */ jsx("span", { className: cx(colors.common, sizes2[type][size], colors.styles[color].root, props.className), children });
152
+ };
153
+ var BadgeWithDot = (props) => {
154
+ const { size = "md", color = "gray", type = "pill-color", className, children } = props;
155
+ const colors = withBadgeTypes[type];
156
+ const pillSizes = {
157
+ sm: "gap-1 py-0.5 pl-1.5 pr-2 text-xs font-semibold",
158
+ md: "gap-1.5 py-0.5 pl-2 pr-2.5 text-sm font-semibold",
159
+ lg: "gap-1.5 py-1 pl-2.5 pr-3 text-sm font-semibold"
160
+ };
161
+ const badgeSizes = {
162
+ sm: "gap-1 py-0.5 px-1.5 text-xs font-semibold",
163
+ md: "gap-1.5 py-0.5 px-2 text-sm font-semibold",
164
+ lg: "gap-1.5 py-1 px-2.5 text-sm font-semibold rounded-lg"
165
+ };
166
+ const sizes2 = {
167
+ [badgeTypes.pillColor]: pillSizes,
168
+ [badgeTypes.badgeColor]: badgeSizes,
169
+ [badgeTypes.badgeModern]: badgeSizes
170
+ };
171
+ return /* @__PURE__ */ jsxs("span", { className: cx(colors.common, sizes2[type][size], colors.styles[color].root, className), children: [
172
+ /* @__PURE__ */ jsx(Dot, { className: colors.styles[color].addon, size: "sm" }),
173
+ children
174
+ ] });
175
+ };
176
+ var badgeIconClassName = "size-3";
177
+ var BadgeWithIcon = (props) => {
178
+ const { size = "md", color = "gray", type = "pill-color", iconLeading: IconLeading, iconTrailing: IconTrailing, children, className } = props;
179
+ const colors = withBadgeTypes[type];
180
+ const icon = IconLeading ? "leading" : "trailing";
181
+ const pillSizes = {
182
+ sm: {
183
+ trailing: "gap-0.5 py-0.5 pl-2 pr-1.5 text-xs font-semibold",
184
+ leading: "gap-0.5 py-0.5 pr-2 pl-1.5 text-xs font-semibold"
185
+ },
186
+ md: {
187
+ trailing: "gap-1 py-0.5 pl-2.5 pr-2 text-sm font-semibold",
188
+ leading: "gap-1 py-0.5 pr-2.5 pl-2 text-sm font-semibold"
189
+ },
190
+ lg: {
191
+ trailing: "gap-1 py-1 pl-3 pr-2.5 text-sm font-semibold",
192
+ leading: "gap-1 py-1 pr-3 pl-2.5 text-sm font-semibold"
193
+ }
194
+ };
195
+ const badgeSizes = {
196
+ sm: {
197
+ trailing: "gap-0.5 py-0.5 pl-2 pr-1.5 text-xs font-semibold",
198
+ leading: "gap-0.5 py-0.5 pr-2 pl-1.5 text-xs font-semibold"
199
+ },
200
+ md: {
201
+ trailing: "gap-1 py-0.5 pl-2 pr-1.5 text-sm font-semibold",
202
+ leading: "gap-1 py-0.5 pr-2 pl-1.5 text-sm font-semibold"
203
+ },
204
+ lg: {
205
+ trailing: "gap-1 py-1 pl-2.5 pr-2 text-sm font-semibold rounded-lg",
206
+ leading: "gap-1 py-1 pr-2.5 pl-2 text-sm font-semibold rounded-lg"
207
+ }
208
+ };
209
+ const sizes2 = {
210
+ [badgeTypes.pillColor]: pillSizes,
211
+ [badgeTypes.badgeColor]: badgeSizes,
212
+ [badgeTypes.badgeModern]: badgeSizes
213
+ };
214
+ return /* @__PURE__ */ jsxs("span", { className: cx(colors.common, sizes2[type][size][icon], colors.styles[color].root, className), children: [
215
+ IconLeading && /* @__PURE__ */ jsx(IconLeading, { weight: "bold", className: cx(colors.styles[color].addon, badgeIconClassName) }),
60
216
  children,
61
- "aria-label": ariaLabelProp,
62
- overrideColor,
63
- style,
64
- ...props
65
- }, ref) => {
66
- const content = count !== void 0 ? formatCount(count, max) : children;
67
- const rgb = overrideColor && overrideColor.trim() !== "" ? parseHexToRgb(overrideColor) : null;
68
- const useOverride = rgb != null;
69
- const overrideStyle = useOverride ? overrideColorStyles(rgb) : void 0;
70
- return /* @__PURE__ */ jsx(
71
- "span",
217
+ IconTrailing && /* @__PURE__ */ jsx(IconTrailing, { weight: "bold", className: cx(colors.styles[color].addon, badgeIconClassName) })
218
+ ] });
219
+ };
220
+ var BadgeWithFlag = (props) => {
221
+ const { size = "md", color = "gray", flag = "AU", type = "pill-color", children } = props;
222
+ const colors = withPillTypes[type];
223
+ const pillSizes = {
224
+ sm: "gap-1 py-0.5 pl-0.75 pr-2 text-xs font-semibold",
225
+ md: "gap-1.5 py-0.5 pl-1 pr-2.5 text-sm font-semibold",
226
+ lg: "gap-1.5 py-1 pl-1.5 pr-3 text-sm font-semibold"
227
+ };
228
+ const badgeSizes = {
229
+ sm: "gap-1 py-0.5 pl-1 pr-1.5 text-xs font-semibold",
230
+ md: "gap-1.5 py-0.5 pl-1.5 pr-2 text-sm font-semibold",
231
+ lg: "gap-1.5 py-1 pl-2 pr-2.5 text-sm font-semibold rounded-lg"
232
+ };
233
+ const sizes2 = {
234
+ [badgeTypes.pillColor]: pillSizes,
235
+ [badgeTypes.badgeColor]: badgeSizes,
236
+ [badgeTypes.badgeModern]: badgeSizes
237
+ };
238
+ return /* @__PURE__ */ jsxs("span", { className: cx(colors.common, sizes2[type][size], colors.styles[color].root), children: [
239
+ /* @__PURE__ */ jsx("img", { src: `https://www.untitledui.com/images/flags/${flag}.svg`, className: "size-4 max-w-none rounded-full", alt: `${flag} flag` }),
240
+ children
241
+ ] });
242
+ };
243
+ var BadgeWithImage = (props) => {
244
+ const { size = "md", color = "gray", type = "pill-color", imgSrc, children } = props;
245
+ const colors = withPillTypes[type];
246
+ const pillSizes = {
247
+ sm: "gap-1 py-0.5 pl-0.75 pr-2 text-xs font-semibold",
248
+ md: "gap-1.5 py-0.5 pl-1 pr-2.5 text-sm font-semibold",
249
+ lg: "gap-1.5 py-1 pl-1.5 pr-3 text-sm font-semibold"
250
+ };
251
+ const badgeSizes = {
252
+ sm: "gap-1 py-0.5 pl-1 pr-1.5 text-xs font-semibold",
253
+ md: "gap-1.5 py-0.5 pl-1.5 pr-2 text-sm font-semibold",
254
+ lg: "gap-1.5 py-1 pl-2 pr-2.5 text-sm font-semibold rounded-lg"
255
+ };
256
+ const sizes2 = {
257
+ [badgeTypes.pillColor]: pillSizes,
258
+ [badgeTypes.badgeColor]: badgeSizes,
259
+ [badgeTypes.badgeModern]: badgeSizes
260
+ };
261
+ return /* @__PURE__ */ jsxs("span", { className: cx(colors.common, sizes2[type][size], colors.styles[color].root), children: [
262
+ /* @__PURE__ */ jsx("img", { src: imgSrc, className: "size-4 max-w-none rounded-full", alt: "Badge image" }),
263
+ children
264
+ ] });
265
+ };
266
+ var BadgeWithButton = (props) => {
267
+ const { size = "md", color = "gray", type = "pill-color", icon: Icon = XIcon, buttonLabel, children } = props;
268
+ const colors = withPillTypes[type];
269
+ const pillSizes = {
270
+ sm: "gap-0.5 py-0.5 pl-2 pr-0.75 text-xs font-semibold",
271
+ md: "gap-0.5 py-0.5 pl-2.5 pr-1 text-sm font-semibold",
272
+ lg: "gap-0.5 py-1 pl-3 pr-1.5 text-sm font-semibold"
273
+ };
274
+ const badgeSizes = {
275
+ sm: "gap-0.5 py-0.5 pl-1.5 pr-0.75 text-xs font-semibold",
276
+ md: "gap-0.5 py-0.5 pl-2 pr-1 text-sm font-semibold",
277
+ lg: "gap-0.5 py-1 pl-2.5 pr-1.5 text-sm font-semibold rounded-lg"
278
+ };
279
+ const sizes2 = {
280
+ [badgeTypes.pillColor]: pillSizes,
281
+ [badgeTypes.badgeColor]: badgeSizes,
282
+ [badgeTypes.badgeModern]: badgeSizes
283
+ };
284
+ return /* @__PURE__ */ jsxs("span", { className: cx(colors.common, sizes2[type][size], colors.styles[color].root), children: [
285
+ children,
286
+ /* @__PURE__ */ jsx(
287
+ "button",
72
288
  {
73
- ref,
74
- "data-slot": "badge",
75
- "data-size": size,
76
- "data-rounded": rounded,
77
- "data-override": useOverride ? "true" : void 0,
78
- "aria-label": ariaLabelProp,
79
- className: cn(
80
- "inline-flex shrink-0 items-center justify-center font-semibold leading-none tabular-nums",
81
- roundedClass[rounded],
82
- sizeClass[size],
83
- !useOverride && variantClass[variant],
84
- useOverride && "border-0",
85
- className
289
+ type: "button",
290
+ "aria-label": buttonLabel,
291
+ onClick: props.onButtonClick,
292
+ className: cx(
293
+ "flex cursor-pointer items-center justify-center p-0.5 transition duration-100 ease-linear",
294
+ focusShadowPlain,
295
+ colors.styles[color].addonButton,
296
+ type === "pill-color" ? "rounded-full" : "rounded-[3px]"
86
297
  ),
87
- style: { ...overrideStyle, ...style },
88
- ...props,
89
- children: content
298
+ children: /* @__PURE__ */ jsx(Icon, { weight: "bold", className: cx(badgeIconClassName, "transition-inherit-all") })
90
299
  }
91
- );
92
- }
93
- );
94
- Badge.displayName = "Badge";
300
+ )
301
+ ] });
302
+ };
303
+ var BadgeIcon = (props) => {
304
+ const { size = "md", color = "gray", type = "pill-color", icon: Icon } = props;
305
+ const colors = withPillTypes[type];
306
+ const pillSizes = {
307
+ sm: "p-1.25",
308
+ md: "p-1.5",
309
+ lg: "p-2"
310
+ };
311
+ const badgeSizes = {
312
+ sm: "p-1.25",
313
+ md: "p-1.5",
314
+ lg: "p-2 rounded-lg"
315
+ };
316
+ const sizes2 = {
317
+ [badgeTypes.pillColor]: pillSizes,
318
+ [badgeTypes.badgeColor]: badgeSizes,
319
+ [badgeTypes.badgeModern]: badgeSizes
320
+ };
321
+ return /* @__PURE__ */ jsx("span", { className: cx(colors.common, sizes2[type][size], colors.styles[color].root), children: /* @__PURE__ */ jsx(Icon, { weight: "bold", className: cx(badgeIconClassName, colors.styles[color].addon) }) });
322
+ };
95
323
 
96
- export { Badge };
324
+ export { Badge, BadgeIcon, BadgeWithButton, BadgeWithDot, BadgeWithFlag, BadgeWithIcon, BadgeWithImage, filledColors };
97
325
  //# sourceMappingURL=badge.js.map
98
326
  //# sourceMappingURL=badge.js.map