@hoardodile/ui 0.1.7 → 0.1.9

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 (260) 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 -504
  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 -521
  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 -533
  104. package/dist/components/color-picker.js.map +1 -1
  105. package/dist/components/combobox.js +15 -937
  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 -1007
  116. package/dist/components/dropdown-menu.js.map +1 -1
  117. package/dist/components/dropdown-select.js +9 -883
  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 -589
  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 -775
  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 -617
  160. package/dist/components/pagination-bar.js.map +1 -1
  161. package/dist/components/pagination.js +6 -684
  162. package/dist/components/pagination.js.map +1 -1
  163. package/dist/components/panel-toolbar.js +11 -716
  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 -590
  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 -1047
  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 -809
  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 -524
  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.js +2 -1194
  236. package/dist/icons/registry.js.map +1 -1
  237. package/dist/index.js +10 -651
  238. package/dist/index.js.map +1 -1
  239. package/dist/lib/colors.js +1 -63
  240. package/dist/lib/colors.js.map +1 -1
  241. package/dist/lib/merge-config.js +1 -18
  242. package/dist/lib/merge-config.js.map +1 -1
  243. package/dist/lib/pagination.js +1 -24
  244. package/dist/lib/pagination.js.map +1 -1
  245. package/dist/lib/tag-surface.js +5 -613
  246. package/dist/lib/tag-surface.js.map +1 -1
  247. package/dist/lib/utils.js +2 -24
  248. package/dist/lib/utils.js.map +1 -1
  249. package/dist/res-card-template/format.js +1 -21
  250. package/dist/res-card-template/format.js.map +1 -1
  251. package/dist/res-card-template/icon.js +1 -39
  252. package/dist/res-card-template/icon.js.map +1 -1
  253. package/dist/res-card-template/index.js +3 -329
  254. package/dist/res-card-template/index.js.map +1 -1
  255. package/dist/res-card-template/template.js +3 -331
  256. package/dist/res-card-template/template.js.map +1 -1
  257. package/dist/viewport.js +1 -11
  258. package/dist/viewport.js.map +1 -1
  259. package/package.json +3 -3
  260. package/src/components/image-crop-panel.dist.test.tsx +54 -0
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/lib/merge-config.ts","../../src/lib/utils.ts","../../src/components/slider.tsx"],"names":["SliderPrimitive"],"mappings":";;;;;;AAQO,IAAM,UAAA,GAAa;AAAA,EACzB,MAAM,CAAC,MAAA,EAAQ,MAAM,KAAA,EAAO,WAAA,EAAa,eAAe,OAAO,CAAA;AAAA,EAC/D,SAAS,CAAC,MAAA,EAAQ,SAAA,EAAW,KAAA,EAAO,WAAW,OAAO,CAAA;AAAA,EACtD,QAAA,EAAU,CAAC,OAAO,CAAA;AAAA,EAClB,MAAA,EAAQ,CAAC,MAAA,EAAQ,QAAQ,CAAA;AAAA,EACzB,SAAA,EAAW,CAAC,SAAA,EAAW,QAAA,EAAU,SAAS,CAAA;AAAA,EAC1C,IAAA,EAAM,CAAC,KAAA,EAAO,SAAS,CAAA;AAAA,EACvB,IAAA,EAAM,CAAC,UAAU,CAAA;AAAA,EACjB,OAAA,EAAS,CAAC,MAAA,EAAQ,KAAK;AACxB,CAAA;AAEO,IAAM,UAAU,mBAAA,CAAoB;AAAA,EAC1C,MAAA,EAAQ,EAAE,KAAA,EAAO,UAAA;AAClB,CAAC,CAAA;;;AClBM,SAAS,MAAM,MAAA,EAAsB;AAC3C,EAAA,OAAO,OAAA,CAAQ,IAAA,CAAK,MAAM,CAAC,CAAA;AAC5B;ACDA,SAAS,MAAA,CAAO;AAAA,EACd,SAAA;AAAA,EACA,YAAA;AAAA,EACA,KAAA;AAAA,EACA,GAAA,GAAM,CAAA;AAAA,EACN,GAAA,GAAM,GAAA;AAAA,EACN,GAAG;AACL,CAAA,EAA+B;AAC7B,EAAA,MAAM,OAAA,GAAU,KAAA,CAAM,OAAA,CAAQ,KAAK,CAAA,GAC/B,KAAA,GACA,KAAA,CAAM,OAAA,CAAQ,YAAY,CAAA,GACxB,YAAA,GACA,CAAC,KAAK,GAAG,CAAA;AAEf,EAAA,uBACE,GAAA;AAAA,IAACA,QAAA,CAAgB,IAAA;AAAA,IAAhB;AAAA,MACC,SAAA,EAAW,EAAA,CAAG,6CAAA,EAA+C,SAAS,CAAA;AAAA,MACtE,WAAA,EAAU,QAAA;AAAA,MACV,YAAA;AAAA,MACA,KAAA;AAAA,MACA,GAAA;AAAA,MACA,GAAA;AAAA,MACA,cAAA,EAAe,MAAA;AAAA,MACd,GAAG,KAAA;AAAA,MAEJ,QAAA,kBAAA,IAAA,CAACA,QAAA,CAAgB,OAAA,EAAhB,EAAwB,WAAU,2KAAA,EACjC,QAAA,EAAA;AAAA,wBAAA,GAAA;AAAA,UAACA,QAAA,CAAgB,KAAA;AAAA,UAAhB;AAAA,YACC,WAAA,EAAU,cAAA;AAAA,YACV,SAAA,EAAU,uJAAA;AAAA,YAEV,QAAA,kBAAA,GAAA;AAAA,cAACA,QAAA,CAAgB,SAAA;AAAA,cAAhB;AAAA,gBACC,WAAA,EAAU,cAAA;AAAA,gBACV,SAAA,EAAU;AAAA;AAAA;AACZ;AAAA,SACF;AAAA,QACC,KAAA,CAAM,KAAK,EAAE,MAAA,EAAQ,QAAQ,MAAA,EAAO,EAAG,CAAC,CAAA,EAAG,KAAA,qBAC1C,GAAA;AAAA,UAACA,QAAA,CAAgB,KAAA;AAAA,UAAhB;AAAA,YACC,WAAA,EAAU,cAAA;AAAA,YAEV,SAAA,EAAU;AAAA,WAAA;AAAA,UADL;AAAA,SAGR;AAAA,OAAA,EACH;AAAA;AAAA,GACF;AAEJ","file":"slider.js","sourcesContent":["import { extendTailwindMerge } from \"tailwind-merge\"\n\n// The app's `@theme inline` tokens (theme.css) generate utility names\n// tailwind-merge doesn't know, so it misclassifies them — e.g. `text-ui` is\n// parsed as a text color and dropped next to any `text-*` color. The default\n// class groups are theme-backed, so extending the theme (keys mirror the v4\n// token namespaces one-to-one) registers every custom utility with correct\n// conflict semantics. merge-config.test.ts pins this list against theme.css.\nexport const mergeTheme = {\n\ttext: [\"tiny\", \"ui\", \"doc\", \"doc-title\", \"doc-heading\", \"quote\"],\n\tspacing: [\"chip\", \"control\", \"nav\", \"sidebar\", \"panel\"],\n\ttracking: [\"label\"],\n\tshadow: [\"card\", \"dialog\"],\n\tcontainer: [\"reading\", \"medium\", \"content\"],\n\tfont: [\"doc\", \"heading\"],\n\tease: [\"standard\"],\n\tanimate: [\"skel\", \"pop\"],\n} as const\n\nexport const twMerge = extendTailwindMerge({\n\textend: { theme: mergeTheme },\n})\n","import { type ClassValue, clsx } from \"clsx\"\nimport { twMerge } from \"./merge-config\"\n\nexport function cn(...inputs: ClassValue[]) {\n\treturn twMerge(clsx(inputs))\n}\n","import { Slider as SliderPrimitive } from \"@base-ui/react/slider\"\n\nimport { cn } from \"@hoardodile/ui/lib/utils\"\n\nfunction Slider({\n className,\n defaultValue,\n value,\n min = 0,\n max = 100,\n ...props\n}: SliderPrimitive.Root.Props) {\n const _values = Array.isArray(value)\n ? value\n : Array.isArray(defaultValue)\n ? defaultValue\n : [min, max]\n\n return (\n <SliderPrimitive.Root\n className={cn(\"data-horizontal:w-full data-vertical:h-full\", className)}\n data-slot=\"slider\"\n defaultValue={defaultValue}\n value={value}\n min={min}\n max={max}\n thumbAlignment=\"edge\"\n {...props}\n >\n <SliderPrimitive.Control className=\"relative flex w-full touch-none items-center select-none data-disabled:opacity-50 data-vertical:h-full data-vertical:min-h-40 data-vertical:w-auto data-vertical:flex-col\">\n <SliderPrimitive.Track\n data-slot=\"slider-track\"\n className=\"relative grow overflow-hidden rounded-full bg-muted select-none data-horizontal:h-1.5 data-horizontal:w-full data-vertical:h-full data-vertical:w-1.5\"\n >\n <SliderPrimitive.Indicator\n data-slot=\"slider-range\"\n className=\"bg-primary select-none data-horizontal:h-full data-vertical:w-full\"\n />\n </SliderPrimitive.Track>\n {Array.from({ length: _values.length }, (_, index) => (\n <SliderPrimitive.Thumb\n data-slot=\"slider-thumb\"\n key={index}\n className=\"block size-4 shrink-0 rounded-full border border-primary bg-white shadow-sm ring-ring/50 transition-[color,box-shadow] select-none hover:ring-4 focus-visible:ring-4 focus-visible:outline-hidden disabled:pointer-events-none disabled:opacity-50\"\n />\n ))}\n </SliderPrimitive.Control>\n </SliderPrimitive.Root>\n )\n}\n\nexport { Slider }\n"]}
1
+ {"version":3,"sources":["../../src/components/slider.tsx"],"names":["SliderPrimitive"],"mappings":";;;;;AAIA,SAAS,MAAA,CAAO;AAAA,EACd,SAAA;AAAA,EACA,YAAA;AAAA,EACA,KAAA;AAAA,EACA,GAAA,GAAM,CAAA;AAAA,EACN,GAAA,GAAM,GAAA;AAAA,EACN,GAAG;AACL,CAAA,EAA+B;AAC7B,EAAA,MAAM,OAAA,GAAU,KAAA,CAAM,OAAA,CAAQ,KAAK,CAAA,GAC/B,KAAA,GACA,KAAA,CAAM,OAAA,CAAQ,YAAY,CAAA,GACxB,YAAA,GACA,CAAC,KAAK,GAAG,CAAA;AAEf,EAAA,uBACE,GAAA;AAAA,IAACA,QAAA,CAAgB,IAAA;AAAA,IAAhB;AAAA,MACC,SAAA,EAAW,EAAA,CAAG,6CAAA,EAA+C,SAAS,CAAA;AAAA,MACtE,WAAA,EAAU,QAAA;AAAA,MACV,YAAA;AAAA,MACA,KAAA;AAAA,MACA,GAAA;AAAA,MACA,GAAA;AAAA,MACA,cAAA,EAAe,MAAA;AAAA,MACd,GAAG,KAAA;AAAA,MAEJ,QAAA,kBAAA,IAAA,CAACA,QAAA,CAAgB,OAAA,EAAhB,EAAwB,WAAU,2KAAA,EACjC,QAAA,EAAA;AAAA,wBAAA,GAAA;AAAA,UAACA,QAAA,CAAgB,KAAA;AAAA,UAAhB;AAAA,YACC,WAAA,EAAU,cAAA;AAAA,YACV,SAAA,EAAU,uJAAA;AAAA,YAEV,QAAA,kBAAA,GAAA;AAAA,cAACA,QAAA,CAAgB,SAAA;AAAA,cAAhB;AAAA,gBACC,WAAA,EAAU,cAAA;AAAA,gBACV,SAAA,EAAU;AAAA;AAAA;AACZ;AAAA,SACF;AAAA,QACC,KAAA,CAAM,KAAK,EAAE,MAAA,EAAQ,QAAQ,MAAA,EAAO,EAAG,CAAC,CAAA,EAAG,KAAA,qBAC1C,GAAA;AAAA,UAACA,QAAA,CAAgB,KAAA;AAAA,UAAhB;AAAA,YACC,WAAA,EAAU,cAAA;AAAA,YAEV,SAAA,EAAU;AAAA,WAAA;AAAA,UADL;AAAA,SAGR;AAAA,OAAA,EACH;AAAA;AAAA,GACF;AAEJ","file":"slider.js","sourcesContent":["import { Slider as SliderPrimitive } from \"@base-ui/react/slider\"\n\nimport { cn } from \"@hoardodile/ui/lib/utils\"\n\nfunction Slider({\n className,\n defaultValue,\n value,\n min = 0,\n max = 100,\n ...props\n}: SliderPrimitive.Root.Props) {\n const _values = Array.isArray(value)\n ? value\n : Array.isArray(defaultValue)\n ? defaultValue\n : [min, max]\n\n return (\n <SliderPrimitive.Root\n className={cn(\"data-horizontal:w-full data-vertical:h-full\", className)}\n data-slot=\"slider\"\n defaultValue={defaultValue}\n value={value}\n min={min}\n max={max}\n thumbAlignment=\"edge\"\n {...props}\n >\n <SliderPrimitive.Control className=\"relative flex w-full touch-none items-center select-none data-disabled:opacity-50 data-vertical:h-full data-vertical:min-h-40 data-vertical:w-auto data-vertical:flex-col\">\n <SliderPrimitive.Track\n data-slot=\"slider-track\"\n className=\"relative grow overflow-hidden rounded-full bg-muted select-none data-horizontal:h-1.5 data-horizontal:w-full data-vertical:h-full data-vertical:w-1.5\"\n >\n <SliderPrimitive.Indicator\n data-slot=\"slider-range\"\n className=\"bg-primary select-none data-horizontal:h-full data-vertical:w-full\"\n />\n </SliderPrimitive.Track>\n {Array.from({ length: _values.length }, (_, index) => (\n <SliderPrimitive.Thumb\n data-slot=\"slider-thumb\"\n key={index}\n className=\"block size-4 shrink-0 rounded-full border border-primary bg-white shadow-sm ring-ring/50 transition-[color,box-shadow] select-none hover:ring-4 focus-visible:ring-4 focus-visible:outline-hidden disabled:pointer-events-none disabled:opacity-50\"\n />\n ))}\n </SliderPrimitive.Control>\n </SliderPrimitive.Root>\n )\n}\n\nexport { Slider }\n"]}
@@ -1,28 +1,9 @@
1
+ import { cn } from '../chunk-M5OJN54O.js';
2
+ import '../chunk-2HWSCY4T.js';
1
3
  import { DndContext, closestCorners } from '@dnd-kit/core';
