@mari-ui/components 0.1.1 → 0.2.0

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 (459) hide show
  1. package/dist/accordion.js +4 -4
  2. package/dist/accordion.js.map +1 -1
  3. package/dist/alert.js +5 -5
  4. package/dist/alert.js.map +1 -1
  5. package/dist/autocomplete.js +8 -8
  6. package/dist/autocomplete.js.map +1 -1
  7. package/dist/avatar.js +3 -3
  8. package/dist/badge.js +3 -3
  9. package/dist/breadcrumb.js +9 -9
  10. package/dist/breadcrumb.js.map +1 -1
  11. package/dist/button.js +4 -4
  12. package/dist/calendar.js +14 -14
  13. package/dist/calendar.js.map +1 -1
  14. package/dist/card.js +4 -4
  15. package/dist/card.js.map +1 -1
  16. package/dist/carousel.js +4 -4
  17. package/dist/carousel.js.map +1 -1
  18. package/dist/chart.js +5 -5
  19. package/dist/chart.js.map +1 -1
  20. package/dist/checkbox.js +4 -4
  21. package/dist/{chunk-BDV4GOEN.js → chunk-5GILG5AK.js} +1 -1
  22. package/dist/chunk-5GILG5AK.js.map +1 -0
  23. package/dist/{chunk-IP2J3BWY.js → chunk-6AMBZXZJ.js} +1 -1
  24. package/dist/chunk-6AMBZXZJ.js.map +1 -0
  25. package/dist/{chunk-XUKVQO6M.js → chunk-6CSUVVFG.js} +1 -1
  26. package/dist/chunk-6CSUVVFG.js.map +1 -0
  27. package/dist/{chunk-ELHESRRH.js → chunk-7FQQRTPX.js} +5 -5
  28. package/dist/chunk-7FQQRTPX.js.map +1 -0
  29. package/dist/{chunk-QNOHFHVL.js → chunk-7WB4CDWX.js} +4 -4
  30. package/dist/chunk-7WB4CDWX.js.map +1 -0
  31. package/dist/{chunk-47FHUOLT.js → chunk-BLFY5UAL.js} +1 -1
  32. package/dist/chunk-BLFY5UAL.js.map +1 -0
  33. package/dist/{chunk-CYLXW66E.js → chunk-C3QWJFSE.js} +2 -2
  34. package/dist/chunk-C3QWJFSE.js.map +1 -0
  35. package/dist/{chunk-QDFDMWXD.js → chunk-CNWRDTEW.js} +7 -7
  36. package/dist/chunk-CNWRDTEW.js.map +1 -0
  37. package/dist/{chunk-2IEXY3OZ.js → chunk-CVKAGR3D.js} +4 -4
  38. package/dist/{chunk-LZHERDNB.js → chunk-CXIWRNSP.js} +5 -5
  39. package/dist/chunk-CXIWRNSP.js.map +1 -0
  40. package/dist/{chunk-FNJHS5KQ.js → chunk-E5JTEQ4V.js} +6 -6
  41. package/dist/chunk-E5JTEQ4V.js.map +1 -0
  42. package/dist/{chunk-IO4346TF.js → chunk-FC7T3INX.js} +8 -8
  43. package/dist/chunk-FC7T3INX.js.map +1 -0
  44. package/dist/{chunk-KCYM2JXP.js → chunk-FWSMUUZ5.js} +5 -5
  45. package/dist/chunk-FWSMUUZ5.js.map +1 -0
  46. package/dist/{chunk-3ABWBQCS.js → chunk-GTNCXOUL.js} +2 -2
  47. package/dist/chunk-GTNCXOUL.js.map +1 -0
  48. package/dist/{chunk-ZLPAXPDI.js → chunk-GVJ4M63W.js} +3 -3
  49. package/dist/{chunk-ZLPAXPDI.js.map → chunk-GVJ4M63W.js.map} +1 -1
  50. package/dist/{chunk-LBXIPDAB.js → chunk-JXD5DW6E.js} +3 -3
  51. package/dist/chunk-JXD5DW6E.js.map +1 -0
  52. package/dist/{chunk-P7Z5BREP.js → chunk-L6DBWUAB.js} +6 -6
  53. package/dist/chunk-L6DBWUAB.js.map +1 -0
  54. package/dist/{chunk-YZ7MDC6B.js → chunk-LNL4TCGL.js} +2 -2
  55. package/dist/chunk-LNL4TCGL.js.map +1 -0
  56. package/dist/{chunk-TCYDVNSU.js → chunk-MT4VH7QV.js} +1 -1
  57. package/dist/chunk-MT4VH7QV.js.map +1 -0
  58. package/dist/{chunk-DKENCYHA.js → chunk-MXGY2ENX.js} +1 -1
  59. package/dist/chunk-MXGY2ENX.js.map +1 -0
  60. package/dist/{chunk-DUCIAQGR.js → chunk-NENNFQEY.js} +3 -3
  61. package/dist/chunk-NENNFQEY.js.map +1 -0
  62. package/dist/{chunk-LBQMEHK6.js → chunk-NPFMPRII.js} +1 -1
  63. package/dist/chunk-NPFMPRII.js.map +1 -0
  64. package/dist/{chunk-NS7FKOFI.js → chunk-NYXU5EFE.js} +1 -1
  65. package/dist/chunk-NYXU5EFE.js.map +1 -0
  66. package/dist/{chunk-S66GKX2W.js → chunk-OAWUZIIN.js} +1 -1
  67. package/dist/chunk-OAWUZIIN.js.map +1 -0
  68. package/dist/{chunk-JNZODUXP.js → chunk-OYDG6C54.js} +1 -1
  69. package/dist/chunk-OYDG6C54.js.map +1 -0
  70. package/dist/{chunk-FFXRFQSU.js → chunk-POBOJBNJ.js} +1 -1
  71. package/dist/chunk-POBOJBNJ.js.map +1 -0
  72. package/dist/{chunk-RIBB5OJV.js → chunk-PR2MCHU4.js} +4 -4
  73. package/dist/chunk-PR2MCHU4.js.map +1 -0
  74. package/dist/{chunk-LEOIKO7C.js → chunk-RLWP6NJU.js} +4 -4
  75. package/dist/chunk-RLWP6NJU.js.map +1 -0
  76. package/dist/{chunk-V7KDUUV6.js → chunk-RMNV2CE2.js} +2 -2
  77. package/dist/chunk-RMNV2CE2.js.map +1 -0
  78. package/dist/{chunk-ZXYQ2ZPR.js → chunk-TEMTIMAH.js} +3 -3
  79. package/dist/chunk-TEMTIMAH.js.map +1 -0
  80. package/dist/{chunk-NPM7IDYV.js → chunk-TSFAAREV.js} +3 -3
  81. package/dist/chunk-TSFAAREV.js.map +1 -0
  82. package/dist/{chunk-54HHEXXD.js → chunk-VKN374SD.js} +1 -1
  83. package/dist/chunk-VKN374SD.js.map +1 -0
  84. package/dist/{chunk-ZMA7BT2L.js → chunk-XWBJPA3D.js} +4 -4
  85. package/dist/{chunk-ZMA7BT2L.js.map → chunk-XWBJPA3D.js.map} +1 -1
  86. package/dist/{chunk-QZRBO7BE.js → chunk-Z4KFHRDW.js} +9 -9
  87. package/dist/chunk-Z4KFHRDW.js.map +1 -0
  88. package/dist/{chunk-TXRQCHOR.js → chunk-ZAR3SCPV.js} +5 -5
  89. package/dist/chunk-ZAR3SCPV.js.map +1 -0
  90. package/dist/color-picker.js +19 -19
  91. package/dist/date-picker.js +10 -10
  92. package/dist/date-picker.js.map +1 -1
  93. package/dist/divider.js +2 -2
  94. package/dist/divider.js.map +1 -1
  95. package/dist/drawer.js +7 -7
  96. package/dist/dropdown.js +7 -7
  97. package/dist/empty.js +5 -5
  98. package/dist/field.js +2 -2
  99. package/dist/field.js.map +1 -1
  100. package/dist/float-button.js +6 -6
  101. package/dist/float-button.js.map +1 -1
  102. package/dist/image.js +8 -8
  103. package/dist/image.js.map +1 -1
  104. package/dist/input-number.js +6 -6
  105. package/dist/input.js +8 -8
  106. package/dist/list.js +12 -12
  107. package/dist/list.js.map +1 -1
  108. package/dist/loading.js +1 -1
  109. package/dist/logo.js.map +1 -1
  110. package/dist/mari.css +8 -2
  111. package/dist/masonry.js +5 -5
  112. package/dist/masonry.js.map +1 -1
  113. package/dist/menu.js +10 -10
  114. package/dist/menu.js.map +1 -1
  115. package/dist/modal.js +8 -8
  116. package/dist/modal.js.map +1 -1
  117. package/dist/pagination.js +5 -5
  118. package/dist/popconfirm.js +13 -13
  119. package/dist/popconfirm.js.map +1 -1
  120. package/dist/popover.js +10 -10
  121. package/dist/progress.js +2 -2
  122. package/dist/progress.js.map +1 -1
  123. package/dist/qrcode.js +1 -1
  124. package/dist/qrcode.js.map +1 -1
  125. package/dist/radio.js +4 -4
  126. package/dist/radio.js.map +1 -1
  127. package/dist/rate.js +2 -2
  128. package/dist/rate.js.map +1 -1
  129. package/dist/segmented.js +4 -4
  130. package/dist/select.js +11 -11
  131. package/dist/skeleton.js +3 -3
  132. package/dist/slider.js +8 -8
  133. package/dist/slider.js.map +1 -1
  134. package/dist/splitter.js.map +1 -1
  135. package/dist/statistic.js +7 -7
  136. package/dist/statistic.js.map +1 -1
  137. package/dist/steps.js +4 -4
  138. package/dist/steps.js.map +1 -1
  139. package/dist/styles.css +1 -1
  140. package/dist/switch.js +2 -2
  141. package/dist/switch.js.map +1 -1
  142. package/dist/table.js +19 -19
  143. package/dist/table.js.map +1 -1
  144. package/dist/tabs.js +2 -2
  145. package/dist/tabs.js.map +1 -1
  146. package/dist/tag.js +3 -3
  147. package/dist/theme-customizer.js +19 -19
  148. package/dist/theme-customizer.js.map +1 -1
  149. package/dist/timeline.js +5 -5
  150. package/dist/timeline.js.map +1 -1
  151. package/dist/toast.js +7 -7
  152. package/dist/tooltip.js +4 -4
  153. package/dist/tour.js +12 -12
  154. package/dist/tour.js.map +1 -1
  155. package/dist/transfer.js +11 -11
  156. package/dist/transfer.js.map +1 -1
  157. package/dist/tree-select.js +12 -12
  158. package/dist/tree-select.js.map +1 -1
  159. package/dist/tree.js +5 -5
  160. package/dist/types/accordion/Accordion.d.ts +1 -3
  161. package/dist/types/accordion/Accordion.d.ts.map +1 -1
  162. package/dist/types/alert/Alert.d.ts +0 -1
  163. package/dist/types/alert/Alert.d.ts.map +1 -1
  164. package/dist/types/autocomplete/AutoComplete.d.ts +2 -2
  165. package/dist/types/autocomplete/utils.d.ts +0 -8
  166. package/dist/types/autocomplete/utils.d.ts.map +1 -1
  167. package/dist/types/avatar/utils.d.ts +1 -1
  168. package/dist/types/badge/Badge.d.ts +0 -3
  169. package/dist/types/badge/Badge.d.ts.map +1 -1
  170. package/dist/types/breadcrumb/Breadcrumb.d.ts +1 -12
  171. package/dist/types/breadcrumb/Breadcrumb.d.ts.map +1 -1
  172. package/dist/types/breadcrumb/utils.d.ts +0 -7
  173. package/dist/types/breadcrumb/utils.d.ts.map +1 -1
  174. package/dist/types/button/types.d.ts +1 -9
  175. package/dist/types/button/types.d.ts.map +1 -1
  176. package/dist/types/calendar/Calendar.d.ts +3 -4
  177. package/dist/types/calendar/Calendar.d.ts.map +1 -1
  178. package/dist/types/calendar/_components/CalendarPanel.d.ts +1 -2
  179. package/dist/types/calendar/_components/CalendarPanel.d.ts.map +1 -1
  180. package/dist/types/calendar/_components/DayGrid.d.ts +1 -1
  181. package/dist/types/calendar/types.d.ts +1 -1
  182. package/dist/types/calendar/types.d.ts.map +1 -1
  183. package/dist/types/card/Card.d.ts +3 -4
  184. package/dist/types/card/Card.d.ts.map +1 -1
  185. package/dist/types/card/types.d.ts +1 -1
  186. package/dist/types/carousel/types.d.ts +4 -10
  187. package/dist/types/carousel/types.d.ts.map +1 -1
  188. package/dist/types/carousel/utils.d.ts +0 -11
  189. package/dist/types/carousel/utils.d.ts.map +1 -1
  190. package/dist/types/chart/_shared/paths.d.ts +1 -1
  191. package/dist/types/chart/_shared/scale.d.ts +1 -2
  192. package/dist/types/chart/_shared/scale.d.ts.map +1 -1
  193. package/dist/types/chart/bar-chart/BarChart.d.ts +1 -1
  194. package/dist/types/chart/gauge/Gauge.d.ts +1 -1
  195. package/dist/types/chart/line-chart/LineChart.d.ts +2 -2
  196. package/dist/types/chart/pie-chart/PieChart.d.ts +1 -1
  197. package/dist/types/chart/sparkline/Sparkline.d.ts +1 -1
  198. package/dist/types/checkbox/utils.d.ts.map +1 -1
  199. package/dist/types/color-picker/ColorPicker.d.ts +0 -6
  200. package/dist/types/color-picker/ColorPicker.d.ts.map +1 -1
  201. package/dist/types/color-picker/_components/ColorPresets.d.ts +1 -1
  202. package/dist/types/color-picker/_components/ColorPresets.d.ts.map +1 -1
  203. package/dist/types/color-picker/utils.d.ts +1 -1
  204. package/dist/types/date-picker/DatePicker.d.ts +0 -6
  205. package/dist/types/date-picker/DatePicker.d.ts.map +1 -1
  206. package/dist/types/date-picker/TimePicker.d.ts +1 -1
  207. package/dist/types/date-picker/_components/TimePanel.d.ts.map +1 -1
  208. package/dist/types/date-picker/utils.d.ts +1 -1
  209. package/dist/types/date-picker/utils.d.ts.map +1 -1
  210. package/dist/types/divider/Divider.d.ts +1 -1
  211. package/dist/types/divider/types.d.ts +2 -4
  212. package/dist/types/divider/types.d.ts.map +1 -1
  213. package/dist/types/drawer/Drawer.d.ts +5 -6
  214. package/dist/types/drawer/Drawer.d.ts.map +1 -1
  215. package/dist/types/dropdown/_components/DropdownContent.d.ts +1 -1
  216. package/dist/types/dropdown/_components/DropdownItem.d.ts +0 -5
  217. package/dist/types/dropdown/_components/DropdownItem.d.ts.map +1 -1
  218. package/dist/types/dropdown/types.d.ts +1 -1
  219. package/dist/types/dropdown/useDropdown.d.ts +0 -16
  220. package/dist/types/dropdown/useDropdown.d.ts.map +1 -1
  221. package/dist/types/dropdown/utils.d.ts +1 -1
  222. package/dist/types/empty/Empty.d.ts +1 -6
  223. package/dist/types/empty/Empty.d.ts.map +1 -1
  224. package/dist/types/field/Field.d.ts +1 -5
  225. package/dist/types/field/Field.d.ts.map +1 -1
  226. package/dist/types/float-button/BackTop.d.ts +1 -1
  227. package/dist/types/float-button/FloatButton.d.ts +0 -5
  228. package/dist/types/float-button/FloatButton.d.ts.map +1 -1
  229. package/dist/types/float-button/FloatButtonGroup.d.ts +1 -1
  230. package/dist/types/float-button/utils.d.ts +1 -1
  231. package/dist/types/foundations/usePersonaTheme.d.ts +1 -1
  232. package/dist/types/image/Image.d.ts +0 -6
  233. package/dist/types/image/Image.d.ts.map +1 -1
  234. package/dist/types/image/ImageGallery.d.ts +1 -1
  235. package/dist/types/image/ImageViewer.d.ts +1 -1
  236. package/dist/types/image/galleryUtils.d.ts +1 -1
  237. package/dist/types/input/SearchInput.d.ts +1 -6
  238. package/dist/types/input/SearchInput.d.ts.map +1 -1
  239. package/dist/types/input/Textarea.d.ts +2 -6
  240. package/dist/types/input/Textarea.d.ts.map +1 -1
  241. package/dist/types/input/mention/types.d.ts +1 -2
  242. package/dist/types/input/mention/types.d.ts.map +1 -1
  243. package/dist/types/input/types.d.ts +3 -15
  244. package/dist/types/input/types.d.ts.map +1 -1
  245. package/dist/types/input/utils.d.ts +1 -26
  246. package/dist/types/input/utils.d.ts.map +1 -1
  247. package/dist/types/input-number/InputNumber.d.ts +0 -2
  248. package/dist/types/input-number/InputNumber.d.ts.map +1 -1
  249. package/dist/types/input-number/utils.d.ts +1 -1
  250. package/dist/types/lib/ContentSkeleton.d.ts +1 -1
  251. package/dist/types/lib/FloatingArrow.d.ts +0 -10
  252. package/dist/types/lib/FloatingArrow.d.ts.map +1 -1
  253. package/dist/types/lib/SkeletonDemo.d.ts +1 -1
  254. package/dist/types/lib/SkeletonSlot.d.ts +1 -1
  255. package/dist/types/lib/colorClasses.d.ts +1 -7
  256. package/dist/types/lib/colorClasses.d.ts.map +1 -1
  257. package/dist/types/lib/date/index.d.ts +1 -1
  258. package/dist/types/lib/elevationClass.d.ts +0 -8
  259. package/dist/types/lib/elevationClass.d.ts.map +1 -1
  260. package/dist/types/lib/fieldContext.d.ts +1 -1
  261. package/dist/types/lib/floating.d.ts +2 -7
  262. package/dist/types/lib/floating.d.ts.map +1 -1
  263. package/dist/types/lib/infiniteScroll.d.ts +1 -1
  264. package/dist/types/lib/linkBehavior.d.ts +1 -1
  265. package/dist/types/lib/overlay.d.ts +0 -7
  266. package/dist/types/lib/overlay.d.ts.map +1 -1
  267. package/dist/types/lib/sizeClasses.d.ts +2 -2
  268. package/dist/types/lib/skeleton.d.ts +1 -1
  269. package/dist/types/lib/storyMeta.d.ts +7 -28
  270. package/dist/types/lib/storyMeta.d.ts.map +1 -1
  271. package/dist/types/lib/storybookArgTypes.d.ts +1 -1
  272. package/dist/types/lib/useFloatingPosition.d.ts +1 -1
  273. package/dist/types/list/List.d.ts +0 -4
  274. package/dist/types/list/List.d.ts.map +1 -1
  275. package/dist/types/loading/Loading.d.ts.map +1 -1
  276. package/dist/types/loading/types.d.ts +2 -5
  277. package/dist/types/loading/types.d.ts.map +1 -1
  278. package/dist/types/loading/utils.d.ts +0 -5
  279. package/dist/types/loading/utils.d.ts.map +1 -1
  280. package/dist/types/masonry/Masonry.d.ts +0 -4
  281. package/dist/types/masonry/Masonry.d.ts.map +1 -1
  282. package/dist/types/menu/_shared/MenuLink.d.ts +0 -4
  283. package/dist/types/menu/_shared/MenuLink.d.ts.map +1 -1
  284. package/dist/types/menu/_shared/MobileNav.d.ts +0 -6
  285. package/dist/types/menu/_shared/MobileNav.d.ts.map +1 -1
  286. package/dist/types/menu/_shared/NavBar.d.ts +0 -8
  287. package/dist/types/menu/_shared/NavBar.d.ts.map +1 -1
  288. package/dist/types/menu/basic-menu/BasicMenu.d.ts +2 -16
  289. package/dist/types/menu/basic-menu/BasicMenu.d.ts.map +1 -1
  290. package/dist/types/menu/mega-menu/MegaMenu.d.ts +0 -8
  291. package/dist/types/menu/mega-menu/MegaMenu.d.ts.map +1 -1
  292. package/dist/types/menu/mega-menu/_components/MegaMenuItem.d.ts +0 -12
  293. package/dist/types/menu/mega-menu/_components/MegaMenuItem.d.ts.map +1 -1
  294. package/dist/types/menu/sidebar/Sidebar.d.ts +1 -16
  295. package/dist/types/menu/sidebar/Sidebar.d.ts.map +1 -1
  296. package/dist/types/menu/sidebar/_components/SidebarButton.d.ts +0 -6
  297. package/dist/types/menu/sidebar/_components/SidebarButton.d.ts.map +1 -1
  298. package/dist/types/menu/sidebar/_components/SidebarItem.d.ts +0 -10
  299. package/dist/types/menu/sidebar/_components/SidebarItem.d.ts.map +1 -1
  300. package/dist/types/menu/sidebar/_components/SidebarMenu.d.ts +0 -4
  301. package/dist/types/menu/sidebar/_components/SidebarMenu.d.ts.map +1 -1
  302. package/dist/types/menu/types.d.ts +2 -11
  303. package/dist/types/menu/types.d.ts.map +1 -1
  304. package/dist/types/menu/utils.d.ts +0 -22
  305. package/dist/types/menu/utils.d.ts.map +1 -1
  306. package/dist/types/modal/Modal.d.ts +1 -12
  307. package/dist/types/modal/Modal.d.ts.map +1 -1
  308. package/dist/types/modal/types.d.ts +3 -4
  309. package/dist/types/modal/types.d.ts.map +1 -1
  310. package/dist/types/modal/utils.d.ts +1 -5
  311. package/dist/types/modal/utils.d.ts.map +1 -1
  312. package/dist/types/pagination/Pagination.d.ts +2 -11
  313. package/dist/types/pagination/Pagination.d.ts.map +1 -1
  314. package/dist/types/pagination/types.d.ts +1 -1
  315. package/dist/types/pagination/types.d.ts.map +1 -1
  316. package/dist/types/pagination/utils.d.ts +5 -12
  317. package/dist/types/pagination/utils.d.ts.map +1 -1
  318. package/dist/types/popconfirm/Popconfirm.d.ts +0 -4
  319. package/dist/types/popconfirm/Popconfirm.d.ts.map +1 -1
  320. package/dist/types/popover/Popover.d.ts +0 -5
  321. package/dist/types/popover/Popover.d.ts.map +1 -1
  322. package/dist/types/progress/Progress.d.ts +0 -3
  323. package/dist/types/progress/Progress.d.ts.map +1 -1
  324. package/dist/types/qrcode/QRCode.d.ts +0 -6
  325. package/dist/types/qrcode/QRCode.d.ts.map +1 -1
  326. package/dist/types/radio/utils.d.ts +1 -1
  327. package/dist/types/segmented/Segmented.d.ts +0 -4
  328. package/dist/types/segmented/Segmented.d.ts.map +1 -1
  329. package/dist/types/select/Select.d.ts +0 -5
  330. package/dist/types/select/Select.d.ts.map +1 -1
  331. package/dist/types/select/_components/SelectPanel.d.ts +2 -3
  332. package/dist/types/select/_components/SelectPanel.d.ts.map +1 -1
  333. package/dist/types/select/types.d.ts +1 -1
  334. package/dist/types/select/types.d.ts.map +1 -1
  335. package/dist/types/skeleton/utils.d.ts.map +1 -1
  336. package/dist/types/slider/Slider.d.ts.map +1 -1
  337. package/dist/types/slider/utils.d.ts +0 -1
  338. package/dist/types/slider/utils.d.ts.map +1 -1
  339. package/dist/types/splitter/Splitter.d.ts +4 -4
  340. package/dist/types/statistic/Statistic.d.ts +1 -1
  341. package/dist/types/statistic/utils.d.ts +2 -4
  342. package/dist/types/statistic/utils.d.ts.map +1 -1
  343. package/dist/types/steps/Steps.d.ts.map +1 -1
  344. package/dist/types/steps/_components/StepsContent.d.ts +1 -10
  345. package/dist/types/steps/_components/StepsContent.d.ts.map +1 -1
  346. package/dist/types/steps/types.d.ts +1 -1
  347. package/dist/types/steps/types.d.ts.map +1 -1
  348. package/dist/types/steps/utils.d.ts +0 -9
  349. package/dist/types/steps/utils.d.ts.map +1 -1
  350. package/dist/types/switch/Switch.d.ts +1 -9
  351. package/dist/types/switch/Switch.d.ts.map +1 -1
  352. package/dist/types/switch/utils.d.ts.map +1 -1
  353. package/dist/types/table/Table.d.ts +7 -11
  354. package/dist/types/table/Table.d.ts.map +1 -1
  355. package/dist/types/table/_components/TableBody.d.ts.map +1 -1
  356. package/dist/types/table/_components/TableEditDrawer.d.ts +0 -8
  357. package/dist/types/table/_components/TableEditDrawer.d.ts.map +1 -1
  358. package/dist/types/table/_components/TableHeader.d.ts +0 -7
  359. package/dist/types/table/_components/TableHeader.d.ts.map +1 -1
  360. package/dist/types/table/_components/TableInfoValue.d.ts +0 -10
  361. package/dist/types/table/_components/TableInfoValue.d.ts.map +1 -1
  362. package/dist/types/table/_components/TablePagination.d.ts +0 -12
  363. package/dist/types/table/_components/TablePagination.d.ts.map +1 -1
  364. package/dist/types/table/_components/TableRowActions.d.ts +0 -6
  365. package/dist/types/table/_components/TableRowActions.d.ts.map +1 -1
  366. package/dist/types/table/types.d.ts +2 -18
  367. package/dist/types/table/types.d.ts.map +1 -1
  368. package/dist/types/table/utils.d.ts +1 -7
  369. package/dist/types/table/utils.d.ts.map +1 -1
  370. package/dist/types/tabs/Tabs.d.ts +0 -1
  371. package/dist/types/tabs/Tabs.d.ts.map +1 -1
  372. package/dist/types/tabs/_components/TabsContent.d.ts +0 -5
  373. package/dist/types/tabs/_components/TabsContent.d.ts.map +1 -1
  374. package/dist/types/tabs/_components/TabsList.d.ts +6 -6
  375. package/dist/types/tabs/_components/TabsTrigger.d.ts +1 -1
  376. package/dist/types/tabs/utils.d.ts +0 -5
  377. package/dist/types/tabs/utils.d.ts.map +1 -1
  378. package/dist/types/tag/utils.d.ts +0 -8
  379. package/dist/types/tag/utils.d.ts.map +1 -1
  380. package/dist/types/theme-customizer/ThemeCustomizer.d.ts +1 -1
  381. package/dist/types/timeline/Timeline.d.ts +1 -3
  382. package/dist/types/timeline/Timeline.d.ts.map +1 -1
  383. package/dist/types/toast/Toast.d.ts +2 -2
  384. package/dist/types/toast/useToast.d.ts +2 -4
  385. package/dist/types/toast/useToast.d.ts.map +1 -1
  386. package/dist/types/toast/utils.d.ts +0 -1
  387. package/dist/types/toast/utils.d.ts.map +1 -1
  388. package/dist/types/tooltip/Tooltip.d.ts.map +1 -1
  389. package/dist/types/tooltip/utils.d.ts +0 -6
  390. package/dist/types/tooltip/utils.d.ts.map +1 -1
  391. package/dist/types/tour/Tour.d.ts +0 -6
  392. package/dist/types/tour/Tour.d.ts.map +1 -1
  393. package/dist/types/tour/utils.d.ts +1 -1
  394. package/dist/types/tour/utils.d.ts.map +1 -1
  395. package/dist/types/transfer/Transfer.d.ts +0 -5
  396. package/dist/types/transfer/Transfer.d.ts.map +1 -1
  397. package/dist/types/transfer/utils.d.ts +1 -3
  398. package/dist/types/transfer/utils.d.ts.map +1 -1
  399. package/dist/types/tree/Tree.d.ts +0 -6
  400. package/dist/types/tree/Tree.d.ts.map +1 -1
  401. package/dist/types/tree/utils.d.ts +1 -1
  402. package/dist/types/tree-select/TreeSelect.d.ts +0 -6
  403. package/dist/types/tree-select/TreeSelect.d.ts.map +1 -1
  404. package/dist/types/tree-select/_components/TreeSelectPanel.d.ts +1 -1
  405. package/dist/types/tree-select/utils.d.ts +1 -1
  406. package/dist/types/typography/utils.d.ts.map +1 -1
  407. package/dist/types/upload/_components/List.d.ts +0 -7
  408. package/dist/types/upload/_components/List.d.ts.map +1 -1
  409. package/dist/types/upload/_components/ReviewList.d.ts +0 -8
  410. package/dist/types/upload/_components/ReviewList.d.ts.map +1 -1
  411. package/dist/types/upload/_components/UploadDragDropButton.d.ts +0 -8
  412. package/dist/types/upload/_components/UploadDragDropButton.d.ts.map +1 -1
  413. package/dist/types/upload/_components/UploadReviewButton.d.ts +0 -5
  414. package/dist/types/upload/_components/UploadReviewButton.d.ts.map +1 -1
  415. package/dist/types/upload/types.d.ts +5 -8
  416. package/dist/types/upload/types.d.ts.map +1 -1
  417. package/dist/types/upload/useUpload.d.ts +0 -10
  418. package/dist/types/upload/useUpload.d.ts.map +1 -1
  419. package/dist/types/upload/utils.d.ts +0 -4
  420. package/dist/types/upload/utils.d.ts.map +1 -1
  421. package/dist/typewriter.js +1 -1
  422. package/dist/typography.js +2 -2
  423. package/dist/typography.js.map +1 -1
  424. package/dist/upload.js +8 -8
  425. package/dist/upload.js.map +1 -1
  426. package/package.json +3 -3
  427. package/dist/chunk-3ABWBQCS.js.map +0 -1
  428. package/dist/chunk-47FHUOLT.js.map +0 -1
  429. package/dist/chunk-54HHEXXD.js.map +0 -1
  430. package/dist/chunk-BDV4GOEN.js.map +0 -1
  431. package/dist/chunk-CYLXW66E.js.map +0 -1
  432. package/dist/chunk-DKENCYHA.js.map +0 -1
  433. package/dist/chunk-DUCIAQGR.js.map +0 -1
  434. package/dist/chunk-ELHESRRH.js.map +0 -1
  435. package/dist/chunk-FFXRFQSU.js.map +0 -1
  436. package/dist/chunk-FNJHS5KQ.js.map +0 -1
  437. package/dist/chunk-IO4346TF.js.map +0 -1
  438. package/dist/chunk-IP2J3BWY.js.map +0 -1
  439. package/dist/chunk-JNZODUXP.js.map +0 -1
  440. package/dist/chunk-KCYM2JXP.js.map +0 -1
  441. package/dist/chunk-LBQMEHK6.js.map +0 -1
  442. package/dist/chunk-LBXIPDAB.js.map +0 -1
  443. package/dist/chunk-LEOIKO7C.js.map +0 -1
  444. package/dist/chunk-LZHERDNB.js.map +0 -1
  445. package/dist/chunk-NPM7IDYV.js.map +0 -1
  446. package/dist/chunk-NS7FKOFI.js.map +0 -1
  447. package/dist/chunk-P7Z5BREP.js.map +0 -1
  448. package/dist/chunk-QDFDMWXD.js.map +0 -1
  449. package/dist/chunk-QNOHFHVL.js.map +0 -1
  450. package/dist/chunk-QZRBO7BE.js.map +0 -1
  451. package/dist/chunk-RIBB5OJV.js.map +0 -1
  452. package/dist/chunk-S66GKX2W.js.map +0 -1
  453. package/dist/chunk-TCYDVNSU.js.map +0 -1
  454. package/dist/chunk-TXRQCHOR.js.map +0 -1
  455. package/dist/chunk-V7KDUUV6.js.map +0 -1
  456. package/dist/chunk-XUKVQO6M.js.map +0 -1
  457. package/dist/chunk-YZ7MDC6B.js.map +0 -1
  458. package/dist/chunk-ZXYQ2ZPR.js.map +0 -1
  459. /package/dist/{chunk-2IEXY3OZ.js.map → chunk-CVKAGR3D.js.map} +0 -0
