@handijit/ui 0.0.0-stage → 2.0.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 (639) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +786 -2
  3. package/build/base.css +1 -0
  4. package/build/charts.cjs +2 -0
  5. package/build/charts.cjs.map +1 -0
  6. package/build/charts.css +1 -0
  7. package/build/charts.js +1866 -0
  8. package/build/charts.js.map +1 -0
  9. package/build/chat.cjs +4 -0
  10. package/build/chat.cjs.map +1 -0
  11. package/build/chat.css +1 -0
  12. package/build/chat.js +1121 -0
  13. package/build/chat.js.map +1 -0
  14. package/build/components/Accordion/index.cjs +2 -0
  15. package/build/components/Accordion/index.cjs.map +1 -0
  16. package/build/components/Accordion/index.d.ts +29 -0
  17. package/build/components/Accordion/index.js +42 -0
  18. package/build/components/Accordion/index.js.map +1 -0
  19. package/build/components/Accordion/style.css +1 -0
  20. package/build/components/Alert/index.cjs +2 -0
  21. package/build/components/Alert/index.cjs.map +1 -0
  22. package/build/components/Alert/index.d.ts +15 -0
  23. package/build/components/Alert/index.js +30 -0
  24. package/build/components/Alert/index.js.map +1 -0
  25. package/build/components/Alert/style.css +1 -0
  26. package/build/components/Avatar/index.cjs +2 -0
  27. package/build/components/Avatar/index.cjs.map +1 -0
  28. package/build/components/Avatar/index.d.ts +26 -0
  29. package/build/components/Avatar/index.js +57 -0
  30. package/build/components/Avatar/index.js.map +1 -0
  31. package/build/components/Avatar/style.css +1 -0
  32. package/build/components/Badge/index.cjs +2 -0
  33. package/build/components/Badge/index.cjs.map +1 -0
  34. package/build/components/Badge/index.d.ts +21 -0
  35. package/build/components/Badge/index.js +26 -0
  36. package/build/components/Badge/index.js.map +1 -0
  37. package/build/components/Badge/style.css +1 -0
  38. package/build/components/BottomSheet/index.cjs +2 -0
  39. package/build/components/BottomSheet/index.cjs.map +1 -0
  40. package/build/components/BottomSheet/index.d.ts +21 -0
  41. package/build/components/BottomSheet/index.js +85 -0
  42. package/build/components/BottomSheet/index.js.map +1 -0
  43. package/build/components/BottomSheet/style.css +1 -0
  44. package/build/components/Breadcrumb/index.cjs +2 -0
  45. package/build/components/Breadcrumb/index.cjs.map +1 -0
  46. package/build/components/Breadcrumb/index.d.ts +20 -0
  47. package/build/components/Breadcrumb/index.js +31 -0
  48. package/build/components/Breadcrumb/index.js.map +1 -0
  49. package/build/components/Breadcrumb/style.css +1 -0
  50. package/build/components/Button/index.cjs +2 -0
  51. package/build/components/Button/index.cjs.map +1 -0
  52. package/build/components/Button/index.d.ts +32 -0
  53. package/build/components/Button/index.js +88 -0
  54. package/build/components/Button/index.js.map +1 -0
  55. package/build/components/Button/style.css +1 -0
  56. package/build/components/Card/index.cjs +2 -0
  57. package/build/components/Card/index.cjs.map +1 -0
  58. package/build/components/Card/index.d.ts +51 -0
  59. package/build/components/Card/index.js +58 -0
  60. package/build/components/Card/index.js.map +1 -0
  61. package/build/components/Card/style.css +1 -0
  62. package/build/components/Carousel/index.cjs +2 -0
  63. package/build/components/Carousel/index.cjs.map +1 -0
  64. package/build/components/Carousel/index.d.ts +24 -0
  65. package/build/components/Carousel/index.js +111 -0
  66. package/build/components/Carousel/index.js.map +1 -0
  67. package/build/components/Carousel/style.css +1 -0
  68. package/build/components/Checkbox/index.cjs +2 -0
  69. package/build/components/Checkbox/index.cjs.map +1 -0
  70. package/build/components/Checkbox/index.d.ts +10 -0
  71. package/build/components/Checkbox/index.js +33 -0
  72. package/build/components/Checkbox/index.js.map +1 -0
  73. package/build/components/Checkbox/style.css +1 -0
  74. package/build/components/Chip/index.cjs +2 -0
  75. package/build/components/Chip/index.cjs.map +1 -0
  76. package/build/components/Chip/index.d.ts +27 -0
  77. package/build/components/Chip/index.js +67 -0
  78. package/build/components/Chip/index.js.map +1 -0
  79. package/build/components/Chip/style.css +1 -0
  80. package/build/components/ChipGroup/index.cjs +2 -0
  81. package/build/components/ChipGroup/index.cjs.map +1 -0
  82. package/build/components/ChipGroup/index.d.ts +34 -0
  83. package/build/components/ChipGroup/index.js +64 -0
  84. package/build/components/ChipGroup/index.js.map +1 -0
  85. package/build/components/ChipGroup/style.css +1 -0
  86. package/build/components/CodeBadge/index.cjs +2 -0
  87. package/build/components/CodeBadge/index.cjs.map +1 -0
  88. package/build/components/CodeBadge/index.d.ts +36 -0
  89. package/build/components/CodeBadge/index.js +62 -0
  90. package/build/components/CodeBadge/index.js.map +1 -0
  91. package/build/components/CodeBadge/style.css +1 -0
  92. package/build/components/Combobox/index.cjs +2 -0
  93. package/build/components/Combobox/index.cjs.map +1 -0
  94. package/build/components/Combobox/index.d.ts +6 -0
  95. package/build/components/Combobox/index.js +302 -0
  96. package/build/components/Combobox/index.js.map +1 -0
  97. package/build/components/Combobox/style.css +1 -0
  98. package/build/components/CommandPalette/index.cjs +2 -0
  99. package/build/components/CommandPalette/index.cjs.map +1 -0
  100. package/build/components/CommandPalette/index.d.ts +37 -0
  101. package/build/components/CommandPalette/index.js +181 -0
  102. package/build/components/CommandPalette/index.js.map +1 -0
  103. package/build/components/CommandPalette/style.css +1 -0
  104. package/build/components/ConfirmDialog/index.cjs +2 -0
  105. package/build/components/ConfirmDialog/index.cjs.map +1 -0
  106. package/build/components/ConfirmDialog/index.d.ts +34 -0
  107. package/build/components/ConfirmDialog/index.js +85 -0
  108. package/build/components/ConfirmDialog/index.js.map +1 -0
  109. package/build/components/CopyField/index.cjs +2 -0
  110. package/build/components/CopyField/index.cjs.map +1 -0
  111. package/build/components/CopyField/index.d.ts +20 -0
  112. package/build/components/CopyField/index.js +44 -0
  113. package/build/components/CopyField/index.js.map +1 -0
  114. package/build/components/CopyField/style.css +1 -0
  115. package/build/components/DataTable/index.cjs +2 -0
  116. package/build/components/DataTable/index.cjs.map +1 -0
  117. package/build/components/DataTable/index.d.ts +60 -0
  118. package/build/components/DataTable/index.js +109 -0
  119. package/build/components/DataTable/index.js.map +1 -0
  120. package/build/components/DataTable/style.css +1 -0
  121. package/build/components/DateField/index.cjs +2 -0
  122. package/build/components/DateField/index.cjs.map +1 -0
  123. package/build/components/DateField/index.d.ts +44 -0
  124. package/build/components/DateField/index.js +79 -0
  125. package/build/components/DateField/index.js.map +1 -0
  126. package/build/components/DateField/style.css +1 -0
  127. package/build/components/Directory/index.cjs +2 -0
  128. package/build/components/Directory/index.cjs.map +1 -0
  129. package/build/components/Directory/index.d.ts +51 -0
  130. package/build/components/Directory/index.js +46 -0
  131. package/build/components/Directory/index.js.map +1 -0
  132. package/build/components/Directory/style.css +1 -0
  133. package/build/components/Disclosure/index.cjs +2 -0
  134. package/build/components/Disclosure/index.cjs.map +1 -0
  135. package/build/components/Disclosure/index.d.ts +34 -0
  136. package/build/components/Disclosure/index.js +64 -0
  137. package/build/components/Disclosure/index.js.map +1 -0
  138. package/build/components/Disclosure/style.css +1 -0
  139. package/build/components/Divider/index.cjs +2 -0
  140. package/build/components/Divider/index.cjs.map +1 -0
  141. package/build/components/Divider/index.d.ts +10 -0
  142. package/build/components/Divider/index.js +24 -0
  143. package/build/components/Divider/index.js.map +1 -0
  144. package/build/components/Divider/style.css +1 -0
  145. package/build/components/Drawer/index.cjs +2 -0
  146. package/build/components/Drawer/index.cjs.map +1 -0
  147. package/build/components/Drawer/index.d.ts +22 -0
  148. package/build/components/Drawer/index.js +88 -0
  149. package/build/components/Drawer/index.js.map +1 -0
  150. package/build/components/Drawer/style.css +1 -0
  151. package/build/components/EmptyState/index.cjs +2 -0
  152. package/build/components/EmptyState/index.cjs.map +1 -0
  153. package/build/components/EmptyState/index.d.ts +19 -0
  154. package/build/components/EmptyState/index.js +35 -0
  155. package/build/components/EmptyState/index.js.map +1 -0
  156. package/build/components/EmptyState/style.css +1 -0
  157. package/build/components/Field/index.cjs +2 -0
  158. package/build/components/Field/index.cjs.map +1 -0
  159. package/build/components/Field/index.d.ts +31 -0
  160. package/build/components/Field/index.js +52 -0
  161. package/build/components/Field/index.js.map +1 -0
  162. package/build/components/Field/style.css +1 -0
  163. package/build/components/FileUpload/index.cjs +2 -0
  164. package/build/components/FileUpload/index.cjs.map +1 -0
  165. package/build/components/FileUpload/index.d.ts +42 -0
  166. package/build/components/FileUpload/index.js +145 -0
  167. package/build/components/FileUpload/index.js.map +1 -0
  168. package/build/components/FileUpload/style.css +1 -0
  169. package/build/components/FilterBar/index.cjs +2 -0
  170. package/build/components/FilterBar/index.cjs.map +1 -0
  171. package/build/components/FilterBar/index.d.ts +28 -0
  172. package/build/components/FilterBar/index.js +35 -0
  173. package/build/components/FilterBar/index.js.map +1 -0
  174. package/build/components/FilterBar/style.css +1 -0
  175. package/build/components/IconButton/index.cjs +2 -0
  176. package/build/components/IconButton/index.cjs.map +1 -0
  177. package/build/components/IconButton/index.d.ts +22 -0
  178. package/build/components/IconButton/index.js +61 -0
  179. package/build/components/IconButton/index.js.map +1 -0
  180. package/build/components/IconButton/style.css +1 -0
  181. package/build/components/Input/index.cjs +2 -0
  182. package/build/components/Input/index.cjs.map +1 -0
  183. package/build/components/Input/index.d.ts +15 -0
  184. package/build/components/Input/index.js +52 -0
  185. package/build/components/Input/index.js.map +1 -0
  186. package/build/components/Input/style.css +1 -0
  187. package/build/components/Kbd/index.cjs +2 -0
  188. package/build/components/Kbd/index.cjs.map +1 -0
  189. package/build/components/Kbd/index.d.ts +12 -0
  190. package/build/components/Kbd/index.js +13 -0
  191. package/build/components/Kbd/index.js.map +1 -0
  192. package/build/components/Kbd/style.css +1 -0
  193. package/build/components/Link/index.cjs +2 -0
  194. package/build/components/Link/index.cjs.map +1 -0
  195. package/build/components/Link/index.d.ts +5 -0
  196. package/build/components/Link/index.js +11 -0
  197. package/build/components/Link/index.js.map +1 -0
  198. package/build/components/Menu/index.cjs +2 -0
  199. package/build/components/Menu/index.cjs.map +1 -0
  200. package/build/components/Menu/index.d.ts +46 -0
  201. package/build/components/Menu/index.js +241 -0
  202. package/build/components/Menu/index.js.map +1 -0
  203. package/build/components/Menu/style.css +1 -0
  204. package/build/components/Modal/index.cjs +2 -0
  205. package/build/components/Modal/index.cjs.map +1 -0
  206. package/build/components/Modal/index.d.ts +28 -0
  207. package/build/components/Modal/index.js +92 -0
  208. package/build/components/Modal/index.js.map +1 -0
  209. package/build/components/Modal/style.css +1 -0
  210. package/build/components/PageHeader/index.cjs +2 -0
  211. package/build/components/PageHeader/index.cjs.map +1 -0
  212. package/build/components/PageHeader/index.d.ts +24 -0
  213. package/build/components/PageHeader/index.js +34 -0
  214. package/build/components/PageHeader/index.js.map +1 -0
  215. package/build/components/PageHeader/style.css +1 -0
  216. package/build/components/Pagination/index.cjs +2 -0
  217. package/build/components/Pagination/index.cjs.map +1 -0
  218. package/build/components/Pagination/index.d.ts +39 -0
  219. package/build/components/Pagination/index.js +128 -0
  220. package/build/components/Pagination/index.js.map +1 -0
  221. package/build/components/Pagination/style.css +1 -0
  222. package/build/components/Panel/index.cjs +2 -0
  223. package/build/components/Panel/index.cjs.map +1 -0
  224. package/build/components/Panel/index.d.ts +43 -0
  225. package/build/components/Panel/index.js +55 -0
  226. package/build/components/Panel/index.js.map +1 -0
  227. package/build/components/Panel/style.css +1 -0
  228. package/build/components/PasswordInput/index.cjs +2 -0
  229. package/build/components/PasswordInput/index.cjs.map +1 -0
  230. package/build/components/PasswordInput/index.d.ts +14 -0
  231. package/build/components/PasswordInput/index.js +40 -0
  232. package/build/components/PasswordInput/index.js.map +1 -0
  233. package/build/components/PasswordInput/style.css +1 -0
  234. package/build/components/Popover/index.cjs +2 -0
  235. package/build/components/Popover/index.cjs.map +1 -0
  236. package/build/components/Popover/index.d.ts +20 -0
  237. package/build/components/Popover/index.js +91 -0
  238. package/build/components/Popover/index.js.map +1 -0
  239. package/build/components/Popover/style.css +1 -0
  240. package/build/components/Price/index.cjs +2 -0
  241. package/build/components/Price/index.cjs.map +1 -0
  242. package/build/components/Price/index.d.ts +22 -0
  243. package/build/components/Price/index.js +46 -0
  244. package/build/components/Price/index.js.map +1 -0
  245. package/build/components/Price/style.css +1 -0
  246. package/build/components/Progress/index.cjs +2 -0
  247. package/build/components/Progress/index.cjs.map +1 -0
  248. package/build/components/Progress/index.d.ts +49 -0
  249. package/build/components/Progress/index.js +120 -0
  250. package/build/components/Progress/index.js.map +1 -0
  251. package/build/components/Progress/style.css +1 -0
  252. package/build/components/PromptDialog/index.cjs +2 -0
  253. package/build/components/PromptDialog/index.cjs.map +1 -0
  254. package/build/components/PromptDialog/index.d.ts +36 -0
  255. package/build/components/PromptDialog/index.js +119 -0
  256. package/build/components/PromptDialog/index.js.map +1 -0
  257. package/build/components/PromptDialog/style.css +1 -0
  258. package/build/components/QuantityStepper/index.cjs +2 -0
  259. package/build/components/QuantityStepper/index.cjs.map +1 -0
  260. package/build/components/QuantityStepper/index.d.ts +21 -0
  261. package/build/components/QuantityStepper/index.js +106 -0
  262. package/build/components/QuantityStepper/index.js.map +1 -0
  263. package/build/components/QuantityStepper/style.css +1 -0
  264. package/build/components/Radio/index.cjs +2 -0
  265. package/build/components/Radio/index.cjs.map +1 -0
  266. package/build/components/Radio/index.d.ts +12 -0
  267. package/build/components/Radio/index.js +35 -0
  268. package/build/components/Radio/index.js.map +1 -0
  269. package/build/components/Radio/style.css +1 -0
  270. package/build/components/RadioCard/index.cjs +2 -0
  271. package/build/components/RadioCard/index.cjs.map +1 -0
  272. package/build/components/RadioCard/index.d.ts +16 -0
  273. package/build/components/RadioCard/index.js +48 -0
  274. package/build/components/RadioCard/index.js.map +1 -0
  275. package/build/components/RadioCard/style.css +1 -0
  276. package/build/components/RangeSlider/index.cjs +2 -0
  277. package/build/components/RangeSlider/index.cjs.map +1 -0
  278. package/build/components/RangeSlider/index.d.ts +26 -0
  279. package/build/components/RangeSlider/index.js +102 -0
  280. package/build/components/RangeSlider/index.js.map +1 -0
  281. package/build/components/RangeSlider/style.css +1 -0
  282. package/build/components/Rating/index.cjs +2 -0
  283. package/build/components/Rating/index.cjs.map +1 -0
  284. package/build/components/Rating/index.d.ts +16 -0
  285. package/build/components/Rating/index.js +29 -0
  286. package/build/components/Rating/index.js.map +1 -0
  287. package/build/components/Rating/style.css +1 -0
  288. package/build/components/RatingInput/index.cjs +2 -0
  289. package/build/components/RatingInput/index.cjs.map +1 -0
  290. package/build/components/RatingInput/index.d.ts +21 -0
  291. package/build/components/RatingInput/index.js +75 -0
  292. package/build/components/RatingInput/index.js.map +1 -0
  293. package/build/components/RatingInput/style.css +1 -0
  294. package/build/components/ScrollArea/index.cjs +2 -0
  295. package/build/components/ScrollArea/index.cjs.map +1 -0
  296. package/build/components/ScrollArea/index.d.ts +23 -0
  297. package/build/components/ScrollArea/index.js +65 -0
  298. package/build/components/ScrollArea/index.js.map +1 -0
  299. package/build/components/ScrollArea/style.css +1 -0
  300. package/build/components/SectionHeader/index.cjs +2 -0
  301. package/build/components/SectionHeader/index.cjs.map +1 -0
  302. package/build/components/SectionHeader/index.d.ts +17 -0
  303. package/build/components/SectionHeader/index.js +25 -0
  304. package/build/components/SectionHeader/index.js.map +1 -0
  305. package/build/components/SectionHeader/style.css +1 -0
  306. package/build/components/SegmentedControl/index.cjs +2 -0
  307. package/build/components/SegmentedControl/index.cjs.map +1 -0
  308. package/build/components/SegmentedControl/index.d.ts +24 -0
  309. package/build/components/SegmentedControl/index.js +69 -0
  310. package/build/components/SegmentedControl/index.js.map +1 -0
  311. package/build/components/SegmentedControl/style.css +1 -0
  312. package/build/components/Select/index.cjs +2 -0
  313. package/build/components/Select/index.cjs.map +1 -0
  314. package/build/components/Select/index.d.ts +39 -0
  315. package/build/components/Select/index.js +179 -0
  316. package/build/components/Select/index.js.map +1 -0
  317. package/build/components/Select/style.css +1 -0
  318. package/build/components/Skeleton/index.cjs +2 -0
  319. package/build/components/Skeleton/index.cjs.map +1 -0
  320. package/build/components/Skeleton/index.d.ts +25 -0
  321. package/build/components/Skeleton/index.js +50 -0
  322. package/build/components/Skeleton/index.js.map +1 -0
  323. package/build/components/Skeleton/style.css +1 -0
  324. package/build/components/Spinner/index.cjs +2 -0
  325. package/build/components/Spinner/index.cjs.map +1 -0
  326. package/build/components/Spinner/index.d.ts +11 -0
  327. package/build/components/Spinner/index.js +15 -0
  328. package/build/components/Spinner/index.js.map +1 -0
  329. package/build/components/Spinner/style.css +1 -0
  330. package/build/components/Stat/index.cjs +2 -0
  331. package/build/components/Stat/index.cjs.map +1 -0
  332. package/build/components/Stat/index.d.ts +34 -0
  333. package/build/components/Stat/index.js +72 -0
  334. package/build/components/Stat/index.js.map +1 -0
  335. package/build/components/Stat/style.css +1 -0
  336. package/build/components/StatusDot/index.cjs +2 -0
  337. package/build/components/StatusDot/index.cjs.map +1 -0
  338. package/build/components/StatusDot/index.d.ts +23 -0
  339. package/build/components/StatusDot/index.js +23 -0
  340. package/build/components/StatusDot/index.js.map +1 -0
  341. package/build/components/StatusDot/style.css +1 -0
  342. package/build/components/Steps/index.cjs +2 -0
  343. package/build/components/Steps/index.cjs.map +1 -0
  344. package/build/components/Steps/index.d.ts +23 -0
  345. package/build/components/Steps/index.js +69 -0
  346. package/build/components/Steps/index.js.map +1 -0
  347. package/build/components/Steps/style.css +1 -0
  348. package/build/components/SummaryCard/index.cjs +2 -0
  349. package/build/components/SummaryCard/index.cjs.map +1 -0
  350. package/build/components/SummaryCard/index.d.ts +24 -0
  351. package/build/components/SummaryCard/index.js +33 -0
  352. package/build/components/SummaryCard/index.js.map +1 -0
  353. package/build/components/SummaryCard/style.css +1 -0
  354. package/build/components/Switch/index.cjs +2 -0
  355. package/build/components/Switch/index.cjs.map +1 -0
  356. package/build/components/Switch/index.d.ts +16 -0
  357. package/build/components/Switch/index.js +42 -0
  358. package/build/components/Switch/index.js.map +1 -0
  359. package/build/components/Switch/style.css +1 -0
  360. package/build/components/Table/index.cjs +2 -0
  361. package/build/components/Table/index.cjs.map +1 -0
  362. package/build/components/Table/index.d.ts +28 -0
  363. package/build/components/Table/index.js +58 -0
  364. package/build/components/Table/index.js.map +1 -0
  365. package/build/components/Table/style.css +1 -0
  366. package/build/components/TableCheckbox/index.cjs +2 -0
  367. package/build/components/TableCheckbox/index.cjs.map +1 -0
  368. package/build/components/TableCheckbox/index.d.ts +15 -0
  369. package/build/components/TableCheckbox/index.js +31 -0
  370. package/build/components/TableCheckbox/index.js.map +1 -0
  371. package/build/components/TableCheckbox/style.css +1 -0
  372. package/build/components/Tabs/index.cjs +2 -0
  373. package/build/components/Tabs/index.cjs.map +1 -0
  374. package/build/components/Tabs/index.d.ts +27 -0
  375. package/build/components/Tabs/index.js +102 -0
  376. package/build/components/Tabs/index.js.map +1 -0
  377. package/build/components/Tabs/style.css +1 -0
  378. package/build/components/TagInput/index.cjs +2 -0
  379. package/build/components/TagInput/index.cjs.map +1 -0
  380. package/build/components/TagInput/index.d.ts +25 -0
  381. package/build/components/TagInput/index.js +124 -0
  382. package/build/components/TagInput/index.js.map +1 -0
  383. package/build/components/TagInput/style.css +1 -0
  384. package/build/components/TextLink/index.cjs +2 -0
  385. package/build/components/TextLink/index.cjs.map +1 -0
  386. package/build/components/TextLink/index.d.ts +16 -0
  387. package/build/components/TextLink/index.js +32 -0
  388. package/build/components/TextLink/index.js.map +1 -0
  389. package/build/components/TextLink/style.css +1 -0
  390. package/build/components/Textarea/index.cjs +2 -0
  391. package/build/components/Textarea/index.cjs.map +1 -0
  392. package/build/components/Textarea/index.d.ts +20 -0
  393. package/build/components/Textarea/index.js +68 -0
  394. package/build/components/Textarea/index.js.map +1 -0
  395. package/build/components/Textarea/style.css +1 -0
  396. package/build/components/Tile/index.cjs +2 -0
  397. package/build/components/Tile/index.cjs.map +1 -0
  398. package/build/components/Tile/index.d.ts +19 -0
  399. package/build/components/Tile/index.js +24 -0
  400. package/build/components/Tile/index.js.map +1 -0
  401. package/build/components/Tile/style.css +1 -0
  402. package/build/components/Timeline/index.cjs +2 -0
  403. package/build/components/Timeline/index.cjs.map +1 -0
  404. package/build/components/Timeline/index.d.ts +24 -0
  405. package/build/components/Timeline/index.js +56 -0
  406. package/build/components/Timeline/index.js.map +1 -0
  407. package/build/components/Timeline/style.css +1 -0
  408. package/build/components/Toast/index.cjs +2 -0
  409. package/build/components/Toast/index.cjs.map +1 -0
  410. package/build/components/Toast/index.d.ts +43 -0
  411. package/build/components/Toast/index.js +136 -0
  412. package/build/components/Toast/index.js.map +1 -0
  413. package/build/components/Toast/style.css +1 -0
  414. package/build/components/ToastPortal/index.cjs +2 -0
  415. package/build/components/ToastPortal/index.cjs.map +1 -0
  416. package/build/components/ToastPortal/index.d.ts +8 -0
  417. package/build/components/ToastPortal/index.js +15 -0
  418. package/build/components/ToastPortal/index.js.map +1 -0
  419. package/build/components/Tooltip/index.cjs +2 -0
  420. package/build/components/Tooltip/index.cjs.map +1 -0
  421. package/build/components/Tooltip/index.d.ts +23 -0
  422. package/build/components/Tooltip/index.js +116 -0
  423. package/build/components/Tooltip/index.js.map +1 -0
  424. package/build/components/Tooltip/style.css +1 -0
  425. package/build/constants/breakpoint.constants.cjs +2 -0
  426. package/build/constants/breakpoint.constants.cjs.map +1 -0
  427. package/build/constants/breakpoint.constants.d.ts +13 -0
  428. package/build/constants/breakpoint.constants.js +11 -0
  429. package/build/constants/breakpoint.constants.js.map +1 -0
  430. package/build/constants/combobox.constants.cjs +2 -0
  431. package/build/constants/combobox.constants.cjs.map +1 -0
  432. package/build/constants/combobox.constants.d.ts +11 -0
  433. package/build/constants/combobox.constants.js +7 -0
  434. package/build/constants/combobox.constants.js.map +1 -0
  435. package/build/constants/scroll.constants.cjs +2 -0
  436. package/build/constants/scroll.constants.cjs.map +1 -0
  437. package/build/constants/scroll.constants.d.ts +7 -0
  438. package/build/constants/scroll.constants.js +5 -0
  439. package/build/constants/scroll.constants.js.map +1 -0
  440. package/build/enums/ui-size.enum.cjs +2 -0
  441. package/build/enums/ui-size.enum.cjs.map +1 -0
  442. package/build/enums/ui-size.enum.d.ts +12 -0
  443. package/build/enums/ui-size.enum.js +5 -0
  444. package/build/enums/ui-size.enum.js.map +1 -0
  445. package/build/enums/ui-variant.enum.cjs +2 -0
  446. package/build/enums/ui-variant.enum.cjs.map +1 -0
  447. package/build/enums/ui-variant.enum.d.ts +20 -0
  448. package/build/enums/ui-variant.enum.js +5 -0
  449. package/build/enums/ui-variant.enum.js.map +1 -0
  450. package/build/helpers/class-name.helper.cjs +2 -0
  451. package/build/helpers/class-name.helper.cjs.map +1 -0
  452. package/build/helpers/class-name.helper.d.ts +3 -0
  453. package/build/helpers/class-name.helper.js +10 -0
  454. package/build/helpers/class-name.helper.js.map +1 -0
  455. package/build/helpers/component.helper.cjs +2 -0
  456. package/build/helpers/component.helper.cjs.map +1 -0
  457. package/build/helpers/component.helper.d.ts +13 -0
  458. package/build/helpers/component.helper.js +5 -0
  459. package/build/helpers/component.helper.js.map +1 -0
  460. package/build/helpers/focus.helper.cjs +2 -0
  461. package/build/helpers/focus.helper.cjs.map +1 -0
  462. package/build/helpers/focus.helper.d.ts +42 -0
  463. package/build/helpers/focus.helper.js +65 -0
  464. package/build/helpers/focus.helper.js.map +1 -0
  465. package/build/helpers/label.helper.cjs +2 -0
  466. package/build/helpers/label.helper.cjs.map +1 -0
  467. package/build/helpers/label.helper.d.ts +11 -0
  468. package/build/helpers/label.helper.js +11 -0
  469. package/build/helpers/label.helper.js.map +1 -0
  470. package/build/helpers/portal.helper.cjs +2 -0
  471. package/build/helpers/portal.helper.cjs.map +1 -0
  472. package/build/helpers/portal.helper.d.ts +28 -0
  473. package/build/helpers/portal.helper.js +36 -0
  474. package/build/helpers/portal.helper.js.map +1 -0
  475. package/build/helpers/scroll.helper.cjs +2 -0
  476. package/build/helpers/scroll.helper.cjs.map +1 -0
  477. package/build/helpers/scroll.helper.d.ts +8 -0
  478. package/build/helpers/scroll.helper.js +11 -0
  479. package/build/helpers/scroll.helper.js.map +1 -0
  480. package/build/helpers/text.helper.cjs +2 -0
  481. package/build/helpers/text.helper.cjs.map +1 -0
  482. package/build/helpers/text.helper.d.ts +5 -0
  483. package/build/helpers/text.helper.js +6 -0
  484. package/build/helpers/text.helper.js.map +1 -0
  485. package/build/helpers/theme.helper.cjs +2 -0
  486. package/build/helpers/theme.helper.cjs.map +1 -0
  487. package/build/helpers/theme.helper.d.ts +18 -0
  488. package/build/helpers/theme.helper.js +37 -0
  489. package/build/helpers/theme.helper.js.map +1 -0
  490. package/build/hooks/useAnnounce.cjs +2 -0
  491. package/build/hooks/useAnnounce.cjs.map +1 -0
  492. package/build/hooks/useAnnounce.d.ts +4 -0
  493. package/build/hooks/useAnnounce.js +23 -0
  494. package/build/hooks/useAnnounce.js.map +1 -0
  495. package/build/hooks/useAsyncSearch.cjs +2 -0
  496. package/build/hooks/useAsyncSearch.cjs.map +1 -0
  497. package/build/hooks/useAsyncSearch.d.ts +11 -0
  498. package/build/hooks/useAsyncSearch.js +17 -0
  499. package/build/hooks/useAsyncSearch.js.map +1 -0
  500. package/build/hooks/useCopyFeedback.cjs +2 -0
  501. package/build/hooks/useCopyFeedback.cjs.map +1 -0
  502. package/build/hooks/useCopyFeedback.d.ts +10 -0
  503. package/build/hooks/useCopyFeedback.js +25 -0
  504. package/build/hooks/useCopyFeedback.js.map +1 -0
  505. package/build/hooks/useDismissOnEscape.cjs +2 -0
  506. package/build/hooks/useDismissOnEscape.cjs.map +1 -0
  507. package/build/hooks/useDismissOnEscape.d.ts +12 -0
  508. package/build/hooks/useDismissOnEscape.js +18 -0
  509. package/build/hooks/useDismissOnEscape.js.map +1 -0
  510. package/build/hooks/useListboxNavigation.cjs +2 -0
  511. package/build/hooks/useListboxNavigation.cjs.map +1 -0
  512. package/build/hooks/useListboxNavigation.d.ts +7 -0
  513. package/build/hooks/useListboxNavigation.js +53 -0
  514. package/build/hooks/useListboxNavigation.js.map +1 -0
  515. package/build/hooks/usePortalSurface.cjs +2 -0
  516. package/build/hooks/usePortalSurface.cjs.map +1 -0
  517. package/build/hooks/usePortalSurface.d.ts +25 -0
  518. package/build/hooks/usePortalSurface.js +19 -0
  519. package/build/hooks/usePortalSurface.js.map +1 -0
  520. package/build/hooks/usePositioning.cjs +2 -0
  521. package/build/hooks/usePositioning.cjs.map +1 -0
  522. package/build/hooks/usePositioning.d.ts +13 -0
  523. package/build/hooks/usePositioning.js +74 -0
  524. package/build/hooks/usePositioning.js.map +1 -0
  525. package/build/hooks/useScrollLock.cjs +2 -0
  526. package/build/hooks/useScrollLock.cjs.map +1 -0
  527. package/build/hooks/useScrollLock.d.ts +2 -0
  528. package/build/hooks/useScrollLock.js +34 -0
  529. package/build/hooks/useScrollLock.js.map +1 -0
  530. package/build/hooks/useSheetViewport.cjs +2 -0
  531. package/build/hooks/useSheetViewport.cjs.map +1 -0
  532. package/build/hooks/useSheetViewport.d.ts +6 -0
  533. package/build/hooks/useSheetViewport.js +29 -0
  534. package/build/hooks/useSheetViewport.js.map +1 -0
  535. package/build/hooks/useStickToBottom.cjs +2 -0
  536. package/build/hooks/useStickToBottom.cjs.map +1 -0
  537. package/build/hooks/useStickToBottom.d.ts +12 -0
  538. package/build/hooks/useStickToBottom.js +39 -0
  539. package/build/hooks/useStickToBottom.js.map +1 -0
  540. package/build/hooks/useUiTheme.cjs +2 -0
  541. package/build/hooks/useUiTheme.cjs.map +1 -0
  542. package/build/hooks/useUiTheme.d.ts +10 -0
  543. package/build/hooks/useUiTheme.js +42 -0
  544. package/build/hooks/useUiTheme.js.map +1 -0
  545. package/build/hooks/useUiTokens.cjs +2 -0
  546. package/build/hooks/useUiTokens.cjs.map +1 -0
  547. package/build/hooks/useUiTokens.d.ts +11 -0
  548. package/build/hooks/useUiTokens.js +36 -0
  549. package/build/hooks/useUiTokens.js.map +1 -0
  550. package/build/hooks/useVirtualList.cjs +2 -0
  551. package/build/hooks/useVirtualList.cjs.map +1 -0
  552. package/build/hooks/useVirtualList.d.ts +13 -0
  553. package/build/hooks/useVirtualList.js +41 -0
  554. package/build/hooks/useVirtualList.js.map +1 -0
  555. package/build/index.cjs +2 -0
  556. package/build/index.cjs.map +1 -0
  557. package/build/index.d.ts +93 -0
  558. package/build/index.js +199 -0
  559. package/build/index.js.map +1 -0
  560. package/build/scss/_index.scss +7 -0
  561. package/build/scss/_mixins.scss +828 -0
  562. package/build/scss/_variables.scss +243 -0
  563. package/build/styles/base.d.ts +0 -0
  564. package/build/styles.css +133 -0
  565. package/build/theme/UiProvider.cjs +2 -0
  566. package/build/theme/UiProvider.cjs.map +1 -0
  567. package/build/theme/UiProvider.d.ts +23 -0
  568. package/build/theme/UiProvider.js +12 -0
  569. package/build/theme/UiProvider.js.map +1 -0
  570. package/build/theme/UiThemeScript.cjs +2 -0
  571. package/build/theme/UiThemeScript.cjs.map +1 -0
  572. package/build/theme/UiThemeScript.d.ts +22 -0
  573. package/build/theme/UiThemeScript.js +8 -0
  574. package/build/theme/UiThemeScript.js.map +1 -0
  575. package/build/theme/context.cjs +2 -0
  576. package/build/theme/context.cjs.map +1 -0
  577. package/build/theme/context.d.ts +5 -0
  578. package/build/theme/context.js +8 -0
  579. package/build/theme/context.js.map +1 -0
  580. package/build/types/charts/AreaChart/index.d.ts +14 -0
  581. package/build/types/charts/BarChart/index.d.ts +16 -0
  582. package/build/types/charts/BoxPlot/index.d.ts +43 -0
  583. package/build/types/charts/ComposedChart/index.d.ts +16 -0
  584. package/build/types/charts/Heatmap/index.d.ts +30 -0
  585. package/build/types/charts/Histogram/index.d.ts +29 -0
  586. package/build/types/charts/LineChart/index.d.ts +14 -0
  587. package/build/types/charts/PieChart/index.d.ts +36 -0
  588. package/build/types/charts/RadarChart/index.d.ts +40 -0
  589. package/build/types/charts/ScatterPlot/index.d.ts +41 -0
  590. package/build/types/charts/core/CartesianChart.d.ts +43 -0
  591. package/build/types/charts/core/ChartFrame.d.ts +55 -0
  592. package/build/types/charts/core/axes.d.ts +37 -0
  593. package/build/types/charts/core/cartesian.d.ts +80 -0
  594. package/build/types/charts/core/format.d.ts +19 -0
  595. package/build/types/charts/core/margins.d.ts +9 -0
  596. package/build/types/charts/core/palette.d.ts +11 -0
  597. package/build/types/charts/core/path.d.ts +24 -0
  598. package/build/types/charts/core/scale.d.ts +40 -0
  599. package/build/types/charts/core/series.d.ts +11 -0
  600. package/build/types/charts/core/spatial.d.ts +12 -0
  601. package/build/types/charts/core/stats.d.ts +34 -0
  602. package/build/types/charts/core/types.d.ts +31 -0
  603. package/build/types/charts/core/useChartWidth.d.ts +7 -0
  604. package/build/types/charts/index.d.ts +21 -0
  605. package/build/types/chat/ActionList/index.d.ts +46 -0
  606. package/build/types/chat/AppBar/index.d.ts +21 -0
  607. package/build/types/chat/ChatMessage/index.d.ts +24 -0
  608. package/build/types/chat/ChatThread/index.d.ts +24 -0
  609. package/build/types/chat/Citation/index.d.ts +15 -0
  610. package/build/types/chat/CodeBlock/format.d.ts +7 -0
  611. package/build/types/chat/CodeBlock/grammars.d.ts +44 -0
  612. package/build/types/chat/CodeBlock/highlight.d.ts +22 -0
  613. package/build/types/chat/CodeBlock/index.d.ts +33 -0
  614. package/build/types/chat/DescriptionList/index.d.ts +16 -0
  615. package/build/types/chat/Legend/index.d.ts +21 -0
  616. package/build/types/chat/MessageActions/index.d.ts +21 -0
  617. package/build/types/chat/PromptInput/index.d.ts +47 -0
  618. package/build/types/chat/PromptSuggestions/index.d.ts +25 -0
  619. package/build/types/chat/Prose/index.d.ts +15 -0
  620. package/build/types/chat/ReasoningBlock/index.d.ts +24 -0
  621. package/build/types/chat/ReasoningText/index.d.ts +14 -0
  622. package/build/types/chat/SegmentBar/index.d.ts +46 -0
  623. package/build/types/chat/SourceList/index.d.ts +25 -0
  624. package/build/types/chat/TerminalOutput/index.d.ts +25 -0
  625. package/build/types/chat/ToolCall/index.d.ts +41 -0
  626. package/build/types/chat/index.d.ts +26 -0
  627. package/build/types/combobox.type.d.ts +49 -0
  628. package/build/types/common-element-props.type.d.ts +8 -0
  629. package/build/types/helpers/class-name.helper.d.ts +3 -0
  630. package/build/types/helpers/component.helper.d.ts +13 -0
  631. package/build/types/helpers/label.helper.d.ts +12 -0
  632. package/build/types/hook.type.d.ts +36 -0
  633. package/build/types/link.type.d.ts +14 -0
  634. package/build/types/positioning.type.d.ts +38 -0
  635. package/build/types/theme.type.d.ts +181 -0
  636. package/build/types/types/common-element-props.type.d.ts +8 -0
  637. package/build/types/types/link.type.d.ts +14 -0
  638. package/build/types/types/theme.type.d.ts +181 -0
  639. package/package.json +487 -4
