@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,1056 +1,33 @@
1
- import * as React2 from 'react';
2
- import { useRef, useEffect, useSyncExternalStore, createElement } from 'react';
1
+ import { TooltipTrigger, Tooltip, TooltipContent } from '../chunk-7JMMFY67.js';
2
+ import { Sheet, SheetContent, SheetHeader, SheetTitle, SheetDescription } from '../chunk-SAY52ZKI.js';
3
+ import { Skeleton } from '../chunk-WVEK3WCX.js';
4
+ import { Separator } from '../chunk-BU5DQOPM.js';
5
+ import { Input } from '../chunk-UPWHCG4S.js';
6
+ import '../chunk-TDDHQZ62.js';
7
+ import { useIsMobile } from '../chunk-QGMDWGJT.js';
8
+ import '../chunk-XBPQEZES.js';
9
+ import '../chunk-KNPRUZ4H.js';
10
+ import { Button } from '../chunk-PWJBHUM2.js';
11
+ import { HamburgerMenu } from '../chunk-7MWWHI6T.js';
12
+ import '../chunk-OEVALKQ5.js';
13
+ import { cn } from '../chunk-M5OJN54O.js';
14
+ import '../chunk-2HWSCY4T.js';
15
+ import * as React from 'react';
3
16
  import { mergeProps } from '@base-ui/react/merge-props';
4
17
  import { useRender } from '@base-ui/react/use-render';
5
18
  import { cva } from 'class-variance-authority';
6
19
  import { useTranslation } from 'react-i18next';
7
- import { useMedia } from 'react-use';
8
- import { clsx } from 'clsx';
9
- import { extendTailwindMerge } from 'tailwind-merge';
10
- import { Button as Button$1 } from '@base-ui/react/button';
11
20
  import { jsx, jsxs } from 'react/jsx-runtime';
