@handijit/ui 0.0.0-stage → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (639) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +786 -2
  3. package/build/base.css +1 -0
  4. package/build/charts.cjs +2 -0
  5. package/build/charts.cjs.map +1 -0
  6. package/build/charts.css +1 -0
  7. package/build/charts.js +1866 -0
  8. package/build/charts.js.map +1 -0
  9. package/build/chat.cjs +4 -0
  10. package/build/chat.cjs.map +1 -0
  11. package/build/chat.css +1 -0
  12. package/build/chat.js +1121 -0
  13. package/build/chat.js.map +1 -0
  14. package/build/components/Accordion/index.cjs +2 -0
  15. package/build/components/Accordion/index.cjs.map +1 -0
  16. package/build/components/Accordion/index.d.ts +29 -0
  17. package/build/components/Accordion/index.js +42 -0
  18. package/build/components/Accordion/index.js.map +1 -0
  19. package/build/components/Accordion/style.css +1 -0
  20. package/build/components/Alert/index.cjs +2 -0
  21. package/build/components/Alert/index.cjs.map +1 -0
  22. package/build/components/Alert/index.d.ts +15 -0
  23. package/build/components/Alert/index.js +30 -0
  24. package/build/components/Alert/index.js.map +1 -0
  25. package/build/components/Alert/style.css +1 -0
  26. package/build/components/Avatar/index.cjs +2 -0
  27. package/build/components/Avatar/index.cjs.map +1 -0
  28. package/build/components/Avatar/index.d.ts +26 -0
  29. package/build/components/Avatar/index.js +57 -0
  30. package/build/components/Avatar/index.js.map +1 -0
  31. package/build/components/Avatar/style.css +1 -0
  32. package/build/components/Badge/index.cjs +2 -0
  33. package/build/components/Badge/index.cjs.map +1 -0
  34. package/build/components/Badge/index.d.ts +21 -0
  35. package/build/components/Badge/index.js +26 -0
  36. package/build/components/Badge/index.js.map +1 -0
  37. package/build/components/Badge/style.css +1 -0
  38. package/build/components/BottomSheet/index.cjs +2 -0
  39. package/build/components/BottomSheet/index.cjs.map +1 -0
  40. package/build/components/BottomSheet/index.d.ts +21 -0
  41. package/build/components/BottomSheet/index.js +85 -0
  42. package/build/components/BottomSheet/index.js.map +1 -0
  43. package/build/components/BottomSheet/style.css +1 -0
  44. package/build/components/Breadcrumb/index.cjs +2 -0
  45. package/build/components/Breadcrumb/index.cjs.map +1 -0
  46. package/build/components/Breadcrumb/index.d.ts +20 -0
  47. package/build/components/Breadcrumb/index.js +31 -0
  48. package/build/components/Breadcrumb/index.js.map +1 -0
  49. package/build/components/Breadcrumb/style.css +1 -0
  50. package/build/components/Button/index.cjs +2 -0
  51. package/build/components/Button/index.cjs.map +1 -0
  52. package/build/components/Button/index.d.ts +32 -0
  53. package/build/components/Button/index.js +88 -0
  54. package/build/components/Button/index.js.map +1 -0
  55. package/build/components/Button/style.css +1 -0
  56. package/build/components/Card/index.cjs +2 -0
  57. package/build/components/Card/index.cjs.map +1 -0
  58. package/build/components/Card/index.d.ts +51 -0
  59. package/build/components/Card/index.js +58 -0
  60. package/build/components/Card/index.js.map +1 -0
  61. package/build/components/Card/style.css +1 -0
  62. package/build/components/Carousel/index.cjs +2 -0
  63. package/build/components/Carousel/index.cjs.map +1 -0
  64. package/build/components/Carousel/index.d.ts +24 -0
  65. package/build/components/Carousel/index.js +111 -0
  66. package/build/components/Carousel/index.js.map +1 -0
  67. package/build/components/Carousel/style.css +1 -0
  68. package/build/components/Checkbox/index.cjs +2 -0
  69. package/build/components/Checkbox/index.cjs.map +1 -0
  70. package/build/components/Checkbox/index.d.ts +10 -0
  71. package/build/components/Checkbox/index.js +33 -0
  72. package/build/components/Checkbox/index.js.map +1 -0
  73. package/build/components/Checkbox/style.css +1 -0
  74. package/build/components/Chip/index.cjs +2 -0
  75. package/build/components/Chip/index.cjs.map +1 -0
  76. package/build/components/Chip/index.d.ts +27 -0
  77. package/build/components/Chip/index.js +67 -0
  78. package/build/components/Chip/index.js.map +1 -0
  79. package/build/components/Chip/style.css +1 -0
  80. package/build/components/ChipGroup/index.cjs +2 -0
  81. package/build/components/ChipGroup/index.cjs.map +1 -0
  82. package/build/components/ChipGroup/index.d.ts +34 -0
  83. package/build/components/ChipGroup/index.js +64 -0
  84. package/build/components/ChipGroup/index.js.map +1 -0
  85. package/build/components/ChipGroup/style.css +1 -0
  86. package/build/components/CodeBadge/index.cjs +2 -0
  87. package/build/components/CodeBadge/index.cjs.map +1 -0
  88. package/build/components/CodeBadge/index.d.ts +36 -0
  89. package/build/components/CodeBadge/index.js +62 -0
  90. package/build/components/CodeBadge/index.js.map +1 -0
  91. package/build/components/CodeBadge/style.css +1 -0
  92. package/build/components/Combobox/index.cjs +2 -0
  93. package/build/components/Combobox/index.cjs.map +1 -0
  94. package/build/components/Combobox/index.d.ts +6 -0
  95. package/build/components/Combobox/index.js +302 -0
  96. package/build/components/Combobox/index.js.map +1 -0
  97. package/build/components/Combobox/style.css +1 -0
  98. package/build/components/CommandPalette/index.cjs +2 -0
  99. package/build/components/CommandPalette/index.cjs.map +1 -0
  100. package/build/components/CommandPalette/index.d.ts +37 -0
  101. package/build/components/CommandPalette/index.js +181 -0
  102. package/build/components/CommandPalette/index.js.map +1 -0
  103. package/build/components/CommandPalette/style.css +1 -0
  104. package/build/components/ConfirmDialog/index.cjs +2 -0
  105. package/build/components/ConfirmDialog/index.cjs.map +1 -0
  106. package/build/components/ConfirmDialog/index.d.ts +34 -0
  107. package/build/components/ConfirmDialog/index.js +85 -0
  108. package/build/components/ConfirmDialog/index.js.map +1 -0
  109. package/build/components/CopyField/index.cjs +2 -0
  110. package/build/components/CopyField/index.cjs.map +1 -0
  111. package/build/components/CopyField/index.d.ts +20 -0
  112. package/build/components/CopyField/index.js +44 -0
  113. package/build/components/CopyField/index.js.map +1 -0
  114. package/build/components/CopyField/style.css +1 -0
  115. package/build/components/DataTable/index.cjs +2 -0
  116. package/build/components/DataTable/index.cjs.map +1 -0
  117. package/build/components/DataTable/index.d.ts +60 -0
  118. package/build/components/DataTable/index.js +109 -0
  119. package/build/components/DataTable/index.js.map +1 -0
  120. package/build/components/DataTable/style.css +1 -0
  121. package/build/components/DateField/index.cjs +2 -0
  122. package/build/components/DateField/index.cjs.map +1 -0
  123. package/build/components/DateField/index.d.ts +44 -0
  124. package/build/components/DateField/index.js +79 -0
  125. package/build/components/DateField/index.js.map +1 -0
  126. package/build/components/DateField/style.css +1 -0
  127. package/build/components/Directory/index.cjs +2 -0
  128. package/build/components/Directory/index.cjs.map +1 -0
  129. package/build/components/Directory/index.d.ts +51 -0
  130. package/build/components/Directory/index.js +46 -0
  131. package/build/components/Directory/index.js.map +1 -0
  132. package/build/components/Directory/style.css +1 -0
  133. package/build/components/Disclosure/index.cjs +2 -0
  134. package/build/components/Disclosure/index.cjs.map +1 -0
  135. package/build/components/Disclosure/index.d.ts +34 -0
  136. package/build/components/Disclosure/index.js +64 -0
  137. package/build/components/Disclosure/index.js.map +1 -0
  138. package/build/components/Disclosure/style.css +1 -0
  139. package/build/components/Divider/index.cjs +2 -0
  140. package/build/components/Divider/index.cjs.map +1 -0
  141. package/build/components/Divider/index.d.ts +10 -0
  142. package/build/components/Divider/index.js +24 -0
  143. package/build/components/Divider/index.js.map +1 -0
  144. package/build/components/Divider/style.css +1 -0
  145. package/build/components/Drawer/index.cjs +2 -0
  146. package/build/components/Drawer/index.cjs.map +1 -0
  147. package/build/components/Drawer/index.d.ts +22 -0
  148. package/build/components/Drawer/index.js +88 -0
  149. package/build/components/Drawer/index.js.map +1 -0
  150. package/build/components/Drawer/style.css +1 -0
  151. package/build/components/EmptyState/index.cjs +2 -0
  152. package/build/components/EmptyState/index.cjs.map +1 -0
  153. package/build/components/EmptyState/index.d.ts +19 -0
  154. package/build/components/EmptyState/index.js +35 -0
  155. package/build/components/EmptyState/index.js.map +1 -0
  156. package/build/components/EmptyState/style.css +1 -0
  157. package/build/components/Field/index.cjs +2 -0
  158. package/build/components/Field/index.cjs.map +1 -0
  159. package/build/components/Field/index.d.ts +31 -0
  160. package/build/components/Field/index.js +52 -0
  161. package/build/components/Field/index.js.map +1 -0
  162. package/build/components/Field/style.css +1 -0
  163. package/build/components/FileUpload/index.cjs +2 -0
  164. package/build/components/FileUpload/index.cjs.map +1 -0
  165. package/build/components/FileUpload/index.d.ts +42 -0
  166. package/build/components/FileUpload/index.js +145 -0
  167. package/build/components/FileUpload/index.js.map +1 -0
  168. package/build/components/FileUpload/style.css +1 -0
  169. package/build/components/FilterBar/index.cjs +2 -0
  170. package/build/components/FilterBar/index.cjs.map +1 -0
  171. package/build/components/FilterBar/index.d.ts +28 -0
  172. package/build/components/FilterBar/index.js +35 -0
  173. package/build/components/FilterBar/index.js.map +1 -0
  174. package/build/components/FilterBar/style.css +1 -0
  175. package/build/components/IconButton/index.cjs +2 -0
  176. package/build/components/IconButton/index.cjs.map +1 -0
  177. package/build/components/IconButton/index.d.ts +22 -0
  178. package/build/components/IconButton/index.js +61 -0
  179. package/build/components/IconButton/index.js.map +1 -0
  180. package/build/components/IconButton/style.css +1 -0
  181. package/build/components/Input/index.cjs +2 -0
  182. package/build/components/Input/index.cjs.map +1 -0
  183. package/build/components/Input/index.d.ts +15 -0
  184. package/build/components/Input/index.js +52 -0
  185. package/build/components/Input/index.js.map +1 -0
  186. package/build/components/Input/style.css +1 -0
  187. package/build/components/Kbd/index.cjs +2 -0
  188. package/build/components/Kbd/index.cjs.map +1 -0
  189. package/build/components/Kbd/index.d.ts +12 -0
  190. package/build/components/Kbd/index.js +13 -0
  191. package/build/components/Kbd/index.js.map +1 -0
  192. package/build/components/Kbd/style.css +1 -0
  193. package/build/components/Link/index.cjs +2 -0
  194. package/build/components/Link/index.cjs.map +1 -0
  195. package/build/components/Link/index.d.ts +5 -0
  196. package/build/components/Link/index.js +11 -0
  197. package/build/components/Link/index.js.map +1 -0
  198. package/build/components/Menu/index.cjs +2 -0
  199. package/build/components/Menu/index.cjs.map +1 -0
  200. package/build/components/Menu/index.d.ts +46 -0
  201. package/build/components/Menu/index.js +241 -0
  202. package/build/components/Menu/index.js.map +1 -0
  203. package/build/components/Menu/style.css +1 -0
  204. package/build/components/Modal/index.cjs +2 -0
  205. package/build/components/Modal/index.cjs.map +1 -0
  206. package/build/components/Modal/index.d.ts +28 -0
  207. package/build/components/Modal/index.js +92 -0
  208. package/build/components/Modal/index.js.map +1 -0
  209. package/build/components/Modal/style.css +1 -0
  210. package/build/components/PageHeader/index.cjs +2 -0
  211. package/build/components/PageHeader/index.cjs.map +1 -0
  212. package/build/components/PageHeader/index.d.ts +24 -0
  213. package/build/components/PageHeader/index.js +34 -0
  214. package/build/components/PageHeader/index.js.map +1 -0
  215. package/build/components/PageHeader/style.css +1 -0
  216. package/build/components/Pagination/index.cjs +2 -0
  217. package/build/components/Pagination/index.cjs.map +1 -0
  218. package/build/components/Pagination/index.d.ts +39 -0
  219. package/build/components/Pagination/index.js +128 -0
  220. package/build/components/Pagination/index.js.map +1 -0
  221. package/build/components/Pagination/style.css +1 -0
  222. package/build/components/Panel/index.cjs +2 -0
  223. package/build/components/Panel/index.cjs.map +1 -0
  224. package/build/components/Panel/index.d.ts +43 -0
  225. package/build/components/Panel/index.js +55 -0
  226. package/build/components/Panel/index.js.map +1 -0
  227. package/build/components/Panel/style.css +1 -0
  228. package/build/components/PasswordInput/index.cjs +2 -0
  229. package/build/components/PasswordInput/index.cjs.map +1 -0
  230. package/build/components/PasswordInput/index.d.ts +14 -0
  231. package/build/components/PasswordInput/index.js +40 -0
  232. package/build/components/PasswordInput/index.js.map +1 -0
  233. package/build/components/PasswordInput/style.css +1 -0
  234. package/build/components/Popover/index.cjs +2 -0
  235. package/build/components/Popover/index.cjs.map +1 -0
  236. package/build/components/Popover/index.d.ts +20 -0
  237. package/build/components/Popover/index.js +91 -0
  238. package/build/components/Popover/index.js.map +1 -0
  239. package/build/components/Popover/style.css +1 -0
  240. package/build/components/Price/index.cjs +2 -0
  241. package/build/components/Price/index.cjs.map +1 -0
  242. package/build/components/Price/index.d.ts +22 -0
  243. package/build/components/Price/index.js +46 -0
  244. package/build/components/Price/index.js.map +1 -0
  245. package/build/components/Price/style.css +1 -0
  246. package/build/components/Progress/index.cjs +2 -0
  247. package/build/components/Progress/index.cjs.map +1 -0
  248. package/build/components/Progress/index.d.ts +49 -0
  249. package/build/components/Progress/index.js +120 -0
  250. package/build/components/Progress/index.js.map +1 -0
  251. package/build/components/Progress/style.css +1 -0
  252. package/build/components/PromptDialog/index.cjs +2 -0
  253. package/build/components/PromptDialog/index.cjs.map +1 -0
  254. package/build/components/PromptDialog/index.d.ts +36 -0
  255. package/build/components/PromptDialog/index.js +119 -0
  256. package/build/components/PromptDialog/index.js.map +1 -0
  257. package/build/components/PromptDialog/style.css +1 -0
  258. package/build/components/QuantityStepper/index.cjs +2 -0
  259. package/build/components/QuantityStepper/index.cjs.map +1 -0
  260. package/build/components/QuantityStepper/index.d.ts +21 -0
  261. package/build/components/QuantityStepper/index.js +106 -0
  262. package/build/components/QuantityStepper/index.js.map +1 -0
  263. package/build/components/QuantityStepper/style.css +1 -0
  264. package/build/components/Radio/index.cjs +2 -0
  265. package/build/components/Radio/index.cjs.map +1 -0
  266. package/build/components/Radio/index.d.ts +12 -0
  267. package/build/components/Radio/index.js +35 -0
  268. package/build/components/Radio/index.js.map +1 -0
  269. package/build/components/Radio/style.css +1 -0
  270. package/build/components/RadioCard/index.cjs +2 -0
  271. package/build/components/RadioCard/index.cjs.map +1 -0
  272. package/build/components/RadioCard/index.d.ts +16 -0
  273. package/build/components/RadioCard/index.js +48 -0
  274. package/build/components/RadioCard/index.js.map +1 -0
  275. package/build/components/RadioCard/style.css +1 -0
  276. package/build/components/RangeSlider/index.cjs +2 -0
  277. package/build/components/RangeSlider/index.cjs.map +1 -0
  278. package/build/components/RangeSlider/index.d.ts +26 -0
  279. package/build/components/RangeSlider/index.js +102 -0
  280. package/build/components/RangeSlider/index.js.map +1 -0
  281. package/build/components/RangeSlider/style.css +1 -0
  282. package/build/components/Rating/index.cjs +2 -0
  283. package/build/components/Rating/index.cjs.map +1 -0
  284. package/build/components/Rating/index.d.ts +16 -0
  285. package/build/components/Rating/index.js +29 -0
  286. package/build/components/Rating/index.js.map +1 -0
  287. package/build/components/Rating/style.css +1 -0
  288. package/build/components/RatingInput/index.cjs +2 -0
  289. package/build/components/RatingInput/index.cjs.map +1 -0
  290. package/build/components/RatingInput/index.d.ts +21 -0
  291. package/build/components/RatingInput/index.js +75 -0
  292. package/build/components/RatingInput/index.js.map +1 -0
  293. package/build/components/RatingInput/style.css +1 -0
  294. package/build/components/ScrollArea/index.cjs +2 -0
  295. package/build/components/ScrollArea/index.cjs.map +1 -0
  296. package/build/components/ScrollArea/index.d.ts +23 -0
  297. package/build/components/ScrollArea/index.js +65 -0
  298. package/build/components/ScrollArea/index.js.map +1 -0
  299. package/build/components/ScrollArea/style.css +1 -0
  300. package/build/components/SectionHeader/index.cjs +2 -0
  301. package/build/components/SectionHeader/index.cjs.map +1 -0
  302. package/build/components/SectionHeader/index.d.ts +17 -0
  303. package/build/components/SectionHeader/index.js +25 -0
  304. package/build/components/SectionHeader/index.js.map +1 -0
  305. package/build/components/SectionHeader/style.css +1 -0
  306. package/build/components/SegmentedControl/index.cjs +2 -0
  307. package/build/components/SegmentedControl/index.cjs.map +1 -0
  308. package/build/components/SegmentedControl/index.d.ts +24 -0
  309. package/build/components/SegmentedControl/index.js +69 -0
  310. package/build/components/SegmentedControl/index.js.map +1 -0
  311. package/build/components/SegmentedControl/style.css +1 -0
  312. package/build/components/Select/index.cjs +2 -0
  313. package/build/components/Select/index.cjs.map +1 -0
  314. package/build/components/Select/index.d.ts +39 -0
  315. package/build/components/Select/index.js +179 -0
  316. package/build/components/Select/index.js.map +1 -0
  317. package/build/components/Select/style.css +1 -0
  318. package/build/components/Skeleton/index.cjs +2 -0
  319. package/build/components/Skeleton/index.cjs.map +1 -0
  320. package/build/components/Skeleton/index.d.ts +25 -0
  321. package/build/components/Skeleton/index.js +50 -0
  322. package/build/components/Skeleton/index.js.map +1 -0
  323. package/build/components/Skeleton/style.css +1 -0
  324. package/build/components/Spinner/index.cjs +2 -0
  325. package/build/components/Spinner/index.cjs.map +1 -0
  326. package/build/components/Spinner/index.d.ts +11 -0
  327. package/build/components/Spinner/index.js +15 -0
  328. package/build/components/Spinner/index.js.map +1 -0
  329. package/build/components/Spinner/style.css +1 -0
  330. package/build/components/Stat/index.cjs +2 -0
  331. package/build/components/Stat/index.cjs.map +1 -0
  332. package/build/components/Stat/index.d.ts +34 -0
  333. package/build/components/Stat/index.js +72 -0
  334. package/build/components/Stat/index.js.map +1 -0
  335. package/build/components/Stat/style.css +1 -0
  336. package/build/components/StatusDot/index.cjs +2 -0
  337. package/build/components/StatusDot/index.cjs.map +1 -0
  338. package/build/components/StatusDot/index.d.ts +23 -0
  339. package/build/components/StatusDot/index.js +23 -0
  340. package/build/components/StatusDot/index.js.map +1 -0
  341. package/build/components/StatusDot/style.css +1 -0
  342. package/build/components/Steps/index.cjs +2 -0
  343. package/build/components/Steps/index.cjs.map +1 -0
  344. package/build/components/Steps/index.d.ts +23 -0
  345. package/build/components/Steps/index.js +69 -0
  346. package/build/components/Steps/index.js.map +1 -0
  347. package/build/components/Steps/style.css +1 -0
  348. package/build/components/SummaryCard/index.cjs +2 -0
  349. package/build/components/SummaryCard/index.cjs.map +1 -0
  350. package/build/components/SummaryCard/index.d.ts +24 -0
  351. package/build/components/SummaryCard/index.js +33 -0
  352. package/build/components/SummaryCard/index.js.map +1 -0
  353. package/build/components/SummaryCard/style.css +1 -0
  354. package/build/components/Switch/index.cjs +2 -0
  355. package/build/components/Switch/index.cjs.map +1 -0
  356. package/build/components/Switch/index.d.ts +16 -0
  357. package/build/components/Switch/index.js +42 -0
  358. package/build/components/Switch/index.js.map +1 -0
  359. package/build/components/Switch/style.css +1 -0
  360. package/build/components/Table/index.cjs +2 -0
  361. package/build/components/Table/index.cjs.map +1 -0
  362. package/build/components/Table/index.d.ts +28 -0
  363. package/build/components/Table/index.js +58 -0
  364. package/build/components/Table/index.js.map +1 -0
  365. package/build/components/Table/style.css +1 -0
  366. package/build/components/TableCheckbox/index.cjs +2 -0
  367. package/build/components/TableCheckbox/index.cjs.map +1 -0
  368. package/build/components/TableCheckbox/index.d.ts +15 -0
  369. package/build/components/TableCheckbox/index.js +31 -0
  370. package/build/components/TableCheckbox/index.js.map +1 -0
  371. package/build/components/TableCheckbox/style.css +1 -0
  372. package/build/components/Tabs/index.cjs +2 -0
  373. package/build/components/Tabs/index.cjs.map +1 -0
  374. package/build/components/Tabs/index.d.ts +27 -0
  375. package/build/components/Tabs/index.js +102 -0
  376. package/build/components/Tabs/index.js.map +1 -0
  377. package/build/components/Tabs/style.css +1 -0
  378. package/build/components/TagInput/index.cjs +2 -0
  379. package/build/components/TagInput/index.cjs.map +1 -0
  380. package/build/components/TagInput/index.d.ts +25 -0
  381. package/build/components/TagInput/index.js +124 -0
  382. package/build/components/TagInput/index.js.map +1 -0
  383. package/build/components/TagInput/style.css +1 -0
  384. package/build/components/TextLink/index.cjs +2 -0
  385. package/build/components/TextLink/index.cjs.map +1 -0
  386. package/build/components/TextLink/index.d.ts +16 -0
  387. package/build/components/TextLink/index.js +32 -0
  388. package/build/components/TextLink/index.js.map +1 -0
  389. package/build/components/TextLink/style.css +1 -0
  390. package/build/components/Textarea/index.cjs +2 -0
  391. package/build/components/Textarea/index.cjs.map +1 -0
  392. package/build/components/Textarea/index.d.ts +20 -0
  393. package/build/components/Textarea/index.js +68 -0
  394. package/build/components/Textarea/index.js.map +1 -0
  395. package/build/components/Textarea/style.css +1 -0
  396. package/build/components/Tile/index.cjs +2 -0
  397. package/build/components/Tile/index.cjs.map +1 -0
  398. package/build/components/Tile/index.d.ts +19 -0
  399. package/build/components/Tile/index.js +24 -0
  400. package/build/components/Tile/index.js.map +1 -0
  401. package/build/components/Tile/style.css +1 -0
  402. package/build/components/Timeline/index.cjs +2 -0
  403. package/build/components/Timeline/index.cjs.map +1 -0
  404. package/build/components/Timeline/index.d.ts +24 -0
  405. package/build/components/Timeline/index.js +56 -0
  406. package/build/components/Timeline/index.js.map +1 -0
  407. package/build/components/Timeline/style.css +1 -0
  408. package/build/components/Toast/index.cjs +2 -0
  409. package/build/components/Toast/index.cjs.map +1 -0
  410. package/build/components/Toast/index.d.ts +43 -0
  411. package/build/components/Toast/index.js +136 -0
  412. package/build/components/Toast/index.js.map +1 -0
  413. package/build/components/Toast/style.css +1 -0
  414. package/build/components/ToastPortal/index.cjs +2 -0
  415. package/build/components/ToastPortal/index.cjs.map +1 -0
  416. package/build/components/ToastPortal/index.d.ts +8 -0
  417. package/build/components/ToastPortal/index.js +15 -0
  418. package/build/components/ToastPortal/index.js.map +1 -0
  419. package/build/components/Tooltip/index.cjs +2 -0
  420. package/build/components/Tooltip/index.cjs.map +1 -0
  421. package/build/components/Tooltip/index.d.ts +23 -0
  422. package/build/components/Tooltip/index.js +116 -0
  423. package/build/components/Tooltip/index.js.map +1 -0
  424. package/build/components/Tooltip/style.css +1 -0
  425. package/build/constants/breakpoint.constants.cjs +2 -0
  426. package/build/constants/breakpoint.constants.cjs.map +1 -0
  427. package/build/constants/breakpoint.constants.d.ts +13 -0
  428. package/build/constants/breakpoint.constants.js +11 -0
  429. package/build/constants/breakpoint.constants.js.map +1 -0
  430. package/build/constants/combobox.constants.cjs +2 -0
  431. package/build/constants/combobox.constants.cjs.map +1 -0
  432. package/build/constants/combobox.constants.d.ts +11 -0
  433. package/build/constants/combobox.constants.js +7 -0
  434. package/build/constants/combobox.constants.js.map +1 -0
  435. package/build/constants/scroll.constants.cjs +2 -0
  436. package/build/constants/scroll.constants.cjs.map +1 -0
  437. package/build/constants/scroll.constants.d.ts +7 -0
  438. package/build/constants/scroll.constants.js +5 -0
  439. package/build/constants/scroll.constants.js.map +1 -0
  440. package/build/enums/ui-size.enum.cjs +2 -0
  441. package/build/enums/ui-size.enum.cjs.map +1 -0
  442. package/build/enums/ui-size.enum.d.ts +12 -0
  443. package/build/enums/ui-size.enum.js +5 -0
  444. package/build/enums/ui-size.enum.js.map +1 -0
  445. package/build/enums/ui-variant.enum.cjs +2 -0
  446. package/build/enums/ui-variant.enum.cjs.map +1 -0
  447. package/build/enums/ui-variant.enum.d.ts +20 -0
  448. package/build/enums/ui-variant.enum.js +5 -0
  449. package/build/enums/ui-variant.enum.js.map +1 -0
  450. package/build/helpers/class-name.helper.cjs +2 -0
  451. package/build/helpers/class-name.helper.cjs.map +1 -0
  452. package/build/helpers/class-name.helper.d.ts +3 -0
  453. package/build/helpers/class-name.helper.js +10 -0
  454. package/build/helpers/class-name.helper.js.map +1 -0
  455. package/build/helpers/component.helper.cjs +2 -0
  456. package/build/helpers/component.helper.cjs.map +1 -0
  457. package/build/helpers/component.helper.d.ts +13 -0
  458. package/build/helpers/component.helper.js +5 -0
  459. package/build/helpers/component.helper.js.map +1 -0
  460. package/build/helpers/focus.helper.cjs +2 -0
  461. package/build/helpers/focus.helper.cjs.map +1 -0
  462. package/build/helpers/focus.helper.d.ts +42 -0
  463. package/build/helpers/focus.helper.js +65 -0
  464. package/build/helpers/focus.helper.js.map +1 -0
  465. package/build/helpers/label.helper.cjs +2 -0
  466. package/build/helpers/label.helper.cjs.map +1 -0
  467. package/build/helpers/label.helper.d.ts +11 -0
  468. package/build/helpers/label.helper.js +11 -0
  469. package/build/helpers/label.helper.js.map +1 -0
  470. package/build/helpers/portal.helper.cjs +2 -0
  471. package/build/helpers/portal.helper.cjs.map +1 -0
  472. package/build/helpers/portal.helper.d.ts +28 -0
  473. package/build/helpers/portal.helper.js +36 -0
  474. package/build/helpers/portal.helper.js.map +1 -0
  475. package/build/helpers/scroll.helper.cjs +2 -0
  476. package/build/helpers/scroll.helper.cjs.map +1 -0
  477. package/build/helpers/scroll.helper.d.ts +8 -0
  478. package/build/helpers/scroll.helper.js +11 -0
  479. package/build/helpers/scroll.helper.js.map +1 -0
  480. package/build/helpers/text.helper.cjs +2 -0
  481. package/build/helpers/text.helper.cjs.map +1 -0
  482. package/build/helpers/text.helper.d.ts +5 -0
  483. package/build/helpers/text.helper.js +6 -0
  484. package/build/helpers/text.helper.js.map +1 -0
  485. package/build/helpers/theme.helper.cjs +2 -0
  486. package/build/helpers/theme.helper.cjs.map +1 -0
  487. package/build/helpers/theme.helper.d.ts +18 -0
  488. package/build/helpers/theme.helper.js +37 -0
  489. package/build/helpers/theme.helper.js.map +1 -0
  490. package/build/hooks/useAnnounce.cjs +2 -0
  491. package/build/hooks/useAnnounce.cjs.map +1 -0
  492. package/build/hooks/useAnnounce.d.ts +4 -0
  493. package/build/hooks/useAnnounce.js +23 -0
  494. package/build/hooks/useAnnounce.js.map +1 -0
  495. package/build/hooks/useAsyncSearch.cjs +2 -0
  496. package/build/hooks/useAsyncSearch.cjs.map +1 -0
  497. package/build/hooks/useAsyncSearch.d.ts +11 -0
  498. package/build/hooks/useAsyncSearch.js +17 -0
  499. package/build/hooks/useAsyncSearch.js.map +1 -0
  500. package/build/hooks/useCopyFeedback.cjs +2 -0
  501. package/build/hooks/useCopyFeedback.cjs.map +1 -0
  502. package/build/hooks/useCopyFeedback.d.ts +10 -0
  503. package/build/hooks/useCopyFeedback.js +25 -0
  504. package/build/hooks/useCopyFeedback.js.map +1 -0
  505. package/build/hooks/useDismissOnEscape.cjs +2 -0
  506. package/build/hooks/useDismissOnEscape.cjs.map +1 -0
  507. package/build/hooks/useDismissOnEscape.d.ts +12 -0
  508. package/build/hooks/useDismissOnEscape.js +18 -0
  509. package/build/hooks/useDismissOnEscape.js.map +1 -0
  510. package/build/hooks/useListboxNavigation.cjs +2 -0
  511. package/build/hooks/useListboxNavigation.cjs.map +1 -0
  512. package/build/hooks/useListboxNavigation.d.ts +7 -0
  513. package/build/hooks/useListboxNavigation.js +53 -0
  514. package/build/hooks/useListboxNavigation.js.map +1 -0
  515. package/build/hooks/usePortalSurface.cjs +2 -0
  516. package/build/hooks/usePortalSurface.cjs.map +1 -0
  517. package/build/hooks/usePortalSurface.d.ts +25 -0
  518. package/build/hooks/usePortalSurface.js +19 -0
  519. package/build/hooks/usePortalSurface.js.map +1 -0
  520. package/build/hooks/usePositioning.cjs +2 -0
  521. package/build/hooks/usePositioning.cjs.map +1 -0
  522. package/build/hooks/usePositioning.d.ts +13 -0
  523. package/build/hooks/usePositioning.js +74 -0
  524. package/build/hooks/usePositioning.js.map +1 -0
  525. package/build/hooks/useScrollLock.cjs +2 -0
  526. package/build/hooks/useScrollLock.cjs.map +1 -0
  527. package/build/hooks/useScrollLock.d.ts +2 -0
  528. package/build/hooks/useScrollLock.js +34 -0
  529. package/build/hooks/useScrollLock.js.map +1 -0
  530. package/build/hooks/useSheetViewport.cjs +2 -0
  531. package/build/hooks/useSheetViewport.cjs.map +1 -0
  532. package/build/hooks/useSheetViewport.d.ts +6 -0
  533. package/build/hooks/useSheetViewport.js +29 -0
  534. package/build/hooks/useSheetViewport.js.map +1 -0
  535. package/build/hooks/useStickToBottom.cjs +2 -0
  536. package/build/hooks/useStickToBottom.cjs.map +1 -0
  537. package/build/hooks/useStickToBottom.d.ts +12 -0
  538. package/build/hooks/useStickToBottom.js +39 -0
  539. package/build/hooks/useStickToBottom.js.map +1 -0
  540. package/build/hooks/useUiTheme.cjs +2 -0
  541. package/build/hooks/useUiTheme.cjs.map +1 -0
  542. package/build/hooks/useUiTheme.d.ts +10 -0
  543. package/build/hooks/useUiTheme.js +42 -0
  544. package/build/hooks/useUiTheme.js.map +1 -0
  545. package/build/hooks/useUiTokens.cjs +2 -0
  546. package/build/hooks/useUiTokens.cjs.map +1 -0
  547. package/build/hooks/useUiTokens.d.ts +11 -0
  548. package/build/hooks/useUiTokens.js +36 -0
  549. package/build/hooks/useUiTokens.js.map +1 -0
  550. package/build/hooks/useVirtualList.cjs +2 -0
  551. package/build/hooks/useVirtualList.cjs.map +1 -0
  552. package/build/hooks/useVirtualList.d.ts +13 -0
  553. package/build/hooks/useVirtualList.js +41 -0
  554. package/build/hooks/useVirtualList.js.map +1 -0
  555. package/build/index.cjs +2 -0
  556. package/build/index.cjs.map +1 -0
  557. package/build/index.d.ts +93 -0
  558. package/build/index.js +199 -0
  559. package/build/index.js.map +1 -0
  560. package/build/scss/_index.scss +7 -0
  561. package/build/scss/_mixins.scss +828 -0
  562. package/build/scss/_variables.scss +243 -0
  563. package/build/styles/base.d.ts +0 -0
  564. package/build/styles.css +133 -0
  565. package/build/theme/UiProvider.cjs +2 -0
  566. package/build/theme/UiProvider.cjs.map +1 -0
  567. package/build/theme/UiProvider.d.ts +23 -0
  568. package/build/theme/UiProvider.js +12 -0
  569. package/build/theme/UiProvider.js.map +1 -0
  570. package/build/theme/UiThemeScript.cjs +2 -0
  571. package/build/theme/UiThemeScript.cjs.map +1 -0
  572. package/build/theme/UiThemeScript.d.ts +22 -0
  573. package/build/theme/UiThemeScript.js +8 -0
  574. package/build/theme/UiThemeScript.js.map +1 -0
  575. package/build/theme/context.cjs +2 -0
  576. package/build/theme/context.cjs.map +1 -0
  577. package/build/theme/context.d.ts +5 -0
  578. package/build/theme/context.js +8 -0
  579. package/build/theme/context.js.map +1 -0
  580. package/build/types/charts/AreaChart/index.d.ts +14 -0
  581. package/build/types/charts/BarChart/index.d.ts +16 -0
  582. package/build/types/charts/BoxPlot/index.d.ts +43 -0
  583. package/build/types/charts/ComposedChart/index.d.ts +16 -0
  584. package/build/types/charts/Heatmap/index.d.ts +30 -0
  585. package/build/types/charts/Histogram/index.d.ts +29 -0
  586. package/build/types/charts/LineChart/index.d.ts +14 -0
  587. package/build/types/charts/PieChart/index.d.ts +36 -0
  588. package/build/types/charts/RadarChart/index.d.ts +40 -0
  589. package/build/types/charts/ScatterPlot/index.d.ts +41 -0
  590. package/build/types/charts/core/CartesianChart.d.ts +43 -0
  591. package/build/types/charts/core/ChartFrame.d.ts +55 -0
  592. package/build/types/charts/core/axes.d.ts +37 -0
  593. package/build/types/charts/core/cartesian.d.ts +80 -0
  594. package/build/types/charts/core/format.d.ts +19 -0
  595. package/build/types/charts/core/margins.d.ts +9 -0
  596. package/build/types/charts/core/palette.d.ts +11 -0
  597. package/build/types/charts/core/path.d.ts +24 -0
  598. package/build/types/charts/core/scale.d.ts +40 -0
  599. package/build/types/charts/core/series.d.ts +11 -0
  600. package/build/types/charts/core/spatial.d.ts +12 -0
  601. package/build/types/charts/core/stats.d.ts +34 -0
  602. package/build/types/charts/core/types.d.ts +31 -0
  603. package/build/types/charts/core/useChartWidth.d.ts +7 -0
  604. package/build/types/charts/index.d.ts +21 -0
  605. package/build/types/chat/ActionList/index.d.ts +46 -0
  606. package/build/types/chat/AppBar/index.d.ts +21 -0
  607. package/build/types/chat/ChatMessage/index.d.ts +24 -0
  608. package/build/types/chat/ChatThread/index.d.ts +24 -0
  609. package/build/types/chat/Citation/index.d.ts +15 -0
  610. package/build/types/chat/CodeBlock/format.d.ts +7 -0
  611. package/build/types/chat/CodeBlock/grammars.d.ts +44 -0
  612. package/build/types/chat/CodeBlock/highlight.d.ts +22 -0
  613. package/build/types/chat/CodeBlock/index.d.ts +33 -0
  614. package/build/types/chat/DescriptionList/index.d.ts +16 -0
  615. package/build/types/chat/Legend/index.d.ts +21 -0
  616. package/build/types/chat/MessageActions/index.d.ts +21 -0
  617. package/build/types/chat/PromptInput/index.d.ts +47 -0
  618. package/build/types/chat/PromptSuggestions/index.d.ts +25 -0
  619. package/build/types/chat/Prose/index.d.ts +15 -0
  620. package/build/types/chat/ReasoningBlock/index.d.ts +24 -0
  621. package/build/types/chat/ReasoningText/index.d.ts +14 -0
  622. package/build/types/chat/SegmentBar/index.d.ts +46 -0
  623. package/build/types/chat/SourceList/index.d.ts +25 -0
  624. package/build/types/chat/TerminalOutput/index.d.ts +25 -0
  625. package/build/types/chat/ToolCall/index.d.ts +41 -0
  626. package/build/types/chat/index.d.ts +26 -0
  627. package/build/types/combobox.type.d.ts +49 -0
  628. package/build/types/common-element-props.type.d.ts +8 -0
  629. package/build/types/helpers/class-name.helper.d.ts +3 -0
  630. package/build/types/helpers/component.helper.d.ts +13 -0
  631. package/build/types/helpers/label.helper.d.ts +12 -0
  632. package/build/types/hook.type.d.ts +36 -0
  633. package/build/types/link.type.d.ts +14 -0
  634. package/build/types/positioning.type.d.ts +38 -0
  635. package/build/types/theme.type.d.ts +181 -0
  636. package/build/types/types/common-element-props.type.d.ts +8 -0
  637. package/build/types/types/link.type.d.ts +14 -0
  638. package/build/types/types/theme.type.d.ts +181 -0
  639. package/package.json +487 -4