@@ -0,0 +1 @@
1
+ @layer ui{.ui-disclosure-8-hqp{min-height:min-content}.ui-disclosure--framed-9MEX3{border:1px solid var(--hd-border);border-radius:var(--hd-radius-md);background-color:var(--hd-bg-surface);overflow:hidden}.ui-disclosure--disabled-PuIjA .ui-disclosure__summary-jIf2Z{cursor:not-allowed}.ui-disclosure--disabled-PuIjA .ui-disclosure__title-ybejN,.ui-disclosure--disabled-PuIjA .ui-disclosure__meta-pnUle,.ui-disclosure--disabled-PuIjA .ui-disclosure__marker-8ZZ93{color:var(--hd-text-3)}@media (forced-colors: active){.ui-disclosure--disabled-PuIjA .ui-disclosure__title-ybejN,.ui-disclosure--disabled-PuIjA .ui-disclosure__meta-pnUle,.ui-disclosure--disabled-PuIjA .ui-disclosure__marker-8ZZ93{color:GrayText}}.ui-disclosure__summary-jIf2Z{display:flex;align-items:center;gap:var(--hd-space-3);border:var(--hd-space-1) solid transparent;border-radius:calc(var(--hd-radius-md) - 1px);background-clip:padding-box;padding:calc(var(--hd-space-4) - var(--hd-space-1));cursor:pointer;list-style:none;font-size:var(--hd-type-small-size);font-weight:var(--hd-font-weight-semibold);color:var(--hd-text);background-color:transparent;transition:background-color var(--hd-duration-fast) var(--hd-ease-standard),translate var(--hd-duration-fast) var(--hd-ease-standard)}.ui-disclosure__summary-jIf2Z:hover:not(:disabled):not([aria-disabled=true]){background-color:color-mix(in srgb,var(--hd-text) 8%,transparent)}.ui-disclosure__summary-jIf2Z:active:not(:disabled):not([aria-disabled=true]){background-color:color-mix(in srgb,var(--hd-text) 14%,transparent);translate:0 1px}@media (prefers-reduced-motion: reduce){.ui-disclosure__summary-jIf2Z{transition:none}.ui-disclosure__summary-jIf2Z:active:not(:disabled):not([aria-disabled=true]){translate:none}}.ui-disclosure__summary-jIf2Z::-webkit-details-marker{display:none}.ui-disclosure__summary-jIf2Z:focus-visible{outline:var(--ui-ring-width, 2px) solid var(--hd-focus);outline-offset:var(--ui-ring-offset, -2px)}@media (prefers-reduced-motion: reduce){.ui-disclosure__summary-jIf2Z{transition:none}}[dir=rtl] .ui-disclosure__marker-8ZZ93{transform:scaleX(-1)}.ui-disclosure__marker-8ZZ93{flex-shrink:0;font-size:14px;color:var(--hd-text-2);transition:rotate var(--hd-duration-fast) var(--hd-ease-standard)}[open]>.ui-disclosure__summary-jIf2Z>.ui-disclosure__marker-8ZZ93{rotate:90deg}@media (prefers-reduced-motion: reduce){.ui-disclosure__marker-8ZZ93{transition:none}}[dir=rtl] [open]>.ui-disclosure__summary-jIf2Z>.ui-disclosure__marker-8ZZ93{rotate:-90deg}.ui-disclosure__title-ybejN{flex:1;min-width:0}.ui-disclosure__meta-pnUle{flex-shrink:0;font-size:var(--hd-type-caption-size);font-weight:var(--hd-font-weight-regular);color:var(--hd-text-2)}.ui-disclosure__panel-lQjb8{interpolate-size:allow-keywords;height:0;overflow:hidden;transition:height var(--hd-duration-base) var(--hd-ease-standard)}[open]>.ui-disclosure__panel-lQjb8{height:auto}@media (prefers-reduced-motion: reduce){.ui-disclosure__panel-lQjb8{transition:none}}.ui-disclosure__content-x33OL{padding:0 var(--hd-space-4) var(--hd-space-4);font-size:var(--hd-type-small-size);line-height:var(--hd-type-body-line-height);color:var(--hd-text-2)}}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const i=require("react/jsx-runtime"),a=require("react"),s=require("../../helpers/class-name.helper.cjs"),e={default:{"divider":"ui-divider-RJqCw","divider--labelled":"ui-divider--labelled-jZH1-","divider__label":"ui-divider__label-M8sBA"}},l=({label:r,className:d})=>r?i.jsx("div",{role:"separator","aria-label":r,className:s.cx(e.default.divider,e.default["divider--labelled"],d),children:i.jsx("span",{className:e.default.divider__label,children:r})}):i.jsx("hr",{className:s.cx(e.default.divider,d)}),t=a.memo(l);exports.default=t;
2
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs","sources":["../../../src/components/Divider/index.tsx"],"sourcesContent":["import { type FC, memo } from 'react';\n\nimport { cx } from '../../helpers/class-name.helper';\n\nimport styles from './index.module.scss';\n\ntype Props = {\n /** Ortada gösterilen metin (\"veya\"). */\n label?: string;\n className?: string;\n};\n\n/** Ayırıcı çizgi. */\nconst Divider: FC<Props> = ({ label, className }) =>\n label ? (\n /*\n * ⚠ `role=\"separator\"` ZORUNLU.\n * ⚠ `aria-orientation` YAZILMAZ: `separator`ın varsayılanı zaten `horizontal` ve bileşen dikey\n * bir varyant sunmuyor.\n */\n <div\n role=\"separator\"\n aria-label={label}\n className={cx(styles.divider, styles['divider--labelled'], className)}\n >\n <span className={styles.divider__label}>{label}</span>\n </div>\n ) : (\n <hr className={cx(styles.divider, className)} />\n );\n\nexport default /*#__PURE__*/ memo(Divider) as typeof Divider;\n"],"names":["Divider","label","className","jsx","cx","styles","index"],"mappings":"0PAaMA,EAAqB,CAAC,CAAE,MAAAC,EAAO,UAAAC,KACnCD,EAMEE,EAAAA,IAAC,MAAA,CACC,KAAK,YACL,aAAYF,EACZ,UAAWG,EAAAA,GAAGC,UAAO,QAASA,EAAAA,QAAO,mBAAmB,EAAGH,CAAS,EAEpE,SAAAC,EAAAA,IAAC,OAAA,CAAK,UAAWE,EAAAA,QAAO,eAAiB,SAAAJ,CAAA,CAAM,CAAA,CAAA,QAGhD,KAAA,CAAG,UAAWG,EAAAA,GAAGC,EAAAA,QAAO,QAASH,CAAS,EAAG,EAGlDI,SAAkCN,CAAO"}
@@ -0,0 +1,10 @@
1
+ import { FC } from 'react';
2
+ type Props = {
3
+ /** Ortada gösterilen metin ("veya"). */
4
+ label?: string;
5
+ className?: string;
6
+ };
7
+ /** Ayırıcı çizgi. */
8
+ declare const Divider: FC<Props>;
9
+ declare const _default: typeof Divider;
10
+ export default _default;
@@ -0,0 +1,24 @@
1
+ import { jsx as e } from "react/jsx-runtime";
2
+ import { memo as a } from "react";
3
+ import { cx as o } from "../../helpers/class-name.helper.js";
4
+ const r = {"divider":"ui-divider-RJqCw","divider--labelled":"ui-divider--labelled-jZH1-","divider__label":"ui-divider__label-M8sBA"};
5
+ const m = ({ label: i, className: d }) => i ? (
6
+ /*
7
+ * ⚠ `role="separator"` ZORUNLU.
8
+ * ⚠ `aria-orientation` YAZILMAZ: `separator`ın varsayılanı zaten `horizontal` ve bileşen dikey
9
+ * bir varyant sunmuyor.
10
+ */
11
+ /* @__PURE__ */ e(
12
+ "div",
13
+ {
14
+ role: "separator",
15
+ "aria-label": i,
16
+ className: o(r.divider, r["divider--labelled"], d),
17
+ children: /* @__PURE__ */ e("span", { className: r.divider__label, children: i })
18
+ }
19
+ )
20
+ ) : /* @__PURE__ */ e("hr", { className: o(r.divider, d) }), p = /* @__PURE__ */ a(m);
21
+ export {
22
+ p as default
23
+ };
24
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../src/components/Divider/index.tsx"],"sourcesContent":["import { type FC, memo } from 'react';\n\nimport { cx } from '../../helpers/class-name.helper';\n\nimport styles from './index.module.scss';\n\ntype Props = {\n /** Ortada gösterilen metin (\"veya\"). */\n label?: string;\n className?: string;\n};\n\n/** Ayırıcı çizgi. */\nconst Divider: FC<Props> = ({ label, className }) =>\n label ? (\n /*\n * ⚠ `role=\"separator\"` ZORUNLU.\n * ⚠ `aria-orientation` YAZILMAZ: `separator`ın varsayılanı zaten `horizontal` ve bileşen dikey\n * bir varyant sunmuyor.\n */\n <div\n role=\"separator\"\n aria-label={label}\n className={cx(styles.divider, styles['divider--labelled'], className)}\n >\n <span className={styles.divider__label}>{label}</span>\n </div>\n ) : (\n <hr className={cx(styles.divider, className)} />\n );\n\nexport default /*#__PURE__*/ memo(Divider) as typeof Divider;\n"],"names":["Divider","label","className","jsx","cx","styles","index"],"mappings":";;;;AAaA,MAAMA,IAAqB,CAAC,EAAE,OAAAC,GAAO,WAAAC,QACnCD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAME,gBAAAE;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,MAAK;AAAA,MACL,cAAYF;AAAA,MACZ,WAAWG,EAAGC,EAAO,SAASA,EAAO,mBAAmB,GAAGH,CAAS;AAAA,MAEpE,UAAA,gBAAAC,EAAC,QAAA,EAAK,WAAWE,EAAO,gBAAiB,UAAAJ,EAAA,CAAM;AAAA,IAAA;AAAA,EAAA;AAAA,sBAGhD,MAAA,EAAG,WAAWG,EAAGC,EAAO,SAASH,CAAS,GAAG,GAGlDI,sBAAkCN,CAAO;"}
@@ -0,0 +1 @@
1
+ @layer ui{.ui-divider-RJqCw{border:none;border-top:1px solid var(--hd-border);margin:0;width:100%}.ui-divider--labelled-jZH1-{display:flex;align-items:center;gap:var(--hd-space-3);border-top:none}.ui-divider--labelled-jZH1-:before,.ui-divider--labelled-jZH1-:after{content:"";flex:1;border-top:1px solid var(--hd-border)}.ui-divider__label-M8sBA{font-size:var(--hd-type-caption-size);color:var(--hd-text-2);white-space:nowrap}}
@@ -0,0 +1,2 @@
1
+ "use client";"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const t=require("react/jsx-runtime"),a=require("react"),k=require("react-bootstrap-icons"),N=require("../../helpers/class-name.helper.cjs"),L=require("../../helpers/component.helper.cjs"),c=require("../../helpers/focus.helper.cjs"),M=require("../../helpers/label.helper.cjs"),R=require("../../hooks/useScrollLock.cjs"),y=require("../../hooks/useSheetViewport.cjs"),D=require("../../theme/context.cjs"),E=require("../IconButton/index.cjs"),r={default:{"drawer":"ui-drawer-fgfi1","drawer--sm":"ui-drawer--sm-ywgof","drawer--md":"ui-drawer--md-mN8Kg","drawer--lg":"ui-drawer--lg-5H-oE","drawer--end":"ui-drawer--end-q-sIP","drawer--start":"ui-drawer--start-xqVlX","drawer__header":"ui-drawer__header-BDcRe","drawer__title":"ui-drawer__title-9M0e8","drawer__close":"ui-drawer__close-Z30oW","drawer__toolbar":"ui-drawer__toolbar-vcsYi","drawer__body":"ui-drawer__body-x12SX","drawer__footer":"ui-drawer__footer-PajTg"}},S=({isOpen:l,onClose:s,title:m,closeLabel:p,children:w,side:x="end",size:q="md",footer:f,toolbar:_,className:v,testId:b})=>{const{labels:o}=D.useUi(),n=a.useRef(null),u=a.useRef(null),h=a.useId();a.useEffect(()=>{const e=n.current;if(!e)return;if(!l){e.open&&e.close();return}const d=c.captureFocus();e.open||e.showModal(),c.focusFirstMeaningful(e,`.${r.default.drawer__close}`),c.preventAutoKeyboard(e);const{token:i,pop:j}=c.pushModal();return u.current=i,()=>{j(),u.current=null,d()}},[l]),R.default(l),y.default(l),a.useEffect(()=>{const e=n.current;if(!e)return;const d=i=>{i.preventDefault(),!(u.current&&!c.isTopModal(u.current))&&s()};return e.addEventListener("cancel",d),()=>e.removeEventListener("cancel",d)},[s]);const g=a.useCallback(e=>{e.target===n.current&&s()},[s]);return t.jsxs("dialog",{ref:n,className:N.cx(r.default.drawer,r.default[`drawer--${x}`],r.default[`drawer--${q}`],v),"aria-labelledby":h,"data-testid":b,onClick:g,children:[t.jsxs("header",{className:r.default.drawer__header,children:[t.jsx("h2",{id:h,className:r.default.drawer__title,children:m}),t.jsx(E.default,{icon:t.jsx(k.XLg,{"aria-hidden":!0}),label:M.resolveLabel("Drawer.closeLabel",p,o==null?void 0:o.close),variant:"ghost",size:"sm",className:r.default.drawer__close,onClick:s})]}),_&&t.jsx("div",{className:r.default.drawer__toolbar,children:_}),t.jsx("div",{className:r.default.drawer__body,children:w}),f&&t.jsx("div",{className:r.default.drawer__footer,children:f})]})},$=a.memo(L.named(S,"Drawer"));exports.default=$;
2
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs","sources":["../../../src/components/Drawer/index.tsx"],"sourcesContent":["'use client';\n\nimport {\n memo,\n type MouseEvent,\n type ReactNode,\n useCallback,\n useEffect,\n useId,\n useRef,\n} from 'react';\n\nimport { XLg } from 'react-bootstrap-icons';\n\nimport { cx } from '../../helpers/class-name.helper';\nimport { named } from '../../helpers/component.helper';\nimport {\n captureFocus,\n focusFirstMeaningful,\n isTopModal,\n preventAutoKeyboard,\n pushModal,\n} from '../../helpers/focus.helper';\nimport { resolveLabel } from '../../helpers/label.helper';\nimport useScrollLock from '../../hooks/useScrollLock';\nimport useSheetViewport from '../../hooks/useSheetViewport';\nimport { useUi } from '../../theme/context';\nimport IconButton from '../IconButton';\n\nimport styles from './index.module.scss';\n\ntype Props = {\n isOpen: boolean;\n onClose: () => void;\n title: string;\n /** Kapatma düğmesinin erişilebilir adı. */\n closeLabel?: string;\n children: ReactNode;\n /** Panelin hangi kenardan geldiği. */\n side?: 'start' | 'end';\n size?: 'sm' | 'md' | 'lg';\n /** Dipte duran eylem şeridi; gövde kaydırılırken yerinde kalır. */\n footer?: ReactNode;\n /** Başlığın altında duran, gövdeyle birlikte kaymayan şerit. */\n toolbar?: ReactNode;\n className?: string;\n testId?: string;\n};\n\n/** Çekmece (drawer) — kenardan açılan kipsel panel. */\nconst Drawer = ({\n isOpen,\n onClose,\n title,\n closeLabel,\n children,\n side = 'end',\n size = 'md',\n footer,\n toolbar,\n className,\n testId,\n}: Props) => {\n const { labels } = useUi();\n const dialogRef = useRef<HTMLDialogElement>(null);\n /* Yigindaki yerimiz: */\n const tokenRef = useRef<symbol | null>(null);\n const titleId = useId();\n\n useEffect(() => {\n const dialog = dialogRef.current;\n if (!dialog) return;\n\n if (!isOpen) {\n if (dialog.open) dialog.close();\n return;\n }\n\n const restoreFocus = captureFocus();\n if (!dialog.open) dialog.showModal();\n\n focusFirstMeaningful(dialog, `.${styles.drawer__close}`);\n preventAutoKeyboard(dialog);\n\n const { token, pop } = pushModal();\n tokenRef.current = token;\n\n return () => {\n pop();\n tokenRef.current = null;\n restoreFocus();\n };\n }, [isOpen]);\n\n useScrollLock(isOpen);\n\n /*\n * ⚠ GÖRSEL GÖRÜNÜM ALANI TAKİBİ — `BottomSheet` ve `Modal` bunu zaten yapıyordu, `Drawer`\n * YAPMIYORDU.\n * ⚠ BAYRAK ZORUNLU — `BottomSheet`ten farkı burada. `Drawer` `<dialog>`ı KOŞULSUZ çiziyor\n * (yalnızca `showModal()`/`close()` `isOpen`e bağlı)…\n */\n useSheetViewport(isOpen);\n\n useEffect(() => {\n const dialog = dialogRef.current;\n if (!dialog) return;\n\n const handleCancel = (event: Event) => {\n event.preventDefault();\n if (tokenRef.current && !isTopModal(tokenRef.current)) return;\n onClose();\n };\n\n dialog.addEventListener('cancel', handleCancel);\n return () => dialog.removeEventListener('cancel', handleCancel);\n }, [onClose]);\n\n const handleBackdropClick = useCallback(\n (event: MouseEvent<HTMLDialogElement>) => {\n // Hedef dialog'un KENDISI ise perdeye tiklanmistir; panel degil.\n if (event.target === dialogRef.current) onClose();\n },\n [onClose],\n );\n\n return (\n <dialog\n ref={dialogRef}\n className={cx(styles.drawer, styles[`drawer--${side}`], styles[`drawer--${size}`], className)}\n aria-labelledby={titleId}\n data-testid={testId}\n onClick={handleBackdropClick}\n >\n <header className={styles.drawer__header}>\n <h2 id={titleId} className={styles.drawer__title}>\n {title}\n </h2>\n\n <IconButton\n icon={<XLg aria-hidden />}\n label={resolveLabel('Drawer.closeLabel', closeLabel, labels?.close)}\n variant=\"ghost\"\n size=\"sm\"\n className={styles.drawer__close}\n onClick={onClose}\n />\n </header>\n\n {toolbar && <div className={styles.drawer__toolbar}>{toolbar}</div>}\n\n <div className={styles.drawer__body}>{children}</div>\n\n {footer && <div className={styles.drawer__footer}>{footer}</div>}\n </dialog>\n );\n};\n\nexport default /*#__PURE__*/ memo(/*#__PURE__*/ named(Drawer, 'Drawer')) as typeof Drawer;\n"],"names":["Drawer","isOpen","onClose","title","closeLabel","children","side","size","footer","toolbar","className","testId","labels","useUi","dialogRef","useRef","tokenRef","titleId","useId","useEffect","dialog","restoreFocus","captureFocus","focusFirstMeaningful","styles","preventAutoKeyboard","token","pop","pushModal","useScrollLock","useSheetViewport","handleCancel","event","isTopModal","handleBackdropClick","useCallback","jsxs","cx","jsx","IconButton","XLg","resolveLabel","index","memo","named"],"mappings":"qlBAiDMA,EAAS,CAAC,CACd,OAAAC,EACA,QAAAC,EACA,MAAAC,EACA,WAAAC,EACA,SAAAC,EACA,KAAAC,EAAO,MACP,KAAAC,EAAO,KACP,OAAAC,EACA,QAAAC,EACA,UAAAC,EACA,OAAAC,CACF,IAAa,CACX,KAAM,CAAE,OAAAC,CAAA,EAAWC,QAAA,EACbC,EAAYC,EAAAA,OAA0B,IAAI,EAE1CC,EAAWD,EAAAA,OAAsB,IAAI,EACrCE,EAAUC,EAAAA,MAAA,EAEhBC,EAAAA,UAAU,IAAM,CACd,MAAMC,EAASN,EAAU,QACzB,GAAI,CAACM,EAAQ,OAEb,GAAI,CAACnB,EAAQ,CACPmB,EAAO,MAAMA,EAAO,MAAA,EACxB,MACF,CAEA,MAAMC,EAAeC,EAAAA,aAAA,EAChBF,EAAO,MAAMA,EAAO,UAAA,EAEzBG,EAAAA,qBAAqBH,EAAQ,IAAII,EAAAA,QAAO,aAAa,EAAE,EACvDC,EAAAA,oBAAoBL,CAAM,EAE1B,KAAM,CAAE,MAAAM,EAAO,IAAAC,CAAA,EAAQC,YAAA,EACvB,OAAAZ,EAAS,QAAUU,EAEZ,IAAM,CACXC,EAAA,EACAX,EAAS,QAAU,KACnBK,EAAA,CACF,CACF,EAAG,CAACpB,CAAM,CAAC,EAEX4B,EAAAA,QAAc5B,CAAM,EAQpB6B,EAAAA,QAAiB7B,CAAM,EAEvBkB,EAAAA,UAAU,IAAM,CACd,MAAMC,EAASN,EAAU,QACzB,GAAI,CAACM,EAAQ,OAEb,MAAMW,EAAgBC,GAAiB,CACrCA,EAAM,eAAA,EACF,EAAAhB,EAAS,SAAW,CAACiB,EAAAA,WAAWjB,EAAS,OAAO,IACpDd,EAAA,CACF,EAEA,OAAAkB,EAAO,iBAAiB,SAAUW,CAAY,EACvC,IAAMX,EAAO,oBAAoB,SAAUW,CAAY,CAChE,EAAG,CAAC7B,CAAO,CAAC,EAEZ,MAAMgC,EAAsBC,EAAAA,YACzBH,GAAyC,CAEpCA,EAAM,SAAWlB,EAAU,SAASZ,EAAA,CAC1C,EACA,CAACA,CAAO,CAAA,EAGV,OACEkC,EAAAA,KAAC,SAAA,CACC,IAAKtB,EACL,UAAWuB,EAAAA,GAAGb,EAAAA,QAAO,OAAQA,EAAAA,QAAO,WAAWlB,CAAI,EAAE,EAAGkB,EAAAA,QAAO,WAAWjB,CAAI,EAAE,EAAGG,CAAS,EAC5F,kBAAiBO,EACjB,cAAaN,EACb,QAASuB,EAET,SAAA,CAAAE,EAAAA,KAAC,SAAA,CAAO,UAAWZ,EAAAA,QAAO,eACxB,SAAA,CAAAc,MAAC,MAAG,GAAIrB,EAAS,UAAWO,EAAAA,QAAO,cAChC,SAAArB,EACH,EAEAmC,EAAAA,IAACC,EAAAA,QAAA,CACC,KAAMD,EAAAA,IAACE,EAAAA,IAAA,CAAI,cAAW,EAAA,CAAC,EACvB,MAAOC,EAAAA,aAAa,oBAAqBrC,EAAYQ,GAAA,YAAAA,EAAQ,KAAK,EAClE,QAAQ,QACR,KAAK,KACL,UAAWY,EAAAA,QAAO,cAClB,QAAStB,CAAA,CAAA,CACX,EACF,EAECO,GAAW6B,EAAAA,IAAC,MAAA,CAAI,UAAWd,EAAAA,QAAO,gBAAkB,SAAAf,EAAQ,EAE7D6B,EAAAA,IAAC,MAAA,CAAI,UAAWd,EAAAA,QAAO,aAAe,SAAAnB,EAAS,EAE9CG,GAAU8B,EAAAA,IAAC,MAAA,CAAI,UAAWd,EAAAA,QAAO,eAAiB,SAAAhB,CAAA,CAAO,CAAA,CAAA,CAAA,CAGhE,EAEAkC,EAA6BC,OAAmBC,EAAAA,MAAM5C,EAAQ,QAAQ,CAAC"}
@@ -0,0 +1,22 @@
1
+ import { ReactNode } from 'react';
2
+ type Props = {
3
+ isOpen: boolean;
4
+ onClose: () => void;
5
+ title: string;
6
+ /** Kapatma düğmesinin erişilebilir adı. */
7
+ closeLabel?: string;
8
+ children: ReactNode;
9
+ /** Panelin hangi kenardan geldiği. */
10
+ side?: 'start' | 'end';
11
+ size?: 'sm' | 'md' | 'lg';
12
+ /** Dipte duran eylem şeridi; gövde kaydırılırken yerinde kalır. */
13
+ footer?: ReactNode;
14
+ /** Başlığın altında duran, gövdeyle birlikte kaymayan şerit. */
15
+ toolbar?: ReactNode;
16
+ className?: string;
17
+ testId?: string;
18
+ };
19
+ /** Çekmece (drawer) — kenardan açılan kipsel panel. */
20
+ declare const Drawer: ({ isOpen, onClose, title, closeLabel, children, side, size, footer, toolbar, className, testId, }: Props) => import("react").JSX.Element;
21
+ declare const _default: typeof Drawer;
22
+ export default _default;
@@ -0,0 +1,88 @@
1
+ "use client";
2
+ import { jsxs as f, jsx as t } from "react/jsx-runtime";
3
+ import { memo as y, useRef as p, useId as D, useEffect as h, useCallback as M } from "react";
4
+ import { XLg as E } from "react-bootstrap-icons";
5
+ import { cx as F } from "../../helpers/class-name.helper.js";
6
+ import { named as I } from "../../helpers/component.helper.js";
7
+ import { focusFirstMeaningful as R, preventAutoKeyboard as $, pushModal as j, captureFocus as B, isTopModal as S } from "../../helpers/focus.helper.js";
8
+ import { resolveLabel as z } from "../../helpers/label.helper.js";
9
+ import A from "../../hooks/useScrollLock.js";
10
+ import C from "../../hooks/useSheetViewport.js";
11
+ import { useUi as K } from "../../theme/context.js";
12
+ import T from "../IconButton/index.js";
13
+ const e = {"drawer":"ui-drawer-fgfi1","drawer--sm":"ui-drawer--sm-ywgof","drawer--md":"ui-drawer--md-mN8Kg","drawer--lg":"ui-drawer--lg-5H-oE","drawer--end":"ui-drawer--end-q-sIP","drawer--start":"ui-drawer--start-xqVlX","drawer__header":"ui-drawer__header-BDcRe","drawer__title":"ui-drawer__title-9M0e8","drawer__close":"ui-drawer__close-Z30oW","drawer__toolbar":"ui-drawer__toolbar-vcsYi","drawer__body":"ui-drawer__body-x12SX","drawer__footer":"ui-drawer__footer-PajTg"};
14
+ const U = ({
15
+ isOpen: a,
16
+ onClose: o,
17
+ title: w,
18
+ closeLabel: _,
19
+ children: v,
20
+ side: g = "end",
21
+ size: k = "md",
22
+ footer: d,
23
+ toolbar: m,
24
+ className: b,
25
+ testId: N
26
+ }) => {
27
+ const { labels: l } = K(), c = p(null), n = p(null), u = D();
28
+ h(() => {
29
+ const r = c.current;
30
+ if (!r) return;
31
+ if (!a) {
32
+ r.open && r.close();
33
+ return;
34
+ }
35
+ const s = B();
36
+ r.open || r.showModal(), R(r, `.${e.drawer__close}`), $(r);
37
+ const { token: i, pop: x } = j();
38
+ return n.current = i, () => {
39
+ x(), n.current = null, s();
40
+ };
41
+ }, [a]), A(a), C(a), h(() => {
42
+ const r = c.current;
43
+ if (!r) return;
44
+ const s = (i) => {
45
+ i.preventDefault(), !(n.current && !S(n.current)) && o();
46
+ };
47
+ return r.addEventListener("cancel", s), () => r.removeEventListener("cancel", s);
48
+ }, [o]);
49
+ const L = M(
50
+ (r) => {
51
+ r.target === c.current && o();
52
+ },
53
+ [o]
54
+ );
55
+ return /* @__PURE__ */ f(
56
+ "dialog",
57
+ {
58
+ ref: c,
59
+ className: F(e.drawer, e[`drawer--${g}`], e[`drawer--${k}`], b),
60
+ "aria-labelledby": u,
61
+ "data-testid": N,
62
+ onClick: L,
63
+ children: [
64
+ /* @__PURE__ */ f("header", { className: e.drawer__header, children: [
65
+ /* @__PURE__ */ t("h2", { id: u, className: e.drawer__title, children: w }),
66
+ /* @__PURE__ */ t(
67
+ T,
68
+ {
69
+ icon: /* @__PURE__ */ t(E, { "aria-hidden": !0 }),
70
+ label: z("Drawer.closeLabel", _, l == null ? void 0 : l.close),
71
+ variant: "ghost",
72
+ size: "sm",
73
+ className: e.drawer__close,
74
+ onClick: o
75
+ }
76
+ )
77
+ ] }),
78
+ m && /* @__PURE__ */ t("div", { className: e.drawer__toolbar, children: m }),
79
+ /* @__PURE__ */ t("div", { className: e.drawer__body, children: v }),
80
+ d && /* @__PURE__ */ t("div", { className: e.drawer__footer, children: d })
81
+ ]
82
+ }
83
+ );
84
+ }, rr = /* @__PURE__ */ y(/* @__PURE__ */ I(U, "Drawer"));
85
+ export {
86
+ rr as default
87
+ };
88
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../src/components/Drawer/index.tsx"],"sourcesContent":["'use client';\n\nimport {\n memo,\n type MouseEvent,\n type ReactNode,\n useCallback,\n useEffect,\n useId,\n useRef,\n} from 'react';\n\nimport { XLg } from 'react-bootstrap-icons';\n\nimport { cx } from '../../helpers/class-name.helper';\nimport { named } from '../../helpers/component.helper';\nimport {\n captureFocus,\n focusFirstMeaningful,\n isTopModal,\n preventAutoKeyboard,\n pushModal,\n} from '../../helpers/focus.helper';\nimport { resolveLabel } from '../../helpers/label.helper';\nimport useScrollLock from '../../hooks/useScrollLock';\nimport useSheetViewport from '../../hooks/useSheetViewport';\nimport { useUi } from '../../theme/context';\nimport IconButton from '../IconButton';\n\nimport styles from './index.module.scss';\n\ntype Props = {\n isOpen: boolean;\n onClose: () => void;\n title: string;\n /** Kapatma düğmesinin erişilebilir adı. */\n closeLabel?: string;\n children: ReactNode;\n /** Panelin hangi kenardan geldiği. */\n side?: 'start' | 'end';\n size?: 'sm' | 'md' | 'lg';\n /** Dipte duran eylem şeridi; gövde kaydırılırken yerinde kalır. */\n footer?: ReactNode;\n /** Başlığın altında duran, gövdeyle birlikte kaymayan şerit. */\n toolbar?: ReactNode;\n className?: string;\n testId?: string;\n};\n\n/** Çekmece (drawer) — kenardan açılan kipsel panel. */\nconst Drawer = ({\n isOpen,\n onClose,\n title,\n closeLabel,\n children,\n side = 'end',\n size = 'md',\n footer,\n toolbar,\n className,\n testId,\n}: Props) => {\n const { labels } = useUi();\n const dialogRef = useRef<HTMLDialogElement>(null);\n /* Yigindaki yerimiz: */\n const tokenRef = useRef<symbol | null>(null);\n const titleId = useId();\n\n useEffect(() => {\n const dialog = dialogRef.current;\n if (!dialog) return;\n\n if (!isOpen) {\n if (dialog.open) dialog.close();\n return;\n }\n\n const restoreFocus = captureFocus();\n if (!dialog.open) dialog.showModal();\n\n focusFirstMeaningful(dialog, `.${styles.drawer__close}`);\n preventAutoKeyboard(dialog);\n\n const { token, pop } = pushModal();\n tokenRef.current = token;\n\n return () => {\n pop();\n tokenRef.current = null;\n restoreFocus();\n };\n }, [isOpen]);\n\n useScrollLock(isOpen);\n\n /*\n * ⚠ GÖRSEL GÖRÜNÜM ALANI TAKİBİ — `BottomSheet` ve `Modal` bunu zaten yapıyordu, `Drawer`\n * YAPMIYORDU.\n * ⚠ BAYRAK ZORUNLU — `BottomSheet`ten farkı burada. `Drawer` `<dialog>`ı KOŞULSUZ çiziyor\n * (yalnızca `showModal()`/`close()` `isOpen`e bağlı)…\n */\n useSheetViewport(isOpen);\n\n useEffect(() => {\n const dialog = dialogRef.current;\n if (!dialog) return;\n\n const handleCancel = (event: Event) => {\n event.preventDefault();\n if (tokenRef.current && !isTopModal(tokenRef.current)) return;\n onClose();\n };\n\n dialog.addEventListener('cancel', handleCancel);\n return () => dialog.removeEventListener('cancel', handleCancel);\n }, [onClose]);\n\n const handleBackdropClick = useCallback(\n (event: MouseEvent<HTMLDialogElement>) => {\n // Hedef dialog'un KENDISI ise perdeye tiklanmistir; panel degil.\n if (event.target === dialogRef.current) onClose();\n },\n [onClose],\n );\n\n return (\n <dialog\n ref={dialogRef}\n className={cx(styles.drawer, styles[`drawer--${side}`], styles[`drawer--${size}`], className)}\n aria-labelledby={titleId}\n data-testid={testId}\n onClick={handleBackdropClick}\n >\n <header className={styles.drawer__header}>\n <h2 id={titleId} className={styles.drawer__title}>\n {title}\n </h2>\n\n <IconButton\n icon={<XLg aria-hidden />}\n label={resolveLabel('Drawer.closeLabel', closeLabel, labels?.close)}\n variant=\"ghost\"\n size=\"sm\"\n className={styles.drawer__close}\n onClick={onClose}\n />\n </header>\n\n {toolbar && <div className={styles.drawer__toolbar}>{toolbar}</div>}\n\n <div className={styles.drawer__body}>{children}</div>\n\n {footer && <div className={styles.drawer__footer}>{footer}</div>}\n </dialog>\n );\n};\n\nexport default /*#__PURE__*/ memo(/*#__PURE__*/ named(Drawer, 'Drawer')) as typeof Drawer;\n"],"names":["Drawer","isOpen","onClose","title","closeLabel","children","side","size","footer","toolbar","className","testId","labels","useUi","dialogRef","useRef","tokenRef","titleId","useId","useEffect","dialog","restoreFocus","captureFocus","focusFirstMeaningful","styles","preventAutoKeyboard","token","pop","pushModal","useScrollLock","useSheetViewport","handleCancel","event","isTopModal","handleBackdropClick","useCallback","jsxs","cx","jsx","IconButton","XLg","resolveLabel","index","memo","named"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ @layer ui{.ui-drawer-fgfi1{display:none;flex-direction:column;position:fixed;inset-block:0;block-size:100dvh;max-width:100vw;max-height:100dvh;margin:0;padding:0;border:none;background-color:var(--hd-bg-overlay);color:var(--hd-text);box-shadow:var(--hd-shadow-3);overflow:hidden}.ui-drawer-fgfi1:focus-visible{outline:var(--ui-ring-width, 2px) solid var(--hd-focus);outline-offset:var(--ui-ring-offset, -2px)}.ui-drawer--sm-ywgof{width:min(92vw,360px)}.ui-drawer--md-mN8Kg{width:min(92vw,480px)}.ui-drawer--lg-5H-oE{width:min(96vw,720px)}.ui-drawer--end-q-sIP{inset-inline:auto 0}.ui-drawer-fgfi1[open]{display:flex}.ui-drawer--start-xqVlX{inset-inline:0 auto}.ui-drawer-fgfi1{opacity:0}.ui-drawer--end-q-sIP{translate:100% 0}.ui-drawer--start-xqVlX{translate:-100% 0}.ui-drawer-fgfi1{transition:opacity var(--hd-duration-base) var(--hd-ease-standard),translate var(--hd-duration-base) var(--hd-ease-standard),overlay var(--hd-duration-base) allow-discrete,display var(--hd-duration-base) allow-discrete}.ui-drawer-fgfi1[open]{opacity:1;translate:0 0}@starting-style{.ui-drawer-fgfi1[open].ui-drawer--end-q-sIP{opacity:0;translate:100% 0}.ui-drawer-fgfi1[open].ui-drawer--start-xqVlX{opacity:0;translate:-100% 0}}.ui-drawer-fgfi1::backdrop{opacity:0;transition:opacity var(--hd-duration-base) var(--hd-ease-standard),overlay var(--hd-duration-base) allow-discrete,display var(--hd-duration-base) allow-discrete}.ui-drawer-fgfi1[open]::backdrop{opacity:1}@starting-style{.ui-drawer-fgfi1[open]::backdrop{opacity:0}}@media (prefers-reduced-motion: reduce){.ui-drawer-fgfi1::backdrop{transition:none}}.ui-drawer-fgfi1::backdrop{background-color:var(--hd-scrim);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}@media (prefers-reduced-motion: reduce){.ui-drawer-fgfi1{transition:none}}@media (max-width: 640px){.ui-drawer-fgfi1,.ui-drawer--sm-ywgof,.ui-drawer--md-mN8Kg,.ui-drawer--lg-5H-oE{width:100vw}}.ui-drawer__header-BDcRe{display:flex;align-items:center;gap:var(--hd-space-3);justify-content:space-between;padding:var(--hd-space-4);border-bottom:1px solid var(--hd-border);flex-shrink:0;padding-left:max(var(--hd-space-4),env(safe-area-inset-left,0px));padding-right:max(var(--hd-space-4),env(safe-area-inset-right,0px))}.ui-drawer__title-9M0e8{font-family:var(--hd-font-body);font-size:var(--hd-type-body-size);font-weight:var(--hd-font-weight-semibold);line-height:var(--hd-type-h4-line-height);letter-spacing:normal;color:var(--hd-text);margin:0}.ui-drawer__close-Z30oW{flex-shrink:0}.ui-drawer__toolbar-vcsYi{padding:var(--hd-space-3) var(--hd-space-4);border-bottom:1px solid var(--hd-border);flex-shrink:0;padding-left:max(var(--hd-space-4),env(safe-area-inset-left,0px));padding-right:max(var(--hd-space-4),env(safe-area-inset-right,0px))}.ui-drawer__body-x12SX{flex:1;min-height:0;position:relative;overflow-y:auto;overscroll-behavior:contain;padding:var(--hd-space-4);padding-left:max(var(--hd-space-4),env(safe-area-inset-left,0px));padding-right:max(var(--hd-space-4),env(safe-area-inset-right,0px));scrollbar-width:thin;scrollbar-color:var(--hd-border-strong) transparent}.ui-drawer__body-x12SX::-webkit-scrollbar{width:8px;height:8px}.ui-drawer__body-x12SX::-webkit-scrollbar-track{background:transparent}.ui-drawer__body-x12SX::-webkit-scrollbar-thumb{background-color:var(--hd-border-strong);border-radius:var(--hd-radius-pill);border:2px solid transparent;background-clip:content-box}.ui-drawer__body-x12SX::-webkit-scrollbar-thumb:hover{background-color:var(--hd-text-3)}.ui-drawer__body-x12SX:last-child{padding-bottom:max(var(--hd-space-4),env(safe-area-inset-bottom,0px) - max(env(safe-area-inset-bottom,0px),var(--ui-sheet-inset-bottom, 0px)))}.ui-drawer__footer-PajTg{display:flex;align-items:center;gap:var(--hd-space-3);padding:var(--hd-space-4);border-top:1px solid var(--hd-border);flex-shrink:0;padding-left:max(var(--hd-space-4),env(safe-area-inset-left,0px));padding-right:max(var(--hd-space-4),env(safe-area-inset-right,0px));padding-bottom:max(var(--hd-space-4),env(safe-area-inset-bottom,0px) - max(env(safe-area-inset-bottom,0px),var(--ui-sheet-inset-bottom, 0px)))}.ui-drawer__footer-PajTg>*{flex:1}}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const t=require("react/jsx-runtime"),n=require("react"),o=require("../../helpers/class-name.helper.cjs"),e={default:{"empty":"ui-empty-47qZR","empty__icon":"ui-empty__icon-okfEc","empty__title":"ui-empty__title-Z7Dzd","empty__description":"ui-empty__description-6BoCk","empty__actions":"ui-empty__actions-ARk-k","empty--sm":"ui-empty--sm-QXaXx","empty--error":"ui-empty--error-4BBgp"}},p=({title:m,description:s,icon:l,action:a,secondaryAction:d,tone:r="empty",size:i="md",className:u,testId:c})=>t.jsxs("div",{className:o.cx(e.default.empty,e.default[`empty--${i}`],e.default[`empty--${r}`],u),role:r==="error"?"alert":void 0,"data-testid":c,children:[l&&t.jsx("span",{className:e.default.empty__icon,children:l}),t.jsx("h3",{className:e.default.empty__title,children:m}),s&&t.jsx("p",{className:e.default.empty__description,children:s}),(a||d)&&t.jsxs("div",{className:e.default.empty__actions,children:[a,d]})]}),_=n.memo(p);exports.default=_;
2
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs","sources":["../../../src/components/EmptyState/index.tsx"],"sourcesContent":["import { type FC, memo, type ReactNode } from 'react';\n\nimport { cx } from '../../helpers/class-name.helper';\n\nimport styles from './index.module.scss';\n\ntype Props = {\n title: string;\n description?: string;\n icon?: ReactNode;\n /** Kullanıcının buradan çıkabileceği eylem. */\n action?: ReactNode;\n /** İkincil eylem veya ipucu. */\n secondaryAction?: ReactNode;\n /** `error` — liste BOŞ değil, ÇEKİLEMEDİ. */\n tone?: 'empty' | 'error';\n size?: 'sm' | 'md';\n className?: string;\n testId?: string;\n};\n\n/** Boş durum. */\nconst EmptyState: FC<Props> = ({\n title,\n description,\n icon,\n action,\n secondaryAction,\n tone = 'empty',\n size = 'md',\n className,\n testId,\n}) => (\n <div\n className={cx(styles.empty, styles[`empty--${size}`], styles[`empty--${tone}`], className)}\n /*\n * Hata DUYURULUR: gormeyen kullanici icin sessizce degisen bir liste, hic degismemis demekti.\n */\n role={tone === 'error' ? 'alert' : undefined}\n data-testid={testId}\n >\n {icon && <span className={styles.empty__icon}>{icon}</span>}\n <h3 className={styles.empty__title}>{title}</h3>\n {description && <p className={styles.empty__description}>{description}</p>}\n {(action || secondaryAction) && (\n <div className={styles.empty__actions}>\n {action}\n {secondaryAction}\n </div>\n )}\n </div>\n);\n\nexport default /*#__PURE__*/ memo(EmptyState) as typeof EmptyState;\n"],"names":["EmptyState","title","description","icon","action","secondaryAction","tone","size","className","testId","jsxs","cx","styles","jsx","index"],"mappings":"0PAsBMA,EAAwB,CAAC,CAC7B,MAAAC,EACA,YAAAC,EACA,KAAAC,EACA,OAAAC,EACA,gBAAAC,EACA,KAAAC,EAAO,QACP,KAAAC,EAAO,KACP,UAAAC,EACA,OAAAC,CACF,IACEC,EAAAA,KAAC,MAAA,CACC,UAAWC,EAAAA,GAAGC,EAAAA,QAAO,MAAOA,EAAAA,QAAO,UAAUL,CAAI,EAAE,EAAGK,EAAAA,QAAO,UAAUN,CAAI,EAAE,EAAGE,CAAS,EAIzF,KAAMF,IAAS,QAAU,QAAU,OACnC,cAAaG,EAEZ,SAAA,CAAAN,GAAQU,EAAAA,IAAC,OAAA,CAAK,UAAWD,EAAAA,QAAO,YAAc,SAAAT,EAAK,EACpDU,EAAAA,IAAC,KAAA,CAAG,UAAWD,EAAAA,QAAO,aAAe,SAAAX,EAAM,EAC1CC,GAAeW,EAAAA,IAAC,IAAA,CAAE,UAAWD,EAAAA,QAAO,mBAAqB,SAAAV,EAAY,GACpEE,GAAUC,IACVK,OAAC,MAAA,CAAI,UAAWE,EAAAA,QAAO,eACpB,SAAA,CAAAR,EACAC,CAAA,CAAA,CACH,CAAA,CAAA,CAEJ,EAGFS,SAAkCd,CAAU"}
@@ -0,0 +1,19 @@
1
+ import { FC, ReactNode } from 'react';
2
+ type Props = {
3
+ title: string;
4
+ description?: string;
5
+ icon?: ReactNode;
6
+ /** Kullanıcının buradan çıkabileceği eylem. */
7
+ action?: ReactNode;
8
+ /** İkincil eylem veya ipucu. */
9
+ secondaryAction?: ReactNode;
10
+ /** `error` — liste BOŞ değil, ÇEKİLEMEDİ. */
11
+ tone?: 'empty' | 'error';
12
+ size?: 'sm' | 'md';
13
+ className?: string;
14
+ testId?: string;
15
+ };
16
+ /** Boş durum. */
17
+ declare const EmptyState: FC<Props>;
18
+ declare const _default: typeof EmptyState;
19
+ export default _default;
@@ -0,0 +1,35 @@
1
+ import { jsxs as l, jsx as m } from "react/jsx-runtime";
2
+ import { memo as y } from "react";
3
+ import { cx as _ } from "../../helpers/class-name.helper.js";
4
+ const e = {"empty":"ui-empty-47qZR","empty__icon":"ui-empty__icon-okfEc","empty__title":"ui-empty__title-Z7Dzd","empty__description":"ui-empty__description-6BoCk","empty__actions":"ui-empty__actions-ARk-k","empty--sm":"ui-empty--sm-QXaXx","empty--error":"ui-empty--error-4BBgp"};
5
+ const h = ({
6
+ title: i,
7
+ description: t,
8
+ icon: s,
9
+ action: r,
10
+ secondaryAction: a,
11
+ tone: p = "empty",
12
+ size: d = "md",
13
+ className: o,
14
+ testId: c
15
+ }) => /* @__PURE__ */ l(
16
+ "div",
17
+ {
18
+ className: _(e.empty, e[`empty--${d}`], e[`empty--${p}`], o),
19
+ role: p === "error" ? "alert" : void 0,
20
+ "data-testid": c,
21
+ children: [
22
+ s && /* @__PURE__ */ m("span", { className: e.empty__icon, children: s }),
23
+ /* @__PURE__ */ m("h3", { className: e.empty__title, children: i }),
24
+ t && /* @__PURE__ */ m("p", { className: e.empty__description, children: t }),
25
+ (r || a) && /* @__PURE__ */ l("div", { className: e.empty__actions, children: [
26
+ r,
27
+ a
28
+ ] })
29
+ ]
30
+ }
31
+ ), v = /* @__PURE__ */ y(h);
32
+ export {
33
+ v as default
34
+ };
35
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../src/components/EmptyState/index.tsx"],"sourcesContent":["import { type FC, memo, type ReactNode } from 'react';\n\nimport { cx } from '../../helpers/class-name.helper';\n\nimport styles from './index.module.scss';\n\ntype Props = {\n title: string;\n description?: string;\n icon?: ReactNode;\n /** Kullanıcının buradan çıkabileceği eylem. */\n action?: ReactNode;\n /** İkincil eylem veya ipucu. */\n secondaryAction?: ReactNode;\n /** `error` — liste BOŞ değil, ÇEKİLEMEDİ. */\n tone?: 'empty' | 'error';\n size?: 'sm' | 'md';\n className?: string;\n testId?: string;\n};\n\n/** Boş durum. */\nconst EmptyState: FC<Props> = ({\n title,\n description,\n icon,\n action,\n secondaryAction,\n tone = 'empty',\n size = 'md',\n className,\n testId,\n}) => (\n <div\n className={cx(styles.empty, styles[`empty--${size}`], styles[`empty--${tone}`], className)}\n /*\n * Hata DUYURULUR: gormeyen kullanici icin sessizce degisen bir liste, hic degismemis demekti.\n */\n role={tone === 'error' ? 'alert' : undefined}\n data-testid={testId}\n >\n {icon && <span className={styles.empty__icon}>{icon}</span>}\n <h3 className={styles.empty__title}>{title}</h3>\n {description && <p className={styles.empty__description}>{description}</p>}\n {(action || secondaryAction) && (\n <div className={styles.empty__actions}>\n {action}\n {secondaryAction}\n </div>\n )}\n </div>\n);\n\nexport default /*#__PURE__*/ memo(EmptyState) as typeof EmptyState;\n"],"names":["EmptyState","title","description","icon","action","secondaryAction","tone","size","className","testId","jsxs","cx","styles","jsx","index"],"mappings":";;;;AAsBA,MAAMA,IAAwB,CAAC;AAAA,EAC7B,OAAAC;AAAA,EACA,aAAAC;AAAA,EACA,MAAAC;AAAA,EACA,QAAAC;AAAA,EACA,iBAAAC;AAAA,EACA,MAAAC,IAAO;AAAA,EACP,MAAAC,IAAO;AAAA,EACP,WAAAC;AAAA,EACA,QAAAC;AACF,MACE,gBAAAC;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,WAAWC,EAAGC,EAAO,OAAOA,EAAO,UAAUL,CAAI,EAAE,GAAGK,EAAO,UAAUN,CAAI,EAAE,GAAGE,CAAS;AAAA,IAIzF,MAAMF,MAAS,UAAU,UAAU;AAAA,IACnC,eAAaG;AAAA,IAEZ,UAAA;AAAA,MAAAN,KAAQ,gBAAAU,EAAC,QAAA,EAAK,WAAWD,EAAO,aAAc,UAAAT,GAAK;AAAA,MACpD,gBAAAU,EAAC,MAAA,EAAG,WAAWD,EAAO,cAAe,UAAAX,GAAM;AAAA,MAC1CC,KAAe,gBAAAW,EAAC,KAAA,EAAE,WAAWD,EAAO,oBAAqB,UAAAV,GAAY;AAAA,OACpEE,KAAUC,MACV,gBAAAK,EAAC,OAAA,EAAI,WAAWE,EAAO,gBACpB,UAAA;AAAA,QAAAR;AAAA,QACAC;AAAA,MAAA,EAAA,CACH;AAAA,IAAA;AAAA,EAAA;AAEJ,GAGFS,sBAAkCd,CAAU;"}
@@ -0,0 +1 @@
1
+ @layer ui{.ui-empty-47qZR{display:flex;flex-direction:column;gap:var(--hd-space-3);align-items:center;text-align:center;padding:var(--hd-space-12) var(--hd-space-5)}@media (max-width: 640px){.ui-empty-47qZR{padding:var(--hd-space-10) var(--hd-space-4)}}.ui-empty__icon-okfEc{display:flex;align-items:center;justify-content:center;width:64px;height:64px;border-radius:var(--hd-radius-pill);background-color:var(--hd-bg-raised);border:1px solid var(--hd-border);color:var(--hd-text-2);font-size:var(--hd-type-h2-size);margin-bottom:var(--hd-space-1)}.ui-empty__title-Z7Dzd{font-family:var(--hd-font-display);font-size:var(--hd-type-h4-size);font-weight:var(--hd-type-h4-weight);font-stretch:var(--hd-type-h4-stretch);line-height:var(--hd-type-h4-line-height);letter-spacing:var(--hd-type-h4-letter-spacing);color:var(--hd-text);margin:0;text-wrap:balance}.ui-empty__description-6BoCk{font-size:var(--hd-type-small-size);line-height:var(--hd-type-body-line-height);color:var(--hd-text-2);margin:0;max-width:48ch;text-wrap:pretty}.ui-empty__actions-ARk-k{display:flex;flex-wrap:wrap;align-items:center;gap:var(--hd-space-2);justify-content:center;margin-top:var(--hd-space-2)}@media (max-width: 640px){.ui-empty__actions-ARk-k{width:100%;max-width:320px;flex-direction:column}.ui-empty__actions-ARk-k>*{width:100%}}.ui-empty--sm-QXaXx{padding:var(--hd-space-6) var(--hd-space-4)}.ui-empty--sm-QXaXx .ui-empty__icon-okfEc{width:48px;height:48px;font-size:24px}.ui-empty--sm-QXaXx .ui-empty__title-Z7Dzd{font-family:var(--hd-font-body);font-size:var(--hd-type-body-size);font-weight:var(--hd-font-weight-semibold);line-height:var(--hd-type-h4-line-height);letter-spacing:normal;color:var(--hd-text)}.ui-empty--error-4BBgp .ui-empty__icon-okfEc{color:var(--hd-danger-fg);background-color:var(--hd-danger-bg)}.ui-empty--error-4BBgp .ui-empty__title-Z7Dzd{color:var(--hd-danger-fg)}}
@@ -0,0 +1,2 @@
1
+ "use client";"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("react/jsx-runtime"),o=require("react"),x=require("react-bootstrap-icons"),n=require("../../helpers/class-name.helper.cjs"),j=require("../../helpers/label.helper.cjs"),q=require("../../theme/context.cjs"),l={default:{"field":"ui-field-KKvre","field__label":"ui-field__label-9dlYd","field__label--hidden":"ui-field__label--hidden-ufuVt","field__required":"ui-field__required-hbDJk","field__srOnly":"ui-field__srOnly-2WQFH","field__hint":"ui-field__hint-SQPiL","field__error":"ui-field__error-gLlZ-","field__errorIcon":"ui-field__errorIcon-uA3o8"}},b=({label:u,children:f,hint:d,error:r,isRequired:a,requiredLabel:_,isLabelHidden:m,className:h})=>{const{labels:s}=q.useUi(),i=o.useId(),t=`${i}-error`,c=`${i}-hint`;return e.jsxs("div",{className:n.cx(l.default.field,h),children:[e.jsxs("label",{htmlFor:i,className:n.cx(l.default.field__label,m&&l.default["field__label--hidden"]),children:[u,a&&e.jsxs(e.Fragment,{children:[e.jsx("span",{className:l.default.field__required,"aria-hidden":!0,children:"*"}),e.jsx("span",{className:l.default.field__srOnly,children:j.resolveLabel("Field.requiredLabel",_,s==null?void 0:s.required)})]})]}),f({id:i,required:a||void 0,"aria-invalid":r?!0:void 0,"aria-describedby":[r&&t,d&&c].filter(Boolean).join(" ")||void 0}),r&&e.jsxs("p",{id:t,className:l.default.field__error,role:"alert",children:[e.jsx(x.ExclamationCircleFill,{"aria-hidden":!0,className:l.default.field__errorIcon}),r]}),d&&e.jsx("p",{id:c,className:l.default.field__hint,children:d})]})},p=o.memo(b);exports.default=p;
2
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs","sources":["../../../src/components/Field/index.tsx"],"sourcesContent":["'use client';\n\nimport { type FC, memo, type ReactNode, useId } from 'react';\n\nimport { ExclamationCircleFill } from 'react-bootstrap-icons';\n\nimport { cx } from '../../helpers/class-name.helper';\nimport { resolveLabel } from '../../helpers/label.helper';\nimport { useUi } from '../../theme/context';\n\nimport styles from './index.module.scss';\n\n/** Girdiye yayılacak erişilebilirlik bağları. */\nexport type FieldChildProps = {\n id: string;\n 'aria-invalid'?: boolean;\n 'aria-describedby'?: string;\n required?: boolean;\n};\n\ntype BaseProps = {\n label: string;\n /** Girdi bileşenini alan `id` ve `aria-*` bağlarıyla üretir. */\n children: (props: FieldChildProps) => ReactNode;\n hint?: string;\n error?: string;\n /** Etiketi gizler ama ekran okuyucuya bırakır (arama kutusu gibi). */\n isLabelHidden?: boolean;\n className?: string;\n};\n\ntype Props = BaseProps & {\n isRequired?: boolean;\n /** Zorunluluk yıldızının ekran okuyucu karşılığı (\"(zorunlu)\"). */\n requiredLabel?: string;\n};\n\n/**\n * Form alanı sarmalayıcısı.\n * @example <Field label=\"E-posta\" isRequired requiredLabel=\"(zorunlu)\"…\n * @example // `{...props}` yaymayan bileşenlerde (Combobox, Select) yalnızca `id`…\n */\nconst Field: FC<Props> = ({\n label,\n children,\n hint,\n error,\n isRequired,\n requiredLabel,\n isLabelHidden,\n className,\n}) => {\n const { labels } = useUi();\n const id = useId();\n const errorId = `${id}-error`;\n const hintId = `${id}-hint`;\n\n return (\n <div className={cx(styles.field, className)}>\n <label\n htmlFor={id}\n className={cx(styles.field__label, isLabelHidden && styles['field__label--hidden'])}\n >\n {label}\n {isRequired && (\n <>\n <span className={styles.field__required} aria-hidden>\n *\n </span>\n <span className={styles.field__srOnly}>\n {resolveLabel('Field.requiredLabel', requiredLabel, labels?.required)}\n </span>\n </>\n )}\n </label>\n\n {children({\n id,\n required: isRequired || undefined,\n 'aria-invalid': error ? true : undefined,\n /* HATA VE YARDIM BIRLIKTE baglanir, biri digerini EZMEZ. */\n 'aria-describedby':\n [error && errorId, hint && hintId].filter(Boolean).join(' ') || undefined,\n })}\n\n {/*\n HATA VE IPUCU BIRLIKTE cizilir.\n\n Ipucu eskiden hatanin ALTERNATIFIYDI: hata belirir belirmez kural\n ekrandan siliniyordu. Yani kullanici tam olarak kurali okumasi gereken\n anda onu kaybediyordu — \"Cok kisa\" diyor ama neye gore kisa oldugunu\n artik hicbir yer yazmiyor. `aria-describedby` de ikisini birden\n gosteriyor; biri cizilmediginde bag BOS bir dugume isaret ediyordu.\n */}\n {error && (\n <p id={errorId} className={styles.field__error} role=\"alert\">\n <ExclamationCircleFill aria-hidden className={styles.field__errorIcon} />\n {error}\n </p>\n )}\n\n {hint && (\n <p id={hintId} className={styles.field__hint}>\n {hint}\n </p>\n )}\n </div>\n );\n};\n\nexport default /*#__PURE__*/ memo(Field) as typeof Field;\n"],"names":["Field","label","children","hint","error","isRequired","requiredLabel","isLabelHidden","className","labels","useUi","id","useId","errorId","hintId","cx","styles","jsxs","Fragment","jsx","ExclamationCircleFill"],"mappings":"2XAyCMA,EAAmB,CAAC,CACxB,MAAAC,EACA,SAAAC,EACA,KAAAC,EACA,MAAAC,EACA,WAAAC,EACA,cAAAC,EACA,cAAAC,EACA,UAAAC,CACF,IAAM,CACJ,KAAM,CAAE,OAAAC,CAAA,EAAWC,QAAA,EACbC,EAAKC,EAAAA,MAAA,EACLC,EAAU,GAAGF,CAAE,SACfG,EAAS,GAAGH,CAAE,QAEpB,cACG,MAAA,CAAI,UAAWI,EAAAA,GAAGC,EAAAA,QAAO,MAAOR,CAAS,EACxC,SAAA,CAAAS,EAAAA,KAAC,QAAA,CACC,QAASN,EACT,UAAWI,EAAAA,GAAGC,UAAO,aAAcT,GAAiBS,EAAAA,QAAO,sBAAsB,CAAC,EAEjF,SAAA,CAAAf,EACAI,GACCY,EAAAA,KAAAC,WAAA,CACE,SAAA,CAAAC,MAAC,QAAK,UAAWH,EAAAA,QAAO,gBAAiB,cAAW,GAAC,SAAA,IAErD,EACAG,EAAAA,IAAC,OAAA,CAAK,UAAWH,EAAAA,QAAO,cACrB,wBAAa,sBAAuBV,EAAeG,GAAA,YAAAA,EAAQ,QAAQ,CAAA,CACtE,CAAA,CAAA,CACF,CAAA,CAAA,CAAA,EAIHP,EAAS,CACR,GAAAS,EACA,SAAUN,GAAc,OACxB,eAAgBD,EAAQ,GAAO,OAE/B,mBACE,CAACA,GAASS,EAASV,GAAQW,CAAM,EAAE,OAAO,OAAO,EAAE,KAAK,GAAG,GAAK,MAAA,CACnE,EAWAV,UACE,IAAA,CAAE,GAAIS,EAAS,UAAWG,EAAAA,QAAO,aAAc,KAAK,QACnD,SAAA,CAAAG,EAAAA,IAACC,EAAAA,sBAAA,CAAsB,cAAW,GAAC,UAAWJ,EAAAA,QAAO,iBAAkB,EACtEZ,CAAA,EACH,EAGDD,SACE,IAAA,CAAE,GAAIW,EAAQ,UAAWE,UAAO,YAC9B,SAAAb,CAAA,CACH,CAAA,EAEJ,CAEJ,EAEAH,SAAkCA,CAAK"}
@@ -0,0 +1,31 @@
1
+ import { FC, ReactNode } from 'react';
2
+ /** Girdiye yayılacak erişilebilirlik bağları. */
3
+ export type FieldChildProps = {
4
+ id: string;
5
+ 'aria-invalid'?: boolean;
6
+ 'aria-describedby'?: string;
7
+ required?: boolean;
8
+ };
9
+ type BaseProps = {
10
+ label: string;
11
+ /** Girdi bileşenini alan `id` ve `aria-*` bağlarıyla üretir. */
12
+ children: (props: FieldChildProps) => ReactNode;
13
+ hint?: string;
14
+ error?: string;
15
+ /** Etiketi gizler ama ekran okuyucuya bırakır (arama kutusu gibi). */
16
+ isLabelHidden?: boolean;
17
+ className?: string;
18
+ };
19
+ type Props = BaseProps & {
20
+ isRequired?: boolean;
21
+ /** Zorunluluk yıldızının ekran okuyucu karşılığı ("(zorunlu)"). */
22
+ requiredLabel?: string;
23
+ };
24
+ /**
25
+ * Form alanı sarmalayıcısı.
26
+ * @example <Field label="E-posta" isRequired requiredLabel="(zorunlu)"…
27
+ * @example // `{...props}` yaymayan bileşenlerde (Combobox, Select) yalnızca `id`…
28
+ */
29
+ declare const Field: FC<Props>;
30
+ declare const _default: typeof Field;
31
+ export default _default;
@@ -0,0 +1,52 @@
1
+ "use client";
2
+ import { jsxs as l, Fragment as u, jsx as d } from "react/jsx-runtime";
3
+ import { memo as N, useId as b } from "react";
4
+ import { ExclamationCircleFill as v } from "react-bootstrap-icons";
5
+ import { cx as c } from "../../helpers/class-name.helper.js";
6
+ import { resolveLabel as F } from "../../helpers/label.helper.js";
7
+ import { useUi as x } from "../../theme/context.js";
8
+ const e = {"field":"ui-field-KKvre","field__label":"ui-field__label-9dlYd","field__label--hidden":"ui-field__label--hidden-ufuVt","field__required":"ui-field__required-hbDJk","field__srOnly":"ui-field__srOnly-2WQFH","field__hint":"ui-field__hint-SQPiL","field__error":"ui-field__error-gLlZ-","field__errorIcon":"ui-field__errorIcon-uA3o8"};
9
+ const I = ({
10
+ label: m,
11
+ children: f,
12
+ hint: a,
13
+ error: i,
14
+ isRequired: s,
15
+ requiredLabel: _,
16
+ isLabelHidden: h,
17
+ className: p
18
+ }) => {
19
+ const { labels: o } = x(), r = b(), n = `${r}-error`, t = `${r}-hint`;
20
+ return /* @__PURE__ */ l("div", { className: c(e.field, p), children: [
21
+ /* @__PURE__ */ l(
22
+ "label",
23
+ {
24
+ htmlFor: r,
25
+ className: c(e.field__label, h && e["field__label--hidden"]),
26
+ children: [
27
+ m,
28
+ s && /* @__PURE__ */ l(u, { children: [
29
+ /* @__PURE__ */ d("span", { className: e.field__required, "aria-hidden": !0, children: "*" }),
30
+ /* @__PURE__ */ d("span", { className: e.field__srOnly, children: F("Field.requiredLabel", _, o == null ? void 0 : o.required) })
31
+ ] })
32
+ ]
33
+ }
34
+ ),
35
+ f({
36
+ id: r,
37
+ required: s || void 0,
38
+ "aria-invalid": i ? !0 : void 0,
39
+ /* HATA VE YARDIM BIRLIKTE baglanir, biri digerini EZMEZ. */
40
+ "aria-describedby": [i && n, a && t].filter(Boolean).join(" ") || void 0
41
+ }),
42
+ i && /* @__PURE__ */ l("p", { id: n, className: e.field__error, role: "alert", children: [
43
+ /* @__PURE__ */ d(v, { "aria-hidden": !0, className: e.field__errorIcon }),
44
+ i
45
+ ] }),
46
+ a && /* @__PURE__ */ d("p", { id: t, className: e.field__hint, children: a })
47
+ ] });
48
+ }, C = /* @__PURE__ */ N(I);
49
+ export {
50
+ C as default
51
+ };
52
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../src/components/Field/index.tsx"],"sourcesContent":["'use client';\n\nimport { type FC, memo, type ReactNode, useId } from 'react';\n\nimport { ExclamationCircleFill } from 'react-bootstrap-icons';\n\nimport { cx } from '../../helpers/class-name.helper';\nimport { resolveLabel } from '../../helpers/label.helper';\nimport { useUi } from '../../theme/context';\n\nimport styles from './index.module.scss';\n\n/** Girdiye yayılacak erişilebilirlik bağları. */\nexport type FieldChildProps = {\n id: string;\n 'aria-invalid'?: boolean;\n 'aria-describedby'?: string;\n required?: boolean;\n};\n\ntype BaseProps = {\n label: string;\n /** Girdi bileşenini alan `id` ve `aria-*` bağlarıyla üretir. */\n children: (props: FieldChildProps) => ReactNode;\n hint?: string;\n error?: string;\n /** Etiketi gizler ama ekran okuyucuya bırakır (arama kutusu gibi). */\n isLabelHidden?: boolean;\n className?: string;\n};\n\ntype Props = BaseProps & {\n isRequired?: boolean;\n /** Zorunluluk yıldızının ekran okuyucu karşılığı (\"(zorunlu)\"). */\n requiredLabel?: string;\n};\n\n/**\n * Form alanı sarmalayıcısı.\n * @example <Field label=\"E-posta\" isRequired requiredLabel=\"(zorunlu)\"…\n * @example // `{...props}` yaymayan bileşenlerde (Combobox, Select) yalnızca `id`…\n */\nconst Field: FC<Props> = ({\n label,\n children,\n hint,\n error,\n isRequired,\n requiredLabel,\n isLabelHidden,\n className,\n}) => {\n const { labels } = useUi();\n const id = useId();\n const errorId = `${id}-error`;\n const hintId = `${id}-hint`;\n\n return (\n <div className={cx(styles.field, className)}>\n <label\n htmlFor={id}\n className={cx(styles.field__label, isLabelHidden && styles['field__label--hidden'])}\n >\n {label}\n {isRequired && (\n <>\n <span className={styles.field__required} aria-hidden>\n *\n </span>\n <span className={styles.field__srOnly}>\n {resolveLabel('Field.requiredLabel', requiredLabel, labels?.required)}\n </span>\n </>\n )}\n </label>\n\n {children({\n id,\n required: isRequired || undefined,\n 'aria-invalid': error ? true : undefined,\n /* HATA VE YARDIM BIRLIKTE baglanir, biri digerini EZMEZ. */\n 'aria-describedby':\n [error && errorId, hint && hintId].filter(Boolean).join(' ') || undefined,\n })}\n\n {/*\n HATA VE IPUCU BIRLIKTE cizilir.\n\n Ipucu eskiden hatanin ALTERNATIFIYDI: hata belirir belirmez kural\n ekrandan siliniyordu. Yani kullanici tam olarak kurali okumasi gereken\n anda onu kaybediyordu — \"Cok kisa\" diyor ama neye gore kisa oldugunu\n artik hicbir yer yazmiyor. `aria-describedby` de ikisini birden\n gosteriyor; biri cizilmediginde bag BOS bir dugume isaret ediyordu.\n */}\n {error && (\n <p id={errorId} className={styles.field__error} role=\"alert\">\n <ExclamationCircleFill aria-hidden className={styles.field__errorIcon} />\n {error}\n </p>\n )}\n\n {hint && (\n <p id={hintId} className={styles.field__hint}>\n {hint}\n </p>\n )}\n </div>\n );\n};\n\nexport default /*#__PURE__*/ memo(Field) as typeof Field;\n"],"names":["Field","label","children","hint","error","isRequired","requiredLabel","isLabelHidden","className","labels","useUi","id","useId","errorId","hintId","cx","styles","jsxs","Fragment","jsx","ExclamationCircleFill","Field$1"],"mappings":";;;;;;;;AAyCA,MAAMA,IAAmB,CAAC;AAAA,EACxB,OAAAC;AAAA,EACA,UAAAC;AAAA,EACA,MAAAC;AAAA,EACA,OAAAC;AAAA,EACA,YAAAC;AAAA,EACA,eAAAC;AAAA,EACA,eAAAC;AAAA,EACA,WAAAC;AACF,MAAM;AACJ,QAAM,EAAE,QAAAC,EAAA,IAAWC,EAAA,GACbC,IAAKC,EAAA,GACLC,IAAU,GAAGF,CAAE,UACfG,IAAS,GAAGH,CAAE;AAEpB,2BACG,OAAA,EAAI,WAAWI,EAAGC,EAAO,OAAOR,CAAS,GACxC,UAAA;AAAA,IAAA,gBAAAS;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,SAASN;AAAA,QACT,WAAWI,EAAGC,EAAO,cAAcT,KAAiBS,EAAO,sBAAsB,CAAC;AAAA,QAEjF,UAAA;AAAA,UAAAf;AAAA,UACAI,KACC,gBAAAY,EAAAC,GAAA,EACE,UAAA;AAAA,YAAA,gBAAAC,EAAC,UAAK,WAAWH,EAAO,iBAAiB,eAAW,IAAC,UAAA,KAErD;AAAA,YACA,gBAAAG,EAAC,QAAA,EAAK,WAAWH,EAAO,eACrB,YAAa,uBAAuBV,GAAeG,KAAA,gBAAAA,EAAQ,QAAQ,EAAA,CACtE;AAAA,UAAA,EAAA,CACF;AAAA,QAAA;AAAA,MAAA;AAAA,IAAA;AAAA,IAIHP,EAAS;AAAA,MACR,IAAAS;AAAA,MACA,UAAUN,KAAc;AAAA,MACxB,gBAAgBD,IAAQ,KAAO;AAAA;AAAA,MAE/B,oBACE,CAACA,KAASS,GAASV,KAAQW,CAAM,EAAE,OAAO,OAAO,EAAE,KAAK,GAAG,KAAK;AAAA,IAAA,CACnE;AAAA,IAWAV,uBACE,KAAA,EAAE,IAAIS,GAAS,WAAWG,EAAO,cAAc,MAAK,SACnD,UAAA;AAAA,MAAA,gBAAAG,EAACC,GAAA,EAAsB,eAAW,IAAC,WAAWJ,EAAO,kBAAkB;AAAA,MACtEZ;AAAA,IAAA,GACH;AAAA,IAGDD,uBACE,KAAA,EAAE,IAAIW,GAAQ,WAAWE,EAAO,aAC9B,UAAAb,EAAA,CACH;AAAA,EAAA,GAEJ;AAEJ,GAEAkB,sBAAkCrB,CAAK;"}
@@ -0,0 +1 @@
1
+ @layer ui{.ui-field-KKvre{display:flex;flex-direction:column;gap:var(--hd-space-2)}.ui-field__label-9dlYd{font-family:var(--hd-font-body);font-size:var(--hd-type-small-size);font-weight:var(--hd-font-weight-medium);line-height:var(--hd-type-h4-line-height);color:var(--hd-text);display:flex;align-items:center;gap:2px;order:var(--ui-field-label-order, 0)}.ui-field__label--hidden-ufuVt{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}.ui-field__required-hbDJk{color:var(--hd-danger-fg)}.ui-field__srOnly-2WQFH{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}.ui-field__hint-SQPiL{font-size:var(--hd-type-caption-size);color:var(--hd-text-2);line-height:var(--hd-type-body-line-height);order:var(--ui-field-message-order, 0)}.ui-field__error-gLlZ-{display:flex;align-items:center;gap:var(--hd-space-1);font-size:var(--hd-type-caption-size);font-weight:var(--hd-font-weight-medium);color:var(--hd-danger-fg);line-height:var(--hd-type-body-line-height);margin:0;order:var(--ui-field-message-order, 0)}.ui-field__errorIcon-uA3o8{font-size:14px;flex-shrink:0}}
@@ -0,0 +1,2 @@
1
+ "use client";"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const a=require("react/jsx-runtime"),s=require("react"),c=require("react-bootstrap-icons"),h=require("../../helpers/class-name.helper.cjs"),X=require("../../helpers/component.helper.cjs"),x=require("../../helpers/label.helper.cjs"),G=require("../../hooks/useAnnounce.cjs"),H=require("../IconButton/index.cjs"),J=require("../Progress/index.cjs"),Q=require("../../theme/context.cjs"),l={default:{"upload":"ui-upload-v1pRY","upload__drop":"ui-upload__drop-OpNbO","upload__input":"ui-upload__input-Tcg9-","upload__drop--dragging":"ui-upload__drop--dragging-YztUx","upload__drop--invalid":"ui-upload__drop--invalid-JhwnL","upload__drop--disabled":"ui-upload__drop--disabled-zyfUv","upload__icon":"ui-upload__icon-KpMkq","upload__label":"ui-upload__label-M4HJb","upload__drag":"ui-upload__drag-ewSQw","upload__hint":"ui-upload__hint-MZRJ6","upload__error":"ui-upload__error-7GkCC","upload__list":"ui-upload__list-lbViQ","upload__file":"ui-upload__file-Znp1Q","upload__file--error":"ui-upload__file--error-wpbtA","upload__fileText":"ui-upload__fileText-EtJcs","upload__fileName":"ui-upload__fileName-ArF8-","upload__fileMeta":"ui-upload__fileMeta-i6sO1","upload__progress":"ui-upload__progress-JY2a5"}},p=1024,M=p*p,j=t=>t<p?`${t} B`:t<M?`${Math.round(t/p)} KB`:`${(t/M).toFixed(1)} MB`,V=({files:t,onSelect:R,onRemove:C,label:D,hint:_,accept:E,isMultiple:L,maxSize:n,removeLabel:S,dropLabel:T,sizeErrorText:v,isDisabled:i,error:u,children:P,className:A,testId:K})=>{const N=s.useId(),F=s.useId(),O=s.useRef(null),{labels:r}=Q.useUi(),q=G.default(),[Y,f]=s.useState(!1),[k,w]=s.useState([]),U=e=>{var $;if(!e||e.length===0)return;const o=[...e],B=n===void 0?[]:o.filter(d=>d.size>n),m=o.filter(d=>!B.includes(d)),g=B.map(d=>{var I;return v===void 0?x.resolveFormatter("FileUpload.tooLarge",(I=r==null?void 0:r.fileUpload)==null?void 0:I.tooLarge,d.name,j(n??0)):v.replace("{name}",d.name).replace("{max}",j(n??0))});w(g),m.length>0&&(R(m),q(x.resolveFormatter("FileUpload.added",($=r==null?void 0:r.fileUpload)==null?void 0:$.added,m.length))),g.length>0&&q(g.join(" "),"assertive")},z=e=>{e.preventDefault(),f(!1),!i&&U(e.dataTransfer.files)};return a.jsxs("div",{className:h.cx(l.default.upload,A),"data-testid":K,children:[a.jsxs("label",{htmlFor:N,className:h.cx(l.default.upload__drop,Y&&l.default["upload__drop--dragging"],i&&l.default["upload__drop--disabled"],u&&l.default["upload__drop--invalid"]),onDragOver:e=>{e.preventDefault(),i||f(!0)},onDragLeave:()=>f(!1),onDrop:z,children:[a.jsx(c.CloudArrowUpFill,{"aria-hidden":!0,className:l.default.upload__icon}),a.jsx("span",{className:l.default.upload__label,children:D}),a.jsx("span",{className:l.default.upload__drag,children:T}),_&&a.jsx("span",{id:F,className:l.default.upload__hint,children:_}),a.jsx("input",{ref:O,id:N,type:"file",className:l.default.upload__input,accept:E,multiple:L,disabled:i,"aria-describedby":_?F:void 0,"aria-invalid":u?!0:void 0,onChange:e=>{U(e.target.files),e.target.value=""}})]}),u&&a.jsxs("p",{className:l.default.upload__error,role:"alert",children:[a.jsx(c.ExclamationCircleFill,{"aria-hidden":!0}),u]}),k.map(e=>a.jsxs("p",{className:l.default.upload__error,role:"alert",children:[a.jsx(c.ExclamationCircleFill,{"aria-hidden":!0}),e]},e)),t.length>0&&a.jsx("ul",{className:l.default.upload__list,children:t.map(e=>{var o;return a.jsxs("li",{className:h.cx(l.default.upload__file,e.error&&l.default["upload__file--error"]),children:[a.jsxs("span",{className:l.default.upload__fileText,children:[a.jsx("span",{className:l.default.upload__fileName,children:e.name}),a.jsx("span",{className:l.default.upload__fileMeta,children:e.error??j(e.size)})]}),e.progress!==void 0&&a.jsx(J.default,{value:e.progress,label:x.resolveFormatter("FileUpload.uploading",(o=r==null?void 0:r.fileUpload)==null?void 0:o.uploading,e.name),size:"sm",className:l.default.upload__progress}),a.jsx(H.default,{icon:a.jsx(c.XLg,{"aria-hidden":!0}),label:`${e.name} — ${S}`,variant:"ghost",size:"sm",onClick:()=>C(e.id)})]},e.id)})}),P]})},W=s.memo(X.named(V,"FileUpload"));exports.default=W;
2
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs","sources":["../../../src/components/FileUpload/index.tsx"],"sourcesContent":["'use client';\n\nimport { type DragEvent, memo, type ReactNode, useId, useRef, useState } from 'react';\n\nimport { CloudArrowUpFill, ExclamationCircleFill, XLg } from 'react-bootstrap-icons';\n\nimport { cx } from '../../helpers/class-name.helper';\nimport { named } from '../../helpers/component.helper';\nimport { resolveFormatter } from '../../helpers/label.helper';\nimport useAnnounce from '../../hooks/useAnnounce';\nimport IconButton from '../IconButton';\nimport Progress from '../Progress';\n\nimport { useUi } from '../../theme/context';\n\nimport styles from './index.module.scss';\n\nexport type UploadFile = {\n id: string;\n name: string;\n /** Bayt. */\n size: number;\n /** 0-100. `undefined` → yükleme başlamadı ya da bitti. */\n progress?: number;\n /** Bu dosyaya ait hata. */\n error?: string;\n};\n\ntype Props = {\n files: UploadFile[];\n /** Kullanıcı dosya seçtiğinde/bıraktığında çağrılır — DOĞRULANMIŞ liste. */\n onSelect: (files: File[]) => void;\n onRemove: (id: string) => void;\n /** Alanın görünür etiketi ve erişilebilir adı. */\n label: string;\n /** Etiketin altındaki kural cümlesi (\"PDF veya JPG, en fazla 5 MB\"). */\n hint?: string;\n /** `<input accept>` — tarayıcının dosya seçicisini süzer. */\n accept?: string;\n isMultiple?: boolean;\n /** Bayt. */\n maxSize?: number;\n /** Kaldırma düğmelerinin erişilebilir ad öneki (\"Kaldır\"). */\n removeLabel: string;\n /** Sürükle-bırak alanının içine yazılan çağrı (\"Dosyaları buraya bırakın\"). */\n dropLabel: string;\n /** Boyut aşıldığında yazılan hata; `{name}` ve `{max}` yerine konur. */\n sizeErrorText?: string;\n isDisabled?: boolean;\n /** Alanın tamamına ait hata (sunucu reddi). */\n error?: string;\n children?: ReactNode;\n className?: string;\n testId?: string;\n};\n\n/** İkili önek — dosya boyutu KB/MB olarak okunur. */\nconst BYTES_PER_KB = 1024;\nconst BYTES_PER_MB = BYTES_PER_KB * BYTES_PER_KB;\n\n/** Baytı okunur biçime çevirir. */\nconst formatSize = (bytes: number): string => {\n if (bytes < BYTES_PER_KB) return `${bytes} B`;\n if (bytes < BYTES_PER_MB) return `${Math.round(bytes / BYTES_PER_KB)} KB`;\n return `${(bytes / BYTES_PER_MB).toFixed(1)} MB`;\n};\n\n/** Dosya yükleme — sürükle-bırak ve düğme. */\nconst FileUpload = ({\n files,\n onSelect,\n onRemove,\n label,\n hint,\n accept,\n isMultiple,\n maxSize,\n removeLabel,\n dropLabel,\n sizeErrorText,\n isDisabled,\n error,\n children,\n className,\n testId,\n}: Props) => {\n const inputId = useId();\n const hintId = useId();\n const inputRef = useRef<HTMLInputElement>(null);\n const { labels } = useUi();\n const announce = useAnnounce();\n\n const [isDragging, setIsDragging] = useState(false);\n const [rejected, setRejected] = useState<string[]>([]);\n\n const handleFiles = (list: FileList | null) => {\n if (!list || list.length === 0) return;\n\n const incoming = [...list];\n const tooLarge = maxSize === undefined ? [] : incoming.filter(file => file.size > maxSize);\n const accepted = incoming.filter(file => !tooLarge.includes(file));\n\n /*\n * ⚠ METIN SABIT DEGIL. Bir donem varsayilan bir Turkce sablon (`'{name} çok büyük (en fazla\n * {max}).'`) prop varsayilaniydi ve kutuphanenin…\n */\n const messages = tooLarge.map(file =>\n sizeErrorText === undefined\n ? resolveFormatter(\n 'FileUpload.tooLarge',\n labels?.fileUpload?.tooLarge,\n file.name,\n formatSize(maxSize ?? 0),\n )\n : sizeErrorText.replace('{name}', file.name).replace('{max}', formatSize(maxSize ?? 0)),\n );\n setRejected(messages);\n\n if (accepted.length > 0) {\n onSelect(accepted);\n announce(resolveFormatter('FileUpload.added', labels?.fileUpload?.added, accepted.length));\n }\n\n /*\n * Reddedilen dosya ekranda YAZIYOR ama duyurulmali da: gormeyen kullanici icin sessizce dusen\n * bir dosya hic secilmemis demekti.\n */\n if (messages.length > 0) announce(messages.join(' '), 'assertive');\n };\n\n const handleDrop = (event: DragEvent<HTMLLabelElement>) => {\n event.preventDefault();\n setIsDragging(false);\n if (isDisabled) return;\n handleFiles(event.dataTransfer.files);\n };\n\n return (\n <div className={cx(styles.upload, className)} data-testid={testId}>\n {/*\n Sürükle-bırak alanı bir `<label>`: tıklama ve klavye YEREL girdiye\n yönleniyor. `onClick` ile `input.click()` çağırmak da çalışırdı ama\n ekran okuyucu alanı bir düğme olarak duyurmuyordu.\n */}\n <label\n htmlFor={inputId}\n className={cx(\n styles.upload__drop,\n isDragging && styles['upload__drop--dragging'],\n isDisabled && styles['upload__drop--disabled'],\n error && styles['upload__drop--invalid'],\n )}\n onDragOver={event => {\n event.preventDefault();\n if (!isDisabled) setIsDragging(true);\n }}\n onDragLeave={() => setIsDragging(false)}\n onDrop={handleDrop}\n >\n <CloudArrowUpFill aria-hidden className={styles.upload__icon} />\n\n <span className={styles.upload__label}>{label}</span>\n <span className={styles.upload__drag}>{dropLabel}</span>\n {hint && (\n <span id={hintId} className={styles.upload__hint}>\n {hint}\n </span>\n )}\n\n <input\n ref={inputRef}\n id={inputId}\n type=\"file\"\n className={styles.upload__input}\n accept={accept}\n multiple={isMultiple}\n disabled={isDisabled}\n aria-describedby={hint ? hintId : undefined}\n aria-invalid={error ? true : undefined}\n onChange={event => {\n handleFiles(event.target.files);\n /*\n * Deger SIFIRLANIR: ayni dosya ikinci kez secildiginde `change` olayi hic dusmuyor ve\n * kullanici \"hicbir sey olmadi\" saniyordu.\n */\n event.target.value = '';\n }}\n />\n </label>\n\n {error && (\n <p className={styles.upload__error} role=\"alert\">\n <ExclamationCircleFill aria-hidden />\n {error}\n </p>\n )}\n\n {rejected.map(message => (\n <p key={message} className={styles.upload__error} role=\"alert\">\n <ExclamationCircleFill aria-hidden />\n {message}\n </p>\n ))}\n\n {files.length > 0 && (\n <ul className={styles.upload__list}>\n {files.map(file => (\n <li\n key={file.id}\n className={cx(styles.upload__file, file.error && styles['upload__file--error'])}\n >\n <span className={styles.upload__fileText}>\n <span className={styles.upload__fileName}>{file.name}</span>\n <span className={styles.upload__fileMeta}>\n {file.error ?? formatSize(file.size)}\n </span>\n </span>\n\n {file.progress !== undefined && (\n <Progress\n value={file.progress}\n label={resolveFormatter(\n 'FileUpload.uploading',\n labels?.fileUpload?.uploading,\n file.name,\n )}\n size=\"sm\"\n className={styles.upload__progress}\n />\n )}\n\n <IconButton\n icon={<XLg aria-hidden />}\n /*\n * Ad dosya adini ICERIR: bir listede on bes dugme \"Kaldir\" diye okunuyor ve hangisi\n * oldugu belli olmuyordu.\n */\n label={`${file.name} — ${removeLabel}`}\n variant=\"ghost\"\n size=\"sm\"\n onClick={() => onRemove(file.id)}\n />\n </li>\n ))}\n </ul>\n )}\n\n {children}\n </div>\n );\n};\n\nexport default /*#__PURE__*/ memo(\n /*#__PURE__*/ named(FileUpload, 'FileUpload'),\n) as typeof FileUpload;\n"],"names":["BYTES_PER_KB","BYTES_PER_MB","formatSize","bytes","FileUpload","files","onSelect","onRemove","label","hint","accept","isMultiple","maxSize","removeLabel","dropLabel","sizeErrorText","isDisabled","error","children","className","testId","inputId","useId","hintId","inputRef","useRef","labels","useUi","announce","useAnnounce","isDragging","setIsDragging","useState","rejected","setRejected","handleFiles","list","incoming","tooLarge","file","accepted","messages","resolveFormatter","_a","handleDrop","event","jsxs","cx","styles","jsx","CloudArrowUpFill","ExclamationCircleFill","message","Progress","IconButton","XLg","index","memo","named"],"mappings":"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"}
@@ -0,0 +1,42 @@
1
+ import { ReactNode } from 'react';
2
+ export type UploadFile = {
3
+ id: string;
4
+ name: string;
5
+ /** Bayt. */
6
+ size: number;
7
+ /** 0-100. `undefined` → yükleme başlamadı ya da bitti. */
8
+ progress?: number;
9
+ /** Bu dosyaya ait hata. */
10
+ error?: string;
11
+ };
12
+ type Props = {
13
+ files: UploadFile[];
14
+ /** Kullanıcı dosya seçtiğinde/bıraktığında çağrılır — DOĞRULANMIŞ liste. */
15
+ onSelect: (files: File[]) => void;
16
+ onRemove: (id: string) => void;
17
+ /** Alanın görünür etiketi ve erişilebilir adı. */
18
+ label: string;
19
+ /** Etiketin altındaki kural cümlesi ("PDF veya JPG, en fazla 5 MB"). */
20
+ hint?: string;
21
+ /** `<input accept>` — tarayıcının dosya seçicisini süzer. */
22
+ accept?: string;
23
+ isMultiple?: boolean;
24
+ /** Bayt. */
25
+ maxSize?: number;
26
+ /** Kaldırma düğmelerinin erişilebilir ad öneki ("Kaldır"). */
27
+ removeLabel: string;
28
+ /** Sürükle-bırak alanının içine yazılan çağrı ("Dosyaları buraya bırakın"). */
29
+ dropLabel: string;
30
+ /** Boyut aşıldığında yazılan hata; `{name}` ve `{max}` yerine konur. */
31
+ sizeErrorText?: string;
32
+ isDisabled?: boolean;
33
+ /** Alanın tamamına ait hata (sunucu reddi). */
34
+ error?: string;
35
+ children?: ReactNode;
36
+ className?: string;
37
+ testId?: string;
38
+ };
39
+ /** Dosya yükleme — sürükle-bırak ve düğme. */
40
+ declare const FileUpload: ({ files, onSelect, onRemove, label, hint, accept, isMultiple, maxSize, removeLabel, dropLabel, sizeErrorText, isDisabled, error, children, className, testId, }: Props) => import("react").JSX.Element;
41
+ declare const _default: typeof FileUpload;
42
+ export default _default;