12
- import { Input as Input$1 } from '@base-ui/react/input';
13
- import { Separator as Separator$1 } from '@base-ui/react/separator';
14
- import { Dialog } from '@base-ui/react/dialog';
15
- import { Tooltip as Tooltip$1 } from '@base-ui/react/tooltip';
16
- import '@solar-icons/react/bold/add-circle';
17
- import '@solar-icons/react/bold/align-left';
18
- import '@solar-icons/react/bold/alt-arrow-down';
19
- import '@solar-icons/react/bold/alt-arrow-left';
20
- import '@solar-icons/react/bold/alt-arrow-right';
21
- import '@solar-icons/react/bold/alt-arrow-up';
22
- import '@solar-icons/react/bold/archive';
23
- import '@solar-icons/react/bold/arrow-right';
24
- import '@solar-icons/react/bold/arrow-to-top-left';
25
- import '@solar-icons/react/bold/arrow-to-top-right';
26
- import '@solar-icons/react/bold/bell';
27
- import '@solar-icons/react/bold/bolt';
28
- import '@solar-icons/react/bold/book';
29
- import '@solar-icons/react/bold/book-2';
30
- import '@solar-icons/react/bold/bookmark';
31
- import '@solar-icons/react/bold/bookmark-circle';
32
- import '@solar-icons/react/bold/box';
33
- import '@solar-icons/react/bold/branching-paths-up';
34
- import '@solar-icons/react/bold/bug';
35
- import '@solar-icons/react/bold/calendar-date';
36
- import '@solar-icons/react/bold/chat-round';
37
- import '@solar-icons/react/bold/chat-round-dots';
38
- import '@solar-icons/react/bold/chat-round-line';
39
- import '@solar-icons/react/bold/chat-square';
40
- import '@solar-icons/react/bold/check-circle';
41
- import '@solar-icons/react/bold/checklist';
42
- import '@solar-icons/react/bold/clipboard-list';
43
- import '@solar-icons/react/bold/clock-circle';
44
- import '@solar-icons/react/bold/compass';
45
- import '@solar-icons/react/bold/copy';
46
- import '@solar-icons/react/bold/crown';
47
- import '@solar-icons/react/bold/danger-triangle';
48
- import '@solar-icons/react/bold/database';
49
- import '@solar-icons/react/bold/diskette';
50
- import '@solar-icons/react/bold/dislike';
51
- import '@solar-icons/react/bold/document-add';
52
- import '@solar-icons/react/bold/document-text';
53
- import '@solar-icons/react/bold/double-alt-arrow-down';
54
- import '@solar-icons/react/bold/download';
55
- import '@solar-icons/react/bold/eraser';
56
- import '@solar-icons/react/bold/eye';
57
- import '@solar-icons/react/bold/file';
58
- import '@solar-icons/react/bold/file-remove';
59
- import '@solar-icons/react/bold/file-text';
60
- import '@solar-icons/react/bold/filter';
61
- import '@solar-icons/react/bold/filters';
62
- import '@solar-icons/react/bold/folder';
63
- import '@solar-icons/react/bold/folder-open';
64
- import '@solar-icons/react/bold/folder-path-connect';
65
- import '@solar-icons/react/bold/forbidden-circle';
66
- import '@solar-icons/react/bold/gallery';
67
- import '@solar-icons/react/bold/gallery-add';
68
- import '@solar-icons/react/bold/gallery-wide';
69
- import '@solar-icons/react/bold/global';
70
- import '@solar-icons/react/bold/graph-down';
71
- import '@solar-icons/react/bold/graph-up';
72
- import { HamburgerMenuIcon as HamburgerMenuIcon$2 } from '@solar-icons/react/bold/hamburger-menu';
73
- import '@solar-icons/react/bold/hand-heart';
74
- import '@solar-icons/react/bold/heart';
75
- import '@solar-icons/react/bold/help';
76
- import '@solar-icons/react/bold/history';
77
- import '@solar-icons/react/bold/home-angle';
78
- import '@solar-icons/react/bold/info-circle';
79
- import '@solar-icons/react/bold/layers';
80
- import '@solar-icons/react/bold/letter';
81
- import '@solar-icons/react/bold/like';
82
- import '@solar-icons/react/bold/link';
83
- import '@solar-icons/react/bold/list';
84
- import '@solar-icons/react/bold/list-vertical';
85
- import '@solar-icons/react/bold/lock-password';
86
- import '@solar-icons/react/bold/login-2';
87
- import '@solar-icons/react/bold/logout';
88
- import '@solar-icons/react/bold/magic-wand-2';
89
- import '@solar-icons/react/bold/magnifier';
90
- import '@solar-icons/react/bold/magnifier-zoom-in';
91
- import '@solar-icons/react/bold/magnifier-zoom-out';
92
- import '@solar-icons/react/bold/maximize';
93
- import '@solar-icons/react/bold/menu-dots';
94
- import '@solar-icons/react/bold/minimize';
95
- import '@solar-icons/react/bold/minus-square';
96
- import '@solar-icons/react/bold/monitor';
97
- import '@solar-icons/react/bold/monitor-smartphone';
98
- import '@solar-icons/react/bold/moon';
99
- import '@solar-icons/react/bold/move-to-folder';
100
- import '@solar-icons/react/bold/music-notes';
101
- import '@solar-icons/react/bold/palette';
102
- import '@solar-icons/react/bold/palette-round';
103
- import '@solar-icons/react/bold/pause';
104
- import '@solar-icons/react/bold/pen';
105
- import '@solar-icons/react/bold/pen-new-round';
106
- import '@solar-icons/react/bold/pie-chart';
107
- import '@solar-icons/react/bold/pin';
108
- import '@solar-icons/react/bold/play';
109
- import '@solar-icons/react/bold/plug-circle';
110
- import '@solar-icons/react/bold/plus-minus';
111
- import '@solar-icons/react/bold/pulse';
112
- import '@solar-icons/react/bold/refresh';
113
- import '@solar-icons/react/bold/refresh-circle';
114
- import '@solar-icons/react/bold/reorder';
115
- import '@solar-icons/react/bold/repeat';
116
- import '@solar-icons/react/bold/reply';
117
- import '@solar-icons/react/bold/restart';
118
- import '@solar-icons/react/bold/rocket';
119
- import '@solar-icons/react/bold/route';
120
- import '@solar-icons/react/bold/scale';
121
- import '@solar-icons/react/bold/server';
122
- import '@solar-icons/react/bold/settings';
123
- import '@solar-icons/react/bold/share';
124
- import '@solar-icons/react/bold/shield-check';
125
- import '@solar-icons/react/bold/shop-2';
126
- import '@solar-icons/react/bold/sidebar-minimalistic';
127
- import '@solar-icons/react/bold/slider-horizontal';
128
- import '@solar-icons/react/bold/smartphone';
129
- import '@solar-icons/react/bold/sort';
130
- import '@solar-icons/react/bold/sort-by-time';
131
- import '@solar-icons/react/bold/sort-horizontal';
132
- import '@solar-icons/react/bold/sort-vertical';
133
- import '@solar-icons/react/bold/star';
134
- import '@solar-icons/react/bold/structure';
135
- import '@solar-icons/react/bold/sun';
136
- import '@solar-icons/react/bold/tag';
137
- import '@solar-icons/react/bold/telescope';
138
- import '@solar-icons/react/bold/test-tube';
139
- import '@solar-icons/react/bold/text-format';
140
- import '@solar-icons/react/bold/transfer-horizontal';
141
- import '@solar-icons/react/bold/translation';
142
- import '@solar-icons/react/bold/trash-bin-minimalistic';
143
- import '@solar-icons/react/bold/undo-left';
144
- import '@solar-icons/react/bold/undo-left-round';
145
- import '@solar-icons/react/bold/undo-right';
146
- import '@solar-icons/react/bold/undo-right-round';
147
- import '@solar-icons/react/bold/upload';
148
- import '@solar-icons/react/bold/user';
149
- import '@solar-icons/react/bold/user-id';
150
- import '@solar-icons/react/bold/user-minus';
151
- import '@solar-icons/react/bold/user-plus';
152
- import '@solar-icons/react/bold/users-group-rounded';
153
- import '@solar-icons/react/bold/users-group-two-rounded';
154
- import '@solar-icons/react/bold/video-frame';
155
- import '@solar-icons/react/bold/video-frame-play-horizontal';
156
- import '@solar-icons/react/bold/widget-2';
157
- import '@solar-icons/react/bold/widget-5';
158
- import '@solar-icons/react/bold/window-frame';
159
- import '@solar-icons/react/bold-duotone/add-circle';
160
- import '@solar-icons/react/bold-duotone/align-left';
161
- import '@solar-icons/react/bold-duotone/alt-arrow-down';
162
- import '@solar-icons/react/bold-duotone/alt-arrow-left';
163
- import '@solar-icons/react/bold-duotone/alt-arrow-right';
164
- import '@solar-icons/react/bold-duotone/alt-arrow-up';
165
- import '@solar-icons/react/bold-duotone/archive';
166
- import '@solar-icons/react/bold-duotone/arrow-right';
167
- import '@solar-icons/react/bold-duotone/arrow-to-top-left';
168
- import '@solar-icons/react/bold-duotone/arrow-to-top-right';
169
- import '@solar-icons/react/bold-duotone/bell';
170
- import '@solar-icons/react/bold-duotone/bolt';
171
- import '@solar-icons/react/bold-duotone/book';
172
- import '@solar-icons/react/bold-duotone/book-2';
173
- import '@solar-icons/react/bold-duotone/bookmark';
174
- import '@solar-icons/react/bold-duotone/bookmark-circle';
175
- import '@solar-icons/react/bold-duotone/box';
176
- import '@solar-icons/react/bold-duotone/branching-paths-up';
177
- import '@solar-icons/react/bold-duotone/bug';
178
- import '@solar-icons/react/bold-duotone/calendar-date';
179
- import '@solar-icons/react/bold-duotone/chat-round';
180
- import '@solar-icons/react/bold-duotone/chat-round-dots';
181
- import '@solar-icons/react/bold-duotone/chat-round-line';
182
- import '@solar-icons/react/bold-duotone/chat-square';
183
- import '@solar-icons/react/bold-duotone/check-circle';
184
- import '@solar-icons/react/bold-duotone/checklist';
185
- import '@solar-icons/react/bold-duotone/clipboard-list';
186
- import '@solar-icons/react/bold-duotone/clock-circle';
187
- import '@solar-icons/react/bold-duotone/compass';
188
- import '@solar-icons/react/bold-duotone/copy';
189
- import '@solar-icons/react/bold-duotone/crown';
190
- import '@solar-icons/react/bold-duotone/danger-triangle';
191
- import '@solar-icons/react/bold-duotone/database';
192
- import '@solar-icons/react/bold-duotone/diskette';
193
- import '@solar-icons/react/bold-duotone/dislike';
194
- import '@solar-icons/react/bold-duotone/document-add';
195
- import '@solar-icons/react/bold-duotone/document-text';
196
- import '@solar-icons/react/bold-duotone/double-alt-arrow-down';
197
- import '@solar-icons/react/bold-duotone/download';
198
- import '@solar-icons/react/bold-duotone/eraser';
199
- import '@solar-icons/react/bold-duotone/eye';
200
- import '@solar-icons/react/bold-duotone/file';
201
- import '@solar-icons/react/bold-duotone/file-remove';
202
- import '@solar-icons/react/bold-duotone/file-text';
203
- import '@solar-icons/react/bold-duotone/filter';
204
- import '@solar-icons/react/bold-duotone/filters';
205
- import '@solar-icons/react/bold-duotone/folder';
206
- import '@solar-icons/react/bold-duotone/folder-open';
207
- import '@solar-icons/react/bold-duotone/folder-path-connect';
208
- import '@solar-icons/react/bold-duotone/forbidden-circle';
209
- import '@solar-icons/react/bold-duotone/gallery';
210
- import '@solar-icons/react/bold-duotone/gallery-add';
211
- import '@solar-icons/react/bold-duotone/gallery-wide';
212
- import '@solar-icons/react/bold-duotone/global';
213
- import '@solar-icons/react/bold-duotone/graph-down';
214
- import '@solar-icons/react/bold-duotone/graph-up';
215
- import { HamburgerMenuIcon as HamburgerMenuIcon$1 } from '@solar-icons/react/bold-duotone/hamburger-menu';
216
- import '@solar-icons/react/bold-duotone/hand-heart';
217
- import '@solar-icons/react/bold-duotone/heart';
218
- import '@solar-icons/react/bold-duotone/help';
219
- import '@solar-icons/react/bold-duotone/history';
220
- import '@solar-icons/react/bold-duotone/home-angle';
221
- import '@solar-icons/react/bold-duotone/info-circle';
222
- import '@solar-icons/react/bold-duotone/layers';
223
- import '@solar-icons/react/bold-duotone/letter';
224
- import '@solar-icons/react/bold-duotone/like';
225
- import '@solar-icons/react/bold-duotone/link';
226
- import '@solar-icons/react/bold-duotone/list';
227
- import '@solar-icons/react/bold-duotone/list-vertical';
228
- import '@solar-icons/react/bold-duotone/lock-password';
229
- import '@solar-icons/react/bold-duotone/login-2';
230
- import '@solar-icons/react/bold-duotone/logout';
231
- import '@solar-icons/react/bold-duotone/magic-wand-2';
232
- import '@solar-icons/react/bold-duotone/magnifier';
233
- import '@solar-icons/react/bold-duotone/magnifier-zoom-in';
234
- import '@solar-icons/react/bold-duotone/magnifier-zoom-out';
235
- import '@solar-icons/react/bold-duotone/maximize';
236
- import '@solar-icons/react/bold-duotone/menu-dots';
237
- import '@solar-icons/react/bold-duotone/minimize';
238
- import '@solar-icons/react/bold-duotone/minus-square';
239
- import '@solar-icons/react/bold-duotone/monitor';
240
- import '@solar-icons/react/bold-duotone/monitor-smartphone';
241
- import '@solar-icons/react/bold-duotone/moon';
242
- import '@solar-icons/react/bold-duotone/move-to-folder';
243
- import '@solar-icons/react/bold-duotone/music-notes';
244
- import '@solar-icons/react/bold-duotone/palette';
245
- import '@solar-icons/react/bold-duotone/palette-round';
246
- import '@solar-icons/react/bold-duotone/pause';
247
- import '@solar-icons/react/bold-duotone/pen';
248
- import '@solar-icons/react/bold-duotone/pen-new-round';
249
- import '@solar-icons/react/bold-duotone/pie-chart';
250
- import '@solar-icons/react/bold-duotone/pin';
251
- import '@solar-icons/react/bold-duotone/play';
252
- import '@solar-icons/react/bold-duotone/plug-circle';
253
- import '@solar-icons/react/bold-duotone/plus-minus';
254
- import '@solar-icons/react/bold-duotone/pulse';
255
- import '@solar-icons/react/bold-duotone/refresh';
256
- import '@solar-icons/react/bold-duotone/refresh-circle';
257
- import '@solar-icons/react/bold-duotone/reorder';
258
- import '@solar-icons/react/bold-duotone/repeat';
259
- import '@solar-icons/react/bold-duotone/reply';
260
- import '@solar-icons/react/bold-duotone/restart';
261
- import '@solar-icons/react/bold-duotone/rocket';
262
- import '@solar-icons/react/bold-duotone/route';
263
- import '@solar-icons/react/bold-duotone/scale';
264
- import '@solar-icons/react/bold-duotone/server';
265
- import '@solar-icons/react/bold-duotone/settings';
266
- import '@solar-icons/react/bold-duotone/share';
267
- import '@solar-icons/react/bold-duotone/shield-check';
268
- import '@solar-icons/react/bold-duotone/shop-2';
269
- import '@solar-icons/react/bold-duotone/sidebar-minimalistic';
270
- import '@solar-icons/react/bold-duotone/slider-horizontal';
271
- import '@solar-icons/react/bold-duotone/smartphone';
272
- import '@solar-icons/react/bold-duotone/sort';
273
- import '@solar-icons/react/bold-duotone/sort-by-time';
274
- import '@solar-icons/react/bold-duotone/sort-horizontal';
275
- import '@solar-icons/react/bold-duotone/sort-vertical';
276
- import '@solar-icons/react/bold-duotone/star';
277
- import '@solar-icons/react/bold-duotone/structure';
278
- import '@solar-icons/react/bold-duotone/sun';
279
- import '@solar-icons/react/bold-duotone/tag';
280
- import '@solar-icons/react/bold-duotone/telescope';
281
- import '@solar-icons/react/bold-duotone/test-tube';
282
- import '@solar-icons/react/bold-duotone/text-format';
283
- import '@solar-icons/react/bold-duotone/transfer-horizontal';
284
- import '@solar-icons/react/bold-duotone/translation';
285
- import '@solar-icons/react/bold-duotone/trash-bin-minimalistic';
286
- import '@solar-icons/react/bold-duotone/undo-left';
287
- import '@solar-icons/react/bold-duotone/undo-left-round';
288
- import '@solar-icons/react/bold-duotone/undo-right';
289
- import '@solar-icons/react/bold-duotone/undo-right-round';
290
- import '@solar-icons/react/bold-duotone/upload';
291
- import '@solar-icons/react/bold-duotone/user';
292
- import '@solar-icons/react/bold-duotone/user-id';
293
- import '@solar-icons/react/bold-duotone/user-minus';
294
- import '@solar-icons/react/bold-duotone/user-plus';
295
- import '@solar-icons/react/bold-duotone/users-group-rounded';
296
- import '@solar-icons/react/bold-duotone/users-group-two-rounded';
297
- import '@solar-icons/react/bold-duotone/video-frame';
298
- import '@solar-icons/react/bold-duotone/video-frame-play-horizontal';
299
- import '@solar-icons/react/bold-duotone/widget-2';
300
- import '@solar-icons/react/bold-duotone/widget-5';
301
- import '@solar-icons/react/bold-duotone/window-frame';
302
- import '@solar-icons/react/linear/add-circle';
303
- import '@solar-icons/react/linear/align-left';
304
- import '@solar-icons/react/linear/alt-arrow-down';
305
- import '@solar-icons/react/linear/alt-arrow-left';
306
- import '@solar-icons/react/linear/alt-arrow-right';
307
- import '@solar-icons/react/linear/alt-arrow-up';
308
- import '@solar-icons/react/linear/archive';
309
- import '@solar-icons/react/linear/arrow-right';
310
- import '@solar-icons/react/linear/arrow-to-top-left';
311
- import '@solar-icons/react/linear/arrow-to-top-right';
312
- import '@solar-icons/react/linear/bell';
313
- import '@solar-icons/react/linear/bolt';
314
- import '@solar-icons/react/linear/book';
315
- import '@solar-icons/react/linear/book-2';
316
- import '@solar-icons/react/linear/bookmark';
317
- import '@solar-icons/react/linear/bookmark-circle';
318
- import '@solar-icons/react/linear/box';
319
- import '@solar-icons/react/linear/branching-paths-up';
320
- import '@solar-icons/react/linear/bug';
321
- import '@solar-icons/react/linear/calendar-date';
322
- import '@solar-icons/react/linear/chat-round';
323
- import '@solar-icons/react/linear/chat-round-dots';
324
- import '@solar-icons/react/linear/chat-round-line';
325
- import '@solar-icons/react/linear/chat-square';
326
- import '@solar-icons/react/linear/check-circle';
327
- import '@solar-icons/react/linear/checklist';
328
- import '@solar-icons/react/linear/clipboard-list';
329
- import '@solar-icons/react/linear/clock-circle';
330
- import '@solar-icons/react/linear/compass';
331
- import '@solar-icons/react/linear/copy';
332
- import '@solar-icons/react/linear/crown';
333
- import '@solar-icons/react/linear/danger-triangle';
334
- import '@solar-icons/react/linear/database';
335
- import '@solar-icons/react/linear/diskette';
336
- import '@solar-icons/react/linear/dislike';
337
- import '@solar-icons/react/linear/document-add';
338
- import '@solar-icons/react/linear/document-text';
339
- import '@solar-icons/react/linear/double-alt-arrow-down';
340
- import '@solar-icons/react/linear/download';
341
- import '@solar-icons/react/linear/eraser';
342
- import '@solar-icons/react/linear/eye';
343
- import '@solar-icons/react/linear/file';
344
- import '@solar-icons/react/linear/file-remove';
345
- import '@solar-icons/react/linear/file-text';
346
- import '@solar-icons/react/linear/filter';
347
- import '@solar-icons/react/linear/filters';
348
- import '@solar-icons/react/linear/folder';
349
- import '@solar-icons/react/linear/folder-open';
350
- import '@solar-icons/react/linear/folder-path-connect';
351
- import '@solar-icons/react/linear/forbidden-circle';
352
- import '@solar-icons/react/linear/gallery';
353
- import '@solar-icons/react/linear/gallery-add';
354
- import '@solar-icons/react/linear/gallery-wide';
355
- import '@solar-icons/react/linear/global';
356
- import '@solar-icons/react/linear/graph-down';
357
- import '@solar-icons/react/linear/graph-up';
358
- import { HamburgerMenuIcon } from '@solar-icons/react/linear/hamburger-menu';
359
- import '@solar-icons/react/linear/hand-heart';
360
- import '@solar-icons/react/linear/heart';
361
- import '@solar-icons/react/linear/help';
362
- import '@solar-icons/react/linear/history';
363
- import '@solar-icons/react/linear/home-angle';
364
- import '@solar-icons/react/linear/info-circle';
365
- import '@solar-icons/react/linear/layers';
366
- import '@solar-icons/react/linear/letter';
367
- import '@solar-icons/react/linear/like';
368
- import '@solar-icons/react/linear/link';
369
- import '@solar-icons/react/linear/list';
370
- import '@solar-icons/react/linear/list-vertical';
371
- import '@solar-icons/react/linear/lock-password';
372
- import '@solar-icons/react/linear/login-2';
373
- import '@solar-icons/react/linear/logout';
374
- import '@solar-icons/react/linear/magic-wand-2';
375
- import '@solar-icons/react/linear/magnifier';
376
- import '@solar-icons/react/linear/magnifier-zoom-in';
377
- import '@solar-icons/react/linear/magnifier-zoom-out';
378
- import '@solar-icons/react/linear/maximize';
379
- import '@solar-icons/react/linear/minimize';
380
- import '@solar-icons/react/linear/minus-square';
381
- import '@solar-icons/react/linear/monitor';
382
- import '@solar-icons/react/linear/monitor-smartphone';
383
- import '@solar-icons/react/linear/moon';
384
- import '@solar-icons/react/linear/move-to-folder';
385
- import '@solar-icons/react/linear/music-notes';
386
- import '@solar-icons/react/linear/palette';
387
- import '@solar-icons/react/linear/palette-round';
388
- import '@solar-icons/react/linear/pause';
389
- import '@solar-icons/react/linear/pen';
390
- import '@solar-icons/react/linear/pen-new-round';
391
- import '@solar-icons/react/linear/pie-chart';
392
- import '@solar-icons/react/linear/pin';
393
- import '@solar-icons/react/linear/play';
394
- import '@solar-icons/react/linear/plug-circle';
395
- import '@solar-icons/react/linear/plus-minus';
396
- import '@solar-icons/react/linear/pulse';
397
- import '@solar-icons/react/linear/refresh';
398
- import '@solar-icons/react/linear/refresh-circle';
399
- import '@solar-icons/react/linear/reorder';
400
- import '@solar-icons/react/linear/repeat';
401
- import '@solar-icons/react/linear/reply';
402
- import '@solar-icons/react/linear/restart';
403
- import '@solar-icons/react/linear/rocket';
404
- import '@solar-icons/react/linear/route';
405
- import '@solar-icons/react/linear/scale';
406
- import '@solar-icons/react/linear/server';
407
- import '@solar-icons/react/linear/settings';
408
- import '@solar-icons/react/linear/share';
409
- import '@solar-icons/react/linear/shield-check';
410
- import '@solar-icons/react/linear/shop-2';
411
- import '@solar-icons/react/linear/sidebar-minimalistic';
412
- import '@solar-icons/react/linear/slider-horizontal';
413
- import '@solar-icons/react/linear/smartphone';
414
- import '@solar-icons/react/linear/sort';
415
- import '@solar-icons/react/linear/sort-by-time';
416
- import '@solar-icons/react/linear/sort-horizontal';
417
- import '@solar-icons/react/linear/sort-vertical';
418
- import '@solar-icons/react/linear/star';
419
- import '@solar-icons/react/linear/structure';
420
- import '@solar-icons/react/linear/sun';
421
- import '@solar-icons/react/linear/tag';
422
- import '@solar-icons/react/linear/telescope';
423
- import '@solar-icons/react/linear/test-tube';
424
- import '@solar-icons/react/linear/text-format';
425
- import '@solar-icons/react/linear/transfer-horizontal';
426
- import '@solar-icons/react/linear/translation';
427
- import '@solar-icons/react/linear/trash-bin-minimalistic';
428
- import '@solar-icons/react/linear/undo-left';
429
- import '@solar-icons/react/linear/undo-left-round';
430
- import '@solar-icons/react/linear/undo-right';
431
- import '@solar-icons/react/linear/undo-right-round';
432
- import '@solar-icons/react/linear/upload';
433
- import '@solar-icons/react/linear/user';
434
- import '@solar-icons/react/linear/user-id';
435
- import '@solar-icons/react/linear/user-minus';
436
- import '@solar-icons/react/linear/user-plus';
437
- import '@solar-icons/react/linear/users-group-rounded';
438
- import '@solar-icons/react/linear/users-group-two-rounded';
439
- import '@solar-icons/react/linear/video-frame';
440
- import '@solar-icons/react/linear/video-frame-play-horizontal';
441
- import '@solar-icons/react/linear/widget-2';
442
- import '@solar-icons/react/linear/widget-5';
443
- import '@solar-icons/react/linear/window-frame';
444
21
 
