@hoardodile/ui 0.1.6 → 0.1.8

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 (273) hide show
  1. package/dist/chunk-2BVZEYNW.js +97 -0
  2. package/dist/chunk-2BVZEYNW.js.map +1 -0
  3. package/dist/chunk-2DTR6CD5.js +47 -0
  4. package/dist/chunk-2DTR6CD5.js.map +1 -0
  5. package/dist/chunk-2HWSCY4T.js +20 -0
  6. package/dist/chunk-2HWSCY4T.js.map +1 -0
  7. package/dist/chunk-363CCKQ7.js +75 -0
  8. package/dist/chunk-363CCKQ7.js.map +1 -0
  9. package/dist/chunk-3ZQJWBVB.js +30 -0
  10. package/dist/chunk-3ZQJWBVB.js.map +1 -0
  11. package/dist/chunk-4D36OO5W.js +277 -0
  12. package/dist/chunk-4D36OO5W.js.map +1 -0
  13. package/dist/chunk-4UITFLIN.js +31 -0
  14. package/dist/chunk-4UITFLIN.js.map +1 -0
  15. package/dist/chunk-6HAIUXNZ.js +11 -0
  16. package/dist/chunk-6HAIUXNZ.js.map +1 -0
  17. package/dist/chunk-7JMMFY67.js +62 -0
  18. package/dist/chunk-7JMMFY67.js.map +1 -0
  19. package/dist/chunk-7MWWHI6T.js +1149 -0
  20. package/dist/chunk-7MWWHI6T.js.map +1 -0
  21. package/dist/chunk-AEHTAUAQ.js +65 -0
  22. package/dist/chunk-AEHTAUAQ.js.map +1 -0
  23. package/dist/chunk-ASRGQ5BD.js +130 -0
  24. package/dist/chunk-ASRGQ5BD.js.map +1 -0
  25. package/dist/chunk-BFGOE5AI.js +187 -0
  26. package/dist/chunk-BFGOE5AI.js.map +1 -0
  27. package/dist/chunk-BRT25IDQ.js +46 -0
  28. package/dist/chunk-BRT25IDQ.js.map +1 -0
  29. package/dist/chunk-BU5DQOPM.js +29 -0
  30. package/dist/chunk-BU5DQOPM.js.map +1 -0
  31. package/dist/chunk-BWASOT5X.js +266 -0
  32. package/dist/chunk-BWASOT5X.js.map +1 -0
  33. package/dist/chunk-F32V4Z7Q.js +26 -0
  34. package/dist/chunk-F32V4Z7Q.js.map +1 -0
  35. package/dist/chunk-F7RHDRRJ.js +24 -0
  36. package/dist/chunk-F7RHDRRJ.js.map +1 -0
  37. package/dist/chunk-FH5RNCFR.js +21 -0
  38. package/dist/chunk-FH5RNCFR.js.map +1 -0
  39. package/dist/chunk-GKSX5ULZ.js +513 -0
  40. package/dist/chunk-GKSX5ULZ.js.map +1 -0
  41. package/dist/chunk-JPFDNRCA.js +26 -0
  42. package/dist/chunk-JPFDNRCA.js.map +1 -0
  43. package/dist/chunk-KNPRUZ4H.js +13 -0
  44. package/dist/chunk-KNPRUZ4H.js.map +1 -0
  45. package/dist/chunk-KOFWEPPB.js +254 -0
  46. package/dist/chunk-KOFWEPPB.js.map +1 -0
  47. package/dist/chunk-M5OJN54O.js +10 -0
  48. package/dist/chunk-M5OJN54O.js.map +1 -0
  49. package/dist/chunk-OEVALKQ5.js +51 -0
  50. package/dist/chunk-OEVALKQ5.js.map +1 -0
  51. package/dist/chunk-OW5FWLPH.js +33 -0
  52. package/dist/chunk-OW5FWLPH.js.map +1 -0
  53. package/dist/chunk-POX7TXBH.js +41 -0
  54. package/dist/chunk-POX7TXBH.js.map +1 -0
  55. package/dist/chunk-PWJBHUM2.js +58 -0
  56. package/dist/chunk-PWJBHUM2.js.map +1 -0
  57. package/dist/chunk-QGMDWGJT.js +23 -0
  58. package/dist/chunk-QGMDWGJT.js.map +1 -0
  59. package/dist/chunk-QGTQQNUL.js +36 -0
  60. package/dist/chunk-QGTQQNUL.js.map +1 -0
  61. package/dist/chunk-SAY52ZKI.js +152 -0
  62. package/dist/chunk-SAY52ZKI.js.map +1 -0
  63. package/dist/chunk-SKDPGSRL.js +166 -0
  64. package/dist/chunk-SKDPGSRL.js.map +1 -0
  65. package/dist/chunk-T56ARCUK.js +38 -0
  66. package/dist/chunk-T56ARCUK.js.map +1 -0
  67. package/dist/chunk-TDDHQZ62.js +227 -0
  68. package/dist/chunk-TDDHQZ62.js.map +1 -0
  69. package/dist/chunk-TMQ5OMBK.js +29 -0
  70. package/dist/chunk-TMQ5OMBK.js.map +1 -0
  71. package/dist/chunk-UEVND7AS.js +23 -0
  72. package/dist/chunk-UEVND7AS.js.map +1 -0
  73. package/dist/chunk-UPWHCG4S.js +40 -0
  74. package/dist/chunk-UPWHCG4S.js.map +1 -0
  75. package/dist/chunk-VWUNF7VX.js +3 -0
  76. package/dist/chunk-VWUNF7VX.js.map +1 -0
  77. package/dist/chunk-WI6O7GZK.js +45 -0
  78. package/dist/chunk-WI6O7GZK.js.map +1 -0
  79. package/dist/chunk-WVEK3WCX.js +21 -0
  80. package/dist/chunk-WVEK3WCX.js.map +1 -0
  81. package/dist/chunk-XBPQEZES.js +48 -0
  82. package/dist/chunk-XBPQEZES.js.map +1 -0
  83. package/dist/chunk-ZYAGKKR7.js +142 -0
  84. package/dist/chunk-ZYAGKKR7.js.map +1 -0
  85. package/dist/components/alert.js +2 -21
  86. package/dist/components/alert.js.map +1 -1
  87. package/dist/components/app-dialog.js +10 -654
  88. package/dist/components/app-dialog.js.map +1 -1
  89. package/dist/components/badge.js +2 -23
  90. package/dist/components/badge.js.map +1 -1
  91. package/dist/components/breadcrumb.js +5 -501
  92. package/dist/components/breadcrumb.js.map +1 -1
  93. package/dist/components/button.js +3 -76
  94. package/dist/components/button.js.map +1 -1
  95. package/dist/components/caption-bar.js +7 -518
  96. package/dist/components/caption-bar.js.map +1 -1
  97. package/dist/components/checkbox.js +4 -74
  98. package/dist/components/checkbox.js.map +1 -1
  99. package/dist/components/chip-button.js +4 -85
  100. package/dist/components/chip-button.js.map +1 -1
  101. package/dist/components/close-confirm-dialog.js +12 -662
  102. package/dist/components/close-confirm-dialog.js.map +1 -1
  103. package/dist/components/color-picker.js +7 -530
  104. package/dist/components/color-picker.js.map +1 -1
  105. package/dist/components/combobox.js +15 -934
  106. package/dist/components/combobox.js.map +1 -1
  107. package/dist/components/confirm-by-typing-dialog.js +12 -669
  108. package/dist/components/confirm-by-typing-dialog.js.map +1 -1
  109. package/dist/components/confirm-dialog.js +11 -637
  110. package/dist/components/confirm-dialog.js.map +1 -1
  111. package/dist/components/count-badge.js +2 -21
  112. package/dist/components/count-badge.js.map +1 -1
  113. package/dist/components/dialog.js +8 -569
  114. package/dist/components/dialog.js.map +1 -1
  115. package/dist/components/dropdown-menu.js +9 -1004
  116. package/dist/components/dropdown-menu.js.map +1 -1
  117. package/dist/components/dropdown-select.js +9 -880
  118. package/dist/components/dropdown-select.js.map +1 -1
  119. package/dist/components/empty.js +2 -21
  120. package/dist/components/empty.js.map +1 -1
  121. package/dist/components/filter-rail.js +7 -145
  122. package/dist/components/filter-rail.js.map +1 -1
  123. package/dist/components/fixed-action-bar.js +2 -21
  124. package/dist/components/fixed-action-bar.js.map +1 -1
  125. package/dist/components/font-picker.js +11 -586
  126. package/dist/components/font-picker.js.map +1 -1
  127. package/dist/components/form.js +9 -66
  128. package/dist/components/form.js.map +1 -1
  129. package/dist/components/icon-tile.js +3 -43
  130. package/dist/components/icon-tile.js.map +1 -1
  131. package/dist/components/icon-toggle.js +3 -43
  132. package/dist/components/icon-toggle.js.map +1 -1
  133. package/dist/components/icon.js +3 -47
  134. package/dist/components/icon.js.map +1 -1
  135. package/dist/components/image-crop-panel.js +19 -772
  136. package/dist/components/image-crop-panel.js.map +1 -1
  137. package/dist/components/image-cropper.js +1 -164
  138. package/dist/components/image-cropper.js.map +1 -1
  139. package/dist/components/input-group.js +6 -268
  140. package/dist/components/input-group.js.map +1 -1
  141. package/dist/components/input.js +3 -58
  142. package/dist/components/input.js.map +1 -1
  143. package/dist/components/label.js +3 -38
  144. package/dist/components/label.js.map +1 -1
  145. package/dist/components/list-empty-row.js +2 -21
  146. package/dist/components/list-empty-row.js.map +1 -1
  147. package/dist/components/management-empty.js +2 -21
  148. package/dist/components/management-empty.js.map +1 -1
  149. package/dist/components/management-skeleton.js +4 -59
  150. package/dist/components/management-skeleton.js.map +1 -1
  151. package/dist/components/meta-chip.js +2 -21
  152. package/dist/components/meta-chip.js.map +1 -1
  153. package/dist/components/mobile-drawer.js +7 -268
  154. package/dist/components/mobile-drawer.js.map +1 -1
  155. package/dist/components/page-header.js +3 -42
  156. package/dist/components/page-header.js.map +1 -1
  157. package/dist/components/page-scaffold.js +5 -76
  158. package/dist/components/page-scaffold.js.map +1 -1
  159. package/dist/components/pagination-bar.js +13 -614
  160. package/dist/components/pagination-bar.js.map +1 -1
  161. package/dist/components/pagination.js +6 -681
  162. package/dist/components/pagination.js.map +1 -1
  163. package/dist/components/panel-toolbar.js +11 -713
  164. package/dist/components/panel-toolbar.js.map +1 -1
  165. package/dist/components/pill-tabs.js +2 -21
  166. package/dist/components/pill-tabs.js.map +1 -1
  167. package/dist/components/plugin-download-consent.js +13 -663
  168. package/dist/components/plugin-download-consent.js.map +1 -1
  169. package/dist/components/popover.js +5 -242
  170. package/dist/components/popover.js.map +1 -1
  171. package/dist/components/preview-card.js +2 -21
  172. package/dist/components/preview-card.js.map +1 -1
  173. package/dist/components/progress.js +2 -20
  174. package/dist/components/progress.js.map +1 -1
  175. package/dist/components/radio-group.js +2 -21
  176. package/dist/components/radio-group.js.map +1 -1
  177. package/dist/components/scroll-area.js +2 -21
  178. package/dist/components/scroll-area.js.map +1 -1
  179. package/dist/components/search-field.js +6 -587
  180. package/dist/components/search-field.js.map +1 -1
  181. package/dist/components/secondary-stat.js +3 -40
  182. package/dist/components/secondary-stat.js.map +1 -1
  183. package/dist/components/section-header.js +3 -43
  184. package/dist/components/section-header.js.map +1 -1
  185. package/dist/components/section-label.js +3 -44
  186. package/dist/components/section-label.js.map +1 -1
  187. package/dist/components/section-tabs.js +2 -21
  188. package/dist/components/section-tabs.js.map +1 -1
  189. package/dist/components/separator.js +3 -47
  190. package/dist/components/separator.js.map +1 -1
  191. package/dist/components/sheet.js +8 -467
  192. package/dist/components/sheet.js.map +1 -1
  193. package/dist/components/sidebar.js +24 -1044
  194. package/dist/components/sidebar.js.map +1 -1
  195. package/dist/components/skeleton.js +3 -39
  196. package/dist/components/skeleton.js.map +1 -1
  197. package/dist/components/slider.js +2 -21
  198. package/dist/components/slider.js.map +1 -1
  199. package/dist/components/sortable-chip-list.js +2 -21
  200. package/dist/components/sortable-chip-list.js.map +1 -1
  201. package/dist/components/special-tag-surface.js +3 -531
  202. package/dist/components/special-tag-surface.js.map +1 -1
  203. package/dist/components/spinner.js +3 -63
  204. package/dist/components/spinner.js.map +1 -1
  205. package/dist/components/surface.js +3 -49
  206. package/dist/components/surface.js.map +1 -1
  207. package/dist/components/switch.js +3 -51
  208. package/dist/components/switch.js.map +1 -1
  209. package/dist/components/table.js +2 -20
  210. package/dist/components/table.js.map +1 -1
  211. package/dist/components/tag-chip.js +6 -617
  212. package/dist/components/tag-chip.js.map +1 -1
  213. package/dist/components/textarea.js +3 -56
  214. package/dist/components/textarea.js.map +1 -1
  215. package/dist/components/toast.js +8 -806
  216. package/dist/components/toast.js.map +1 -1
  217. package/dist/components/toggle.js +2 -20
  218. package/dist/components/toggle.js.map +1 -1
  219. package/dist/components/tooltip.js +3 -80
  220. package/dist/components/tooltip.js.map +1 -1
  221. package/dist/hooks/use-dialog-footer-actions.js +1 -9
  222. package/dist/hooks/use-dialog-footer-actions.js.map +1 -1
  223. package/dist/hooks/use-form-field.js +1 -34
  224. package/dist/hooks/use-form-field.js.map +1 -1
  225. package/dist/hooks/use-mobile.js +2 -27
  226. package/dist/hooks/use-mobile.js.map +1 -1
  227. package/dist/hooks/useMobileBackToClose.js +3 -232
  228. package/dist/hooks/useMobileBackToClose.js.map +1 -1
  229. package/dist/icons/actions.js +4 -521
  230. package/dist/icons/actions.js.map +1 -1
  231. package/dist/icons/icon-style.js +1 -49
  232. package/dist/icons/icon-style.js.map +1 -1
  233. package/dist/icons/marks.js +1 -46
  234. package/dist/icons/marks.js.map +1 -1
  235. package/dist/icons/registry.d.ts +2 -1
  236. package/dist/icons/registry.js +2 -1186
  237. package/dist/icons/registry.js.map +1 -1
  238. package/dist/index.js +10 -651
  239. package/dist/index.js.map +1 -1
  240. package/dist/lib/colors.js +1 -63
  241. package/dist/lib/colors.js.map +1 -1
  242. package/dist/lib/merge-config.js +1 -18
  243. package/dist/lib/merge-config.js.map +1 -1
  244. package/dist/lib/pagination.js +1 -24
  245. package/dist/lib/pagination.js.map +1 -1
  246. package/dist/lib/tag-surface.js +5 -613
  247. package/dist/lib/tag-surface.js.map +1 -1
  248. package/dist/lib/utils.js +2 -24
  249. package/dist/lib/utils.js.map +1 -1
  250. package/dist/res-card-template/format.d.ts +21 -0
  251. package/dist/res-card-template/format.js +3 -0
  252. package/dist/res-card-template/format.js.map +1 -0
  253. package/dist/res-card-template/icon.d.ts +38 -0
  254. package/dist/res-card-template/icon.js +3 -0
  255. package/dist/res-card-template/icon.js.map +1 -0
  256. package/dist/res-card-template/index.d.ts +4 -0
  257. package/dist/res-card-template/index.js +5 -0
  258. package/dist/res-card-template/index.js.map +1 -0
  259. package/dist/res-card-template/template.d.ts +48 -0
  260. package/dist/res-card-template/template.js +5 -0
  261. package/dist/res-card-template/template.js.map +1 -0
  262. package/dist/viewport.js +1 -11
  263. package/dist/viewport.js.map +1 -1
  264. package/package.json +9 -2
  265. package/src/components/image-crop-panel.dist.test.tsx +54 -0
  266. package/src/icons/registry.ts +8 -0
  267. package/src/res-card-template/format.test.ts +45 -0
  268. package/src/res-card-template/format.ts +36 -0
  269. package/src/res-card-template/icon.test.ts +100 -0
  270. package/src/res-card-template/icon.ts +86 -0
  271. package/src/res-card-template/index.ts +22 -0
  272. package/src/res-card-template/template.test.ts +457 -0
  273. package/src/res-card-template/template.ts +429 -0