@@ -1,11 +1,11 @@
1
1
  import {
2
2
  InputNumber
3
- } from "./chunk-LZHERDNB.js";
4
- import "./chunk-DUCIAQGR.js";
5
- import "./chunk-LBQMEHK6.js";
6
- import "./chunk-FFXRFQSU.js";
7
- import "./chunk-IP2J3BWY.js";
8
- import "./chunk-54HHEXXD.js";
3
+ } from "./chunk-CXIWRNSP.js";
4
+ import "./chunk-NENNFQEY.js";
5
+ import "./chunk-NPFMPRII.js";
6
+ import "./chunk-POBOJBNJ.js";
7
+ import "./chunk-6AMBZXZJ.js";
8
+ import "./chunk-VKN374SD.js";
9
9
  export {
10
10
  InputNumber
11
11
  };
package/dist/input.js CHANGED
@@ -3,15 +3,15 @@ import {
3
3
  OtpInput,
4
4
  SearchInput,
5
5
  Textarea
6
- } from "./chunk-P7Z5BREP.js";
7
- import "./chunk-YZ7MDC6B.js";
6
+ } from "./chunk-L6DBWUAB.js";
7
+ import "./chunk-LNL4TCGL.js";
8
8
  import "./chunk-KSPM2Z3T.js";
