@hoardodile/ui 0.1.7 → 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 (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,780 +1,24 @@
1
- import { clsx } from 'clsx';
2
- import { extendTailwindMerge } from 'tailwind-merge';
3
- import { Button as Button$1 } from '@base-ui/react/button';
4
- import { cva } from 'class-variance-authority';
5
- import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
6
- import { createContext, useId, useRef, useState, useEffect, useCallback, useContext, useSyncExternalStore, createElement } from 'react';
7
- import { Switch as Switch$1 } from '@base-ui/react/switch';
8
- import '@solar-icons/react/bold/add-circle';
9
- import '@solar-icons/react/bold/align-left';
10
- import '@solar-icons/react/bold/alt-arrow-down';
11
- import '@solar-icons/react/bold/alt-arrow-left';
12
- import '@solar-icons/react/bold/alt-arrow-right';
13
- import '@solar-icons/react/bold/alt-arrow-up';
14
- import '@solar-icons/react/bold/archive';
15
- import '@solar-icons/react/bold/arrow-right';
16
- import '@solar-icons/react/bold/arrow-to-top-left';
17
- import '@solar-icons/react/bold/arrow-to-top-right';
18
- import '@solar-icons/react/bold/bell';
19
- import '@solar-icons/react/bold/bolt';
20
- import '@solar-icons/react/bold/book';
21
- import '@solar-icons/react/bold/book-2';
22
- import '@solar-icons/react/bold/bookmark';
23
- import '@solar-icons/react/bold/bookmark-circle';
24
- import '@solar-icons/react/bold/box';
25
- import '@solar-icons/react/bold/branching-paths-up';
26
- import '@solar-icons/react/bold/bug';
27
- import '@solar-icons/react/bold/calendar-date';
28
- import '@solar-icons/react/bold/chat-round';
29
- import '@solar-icons/react/bold/chat-round-dots';
30
- import '@solar-icons/react/bold/chat-round-line';
31
- import '@solar-icons/react/bold/chat-square';
32
- import '@solar-icons/react/bold/check-circle';
33
- import '@solar-icons/react/bold/checklist';
34
- import '@solar-icons/react/bold/clipboard-list';
35
- import '@solar-icons/react/bold/clock-circle';
36
- import '@solar-icons/react/bold/compass';
37
- import '@solar-icons/react/bold/copy';
38
- import '@solar-icons/react/bold/crown';
39
- import '@solar-icons/react/bold/danger-triangle';
40
- import '@solar-icons/react/bold/database';
41
- import '@solar-icons/react/bold/diskette';
42
- import '@solar-icons/react/bold/dislike';
43
- import '@solar-icons/react/bold/document-add';
44
- import '@solar-icons/react/bold/document-text';
45
- import '@solar-icons/react/bold/double-alt-arrow-down';
46
- import '@solar-icons/react/bold/download';
47
- import '@solar-icons/react/bold/eraser';
48
- import '@solar-icons/react/bold/eye';
49
- import '@solar-icons/react/bold/file';
50
- import '@solar-icons/react/bold/file-remove';
51
- import '@solar-icons/react/bold/file-text';
52
- import '@solar-icons/react/bold/filter';
53
- import '@solar-icons/react/bold/filters';
54
- import '@solar-icons/react/bold/folder';
55
- import '@solar-icons/react/bold/folder-open';
56
- import '@solar-icons/react/bold/folder-path-connect';
57
- import '@solar-icons/react/bold/forbidden-circle';
58
- import { GalleryIcon as GalleryIcon$2 } from '@solar-icons/react/bold/gallery';
59
- import '@solar-icons/react/bold/gallery-add';
60
- import '@solar-icons/react/bold/gallery-wide';
61
- import '@solar-icons/react/bold/global';
62
- import '@solar-icons/react/bold/graph-down';
63
- import '@solar-icons/react/bold/graph-up';
64
- import '@solar-icons/react/bold/hamburger-menu';
65
- import '@solar-icons/react/bold/hand-heart';
66
- import '@solar-icons/react/bold/heart';
67
- import '@solar-icons/react/bold/help';
68
- import '@solar-icons/react/bold/history';
69
- import '@solar-icons/react/bold/home-angle';
70
- import '@solar-icons/react/bold/info-circle';
71
- import '@solar-icons/react/bold/layers';
72
- import '@solar-icons/react/bold/letter';
73
- import '@solar-icons/react/bold/like';
74
- import '@solar-icons/react/bold/link';
75
- import '@solar-icons/react/bold/list';
76
- import '@solar-icons/react/bold/list-vertical';
77
- import '@solar-icons/react/bold/lock-password';
78
- import '@solar-icons/react/bold/login-2';
79
- import '@solar-icons/react/bold/logout';
80
- import '@solar-icons/react/bold/magic-wand-2';
81
- import '@solar-icons/react/bold/magnifier';
82
- import '@solar-icons/react/bold/magnifier-zoom-in';
83
- import '@solar-icons/react/bold/magnifier-zoom-out';
84
- import '@solar-icons/react/bold/maximize';
85
- import '@solar-icons/react/bold/menu-dots';
86
- import '@solar-icons/react/bold/minimize';
87
- import '@solar-icons/react/bold/minus-square';
88
- import '@solar-icons/react/bold/monitor';
89
- import '@solar-icons/react/bold/monitor-smartphone';
90
- import '@solar-icons/react/bold/moon';
91
- import '@solar-icons/react/bold/move-to-folder';
92
- import '@solar-icons/react/bold/music-notes';
93
- import '@solar-icons/react/bold/palette';
94
- import '@solar-icons/react/bold/palette-round';
95
- import '@solar-icons/react/bold/pause';
96
- import '@solar-icons/react/bold/pen';
97
- import '@solar-icons/react/bold/pen-new-round';
98
- import '@solar-icons/react/bold/pie-chart';
99
- import '@solar-icons/react/bold/pin';
100
- import '@solar-icons/react/bold/play';
101
- import '@solar-icons/react/bold/plug-circle';
102
- import '@solar-icons/react/bold/plus-minus';
103
- import '@solar-icons/react/bold/pulse';
104
- import '@solar-icons/react/bold/refresh';
105
- import { RefreshCircleIcon as RefreshCircleIcon$2 } from '@solar-icons/react/bold/refresh-circle';
106
- import '@solar-icons/react/bold/reorder';
107
- import '@solar-icons/react/bold/repeat';
108
- import '@solar-icons/react/bold/reply';
109
- import '@solar-icons/react/bold/restart';
110
- import '@solar-icons/react/bold/rocket';
111
- import '@solar-icons/react/bold/route';
112
- import '@solar-icons/react/bold/scale';
113
- import '@solar-icons/react/bold/server';
114
- import '@solar-icons/react/bold/settings';
115
- import '@solar-icons/react/bold/share';
116
- import '@solar-icons/react/bold/shield-check';
117
- import '@solar-icons/react/bold/shop-2';
118
- import '@solar-icons/react/bold/sidebar-minimalistic';
119
- import '@solar-icons/react/bold/slider-horizontal';
120
- import '@solar-icons/react/bold/smartphone';
121
- import '@solar-icons/react/bold/sort';
122
- import '@solar-icons/react/bold/sort-by-time';
123
- import '@solar-icons/react/bold/sort-horizontal';
124
- import '@solar-icons/react/bold/sort-vertical';
125
- import '@solar-icons/react/bold/star';
126
- import '@solar-icons/react/bold/structure';
127
- import '@solar-icons/react/bold/sun';
128
- import '@solar-icons/react/bold/tag';
129
- import '@solar-icons/react/bold/telescope';
130
- import '@solar-icons/react/bold/test-tube';
131
- import '@solar-icons/react/bold/text-format';
132
- import '@solar-icons/react/bold/transfer-horizontal';
133
- import '@solar-icons/react/bold/translation';
134
- import '@solar-icons/react/bold/trash-bin-minimalistic';
135
- import '@solar-icons/react/bold/undo-left';
136
- import '@solar-icons/react/bold/undo-left-round';
137
- import '@solar-icons/react/bold/undo-right';
138
- import '@solar-icons/react/bold/undo-right-round';
139
- import { UploadIcon as UploadIcon$2 } from '@solar-icons/react/bold/upload';
140
- import '@solar-icons/react/bold/user';
141
- import '@solar-icons/react/bold/user-id';
142
- import '@solar-icons/react/bold/user-minus';
143
- import '@solar-icons/react/bold/user-plus';
144
- import '@solar-icons/react/bold/users-group-rounded';
145
- import '@solar-icons/react/bold/users-group-two-rounded';
146
- import '@solar-icons/react/bold/video-frame';
147
- import '@solar-icons/react/bold/video-frame-play-horizontal';
148
- import '@solar-icons/react/bold/widget-2';
149
- import '@solar-icons/react/bold/widget-5';
150
- import '@solar-icons/react/bold/window-frame';
151
- import '@solar-icons/react/bold-duotone/add-circle';
152
- import '@solar-icons/react/bold-duotone/align-left';
153
- import '@solar-icons/react/bold-duotone/alt-arrow-down';
154
- import '@solar-icons/react/bold-duotone/alt-arrow-left';
155
- import '@solar-icons/react/bold-duotone/alt-arrow-right';
156
- import '@solar-icons/react/bold-duotone/alt-arrow-up';
157
- import '@solar-icons/react/bold-duotone/archive';
158
- import '@solar-icons/react/bold-duotone/arrow-right';
159
- import '@solar-icons/react/bold-duotone/arrow-to-top-left';
160
- import '@solar-icons/react/bold-duotone/arrow-to-top-right';
161
- import '@solar-icons/react/bold-duotone/bell';
162
- import '@solar-icons/react/bold-duotone/bolt';
163
- import '@solar-icons/react/bold-duotone/book';
164
- import '@solar-icons/react/bold-duotone/book-2';
165
- import '@solar-icons/react/bold-duotone/bookmark';
166
- import '@solar-icons/react/bold-duotone/bookmark-circle';
167
- import '@solar-icons/react/bold-duotone/box';
168
- import '@solar-icons/react/bold-duotone/branching-paths-up';
169
- import '@solar-icons/react/bold-duotone/bug';
170
- import '@solar-icons/react/bold-duotone/calendar-date';
171
- import '@solar-icons/react/bold-duotone/chat-round';
172
- import '@solar-icons/react/bold-duotone/chat-round-dots';
173
- import '@solar-icons/react/bold-duotone/chat-round-line';
174
- import '@solar-icons/react/bold-duotone/chat-square';
175
- import '@solar-icons/react/bold-duotone/check-circle';
176
- import '@solar-icons/react/bold-duotone/checklist';
177
- import '@solar-icons/react/bold-duotone/clipboard-list';
178
- import '@solar-icons/react/bold-duotone/clock-circle';
179
- import '@solar-icons/react/bold-duotone/compass';
180
- import '@solar-icons/react/bold-duotone/copy';
181
- import '@solar-icons/react/bold-duotone/crown';
182
- import '@solar-icons/react/bold-duotone/danger-triangle';
183
- import '@solar-icons/react/bold-duotone/database';
184
- import '@solar-icons/react/bold-duotone/diskette';
185
- import '@solar-icons/react/bold-duotone/dislike';
186
- import '@solar-icons/react/bold-duotone/document-add';
187
- import '@solar-icons/react/bold-duotone/document-text';
188
- import '@solar-icons/react/bold-duotone/double-alt-arrow-down';
189
- import '@solar-icons/react/bold-duotone/download';
190
- import '@solar-icons/react/bold-duotone/eraser';
191
- import '@solar-icons/react/bold-duotone/eye';
192
- import '@solar-icons/react/bold-duotone/file';
193
- import '@solar-icons/react/bold-duotone/file-remove';
194
- import '@solar-icons/react/bold-duotone/file-text';
195
- import '@solar-icons/react/bold-duotone/filter';
196
- import '@solar-icons/react/bold-duotone/filters';
197
- import '@solar-icons/react/bold-duotone/folder';
198
- import '@solar-icons/react/bold-duotone/folder-open';
199
- import '@solar-icons/react/bold-duotone/folder-path-connect';
200
- import '@solar-icons/react/bold-duotone/forbidden-circle';
201
- import { GalleryIcon as GalleryIcon$1 } from '@solar-icons/react/bold-duotone/gallery';
202
- import '@solar-icons/react/bold-duotone/gallery-add';
203
- import '@solar-icons/react/bold-duotone/gallery-wide';
204
- import '@solar-icons/react/bold-duotone/global';
205
- import '@solar-icons/react/bold-duotone/graph-down';
206
- import '@solar-icons/react/bold-duotone/graph-up';
207
- import '@solar-icons/react/bold-duotone/hamburger-menu';
208
- import '@solar-icons/react/bold-duotone/hand-heart';
209
- import '@solar-icons/react/bold-duotone/heart';
210
- import '@solar-icons/react/bold-duotone/help';
211
- import '@solar-icons/react/bold-duotone/history';
212
- import '@solar-icons/react/bold-duotone/home-angle';
213
- import '@solar-icons/react/bold-duotone/info-circle';
214
- import '@solar-icons/react/bold-duotone/layers';
215
- import '@solar-icons/react/bold-duotone/letter';
216
- import '@solar-icons/react/bold-duotone/like';
217
- import '@solar-icons/react/bold-duotone/link';
218
- import '@solar-icons/react/bold-duotone/list';
219
- import '@solar-icons/react/bold-duotone/list-vertical';
220
- import '@solar-icons/react/bold-duotone/lock-password';
221
- import '@solar-icons/react/bold-duotone/login-2';
222
- import '@solar-icons/react/bold-duotone/logout';
223
- import '@solar-icons/react/bold-duotone/magic-wand-2';
224
- import '@solar-icons/react/bold-duotone/magnifier';
225
- import '@solar-icons/react/bold-duotone/magnifier-zoom-in';
226
- import '@solar-icons/react/bold-duotone/magnifier-zoom-out';
227
- import '@solar-icons/react/bold-duotone/maximize';
228
- import '@solar-icons/react/bold-duotone/menu-dots';
229
- import '@solar-icons/react/bold-duotone/minimize';
230
- import '@solar-icons/react/bold-duotone/minus-square';
231
- import '@solar-icons/react/bold-duotone/monitor';
232
- import '@solar-icons/react/bold-duotone/monitor-smartphone';
233
- import '@solar-icons/react/bold-duotone/moon';
234
- import '@solar-icons/react/bold-duotone/move-to-folder';
235
- import '@solar-icons/react/bold-duotone/music-notes';
236
- import '@solar-icons/react/bold-duotone/palette';
237
- import '@solar-icons/react/bold-duotone/palette-round';
238
- import '@solar-icons/react/bold-duotone/pause';
239
- import '@solar-icons/react/bold-duotone/pen';
240
- import '@solar-icons/react/bold-duotone/pen-new-round';
241
- import '@solar-icons/react/bold-duotone/pie-chart';
242
- import '@solar-icons/react/bold-duotone/pin';
243
- import '@solar-icons/react/bold-duotone/play';
244
- import '@solar-icons/react/bold-duotone/plug-circle';
245
- import '@solar-icons/react/bold-duotone/plus-minus';
246
- import '@solar-icons/react/bold-duotone/pulse';
247
- import '@solar-icons/react/bold-duotone/refresh';
248
- import { RefreshCircleIcon as RefreshCircleIcon$1 } from '@solar-icons/react/bold-duotone/refresh-circle';
249
- import '@solar-icons/react/bold-duotone/reorder';
250
- import '@solar-icons/react/bold-duotone/repeat';
251
- import '@solar-icons/react/bold-duotone/reply';
252
- import '@solar-icons/react/bold-duotone/restart';
253
- import '@solar-icons/react/bold-duotone/rocket';
254
- import '@solar-icons/react/bold-duotone/route';
255
- import '@solar-icons/react/bold-duotone/scale';
256
- import '@solar-icons/react/bold-duotone/server';
257
- import '@solar-icons/react/bold-duotone/settings';
258
- import '@solar-icons/react/bold-duotone/share';
259
- import '@solar-icons/react/bold-duotone/shield-check';
260
- import '@solar-icons/react/bold-duotone/shop-2';
261
- import '@solar-icons/react/bold-duotone/sidebar-minimalistic';
262
- import '@solar-icons/react/bold-duotone/slider-horizontal';
263
- import '@solar-icons/react/bold-duotone/smartphone';
264
- import '@solar-icons/react/bold-duotone/sort';
265
- import '@solar-icons/react/bold-duotone/sort-by-time';
266
- import '@solar-icons/react/bold-duotone/sort-horizontal';
267
- import '@solar-icons/react/bold-duotone/sort-vertical';
268
- import '@solar-icons/react/bold-duotone/star';
269
- import '@solar-icons/react/bold-duotone/structure';
270
- import '@solar-icons/react/bold-duotone/sun';
271
- import '@solar-icons/react/bold-duotone/tag';
272
- import '@solar-icons/react/bold-duotone/telescope';
273
- import '@solar-icons/react/bold-duotone/test-tube';
274
- import '@solar-icons/react/bold-duotone/text-format';
275
- import '@solar-icons/react/bold-duotone/transfer-horizontal';
276
- import '@solar-icons/react/bold-duotone/translation';
277
- import '@solar-icons/react/bold-duotone/trash-bin-minimalistic';
278
- import '@solar-icons/react/bold-duotone/undo-left';
279
- import '@solar-icons/react/bold-duotone/undo-left-round';
280
- import '@solar-icons/react/bold-duotone/undo-right';
281
- import '@solar-icons/react/bold-duotone/undo-right-round';
282
- import { UploadIcon as UploadIcon$1 } from '@solar-icons/react/bold-duotone/upload';
283
- import '@solar-icons/react/bold-duotone/user';
284
- import '@solar-icons/react/bold-duotone/user-id';
285
- import '@solar-icons/react/bold-duotone/user-minus';
286
- import '@solar-icons/react/bold-duotone/user-plus';
287
- import '@solar-icons/react/bold-duotone/users-group-rounded';
288
- import '@solar-icons/react/bold-duotone/users-group-two-rounded';
289
- import '@solar-icons/react/bold-duotone/video-frame';
290
- import '@solar-icons/react/bold-duotone/video-frame-play-horizontal';
291
- import '@solar-icons/react/bold-duotone/widget-2';
292
- import '@solar-icons/react/bold-duotone/widget-5';
293
- import '@solar-icons/react/bold-duotone/window-frame';
294
- import '@solar-icons/react/linear/add-circle';
295
- import '@solar-icons/react/linear/align-left';
296
- import '@solar-icons/react/linear/alt-arrow-down';
297
- import '@solar-icons/react/linear/alt-arrow-left';
298
- import '@solar-icons/react/linear/alt-arrow-right';
299
- import '@solar-icons/react/linear/alt-arrow-up';
300
- import '@solar-icons/react/linear/archive';
301
- import '@solar-icons/react/linear/arrow-right';
302
- import '@solar-icons/react/linear/arrow-to-top-left';
303
- import '@solar-icons/react/linear/arrow-to-top-right';
304
- import '@solar-icons/react/linear/bell';
305
- import '@solar-icons/react/linear/bolt';
306
- import '@solar-icons/react/linear/book';
307
- import '@solar-icons/react/linear/book-2';
308
- import '@solar-icons/react/linear/bookmark';
309
- import '@solar-icons/react/linear/bookmark-circle';
310
- import '@solar-icons/react/linear/box';
311
- import '@solar-icons/react/linear/branching-paths-up';
312
- import '@solar-icons/react/linear/bug';
313
- import '@solar-icons/react/linear/calendar-date';
314
- import '@solar-icons/react/linear/chat-round';
315
- import '@solar-icons/react/linear/chat-round-dots';
316
- import '@solar-icons/react/linear/chat-round-line';
317
- import '@solar-icons/react/linear/chat-square';
318
- import '@solar-icons/react/linear/check-circle';
319
- import '@solar-icons/react/linear/checklist';
320
- import '@solar-icons/react/linear/clipboard-list';
321
- import '@solar-icons/react/linear/clock-circle';
322
- import '@solar-icons/react/linear/compass';
323
- import '@solar-icons/react/linear/copy';
324
- import '@solar-icons/react/linear/crown';
325
- import '@solar-icons/react/linear/danger-triangle';
326
- import '@solar-icons/react/linear/database';
327
- import '@solar-icons/react/linear/diskette';
328
- import '@solar-icons/react/linear/dislike';
329
- import '@solar-icons/react/linear/document-add';
330
- import '@solar-icons/react/linear/document-text';
331
- import '@solar-icons/react/linear/double-alt-arrow-down';
332
- import '@solar-icons/react/linear/download';
333
- import '@solar-icons/react/linear/eraser';
334
- import '@solar-icons/react/linear/eye';
335
- import '@solar-icons/react/linear/file';
336
- import '@solar-icons/react/linear/file-remove';
337
- import '@solar-icons/react/linear/file-text';
338
- import '@solar-icons/react/linear/filter';
339
- import '@solar-icons/react/linear/filters';
340
- import '@solar-icons/react/linear/folder';
341
- import '@solar-icons/react/linear/folder-open';
342
- import '@solar-icons/react/linear/folder-path-connect';
343
- import '@solar-icons/react/linear/forbidden-circle';
344
- import { GalleryIcon } from '@solar-icons/react/linear/gallery';
345
- import '@solar-icons/react/linear/gallery-add';
346
- import '@solar-icons/react/linear/gallery-wide';
347
- import '@solar-icons/react/linear/global';
348
- import '@solar-icons/react/linear/graph-down';
349
- import '@solar-icons/react/linear/graph-up';
350
- import '@solar-icons/react/linear/hamburger-menu';
351
- import '@solar-icons/react/linear/hand-heart';
352
- import '@solar-icons/react/linear/heart';
353
- import '@solar-icons/react/linear/help';
354
- import '@solar-icons/react/linear/history';
355
- import '@solar-icons/react/linear/home-angle';
356
- import '@solar-icons/react/linear/info-circle';
357
- import '@solar-icons/react/linear/layers';
358
- import '@solar-icons/react/linear/letter';
359
- import '@solar-icons/react/linear/like';
360
- import '@solar-icons/react/linear/link';
361
- import '@solar-icons/react/linear/list';
362
- import '@solar-icons/react/linear/list-vertical';
363
- import '@solar-icons/react/linear/lock-password';
364
- import '@solar-icons/react/linear/login-2';
365
- import '@solar-icons/react/linear/logout';
366
- import '@solar-icons/react/linear/magic-wand-2';
367
- import '@solar-icons/react/linear/magnifier';
368
- import '@solar-icons/react/linear/magnifier-zoom-in';
369
- import '@solar-icons/react/linear/magnifier-zoom-out';
370
- import '@solar-icons/react/linear/maximize';
371
- import '@solar-icons/react/linear/minimize';
372
- import '@solar-icons/react/linear/minus-square';
373
- import '@solar-icons/react/linear/monitor';
374
- import '@solar-icons/react/linear/monitor-smartphone';
375
- import '@solar-icons/react/linear/moon';
376
- import '@solar-icons/react/linear/move-to-folder';
377
- import '@solar-icons/react/linear/music-notes';
378
- import '@solar-icons/react/linear/palette';
379
- import '@solar-icons/react/linear/palette-round';
380
- import '@solar-icons/react/linear/pause';
381
- import '@solar-icons/react/linear/pen';
382
- import '@solar-icons/react/linear/pen-new-round';
383
- import '@solar-icons/react/linear/pie-chart';
384
- import '@solar-icons/react/linear/pin';
385
- import '@solar-icons/react/linear/play';
386
- import '@solar-icons/react/linear/plug-circle';
387
- import '@solar-icons/react/linear/plus-minus';
388
- import '@solar-icons/react/linear/pulse';
389
- import '@solar-icons/react/linear/refresh';
390
- import { RefreshCircleIcon } from '@solar-icons/react/linear/refresh-circle';
391
- import '@solar-icons/react/linear/reorder';
392
- import '@solar-icons/react/linear/repeat';
393
- import '@solar-icons/react/linear/reply';
394
- import '@solar-icons/react/linear/restart';
395
- import '@solar-icons/react/linear/rocket';
396
- import '@solar-icons/react/linear/route';
397
- import '@solar-icons/react/linear/scale';
398
- import '@solar-icons/react/linear/server';
399
- import '@solar-icons/react/linear/settings';
400
- import '@solar-icons/react/linear/share';
401
- import '@solar-icons/react/linear/shield-check';
402
- import '@solar-icons/react/linear/shop-2';
403
- import '@solar-icons/react/linear/sidebar-minimalistic';
404
- import '@solar-icons/react/linear/slider-horizontal';
405
- import '@solar-icons/react/linear/smartphone';
406
- import '@solar-icons/react/linear/sort';
407
- import '@solar-icons/react/linear/sort-by-time';
408
- import '@solar-icons/react/linear/sort-horizontal';
409
- import '@solar-icons/react/linear/sort-vertical';
410
- import '@solar-icons/react/linear/star';
411
- import '@solar-icons/react/linear/structure';
412
- import '@solar-icons/react/linear/sun';
413
- import '@solar-icons/react/linear/tag';
414
- import '@solar-icons/react/linear/telescope';
415
- import '@solar-icons/react/linear/test-tube';
416
- import '@solar-icons/react/linear/text-format';
417
- import '@solar-icons/react/linear/transfer-horizontal';
418
- import '@solar-icons/react/linear/translation';
419
- import '@solar-icons/react/linear/trash-bin-minimalistic';
420
- import '@solar-icons/react/linear/undo-left';
421
- import '@solar-icons/react/linear/undo-left-round';
422
- import '@solar-icons/react/linear/undo-right';
423
- import '@solar-icons/react/linear/undo-right-round';
424
- import { UploadIcon } from '@solar-icons/react/linear/upload';
425
- import '@solar-icons/react/linear/user';
426
- import '@solar-icons/react/linear/user-id';
427
- import '@solar-icons/react/linear/user-minus';
428
- import '@solar-icons/react/linear/user-plus';
429
- import '@solar-icons/react/linear/users-group-rounded';
430
- import '@solar-icons/react/linear/users-group-two-rounded';
431
- import '@solar-icons/react/linear/video-frame';
432
- import '@solar-icons/react/linear/video-frame-play-horizontal';
433
- import '@solar-icons/react/linear/widget-2';
434
- import '@solar-icons/react/linear/widget-5';
435
- import '@solar-icons/react/linear/window-frame';
436
- import { Toast } from '@base-ui/react/toast';
1
+ import { toast } from '../chunk-BFGOE5AI.js';
2
+ import '../chunk-WI6O7GZK.js';
3
+ import { Label } from '../chunk-FH5RNCFR.js';
4
+ import { ImageCropper } from '../chunk-SKDPGSRL.js';
5
+ import { Switch } from '../chunk-OW5FWLPH.js';
6
+ import { DialogFooterActions } from '../chunk-2BVZEYNW.js';
7
+ import { useDialogFooterActions } from '../chunk-6HAIUXNZ.js';
8
+ import '../chunk-KOFWEPPB.js';
9
+ import '../chunk-TDDHQZ62.js';
10
+ import '../chunk-QGMDWGJT.js';
11
+ import '../chunk-XBPQEZES.js';
12
+ import '../chunk-KNPRUZ4H.js';
13
+ import { Button } from '../chunk-PWJBHUM2.js';
14
+ import { Upload, RefreshCircle, Gallery } from '../chunk-7MWWHI6T.js';
15
+ import '../chunk-OEVALKQ5.js';
16
+ import { cn } from '../chunk-M5OJN54O.js';
17
+ import '../chunk-2HWSCY4T.js';
18
+ import { useId, useRef, useState, useEffect, useCallback } from 'react';
437
19
  import { useTranslation } from 'react-i18next';
438
- import ReactCrop from 'react-image-crop';
439
- import 'react-image-crop/dist/ReactCrop.css';
440
-
441
- // src/lib/utils.ts
442
- var mergeTheme = {
443
- text: ["tiny", "ui", "doc", "doc-title", "doc-heading", "quote"],
444
- spacing: ["chip", "control", "nav", "sidebar", "panel"],
445
- tracking: ["label"],
446
- shadow: ["card", "dialog"],
447
- container: ["reading", "medium", "content"],
448
- font: ["doc", "heading"],
449
- ease: ["standard"],
450
- animate: ["skel", "pop"]
451
- };
452
- var twMerge = extendTailwindMerge({
453
- extend: { theme: mergeTheme }
454
- });
20
+ import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
455
21
 
456
- // src/lib/utils.ts
457
- function cn(...inputs) {
458
- return twMerge(clsx(inputs));
459
- }
460
- var buttonVariants = cva(
461
- "group/button inline-flex shrink-0 items-center justify-center rounded-lg text-ui font-medium whitespace-nowrap outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
462
- {
463
- variants: {
464
- variant: {
465
- default: "bg-primary px-4! text-primary-foreground hover:bg-primary/80",
466
- outline: "border-border bg-background shadow-xs hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:border-input dark:bg-input/30 dark:hover:bg-input/50",
467
- secondary: "bg-secondary text-foreground hover:bg-[color-mix(in_oklch,var(--secondary),var(--foreground)_5%)] aria-expanded:bg-secondary aria-expanded:text-foreground",
468
- ghost: "hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:hover:bg-muted/50",
469
- destructive: "bg-destructive/10 text-destructive hover:bg-destructive/20 focus-visible:border-destructive/40 focus-visible:ring-destructive/20 dark:bg-destructive/20 dark:hover:bg-destructive/30 dark:focus-visible:ring-destructive/40",
470
- danger: "bg-[color-mix(in_oklab,var(--destructive),black_12%)] text-white hover:bg-[color-mix(in_oklab,var(--destructive),black_4%)] focus-visible:border-destructive/40 focus-visible:ring-destructive/20 disabled:bg-destructive/10 disabled:text-muted-foreground dark:focus-visible:ring-destructive/40",
471
- link: "text-primary underline-offset-4 hover:underline"
472
- },
473
- size: {
474
- default: "h-control gap-2 px-3 in-data-[slot=button-group]:rounded-md has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2",
475
- xs: "h-6 gap-2 rounded-[min(var(--radius-md),8px)] px-2 text-xs in-data-[slot=button-group]:rounded-md has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3",
476
- sm: "h-chip gap-2 rounded-[min(var(--radius-md),10px)] px-2.5 in-data-[slot=button-group]:rounded-md has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5",
477
- lg: "h-10 gap-2 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2",
478
- icon: "size-9",
479
- "icon-xs": "size-6 rounded-[min(var(--radius-md),8px)] in-data-[slot=button-group]:rounded-md [&_svg:not([class*='size-'])]:size-3",
480
- "icon-sm": "size-8 rounded-[min(var(--radius-md),10px)] in-data-[slot=button-group]:rounded-md",
481
- "icon-lg": "size-10"
482
- }
483
- },
484
- defaultVariants: {
485
- variant: "default",
486
- size: "default"
487
- }
488
- }
489
- );
490
- function Button({
491
- active,
492
- className,
493
- variant = "default",
494
- size = "default",
495
- ...props
496
- }) {
497
- return /* @__PURE__ */ jsx(
498
- Button$1,
499
- {
500
- "data-slot": "button",
501
- className: cn(
502
- buttonVariants({ variant, size, className }),
503
- active && "bg-accent text-accent-foreground hover:bg-accent"
504
- ),
505
- ...props
506
- }
507
- );
508
- }
509
- var DialogFooterActionsContext = createContext(null);
510
- function useDialogFooterActions() {
511
- return useContext(DialogFooterActionsContext);
512
- }
513
- function DialogFooterActions({ children }) {
514
- const slot = useDialogFooterActions();
515
- useEffect(() => {
516
- if (slot === null) return;
517
- slot.setFooterActions(children);
518
- return () => slot.setFooterActions(null);
519
- }, [slot, children]);
520
- return null;
521
- }
522
- function Label({ className, ...props }) {
523
- return /* @__PURE__ */ jsx(
524
- "label",
525
- {
526
- "data-slot": "label",
527
- className: cn(
528
- "flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50",
529
- className
530
- ),
531
- ...props
532
- }
533
- );
534
- }
535
- function Switch({
536
- className,
537
- size = "default",
538
- ...props
539
- }) {
540
- return /* @__PURE__ */ jsx(
541
- Switch$1.Root,
542
- {
543
- "data-slot": "switch",
544
- "data-size": size,
545
- className: cn(
546
- "peer group/switch relative inline-flex shrink-0 cursor-pointer items-center rounded-full border border-transparent shadow-xs transition-all outline-none after:absolute after:-inset-x-3 after:-inset-y-2 focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 data-[size=default]:h-5 data-[size=default]:w-9 data-[size=default]:p-[3px] data-[size=sm]:h-[14px] data-[size=sm]:w-[24px] dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 data-checked:bg-primary data-unchecked:bg-input dark:data-unchecked:bg-input/80 data-disabled:cursor-not-allowed data-disabled:opacity-50",
547
- className
548
- ),
549
- ...props,
550
- children: /* @__PURE__ */ jsx(
551
- Switch$1.Thumb,
552
- {
553
- "data-slot": "switch-thumb",
554
- className: "pointer-events-none block rounded-full bg-background ring-1 ring-foreground/10 transition-transform group-data-[size=default]/switch:size-3.5 group-data-[size=sm]/switch:size-3 group-data-[size=default]/switch:data-checked:translate-x-[calc(100%+2px)] group-data-[size=sm]/switch:data-checked:translate-x-[calc(100%-2px)] dark:data-checked:bg-primary-foreground group-data-[size=default]/switch:data-unchecked:translate-x-0 group-data-[size=sm]/switch:data-unchecked:translate-x-0 dark:data-unchecked:bg-foreground"
555
- }
556
- )
557
- }
558
- );
559
- }
560
- function readIconMode() {
561
- return document.documentElement.dataset.iconStyle === "linear" ? "linear" : "boldDuotone";
562
- }
563
- var currentMode = "boldDuotone";
564
- var observer;
565
- var listeners = /* @__PURE__ */ new Set();
566
- function ensureObserver() {
567
- if (observer !== void 0 || typeof document === "undefined") return;
568
- observer = new MutationObserver(() => {
569
- const next = readIconMode();
570
- if (next === currentMode) return;
571
- currentMode = next;
572
- for (const cb of listeners) cb();
573
- });
574
- observer.observe(document.documentElement, {
575
- attributes: true,
576
- attributeFilter: ["data-icon-style"]
577
- });
578
- }
579
- function subscribeIconStyle(callback) {
580
- ensureObserver();
581
- currentMode = readIconMode();
582
- listeners.add(callback);
583
- return () => {
584
- listeners.delete(callback);
585
- };
586
- }
587
- function getIconStyleSnapshot() {
588
- return currentMode;
589
- }
590
- function createIcon(variants) {
591
- function Icon(props) {
592
- const current = useSyncExternalStore(
593
- subscribeIconStyle,
594
- getIconStyleSnapshot,
595
- () => "boldDuotone"
596
- );
597
- const { mode, ...rest } = props;
598
- const Component = variants[mode ?? current];
599
- const className = typeof rest.className === "string" ? `hd-icon ${rest.className}` : "hd-icon";
600
- return createElement(Component, { ...rest, className });
601
- }
602
- return Icon;
603
- }
604
- var Gallery = createIcon({
605
- bold: GalleryIcon$2,
606
- boldDuotone: GalleryIcon$1,
607
- linear: GalleryIcon
608
- });
609
- var RefreshCircle = createIcon({
610
- bold: RefreshCircleIcon$2,
611
- boldDuotone: RefreshCircleIcon$1,
612
- linear: RefreshCircleIcon
613
- });
614
- var Upload = createIcon({
615
- bold: UploadIcon$2,
616
- boldDuotone: UploadIcon$1,
617
- linear: UploadIcon
618
- });
619
- var toast = Toast.createToastManager();
620
- Toast.createToastManager;
621
- Toast.useToastManager;
622
- function ImageCropper(props) {
623
- const {
624
- src,
625
- aspect,
626
- mimeType = "image/png",
627
- quality = 0.92,
628
- displayMaxWidth,
629
- displayMaxHeight = "70vh"
630
- } = props;
631
- const imgRef = useRef(null);
632
- const [crop, setCrop] = useState(void 0);
633
- const [completed, setCompleted] = useState(void 0);
634
- const handleImageLoad = useCallback(
635
- (e) => {
636
- const { naturalWidth, naturalHeight } = e.currentTarget;
637
- const initial = buildInitialCrop(naturalWidth, naturalHeight, aspect);
638
- setCrop(initial);
639
- setCompleted(initial);
640
- },
641
- [aspect]
642
- );
643
- const onCropReady = props.onCropReady;
644
- const onPreviewChange = props.onPreviewChange;
645
- useEffect(() => {
646
- const img = imgRef.current;
647
- if (img === null || completed === void 0 || completed.width === 0) {
648
- return;
649
- }
650
- onCropReady(() => renderCroppedImage(img, completed, mimeType, quality));
651
- if (onPreviewChange !== void 0) {
652
- onPreviewChange(renderPreviewDataUrl(img, completed));
653
- }
654
- }, [completed, mimeType, quality, onCropReady, onPreviewChange]);
655
- return /* @__PURE__ */ jsx("div", { className: "react-crop-theme flex min-h-0 w-full max-w-full flex-col items-center gap-2 overflow-hidden", children: /* @__PURE__ */ jsx(
656
- ReactCrop,
657
- {
658
- className: "max-w-full",
659
- crop,
660
- onChange: (_, percentCrop) => setCrop(percentCrop),
661
- onComplete: (_, percentCrop) => setCompleted(percentCrop),
662
- aspect,
663
- keepSelection: true,
664
- ruleOfThirds: true,
665
- children: /* @__PURE__ */ jsx(
666
- "img",
667
- {
668
- ref: imgRef,
669
- src,
670
- onLoad: handleImageLoad,
671
- className: "h-auto max-w-full",
672
- style: {
673
- maxWidth: displayMaxWidth,
674
- maxHeight: displayMaxHeight
675
- }
676
- }
677
- )
678
- }
679
- ) });
680
- }
681
- function buildInitialCrop(imgWidth, imgHeight, aspect) {
682
- if (aspect === void 0) {
683
- return { unit: "%", x: 0, y: 0, width: 100, height: 100 };
684
- }
685
- const imgAspect = imgWidth / imgHeight;
686
- let widthPct;
687
- let heightPct;
688
- if (imgAspect >= aspect) {
689
- heightPct = 100;
690
- widthPct = 100 * aspect / imgAspect;
691
- } else {
692
- widthPct = 100;
693
- heightPct = 100 * imgAspect / aspect;
694
- }
695
- return {
696
- unit: "%",
697
- x: (100 - widthPct) / 2,
698
- y: (100 - heightPct) / 2,
699
- width: widthPct,
700
- height: heightPct
701
- };
702
- }
703
- var CroppedImageRenderError = class extends Error {
704
- constructor(message) {
705
- super(message);
706
- this.name = "CroppedImageRenderError";
707
- }
708
- };
709
- async function renderCroppedImage(image, crop, mimeType, quality) {
710
- const sourceRect = cropToNaturalRect(image, crop);
711
- const canvas = document.createElement("canvas");
712
- canvas.width = sourceRect.sw;
713
- canvas.height = sourceRect.sh;
714
- const ctx = canvas.getContext("2d");
715
- if (ctx === null) {
716
- throw new CroppedImageRenderError("2d context is unavailable");
717
- }
718
- ctx.imageSmoothingQuality = "high";
719
- ctx.drawImage(
720
- image,
721
- sourceRect.sx,
722
- sourceRect.sy,
723
- sourceRect.sw,
724
- sourceRect.sh,
725
- 0,
726
- 0,
727
- sourceRect.sw,
728
- sourceRect.sh
729
- );
730
- const blob = await new Promise((resolve) => {
731
- canvas.toBlob(resolve, mimeType, quality);
732
- });
733
- if (blob === null) {
734
- throw new CroppedImageRenderError("toBlob returned null");
735
- }
736
- return { blob, width: sourceRect.sw, height: sourceRect.sh, mimeType };
737
- }
738
- function renderPreviewDataUrl(image, crop) {
739
- const sourceRect = cropToNaturalRect(image, crop);
740
- const canvas = document.createElement("canvas");
741
- canvas.width = sourceRect.sw;
742
- canvas.height = sourceRect.sh;
743
- const ctx = canvas.getContext("2d", { alpha: true });
744
- if (ctx === null) return "";
745
- ctx.imageSmoothingQuality = "high";
746
- ctx.drawImage(
747
- image,
748
- sourceRect.sx,
749
- sourceRect.sy,
750
- sourceRect.sw,
751
- sourceRect.sh,
752
- 0,
753
- 0,
754
- sourceRect.sw,
755
- sourceRect.sh
756
- );
757
- return canvas.toDataURL("image/png");
758
- }
759
- function cropToNaturalRect(image, crop) {
760
- const naturalWidth = image.naturalWidth;
761
- const naturalHeight = image.naturalHeight;
762
- if (crop.unit === "px") {
763
- return {
764
- sx: crop.x,
765
- sy: crop.y,
766
- sw: Math.max(1, Math.round(crop.width)),
767
- sh: Math.max(1, Math.round(crop.height))
768
- };
769
- }
770
- const sx = crop.x / 100 * naturalWidth;
771
- const sy = crop.y / 100 * naturalHeight;
772
- const swRaw = crop.width / 100 * naturalWidth;
773
- const shRaw = crop.height / 100 * naturalHeight;
774
- const sw = Math.max(1, Math.round(swRaw));
775
- const sh = Math.max(1, Math.round(shRaw));
776
- return { sx, sy, sw, sh };
777
- }
778
22
  function ImageCropPanel(props) {
779
23
  const {
780
24
  aspect,