445
- // src/components/sidebar.tsx
446
-
447
- // src/viewport.ts
448
- var MOBILE_BREAKPOINT_PX = 768;
449
- var MOBILE_QUERY = `(max-width: ${MOBILE_BREAKPOINT_PX - 1}px)`;
450
- function isBelowMd() {
451
- if (typeof window === "undefined") return false;
452
- return window.matchMedia(MOBILE_QUERY).matches;
453
- }
454
- function useBelowMd() {
455
- return useMedia(MOBILE_QUERY, false);
456
- }
457
- function useIsMobile() {
458
- return useBelowMd();
459
- }
460
- var mergeTheme = {
461
- text: ["tiny", "ui", "doc", "doc-title", "doc-heading", "quote"],
462
- spacing: ["chip", "control", "nav", "sidebar", "panel"],
463
- tracking: ["label"],
464
- shadow: ["card", "dialog"],
465
- container: ["reading", "medium", "content"],
466
- font: ["doc", "heading"],
467
- ease: ["standard"],
468
- animate: ["skel", "pop"]
469
- };
470
- var twMerge = extendTailwindMerge({
471
- extend: { theme: mergeTheme }
472
- });
473
-
474
- // src/lib/utils.ts
475
- function cn(...inputs) {
476
- return twMerge(clsx(inputs));
477
- }
478
- var buttonVariants = cva(
479
- "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",
480
- {
481
- variants: {
482
- variant: {
483
- default: "bg-primary px-4! text-primary-foreground hover:bg-primary/80",
484
- 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",
485
- secondary: "bg-secondary text-foreground hover:bg-[color-mix(in_oklch,var(--secondary),var(--foreground)_5%)] aria-expanded:bg-secondary aria-expanded:text-foreground",
486
- ghost: "hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:hover:bg-muted/50",
487
- 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",
488
- 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",
489
- link: "text-primary underline-offset-4 hover:underline"
490
- },
491
- size: {
492
- 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",
493
- 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",
494
- 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",
495
- lg: "h-10 gap-2 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2",
496
- icon: "size-9",
497
- "icon-xs": "size-6 rounded-[min(var(--radius-md),8px)] in-data-[slot=button-group]:rounded-md [&_svg:not([class*='size-'])]:size-3",
498
- "icon-sm": "size-8 rounded-[min(var(--radius-md),10px)] in-data-[slot=button-group]:rounded-md",
499
- "icon-lg": "size-10"
500
- }
501
- },
502
- defaultVariants: {
503
- variant: "default",
504
- size: "default"
505
- }
506
- }
507
- );
508
- function Button({
509
- active,
510
- className,
511
- variant = "default",
512
- size = "default",
513
- ...props
514
- }) {
515
- return /* @__PURE__ */ jsx(
516
- Button$1,
517
- {
518
- "data-slot": "button",
519
- className: cn(
520
- buttonVariants({ variant, size, className }),
521
- active && "bg-accent text-accent-foreground hover:bg-accent"
522
- ),
523
- ...props
524
- }
525
- );
526
- }
527
- var inputVariants = cva(
528
- "w-full min-w-0 rounded-lg bg-muted text-ui text-foreground outline-none placeholder:text-muted-foreground disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:ring-[3px] aria-invalid:ring-destructive/20",
529
- {
530
- variants: {
531
- size: {
532
- sm: "h-chip px-2.5 text-xs",
533
- md: "h-control px-3",
534
- lg: "h-10 px-3.5"
535
- }
536
- },
537
- defaultVariants: {
538
- size: "md"
539
- }
540
- }
541
- );
542
- function Input({
543
- className,
544
- size,
545
- type,
546
- ...props
547
- }) {
548
- return /* @__PURE__ */ jsx(
549
- Input$1,
550
- {
551
- type,
552
- "data-slot": "input",
553
- className: cn(inputVariants({ size }), className),
554
- ...props
555
- }
556
- );
557
- }
558
- function Separator({
559
- className,
560
- orientation = "horizontal",
561
- size = "hairline",
562
- ...props
563
- }) {
564
- const thickness = size === "seam" ? "data-horizontal:h-0.5 data-vertical:w-0.5" : "data-horizontal:h-px data-vertical:w-px";
565
- return /* @__PURE__ */ jsx(
566
- Separator$1,
567
- {
568
- "data-slot": "separator",
569
- orientation,
570
- className: cn(
571
- "shrink-0 bg-border data-horizontal:w-full data-vertical:self-stretch",
572
- thickness,
573
- className
574
- ),
575
- ...props
576
- }
577
- );
578
- }
579
- var HISTORY_KEY = "__appMobileOverlay";
580
- var overlayStack = [];
581
- var popListenerInstalled = false;
582
- var historyPatched = false;
583
- var nextOverlayId = 0;
584
- var suppressPopCount = 0;
585
- var seenSyntheticIds = /* @__PURE__ */ new Set();
586
- function patchHistory() {
587
- if (historyPatched) return;
588
- if (typeof window === "undefined") return;
589
- historyPatched = true;
590
- const origPush = window.history.pushState.bind(window.history);
591
- window.history.pushState = (data, unused, url) => {
592
- const state = data;
593
- if (state !== null && typeof state === "object" && HISTORY_KEY in state) {
594
- origPush(data, unused, url);
595
- return;
596
- }
597
- if (overlayStack.length > 0) {
598
- closeAllOverlays();
599
- }
600
- origPush(data, unused, url);
601
- };
602
- }
603
- function closeAllOverlays() {
604
- while (overlayStack.length > 0) {
605
- const entry = overlayStack.pop();
606
- if (entry?.close !== void 0) {
607
- const fn = entry.close;
608
- entry.close = void 0;
609
- fn();
610
- }
611
- }
612
- }
613
- function ensurePopListener() {
614
- if (popListenerInstalled) return;
615
- if (typeof window === "undefined") return;
616
- popListenerInstalled = true;
617
- window.addEventListener(
618
- "popstate",
619
- (e) => {
620
- if (suppressPopCount > 0) return;
621
- const state = e.state;
622
- if (state !== null && typeof state === "object" && HISTORY_KEY in state) {
623
- const id = state[HISTORY_KEY];
624
- if (typeof id === "number" && overlayStack.some((entry) => entry.id === id)) {
625
- closeTopOverlay();
626
- e.stopImmediatePropagation();
627
- return;
628
- }
629
- e.stopImmediatePropagation();
630
- if (typeof id === "number" && seenSyntheticIds.has(id)) {
631
- window.history.back();
632
- }
633
- }
634
- },
635
- true
636
- // capture phase
637
- );
638
- window.addEventListener("popstate", handlePop);
639
- patchHistory();
640
- }
641
- function closeTopOverlay() {
642
- const top = overlayStack.pop();
643
- if (top === void 0) return;
644
- if (top.close === void 0) return;
645
- const closeFn = top.close;
646
- top.close = void 0;
647
- closeFn();
648
- }
649
- function handlePop() {
650
- if (suppressPopCount > 0) {
651
- suppressPopCount--;
652
- return;
653
- }
654
- closeTopOverlay();
655
- }
656
- function removeFromStack(id) {
657
- const idx = overlayStack.findIndex((e) => e.id === id);
658
- if (idx === -1) return { removed: false, parkedBelow: 0 };
659
- const wasTop = idx === overlayStack.length - 1;
660
- if (!wasTop) {
661
- const entry = overlayStack[idx];
662
- if (entry !== void 0) entry.close = void 0;
663
- return { removed: true, parkedBelow: 0 };
664
- }
665
- overlayStack.pop();
666
- const remaining = overlayStack.splice(0, overlayStack.length);
667
- const active = remaining.filter((e) => e.close !== void 0);
668
- const parkedBelow = remaining.length - active.length;
669
- overlayStack.push(...active);
670
- return { removed: true, parkedBelow };
671
- }
672
- function scheduleStateRestore(id, baseState, parkedBelow) {
673
- function check() {
674
- const currentState = window.history.state;
675
- if (currentState === null || typeof currentState !== "object" || !(HISTORY_KEY in currentState) || currentState[HISTORY_KEY] !== id) {
676
- sweepParkedEntries();
677
- return;
678
- }
679
- const totalBacks = 1 + parkedBelow;
680
- let done = false;
681
- function restore() {
682
- if (done) return;
683
- done = true;
684
- window.removeEventListener("popstate", onPop);
685
- window.history.replaceState(baseState, "");
686
- const sweptIds = sweepParkedEntries();
687
- cleanupSeenIds(sweptIds);
688
- }
689
- function onPop() {
690
- if (suppressPopCount > 0) {
691
- suppressPopCount--;
692
- return;
693
- }
694
- restore();
695
- }
696
- window.addEventListener("popstate", onPop);
697
- suppressPopCount += totalBacks;
698
- for (let i = 0; i < totalBacks; i++) {
699
- window.history.back();
700
- }
701
- }
702
- let disposed = false;
703
- let rafId;
704
- function run() {
705
- if (disposed) return;
706
- disposed = true;
707
- if (rafId !== void 0) {
708
- cancelAnimationFrame(rafId);
709
- }
710
- check();
711
- }
712
- rafId = requestAnimationFrame(run);
713
- }
714
- function sweepParkedEntries() {
715
- const sweptIds = [];
716
- for (let i = overlayStack.length - 1; i >= 0; i--) {
717
- const entry = overlayStack[i];
718
- if (entry !== void 0 && entry.close === void 0) {
719
- sweptIds.push(entry.id);
720
- overlayStack.splice(i, 1);
721
- }
722
- }
723
- return sweptIds;
724
- }
725
- function cleanupSeenIds(sweptIds) {
726
- const activeIds = new Set(overlayStack.map((e) => e.id));
727
- for (const id of sweptIds) {
728
- if (!activeIds.has(id)) {
729
- seenSyntheticIds.delete(id);
730
- }
731
- }
732
- }
733
- function useMobileBackToClose(open, onOpenChange) {
734
- const idRef = useRef(void 0);
735
- const onChangeRef = useRef(onOpenChange);
736
- onChangeRef.current = onOpenChange;
737
- useEffect(() => {
738
- if (typeof window === "undefined") return;
739
- if (onChangeRef.current === void 0) return;
740
- if (!isBelowMd()) return;
741
- ensurePopListener();
742
- if (open === true && idRef.current === void 0) {
743
- const id = ++nextOverlayId;
744
- idRef.current = id;
745
- seenSyntheticIds.add(id);
746
- const baseState = window.history.state ?? null;
747
- window.history.pushState(
748
- {
749
- ...baseState ?? {},
750
- [HISTORY_KEY]: id
751
- },
752
- ""
753
- );
754
- overlayStack.push({
755
- id,
756
- baseState,
757
- close() {
758
- idRef.current = void 0;
759
- onChangeRef.current?.(false);
760
- }
761
- });
762
- return;
763
- }
764
- if (open !== true && idRef.current !== void 0) {
765
- const id = idRef.current;
766
- idRef.current = void 0;
767
- const entryIdx = overlayStack.findIndex((e) => e.id === id);
768
- const entry = entryIdx !== -1 ? overlayStack[entryIdx] : void 0;
769
- const { removed, parkedBelow } = removeFromStack(id);
770
- if (removed && entry !== void 0) {
771
- scheduleStateRestore(id, entry.baseState, parkedBelow);
772
- }
773
- }
774
- }, [open]);
775
- useEffect(() => {
776
- return () => {
777
- if (idRef.current !== void 0) {
778
- const id = idRef.current;
779
- idRef.current = void 0;
780
- const entryIdx = overlayStack.findIndex((e) => e.id === id);
781
- const entry = entryIdx !== -1 ? overlayStack[entryIdx] : void 0;
782
- const { removed, parkedBelow } = removeFromStack(id);
783
- if (removed && entry !== void 0) {
784
- scheduleStateRestore(id, entry.baseState, parkedBelow);
785
- }
786
- }
787
- };
788
- }, []);
789
- }
790
- function Mark({
791
- d,
792
- filled,
793
- className
794
- }) {
795
- return /* @__PURE__ */ jsx(
796
- "svg",
797
- {
798
- xmlns: "http://www.w3.org/2000/svg",
799
- viewBox: "0 0 24 24",
800
- fill: "none",
801
- className,
802
- children: filled ? /* @__PURE__ */ jsx("path", { d, fill: "currentColor" }) : /* @__PURE__ */ jsx(
803
- "path",
804
- {
805
- d,
806
- stroke: "currentColor",
807
- strokeWidth: "2",
808
- strokeLinecap: "round",
809
- strokeLinejoin: "round"
810
- }
811
- )
812
- }
813
- );
814
- }
815
- function Cross(props) {
816
- return /* @__PURE__ */ jsx(Mark, { ...props, d: "M6 6l12 12M18 6L6 18" });
817
- }
818
- function Sheet({
819
- open,
820
- defaultOpen,
821
- onOpenChange,
822
- ...props
823
- }) {
824
- const [uncontrolledOpen, setUncontrolledOpen] = React2.useState(
825
- defaultOpen ?? false
826
- );
827
- const isControlled = open !== void 0;
828
- const currentOpen = isControlled ? open : uncontrolledOpen;
829
- function handleOpenChange(next, eventDetails) {
830
- if (!isControlled) setUncontrolledOpen(next);
831
- onOpenChange?.(next, eventDetails);
832
- }
833
- useMobileBackToClose(currentOpen, handleOpenChange);
834
- return /* @__PURE__ */ jsx(
835
- Dialog.Root,
836
- {
837
- "data-slot": "sheet",
838
- open: currentOpen,
839
- onOpenChange: handleOpenChange,
840
- ...props
841
- }
842
- );
843
- }
844
- function SheetPortal({ ...props }) {
845
- return /* @__PURE__ */ jsx(Dialog.Portal, { "data-slot": "sheet-portal", ...props });
846
- }
847
- function SheetOverlay({ className, ...props }) {
848
- return /* @__PURE__ */ jsx(
849
- Dialog.Backdrop,
850
- {
851
- "data-slot": "sheet-overlay",
852
- className: cn(
853
- "fixed inset-0 z-50 bg-black/10 transition-opacity duration-150 data-ending-style:opacity-0 data-starting-style:opacity-0 supports-backdrop-filter:backdrop-blur-xs",
854
- className
855
- ),
856
- ...props
857
- }
858
- );
859
- }
860
- function SheetContent({
861
- className,
862
- children,
863
- side = "right",
864
- showCloseButton = true,
865
- ...props
866
- }) {
867
- const { t } = useTranslation("ui", { useSuspense: false });
868
- return /* @__PURE__ */ jsxs(SheetPortal, { children: [
869
- /* @__PURE__ */ jsx(SheetOverlay, {}),
870
- /* @__PURE__ */ jsxs(
871
- Dialog.Popup,
872
- {
873
- "data-slot": "sheet-content",
874
- "data-side": side,
875
- className: cn(
876
- "fixed z-50 flex flex-col gap-4 bg-popover bg-clip-padding text-sm text-popover-foreground shadow-lg transition duration-200 ease-in-out data-ending-style:opacity-0 data-starting-style:opacity-0 data-[side=bottom]:inset-x-0 data-[side=bottom]:bottom-0 data-[side=bottom]:h-auto data-[side=bottom]:border-t data-[side=bottom]:data-ending-style:translate-y-[2.5rem] data-[side=bottom]:data-starting-style:translate-y-[2.5rem] data-[side=left]:inset-y-0 data-[side=left]:left-0 data-[side=left]:h-full data-[side=left]:w-3/4 data-[side=left]:border-r data-[side=left]:data-ending-style:translate-x-[-2.5rem] data-[side=left]:data-starting-style:translate-x-[-2.5rem] data-[side=right]:inset-y-0 data-[side=right]:right-0 data-[side=right]:h-full data-[side=right]:w-3/4 data-[side=right]:border-l data-[side=right]:data-ending-style:translate-x-[2.5rem] data-[side=right]:data-starting-style:translate-x-[2.5rem] data-[side=top]:inset-x-0 data-[side=top]:top-0 data-[side=top]:h-auto data-[side=top]:border-b data-[side=top]:data-ending-style:translate-y-[-2.5rem] data-[side=top]:data-starting-style:translate-y-[-2.5rem] data-[side=left]:sm:max-w-sm data-[side=right]:sm:max-w-sm",
877
- className
878
- ),
879
- ...props,
880
- children: [
881
- children,
882
- showCloseButton && /* @__PURE__ */ jsxs(
883
- Dialog.Close,
884
- {
885
- "data-slot": "sheet-close",
886
- render: /* @__PURE__ */ jsx(
887
- Button,
888
- {
889
- variant: "ghost",
890
- className: "absolute top-4 right-4",
891
- size: "icon-sm"
892
- }
893
- ),
894
- children: [
895
- /* @__PURE__ */ jsx(
896
- Cross,
897
- {}
898
- ),
899
- /* @__PURE__ */ jsx("span", { className: "sr-only", children: t("aria.close") })
900
- ]
901
- }
902
- )
903
- ]
904
- }
905
- )
906
- ] });
907
- }
908
- function SheetHeader({ className, ...props }) {
909
- return /* @__PURE__ */ jsx(
910
- "div",
911
- {
912
- "data-slot": "sheet-header",
913
- className: cn("flex flex-col gap-1.5 p-4", className),
914
- ...props
915
- }
916
- );
917
- }
918
- function SheetTitle({ className, ...props }) {
919
- return /* @__PURE__ */ jsx(
920
- Dialog.Title,
921
- {
922
- "data-slot": "sheet-title",
923
- className: cn("font-heading font-medium text-foreground", className),
924
- ...props
925
- }
926
- );
927
- }
928
- function SheetDescription({
929
- className,
930
- ...props
931
- }) {
932
- return /* @__PURE__ */ jsx(
933
- Dialog.Description,
934
- {
935
- "data-slot": "sheet-description",
936
- className: cn("text-sm text-muted-foreground", className),
937
- ...props
938
- }
939
- );
940
- }
941
- function Skeleton({
942
- className,
943
- element: Element = "div",
944
- ...props
945
- }) {
946
- return /* @__PURE__ */ jsx(
947
- Element,
948
- {
949
- "data-slot": "skeleton",
950
- className: cn("animate-pulse rounded-md bg-muted", className),
951
- ...props
952
- }
953
- );
954
- }
955
- function Tooltip({ ...props }) {
956
- return /* @__PURE__ */ jsx(Tooltip$1.Root, { "data-slot": "tooltip", ...props });
957
- }
958
- function TooltipTrigger({ ...props }) {
959
- return /* @__PURE__ */ jsx(Tooltip$1.Trigger, { "data-slot": "tooltip-trigger", ...props });
960
- }
961
- function TooltipContent({
962
- className,
963
- side = "top",
964
- sideOffset = 4,
965
- align = "center",
966
- alignOffset = 0,
967
- children,
968
- ...props
969
- }) {
970
- return /* @__PURE__ */ jsx(Tooltip$1.Portal, { children: /* @__PURE__ */ jsx(
971
- Tooltip$1.Positioner,
972
- {
973
- align,
974
- alignOffset,
975
- side,
976
- sideOffset,
977
- className: "isolate z-50",
978
- children: /* @__PURE__ */ jsxs(
979
- Tooltip$1.Popup,
980
- {
981
- "data-slot": "tooltip-content",
982
- className: cn(
983
- "z-50 inline-flex w-fit max-w-xs origin-(--transform-origin) items-center gap-1.5 rounded-md bg-foreground px-3 py-1.5 text-xs text-background has-data-[slot=kbd]:pr-1.5 data-[side=bottom]:slide-in-from-top-2 data-[side=inline-end]:slide-in-from-left-2 data-[side=inline-start]:slide-in-from-right-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 **:data-[slot=kbd]:relative **:data-[slot=kbd]:isolate **:data-[slot=kbd]:z-50 **:data-[slot=kbd]:rounded-sm data-[state=delayed-open]:animate-in data-[state=delayed-open]:fade-in-0 data-[state=delayed-open]:zoom-in-95 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95",
984
- className
985
- ),
986
- ...props,
987
- children: [
988
- children,
989
- /* @__PURE__ */ jsx(Tooltip$1.Arrow, { className: "z-50 size-2.5 translate-y-[calc(-50%-2px)] rotate-45 rounded-[2px] bg-foreground fill-foreground data-[side=bottom]:top-1 data-[side=inline-end]:top-1/2! data-[side=inline-end]:-left-1 data-[side=inline-end]:-translate-y-1/2 data-[side=inline-start]:top-1/2! data-[side=inline-start]:-right-1 data-[side=inline-start]:-translate-y-1/2 data-[side=left]:top-1/2! data-[side=left]:-right-1 data-[side=left]:-translate-y-1/2 data-[side=right]:top-1/2! data-[side=right]:-left-1 data-[side=right]:-translate-y-1/2 data-[side=top]:-bottom-2.5" })
990
- ]
991
- }
992
- )
993
- }
994
- ) });
995
- }
996
- function readIconMode() {
997
- return document.documentElement.dataset.iconStyle === "linear" ? "linear" : "boldDuotone";
998
- }
999
- var currentMode = "boldDuotone";
1000
- var observer;
1001
- var listeners = /* @__PURE__ */ new Set();
1002
- function ensureObserver() {
1003
- if (observer !== void 0 || typeof document === "undefined") return;
1004
- observer = new MutationObserver(() => {
1005
- const next = readIconMode();
1006
- if (next === currentMode) return;
1007
- currentMode = next;
1008
- for (const cb of listeners) cb();
1009
- });
1010
- observer.observe(document.documentElement, {
1011
- attributes: true,
1012
- attributeFilter: ["data-icon-style"]
1013
- });
1014
- }
1015
- function subscribeIconStyle(callback) {
1016
- ensureObserver();
1017
- currentMode = readIconMode();
1018
- listeners.add(callback);
1019
- return () => {
1020
- listeners.delete(callback);
1021
- };
1022
- }
1023
- function getIconStyleSnapshot() {
1024
- return currentMode;
1025
- }
1026
- function createIcon(variants) {
1027
- function Icon(props) {
1028
- const current = useSyncExternalStore(
1029
- subscribeIconStyle,
1030
- getIconStyleSnapshot,
1031
- () => "boldDuotone"
1032
- );
1033
- const { mode, ...rest } = props;
1034
- const Component = variants[mode ?? current];
1035
- const className = typeof rest.className === "string" ? `hd-icon ${rest.className}` : "hd-icon";
1036
- return createElement(Component, { ...rest, className });
1037
- }
1038
- return Icon;
1039
- }
1040
- var HamburgerMenu = createIcon({
1041
- bold: HamburgerMenuIcon$2,
1042
- boldDuotone: HamburgerMenuIcon$1,
1043
- linear: HamburgerMenuIcon
1044
- });
1045
22
  var SIDEBAR_COOKIE_NAME = "sidebar_state";