9
- import "./chunk-DUCIAQGR.js";
10
- import "./chunk-LBQMEHK6.js";
11
- import "./chunk-TCYDVNSU.js";
12
- import "./chunk-FFXRFQSU.js";
13
- import "./chunk-IP2J3BWY.js";
14
- import "./chunk-54HHEXXD.js";
9
+ import "./chunk-NENNFQEY.js";
10
+ import "./chunk-NPFMPRII.js";
11
+ import "./chunk-MT4VH7QV.js";
12
+ import "./chunk-POBOJBNJ.js";
13
+ import "./chunk-6AMBZXZJ.js";
14
+ import "./chunk-VKN374SD.js";
15
15
  export {
16
16
  Input,
17
17
  OtpInput,
package/dist/list.js CHANGED
@@ -2,28 +2,28 @@
2
2
 
3
3
  import {
4
4
  Loading
5
- } from "./chunk-47FHUOLT.js";
5
+ } from "./chunk-BLFY5UAL.js";
6
6
  import {
7
7
  Pagination
8
- } from "./chunk-TXRQCHOR.js";
8
+ } from "./chunk-ZAR3SCPV.js";
9
9
  import {
10
10
  InfiniteScrollFooter
11
- } from "./chunk-BDV4GOEN.js";
11
+ } from "./chunk-5GILG5AK.js";
12
12
  import {
13
13
  Empty
14
- } from "./chunk-LBXIPDAB.js";
14
+ } from "./chunk-JXD5DW6E.js";
15
15
  import {
16
16
  ContentSkeleton
17
- } from "./chunk-V7KDUUV6.js";
17
+ } from "./chunk-RMNV2CE2.js";
18
18
  import {
19
19
  SkeletonBlock
20
- } from "./chunk-NPM7IDYV.js";
21
- import "./chunk-XUKVQO6M.js";
22
- import "./chunk-DKENCYHA.js";
23
- import "./chunk-2IEXY3OZ.js";
24
- import "./chunk-FFXRFQSU.js";
25
- import "./chunk-IP2J3BWY.js";
26
- import "./chunk-54HHEXXD.js";
20
+ } from "./chunk-TSFAAREV.js";
21
+ import "./chunk-6CSUVVFG.js";
22
+ import "./chunk-MXGY2ENX.js";
23
+ import "./chunk-CVKAGR3D.js";
24
+ import "./chunk-POBOJBNJ.js";
25
+ import "./chunk-6AMBZXZJ.js";
26
+ import "./chunk-VKN374SD.js";
27
27
 
28
28
  // src/list/List.tsx
29
29
  import React, { createContext, useContext } from "react";