2
4
  import { SortableContext, rectSortingStrategy } from '@dnd-kit/sortable';
3
- import { clsx } from 'clsx';
4
- import { extendTailwindMerge } from 'tailwind-merge';
5
5
  import { jsx } from 'react/jsx-runtime';
6
6
 
7
- // src/components/sortable-chip-list.tsx
8
- var mergeTheme = {
9
- text: ["tiny", "ui", "doc", "doc-title", "doc-heading", "quote"],
10
- spacing: ["chip", "control", "nav", "sidebar", "panel"],
11
- tracking: ["label"],
12
- shadow: ["card", "dialog"],
13
- container: ["reading", "medium", "content"],
14
- font: ["doc", "heading"],
15
- ease: ["standard"],
16
- animate: ["skel", "pop"]
17
- };
18
- var twMerge = extendTailwindMerge({
19
- extend: { theme: mergeTheme }
20
- });
21
-
22
- // src/lib/utils.ts
23
- function cn(...inputs) {
24
- return twMerge(clsx(inputs));
25
- }
26
7
  function SortableChipList(props) {
27
8
  if (props.items.length === 0) {
28
9
  return props.empty ?? null;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/lib/merge-config.ts","../../src/lib/utils.ts","../../src/components/sortable-chip-list.tsx"],"names":[],"mappings":";;;;;;;AAQO,IAAM,UAAA,GAAa;AAAA,EACzB,MAAM,CAAC,MAAA,EAAQ,MAAM,KAAA,EAAO,WAAA,EAAa,eAAe,OAAO,CAAA;AAAA,EAC/D,SAAS,CAAC,MAAA,EAAQ,SAAA,EAAW,KAAA,EAAO,WAAW,OAAO,CAAA;AAAA,EACtD,QAAA,EAAU,CAAC,OAAO,CAAA;AAAA,EAClB,MAAA,EAAQ,CAAC,MAAA,EAAQ,QAAQ,CAAA;AAAA,EACzB,SAAA,EAAW,CAAC,SAAA,EAAW,QAAA,EAAU,SAAS,CAAA;AAAA,EAC1C,IAAA,EAAM,CAAC,KAAA,EAAO,SAAS,CAAA;AAAA,EACvB,IAAA,EAAM,CAAC,UAAU,CAAA;AAAA,EACjB,OAAA,EAAS,CAAC,MAAA,EAAQ,KAAK;AACxB,CAAA;AAEO,IAAM,UAAU,mBAAA,CAAoB;AAAA,EAC1C,MAAA,EAAQ,EAAE,KAAA,EAAO,UAAA;AAClB,CAAC,CAAA;;;AClBM,SAAS,MAAM,MAAA,EAAsB;AAC3C,EAAA,OAAO,OAAA,CAAQ,IAAA,CAAK,MAAM,CAAC,CAAA;AAC5B;ACoBO,SAAS,iBACf,KAAA,EACY;AACZ,EAAA,IAAI,KAAA,CAAM,KAAA,CAAM,MAAA,KAAW,CAAA,EAAG;AAC7B,IAAA,OAAO,MAAM,KAAA,IAAS,IAAA;AAAA,EACvB;AAEA,EAAA,uBACC,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,KAAA,CAAM,SAAA,EACrB,QAAA,kBAAA,GAAA;AAAA,IAAC,UAAA;AAAA,IAAA;AAAA,MACA,SAAS,KAAA,CAAM,OAAA;AAAA,MACf,kBAAA,EAAoB,cAAA;AAAA,MACpB,WAAW,KAAA,CAAM,SAAA;AAAA,MAEjB,QAAA,kBAAA,GAAA;AAAA,QAAC,eAAA;AAAA,QAAA;AAAA,UACA,OAAO,KAAA,CAAM,KAAA,CAAM,IAAI,CAAC,IAAA,KAAS,KAAK,EAAE,CAAA;AAAA,UACxC,QAAA,EAAU,MAAM,QAAA,IAAY,mBAAA;AAAA,UAE5B,QAAA,kBAAA,GAAA;AAAA,YAAC,KAAA;AAAA,YAAA;AAAA,cACA,SAAA,EAAW,EAAA;AAAA,gBACV,qCAAA;AAAA,gBACA,KAAA,CAAM;AAAA,eACP;AAAA,cAEC,QAAA,EAAA,KAAA,CAAM,MAAM,GAAA,CAAI,CAAC,SAAS,KAAA,CAAM,UAAA,CAAW,IAAI,CAAC;AAAA;AAAA;AAClD;AAAA;AACD;AAAA,GACD,EACD,CAAA;AAEF","file":"sortable-chip-list.js","sourcesContent":["import { extendTailwindMerge } from \"tailwind-merge\"\n\n// The app's `@theme inline` tokens (theme.css) generate utility names\n// tailwind-merge doesn't know, so it misclassifies them — e.g. `text-ui` is\n// parsed as a text color and dropped next to any `text-*` color. The default\n// class groups are theme-backed, so extending the theme (keys mirror the v4\n// token namespaces one-to-one) registers every custom utility with correct\n// conflict semantics. merge-config.test.ts pins this list against theme.css.\nexport const mergeTheme = {\n\ttext: [\"tiny\", \"ui\", \"doc\", \"doc-title\", \"doc-heading\", \"quote\"],\n\tspacing: [\"chip\", \"control\", \"nav\", \"sidebar\", \"panel\"],\n\ttracking: [\"label\"],\n\tshadow: [\"card\", \"dialog\"],\n\tcontainer: [\"reading\", \"medium\", \"content\"],\n\tfont: [\"doc\", \"heading\"],\n\tease: [\"standard\"],\n\tanimate: [\"skel\", \"pop\"],\n} as const\n\nexport const twMerge = extendTailwindMerge({\n\textend: { theme: mergeTheme },\n})\n","import { type ClassValue, clsx } from \"clsx\"\nimport { twMerge } from \"./merge-config\"\n\nexport function cn(...inputs: ClassValue[]) {\n\treturn twMerge(clsx(inputs))\n}\n","import { closestCorners, DndContext } from \"@dnd-kit/core\"\nimport {\n\trectSortingStrategy,\n\tSortableContext,\n\ttype SortingStrategy,\n} from \"@dnd-kit/sortable\"\nimport { cn } from \"@hoardodile/ui/lib/utils\"\nimport type { ReactNode } from \"react\"\n\nexport type SortableChipListProps<T extends { readonly id: string }> = {\n\treadonly items: readonly T[]\n\treadonly renderItem: (item: T) => ReactNode\n\treadonly sensors: ReturnType<typeof import(\"@dnd-kit/core\").useSensors>\n\treadonly onDragEnd: (event: import(\"@dnd-kit/core\").DragEndEvent) => void\n\treadonly strategy?: SortingStrategy\n\treadonly empty?: ReactNode\n\treadonly className?: string\n\treadonly listClassName?: string\n}\n\n/**\n * Encapsulates the canonical DnD chip list used by management panels:\n * `DndContext` + `SortableContext` with `closestCorners` and\n * `rectSortingStrategy`.\n */\nexport function SortableChipList<T extends { readonly id: string }>(\n\tprops: SortableChipListProps<T>,\n): ReactNode {\n\tif (props.items.length === 0) {\n\t\treturn props.empty ?? null\n\t}\n\n\treturn (\n\t\t<div className={props.className}>\n\t\t\t<DndContext\n\t\t\t\tsensors={props.sensors}\n\t\t\t\tcollisionDetection={closestCorners}\n\t\t\t\tonDragEnd={props.onDragEnd}\n\t\t\t>\n\t\t\t\t<SortableContext\n\t\t\t\t\titems={props.items.map((item) => item.id)}\n\t\t\t\t\tstrategy={props.strategy ?? rectSortingStrategy}\n\t\t\t\t>\n\t\t\t\t\t<div\n\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\"flex flex-wrap items-center gap-1.5\",\n\t\t\t\t\t\t\tprops.listClassName,\n\t\t\t\t\t\t)}\n\t\t\t\t\t>\n\t\t\t\t\t\t{props.items.map((item) => props.renderItem(item))}\n\t\t\t\t\t</div>\n\t\t\t\t</SortableContext>\n\t\t\t</DndContext>\n\t\t</div>\n\t)\n}\n"]}