@@ -0,0 +1 @@
1
+ @layer ui{.ui-modal-3IDi9{border:none;padding:0;background:none;color:var(--hd-text);max-width:min(92vw,560px);width:100%;max-height:90dvh}.ui-modal--sm-A7WsS{max-width:min(92vw,440px)}.ui-modal--lg-z99Em{max-width:min(92vw,880px)}.ui-modal--xl-g3d6F{max-width:min(94vw,1040px)}.ui-modal-3IDi9{opacity:0;translate:0 6px;transition:opacity var(--hd-duration-fast) var(--hd-ease-standard),translate var(--hd-duration-fast) var(--hd-ease-standard),overlay var(--hd-duration-fast) allow-discrete,display var(--hd-duration-fast) allow-discrete}.ui-modal-3IDi9[open]{opacity:1;translate:0 0}@starting-style{.ui-modal-3IDi9[open]{opacity:0;translate:0 6px}}@media (prefers-reduced-motion: reduce){.ui-modal-3IDi9{transition:none}}.ui-modal-3IDi9::backdrop{opacity:0;transition:opacity var(--hd-duration-fast) var(--hd-ease-standard),overlay var(--hd-duration-fast) allow-discrete,display var(--hd-duration-fast) allow-discrete}.ui-modal-3IDi9[open]::backdrop{opacity:1}@starting-style{.ui-modal-3IDi9[open]::backdrop{opacity:0}}@media (prefers-reduced-motion: reduce){.ui-modal-3IDi9::backdrop{transition:none}}.ui-modal-3IDi9:focus-visible{outline:none}.ui-modal-3IDi9:focus-visible .ui-modal__panel--qLSz{outline:var(--ui-ring-width, 2px) solid var(--hd-focus);outline-offset:var(--ui-ring-offset, -2px)}.ui-modal-3IDi9::backdrop{background-color:var(--hd-scrim);-webkit-backdrop-filter:blur(var(--ui-scrim-blur, 3px));backdrop-filter:blur(var(--ui-scrim-blur, 3px))}@media (max-width: 640px){.ui-modal-3IDi9,.ui-modal--sm-A7WsS,.ui-modal--lg-z99Em,.ui-modal--xl-g3d6F{max-width:none;width:100%;max-height:calc(92dvh - env(safe-area-inset-top,0px));margin:auto 0 0;margin-bottom:max(env(safe-area-inset-bottom,0px),var(--ui-sheet-inset-bottom, 0px))}.ui-modal-3IDi9:not([open]),.ui-modal-3IDi9[open]{opacity:0;translate:0 100%;transition:opacity var(--hd-duration-base) var(--hd-ease-standard),translate var(--hd-duration-base) var(--hd-ease-standard),overlay var(--hd-duration-base) allow-discrete,display var(--hd-duration-base) allow-discrete}.ui-modal-3IDi9:not([open])[open],.ui-modal-3IDi9[open][open]{opacity:1;translate:0 0}@starting-style{.ui-modal-3IDi9:not([open])[open],.ui-modal-3IDi9[open][open]{opacity:0;translate:0 100%}}}@media (max-width: 640px) and (prefers-reduced-motion: reduce){.ui-modal-3IDi9:not([open]),.ui-modal-3IDi9[open]{transition:none}}.ui-modal__panel--qLSz{display:flex;flex-direction:column;max-height:90dvh;background-color:var(--hd-bg-overlay);border:1px solid var(--hd-border);border-radius:var(--hd-radius-lg);box-shadow:var(--hd-shadow-3);overflow:hidden}@media (max-width: 640px){.ui-modal__panel--qLSz{max-height:92dvh;border-radius:var(--hd-radius-lg) var(--hd-radius-lg) 0 0;border-bottom:none}}.ui-modal__header-meWm6{display:flex;align-items:flex-start;gap:var(--hd-space-3);padding:var(--hd-space-4) var(--hd-space-5);border-bottom:1px solid var(--hd-border);flex-shrink:0}@media (max-width: 640px){.ui-modal__header-meWm6{padding:var(--hd-space-4);padding-left:max(var(--hd-space-4),env(safe-area-inset-left,0px));padding-right:max(var(--hd-space-4),env(safe-area-inset-right,0px))}}.ui-modal__icon-df2dd{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;flex-shrink:0;border-radius:var(--hd-radius-sm);font-size:24px}.ui-modal__icon--neutral-QSL7c{background-color:var(--hd-bg-raised);border:1px solid var(--hd-border);color:var(--hd-text-2)}.ui-modal__icon--danger-6V90a{background-color:var(--hd-danger-bg);border:1px solid var(--hd-danger-line);color:var(--hd-danger-fg)}.ui-modal__icon--warning-a--FX{background-color:var(--hd-warning-bg);border:1px solid var(--hd-warning-line);color:var(--hd-warning-fg)}.ui-modal__icon--success-YWxZs{background-color:var(--hd-success-bg);border:1px solid var(--hd-success-line);color:var(--hd-success-fg)}.ui-modal__icon--info-WRLah{background-color:var(--hd-info-bg);border:1px solid var(--hd-info-line);color:var(--hd-info-fg)}.ui-modal__heading-PwDS8{display:flex;flex-direction:column;gap:var(--hd-space-1);flex:1;min-width:0;padding-top:2px}.ui-modal__title-80Sh6{font-family:var(--hd-font-display);font-size:var(--hd-type-h4-size);font-weight:var(--hd-type-h4-weight);font-stretch:var(--hd-type-h4-stretch);line-height:var(--hd-type-h4-line-height);letter-spacing:var(--hd-type-h4-letter-spacing);color:var(--hd-text);margin:0;text-wrap:balance}.ui-modal__description-fsCHI{font-size:var(--hd-type-small-size);line-height:var(--hd-type-body-line-height);color:var(--hd-text-2);margin:0;max-width:68ch}.ui-modal__close-vFPbw{flex-shrink:0;margin-top:-2px}.ui-modal__body-PDF12{padding:var(--hd-space-5);position:relative;overflow-y:auto;flex:1;scrollbar-width:thin;scrollbar-color:var(--hd-border-strong) transparent}.ui-modal__body-PDF12::-webkit-scrollbar{width:8px;height:8px}.ui-modal__body-PDF12::-webkit-scrollbar-track{background:transparent}.ui-modal__body-PDF12::-webkit-scrollbar-thumb{background-color:var(--hd-border-strong);border-radius:var(--hd-radius-pill);border:2px solid transparent;background-clip:content-box}.ui-modal__body-PDF12::-webkit-scrollbar-thumb:hover{background-color:var(--hd-text-3)}@media (max-width: 640px){.ui-modal__body-PDF12{padding:var(--hd-space-4);padding-left:max(var(--hd-space-4),env(safe-area-inset-left,0px));padding-right:max(var(--hd-space-4),env(safe-area-inset-right,0px))}.ui-modal__body-PDF12:last-child{padding-bottom:max(var(--hd-space-4),env(safe-area-inset-bottom,0px) - max(env(safe-area-inset-bottom,0px),var(--ui-sheet-inset-bottom, 0px)))}}.ui-modal__footer-CCCkx{display:flex;flex-wrap:wrap;align-items:center;gap:var(--hd-space-2);justify-content:flex-end;padding:var(--hd-space-4) var(--hd-space-5);border-top:1px solid var(--hd-border);background-color:var(--hd-bg-raised);flex-shrink:0}@media (max-width: 640px){.ui-modal__footer-CCCkx{padding:var(--hd-space-3) var(--hd-space-4);padding-left:max(var(--hd-space-4),env(safe-area-inset-left,0px));padding-right:max(var(--hd-space-4),env(safe-area-inset-right,0px));padding-bottom:max(var(--hd-space-3),env(safe-area-inset-bottom,0px) - max(env(safe-area-inset-bottom,0px),var(--ui-sheet-inset-bottom, 0px)));flex-direction:column-reverse}.ui-modal__footer-CCCkx>*{width:100%}}}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("react/jsx-runtime"),_=require("react"),m=require("../../helpers/class-name.helper.cjs"),a={default:{"header":"ui-header-yJwus","header__top":"ui-header__top-UK4si","header__breadcrumb":"ui-header__breadcrumb-A2j0i","header__text":"ui-header__text-HIo8U","header__eyebrow":"ui-header__eyebrow-dZ9Zc","header__titleRow":"ui-header__titleRow-KgDZj","header__title":"ui-header__title-s1giF","header__meta":"ui-header__meta-UxuaD","header__description":"ui-header__description-NXbbC","header__actions":"ui-header__actions-aShpt"}},o=({title:c,eyebrow:s,description:d,actions:l,breadcrumb:r,meta:t,children:i,as:h="h1",className:n,testId:u})=>e.jsxs("header",{className:m.cx(a.default.header,n),"data-testid":u,children:[r&&e.jsx("div",{className:a.default.header__breadcrumb,children:r}),e.jsxs("div",{className:a.default.header__top,children:[e.jsxs("div",{className:a.default.header__text,children:[s&&e.jsx("span",{className:a.default.header__eyebrow,children:s}),e.jsxs("div",{className:a.default.header__titleRow,children:[e.jsx(h,{className:a.default.header__title,children:c}),t&&e.jsx("span",{className:a.default.header__meta,children:t})]}),d&&e.jsx("p",{className:a.default.header__description,children:d})]}),l&&e.jsx("div",{className:a.default.header__actions,children:l})]}),i]}),x=_.memo(o);exports.default=x;
2
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs","sources":["../../../src/components/PageHeader/index.tsx"],"sourcesContent":["import { type FC, memo, type ReactNode } from 'react';\n\nimport { cx } from '../../helpers/class-name.helper';\n\nimport styles from './index.module.scss';\n\ntype Props = {\n title: string;\n /** Başlığın üstündeki küçük bağlam etiketi (\"HESABIM\", \"KATEGORİ\"). */\n eyebrow?: string;\n /** Bir cümlelik açıklama. 68ch ile sınırlı tutulur. */\n description?: ReactNode;\n /** Sağ tarafta duran eylemler. */\n actions?: ReactNode;\n /** Başlık satırının üstündeki kırıntı yolu. */\n breadcrumb?: ReactNode;\n /** Başlığın yanındaki sayaç (\"1.248 kayıt\"). */\n meta?: ReactNode;\n /** Başlık bloğunun altında duran ek içerik (filtre şeridi, sekmeler). */\n children?: ReactNode;\n /** `h1` sayfada bir kez bulunur; iç bölümler `h2` alır. */\n as?: 'h1' | 'h2';\n className?: string;\n testId?: string;\n};\n\n/** Sayfa başlığı — her ekranın aynı giriş bloğu. */\nconst PageHeader: FC<Props> = ({\n title,\n eyebrow,\n description,\n actions,\n breadcrumb,\n meta,\n children,\n as: Heading = 'h1',\n className,\n testId,\n}) => (\n <header className={cx(styles.header, className)} data-testid={testId}>\n {/*\n Yuva KENDI kutusunda: `header` bir dikey esnek kutu ve yuvanin cocugu\n dogrudan ona dustugunde `align-items: stretch` aliyordu. `Breadcrumb`\n zaten tam genislikte akan bir seritti, fark etmiyordu; icine bir dugme\n konunca (bir kayit formunun \"Geri\"si) dugme baslik genisligine yayilip\n ortalanmis metinle cikiyordu. Yuva artik icerigi kadar.\n */}\n {breadcrumb && <div className={styles.header__breadcrumb}>{breadcrumb}</div>}\n\n <div className={styles.header__top}>\n <div className={styles.header__text}>\n {eyebrow && <span className={styles.header__eyebrow}>{eyebrow}</span>}\n\n <div className={styles.header__titleRow}>\n <Heading className={styles.header__title}>{title}</Heading>\n {meta && <span className={styles.header__meta}>{meta}</span>}\n </div>\n\n {description && <p className={styles.header__description}>{description}</p>}\n </div>\n\n {actions && <div className={styles.header__actions}>{actions}</div>}\n </div>\n\n {children}\n </header>\n);\n\nexport default /*#__PURE__*/ memo(PageHeader) as typeof PageHeader;\n"],"names":["PageHeader","title","eyebrow","description","actions","breadcrumb","meta","children","Heading","className","testId","jsxs","cx","styles","jsx","index"],"mappings":"0PA2BMA,EAAwB,CAAC,CAC7B,MAAAC,EACA,QAAAC,EACA,YAAAC,EACA,QAAAC,EACA,WAAAC,EACA,KAAAC,EACA,SAAAC,EACA,GAAIC,EAAU,KACd,UAAAC,EACA,OAAAC,CACF,IACEC,OAAC,UAAO,UAAWC,EAAAA,GAAGC,EAAAA,QAAO,OAAQJ,CAAS,EAAG,cAAaC,EAQ3D,SAAA,CAAAL,GAAcS,EAAAA,IAAC,MAAA,CAAI,UAAWD,EAAAA,QAAO,mBAAqB,SAAAR,EAAW,EAEtEM,EAAAA,KAAC,MAAA,CAAI,UAAWE,EAAAA,QAAO,YACrB,SAAA,CAAAF,EAAAA,KAAC,MAAA,CAAI,UAAWE,EAAAA,QAAO,aACpB,SAAA,CAAAX,GAAWY,EAAAA,IAAC,OAAA,CAAK,UAAWD,EAAAA,QAAO,gBAAkB,SAAAX,EAAQ,EAE9DS,EAAAA,KAAC,MAAA,CAAI,UAAWE,EAAAA,QAAO,iBACrB,SAAA,CAAAC,EAAAA,IAACN,EAAA,CAAQ,UAAWK,EAAAA,QAAO,cAAgB,SAAAZ,EAAM,EAChDK,GAAQQ,EAAAA,IAAC,OAAA,CAAK,UAAWD,EAAAA,QAAO,aAAe,SAAAP,CAAA,CAAK,CAAA,EACvD,EAECH,GAAeW,EAAAA,IAAC,IAAA,CAAE,UAAWD,EAAAA,QAAO,oBAAsB,SAAAV,CAAA,CAAY,CAAA,EACzE,EAECC,GAAWU,EAAAA,IAAC,MAAA,CAAI,UAAWD,EAAAA,QAAO,gBAAkB,SAAAT,CAAA,CAAQ,CAAA,EAC/D,EAECG,CAAA,EACH,EAGFQ,SAAkCf,CAAU"}
@@ -0,0 +1,24 @@
1
+ import { FC, ReactNode } from 'react';
2
+ type Props = {
3
+ title: string;
4
+ /** Başlığın üstündeki küçük bağlam etiketi ("HESABIM", "KATEGORİ"). */
5
+ eyebrow?: string;
6
+ /** Bir cümlelik açıklama. 68ch ile sınırlı tutulur. */
7
+ description?: ReactNode;
8
+ /** Sağ tarafta duran eylemler. */
9
+ actions?: ReactNode;
10
+ /** Başlık satırının üstündeki kırıntı yolu. */
11
+ breadcrumb?: ReactNode;
12
+ /** Başlığın yanındaki sayaç ("1.248 kayıt"). */
13
+ meta?: ReactNode;
14
+ /** Başlık bloğunun altında duran ek içerik (filtre şeridi, sekmeler). */
15
+ children?: ReactNode;
16
+ /** `h1` sayfada bir kez bulunur; iç bölümler `h2` alır. */
17
+ as?: 'h1' | 'h2';
18
+ className?: string;
19
+ testId?: string;
20
+ };
21
+ /** Sayfa başlığı — her ekranın aynı giriş bloğu. */
22
+ declare const PageHeader: FC<Props>;
23
+ declare const _default: typeof PageHeader;
24
+ export default _default;
@@ -0,0 +1,34 @@
1
+ import { jsxs as s, jsx as a } from "react/jsx-runtime";
2
+ import { memo as o } from "react";
3
+ import { cx as N } from "../../helpers/class-name.helper.js";
4
+ const e = {"header":"ui-header-yJwus","header__top":"ui-header__top-UK4si","header__breadcrumb":"ui-header__breadcrumb-A2j0i","header__text":"ui-header__text-HIo8U","header__eyebrow":"ui-header__eyebrow-dZ9Zc","header__titleRow":"ui-header__titleRow-KgDZj","header__title":"ui-header__title-s1giF","header__meta":"ui-header__meta-UxuaD","header__description":"ui-header__description-NXbbC","header__actions":"ui-header__actions-aShpt"};
5
+ const p = ({
6
+ title: h,
7
+ eyebrow: d,
8
+ description: r,
9
+ actions: l,
10
+ breadcrumb: c,
11
+ meta: i,
12
+ children: m,
13
+ as: t = "h1",
14
+ className: _,
15
+ testId: n
16
+ }) => /* @__PURE__ */ s("header", { className: N(e.header, _), "data-testid": n, children: [
17
+ c && /* @__PURE__ */ a("div", { className: e.header__breadcrumb, children: c }),
18
+ /* @__PURE__ */ s("div", { className: e.header__top, children: [
19
+ /* @__PURE__ */ s("div", { className: e.header__text, children: [
20
+ d && /* @__PURE__ */ a("span", { className: e.header__eyebrow, children: d }),
21
+ /* @__PURE__ */ s("div", { className: e.header__titleRow, children: [
22
+ /* @__PURE__ */ a(t, { className: e.header__title, children: h }),
23
+ i && /* @__PURE__ */ a("span", { className: e.header__meta, children: i })
24
+ ] }),
25
+ r && /* @__PURE__ */ a("p", { className: e.header__description, children: r })
26
+ ] }),
27
+ l && /* @__PURE__ */ a("div", { className: e.header__actions, children: l })
28
+ ] }),
29
+ m
30
+ ] }), g = /* @__PURE__ */ o(p);
31
+ export {
32
+ g as default
33
+ };
34
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../src/components/PageHeader/index.tsx"],"sourcesContent":["import { type FC, memo, type ReactNode } from 'react';\n\nimport { cx } from '../../helpers/class-name.helper';\n\nimport styles from './index.module.scss';\n\ntype Props = {\n title: string;\n /** Başlığın üstündeki küçük bağlam etiketi (\"HESABIM\", \"KATEGORİ\"). */\n eyebrow?: string;\n /** Bir cümlelik açıklama. 68ch ile sınırlı tutulur. */\n description?: ReactNode;\n /** Sağ tarafta duran eylemler. */\n actions?: ReactNode;\n /** Başlık satırının üstündeki kırıntı yolu. */\n breadcrumb?: ReactNode;\n /** Başlığın yanındaki sayaç (\"1.248 kayıt\"). */\n meta?: ReactNode;\n /** Başlık bloğunun altında duran ek içerik (filtre şeridi, sekmeler). */\n children?: ReactNode;\n /** `h1` sayfada bir kez bulunur; iç bölümler `h2` alır. */\n as?: 'h1' | 'h2';\n className?: string;\n testId?: string;\n};\n\n/** Sayfa başlığı — her ekranın aynı giriş bloğu. */\nconst PageHeader: FC<Props> = ({\n title,\n eyebrow,\n description,\n actions,\n breadcrumb,\n meta,\n children,\n as: Heading = 'h1',\n className,\n testId,\n}) => (\n <header className={cx(styles.header, className)} data-testid={testId}>\n {/*\n Yuva KENDI kutusunda: `header` bir dikey esnek kutu ve yuvanin cocugu\n dogrudan ona dustugunde `align-items: stretch` aliyordu. `Breadcrumb`\n zaten tam genislikte akan bir seritti, fark etmiyordu; icine bir dugme\n konunca (bir kayit formunun \"Geri\"si) dugme baslik genisligine yayilip\n ortalanmis metinle cikiyordu. Yuva artik icerigi kadar.\n */}\n {breadcrumb && <div className={styles.header__breadcrumb}>{breadcrumb}</div>}\n\n <div className={styles.header__top}>\n <div className={styles.header__text}>\n {eyebrow && <span className={styles.header__eyebrow}>{eyebrow}</span>}\n\n <div className={styles.header__titleRow}>\n <Heading className={styles.header__title}>{title}</Heading>\n {meta && <span className={styles.header__meta}>{meta}</span>}\n </div>\n\n {description && <p className={styles.header__description}>{description}</p>}\n </div>\n\n {actions && <div className={styles.header__actions}>{actions}</div>}\n </div>\n\n {children}\n </header>\n);\n\nexport default /*#__PURE__*/ memo(PageHeader) as typeof PageHeader;\n"],"names":["PageHeader","title","eyebrow","description","actions","breadcrumb","meta","children","Heading","className","testId","jsxs","cx","styles","jsx","index"],"mappings":";;;;AA2BA,MAAMA,IAAwB,CAAC;AAAA,EAC7B,OAAAC;AAAA,EACA,SAAAC;AAAA,EACA,aAAAC;AAAA,EACA,SAAAC;AAAA,EACA,YAAAC;AAAA,EACA,MAAAC;AAAA,EACA,UAAAC;AAAA,EACA,IAAIC,IAAU;AAAA,EACd,WAAAC;AAAA,EACA,QAAAC;AACF,MACE,gBAAAC,EAAC,YAAO,WAAWC,EAAGC,EAAO,QAAQJ,CAAS,GAAG,eAAaC,GAQ3D,UAAA;AAAA,EAAAL,KAAc,gBAAAS,EAAC,OAAA,EAAI,WAAWD,EAAO,oBAAqB,UAAAR,GAAW;AAAA,EAEtE,gBAAAM,EAAC,OAAA,EAAI,WAAWE,EAAO,aACrB,UAAA;AAAA,IAAA,gBAAAF,EAAC,OAAA,EAAI,WAAWE,EAAO,cACpB,UAAA;AAAA,MAAAX,KAAW,gBAAAY,EAAC,QAAA,EAAK,WAAWD,EAAO,iBAAkB,UAAAX,GAAQ;AAAA,MAE9D,gBAAAS,EAAC,OAAA,EAAI,WAAWE,EAAO,kBACrB,UAAA;AAAA,QAAA,gBAAAC,EAACN,GAAA,EAAQ,WAAWK,EAAO,eAAgB,UAAAZ,GAAM;AAAA,QAChDK,KAAQ,gBAAAQ,EAAC,QAAA,EAAK,WAAWD,EAAO,cAAe,UAAAP,EAAA,CAAK;AAAA,MAAA,GACvD;AAAA,MAECH,KAAe,gBAAAW,EAAC,KAAA,EAAE,WAAWD,EAAO,qBAAsB,UAAAV,EAAA,CAAY;AAAA,IAAA,GACzE;AAAA,IAECC,KAAW,gBAAAU,EAAC,OAAA,EAAI,WAAWD,EAAO,iBAAkB,UAAAT,EAAA,CAAQ;AAAA,EAAA,GAC/D;AAAA,EAECG;AAAA,GACH,GAGFQ,sBAAkCf,CAAU;"}
@@ -0,0 +1 @@
1
+ @layer ui{.ui-header-yJwus{display:flex;flex-direction:column;gap:var(--hd-space-4)}@media (max-width: 640px){.ui-header-yJwus{gap:var(--hd-space-3)}}.ui-header__top-UK4si{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--hd-space-5);flex-wrap:wrap}.ui-header__breadcrumb-A2j0i{align-self:flex-start;max-inline-size:100%;min-inline-size:0}.ui-header__text-HIo8U{display:flex;flex-direction:column;gap:var(--hd-space-2);min-width:0;flex:1 1 auto}.ui-header__eyebrow-dZ9Zc{font-family:var(--hd-font-body);font-size:var(--hd-type-caption-size);font-weight:var(--hd-font-weight-semibold);letter-spacing:.045em;text-transform:uppercase;color:var(--hd-text-2)}.ui-header__titleRow-KgDZj{display:flex;align-items:baseline;gap:var(--hd-space-3);flex-wrap:wrap}.ui-header__title-s1giF{font-family:var(--hd-font-display);font-size:var(--hd-type-h2-size);font-weight:var(--hd-type-h2-weight);font-stretch:var(--hd-type-h2-stretch);line-height:var(--hd-type-h2-line-height);letter-spacing:var(--hd-type-h2-letter-spacing);color:var(--hd-text);text-wrap:balance;margin:0}.ui-header__meta-UxuaD{font-family:var(--hd-font-body);font-size:var(--hd-type-small-size);font-weight:var(--hd-font-weight-medium);color:var(--hd-text-2);font-variant-numeric:tabular-nums;white-space:nowrap}.ui-header__description-NXbbC{font-size:var(--hd-type-body-size);line-height:var(--hd-type-body-line-height);color:var(--hd-text-2);margin:0;max-width:68ch}.ui-header__actions-aShpt{display:flex;flex-wrap:wrap;align-items:center;gap:var(--hd-space-2);flex-shrink:0}@media (max-width: 640px){.ui-header__actions-aShpt{width:100%}.ui-header__actions-aShpt>*{flex:1 1 auto}}}
@@ -0,0 +1,2 @@
1
+ "use client";"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const t=require("react/jsx-runtime"),h=require("react"),K=require("react-bootstrap-icons"),m=require("../../helpers/class-name.helper.cjs"),q=require("../../helpers/label.helper.cjs"),D=require("../../helpers/scroll.helper.cjs"),F=require("../../hooks/useAnnounce.cjs"),W=require("../../theme/context.cjs"),B=require("../../enums/ui-size.enum.cjs"),G=require("../../enums/ui-variant.enum.cjs"),I=require("../Button/index.cjs"),O=require("../IconButton/index.cjs"),M=require("../Link/index.cjs"),c={default:{"pagination":"ui-pagination-K-L20","pagination__list":"ui-pagination__list--9HqC","pagination__arrow":"ui-pagination__arrow-XIgoX","pagination__page":"ui-pagination__page-TpoJM","pagination__page--active":"ui-pagination__page--active-XHeaz","pagination__gap":"ui-pagination__gap-qoDyI"}},U=(i,n)=>{if(n<=7)return Array.from({length:n},(r,a)=>a+1);const u=new Set([1,n,i]);i-1>1&&u.add(i-1),i+1<n&&u.add(i+1);const f=[...u].sort((r,a)=>r-a),d=[];return f.forEach((r,a)=>{a>0&&r-f[a-1]>1&&d.push("gap"),d.push(r)}),d},V=({page:i,totalPages:n,label:u,previousLabel:f,nextLabel:d,buildHref:r,onPageChange:a,linkProps:l,formatAnnouncement:x,scrollTo:R,className:T,testId:$})=>{var S,g,w;const{labels:s}=W.useUi(),j=F.default(),L=h.useRef(i);h.useEffect(()=>{L.current!==i&&(L.current=i,x&&j(x(i,n)))},[i,n,x,j]);const E=h.useMemo(()=>U(i,n),[i,n]);if(n<=1)return null;const N=e=>{R==="top"&&e!==i&&D.scrollWindowToTop()},b=e=>{a&&(a(e),N(e))},p=l==null?void 0:l.onClick,C=(e,o)=>{p==null||p(e),!(e.defaultPrevented||e.button!==0)&&(e.metaKey||e.ctrlKey||e.shiftKey||e.altKey||N(o))},y=(e,o,_)=>{const A=e<1||e>n;return r&&!A?t.jsx(M.default,{href:r(e),className:c.default.pagination__arrow,"aria-label":o,...l,onClick:z=>C(z,e),children:_}):t.jsx(O.default,{className:c.default.pagination__arrow,icon:_,label:o,variant:"outline",disabled:A,onClick:()=>b(e)})};return t.jsxs("nav",{className:m.cx(c.default.pagination,T),"aria-label":q.resolveLabel("Pagination.label",u,(S=s==null?void 0:s.pagination)==null?void 0:S.label),"data-testid":$,children:[y(i-1,q.resolveLabel("Pagination.previousLabel",f,(g=s==null?void 0:s.pagination)==null?void 0:g.previous),t.jsx(K.CaretLeftFill,{"aria-hidden":!0})),t.jsx("ul",{className:c.default.pagination__list,children:E.map((e,o)=>e==="gap"?t.jsx("li",{className:c.default.pagination__gap,"aria-hidden":!0,children:"…"},`gap-${o}`):t.jsx("li",{children:r?t.jsx(M.default,{href:r(e),className:m.cx(c.default.pagination__page,e===i&&c.default["pagination__page--active"]),"aria-current":e===i?"page":void 0,...l,onClick:_=>C(_,e),children:e}):t.jsx(I.default,{variant:G.default.SECONDARY,size:B.default.SMALL,className:m.cx(c.default.pagination__page,e===i&&c.default["pagination__page--active"]),"aria-current":e===i?"page":void 0,onClick:()=>b(e),children:e})},e))}),y(i+1,q.resolveLabel("Pagination.nextLabel",d,(w=s==null?void 0:s.pagination)==null?void 0:w.next),t.jsx(K.CaretRightFill,{"aria-hidden":!0}))]})},Y=h.memo(V);exports.default=Y;
2
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs","sources":["../../../src/components/Pagination/index.tsx"],"sourcesContent":["'use client';\n\nimport { type FC, type MouseEvent, type ReactNode, memo, useEffect, useMemo, useRef } from 'react';\n\nimport { CaretLeftFill, CaretRightFill } from 'react-bootstrap-icons';\n\nimport { cx } from '../../helpers/class-name.helper';\nimport { resolveLabel } from '../../helpers/label.helper';\nimport { scrollWindowToTop } from '../../helpers/scroll.helper';\nimport useAnnounce from '../../hooks/useAnnounce';\nimport { useUi } from '../../theme/context';\nimport UISize from '../../enums/ui-size.enum';\nimport UIVariant from '../../enums/ui-variant.enum';\nimport type { UiLinkExtraProps } from '../../types/link.type';\nimport Button from '../Button';\nimport IconButton from '../IconButton';\nimport UiLink from '../Link';\n\nimport styles from './index.module.scss';\n\ntype BaseProps = {\n page: number;\n totalPages: number;\n /** Gezinme bölgesinin erişilebilir adı. */\n label?: string;\n /** Verilmezse `labels.pagination.previous`. */\n previousLabel?: string;\n /** Verilmezse `labels.pagination.next`. */\n nextLabel?: string;\n /** Sayfa değiştiğinde ekran okuyucuya duyurulacak metin (\"3. sayfa · 1.248 sonuç\"). */\n formatAnnouncement?: (page: number, totalPages: number) => string;\n /**\n * Sayfa değiştiren bir tıklamadan sonra kaydırma. `'top'` verilirse pencere en üste alınır —\n * çağıran tarafta kaydırma kodu yazılmaz.\n */\n scrollTo?: 'top';\n className?: string;\n testId?: string;\n};\n\ntype LinkProps = BaseProps & {\n /** Sayfa numarasının adresini üretir. */\n buildHref: (page: number) => string;\n onPageChange?: never;\n /** Yönlendiriciye geçirilecek ek props (`{ scroll: false }` gibi). */\n linkProps?: UiLinkExtraProps;\n};\n\ntype ButtonProps = BaseProps & {\n /** Sayfa değişimi adres çubuğu YERİNE buraya bildirilir. */\n onPageChange: (page: number) => void;\n buildHref?: never;\n linkProps?: never;\n};\n\ntype Props = LinkProps | ButtonProps;\n\n/** Kenarlarda 1 ve son sayfa her zaman gorunur; arasi kisaltilir. */\nconst buildPageList = (page: number, totalPages: number): (number | 'gap')[] => {\n if (totalPages <= 7) return Array.from({ length: totalPages }, (_, index) => index + 1);\n\n const pages = new Set<number>([1, totalPages, page]);\n if (page - 1 > 1) pages.add(page - 1);\n if (page + 1 < totalPages) pages.add(page + 1);\n\n const sorted = [...pages].sort((left, right) => left - right);\n const pagesWithGaps: (number | 'gap')[] = [];\n\n sorted.forEach((value, index) => {\n if (index > 0 && value - sorted[index - 1] > 1) pagesWithGaps.push('gap');\n pagesWithGaps.push(value);\n });\n\n return pagesWithGaps;\n};\n\n/** Sayfalama. */\nconst Pagination: FC<Props> = ({\n page,\n totalPages,\n label,\n previousLabel,\n nextLabel,\n buildHref,\n onPageChange,\n linkProps,\n formatAnnouncement,\n scrollTo,\n className,\n testId,\n}) => {\n const { labels } = useUi();\n const announce = useAnnounce();\n\n /*\n * Sayfa DEGISTIGINDE duyurulur, ilk cizimde degil: acilista \"1. sayfa\" demek, kullanicinin\n * sormadigi bir soruyu cevaplamak ve ekran okuyucunun sayfa…\n */\n const previousPage = useRef(page);\n\n useEffect(() => {\n if (previousPage.current === page) return;\n previousPage.current = page;\n\n if (formatAnnouncement) announce(formatAnnouncement(page, totalPages));\n }, [page, totalPages, formatAnnouncement, announce]);\n const pages = useMemo(() => buildPageList(page, totalPages), [page, totalPages]);\n\n if (totalPages <= 1) return null;\n\n /*\n * Sayfa GERCEKTEN degistiyse kaydirilir: etkin sayfaya basmak icerigi degistirmiyor, oyleyse\n * gorunumu de degistirmemeli.\n */\n const scrollAfterChange = (target: number) => {\n if (scrollTo === 'top' && target !== page) scrollWindowToTop();\n };\n\n const goTo = (target: number) => {\n if (!onPageChange) return;\n\n onPageChange(target);\n scrollAfterChange(target);\n };\n\n const extraOnClick = linkProps?.onClick as\n ((event: MouseEvent<HTMLAnchorElement>) => void) | undefined;\n\n /*\n * Yeni sekmede acan tiklamada (orta tus, Ctrl/Cmd) MEVCUT sayfa yerinde kalir; onu basa almak\n * kullanicinin okudugu yeri elinden almak olurdu.\n */\n const handleLinkClick = (event: MouseEvent<HTMLAnchorElement>, target: number) => {\n extraOnClick?.(event);\n\n if (event.defaultPrevented || event.button !== 0) return;\n if (event.metaKey || event.ctrlKey || event.shiftKey || event.altKey) return;\n\n scrollAfterChange(target);\n };\n\n /* Baglanti kipinde oklar da BAGLANTIDIR. */\n const renderArrow = (target: number, arrowLabel: string, icon: ReactNode) => {\n const isDisabled = target < 1 || target > totalPages;\n\n if (buildHref && !isDisabled)\n return (\n <UiLink\n href={buildHref(target)}\n className={styles.pagination__arrow}\n aria-label={arrowLabel}\n {...linkProps}\n onClick={event => handleLinkClick(event, target)}\n >\n {icon}\n </UiLink>\n );\n\n return (\n <IconButton\n className={styles.pagination__arrow}\n icon={icon}\n label={arrowLabel}\n variant=\"outline\"\n disabled={isDisabled}\n onClick={() => goTo(target)}\n />\n );\n };\n\n return (\n <nav\n className={cx(styles.pagination, className)}\n aria-label={resolveLabel('Pagination.label', label, labels?.pagination?.label)}\n data-testid={testId}\n >\n {renderArrow(\n page - 1,\n resolveLabel('Pagination.previousLabel', previousLabel, labels?.pagination?.previous),\n <CaretLeftFill aria-hidden />,\n )}\n\n <ul className={styles.pagination__list}>\n {pages.map((value, index) =>\n value === 'gap' ? (\n <li key={`gap-${index}`} className={styles.pagination__gap} aria-hidden>\n …\n </li>\n ) : (\n <li key={value}>\n {buildHref ? (\n <UiLink\n href={buildHref(value)}\n className={cx(\n styles.pagination__page,\n value === page && styles['pagination__page--active'],\n )}\n aria-current={value === page ? 'page' : undefined}\n {...linkProps}\n onClick={event => handleLinkClick(event, value)}\n >\n {value}\n </UiLink>\n ) : (\n <Button\n variant={UIVariant.SECONDARY}\n size={UISize.SMALL}\n className={cx(\n styles.pagination__page,\n value === page && styles['pagination__page--active'],\n )}\n aria-current={value === page ? 'page' : undefined}\n onClick={() => goTo(value)}\n >\n {value}\n </Button>\n )}\n </li>\n ),\n )}\n </ul>\n\n {renderArrow(\n page + 1,\n resolveLabel('Pagination.nextLabel', nextLabel, labels?.pagination?.next),\n <CaretRightFill aria-hidden />,\n )}\n </nav>\n );\n};\n\nexport default /*#__PURE__*/ memo(Pagination) as typeof Pagination;\n"],"names":["buildPageList","page","totalPages","_","index","pages","sorted","left","right","pagesWithGaps","value","Pagination","label","previousLabel","nextLabel","buildHref","onPageChange","linkProps","formatAnnouncement","scrollTo","className","testId","labels","useUi","announce","useAnnounce","previousPage","useRef","useEffect","useMemo","scrollAfterChange","target","scrollWindowToTop","goTo","extraOnClick","handleLinkClick","event","renderArrow","arrowLabel","icon","isDisabled","jsx","UiLink","styles","IconButton","jsxs","cx","resolveLabel","_a","_b","CaretLeftFill","Button","UIVariant","UISize","_c","CaretRightFill"],"mappings":"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"}
@@ -0,0 +1,39 @@
1
+ import { FC } from 'react';
2
+ import { UiLinkExtraProps } from '../../types/link.type';
3
+ type BaseProps = {
4
+ page: number;
5
+ totalPages: number;
6
+ /** Gezinme bölgesinin erişilebilir adı. */
7
+ label?: string;
8
+ /** Verilmezse `labels.pagination.previous`. */
9
+ previousLabel?: string;
10
+ /** Verilmezse `labels.pagination.next`. */
11
+ nextLabel?: string;
12
+ /** Sayfa değiştiğinde ekran okuyucuya duyurulacak metin ("3. sayfa · 1.248 sonuç"). */
13
+ formatAnnouncement?: (page: number, totalPages: number) => string;
14
+ /**
15
+ * Sayfa değiştiren bir tıklamadan sonra kaydırma. `'top'` verilirse pencere en üste alınır —
16
+ * çağıran tarafta kaydırma kodu yazılmaz.
17
+ */
18
+ scrollTo?: 'top';
19
+ className?: string;
20
+ testId?: string;
21
+ };
22
+ type LinkProps = BaseProps & {
23
+ /** Sayfa numarasının adresini üretir. */
24
+ buildHref: (page: number) => string;
25
+ onPageChange?: never;
26
+ /** Yönlendiriciye geçirilecek ek props (`{ scroll: false }` gibi). */
27
+ linkProps?: UiLinkExtraProps;
28
+ };
29
+ type ButtonProps = BaseProps & {
30
+ /** Sayfa değişimi adres çubuğu YERİNE buraya bildirilir. */
31
+ onPageChange: (page: number) => void;
32
+ buildHref?: never;
33
+ linkProps?: never;
34
+ };
35
+ type Props = LinkProps | ButtonProps;
36
+ /** Sayfalama. */
37
+ declare const Pagination: FC<Props>;
38
+ declare const _default: typeof Pagination;
39
+ export default _default;
@@ -0,0 +1,128 @@
1
+ "use client";
2
+ import { jsxs as z, jsx as c } from "react/jsx-runtime";
3
+ import { memo as B, useRef as D, useEffect as F, useMemo as M } from "react";
4
+ import { CaretLeftFill as W, CaretRightFill as k } from "react-bootstrap-icons";
5
+ import { cx as _ } from "../../helpers/class-name.helper.js";
6
+ import { resolveLabel as C } from "../../helpers/label.helper.js";
7
+ import { scrollWindowToTop as G } from "../../helpers/scroll.helper.js";
8
+ import V from "../../hooks/useAnnounce.js";
9
+ import { useUi as Y } from "../../theme/context.js";
10
+ import $ from "../../enums/ui-size.enum.js";
11
+ import q from "../../enums/ui-variant.enum.js";
12
+ import J from "../Button/index.js";
13
+ import O from "../IconButton/index.js";
14
+ import g from "../Link/index.js";
15
+ const s = {"pagination":"ui-pagination-K-L20","pagination__list":"ui-pagination__list--9HqC","pagination__arrow":"ui-pagination__arrow-XIgoX","pagination__page":"ui-pagination__page-TpoJM","pagination__page--active":"ui-pagination__page--active-XHeaz","pagination__gap":"ui-pagination__gap-qoDyI"};
16
+ const Q = (r, n) => {
17
+ if (n <= 7) return Array.from({ length: n }, (o, t) => t + 1);
18
+ const m = /* @__PURE__ */ new Set([1, n, r]);
19
+ r - 1 > 1 && m.add(r - 1), r + 1 < n && m.add(r + 1);
20
+ const p = [...m].sort((o, t) => o - t), f = [];
21
+ return p.forEach((o, t) => {
22
+ t > 0 && o - p[t - 1] > 1 && f.push("gap"), f.push(o);
23
+ }), f;
24
+ }, X = ({
25
+ page: r,
26
+ totalPages: n,
27
+ label: m,
28
+ previousLabel: p,
29
+ nextLabel: f,
30
+ buildHref: o,
31
+ onPageChange: t,
32
+ linkProps: d,
33
+ formatAnnouncement: h,
34
+ scrollTo: E,
35
+ className: I,
36
+ testId: R
37
+ }) => {
38
+ var K, S, U;
39
+ const { labels: a } = Y(), L = V(), N = D(r);
40
+ F(() => {
41
+ N.current !== r && (N.current = r, h && L(h(r, n)));
42
+ }, [r, n, h, L]);
43
+ const T = M(() => Q(r, n), [r, n]);
44
+ if (n <= 1) return null;
45
+ const y = (i) => {
46
+ E === "top" && i !== r && G();
47
+ }, x = (i) => {
48
+ t && (t(i), y(i));
49
+ }, l = d == null ? void 0 : d.onClick, w = (i, e) => {
50
+ l == null || l(i), !(i.defaultPrevented || i.button !== 0) && (i.metaKey || i.ctrlKey || i.shiftKey || i.altKey || y(e));
51
+ }, A = (i, e, u) => {
52
+ const b = i < 1 || i > n;
53
+ return o && !b ? /* @__PURE__ */ c(
54
+ g,
55
+ {
56
+ href: o(i),
57
+ className: s.pagination__arrow,
58
+ "aria-label": e,
59
+ ...d,
60
+ onClick: (j) => w(j, i),
61
+ children: u
62
+ }
63
+ ) : /* @__PURE__ */ c(
64
+ O,
65
+ {
66
+ className: s.pagination__arrow,
67
+ icon: u,
68
+ label: e,
69
+ variant: "outline",
70
+ disabled: b,
71
+ onClick: () => x(i)
72
+ }
73
+ );
74
+ };
75
+ return /* @__PURE__ */ z(
76
+ "nav",
77
+ {
78
+ className: _(s.pagination, I),
79
+ "aria-label": C("Pagination.label", m, (K = a == null ? void 0 : a.pagination) == null ? void 0 : K.label),
80
+ "data-testid": R,
81
+ children: [
82
+ A(
83
+ r - 1,
84
+ C("Pagination.previousLabel", p, (S = a == null ? void 0 : a.pagination) == null ? void 0 : S.previous),
85
+ /* @__PURE__ */ c(W, { "aria-hidden": !0 })
86
+ ),
87
+ /* @__PURE__ */ c("ul", { className: s.pagination__list, children: T.map(
88
+ (i, e) => i === "gap" ? /* @__PURE__ */ c("li", { className: s.pagination__gap, "aria-hidden": !0, children: "…" }, `gap-${e}`) : /* @__PURE__ */ c("li", { children: o ? /* @__PURE__ */ c(
89
+ g,
90
+ {
91
+ href: o(i),
92
+ className: _(
93
+ s.pagination__page,
94
+ i === r && s["pagination__page--active"]
95
+ ),
96
+ "aria-current": i === r ? "page" : void 0,
97
+ ...d,
98
+ onClick: (u) => w(u, i),
99
+ children: i
100
+ }
101
+ ) : /* @__PURE__ */ c(
102
+ J,
103
+ {
104
+ variant: q.SECONDARY,
105
+ size: $.SMALL,
106
+ className: _(
107
+ s.pagination__page,
108
+ i === r && s["pagination__page--active"]
109
+ ),
110
+ "aria-current": i === r ? "page" : void 0,
111
+ onClick: () => x(i),
112
+ children: i
113
+ }
114
+ ) }, i)
115
+ ) }),
116
+ A(
117
+ r + 1,
118
+ C("Pagination.nextLabel", f, (U = a == null ? void 0 : a.pagination) == null ? void 0 : U.next),
119
+ /* @__PURE__ */ c(k, { "aria-hidden": !0 })
120
+ )
121
+ ]
122
+ }
123
+ );
124
+ }, fi = /* @__PURE__ */ B(X);
125
+ export {
126
+ fi as default
127
+ };
128
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../src/components/Pagination/index.tsx"],"sourcesContent":["'use client';\n\nimport { type FC, type MouseEvent, type ReactNode, memo, useEffect, useMemo, useRef } from 'react';\n\nimport { CaretLeftFill, CaretRightFill } from 'react-bootstrap-icons';\n\nimport { cx } from '../../helpers/class-name.helper';\nimport { resolveLabel } from '../../helpers/label.helper';\nimport { scrollWindowToTop } from '../../helpers/scroll.helper';\nimport useAnnounce from '../../hooks/useAnnounce';\nimport { useUi } from '../../theme/context';\nimport UISize from '../../enums/ui-size.enum';\nimport UIVariant from '../../enums/ui-variant.enum';\nimport type { UiLinkExtraProps } from '../../types/link.type';\nimport Button from '../Button';\nimport IconButton from '../IconButton';\nimport UiLink from '../Link';\n\nimport styles from './index.module.scss';\n\ntype BaseProps = {\n page: number;\n totalPages: number;\n /** Gezinme bölgesinin erişilebilir adı. */\n label?: string;\n /** Verilmezse `labels.pagination.previous`. */\n previousLabel?: string;\n /** Verilmezse `labels.pagination.next`. */\n nextLabel?: string;\n /** Sayfa değiştiğinde ekran okuyucuya duyurulacak metin (\"3. sayfa · 1.248 sonuç\"). */\n formatAnnouncement?: (page: number, totalPages: number) => string;\n /**\n * Sayfa değiştiren bir tıklamadan sonra kaydırma. `'top'` verilirse pencere en üste alınır —\n * çağıran tarafta kaydırma kodu yazılmaz.\n */\n scrollTo?: 'top';\n className?: string;\n testId?: string;\n};\n\ntype LinkProps = BaseProps & {\n /** Sayfa numarasının adresini üretir. */\n buildHref: (page: number) => string;\n onPageChange?: never;\n /** Yönlendiriciye geçirilecek ek props (`{ scroll: false }` gibi). */\n linkProps?: UiLinkExtraProps;\n};\n\ntype ButtonProps = BaseProps & {\n /** Sayfa değişimi adres çubuğu YERİNE buraya bildirilir. */\n onPageChange: (page: number) => void;\n buildHref?: never;\n linkProps?: never;\n};\n\ntype Props = LinkProps | ButtonProps;\n\n/** Kenarlarda 1 ve son sayfa her zaman gorunur; arasi kisaltilir. */\nconst buildPageList = (page: number, totalPages: number): (number | 'gap')[] => {\n if (totalPages <= 7) return Array.from({ length: totalPages }, (_, index) => index + 1);\n\n const pages = new Set<number>([1, totalPages, page]);\n if (page - 1 > 1) pages.add(page - 1);\n if (page + 1 < totalPages) pages.add(page + 1);\n\n const sorted = [...pages].sort((left, right) => left - right);\n const pagesWithGaps: (number | 'gap')[] = [];\n\n sorted.forEach((value, index) => {\n if (index > 0 && value - sorted[index - 1] > 1) pagesWithGaps.push('gap');\n pagesWithGaps.push(value);\n });\n\n return pagesWithGaps;\n};\n\n/** Sayfalama. */\nconst Pagination: FC<Props> = ({\n page,\n totalPages,\n label,\n previousLabel,\n nextLabel,\n buildHref,\n onPageChange,\n linkProps,\n formatAnnouncement,\n scrollTo,\n className,\n testId,\n}) => {\n const { labels } = useUi();\n const announce = useAnnounce();\n\n /*\n * Sayfa DEGISTIGINDE duyurulur, ilk cizimde degil: acilista \"1. sayfa\" demek, kullanicinin\n * sormadigi bir soruyu cevaplamak ve ekran okuyucunun sayfa…\n */\n const previousPage = useRef(page);\n\n useEffect(() => {\n if (previousPage.current === page) return;\n previousPage.current = page;\n\n if (formatAnnouncement) announce(formatAnnouncement(page, totalPages));\n }, [page, totalPages, formatAnnouncement, announce]);\n const pages = useMemo(() => buildPageList(page, totalPages), [page, totalPages]);\n\n if (totalPages <= 1) return null;\n\n /*\n * Sayfa GERCEKTEN degistiyse kaydirilir: etkin sayfaya basmak icerigi degistirmiyor, oyleyse\n * gorunumu de degistirmemeli.\n */\n const scrollAfterChange = (target: number) => {\n if (scrollTo === 'top' && target !== page) scrollWindowToTop();\n };\n\n const goTo = (target: number) => {\n if (!onPageChange) return;\n\n onPageChange(target);\n scrollAfterChange(target);\n };\n\n const extraOnClick = linkProps?.onClick as\n ((event: MouseEvent<HTMLAnchorElement>) => void) | undefined;\n\n /*\n * Yeni sekmede acan tiklamada (orta tus, Ctrl/Cmd) MEVCUT sayfa yerinde kalir; onu basa almak\n * kullanicinin okudugu yeri elinden almak olurdu.\n */\n const handleLinkClick = (event: MouseEvent<HTMLAnchorElement>, target: number) => {\n extraOnClick?.(event);\n\n if (event.defaultPrevented || event.button !== 0) return;\n if (event.metaKey || event.ctrlKey || event.shiftKey || event.altKey) return;\n\n scrollAfterChange(target);\n };\n\n /* Baglanti kipinde oklar da BAGLANTIDIR. */\n const renderArrow = (target: number, arrowLabel: string, icon: ReactNode) => {\n const isDisabled = target < 1 || target > totalPages;\n\n if (buildHref && !isDisabled)\n return (\n <UiLink\n href={buildHref(target)}\n className={styles.pagination__arrow}\n aria-label={arrowLabel}\n {...linkProps}\n onClick={event => handleLinkClick(event, target)}\n >\n {icon}\n </UiLink>\n );\n\n return (\n <IconButton\n className={styles.pagination__arrow}\n icon={icon}\n label={arrowLabel}\n variant=\"outline\"\n disabled={isDisabled}\n onClick={() => goTo(target)}\n />\n );\n };\n\n return (\n <nav\n className={cx(styles.pagination, className)}\n aria-label={resolveLabel('Pagination.label', label, labels?.pagination?.label)}\n data-testid={testId}\n >\n {renderArrow(\n page - 1,\n resolveLabel('Pagination.previousLabel', previousLabel, labels?.pagination?.previous),\n <CaretLeftFill aria-hidden />,\n )}\n\n <ul className={styles.pagination__list}>\n {pages.map((value, index) =>\n value === 'gap' ? (\n <li key={`gap-${index}`} className={styles.pagination__gap} aria-hidden>\n …\n </li>\n ) : (\n <li key={value}>\n {buildHref ? (\n <UiLink\n href={buildHref(value)}\n className={cx(\n styles.pagination__page,\n value === page && styles['pagination__page--active'],\n )}\n aria-current={value === page ? 'page' : undefined}\n {...linkProps}\n onClick={event => handleLinkClick(event, value)}\n >\n {value}\n </UiLink>\n ) : (\n <Button\n variant={UIVariant.SECONDARY}\n size={UISize.SMALL}\n className={cx(\n styles.pagination__page,\n value === page && styles['pagination__page--active'],\n )}\n aria-current={value === page ? 'page' : undefined}\n onClick={() => goTo(value)}\n >\n {value}\n </Button>\n )}\n </li>\n ),\n )}\n </ul>\n\n {renderArrow(\n page + 1,\n resolveLabel('Pagination.nextLabel', nextLabel, labels?.pagination?.next),\n <CaretRightFill aria-hidden />,\n )}\n </nav>\n );\n};\n\nexport default /*#__PURE__*/ memo(Pagination) as typeof Pagination;\n"],"names":["buildPageList","page","totalPages","_","index","pages","sorted","left","right","pagesWithGaps","value","Pagination","label","previousLabel","nextLabel","buildHref","onPageChange","linkProps","formatAnnouncement","scrollTo","className","testId","labels","useUi","announce","useAnnounce","previousPage","useRef","useEffect","useMemo","scrollAfterChange","target","scrollWindowToTop","goTo","extraOnClick","handleLinkClick","event","renderArrow","arrowLabel","icon","isDisabled","jsx","UiLink","styles","IconButton","jsxs","cx","resolveLabel","_a","_b","CaretLeftFill","Button","UIVariant","UISize","_c","CaretRightFill"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ @charset "UTF-8";@layer ui{.ui-pagination-K-L20{display:flex;align-items:center;gap:var(--hd-space-1);flex-wrap:wrap;row-gap:var(--hd-space-1);justify-content:center;padding-block:var(--hd-space-5)}.ui-pagination__list--9HqC{display:flex;align-items:center;gap:var(--hd-space-1);flex-wrap:wrap;row-gap:var(--hd-space-1);justify-content:center;list-style:none;margin:0;padding:0}[dir=rtl] .ui-pagination__arrow-XIgoX svg{transform:scaleX(-1)}.ui-pagination__arrow-XIgoX,.ui-pagination__page-TpoJM{position:relative}.ui-pagination__arrow-XIgoX:after,.ui-pagination__page-TpoJM:after{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:max(100%,44px);height:max(100%,44px)}.ui-pagination__arrow-XIgoX,.ui-pagination__page-TpoJM{display:inline-flex;align-items:center;justify-content:center;min-width:40px;height:40px;padding-inline:var(--hd-space-2);font-family:var(--hd-font-display);font-size:var(--hd-type-small-size);font-weight:var(--hd-font-weight-semibold);font-variant-numeric:tabular-nums;color:var(--hd-text-2);background-color:var(--hd-bg-surface);border:1px solid var(--hd-border);border-radius:var(--hd-radius-sm);cursor:pointer;text-decoration:none;transition:border-color var(--hd-duration-fast) var(--hd-ease-standard),color var(--hd-duration-fast) var(--hd-ease-standard),background-color var(--hd-duration-fast) var(--hd-ease-standard)}.ui-pagination__arrow-XIgoX:hover:not(:disabled),.ui-pagination__page-TpoJM:hover:not(:disabled){border-color:var(--hd-border-strong);color:var(--hd-text)}.ui-pagination__arrow-XIgoX:focus-visible,.ui-pagination__page-TpoJM:focus-visible{outline:var(--ui-ring-width, 2px) solid var(--hd-focus);outline-offset:var(--ui-ring-offset, 2px)}@media (prefers-reduced-motion: reduce){.ui-pagination__arrow-XIgoX,.ui-pagination__page-TpoJM{transition:none}}.ui-pagination-K-L20 .ui-pagination__arrow-XIgoX,.ui-pagination-K-L20 .ui-pagination__page-TpoJM{width:auto;min-width:40px;height:40px;min-height:40px;padding:0;padding-inline:var(--hd-space-2);font-family:var(--hd-font-display);font-size:var(--hd-type-small-size);font-weight:var(--hd-font-weight-semibold);font-variant-numeric:tabular-nums;letter-spacing:normal;color:var(--hd-text-2);background-color:var(--hd-bg-surface);border:1px solid var(--hd-border);border-radius:var(--hd-radius-sm)}.ui-pagination-K-L20 .ui-pagination__arrow-XIgoX:hover:not(:disabled),.ui-pagination-K-L20 .ui-pagination__page-TpoJM:hover:not(:disabled){border-color:var(--hd-border-strong);background-color:var(--hd-bg-surface);color:var(--hd-text)}.ui-pagination-K-L20 .ui-pagination__arrow-XIgoX:disabled,.ui-pagination-K-L20 .ui-pagination__page-TpoJM: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-pagination-K-L20 .ui-pagination__arrow-XIgoX:disabled,.ui-pagination-K-L20 .ui-pagination__page-TpoJM:disabled{color:GrayText;border-color:GrayText}}.ui-pagination-K-L20 .ui-pagination__page--active-XHeaz{background-color:var(--hd-primary);border-color:var(--hd-primary);color:var(--hd-on-primary)}.ui-pagination-K-L20 .ui-pagination__page--active-XHeaz:hover:not(:disabled),.ui-pagination-K-L20 .ui-pagination__page--active-XHeaz:active:not(:disabled){background-color:var(--hd-primary-hover);border-color:var(--hd-primary-hover);color:var(--hd-on-primary)}.ui-pagination__gap-qoDyI{display:inline-flex;align-items:flex-end;justify-content:center;min-width:24px;height:40px;color:var(--hd-text-3);-webkit-user-select:none;user-select:none}@media (max-width: 640px){.ui-pagination-K-L20 .ui-pagination__arrow-XIgoX,.ui-pagination-K-L20 .ui-pagination__page-TpoJM,.ui-pagination__page-TpoJM{min-width:36px;padding-inline:var(--hd-space-1)}.ui-pagination__gap-qoDyI{min-width:16px}}}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const a=require("react/jsx-runtime"),t=require("react"),n=require("../../helpers/class-name.helper.cjs"),i=require("../../helpers/component.helper.cjs"),e={default:{"panel":"ui-panel-Sv-1m","panel__header":"ui-panel__header-ysexh","panel__heading":"ui-panel__heading-xLCsB","panel__icon":"ui-panel__icon--yPQT","panel__headingText":"ui-panel__headingText--XqxW","panel__title":"ui-panel__title-6-6uC","panel__description":"ui-panel__description-qXTSM","panel__actions":"ui-panel__actions-Ra-zy","panel__body":"ui-panel__body-lo5aX","panel__body--sm":"ui-panel__body--sm-6XP6W","panel__body--lg":"ui-panel__body--lg-RTK5B","panel__body--flush":"ui-panel__body--flush-iK75R","panel__footer":"ui-panel__footer-qLpR1","panel__footerInner":"ui-panel__footerInner-r6VQI","form":"ui-form-o9UqJ","form--2":"ui-form--2-HdwDc","row":"ui-row-vUGpa"}},h=({children:s,title:l,description:d,actions:c,icon:r,isFlush:m,gap:u="md",footer:o,as:_="section",className:f,bodyClassName:x,testId:p})=>a.jsxs(_,{className:n.cx(e.default.panel,f),"data-testid":p,children:[(l||c)&&a.jsxs("div",{className:e.default.panel__header,children:[a.jsxs("div",{className:e.default.panel__heading,children:[r&&a.jsx("span",{className:e.default.panel__icon,children:r}),a.jsxs("div",{className:e.default.panel__headingText,children:[l&&a.jsx("h2",{className:e.default.panel__title,children:l}),d&&a.jsx("p",{className:e.default.panel__description,children:d})]})]}),c&&a.jsx("div",{className:e.default.panel__actions,children:c})]}),a.jsx("div",{className:n.cx(e.default.panel__body,e.default[`panel__body--${u}`],m&&e.default["panel__body--flush"],x),children:s}),o&&a.jsx("div",{className:e.default.panel__footer,children:a.jsx("div",{className:e.default.panel__footerInner,children:o})})]}),j=i.named(t.memo(({children:s,columns:l=1,className:d})=>a.jsx("div",{className:n.cx(e.default.form,e.default[`form--${l}`],d),children:s})),"PanelForm"),N=i.named(t.memo(({children:s,className:l})=>a.jsx("div",{className:n.cx(e.default.row,l),children:s})),"PanelRow"),v=t.memo(h);exports.PanelForm=j;exports.PanelRow=N;exports.default=v;
2
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs","sources":["../../../src/components/Panel/index.tsx"],"sourcesContent":["import { type ElementType, type FC, memo, type ReactNode } 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 = {\n children: ReactNode;\n /** Panel başlığı. */\n title?: string;\n /** Başlık altındaki tek satırlık açıklama. */\n description?: ReactNode;\n /** Başlık şeridinin sağında duran eylemler. */\n actions?: ReactNode;\n /** Başlık şeridindeki ikon; başlığın solunda. */\n icon?: ReactNode;\n /** Gövde dolgusunu kaldırır: tablo ve tam genişlikte listeler için. */\n isFlush?: boolean;\n /** Gövde içindeki dikey aralık. */\n gap?: 'sm' | 'md' | 'lg';\n /** Dipte duran eylem şeridi (form kaydet, toplam). */\n footer?: ReactNode;\n as?: ElementType;\n className?: string;\n bodyClassName?: string;\n testId?: string;\n};\n\n/**\n * Panel — başlığı olan içerik kutusu.\n * @example <Panel title=\"Profil bilgileri\" description=\"Fatura bu bilgilerle kesilir\">…\n */\nconst Panel: FC<Props> = ({\n children,\n title,\n description,\n actions,\n icon,\n isFlush,\n gap = 'md',\n footer,\n as: Tag = 'section',\n className,\n bodyClassName,\n testId,\n}) => (\n <Tag className={cx(styles.panel, className)} data-testid={testId}>\n {(title || actions) && (\n <div className={styles.panel__header}>\n <div className={styles.panel__heading}>\n {icon && <span className={styles.panel__icon}>{icon}</span>}\n\n <div className={styles.panel__headingText}>\n {title && <h2 className={styles.panel__title}>{title}</h2>}\n {description && <p className={styles.panel__description}>{description}</p>}\n </div>\n </div>\n\n {actions && <div className={styles.panel__actions}>{actions}</div>}\n </div>\n )}\n\n <div\n className={cx(\n styles.panel__body,\n styles[`panel__body--${gap}`],\n isFlush && styles['panel__body--flush'],\n bodyClassName,\n )}\n >\n {children}\n </div>\n\n {/*\n Dip şeridi İKİ kutu: dış bant ile iç sütun.\n\n Bant panelin tamamını kaplamak zorunda — kendi zemini ve üst çizgisi\n var, daraltıldığında panelin dibinde yarım bir şerit kalır. Ama şeridin\n İÇERİĞİ, panelde bir {@link PanelForm} varsa onun sütununda bitmeli;\n genişlik kararını taşıyan tek kutu iç olan. Ölçüldü: form 97-662 px\n arasında dururken \"Sorgula\" düğmesi 1238 px'te, yani gönderdiği formdan\n 576 px uzakta çiziliyordu.\n */}\n {footer && (\n <div className={styles.panel__footer}>\n <div className={styles.panel__footerInner}>{footer}</div>\n </div>\n )}\n </Tag>\n);\n\ntype PanelFormProps = {\n children: ReactNode;\n /** Sütun sayısı. `2` dar ekranda kendiliğinden tek sütuna düşer. */\n columns?: 1 | 2;\n className?: string;\n};\n\n/** Panel içindeki form ızgarası. */\nexport const PanelForm: FC<PanelFormProps> = /*#__PURE__*/ named(\n /*#__PURE__*/ memo(({ children, columns = 1, className }) => (\n <div className={cx(styles.form, styles[`form--${columns}`], className)}>{children}</div>\n )),\n 'PanelForm',\n);\n\ntype PanelRowProps = {\n children: ReactNode;\n className?: string;\n};\n\n/** İki alanı yan yana koyan satır. */\nexport const PanelRow: FC<PanelRowProps> = /*#__PURE__*/ named(\n /*#__PURE__*/ memo(({ children, className }) => (\n <div className={cx(styles.row, className)}>{children}</div>\n )),\n 'PanelRow',\n);\n\nexport default /*#__PURE__*/ memo(Panel) as typeof Panel;\n"],"names":["Panel","children","title","description","actions","icon","isFlush","gap","footer","Tag","className","bodyClassName","testId","jsxs","cx","styles","jsx","PanelForm","named","memo","columns","PanelRow","index"],"mappings":"0SAiCMA,EAAmB,CAAC,CACxB,SAAAC,EACA,MAAAC,EACA,YAAAC,EACA,QAAAC,EACA,KAAAC,EACA,QAAAC,EACA,IAAAC,EAAM,KACN,OAAAC,EACA,GAAIC,EAAM,UACV,UAAAC,EACA,cAAAC,EACA,OAAAC,CACF,IACEC,OAACJ,GAAI,UAAWK,EAAAA,GAAGC,EAAAA,QAAO,MAAOL,CAAS,EAAG,cAAaE,EACtD,SAAA,EAAAV,GAASE,IACTS,OAAC,MAAA,CAAI,UAAWE,EAAAA,QAAO,cACrB,SAAA,CAAAF,EAAAA,KAAC,MAAA,CAAI,UAAWE,EAAAA,QAAO,eACpB,SAAA,CAAAV,GAAQW,EAAAA,IAAC,OAAA,CAAK,UAAWD,EAAAA,QAAO,YAAc,SAAAV,EAAK,EAEpDQ,EAAAA,KAAC,MAAA,CAAI,UAAWE,EAAAA,QAAO,mBACpB,SAAA,CAAAb,GAASc,EAAAA,IAAC,KAAA,CAAG,UAAWD,EAAAA,QAAO,aAAe,SAAAb,EAAM,EACpDC,GAAea,EAAAA,IAAC,IAAA,CAAE,UAAWD,EAAAA,QAAO,mBAAqB,SAAAZ,CAAA,CAAY,CAAA,CAAA,CACxE,CAAA,EACF,EAECC,GAAWY,EAAAA,IAAC,MAAA,CAAI,UAAWD,EAAAA,QAAO,eAAiB,SAAAX,CAAA,CAAQ,CAAA,EAC9D,EAGFY,EAAAA,IAAC,MAAA,CACC,UAAWF,EAAAA,GACTC,EAAAA,QAAO,YACPA,EAAAA,QAAO,gBAAgBR,CAAG,EAAE,EAC5BD,GAAWS,EAAAA,QAAO,oBAAoB,EACtCJ,CAAA,EAGD,SAAAV,CAAA,CAAA,EAaFO,GACCQ,EAAAA,IAAC,MAAA,CAAI,UAAWD,EAAAA,QAAO,cACrB,SAAAC,EAAAA,IAAC,MAAA,CAAI,UAAWD,EAAAA,QAAO,mBAAqB,SAAAP,CAAA,CAAO,CAAA,CACrD,CAAA,EAEJ,EAWWS,EAA8CC,EAAAA,MAC3CC,OAAK,CAAC,CAAE,SAAAlB,EAAU,QAAAmB,EAAU,EAAG,UAAAV,CAAA,IAC3CM,EAAAA,IAAC,MAAA,CAAI,UAAWF,EAAAA,GAAGC,EAAAA,QAAO,KAAMA,UAAO,SAASK,CAAO,EAAE,EAAGV,CAAS,EAAI,SAAAT,CAAA,CAAS,CACnF,EACD,WACF,EAQaoB,EAA4CH,EAAAA,MACzCC,EAAAA,KAAK,CAAC,CAAE,SAAAlB,EAAU,UAAAS,KAC9BM,EAAAA,IAAC,MAAA,CAAI,UAAWF,EAAAA,GAAGC,EAAAA,QAAO,IAAKL,CAAS,EAAI,SAAAT,EAAS,CACtD,EACD,UACF,EAEAqB,SAAkCtB,CAAK"}
@@ -0,0 +1,43 @@
1
+ import { ElementType, FC, ReactNode } from 'react';
2
+ type Props = {
3
+ children: ReactNode;
4
+ /** Panel başlığı. */
5
+ title?: string;
6
+ /** Başlık altındaki tek satırlık açıklama. */
7
+ description?: ReactNode;
8
+ /** Başlık şeridinin sağında duran eylemler. */
9
+ actions?: ReactNode;
10
+ /** Başlık şeridindeki ikon; başlığın solunda. */
11
+ icon?: ReactNode;
12
+ /** Gövde dolgusunu kaldırır: tablo ve tam genişlikte listeler için. */
13
+ isFlush?: boolean;
14
+ /** Gövde içindeki dikey aralık. */
15
+ gap?: 'sm' | 'md' | 'lg';
16
+ /** Dipte duran eylem şeridi (form kaydet, toplam). */
17
+ footer?: ReactNode;
18
+ as?: ElementType;
19
+ className?: string;
20
+ bodyClassName?: string;
21
+ testId?: string;
22
+ };
23
+ /**
24
+ * Panel — başlığı olan içerik kutusu.
25
+ * @example <Panel title="Profil bilgileri" description="Fatura bu bilgilerle kesilir">…
26
+ */
27
+ declare const Panel: FC<Props>;
28
+ type PanelFormProps = {
29
+ children: ReactNode;
30
+ /** Sütun sayısı. `2` dar ekranda kendiliğinden tek sütuna düşer. */
31
+ columns?: 1 | 2;
32
+ className?: string;
33
+ };
34
+ /** Panel içindeki form ızgarası. */
35
+ export declare const PanelForm: FC<PanelFormProps>;
36
+ type PanelRowProps = {
37
+ children: ReactNode;
38
+ className?: string;
39
+ };
40
+ /** İki alanı yan yana koyan satır. */
41
+ export declare const PanelRow: FC<PanelRowProps>;
42
+ declare const _default: typeof Panel;
43
+ export default _default;
@@ -0,0 +1,55 @@
1
+ import { jsxs as d, jsx as a } from "react/jsx-runtime";
2
+ import { memo as c } from "react";
3
+ import { cx as m } from "../../helpers/class-name.helper.js";
4
+ import { named as _ } from "../../helpers/component.helper.js";
5
+ const e = {"panel":"ui-panel-Sv-1m","panel__header":"ui-panel__header-ysexh","panel__heading":"ui-panel__heading-xLCsB","panel__icon":"ui-panel__icon--yPQT","panel__headingText":"ui-panel__headingText--XqxW","panel__title":"ui-panel__title-6-6uC","panel__description":"ui-panel__description-qXTSM","panel__actions":"ui-panel__actions-Ra-zy","panel__body":"ui-panel__body-lo5aX","panel__body--sm":"ui-panel__body--sm-6XP6W","panel__body--lg":"ui-panel__body--lg-RTK5B","panel__body--flush":"ui-panel__body--flush-iK75R","panel__footer":"ui-panel__footer-qLpR1","panel__footerInner":"ui-panel__footerInner-r6VQI","form":"ui-form-o9UqJ","form--2":"ui-form--2-HdwDc","row":"ui-row-vUGpa"};
6
+ const x = ({
7
+ children: s,
8
+ title: l,
9
+ description: n,
10
+ actions: r,
11
+ icon: o,
12
+ isFlush: p,
13
+ gap: h = "md",
14
+ footer: i,
15
+ as: t = "section",
16
+ className: N,
17
+ bodyClassName: f,
18
+ testId: v
19
+ }) => /* @__PURE__ */ d(t, { className: m(e.panel, N), "data-testid": v, children: [
20
+ (l || r) && /* @__PURE__ */ d("div", { className: e.panel__header, children: [
21
+ /* @__PURE__ */ d("div", { className: e.panel__heading, children: [
22
+ o && /* @__PURE__ */ a("span", { className: e.panel__icon, children: o }),
23
+ /* @__PURE__ */ d("div", { className: e.panel__headingText, children: [
24
+ l && /* @__PURE__ */ a("h2", { className: e.panel__title, children: l }),
25
+ n && /* @__PURE__ */ a("p", { className: e.panel__description, children: n })
26
+ ] })
27
+ ] }),
28
+ r && /* @__PURE__ */ a("div", { className: e.panel__actions, children: r })
29
+ ] }),
30
+ /* @__PURE__ */ a(
31
+ "div",
32
+ {
33
+ className: m(
34
+ e.panel__body,
35
+ e[`panel__body--${h}`],
36
+ p && e["panel__body--flush"],
37
+ f
38
+ ),
39
+ children: s
40
+ }
41
+ ),
42
+ i && /* @__PURE__ */ a("div", { className: e.panel__footer, children: /* @__PURE__ */ a("div", { className: e.panel__footerInner, children: i }) })
43
+ ] }), j = /* @__PURE__ */ _(
44
+ /* @__PURE__ */ c(({ children: s, columns: l = 1, className: n }) => /* @__PURE__ */ a("div", { className: m(e.form, e[`form--${l}`], n), children: s })),
45
+ "PanelForm"
46
+ ), u = /* @__PURE__ */ _(
47
+ /* @__PURE__ */ c(({ children: s, className: l }) => /* @__PURE__ */ a("div", { className: m(e.row, l), children: s })),
48
+ "PanelRow"
49
+ ), F = /* @__PURE__ */ c(x);
50
+ export {
51
+ j as PanelForm,
52
+ u as PanelRow,
53
+ F as default
54
+ };
55
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../src/components/Panel/index.tsx"],"sourcesContent":["import { type ElementType, type FC, memo, type ReactNode } 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 = {\n children: ReactNode;\n /** Panel başlığı. */\n title?: string;\n /** Başlık altındaki tek satırlık açıklama. */\n description?: ReactNode;\n /** Başlık şeridinin sağında duran eylemler. */\n actions?: ReactNode;\n /** Başlık şeridindeki ikon; başlığın solunda. */\n icon?: ReactNode;\n /** Gövde dolgusunu kaldırır: tablo ve tam genişlikte listeler için. */\n isFlush?: boolean;\n /** Gövde içindeki dikey aralık. */\n gap?: 'sm' | 'md' | 'lg';\n /** Dipte duran eylem şeridi (form kaydet, toplam). */\n footer?: ReactNode;\n as?: ElementType;\n className?: string;\n bodyClassName?: string;\n testId?: string;\n};\n\n/**\n * Panel — başlığı olan içerik kutusu.\n * @example <Panel title=\"Profil bilgileri\" description=\"Fatura bu bilgilerle kesilir\">…\n */\nconst Panel: FC<Props> = ({\n children,\n title,\n description,\n actions,\n icon,\n isFlush,\n gap = 'md',\n footer,\n as: Tag = 'section',\n className,\n bodyClassName,\n testId,\n}) => (\n <Tag className={cx(styles.panel, className)} data-testid={testId}>\n {(title || actions) && (\n <div className={styles.panel__header}>\n <div className={styles.panel__heading}>\n {icon && <span className={styles.panel__icon}>{icon}</span>}\n\n <div className={styles.panel__headingText}>\n {title && <h2 className={styles.panel__title}>{title}</h2>}\n {description && <p className={styles.panel__description}>{description}</p>}\n </div>\n </div>\n\n {actions && <div className={styles.panel__actions}>{actions}</div>}\n </div>\n )}\n\n <div\n className={cx(\n styles.panel__body,\n styles[`panel__body--${gap}`],\n isFlush && styles['panel__body--flush'],\n bodyClassName,\n )}\n >\n {children}\n </div>\n\n {/*\n Dip şeridi İKİ kutu: dış bant ile iç sütun.\n\n Bant panelin tamamını kaplamak zorunda — kendi zemini ve üst çizgisi\n var, daraltıldığında panelin dibinde yarım bir şerit kalır. Ama şeridin\n İÇERİĞİ, panelde bir {@link PanelForm} varsa onun sütununda bitmeli;\n genişlik kararını taşıyan tek kutu iç olan. Ölçüldü: form 97-662 px\n arasında dururken \"Sorgula\" düğmesi 1238 px'te, yani gönderdiği formdan\n 576 px uzakta çiziliyordu.\n */}\n {footer && (\n <div className={styles.panel__footer}>\n <div className={styles.panel__footerInner}>{footer}</div>\n </div>\n )}\n </Tag>\n);\n\ntype PanelFormProps = {\n children: ReactNode;\n /** Sütun sayısı. `2` dar ekranda kendiliğinden tek sütuna düşer. */\n columns?: 1 | 2;\n className?: string;\n};\n\n/** Panel içindeki form ızgarası. */\nexport const PanelForm: FC<PanelFormProps> = /*#__PURE__*/ named(\n /*#__PURE__*/ memo(({ children, columns = 1, className }) => (\n <div className={cx(styles.form, styles[`form--${columns}`], className)}>{children}</div>\n )),\n 'PanelForm',\n);\n\ntype PanelRowProps = {\n children: ReactNode;\n className?: string;\n};\n\n/** İki alanı yan yana koyan satır. */\nexport const PanelRow: FC<PanelRowProps> = /*#__PURE__*/ named(\n /*#__PURE__*/ memo(({ children, className }) => (\n <div className={cx(styles.row, className)}>{children}</div>\n )),\n 'PanelRow',\n);\n\nexport default /*#__PURE__*/ memo(Panel) as typeof Panel;\n"],"names":["Panel","children","title","description","actions","icon","isFlush","gap","footer","Tag","className","bodyClassName","testId","jsxs","cx","styles","jsx","PanelForm","named","memo","columns","PanelRow","index"],"mappings":";;;;;AAiCA,MAAMA,IAAmB,CAAC;AAAA,EACxB,UAAAC;AAAA,EACA,OAAAC;AAAA,EACA,aAAAC;AAAA,EACA,SAAAC;AAAA,EACA,MAAAC;AAAA,EACA,SAAAC;AAAA,EACA,KAAAC,IAAM;AAAA,EACN,QAAAC;AAAA,EACA,IAAIC,IAAM;AAAA,EACV,WAAAC;AAAA,EACA,eAAAC;AAAA,EACA,QAAAC;AACF,MACE,gBAAAC,EAACJ,KAAI,WAAWK,EAAGC,EAAO,OAAOL,CAAS,GAAG,eAAaE,GACtD,UAAA;AAAA,GAAAV,KAASE,MACT,gBAAAS,EAAC,OAAA,EAAI,WAAWE,EAAO,eACrB,UAAA;AAAA,IAAA,gBAAAF,EAAC,OAAA,EAAI,WAAWE,EAAO,gBACpB,UAAA;AAAA,MAAAV,KAAQ,gBAAAW,EAAC,QAAA,EAAK,WAAWD,EAAO,aAAc,UAAAV,GAAK;AAAA,MAEpD,gBAAAQ,EAAC,OAAA,EAAI,WAAWE,EAAO,oBACpB,UAAA;AAAA,QAAAb,KAAS,gBAAAc,EAAC,MAAA,EAAG,WAAWD,EAAO,cAAe,UAAAb,GAAM;AAAA,QACpDC,KAAe,gBAAAa,EAAC,KAAA,EAAE,WAAWD,EAAO,oBAAqB,UAAAZ,EAAA,CAAY;AAAA,MAAA,EAAA,CACxE;AAAA,IAAA,GACF;AAAA,IAECC,KAAW,gBAAAY,EAAC,OAAA,EAAI,WAAWD,EAAO,gBAAiB,UAAAX,EAAA,CAAQ;AAAA,EAAA,GAC9D;AAAA,EAGF,gBAAAY;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWF;AAAA,QACTC,EAAO;AAAA,QACPA,EAAO,gBAAgBR,CAAG,EAAE;AAAA,QAC5BD,KAAWS,EAAO,oBAAoB;AAAA,QACtCJ;AAAA,MAAA;AAAA,MAGD,UAAAV;AAAA,IAAA;AAAA,EAAA;AAAA,EAaFO,KACC,gBAAAQ,EAAC,OAAA,EAAI,WAAWD,EAAO,eACrB,UAAA,gBAAAC,EAAC,OAAA,EAAI,WAAWD,EAAO,oBAAqB,UAAAP,EAAA,CAAO,EAAA,CACrD;AAAA,GAEJ,GAWWS,IAA8C,gBAAAC;AAAA,EAC3C,gBAAAC,EAAK,CAAC,EAAE,UAAAlB,GAAU,SAAAmB,IAAU,GAAG,WAAAV,EAAA,MAC3C,gBAAAM,EAAC,OAAA,EAAI,WAAWF,EAAGC,EAAO,MAAMA,EAAO,SAASK,CAAO,EAAE,GAAGV,CAAS,GAAI,UAAAT,EAAA,CAAS,CACnF;AAAA,EACD;AACF,GAQaoB,IAA4C,gBAAAH;AAAA,EACzC,gBAAAC,EAAK,CAAC,EAAE,UAAAlB,GAAU,WAAAS,QAC9B,gBAAAM,EAAC,OAAA,EAAI,WAAWF,EAAGC,EAAO,KAAKL,CAAS,GAAI,UAAAT,GAAS,CACtD;AAAA,EACD;AACF,GAEAqB,sBAAkCtB,CAAK;"}
@@ -0,0 +1 @@
1
+ @layer ui{.ui-panel-Sv-1m{background-color:var(--hd-bg-surface);border:1px solid var(--hd-border);border-radius:var(--hd-radius-md);overflow:hidden}@media (max-width: 640px){.ui-panel-Sv-1m{border-radius:var(--hd-radius-sm)}}.ui-panel-Sv-1m{display:flex;flex-direction:column}.ui-panel__header-ysexh{display:flex;flex-wrap:wrap;align-items:center;gap:var(--hd-space-3);justify-content:space-between;padding:var(--hd-space-4) var(--hd-space-5);border-bottom:1px solid var(--hd-border);background-color:var(--hd-bg-surface)}@media (max-width: 640px){.ui-panel__header-ysexh{padding:var(--hd-space-3) var(--hd-space-4)}}.ui-panel__heading-xLCsB{display:flex;align-items:flex-start;gap:var(--hd-space-3);min-width:0}.ui-panel__icon--yPQT{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;flex-shrink:0;border-radius:var(--hd-radius-xs);background-color:var(--hd-bg-raised);color:var(--hd-text-2);font-size:var(--hd-type-body-size)}.ui-panel__headingText--XqxW{display:flex;flex-direction:column;gap:2px;min-width:0}.ui-panel__title-6-6uC{font-family:var(--hd-font-body);font-size:var(--hd-type-body-size);font-weight:var(--hd-font-weight-semibold);line-height:var(--hd-type-h4-line-height);letter-spacing:normal;color:var(--hd-text);margin:0}.ui-panel__description-qXTSM{font-size:var(--hd-type-caption-size);line-height:var(--hd-type-body-line-height);color:var(--hd-text-2);margin:0;max-width:68ch}.ui-panel__actions-Ra-zy{display:flex;flex-wrap:wrap;align-items:center;gap:var(--hd-space-2);flex-shrink:0}.ui-panel__body-lo5aX{display:flex;flex-direction:column;gap:var(--hd-space-4);padding:var(--hd-space-5)}@media (max-width: 640px){.ui-panel__body-lo5aX{padding:var(--hd-space-4)}}.ui-panel__body-lo5aX{flex:1}.ui-panel__body--sm-6XP6W{gap:var(--hd-space-3)}.ui-panel__body--lg-RTK5B{gap:var(--hd-space-5)}.ui-panel__body--flush-iK75R{padding:0;gap:0}.ui-panel__footer-qLpR1{padding:var(--hd-space-4) var(--hd-space-5);border-top:1px solid var(--hd-border);background-color:var(--hd-bg-raised)}@media (max-width: 640px){.ui-panel__footer-qLpR1{padding:var(--hd-space-3) var(--hd-space-4)}}.ui-panel__footerInner-r6VQI{display:flex;flex-wrap:wrap;align-items:center;gap:var(--hd-space-3);justify-content:flex-end}@media (max-width: 640px){.ui-panel__footerInner-r6VQI>*{flex:1 1 auto}}.ui-panel-Sv-1m:has(>.ui-panel__body-lo5aX .ui-form-o9UqJ) .ui-panel__footerInner-r6VQI{max-width:56ch;margin-inline-end:auto}.ui-panel-Sv-1m:has(>.ui-panel__body-lo5aX .ui-form--2-HdwDc) .ui-panel__footerInner-r6VQI{max-width:68ch}.ui-form-o9UqJ{display:grid;gap:var(--hd-space-4);max-width:56ch}.ui-form--2-HdwDc{grid-template-columns:1fr 1fr;max-width:68ch}@media (max-width: 640px){.ui-form--2-HdwDc{grid-template-columns:1fr}}.ui-row-vUGpa{display:grid;grid-template-columns:1fr 1fr;gap:var(--hd-space-4)}@media (max-width: 640px){.ui-row-vUGpa{grid-template-columns:1fr}}}
@@ -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"),i=require("react"),o=require("react-bootstrap-icons"),w=require("../../helpers/component.helper.cjs"),a=require("../../helpers/label.helper.cjs"),x=require("../../theme/context.cjs"),h=require("../IconButton/index.cjs"),f=require("../Input/index.cjs"),r={default:{"password":"ui-password-viMea","password__field":"ui-password__field-WI1h1","password__toggle":"ui-password__toggle-O6R2a"}},q=({className:n,showLabel:l,hideLabel:d,...u})=>{const{labels:e}=x.useUi(),[t,c]=i.useState(!1),p=t?a.resolveLabel("PasswordInput.hideLabel",d,e==null?void 0:e.passwordHide):a.resolveLabel("PasswordInput.showLabel",l,e==null?void 0:e.passwordShow);return s.jsxs("span",{className:r.default.password,children:[s.jsx(f.default,{...u,className:`${r.default.password__field} ${n??""}`.trim(),type:t?"text":"password"}),s.jsx(h.default,{className:r.default.password__toggle,icon:t?s.jsx(o.EyeSlashFill,{"aria-hidden":!0}):s.jsx(o.EyeFill,{"aria-hidden":!0}),label:p,variant:"ghost",size:"sm",onClick:()=>c(m=>!m)})]})},_=i.memo(w.named(q,"PasswordInput"));exports.default=_;
2
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs","sources":["../../../src/components/PasswordInput/index.tsx"],"sourcesContent":["'use client';\n\nimport { FC, InputHTMLAttributes, memo, useState } from 'react';\nimport { EyeFill, EyeSlashFill } from 'react-bootstrap-icons';\n\nimport { named } from '../../helpers/component.helper';\nimport { resolveLabel } from '../../helpers/label.helper';\nimport { useUi } from '../../theme/context';\nimport IconButton from '../IconButton';\nimport Input from '../Input';\n\nimport styles from './index.module.scss';\n\n/* `size`: `Input`ta artik olcu adi (`sm` / `md`); yerel karakter genisligi `Input`a gecemez. */\ntype Props = Omit<InputHTMLAttributes<HTMLInputElement>, 'type' | 'size'> & {\n /** Şifre gizliyken düğmenin erişilebilir adı. */\n showLabel?: string;\n /** Şifre görünürken düğmenin erişilebilir adı. */\n hideLabel?: string;\n};\n\n/**\n * Şifre girdisi — yanında göz düğmesi. iki tüketici uygulamada BİREBİR AYNI dosya\n * olarak duruyordu\n */\nconst PasswordInput: FC<Props> = ({ className, showLabel, hideLabel, ...rest }) => {\n const { labels } = useUi();\n const [isVisible, setIsVisible] = useState(false);\n\n const toggleLabel = isVisible\n ? resolveLabel('PasswordInput.hideLabel', hideLabel, labels?.passwordHide)\n : resolveLabel('PasswordInput.showLabel', showLabel, labels?.passwordShow);\n\n return (\n <span className={styles.password}>\n <Input\n {...rest}\n className={`${styles.password__field} ${className ?? ''}`.trim()}\n type={isVisible ? 'text' : 'password'}\n />\n\n <IconButton\n className={styles.password__toggle}\n icon={isVisible ? <EyeSlashFill aria-hidden /> : <EyeFill aria-hidden />}\n label={toggleLabel}\n variant=\"ghost\"\n size=\"sm\"\n /* `tabIndex` DUSURULMEZ: klavye kullanicisi de sifresini gorebilmeli. */\n onClick={() => setIsVisible(current => !current)}\n />\n </span>\n );\n};\n\nexport default /*#__PURE__*/ memo(\n /*#__PURE__*/ named(PasswordInput, 'PasswordInput'),\n) as typeof PasswordInput;\n"],"names":["PasswordInput","className","showLabel","hideLabel","rest","labels","useUi","isVisible","setIsVisible","useState","toggleLabel","resolveLabel","jsxs","styles","jsx","Input","IconButton","EyeSlashFill","EyeFill","current","index","memo","named"],"mappings":"+bAwBMA,EAA2B,CAAC,CAAE,UAAAC,EAAW,UAAAC,EAAW,UAAAC,EAAW,GAAGC,KAAW,CACjF,KAAM,CAAE,OAAAC,CAAA,EAAWC,QAAA,EACb,CAACC,EAAWC,CAAY,EAAIC,EAAAA,SAAS,EAAK,EAE1CC,EAAcH,EAChBI,eAAa,0BAA2BR,EAAWE,GAAA,YAAAA,EAAQ,YAAY,EACvEM,EAAAA,aAAa,0BAA2BT,EAAWG,GAAA,YAAAA,EAAQ,YAAY,EAE3E,OACEO,EAAAA,KAAC,OAAA,CAAK,UAAWC,EAAAA,QAAO,SACtB,SAAA,CAAAC,EAAAA,IAACC,EAAAA,QAAA,CACE,GAAGX,EACJ,UAAW,GAAGS,EAAAA,QAAO,eAAe,IAAIZ,GAAa,EAAE,GAAG,KAAA,EAC1D,KAAMM,EAAY,OAAS,UAAA,CAAA,EAG7BO,EAAAA,IAACE,EAAAA,QAAA,CACC,UAAWH,EAAAA,QAAO,iBAClB,KAAMN,EAAYO,EAAAA,IAACG,EAAAA,aAAA,CAAa,cAAW,GAAC,EAAKH,EAAAA,IAACI,EAAAA,QAAA,CAAQ,cAAW,EAAA,CAAC,EACtE,MAAOR,EACP,QAAQ,QACR,KAAK,KAEL,QAAS,IAAMF,EAAaW,GAAW,CAACA,CAAO,CAAA,CAAA,CACjD,EACF,CAEJ,EAEAC,EAA6BC,EAAAA,KACbC,EAAAA,MAAMtB,EAAe,eAAe,CACpD"}
@@ -0,0 +1,14 @@
1
+ import { FC, InputHTMLAttributes } from 'react';
2
+ type Props = Omit<InputHTMLAttributes<HTMLInputElement>, 'type' | 'size'> & {
3
+ /** Şifre gizliyken düğmenin erişilebilir adı. */
4
+ showLabel?: string;
5
+ /** Şifre görünürken düğmenin erişilebilir adı. */
6
+ hideLabel?: string;
7
+ };
8
+ /**
9
+ * Şifre girdisi — yanında göz düğmesi. iki tüketici uygulamada BİREBİR AYNI dosya
10
+ * olarak duruyordu
11
+ */
12
+ declare const PasswordInput: FC<Props>;
13
+ declare const _default: typeof PasswordInput;
14
+ export default _default;
@@ -0,0 +1,40 @@
1
+ "use client";
2
+ import { jsxs as c, jsx as o } from "react/jsx-runtime";
3
+ import { memo as u, useState as f } from "react";
4
+ import { EyeSlashFill as w, EyeFill as h } from "react-bootstrap-icons";
5
+ import { named as I } from "../../helpers/component.helper.js";
6
+ import { resolveLabel as e } from "../../helpers/label.helper.js";
7
+ import { useUi as g } from "../../theme/context.js";
8
+ import x from "../IconButton/index.js";
9
+ import b from "../Input/index.js";
10
+ const t = {"password":"ui-password-viMea","password__field":"ui-password__field-WI1h1","password__toggle":"ui-password__toggle-O6R2a"};
11
+ const y = ({ className: i, showLabel: a, hideLabel: m, ...n }) => {
12
+ const { labels: s } = g(), [r, p] = f(!1), d = r ? e("PasswordInput.hideLabel", m, s == null ? void 0 : s.passwordHide) : e("PasswordInput.showLabel", a, s == null ? void 0 : s.passwordShow);
13
+ return /* @__PURE__ */ c("span", { className: t.password, children: [
14
+ /* @__PURE__ */ o(
15
+ b,
16
+ {
17
+ ...n,
18
+ className: `${t.password__field} ${i ?? ""}`.trim(),
19
+ type: r ? "text" : "password"
20
+ }
21
+ ),
22
+ /* @__PURE__ */ o(
23
+ x,
24
+ {
25
+ className: t.password__toggle,
26
+ icon: r ? /* @__PURE__ */ o(w, { "aria-hidden": !0 }) : /* @__PURE__ */ o(h, { "aria-hidden": !0 }),
27
+ label: d,
28
+ variant: "ghost",
29
+ size: "sm",
30
+ onClick: () => p((l) => !l)
31
+ }
32
+ )
33
+ ] });
34
+ }, V = /* @__PURE__ */ u(
35
+ /* @__PURE__ */ I(y, "PasswordInput")
36
+ );
37
+ export {
38
+ V as default
39
+ };
40
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../src/components/PasswordInput/index.tsx"],"sourcesContent":["'use client';\n\nimport { FC, InputHTMLAttributes, memo, useState } from 'react';\nimport { EyeFill, EyeSlashFill } from 'react-bootstrap-icons';\n\nimport { named } from '../../helpers/component.helper';\nimport { resolveLabel } from '../../helpers/label.helper';\nimport { useUi } from '../../theme/context';\nimport IconButton from '../IconButton';\nimport Input from '../Input';\n\nimport styles from './index.module.scss';\n\n/* `size`: `Input`ta artik olcu adi (`sm` / `md`); yerel karakter genisligi `Input`a gecemez. */\ntype Props = Omit<InputHTMLAttributes<HTMLInputElement>, 'type' | 'size'> & {\n /** Şifre gizliyken düğmenin erişilebilir adı. */\n showLabel?: string;\n /** Şifre görünürken düğmenin erişilebilir adı. */\n hideLabel?: string;\n};\n\n/**\n * Şifre girdisi — yanında göz düğmesi. iki tüketici uygulamada BİREBİR AYNI dosya\n * olarak duruyordu\n */\nconst PasswordInput: FC<Props> = ({ className, showLabel, hideLabel, ...rest }) => {\n const { labels } = useUi();\n const [isVisible, setIsVisible] = useState(false);\n\n const toggleLabel = isVisible\n ? resolveLabel('PasswordInput.hideLabel', hideLabel, labels?.passwordHide)\n : resolveLabel('PasswordInput.showLabel', showLabel, labels?.passwordShow);\n\n return (\n <span className={styles.password}>\n <Input\n {...rest}\n className={`${styles.password__field} ${className ?? ''}`.trim()}\n type={isVisible ? 'text' : 'password'}\n />\n\n <IconButton\n className={styles.password__toggle}\n icon={isVisible ? <EyeSlashFill aria-hidden /> : <EyeFill aria-hidden />}\n label={toggleLabel}\n variant=\"ghost\"\n size=\"sm\"\n /* `tabIndex` DUSURULMEZ: klavye kullanicisi de sifresini gorebilmeli. */\n onClick={() => setIsVisible(current => !current)}\n />\n </span>\n );\n};\n\nexport default /*#__PURE__*/ memo(\n /*#__PURE__*/ named(PasswordInput, 'PasswordInput'),\n) as typeof PasswordInput;\n"],"names":["PasswordInput","className","showLabel","hideLabel","rest","labels","useUi","isVisible","setIsVisible","useState","toggleLabel","resolveLabel","jsxs","styles","jsx","Input","IconButton","EyeSlashFill","EyeFill","current","index","memo","named"],"mappings":";;;;;;;;;;AAwBA,MAAMA,IAA2B,CAAC,EAAE,WAAAC,GAAW,WAAAC,GAAW,WAAAC,GAAW,GAAGC,QAAW;AACjF,QAAM,EAAE,QAAAC,EAAA,IAAWC,EAAA,GACb,CAACC,GAAWC,CAAY,IAAIC,EAAS,EAAK,GAE1CC,IAAcH,IAChBI,EAAa,2BAA2BR,GAAWE,KAAA,gBAAAA,EAAQ,YAAY,IACvEM,EAAa,2BAA2BT,GAAWG,KAAA,gBAAAA,EAAQ,YAAY;AAE3E,SACE,gBAAAO,EAAC,QAAA,EAAK,WAAWC,EAAO,UACtB,UAAA;AAAA,IAAA,gBAAAC;AAAA,MAACC;AAAA,MAAA;AAAA,QACE,GAAGX;AAAA,QACJ,WAAW,GAAGS,EAAO,eAAe,IAAIZ,KAAa,EAAE,GAAG,KAAA;AAAA,QAC1D,MAAMM,IAAY,SAAS;AAAA,MAAA;AAAA,IAAA;AAAA,IAG7B,gBAAAO;AAAA,MAACE;AAAA,MAAA;AAAA,QACC,WAAWH,EAAO;AAAA,QAClB,MAAMN,IAAY,gBAAAO,EAACG,GAAA,EAAa,eAAW,IAAC,IAAK,gBAAAH,EAACI,GAAA,EAAQ,eAAW,GAAA,CAAC;AAAA,QACtE,OAAOR;AAAA,QACP,SAAQ;AAAA,QACR,MAAK;AAAA,QAEL,SAAS,MAAMF,EAAa,CAAAW,MAAW,CAACA,CAAO;AAAA,MAAA;AAAA,IAAA;AAAA,EACjD,GACF;AAEJ,GAEAC,IAA6B,gBAAAC;AAAA,EACb,gBAAAC,EAAMtB,GAAe,eAAe;AACpD;"}
@@ -0,0 +1 @@
1
+ @layer ui{.ui-password-viMea{position:relative;display:block}.ui-password__field-WI1h1 input{padding-inline-end:var(--hd-space-12)}.ui-password__toggle-O6R2a{position:absolute;inset-inline-end:var(--hd-space-2);top:50%;transform:translateY(-50%);color:var(--hd-text-2)}.ui-password__toggle-O6R2a:hover{color:var(--hd-text)}}
@@ -0,0 +1,2 @@
1
+ "use client";"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const v=require("react/jsx-runtime"),r=require("react"),T=require("react-dom"),g=require("../../helpers/class-name.helper.cjs"),L=require("../../helpers/component.helper.cjs"),N=require("../../hooks/useDismissOnEscape.cjs"),P=require("../../helpers/focus.helper.cjs"),B=require("../../hooks/usePortalSurface.cjs"),I=require("../../hooks/usePositioning.cjs"),_={default:{"popover":"ui-popover-VxgiK","popover--top":"ui-popover--top-OUYwo","popover--bottom":"ui-popover--bottom-Q1K4X","popover--left":"ui-popover--left-9Rsjx","popover--right":"ui-popover--right-0TJeo"}},O=({trigger:d,children:y,label:R,side:h="bottom",align:j="start",isOpen:b,onOpenChange:l,className:k,testId:S})=>{const q=r.useId(),o=r.useRef(null),u=r.useRef(null),i=r.useRef(null),[w,D]=r.useState(!1),f=b!==void 0,n=f?b:w,m=I.default(o,u,{side:h,align:j,isOpen:n}),a=B.default(n,o,u),s=r.useCallback(e=>{f||D(e),l==null||l(e)},[f,l]);r.useEffect(()=>{if(!n)return;i.current=P.captureFocus();const e=u.current;return e&&P.focusFirstMeaningful(e),()=>{var t;(t=i.current)==null||t.call(i),i.current=null}},[n]);const F=r.useCallback(()=>s(!1),[s]);if(N.default(n,F),r.useEffect(()=>{if(!n)return;const e=t=>{var x,E;const c=t.target;(x=u.current)!=null&&x.contains(c)||(E=o.current)!=null&&E.contains(c)||s(!1)};return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[n,s]),!r.isValidElement(d))return null;const p=d.props,M=r.cloneElement(d,{ref:o,"aria-expanded":n,"aria-haspopup":"dialog","aria-controls":n?q:void 0,onClick:e=>{var t;(t=p.onClick)==null||t.call(p,e),s(!n)}});return v.jsxs(v.Fragment,{children:[M,n&&a.container&&T.createPortal(v.jsx("div",{ref:u,id:q,...a.attributes,role:"dialog","aria-label":R,className:g.cx(_.default.popover,_.default[`popover--${m.side}`],k),style:{...m.style,...a.style,visibility:m.isPositioned?"visible":"hidden"},"data-testid":S,onBlur:e=>{var c;const t=e.relatedTarget;t&&(e.currentTarget.contains(t)||(c=o.current)!=null&&c.contains(t)||t.closest('[role="listbox"],[role="menu"],[role="dialog"]')||s(!1))},children:y}),a.container)]})},U=r.memo(L.named(O,"Popover"));exports.default=U;
2
+ //# sourceMappingURL=index.cjs.map