package/dist/list.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/list/List.tsx","../src/list/utils.ts"],"sourcesContent":["\"use client\";\n\nimport React, { createContext, useContext } from \"react\";\nimport { cn, useControllableState, type Size } from \"@mari-ui/core\";\nimport { ContentSkeleton } from \"../lib/ContentSkeleton\";\nimport { InfiniteScrollFooter } from \"../lib/infiniteScroll\";\nimport { Empty } from \"../empty\";\nimport { Loading } from \"../loading\";\nimport { Pagination } from \"../pagination\";\nimport { SkeletonBlock } from \"../skeleton\";\nimport type { ListItemLayout, ListItemMetaProps, ListItemProps, ListPagination, ListProps } from \"./types\";\nimport { getPageSlice, gridClassName, resolveRowKey } from \"./utils\";\n\nexport type { ListProps, ListItemProps, ListItemMetaProps };\n\ninterface ListContextValue {\n size: Size;\n bordered: boolean;\n itemLayout: ListItemLayout;\n grid: boolean;\n skeleton: boolean;\n}\n\nconst ListContext = createContext<ListContextValue>({ size: \"md\", bordered: false, itemLayout: \"horizontal\", grid: false, skeleton: false });\n\n/** ant.design ölçüleri: sm 8/16, md 12/24, lg 16/24px (çerçevesizde yatay dolgu yok). */\nconst PAD_Y: Record<Size, string> = { sm: \"py-2\", md: \"py-3\", lg: \"py-4\" };\nconst PAD_X: Record<Size, string> = { sm: \"px-4\", md: \"px-6\", lg: \"px-6\" };\n\nfunction rowPadding({ size, bordered }: Pick<ListContextValue, \"size\" | \"bordered\">): string {\n return cn(PAD_Y[size], bordered && PAD_X[size]);\n}\n\nconst DEFAULT_PAGE_SIZE = 10;\n\nfunction PlaceholderRow({ layout }: Readonly<{ layout: ListItemLayout }>) {\n if (layout === \"vertical\") {\n return (\n <div className=\"flex flex-col gap-3\">\n <div className=\"flex items-center gap-4\">\n <SkeletonBlock active width=\"2rem\" height=\"2rem\" radius=\"full\" />\n <SkeletonBlock active width=\"35%\" height=\"1rem\" radius=\"sm\" />\n </div>\n <SkeletonBlock active width=\"100%\" height=\"0.75rem\" radius=\"sm\" />\n <SkeletonBlock active width=\"80%\" height=\"0.75rem\" radius=\"sm\" />\n </div>\n );\n }\n // Satır kutuları `ListItemMeta` ile aynı (20px başlık + 2px + 20px açıklama) →\n // veri gelince tipik bir satır aynı yükseklikte kalır.\n return (\n <div className=\"flex items-start gap-4\">\n <SkeletonBlock active width=\"2rem\" height=\"2rem\" radius=\"full\" />\n <div className=\"flex min-w-0 flex-1 flex-col gap-0.5\">\n <div className=\"flex h-5 items-center\">\n <SkeletonBlock active width=\"40%\" height=\"0.875rem\" radius=\"sm\" />\n </div>\n <div className=\"flex h-5 items-center\">\n <SkeletonBlock active width=\"70%\" height=\"0.75rem\" radius=\"sm\" />\n </div>\n </div>\n </div>\n );\n}\n\nconst CELL_PLACEHOLDER = <SkeletonBlock active height=\"7rem\" radius=\"lg\" />;\n\n/** Veri henüz yokken (ilk yükleme) satır ya da hücre biçiminde yer tutucular. */\nfunction Placeholders({ count, ctx, gridClass }: Readonly<{ count: number; ctx: ListContextValue; gridClass?: string }>) {\n const rows = Array.from({ length: count }, (_, i) => i);\n return (\n <div aria-hidden data-skeleton=\"\" className={gridClass ?? \"divide-y divide-mari-border\"}>\n {rows.map((i) => (\n <div key={i} className={gridClass ? undefined : rowPadding(ctx)}>\n {gridClass ? CELL_PLACEHOLDER : <PlaceholderRow layout={ctx.itemLayout} />}\n </div>\n ))}\n </div>\n );\n}\n\n/** Başlık/alt bilgi gibi serbest bölge: kenarlığı görünür kalır, içeriği iskelete döner. */\nfunction Region({ skeleton, className, children }: Readonly<{ skeleton: boolean; className?: string; children: React.ReactNode }>) {\n return (\n <div className={className}>\n <ContentSkeleton on={skeleton} fallback={<SkeletonBlock active width=\"30%\" height=\"0.875rem\" radius=\"sm\" />}>\n {children}\n </ContentSkeleton>\n </div>\n );\n}\n\nfunction usePagedData<T>(data: T[], config: ListPagination | undefined) {\n const [page, setPage] = useControllableState<number>({ value: config?.currentPage, defaultValue: config?.defaultPage ?? 1 });\n const [pageSize, setPageSize] = useControllableState<number>({ value: config?.pageSize, defaultValue: config?.defaultPageSize ?? DEFAULT_PAGE_SIZE });\n // Sayfalamasız ilk yüklemede 3 yer tutucu satır; sayfalıda sayfa boyu (en çok 10).\n if (!config) return { items: data, offset: 0, page, pageSize: 3, setPage, setPageSize, total: data.length };\n // Sunucu tarafı: `dataSource` zaten o sayfa.\n if (config.totalItems !== undefined) return { items: data, offset: (page - 1) * pageSize, page, pageSize, setPage, setPageSize, total: config.totalItems };\n const slice = getPageSlice(data, page, pageSize);\n return { items: slice.items, offset: slice.offset, page: slice.page, pageSize, setPage, setPageSize, total: data.length };\n}\n\nfunction ListPager({\n config,\n paged,\n placement,\n skeleton,\n className,\n}: Readonly<{\n config: ListPagination;\n paged: ReturnType<typeof usePagedData>;\n placement: \"top\" | \"bottom\";\n skeleton: boolean;\n className?: string;\n}>) {\n const position = config.position ?? \"bottom\";\n if (paged.total === 0 || (position !== placement && position !== \"both\")) return null;\n return (\n <div className={className}>\n <Pagination\n align=\"end\"\n {...config}\n skeleton={skeleton}\n totalItems={paged.total}\n currentPage={paged.page}\n pageSize={paged.pageSize}\n showSizeChanger={config.showSizeChanger ?? Boolean(config.onPageSizeChange)}\n onPageChange={(p, s) => {\n paged.setPage(p);\n config.onPageChange?.(p, s);\n }}\n onPageSizeChange={(s, p) => {\n paged.setPageSize(s);\n config.onPageSizeChange?.(s, p);\n }}\n />\n </div>\n );\n}\n\n/**\n * Faz 16.3 — yapı ant.design List'ten (header/footer, `ListItemMeta` avatar +\n * başlık + açıklama, ayırıcılı eylemler, `extra`, yatay/dikey düzen, ızgara,\n * sayfalama, \"daha fazla yükle\"), görünüm kendi token'larımızdan.\n *\n * Semantik: `<ul>` + `<li>`; eylemler kendi `<ul>`sunda. `skeleton`: her satır\n * kendi içeriğini ölçüp kendi şeklinde iskelet çizer (ayırıcılar görünür kalır);\n * veri yoksa sayfa boyu kadar genel satır. `loading`: mevcut satırlar yerinde\n * soluklaşır (Loading sarmalama).\n *\n * React Native karşılığı henüz yok (bkz. `@mari-ui/native` README) — prop\n * sözleşmesi (`dataSource`/`renderItem`/`rowKey`/`header`/`footer`/`empty`)\n * FlatList'e birebir taşınabilecek şekilde seçildi.\n */\nexport function List<T>({\n dataSource,\n renderItem,\n rowKey,\n children,\n header,\n footer,\n bordered = false,\n split = true,\n size = \"md\",\n itemLayout = \"horizontal\",\n grid,\n pagination,\n loadMore,\n infinite,\n loading = false,\n empty,\n className,\n skeleton = false,\n \"aria-label\": ariaLabel,\n \"aria-labelledby\": ariaLabelledBy,\n}: Readonly<ListProps<T>>) {\n const data = dataSource ?? [];\n const config = pagination || undefined;\n const paged = usePagedData(data, config);\n const ctx: ListContextValue = { size, bordered, itemLayout, grid: Boolean(grid), skeleton };\n const gridClass = grid ? gridClassName(grid) : undefined;\n const showSplit = split && !grid;\n\n const rendered =\n renderItem && dataSource\n ? paged.items.map((item, i) => (\n <React.Fragment key={resolveRowKey(item, paged.offset + i, rowKey)}>{renderItem(item, paged.offset + i)}</React.Fragment>\n ))\n : children;\n const hasItems = React.Children.count(rendered) > 0;\n\n let body: React.ReactNode;\n if (hasItems) {\n body = (\n <ul\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledBy}\n className={cn(gridClass, showSplit && \"divide-y divide-mari-border\", grid && bordered && rowPadding(ctx))}\n >\n {rendered}\n </ul>\n );\n } else if (skeleton) {\n body = <Placeholders count={Math.min(paged.pageSize, 10)} ctx={ctx} gridClass={gridClass && cn(gridClass, bordered && rowPadding(ctx))} />;\n } else {\n body = <div className={rowPadding(ctx)}>{empty ?? <Empty size=\"sm\" title=\"Kayıt yok\" />}</div>;\n }\n\n const pager = (placement: \"top\" | \"bottom\") =>\n config && (\n <ListPager\n config={config}\n paged={paged}\n placement={placement}\n skeleton={skeleton}\n className={cn(rowPadding(ctx), showSplit && (placement === \"top\" ? \"border-b border-mari-border\" : \"border-t border-mari-border\"))}\n />\n );\n\n return (\n <ListContext.Provider value={ctx}>\n <div\n aria-busy={skeleton || loading || undefined}\n className={cn(\"text-sm text-mari-foreground\", bordered && \"overflow-hidden rounded-lg border border-mari-border bg-mari-surface\", className)}\n >\n {header && (\n <Region skeleton={skeleton} className={cn(rowPadding(ctx), \"font-medium\", split && \"border-b border-mari-border\")}>\n {header}\n </Region>\n )}\n {pager(\"top\")}\n <Loading spinning={loading}>{body}</Loading>\n {infinite && !skeleton && hasItems && <InfiniteScrollFooter options={infinite} className={cn(showSplit && \"border-t border-mari-border\")} />}\n {loadMore && (\n <Region skeleton={skeleton} className={cn(\"flex justify-center\", PAD_Y[size], showSplit && \"border-t border-mari-border\")}>\n {loadMore}\n </Region>\n )}\n {pager(\"bottom\")}\n {footer && (\n <Region skeleton={skeleton} className={cn(rowPadding(ctx), \"text-mari-muted\", split && \"border-t border-mari-border\")}>\n {footer}\n </Region>\n )}\n </div>\n </ListContext.Provider>\n );\n}\n\nfunction ItemActions({ actions, className }: Readonly<{ actions: React.ReactNode[]; className?: string }>) {\n return (\n <ul className={cn(\"flex shrink-0 flex-wrap items-center text-mari-muted\", className)}>\n {actions.map((action, i) => (\n <li\n // Eylemler sabit, sıralanmaz.\n key={i}\n className={cn(\n \"relative flex items-center px-2 first:pl-0 last:pr-0\",\n \"not-last:after:absolute not-last:after:top-1/2 not-last:after:right-0 not-last:after:h-3.5 not-last:after:w-px not-last:after:-translate-y-1/2 not-last:after:bg-mari-border\"\n )}\n >\n {action}\n </li>\n ))}\n </ul>\n );\n}\n\nfunction ItemLayout({ ctx, children, actions, extra }: Pick<ListItemProps, \"children\" | \"actions\" | \"extra\"> & { ctx: ListContextValue }) {\n const actionList = actions && actions.length > 0 ? actions : undefined;\n if (ctx.itemLayout === \"vertical\") {\n return (\n <div className=\"flex flex-col gap-4 sm:flex-row sm:gap-6\">\n <div className=\"flex min-w-0 flex-1 flex-col gap-4\">\n {children}\n {actionList && <ItemActions actions={actionList} />}\n </div>\n {extra && <div className=\"order-first shrink-0 sm:order-last\">{extra}</div>}\n </div>\n );\n }\n return (\n <div className=\"flex flex-wrap items-center gap-x-6 gap-y-2\">\n <div className=\"flex min-w-0 flex-1 basis-56 items-center gap-4\">{children}</div>\n {actionList && <ItemActions actions={actionList} className=\"ml-auto\" />}\n {extra && <div className=\"shrink-0\">{extra}</div>}\n </div>\n );\n}\n\n/** Tek satır / ızgara hücresi. `List`in içinde kullanılır. */\nexport function ListItem({ children, actions, extra, className, ...rest }: Readonly<ListItemProps>) {\n const ctx = useContext(ListContext);\n\n if (ctx.grid) {\n return (\n <li className={cn(\"min-w-0\", className)} {...rest}>\n <ContentSkeleton on={ctx.skeleton} fallback={CELL_PLACEHOLDER}>\n {children}\n </ContentSkeleton>\n </li>\n );\n }\n\n return (\n <li className={cn(rowPadding(ctx), className)} {...rest}>\n <ContentSkeleton on={ctx.skeleton} fallback={<PlaceholderRow layout={ctx.itemLayout} />}>\n <ItemLayout ctx={ctx} actions={actions} extra={extra}>\n {children}\n </ItemLayout>\n </ContentSkeleton>\n </li>\n );\n}\n\n/** Avatar + başlık + açıklama bloğu. */\nexport function ListItemMeta({ avatar, title, description, className }: Readonly<ListItemMetaProps>) {\n const { itemLayout } = useContext(ListContext);\n const vertical = itemLayout === \"vertical\";\n return (\n <div className={cn(\"flex min-w-0 flex-1 items-start gap-4\", className)}>\n {avatar && <div className=\"flex shrink-0\">{avatar}</div>}\n {/* Boşluksuz uzun metin (e-posta, URL) dar ekranda yandaki öğenin altına taşmasın. */}\n <div className=\"min-w-0 flex-1 break-words\">\n {title && <div className={cn(\"font-medium text-mari-foreground\", vertical ? \"text-base\" : \"leading-5\", description && (vertical ? \"mb-1\" : \"mb-0.5\"))}>{title}</div>}\n {description && <div className=\"leading-5 text-mari-muted\">{description}</div>}\n </div>\n </div>\n );\n}\n","import type React from \"react\";\nimport type { Size } from \"@mari-ui/core\";\nimport type { ListBreakpoint, ListGrid, ListGridColumns, ListProps } from \"./types\";\n\n/** `rowKey` → alan/fonksiyon; yoksa `key`/`id` alanı, o da yoksa sıra numarası. */\nexport function resolveRowKey<T>(item: T, index: number, rowKey: ListProps<T>[\"rowKey\"]): React.Key {\n if (typeof rowKey === \"function\") return rowKey(item, index);\n if (rowKey !== undefined) return String(item[rowKey]);\n if (item && typeof item === \"object\") {\n const record = item as Record<string, unknown>;\n for (const field of [\"key\", \"id\"]) {\n const value = record[field];\n if (typeof value === \"string\" || typeof value === \"number\") return value;\n }\n }\n return index;\n}\n\n/** İstemci tarafı sayfalama: 1 tabanlı `page`, kayıt aralığı dışına taşarsa son sayfa. */\nexport function getPageSlice<T>(data: T[], page: number, pageSize: number): { items: T[]; page: number; offset: number } {\n const totalPages = Math.max(1, Math.ceil(data.length / pageSize));\n const safePage = Math.min(Math.max(1, page), totalPages);\n const offset = (safePage - 1) * pageSize;\n return { items: data.slice(offset, offset + pageSize), page: safePage, offset };\n}\n\n// Tailwind derleme zamanında tarar — her sınıf literal.\nconst COLUMNS: Record<ListBreakpoint, Record<ListGridColumns, string>> = {\n base: { 1: \"grid-cols-1\", 2: \"grid-cols-2\", 3: \"grid-cols-3\", 4: \"grid-cols-4\", 5: \"grid-cols-5\", 6: \"grid-cols-6\" },\n sm: { 1: \"sm:grid-cols-1\", 2: \"sm:grid-cols-2\", 3: \"sm:grid-cols-3\", 4: \"sm:grid-cols-4\", 5: \"sm:grid-cols-5\", 6: \"sm:grid-cols-6\" },\n md: { 1: \"md:grid-cols-1\", 2: \"md:grid-cols-2\", 3: \"md:grid-cols-3\", 4: \"md:grid-cols-4\", 5: \"md:grid-cols-5\", 6: \"md:grid-cols-6\" },\n lg: { 1: \"lg:grid-cols-1\", 2: \"lg:grid-cols-2\", 3: \"lg:grid-cols-3\", 4: \"lg:grid-cols-4\", 5: \"lg:grid-cols-5\", 6: \"lg:grid-cols-6\" },\n xl: { 1: \"xl:grid-cols-1\", 2: \"xl:grid-cols-2\", 3: \"xl:grid-cols-3\", 4: \"xl:grid-cols-4\", 5: \"xl:grid-cols-5\", 6: \"xl:grid-cols-6\" },\n};\n\nconst GAP: Record<Size, string> = { sm: \"gap-2\", md: \"gap-4\", lg: \"gap-6\" };\n\nconst BREAKPOINTS: ListBreakpoint[] = [\"base\", \"sm\", \"md\", \"lg\", \"xl\"];\n\n/**\n * Izgara sınıfları. Tek sayı verilse de mobilde tek sütuna düşmez — tüketici\n * mobil düzeni istiyorsa nesne biçimini kullanır (ant `grid.xs` gibi).\n */\nexport function gridClassName(grid: ListGrid): string {\n const columns = typeof grid.columns === \"number\" ? { base: grid.columns } : grid.columns;\n const classes = BREAKPOINTS.flatMap((bp) => {\n const count = columns[bp];\n return count ? [COLUMNS[bp][count]] : [];\n });\n if (columns.base === undefined) classes.unshift(COLUMNS.base[1]);\n return [\"grid\", GAP[grid.gap ?? \"md\"], ...classes].join(\" \");\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,OAAO,SAAS,eAAe,kBAAkB;AACjD,SAAS,IAAI,4BAAuC;;;ACE7C,SAAS,cAAiB,MAAS,OAAe,QAA2C;AAClG,MAAI,OAAO,WAAW,WAAY,QAAO,OAAO,MAAM,KAAK;AAC3D,MAAI,WAAW,OAAW,QAAO,OAAO,KAAK,MAAM,CAAC;AACpD,MAAI,QAAQ,OAAO,SAAS,UAAU;AACpC,UAAM,SAAS;AACf,eAAW,SAAS,CAAC,OAAO,IAAI,GAAG;AACjC,YAAM,QAAQ,OAAO,KAAK;AAC1B,UAAI,OAAO,UAAU,YAAY,OAAO,UAAU,SAAU,QAAO;AAAA,IACrE;AAAA,EACF;AACA,SAAO;AACT;AAGO,SAAS,aAAgB,MAAW,MAAc,UAAgE;AACvH,QAAM,aAAa,KAAK,IAAI,GAAG,KAAK,KAAK,KAAK,SAAS,QAAQ,CAAC;AAChE,QAAM,WAAW,KAAK,IAAI,KAAK,IAAI,GAAG,IAAI,GAAG,UAAU;AACvD,QAAM,UAAU,WAAW,KAAK;AAChC,SAAO,EAAE,OAAO,KAAK,MAAM,QAAQ,SAAS,QAAQ,GAAG,MAAM,UAAU,OAAO;AAChF;AAGA,IAAM,UAAmE;AAAA,EACvE,MAAM,EAAE,GAAG,eAAe,GAAG,eAAe,GAAG,eAAe,GAAG,eAAe,GAAG,eAAe,GAAG,cAAc;AAAA,EACnH,IAAI,EAAE,GAAG,kBAAkB,GAAG,kBAAkB,GAAG,kBAAkB,GAAG,kBAAkB,GAAG,kBAAkB,GAAG,iBAAiB;AAAA,EACnI,IAAI,EAAE,GAAG,kBAAkB,GAAG,kBAAkB,GAAG,kBAAkB,GAAG,kBAAkB,GAAG,kBAAkB,GAAG,iBAAiB;AAAA,EACnI,IAAI,EAAE,GAAG,kBAAkB,GAAG,kBAAkB,GAAG,kBAAkB,GAAG,kBAAkB,GAAG,kBAAkB,GAAG,iBAAiB;AAAA,EACnI,IAAI,EAAE,GAAG,kBAAkB,GAAG,kBAAkB,GAAG,kBAAkB,GAAG,kBAAkB,GAAG,kBAAkB,GAAG,iBAAiB;AACrI;AAEA,IAAM,MAA4B,EAAE,IAAI,SAAS,IAAI,SAAS,IAAI,QAAQ;AAE1E,IAAM,cAAgC,CAAC,QAAQ,MAAM,MAAM,MAAM,IAAI;AAM9D,SAAS,cAAc,MAAwB;AACpD,QAAM,UAAU,OAAO,KAAK,YAAY,WAAW,EAAE,MAAM,KAAK,QAAQ,IAAI,KAAK;AACjF,QAAM,UAAU,YAAY,QAAQ,CAAC,OAAO;AAC1C,UAAM,QAAQ,QAAQ,EAAE;AACxB,WAAO,QAAQ,CAAC,QAAQ,EAAE,EAAE,KAAK,CAAC,IAAI,CAAC;AAAA,EACzC,CAAC;AACD,MAAI,QAAQ,SAAS,OAAW,SAAQ,QAAQ,QAAQ,KAAK,CAAC,CAAC;AAC/D,SAAO,CAAC,QAAQ,IAAI,KAAK,OAAO,IAAI,GAAG,GAAG,OAAO,EAAE,KAAK,GAAG;AAC7D;;;ADZQ,SACE,KADF;AAhBR,IAAM,cAAc,cAAgC,EAAE,MAAM,MAAM,UAAU,OAAO,YAAY,cAAc,MAAM,OAAO,UAAU,MAAM,CAAC;AAG3I,IAAM,QAA8B,EAAE,IAAI,QAAQ,IAAI,QAAQ,IAAI,OAAO;AACzE,IAAM,QAA8B,EAAE,IAAI,QAAQ,IAAI,QAAQ,IAAI,OAAO;AAEzE,SAAS,WAAW,EAAE,MAAM,SAAS,GAAwD;AAC3F,SAAO,GAAG,MAAM,IAAI,GAAG,YAAY,MAAM,IAAI,CAAC;AAChD;AAEA,IAAM,oBAAoB;AAE1B,SAAS,eAAe,EAAE,OAAO,GAAyC;AACxE,MAAI,WAAW,YAAY;AACzB,WACE,qBAAC,SAAI,WAAU,uBACb;AAAA,2BAAC,SAAI,WAAU,2BACb;AAAA,4BAAC,iBAAc,QAAM,MAAC,OAAM,QAAO,QAAO,QAAO,QAAO,QAAO;AAAA,QAC/D,oBAAC,iBAAc,QAAM,MAAC,OAAM,OAAM,QAAO,QAAO,QAAO,MAAK;AAAA,SAC9D;AAAA,MACA,oBAAC,iBAAc,QAAM,MAAC,OAAM,QAAO,QAAO,WAAU,QAAO,MAAK;AAAA,MAChE,oBAAC,iBAAc,QAAM,MAAC,OAAM,OAAM,QAAO,WAAU,QAAO,MAAK;AAAA,OACjE;AAAA,EAEJ;AAGA,SACE,qBAAC,SAAI,WAAU,0BACb;AAAA,wBAAC,iBAAc,QAAM,MAAC,OAAM,QAAO,QAAO,QAAO,QAAO,QAAO;AAAA,IAC/D,qBAAC,SAAI,WAAU,wCACb;AAAA,0BAAC,SAAI,WAAU,yBACb,8BAAC,iBAAc,QAAM,MAAC,OAAM,OAAM,QAAO,YAAW,QAAO,MAAK,GAClE;AAAA,MACA,oBAAC,SAAI,WAAU,yBACb,8BAAC,iBAAc,QAAM,MAAC,OAAM,OAAM,QAAO,WAAU,QAAO,MAAK,GACjE;AAAA,OACF;AAAA,KACF;AAEJ;AAEA,IAAM,mBAAmB,oBAAC,iBAAc,QAAM,MAAC,QAAO,QAAO,QAAO,MAAK;AAGzE,SAAS,aAAa,EAAE,OAAO,KAAK,UAAU,GAA2E;AACvH,QAAM,OAAO,MAAM,KAAK,EAAE,QAAQ,MAAM,GAAG,CAAC,GAAG,MAAM,CAAC;AACtD,SACE,oBAAC,SAAI,eAAW,MAAC,iBAAc,IAAG,WAAW,aAAa,+BACvD,eAAK,IAAI,CAAC,MACT,oBAAC,SAAY,WAAW,YAAY,SAAY,WAAW,GAAG,GAC3D,sBAAY,mBAAmB,oBAAC,kBAAe,QAAQ,IAAI,YAAY,KADhE,CAEV,CACD,GACH;AAEJ;AAGA,SAAS,OAAO,EAAE,UAAU,WAAW,SAAS,GAAmF;AACjI,SACE,oBAAC,SAAI,WACH,8BAAC,mBAAgB,IAAI,UAAU,UAAU,oBAAC,iBAAc,QAAM,MAAC,OAAM,OAAM,QAAO,YAAW,QAAO,MAAK,GACtG,UACH,GACF;AAEJ;AAEA,SAAS,aAAgB,MAAW,QAAoC;AACtE,QAAM,CAAC,MAAM,OAAO,IAAI,qBAA6B,EAAE,OAAO,QAAQ,aAAa,cAAc,QAAQ,eAAe,EAAE,CAAC;AAC3H,QAAM,CAAC,UAAU,WAAW,IAAI,qBAA6B,EAAE,OAAO,QAAQ,UAAU,cAAc,QAAQ,mBAAmB,kBAAkB,CAAC;AAEpJ,MAAI,CAAC,OAAQ,QAAO,EAAE,OAAO,MAAM,QAAQ,GAAG,MAAM,UAAU,GAAG,SAAS,aAAa,OAAO,KAAK,OAAO;AAE1G,MAAI,OAAO,eAAe,OAAW,QAAO,EAAE,OAAO,MAAM,SAAS,OAAO,KAAK,UAAU,MAAM,UAAU,SAAS,aAAa,OAAO,OAAO,WAAW;AACzJ,QAAM,QAAQ,aAAa,MAAM,MAAM,QAAQ;AAC/C,SAAO,EAAE,OAAO,MAAM,OAAO,QAAQ,MAAM,QAAQ,MAAM,MAAM,MAAM,UAAU,SAAS,aAAa,OAAO,KAAK,OAAO;AAC1H;AAEA,SAAS,UAAU;AAAA,EACjB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAMI;AACF,QAAM,WAAW,OAAO,YAAY;AACpC,MAAI,MAAM,UAAU,KAAM,aAAa,aAAa,aAAa,OAAS,QAAO;AACjF,SACE,oBAAC,SAAI,WACH;AAAA,IAAC;AAAA;AAAA,MACC,OAAM;AAAA,MACL,GAAG;AAAA,MACJ;AAAA,MACA,YAAY,MAAM;AAAA,MAClB,aAAa,MAAM;AAAA,MACnB,UAAU,MAAM;AAAA,MAChB,iBAAiB,OAAO,mBAAmB,QAAQ,OAAO,gBAAgB;AAAA,MAC1E,cAAc,CAAC,GAAG,MAAM;AACtB,cAAM,QAAQ,CAAC;AACf,eAAO,eAAe,GAAG,CAAC;AAAA,MAC5B;AAAA,MACA,kBAAkB,CAAC,GAAG,MAAM;AAC1B,cAAM,YAAY,CAAC;AACnB,eAAO,mBAAmB,GAAG,CAAC;AAAA,MAChC;AAAA;AAAA,EACF,GACF;AAEJ;AAgBO,SAAS,KAAQ;AAAA,EACtB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,WAAW;AAAA,EACX,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,aAAa;AAAA,EACb;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,UAAU;AAAA,EACV;AAAA,EACA;AAAA,EACA,WAAW;AAAA,EACX,cAAc;AAAA,EACd,mBAAmB;AACrB,GAA2B;AACzB,QAAM,OAAO,cAAc,CAAC;AAC5B,QAAM,SAAS,cAAc;AAC7B,QAAM,QAAQ,aAAa,MAAM,MAAM;AACvC,QAAM,MAAwB,EAAE,MAAM,UAAU,YAAY,MAAM,QAAQ,IAAI,GAAG,SAAS;AAC1F,QAAM,YAAY,OAAO,cAAc,IAAI,IAAI;AAC/C,QAAM,YAAY,SAAS,CAAC;AAE5B,QAAM,WACJ,cAAc,aACV,MAAM,MAAM,IAAI,CAAC,MAAM,MACrB,oBAAC,MAAM,UAAN,EAAoE,qBAAW,MAAM,MAAM,SAAS,CAAC,KAAjF,cAAc,MAAM,MAAM,SAAS,GAAG,MAAM,CAAuC,CACzG,IACD;AACN,QAAM,WAAW,MAAM,SAAS,MAAM,QAAQ,IAAI;AAElD,MAAI;AACJ,MAAI,UAAU;AACZ,WACE;AAAA,MAAC;AAAA;AAAA,QACC,cAAY;AAAA,QACZ,mBAAiB;AAAA,QACjB,WAAW,GAAG,WAAW,aAAa,+BAA+B,QAAQ,YAAY,WAAW,GAAG,CAAC;AAAA,QAEvG;AAAA;AAAA,IACH;AAAA,EAEJ,WAAW,UAAU;AACnB,WAAO,oBAAC,gBAAa,OAAO,KAAK,IAAI,MAAM,UAAU,EAAE,GAAG,KAAU,WAAW,aAAa,GAAG,WAAW,YAAY,WAAW,GAAG,CAAC,GAAG;AAAA,EAC1I,OAAO;AACL,WAAO,oBAAC,SAAI,WAAW,WAAW,GAAG,GAAI,mBAAS,oBAAC,SAAM,MAAK,MAAK,OAAM,kBAAY,GAAG;AAAA,EAC1F;AAEA,QAAM,QAAQ,CAAC,cACb,UACE;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,WAAW,GAAG,WAAW,GAAG,GAAG,cAAc,cAAc,QAAQ,gCAAgC,8BAA8B;AAAA;AAAA,EACnI;AAGJ,SACE,oBAAC,YAAY,UAAZ,EAAqB,OAAO,KAC3B;AAAA,IAAC;AAAA;AAAA,MACC,aAAW,YAAY,WAAW;AAAA,MAClC,WAAW,GAAG,gCAAgC,YAAY,wEAAwE,SAAS;AAAA,MAE1I;AAAA,kBACC,oBAAC,UAAO,UAAoB,WAAW,GAAG,WAAW,GAAG,GAAG,eAAe,SAAS,6BAA6B,GAC7G,kBACH;AAAA,QAED,MAAM,KAAK;AAAA,QACZ,oBAAC,WAAQ,UAAU,SAAU,gBAAK;AAAA,QACjC,YAAY,CAAC,YAAY,YAAY,oBAAC,wBAAqB,SAAS,UAAU,WAAW,GAAG,aAAa,6BAA6B,GAAG;AAAA,QACzI,YACC,oBAAC,UAAO,UAAoB,WAAW,GAAG,uBAAuB,MAAM,IAAI,GAAG,aAAa,6BAA6B,GACrH,oBACH;AAAA,QAED,MAAM,QAAQ;AAAA,QACd,UACC,oBAAC,UAAO,UAAoB,WAAW,GAAG,WAAW,GAAG,GAAG,mBAAmB,SAAS,6BAA6B,GACjH,kBACH;AAAA;AAAA;AAAA,EAEJ,GACF;AAEJ;AAEA,SAAS,YAAY,EAAE,SAAS,UAAU,GAAiE;AACzG,SACE,oBAAC,QAAG,WAAW,GAAG,wDAAwD,SAAS,GAChF,kBAAQ,IAAI,CAAC,QAAQ,MACpB;AAAA,IAAC;AAAA;AAAA,MAGC,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,MAEC;AAAA;AAAA,IANI;AAAA,EAOP,CACD,GACH;AAEJ;AAEA,SAAS,WAAW,EAAE,KAAK,UAAU,SAAS,MAAM,GAAsF;AACxI,QAAM,aAAa,WAAW,QAAQ,SAAS,IAAI,UAAU;AAC7D,MAAI,IAAI,eAAe,YAAY;AACjC,WACE,qBAAC,SAAI,WAAU,4CACb;AAAA,2BAAC,SAAI,WAAU,sCACZ;AAAA;AAAA,QACA,cAAc,oBAAC,eAAY,SAAS,YAAY;AAAA,SACnD;AAAA,MACC,SAAS,oBAAC,SAAI,WAAU,sCAAsC,iBAAM;AAAA,OACvE;AAAA,EAEJ;AACA,SACE,qBAAC,SAAI,WAAU,+CACb;AAAA,wBAAC,SAAI,WAAU,mDAAmD,UAAS;AAAA,IAC1E,cAAc,oBAAC,eAAY,SAAS,YAAY,WAAU,WAAU;AAAA,IACpE,SAAS,oBAAC,SAAI,WAAU,YAAY,iBAAM;AAAA,KAC7C;AAEJ;AAGO,SAAS,SAAS,EAAE,UAAU,SAAS,OAAO,WAAW,GAAG,KAAK,GAA4B;AAClG,QAAM,MAAM,WAAW,WAAW;AAElC,MAAI,IAAI,MAAM;AACZ,WACE,oBAAC,QAAG,WAAW,GAAG,WAAW,SAAS,GAAI,GAAG,MAC3C,8BAAC,mBAAgB,IAAI,IAAI,UAAU,UAAU,kBAC1C,UACH,GACF;AAAA,EAEJ;AAEA,SACE,oBAAC,QAAG,WAAW,GAAG,WAAW,GAAG,GAAG,SAAS,GAAI,GAAG,MACjD,8BAAC,mBAAgB,IAAI,IAAI,UAAU,UAAU,oBAAC,kBAAe,QAAQ,IAAI,YAAY,GACnF,8BAAC,cAAW,KAAU,SAAkB,OACrC,UACH,GACF,GACF;AAEJ;AAGO,SAAS,aAAa,EAAE,QAAQ,OAAO,aAAa,UAAU,GAAgC;AACnG,QAAM,EAAE,WAAW,IAAI,WAAW,WAAW;AAC7C,QAAM,WAAW,eAAe;AAChC,SACE,qBAAC,SAAI,WAAW,GAAG,yCAAyC,SAAS,GAClE;AAAA,cAAU,oBAAC,SAAI,WAAU,iBAAiB,kBAAO;AAAA,IAElD,qBAAC,SAAI,WAAU,8BACZ;AAAA,eAAS,oBAAC,SAAI,WAAW,GAAG,oCAAoC,WAAW,cAAc,aAAa,gBAAgB,WAAW,SAAS,SAAS,GAAI,iBAAM;AAAA,MAC7J,eAAe,oBAAC,SAAI,WAAU,6BAA6B,uBAAY;AAAA,OAC1E;AAAA,KACF;AAEJ;","names":[]}
1
+ {"version":3,"sources":["../src/list/List.tsx","../src/list/utils.ts"],"sourcesContent":["\"use client\";\n\nimport React, { createContext, useContext } from \"react\";\nimport { cn, useControllableState, type Size } from \"@mari-ui/core\";\nimport { ContentSkeleton } from \"../lib/ContentSkeleton\";\nimport { InfiniteScrollFooter } from \"../lib/infiniteScroll\";\nimport { Empty } from \"../empty\";\nimport { Loading } from \"../loading\";\nimport { Pagination } from \"../pagination\";\nimport { SkeletonBlock } from \"../skeleton\";\nimport type { ListItemLayout, ListItemMetaProps, ListItemProps, ListPagination, ListProps } from \"./types\";\nimport { getPageSlice, gridClassName, resolveRowKey } from \"./utils\";\n\nexport type { ListProps, ListItemProps, ListItemMetaProps };\n\ninterface ListContextValue {\n size: Size;\n bordered: boolean;\n itemLayout: ListItemLayout;\n grid: boolean;\n skeleton: boolean;\n}\n\nconst ListContext = createContext<ListContextValue>({ size: \"md\", bordered: false, itemLayout: \"horizontal\", grid: false, skeleton: false });\n\n/*\n * ant.design ölçüleri: sm 8/16, md 12/24, lg 16/24px (çerçevesizde yatay dolgu yok).\n */\nconst PAD_Y: Record<Size, string> = { sm: \"py-2\", md: \"py-3\", lg: \"py-4\" };\nconst PAD_X: Record<Size, string> = { sm: \"px-4\", md: \"px-6\", lg: \"px-6\" };\n\nfunction rowPadding({ size, bordered }: Pick<ListContextValue, \"size\" | \"bordered\">): string {\n return cn(PAD_Y[size], bordered && PAD_X[size]);\n}\n\nconst DEFAULT_PAGE_SIZE = 10;\n\nfunction PlaceholderRow({ layout }: Readonly<{ layout: ListItemLayout }>) {\n if (layout === \"vertical\") {\n return (\n <div className=\"flex flex-col gap-3\">\n <div className=\"flex items-center gap-4\">\n <SkeletonBlock active width=\"2rem\" height=\"2rem\" radius=\"full\" />\n <SkeletonBlock active width=\"35%\" height=\"1rem\" radius=\"sm\" />\n </div>\n <SkeletonBlock active width=\"100%\" height=\"0.75rem\" radius=\"sm\" />\n <SkeletonBlock active width=\"80%\" height=\"0.75rem\" radius=\"sm\" />\n </div>\n );\n }\n // Satır kutuları `ListItemMeta` ile aynı (20px başlık + 2px + 20px açıklama) →\n // veri gelince tipik bir satır aynı yükseklikte kalır.\n return (\n <div className=\"flex items-start gap-4\">\n <SkeletonBlock active width=\"2rem\" height=\"2rem\" radius=\"full\" />\n <div className=\"flex min-w-0 flex-1 flex-col gap-0.5\">\n <div className=\"flex h-5 items-center\">\n <SkeletonBlock active width=\"40%\" height=\"0.875rem\" radius=\"sm\" />\n </div>\n <div className=\"flex h-5 items-center\">\n <SkeletonBlock active width=\"70%\" height=\"0.75rem\" radius=\"sm\" />\n </div>\n </div>\n </div>\n );\n}\n\nconst CELL_PLACEHOLDER = <SkeletonBlock active height=\"7rem\" radius=\"lg\" />;\n\n/** Veri henüz yokken (ilk yükleme) satır ya da hücre biçiminde yer tutucular. */\nfunction Placeholders({ count, ctx, gridClass }: Readonly<{ count: number; ctx: ListContextValue; gridClass?: string }>) {\n const rows = Array.from({ length: count }, (_, i) => i);\n return (\n <div aria-hidden data-skeleton=\"\" className={gridClass ?? \"divide-y divide-mari-border\"}>\n {rows.map((i) => (\n <div key={i} className={gridClass ? undefined : rowPadding(ctx)}>\n {gridClass ? CELL_PLACEHOLDER : <PlaceholderRow layout={ctx.itemLayout} />}\n </div>\n ))}\n </div>\n );\n}\n\n/** Başlık/alt bilgi gibi serbest bölge: kenarlığı görünür kalır, içeriği iskelete döner. */\nfunction Region({ skeleton, className, children }: Readonly<{ skeleton: boolean; className?: string; children: React.ReactNode }>) {\n return (\n <div className={className}>\n <ContentSkeleton on={skeleton} fallback={<SkeletonBlock active width=\"30%\" height=\"0.875rem\" radius=\"sm\" />}>\n {children}\n </ContentSkeleton>\n </div>\n );\n}\n\nfunction usePagedData<T>(data: T[], config: ListPagination | undefined) {\n const [page, setPage] = useControllableState<number>({ value: config?.currentPage, defaultValue: config?.defaultPage ?? 1 });\n const [pageSize, setPageSize] = useControllableState<number>({ value: config?.pageSize, defaultValue: config?.defaultPageSize ?? DEFAULT_PAGE_SIZE });\n // Sayfalamasız ilk yüklemede 3 yer tutucu satır; sayfalıda sayfa boyu (en çok 10).\n if (!config) return { items: data, offset: 0, page, pageSize: 3, setPage, setPageSize, total: data.length };\n // Sunucu tarafı: `dataSource` zaten o sayfa.\n if (config.totalItems !== undefined) return { items: data, offset: (page - 1) * pageSize, page, pageSize, setPage, setPageSize, total: config.totalItems };\n const slice = getPageSlice(data, page, pageSize);\n return { items: slice.items, offset: slice.offset, page: slice.page, pageSize, setPage, setPageSize, total: data.length };\n}\n\nfunction ListPager({\n config,\n paged,\n placement,\n skeleton,\n className,\n}: Readonly<{\n config: ListPagination;\n paged: ReturnType<typeof usePagedData>;\n placement: \"top\" | \"bottom\";\n skeleton: boolean;\n className?: string;\n}>) {\n const position = config.position ?? \"bottom\";\n if (paged.total === 0 || (position !== placement && position !== \"both\")) return null;\n return (\n <div className={className}>\n <Pagination\n align=\"end\"\n {...config}\n skeleton={skeleton}\n totalItems={paged.total}\n currentPage={paged.page}\n pageSize={paged.pageSize}\n showSizeChanger={config.showSizeChanger ?? Boolean(config.onPageSizeChange)}\n onPageChange={(p, s) => {\n paged.setPage(p);\n config.onPageChange?.(p, s);\n }}\n onPageSizeChange={(s, p) => {\n paged.setPageSize(s);\n config.onPageSizeChange?.(s, p);\n }}\n />\n </div>\n );\n}\n\n/**\n * Semantik: `<ul>` + `<li>`; eylemler kendi `<ul>`sunda. `skeleton`: her satır\n * kendi içeriğini ölçüp kendi şeklinde iskelet çizer (ayırıcılar görünür kalır);\n * veri yoksa sayfa boyu kadar genel satır. `loading`: mevcut satırlar yerinde\n * soluklaşır (Loading sarmalama).\n *\n * React Native karşılığı henüz yok (bkz. `@mari-ui/native` README) — prop\n * sözleşmesi (`dataSource`/`renderItem`/`rowKey`/`header`/`footer`/`empty`)\n * FlatList'e birebir taşınabilecek şekilde seçildi.\n */\nexport function List<T>({\n dataSource,\n renderItem,\n rowKey,\n children,\n header,\n footer,\n bordered = false,\n split = true,\n size = \"md\",\n itemLayout = \"horizontal\",\n grid,\n pagination,\n loadMore,\n infinite,\n loading = false,\n empty,\n className,\n skeleton = false,\n \"aria-label\": ariaLabel,\n \"aria-labelledby\": ariaLabelledBy,\n}: Readonly<ListProps<T>>) {\n const data = dataSource ?? [];\n const config = pagination || undefined;\n const paged = usePagedData(data, config);\n const ctx: ListContextValue = { size, bordered, itemLayout, grid: Boolean(grid), skeleton };\n const gridClass = grid ? gridClassName(grid) : undefined;\n const showSplit = split && !grid;\n\n const rendered =\n renderItem && dataSource\n ? paged.items.map((item, i) => (\n <React.Fragment key={resolveRowKey(item, paged.offset + i, rowKey)}>{renderItem(item, paged.offset + i)}</React.Fragment>\n ))\n : children;\n const hasItems = React.Children.count(rendered) > 0;\n\n let body: React.ReactNode;\n if (hasItems) {\n body = (\n <ul\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledBy}\n className={cn(gridClass, showSplit && \"divide-y divide-mari-border\", grid && bordered && rowPadding(ctx))}\n >\n {rendered}\n </ul>\n );\n } else if (skeleton) {\n body = <Placeholders count={Math.min(paged.pageSize, 10)} ctx={ctx} gridClass={gridClass && cn(gridClass, bordered && rowPadding(ctx))} />;\n } else {\n body = <div className={rowPadding(ctx)}>{empty ?? <Empty size=\"sm\" title=\"Kayıt yok\" />}</div>;\n }\n\n const pager = (placement: \"top\" | \"bottom\") =>\n config && (\n <ListPager\n config={config}\n paged={paged}\n placement={placement}\n skeleton={skeleton}\n className={cn(rowPadding(ctx), showSplit && (placement === \"top\" ? \"border-b border-mari-border\" : \"border-t border-mari-border\"))}\n />\n );\n\n return (\n <ListContext.Provider value={ctx}>\n <div\n aria-busy={skeleton || loading || undefined}\n className={cn(\"text-sm text-mari-foreground\", bordered && \"overflow-hidden rounded-lg border border-mari-border bg-mari-surface\", className)}\n >\n {header && (\n <Region skeleton={skeleton} className={cn(rowPadding(ctx), \"font-medium\", split && \"border-b border-mari-border\")}>\n {header}\n </Region>\n )}\n {pager(\"top\")}\n <Loading spinning={loading}>{body}</Loading>\n {infinite && !skeleton && hasItems && <InfiniteScrollFooter options={infinite} className={cn(showSplit && \"border-t border-mari-border\")} />}\n {loadMore && (\n <Region skeleton={skeleton} className={cn(\"flex justify-center\", PAD_Y[size], showSplit && \"border-t border-mari-border\")}>\n {loadMore}\n </Region>\n )}\n {pager(\"bottom\")}\n {footer && (\n <Region skeleton={skeleton} className={cn(rowPadding(ctx), \"text-mari-muted\", split && \"border-t border-mari-border\")}>\n {footer}\n </Region>\n )}\n </div>\n </ListContext.Provider>\n );\n}\n\nfunction ItemActions({ actions, className }: Readonly<{ actions: React.ReactNode[]; className?: string }>) {\n return (\n <ul className={cn(\"flex shrink-0 flex-wrap items-center text-mari-muted\", className)}>\n {actions.map((action, i) => (\n <li\n // Eylemler sabit, sıralanmaz.\n key={i}\n className={cn(\n \"relative flex items-center px-2 first:pl-0 last:pr-0\",\n \"not-last:after:absolute not-last:after:top-1/2 not-last:after:right-0 not-last:after:h-3.5 not-last:after:w-px not-last:after:-translate-y-1/2 not-last:after:bg-mari-border\"\n )}\n >\n {action}\n </li>\n ))}\n </ul>\n );\n}\n\nfunction ItemLayout({ ctx, children, actions, extra }: Pick<ListItemProps, \"children\" | \"actions\" | \"extra\"> & { ctx: ListContextValue }) {\n const actionList = actions && actions.length > 0 ? actions : undefined;\n if (ctx.itemLayout === \"vertical\") {\n return (\n <div className=\"flex flex-col gap-4 sm:flex-row sm:gap-6\">\n <div className=\"flex min-w-0 flex-1 flex-col gap-4\">\n {children}\n {actionList && <ItemActions actions={actionList} />}\n </div>\n {extra && <div className=\"order-first shrink-0 sm:order-last\">{extra}</div>}\n </div>\n );\n }\n return (\n <div className=\"flex flex-wrap items-center gap-x-6 gap-y-2\">\n <div className=\"flex min-w-0 flex-1 basis-56 items-center gap-4\">{children}</div>\n {actionList && <ItemActions actions={actionList} className=\"ml-auto\" />}\n {extra && <div className=\"shrink-0\">{extra}</div>}\n </div>\n );\n}\n\n/** Tek satır / ızgara hücresi. `List`in içinde kullanılır. */\nexport function ListItem({ children, actions, extra, className, ...rest }: Readonly<ListItemProps>) {\n const ctx = useContext(ListContext);\n\n if (ctx.grid) {\n return (\n <li className={cn(\"min-w-0\", className)} {...rest}>\n <ContentSkeleton on={ctx.skeleton} fallback={CELL_PLACEHOLDER}>\n {children}\n </ContentSkeleton>\n </li>\n );\n }\n\n return (\n <li className={cn(rowPadding(ctx), className)} {...rest}>\n <ContentSkeleton on={ctx.skeleton} fallback={<PlaceholderRow layout={ctx.itemLayout} />}>\n <ItemLayout ctx={ctx} actions={actions} extra={extra}>\n {children}\n </ItemLayout>\n </ContentSkeleton>\n </li>\n );\n}\n\n/** Avatar + başlık + açıklama bloğu. */\nexport function ListItemMeta({ avatar, title, description, className }: Readonly<ListItemMetaProps>) {\n const { itemLayout } = useContext(ListContext);\n const vertical = itemLayout === \"vertical\";\n return (\n <div className={cn(\"flex min-w-0 flex-1 items-start gap-4\", className)}>\n {avatar && <div className=\"flex shrink-0\">{avatar}</div>}\n {/* Boşluksuz uzun metin (e-posta, URL) dar ekranda yandaki öğenin altına taşmasın. */}\n <div className=\"min-w-0 flex-1 break-words\">\n {title && <div className={cn(\"font-medium text-mari-foreground\", vertical ? \"text-base\" : \"leading-5\", description && (vertical ? \"mb-1\" : \"mb-0.5\"))}>{title}</div>}\n {description && <div className=\"leading-5 text-mari-muted\">{description}</div>}\n </div>\n </div>\n );\n}\n","import type React from \"react\";\nimport type { Size } from \"@mari-ui/core\";\nimport type { ListBreakpoint, ListGrid, ListGridColumns, ListProps } from \"./types\";\n\n/** `rowKey` → alan/fonksiyon; yoksa `key`/`id` alanı, o da yoksa sıra numarası. */\nexport function resolveRowKey<T>(item: T, index: number, rowKey: ListProps<T>[\"rowKey\"]): React.Key {\n if (typeof rowKey === \"function\") return rowKey(item, index);\n if (rowKey !== undefined) return String(item[rowKey]);\n if (item && typeof item === \"object\") {\n const record = item as Record<string, unknown>;\n for (const field of [\"key\", \"id\"]) {\n const value = record[field];\n if (typeof value === \"string\" || typeof value === \"number\") return value;\n }\n }\n return index;\n}\n\n/** İstemci tarafı sayfalama: 1 tabanlı `page`, kayıt aralığı dışına taşarsa son sayfa. */\nexport function getPageSlice<T>(data: T[], page: number, pageSize: number): { items: T[]; page: number; offset: number } {\n const totalPages = Math.max(1, Math.ceil(data.length / pageSize));\n const safePage = Math.min(Math.max(1, page), totalPages);\n const offset = (safePage - 1) * pageSize;\n return { items: data.slice(offset, offset + pageSize), page: safePage, offset };\n}\n\n// Tailwind derleme zamanında tarar — her sınıf literal.\nconst COLUMNS: Record<ListBreakpoint, Record<ListGridColumns, string>> = {\n base: { 1: \"grid-cols-1\", 2: \"grid-cols-2\", 3: \"grid-cols-3\", 4: \"grid-cols-4\", 5: \"grid-cols-5\", 6: \"grid-cols-6\" },\n sm: { 1: \"sm:grid-cols-1\", 2: \"sm:grid-cols-2\", 3: \"sm:grid-cols-3\", 4: \"sm:grid-cols-4\", 5: \"sm:grid-cols-5\", 6: \"sm:grid-cols-6\" },\n md: { 1: \"md:grid-cols-1\", 2: \"md:grid-cols-2\", 3: \"md:grid-cols-3\", 4: \"md:grid-cols-4\", 5: \"md:grid-cols-5\", 6: \"md:grid-cols-6\" },\n lg: { 1: \"lg:grid-cols-1\", 2: \"lg:grid-cols-2\", 3: \"lg:grid-cols-3\", 4: \"lg:grid-cols-4\", 5: \"lg:grid-cols-5\", 6: \"lg:grid-cols-6\" },\n xl: { 1: \"xl:grid-cols-1\", 2: \"xl:grid-cols-2\", 3: \"xl:grid-cols-3\", 4: \"xl:grid-cols-4\", 5: \"xl:grid-cols-5\", 6: \"xl:grid-cols-6\" },\n};\n\nconst GAP: Record<Size, string> = { sm: \"gap-2\", md: \"gap-4\", lg: \"gap-6\" };\n\nconst BREAKPOINTS: ListBreakpoint[] = [\"base\", \"sm\", \"md\", \"lg\", \"xl\"];\n\n/**\n * Izgara sınıfları. Tek sayı verilse de mobilde tek sütuna düşmez — tüketici\n * mobil düzeni istiyorsa nesne biçimini kullanır (ant `grid.xs` gibi).\n */\nexport function gridClassName(grid: ListGrid): string {\n const columns = typeof grid.columns === \"number\" ? { base: grid.columns } : grid.columns;\n const classes = BREAKPOINTS.flatMap((bp) => {\n const count = columns[bp];\n return count ? [COLUMNS[bp][count]] : [];\n });\n if (columns.base === undefined) classes.unshift(COLUMNS.base[1]);\n return [\"grid\", GAP[grid.gap ?? \"md\"], ...classes].join(\" \");\n}\n"],"mappings":"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","names":[]}
package/dist/loading.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  Loading
3
- } from "./chunk-47FHUOLT.js";
3
+ } from "./chunk-BLFY5UAL.js";
4
4
  export {
5
5
  Loading
6
6
  };
