@mari-ui/components 0.0.0-stage → 0.1.1

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 (943) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +25 -2
  3. package/dist/accordion.d.ts +1 -0
  4. package/dist/accordion.js +245 -0
  5. package/dist/accordion.js.map +1 -0
  6. package/dist/alert.d.ts +1 -0
  7. package/dist/alert.js +114 -0
  8. package/dist/alert.js.map +1 -0
  9. package/dist/autocomplete.d.ts +1 -0
  10. package/dist/autocomplete.js +158 -0
  11. package/dist/autocomplete.js.map +1 -0
  12. package/dist/avatar.d.ts +1 -0
  13. package/dist/avatar.js +74 -0
  14. package/dist/avatar.js.map +1 -0
  15. package/dist/badge.d.ts +1 -0
  16. package/dist/badge.js +11 -0
  17. package/dist/badge.js.map +1 -0
  18. package/dist/breadcrumb.d.ts +1 -0
  19. package/dist/breadcrumb.js +141 -0
  20. package/dist/breadcrumb.js.map +1 -0
  21. package/dist/button.d.ts +1 -0
  22. package/dist/button.js +10 -0
  23. package/dist/button.js.map +1 -0
  24. package/dist/calendar.d.ts +1 -0
  25. package/dist/calendar.js +208 -0
  26. package/dist/calendar.js.map +1 -0
  27. package/dist/card.d.ts +1 -0
  28. package/dist/card.js +148 -0
  29. package/dist/card.js.map +1 -0
  30. package/dist/carousel.d.ts +1 -0
  31. package/dist/carousel.js +383 -0
  32. package/dist/carousel.js.map +1 -0
  33. package/dist/chart.d.ts +1 -0
  34. package/dist/chart.js +986 -0
  35. package/dist/chart.js.map +1 -0
  36. package/dist/checkbox.d.ts +1 -0
  37. package/dist/checkbox.js +10 -0
  38. package/dist/checkbox.js.map +1 -0
  39. package/dist/chunk-2IEXY3OZ.js +147 -0
  40. package/dist/chunk-2IEXY3OZ.js.map +1 -0
  41. package/dist/chunk-3ABWBQCS.js +49 -0
  42. package/dist/chunk-3ABWBQCS.js.map +1 -0
  43. package/dist/chunk-47FHUOLT.js +166 -0
  44. package/dist/chunk-47FHUOLT.js.map +1 -0
  45. package/dist/chunk-54HHEXXD.js +20 -0
  46. package/dist/chunk-54HHEXXD.js.map +1 -0
  47. package/dist/chunk-BDV4GOEN.js +53 -0
  48. package/dist/chunk-BDV4GOEN.js.map +1 -0
  49. package/dist/chunk-CYLXW66E.js +449 -0
  50. package/dist/chunk-CYLXW66E.js.map +1 -0
  51. package/dist/chunk-DKENCYHA.js +15 -0
  52. package/dist/chunk-DKENCYHA.js.map +1 -0
  53. package/dist/chunk-DUCIAQGR.js +67 -0
  54. package/dist/chunk-DUCIAQGR.js.map +1 -0
  55. package/dist/chunk-ELHESRRH.js +240 -0
  56. package/dist/chunk-ELHESRRH.js.map +1 -0
  57. package/dist/chunk-FFXRFQSU.js +51 -0
  58. package/dist/chunk-FFXRFQSU.js.map +1 -0
  59. package/dist/chunk-FNJHS5KQ.js +330 -0
  60. package/dist/chunk-FNJHS5KQ.js.map +1 -0
  61. package/dist/chunk-IO4346TF.js +392 -0
  62. package/dist/chunk-IO4346TF.js.map +1 -0
  63. package/dist/chunk-IP2J3BWY.js +185 -0
  64. package/dist/chunk-IP2J3BWY.js.map +1 -0
  65. package/dist/chunk-JNZODUXP.js +116 -0
  66. package/dist/chunk-JNZODUXP.js.map +1 -0
  67. package/dist/chunk-KCYM2JXP.js +202 -0
  68. package/dist/chunk-KCYM2JXP.js.map +1 -0
  69. package/dist/chunk-KG6A32KX.js +23 -0
  70. package/dist/chunk-KG6A32KX.js.map +1 -0
  71. package/dist/chunk-KSPM2Z3T.js +43 -0
  72. package/dist/chunk-KSPM2Z3T.js.map +1 -0
  73. package/dist/chunk-LBQMEHK6.js +54 -0
  74. package/dist/chunk-LBQMEHK6.js.map +1 -0
  75. package/dist/chunk-LBXIPDAB.js +50 -0
  76. package/dist/chunk-LBXIPDAB.js.map +1 -0
  77. package/dist/chunk-LEOIKO7C.js +144 -0
  78. package/dist/chunk-LEOIKO7C.js.map +1 -0
  79. package/dist/chunk-LZHERDNB.js +344 -0
  80. package/dist/chunk-LZHERDNB.js.map +1 -0
  81. package/dist/chunk-NPM7IDYV.js +145 -0
  82. package/dist/chunk-NPM7IDYV.js.map +1 -0
  83. package/dist/chunk-NS7FKOFI.js +56 -0
  84. package/dist/chunk-NS7FKOFI.js.map +1 -0
  85. package/dist/chunk-P7Z5BREP.js +935 -0
  86. package/dist/chunk-P7Z5BREP.js.map +1 -0
  87. package/dist/chunk-QDFDMWXD.js +236 -0
  88. package/dist/chunk-QDFDMWXD.js.map +1 -0
  89. package/dist/chunk-QNOHFHVL.js +555 -0
  90. package/dist/chunk-QNOHFHVL.js.map +1 -0
  91. package/dist/chunk-QZRBO7BE.js +684 -0
  92. package/dist/chunk-QZRBO7BE.js.map +1 -0
  93. package/dist/chunk-RAS77O7N.js +81 -0
  94. package/dist/chunk-RAS77O7N.js.map +1 -0
  95. package/dist/chunk-RIBB5OJV.js +152 -0
  96. package/dist/chunk-RIBB5OJV.js.map +1 -0
  97. package/dist/chunk-S66GKX2W.js +50 -0
  98. package/dist/chunk-S66GKX2W.js.map +1 -0
  99. package/dist/chunk-TCYDVNSU.js +13 -0
  100. package/dist/chunk-TCYDVNSU.js.map +1 -0
  101. package/dist/chunk-TXRQCHOR.js +401 -0
  102. package/dist/chunk-TXRQCHOR.js.map +1 -0
  103. package/dist/chunk-V7KDUUV6.js +101 -0
  104. package/dist/chunk-V7KDUUV6.js.map +1 -0
  105. package/dist/chunk-XUKVQO6M.js +31 -0
  106. package/dist/chunk-XUKVQO6M.js.map +1 -0
  107. package/dist/chunk-YZ7MDC6B.js +189 -0
  108. package/dist/chunk-YZ7MDC6B.js.map +1 -0
  109. package/dist/chunk-ZLPAXPDI.js +69 -0
  110. package/dist/chunk-ZLPAXPDI.js.map +1 -0
  111. package/dist/chunk-ZMA7BT2L.js +223 -0
  112. package/dist/chunk-ZMA7BT2L.js.map +1 -0
  113. package/dist/chunk-ZXYQ2ZPR.js +79 -0
  114. package/dist/chunk-ZXYQ2ZPR.js.map +1 -0
  115. package/dist/color-picker.d.ts +1 -0
  116. package/dist/color-picker.js +32 -0
  117. package/dist/color-picker.js.map +1 -0
  118. package/dist/date-picker.d.ts +1 -0
  119. package/dist/date-picker.js +826 -0
  120. package/dist/date-picker.js.map +1 -0
  121. package/dist/divider.d.ts +1 -0
  122. package/dist/divider.js +106 -0
  123. package/dist/divider.js.map +1 -0
  124. package/dist/drawer.d.ts +1 -0
  125. package/dist/drawer.js +14 -0
  126. package/dist/drawer.js.map +1 -0
  127. package/dist/dropdown.d.ts +1 -0
  128. package/dist/dropdown.js +23 -0
  129. package/dist/dropdown.js.map +1 -0
  130. package/dist/empty.d.ts +1 -0
  131. package/dist/empty.js +11 -0
  132. package/dist/empty.js.map +1 -0
  133. package/dist/field.d.ts +1 -0
  134. package/dist/field.js +51 -0
  135. package/dist/field.js.map +1 -0
  136. package/dist/float-button.d.ts +1 -0
  137. package/dist/float-button.js +247 -0
  138. package/dist/float-button.js.map +1 -0
  139. package/dist/image.d.ts +1 -0
  140. package/dist/image.js +1727 -0
  141. package/dist/image.js.map +1 -0
  142. package/dist/input-number.d.ts +1 -0
  143. package/dist/input-number.js +12 -0
  144. package/dist/input-number.js.map +1 -0
  145. package/dist/input.d.ts +1 -0
  146. package/dist/input.js +21 -0
  147. package/dist/input.js.map +1 -0
  148. package/dist/list.d.ts +1 -0
  149. package/dist/list.js +270 -0
  150. package/dist/list.js.map +1 -0
  151. package/dist/loading.d.ts +1 -0
  152. package/dist/loading.js +7 -0
  153. package/dist/loading.js.map +1 -0
  154. package/dist/logo.d.ts +1 -0
  155. package/dist/logo.js +38 -0
  156. package/dist/logo.js.map +1 -0
  157. package/dist/manifest.json +9006 -0
  158. package/dist/mari.css +145 -0
  159. package/dist/masonry.d.ts +1 -0
  160. package/dist/masonry.js +143 -0
  161. package/dist/masonry.js.map +1 -0
  162. package/dist/menu.d.ts +1 -0
  163. package/dist/menu.js +1682 -0
  164. package/dist/menu.js.map +1 -0
  165. package/dist/modal.d.ts +1 -0
  166. package/dist/modal.js +280 -0
  167. package/dist/modal.js.map +1 -0
  168. package/dist/pagination.d.ts +1 -0
  169. package/dist/pagination.js +11 -0
  170. package/dist/pagination.js.map +1 -0
  171. package/dist/popconfirm.d.ts +1 -0
  172. package/dist/popconfirm.js +110 -0
  173. package/dist/popconfirm.js.map +1 -0
  174. package/dist/popover.d.ts +1 -0
  175. package/dist/popover.js +16 -0
  176. package/dist/popover.js.map +1 -0
  177. package/dist/progress.d.ts +1 -0
  178. package/dist/progress.js +135 -0
  179. package/dist/progress.js.map +1 -0
  180. package/dist/qrcode.d.ts +1 -0
  181. package/dist/qrcode.js +212 -0
  182. package/dist/qrcode.js.map +1 -0
  183. package/dist/radio.d.ts +1 -0
  184. package/dist/radio.js +221 -0
  185. package/dist/radio.js.map +1 -0
  186. package/dist/rate.d.ts +1 -0
  187. package/dist/rate.js +196 -0
  188. package/dist/rate.js.map +1 -0
  189. package/dist/segmented.d.ts +1 -0
  190. package/dist/segmented.js +10 -0
  191. package/dist/segmented.js.map +1 -0
  192. package/dist/select.d.ts +1 -0
  193. package/dist/select.js +18 -0
  194. package/dist/select.js.map +1 -0
  195. package/dist/skeleton.d.ts +1 -0
  196. package/dist/skeleton.js +15 -0
  197. package/dist/skeleton.js.map +1 -0
  198. package/dist/slider.d.ts +1 -0
  199. package/dist/slider.js +401 -0
  200. package/dist/slider.js.map +1 -0
  201. package/dist/splitter.d.ts +1 -0
  202. package/dist/splitter.js +323 -0
  203. package/dist/splitter.js.map +1 -0
  204. package/dist/statistic.d.ts +1 -0
  205. package/dist/statistic.js +299 -0
  206. package/dist/statistic.js.map +1 -0
  207. package/dist/steps.d.ts +1 -0
  208. package/dist/steps.js +395 -0
  209. package/dist/steps.js.map +1 -0
  210. package/dist/styles.css +2 -0
  211. package/dist/switch.d.ts +1 -0
  212. package/dist/switch.js +172 -0
  213. package/dist/switch.js.map +1 -0
  214. package/dist/table.d.ts +1 -0
  215. package/dist/table.js +471 -0
  216. package/dist/table.js.map +1 -0
  217. package/dist/tabs.d.ts +1 -0
  218. package/dist/tabs.js +446 -0
  219. package/dist/tabs.js.map +1 -0
  220. package/dist/tag.d.ts +1 -0
  221. package/dist/tag.js +9 -0
  222. package/dist/tag.js.map +1 -0
  223. package/dist/tailwind.css +13 -0
  224. package/dist/theme-customizer.d.ts +1 -0
  225. package/dist/theme-customizer.js +271 -0
  226. package/dist/theme-customizer.js.map +1 -0
  227. package/dist/timeline.d.ts +1 -0
  228. package/dist/timeline.js +176 -0
  229. package/dist/timeline.js.map +1 -0
  230. package/dist/toast.d.ts +1 -0
  231. package/dist/toast.js +17 -0
  232. package/dist/toast.js.map +1 -0
  233. package/dist/tooltip.d.ts +1 -0
  234. package/dist/tooltip.js +10 -0
  235. package/dist/tooltip.js.map +1 -0
  236. package/dist/tour.d.ts +1 -0
  237. package/dist/tour.js +253 -0
  238. package/dist/tour.js.map +1 -0
  239. package/dist/transfer.d.ts +1 -0
  240. package/dist/transfer.js +423 -0
  241. package/dist/transfer.js.map +1 -0
  242. package/dist/tree-select.d.ts +1 -0
  243. package/dist/tree-select.js +549 -0
  244. package/dist/tree-select.js.map +1 -0
  245. package/dist/tree.d.ts +1 -0
  246. package/dist/tree.js +23 -0
  247. package/dist/tree.js.map +1 -0
  248. package/dist/types/accordion/Accordion.d.ts +16 -0
  249. package/dist/types/accordion/Accordion.d.ts.map +1 -0
  250. package/dist/types/accordion/index.d.ts +3 -0
  251. package/dist/types/accordion/index.d.ts.map +1 -0
  252. package/dist/types/accordion/types.d.ts +57 -0
  253. package/dist/types/accordion/types.d.ts.map +1 -0
  254. package/dist/types/accordion/utils.d.ts +10 -0
  255. package/dist/types/accordion/utils.d.ts.map +1 -0
  256. package/dist/types/alert/Alert.d.ts +14 -0
  257. package/dist/types/alert/Alert.d.ts.map +1 -0
  258. package/dist/types/alert/index.d.ts +3 -0
  259. package/dist/types/alert/index.d.ts.map +1 -0
  260. package/dist/types/alert/types.d.ts +33 -0
  261. package/dist/types/alert/types.d.ts.map +1 -0
  262. package/dist/types/autocomplete/AutoComplete.d.ts +16 -0
  263. package/dist/types/autocomplete/AutoComplete.d.ts.map +1 -0
  264. package/dist/types/autocomplete/index.d.ts +3 -0
  265. package/dist/types/autocomplete/index.d.ts.map +1 -0
  266. package/dist/types/autocomplete/types.d.ts +28 -0
  267. package/dist/types/autocomplete/types.d.ts.map +1 -0
  268. package/dist/types/autocomplete/utils.d.ts +14 -0
  269. package/dist/types/autocomplete/utils.d.ts.map +1 -0
  270. package/dist/types/avatar/Avatar.d.ts +10 -0
  271. package/dist/types/avatar/Avatar.d.ts.map +1 -0
  272. package/dist/types/avatar/index.d.ts +3 -0
  273. package/dist/types/avatar/index.d.ts.map +1 -0
  274. package/dist/types/avatar/types.d.ts +29 -0
  275. package/dist/types/avatar/types.d.ts.map +1 -0
  276. package/dist/types/avatar/utils.d.ts +12 -0
  277. package/dist/types/avatar/utils.d.ts.map +1 -0
  278. package/dist/types/badge/Badge.d.ts +19 -0
  279. package/dist/types/badge/Badge.d.ts.map +1 -0
  280. package/dist/types/badge/index.d.ts +3 -0
  281. package/dist/types/badge/index.d.ts.map +1 -0
  282. package/dist/types/badge/types.d.ts +38 -0
  283. package/dist/types/badge/types.d.ts.map +1 -0
  284. package/dist/types/breadcrumb/Breadcrumb.d.ts +21 -0
  285. package/dist/types/breadcrumb/Breadcrumb.d.ts.map +1 -0
  286. package/dist/types/breadcrumb/index.d.ts +3 -0
  287. package/dist/types/breadcrumb/index.d.ts.map +1 -0
  288. package/dist/types/breadcrumb/types.d.ts +47 -0
  289. package/dist/types/breadcrumb/types.d.ts.map +1 -0
  290. package/dist/types/breadcrumb/utils.d.ts +25 -0
  291. package/dist/types/breadcrumb/utils.d.ts.map +1 -0
  292. package/dist/types/button/Button.d.ts +12 -0
  293. package/dist/types/button/Button.d.ts.map +1 -0
  294. package/dist/types/button/index.d.ts +3 -0
  295. package/dist/types/button/index.d.ts.map +1 -0
  296. package/dist/types/button/types.d.ts +57 -0
  297. package/dist/types/button/types.d.ts.map +1 -0
  298. package/dist/types/button/utils.d.ts +10 -0
  299. package/dist/types/button/utils.d.ts.map +1 -0
  300. package/dist/types/calendar/Calendar.d.ts +11 -0
  301. package/dist/types/calendar/Calendar.d.ts.map +1 -0
  302. package/dist/types/calendar/_components/CalendarPanel.d.ts +36 -0
  303. package/dist/types/calendar/_components/CalendarPanel.d.ts.map +1 -0
  304. package/dist/types/calendar/_components/CellGrid.d.ts +32 -0
  305. package/dist/types/calendar/_components/CellGrid.d.ts.map +1 -0
  306. package/dist/types/calendar/_components/DayGrid.d.ts +47 -0
  307. package/dist/types/calendar/_components/DayGrid.d.ts.map +1 -0
  308. package/dist/types/calendar/index.d.ts +3 -0
  309. package/dist/types/calendar/index.d.ts.map +1 -0
  310. package/dist/types/calendar/types.d.ts +49 -0
  311. package/dist/types/calendar/types.d.ts.map +1 -0
  312. package/dist/types/card/Card.d.ts +21 -0
  313. package/dist/types/card/Card.d.ts.map +1 -0
  314. package/dist/types/card/index.d.ts +3 -0
  315. package/dist/types/card/index.d.ts.map +1 -0
  316. package/dist/types/card/types.d.ts +49 -0
  317. package/dist/types/card/types.d.ts.map +1 -0
  318. package/dist/types/card/utils.d.ts +17 -0
  319. package/dist/types/card/utils.d.ts.map +1 -0
  320. package/dist/types/carousel/Carousel.d.ts +62 -0
  321. package/dist/types/carousel/Carousel.d.ts.map +1 -0
  322. package/dist/types/carousel/index.d.ts +4 -0
  323. package/dist/types/carousel/index.d.ts.map +1 -0
  324. package/dist/types/carousel/types.d.ts +33 -0
  325. package/dist/types/carousel/types.d.ts.map +1 -0
  326. package/dist/types/carousel/utils.d.ts +14 -0
  327. package/dist/types/carousel/utils.d.ts.map +1 -0
  328. package/dist/types/chart/_shared/ChartFrame.d.ts +55 -0
  329. package/dist/types/chart/_shared/ChartFrame.d.ts.map +1 -0
  330. package/dist/types/chart/_shared/ChartSkeleton.d.ts +41 -0
  331. package/dist/types/chart/_shared/ChartSkeleton.d.ts.map +1 -0
  332. package/dist/types/chart/_shared/animation.d.ts +39 -0
  333. package/dist/types/chart/_shared/animation.d.ts.map +1 -0
  334. package/dist/types/chart/_shared/cartesian.d.ts +50 -0
  335. package/dist/types/chart/_shared/cartesian.d.ts.map +1 -0
  336. package/dist/types/chart/_shared/format.d.ts +10 -0
  337. package/dist/types/chart/_shared/format.d.ts.map +1 -0
  338. package/dist/types/chart/_shared/paths.d.ts +20 -0
  339. package/dist/types/chart/_shared/paths.d.ts.map +1 -0
  340. package/dist/types/chart/_shared/scale.d.ts +35 -0
  341. package/dist/types/chart/_shared/scale.d.ts.map +1 -0
  342. package/dist/types/chart/_shared/storyDocs.d.ts +3 -0
  343. package/dist/types/chart/_shared/storyDocs.d.ts.map +1 -0
  344. package/dist/types/chart/_shared/useChartSize.d.ts +17 -0
  345. package/dist/types/chart/_shared/useChartSize.d.ts.map +1 -0
  346. package/dist/types/chart/bar-chart/BarChart.d.ts +17 -0
  347. package/dist/types/chart/bar-chart/BarChart.d.ts.map +1 -0
  348. package/dist/types/chart/bar-chart/bars.d.ts +21 -0
  349. package/dist/types/chart/bar-chart/bars.d.ts.map +1 -0
  350. package/dist/types/chart/gauge/Gauge.d.ts +42 -0
  351. package/dist/types/chart/gauge/Gauge.d.ts.map +1 -0
  352. package/dist/types/chart/index.d.ts +12 -0
  353. package/dist/types/chart/index.d.ts.map +1 -0
  354. package/dist/types/chart/line-chart/LineChart.d.ts +22 -0
  355. package/dist/types/chart/line-chart/LineChart.d.ts.map +1 -0
  356. package/dist/types/chart/pie-chart/PieChart.d.ts +33 -0
  357. package/dist/types/chart/pie-chart/PieChart.d.ts.map +1 -0
  358. package/dist/types/chart/sparkline/Sparkline.d.ts +31 -0
  359. package/dist/types/chart/sparkline/Sparkline.d.ts.map +1 -0
  360. package/dist/types/chart/storyData.d.ts +36 -0
  361. package/dist/types/chart/storyData.d.ts.map +1 -0
  362. package/dist/types/chart/types.d.ts +50 -0
  363. package/dist/types/chart/types.d.ts.map +1 -0
  364. package/dist/types/checkbox/Checkbox.d.ts +5 -0
  365. package/dist/types/checkbox/Checkbox.d.ts.map +1 -0
  366. package/dist/types/checkbox/index.d.ts +3 -0
  367. package/dist/types/checkbox/index.d.ts.map +1 -0
  368. package/dist/types/checkbox/types.d.ts +35 -0
  369. package/dist/types/checkbox/types.d.ts.map +1 -0
  370. package/dist/types/checkbox/utils.d.ts +15 -0
  371. package/dist/types/checkbox/utils.d.ts.map +1 -0
  372. package/dist/types/color-picker/ColorPicker.d.ts +17 -0
  373. package/dist/types/color-picker/ColorPicker.d.ts.map +1 -0
  374. package/dist/types/color-picker/_components/ColorArea.d.ts +19 -0
  375. package/dist/types/color-picker/_components/ColorArea.d.ts.map +1 -0
  376. package/dist/types/color-picker/_components/ColorInputs.d.ts +14 -0
  377. package/dist/types/color-picker/_components/ColorInputs.d.ts.map +1 -0
  378. package/dist/types/color-picker/_components/ColorPresets.d.ts +9 -0
  379. package/dist/types/color-picker/_components/ColorPresets.d.ts.map +1 -0
  380. package/dist/types/color-picker/_components/ColorSlider.d.ts +24 -0
  381. package/dist/types/color-picker/_components/ColorSlider.d.ts.map +1 -0
  382. package/dist/types/color-picker/_components/Swatch.d.ts +14 -0
  383. package/dist/types/color-picker/_components/Swatch.d.ts.map +1 -0
  384. package/dist/types/color-picker/_components/usePointerDrag.d.ts +18 -0
  385. package/dist/types/color-picker/_components/usePointerDrag.d.ts.map +1 -0
  386. package/dist/types/color-picker/index.d.ts +4 -0
  387. package/dist/types/color-picker/index.d.ts.map +1 -0
  388. package/dist/types/color-picker/types.d.ts +81 -0
  389. package/dist/types/color-picker/types.d.ts.map +1 -0
  390. package/dist/types/color-picker/utils.d.ts +50 -0
  391. package/dist/types/color-picker/utils.d.ts.map +1 -0
  392. package/dist/types/date-picker/DatePicker.d.ts +17 -0
  393. package/dist/types/date-picker/DatePicker.d.ts.map +1 -0
  394. package/dist/types/date-picker/TimePicker.d.ts +8 -0
  395. package/dist/types/date-picker/TimePicker.d.ts.map +1 -0
  396. package/dist/types/date-picker/_components/PickerPanel.d.ts +21 -0
  397. package/dist/types/date-picker/_components/PickerPanel.d.ts.map +1 -0
  398. package/dist/types/date-picker/_components/TimePanel.d.ts +13 -0
  399. package/dist/types/date-picker/_components/TimePanel.d.ts.map +1 -0
  400. package/dist/types/date-picker/index.d.ts +4 -0
  401. package/dist/types/date-picker/index.d.ts.map +1 -0
  402. package/dist/types/date-picker/types.d.ts +89 -0
  403. package/dist/types/date-picker/types.d.ts.map +1 -0
  404. package/dist/types/date-picker/usePickerState.d.ts +37 -0
  405. package/dist/types/date-picker/usePickerState.d.ts.map +1 -0
  406. package/dist/types/date-picker/utils.d.ts +24 -0
  407. package/dist/types/date-picker/utils.d.ts.map +1 -0
  408. package/dist/types/divider/Divider.d.ts +8 -0
  409. package/dist/types/divider/Divider.d.ts.map +1 -0
  410. package/dist/types/divider/index.d.ts +3 -0
  411. package/dist/types/divider/index.d.ts.map +1 -0
  412. package/dist/types/divider/types.d.ts +25 -0
  413. package/dist/types/divider/types.d.ts.map +1 -0
  414. package/dist/types/divider/utils.d.ts +12 -0
  415. package/dist/types/divider/utils.d.ts.map +1 -0
  416. package/dist/types/drawer/Drawer.d.ts +27 -0
  417. package/dist/types/drawer/Drawer.d.ts.map +1 -0
  418. package/dist/types/drawer/index.d.ts +3 -0
  419. package/dist/types/drawer/index.d.ts.map +1 -0
  420. package/dist/types/drawer/types.d.ts +51 -0
  421. package/dist/types/drawer/types.d.ts.map +1 -0
  422. package/dist/types/drawer/utils.d.ts +5 -0
  423. package/dist/types/drawer/utils.d.ts.map +1 -0
  424. package/dist/types/dropdown/Dropdown.d.ts +6 -0
  425. package/dist/types/dropdown/Dropdown.d.ts.map +1 -0
  426. package/dist/types/dropdown/_components/DropdownContent.d.ts +16 -0
  427. package/dist/types/dropdown/_components/DropdownContent.d.ts.map +1 -0
  428. package/dist/types/dropdown/_components/DropdownItem.d.ts +18 -0
  429. package/dist/types/dropdown/_components/DropdownItem.d.ts.map +1 -0
  430. package/dist/types/dropdown/_components/DropdownTrigger.d.ts +4 -0
  431. package/dist/types/dropdown/_components/DropdownTrigger.d.ts.map +1 -0
  432. package/dist/types/dropdown/index.d.ts +6 -0
  433. package/dist/types/dropdown/index.d.ts.map +1 -0
  434. package/dist/types/dropdown/types.d.ts +69 -0
  435. package/dist/types/dropdown/types.d.ts.map +1 -0
  436. package/dist/types/dropdown/useDropdown.d.ts +44 -0
  437. package/dist/types/dropdown/useDropdown.d.ts.map +1 -0
  438. package/dist/types/dropdown/utils.d.ts +13 -0
  439. package/dist/types/dropdown/utils.d.ts.map +1 -0
  440. package/dist/types/empty/Empty.d.ts +32 -0
  441. package/dist/types/empty/Empty.d.ts.map +1 -0
  442. package/dist/types/empty/index.d.ts +3 -0
  443. package/dist/types/empty/index.d.ts.map +1 -0
  444. package/dist/types/field/Field.d.ts +20 -0
  445. package/dist/types/field/Field.d.ts.map +1 -0
  446. package/dist/types/field/index.d.ts +3 -0
  447. package/dist/types/field/index.d.ts.map +1 -0
  448. package/dist/types/field/types.d.ts +26 -0
  449. package/dist/types/field/types.d.ts.map +1 -0
  450. package/dist/types/float-button/BackTop.d.ts +11 -0
  451. package/dist/types/float-button/BackTop.d.ts.map +1 -0
  452. package/dist/types/float-button/FloatButton.d.ts +28 -0
  453. package/dist/types/float-button/FloatButton.d.ts.map +1 -0
  454. package/dist/types/float-button/FloatButtonGroup.d.ts +11 -0
  455. package/dist/types/float-button/FloatButtonGroup.d.ts.map +1 -0
  456. package/dist/types/float-button/index.d.ts +5 -0
  457. package/dist/types/float-button/index.d.ts.map +1 -0
  458. package/dist/types/float-button/types.d.ts +73 -0
  459. package/dist/types/float-button/types.d.ts.map +1 -0
  460. package/dist/types/float-button/utils.d.ts +14 -0
  461. package/dist/types/float-button/utils.d.ts.map +1 -0
  462. package/dist/types/foundations/PersonaDocs.d.ts +11 -0
  463. package/dist/types/foundations/PersonaDocs.d.ts.map +1 -0
  464. package/dist/types/foundations/usePersonaTheme.d.ts +17 -0
  465. package/dist/types/foundations/usePersonaTheme.d.ts.map +1 -0
  466. package/dist/types/image/Image.d.ts +16 -0
  467. package/dist/types/image/Image.d.ts.map +1 -0
  468. package/dist/types/image/ImageGallery.d.ts +82 -0
  469. package/dist/types/image/ImageGallery.d.ts.map +1 -0
  470. package/dist/types/image/ImageViewer.d.ts +54 -0
  471. package/dist/types/image/ImageViewer.d.ts.map +1 -0
  472. package/dist/types/image/galleryUtils.d.ts +89 -0
  473. package/dist/types/image/galleryUtils.d.ts.map +1 -0
  474. package/dist/types/image/index.d.ts +7 -0
  475. package/dist/types/image/index.d.ts.map +1 -0
  476. package/dist/types/image/types.d.ts +78 -0
  477. package/dist/types/image/types.d.ts.map +1 -0
  478. package/dist/types/image/utils.d.ts +54 -0
  479. package/dist/types/image/utils.d.ts.map +1 -0
  480. package/dist/types/image/viewerUtils.d.ts +66 -0
  481. package/dist/types/image/viewerUtils.d.ts.map +1 -0
  482. package/dist/types/input/Input.d.ts +5 -0
  483. package/dist/types/input/Input.d.ts.map +1 -0
  484. package/dist/types/input/OtpInput.d.ts +41 -0
  485. package/dist/types/input/OtpInput.d.ts.map +1 -0
  486. package/dist/types/input/SearchInput.d.ts +25 -0
  487. package/dist/types/input/SearchInput.d.ts.map +1 -0
  488. package/dist/types/input/Textarea.d.ts +59 -0
  489. package/dist/types/input/Textarea.d.ts.map +1 -0
  490. package/dist/types/input/_components/FieldAdornments.d.ts +22 -0
  491. package/dist/types/input/_components/FieldAdornments.d.ts.map +1 -0
  492. package/dist/types/input/_components/OtpSingleField.d.ts +38 -0
  493. package/dist/types/input/_components/OtpSingleField.d.ts.map +1 -0
  494. package/dist/types/input/index.d.ts +10 -0
  495. package/dist/types/input/index.d.ts.map +1 -0
  496. package/dist/types/input/mention/caret.d.ts +12 -0
  497. package/dist/types/input/mention/caret.d.ts.map +1 -0
  498. package/dist/types/input/mention/types.d.ts +45 -0
  499. package/dist/types/input/mention/types.d.ts.map +1 -0
  500. package/dist/types/input/mention/useMention.d.ts +16 -0
  501. package/dist/types/input/mention/useMention.d.ts.map +1 -0
  502. package/dist/types/input/mention/utils.d.ts +22 -0
  503. package/dist/types/input/mention/utils.d.ts.map +1 -0
  504. package/dist/types/input/types.d.ts +97 -0
  505. package/dist/types/input/types.d.ts.map +1 -0
  506. package/dist/types/input/utils.d.ts +51 -0
  507. package/dist/types/input/utils.d.ts.map +1 -0
  508. package/dist/types/input-number/InputNumber.d.ts +17 -0
  509. package/dist/types/input-number/InputNumber.d.ts.map +1 -0
  510. package/dist/types/input-number/index.d.ts +3 -0
  511. package/dist/types/input-number/index.d.ts.map +1 -0
  512. package/dist/types/input-number/types.d.ts +53 -0
  513. package/dist/types/input-number/types.d.ts.map +1 -0
  514. package/dist/types/input-number/utils.d.ts +42 -0
  515. package/dist/types/input-number/utils.d.ts.map +1 -0
  516. package/dist/types/lib/AnimationDemo.d.ts +13 -0
  517. package/dist/types/lib/AnimationDemo.d.ts.map +1 -0
  518. package/dist/types/lib/ContentSkeleton.d.ts +21 -0
  519. package/dist/types/lib/ContentSkeleton.d.ts.map +1 -0
  520. package/dist/types/lib/FloatingArrow.d.ts +22 -0
  521. package/dist/types/lib/FloatingArrow.d.ts.map +1 -0
  522. package/dist/types/lib/SkeletonDemo.d.ts +14 -0
  523. package/dist/types/lib/SkeletonDemo.d.ts.map +1 -0
  524. package/dist/types/lib/SkeletonSlot.d.ts +22 -0
  525. package/dist/types/lib/SkeletonSlot.d.ts.map +1 -0
  526. package/dist/types/lib/colorClasses.d.ts +57 -0
  527. package/dist/types/lib/colorClasses.d.ts.map +1 -0
  528. package/dist/types/lib/date/index.d.ts +51 -0
  529. package/dist/types/lib/date/index.d.ts.map +1 -0
  530. package/dist/types/lib/elevationClass.d.ts +10 -0
  531. package/dist/types/lib/elevationClass.d.ts.map +1 -0
  532. package/dist/types/lib/fieldContext.d.ts +61 -0
  533. package/dist/types/lib/fieldContext.d.ts.map +1 -0
  534. package/dist/types/lib/floating.d.ts +46 -0
  535. package/dist/types/lib/floating.d.ts.map +1 -0
  536. package/dist/types/lib/infiniteScroll.d.ts +36 -0
  537. package/dist/types/lib/infiniteScroll.d.ts.map +1 -0
  538. package/dist/types/lib/linkBehavior.d.ts +38 -0
  539. package/dist/types/lib/linkBehavior.d.ts.map +1 -0
  540. package/dist/types/lib/overlay.d.ts +55 -0
  541. package/dist/types/lib/overlay.d.ts.map +1 -0
  542. package/dist/types/lib/sizeClasses.d.ts +49 -0
  543. package/dist/types/lib/sizeClasses.d.ts.map +1 -0
  544. package/dist/types/lib/skeleton.d.ts +31 -0
  545. package/dist/types/lib/skeleton.d.ts.map +1 -0
  546. package/dist/types/lib/storyMeta.d.ts +85 -0
  547. package/dist/types/lib/storyMeta.d.ts.map +1 -0
  548. package/dist/types/lib/storyPhotos.d.ts +31 -0
  549. package/dist/types/lib/storyPhotos.d.ts.map +1 -0
  550. package/dist/types/lib/storybookArgTypes.d.ts +20 -0
  551. package/dist/types/lib/storybookArgTypes.d.ts.map +1 -0
  552. package/dist/types/lib/useAnimatedValue.d.ts +38 -0
  553. package/dist/types/lib/useAnimatedValue.d.ts.map +1 -0
  554. package/dist/types/lib/useFloatingPosition.d.ts +32 -0
  555. package/dist/types/lib/useFloatingPosition.d.ts.map +1 -0
  556. package/dist/types/lib/useScrollable.d.ts +13 -0
  557. package/dist/types/lib/useScrollable.d.ts.map +1 -0
  558. package/dist/types/list/List.d.ts +23 -0
  559. package/dist/types/list/List.d.ts.map +1 -0
  560. package/dist/types/list/index.d.ts +3 -0
  561. package/dist/types/list/index.d.ts.map +1 -0
  562. package/dist/types/list/types.d.ts +95 -0
  563. package/dist/types/list/types.d.ts.map +1 -0
  564. package/dist/types/list/utils.d.ts +16 -0
  565. package/dist/types/list/utils.d.ts.map +1 -0
  566. package/dist/types/loading/Loading.d.ts +5 -0
  567. package/dist/types/loading/Loading.d.ts.map +1 -0
  568. package/dist/types/loading/index.d.ts +3 -0
  569. package/dist/types/loading/index.d.ts.map +1 -0
  570. package/dist/types/loading/types.d.ts +33 -0
  571. package/dist/types/loading/types.d.ts.map +1 -0
  572. package/dist/types/loading/utils.d.ts +15 -0
  573. package/dist/types/loading/utils.d.ts.map +1 -0
  574. package/dist/types/logo/Logo.d.ts +11 -0
  575. package/dist/types/logo/Logo.d.ts.map +1 -0
  576. package/dist/types/logo/index.d.ts +3 -0
  577. package/dist/types/logo/index.d.ts.map +1 -0
  578. package/dist/types/masonry/Masonry.d.ts +15 -0
  579. package/dist/types/masonry/Masonry.d.ts.map +1 -0
  580. package/dist/types/masonry/index.d.ts +3 -0
  581. package/dist/types/masonry/index.d.ts.map +1 -0
  582. package/dist/types/masonry/types.d.ts +35 -0
  583. package/dist/types/masonry/types.d.ts.map +1 -0
  584. package/dist/types/masonry/utils.d.ts +23 -0
  585. package/dist/types/masonry/utils.d.ts.map +1 -0
  586. package/dist/types/menu/_shared/MegaPanel.d.ts +20 -0
  587. package/dist/types/menu/_shared/MegaPanel.d.ts.map +1 -0
  588. package/dist/types/menu/_shared/MenuLink.d.ts +39 -0
  589. package/dist/types/menu/_shared/MenuLink.d.ts.map +1 -0
  590. package/dist/types/menu/_shared/MobileNav.d.ts +31 -0
  591. package/dist/types/menu/_shared/MobileNav.d.ts.map +1 -0
  592. package/dist/types/menu/_shared/NavBar.d.ts +49 -0
  593. package/dist/types/menu/_shared/NavBar.d.ts.map +1 -0
  594. package/dist/types/menu/_shared/NavDrawer.d.ts +40 -0
  595. package/dist/types/menu/_shared/NavDrawer.d.ts.map +1 -0
  596. package/dist/types/menu/_shared/_components/MegaPanelColumn.d.ts +19 -0
  597. package/dist/types/menu/_shared/_components/MegaPanelColumn.d.ts.map +1 -0
  598. package/dist/types/menu/_shared/_components/MegaPanelPromoGrid.d.ts +11 -0
  599. package/dist/types/menu/_shared/_components/MegaPanelPromoGrid.d.ts.map +1 -0
  600. package/dist/types/menu/_shared/_components/MegaPanelRail.d.ts +30 -0
  601. package/dist/types/menu/_shared/_components/MegaPanelRail.d.ts.map +1 -0
  602. package/dist/types/menu/_shared/_components/MobileNavLevel.d.ts +26 -0
  603. package/dist/types/menu/_shared/_components/MobileNavLevel.d.ts.map +1 -0
  604. package/dist/types/menu/_shared/index.d.ts +3 -0
  605. package/dist/types/menu/_shared/index.d.ts.map +1 -0
  606. package/dist/types/menu/_shared/responsive.d.ts +12 -0
  607. package/dist/types/menu/_shared/responsive.d.ts.map +1 -0
  608. package/dist/types/menu/_shared/types.d.ts +17 -0
  609. package/dist/types/menu/_shared/types.d.ts.map +1 -0
  610. package/dist/types/menu/_shared/useHoverIntent.d.ts +11 -0
  611. package/dist/types/menu/_shared/useHoverIntent.d.ts.map +1 -0
  612. package/dist/types/menu/basic-menu/BasicMenu.d.ts +35 -0
  613. package/dist/types/menu/basic-menu/BasicMenu.d.ts.map +1 -0
  614. package/dist/types/menu/basic-menu/_components/BasicMenuItem.d.ts +18 -0
  615. package/dist/types/menu/basic-menu/_components/BasicMenuItem.d.ts.map +1 -0
  616. package/dist/types/menu/basic-menu/_components/DropdownSubMenu.d.ts +43 -0
  617. package/dist/types/menu/basic-menu/_components/DropdownSubMenu.d.ts.map +1 -0
  618. package/dist/types/menu/basic-menu/_components/SubMenuRow.d.ts +20 -0
  619. package/dist/types/menu/basic-menu/_components/SubMenuRow.d.ts.map +1 -0
  620. package/dist/types/menu/basic-menu/index.d.ts +3 -0
  621. package/dist/types/menu/basic-menu/index.d.ts.map +1 -0
  622. package/dist/types/menu/index.d.ts +9 -0
  623. package/dist/types/menu/index.d.ts.map +1 -0
  624. package/dist/types/menu/mega-menu/MegaMenu.d.ts +20 -0
  625. package/dist/types/menu/mega-menu/MegaMenu.d.ts.map +1 -0
  626. package/dist/types/menu/mega-menu/_components/MegaMenuItem.d.ts +38 -0
  627. package/dist/types/menu/mega-menu/_components/MegaMenuItem.d.ts.map +1 -0
  628. package/dist/types/menu/mega-menu/index.d.ts +3 -0
  629. package/dist/types/menu/mega-menu/index.d.ts.map +1 -0
  630. package/dist/types/menu/sidebar/Sidebar.d.ts +66 -0
  631. package/dist/types/menu/sidebar/Sidebar.d.ts.map +1 -0
  632. package/dist/types/menu/sidebar/_components/SidebarButton.d.ts +16 -0
  633. package/dist/types/menu/sidebar/_components/SidebarButton.d.ts.map +1 -0
  634. package/dist/types/menu/sidebar/_components/SidebarItem.d.ts +45 -0
  635. package/dist/types/menu/sidebar/_components/SidebarItem.d.ts.map +1 -0
  636. package/dist/types/menu/sidebar/_components/SidebarMegaPanel.d.ts +16 -0
  637. package/dist/types/menu/sidebar/_components/SidebarMegaPanel.d.ts.map +1 -0
  638. package/dist/types/menu/sidebar/_components/SidebarMenu.d.ts +17 -0
  639. package/dist/types/menu/sidebar/_components/SidebarMenu.d.ts.map +1 -0
  640. package/dist/types/menu/sidebar/index.d.ts +3 -0
  641. package/dist/types/menu/sidebar/index.d.ts.map +1 -0
  642. package/dist/types/menu/types.d.ts +66 -0
  643. package/dist/types/menu/types.d.ts.map +1 -0
  644. package/dist/types/menu/utils.d.ts +38 -0
  645. package/dist/types/menu/utils.d.ts.map +1 -0
  646. package/dist/types/modal/Modal.d.ts +22 -0
  647. package/dist/types/modal/Modal.d.ts.map +1 -0
  648. package/dist/types/modal/index.d.ts +3 -0
  649. package/dist/types/modal/index.d.ts.map +1 -0
  650. package/dist/types/modal/types.d.ts +64 -0
  651. package/dist/types/modal/types.d.ts.map +1 -0
  652. package/dist/types/modal/utils.d.ts +10 -0
  653. package/dist/types/modal/utils.d.ts.map +1 -0
  654. package/dist/types/pagination/Pagination.d.ts +18 -0
  655. package/dist/types/pagination/Pagination.d.ts.map +1 -0
  656. package/dist/types/pagination/index.d.ts +3 -0
  657. package/dist/types/pagination/index.d.ts.map +1 -0
  658. package/dist/types/pagination/types.d.ts +64 -0
  659. package/dist/types/pagination/types.d.ts.map +1 -0
  660. package/dist/types/pagination/utils.d.ts +41 -0
  661. package/dist/types/pagination/utils.d.ts.map +1 -0
  662. package/dist/types/popconfirm/Popconfirm.d.ts +16 -0
  663. package/dist/types/popconfirm/Popconfirm.d.ts.map +1 -0
  664. package/dist/types/popconfirm/index.d.ts +3 -0
  665. package/dist/types/popconfirm/index.d.ts.map +1 -0
  666. package/dist/types/popconfirm/types.d.ts +35 -0
  667. package/dist/types/popconfirm/types.d.ts.map +1 -0
  668. package/dist/types/popover/Popover.d.ts +16 -0
  669. package/dist/types/popover/Popover.d.ts.map +1 -0
  670. package/dist/types/popover/index.d.ts +3 -0
  671. package/dist/types/popover/index.d.ts.map +1 -0
  672. package/dist/types/popover/types.d.ts +42 -0
  673. package/dist/types/popover/types.d.ts.map +1 -0
  674. package/dist/types/progress/Progress.d.ts +15 -0
  675. package/dist/types/progress/Progress.d.ts.map +1 -0
  676. package/dist/types/progress/index.d.ts +3 -0
  677. package/dist/types/progress/index.d.ts.map +1 -0
  678. package/dist/types/progress/types.d.ts +34 -0
  679. package/dist/types/progress/types.d.ts.map +1 -0
  680. package/dist/types/qrcode/QRCode.d.ts +17 -0
  681. package/dist/types/qrcode/QRCode.d.ts.map +1 -0
  682. package/dist/types/qrcode/index.d.ts +3 -0
  683. package/dist/types/qrcode/index.d.ts.map +1 -0
  684. package/dist/types/qrcode/types.d.ts +49 -0
  685. package/dist/types/qrcode/types.d.ts.map +1 -0
  686. package/dist/types/qrcode/utils.d.ts +34 -0
  687. package/dist/types/qrcode/utils.d.ts.map +1 -0
  688. package/dist/types/radio/Radio.d.ts +5 -0
  689. package/dist/types/radio/Radio.d.ts.map +1 -0
  690. package/dist/types/radio/RadioGroup.d.ts +8 -0
  691. package/dist/types/radio/RadioGroup.d.ts.map +1 -0
  692. package/dist/types/radio/index.d.ts +4 -0
  693. package/dist/types/radio/index.d.ts.map +1 -0
  694. package/dist/types/radio/types.d.ts +53 -0
  695. package/dist/types/radio/types.d.ts.map +1 -0
  696. package/dist/types/radio/utils.d.ts +14 -0
  697. package/dist/types/radio/utils.d.ts.map +1 -0
  698. package/dist/types/rate/Rate.d.ts +5 -0
  699. package/dist/types/rate/Rate.d.ts.map +1 -0
  700. package/dist/types/rate/index.d.ts +3 -0
  701. package/dist/types/rate/index.d.ts.map +1 -0
  702. package/dist/types/rate/types.d.ts +37 -0
  703. package/dist/types/rate/types.d.ts.map +1 -0
  704. package/dist/types/rate/utils.d.ts +15 -0
  705. package/dist/types/rate/utils.d.ts.map +1 -0
  706. package/dist/types/segmented/Segmented.d.ts +15 -0
  707. package/dist/types/segmented/Segmented.d.ts.map +1 -0
  708. package/dist/types/segmented/index.d.ts +3 -0
  709. package/dist/types/segmented/index.d.ts.map +1 -0
  710. package/dist/types/segmented/types.d.ts +33 -0
  711. package/dist/types/segmented/types.d.ts.map +1 -0
  712. package/dist/types/select/Select.d.ts +17 -0
  713. package/dist/types/select/Select.d.ts.map +1 -0
  714. package/dist/types/select/_components/SelectPanel.d.ts +34 -0
  715. package/dist/types/select/_components/SelectPanel.d.ts.map +1 -0
  716. package/dist/types/select/index.d.ts +3 -0
  717. package/dist/types/select/index.d.ts.map +1 -0
  718. package/dist/types/select/types.d.ts +82 -0
  719. package/dist/types/select/types.d.ts.map +1 -0
  720. package/dist/types/select/useSelectState.d.ts +29 -0
  721. package/dist/types/select/useSelectState.d.ts.map +1 -0
  722. package/dist/types/select/utils.d.ts +39 -0
  723. package/dist/types/select/utils.d.ts.map +1 -0
  724. package/dist/types/skeleton/Skeleton.d.ts +10 -0
  725. package/dist/types/skeleton/Skeleton.d.ts.map +1 -0
  726. package/dist/types/skeleton/SkeletonButton.d.ts +13 -0
  727. package/dist/types/skeleton/SkeletonButton.d.ts.map +1 -0
  728. package/dist/types/skeleton/SkeletonInput.d.ts +9 -0
  729. package/dist/types/skeleton/SkeletonInput.d.ts.map +1 -0
  730. package/dist/types/skeleton/index.d.ts +7 -0
  731. package/dist/types/skeleton/index.d.ts.map +1 -0
  732. package/dist/types/skeleton/types.d.ts +46 -0
  733. package/dist/types/skeleton/types.d.ts.map +1 -0
  734. package/dist/types/skeleton/utils.d.ts +12 -0
  735. package/dist/types/skeleton/utils.d.ts.map +1 -0
  736. package/dist/types/slider/Slider.d.ts +5 -0
  737. package/dist/types/slider/Slider.d.ts.map +1 -0
  738. package/dist/types/slider/index.d.ts +3 -0
  739. package/dist/types/slider/index.d.ts.map +1 -0
  740. package/dist/types/slider/types.d.ts +52 -0
  741. package/dist/types/slider/types.d.ts.map +1 -0
  742. package/dist/types/slider/utils.d.ts +15 -0
  743. package/dist/types/slider/utils.d.ts.map +1 -0
  744. package/dist/types/splitter/Splitter.d.ts +22 -0
  745. package/dist/types/splitter/Splitter.d.ts.map +1 -0
  746. package/dist/types/splitter/index.d.ts +3 -0
  747. package/dist/types/splitter/index.d.ts.map +1 -0
  748. package/dist/types/splitter/types.d.ts +50 -0
  749. package/dist/types/splitter/types.d.ts.map +1 -0
  750. package/dist/types/splitter/utils.d.ts +33 -0
  751. package/dist/types/splitter/utils.d.ts.map +1 -0
  752. package/dist/types/statistic/Statistic.d.ts +23 -0
  753. package/dist/types/statistic/Statistic.d.ts.map +1 -0
  754. package/dist/types/statistic/index.d.ts +3 -0
  755. package/dist/types/statistic/index.d.ts.map +1 -0
  756. package/dist/types/statistic/types.d.ts +72 -0
  757. package/dist/types/statistic/types.d.ts.map +1 -0
  758. package/dist/types/statistic/utils.d.ts +34 -0
  759. package/dist/types/statistic/utils.d.ts.map +1 -0
  760. package/dist/types/steps/Steps.d.ts +5 -0
  761. package/dist/types/steps/Steps.d.ts.map +1 -0
  762. package/dist/types/steps/_components/StepsContent.d.ts +19 -0
  763. package/dist/types/steps/_components/StepsContent.d.ts.map +1 -0
  764. package/dist/types/steps/index.d.ts +5 -0
  765. package/dist/types/steps/index.d.ts.map +1 -0
  766. package/dist/types/steps/types.d.ts +90 -0
  767. package/dist/types/steps/types.d.ts.map +1 -0
  768. package/dist/types/steps/utils.d.ts +25 -0
  769. package/dist/types/steps/utils.d.ts.map +1 -0
  770. package/dist/types/switch/Switch.d.ts +14 -0
  771. package/dist/types/switch/Switch.d.ts.map +1 -0
  772. package/dist/types/switch/index.d.ts +3 -0
  773. package/dist/types/switch/index.d.ts.map +1 -0
  774. package/dist/types/switch/types.d.ts +19 -0
  775. package/dist/types/switch/types.d.ts.map +1 -0
  776. package/dist/types/switch/utils.d.ts +11 -0
  777. package/dist/types/switch/utils.d.ts.map +1 -0
  778. package/dist/types/table/Table.d.ts +26 -0
  779. package/dist/types/table/Table.d.ts.map +1 -0
  780. package/dist/types/table/_components/TableAccordion.d.ts +16 -0
  781. package/dist/types/table/_components/TableAccordion.d.ts.map +1 -0
  782. package/dist/types/table/_components/TableBody.d.ts +16 -0
  783. package/dist/types/table/_components/TableBody.d.ts.map +1 -0
  784. package/dist/types/table/_components/TableCellSkeleton.d.ts +12 -0
  785. package/dist/types/table/_components/TableCellSkeleton.d.ts.map +1 -0
  786. package/dist/types/table/_components/TableEditDrawer.d.ts +18 -0
  787. package/dist/types/table/_components/TableEditDrawer.d.ts.map +1 -0
  788. package/dist/types/table/_components/TableHeader.d.ts +19 -0
  789. package/dist/types/table/_components/TableHeader.d.ts.map +1 -0
  790. package/dist/types/table/_components/TableInfoValue.d.ts +17 -0
  791. package/dist/types/table/_components/TableInfoValue.d.ts.map +1 -0
  792. package/dist/types/table/_components/TablePagination.d.ts +21 -0
  793. package/dist/types/table/_components/TablePagination.d.ts.map +1 -0
  794. package/dist/types/table/_components/TableRowActions.d.ts +22 -0
  795. package/dist/types/table/_components/TableRowActions.d.ts.map +1 -0
  796. package/dist/types/table/index.d.ts +3 -0
  797. package/dist/types/table/index.d.ts.map +1 -0
  798. package/dist/types/table/types.d.ts +101 -0
  799. package/dist/types/table/types.d.ts.map +1 -0
  800. package/dist/types/table/utils.d.ts +27 -0
  801. package/dist/types/table/utils.d.ts.map +1 -0
  802. package/dist/types/tabs/Tabs.d.ts +13 -0
  803. package/dist/types/tabs/Tabs.d.ts.map +1 -0
  804. package/dist/types/tabs/_components/TabsContent.d.ts +9 -0
  805. package/dist/types/tabs/_components/TabsContent.d.ts.map +1 -0
  806. package/dist/types/tabs/_components/TabsList.d.ts +16 -0
  807. package/dist/types/tabs/_components/TabsList.d.ts.map +1 -0
  808. package/dist/types/tabs/_components/TabsTrigger.d.ts +12 -0
  809. package/dist/types/tabs/_components/TabsTrigger.d.ts.map +1 -0
  810. package/dist/types/tabs/index.d.ts +6 -0
  811. package/dist/types/tabs/index.d.ts.map +1 -0
  812. package/dist/types/tabs/types.d.ts +91 -0
  813. package/dist/types/tabs/types.d.ts.map +1 -0
  814. package/dist/types/tabs/useTabs.d.ts +10 -0
  815. package/dist/types/tabs/useTabs.d.ts.map +1 -0
  816. package/dist/types/tabs/utils.d.ts +20 -0
  817. package/dist/types/tabs/utils.d.ts.map +1 -0
  818. package/dist/types/tag/Tag.d.ts +5 -0
  819. package/dist/types/tag/Tag.d.ts.map +1 -0
  820. package/dist/types/tag/index.d.ts +3 -0
  821. package/dist/types/tag/index.d.ts.map +1 -0
  822. package/dist/types/tag/types.d.ts +18 -0
  823. package/dist/types/tag/types.d.ts.map +1 -0
  824. package/dist/types/tag/utils.d.ts +13 -0
  825. package/dist/types/tag/utils.d.ts.map +1 -0
  826. package/dist/types/theme-customizer/ThemeCustomizer.d.ts +17 -0
  827. package/dist/types/theme-customizer/ThemeCustomizer.d.ts.map +1 -0
  828. package/dist/types/theme-customizer/applyTheme.d.ts +16 -0
  829. package/dist/types/theme-customizer/applyTheme.d.ts.map +1 -0
  830. package/dist/types/theme-customizer/index.d.ts +8 -0
  831. package/dist/types/theme-customizer/index.d.ts.map +1 -0
  832. package/dist/types/theme-customizer/types.d.ts +37 -0
  833. package/dist/types/theme-customizer/types.d.ts.map +1 -0
  834. package/dist/types/timeline/Timeline.d.ts +15 -0
  835. package/dist/types/timeline/Timeline.d.ts.map +1 -0
  836. package/dist/types/timeline/index.d.ts +3 -0
  837. package/dist/types/timeline/index.d.ts.map +1 -0
  838. package/dist/types/timeline/types.d.ts +53 -0
  839. package/dist/types/timeline/types.d.ts.map +1 -0
  840. package/dist/types/timeline/utils.d.ts +13 -0
  841. package/dist/types/timeline/utils.d.ts.map +1 -0
  842. package/dist/types/toast/Toast.d.ts +19 -0
  843. package/dist/types/toast/Toast.d.ts.map +1 -0
  844. package/dist/types/toast/index.d.ts +4 -0
  845. package/dist/types/toast/index.d.ts.map +1 -0
  846. package/dist/types/toast/types.d.ts +43 -0
  847. package/dist/types/toast/types.d.ts.map +1 -0
  848. package/dist/types/toast/useToast.d.ts +26 -0
  849. package/dist/types/toast/useToast.d.ts.map +1 -0
  850. package/dist/types/toast/utils.d.ts +12 -0
  851. package/dist/types/toast/utils.d.ts.map +1 -0
  852. package/dist/types/tooltip/Tooltip.d.ts +5 -0
  853. package/dist/types/tooltip/Tooltip.d.ts.map +1 -0
  854. package/dist/types/tooltip/index.d.ts +3 -0
  855. package/dist/types/tooltip/index.d.ts.map +1 -0
  856. package/dist/types/tooltip/types.d.ts +32 -0
  857. package/dist/types/tooltip/types.d.ts.map +1 -0
  858. package/dist/types/tooltip/utils.d.ts +12 -0
  859. package/dist/types/tooltip/utils.d.ts.map +1 -0
  860. package/dist/types/tour/Tour.d.ts +18 -0
  861. package/dist/types/tour/Tour.d.ts.map +1 -0
  862. package/dist/types/tour/index.d.ts +3 -0
  863. package/dist/types/tour/index.d.ts.map +1 -0
  864. package/dist/types/tour/types.d.ts +46 -0
  865. package/dist/types/tour/types.d.ts.map +1 -0
  866. package/dist/types/tour/utils.d.ts +18 -0
  867. package/dist/types/tour/utils.d.ts.map +1 -0
  868. package/dist/types/transfer/Transfer.d.ts +16 -0
  869. package/dist/types/transfer/Transfer.d.ts.map +1 -0
  870. package/dist/types/transfer/_components/TransferList.d.ts +32 -0
  871. package/dist/types/transfer/_components/TransferList.d.ts.map +1 -0
  872. package/dist/types/transfer/index.d.ts +3 -0
  873. package/dist/types/transfer/index.d.ts.map +1 -0
  874. package/dist/types/transfer/types.d.ts +67 -0
  875. package/dist/types/transfer/types.d.ts.map +1 -0
  876. package/dist/types/transfer/utils.d.ts +34 -0
  877. package/dist/types/transfer/utils.d.ts.map +1 -0
  878. package/dist/types/tree/Tree.d.ts +59 -0
  879. package/dist/types/tree/Tree.d.ts.map +1 -0
  880. package/dist/types/tree/index.d.ts +5 -0
  881. package/dist/types/tree/index.d.ts.map +1 -0
  882. package/dist/types/tree/types.d.ts +92 -0
  883. package/dist/types/tree/types.d.ts.map +1 -0
  884. package/dist/types/tree/utils.d.ts +66 -0
  885. package/dist/types/tree/utils.d.ts.map +1 -0
  886. package/dist/types/tree-select/TreeSelect.d.ts +18 -0
  887. package/dist/types/tree-select/TreeSelect.d.ts.map +1 -0
  888. package/dist/types/tree-select/_components/TreeSelectPanel.d.ts +27 -0
  889. package/dist/types/tree-select/_components/TreeSelectPanel.d.ts.map +1 -0
  890. package/dist/types/tree-select/index.d.ts +3 -0
  891. package/dist/types/tree-select/index.d.ts.map +1 -0
  892. package/dist/types/tree-select/types.d.ts +87 -0
  893. package/dist/types/tree-select/types.d.ts.map +1 -0
  894. package/dist/types/tree-select/useTreeSelectState.d.ts +38 -0
  895. package/dist/types/tree-select/useTreeSelectState.d.ts.map +1 -0
  896. package/dist/types/tree-select/utils.d.ts +28 -0
  897. package/dist/types/tree-select/utils.d.ts.map +1 -0
  898. package/dist/types/typewriter/Typewriter.d.ts +16 -0
  899. package/dist/types/typewriter/Typewriter.d.ts.map +1 -0
  900. package/dist/types/typewriter/index.d.ts +3 -0
  901. package/dist/types/typewriter/index.d.ts.map +1 -0
  902. package/dist/types/typewriter/types.d.ts +33 -0
  903. package/dist/types/typewriter/types.d.ts.map +1 -0
  904. package/dist/types/typewriter/useTypewriter.d.ts +29 -0
  905. package/dist/types/typewriter/useTypewriter.d.ts.map +1 -0
  906. package/dist/types/typography/Typography.d.ts +6 -0
  907. package/dist/types/typography/Typography.d.ts.map +1 -0
  908. package/dist/types/typography/index.d.ts +3 -0
  909. package/dist/types/typography/index.d.ts.map +1 -0
  910. package/dist/types/typography/types.d.ts +38 -0
  911. package/dist/types/typography/types.d.ts.map +1 -0
  912. package/dist/types/typography/utils.d.ts +10 -0
  913. package/dist/types/typography/utils.d.ts.map +1 -0
  914. package/dist/types/upload/Upload.d.ts +5 -0
  915. package/dist/types/upload/Upload.d.ts.map +1 -0
  916. package/dist/types/upload/_components/List.d.ts +15 -0
  917. package/dist/types/upload/_components/List.d.ts.map +1 -0
  918. package/dist/types/upload/_components/ReviewList.d.ts +17 -0
  919. package/dist/types/upload/_components/ReviewList.d.ts.map +1 -0
  920. package/dist/types/upload/_components/UploadDragDropButton.d.ts +16 -0
  921. package/dist/types/upload/_components/UploadDragDropButton.d.ts.map +1 -0
  922. package/dist/types/upload/_components/UploadListButton.d.ts +7 -0
  923. package/dist/types/upload/_components/UploadListButton.d.ts.map +1 -0
  924. package/dist/types/upload/_components/UploadReviewButton.d.ts +14 -0
  925. package/dist/types/upload/_components/UploadReviewButton.d.ts.map +1 -0
  926. package/dist/types/upload/index.d.ts +3 -0
  927. package/dist/types/upload/index.d.ts.map +1 -0
  928. package/dist/types/upload/types.d.ts +30 -0
  929. package/dist/types/upload/types.d.ts.map +1 -0
  930. package/dist/types/upload/useUpload.d.ts +24 -0
  931. package/dist/types/upload/useUpload.d.ts.map +1 -0
  932. package/dist/types/upload/utils.d.ts +23 -0
  933. package/dist/types/upload/utils.d.ts.map +1 -0
  934. package/dist/typewriter.d.ts +1 -0
  935. package/dist/typewriter.js +139 -0
  936. package/dist/typewriter.js.map +1 -0
  937. package/dist/typography.d.ts +1 -0
  938. package/dist/typography.js +81 -0
  939. package/dist/typography.js.map +1 -0
  940. package/dist/upload.d.ts +1 -0
  941. package/dist/upload.js +370 -0
  942. package/dist/upload.js.map +1 -0
  943. package/package.json +325 -3