1046
23
  var SIDEBAR_COOKIE_MAX_AGE = 60 * 60 * 24 * 7;
1047
24
  var SIDEBAR_WIDTH = "16rem";
1048
25
  var SIDEBAR_WIDTH_MOBILE = "18rem";
1049
26
  var SIDEBAR_WIDTH_ICON = "3rem";
1050
27
  var SIDEBAR_KEYBOARD_SHORTCUT = "b";
1051
- var SidebarContext = React2.createContext(null);
28
+ var SidebarContext = React.createContext(null);
1052
29
  function useSidebar() {
1053
- const context = React2.useContext(SidebarContext);
30
+ const context = React.useContext(SidebarContext);
1054
31
  if (!context) {
1055
32
  throw new Error("useSidebar must be used within a SidebarProvider.");
1056
33
  }
@@ -1066,10 +43,10 @@ function SidebarProvider({
1066
43
  ...props
1067
44
  }) {
1068
45
  const isMobile = useIsMobile();
1069
- const [openMobile, setOpenMobile] = React2.useState(false);
1070
- const [_open, _setOpen] = React2.useState(defaultOpen);
46
+ const [openMobile, setOpenMobile] = React.useState(false);
47
+ const [_open, _setOpen] = React.useState(defaultOpen);
1071
48
  const open = openProp ?? _open;
1072
- const setOpen = React2.useCallback(
49
+ const setOpen = React.useCallback(
1073
50
  (value) => {
1074
51
  const openState = typeof value === "function" ? value(open) : value;
1075
52
  if (setOpenProp) {
@@ -1081,10 +58,10 @@ function SidebarProvider({
1081
58
  },
1082
59
  [setOpenProp, open]
1083
60
  );
1084
- const toggleSidebar = React2.useCallback(() => {
61
+ const toggleSidebar = React.useCallback(() => {
1085
62
  return isMobile ? setOpenMobile((open2) => !open2) : setOpen((open2) => !open2);
1086
63
  }, [isMobile, setOpen, setOpenMobile]);
1087
- React2.useEffect(() => {
64
+ React.useEffect(() => {
1088
65
  const handleKeyDown = (event) => {
1089
66
  if (event.key === SIDEBAR_KEYBOARD_SHORTCUT && (event.metaKey || event.ctrlKey)) {
1090
67
  event.preventDefault();
@@ -1095,7 +72,7 @@ function SidebarProvider({
1095
72
  return () => window.removeEventListener("keydown", handleKeyDown);
1096
73
  }, [toggleSidebar]);
1097
74
  const state = open ? "expanded" : "collapsed";
1098
- const contextValue = React2.useMemo(
75
+ const contextValue = React.useMemo(
1099
76
  () => ({
1100
77
  state,
1101
78
  open,
@@ -1558,7 +535,7 @@ function SidebarMenuSkeleton({
1558
535
  showIcon = false,
1559
536
  ...props
1560
537
  }) {
1561
- const [width] = React2.useState(() => {
538
+ const [width] = React.useState(() => {
1562
539
  return `${Math.floor(Math.random() * 40) + 50}%`;
1563
540
  });
1564
541
  return /* @__PURE__ */ jsxs(