package/dist/logo.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/logo/Logo.tsx"],"sourcesContent":["import type { SVGProps } from \"react\";\n\nexport interface MariLogoProps extends Omit<SVGProps<SVGSVGElement>, \"width\" | \"height\" | \"viewBox\" | \"role\" | \"aria-label\"> {\n /** Full wordmark for headers, or the compact iris monogram for narrow rails. */\n variant?: \"full\" | \"mark\";\n /** Rendered height in CSS pixels. */\n size?: number;\n /** Accessible name exposed to assistive technology. */\n label?: string;\n}\n\n/**\n * Faz 21 — işaret temanın `primary` rolünden boyanır (kişilik ve koyu tema ile değişir);\n * değişken yoksa (tema CSS'i yüklenmemiş) varsayılan iris tonlarına düşer.\n */\nfunction IrisMark() {\n return (\n <g aria-hidden=\"true\">\n <rect x=\"4\" y=\"4\" width=\"48\" height=\"48\" rx=\"15\" fill=\"var(--mari-color-primary-solid, #6951CE)\" />\n <path d=\"M28 10.5c-3.1 3.2-3.2 5.5 0 8.2 3.2-2.7 3.1-5 0-8.2Z\" fill=\"var(--mari-color-primary-solid-contrast, #fff)\" fillOpacity={0.72} />\n <path d=\"M20.6 13.3c-.3 4.5 1.2 6.5 5.6 7.1.5-4.4-1-6.4-5.6-7.1Zm14.8 0c.3 4.5-1.2 6.5-5.6 7.1-.5-4.4 1-6.4 5.6-7.1Z\" fill=\"var(--mari-color-primary-solid-contrast, #fff)\" fillOpacity={0.96} />\n <path d=\"M14.5 40V27a4.5 4.5 0 0 1 8.1-2.7L28 31l5.4-6.7a4.5 4.5 0 0 1 8.1 2.7v13\" fill=\"none\" stroke=\"var(--mari-color-primary-solid-contrast, #fff)\" strokeWidth=\"3.7\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </g>\n );\n}\n\nexport function MariLogo({ variant = \"full\", size = 56, label = \"Mari UI\", ...props }: Readonly<MariLogoProps>) {\n const isFull = variant === \"full\";\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox={isFull ? \"0 0 184 56\" : \"0 0 56 56\"}\n width={isFull ? (184 / 56) * size : size}\n height={size}\n role=\"img\"\n aria-label={label}\n focusable=\"false\"\n {...props}\n >\n <IrisMark />\n {isFull && (\n <g aria-hidden=\"true\">\n <text x=\"66\" y=\"38\" fontFamily=\"var(--mari-font-sans, Inter, ui-sans-serif, system-ui, sans-serif)\" fontSize=\"30\" fontWeight=\"750\" letterSpacing=\"-1.8\" fill=\"var(--mari-color-foreground, #242331)\">mari</text>\n <circle cx=\"128.5\" cy=\"34\" r=\"2.1\" fill=\"var(--mari-color-primary, #6951CE)\" fillOpacity={0.6} />\n <text x=\"137\" y=\"38\" fontFamily=\"var(--mari-font-sans, Inter, ui-sans-serif, system-ui, sans-serif)\" fontSize=\"30\" fontWeight=\"750\" letterSpacing=\"-1.8\" fill=\"var(--mari-color-primary, #6951CE)\">ui</text>\n </g>\n )}\n </svg>\n );\n}\n"],"mappings":";AAiBI,SACE,KADF;AAFJ,SAAS,WAAW;AAClB,SACE,qBAAC,OAAE,eAAY,QACb;AAAA,wBAAC,UAAK,GAAE,KAAI,GAAE,KAAI,OAAM,MAAK,QAAO,MAAK,IAAG,MAAK,MAAK,4CAA2C;AAAA,IACjG,oBAAC,UAAK,GAAE,wDAAuD,MAAK,kDAAiD,aAAa,MAAM;AAAA,IACxI,oBAAC,UAAK,GAAE,+GAA8G,MAAK,kDAAiD,aAAa,MAAM;AAAA,IAC/L,oBAAC,UAAK,GAAE,4EAA2E,MAAK,QAAO,QAAO,kDAAiD,aAAY,OAAM,eAAc,SAAQ,gBAAe,SAAQ;AAAA,KACxN;AAEJ;AAEO,SAAS,SAAS,EAAE,UAAU,QAAQ,OAAO,IAAI,QAAQ,WAAW,GAAG,MAAM,GAA4B;AAC9G,QAAM,SAAS,YAAY;AAC3B,SACE;AAAA,IAAC;AAAA;AAAA,MACC,OAAM;AAAA,MACN,SAAS,SAAS,eAAe;AAAA,MACjC,OAAO,SAAU,MAAM,KAAM,OAAO;AAAA,MACpC,QAAQ;AAAA,MACR,MAAK;AAAA,MACL,cAAY;AAAA,MACZ,WAAU;AAAA,MACT,GAAG;AAAA,MAEJ;AAAA,4BAAC,YAAS;AAAA,QACT,UACC,qBAAC,OAAE,eAAY,QACb;AAAA,8BAAC,UAAK,GAAE,MAAK,GAAE,MAAK,YAAW,sEAAqE,UAAS,MAAK,YAAW,OAAM,eAAc,QAAO,MAAK,yCAAwC,kBAAI;AAAA,UACzM,oBAAC,YAAO,IAAG,SAAQ,IAAG,MAAK,GAAE,OAAM,MAAK,sCAAqC,aAAa,KAAK;AAAA,UAC/F,oBAAC,UAAK,GAAE,OAAM,GAAE,MAAK,YAAW,sEAAqE,UAAS,MAAK,YAAW,OAAM,eAAc,QAAO,MAAK,sCAAqC,gBAAE;AAAA,WACvM;AAAA;AAAA;AAAA,EAEJ;AAEJ;","names":[]}
1
+ {"version":3,"sources":["../src/logo/Logo.tsx"],"sourcesContent":["import type { SVGProps } from \"react\";\n\nexport interface MariLogoProps extends Omit<SVGProps<SVGSVGElement>, \"width\" | \"height\" | \"viewBox\" | \"role\" | \"aria-label\"> {\n /** Full wordmark for headers, or the compact iris monogram for narrow rails. */\n variant?: \"full\" | \"mark\";\n /** Rendered height in CSS pixels. */\n size?: number;\n /** Accessible name exposed to assistive technology. */\n label?: string;\n}\n\n/**\n * İşaret temanın `primary` rolünden boyanır (kişilik ve koyu tema ile değişir);\n * değişken yoksa (tema CSS'i yüklenmemiş) varsayılan iris tonlarına düşer.\n */\nfunction IrisMark() {\n return (\n <g aria-hidden=\"true\">\n <rect x=\"4\" y=\"4\" width=\"48\" height=\"48\" rx=\"15\" fill=\"var(--mari-color-primary-solid, #6951CE)\" />\n <path d=\"M28 10.5c-3.1 3.2-3.2 5.5 0 8.2 3.2-2.7 3.1-5 0-8.2Z\" fill=\"var(--mari-color-primary-solid-contrast, #fff)\" fillOpacity={0.72} />\n <path d=\"M20.6 13.3c-.3 4.5 1.2 6.5 5.6 7.1.5-4.4-1-6.4-5.6-7.1Zm14.8 0c.3 4.5-1.2 6.5-5.6 7.1-.5-4.4 1-6.4 5.6-7.1Z\" fill=\"var(--mari-color-primary-solid-contrast, #fff)\" fillOpacity={0.96} />\n <path d=\"M14.5 40V27a4.5 4.5 0 0 1 8.1-2.7L28 31l5.4-6.7a4.5 4.5 0 0 1 8.1 2.7v13\" fill=\"none\" stroke=\"var(--mari-color-primary-solid-contrast, #fff)\" strokeWidth=\"3.7\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </g>\n );\n}\n\nexport function MariLogo({ variant = \"full\", size = 56, label = \"Mari UI\", ...props }: Readonly<MariLogoProps>) {\n const isFull = variant === \"full\";\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox={isFull ? \"0 0 184 56\" : \"0 0 56 56\"}\n width={isFull ? (184 / 56) * size : size}\n height={size}\n role=\"img\"\n aria-label={label}\n focusable=\"false\"\n {...props}\n >\n <IrisMark />\n {isFull && (\n <g aria-hidden=\"true\">\n <text x=\"66\" y=\"38\" fontFamily=\"var(--mari-font-sans, Inter, ui-sans-serif, system-ui, sans-serif)\" fontSize=\"30\" fontWeight=\"750\" letterSpacing=\"-1.8\" fill=\"var(--mari-color-foreground, #242331)\">mari</text>\n <circle cx=\"128.5\" cy=\"34\" r=\"2.1\" fill=\"var(--mari-color-primary, #6951CE)\" fillOpacity={0.6} />\n <text x=\"137\" y=\"38\" fontFamily=\"var(--mari-font-sans, Inter, ui-sans-serif, system-ui, sans-serif)\" fontSize=\"30\" fontWeight=\"750\" letterSpacing=\"-1.8\" fill=\"var(--mari-color-primary, #6951CE)\">ui</text>\n </g>\n )}\n </svg>\n );\n}\n"],"mappings":";AAiBI,SACE,KADF;AAFJ,SAAS,WAAW;AAClB,SACE,qBAAC,OAAE,eAAY,QACb;AAAA,wBAAC,UAAK,GAAE,KAAI,GAAE,KAAI,OAAM,MAAK,QAAO,MAAK,IAAG,MAAK,MAAK,4CAA2C;AAAA,IACjG,oBAAC,UAAK,GAAE,wDAAuD,MAAK,kDAAiD,aAAa,MAAM;AAAA,IACxI,oBAAC,UAAK,GAAE,+GAA8G,MAAK,kDAAiD,aAAa,MAAM;AAAA,IAC/L,oBAAC,UAAK,GAAE,4EAA2E,MAAK,QAAO,QAAO,kDAAiD,aAAY,OAAM,eAAc,SAAQ,gBAAe,SAAQ;AAAA,KACxN;AAEJ;AAEO,SAAS,SAAS,EAAE,UAAU,QAAQ,OAAO,IAAI,QAAQ,WAAW,GAAG,MAAM,GAA4B;AAC9G,QAAM,SAAS,YAAY;AAC3B,SACE;AAAA,IAAC;AAAA;AAAA,MACC,OAAM;AAAA,MACN,SAAS,SAAS,eAAe;AAAA,MACjC,OAAO,SAAU,MAAM,KAAM,OAAO;AAAA,MACpC,QAAQ;AAAA,MACR,MAAK;AAAA,MACL,cAAY;AAAA,MACZ,WAAU;AAAA,MACT,GAAG;AAAA,MAEJ;AAAA,4BAAC,YAAS;AAAA,QACT,UACC,qBAAC,OAAE,eAAY,QACb;AAAA,8BAAC,UAAK,GAAE,MAAK,GAAE,MAAK,YAAW,sEAAqE,UAAS,MAAK,YAAW,OAAM,eAAc,QAAO,MAAK,yCAAwC,kBAAI;AAAA,UACzM,oBAAC,YAAO,IAAG,SAAQ,IAAG,MAAK,GAAE,OAAM,MAAK,sCAAqC,aAAa,KAAK;AAAA,UAC/F,oBAAC,UAAK,GAAE,OAAM,GAAE,MAAK,YAAW,sEAAqE,UAAS,MAAK,YAAW,OAAM,eAAc,QAAO,MAAK,sCAAqC,gBAAE;AAAA,WACvM;AAAA;AAAA;AAAA,EAEJ;AAEJ;","names":[]}
package/dist/mari.css CHANGED
@@ -113,9 +113,15 @@
113
113
  }