1
+ {"version":3,"sources":["../../src/components/sortable-chip-list.tsx"],"names":[],"mappings":";;;;;;AAyBO,SAAS,iBACf,KAAA,EACY;AACZ,EAAA,IAAI,KAAA,CAAM,KAAA,CAAM,MAAA,KAAW,CAAA,EAAG;AAC7B,IAAA,OAAO,MAAM,KAAA,IAAS,IAAA;AAAA,EACvB;AAEA,EAAA,uBACC,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,KAAA,CAAM,SAAA,EACrB,QAAA,kBAAA,GAAA;AAAA,IAAC,UAAA;AAAA,IAAA;AAAA,MACA,SAAS,KAAA,CAAM,OAAA;AAAA,MACf,kBAAA,EAAoB,cAAA;AAAA,MACpB,WAAW,KAAA,CAAM,SAAA;AAAA,MAEjB,QAAA,kBAAA,GAAA;AAAA,QAAC,eAAA;AAAA,QAAA;AAAA,UACA,OAAO,KAAA,CAAM,KAAA,CAAM,IAAI,CAAC,IAAA,KAAS,KAAK,EAAE,CAAA;AAAA,UACxC,QAAA,EAAU,MAAM,QAAA,IAAY,mBAAA;AAAA,UAE5B,QAAA,kBAAA,GAAA;AAAA,YAAC,KAAA;AAAA,YAAA;AAAA,cACA,SAAA,EAAW,EAAA;AAAA,gBACV,qCAAA;AAAA,gBACA,KAAA,CAAM;AAAA,eACP;AAAA,cAEC,QAAA,EAAA,KAAA,CAAM,MAAM,GAAA,CAAI,CAAC,SAAS,KAAA,CAAM,UAAA,CAAW,IAAI,CAAC;AAAA;AAAA;AAClD;AAAA;AACD;AAAA,GACD,EACD,CAAA;AAEF","file":"sortable-chip-list.js","sourcesContent":["import { closestCorners, DndContext } from \"@dnd-kit/core\"\nimport {\n\trectSortingStrategy,\n\tSortableContext,\n\ttype SortingStrategy,\n} from \"@dnd-kit/sortable\"\nimport { cn } from \"@hoardodile/ui/lib/utils\"\nimport type { ReactNode } from \"react\"\n\nexport type SortableChipListProps<T extends { readonly id: string }> = {\n\treadonly items: readonly T[]\n\treadonly renderItem: (item: T) => ReactNode\n\treadonly sensors: ReturnType<typeof import(\"@dnd-kit/core\").useSensors>\n\treadonly onDragEnd: (event: import(\"@dnd-kit/core\").DragEndEvent) => void\n\treadonly strategy?: SortingStrategy\n\treadonly empty?: ReactNode\n\treadonly className?: string\n\treadonly listClassName?: string\n}\n\n/**\n * Encapsulates the canonical DnD chip list used by management panels:\n * `DndContext` + `SortableContext` with `closestCorners` and\n * `rectSortingStrategy`.\n */\nexport function SortableChipList<T extends { readonly id: string }>(\n\tprops: SortableChipListProps<T>,\n): ReactNode {\n\tif (props.items.length === 0) {\n\t\treturn props.empty ?? null\n\t}\n\n\treturn (\n\t\t<div className={props.className}>\n\t\t\t<DndContext\n\t\t\t\tsensors={props.sensors}\n\t\t\t\tcollisionDetection={closestCorners}\n\t\t\t\tonDragEnd={props.onDragEnd}\n\t\t\t>\n\t\t\t\t<SortableContext\n\t\t\t\t\titems={props.items.map((item) => item.id)}\n\t\t\t\t\tstrategy={props.strategy ?? rectSortingStrategy}\n\t\t\t\t>\n\t\t\t\t\t<div\n\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\"flex flex-wrap items-center gap-1.5\",\n\t\t\t\t\t\t\tprops.listClassName,\n\t\t\t\t\t\t)}\n\t\t\t\t\t>\n\t\t\t\t\t\t{props.items.map((item) => props.renderItem(item))}\n\t\t\t\t\t</div>\n\t\t\t\t</SortableContext>\n\t\t\t</DndContext>\n\t\t</div>\n\t)\n}\n"]}
@@ -1,533 +1,5 @@
1
- import { clsx } from 'clsx';
2
- import { extendTailwindMerge } from 'tailwind-merge';
3
- import { useId } from 'react';
4
- import { jsx, jsxs } from 'react/jsx-runtime';
5
-
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
- export { SpecialTagSurface, getSpecialTagStyleConfig };
1
+ export { SpecialTagSurface, getSpecialTagStyleConfig } from '../chunk-GKSX5ULZ.js';
2
+ import '../chunk-M5OJN54O.js';
3
+ import '../chunk-2HWSCY4T.js';
532
4
  //# sourceMappingURL=special-tag-surface.js.map
533
5
  //# sourceMappingURL=special-tag-surface.js.map