package/dist/menu.js ADDED
@@ -0,0 +1,1682 @@
1
+ "use client";
2
+
3
+ import {
4
+ useModalBehavior,
5
+ usePresence
6
+ } from "./chunk-JNZODUXP.js";
7
+ import {
8
+ Dropdown,
9
+ DropdownContent,
10
+ DropdownTrigger,
11
+ NewTabHint,
12
+ bypassesRouter,
13
+ getFocusable,
14
+ getLinkAttrs,
15
+ getRovingTarget,
16
+ isPlainLeftClick,
17
+ useDropdown
18
+ } from "./chunk-FNJHS5KQ.js";
19
+ import {
20
+ SkeletonSlot
21
+ } from "./chunk-DKENCYHA.js";
22
+ import "./chunk-S66GKX2W.js";
23
+ import "./chunk-3ABWBQCS.js";
24
+ import "./chunk-NS7FKOFI.js";
25
+ import "./chunk-TCYDVNSU.js";
26
+ import {
27
+ touchTargetClass,
28
+ touchTargetSquareClass
29
+ } from "./chunk-FFXRFQSU.js";
30
+ import {
31
+ bgSolidClass,
32
+ bgSubtleClass,
33
+ textClass,
34
+ textHoverClass,
35
+ textSolidContrastClass
36
+ } from "./chunk-IP2J3BWY.js";
37
+ import {
38
+ skeletonFill
39
+ } from "./chunk-54HHEXXD.js";
40
+
41
+ // src/menu/basic-menu/BasicMenu.tsx
42
+ import { useEffect as useEffect3, useState as useState3 } from "react";
43
+
44
+ // src/menu/utils.ts
45
+ import { cn } from "@mari-ui/core";
46
+ function getMenuItemJustify(justify) {
47
+ return { left: "justify-start", right: "justify-end", center: "justify-center" }[justify];
48
+ }
49
+ function getMenuPosition(position) {
50
+ return { default: "", sticky: "sticky top-0", fixed: "fixed top-0 w-full" }[position];
51
+ }
52
+ function isMenuItemActive(item, activeKey) {
53
+ if (!activeKey) return false;
54
+ if (item.key === activeKey) return true;
55
+ if (item.children) return item.children.some((child) => isMenuItemActive(child, activeKey));
56
+ return false;
57
+ }
58
+ var INDICATOR_COLOR_CLASS = {
59
+ primary: "after:bg-mari-primary",
60
+ accent: "after:bg-mari-accent",
61
+ success: "after:bg-mari-success",
62
+ error: "after:bg-mari-error",
63
+ warning: "after:bg-mari-warning",
64
+ info: "after:bg-mari-info",
65
+ neutral: "after:bg-mari-neutral"
66
+ };
67
+ var EXPANDED_TEXT_CLASS = {
68
+ primary: "aria-expanded:text-mari-primary",
69
+ accent: "aria-expanded:text-mari-accent",
70
+ success: "aria-expanded:text-mari-success",
71
+ error: "aria-expanded:text-mari-error",
72
+ warning: "aria-expanded:text-mari-warning",
73
+ info: "aria-expanded:text-mari-info",
74
+ neutral: "aria-expanded:text-mari-neutral"
75
+ };
76
+ function getItemClass(item, activeKey, color) {
77
+ const isActive = isMenuItemActive(item, activeKey);
78
+ return cn(
79
+ // `whitespace-nowrap`: dar genişlikte "Ana Sayfa" gibi başlıklar iki satıra kırılıyordu.
80
+ "relative whitespace-nowrap font-medium transition-colors duration-150",
81
+ "after:pointer-events-none after:absolute after:inset-x-3 after:bottom-0 after:h-0.5 after:origin-center after:transition-transform after:duration-200 after:ease-out after:content-['']",
82
+ INDICATOR_COLOR_CLASS[color],
83
+ isActive ? cn(textClass[color], "after:scale-x-100") : cn("text-mari-foreground/80", textHoverClass[color], "after:scale-x-0 hover:after:scale-x-100 aria-expanded:after:scale-x-100", EXPANDED_TEXT_CLASS[color])
84
+ );
85
+ }
86
+ function getSidebarWidthClass(variant, expanded, onlyIcon = false) {
87
+ if (onlyIcon) return "w-16";
88
+ if (variant === "hover") return expanded ? "w-64 shadow-mari-lg" : "w-16";
89
+ return expanded ? "w-64" : "w-0 border-0";
90
+ }
91
+ function findActiveKeyByRoute(items, route) {
92
+ if (!route) return null;
93
+ for (const item of items) {
94
+ if (item.route === route) return item.key;
95
+ if (item.children) {
96
+ const found = findActiveKeyByRoute(item.children, route);
97
+ if (found) return found;
98
+ }
99
+ }
100
+ return null;
101
+ }
102
+
103
+ // src/menu/_shared/NavBar.tsx
104
+ import { cn as cn6 } from "@mari-ui/core";
105
+
106
+ // src/menu/_shared/MobileNav.tsx
107
+ import { useEffect as useEffect2, useId as useId2, useState as useState2 } from "react";
108
+ import { MenuIcon } from "lucide-react";
109
+ import { cn as cn5 } from "@mari-ui/core";
110
+
111
+ // src/menu/_shared/NavDrawer.tsx
112
+ import { useEffect, useId, useRef, useState } from "react";
113
+ import { createPortal } from "react-dom";
114
+ import { XIcon } from "lucide-react";
115
+ import { cn as cn4 } from "@mari-ui/core";
116
+
117
+ // src/menu/_shared/_components/MegaPanelPromoGrid.tsx
118
+ import { cn as cn2 } from "@mari-ui/core";
119
+
120
+ // src/menu/_shared/MenuLink.tsx
121
+ import { jsx } from "react/jsx-runtime";
122
+ function MenuLink({ route, onNavigate, onSelect, disabled, current, target, reloadDocument, className, children, ...rest }) {
123
+ if (!route || disabled) {
124
+ return /* @__PURE__ */ jsx("button", { type: "button", ...rest, disabled, onClick: onSelect, className, children });
125
+ }
126
+ return /* @__PURE__ */ jsx(
127
+ "a",
128
+ {
129
+ ...rest,
130
+ href: route,
131
+ ...getLinkAttrs(target),
132
+ "aria-current": current ? "page" : void 0,
133
+ className,
134
+ onClick: (event) => {
135
+ onSelect?.();
136
+ if (!onNavigate || !isPlainLeftClick(event) || bypassesRouter(route, { target, reloadDocument })) return;
137
+ event.preventDefault();
138
+ onNavigate(route);
139
+ },
140
+ children
141
+ }
142
+ );
143
+ }
144
+
145
+ // src/menu/_shared/_components/MegaPanelPromoGrid.tsx
146
+ import { jsx as jsx2, jsxs } from "react/jsx-runtime";
147
+ var SPAN_CLASS = {
148
+ sm: "col-span-1 aspect-square",
149
+ wide: "col-span-2 aspect-[21/9]",
150
+ full: "col-span-2 aspect-[16/9]"
151
+ };
152
+ function MegaPanelPromoGrid({ tiles, onNavigate, onTileClick, className }) {
153
+ return /* @__PURE__ */ jsx2("div", { className: cn2("grid w-64 shrink-0 grid-cols-2 gap-3 self-start", className), children: tiles.map((tile) => /* @__PURE__ */ jsxs(
154
+ MenuLink,
155
+ {
156
+ route: tile.href,
157
+ target: tile.target,
158
+ reloadDocument: tile.reloadDocument,
159
+ onNavigate,
160
+ onSelect: () => onTileClick?.(tile),
161
+ className: cn2(
162
+ "group relative block cursor-pointer overflow-hidden rounded-lg border border-mari-border transition-shadow hover:shadow-mari-sm focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-mari-ring",
163
+ SPAN_CLASS[tile.span ?? "sm"]
164
+ ),
165
+ children: [
166
+ /* @__PURE__ */ jsx2("img", { src: tile.image, alt: "", className: "absolute inset-0 h-full w-full object-cover transition-transform duration-300 group-hover:scale-105" }),
167
+ /* @__PURE__ */ jsxs("span", { className: "absolute inset-x-0 bottom-0 flex items-center gap-1 bg-gradient-to-t from-black/70 to-transparent px-2 py-1.5 text-start text-xs font-semibold text-white", children: [
168
+ tile.title,
169
+ /* @__PURE__ */ jsx2(NewTabHint, { target: tile.target })
170
+ ] })
171
+ ]
172
+ },
173
+ tile.title
174
+ )) });
175
+ }
176
+
177
+ // src/menu/_shared/_components/MobileNavLevel.tsx
178
+ import { ChevronLeftIcon, ChevronRightIcon } from "lucide-react";
179
+ import { cn as cn3 } from "@mari-ui/core";
180
+ import { Fragment, jsx as jsx3, jsxs as jsxs2 } from "react/jsx-runtime";
181
+ var ROW_CLASS = "flex min-h-12 w-full items-center gap-3 px-4 py-2.5 text-start text-sm transition-colors duration-150 focus-visible:outline-2 focus-visible:-outline-offset-2 focus-visible:outline-mari-ring";
182
+ function MobileNavLevel({ items, trail, activeKey, color, onDrill, onBack, onSelect, onNavigate, backRef }) {
183
+ const parent = trail[trail.length - 1];
184
+ const backLabel = trail[trail.length - 2]?.title ?? "Ana Men\xFC";
185
+ const reserveIconSlot = items.some((item) => item.icon && !item.heading);
186
+ return /* @__PURE__ */ jsxs2("div", { className: "flex flex-col pb-4 transition-[opacity,translate] duration-200 ease-out starting:translate-x-3 starting:opacity-0", children: [
187
+ parent && /* @__PURE__ */ jsxs2(Fragment, { children: [
188
+ /* @__PURE__ */ jsxs2(
189
+ "button",
190
+ {
191
+ ref: backRef,
192
+ type: "button",
193
+ onClick: onBack,
194
+ className: cn3(ROW_CLASS, "cursor-pointer gap-2 border-b border-mari-border font-medium text-mari-muted hover:bg-mari-surface-alt hover:text-mari-foreground"),
195
+ children: [
196
+ /* @__PURE__ */ jsx3(ChevronLeftIcon, { "aria-hidden": "true", size: 18, className: "shrink-0" }),
197
+ backLabel
198
+ ]
199
+ }
200
+ ),
201
+ /* @__PURE__ */ jsxs2("div", { className: "flex items-center justify-between gap-3 px-4 pt-4 pb-2", children: [
202
+ /* @__PURE__ */ jsx3("span", { className: "text-base font-semibold text-mari-foreground", children: parent.title }),
203
+ parent.route && /* @__PURE__ */ jsx3(MenuLink, { route: parent.route, target: parent.target, reloadDocument: parent.reloadDocument, onNavigate, onSelect: () => onSelect(parent), className: cn3("shrink-0 cursor-pointer text-sm font-medium hover:underline", textClass[color]), children: "T\xFCm\xFCn\xFC g\xF6r" })
204
+ ] })
205
+ ] }),
206
+ /* @__PURE__ */ jsx3("ul", { className: "flex flex-col", children: items.map((item) => {
207
+ if (item.heading) {
208
+ return (
209
+ // Amazon çekmecesinin yapısı: her bölüm bir ayraçla ayrılır, başlığı kalın ve okunur (soluk küçük etiket değil).
210
+ /* @__PURE__ */ jsx3("li", { className: "mt-2 border-t border-mari-border px-4 pt-4 pb-1 text-base font-semibold text-mari-foreground first:mt-0 first:border-t-0 first:pt-3", children: item.title }, item.key)
211
+ );
212
+ }
213
+ const hasChildren = !!item.children?.length;
214
+ const active = isMenuItemActive(item, activeKey);
215
+ const rowClass = cn3(
216
+ ROW_CLASS,
217
+ item.disabled ? "cursor-not-allowed opacity-50" : "cursor-pointer",
218
+ active ? cn3(textClass[color], bgSubtleClass[color], "font-medium") : cn3("text-mari-foreground", !item.disabled && "hover:bg-mari-surface-alt")
219
+ );
220
+ const content = /* @__PURE__ */ jsxs2(Fragment, { children: [
221
+ item.icon ? /* @__PURE__ */ jsx3("span", { "aria-hidden": "true", className: cn3("flex size-5 shrink-0 items-center justify-center [&_svg]:size-5", !active && "text-mari-muted"), children: item.icon }) : reserveIconSlot && /* @__PURE__ */ jsx3("span", { "aria-hidden": "true", className: "size-5 shrink-0" }),
222
+ /* @__PURE__ */ jsxs2("span", { className: "flex min-w-0 flex-1 flex-col", children: [
223
+ /* @__PURE__ */ jsxs2("span", { className: "flex min-w-0 items-center gap-1", children: [
224
+ /* @__PURE__ */ jsx3("span", { className: "truncate", children: item.title }),
225
+ /* @__PURE__ */ jsx3(NewTabHint, { target: item.target })
226
+ ] }),
227
+ item.description && /* @__PURE__ */ jsx3("span", { className: "line-clamp-1 text-xs text-mari-muted", children: item.description })
228
+ ] }),
229
+ hasChildren && /* @__PURE__ */ jsx3(ChevronRightIcon, { "aria-hidden": "true", size: 18, className: "shrink-0 text-mari-muted" })
230
+ ] });
231
+ const row = hasChildren ? /* @__PURE__ */ jsx3("button", { type: "button", "data-menu-key": item.key, disabled: item.disabled, onClick: () => onDrill(item), className: rowClass, children: content }) : /* @__PURE__ */ jsx3(MenuLink, { route: item.route, target: item.target, reloadDocument: item.reloadDocument, onNavigate, onSelect: () => onSelect(item), disabled: item.disabled, current: active, className: rowClass, children: content });
232
+ return /* @__PURE__ */ jsx3("li", { children: row }, item.key);
233
+ }) })
234
+ ] });
235
+ }
236
+
237
+ // src/menu/_shared/NavDrawer.tsx
238
+ import { jsx as jsx4, jsxs as jsxs3 } from "react/jsx-runtime";
239
+ var CLOSE_ANIMATION_MS = 250;
240
+ function NavDrawer({
241
+ id,
242
+ open,
243
+ onClose,
244
+ data,
245
+ color,
246
+ header,
247
+ emphasizedHeader = false,
248
+ side = "left",
249
+ activeKey,
250
+ onItemSelect,
251
+ onNavigate,
252
+ currentPath,
253
+ label = "Ana men\xFC",
254
+ className
255
+ }) {
256
+ const [trail, setTrail] = useState([]);
257
+ const panelRef = useRef(null);
258
+ const backRef = useRef(null);
259
+ const mounted = usePresence(open, CLOSE_ANIMATION_MS);
260
+ useModalBehavior(open, panelRef, onClose);
261
+ const returnKeyRef = useRef(null);
262
+ const generatedId = useId();
263
+ const panelId = id ?? generatedId;
264
+ const resolvedActiveKey = activeKey !== void 0 ? activeKey : findActiveKeyByRoute(data, currentPath);
265
+ useEffect(() => {
266
+ if (!mounted) setTrail([]);
267
+ }, [mounted]);
268
+ useEffect(() => {
269
+ if (!open) return;
270
+ const returnKey = returnKeyRef.current;
271
+ if (returnKey) {
272
+ returnKeyRef.current = null;
273
+ const rows = panelRef.current?.querySelectorAll("[data-menu-key]") ?? [];
274
+ Array.from(rows).find((row) => row.dataset.menuKey === returnKey)?.focus();
275
+ } else if (trail.length > 0) {
276
+ backRef.current?.focus();
277
+ }
278
+ panelRef.current?.querySelector("[data-nav-drawer-body]")?.scrollTo?.({ top: 0 });
279
+ }, [trail, open]);
280
+ const handleSelect = (item) => {
281
+ onItemSelect?.(item);
282
+ onClose();
283
+ };
284
+ const handleBack = () => {
285
+ returnKeyRef.current = trail[trail.length - 1]?.key ?? null;
286
+ setTrail((prev) => prev.slice(0, -1));
287
+ };
288
+ if (!mounted || typeof document === "undefined") return null;
289
+ const parent = trail[trail.length - 1];
290
+ const items = parent ? parent.children ?? [] : data;
291
+ const isLeft = side === "left";
292
+ const hiddenTranslate = isLeft ? "-translate-x-full" : "translate-x-full";
293
+ return createPortal(
294
+ /* @__PURE__ */ jsxs3("div", { className: cn4("fixed inset-0 z-mari-drawer", className, !open && "pointer-events-none"), children: [
295
+ /* @__PURE__ */ jsx4("div", { "aria-hidden": "true", onClick: onClose, className: cn4("absolute inset-0 bg-mari-scrim transition-opacity duration-250 starting:opacity-0", open ? "opacity-100" : "opacity-0") }),
296
+ /* @__PURE__ */ jsxs3(
297
+ "div",
298
+ {
299
+ ref: panelRef,
300
+ id: panelId,
301
+ role: "dialog",
302
+ "aria-modal": "true",
303
+ "aria-label": label,
304
+ className: cn4(
305
+ "absolute inset-y-0 flex w-[min(22rem,85vw)] flex-col border-mari-border bg-mari-surface text-mari-foreground shadow-mari-lg transition-transform duration-250 ease-out",
306
+ isLeft ? "left-0 border-r starting:-translate-x-full" : "right-0 border-l starting:translate-x-full",
307
+ open ? "translate-x-0" : hiddenTranslate
308
+ ),
309
+ children: [
310
+ /* @__PURE__ */ jsxs3(
311
+ "div",
312
+ {
313
+ className: cn4(
314
+ "flex min-h-14 shrink-0 items-center justify-between gap-3 px-4",
315
+ emphasizedHeader ? cn4(bgSolidClass[color], textSolidContrastClass[color]) : "border-b border-mari-border"
316
+ ),
317
+ children: [
318
+ /* @__PURE__ */ jsx4("div", { className: "min-w-0 flex-1 truncate", children: header }),
319
+ /* @__PURE__ */ jsx4(
320
+ "button",
321
+ {
322
+ type: "button",
323
+ "aria-label": "Men\xFCy\xFC kapat",
324
+ onClick: onClose,
325
+ className: cn4(
326
+ "-mr-2 inline-flex size-10 shrink-0 cursor-pointer items-center justify-center rounded-md transition-colors focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-mari-ring",
327
+ emphasizedHeader ? "hover:bg-current/15" : "text-mari-muted hover:bg-mari-surface-alt hover:text-mari-foreground"
328
+ ),
329
+ children: /* @__PURE__ */ jsx4(XIcon, { "aria-hidden": "true", size: 20 })
330
+ }
331
+ )
332
+ ]
333
+ }
334
+ ),
335
+ /* @__PURE__ */ jsxs3("div", { "data-nav-drawer-body": true, className: "flex-1 overflow-y-auto overscroll-contain", children: [
336
+ /* @__PURE__ */ jsx4(
337
+ MobileNavLevel,
338
+ {
339
+ items,
340
+ trail,
341
+ activeKey: resolvedActiveKey,
342
+ color,
343
+ backRef,
344
+ onDrill: (item) => setTrail((prev) => [...prev, item]),
345
+ onBack: handleBack,
346
+ onSelect: handleSelect,
347
+ onNavigate
348
+ },
349
+ parent?.key ?? "root"
350
+ ),
351
+ parent?.promoTiles && parent.promoTiles.length > 0 && /* @__PURE__ */ jsx4(MegaPanelPromoGrid, { tiles: parent.promoTiles, onNavigate, onTileClick: onClose, className: "w-full px-4 pb-6" })
352
+ ] })
353
+ ]
354
+ }
355
+ )
356
+ ] }),
357
+ document.body
358
+ );
359
+ }
360
+
361
+ // src/menu/_shared/responsive.ts
362
+ var MOBILE_BREAKPOINT_PX = {
363
+ md: 768,
364
+ lg: 1024,
365
+ xl: 1280
366
+ };
367
+ var DESKTOP_ONLY_CLASS = {
368
+ md: "hidden md:flex",
369
+ lg: "hidden lg:flex",
370
+ xl: "hidden xl:flex"
371
+ };
372
+ var MOBILE_ONLY_CLASS = {
373
+ md: "md:hidden",
374
+ lg: "lg:hidden",
375
+ xl: "xl:hidden"
376
+ };
377
+
378
+ // src/menu/_shared/MobileNav.tsx
379
+ import { Fragment as Fragment2, jsx as jsx5, jsxs as jsxs4 } from "react/jsx-runtime";
380
+ function MobileNav({ data, color, breakpoint, logo, activeKey, onItemSelect, onNavigate, currentPath, label }) {
381
+ const [open, setOpen] = useState2(false);
382
+ const panelId = useId2();
383
+ useEffect2(() => {
384
+ if (!open || typeof window.matchMedia !== "function") return;
385
+ const query = window.matchMedia(`(min-width: ${MOBILE_BREAKPOINT_PX[breakpoint]}px)`);
386
+ const handleChange = (event) => {
387
+ if (event.matches) setOpen(false);
388
+ };
389
+ query.addEventListener("change", handleChange);
390
+ return () => query.removeEventListener("change", handleChange);
391
+ }, [open, breakpoint]);
392
+ return /* @__PURE__ */ jsxs4(Fragment2, { children: [
393
+ /* @__PURE__ */ jsx5(
394
+ "button",
395
+ {
396
+ type: "button",
397
+ "aria-label": open ? "Men\xFCy\xFC kapat" : "Men\xFCy\xFC a\xE7",
398
+ "aria-expanded": open,
399
+ "aria-controls": open ? panelId : void 0,
400
+ onClick: () => setOpen((prev) => !prev),
401
+ className: cn5(
402
+ "-ml-2 inline-flex size-10 shrink-0 cursor-pointer items-center justify-center rounded-md text-mari-foreground transition-colors hover:bg-mari-surface-alt focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-mari-ring",
403
+ MOBILE_ONLY_CLASS[breakpoint]
404
+ ),
405
+ children: /* @__PURE__ */ jsx5(MenuIcon, { "aria-hidden": "true", size: 22 })
406
+ }
407
+ ),
408
+ /* @__PURE__ */ jsx5(
409
+ NavDrawer,
410
+ {
411
+ id: panelId,
412
+ open,
413
+ onClose: () => setOpen(false),
414
+ data,
415
+ color,
416
+ header: logo,
417
+ activeKey,
418
+ onItemSelect,
419
+ onNavigate,
420
+ currentPath,
421
+ label,
422
+ className: MOBILE_ONLY_CLASS[breakpoint]
423
+ }
424
+ )
425
+ ] });
426
+ }
427
+
428
+ // src/menu/_shared/NavBar.tsx
429
+ import { jsx as jsx6, jsxs as jsxs5 } from "react/jsx-runtime";
430
+ var placeholder = /* @__PURE__ */ jsx6("span", { className: cn6("block size-full min-h-[1lh] rounded-md", skeletonFill(true)) });
431
+ function NavBar({
432
+ data,
433
+ logo,
434
+ logoHref,
435
+ onLogoClick,
436
+ logoLabel = "Ana sayfa",
437
+ menuItemJustify = "left",
438
+ menuPosition = "default",
439
+ color,
440
+ onNavigate,
441
+ currentPath,
442
+ actions,
443
+ mobileBreakpoint = "lg",
444
+ skeleton = false,
445
+ "aria-label": ariaLabel = "Ana men\xFC",
446
+ activeKey,
447
+ onItemSelect,
448
+ renderItem,
449
+ barRef,
450
+ children
451
+ }) {
452
+ let logoNode = null;
453
+ if (logo && logoHref) {
454
+ logoNode = /* @__PURE__ */ jsxs5(MenuLink, { route: logoHref, onNavigate, className: "shrink-0 rounded-md focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-mari-ring", children: [
455
+ /* @__PURE__ */ jsx6("span", { className: "sr-only", children: logoLabel }),
456
+ /* @__PURE__ */ jsx6("span", { "aria-hidden": "true", children: logo })
457
+ ] });
458
+ } else if (logo && onLogoClick) {
459
+ logoNode = /* @__PURE__ */ jsx6("button", { type: "button", "aria-label": logoLabel, className: "shrink-0 cursor-pointer rounded-md focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-mari-ring", onClick: onLogoClick, children: logo });
460
+ } else if (logo) {
461
+ logoNode = /* @__PURE__ */ jsx6("div", { className: "shrink-0", children: logo });
462
+ }
463
+ return /* @__PURE__ */ jsxs5("div", { className: cn6(getMenuPosition(menuPosition), menuPosition !== "default" && "z-mari-sticky"), children: [
464
+ /* @__PURE__ */ jsxs5(
465
+ "div",
466
+ {
467
+ ref: barRef,
468
+ "aria-busy": skeleton || void 0,
469
+ className: "flex flex-row items-center justify-between gap-4 border-b border-mari-border bg-mari-surface px-4 py-3 shadow-mari-sm",
470
+ children: [
471
+ /* @__PURE__ */ jsxs5("div", { className: "flex min-w-0 shrink-0 items-center gap-2", children: [
472
+ /* @__PURE__ */ jsx6(SkeletonSlot, { on: skeleton, placeholder, className: MOBILE_ONLY_CLASS[mobileBreakpoint], children: /* @__PURE__ */ jsx6(
473
+ MobileNav,
474
+ {
475
+ data,
476
+ color,
477
+ breakpoint: mobileBreakpoint,
478
+ logo,
479
+ activeKey,
480
+ onItemSelect,
481
+ onNavigate,
482
+ currentPath
483
+ }
484
+ ) }),
485
+ logoNode && /* @__PURE__ */ jsx6(SkeletonSlot, { on: skeleton, placeholder, className: "shrink-0", children: logoNode })
486
+ ] }),
487
+ /* @__PURE__ */ jsx6("nav", { "aria-label": ariaLabel, className: cn6("min-w-0 flex-1", DESKTOP_ONLY_CLASS[mobileBreakpoint]), children: /* @__PURE__ */ jsx6("ul", { className: cn6("flex w-full flex-row items-center gap-1 xl:gap-4", getMenuItemJustify(menuItemJustify)), children: data.map((item) => /* @__PURE__ */ jsx6("li", { className: "flex", children: /* @__PURE__ */ jsx6(SkeletonSlot, { on: skeleton, placeholder, children: renderItem(item) }) }, item.key)) }) }),
488
+ actions && /* @__PURE__ */ jsx6(SkeletonSlot, { on: skeleton, placeholder, flow: "flex", className: "shrink-0", children: /* @__PURE__ */ jsx6("div", { className: "flex shrink-0 flex-row items-center gap-3", children: actions }) })
489
+ ]
490
+ }
491
+ ),
492
+ children
493
+ ] });
494
+ }
495
+
496
+ // src/menu/basic-menu/_components/BasicMenuItem.tsx
497
+ import { cn as cn7 } from "@mari-ui/core";
498
+ import { jsx as jsx7, jsxs as jsxs6 } from "react/jsx-runtime";
499
+ function BasicMenuItem({ item, activeKey, setActiveKey, color, onNavigate, className }) {
500
+ return /* @__PURE__ */ jsxs6(
501
+ MenuLink,
502
+ {
503
+ route: item.route,
504
+ onNavigate,
505
+ disabled: item.disabled,
506
+ target: item.target,
507
+ reloadDocument: item.reloadDocument,
508
+ current: item.key === activeKey,
509
+ onSelect: () => setActiveKey(item.key),
510
+ className: cn7(
511
+ "relative inline-flex items-center gap-2 rounded-md px-3 py-2 text-sm focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-mari-ring",
512
+ touchTargetClass.md,
513
+ item.disabled ? "cursor-not-allowed opacity-50" : cn7("cursor-pointer", getItemClass(item, activeKey, color)),
514
+ className
515
+ ),
516
+ children: [
517
+ item.icon,
518
+ item.title,
519
+ /* @__PURE__ */ jsx7(NewTabHint, { target: item.target })
520
+ ]
521
+ }
522
+ );
523
+ }
524
+
525
+ // src/menu/basic-menu/_components/DropdownSubMenu.tsx
526
+ import { ChevronDownIcon, ChevronRightIcon as ChevronRightIcon2 } from "lucide-react";
527
+ import { cn as cn9 } from "@mari-ui/core";
528
+
529
+ // src/menu/basic-menu/_components/SubMenuRow.tsx
530
+ import { cn as cn8 } from "@mari-ui/core";
531
+ import { Fragment as Fragment3, jsx as jsx8, jsxs as jsxs7 } from "react/jsx-runtime";
532
+ var TILE_HOVER_CLASS = {
533
+ primary: "group-hover/row:bg-mari-primary-subtle group-hover/row:text-mari-primary",
534
+ accent: "group-hover/row:bg-mari-accent-subtle group-hover/row:text-mari-accent",
535
+ success: "group-hover/row:bg-mari-success-subtle group-hover/row:text-mari-success",
536
+ error: "group-hover/row:bg-mari-error-subtle group-hover/row:text-mari-error",
537
+ warning: "group-hover/row:bg-mari-warning-subtle group-hover/row:text-mari-warning",
538
+ info: "group-hover/row:bg-mari-info-subtle group-hover/row:text-mari-info",
539
+ neutral: "group-hover/row:bg-mari-neutral-subtle group-hover/row:text-mari-neutral"
540
+ };
541
+ var TILE_ACTIVE_CLASS = {
542
+ primary: "bg-mari-primary-subtle text-mari-primary",
543
+ accent: "bg-mari-accent-subtle text-mari-accent",
544
+ success: "bg-mari-success-subtle text-mari-success",
545
+ error: "bg-mari-error-subtle text-mari-error",
546
+ warning: "bg-mari-warning-subtle text-mari-warning",
547
+ info: "bg-mari-info-subtle text-mari-info",
548
+ neutral: "bg-mari-neutral-subtle text-mari-neutral"
549
+ };
550
+ var TITLE_HOVER_CLASS = {
551
+ primary: "group-hover/row:text-mari-primary",
552
+ accent: "group-hover/row:text-mari-accent",
553
+ success: "group-hover/row:text-mari-success",
554
+ error: "group-hover/row:text-mari-error",
555
+ warning: "group-hover/row:text-mari-warning",
556
+ info: "group-hover/row:text-mari-info",
557
+ neutral: "group-hover/row:text-mari-neutral"
558
+ };
559
+ var TITLE_ACTIVE_CLASS = {
560
+ primary: "text-mari-primary",
561
+ accent: "text-mari-accent",
562
+ success: "text-mari-success",
563
+ error: "text-mari-error",
564
+ warning: "text-mari-warning",
565
+ info: "text-mari-info",
566
+ neutral: "text-mari-neutral"
567
+ };
568
+ function getSubMenuRowClass(item) {
569
+ return cn8(
570
+ "group/row flex w-full gap-3 rounded-lg p-2.5 text-start transition-colors duration-150",
571
+ "focus-visible:outline-2 focus-visible:-outline-offset-2 focus-visible:outline-mari-ring",
572
+ item.description ? "items-start" : "items-center",
573
+ item.disabled ? "cursor-not-allowed opacity-50" : "cursor-pointer hover:bg-mari-surface-alt"
574
+ );
575
+ }
576
+ function SubMenuRowContent({ item, active, color, trailing }) {
577
+ const interactive = !item.disabled;
578
+ return /* @__PURE__ */ jsxs7(Fragment3, { children: [
579
+ item.icon && /* @__PURE__ */ jsx8(
580
+ "span",
581
+ {
582
+ "aria-hidden": "true",
583
+ className: cn8(
584
+ "flex size-9 shrink-0 items-center justify-center rounded-lg transition-colors duration-150 [&_svg]:size-[1.125rem]",
585
+ active ? TILE_ACTIVE_CLASS[color] : cn8("bg-mari-surface-alt text-mari-muted", interactive && TILE_HOVER_CLASS[color])
586
+ ),
587
+ children: item.icon
588
+ }
589
+ ),
590
+ /* @__PURE__ */ jsxs7("span", { className: "flex min-w-0 flex-1 flex-col gap-0.5", children: [
591
+ /* @__PURE__ */ jsxs7("span", { className: cn8("inline-flex items-center gap-1 text-sm font-medium transition-colors duration-150", active ? TITLE_ACTIVE_CLASS[color] : cn8("text-mari-foreground", interactive && TITLE_HOVER_CLASS[color])), children: [
592
+ item.title,
593
+ /* @__PURE__ */ jsx8(NewTabHint, { target: item.target })
594
+ ] }),
595
+ item.description && /* @__PURE__ */ jsx8("span", { className: "line-clamp-2 text-xs leading-snug text-mari-muted", children: item.description })
596
+ ] }),
597
+ trailing
598
+ ] });
599
+ }
600
+
601
+ // src/menu/basic-menu/_components/DropdownSubMenu.tsx
602
+ import { Fragment as Fragment4, jsx as jsx9, jsxs as jsxs8 } from "react/jsx-runtime";
603
+ var NAVBAR_OFFSET_PX = 12;
604
+ var TWO_COLUMN_THRESHOLD = 4;
605
+ function LeafRow({ item, activeKey, setActiveKey, color, onNavigate, onAfterSelect }) {
606
+ return /* @__PURE__ */ jsx9(
607
+ MenuLink,
608
+ {
609
+ route: item.route,
610
+ onNavigate,
611
+ disabled: item.disabled,
612
+ target: item.target,
613
+ reloadDocument: item.reloadDocument,
614
+ current: item.key === activeKey,
615
+ className: getSubMenuRowClass(item),
616
+ onSelect: () => {
617
+ setActiveKey(item.key);
618
+ onAfterSelect?.();
619
+ },
620
+ children: /* @__PURE__ */ jsx9(SubMenuRowContent, { item, active: isMenuItemActive(item, activeKey), color })
621
+ }
622
+ );
623
+ }
624
+ function FlyoutRow(props) {
625
+ const { item, activeKey, color } = props;
626
+ return /* @__PURE__ */ jsxs8(Dropdown, { hover: true, className: "block self-auto", children: [
627
+ /* @__PURE__ */ jsx9(DropdownTrigger, { className: getSubMenuRowClass(item), children: /* @__PURE__ */ jsx9(SubMenuRowContent, { item, active: isMenuItemActive(item, activeKey), color, trailing: /* @__PURE__ */ jsx9(ChevronRightIcon2, { "aria-hidden": "true", size: 16, className: "mt-0.5 shrink-0 self-center text-mari-muted" }) }) }),
628
+ /* @__PURE__ */ jsx9(DropdownContent, { placement: "right-start", offset: 6, className: "w-72 rounded-xl p-2", children: /* @__PURE__ */ jsx9(RowList, { ...props, items: item.children ?? [] }) })
629
+ ] });
630
+ }
631
+ function RowList({ items, ...rest }) {
632
+ return /* @__PURE__ */ jsx9(Fragment4, { children: items.map((child) => child.children?.length ? /* @__PURE__ */ jsx9(FlyoutRow, { ...rest, item: child }, child.key) : /* @__PURE__ */ jsx9(LeafRow, { ...rest, item: child }, child.key)) });
633
+ }
634
+ function isGrouped(items) {
635
+ return items.length > 0 && items.every((child) => child.children && child.children.length > 0);
636
+ }
637
+ function getSubMenuPanelWidthClass(items) {
638
+ if (isGrouped(items)) return "w-max";
639
+ return items.length > TWO_COLUMN_THRESHOLD ? "w-[36rem]" : "w-80";
640
+ }
641
+ function SubMenuPanelBody({ items, ...rowProps }) {
642
+ if (isGrouped(items)) {
643
+ return (
644
+ // `flex-wrap`: grup sayısı viewport'a sığmıyorsa (panel `max-w`ye takılır) gruplar alt satıra iner.
645
+ /* @__PURE__ */ jsx9("div", { className: "flex flex-wrap gap-2", children: items.map((group) => /* @__PURE__ */ jsxs8("div", { className: "flex w-64 flex-col", children: [
646
+ /* @__PURE__ */ jsx9("div", { className: "px-2.5 pt-1.5 pb-1 text-xs font-semibold uppercase tracking-wide text-mari-muted", children: group.title }),
647
+ /* @__PURE__ */ jsx9(RowList, { ...rowProps, items: group.children?.length ? group.children : [group] })
648
+ ] }, group.key)) })
649
+ );
650
+ }
651
+ return /* @__PURE__ */ jsx9("div", { className: cn9(items.length > TWO_COLUMN_THRESHOLD && "grid grid-cols-2"), children: /* @__PURE__ */ jsx9(RowList, { ...rowProps, items }) });
652
+ }
653
+ function DropdownPanelBody(props) {
654
+ const { setVisible } = useDropdown();
655
+ return /* @__PURE__ */ jsx9(SubMenuPanelBody, { ...props, onAfterSelect: () => setVisible(false) });
656
+ }
657
+ function DropdownSubMenu({ item, activeKey, setActiveKey, color, onNavigate, currentPath }) {
658
+ if (!item.children) {
659
+ return /* @__PURE__ */ jsx9(BasicMenuItem, { item, activeKey, setActiveKey, color, onNavigate });
660
+ }
661
+ const children = item.children;
662
+ const rowProps = { activeKey, setActiveKey, color, onNavigate, currentPath };
663
+ return /* @__PURE__ */ jsxs8(Dropdown, { hover: true, children: [
664
+ /* @__PURE__ */ jsxs8(
665
+ DropdownTrigger,
666
+ {
667
+ className: cn9(
668
+ "group inline-flex items-center gap-2 rounded-md px-3 py-2 text-sm focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-mari-ring",
669
+ touchTargetClass.md,
670
+ getItemClass(item, activeKey, color)
671
+ ),
672
+ children: [
673
+ item.icon,
674
+ item.title,
675
+ /* @__PURE__ */ jsx9(ChevronDownIcon, { "aria-hidden": "true", size: 14, className: "opacity-60 transition-transform duration-200 group-aria-expanded:rotate-180" })
676
+ ]
677
+ }
678
+ ),
679
+ /* @__PURE__ */ jsx9(DropdownContent, { placement: "bottom-start", offset: NAVBAR_OFFSET_PX, className: cn9("max-w-[calc(100vw-2rem)] rounded-xl p-2", getSubMenuPanelWidthClass(children)), children: /* @__PURE__ */ jsx9(DropdownPanelBody, { ...rowProps, items: children }) })
680
+ ] });
681
+ }
682
+
683
+ // src/menu/basic-menu/BasicMenu.tsx
684
+ import { jsx as jsx10 } from "react/jsx-runtime";
685
+ function BasicMenu({ data, color = "primary", currentPath, onNavigate, ...barProps }) {
686
+ const [activeKey, setActiveKey] = useState3(null);
687
+ useEffect3(() => {
688
+ setActiveKey(findActiveKeyByRoute(data, currentPath));
689
+ }, [data, currentPath]);
690
+ return /* @__PURE__ */ jsx10(
691
+ NavBar,
692
+ {
693
+ ...barProps,
694
+ data,
695
+ color,
696
+ currentPath,
697
+ onNavigate,
698
+ activeKey,
699
+ onItemSelect: (item) => setActiveKey(item.key),
700
+ renderItem: (item) => item.children ? /* @__PURE__ */ jsx10(DropdownSubMenu, { item, activeKey, setActiveKey, color, onNavigate, currentPath }) : /* @__PURE__ */ jsx10(BasicMenuItem, { item, activeKey, setActiveKey, color, onNavigate })
701
+ }
702
+ );
703
+ }
704
+
705
+ // src/menu/mega-menu/MegaMenu.tsx
706
+ import { useCallback, useEffect as useEffect4, useId as useId3, useRef as useRef3, useState as useState6 } from "react";
707
+ import { createPortal as createPortal2 } from "react-dom";
708
+ import { cn as cn14 } from "@mari-ui/core";
709
+
710
+ // src/menu/_shared/MegaPanel.tsx
711
+ import { useState as useState5 } from "react";
712
+ import { cn as cn12 } from "@mari-ui/core";
713
+
714
+ // src/menu/_shared/_components/MegaPanelColumn.tsx
715
+ import { useState as useState4 } from "react";
716
+ import { ChevronDownIcon as ChevronDownIcon2, ChevronRightIcon as ChevronRightIcon3 } from "lucide-react";
717
+ import { cn as cn10 } from "@mari-ui/core";
718
+ import { jsx as jsx11, jsxs as jsxs9 } from "react/jsx-runtime";
719
+ var VISIBLE_LEAF_COUNT = 6;
720
+ function MegaPanelColumn({ group, color, onNavigate, onItemClick, activeKey = null }) {
721
+ const leaves = group.children ?? [];
722
+ const [expanded, setExpanded] = useState4(() => leaves.slice(VISIBLE_LEAF_COUNT).some((leaf) => leaf.key === activeKey));
723
+ const visibleLeaves = expanded ? leaves : leaves.slice(0, VISIBLE_LEAF_COUNT);
724
+ const hasMore = leaves.length > VISIBLE_LEAF_COUNT;
725
+ return /* @__PURE__ */ jsxs9("div", { className: "mb-6 flex break-inside-avoid flex-col items-start gap-1.5", children: [
726
+ group.route ? /* @__PURE__ */ jsxs9(
727
+ MenuLink,
728
+ {
729
+ route: group.route,
730
+ target: group.target,
731
+ reloadDocument: group.reloadDocument,
732
+ onNavigate,
733
+ current: group.key === activeKey,
734
+ onSelect: () => onItemClick?.(group),
735
+ className: cn10("group/head flex cursor-pointer items-center gap-1 rounded-sm text-start text-sm font-semibold transition-colors focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-mari-ring", textClass[color]),
736
+ children: [
737
+ group.title,
738
+ /* @__PURE__ */ jsx11(NewTabHint, { target: group.target }),
739
+ /* @__PURE__ */ jsx11(ChevronRightIcon3, { "aria-hidden": "true", size: 14, className: "transition-transform duration-150 group-hover/head:translate-x-0.5" })
740
+ ]
741
+ }
742
+ ) : /* @__PURE__ */ jsx11("div", { className: cn10("text-sm font-semibold", textClass[color]), children: group.title }),
743
+ visibleLeaves.map((leaf) => /* @__PURE__ */ jsxs9(
744
+ MenuLink,
745
+ {
746
+ route: leaf.route,
747
+ target: leaf.target,
748
+ reloadDocument: leaf.reloadDocument,
749
+ onNavigate,
750
+ disabled: leaf.disabled,
751
+ current: leaf.key === activeKey,
752
+ onSelect: () => onItemClick?.(leaf),
753
+ className: cn10(
754
+ "inline-flex items-center gap-1 rounded-sm text-start text-sm leading-6 transition-colors duration-150 focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-mari-ring",
755
+ leaf.disabled && "cursor-not-allowed text-mari-muted opacity-50",
756
+ !leaf.disabled && leaf.key === activeKey && cn10("cursor-pointer font-medium", textClass[color]),
757
+ !leaf.disabled && leaf.key !== activeKey && cn10("cursor-pointer text-mari-foreground/75", textHoverClass[color])
758
+ ),
759
+ children: [
760
+ leaf.title,
761
+ /* @__PURE__ */ jsx11(NewTabHint, { target: leaf.target })
762
+ ]
763
+ },
764
+ leaf.key
765
+ )),
766
+ hasMore && /* @__PURE__ */ jsxs9("button", { type: "button", "aria-expanded": expanded, onClick: () => setExpanded((prev) => !prev), className: "mt-0.5 flex cursor-pointer items-center gap-1 whitespace-nowrap text-sm font-medium text-mari-foreground underline underline-offset-4 transition-colors hover:text-mari-muted", children: [
767
+ expanded ? "Daha Az G\xF6ster" : "Daha Fazla G\xF6r",
768
+ /* @__PURE__ */ jsx11(ChevronDownIcon2, { "aria-hidden": "true", size: 14, className: cn10("transition-transform duration-200", expanded && "rotate-180") })
769
+ ] })
770
+ ] });
771
+ }
772
+
773
+ // src/menu/_shared/_components/MegaPanelRail.tsx
774
+ import { ChevronRightIcon as ChevronRightIcon4 } from "lucide-react";
775
+ import { cn as cn11 } from "@mari-ui/core";
776
+ import { jsx as jsx12, jsxs as jsxs10 } from "react/jsx-runtime";
777
+ var INDICATOR_COLOR_CLASS2 = {
778
+ primary: "before:bg-mari-primary",
779
+ accent: "before:bg-mari-accent",
780
+ success: "before:bg-mari-success",
781
+ error: "before:bg-mari-error",
782
+ warning: "before:bg-mari-warning",
783
+ info: "before:bg-mari-info",
784
+ neutral: "before:bg-mari-neutral"
785
+ };
786
+ function MegaPanelRail({ items, selectedKey, onSelect, color, orientation, onNavigate, onItemClick, activeKey = null }) {
787
+ if (items.length === 0) return null;
788
+ const horizontal = orientation === "horizontal";
789
+ return /* @__PURE__ */ jsx12("ul", { className: cn11("flex shrink-0", horizontal ? "w-52 flex-col xl:w-60 gap-0.5 border-r border-mari-border pr-3" : "flex-row flex-wrap gap-1 border-b border-mari-border pb-2"), children: items.map((item) => {
790
+ const selected = item.key === selectedKey;
791
+ const indicatorClass = selected ? INDICATOR_COLOR_CLASS2[color] : "before:bg-transparent";
792
+ return /* @__PURE__ */ jsx12("li", { children: /* @__PURE__ */ jsxs10(
793
+ MenuLink,
794
+ {
795
+ route: item.route,
796
+ target: item.target,
797
+ reloadDocument: item.reloadDocument,
798
+ onNavigate,
799
+ disabled: item.disabled,
800
+ current: item.key === activeKey,
801
+ "data-selected": selected || void 0,
802
+ onMouseEnter: () => !item.disabled && onSelect(item.key),
803
+ onFocus: () => !item.disabled && onSelect(item.key),
804
+ onSelect: () => {
805
+ if (item.disabled) return;
806
+ onSelect(item.key);
807
+ if (item.route) onItemClick?.(item);
808
+ },
809
+ className: cn11(
810
+ "relative flex w-full items-center gap-2 rounded-md py-2 text-start text-sm transition-colors duration-150",
811
+ horizontal ? cn11(
812
+ "pr-2 pl-3",
813
+ // Düz (yuvarlatılmamış) sol şerit — sadece seçiliyken görünür.
814
+ "before:absolute before:inset-y-0 before:left-0 before:w-0.5 before:content-['']",
815
+ indicatorClass
816
+ ) : "px-3",
817
+ item.disabled && "cursor-not-allowed opacity-50",
818
+ !item.disabled && "cursor-pointer",
819
+ selected || isMenuItemActive(item, activeKey) ? cn11(textClass[color], "font-medium") : "font-normal text-mari-foreground/80",
820
+ selected ? "bg-mari-surface-alt" : "hover:bg-mari-surface-alt"
821
+ ),
822
+ children: [
823
+ item.icon,
824
+ /* @__PURE__ */ jsx12("span", { className: "flex-1 truncate", children: item.title }),
825
+ /* @__PURE__ */ jsx12(NewTabHint, { target: item.target }),
826
+ horizontal && item.children && item.children.length > 0 && /* @__PURE__ */ jsx12(ChevronRightIcon4, { "aria-hidden": "true", size: 16, className: cn11("shrink-0 transition-colors", selected ? textClass[color] : "text-mari-muted") })
827
+ ]
828
+ }
829
+ ) }, item.key);
830
+ }) });
831
+ }
832
+
833
+ // src/menu/_shared/MegaPanel.tsx
834
+ import { jsx as jsx13, jsxs as jsxs11 } from "react/jsx-runtime";
835
+ function MegaPanel({ items, color, layout, orientation = "horizontal", onNavigate, onItemClick, activeKey = null, className }) {
836
+ const [selectedKey, setSelectedKey] = useState5(() => items.find((item) => isMenuItemActive(item, activeKey))?.key ?? items[0]?.key ?? null);
837
+ const selected = items.find((item) => item.key === selectedKey) ?? items[0];
838
+ if (!selected) return null;
839
+ const columns = selected.children ?? [];
840
+ const visibleColumns = columns;
841
+ const promoTiles = layout === "full" ? selected.promoTiles : void 0;
842
+ const hasContent = visibleColumns.length > 0 || !!promoTiles?.length;
843
+ let columnsClass = "columns-2 gap-8 xl:columns-3";
844
+ if (orientation === "vertical") columnsClass = "columns-1";
845
+ else if (layout === "compact") columnsClass = "columns-2 gap-8";
846
+ return /* @__PURE__ */ jsxs11("div", { className: cn12("flex gap-6", orientation === "vertical" ? "flex-col" : "flex-row", className), children: [
847
+ /* @__PURE__ */ jsx13(MegaPanelRail, { items, selectedKey: selected.key, onSelect: setSelectedKey, color, orientation, onNavigate, onItemClick, activeKey }),
848
+ hasContent && /* @__PURE__ */ jsxs11("div", { className: cn12("flex min-w-0 flex-1", orientation === "vertical" ? "flex-col gap-4" : "gap-8"), children: [
849
+ visibleColumns.length > 0 && // Gruplar TEK TEK kolon değil, çok kolonlu bir metin akışına giriyor:
850
+ // referans menülerdeki gibi kısa gruplar aynı kolonda alt alta
851
+ // dizilir, kolonlar eşit dolar (`break-inside-avoid` bir grubu
852
+ // ikiye bölmeyi engeller). Sabit `grid-cols-N` bunu yapamaz.
853
+ /* @__PURE__ */ jsx13("div", { className: cn12("min-w-0 flex-1", columnsClass), children: visibleColumns.map((group) => /* @__PURE__ */ jsx13(MegaPanelColumn, { group, color, onNavigate, onItemClick, activeKey }, group.key)) }),
854
+ promoTiles && promoTiles.length > 0 && /* @__PURE__ */ jsx13(MegaPanelPromoGrid, { tiles: promoTiles, onNavigate, onTileClick: () => onItemClick?.(selected), className: "hidden xl:grid" })
855
+ ] })
856
+ ] });
857
+ }
858
+
859
+ // src/menu/mega-menu/_components/MegaMenuItem.tsx
860
+ import { useRef as useRef2 } from "react";
861
+ import { ChevronDownIcon as ChevronDownIcon3 } from "lucide-react";
862
+ import { cn as cn13 } from "@mari-ui/core";
863
+ import { jsx as jsx14, jsxs as jsxs12 } from "react/jsx-runtime";
864
+ function MegaMenuItem({ item, open, activeKey, panelId, onHover, onLeave, onToggle, color, onNavigate, className }) {
865
+ const hasChildren = !!item.children?.length;
866
+ const pointerTypeRef = useRef2("mouse");
867
+ const highlightKey = open || isMenuItemActive(item, activeKey) ? item.key : null;
868
+ const baseClass = cn13(
869
+ "relative inline-flex items-center gap-2 rounded-md px-3 py-2 text-sm focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-mari-ring",
870
+ touchTargetClass.md,
871
+ item.disabled ? "cursor-not-allowed opacity-50" : cn13("cursor-pointer", getItemClass(item, highlightKey, color)),
872
+ className
873
+ );
874
+ return /* @__PURE__ */ jsx14("div", { className: "flex h-full items-center", onMouseEnter: item.disabled ? void 0 : onHover, onMouseLeave: onLeave, children: hasChildren ? /* @__PURE__ */ jsxs12(
875
+ "button",
876
+ {
877
+ type: "button",
878
+ "data-mega-key": item.key,
879
+ disabled: item.disabled,
880
+ "aria-expanded": open,
881
+ "aria-controls": open ? panelId : void 0,
882
+ onPointerDown: (event) => {
883
+ pointerTypeRef.current = event.pointerType;
884
+ },
885
+ onClick: (event) => {
886
+ if (event.detail === 0) onToggle("key");
887
+ else onToggle(pointerTypeRef.current === "mouse" ? "mouse" : "touch");
888
+ },
889
+ onKeyDown: (event) => {
890
+ if (event.key !== "ArrowDown") return;
891
+ event.preventDefault();
892
+ onToggle("arrow");
893
+ },
894
+ className: cn13("group", baseClass),
895
+ children: [
896
+ item.icon,
897
+ item.title,
898
+ /* @__PURE__ */ jsx14(ChevronDownIcon3, { "aria-hidden": "true", size: 14, className: "opacity-60 transition-transform duration-200 group-aria-expanded:rotate-180" })
899
+ ]
900
+ }
901
+ ) : /* @__PURE__ */ jsxs12(
902
+ MenuLink,
903
+ {
904
+ route: item.route,
905
+ target: item.target,
906
+ reloadDocument: item.reloadDocument,
907
+ onNavigate,
908
+ disabled: item.disabled,
909
+ current: item.key === activeKey,
910
+ className: baseClass,
911
+ children: [
912
+ item.icon,
913
+ item.title,
914
+ /* @__PURE__ */ jsx14(NewTabHint, { target: item.target })
915
+ ]
916
+ }
917
+ ) });
918
+ }
919
+
920
+ // src/menu/mega-menu/MegaMenu.tsx
921
+ import { jsx as jsx15 } from "react/jsx-runtime";
922
+ var HOVER_CLOSE_DELAY_MS = 200;
923
+ var VIEWPORT_EDGE_PX = 8;
924
+ function handlePanelKey(event, panel, bar, trigger, close) {
925
+ const active = document.activeElement;
926
+ const typing = active instanceof HTMLInputElement || active instanceof HTMLTextAreaElement;
927
+ const focusable = getFocusable(panel);
928
+ if (!typing && !event.metaKey && !event.ctrlKey && !event.altKey) {
929
+ const target = getRovingTarget(focusable, active, event.key);
930
+ if (target) {
931
+ event.preventDefault();
932
+ target.focus();
933
+ return;
934
+ }
935
+ }
936
+ if (event.key !== "Tab") return;
937
+ const leavingForward = !event.shiftKey && active === (focusable.at(-1) ?? null);
938
+ const leavingBackward = event.shiftKey && active === (focusable[0] ?? null);
939
+ if (!leavingForward && !leavingBackward) return;
940
+ event.preventDefault();
941
+ close();
942
+ if (leavingBackward || !trigger) {
943
+ trigger?.focus();
944
+ return;
945
+ }
946
+ const barFocusable = getFocusable(bar);
947
+ (barFocusable[barFocusable.indexOf(trigger) + 1] ?? trigger).focus();
948
+ }
949
+ function MegaMenu({ data, color = "primary", currentPath, onNavigate, menuItemJustify = "center", ...barProps }) {
950
+ const [openKey, setOpenKey] = useState6(null);
951
+ const [shownKey, setShownKey] = useState6(null);
952
+ const [activeKey, setActiveKey] = useState6(null);
953
+ const [panelBox, setPanelBox] = useState6(null);
954
+ const closeTimerRef = useRef3(null);
955
+ const barRef = useRef3(null);
956
+ const panelRef = useRef3(null);
957
+ const focusPanelOnOpenRef = useRef3(false);
958
+ const panelId = useId3();
959
+ const visible = openKey !== null;
960
+ const shownItem = data.find((item) => item.key === shownKey);
961
+ useEffect4(() => {
962
+ setActiveKey(findActiveKeyByRoute(data, currentPath));
963
+ }, [data, currentPath]);
964
+ const cancelClose = useCallback(() => {
965
+ if (closeTimerRef.current) {
966
+ clearTimeout(closeTimerRef.current);
967
+ closeTimerRef.current = null;
968
+ }
969
+ }, []);
970
+ const close = useCallback(() => {
971
+ cancelClose();
972
+ setOpenKey(null);
973
+ }, [cancelClose]);
974
+ const scheduleClose = useCallback(() => {
975
+ cancelClose();
976
+ closeTimerRef.current = setTimeout(() => {
977
+ if (panelRef.current?.contains(document.activeElement)) return;
978
+ setOpenKey(null);
979
+ }, HOVER_CLOSE_DELAY_MS);
980
+ }, [cancelClose]);
981
+ const open = useCallback(
982
+ (key) => {
983
+ cancelClose();
984
+ setOpenKey(key);
985
+ setShownKey(key);
986
+ },
987
+ [cancelClose]
988
+ );
989
+ const triggerFor = (key) => key ? barRef.current?.querySelector(`[data-mega-key="${CSS.escape(key)}"]`) : null;
990
+ useEffect4(() => cancelClose, [cancelClose]);
991
+ useEffect4(() => {
992
+ if (!visible) return;
993
+ let frameId;
994
+ const update = () => {
995
+ const bar = barRef.current;
996
+ if (bar) {
997
+ const rect = bar.getBoundingClientRect();
998
+ setPanelBox(
999
+ (prev) => prev && prev.top === rect.bottom && prev.left === rect.left && prev.width === rect.width ? prev : { top: rect.bottom, left: rect.left, width: rect.width }
1000
+ );
1001
+ }
1002
+ frameId = requestAnimationFrame(update);
1003
+ };
1004
+ frameId = requestAnimationFrame(update);
1005
+ return () => cancelAnimationFrame(frameId);
1006
+ }, [visible]);
1007
+ useEffect4(() => {
1008
+ if (!visible || !panelBox || !focusPanelOnOpenRef.current) return;
1009
+ focusPanelOnOpenRef.current = false;
1010
+ const panel = panelRef.current;
1011
+ (panel?.querySelector("[data-selected]") ?? getFocusable(panel)[0])?.focus();
1012
+ }, [visible, panelBox, openKey]);
1013
+ useEffect4(() => {
1014
+ if (!visible) return;
1015
+ const inMenu = (node) => !!node && (!!barRef.current?.contains(node) || !!panelRef.current?.contains(node));
1016
+ const handleKeyDown = (event) => {
1017
+ const panel = panelRef.current;
1018
+ const trigger = triggerFor(openKey);
1019
+ const focusInPanel = !!panel && panel.contains(document.activeElement);
1020
+ if (event.key === "Escape") {
1021
+ close();
1022
+ if (focusInPanel || document.activeElement === (trigger ?? null)) trigger?.focus();
1023
+ return;
1024
+ }
1025
+ if (!focusInPanel || !panel) return;
1026
+ handlePanelKey(event, panel, barRef.current, trigger ?? null, close);
1027
+ };
1028
+ const handlePointerDown = (event) => {
1029
+ if (!inMenu(event.target)) close();
1030
+ };
1031
+ const handleFocusIn = (event) => {
1032
+ const target = event.target;
1033
+ if (panelRef.current?.contains(target) || triggerFor(openKey)?.contains(target)) return;
1034
+ close();
1035
+ };
1036
+ document.addEventListener("keydown", handleKeyDown);
1037
+ document.addEventListener("mousedown", handlePointerDown);
1038
+ document.addEventListener("focusin", handleFocusIn);
1039
+ return () => {
1040
+ document.removeEventListener("keydown", handleKeyDown);
1041
+ document.removeEventListener("mousedown", handlePointerDown);
1042
+ document.removeEventListener("focusin", handleFocusIn);
1043
+ };
1044
+ }, [visible, openKey, close]);
1045
+ return /* @__PURE__ */ jsx15(
1046
+ NavBar,
1047
+ {
1048
+ ...barProps,
1049
+ data,
1050
+ color,
1051
+ currentPath,
1052
+ onNavigate,
1053
+ menuItemJustify,
1054
+ activeKey,
1055
+ onItemSelect: (item) => setActiveKey(item.key),
1056
+ barRef,
1057
+ renderItem: (item) => /* @__PURE__ */ jsx15(
1058
+ MegaMenuItem,
1059
+ {
1060
+ item,
1061
+ open: openKey === item.key,
1062
+ activeKey,
1063
+ panelId,
1064
+ color,
1065
+ onNavigate,
1066
+ onHover: () => item.children?.length ? open(item.key) : close(),
1067
+ onLeave: scheduleClose,
1068
+ onToggle: (source) => {
1069
+ const isOpen = openKey === item.key;
1070
+ if (isOpen && (source === "key" || source === "touch")) {
1071
+ close();
1072
+ return;
1073
+ }
1074
+ focusPanelOnOpenRef.current = source === "key" || source === "arrow";
1075
+ open(item.key);
1076
+ }
1077
+ }
1078
+ ),
1079
+ children: shownItem?.children && panelBox && typeof document !== "undefined" && createPortal2(
1080
+ /* @__PURE__ */ jsx15(
1081
+ "div",
1082
+ {
1083
+ ref: panelRef,
1084
+ id: panelId,
1085
+ "aria-label": shownItem.title,
1086
+ role: "region",
1087
+ onMouseEnter: cancelClose,
1088
+ onMouseLeave: scheduleClose,
1089
+ style: {
1090
+ top: panelBox.top,
1091
+ left: panelBox.left,
1092
+ width: panelBox.width,
1093
+ maxHeight: `calc(100vh - ${panelBox.top + VIEWPORT_EDGE_PX}px)`
1094
+ },
1095
+ className: cn14(
1096
+ // `overscroll-contain`: panel kendi içinde sonuna geldiğinde kaydırma arkadaki sayfaya ZİNCİRLENMEZ.
1097
+ // Kapalıyken `invisible` (geçişin sonunda): linkler Tab sırasına ve ekran okuyucuya girmez.
1098
+ "fixed z-mari-dropdown origin-top overflow-y-auto overscroll-contain border-b border-mari-border bg-mari-surface shadow-mari-lg transition-[opacity,translate,visibility] duration-200",
1099
+ visible ? "visible translate-y-0 opacity-100" : "pointer-events-none invisible -translate-y-1 opacity-0"
1100
+ ),
1101
+ children: /* @__PURE__ */ jsx15("div", { className: "mx-auto w-full max-w-7xl px-4 py-6", children: /* @__PURE__ */ jsx15(
1102
+ MegaPanel,
1103
+ {
1104
+ items: shownItem.children,
1105
+ layout: "full",
1106
+ orientation: "horizontal",
1107
+ color,
1108
+ onNavigate,
1109
+ activeKey,
1110
+ onItemClick: (item) => {
1111
+ setActiveKey(item.key);
1112
+ close();
1113
+ }
1114
+ },
1115
+ shownItem.key
1116
+ ) })
1117
+ }
1118
+ ),
1119
+ document.body
1120
+ )
1121
+ }
1122
+ );
1123
+ }
1124
+
1125
+ // src/menu/sidebar/Sidebar.tsx
1126
+ import { useCallback as useCallback3, useEffect as useEffect7, useId as useId4, useRef as useRef5, useState as useState8 } from "react";
1127
+ import { cn as cn19 } from "@mari-ui/core";
1128
+
1129
+ // src/menu/_shared/useHoverIntent.ts
1130
+ import { useCallback as useCallback2, useEffect as useEffect5, useRef as useRef4 } from "react";
1131
+ function useHoverIntent() {
1132
+ const timerRef = useRef4(null);
1133
+ const cancel = useCallback2(() => {
1134
+ if (timerRef.current) {
1135
+ clearTimeout(timerRef.current);
1136
+ timerRef.current = null;
1137
+ }
1138
+ }, []);
1139
+ const schedule = useCallback2(
1140
+ (action, delayMs) => {
1141
+ cancel();
1142
+ timerRef.current = setTimeout(() => {
1143
+ timerRef.current = null;
1144
+ action();
1145
+ }, delayMs);
1146
+ },
1147
+ [cancel]
1148
+ );
1149
+ useEffect5(() => cancel, [cancel]);
1150
+ return { schedule, cancel };
1151
+ }
1152
+
1153
+ // src/menu/sidebar/_components/SidebarButton.tsx
1154
+ import { PanelLeftCloseIcon, PanelLeftOpenIcon, PanelRightCloseIcon, PanelRightOpenIcon } from "lucide-react";
1155
+ import { cn as cn15 } from "@mari-ui/core";
1156
+ import { jsx as jsx16 } from "react/jsx-runtime";
1157
+ function SidebarButton({ position, setVisible, visible, controlsId }) {
1158
+ const isLeft = position === "left";
1159
+ let Icon = isLeft ? PanelLeftOpenIcon : PanelRightOpenIcon;
1160
+ if (visible) Icon = isLeft ? PanelLeftCloseIcon : PanelRightCloseIcon;
1161
+ return /* @__PURE__ */ jsx16(
1162
+ "button",
1163
+ {
1164
+ type: "button",
1165
+ "aria-label": visible ? "Kenar \xE7ubu\u011Funu kapat" : "Kenar \xE7ubu\u011Funu a\xE7",
1166
+ "aria-expanded": visible,
1167
+ "aria-controls": controlsId,
1168
+ onClick: () => setVisible(!visible),
1169
+ className: cn15(
1170
+ "relative mt-3 inline-flex size-9 shrink-0",
1171
+ touchTargetSquareClass.md,
1172
+ " cursor-pointer items-center justify-center self-start border border-mari-border bg-mari-surface text-mari-muted shadow-mari-sm transition-colors hover:bg-mari-surface-alt hover:text-mari-foreground",
1173
+ "focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-mari-ring",
1174
+ isLeft ? "rounded-r-lg border-l-0" : "rounded-l-lg border-r-0"
1175
+ ),
1176
+ children: /* @__PURE__ */ jsx16(Icon, { "aria-hidden": "true", size: 18 })
1177
+ }
1178
+ );
1179
+ }
1180
+
1181
+ // src/menu/sidebar/_components/SidebarMegaPanel.tsx
1182
+ import React8 from "react";
1183
+ import { cn as cn16 } from "@mari-ui/core";
1184
+ import { jsx as jsx17, jsxs as jsxs13 } from "react/jsx-runtime";
1185
+ function getMegaShape(children) {
1186
+ if (children.some((child) => child.children?.some((grandchild) => grandchild.children?.length))) return "rail";
1187
+ if (children.some((child) => child.children?.length)) return "columns";
1188
+ return "rows";
1189
+ }
1190
+ function getWidthClass(shape, count) {
1191
+ if (shape === "rail") return "w-[44rem]";
1192
+ if (shape === "columns") return count > 4 ? "w-[44rem]" : "w-[32rem]";
1193
+ return count > 4 ? "w-[38rem]" : "w-[24rem]";
1194
+ }
1195
+ var SidebarMegaPanel = React8.forwardRef(function SidebarMegaPanel2({ item, activeKey, setActiveKey, color, position, onClose, onMouseEnter, onMouseLeave, onNavigate, currentPath }, ref) {
1196
+ const children = item.children ?? [];
1197
+ const shape = getMegaShape(children);
1198
+ return /* @__PURE__ */ jsxs13(
1199
+ "div",
1200
+ {
1201
+ ref,
1202
+ role: "region",
1203
+ "aria-label": item.title,
1204
+ onMouseEnter,
1205
+ onMouseLeave,
1206
+ className: cn16(
1207
+ "h-full max-w-[calc(100vw-5rem)] shrink overflow-y-auto overscroll-contain border-mari-border bg-mari-surface p-6 shadow-mari-lg transition-[opacity,translate] duration-200 ease-out starting:opacity-0",
1208
+ position === "right" ? "border-l starting:translate-x-2" : "border-r starting:-translate-x-2",
1209
+ getWidthClass(shape, children.length)
1210
+ ),
1211
+ children: [
1212
+ /* @__PURE__ */ jsx17("div", { className: "mb-4 text-base font-semibold text-mari-foreground", children: item.title }),
1213
+ shape === "rail" && /* @__PURE__ */ jsx17(
1214
+ MegaPanel,
1215
+ {
1216
+ items: children,
1217
+ layout: "compact",
1218
+ orientation: "horizontal",
1219
+ color,
1220
+ onNavigate,
1221
+ activeKey,
1222
+ onItemClick: (picked) => {
1223
+ setActiveKey(picked.key);
1224
+ onClose();
1225
+ }
1226
+ }
1227
+ ),
1228
+ shape === "columns" && /* @__PURE__ */ jsx17("div", { className: cn16("gap-8", children.length > 4 ? "columns-3" : "columns-2"), children: children.map((group) => /* @__PURE__ */ jsx17(
1229
+ MegaPanelColumn,
1230
+ {
1231
+ group,
1232
+ color,
1233
+ onNavigate,
1234
+ activeKey,
1235
+ onItemClick: (picked) => {
1236
+ setActiveKey(picked.key);
1237
+ onClose();
1238
+ }
1239
+ },
1240
+ group.key
1241
+ )) }),
1242
+ shape === "rows" && /* @__PURE__ */ jsx17(SubMenuPanelBody, { items: children, activeKey, setActiveKey, color, onNavigate, currentPath, onAfterSelect: onClose })
1243
+ ]
1244
+ }
1245
+ );
1246
+ });
1247
+
1248
+ // src/menu/sidebar/_components/SidebarMenu.tsx
1249
+ import { cn as cn18 } from "@mari-ui/core";
1250
+
1251
+ // src/menu/sidebar/_components/SidebarItem.tsx
1252
+ import { useEffect as useEffect6, useState as useState7 } from "react";
1253
+ import { ChevronDownIcon as ChevronDownIcon4, ChevronLeftIcon as ChevronLeftIcon2, ChevronRightIcon as ChevronRightIcon5 } from "lucide-react";
1254
+ import { cn as cn17 } from "@mari-ui/core";
1255
+ import { Fragment as Fragment5, jsx as jsx18, jsxs as jsxs14 } from "react/jsx-runtime";
1256
+ var NESTED_INDENT_CLASS = {
1257
+ left: { root: "ml-6", deep: "ml-3" },
1258
+ right: { root: "mr-6", deep: "mr-3" }
1259
+ };
1260
+ var FOCUS_RING = "focus-visible:outline-2 focus-visible:-outline-offset-2 focus-visible:outline-mari-ring";
1261
+ function ItemIcon({ item, showMonogram, reserveIconSlot }) {
1262
+ if (item.icon) {
1263
+ return /* @__PURE__ */ jsx18("span", { "aria-hidden": "true", className: "flex size-5 shrink-0 items-center justify-center [&_svg]:size-[1.125rem]", children: item.icon });
1264
+ }
1265
+ if (showMonogram) {
1266
+ return /* @__PURE__ */ jsx18("span", { "aria-hidden": "true", className: "flex size-5 shrink-0 items-center justify-center rounded-sm bg-mari-surface-alt text-[0.6875rem] font-semibold uppercase", children: item.title.charAt(0) });
1267
+ }
1268
+ return reserveIconSlot ? /* @__PURE__ */ jsx18("span", { "aria-hidden": "true", className: "size-5 shrink-0" }) : null;
1269
+ }
1270
+ function getRowStateClass({ disabled, highlighted, containsActive, color }) {
1271
+ if (disabled) return "cursor-not-allowed opacity-50";
1272
+ if (highlighted) return cn17("cursor-pointer font-medium", bgSubtleClass[color], textClass[color]);
1273
+ if (containsActive) return cn17("cursor-pointer font-medium hover:bg-mari-surface-alt", textClass[color]);
1274
+ return "cursor-pointer text-mari-foreground/80 hover:bg-mari-surface-alt hover:text-mari-foreground";
1275
+ }
1276
+ function getRowClass(options) {
1277
+ return cn17(
1278
+ "relative flex w-full items-center rounded-lg text-start text-sm transition-colors duration-150",
1279
+ // Daraltılmış rayda satır tam ikon genişliğinde: boşluk + chevron kalsaydı içerik satırı
1280
+ // taşırıyor, `nav` yatayda kayıyor ve ikonlar sola kaçıyordu.
1281
+ options.collapsed ? "gap-0" : "gap-3",
1282
+ options.level === 0 ? "h-10 px-3.5" : "h-9 px-3",
1283
+ FOCUS_RING,
1284
+ getRowStateClass(options)
1285
+ );
1286
+ }
1287
+ function RowContent({ item, collapsed, reserveIconSlot, position, showMonogram, chevron, open }) {
1288
+ const FlyoutChevron = position === "left" ? ChevronRightIcon5 : ChevronLeftIcon2;
1289
+ return /* @__PURE__ */ jsxs14(Fragment5, { children: [
1290
+ /* @__PURE__ */ jsx18(ItemIcon, { item, showMonogram, reserveIconSlot }),
1291
+ /* @__PURE__ */ jsx18("span", { className: cn17("min-w-0 flex-1 truncate transition-opacity duration-150", collapsed ? "opacity-0" : "opacity-100"), children: item.title }),
1292
+ !collapsed && /* @__PURE__ */ jsx18(NewTabHint, { target: item.target }),
1293
+ chevron === "accordion" && /* @__PURE__ */ jsx18(ChevronDownIcon4, { "aria-hidden": "true", size: 16, className: cn17("shrink-0 text-mari-muted transition-transform duration-200", open && "rotate-180", collapsed && "hidden") }),
1294
+ chevron === "flyout" && /* @__PURE__ */ jsx18(FlyoutChevron, { "aria-hidden": "true", size: 16, className: cn17("shrink-0 text-mari-muted", collapsed && "hidden") })
1295
+ ] });
1296
+ }
1297
+ function RowPlaceholder({ level, collapsed, hasIcon }) {
1298
+ return /* @__PURE__ */ jsxs14("span", { className: cn17("flex h-full items-center gap-3", level === 0 ? "px-3.5" : "px-3"), children: [
1299
+ hasIcon && /* @__PURE__ */ jsx18("span", { className: cn17("size-5 shrink-0 rounded-sm", skeletonFill(true)) }),
1300
+ !collapsed && /* @__PURE__ */ jsx18("span", { className: cn17("h-3 flex-1 rounded-sm", skeletonFill(true)) })
1301
+ ] });
1302
+ }
1303
+ function RowSlot({ props, level, children }) {
1304
+ const { skeleton, collapsed, item, showMonogram, reserveIconSlot } = props;
1305
+ const hasIcon = !!item.icon || showMonogram && level === 0 || reserveIconSlot || collapsed;
1306
+ return /* @__PURE__ */ jsx18(SkeletonSlot, { on: skeleton, placeholder: /* @__PURE__ */ jsx18(RowPlaceholder, { level, collapsed, hasIcon }), children });
1307
+ }
1308
+ function SidebarDropdownItem(props) {
1309
+ const { item, activeKey, setActiveKey, color, collapsed, showMonogram, position, onNavigate, currentPath } = props;
1310
+ const children = item.children ?? [];
1311
+ const containsActive = isMenuItemActive(item, activeKey);
1312
+ const rowClass = getRowClass({ level: 0, collapsed, highlighted: collapsed && containsActive, containsActive, color });
1313
+ return /* @__PURE__ */ jsx18("li", { children: /* @__PURE__ */ jsx18(RowSlot, { props, level: 0, children: /* @__PURE__ */ jsxs14(Dropdown, { hover: true, className: "block self-auto", children: [
1314
+ /* @__PURE__ */ jsx18(DropdownTrigger, { className: cn17(rowClass, "aria-expanded:bg-mari-surface-alt"), children: /* @__PURE__ */ jsx18(RowContent, { ...props, showMonogram, chevron: "flyout" }) }),
1315
+ /* @__PURE__ */ jsx18(
1316
+ DropdownContent,
1317
+ {
1318
+ placement: position === "left" ? "right-start" : "left-start",
1319
+ offset: 10,
1320
+ className: cn17("max-w-[calc(100vw-2rem)] rounded-xl p-2", getSubMenuPanelWidthClass(children)),
1321
+ children: /* @__PURE__ */ jsx18(SubMenuPanelBody, { items: children, activeKey, setActiveKey, color, onNavigate, currentPath })
1322
+ }
1323
+ )
1324
+ ] }) }) });
1325
+ }
1326
+ function SidebarItem(props) {
1327
+ const hasChildren = !!props.item.children?.length;
1328
+ const mode = props.level === 0 ? props.subMode : "accordion";
1329
+ if (hasChildren && mode === "dropdown" && !props.item.disabled) return /* @__PURE__ */ jsx18(SidebarDropdownItem, { ...props });
1330
+ return mode === "mega" ? /* @__PURE__ */ jsx18(SidebarMegaItem, { ...props }) : /* @__PURE__ */ jsx18(SidebarAccordionItem, { ...props });
1331
+ }
1332
+ function SidebarMegaItem(props) {
1333
+ const { item, activeKey, color, collapsed, showMonogram, megaKey, onMegaOpen, onMegaClose, onSelect, onNavigate, position } = props;
1334
+ const hasChildren = !!item.children?.length;
1335
+ const containsActive = isMenuItemActive(item, activeKey);
1336
+ const isActiveLeaf = !hasChildren && item.key === activeKey;
1337
+ const isOpen = megaKey === item.key;
1338
+ const rowClass = getRowClass({ level: 0, collapsed, disabled: item.disabled, highlighted: isActiveLeaf || isOpen || collapsed && containsActive, containsActive, color });
1339
+ const openKey = position === "left" ? "ArrowRight" : "ArrowLeft";
1340
+ return /* @__PURE__ */ jsx18("li", { children: /* @__PURE__ */ jsx18(RowSlot, { props, level: 0, children: hasChildren ? /* @__PURE__ */ jsx18(
1341
+ "button",
1342
+ {
1343
+ type: "button",
1344
+ "data-sidebar-key": item.key,
1345
+ disabled: item.disabled,
1346
+ "aria-expanded": isOpen,
1347
+ title: collapsed ? item.title : void 0,
1348
+ onMouseEnter: item.disabled ? void 0 : () => onMegaOpen(item),
1349
+ onClick: (event) => {
1350
+ if (!item.disabled) onMegaOpen(item, event.detail === 0);
1351
+ },
1352
+ onKeyDown: (event) => {
1353
+ if (event.key !== openKey || item.disabled) return;
1354
+ event.preventDefault();
1355
+ onMegaOpen(item, true);
1356
+ },
1357
+ className: rowClass,
1358
+ children: /* @__PURE__ */ jsx18(RowContent, { ...props, showMonogram, chevron: "flyout" })
1359
+ }
1360
+ ) : /* @__PURE__ */ jsx18(
1361
+ MenuLink,
1362
+ {
1363
+ route: item.route,
1364
+ target: item.target,
1365
+ reloadDocument: item.reloadDocument,
1366
+ onNavigate,
1367
+ disabled: item.disabled,
1368
+ current: isActiveLeaf,
1369
+ "data-sidebar-key": item.key,
1370
+ title: collapsed ? item.title : void 0,
1371
+ onMouseEnter: item.disabled ? void 0 : onMegaClose,
1372
+ onSelect: () => onSelect(item),
1373
+ className: rowClass,
1374
+ children: /* @__PURE__ */ jsx18(RowContent, { ...props, showMonogram })
1375
+ }
1376
+ ) }) });
1377
+ }
1378
+ function SidebarAccordionItem(props) {
1379
+ const { item, level, activeKey, onSelect, color, collapsed, showMonogram, tabbable, position, skeleton, ...shared } = props;
1380
+ const { onNavigate } = props;
1381
+ const hasChildren = !!item.children?.length;
1382
+ const containsActive = isMenuItemActive(item, activeKey);
1383
+ const isActiveLeaf = !hasChildren && item.key === activeKey;
1384
+ const [open, setOpen] = useState7(containsActive);
1385
+ useEffect6(() => {
1386
+ if (hasChildren && containsActive) setOpen(true);
1387
+ }, [hasChildren, containsActive]);
1388
+ const expandedBody = open && !collapsed;
1389
+ const rowClass = getRowClass({ level, collapsed, disabled: item.disabled, highlighted: isActiveLeaf || collapsed && containsActive, containsActive, color });
1390
+ return /* @__PURE__ */ jsxs14("li", { children: [
1391
+ /* @__PURE__ */ jsx18(RowSlot, { props, level, children: hasChildren ? /* @__PURE__ */ jsx18(
1392
+ "button",
1393
+ {
1394
+ type: "button",
1395
+ "data-sidebar-key": item.key,
1396
+ disabled: item.disabled,
1397
+ tabIndex: tabbable ? void 0 : -1,
1398
+ "aria-expanded": open,
1399
+ title: collapsed ? item.title : void 0,
1400
+ onClick: () => !item.disabled && setOpen((prev) => !prev),
1401
+ className: rowClass,
1402
+ children: /* @__PURE__ */ jsx18(RowContent, { ...props, showMonogram: showMonogram && level === 0, chevron: "accordion", open })
1403
+ }
1404
+ ) : /* @__PURE__ */ jsx18(
1405
+ MenuLink,
1406
+ {
1407
+ route: item.route,
1408
+ target: item.target,
1409
+ reloadDocument: item.reloadDocument,
1410
+ onNavigate,
1411
+ disabled: item.disabled,
1412
+ current: isActiveLeaf,
1413
+ "data-sidebar-key": item.key,
1414
+ tabIndex: tabbable ? void 0 : -1,
1415
+ title: collapsed ? item.title : void 0,
1416
+ onSelect: () => onSelect(item),
1417
+ className: rowClass,
1418
+ children: /* @__PURE__ */ jsx18(RowContent, { ...props, showMonogram: showMonogram && level === 0 })
1419
+ }
1420
+ ) }),
1421
+ hasChildren && // Yükseklik `grid-template-rows` 0fr→1fr ile animasyonlu: içerik ne kadar
1422
+ // uzun olursa olsun doğru açılır (eskiden sabit `max-h-96` sınırı vardı).
1423
+ /* @__PURE__ */ jsx18("div", { className: cn17("grid transition-[grid-template-rows,opacity] duration-200 ease-out", expandedBody ? "grid-rows-[1fr] opacity-100" : "grid-rows-[0fr] opacity-0"), children: /* @__PURE__ */ jsx18("div", { className: "overflow-hidden", children: /* @__PURE__ */ jsx18(
1424
+ SidebarMenu,
1425
+ {
1426
+ ...shared,
1427
+ activeKey,
1428
+ onSelect,
1429
+ color,
1430
+ collapsed,
1431
+ showMonogram,
1432
+ position,
1433
+ skeleton,
1434
+ data: item.children ?? [],
1435
+ level: level + 1,
1436
+ tabbable: tabbable && expandedBody,
1437
+ className: cn17("mt-0.5 border-mari-border", position === "left" ? "border-l pl-2" : "border-r pr-2", NESTED_INDENT_CLASS[position][level === 0 ? "root" : "deep"])
1438
+ }
1439
+ ) }) })
1440
+ ] });
1441
+ }
1442
+
1443
+ // src/menu/sidebar/_components/SidebarMenu.tsx
1444
+ import { jsx as jsx19, jsxs as jsxs15 } from "react/jsx-runtime";
1445
+ function SidebarMenu({ data, className, ...itemProps }) {
1446
+ const reserveIconSlot = data.some((item) => item.icon && !item.heading);
1447
+ return /* @__PURE__ */ jsx19("ul", { className: cn18("flex flex-col gap-0.5", className), children: data.map(
1448
+ (item) => item.heading ? /* @__PURE__ */ jsxs15("li", { className: "px-3.5 pt-4 pb-1 first:pt-1", children: [
1449
+ itemProps.collapsed && /* @__PURE__ */ jsx19("span", { "aria-hidden": "true", className: "block h-px w-full bg-mari-border" }),
1450
+ /* @__PURE__ */ jsx19("span", { className: cn18("block truncate text-xs font-semibold tracking-wide text-mari-muted uppercase", itemProps.collapsed && "sr-only"), children: item.title })
1451
+ ] }, item.key) : /* @__PURE__ */ jsx19(SidebarItem, { ...itemProps, item, reserveIconSlot }, item.key)
1452
+ ) });
1453
+ }
1454
+
1455
+ // src/menu/sidebar/Sidebar.tsx
1456
+ import { jsx as jsx20, jsxs as jsxs16 } from "react/jsx-runtime";
1457
+ var RAIL_OPEN_DELAY_MS = 80;
1458
+ var RAIL_CLOSE_DELAY_MS = 250;
1459
+ var MEGA_CLOSE_DELAY_MS = 200;
1460
+ function Sidebar({
1461
+ data,
1462
+ variant = "hover",
1463
+ position = "left",
1464
+ onlyIcon = false,
1465
+ dropdown = false,
1466
+ mega = false,
1467
+ logo,
1468
+ logoHref,
1469
+ onLogoClick,
1470
+ logoLabel = "Ana sayfa",
1471
+ header,
1472
+ open = false,
1473
+ onOpenChange,
1474
+ label = "Ana men\xFC",
1475
+ color = "primary",
1476
+ onNavigate,
1477
+ currentPath,
1478
+ skeleton = false
1479
+ }) {
1480
+ const [expanded, setExpanded] = useState8(false);
1481
+ const [activeKey, setActiveKey] = useState8(null);
1482
+ const [megaKey, setMegaKey] = useState8(null);
1483
+ const megaPanelRef = useRef5(null);
1484
+ const wrapperRef = useRef5(null);
1485
+ const railIntent = useHoverIntent();
1486
+ const megaIntent = useHoverIntent();
1487
+ const asideId = useId4();
1488
+ useEffect7(() => {
1489
+ setActiveKey(findActiveKeyByRoute(data, currentPath));
1490
+ }, [data, currentPath]);
1491
+ const railCapable = variant === "hover" && !onlyIcon;
1492
+ const collapsed = onlyIcon || railCapable && !expanded;
1493
+ let subMode = "accordion";
1494
+ if (mega) subMode = "mega";
1495
+ else if (dropdown || onlyIcon) subMode = "dropdown";
1496
+ const openMega = useCallback3(
1497
+ (item) => {
1498
+ megaIntent.cancel();
1499
+ setMegaKey(item.key);
1500
+ },
1501
+ [megaIntent]
1502
+ );
1503
+ const closeMega = useCallback3(() => megaIntent.schedule(() => setMegaKey(null), MEGA_CLOSE_DELAY_MS), [megaIntent]);
1504
+ const megaItem = megaKey ? data.find((item) => item.key === megaKey) : void 0;
1505
+ const [megaFocusRequest, setMegaFocusRequest] = useState8(0);
1506
+ useEffect7(() => {
1507
+ if (megaFocusRequest === 0) return;
1508
+ const panel = megaPanelRef.current;
1509
+ (panel?.querySelector("[data-selected]") ?? getFocusable(panel)[0])?.focus();
1510
+ }, [megaFocusRequest]);
1511
+ useEffect7(() => {
1512
+ if (!megaKey) return;
1513
+ const focusRow = () => Array.from(wrapperRef.current?.querySelectorAll("[data-sidebar-key]") ?? []).find((row) => row.dataset.sidebarKey === megaKey)?.focus();
1514
+ const handleKeyDown = (event) => {
1515
+ const panel = megaPanelRef.current;
1516
+ const focusInPanel = !!panel?.contains(document.activeElement);
1517
+ if (event.key === "Escape") {
1518
+ setMegaKey(null);
1519
+ if (focusInPanel) focusRow();
1520
+ return;
1521
+ }
1522
+ if (!focusInPanel || event.metaKey || event.ctrlKey || event.altKey) return;
1523
+ const target = getRovingTarget(getFocusable(panel), document.activeElement, event.key);
1524
+ if (!target) return;
1525
+ event.preventDefault();
1526
+ target.focus();
1527
+ };
1528
+ const handlePointerDown = (event) => {
1529
+ if (!wrapperRef.current?.contains(event.target)) setMegaKey(null);
1530
+ };
1531
+ document.addEventListener("keydown", handleKeyDown);
1532
+ document.addEventListener("mousedown", handlePointerDown);
1533
+ return () => {
1534
+ document.removeEventListener("keydown", handleKeyDown);
1535
+ document.removeEventListener("mousedown", handlePointerDown);
1536
+ };
1537
+ }, [megaKey]);
1538
+ const navRef = useRef5(null);
1539
+ useEffect7(() => {
1540
+ const nav = navRef.current;
1541
+ if (!nav) return;
1542
+ const handleKeyDown = (event) => {
1543
+ if (event.metaKey || event.ctrlKey || event.altKey) return;
1544
+ const target = getRovingTarget(getFocusable(nav), document.activeElement, event.key);
1545
+ if (!target) return;
1546
+ event.preventDefault();
1547
+ target.focus();
1548
+ };
1549
+ nav.addEventListener("keydown", handleKeyDown);
1550
+ return () => nav.removeEventListener("keydown", handleKeyDown);
1551
+ }, [variant]);
1552
+ const handleSelect = (item) => {
1553
+ setActiveKey(item.key);
1554
+ setMegaKey(null);
1555
+ };
1556
+ const logoClass = "flex shrink-0 items-center rounded-md focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-mari-ring";
1557
+ let logoNode = null;
1558
+ if (logo && logoHref) {
1559
+ logoNode = /* @__PURE__ */ jsxs16(MenuLink, { route: logoHref, onNavigate, className: logoClass, children: [
1560
+ /* @__PURE__ */ jsx20("span", { className: "sr-only", children: logoLabel }),
1561
+ /* @__PURE__ */ jsx20("span", { "aria-hidden": "true", children: logo })
1562
+ ] });
1563
+ } else if (logo && onLogoClick) {
1564
+ logoNode = /* @__PURE__ */ jsx20("button", { type: "button", "aria-label": logoLabel, className: cn19(logoClass, "cursor-pointer"), onClick: onLogoClick, children: logo });
1565
+ } else if (logo) {
1566
+ logoNode = /* @__PURE__ */ jsx20("div", { className: "flex shrink-0 items-center", children: logo });
1567
+ }
1568
+ const blockPlaceholder = /* @__PURE__ */ jsx20("span", { className: cn19("block size-full min-h-8 rounded-md", skeletonFill(true)) });
1569
+ if (variant === "drawer") {
1570
+ return /* @__PURE__ */ jsx20(
1571
+ NavDrawer,
1572
+ {
1573
+ open,
1574
+ onClose: () => onOpenChange?.(false),
1575
+ data,
1576
+ color,
1577
+ header: header ?? logo,
1578
+ emphasizedHeader: !!header,
1579
+ side: position,
1580
+ activeKey,
1581
+ onItemSelect: (item) => setActiveKey(item.key),
1582
+ onNavigate,
1583
+ currentPath,
1584
+ label
1585
+ }
1586
+ );
1587
+ }
1588
+ const collapseAll = () => {
1589
+ setExpanded(false);
1590
+ setMegaKey(null);
1591
+ };
1592
+ const wrapperHandlers = {
1593
+ onMouseEnter: () => {
1594
+ if (railCapable) railIntent.schedule(() => setExpanded(true), RAIL_OPEN_DELAY_MS);
1595
+ },
1596
+ onMouseLeave: () => {
1597
+ if (railCapable) railIntent.schedule(collapseAll, RAIL_CLOSE_DELAY_MS);
1598
+ else closeMega();
1599
+ },
1600
+ onFocus: () => {
1601
+ if (!railCapable) return;
1602
+ railIntent.cancel();
1603
+ setExpanded(true);
1604
+ },
1605
+ onBlur: (event) => {
1606
+ if (railCapable && !event.currentTarget.contains(event.relatedTarget)) railIntent.schedule(collapseAll, RAIL_CLOSE_DELAY_MS);
1607
+ }
1608
+ };
1609
+ return /* @__PURE__ */ jsxs16(
1610
+ "div",
1611
+ {
1612
+ ref: wrapperRef,
1613
+ ...wrapperHandlers,
1614
+ className: cn19("fixed top-0 z-mari-drawer flex h-full", position === "right" ? "right-0 flex-row-reverse" : "left-0"),
1615
+ children: [
1616
+ /* @__PURE__ */ jsxs16(
1617
+ "aside",
1618
+ {
1619
+ id: asideId,
1620
+ className: cn19(
1621
+ "flex h-full shrink-0 flex-col overflow-hidden border-mari-border bg-mari-surface transition-[width,box-shadow] duration-200 ease-out",
1622
+ position === "right" ? "border-l" : "border-r",
1623
+ getSidebarWidthClass(variant, expanded, onlyIcon)
1624
+ ),
1625
+ children: [
1626
+ header && /* @__PURE__ */ jsx20("div", { className: "shrink-0 overflow-hidden border-b border-mari-border px-2 py-2 whitespace-nowrap", children: /* @__PURE__ */ jsx20(SkeletonSlot, { on: skeleton, placeholder: blockPlaceholder, children: header }) }),
1627
+ logoNode && /* @__PURE__ */ jsx20("div", { className: "flex h-14 shrink-0 items-center overflow-hidden border-b border-mari-border px-4", children: /* @__PURE__ */ jsx20(SkeletonSlot, { on: skeleton, placeholder: blockPlaceholder, children: logoNode }) }),
1628
+ /* @__PURE__ */ jsx20("nav", { ref: navRef, "aria-label": label, "aria-busy": skeleton || void 0, className: "min-h-0 flex-1 overflow-x-hidden overflow-y-auto px-2 py-3", children: /* @__PURE__ */ jsx20(
1629
+ SidebarMenu,
1630
+ {
1631
+ data,
1632
+ level: 0,
1633
+ activeKey,
1634
+ onSelect: handleSelect,
1635
+ setActiveKey,
1636
+ color,
1637
+ subMode,
1638
+ collapsed,
1639
+ showMonogram: railCapable || onlyIcon,
1640
+ tabbable: true,
1641
+ skeleton,
1642
+ position,
1643
+ megaKey,
1644
+ onMegaOpen: (item, fromKeyboard) => {
1645
+ openMega(item);
1646
+ if (fromKeyboard) setMegaFocusRequest((count) => count + 1);
1647
+ },
1648
+ onMegaClose: closeMega,
1649
+ onNavigate,
1650
+ currentPath
1651
+ }
1652
+ ) })
1653
+ ]
1654
+ }
1655
+ ),
1656
+ megaItem?.children && /* @__PURE__ */ jsx20(
1657
+ SidebarMegaPanel,
1658
+ {
1659
+ ref: megaPanelRef,
1660
+ item: megaItem,
1661
+ activeKey,
1662
+ setActiveKey,
1663
+ color,
1664
+ position,
1665
+ onClose: () => setMegaKey(null),
1666
+ onMouseEnter: megaIntent.cancel,
1667
+ onMouseLeave: closeMega,
1668
+ onNavigate,
1669
+ currentPath
1670
+ }
1671
+ ),
1672
+ variant === "click" && !onlyIcon && /* @__PURE__ */ jsx20(SidebarButton, { visible: expanded, setVisible: setExpanded, position, controlsId: asideId })
1673
+ ]
1674
+ }
1675
+ );
1676
+ }
1677
+ export {
1678
+ BasicMenu,
1679
+ MegaMenu,
1680
+ Sidebar
1681
+ };
1682
+ //# sourceMappingURL=menu.js.map