114
114
  }
115
115
 
116
- /* Font dosyaları opt-in; aile ve tema seçimi bütün bileşenlere miras kalır. */
116
+ /* Font dosyaları opt-in; aile ve tema seçimi bütün bileşenlere miras kalır.
117
+ Sayfa zemini ve metni temadan: yoksa koyu temada tarayıcının kendi koyu
118
+ zemini görünür, metin rengi token'dan gelmez (kontrast tutarsız). */
117
119
  @layer base {
118
- body { font-family: var(--mari-font-sans); }
120
+ body {
121
+ font-family: var(--mari-font-sans);
122
+ background-color: var(--mari-color-surface);
123
+ color: var(--mari-color-foreground);
124
+ }
119
125
  h1, h2, h3, h4, h5, h6 { font-family: var(--mari-font-heading); }
120
126
  input::placeholder, textarea::placeholder { color: var(--mari-color-muted); opacity: 1; }
121
127
  code, pre, kbd, samp { font-family: var(--mari-font-mono); }
package/dist/masonry.js CHANGED
@@ -2,15 +2,15 @@
2
2
 
3
3
  import {
4
4
  InfiniteScrollFooter
5
- } from "./chunk-BDV4GOEN.js";
5
+ } from "./chunk-5GILG5AK.js";
6
6
  import {
7
7
  SkeletonBlock
8
- } from "./chunk-NPM7IDYV.js";
9
- import "./chunk-XUKVQO6M.js";
8
+ } from "./chunk-TSFAAREV.js";
9
+ import "./chunk-6CSUVVFG.js";
10
10
  import {
11
11
  SkeletonSlot
12
- } from "./chunk-DKENCYHA.js";
13
- import "./chunk-54HHEXXD.js";
12
+ } from "./chunk-MXGY2ENX.js";
13
+ import "./chunk-VKN374SD.js";
14
14
 