@@ -1,622 +1,11 @@
1
- import { clsx } from 'clsx';
2
- import { extendTailwindMerge } from 'tailwind-merge';
3
- import { forwardRef, cloneElement, useId } from 'react';
1
+ import { resolveTagChipSurface } from '../chunk-2DTR6CD5.js';
2
+ import '../chunk-AEHTAUAQ.js';
3
+ import { SpecialTagSurface } from '../chunk-GKSX5ULZ.js';
4
+ import { cn } from '../chunk-M5OJN54O.js';
5
+ import '../chunk-2HWSCY4T.js';
6
+ import { forwardRef, cloneElement } from 'react';
4
7
  import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
5
8
 
6
- // src/lib/utils.ts
7
- var mergeTheme = {
8
- text: ["tiny", "ui", "doc", "doc-title", "doc-heading", "quote"],
9
- spacing: ["chip", "control", "nav", "sidebar", "panel"],
10
- tracking: ["label"],
11
- shadow: ["card", "dialog"],
12
- container: ["reading", "medium", "content"],
13
- font: ["doc", "heading"],
14
- ease: ["standard"],
15
- animate: ["skel", "pop"]
16
- };
17
- var twMerge = extendTailwindMerge({
18
- extend: { theme: mergeTheme }
19
- });
20
-
21
- // src/lib/utils.ts
22
- function cn(...inputs) {
23
- return twMerge(clsx(inputs));
24
- }
25
- function GoldSurface({
26
- id,
27
- active
28
- }) {
29
- const gradientId = `${id}-gold-gradient`;
30
- return /* @__PURE__ */ jsxs(
31
- "svg",
32
- {
33
- className: cn(
34
- "size-full",
35
- !active && "[filter:brightness(1.1)] group-hover:[filter:brightness(1.16)]"
36
- ),
37
- width: "100%",
38
- height: "100%",
39
- viewBox: "0 0 100 100",
40
- preserveAspectRatio: "none",
41
- children: [
42
- /* @__PURE__ */ jsx("defs", { children: /* @__PURE__ */ jsxs(
43
- "linearGradient",
44
- {
45
- id: gradientId,
46
- x1: "0%",
47
- y1: "0%",
48
- x2: "100%",
49
- y2: "0%",
50
- gradientTransform: "rotate(30, 0.5, 0.5)",
51
- children: [
52
- /* @__PURE__ */ jsx("stop", { offset: "10%", stopColor: "#daa520" }),
53
- /* @__PURE__ */ jsx("stop", { offset: "30%", stopColor: "#ffd700" }),
54
- /* @__PURE__ */ jsx("stop", { offset: "50%", stopColor: "#f0e68c" }),
55
- /* @__PURE__ */ jsx("stop", { offset: "70%", stopColor: "#ffd700" }),
56
- /* @__PURE__ */ jsx("stop", { offset: "90%", stopColor: "#daa520" })
57
- ]
58
- }
59
- ) }),
60
- /* @__PURE__ */ jsx(
61
- "rect",
62
- {
63
- width: "100",
64
- height: "100",
65
- fill: active ? "#8a6d1f" : `url(#${gradientId})`
66
- }
67
- ),
68
- !active && /* @__PURE__ */ jsx(
69
- "rect",
70
- {
71
- x: "0",
72
- y: "0",
73
- width: "100",
74
- height: "8",
75
- fill: "#ffffff",
76
- opacity: "0.12"
77
- }
78
- )
79
- ]
80
- }
81
- );
82
- }
83
- var goldConfig = {
84
- render: GoldSurface,
85
- default: {
86
- style: {
87
- color: "#725603",
88
- boxShadow: "inset 0 0 0 1px rgba(114, 86, 3, 0.2)"
89
- }
90
- },
91
- active: {
92
- style: {
93
- color: "#ffffff"
94
- }
95
- }
96
- };
97
- function KintsugiSurface({
98
- id,
99
- active
100
- }) {
101
- if (active) {
102
- return /* @__PURE__ */ jsx(
103
- "svg",
104
- {
105
- className: cn(
106
- "size-full",
107
- !active && "[filter:brightness(1.02)] group-hover:[filter:brightness(1.06)]"
108
- ),
109
- width: "100%",
110
- height: "100%",
111
- viewBox: "0 0 100 100",
112
- preserveAspectRatio: "none",
113
- children: /* @__PURE__ */ jsx("rect", { width: "100", height: "100", fill: "#9a9a8a" })
114
- }
115
- );
116
- }
117
- const goldGradientId = `${id}-kintsugi-gold`;
118
- return /* @__PURE__ */ jsxs(
119
- "svg",
120
- {
121
- className: cn(
122
- "size-full",
123
- !active && "[filter:brightness(1.02)] group-hover:[filter:brightness(1.06)]"
124
- ),
125
- width: "100%",
126
- height: "100%",
127
- viewBox: "0 0 100 100",
128
- preserveAspectRatio: "none",
129
- children: [
130
- /* @__PURE__ */ jsx("style", { children: `
131
- @keyframes ${id}-gold-shimmer {
132
- 0% { stroke-dashoffset: 60; }
133
- 100% { stroke-dashoffset: 0; }
134
- }
135
- .${id}-gold-vein {
136
- stroke-dasharray: 30 30;
137
- animation: ${id}-gold-shimmer 5s linear infinite;
138
- }
139
- @media (prefers-reduced-motion: reduce) {
140
- .${id}-gold-vein {
141
- animation: none;
142
- }
143
- }
144
- ` }),
145
- /* @__PURE__ */ jsx("defs", { children: /* @__PURE__ */ jsxs("linearGradient", { id: goldGradientId, x1: "0%", y1: "0%", x2: "100%", y2: "100%", children: [
146
- /* @__PURE__ */ jsx("stop", { offset: "0%", stopColor: "#b8860b" }),
147
- /* @__PURE__ */ jsx("stop", { offset: "35%", stopColor: "#ffd700" }),
148
- /* @__PURE__ */ jsx("stop", { offset: "50%", stopColor: "#fffacd" }),
149
- /* @__PURE__ */ jsx("stop", { offset: "65%", stopColor: "#ffd700" }),
150
- /* @__PURE__ */ jsx("stop", { offset: "100%", stopColor: "#b8860b" })
151
- ] }) }),
152
- /* @__PURE__ */ jsx("rect", { width: "100", height: "100", fill: "#d8d4c5" }),
153
- /* @__PURE__ */ jsx("rect", { width: "100", height: "100", fill: "#b8c4b8", opacity: "0.35" }),
154
- /* @__PURE__ */ jsx("ellipse", { cx: "30", cy: "25", rx: "40", ry: "25", fill: "#ffffff", opacity: "0.08" }),
155
- /* @__PURE__ */ jsx("ellipse", { cx: "75", cy: "70", rx: "35", ry: "28", fill: "#000000", opacity: "0.04" }),
156
- /* @__PURE__ */ jsx(
157
- "path",
158
- {
159
- d: "M 5 20 Q 25 22 35 45 T 60 80",
160
- fill: "none",
161
- stroke: "#5a5650",
162
- strokeWidth: "0.7",
163
- opacity: "0.45"
164
- }
165
- ),
166
- /* @__PURE__ */ jsx(
167
- "path",
168
- {
169
- d: "M 80 10 Q 70 35 85 55 T 55 95",
170
- fill: "none",
171
- stroke: "#5a5650",
172
- strokeWidth: "0.6",
173
- opacity: "0.40"
174
- }
175
- ),
176
- /* @__PURE__ */ jsx(
177
- "path",
178
- {
179
- d: "M 10 70 Q 30 68 45 55 T 75 45",
180
- fill: "none",
181
- stroke: "#5a5650",
182
- strokeWidth: "0.5",
183
- opacity: "0.38"
184
- }
185
- ),
186
- /* @__PURE__ */ jsx(
187
- "path",
188
- {
189
- className: `${id}-gold-vein`,
190
- d: "M 4 18 Q 24 20 34 43 T 58 78",
191
- fill: "none",
192
- stroke: `url(#${goldGradientId})`,
193
- strokeWidth: "1.4",
194
- strokeLinecap: "round"
195
- }
196
- ),
197
- /* @__PURE__ */ jsx(
198
- "path",
199
- {
200
- className: `${id}-gold-vein`,
201
- d: "M 82 8 Q 72 33 87 53 T 53 93",
202
- fill: "none",
203
- stroke: `url(#${goldGradientId})`,
204
- strokeWidth: "1.2",
205
- strokeLinecap: "round"
206
- }
207
- ),
208
- /* @__PURE__ */ jsx(
209
- "path",
210
- {
211
- className: `${id}-gold-vein`,
212
- d: "M 8 68 Q 28 66 43 53 T 73 43",
213
- fill: "none",
214
- stroke: `url(#${goldGradientId})`,
215
- strokeWidth: "1.0",
216
- strokeLinecap: "round"
217
- }
218
- )
219
- ]
220
- }
221
- );
222
- }
223
- var kintsugiConfig = {
224
- render: KintsugiSurface,
225
- default: {
226
- style: {
227
- color: "#4a4030",
228
- boxShadow: "inset 0 0 0 1px rgba(74, 64, 48, 0.12)"
229
- }
230
- },
231
- active: {
232
- style: {
233
- color: "#ffffff"
234
- }
235
- }
236
- };
237
- function OilslickSurface({
238
- id,
239
- active
240
- }) {
241
- if (active) {
242
- return /* @__PURE__ */ jsx(
243
- "svg",
244
- {
245
- className: cn(
246
- "size-full",
247
- !active && "[filter:saturate(1.15)] group-hover:[filter:saturate(1.3)_brightness(1.08)]"
248
- ),
249
- width: "100%",
250
- height: "100%",
251
- viewBox: "0 0 100 100",
252
- preserveAspectRatio: "none",
253
- children: /* @__PURE__ */ jsx("rect", { width: "100", height: "100", fill: "#1a1a2e" })
254
- }
255
- );
256
- }
257
- const gradientA = `${id}-oilslick-a`;
258
- const gradientB = `${id}-oilslick-b`;
259
- const gradientC = `${id}-oilslick-c`;
260
- return /* @__PURE__ */ jsxs(
261
- "svg",
262
- {
263
- className: cn(
264
- "size-full",
265
- !active && "[filter:saturate(1.15)] group-hover:[filter:saturate(1.3)_brightness(1.08)]"
266
- ),
267
- width: "100%",
268
- height: "100%",
269
- viewBox: "0 0 100 100",
270
- preserveAspectRatio: "none",
271
- children: [
272
- /* @__PURE__ */ jsxs("defs", { children: [
273
- /* @__PURE__ */ jsxs("radialGradient", { id: gradientA, cx: "30%", cy: "30%", r: "70%", children: [
274
- /* @__PURE__ */ jsx("stop", { offset: "0%", stopColor: "#8b5cf6", children: /* @__PURE__ */ jsx(
275
- "animate",
276
- {
277
- attributeName: "stop-color",
278
- values: "#8b5cf6;#06b6d4;#8b5cf6",
279
- dur: "8s",
280
- repeatCount: "indefinite"
281
- }
282
- ) }),
283
- /* @__PURE__ */ jsx("stop", { offset: "60%", stopColor: "#1e1b4b", stopOpacity: "0.9" }),
284
- /* @__PURE__ */ jsx("stop", { offset: "100%", stopColor: "#0f0f1a", stopOpacity: "0" })
285
- ] }),
286
- /* @__PURE__ */ jsxs("radialGradient", { id: gradientB, cx: "70%", cy: "60%", r: "60%", children: [
287
- /* @__PURE__ */ jsx("stop", { offset: "0%", stopColor: "#10b981", children: /* @__PURE__ */ jsx(
288
- "animate",
289
- {
290
- attributeName: "stop-color",
291
- values: "#10b981;#f59e0b;#ec4899;#10b981",
292
- dur: "10s",
293
- repeatCount: "indefinite"
294
- }
295
- ) }),
296
- /* @__PURE__ */ jsx("stop", { offset: "55%", stopColor: "#1e1b4b", stopOpacity: "0.8" }),
297
- /* @__PURE__ */ jsx("stop", { offset: "100%", stopColor: "#0f0f1a", stopOpacity: "0" })
298
- ] }),
299
- /* @__PURE__ */ jsxs("radialGradient", { id: gradientC, cx: "50%", cy: "80%", r: "55%", children: [
300
- /* @__PURE__ */ jsx("stop", { offset: "0%", stopColor: "#ec4899", children: /* @__PURE__ */ jsx(
301
- "animate",
302
- {
303
- attributeName: "stop-color",
304
- values: "#ec4899;#8b5cf6;#06b6d4;#ec4899",
305
- dur: "7s",
306
- repeatCount: "indefinite"
307
- }
308
- ) }),
309
- /* @__PURE__ */ jsx("stop", { offset: "50%", stopColor: "#1e1b4b", stopOpacity: "0.7" }),
310
- /* @__PURE__ */ jsx("stop", { offset: "100%", stopColor: "#0f0f1a", stopOpacity: "0" })
311
- ] })
312
- ] }),
313
- /* @__PURE__ */ jsx("rect", { width: "100", height: "100", fill: "#0a0a12" }),
314
- /* @__PURE__ */ jsx(
315
- "rect",
316
- {
317
- width: "100",
318
- height: "100",
319
- fill: `url(#${gradientA})`,
320
- opacity: "0.85"
321
- }
322
- ),
323
- /* @__PURE__ */ jsx(
324
- "rect",
325
- {
326
- width: "100",
327
- height: "100",
328
- fill: `url(#${gradientB})`,
329
- opacity: "0.75"
330
- }
331
- ),
332
- /* @__PURE__ */ jsx(
333
- "rect",
334
- {
335
- width: "100",
336
- height: "100",
337
- fill: `url(#${gradientC})`,
338
- opacity: "0.70"
339
- }
340
- ),
341
- /* @__PURE__ */ jsx(
342
- "path",
343
- {
344
- d: "M -10 60 Q 25 45 50 60 T 110 55",
345
- fill: "none",
346
- stroke: "#ffffff",
347
- strokeWidth: "0.8",
348
- opacity: "0.12",
349
- children: /* @__PURE__ */ jsx(
350
- "animate",
351
- {
352
- attributeName: "d",
353
- values: "M -10 60 Q 25 45 50 60 T 110 55;M -10 55 Q 30 70 55 50 T 110 65;M -10 60 Q 25 45 50 60 T 110 55",
354
- dur: "12s",
355
- repeatCount: "indefinite"
356
- }
357
- )
358
- }
359
- )
360
- ]
361
- }
362
- );
363
- }
364
- var oilslickConfig = {
365
- render: OilslickSurface,
366
- default: {
367
- style: {
368
- color: "#ffffff",
369
- boxShadow: "inset 0 0 0 1px rgba(255, 255, 255, 0.08), 0 0 10px rgba(139, 92, 246, 0.20)"
370
- }
371
- },
372
- active: {
373
- style: {
374
- color: "#ffffff"
375
- }
376
- }
377
- };
378
- function RainbowSurface({
379
- id,
380
- active
381
- }) {
382
- const gradientId = `${id}-rainbow-gradient`;
383
- return /* @__PURE__ */ jsxs(
384
- "svg",
385
- {
386
- className: cn(
387
- "size-full",
388
- !active && "group-hover:[filter:brightness(1.08)]"
389
- ),
390
- width: "100%",
391
- height: "100%",
392
- viewBox: "0 0 100 100",
393
- preserveAspectRatio: "none",
394
- children: [
395
- /* @__PURE__ */ jsx("defs", { children: /* @__PURE__ */ jsxs(
396
- "linearGradient",
397
- {
398
- id: gradientId,
399
- x1: "0%",
400
- y1: "0%",
401
- x2: "100%",
402
- y2: "0%",
403
- gradientTransform: "rotate(30, 0.5, 0.5)",
404
- children: [
405
- /* @__PURE__ */ jsx("stop", { offset: "0%", stopColor: "#fbffca" }),
406
- /* @__PURE__ */ jsx("stop", { offset: "33%", stopColor: "#baffbf" }),
407
- /* @__PURE__ */ jsx("stop", { offset: "66%", stopColor: "#a7efff" }),
408
- /* @__PURE__ */ jsx("stop", { offset: "100%", stopColor: "#ffabff" })
409
- ]
410
- }
411
- ) }),
412
- /* @__PURE__ */ jsx(
413
- "rect",
414
- {
415
- width: "100",
416
- height: "100",
417
- fill: active ? "#005458" : `url(#${gradientId})`
418
- }
419
- )
420
- ]
421
- }
422
- );
423
- }
424
- var rainbowConfig = {
425
- render: RainbowSurface,
426
- default: {
427
- className: "font-bold dark:[text-shadow:0_0_5px_rgba(0,0,0,0.5)]",
428
- style: {
429
- color: "#ffffff",
430
- textShadow: "0 0 5px rgba(0, 0, 0, 0.2)",
431
- boxShadow: "inset 0 0 0 1px rgba(0, 247, 255, 0.1)"
432
- }
433
- },
434
- active: {
435
- style: {
436
- color: "#ffffff"
437
- }
438
- }
439
- };
440
- function SilverSurface({
441
- id,
442
- active
443
- }) {
444
- const gradientId = `${id}-silver-gradient`;
445
- return /* @__PURE__ */ jsxs(
446
- "svg",
447
- {
448
- className: cn(
449
- "size-full",
450
- !active && "[filter:brightness(1.1)] group-hover:[filter:brightness(1.16)]"
451
- ),
452
- width: "100%",
453
- height: "100%",
454
- viewBox: "0 0 100 100",
455
- preserveAspectRatio: "none",
456
- children: [
457
- /* @__PURE__ */ jsx("defs", { children: /* @__PURE__ */ jsxs(
458
- "linearGradient",
459
- {
460
- id: gradientId,
461
- x1: "0%",
462
- y1: "0%",
463
- x2: "100%",
464
- y2: "0%",
465
- gradientTransform: "rotate(30, 0.5, 0.5)",
466
- children: [
467
- /* @__PURE__ */ jsx("stop", { offset: "10%", stopColor: "#afaeae" }),
468
- /* @__PURE__ */ jsx("stop", { offset: "30%", stopColor: "#d6d6d6" }),
469
- /* @__PURE__ */ jsx("stop", { offset: "50%", stopColor: "#eeeeee" }),
470
- /* @__PURE__ */ jsx("stop", { offset: "70%", stopColor: "#d6d6d6" }),
471
- /* @__PURE__ */ jsx("stop", { offset: "90%", stopColor: "#afaeae" })
472
- ]
473
- }
474
- ) }),
475
- /* @__PURE__ */ jsx(
476
- "rect",
477
- {
478
- width: "100",
479
- height: "100",
480
- fill: active ? "#5a5a5a" : `url(#${gradientId})`
481
- }
482
- ),
483
- !active && /* @__PURE__ */ jsx(
484
- "rect",
485
- {
486
- x: "0",
487
- y: "0",
488
- width: "100",
489
- height: "8",
490
- fill: "#ffffff",
491
- opacity: "0.16"
492
- }
493
- )
494
- ]
495
- }
496
- );
497
- }
498
- var silverConfig = {
499
- render: SilverSurface,
500
- default: {
501
- style: {
502
- color: "#2a2a2a",
503
- boxShadow: "inset 0 0 0 1px rgba(0, 0, 0, 0.08)"
504
- }
505
- },
506
- active: {
507
- style: {
508
- color: "#ffffff"
509
- }
510
- }
511
- };
512
- var SPECIAL_TAG_CONFIG = {
513
- silver: silverConfig,
514
- gold: goldConfig,
515
- rainbow: rainbowConfig,
516
- oilslick: oilslickConfig,
517
- kintsugi: kintsugiConfig
518
- };
519
- function getSpecialTagStyleConfig(style) {
520
- return SPECIAL_TAG_CONFIG[style];
521
- }
522
- function SpecialTagSurface(props) {
523
- const { style, active, className } = props;
524
- const config = SPECIAL_TAG_CONFIG[style];
525
- const Renderer = config.render;
526
- const reactId = useId();
527
- const safeId = reactId.replace(/:/g, "-");
528
- return /* @__PURE__ */ jsx("span", { className: cn(className), "aria-hidden": "true", children: /* @__PURE__ */ jsx(Renderer, { id: safeId, active }) });
529
- }
530
-
531
- // src/lib/colors.ts
532
- var TAG_SPECIAL_STYLES = [
533
- "silver",
534
- "gold",
535
- "rainbow",
536
- "oilslick",
537
- "kintsugi"
538
- ];
539
- function isSpecialTagStyle(color) {
540
- return TAG_SPECIAL_STYLES.includes(color);
541
- }
542
- var WHITE_COLOR_PATTERN = /^(?:#fff(?:fff)?|white|rgba?\(\s*255\s*,\s*255\s*,\s*255\b)/i;
543
- var BLACK_COLOR_PATTERN = /^(?:#000(?:000)?|black|rgba?\(\s*0\s*,\s*0\s*,\s*0\b)/i;
544
- function isWhiteHex(color) {
545
- if (color === "") return false;
546
- return WHITE_COLOR_PATTERN.test(color.trim());
547
- }
548
- function isBlackHex(color) {
549
- if (color === "") return false;
550
- return BLACK_COLOR_PATTERN.test(color.trim());
551
- }
552
- function computeTagChipColors(color) {
553
- if (color === "") {
554
- return {
555
- baseBg: "var(--color-muted)",
556
- hoverBg: "var(--color-accent)",
557
- fg: "var(--color-foreground)"
558
- };
559
- }
560
- if (isWhiteHex(color)) {
561
- return {
562
- baseBg: "#ffffff",
563
- hoverBg: "#f1f5f9",
564
- fg: "#0a0a0a"
565
- };
566
- }
567
- if (isBlackHex(color)) {
568
- return {
569
- baseBg: "#0a0a0a",
570
- hoverBg: "#262626",
571
- fg: "#ffffff"
572
- };
573
- }
574
- return {
575
- baseBg: `color-mix(in srgb, ${color} 6%, var(--color-card))`,
576
- hoverBg: `color-mix(in srgb, ${color} 20%, var(--color-card))`,
577
- fg: color
578
- };
579
- }
580
-
581
- // src/lib/tag-surface.ts
582
- function resolveTagChipSurface(color, active) {
583
- if (isSpecialTagStyle(color)) {
584
- const config = getSpecialTagStyleConfig(color);
585
- return {
586
- className: cn(
587
- "relative isolate group",
588
- config.default.className,
589
- active ? config.active?.className : void 0
590
- ),
591
- style: {
592
- ...config.default.style,
593
- ...active ? config.active?.style : {}
594
- },
595
- texture: color
596
- };
597
- }
598
- if (color === "") {
599
- return active ? {
600
- className: "bg-primary text-primary-foreground hover:bg-primary/90",
601
- style: void 0,
602
- texture: null
603
- } : {
604
- className: "bg-muted text-foreground hover:bg-accent",
605
- style: void 0,
606
- texture: null
607
- };
608
- }
609
- const chipColors = computeTagChipColors(color);
610
- return {
611
- className: "bg-(--chip-bg) hover:bg-(--chip-hover-bg)",
612
- style: {
613
- ["--chip-bg"]: active ? chipColors.hoverBg : chipColors.baseBg,
614
- ["--chip-hover-bg"]: chipColors.hoverBg,
615
- color: chipColors.fg
616
- },
617
- texture: null
618
- };
619
- }
620
9
  var tagChipLabelClassName = "min-w-0 overflow-x-clip text-ellipsis whitespace-nowrap";
621
10
  var TagChip = forwardRef(
622
11
  function TagChip2(props, ref) {