@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,145 @@
1
+ "use client";
2
+ import { jsxs as d, jsx as o } from "react/jsx-runtime";
3
+ import { memo as H, useId as L, useRef as J, useState as R } from "react";
4
+ import { CloudArrowUpFill as Q, ExclamationCircleFill as $, XLg as V } from "react-bootstrap-icons";
5
+ import { cx as f } from "../../helpers/class-name.helper.js";
6
+ import { named as W } from "../../helpers/component.helper.js";
7
+ import { resolveFormatter as h } from "../../helpers/label.helper.js";
8
+ import Z from "../../hooks/useAnnounce.js";
9
+ import y from "../IconButton/index.js";
10
+ import b from "../Progress/index.js";
11
+ import { useUi as ee } from "../../theme/context.js";
12
+ const a = {"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"};
13
+ const c = 1024, C = c * c, N = (l) => l < c ? `${l} B` : l < C ? `${Math.round(l / c)} KB` : `${(l / C).toFixed(1)} MB`, ae = ({
14
+ files: l,
15
+ onSelect: E,
16
+ onRemove: M,
17
+ label: P,
18
+ hint: u,
19
+ accept: T,
20
+ isMultiple: A,
21
+ maxSize: t,
22
+ removeLabel: K,
23
+ dropLabel: Y,
24
+ sizeErrorText: v,
25
+ isDisabled: s,
26
+ error: p,
27
+ children: k,
28
+ className: w,
29
+ testId: z
30
+ }) => {
31
+ const F = L(), U = L(), O = J(null), { labels: r } = ee(), B = Z(), [S, m] = R(!1), [X, q] = R([]), j = (e) => {
32
+ var D;
33
+ if (!e || e.length === 0) return;
34
+ const i = [...e], x = t === void 0 ? [] : i.filter((n) => n.size > t), _ = i.filter((n) => !x.includes(n)), g = x.map(
35
+ (n) => {
36
+ var I;
37
+ return v === void 0 ? h(
38
+ "FileUpload.tooLarge",
39
+ (I = r == null ? void 0 : r.fileUpload) == null ? void 0 : I.tooLarge,
40
+ n.name,
41
+ N(t ?? 0)
42
+ ) : v.replace("{name}", n.name).replace("{max}", N(t ?? 0));
43
+ }
44
+ );
45
+ q(g), _.length > 0 && (E(_), B(h("FileUpload.added", (D = r == null ? void 0 : r.fileUpload) == null ? void 0 : D.added, _.length))), g.length > 0 && B(g.join(" "), "assertive");
46
+ }, G = (e) => {
47
+ e.preventDefault(), m(!1), !s && j(e.dataTransfer.files);
48
+ };
49
+ return /* @__PURE__ */ d("div", { className: f(a.upload, w), "data-testid": z, children: [
50
+ /* @__PURE__ */ d(
51
+ "label",
52
+ {
53
+ htmlFor: F,
54
+ className: f(
55
+ a.upload__drop,
56
+ S && a["upload__drop--dragging"],
57
+ s && a["upload__drop--disabled"],
58
+ p && a["upload__drop--invalid"]
59
+ ),
60
+ onDragOver: (e) => {
61
+ e.preventDefault(), s || m(!0);
62
+ },
63
+ onDragLeave: () => m(!1),
64
+ onDrop: G,
65
+ children: [
66
+ /* @__PURE__ */ o(Q, { "aria-hidden": !0, className: a.upload__icon }),
67
+ /* @__PURE__ */ o("span", { className: a.upload__label, children: P }),
68
+ /* @__PURE__ */ o("span", { className: a.upload__drag, children: Y }),
69
+ u && /* @__PURE__ */ o("span", { id: U, className: a.upload__hint, children: u }),
70
+ /* @__PURE__ */ o(
71
+ "input",
72
+ {
73
+ ref: O,
74
+ id: F,
75
+ type: "file",
76
+ className: a.upload__input,
77
+ accept: T,
78
+ multiple: A,
79
+ disabled: s,
80
+ "aria-describedby": u ? U : void 0,
81
+ "aria-invalid": p ? !0 : void 0,
82
+ onChange: (e) => {
83
+ j(e.target.files), e.target.value = "";
84
+ }
85
+ }
86
+ )
87
+ ]
88
+ }
89
+ ),
90
+ p && /* @__PURE__ */ d("p", { className: a.upload__error, role: "alert", children: [
91
+ /* @__PURE__ */ o($, { "aria-hidden": !0 }),
92
+ p
93
+ ] }),
94
+ X.map((e) => /* @__PURE__ */ d("p", { className: a.upload__error, role: "alert", children: [
95
+ /* @__PURE__ */ o($, { "aria-hidden": !0 }),
96
+ e
97
+ ] }, e)),
98
+ l.length > 0 && /* @__PURE__ */ o("ul", { className: a.upload__list, children: l.map((e) => {
99
+ var i;
100
+ return /* @__PURE__ */ d(
101
+ "li",
102
+ {
103
+ className: f(a.upload__file, e.error && a["upload__file--error"]),
104
+ children: [
105
+ /* @__PURE__ */ d("span", { className: a.upload__fileText, children: [
106
+ /* @__PURE__ */ o("span", { className: a.upload__fileName, children: e.name }),
107
+ /* @__PURE__ */ o("span", { className: a.upload__fileMeta, children: e.error ?? N(e.size) })
108
+ ] }),
109
+ e.progress !== void 0 && /* @__PURE__ */ o(
110
+ b,
111
+ {
112
+ value: e.progress,
113
+ label: h(
114
+ "FileUpload.uploading",
115
+ (i = r == null ? void 0 : r.fileUpload) == null ? void 0 : i.uploading,
116
+ e.name
117
+ ),
118
+ size: "sm",
119
+ className: a.upload__progress
120
+ }
121
+ ),
122
+ /* @__PURE__ */ o(
123
+ y,
124
+ {
125
+ icon: /* @__PURE__ */ o(V, { "aria-hidden": !0 }),
126
+ label: `${e.name} — ${K}`,
127
+ variant: "ghost",
128
+ size: "sm",
129
+ onClick: () => M(e.id)
130
+ }
131
+ )
132
+ ]
133
+ },
134
+ e.id
135
+ );
136
+ }) }),
137
+ k
138
+ ] });
139
+ }, me = /* @__PURE__ */ H(
140
+ /* @__PURE__ */ W(ae, "FileUpload")
141
+ );
142
+ export {
143
+ me as default
144
+ };
145
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","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":";;;;;;;;;;;;AAwDA,MAAMA,IAAe,MACfC,IAAeD,IAAeA,GAG9BE,IAAa,CAACC,MACdA,IAAQH,IAAqB,GAAGG,CAAK,OACrCA,IAAQF,IAAqB,GAAG,KAAK,MAAME,IAAQH,CAAY,CAAC,QAC7D,IAAIG,IAAQF,GAAc,QAAQ,CAAC,CAAC,OAIvCG,KAAa,CAAC;AAAA,EAClB,OAAAC;AAAA,EACA,UAAAC;AAAA,EACA,UAAAC;AAAA,EACA,OAAAC;AAAA,EACA,MAAAC;AAAA,EACA,QAAAC;AAAA,EACA,YAAAC;AAAA,EACA,SAAAC;AAAA,EACA,aAAAC;AAAA,EACA,WAAAC;AAAA,EACA,eAAAC;AAAA,EACA,YAAAC;AAAA,EACA,OAAAC;AAAA,EACA,UAAAC;AAAA,EACA,WAAAC;AAAA,EACA,QAAAC;AACF,MAAa;AACX,QAAMC,IAAUC,EAAA,GACVC,IAASD,EAAA,GACTE,IAAWC,EAAyB,IAAI,GACxC,EAAE,QAAAC,EAAA,IAAWC,GAAA,GACbC,IAAWC,EAAA,GAEX,CAACC,GAAYC,CAAa,IAAIC,EAAS,EAAK,GAC5C,CAACC,GAAUC,CAAW,IAAIF,EAAmB,CAAA,CAAE,GAE/CG,IAAc,CAACC,MAA0B;;AAC7C,QAAI,CAACA,KAAQA,EAAK,WAAW,EAAG;AAEhC,UAAMC,IAAW,CAAC,GAAGD,CAAI,GACnBE,IAAW1B,MAAY,SAAY,KAAKyB,EAAS,OAAO,CAAAE,MAAQA,EAAK,OAAO3B,CAAO,GACnF4B,IAAWH,EAAS,OAAO,CAAAE,MAAQ,CAACD,EAAS,SAASC,CAAI,CAAC,GAM3DE,IAAWH,EAAS;AAAA,MAAI,CAAAC,MAAA;;AAC5B,eAAAxB,MAAkB,SACd2B;AAAA,UACE;AAAA,WACAC,IAAAjB,KAAA,gBAAAA,EAAQ,eAAR,gBAAAiB,EAAoB;AAAA,UACpBJ,EAAK;AAAA,UACLrC,EAAWU,KAAW,CAAC;AAAA,QAAA,IAEzBG,EAAc,QAAQ,UAAUwB,EAAK,IAAI,EAAE,QAAQ,SAASrC,EAAWU,KAAW,CAAC,CAAC;AAAA;AAAA,IAAA;AAE1F,IAAAsB,EAAYO,CAAQ,GAEhBD,EAAS,SAAS,MACpBlC,EAASkC,CAAQ,GACjBZ,EAASc,EAAiB,qBAAoBC,IAAAjB,KAAA,gBAAAA,EAAQ,eAAR,gBAAAiB,EAAoB,OAAOH,EAAS,MAAM,CAAC,IAOvFC,EAAS,SAAS,KAAGb,EAASa,EAAS,KAAK,GAAG,GAAG,WAAW;AAAA,EACnE,GAEMG,IAAa,CAACC,MAAuC;AAGzD,IAFAA,EAAM,eAAA,GACNd,EAAc,EAAK,GACf,CAAAf,KACJmB,EAAYU,EAAM,aAAa,KAAK;AAAA,EACtC;AAEA,SACE,gBAAAC,EAAC,SAAI,WAAWC,EAAGC,EAAO,QAAQ7B,CAAS,GAAG,eAAaC,GAMzD,UAAA;AAAA,IAAA,gBAAA0B;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,SAASzB;AAAA,QACT,WAAW0B;AAAA,UACTC,EAAO;AAAA,UACPlB,KAAckB,EAAO,wBAAwB;AAAA,UAC7ChC,KAAcgC,EAAO,wBAAwB;AAAA,UAC7C/B,KAAS+B,EAAO,uBAAuB;AAAA,QAAA;AAAA,QAEzC,YAAY,CAAAH,MAAS;AACnB,UAAAA,EAAM,eAAA,GACD7B,KAAYe,EAAc,EAAI;AAAA,QACrC;AAAA,QACA,aAAa,MAAMA,EAAc,EAAK;AAAA,QACtC,QAAQa;AAAA,QAER,UAAA;AAAA,UAAA,gBAAAK,EAACC,GAAA,EAAiB,eAAW,IAAC,WAAWF,EAAO,cAAc;AAAA,UAE9D,gBAAAC,EAAC,QAAA,EAAK,WAAWD,EAAO,eAAgB,UAAAxC,GAAM;AAAA,UAC9C,gBAAAyC,EAAC,QAAA,EAAK,WAAWD,EAAO,cAAe,UAAAlC,GAAU;AAAA,UAChDL,uBACE,QAAA,EAAK,IAAIc,GAAQ,WAAWyB,EAAO,cACjC,UAAAvC,EAAA,CACH;AAAA,UAGF,gBAAAwC;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,KAAKzB;AAAA,cACL,IAAIH;AAAA,cACJ,MAAK;AAAA,cACL,WAAW2B,EAAO;AAAA,cAClB,QAAAtC;AAAA,cACA,UAAUC;AAAA,cACV,UAAUK;AAAA,cACV,oBAAkBP,IAAOc,IAAS;AAAA,cAClC,gBAAcN,IAAQ,KAAO;AAAA,cAC7B,UAAU,CAAA4B,MAAS;AACjB,gBAAAV,EAAYU,EAAM,OAAO,KAAK,GAK9BA,EAAM,OAAO,QAAQ;AAAA,cACvB;AAAA,YAAA;AAAA,UAAA;AAAA,QACF;AAAA,MAAA;AAAA,IAAA;AAAA,IAGD5B,KACC,gBAAA6B,EAAC,KAAA,EAAE,WAAWE,EAAO,eAAe,MAAK,SACvC,UAAA;AAAA,MAAA,gBAAAC,EAACE,GAAA,EAAsB,eAAW,GAAA,CAAC;AAAA,MAClClC;AAAA,IAAA,GACH;AAAA,IAGDgB,EAAS,IAAI,CAAAmB,MACZ,gBAAAN,EAAC,OAAgB,WAAWE,EAAO,eAAe,MAAK,SACrD,UAAA;AAAA,MAAA,gBAAAC,EAACE,GAAA,EAAsB,eAAW,GAAA,CAAC;AAAA,MAClCC;AAAA,IAAA,EAAA,GAFKA,CAGR,CACD;AAAA,IAEA/C,EAAM,SAAS,KACd,gBAAA4C,EAAC,MAAA,EAAG,WAAWD,EAAO,cACnB,UAAA3C,EAAM,IAAI,CAAAkC,MAAA;;AACT,6BAAAO;AAAA,QAAC;AAAA,QAAA;AAAA,UAEC,WAAWC,EAAGC,EAAO,cAAcT,EAAK,SAASS,EAAO,qBAAqB,CAAC;AAAA,UAE9E,UAAA;AAAA,YAAA,gBAAAF,EAAC,QAAA,EAAK,WAAWE,EAAO,kBACtB,UAAA;AAAA,cAAA,gBAAAC,EAAC,QAAA,EAAK,WAAWD,EAAO,kBAAmB,YAAK,MAAK;AAAA,cACrD,gBAAAC,EAAC,QAAA,EAAK,WAAWD,EAAO,kBACrB,YAAK,SAAS9C,EAAWqC,EAAK,IAAI,EAAA,CACrC;AAAA,YAAA,GACF;AAAA,YAECA,EAAK,aAAa,UACjB,gBAAAU;AAAA,cAACI;AAAA,cAAA;AAAA,gBACC,OAAOd,EAAK;AAAA,gBACZ,OAAOG;AAAA,kBACL;AAAA,mBACAC,IAAAjB,KAAA,gBAAAA,EAAQ,eAAR,gBAAAiB,EAAoB;AAAA,kBACpBJ,EAAK;AAAA,gBAAA;AAAA,gBAEP,MAAK;AAAA,gBACL,WAAWS,EAAO;AAAA,cAAA;AAAA,YAAA;AAAA,YAItB,gBAAAC;AAAA,cAACK;AAAA,cAAA;AAAA,gBACC,MAAM,gBAAAL,EAACM,GAAA,EAAI,eAAW,GAAA,CAAC;AAAA,gBAKvB,OAAO,GAAGhB,EAAK,IAAI,MAAM1B,CAAW;AAAA,gBACpC,SAAQ;AAAA,gBACR,MAAK;AAAA,gBACL,SAAS,MAAMN,EAASgC,EAAK,EAAE;AAAA,cAAA;AAAA,YAAA;AAAA,UACjC;AAAA,QAAA;AAAA,QAjCKA,EAAK;AAAA,MAAA;AAAA,KAmCb,GACH;AAAA,IAGDrB;AAAA,EAAA,GACH;AAEJ,GAEAsC,KAA6B,gBAAAC;AAAA,EACb,gBAAAC,EAAMtD,IAAY,YAAY;AAC9C;"}
@@ -0,0 +1 @@
1
+ @layer ui{.ui-upload-v1pRY{display:flex;flex-direction:column;gap:var(--hd-space-3)}.ui-upload__drop-OpNbO{display:flex;flex-direction:column;gap:var(--hd-space-1);align-items:center;text-align:center;padding:var(--hd-space-6) var(--hd-space-4);border:2px dashed var(--hd-border-strong);border-radius:var(--hd-radius-md);background-color:var(--hd-bg-raised);cursor:pointer;transition:border-color var(--hd-duration-fast) var(--hd-ease-standard),background-color var(--hd-duration-fast) var(--hd-ease-standard)}.ui-upload__drop-OpNbO:hover{border-color:var(--hd-primary);background-color:var(--hd-primary-soft)}.ui-upload__drop-OpNbO:has(.ui-upload__input-Tcg9-:focus-visible){outline:var(--ui-ring-width, 2px) solid var(--hd-focus);outline-offset:var(--ui-ring-offset, 2px)}.ui-upload__drop--dragging-YztUx{border-style:solid;border-color:var(--hd-primary-line);background-color:var(--hd-primary-soft)}.ui-upload__drop--invalid-JhwnL{border-color:var(--hd-danger-solid)}.ui-upload__drop--disabled-zyfUv{background-color:var(--hd-bg-raised);border-color:var(--hd-border);cursor:not-allowed;color:var(--hd-text-3)}@media (forced-colors: active){.ui-upload__drop--disabled-zyfUv{color:GrayText;border-color:GrayText}}.ui-upload__drop--disabled-zyfUv:hover{border-color:var(--hd-border);background-color:var(--hd-bg-raised)}.ui-upload__drop--disabled-zyfUv .ui-upload__icon-KpMkq,.ui-upload__drop--disabled-zyfUv .ui-upload__label-M4HJb,.ui-upload__drop--disabled-zyfUv .ui-upload__drag-ewSQw,.ui-upload__drop--disabled-zyfUv .ui-upload__hint-MZRJ6{color:var(--hd-text-3)}@media (forced-colors: active){.ui-upload__drop--disabled-zyfUv .ui-upload__icon-KpMkq,.ui-upload__drop--disabled-zyfUv .ui-upload__label-M4HJb,.ui-upload__drop--disabled-zyfUv .ui-upload__drag-ewSQw,.ui-upload__drop--disabled-zyfUv .ui-upload__hint-MZRJ6{color:GrayText}}@media (prefers-reduced-motion: reduce){.ui-upload__drop-OpNbO{transition:none}}.ui-upload__input-Tcg9-{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}.ui-upload__icon-KpMkq{font-size:24px;color:var(--hd-text-2)}.ui-upload__label-M4HJb{font-size:var(--hd-type-small-size);font-weight:var(--hd-font-weight-semibold);color:var(--hd-text)}.ui-upload__drag-ewSQw{font-size:var(--hd-type-caption-size);color:var(--hd-text-2)}.ui-upload__hint-MZRJ6{font-size:var(--hd-type-caption-size);color:var(--hd-text-3)}.ui-upload__error-7GkCC{display:flex;align-items:flex-start;gap:var(--hd-space-2);margin:0;font-size:var(--hd-type-caption-size);color:var(--hd-danger-fg)}.ui-upload__error-7GkCC svg{flex-shrink:0;font-size:16px;margin-top:1px}.ui-upload__list-lbViQ{display:flex;flex-direction:column;gap:var(--hd-space-2);margin:0;padding:0;list-style:none}.ui-upload__file-Znp1Q{display:flex;align-items:center;gap:var(--hd-space-3);padding:var(--hd-space-2) var(--hd-space-3);border:1px solid var(--hd-border);border-radius:var(--hd-radius-sm);background-color:var(--hd-bg-surface)}.ui-upload__file--error-wpbtA{border-color:var(--hd-danger-line);background-color:var(--hd-danger-bg)}.ui-upload__fileText-EtJcs{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}.ui-upload__fileName-ArF8-{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:var(--hd-type-small-size);color:var(--hd-text)}.ui-upload__fileMeta-i6sO1{font-size:var(--hd-type-caption-size);color:var(--hd-text-2);font-variant-numeric:tabular-nums}.ui-upload__file--error-wpbtA .ui-upload__fileMeta-i6sO1{color:var(--hd-danger-fg)}.ui-upload__progress-JY2a5{flex:0 0 120px}}
@@ -0,0 +1,2 @@
1
+ "use client";"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const r=require("react/jsx-runtime"),s=require("react"),d=require("../../helpers/class-name.helper.cjs"),m=require("../../helpers/component.helper.cjs"),b=require("../../helpers/label.helper.cjs"),f=require("../../theme/context.cjs"),e={default:{"bar":"ui-bar-b4PP4","bar__hiddenSubmit":"ui-bar__hiddenSubmit-jeCyX","bar__actions":"ui-bar__actions-rG69L","field":"ui-field-f-rvu","field--wide":"ui-field--wide-FA5gf"}},x=({onSubmit:l,children:a,actions:t,label:n,className:u,testId:c})=>{const{labels:i}=f.useUi();return r.jsxs("form",{className:d.cx(e.default.bar,u),"aria-label":b.resolveLabel("FilterBar.label",n,i==null?void 0:i.filters),"data-testid":c,onSubmit:o=>{o.preventDefault(),l()},children:[a,r.jsx("button",{type:"submit",className:e.default.bar__hiddenSubmit,tabIndex:-1,"aria-hidden":!0}),t&&r.jsx("div",{className:e.default.bar__actions,children:t})]})},_=m.named(s.memo(({children:l,isWide:a,className:t})=>r.jsx("div",{className:d.cx(e.default.field,a&&e.default["field--wide"],t),children:l})),"FilterBarField"),F=s.memo(x);exports.FilterBarField=_;exports.default=F;
2
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs","sources":["../../../src/components/FilterBar/index.tsx"],"sourcesContent":["'use client';\n\nimport { type FC, memo, type ReactNode } from 'react';\n\nimport { cx } from '../../helpers/class-name.helper';\nimport { named } from '../../helpers/component.helper';\nimport { resolveLabel } from '../../helpers/label.helper';\nimport { useUi } from '../../theme/context';\n\nimport styles from './index.module.scss';\n\ntype Props = {\n /**\n * Filtreler uygulanır. `preventDefault` bileşenin işi; çağıran yalnızca durumunu günceller\n * (sayfayı 1'e almak + aramayı uygulamak gibi).\n */\n onSubmit: () => void;\n /** Alanlar — her biri FilterBarField içinde. */\n children: ReactNode;\n /** Şeridin sağ ucundaki eylemler (\"Uygula\" düğmesi gibi). */\n actions?: ReactNode;\n /** Şeridin erişilebilir adı. */\n label?: string;\n className?: string;\n testId?: string;\n};\n\n/** Filtre şeridi. */\nconst FilterBar: FC<Props> = ({ onSubmit, children, actions, label, className, testId }) => {\n const { labels } = useUi();\n\n return (\n <form\n className={cx(styles.bar, className)}\n aria-label={resolveLabel('FilterBar.label', label, labels?.filters)}\n data-testid={testId}\n onSubmit={event => {\n event.preventDefault();\n onSubmit();\n }}\n >\n {children}\n\n {/*\n Enter'ın yedeği. Görünmez ama tarayıcı için formun varsayılan gönderme\n düğmesi: `display: none` örtük gönderimi bozmaz. Görünür \"Uygula\" düğmesi\n `actions` ile ayrıca verilebilir; ikisi aynı submit olayına düşer.\n */}\n <button type=\"submit\" className={styles.bar__hiddenSubmit} tabIndex={-1} aria-hidden />\n\n {actions && <div className={styles.bar__actions}>{actions}</div>}\n </form>\n );\n};\n\ntype FieldProps = {\n children: ReactNode;\n /** Alan kalan genişliği doldurur (arama kutusu). */\n isWide?: boolean;\n className?: string;\n};\n\n/** Şerit içindeki tek alanın genişlik sözleşmesi. */\nexport const FilterBarField: FC<FieldProps> = /*#__PURE__*/ named(\n /*#__PURE__*/ memo(({ children, isWide, className }) => (\n <div className={cx(styles.field, isWide && styles['field--wide'], className)}>{children}</div>\n )),\n 'FilterBarField',\n);\n\nexport default /*#__PURE__*/ memo(FilterBar) as typeof FilterBar;\n"],"names":["FilterBar","onSubmit","children","actions","label","className","testId","labels","useUi","jsxs","cx","styles","resolveLabel","event","jsx","FilterBarField","named","memo","isWide","index"],"mappings":"wYA2BMA,EAAuB,CAAC,CAAE,SAAAC,EAAU,SAAAC,EAAU,QAAAC,EAAS,MAAAC,EAAO,UAAAC,EAAW,OAAAC,KAAa,CAC1F,KAAM,CAAE,OAAAC,CAAA,EAAWC,QAAA,EAEnB,OACEC,EAAAA,KAAC,OAAA,CACC,UAAWC,EAAAA,GAAGC,UAAO,IAAKN,CAAS,EACnC,aAAYO,EAAAA,aAAa,kBAAmBR,EAAOG,GAAA,YAAAA,EAAQ,OAAO,EAClE,cAAaD,EACb,SAAUO,GAAS,CACjBA,EAAM,eAAA,EACNZ,EAAA,CACF,EAEC,SAAA,CAAAC,EAODY,EAAAA,IAAC,SAAA,CAAO,KAAK,SAAS,UAAWH,UAAO,kBAAmB,SAAU,GAAI,cAAW,EAAA,CAAC,EAEpFR,GAAWW,EAAAA,IAAC,MAAA,CAAI,UAAWH,EAAAA,QAAO,aAAe,SAAAR,CAAA,CAAQ,CAAA,CAAA,CAAA,CAGhE,EAUaY,EAA+CC,EAAAA,MAC5CC,OAAK,CAAC,CAAE,SAAAf,EAAU,OAAAgB,EAAQ,UAAAb,CAAA,UACrC,MAAA,CAAI,UAAWK,EAAAA,GAAGC,UAAO,MAAOO,GAAUP,EAAAA,QAAO,aAAa,EAAGN,CAAS,EAAI,SAAAH,EAAS,CACzF,EACD,gBACF,EAEAiB,SAAkCnB,CAAS"}
@@ -0,0 +1,28 @@
1
+ import { FC, ReactNode } from 'react';
2
+ type Props = {
3
+ /**
4
+ * Filtreler uygulanır. `preventDefault` bileşenin işi; çağıran yalnızca durumunu günceller
5
+ * (sayfayı 1'e almak + aramayı uygulamak gibi).
6
+ */
7
+ onSubmit: () => void;
8
+ /** Alanlar — her biri FilterBarField içinde. */
9
+ children: ReactNode;
10
+ /** Şeridin sağ ucundaki eylemler ("Uygula" düğmesi gibi). */
11
+ actions?: ReactNode;
12
+ /** Şeridin erişilebilir adı. */
13
+ label?: string;
14
+ className?: string;
15
+ testId?: string;
16
+ };
17
+ /** Filtre şeridi. */
18
+ declare const FilterBar: FC<Props>;
19
+ type FieldProps = {
20
+ children: ReactNode;
21
+ /** Alan kalan genişliği doldurur (arama kutusu). */
22
+ isWide?: boolean;
23
+ className?: string;
24
+ };
25
+ /** Şerit içindeki tek alanın genişlik sözleşmesi. */
26
+ export declare const FilterBarField: FC<FieldProps>;
27
+ declare const _default: typeof FilterBar;
28
+ export default _default;
@@ -0,0 +1,35 @@
1
+ "use client";
2
+ import { jsxs as c, jsx as m } from "react/jsx-runtime";
3
+ import { memo as o } from "react";
4
+ import { cx as l } from "../../helpers/class-name.helper.js";
5
+ import { named as b } from "../../helpers/component.helper.js";
6
+ import { resolveLabel as p } from "../../helpers/label.helper.js";
7
+ import { useUi as u } from "../../theme/context.js";
8
+ const e = {"bar":"ui-bar-b4PP4","bar__hiddenSubmit":"ui-bar__hiddenSubmit-jeCyX","bar__actions":"ui-bar__actions-rG69L","field":"ui-field-f-rvu","field--wide":"ui-field--wide-FA5gf"};
9
+ const x = ({ onSubmit: t, children: i, actions: r, label: s, className: d, testId: n }) => {
10
+ const { labels: a } = u();
11
+ return /* @__PURE__ */ c(
12
+ "form",
13
+ {
14
+ className: l(e.bar, d),
15
+ "aria-label": p("FilterBar.label", s, a == null ? void 0 : a.filters),
16
+ "data-testid": n,
17
+ onSubmit: (f) => {
18
+ f.preventDefault(), t();
19
+ },
20
+ children: [
21
+ i,
22
+ /* @__PURE__ */ m("button", { type: "submit", className: e.bar__hiddenSubmit, tabIndex: -1, "aria-hidden": !0 }),
23
+ r && /* @__PURE__ */ m("div", { className: e.bar__actions, children: r })
24
+ ]
25
+ }
26
+ );
27
+ }, y = /* @__PURE__ */ b(
28
+ /* @__PURE__ */ o(({ children: t, isWide: i, className: r }) => /* @__PURE__ */ m("div", { className: l(e.field, i && e["field--wide"], r), children: t })),
29
+ "FilterBarField"
30
+ ), S = /* @__PURE__ */ o(x);
31
+ export {
32
+ y as FilterBarField,
33
+ S as default
34
+ };
35
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../src/components/FilterBar/index.tsx"],"sourcesContent":["'use client';\n\nimport { type FC, memo, type ReactNode } from 'react';\n\nimport { cx } from '../../helpers/class-name.helper';\nimport { named } from '../../helpers/component.helper';\nimport { resolveLabel } from '../../helpers/label.helper';\nimport { useUi } from '../../theme/context';\n\nimport styles from './index.module.scss';\n\ntype Props = {\n /**\n * Filtreler uygulanır. `preventDefault` bileşenin işi; çağıran yalnızca durumunu günceller\n * (sayfayı 1'e almak + aramayı uygulamak gibi).\n */\n onSubmit: () => void;\n /** Alanlar — her biri FilterBarField içinde. */\n children: ReactNode;\n /** Şeridin sağ ucundaki eylemler (\"Uygula\" düğmesi gibi). */\n actions?: ReactNode;\n /** Şeridin erişilebilir adı. */\n label?: string;\n className?: string;\n testId?: string;\n};\n\n/** Filtre şeridi. */\nconst FilterBar: FC<Props> = ({ onSubmit, children, actions, label, className, testId }) => {\n const { labels } = useUi();\n\n return (\n <form\n className={cx(styles.bar, className)}\n aria-label={resolveLabel('FilterBar.label', label, labels?.filters)}\n data-testid={testId}\n onSubmit={event => {\n event.preventDefault();\n onSubmit();\n }}\n >\n {children}\n\n {/*\n Enter'ın yedeği. Görünmez ama tarayıcı için formun varsayılan gönderme\n düğmesi: `display: none` örtük gönderimi bozmaz. Görünür \"Uygula\" düğmesi\n `actions` ile ayrıca verilebilir; ikisi aynı submit olayına düşer.\n */}\n <button type=\"submit\" className={styles.bar__hiddenSubmit} tabIndex={-1} aria-hidden />\n\n {actions && <div className={styles.bar__actions}>{actions}</div>}\n </form>\n );\n};\n\ntype FieldProps = {\n children: ReactNode;\n /** Alan kalan genişliği doldurur (arama kutusu). */\n isWide?: boolean;\n className?: string;\n};\n\n/** Şerit içindeki tek alanın genişlik sözleşmesi. */\nexport const FilterBarField: FC<FieldProps> = /*#__PURE__*/ named(\n /*#__PURE__*/ memo(({ children, isWide, className }) => (\n <div className={cx(styles.field, isWide && styles['field--wide'], className)}>{children}</div>\n )),\n 'FilterBarField',\n);\n\nexport default /*#__PURE__*/ memo(FilterBar) as typeof FilterBar;\n"],"names":["FilterBar","onSubmit","children","actions","label","className","testId","labels","useUi","jsxs","cx","styles","resolveLabel","event","jsx","FilterBarField","named","memo","isWide","index"],"mappings":";;;;;;;;AA2BA,MAAMA,IAAuB,CAAC,EAAE,UAAAC,GAAU,UAAAC,GAAU,SAAAC,GAAS,OAAAC,GAAO,WAAAC,GAAW,QAAAC,QAAa;AAC1F,QAAM,EAAE,QAAAC,EAAA,IAAWC,EAAA;AAEnB,SACE,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWC,EAAGC,EAAO,KAAKN,CAAS;AAAA,MACnC,cAAYO,EAAa,mBAAmBR,GAAOG,KAAA,gBAAAA,EAAQ,OAAO;AAAA,MAClE,eAAaD;AAAA,MACb,UAAU,CAAAO,MAAS;AACjB,QAAAA,EAAM,eAAA,GACNZ,EAAA;AAAA,MACF;AAAA,MAEC,UAAA;AAAA,QAAAC;AAAA,QAOD,gBAAAY,EAAC,UAAA,EAAO,MAAK,UAAS,WAAWH,EAAO,mBAAmB,UAAU,IAAI,eAAW,GAAA,CAAC;AAAA,QAEpFR,KAAW,gBAAAW,EAAC,OAAA,EAAI,WAAWH,EAAO,cAAe,UAAAR,EAAA,CAAQ;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGhE,GAUaY,IAA+C,gBAAAC;AAAA,EAC5C,gBAAAC,EAAK,CAAC,EAAE,UAAAf,GAAU,QAAAgB,GAAQ,WAAAb,EAAA,wBACrC,OAAA,EAAI,WAAWK,EAAGC,EAAO,OAAOO,KAAUP,EAAO,aAAa,GAAGN,CAAS,GAAI,UAAAH,GAAS,CACzF;AAAA,EACD;AACF,GAEAiB,sBAAkCnB,CAAS;"}
@@ -0,0 +1 @@
1
+ @layer ui{.ui-bar-b4PP4{display:flex;flex-wrap:wrap;align-items:flex-end;gap:var(--hd-space-3);background-color:var(--hd-bg-surface);border:1px solid var(--hd-border);border-radius:var(--hd-radius-sm);padding:var(--hd-space-3)}.ui-bar__hiddenSubmit-jeCyX{display:none}.ui-bar__actions-rG69L{display:flex;align-items:center;gap:var(--hd-space-2);margin-inline-start:auto}.ui-field-f-rvu{flex:0 1 220px;min-width:0;--ui-field-label-order: -2;--ui-field-message-order: -1}.ui-field--wide-FA5gf{flex:1 1 240px}@media (max-width: 640px){.ui-field-f-rvu,.ui-field--wide-FA5gf{flex-basis:100%}.ui-bar__actions-rG69L{width:100%}.ui-bar__actions-rG69L>*{flex:1 1 auto}}}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const r=require("react/jsx-runtime"),c=require("react"),q=require("../../helpers/class-name.helper.cjs"),I=require("../../helpers/component.helper.cjs"),_=require("../Link/index.cjs"),t={default:{"iconButton":"ui-iconButton-JdtwM","iconButton--inert":"ui-iconButton--inert-atNrh","iconButton--round":"ui-iconButton--round-RNv7S","iconButton--sm":"ui-iconButton--sm-wE6zE","iconButton--md":"ui-iconButton--md-iTNNS","iconButton--ghost":"ui-iconButton--ghost-w-8K3","iconButton--outline":"ui-iconButton--outline-vEhcY","iconButton--solid":"ui-iconButton--solid-NUszP","iconButton--accent":"ui-iconButton--accent-SDyQA","iconButton--danger":"ui-iconButton--danger-xKkEA"}},h=c.forwardRef(({icon:o,label:a,variant:l="ghost",size:s="md",shape:m="rounded",className:b,type:f="button",href:u,linkProps:x,testId:d,...e},B)=>{const i=q.cx(t.default.iconButton,t.default[`iconButton--${l}`],t.default[`iconButton--${s}`],m==="round"&&t.default["iconButton--round"],b),n=!!e.disabled;return u?r.jsx(_.default,{...e,href:u,className:i,"aria-label":a,"aria-disabled":n||void 0,tabIndex:n?-1:e.tabIndex,onClick:n?void 0:e.onClick,"data-testid":d,...x,children:o}):r.jsx("button",{ref:B,type:f,className:i,"aria-label":a,"data-testid":d,...e,children:o})}),j=c.memo(I.named(h,"IconButton"));exports.default=j;
2
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs","sources":["../../../src/components/IconButton/index.tsx"],"sourcesContent":["import {\n type AnchorHTMLAttributes,\n type ButtonHTMLAttributes,\n forwardRef,\n memo,\n type MouseEventHandler,\n type ReactNode,\n} from 'react';\n\nimport { cx } from '../../helpers/class-name.helper';\nimport { named } from '../../helpers/component.helper';\nimport type { UiLinkExtraProps } from '../../types/link.type';\nimport UiLink from '../Link';\n\nimport styles from './index.module.scss';\n\nexport type IconButtonVariant = 'ghost' | 'outline' | 'solid' | 'accent' | 'danger';\n\n/** Köşe biçimi. `round` tam daire — sohbet girdisindeki gönder / durdur gibi. Ölçü değişmez. */\nexport type IconButtonShape = 'rounded' | 'round';\n\ntype Props = ButtonHTMLAttributes<HTMLButtonElement> & {\n icon: ReactNode;\n /** Görsel etiketi olmayan düğmenin erişilebilir adı — ZORUNLU. */\n label: string;\n /** `accent` (coral) is for the conversion action only: download, try, subscribe. */\n variant?: IconButtonVariant;\n size?: 'sm' | 'md';\n shape?: IconButtonShape;\n /** Verilirse öğe bir bağlantı olarak çizilir. */\n href?: string;\n /** Yönlendiriciye geçirilecek ek props. */\n linkProps?: UiLinkExtraProps;\n testId?: string;\n};\n\n/** Yalnızca ikon taşıyan düğme. */\nconst IconButton = /*#__PURE__*/ forwardRef<HTMLButtonElement, Props>(\n (\n {\n icon,\n label,\n variant = 'ghost',\n size = 'md',\n shape = 'rounded',\n className,\n type = 'button',\n href,\n linkProps,\n testId,\n ...rest\n },\n ref,\n ) => {\n const classNames = cx(\n styles.iconButton,\n styles[`iconButton--${variant}`],\n styles[`iconButton--${size}`],\n shape === 'round' && styles['iconButton--round'],\n className,\n );\n\n /*\n * Onceki bicim yalnizca `href`/`className`/`aria-label`/`title`/`testId` iletiyordu\n * ⚠ BAGLANTI DALI DA `...rest` YAYAR — `Button` ile ayni ariza.\n */\n const isInert = Boolean(rest.disabled);\n\n if (href)\n return (\n <UiLink\n {...(rest as AnchorHTMLAttributes<HTMLAnchorElement>)}\n href={href}\n className={classNames}\n aria-label={label}\n aria-disabled={isInert || undefined}\n tabIndex={isInert ? -1 : rest.tabIndex}\n onClick={\n isInert\n ? undefined\n : (rest.onClick as unknown as MouseEventHandler<HTMLAnchorElement> | undefined)\n }\n data-testid={testId}\n {...linkProps}\n >\n {icon}\n </UiLink>\n );\n\n return (\n <button\n ref={ref}\n type={type}\n className={classNames}\n aria-label={label}\n data-testid={testId}\n {...rest}\n >\n {icon}\n </button>\n );\n },\n);\n\nexport default /*#__PURE__*/ memo(\n /*#__PURE__*/ named(IconButton, 'IconButton'),\n) as typeof IconButton;\n"],"names":["IconButton","forwardRef","icon","label","variant","size","shape","className","type","href","linkProps","testId","rest","ref","classNames","cx","styles","isInert","jsx","UiLink","memo","named"],"mappings":"yUAqCMA,EAA2BC,EAAAA,WAC/B,CACE,CACE,KAAAC,EACA,MAAAC,EACA,QAAAC,EAAU,QACV,KAAAC,EAAO,KACP,MAAAC,EAAQ,UACR,UAAAC,EACA,KAAAC,EAAO,SACP,KAAAC,EACA,UAAAC,EACA,OAAAC,EACA,GAAGC,CAAA,EAELC,IACG,CACH,MAAMC,EAAaC,EAAAA,GACjBC,EAAAA,QAAO,WACPA,EAAAA,QAAO,eAAeZ,CAAO,EAAE,EAC/BY,EAAAA,QAAO,eAAeX,CAAI,EAAE,EAC5BC,IAAU,SAAWU,EAAAA,QAAO,mBAAmB,EAC/CT,CAAA,EAOIU,EAAU,EAAQL,EAAK,SAE7B,OAAIH,EAEAS,EAAAA,IAACC,EAAAA,QAAA,CACE,GAAIP,EACL,KAAAH,EACA,UAAWK,EACX,aAAYX,EACZ,gBAAec,GAAW,OAC1B,SAAUA,EAAU,GAAKL,EAAK,SAC9B,QACEK,EACI,OACCL,EAAK,QAEZ,cAAaD,EACZ,GAAGD,EAEH,SAAAR,CAAA,CAAA,EAKLgB,EAAAA,IAAC,SAAA,CACC,IAAAL,EACA,KAAAL,EACA,UAAWM,EACX,aAAYX,EACZ,cAAaQ,EACZ,GAAGC,EAEH,SAAAV,CAAA,CAAA,CAGP,CACF,EAEAF,EAA6BoB,EAAAA,KACbC,EAAAA,MAAMrB,EAAY,YAAY,CAC9C"}
@@ -0,0 +1,22 @@
1
+ import { ButtonHTMLAttributes, ReactNode } from 'react';
2
+ import { UiLinkExtraProps } from '../../types/link.type';
3
+ export type IconButtonVariant = 'ghost' | 'outline' | 'solid' | 'accent' | 'danger';
4
+ /** Köşe biçimi. `round` tam daire — sohbet girdisindeki gönder / durdur gibi. Ölçü değişmez. */
5
+ export type IconButtonShape = 'rounded' | 'round';
6
+ /** Yalnızca ikon taşıyan düğme. */
7
+ declare const IconButton: import('react').ForwardRefExoticComponent<ButtonHTMLAttributes<HTMLButtonElement> & {
8
+ icon: ReactNode;
9
+ /** Görsel etiketi olmayan düğmenin erişilebilir adı — ZORUNLU. */
10
+ label: string;
11
+ /** `accent` (coral) is for the conversion action only: download, try, subscribe. */
12
+ variant?: IconButtonVariant;
13
+ size?: "sm" | "md";
14
+ shape?: IconButtonShape;
15
+ /** Verilirse öğe bir bağlantı olarak çizilir. */
16
+ href?: string;
17
+ /** Yönlendiriciye geçirilecek ek props. */
18
+ linkProps?: UiLinkExtraProps;
19
+ testId?: string;
20
+ } & import('react').RefAttributes<HTMLButtonElement>>;
21
+ declare const _default: typeof IconButton;
22
+ export default _default;
@@ -0,0 +1,61 @@
1
+ import { jsx as c } from "react/jsx-runtime";
2
+ import { memo as p, forwardRef as x } from "react";
3
+ import { cx as I } from "../../helpers/class-name.helper.js";
4
+ import { named as k } from "../../helpers/component.helper.js";
5
+ import N from "../Link/index.js";
6
+ const t = {"iconButton":"ui-iconButton-JdtwM","iconButton--inert":"ui-iconButton--inert-atNrh","iconButton--round":"ui-iconButton--round-RNv7S","iconButton--sm":"ui-iconButton--sm-wE6zE","iconButton--md":"ui-iconButton--md-iTNNS","iconButton--ghost":"ui-iconButton--ghost-w-8K3","iconButton--outline":"ui-iconButton--outline-vEhcY","iconButton--solid":"ui-iconButton--solid-NUszP","iconButton--accent":"ui-iconButton--accent-SDyQA","iconButton--danger":"ui-iconButton--danger-xKkEA"};
7
+ const $ = /* @__PURE__ */ x(
8
+ ({
9
+ icon: a,
10
+ label: i,
11
+ variant: e = "ghost",
12
+ size: s = "md",
13
+ shape: u = "rounded",
14
+ className: l,
15
+ type: f = "button",
16
+ href: r,
17
+ linkProps: B,
18
+ testId: d,
19
+ ...o
20
+ }, b) => {
21
+ const m = I(
22
+ t.iconButton,
23
+ t[`iconButton--${e}`],
24
+ t[`iconButton--${s}`],
25
+ u === "round" && t["iconButton--round"],
26
+ l
27
+ ), n = !!o.disabled;
28
+ return r ? /* @__PURE__ */ c(
29
+ N,
30
+ {
31
+ ...o,
32
+ href: r,
33
+ className: m,
34
+ "aria-label": i,
35
+ "aria-disabled": n || void 0,
36
+ tabIndex: n ? -1 : o.tabIndex,
37
+ onClick: n ? void 0 : o.onClick,
38
+ "data-testid": d,
39
+ ...B,
40
+ children: a
41
+ }
42
+ ) : /* @__PURE__ */ c(
43
+ "button",
44
+ {
45
+ ref: b,
46
+ type: f,
47
+ className: m,
48
+ "aria-label": i,
49
+ "data-testid": d,
50
+ ...o,
51
+ children: a
52
+ }
53
+ );
54
+ }
55
+ ), y = /* @__PURE__ */ p(
56
+ /* @__PURE__ */ k($, "IconButton")
57
+ );
58
+ export {
59
+ y as default
60
+ };
61
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../src/components/IconButton/index.tsx"],"sourcesContent":["import {\n type AnchorHTMLAttributes,\n type ButtonHTMLAttributes,\n forwardRef,\n memo,\n type MouseEventHandler,\n type ReactNode,\n} from 'react';\n\nimport { cx } from '../../helpers/class-name.helper';\nimport { named } from '../../helpers/component.helper';\nimport type { UiLinkExtraProps } from '../../types/link.type';\nimport UiLink from '../Link';\n\nimport styles from './index.module.scss';\n\nexport type IconButtonVariant = 'ghost' | 'outline' | 'solid' | 'accent' | 'danger';\n\n/** Köşe biçimi. `round` tam daire — sohbet girdisindeki gönder / durdur gibi. Ölçü değişmez. */\nexport type IconButtonShape = 'rounded' | 'round';\n\ntype Props = ButtonHTMLAttributes<HTMLButtonElement> & {\n icon: ReactNode;\n /** Görsel etiketi olmayan düğmenin erişilebilir adı — ZORUNLU. */\n label: string;\n /** `accent` (coral) is for the conversion action only: download, try, subscribe. */\n variant?: IconButtonVariant;\n size?: 'sm' | 'md';\n shape?: IconButtonShape;\n /** Verilirse öğe bir bağlantı olarak çizilir. */\n href?: string;\n /** Yönlendiriciye geçirilecek ek props. */\n linkProps?: UiLinkExtraProps;\n testId?: string;\n};\n\n/** Yalnızca ikon taşıyan düğme. */\nconst IconButton = /*#__PURE__*/ forwardRef<HTMLButtonElement, Props>(\n (\n {\n icon,\n label,\n variant = 'ghost',\n size = 'md',\n shape = 'rounded',\n className,\n type = 'button',\n href,\n linkProps,\n testId,\n ...rest\n },\n ref,\n ) => {\n const classNames = cx(\n styles.iconButton,\n styles[`iconButton--${variant}`],\n styles[`iconButton--${size}`],\n shape === 'round' && styles['iconButton--round'],\n className,\n );\n\n /*\n * Onceki bicim yalnizca `href`/`className`/`aria-label`/`title`/`testId` iletiyordu\n * ⚠ BAGLANTI DALI DA `...rest` YAYAR — `Button` ile ayni ariza.\n */\n const isInert = Boolean(rest.disabled);\n\n if (href)\n return (\n <UiLink\n {...(rest as AnchorHTMLAttributes<HTMLAnchorElement>)}\n href={href}\n className={classNames}\n aria-label={label}\n aria-disabled={isInert || undefined}\n tabIndex={isInert ? -1 : rest.tabIndex}\n onClick={\n isInert\n ? undefined\n : (rest.onClick as unknown as MouseEventHandler<HTMLAnchorElement> | undefined)\n }\n data-testid={testId}\n {...linkProps}\n >\n {icon}\n </UiLink>\n );\n\n return (\n <button\n ref={ref}\n type={type}\n className={classNames}\n aria-label={label}\n data-testid={testId}\n {...rest}\n >\n {icon}\n </button>\n );\n },\n);\n\nexport default /*#__PURE__*/ memo(\n /*#__PURE__*/ named(IconButton, 'IconButton'),\n) as typeof IconButton;\n"],"names":["IconButton","forwardRef","icon","label","variant","size","shape","className","type","href","linkProps","testId","rest","ref","classNames","cx","styles","isInert","jsx","UiLink","IconButton$1","memo","named"],"mappings":";;;;;;AAqCA,MAAMA,IAA2B,gBAAAC;AAAA,EAC/B,CACE;AAAA,IACE,MAAAC;AAAA,IACA,OAAAC;AAAA,IACA,SAAAC,IAAU;AAAA,IACV,MAAAC,IAAO;AAAA,IACP,OAAAC,IAAQ;AAAA,IACR,WAAAC;AAAA,IACA,MAAAC,IAAO;AAAA,IACP,MAAAC;AAAA,IACA,WAAAC;AAAA,IACA,QAAAC;AAAA,IACA,GAAGC;AAAA,EAAA,GAELC,MACG;AACH,UAAMC,IAAaC;AAAA,MACjBC,EAAO;AAAA,MACPA,EAAO,eAAeZ,CAAO,EAAE;AAAA,MAC/BY,EAAO,eAAeX,CAAI,EAAE;AAAA,MAC5BC,MAAU,WAAWU,EAAO,mBAAmB;AAAA,MAC/CT;AAAA,IAAA,GAOIU,IAAU,EAAQL,EAAK;AAE7B,WAAIH,IAEA,gBAAAS;AAAA,MAACC;AAAA,MAAA;AAAA,QACE,GAAIP;AAAA,QACL,MAAAH;AAAA,QACA,WAAWK;AAAA,QACX,cAAYX;AAAA,QACZ,iBAAec,KAAW;AAAA,QAC1B,UAAUA,IAAU,KAAKL,EAAK;AAAA,QAC9B,SACEK,IACI,SACCL,EAAK;AAAA,QAEZ,eAAaD;AAAA,QACZ,GAAGD;AAAA,QAEH,UAAAR;AAAA,MAAA;AAAA,IAAA,IAKL,gBAAAgB;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,KAAAL;AAAA,QACA,MAAAL;AAAA,QACA,WAAWM;AAAA,QACX,cAAYX;AAAA,QACZ,eAAaQ;AAAA,QACZ,GAAGC;AAAA,QAEH,UAAAV;AAAA,MAAA;AAAA,IAAA;AAAA,EAGP;AACF,GAEAkB,IAA6B,gBAAAC;AAAA,EACb,gBAAAC,EAAMtB,GAAY,YAAY;AAC9C;"}
@@ -0,0 +1 @@
1
+ @layer ui{.ui-iconButton-JdtwM{position:relative;display:inline-flex;text-decoration:none;align-items:center;justify-content:center;border:1px solid transparent;border-radius:var(--hd-radius-sm);background:none;cursor:pointer;color:var(--hd-text-2);transition:background-color var(--hd-duration-fast) var(--hd-ease-standard),border-color var(--hd-duration-fast) var(--hd-ease-standard),color var(--hd-duration-fast) var(--hd-ease-standard)}.ui-iconButton-JdtwM:focus-visible{outline:var(--ui-ring-width, 2px) solid var(--hd-focus);outline-offset:var(--ui-ring-offset, 2px)}.ui-iconButton-JdtwM:disabled{cursor:not-allowed;color:var(--hd-text-3)}@media (prefers-reduced-motion: reduce){.ui-iconButton-JdtwM{transition:none}}.ui-iconButton-JdtwM{position:relative}.ui-iconButton-JdtwM:after{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:max(100%,44px);height:max(100%,44px)}.ui-iconButton--inert-atNrh{pointer-events:none}.ui-iconButton--round-RNv7S{border-radius:var(--hd-radius-pill)}.ui-iconButton--sm-wE6zE{width:32px;height:32px;font-size:16px}.ui-iconButton--md-iTNNS{width:40px;height:40px;font-size:18px}.ui-iconButton--ghost-w-8K3:hover:not(:disabled){background-color:color-mix(in srgb,var(--hd-text) 8%,transparent);color:var(--hd-text)}.ui-iconButton--outline-vEhcY{border-color:var(--hd-border-strong);background-color:var(--hd-bg-surface)}.ui-iconButton--outline-vEhcY:hover:not(:disabled){border-color:var(--hd-text-3);color:var(--hd-text)}.ui-iconButton--outline-vEhcY:disabled{background-color:var(--hd-bg-raised);border-color:var(--hd-border)}.ui-iconButton--solid-NUszP{background-color:var(--hd-primary);border-color:var(--hd-primary);color:var(--hd-on-primary)}.ui-iconButton--solid-NUszP:hover:not(:disabled){background-color:var(--hd-primary-hover)}.ui-iconButton--solid-NUszP:disabled{background-color:var(--hd-bg-disabled);border-color:transparent;color:var(--hd-text-disabled)}.ui-iconButton--accent-SDyQA{background-color:var(--hd-accent);color:var(--hd-on-accent)}.ui-iconButton--accent-SDyQA:hover:not(:disabled){background-color:var(--hd-accent-hover)}.ui-iconButton--accent-SDyQA:active:not(:disabled){background-color:var(--hd-accent-active)}.ui-iconButton--accent-SDyQA:disabled{background-color:var(--hd-bg-disabled);color:var(--hd-text-disabled)}.ui-iconButton--danger-xKkEA{border-color:var(--hd-border-strong);background-color:var(--hd-bg-surface)}.ui-iconButton--danger-xKkEA:not(:disabled){color:var(--hd-danger-fg)}.ui-iconButton--danger-xKkEA:hover:not(:disabled){border-color:var(--hd-danger-solid);background-color:var(--hd-danger-bg)}}
@@ -0,0 +1,2 @@
1
+ "use client";"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const s=require("react/jsx-runtime"),t=require("react"),w=require("../../helpers/class-name.helper.cjs"),N=require("../../helpers/component.helper.cjs"),e={default:{"wrapper":"ui-wrapper-IAI4E","wrapper__prefix":"ui-wrapper__prefix-XKDlV","wrapper__suffix":"ui-wrapper__suffix-lT35q","input":"ui-input-pIS2u","input--sm":"ui-input--sm-v1rrv","input--hasPrefix":"ui-input--hasPrefix-nsrWh","input--hasSuffix":"ui-input--hasSuffix-OrE5A","input--technical":"ui-input--technical---DCD"}},P=typeof window>"u"?()=>{}:t.useLayoutEffect,g=t.forwardRef(({prefix:o,suffix:a,isTechnical:R,size:y="md",className:v,testId:_,...b},j)=>{const f=t.useRef(null),c=t.useRef(null),l=t.useRef(null),n=!!o,u=!!a;return P(()=>{const i=f.current;if(!i)return;const d=[[c,"--ui-input-prefix-width"],[l,"--ui-input-suffix-width"]],p=()=>{var r;for(const[q,m]of d){const x=((r=q.current)==null?void 0:r.getBoundingClientRect().width)??0;x>0?i.style.setProperty(m,`${Math.ceil(x)}px`):i.style.removeProperty(m)}};if(p(),typeof ResizeObserver>"u")return;const h=new ResizeObserver(p);for(const[r]of d)r.current&&h.observe(r.current);return()=>h.disconnect()},[n,u]),s.jsxs("span",{ref:f,className:w.cx(e.default.wrapper,v),children:[n&&s.jsx("span",{ref:c,className:e.default.wrapper__prefix,"aria-hidden":!0,children:o}),s.jsx("input",{ref:j,className:w.cx(e.default.input,y==="sm"&&e.default["input--sm"],n&&e.default["input--hasPrefix"],u&&e.default["input--hasSuffix"],R&&e.default["input--technical"]),"data-testid":_,...b}),u&&s.jsx("span",{ref:l,className:e.default.wrapper__suffix,"aria-hidden":!0,children:a})]})}),I=t.memo(N.named(g,"Input"));exports.default=I;
2
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs","sources":["../../../src/components/Input/index.tsx"],"sourcesContent":["'use client';\n\nimport {\n forwardRef,\n type InputHTMLAttributes,\n memo,\n type ReactNode,\n useLayoutEffect,\n useRef,\n} from 'react';\n\nimport { cx } from '../../helpers/class-name.helper';\nimport { named } from '../../helpers/component.helper';\n\nimport styles from './index.module.scss';\n\n/*\n * `prefix` HTML'in RDFa nitelikleri arasinda yer alir ve React onu `string` olarak tanimlar.\n * `size` yerel ozellikte karakter genisligi (`number`); burada olcu adi — genislik CSS'ten gelir.\n */\ntype Props = Omit<InputHTMLAttributes<HTMLInputElement>, 'prefix' | 'size'> & {\n /** Solda gösterilen ikon veya ön ek (arama simgesi, para birimi). */\n prefix?: ReactNode;\n /** Sağda gösterilen ikon veya birim (göz simgesi, \"kg\"). */\n suffix?: ReactNode;\n /** Teknik veri: */\n isTechnical?: boolean;\n /** `sm` yoğun şeritler içindir (araç çubuğu, `Select size=\"sm\"` yanında); varsayılan form ölçüsü `md`. */\n size?: 'sm' | 'md';\n testId?: string;\n};\n\n/** `useLayoutEffect` sunucuda uyarı basar; orada etkisiz bir eşdeğer. */\nconst useIsomorphicLayoutEffect = typeof window === 'undefined' ? () => {} : useLayoutEffect;\n\n/** Metin girdisi. */\nconst Input = /*#__PURE__*/ forwardRef<HTMLInputElement, Props>(\n ({ prefix, suffix, isTechnical, size = 'md', className, testId, ...rest }, ref) => {\n const wrapperRef = useRef<HTMLSpanElement>(null);\n const prefixRef = useRef<HTMLSpanElement>(null);\n const suffixRef = useRef<HTMLSpanElement>(null);\n /*\n * `Boolean(...)`: `prefix` bir `ReactNode` ve `0` da gecerli bir deger — `prefix &&`\n * ifadesi o durumda dize degil sayi donuyordu.\n */\n const hasPrefix = Boolean(prefix);\n const hasSuffix = Boolean(suffix);\n\n /*\n * Onek/sonekin genisligi olculup sarmalayiciya yazilir; girdinin ic payi buradan hesaplanir\n * (`--hasPrefix`). Boyamadan once olculur, icerik ya da yazi tipi degisince `ResizeObserver`\n * yeniden yazar. Olcum yokken (sunucu cizimi, jsdom) CSS ikon olcusunu varsayar.\n */\n useIsomorphicLayoutEffect(() => {\n const wrapper = wrapperRef.current;\n if (!wrapper) return undefined;\n const slots = [\n [prefixRef, '--ui-input-prefix-width'],\n [suffixRef, '--ui-input-suffix-width'],\n ] as const;\n const write = () => {\n for (const [slot, property] of slots) {\n const width = slot.current?.getBoundingClientRect().width ?? 0;\n if (width > 0) wrapper.style.setProperty(property, `${Math.ceil(width)}px`);\n else wrapper.style.removeProperty(property);\n }\n };\n write();\n if (typeof ResizeObserver === 'undefined') return undefined;\n const observer = new ResizeObserver(write);\n for (const [slot] of slots) if (slot.current) observer.observe(slot.current);\n return () => observer.disconnect();\n }, [hasPrefix, hasSuffix]);\n\n return (\n <span ref={wrapperRef} className={cx(styles.wrapper, className)}>\n {hasPrefix && (\n <span ref={prefixRef} className={styles.wrapper__prefix} aria-hidden>\n {prefix}\n </span>\n )}\n <input\n ref={ref}\n className={cx(\n styles.input,\n size === 'sm' && styles['input--sm'],\n hasPrefix && styles['input--hasPrefix'],\n hasSuffix && styles['input--hasSuffix'],\n isTechnical && styles['input--technical'],\n )}\n data-testid={testId}\n {...rest}\n />\n {hasSuffix && (\n <span ref={suffixRef} className={styles.wrapper__suffix} aria-hidden>\n {suffix}\n </span>\n )}\n </span>\n );\n },\n);\n\nexport default /*#__PURE__*/ memo(/*#__PURE__*/ named(Input, 'Input')) as typeof Input;\n"],"names":["useIsomorphicLayoutEffect","useLayoutEffect","Input","forwardRef","prefix","suffix","isTechnical","size","className","testId","rest","ref","wrapperRef","useRef","prefixRef","suffixRef","hasPrefix","hasSuffix","wrapper","slots","write","slot","property","width","_a","observer","jsxs","cx","styles","jsx","memo","named"],"mappings":"uTAgCMA,EAA4B,OAAO,OAAW,IAAc,IAAM,CAAC,EAAIC,EAAAA,gBAGvEC,EAAsBC,EAAAA,WAC1B,CAAC,CAAE,OAAAC,EAAQ,OAAAC,EAAQ,YAAAC,EAAa,KAAAC,EAAO,KAAM,UAAAC,EAAW,OAAAC,EAAQ,GAAGC,CAAA,EAAQC,IAAQ,CACjF,MAAMC,EAAaC,EAAAA,OAAwB,IAAI,EACzCC,EAAYD,EAAAA,OAAwB,IAAI,EACxCE,EAAYF,EAAAA,OAAwB,IAAI,EAKxCG,EAAY,EAAQZ,EACpBa,EAAY,EAAQZ,EAO1B,OAAAL,EAA0B,IAAM,CAC9B,MAAMkB,EAAUN,EAAW,QAC3B,GAAI,CAACM,EAAS,OACd,MAAMC,EAAQ,CACZ,CAACL,EAAW,yBAAyB,EACrC,CAACC,EAAW,yBAAyB,CAAA,EAEjCK,EAAQ,IAAM,OAClB,SAAW,CAACC,EAAMC,CAAQ,IAAKH,EAAO,CACpC,MAAMI,IAAQC,EAAAH,EAAK,UAAL,YAAAG,EAAc,wBAAwB,QAAS,EACzDD,EAAQ,EAAGL,EAAQ,MAAM,YAAYI,EAAU,GAAG,KAAK,KAAKC,CAAK,CAAC,IAAI,EACrEL,EAAQ,MAAM,eAAeI,CAAQ,CAC5C,CACF,EAEA,GADAF,EAAA,EACI,OAAO,eAAmB,IAAa,OAC3C,MAAMK,EAAW,IAAI,eAAeL,CAAK,EACzC,SAAW,CAACC,CAAI,IAAKF,EAAWE,EAAK,SAASI,EAAS,QAAQJ,EAAK,OAAO,EAC3E,MAAO,IAAMI,EAAS,WAAA,CACxB,EAAG,CAACT,EAAWC,CAAS,CAAC,EAGvBS,OAAC,QAAK,IAAKd,EAAY,UAAWe,EAAAA,GAAGC,UAAO,QAASpB,CAAS,EAC3D,SAAA,CAAAQ,GACCa,EAAAA,IAAC,QAAK,IAAKf,EAAW,UAAWc,EAAAA,QAAO,gBAAiB,cAAW,GACjE,SAAAxB,CAAA,CACH,EAEFyB,EAAAA,IAAC,QAAA,CACC,IAAAlB,EACA,UAAWgB,EAAAA,GACTC,EAAAA,QAAO,MACPrB,IAAS,MAAQqB,EAAAA,QAAO,WAAW,EACnCZ,GAAaY,EAAAA,QAAO,kBAAkB,EACtCX,GAAaW,EAAAA,QAAO,kBAAkB,EACtCtB,GAAesB,EAAAA,QAAO,kBAAkB,CAAA,EAE1C,cAAanB,EACZ,GAAGC,CAAA,CAAA,EAELO,GACCY,EAAAA,IAAC,OAAA,CAAK,IAAKd,EAAW,UAAWa,EAAAA,QAAO,gBAAiB,cAAW,GACjE,SAAAvB,CAAA,CACH,CAAA,EAEJ,CAEJ,CACF,EAEAH,EAA6B4B,OAAmBC,EAAAA,MAAM7B,EAAO,OAAO,CAAC"}
@@ -0,0 +1,15 @@
1
+ import { InputHTMLAttributes, ReactNode } from 'react';
2
+ /** Metin girdisi. */
3
+ declare const Input: import('react').ForwardRefExoticComponent<Omit<InputHTMLAttributes<HTMLInputElement>, "size" | "prefix"> & {
4
+ /** Solda gösterilen ikon veya ön ek (arama simgesi, para birimi). */
5
+ prefix?: ReactNode;
6
+ /** Sağda gösterilen ikon veya birim (göz simgesi, "kg"). */
7
+ suffix?: ReactNode;
8
+ /** Teknik veri: */
9
+ isTechnical?: boolean;
10
+ /** `sm` yoğun şeritler içindir (araç çubuğu, `Select size="sm"` yanında); varsayılan form ölçüsü `md`. */
11
+ size?: "sm" | "md";
12
+ testId?: string;
13
+ } & import('react').RefAttributes<HTMLInputElement>>;
14
+ declare const _default: typeof Input;
15
+ export default _default;
@@ -0,0 +1,52 @@
1
+ "use client";
2
+ import { jsxs as _, jsx as o } from "react/jsx-runtime";
3
+ import { memo as B, forwardRef as g, useRef as i, useLayoutEffect as j } from "react";
4
+ import { cx as x } from "../../helpers/class-name.helper.js";
5
+ import { named as z } from "../../helpers/component.helper.js";
6
+ const e = {"wrapper":"ui-wrapper-IAI4E","wrapper__prefix":"ui-wrapper__prefix-XKDlV","wrapper__suffix":"ui-wrapper__suffix-lT35q","input":"ui-input-pIS2u","input--sm":"ui-input--sm-v1rrv","input--hasPrefix":"ui-input--hasPrefix-nsrWh","input--hasSuffix":"ui-input--hasSuffix-OrE5A","input--technical":"ui-input--technical---DCD"};
7
+ const E = typeof window > "u" ? () => {
8
+ } : j, L = /* @__PURE__ */ g(
9
+ ({ prefix: f, suffix: p, isTechnical: y, size: R = "md", className: v, testId: b, ...I }, N) => {
10
+ const u = i(null), c = i(null), a = i(null), r = !!f, n = !!p;
11
+ return E(() => {
12
+ const s = u.current;
13
+ if (!s) return;
14
+ const l = [
15
+ [c, "--ui-input-prefix-width"],
16
+ [a, "--ui-input-suffix-width"]
17
+ ], d = () => {
18
+ var t;
19
+ for (const [P, h] of l) {
20
+ const w = ((t = P.current) == null ? void 0 : t.getBoundingClientRect().width) ?? 0;
21
+ w > 0 ? s.style.setProperty(h, `${Math.ceil(w)}px`) : s.style.removeProperty(h);
22
+ }
23
+ };
24
+ if (d(), typeof ResizeObserver > "u") return;
25
+ const m = new ResizeObserver(d);
26
+ for (const [t] of l) t.current && m.observe(t.current);
27
+ return () => m.disconnect();
28
+ }, [r, n]), /* @__PURE__ */ _("span", { ref: u, className: x(e.wrapper, v), children: [
29
+ r && /* @__PURE__ */ o("span", { ref: c, className: e.wrapper__prefix, "aria-hidden": !0, children: f }),
30
+ /* @__PURE__ */ o(
31
+ "input",
32
+ {
33
+ ref: N,
34
+ className: x(
35
+ e.input,
36
+ R === "sm" && e["input--sm"],
37
+ r && e["input--hasPrefix"],
38
+ n && e["input--hasSuffix"],
39
+ y && e["input--technical"]
40
+ ),
41
+ "data-testid": b,
42
+ ...I
43
+ }
44
+ ),
45
+ n && /* @__PURE__ */ o("span", { ref: a, className: e.wrapper__suffix, "aria-hidden": !0, children: p })
46
+ ] });
47
+ }
48
+ ), k = /* @__PURE__ */ B(/* @__PURE__ */ z(L, "Input"));
49
+ export {
50
+ k as default
51
+ };
52
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../src/components/Input/index.tsx"],"sourcesContent":["'use client';\n\nimport {\n forwardRef,\n type InputHTMLAttributes,\n memo,\n type ReactNode,\n useLayoutEffect,\n useRef,\n} from 'react';\n\nimport { cx } from '../../helpers/class-name.helper';\nimport { named } from '../../helpers/component.helper';\n\nimport styles from './index.module.scss';\n\n/*\n * `prefix` HTML'in RDFa nitelikleri arasinda yer alir ve React onu `string` olarak tanimlar.\n * `size` yerel ozellikte karakter genisligi (`number`); burada olcu adi — genislik CSS'ten gelir.\n */\ntype Props = Omit<InputHTMLAttributes<HTMLInputElement>, 'prefix' | 'size'> & {\n /** Solda gösterilen ikon veya ön ek (arama simgesi, para birimi). */\n prefix?: ReactNode;\n /** Sağda gösterilen ikon veya birim (göz simgesi, \"kg\"). */\n suffix?: ReactNode;\n /** Teknik veri: */\n isTechnical?: boolean;\n /** `sm` yoğun şeritler içindir (araç çubuğu, `Select size=\"sm\"` yanında); varsayılan form ölçüsü `md`. */\n size?: 'sm' | 'md';\n testId?: string;\n};\n\n/** `useLayoutEffect` sunucuda uyarı basar; orada etkisiz bir eşdeğer. */\nconst useIsomorphicLayoutEffect = typeof window === 'undefined' ? () => {} : useLayoutEffect;\n\n/** Metin girdisi. */\nconst Input = /*#__PURE__*/ forwardRef<HTMLInputElement, Props>(\n ({ prefix, suffix, isTechnical, size = 'md', className, testId, ...rest }, ref) => {\n const wrapperRef = useRef<HTMLSpanElement>(null);\n const prefixRef = useRef<HTMLSpanElement>(null);\n const suffixRef = useRef<HTMLSpanElement>(null);\n /*\n * `Boolean(...)`: `prefix` bir `ReactNode` ve `0` da gecerli bir deger — `prefix &&`\n * ifadesi o durumda dize degil sayi donuyordu.\n */\n const hasPrefix = Boolean(prefix);\n const hasSuffix = Boolean(suffix);\n\n /*\n * Onek/sonekin genisligi olculup sarmalayiciya yazilir; girdinin ic payi buradan hesaplanir\n * (`--hasPrefix`). Boyamadan once olculur, icerik ya da yazi tipi degisince `ResizeObserver`\n * yeniden yazar. Olcum yokken (sunucu cizimi, jsdom) CSS ikon olcusunu varsayar.\n */\n useIsomorphicLayoutEffect(() => {\n const wrapper = wrapperRef.current;\n if (!wrapper) return undefined;\n const slots = [\n [prefixRef, '--ui-input-prefix-width'],\n [suffixRef, '--ui-input-suffix-width'],\n ] as const;\n const write = () => {\n for (const [slot, property] of slots) {\n const width = slot.current?.getBoundingClientRect().width ?? 0;\n if (width > 0) wrapper.style.setProperty(property, `${Math.ceil(width)}px`);\n else wrapper.style.removeProperty(property);\n }\n };\n write();\n if (typeof ResizeObserver === 'undefined') return undefined;\n const observer = new ResizeObserver(write);\n for (const [slot] of slots) if (slot.current) observer.observe(slot.current);\n return () => observer.disconnect();\n }, [hasPrefix, hasSuffix]);\n\n return (\n <span ref={wrapperRef} className={cx(styles.wrapper, className)}>\n {hasPrefix && (\n <span ref={prefixRef} className={styles.wrapper__prefix} aria-hidden>\n {prefix}\n </span>\n )}\n <input\n ref={ref}\n className={cx(\n styles.input,\n size === 'sm' && styles['input--sm'],\n hasPrefix && styles['input--hasPrefix'],\n hasSuffix && styles['input--hasSuffix'],\n isTechnical && styles['input--technical'],\n )}\n data-testid={testId}\n {...rest}\n />\n {hasSuffix && (\n <span ref={suffixRef} className={styles.wrapper__suffix} aria-hidden>\n {suffix}\n </span>\n )}\n </span>\n );\n },\n);\n\nexport default /*#__PURE__*/ memo(/*#__PURE__*/ named(Input, 'Input')) as typeof Input;\n"],"names":["useIsomorphicLayoutEffect","useLayoutEffect","Input","forwardRef","prefix","suffix","isTechnical","size","className","testId","rest","ref","wrapperRef","useRef","prefixRef","suffixRef","hasPrefix","hasSuffix","wrapper","slots","write","slot","property","width","_a","observer","jsxs","cx","styles","jsx","Input$1","memo","named"],"mappings":";;;;;;AAgCA,MAAMA,IAA4B,OAAO,SAAW,MAAc,MAAM;AAAC,IAAIC,GAGvEC,IAAsB,gBAAAC;AAAA,EAC1B,CAAC,EAAE,QAAAC,GAAQ,QAAAC,GAAQ,aAAAC,GAAa,MAAAC,IAAO,MAAM,WAAAC,GAAW,QAAAC,GAAQ,GAAGC,EAAA,GAAQC,MAAQ;AACjF,UAAMC,IAAaC,EAAwB,IAAI,GACzCC,IAAYD,EAAwB,IAAI,GACxCE,IAAYF,EAAwB,IAAI,GAKxCG,IAAY,EAAQZ,GACpBa,IAAY,EAAQZ;AAO1B,WAAAL,EAA0B,MAAM;AAC9B,YAAMkB,IAAUN,EAAW;AAC3B,UAAI,CAACM,EAAS;AACd,YAAMC,IAAQ;AAAA,QACZ,CAACL,GAAW,yBAAyB;AAAA,QACrC,CAACC,GAAW,yBAAyB;AAAA,MAAA,GAEjCK,IAAQ,MAAM;;AAClB,mBAAW,CAACC,GAAMC,CAAQ,KAAKH,GAAO;AACpC,gBAAMI,MAAQC,IAAAH,EAAK,YAAL,gBAAAG,EAAc,wBAAwB,UAAS;AAC7D,UAAID,IAAQ,IAAGL,EAAQ,MAAM,YAAYI,GAAU,GAAG,KAAK,KAAKC,CAAK,CAAC,IAAI,IACrEL,EAAQ,MAAM,eAAeI,CAAQ;AAAA,QAC5C;AAAA,MACF;AAEA,UADAF,EAAA,GACI,OAAO,iBAAmB,IAAa;AAC3C,YAAMK,IAAW,IAAI,eAAeL,CAAK;AACzC,iBAAW,CAACC,CAAI,KAAKF,EAAO,CAAIE,EAAK,WAASI,EAAS,QAAQJ,EAAK,OAAO;AAC3E,aAAO,MAAMI,EAAS,WAAA;AAAA,IACxB,GAAG,CAACT,GAAWC,CAAS,CAAC,GAGvB,gBAAAS,EAAC,UAAK,KAAKd,GAAY,WAAWe,EAAGC,EAAO,SAASpB,CAAS,GAC3D,UAAA;AAAA,MAAAQ,KACC,gBAAAa,EAAC,UAAK,KAAKf,GAAW,WAAWc,EAAO,iBAAiB,eAAW,IACjE,UAAAxB,EAAA,CACH;AAAA,MAEF,gBAAAyB;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,KAAAlB;AAAA,UACA,WAAWgB;AAAA,YACTC,EAAO;AAAA,YACPrB,MAAS,QAAQqB,EAAO,WAAW;AAAA,YACnCZ,KAAaY,EAAO,kBAAkB;AAAA,YACtCX,KAAaW,EAAO,kBAAkB;AAAA,YACtCtB,KAAesB,EAAO,kBAAkB;AAAA,UAAA;AAAA,UAE1C,eAAanB;AAAA,UACZ,GAAGC;AAAA,QAAA;AAAA,MAAA;AAAA,MAELO,KACC,gBAAAY,EAAC,QAAA,EAAK,KAAKd,GAAW,WAAWa,EAAO,iBAAiB,eAAW,IACjE,UAAAvB,EAAA,CACH;AAAA,IAAA,GAEJ;AAAA,EAEJ;AACF,GAEAyB,IAA6B,gBAAAC,EAAmB,gBAAAC,EAAM9B,GAAO,OAAO,CAAC;"}
@@ -0,0 +1 @@
1
+ @charset "UTF-8";@layer ui{.ui-wrapper-IAI4E{position:relative;display:flex;align-items:center;width:100%}.ui-wrapper__prefix-XKDlV,.ui-wrapper__suffix-lT35q{position:absolute;display:flex;align-items:center;color:var(--hd-text-2);pointer-events:none;font-size:var(--hd-type-small-size)}.ui-wrapper__prefix-XKDlV{inset-inline-start:var(--hd-space-3)}.ui-wrapper__suffix-lT35q{inset-inline-end:var(--hd-space-3)}.ui-input-pIS2u{width:100%;font-family:var(--hd-font-body);font-size:var(--hd-type-body-size);line-height:var(--hd-type-h4-line-height);color:var(--hd-text);background-color:var(--hd-bg-surface);border:1px solid var(--hd-border-strong);border-radius:var(--hd-radius-sm);padding:var(--hd-space-2) var(--hd-space-3);min-height:40px}@media (max-width: 640px){.ui-input-pIS2u{min-height:44px;font-size:max(16px,var(--hd-type-body-size))}}@media (hover: none) and (pointer: coarse){.ui-input-pIS2u{min-height:44px;font-size:max(16px,var(--hd-type-body-size))}}.ui-input-pIS2u{transition:border-color var(--hd-duration-fast) var(--hd-ease-standard),box-shadow var(--hd-duration-fast) var(--hd-ease-standard)}.ui-input-pIS2u::placeholder{color:var(--ui-placeholder, var(--hd-text-3))}.ui-input-pIS2u:hover:not(:disabled):not([aria-invalid=true]){border-color:color-mix(in oklab,var(--hd-border-strong),var(--hd-text) 30%)}.ui-input-pIS2u:focus{outline:none;border-color:var(--hd-focus);box-shadow:0 0 0 3px color-mix(in srgb,var(--hd-focus) 32%,transparent)}.ui-input-pIS2u:disabled{background-color:var(--hd-bg-raised);border-color:var(--hd-border);cursor:not-allowed;color:var(--hd-text-3)}@media (forced-colors: active){.ui-input-pIS2u:disabled{color:GrayText;border-color:GrayText}}.ui-input-pIS2u[aria-invalid=true]{border-color:var(--hd-danger-solid)}.ui-input-pIS2u[aria-invalid=true]:focus{box-shadow:0 0 0 3px color-mix(in srgb,var(--hd-danger-solid) 28%,transparent)}@media (prefers-reduced-motion: reduce){.ui-input-pIS2u{transition:none}}.ui-input--sm-v1rrv{min-height:32px;padding-block:0;padding-inline:var(--hd-space-3);font-size:var(--hd-type-small-size)}@media (max-width: 640px){.ui-input--sm-v1rrv{min-height:32px;font-size:var(--hd-type-small-size);font-size:max(16px,var(--hd-type-body-size))}}@media (hover: none) and (pointer: coarse){.ui-input--sm-v1rrv{min-height:32px;font-size:var(--hd-type-small-size);font-size:max(16px,var(--hd-type-body-size))}}.ui-input--hasPrefix-nsrWh{padding-inline-start:calc(var(--hd-space-3) + var(--ui-input-prefix-width, 18px) + var(--hd-space-2))}.ui-input--hasSuffix-OrE5A{padding-inline-end:calc(var(--hd-space-3) + var(--ui-input-suffix-width, 18px) + var(--hd-space-2))}.ui-input--technical---DCD{font-family:var(--hd-font-mono);font-size:max(16px,var(--hd-type-body-size));letter-spacing:.02em;font-variant-numeric:tabular-nums;letter-spacing:.06em}}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("react/jsx-runtime"),c=require("react"),n=require("../../helpers/class-name.helper.cjs"),u=require("../../helpers/component.helper.cjs"),s={default:{"kbd":"ui-kbd-W9O6L","kbd__group":"ui-kbd__group-19TQs","kbd__joiner":"ui-kbd__joiner-If794","kbd__key":"ui-kbd__key-9B5fJ"}},o=({keys:d,className:l,...t})=>e.jsx("kbd",{className:n.cx(s.default.kbd,l),...t,children:d.map((r,a)=>e.jsxs("span",{className:s.default.kbd__group,children:[a>0&&e.jsx("span",{className:s.default.kbd__joiner,children:"+"}),e.jsx("kbd",{className:s.default.kbd__key,children:r})]},`${r}-${a}`))}),i=c.memo(u.named(o,"Kbd"));exports.default=i;
2
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs","sources":["../../../src/components/Kbd/index.tsx"],"sourcesContent":["import { type FC, type HTMLAttributes, memo } from 'react';\n\nimport { cx } from '../../helpers/class-name.helper';\nimport { named } from '../../helpers/component.helper';\n\nimport styles from './index.module.scss';\n\ntype Props = Omit<HTMLAttributes<HTMLElement>, 'children'> & {\n /** Basılacak tuşlar, sırayla: `['Shift', 'Enter']`. Tek tuş da bir dizi: `['⌘K']`. */\n keys: string[];\n};\n\n/**\n * Klavye kısayolu — `<kbd>` içinde her tuş kendi `<kbd>`si (HTML'in birleşik tuş deseni).\n * Ekran okuyucu \"Shift artı Enter\" diye okur; yalnızca görsel bir ipucuysa `aria-hidden` geçin.\n */\nconst Kbd: FC<Props> = ({ keys, className, ...rest }) => (\n <kbd className={cx(styles.kbd, className)} {...rest}>\n {keys.map((key, index) => (\n <span key={`${key}-${index}`} className={styles.kbd__group}>\n {index > 0 && <span className={styles.kbd__joiner}>+</span>}\n <kbd className={styles.kbd__key}>{key}</kbd>\n </span>\n ))}\n </kbd>\n);\n\nexport default /*#__PURE__*/ memo(/*#__PURE__*/ named(Kbd, 'Kbd')) as typeof Kbd;\n"],"names":["Kbd","keys","className","rest","jsx","cx","styles","key","index","jsxs","memo","named"],"mappings":"0SAgBMA,EAAiB,CAAC,CAAE,KAAAC,EAAM,UAAAC,EAAW,GAAGC,CAAA,IAC5CC,MAAC,MAAA,CAAI,UAAWC,EAAAA,GAAGC,EAAAA,QAAO,IAAKJ,CAAS,EAAI,GAAGC,EAC5C,SAAAF,EAAK,IAAI,CAACM,EAAKC,IACdC,EAAAA,KAAC,OAAA,CAA6B,UAAWH,EAAAA,QAAO,WAC7C,SAAA,CAAAE,EAAQ,GAAKJ,EAAAA,IAAC,OAAA,CAAK,UAAWE,EAAAA,QAAO,YAAa,SAAA,IAAC,EACpDF,EAAAA,IAAC,MAAA,CAAI,UAAWE,EAAAA,QAAO,SAAW,SAAAC,CAAA,CAAI,CAAA,CAAA,EAF7B,GAAGA,CAAG,IAAIC,CAAK,EAG1B,CACD,EACH,EAGFR,EAA6BU,OAAmBC,EAAAA,MAAMX,EAAK,KAAK,CAAC"}
@@ -0,0 +1,12 @@
1
+ import { FC, HTMLAttributes } from 'react';
2
+ type Props = Omit<HTMLAttributes<HTMLElement>, 'children'> & {
3
+ /** Basılacak tuşlar, sırayla: `['Shift', 'Enter']`. Tek tuş da bir dizi: `['⌘K']`. */
4
+ keys: string[];
5
+ };
6
+ /**
7
+ * Klavye kısayolu — `<kbd>` içinde her tuş kendi `<kbd>`si (HTML'in birleşik tuş deseni).
8
+ * Ekran okuyucu "Shift artı Enter" diye okur; yalnızca görsel bir ipucuysa `aria-hidden` geçin.
9
+ */
10
+ declare const Kbd: FC<Props>;
11
+ declare const _default: typeof Kbd;
12
+ export default _default;
@@ -0,0 +1,13 @@
1
+ import { jsx as s, jsxs as c } from "react/jsx-runtime";
2
+ import { memo as l } from "react";
3
+ import { cx as p } from "../../helpers/class-name.helper.js";
4
+ import { named as t } from "../../helpers/component.helper.js";
5
+ const m = {"kbd":"ui-kbd-W9O6L","kbd__group":"ui-kbd__group-19TQs","kbd__joiner":"ui-kbd__joiner-If794","kbd__key":"ui-kbd__key-9B5fJ"};
6
+ const b = ({ keys: a, className: d, ...e }) => /* @__PURE__ */ s("kbd", { className: p(m.kbd, d), ...e, children: a.map((r, o) => /* @__PURE__ */ c("span", { className: m.kbd__group, children: [
7
+ o > 0 && /* @__PURE__ */ s("span", { className: m.kbd__joiner, children: "+" }),
8
+ /* @__PURE__ */ s("kbd", { className: m.kbd__key, children: r })
9
+ ] }, `${r}-${o}`)) }), h = /* @__PURE__ */ l(/* @__PURE__ */ t(b, "Kbd"));
10
+ export {
11
+ h as default
12
+ };
13
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../src/components/Kbd/index.tsx"],"sourcesContent":["import { type FC, type HTMLAttributes, memo } from 'react';\n\nimport { cx } from '../../helpers/class-name.helper';\nimport { named } from '../../helpers/component.helper';\n\nimport styles from './index.module.scss';\n\ntype Props = Omit<HTMLAttributes<HTMLElement>, 'children'> & {\n /** Basılacak tuşlar, sırayla: `['Shift', 'Enter']`. Tek tuş da bir dizi: `['⌘K']`. */\n keys: string[];\n};\n\n/**\n * Klavye kısayolu — `<kbd>` içinde her tuş kendi `<kbd>`si (HTML'in birleşik tuş deseni).\n * Ekran okuyucu \"Shift artı Enter\" diye okur; yalnızca görsel bir ipucuysa `aria-hidden` geçin.\n */\nconst Kbd: FC<Props> = ({ keys, className, ...rest }) => (\n <kbd className={cx(styles.kbd, className)} {...rest}>\n {keys.map((key, index) => (\n <span key={`${key}-${index}`} className={styles.kbd__group}>\n {index > 0 && <span className={styles.kbd__joiner}>+</span>}\n <kbd className={styles.kbd__key}>{key}</kbd>\n </span>\n ))}\n </kbd>\n);\n\nexport default /*#__PURE__*/ memo(/*#__PURE__*/ named(Kbd, 'Kbd')) as typeof Kbd;\n"],"names":["Kbd","keys","className","rest","jsx","cx","styles","key","index","jsxs","Kbd$1","memo","named"],"mappings":";;;;;AAgBA,MAAMA,IAAiB,CAAC,EAAE,MAAAC,GAAM,WAAAC,GAAW,GAAGC,EAAA,MAC5C,gBAAAC,EAAC,OAAA,EAAI,WAAWC,EAAGC,EAAO,KAAKJ,CAAS,GAAI,GAAGC,GAC5C,UAAAF,EAAK,IAAI,CAACM,GAAKC,MACd,gBAAAC,EAAC,QAAA,EAA6B,WAAWH,EAAO,YAC7C,UAAA;AAAA,EAAAE,IAAQ,KAAK,gBAAAJ,EAAC,QAAA,EAAK,WAAWE,EAAO,aAAa,UAAA,KAAC;AAAA,EACpD,gBAAAF,EAAC,OAAA,EAAI,WAAWE,EAAO,UAAW,UAAAC,EAAA,CAAI;AAAA,EAAA,GAF7B,GAAGA,CAAG,IAAIC,CAAK,EAG1B,CACD,GACH,GAGFE,IAA6B,gBAAAC,EAAmB,gBAAAC,EAAMZ,GAAK,KAAK,CAAC;"}
@@ -0,0 +1 @@
1
+ @layer ui{.ui-kbd-W9O6L{display:inline-flex;align-items:center;flex-shrink:0;font:inherit}.ui-kbd__group-19TQs{display:inline-flex;align-items:center}.ui-kbd__joiner-If794{padding-inline:2px;font-size:var(--hd-type-caption-size);color:var(--hd-text-3)}.ui-kbd__key-9B5fJ{font-family:var(--hd-font-mono);font-size:var(--hd-type-caption-size);letter-spacing:.02em;font-variant-numeric:tabular-nums;padding:2px var(--hd-space-1);border:1px solid var(--hd-border);border-radius:var(--hd-radius-xs);background-color:var(--hd-bg-raised);color:var(--hd-text-2)}}
@@ -0,0 +1,2 @@
1
+ "use client";"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const o=require("react/jsx-runtime"),u=require("../../theme/context.cjs"),i=({children:e,...t})=>{const{linkComponent:n}=u.useUi();return n?o.jsx(n,{...t,children:e}):o.jsx("a",{...t,children:e})};exports.default=i;
2
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs","sources":["../../../src/components/Link/index.tsx"],"sourcesContent":["'use client';\n\nimport type { AnchorHTMLAttributes, FC } from 'react';\n\nimport { useUi } from '../../theme/context';\nimport type { UiLinkProps } from '../../types/link.type';\n\n/** Kütüphanenin İÇ bağlantı öğesi. */\nconst UiLink: FC<UiLinkProps> = ({ children, ...rest }) => {\n const { linkComponent: LinkComponent } = useUi();\n\n if (LinkComponent) return <LinkComponent {...(rest as UiLinkProps)}>{children}</LinkComponent>;\n\n /*\n * Yonlendirici yoksa ham `<a>`. `rest` indeks imzasi tasiyor (yonlendiriciye ozgu props icin);\n * DOM'a giderken anchor sozlesmesine daraltilir\n */\n return <a {...(rest as AnchorHTMLAttributes<HTMLAnchorElement>)}>{children}</a>;\n};\n\nexport default UiLink;\n"],"names":["UiLink","children","rest","LinkComponent","useUi","jsx"],"mappings":"mMAOMA,EAA0B,CAAC,CAAE,SAAAC,EAAU,GAAGC,KAAW,CACzD,KAAM,CAAE,cAAeC,CAAA,EAAkBC,QAAA,EAEzC,OAAID,EAAsBE,MAACF,EAAA,CAAe,GAAID,EAAuB,SAAAD,EAAS,EAMvEI,EAAAA,IAAC,IAAA,CAAG,GAAIH,EAAmD,SAAAD,CAAA,CAAS,CAC7E"}
@@ -0,0 +1,5 @@
1
+ import { FC } from 'react';
2
+ import { UiLinkProps } from '../../types/link.type';
3
+ /** Kütüphanenin İÇ bağlantı öğesi. */
4
+ declare const UiLink: FC<UiLinkProps>;
5
+ export default UiLink;