15
15
  // src/masonry/Masonry.tsx
16
16
  import { useEffect, useLayoutEffect, useRef, useState } from "react";
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/masonry/Masonry.tsx","../src/masonry/utils.ts"],"sourcesContent":["\"use client\";\n\nimport React, { useEffect, useLayoutEffect, useRef, useState } from \"react\";\nimport { cn } from \"@mari-ui/core\";\nimport { SkeletonSlot } from \"../lib/SkeletonSlot\";\nimport { InfiniteScrollFooter } from \"../lib/infiniteScroll\";\nimport { SkeletonBlock } from \"../skeleton\";\nimport type { MasonryItem, MasonryProps } from \"./types\";\nimport { computeLayout, resolveColumns, resolveGap, type MasonryPosition } from \"./utils\";\n\nexport type { MasonryProps, MasonryItem };\n\nconst DEFAULT_COLUMNS = { base: 1, sm: 2, lg: 3 };\nconst PLACEHOLDER_HEIGHTS = [\"10rem\", \"14rem\", \"8rem\", \"12rem\", \"9rem\", \"13rem\"];\n\n// SSR'da useLayoutEffect uyarısı vermesin.\nconst useIsomorphicLayoutEffect = typeof window === \"undefined\" ? useEffect : useLayoutEffect;\n\nfunction useViewportWidth(): number {\n const [width, setWidth] = useState(() => (typeof window === \"undefined\" ? 0 : window.innerWidth));\n useEffect(() => {\n const update = () => setWidth(window.innerWidth);\n update();\n window.addEventListener(\"resize\", update);\n return () => window.removeEventListener(\"resize\", update);\n }, []);\n return width;\n}\n\n/**\n * Konteyner genişliğini ve her öğenin yüksekliğini izler. Görseller yüklenince\n * ya da metin sarınca öğe büyür → yerleşim yeniden hesaplanır.\n */\nfunction useMeasuredLayout(listRef: React.RefObject<HTMLUListElement | null>, count: number, columns: number, gap: number) {\n const [layout, setLayout] = useState<{ positions: MasonryPosition[]; height: number } | null>(null);\n\n useIsomorphicLayoutEffect(() => {\n const list = listRef.current;\n if (!list || typeof ResizeObserver === \"undefined\") return;\n const measure = () => {\n const items = Array.from(list.children) as HTMLElement[];\n const width = list.clientWidth;\n if (width === 0) return;\n setLayout(computeLayout(items.map((el) => el.offsetHeight), columns, gap, width));\n };\n measure();\n const observer = new ResizeObserver(measure);\n observer.observe(list);\n for (const child of Array.from(list.children)) observer.observe(child);\n return () => observer.disconnect();\n }, [listRef, count, columns, gap]);\n\n return layout;\n}\n\n/**\n * Faz 16.3 — yapı ant.design Masonry'den (farklı yükseklikteki öğeler, her\n * biri en kısa sütuna; duyarlı sütun sayısı; `gutter`; `onLayoutChange`),\n * görünüm kendi token'larımızdan (öğelerin kendisi — Card, görsel — tüketicinin).\n *\n * DOM sırası = öğe sırası: yalnız görsel konum hesaplanır (mutlak konum), Tab ve\n * ekran okuyucu sırası verideki gibi kalır. Ölçüm gelmeden (SSR, ilk kare, JS\n * kapalı) CSS `columns` ile makul bir yerleşim çizilir; ölçülünce kesin konum.\n * Semantik: `<ul>` + `<li>`.\n */\nexport function Masonry({\n items,\n columns = DEFAULT_COLUMNS,\n gutter = \"md\",\n onLayoutChange,\n infinite,\n className,\n skeleton = false,\n \"aria-label\": ariaLabel,\n \"aria-labelledby\": ariaLabelledBy,\n}: Readonly<MasonryProps>) {\n const viewport = useViewportWidth();\n const columnCount = resolveColumns(columns, viewport);\n const gap = resolveGap(gutter);\n const listRef = useRef<HTMLUListElement>(null);\n\n const placeholders = skeleton && items.length === 0;\n const shown: MasonryItem[] = placeholders\n ? PLACEHOLDER_HEIGHTS.map((h, i) => ({ key: `__placeholder-${i}`, children: <SkeletonBlock active height={h} radius=\"lg\" /> }))\n : items;\n\n const layout = useMeasuredLayout(listRef, shown.length, columnCount, gap);\n const measured = layout !== null && layout.positions.length === shown.length;\n\n const onLayoutChangeRef = useRef(onLayoutChange);\n onLayoutChangeRef.current = onLayoutChange;\n useEffect(() => {\n if (layout) onLayoutChangeRef.current?.({ columns: columnCount, height: layout.height });\n }, [layout, columnCount]);\n\n return (\n <>\n <ul\n ref={listRef}\n aria-label={skeleton ? undefined : ariaLabel}\n aria-labelledby={skeleton ? undefined : ariaLabelledBy}\n aria-hidden={skeleton || undefined}\n aria-busy={skeleton || undefined}\n className={cn(\"relative\", className)}\n style={measured ? { height: layout.height } : { columnCount, columnGap: gap }}\n >\n {shown.map((item, i) => {\n const pos = measured ? layout.positions[i] : undefined;\n return (\n <li\n key={item.key}\n className={cn(\n pos ? \"absolute transition-[top,left] duration-200 ease-out motion-reduce:transition-none\" : \"break-inside-avoid\"\n )}\n style={pos ? { top: pos.top, left: pos.left, width: pos.width } : { marginBottom: gap }}\n >\n {placeholders ? (\n item.children\n ) : (\n // Kartın TAMAMI tek blok (kullanıcı kararı): içerik görünmez kalıp yüksekliği korur, blok üstüne biner.\n <SkeletonSlot on={skeleton} placeholder={<SkeletonBlock active height=\"100%\" radius=\"lg\" />}>\n {item.children}\n </SkeletonSlot>\n )}\n </li>\n );\n })}\n </ul>\n {infinite && !skeleton && items.length > 0 && <InfiniteScrollFooter options={infinite} className=\"mt-2\" />}\n </>\n );\n}\n","import type { Size } from \"@mari-ui/core\";\nimport type { MasonryBreakpoint, MasonryColumns } from \"./types\";\n\nexport interface MasonryPosition {\n left: number;\n top: number;\n width: number;\n column: number;\n}\n\n/**\n * Her öğeyi o an EN KISA sütuna koyar (eşitlikte soldaki). DOM sırası = öğe\n * sırası kalır — yalnız görsel konum hesaplanır, klavye/okuma sırası bozulmaz.\n */\nexport function computeLayout(heights: number[], columns: number, gap: number, containerWidth: number): { positions: MasonryPosition[]; height: number } {\n const cols = Math.max(1, Math.floor(columns));\n const width = Math.max(0, (containerWidth - gap * (cols - 1)) / cols);\n const columnHeights = Array.from({ length: cols }, () => 0);\n const positions = heights.map((h) => {\n let column = 0;\n for (let c = 1; c < cols; c++) if (columnHeights[c]! < columnHeights[column]!) column = c;\n const top = columnHeights[column]!;\n columnHeights[column] = top + h + gap;\n return { left: column * (width + gap), top, width, column };\n });\n const height = Math.max(0, ...columnHeights.map((h) => (h > 0 ? h - gap : 0)));\n return { positions, height };\n}\n\n/** Tailwind kırılımları (px), mobil önce. */\nexport const BREAKPOINTS: Record<Exclude<MasonryBreakpoint, \"base\">, number> = { sm: 640, md: 768, lg: 1024, xl: 1280 };\n\n/** Pencere genişliğine göre geçerli sütun sayısı. */\nexport function resolveColumns(columns: MasonryColumns, viewportWidth: number): number {\n if (typeof columns === \"number\") return columns;\n let value = columns.base ?? 1;\n for (const bp of [\"sm\", \"md\", \"lg\", \"xl\"] as const) {\n const count = columns[bp];\n if (count !== undefined && viewportWidth >= BREAKPOINTS[bp]) value = count;\n }\n return value;\n}\n\nexport const GAP_PX: Record<Size, number> = { sm: 8, md: 16, lg: 24 };\n\nexport function resolveGap(gutter: Size | number): number {\n return typeof gutter === \"number\" ? gutter : GAP_PX[gutter];\n}\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../src/masonry/Masonry.tsx","../src/masonry/utils.ts"],"sourcesContent":["\"use client\";\n\nimport React, { useEffect, useLayoutEffect, useRef, useState } from \"react\";\nimport { cn } from \"@mari-ui/core\";\nimport { SkeletonSlot } from \"../lib/SkeletonSlot\";\nimport { InfiniteScrollFooter } from \"../lib/infiniteScroll\";\nimport { SkeletonBlock } from \"../skeleton\";\nimport type { MasonryItem, MasonryProps } from \"./types\";\nimport { computeLayout, resolveColumns, resolveGap, type MasonryPosition } from \"./utils\";\n\nexport type { MasonryProps, MasonryItem };\n\nconst DEFAULT_COLUMNS = { base: 1, sm: 2, lg: 3 };\nconst PLACEHOLDER_HEIGHTS = [\"10rem\", \"14rem\", \"8rem\", \"12rem\", \"9rem\", \"13rem\"];\n\n// SSR'da useLayoutEffect uyarısı vermesin.\nconst useIsomorphicLayoutEffect = typeof window === \"undefined\" ? useEffect : useLayoutEffect;\n\nfunction useViewportWidth(): number {\n const [width, setWidth] = useState(() => (typeof window === \"undefined\" ? 0 : window.innerWidth));\n useEffect(() => {\n const update = () => setWidth(window.innerWidth);\n update();\n window.addEventListener(\"resize\", update);\n return () => window.removeEventListener(\"resize\", update);\n }, []);\n return width;\n}\n\n/**\n * Konteyner genişliğini ve her öğenin yüksekliğini izler. Görseller yüklenince\n * ya da metin sarınca öğe büyür → yerleşim yeniden hesaplanır.\n */\nfunction useMeasuredLayout(listRef: React.RefObject<HTMLUListElement | null>, count: number, columns: number, gap: number) {\n const [layout, setLayout] = useState<{ positions: MasonryPosition[]; height: number } | null>(null);\n\n useIsomorphicLayoutEffect(() => {\n const list = listRef.current;\n if (!list || typeof ResizeObserver === \"undefined\") return;\n const measure = () => {\n const items = Array.from(list.children) as HTMLElement[];\n const width = list.clientWidth;\n if (width === 0) return;\n setLayout(computeLayout(items.map((el) => el.offsetHeight), columns, gap, width));\n };\n measure();\n const observer = new ResizeObserver(measure);\n observer.observe(list);\n for (const child of Array.from(list.children)) observer.observe(child);\n return () => observer.disconnect();\n }, [listRef, count, columns, gap]);\n\n return layout;\n}\n\n/*\n * yapı ant.design Masonry'den (farklı yükseklikteki öğeler, her\n * biri en kısa sütuna; duyarlı sütun sayısı; `gutter`; `onLayoutChange`),\n * görünüm kendi token'larımızdan (öğelerin kendisi — Card, görsel — tüketicinin).\n */\n/**\n * DOM sırası = öğe sırası: yalnız görsel konum hesaplanır (mutlak konum), Tab ve\n * ekran okuyucu sırası verideki gibi kalır. Ölçüm gelmeden (SSR, ilk kare, JS\n * kapalı) CSS `columns` ile makul bir yerleşim çizilir; ölçülünce kesin konum.\n * Semantik: `<ul>` + `<li>`.\n */\nexport function Masonry({\n items,\n columns = DEFAULT_COLUMNS,\n gutter = \"md\",\n onLayoutChange,\n infinite,\n className,\n skeleton = false,\n \"aria-label\": ariaLabel,\n \"aria-labelledby\": ariaLabelledBy,\n}: Readonly<MasonryProps>) {\n const viewport = useViewportWidth();\n const columnCount = resolveColumns(columns, viewport);\n const gap = resolveGap(gutter);\n const listRef = useRef<HTMLUListElement>(null);\n\n const placeholders = skeleton && items.length === 0;\n const shown: MasonryItem[] = placeholders\n ? PLACEHOLDER_HEIGHTS.map((h, i) => ({ key: `__placeholder-${i}`, children: <SkeletonBlock active height={h} radius=\"lg\" /> }))\n : items;\n\n const layout = useMeasuredLayout(listRef, shown.length, columnCount, gap);\n const measured = layout !== null && layout.positions.length === shown.length;\n\n const onLayoutChangeRef = useRef(onLayoutChange);\n onLayoutChangeRef.current = onLayoutChange;\n useEffect(() => {\n if (layout) onLayoutChangeRef.current?.({ columns: columnCount, height: layout.height });\n }, [layout, columnCount]);\n\n return (\n <>\n <ul\n ref={listRef}\n aria-label={skeleton ? undefined : ariaLabel}\n aria-labelledby={skeleton ? undefined : ariaLabelledBy}\n aria-hidden={skeleton || undefined}\n aria-busy={skeleton || undefined}\n className={cn(\"relative\", className)}\n style={measured ? { height: layout.height } : { columnCount, columnGap: gap }}\n >\n {shown.map((item, i) => {\n const pos = measured ? layout.positions[i] : undefined;\n return (\n <li\n key={item.key}\n className={cn(\n pos ? \"absolute transition-[top,left] duration-200 ease-out motion-reduce:transition-none\" : \"break-inside-avoid\"\n )}\n style={pos ? { top: pos.top, left: pos.left, width: pos.width } : { marginBottom: gap }}\n >\n {placeholders ? (\n item.children\n ) : (\n // Kartın TAMAMI tek blok (kullanıcı kararı): içerik görünmez kalıp yüksekliği korur, blok üstüne biner.\n <SkeletonSlot on={skeleton} placeholder={<SkeletonBlock active height=\"100%\" radius=\"lg\" />}>\n {item.children}\n </SkeletonSlot>\n )}\n </li>\n );\n })}\n </ul>\n {infinite && !skeleton && items.length > 0 && <InfiniteScrollFooter options={infinite} className=\"mt-2\" />}\n </>\n );\n}\n","import type { Size } from \"@mari-ui/core\";\nimport type { MasonryBreakpoint, MasonryColumns } from \"./types\";\n\nexport interface MasonryPosition {\n left: number;\n top: number;\n width: number;\n column: number;\n}\n\n/**\n * Her öğeyi o an EN KISA sütuna koyar (eşitlikte soldaki). DOM sırası = öğe\n * sırası kalır — yalnız görsel konum hesaplanır, klavye/okuma sırası bozulmaz.\n */\nexport function computeLayout(heights: number[], columns: number, gap: number, containerWidth: number): { positions: MasonryPosition[]; height: number } {\n const cols = Math.max(1, Math.floor(columns));\n const width = Math.max(0, (containerWidth - gap * (cols - 1)) / cols);\n const columnHeights = Array.from({ length: cols }, () => 0);\n const positions = heights.map((h) => {\n let column = 0;\n for (let c = 1; c < cols; c++) if (columnHeights[c]! < columnHeights[column]!) column = c;\n const top = columnHeights[column]!;\n columnHeights[column] = top + h + gap;\n return { left: column * (width + gap), top, width, column };\n });\n const height = Math.max(0, ...columnHeights.map((h) => (h > 0 ? h - gap : 0)));\n return { positions, height };\n}\n\n/** Tailwind kırılımları (px), mobil önce. */\nexport const BREAKPOINTS: Record<Exclude<MasonryBreakpoint, \"base\">, number> = { sm: 640, md: 768, lg: 1024, xl: 1280 };\n\n/** Pencere genişliğine göre geçerli sütun sayısı. */\nexport function resolveColumns(columns: MasonryColumns, viewportWidth: number): number {\n if (typeof columns === \"number\") return columns;\n let value = columns.base ?? 1;\n for (const bp of [\"sm\", \"md\", \"lg\", \"xl\"] as const) {\n const count = columns[bp];\n if (count !== undefined && viewportWidth >= BREAKPOINTS[bp]) value = count;\n }\n return value;\n}\n\nexport const GAP_PX: Record<Size, number> = { sm: 8, md: 16, lg: 24 };\n\nexport function resolveGap(gutter: Size | number): number {\n return typeof gutter === \"number\" ? gutter : GAP_PX[gutter];\n}\n"],"mappings":"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","names":[]}
package/dist/menu.js CHANGED
@@ -3,7 +3,7 @@
3
3
  import {
4
4
  useModalBehavior,
5
5
  usePresence
6
- } from "./chunk-JNZODUXP.js";
6
+ } from "./chunk-OYDG6C54.js";
7
7
  import {
8
8
  Dropdown,
9
9
  DropdownContent,
@@ -15,28 +15,28 @@ import {
15
15
  getRovingTarget,
16
16
  isPlainLeftClick,
17
17
  useDropdown
18
- } from "./chunk-FNJHS5KQ.js";
18
+ } from "./chunk-E5JTEQ4V.js";
19
19
  import {
20
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";
21
+ } from "./chunk-MXGY2ENX.js";
22
+ import "./chunk-OAWUZIIN.js";
23
+ import "./chunk-GTNCXOUL.js";
24
+ import "./chunk-NYXU5EFE.js";
25
+ import "./chunk-MT4VH7QV.js";
26
26
  import {
27
27
  touchTargetClass,
28
28
  touchTargetSquareClass
29
- } from "./chunk-FFXRFQSU.js";
29
+ } from "./chunk-POBOJBNJ.js";
30
30
  import {
31
31
  bgSolidClass,
32
32
  bgSubtleClass,
33
33
  textClass,
34
34
  textHoverClass,
35
35
  textSolidContrastClass
36
- } from "./chunk-IP2J3BWY.js";
36
+ } from "./chunk-6AMBZXZJ.js";
37
37
  import {
38
38
  skeletonFill
39
- } from "./chunk-54HHEXXD.js";
39
+ } from "./chunk-VKN374SD.js";
40
40
 
41
41
  // src/menu/basic-menu/BasicMenu.tsx
42
42
  import { useEffect as useEffect3, useState as useState3 } from "react";