@handijit/ui 0.0.0-stage → 1.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 (658) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +872 -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 +1865 -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 +1120 -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 +26 -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 +8 -0
  428. package/build/constants/breakpoint.constants.js +9 -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 +9 -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 +24 -0
  486. package/build/helpers/theme.helper.cjs.map +1 -0
  487. package/build/helpers/theme.helper.d.ts +49 -0
  488. package/build/helpers/theme.helper.js +75 -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 +7 -0
  543. package/build/hooks/useUiTheme.js +36 -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 +39 -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 +95 -0
  558. package/build/index.js +207 -0
  559. package/build/index.js.map +1 -0
  560. package/build/scss/_colors.generated.scss +119 -0
  561. package/build/scss/_index.scss +6 -0
  562. package/build/scss/_metrics.generated.scss +49 -0
  563. package/build/scss/_mixins.scss +710 -0
  564. package/build/scss/_variables.scss +51 -0
  565. package/build/styles/base.d.ts +0 -0
  566. package/build/styles.css +133 -0
  567. package/build/theme/UiProvider.cjs +2 -0
  568. package/build/theme/UiProvider.cjs.map +1 -0
  569. package/build/theme/UiProvider.d.ts +22 -0
  570. package/build/theme/UiProvider.js +30 -0
  571. package/build/theme/UiProvider.js.map +1 -0
  572. package/build/theme/UiThemeScript.cjs +2 -0
  573. package/build/theme/UiThemeScript.cjs.map +1 -0
  574. package/build/theme/UiThemeScript.d.ts +19 -0
  575. package/build/theme/UiThemeScript.js +8 -0
  576. package/build/theme/UiThemeScript.js.map +1 -0
  577. package/build/theme/context.cjs +2 -0
  578. package/build/theme/context.cjs.map +1 -0
  579. package/build/theme/context.d.ts +5 -0
  580. package/build/theme/context.js +8 -0
  581. package/build/theme/context.js.map +1 -0
  582. package/build/theme/initUi.cjs +2 -0
  583. package/build/theme/initUi.cjs.map +1 -0
  584. package/build/theme/initUi.d.ts +7 -0
  585. package/build/theme/initUi.js +10 -0
  586. package/build/theme/initUi.js.map +1 -0
  587. package/build/theme/palette.cjs +2 -0
  588. package/build/theme/palette.cjs.map +1 -0
  589. package/build/theme/palette.d.ts +219 -0
  590. package/build/theme/palette.js +148 -0
  591. package/build/theme/palette.js.map +1 -0
  592. package/build/theme/tokens.cjs +2 -0
  593. package/build/theme/tokens.cjs.map +1 -0
  594. package/build/theme/tokens.d.ts +225 -0
  595. package/build/theme/tokens.js +384 -0
  596. package/build/theme/tokens.js.map +1 -0
  597. package/build/types/charts/AreaChart/index.d.ts +14 -0
  598. package/build/types/charts/BarChart/index.d.ts +16 -0
  599. package/build/types/charts/BoxPlot/index.d.ts +43 -0
  600. package/build/types/charts/ComposedChart/index.d.ts +16 -0
  601. package/build/types/charts/Heatmap/index.d.ts +30 -0
  602. package/build/types/charts/Histogram/index.d.ts +29 -0
  603. package/build/types/charts/LineChart/index.d.ts +14 -0
  604. package/build/types/charts/PieChart/index.d.ts +36 -0
  605. package/build/types/charts/RadarChart/index.d.ts +40 -0
  606. package/build/types/charts/ScatterPlot/index.d.ts +41 -0
  607. package/build/types/charts/core/CartesianChart.d.ts +43 -0
  608. package/build/types/charts/core/ChartFrame.d.ts +55 -0
  609. package/build/types/charts/core/axes.d.ts +37 -0
  610. package/build/types/charts/core/cartesian.d.ts +80 -0
  611. package/build/types/charts/core/format.d.ts +19 -0
  612. package/build/types/charts/core/margins.d.ts +9 -0
  613. package/build/types/charts/core/palette.d.ts +13 -0
  614. package/build/types/charts/core/path.d.ts +24 -0
  615. package/build/types/charts/core/scale.d.ts +40 -0
  616. package/build/types/charts/core/series.d.ts +11 -0
  617. package/build/types/charts/core/spatial.d.ts +12 -0
  618. package/build/types/charts/core/stats.d.ts +34 -0
  619. package/build/types/charts/core/types.d.ts +31 -0
  620. package/build/types/charts/core/useChartWidth.d.ts +7 -0
  621. package/build/types/charts/index.d.ts +21 -0
  622. package/build/types/chat/ActionList/index.d.ts +46 -0
  623. package/build/types/chat/AppBar/index.d.ts +21 -0
  624. package/build/types/chat/ChatMessage/index.d.ts +24 -0
  625. package/build/types/chat/ChatThread/index.d.ts +24 -0
  626. package/build/types/chat/Citation/index.d.ts +15 -0
  627. package/build/types/chat/CodeBlock/format.d.ts +7 -0
  628. package/build/types/chat/CodeBlock/grammars.d.ts +44 -0
  629. package/build/types/chat/CodeBlock/highlight.d.ts +22 -0
  630. package/build/types/chat/CodeBlock/index.d.ts +33 -0
  631. package/build/types/chat/DescriptionList/index.d.ts +16 -0
  632. package/build/types/chat/Legend/index.d.ts +20 -0
  633. package/build/types/chat/MessageActions/index.d.ts +21 -0
  634. package/build/types/chat/PromptInput/index.d.ts +47 -0
  635. package/build/types/chat/PromptSuggestions/index.d.ts +25 -0
  636. package/build/types/chat/Prose/index.d.ts +15 -0
  637. package/build/types/chat/ReasoningBlock/index.d.ts +24 -0
  638. package/build/types/chat/ReasoningText/index.d.ts +14 -0
  639. package/build/types/chat/SegmentBar/index.d.ts +46 -0
  640. package/build/types/chat/SourceList/index.d.ts +25 -0
  641. package/build/types/chat/TerminalOutput/index.d.ts +25 -0
  642. package/build/types/chat/ToolCall/index.d.ts +41 -0
  643. package/build/types/chat/index.d.ts +26 -0
  644. package/build/types/combobox.type.d.ts +49 -0
  645. package/build/types/common-element-props.type.d.ts +8 -0
  646. package/build/types/helpers/class-name.helper.d.ts +3 -0
  647. package/build/types/helpers/component.helper.d.ts +13 -0
  648. package/build/types/helpers/label.helper.d.ts +12 -0
  649. package/build/types/hook.type.d.ts +36 -0
  650. package/build/types/link.type.d.ts +14 -0
  651. package/build/types/positioning.type.d.ts +38 -0
  652. package/build/types/theme/palette.d.ts +219 -0
  653. package/build/types/theme/tokens.d.ts +225 -0
  654. package/build/types/theme.type.d.ts +223 -0
  655. package/build/types/types/common-element-props.type.d.ts +8 -0
  656. package/build/types/types/link.type.d.ts +14 -0
  657. package/build/types/types/theme.type.d.ts +223 -0
  658. package/package.json +487 -4
@@ -0,0 +1,15 @@
1
+ "use client";
2
+ import { jsx as n } from "react/jsx-runtime";
3
+ import { memo as m } from "react";
4
+ import { cx as t } from "../../helpers/class-name.helper.js";
5
+ import { resolveLabel as p } from "../../helpers/label.helper.js";
6
+ import { useUi as l } from "../../theme/context.js";
7
+ const e = {"spinner":"ui-spinner-7pXwf","spinner__label":"ui-spinner__label-sZvSq","spinner--sm":"ui-spinner--sm-uI0wH","spinner--md":"ui-spinner--md--VmFK","spinner--lg":"ui-spinner--lg-K9k-Z"};
8
+ const a = ({ size: o = "md", label: s, className: i }) => {
9
+ const { labels: r } = l();
10
+ return /* @__PURE__ */ n("span", { className: t(e.spinner, e[`spinner--${o}`], i), role: "status", children: /* @__PURE__ */ n("span", { className: e.spinner__label, children: s ?? p("Spinner.label", r == null ? void 0 : r.loading) }) });
11
+ }, b = /* @__PURE__ */ m(a);
12
+ export {
13
+ b as default
14
+ };
15
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../src/components/Spinner/index.tsx"],"sourcesContent":["'use client';\n\nimport { type FC, memo } from 'react';\n\nimport { cx } from '../../helpers/class-name.helper';\nimport { resolveLabel } from '../../helpers/label.helper';\nimport { useUi } from '../../theme/context';\n\nimport styles from './index.module.scss';\n\ntype Props = {\n size?: 'sm' | 'md' | 'lg';\n /** Ekran okuyucuya okunacak metin; görsel olarak gizli. */\n label?: string;\n className?: string;\n};\n\n/** Yükleme göstergesi. */\nconst Spinner: FC<Props> = ({ size = 'md', label, className }) => {\n const { labels } = useUi();\n\n return (\n <span className={cx(styles.spinner, styles[`spinner--${size}`], className)} role=\"status\">\n <span className={styles.spinner__label}>\n {label ?? resolveLabel('Spinner.label', labels?.loading)}\n </span>\n </span>\n );\n};\n\nexport default /*#__PURE__*/ memo(Spinner) as typeof Spinner;\n"],"names":["Spinner","size","label","className","labels","useUi","jsx","cx","styles","resolveLabel","Spinner$1"],"mappings":";;;;;;;AAiBA,MAAMA,IAAqB,CAAC,EAAE,MAAAC,IAAO,MAAM,OAAAC,GAAO,WAAAC,QAAgB;AAChE,QAAM,EAAE,QAAAC,EAAA,IAAWC,EAAA;AAEnB,SACE,gBAAAC,EAAC,QAAA,EAAK,WAAWC,EAAGC,EAAO,SAASA,EAAO,YAAYP,CAAI,EAAE,GAAGE,CAAS,GAAG,MAAK,UAC/E,UAAA,gBAAAG,EAAC,QAAA,EAAK,WAAWE,EAAO,gBACrB,UAAAN,KAASO,EAAa,iBAAiBL,KAAA,gBAAAA,EAAQ,OAAO,EAAA,CACzD,EAAA,CACF;AAEJ,GAEAM,sBAAkCV,CAAO;"}
@@ -0,0 +1 @@
1
+ @layer ui{.ui-spinner-7pXwf{display:inline-block;border-radius:var(--ui-radius-pill);border:2px solid var(--ui-track);border-top-color:var(--ui-selected);animation:var(--ui-anim-spin) var(--ui-duration-spin) linear infinite}.ui-spinner__label-sZvSq{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}.ui-spinner--sm-uI0wH{width:14px;height:14px}.ui-spinner--md--VmFK{width:20px;height:20px}.ui-spinner--lg-K9k-Z{width:32px;height:32px;border-width:3px}@media (prefers-reduced-motion: reduce){.ui-spinner-7pXwf{animation:none;border-top-color:var(--ui-selected)}}}
@@ -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"),v=require("react"),r=require("react-bootstrap-icons"),o=require("../../helpers/class-name.helper.cjs"),q=require("../../helpers/component.helper.cjs"),S=require("../../helpers/label.helper.cjs"),g=require("../../theme/context.cjs"),e={default:{"stat":"ui-stat-Xb7wp","stat--sm":"ui-stat--sm-XnK8p","stat--plain":"ui-stat--plain-N-3RC","stat__icon":"ui-stat__icon-MB8NU","stat--inline":"ui-stat--inline-IpE0J","stat__label":"ui-stat__label-kUX2m","stat__value":"ui-stat__value--6p13","stat__unit":"ui-stat__unit-mjHVk","stat__delta":"ui-stat__delta-YKpOu","stat__delta--positive":"ui-stat__delta--positive-1AUAM","stat__delta--negative":"ui-stat__delta--negative--WWEP","stat__description":"ui-stat__description-Yvw6J","stat__srOnly":"ui-stat__srOnly-YKebA"}},w={up:t.jsx(r.ArrowUpShort,{"aria-hidden":!0}),down:t.jsx(r.ArrowDownShort,{"aria-hidden":!0}),flat:t.jsx(r.DashLg,{"aria-hidden":!0})},_={up:"increase",down:"decrease",flat:"unchanged"},b=({label:h,value:f,unit:l,delta:n,trend:a,isUpPositive:p=!0,description:c,icon:d,variant:m="card",size:x="md",className:j,testId:N})=>{var u;const{labels:s}=g.useUi(),i=a==="flat"?void 0:a==="up"===p;return t.jsxs("div",{className:o.cx(e.default.stat,e.default[`stat--${x}`],e.default[`stat--${m}`],j),"data-testid":N,children:[d&&t.jsx("span",{className:e.default.stat__icon,"aria-hidden":!0,children:d}),t.jsx("span",{className:e.default.stat__label,children:h}),t.jsxs("span",{className:e.default.stat__value,children:[f,l&&t.jsx("span",{className:e.default.stat__unit,children:l})]}),n&&a&&t.jsxs("span",{className:o.cx(e.default.stat__delta,i===!0&&e.default["stat__delta--positive"],i===!1&&e.default["stat__delta--negative"]),children:[w[a],n,t.jsx("span",{className:e.default.stat__srOnly,children:S.resolveLabel(`Stat.${_[a]}`,(u=s==null?void 0:s.stat)==null?void 0:u[_[a]])})]}),c&&t.jsx("span",{className:e.default.stat__description,children:c})]})},D=v.memo(q.named(b,"Stat"));exports.default=D;
2
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs","sources":["../../../src/components/Stat/index.tsx"],"sourcesContent":["'use client';\n\nimport { type FC, memo, type ReactNode } from 'react';\n\nimport { ArrowDownShort, ArrowUpShort, DashLg } from 'react-bootstrap-icons';\n\nimport { cx } from '../../helpers/class-name.helper';\nimport { named } from '../../helpers/component.helper';\nimport { resolveLabel } from '../../helpers/label.helper';\n\nimport { useUi } from '../../theme/context';\n\nimport styles from './index.module.scss';\n\n/** Değişimin yönü. `flat` \"değişmedi\" — yokluk DEĞİL. */\nexport type StatTrend = 'up' | 'down' | 'flat';\n\ntype Props = {\n /** Ölçülen şeyin adı (\"Bugünkü sipariş\"). */\n label: string;\n /** Değerin KENDİSİ — biçimlendirilmiş dize. */\n value: ReactNode;\n /** Değerin yanındaki birim (\"₺\", \"adet\"). */\n unit?: string;\n /** Değişim metni (\"%12\", \"+3\"). `trend` ile birlikte anlamlı. */\n delta?: string;\n /** Değişimin yönü. */\n trend?: StatTrend;\n /** Artış İYİ mi. */\n isUpPositive?: boolean;\n /** Değerin altındaki bir cümlelik bağlam (\"geçen haftaya göre\"). */\n description?: ReactNode;\n /** Sol üstte duran ikon madalyonu. */\n icon?: ReactNode;\n /**\n * `plain` KUTUYU kaldırır: zemin, kenarlık ve dolgu gider, yalnızca sayı kalır.\n * `inline` etiketi ve değeri TEK SATIRA dizer, değer teknik fontta — metrik satırı (\"Gecikme\n * 412 ms\"). Değişim ve açıklama bu kipte de çizilir, satırı uzatır.\n */\n variant?: 'card' | 'plain' | 'inline';\n size?: 'sm' | 'md';\n className?: string;\n testId?: string;\n};\n\nconst TREND_ICON: Record<StatTrend, ReactNode> = {\n up: <ArrowUpShort aria-hidden />,\n down: <ArrowDownShort aria-hidden />,\n flat: <DashLg aria-hidden />,\n};\n\n/* ⚠ YON METNI SR-ONLY ve SAGLAYICIDAN gelir. */\nconst TREND_KEY: Record<StatTrend, 'increase' | 'decrease' | 'unchanged'> = {\n up: 'increase',\n down: 'decrease',\n flat: 'unchanged',\n};\n\n/** Ölçüm kutusu (KPI). */\nconst Stat: FC<Props> = ({\n label,\n value,\n unit,\n delta,\n trend,\n isUpPositive = true,\n description,\n icon,\n variant = 'card',\n size = 'md',\n className,\n testId,\n}) => {\n const { labels } = useUi();\n\n /* Yonun IYI mi KOTU mu oldugu ayri bir karar: \"artis\" her zaman iyi degil. */\n const isPositive = trend === 'flat' ? undefined : (trend === 'up') === isUpPositive;\n\n return (\n /* `card` icin ayri bir sinif YOK: taban sinifin kendisi kart. */\n <div\n className={cx(styles.stat, styles[`stat--${size}`], styles[`stat--${variant}`], className)}\n data-testid={testId}\n >\n {icon && (\n <span className={styles.stat__icon} aria-hidden>\n {icon}\n </span>\n )}\n\n <span className={styles.stat__label}>{label}</span>\n\n <span className={styles.stat__value}>\n {value}\n {unit && <span className={styles.stat__unit}>{unit}</span>}\n </span>\n\n {delta && trend && (\n <span\n className={cx(\n styles.stat__delta,\n isPositive === true && styles['stat__delta--positive'],\n isPositive === false && styles['stat__delta--negative'],\n )}\n >\n {TREND_ICON[trend]}\n {delta}\n {/* Yon METIN olarak da okunur: ok ve renk ekran okuyucuya gecmiyor. */}\n <span className={styles.stat__srOnly}>\n {resolveLabel(`Stat.${TREND_KEY[trend]}`, labels?.stat?.[TREND_KEY[trend]])}\n </span>\n </span>\n )}\n\n {description && <span className={styles.stat__description}>{description}</span>}\n </div>\n );\n};\n\nexport default /*#__PURE__*/ memo(/*#__PURE__*/ named(Stat, 'Stat')) as typeof Stat;\n"],"names":["TREND_ICON","jsx","ArrowUpShort","ArrowDownShort","DashLg","TREND_KEY","Stat","label","value","unit","delta","trend","isUpPositive","description","icon","variant","size","className","testId","labels","useUi","isPositive","jsxs","cx","styles","_a","index","memo","named"],"mappings":"2aA4CMA,EAA2C,CAC/C,GAAIC,EAAAA,IAACC,EAAAA,aAAA,CAAa,cAAW,EAAA,CAAC,EAC9B,KAAMD,EAAAA,IAACE,EAAAA,eAAA,CAAe,cAAW,EAAA,CAAC,EAClC,KAAMF,EAAAA,IAACG,EAAAA,OAAA,CAAO,cAAW,EAAA,CAAC,CAC5B,EAGMC,EAAsE,CAC1E,GAAI,WACJ,KAAM,WACN,KAAM,WACR,EAGMC,EAAkB,CAAC,CACvB,MAAAC,EACA,MAAAC,EACA,KAAAC,EACA,MAAAC,EACA,MAAAC,EACA,aAAAC,EAAe,GACf,YAAAC,EACA,KAAAC,EACA,QAAAC,EAAU,OACV,KAAAC,EAAO,KACP,UAAAC,EACA,OAAAC,CACF,IAAM,OACJ,KAAM,CAAE,OAAAC,CAAA,EAAWC,QAAA,EAGbC,EAAaV,IAAU,OAAS,OAAaA,IAAU,OAAUC,EAEvE,OAEEU,EAAAA,KAAC,MAAA,CACC,UAAWC,EAAAA,GAAGC,EAAAA,QAAO,KAAMA,EAAAA,QAAO,SAASR,CAAI,EAAE,EAAGQ,EAAAA,QAAO,SAAST,CAAO,EAAE,EAAGE,CAAS,EACzF,cAAaC,EAEZ,SAAA,CAAAJ,SACE,OAAA,CAAK,UAAWU,EAAAA,QAAO,WAAY,cAAW,GAC5C,SAAAV,CAAA,CACH,EAGFb,EAAAA,IAAC,OAAA,CAAK,UAAWuB,EAAAA,QAAO,YAAc,SAAAjB,EAAM,EAE5Ce,EAAAA,KAAC,OAAA,CAAK,UAAWE,EAAAA,QAAO,YACrB,SAAA,CAAAhB,EACAC,GAAQR,EAAAA,IAAC,OAAA,CAAK,UAAWuB,EAAAA,QAAO,WAAa,SAAAf,CAAA,CAAK,CAAA,EACrD,EAECC,GAASC,GACRW,EAAAA,KAAC,OAAA,CACC,UAAWC,EAAAA,GACTC,EAAAA,QAAO,YACPH,IAAe,IAAQG,EAAAA,QAAO,uBAAuB,EACrDH,IAAe,IAASG,EAAAA,QAAO,uBAAuB,CAAA,EAGvD,SAAA,CAAAxB,EAAWW,CAAK,EAChBD,QAEA,OAAA,CAAK,UAAWc,EAAAA,QAAO,aACrB,wBAAa,QAAQnB,EAAUM,CAAK,CAAC,IAAIc,EAAAN,GAAA,YAAAA,EAAQ,OAAR,YAAAM,EAAepB,EAAUM,CAAK,EAAE,CAAA,CAC5E,CAAA,CAAA,CAAA,EAIHE,GAAeZ,EAAAA,IAAC,OAAA,CAAK,UAAWuB,EAAAA,QAAO,kBAAoB,SAAAX,CAAA,CAAY,CAAA,CAAA,CAAA,CAG9E,EAEAa,EAA6BC,OAAmBC,EAAAA,MAAMtB,EAAM,MAAM,CAAC"}
@@ -0,0 +1,34 @@
1
+ import { FC, ReactNode } from 'react';
2
+ /** Değişimin yönü. `flat` "değişmedi" — yokluk DEĞİL. */
3
+ export type StatTrend = 'up' | 'down' | 'flat';
4
+ type Props = {
5
+ /** Ölçülen şeyin adı ("Bugünkü sipariş"). */
6
+ label: string;
7
+ /** Değerin KENDİSİ — biçimlendirilmiş dize. */
8
+ value: ReactNode;
9
+ /** Değerin yanındaki birim ("₺", "adet"). */
10
+ unit?: string;
11
+ /** Değişim metni ("%12", "+3"). `trend` ile birlikte anlamlı. */
12
+ delta?: string;
13
+ /** Değişimin yönü. */
14
+ trend?: StatTrend;
15
+ /** Artış İYİ mi. */
16
+ isUpPositive?: boolean;
17
+ /** Değerin altındaki bir cümlelik bağlam ("geçen haftaya göre"). */
18
+ description?: ReactNode;
19
+ /** Sol üstte duran ikon madalyonu. */
20
+ icon?: ReactNode;
21
+ /**
22
+ * `plain` KUTUYU kaldırır: zemin, kenarlık ve dolgu gider, yalnızca sayı kalır.
23
+ * `inline` etiketi ve değeri TEK SATIRA dizer, değer teknik fontta — metrik satırı ("Gecikme
24
+ * 412 ms"). Değişim ve açıklama bu kipte de çizilir, satırı uzatır.
25
+ */
26
+ variant?: 'card' | 'plain' | 'inline';
27
+ size?: 'sm' | 'md';
28
+ className?: string;
29
+ testId?: string;
30
+ };
31
+ /** Ölçüm kutusu (KPI). */
32
+ declare const Stat: FC<Props>;
33
+ declare const _default: typeof Stat;
34
+ export default _default;
@@ -0,0 +1,72 @@
1
+ "use client";
2
+ import { jsxs as r, jsx as t } from "react/jsx-runtime";
3
+ import { memo as x } from "react";
4
+ import { DashLg as S, ArrowDownShort as D, ArrowUpShort as g } from "react-bootstrap-icons";
5
+ import { cx as d } from "../../helpers/class-name.helper.js";
6
+ import { named as E } from "../../helpers/component.helper.js";
7
+ import { resolveLabel as $ } from "../../helpers/label.helper.js";
8
+ import { useUi as j } from "../../theme/context.js";
9
+ const a = {"stat":"ui-stat-Xb7wp","stat--sm":"ui-stat--sm-XnK8p","stat--plain":"ui-stat--plain-N-3RC","stat__icon":"ui-stat__icon-MB8NU","stat--inline":"ui-stat--inline-IpE0J","stat__label":"ui-stat__label-kUX2m","stat__value":"ui-stat__value--6p13","stat__unit":"ui-stat__unit-mjHVk","stat__delta":"ui-stat__delta-YKpOu","stat__delta--positive":"ui-stat__delta--positive-1AUAM","stat__delta--negative":"ui-stat__delta--negative--WWEP","stat__description":"ui-stat__description-Yvw6J","stat__srOnly":"ui-stat__srOnly-YKebA"};
10
+ const y = {
11
+ up: /* @__PURE__ */ t(g, { "aria-hidden": !0 }),
12
+ down: /* @__PURE__ */ t(D, { "aria-hidden": !0 }),
13
+ flat: /* @__PURE__ */ t(S, { "aria-hidden": !0 })
14
+ }, p = {
15
+ up: "increase",
16
+ down: "decrease",
17
+ flat: "unchanged"
18
+ }, A = ({
19
+ label: _,
20
+ value: h,
21
+ unit: i,
22
+ delta: o,
23
+ trend: s,
24
+ isUpPositive: u = !0,
25
+ description: n,
26
+ icon: l,
27
+ variant: f = "card",
28
+ size: N = "md",
29
+ className: v,
30
+ testId: w
31
+ }) => {
32
+ var m;
33
+ const { labels: e } = j(), c = s === "flat" ? void 0 : s === "up" === u;
34
+ return (
35
+ /* `card` icin ayri bir sinif YOK: taban sinifin kendisi kart. */
36
+ /* @__PURE__ */ r(
37
+ "div",
38
+ {
39
+ className: d(a.stat, a[`stat--${N}`], a[`stat--${f}`], v),
40
+ "data-testid": w,
41
+ children: [
42
+ l && /* @__PURE__ */ t("span", { className: a.stat__icon, "aria-hidden": !0, children: l }),
43
+ /* @__PURE__ */ t("span", { className: a.stat__label, children: _ }),
44
+ /* @__PURE__ */ r("span", { className: a.stat__value, children: [
45
+ h,
46
+ i && /* @__PURE__ */ t("span", { className: a.stat__unit, children: i })
47
+ ] }),
48
+ o && s && /* @__PURE__ */ r(
49
+ "span",
50
+ {
51
+ className: d(
52
+ a.stat__delta,
53
+ c === !0 && a["stat__delta--positive"],
54
+ c === !1 && a["stat__delta--negative"]
55
+ ),
56
+ children: [
57
+ y[s],
58
+ o,
59
+ /* @__PURE__ */ t("span", { className: a.stat__srOnly, children: $(`Stat.${p[s]}`, (m = e == null ? void 0 : e.stat) == null ? void 0 : m[p[s]]) })
60
+ ]
61
+ }
62
+ ),
63
+ n && /* @__PURE__ */ t("span", { className: a.stat__description, children: n })
64
+ ]
65
+ }
66
+ )
67
+ );
68
+ }, K = /* @__PURE__ */ x(/* @__PURE__ */ E(A, "Stat"));
69
+ export {
70
+ K as default
71
+ };
72
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../src/components/Stat/index.tsx"],"sourcesContent":["'use client';\n\nimport { type FC, memo, type ReactNode } from 'react';\n\nimport { ArrowDownShort, ArrowUpShort, DashLg } from 'react-bootstrap-icons';\n\nimport { cx } from '../../helpers/class-name.helper';\nimport { named } from '../../helpers/component.helper';\nimport { resolveLabel } from '../../helpers/label.helper';\n\nimport { useUi } from '../../theme/context';\n\nimport styles from './index.module.scss';\n\n/** Değişimin yönü. `flat` \"değişmedi\" — yokluk DEĞİL. */\nexport type StatTrend = 'up' | 'down' | 'flat';\n\ntype Props = {\n /** Ölçülen şeyin adı (\"Bugünkü sipariş\"). */\n label: string;\n /** Değerin KENDİSİ — biçimlendirilmiş dize. */\n value: ReactNode;\n /** Değerin yanındaki birim (\"₺\", \"adet\"). */\n unit?: string;\n /** Değişim metni (\"%12\", \"+3\"). `trend` ile birlikte anlamlı. */\n delta?: string;\n /** Değişimin yönü. */\n trend?: StatTrend;\n /** Artış İYİ mi. */\n isUpPositive?: boolean;\n /** Değerin altındaki bir cümlelik bağlam (\"geçen haftaya göre\"). */\n description?: ReactNode;\n /** Sol üstte duran ikon madalyonu. */\n icon?: ReactNode;\n /**\n * `plain` KUTUYU kaldırır: zemin, kenarlık ve dolgu gider, yalnızca sayı kalır.\n * `inline` etiketi ve değeri TEK SATIRA dizer, değer teknik fontta — metrik satırı (\"Gecikme\n * 412 ms\"). Değişim ve açıklama bu kipte de çizilir, satırı uzatır.\n */\n variant?: 'card' | 'plain' | 'inline';\n size?: 'sm' | 'md';\n className?: string;\n testId?: string;\n};\n\nconst TREND_ICON: Record<StatTrend, ReactNode> = {\n up: <ArrowUpShort aria-hidden />,\n down: <ArrowDownShort aria-hidden />,\n flat: <DashLg aria-hidden />,\n};\n\n/* ⚠ YON METNI SR-ONLY ve SAGLAYICIDAN gelir. */\nconst TREND_KEY: Record<StatTrend, 'increase' | 'decrease' | 'unchanged'> = {\n up: 'increase',\n down: 'decrease',\n flat: 'unchanged',\n};\n\n/** Ölçüm kutusu (KPI). */\nconst Stat: FC<Props> = ({\n label,\n value,\n unit,\n delta,\n trend,\n isUpPositive = true,\n description,\n icon,\n variant = 'card',\n size = 'md',\n className,\n testId,\n}) => {\n const { labels } = useUi();\n\n /* Yonun IYI mi KOTU mu oldugu ayri bir karar: \"artis\" her zaman iyi degil. */\n const isPositive = trend === 'flat' ? undefined : (trend === 'up') === isUpPositive;\n\n return (\n /* `card` icin ayri bir sinif YOK: taban sinifin kendisi kart. */\n <div\n className={cx(styles.stat, styles[`stat--${size}`], styles[`stat--${variant}`], className)}\n data-testid={testId}\n >\n {icon && (\n <span className={styles.stat__icon} aria-hidden>\n {icon}\n </span>\n )}\n\n <span className={styles.stat__label}>{label}</span>\n\n <span className={styles.stat__value}>\n {value}\n {unit && <span className={styles.stat__unit}>{unit}</span>}\n </span>\n\n {delta && trend && (\n <span\n className={cx(\n styles.stat__delta,\n isPositive === true && styles['stat__delta--positive'],\n isPositive === false && styles['stat__delta--negative'],\n )}\n >\n {TREND_ICON[trend]}\n {delta}\n {/* Yon METIN olarak da okunur: ok ve renk ekran okuyucuya gecmiyor. */}\n <span className={styles.stat__srOnly}>\n {resolveLabel(`Stat.${TREND_KEY[trend]}`, labels?.stat?.[TREND_KEY[trend]])}\n </span>\n </span>\n )}\n\n {description && <span className={styles.stat__description}>{description}</span>}\n </div>\n );\n};\n\nexport default /*#__PURE__*/ memo(/*#__PURE__*/ named(Stat, 'Stat')) as typeof Stat;\n"],"names":["TREND_ICON","jsx","ArrowUpShort","ArrowDownShort","DashLg","TREND_KEY","Stat","label","value","unit","delta","trend","isUpPositive","description","icon","variant","size","className","testId","labels","useUi","isPositive","jsxs","cx","styles","_a","index","memo","named"],"mappings":";;;;;;;;;AA4CA,MAAMA,IAA2C;AAAA,EAC/C,IAAI,gBAAAC,EAACC,GAAA,EAAa,eAAW,GAAA,CAAC;AAAA,EAC9B,MAAM,gBAAAD,EAACE,GAAA,EAAe,eAAW,GAAA,CAAC;AAAA,EAClC,MAAM,gBAAAF,EAACG,GAAA,EAAO,eAAW,GAAA,CAAC;AAC5B,GAGMC,IAAsE;AAAA,EAC1E,IAAI;AAAA,EACJ,MAAM;AAAA,EACN,MAAM;AACR,GAGMC,IAAkB,CAAC;AAAA,EACvB,OAAAC;AAAA,EACA,OAAAC;AAAA,EACA,MAAAC;AAAA,EACA,OAAAC;AAAA,EACA,OAAAC;AAAA,EACA,cAAAC,IAAe;AAAA,EACf,aAAAC;AAAA,EACA,MAAAC;AAAA,EACA,SAAAC,IAAU;AAAA,EACV,MAAAC,IAAO;AAAA,EACP,WAAAC;AAAA,EACA,QAAAC;AACF,MAAM;;AACJ,QAAM,EAAE,QAAAC,EAAA,IAAWC,EAAA,GAGbC,IAAaV,MAAU,SAAS,SAAaA,MAAU,SAAUC;AAEvE;AAAA;AAAA,IAEE,gBAAAU;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,WAAWC,EAAGC,EAAO,MAAMA,EAAO,SAASR,CAAI,EAAE,GAAGQ,EAAO,SAAST,CAAO,EAAE,GAAGE,CAAS;AAAA,QACzF,eAAaC;AAAA,QAEZ,UAAA;AAAA,UAAAJ,uBACE,QAAA,EAAK,WAAWU,EAAO,YAAY,eAAW,IAC5C,UAAAV,EAAA,CACH;AAAA,UAGF,gBAAAb,EAAC,QAAA,EAAK,WAAWuB,EAAO,aAAc,UAAAjB,GAAM;AAAA,UAE5C,gBAAAe,EAAC,QAAA,EAAK,WAAWE,EAAO,aACrB,UAAA;AAAA,YAAAhB;AAAA,YACAC,KAAQ,gBAAAR,EAAC,QAAA,EAAK,WAAWuB,EAAO,YAAa,UAAAf,EAAA,CAAK;AAAA,UAAA,GACrD;AAAA,UAECC,KAASC,KACR,gBAAAW;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,WAAWC;AAAA,gBACTC,EAAO;AAAA,gBACPH,MAAe,MAAQG,EAAO,uBAAuB;AAAA,gBACrDH,MAAe,MAASG,EAAO,uBAAuB;AAAA,cAAA;AAAA,cAGvD,UAAA;AAAA,gBAAAxB,EAAWW,CAAK;AAAA,gBAChBD;AAAA,kCAEA,QAAA,EAAK,WAAWc,EAAO,cACrB,YAAa,QAAQnB,EAAUM,CAAK,CAAC,KAAIc,IAAAN,KAAA,gBAAAA,EAAQ,SAAR,gBAAAM,EAAepB,EAAUM,CAAK,EAAE,EAAA,CAC5E;AAAA,cAAA;AAAA,YAAA;AAAA,UAAA;AAAA,UAIHE,KAAe,gBAAAZ,EAAC,QAAA,EAAK,WAAWuB,EAAO,mBAAoB,UAAAX,EAAA,CAAY;AAAA,QAAA;AAAA,MAAA;AAAA,IAAA;AAAA;AAG9E,GAEAa,IAA6B,gBAAAC,EAAmB,gBAAAC,EAAMtB,GAAM,MAAM,CAAC;"}
@@ -0,0 +1 @@
1
+ @layer ui{.ui-stat-Xb7wp{display:flex;flex-direction:column;gap:var(--ui-space-1);position:relative;padding:var(--ui-space-4);border:1px solid var(--ui-border);border-radius:var(--ui-radius-lg);background-color:var(--ui-surface)}.ui-stat--sm-XnK8p{padding:var(--ui-space-3)}.ui-stat--plain-N-3RC{padding:0;border:0;background:none}.ui-stat--plain-N-3RC .ui-stat__icon-MB8NU{inset-block-start:0;inset-inline-end:0}.ui-stat--inline-IpE0J{flex-direction:row;flex-wrap:wrap;align-items:baseline;gap:var(--ui-space-1) var(--ui-space-2);padding:0;border:0;background:none}.ui-stat--inline-IpE0J .ui-stat__icon-MB8NU{position:static;align-self:center;font-size:var(--ui-icon-sm)}.ui-stat--inline-IpE0J .ui-stat__label-kUX2m{padding-inline-end:0}.ui-stat--inline-IpE0J .ui-stat__value--6p13{font-family:var(--ui-font-mono);font-size:var(--ui-font-size-xs);letter-spacing:.02em;font-variant-numeric:tabular-nums;font-weight:500;letter-spacing:normal}.ui-stat--inline-IpE0J .ui-stat__unit-mjHVk{font-size:inherit}.ui-stat__icon-MB8NU{position:absolute;inset-block-start:var(--ui-space-3);inset-inline-end:var(--ui-space-3);display:inline-flex;font-size:var(--ui-icon-lg);color:var(--ui-text-3)}.ui-stat__label-kUX2m{font-family:var(--ui-stat-label-font, inherit);font-size:var(--ui-stat-label-size, var(--ui-font-size-xs));font-weight:var(--ui-stat-label-weight, 500);letter-spacing:var(--ui-stat-label-tracking, normal);text-transform:var(--ui-stat-label-transform, none);color:var(--ui-text-2);padding-inline-end:var(--ui-space-6)}.ui-stat__value--6p13{display:flex;align-items:baseline;gap:var(--ui-space-1);font-family:var(--ui-stat-value-font, var(--ui-font-heading));font-size:var(--ui-font-size-2xl);font-weight:var(--ui-stat-value-weight, 700);line-height:var(--ui-leading-tight);letter-spacing:var(--ui-stat-value-tracking, -.022em);color:var(--ui-text);font-variant-numeric:tabular-nums}.ui-stat--sm-XnK8p .ui-stat__value--6p13{font-size:var(--ui-font-size-xl)}.ui-stat__unit-mjHVk{font-family:var(--ui-stat-unit-font, inherit);font-size:var(--ui-stat-unit-size, var(--ui-font-size-sm));font-weight:500;color:var(--ui-text-2);letter-spacing:var(--ui-stat-unit-tracking, normal);text-transform:var(--ui-stat-unit-transform, none)}.ui-stat__delta-YKpOu{display:flex;align-items:center;gap:2px;align-self:flex-start;font-size:var(--ui-font-size-xs);font-weight:600;font-variant-numeric:tabular-nums;color:var(--ui-text-2)}.ui-stat__delta-YKpOu svg{font-size:var(--ui-icon-sm);flex-shrink:0}.ui-stat__delta--positive-1AUAM{color:var(--ui-ok-fg)}.ui-stat__delta--negative--WWEP{color:var(--ui-bad-fg)}.ui-stat__description-Yvw6J{font-size:var(--ui-font-size-xs);color:var(--ui-text-3)}.ui-stat__srOnly-YKebA{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const t=require("react/jsx-runtime"),d=require("react"),s=require("../../helpers/class-name.helper.cjs"),o=require("../../helpers/component.helper.cjs"),e={default:{"status":"ui-status-EcSH2","status__dot":"ui-status__dot-CeQ59","status__dot--neutral":"ui-status__dot--neutral-qUw4d","status__dot--success":"ui-status__dot--success-oOq-v","status__dot--warning":"ui-status__dot--warning-gYCr3","status__dot--danger":"ui-status__dot--danger-ijrpR","status__dot--pulsing":"ui-status__dot--pulsing-l97tj","status__label":"ui-status__label-UXRIa"}},c=({tone:a="neutral",label:u,isPulsing:l,className:n,testId:r})=>t.jsxs("span",{className:s.cx(e.default.status,n),"data-testid":r,children:[t.jsx("span",{"aria-hidden":!0,className:s.cx(e.default.status__dot,e.default[`status__dot--${a}`],l&&e.default["status__dot--pulsing"])}),t.jsx("span",{className:e.default.status__label,children:u})]}),i=d.memo(o.named(c,"StatusDot"));exports.default=i;
2
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs","sources":["../../../src/components/StatusDot/index.tsx"],"sourcesContent":["import { type FC, memo } from 'react';\n\nimport { cx } from '../../helpers/class-name.helper';\nimport { named } from '../../helpers/component.helper';\n\nimport styles from './index.module.scss';\n\nexport type StatusDotTone = 'neutral' | 'success' | 'warning' | 'danger';\n\ntype Props = {\n tone?: StatusDotTone;\n /**\n * Durumun okunan adı (\"Bağlı\", \"Çalışıyor\"). ZORUNLU: nokta yalnızca renk ve renk tek başına\n * anlam taşıyamaz (WCAG 1.4.1). Görsel olarak gizli metin olarak yazılır.\n */\n label: string;\n /** Süren bir iş — \"çalışıyor\", \"bağlanıyor\". Azaltılmış harekette durur. */\n isPulsing?: boolean;\n className?: string;\n testId?: string;\n};\n\n/**\n * Durum noktası — bağlantı, araç çağrısı, meşguliyet.\n *\n * ⚠ Marka tonu YOK (`brand`): nokta bir durum taşır, marka yüzeyi değil. Süren iş `neutral` +\n * `isPulsing` ile anlatılır; yeşil yalnızca anlamsal başarıda (`success`).\n */\nconst StatusDot: FC<Props> = ({ tone = 'neutral', label, isPulsing, className, testId }) => (\n <span className={cx(styles.status, className)} data-testid={testId}>\n <span\n aria-hidden\n className={cx(\n styles.status__dot,\n styles[`status__dot--${tone}`],\n isPulsing && styles['status__dot--pulsing'],\n )}\n />\n <span className={styles.status__label}>{label}</span>\n </span>\n);\n\nexport default /*#__PURE__*/ memo(/*#__PURE__*/ named(StatusDot, 'StatusDot')) as typeof StatusDot;\n"],"names":["StatusDot","tone","label","isPulsing","className","testId","jsxs","cx","styles","jsx","index","memo","named"],"mappings":"0SA4BMA,EAAuB,CAAC,CAAE,KAAAC,EAAO,UAAW,MAAAC,EAAO,UAAAC,EAAW,UAAAC,EAAW,OAAAC,CAAA,IAC7EC,EAAAA,KAAC,OAAA,CAAK,UAAWC,EAAAA,GAAGC,UAAO,OAAQJ,CAAS,EAAG,cAAaC,EAC1D,SAAA,CAAAI,EAAAA,IAAC,OAAA,CACC,cAAW,GACX,UAAWF,EAAAA,GACTC,EAAAA,QAAO,YACPA,EAAAA,QAAO,gBAAgBP,CAAI,EAAE,EAC7BE,GAAaK,EAAAA,QAAO,sBAAsB,CAAA,CAC5C,CAAA,EAEFC,EAAAA,IAAC,OAAA,CAAK,UAAWD,EAAAA,QAAO,cAAgB,SAAAN,CAAA,CAAM,CAAA,EAChD,EAGFQ,EAA6BC,OAAmBC,EAAAA,MAAMZ,EAAW,WAAW,CAAC"}
@@ -0,0 +1,23 @@
1
+ import { FC } from 'react';
2
+ export type StatusDotTone = 'neutral' | 'success' | 'warning' | 'danger';
3
+ type Props = {
4
+ tone?: StatusDotTone;
5
+ /**
6
+ * Durumun okunan adı ("Bağlı", "Çalışıyor"). ZORUNLU: nokta yalnızca renk ve renk tek başına
7
+ * anlam taşıyamaz (WCAG 1.4.1). Görsel olarak gizli metin olarak yazılır.
8
+ */
9
+ label: string;
10
+ /** Süren bir iş — "çalışıyor", "bağlanıyor". Azaltılmış harekette durur. */
11
+ isPulsing?: boolean;
12
+ className?: string;
13
+ testId?: string;
14
+ };
15
+ /**
16
+ * Durum noktası — bağlantı, araç çağrısı, meşguliyet.
17
+ *
18
+ * ⚠ Marka tonu YOK (`brand`): nokta bir durum taşır, marka yüzeyi değil. Süren iş `neutral` +
19
+ * `isPulsing` ile anlatılır; yeşil yalnızca anlamsal başarıda (`success`).
20
+ */
21
+ declare const StatusDot: FC<Props>;
22
+ declare const _default: typeof StatusDot;
23
+ export default _default;
@@ -0,0 +1,23 @@
1
+ import { jsxs as i, jsx as s } from "react/jsx-runtime";
2
+ import { memo as n } from "react";
3
+ import { cx as a } from "../../helpers/class-name.helper.js";
4
+ import { named as l } from "../../helpers/component.helper.js";
5
+ const t = {"status":"ui-status-EcSH2","status__dot":"ui-status__dot-CeQ59","status__dot--neutral":"ui-status__dot--neutral-qUw4d","status__dot--success":"ui-status__dot--success-oOq-v","status__dot--warning":"ui-status__dot--warning-gYCr3","status__dot--danger":"ui-status__dot--danger-ijrpR","status__dot--pulsing":"ui-status__dot--pulsing-l97tj","status__label":"ui-status__label-UXRIa"};
6
+ const u = ({ tone: o = "neutral", label: e, isPulsing: m, className: r, testId: d }) => /* @__PURE__ */ i("span", { className: a(t.status, r), "data-testid": d, children: [
7
+ /* @__PURE__ */ s(
8
+ "span",
9
+ {
10
+ "aria-hidden": !0,
11
+ className: a(
12
+ t.status__dot,
13
+ t[`status__dot--${o}`],
14
+ m && t["status__dot--pulsing"]
15
+ )
16
+ }
17
+ ),
18
+ /* @__PURE__ */ s("span", { className: t.status__label, children: e })
19
+ ] }), h = /* @__PURE__ */ n(/* @__PURE__ */ l(u, "StatusDot"));
20
+ export {
21
+ h as default
22
+ };
23
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../src/components/StatusDot/index.tsx"],"sourcesContent":["import { type FC, memo } from 'react';\n\nimport { cx } from '../../helpers/class-name.helper';\nimport { named } from '../../helpers/component.helper';\n\nimport styles from './index.module.scss';\n\nexport type StatusDotTone = 'neutral' | 'success' | 'warning' | 'danger';\n\ntype Props = {\n tone?: StatusDotTone;\n /**\n * Durumun okunan adı (\"Bağlı\", \"Çalışıyor\"). ZORUNLU: nokta yalnızca renk ve renk tek başına\n * anlam taşıyamaz (WCAG 1.4.1). Görsel olarak gizli metin olarak yazılır.\n */\n label: string;\n /** Süren bir iş — \"çalışıyor\", \"bağlanıyor\". Azaltılmış harekette durur. */\n isPulsing?: boolean;\n className?: string;\n testId?: string;\n};\n\n/**\n * Durum noktası — bağlantı, araç çağrısı, meşguliyet.\n *\n * ⚠ Marka tonu YOK (`brand`): nokta bir durum taşır, marka yüzeyi değil. Süren iş `neutral` +\n * `isPulsing` ile anlatılır; yeşil yalnızca anlamsal başarıda (`success`).\n */\nconst StatusDot: FC<Props> = ({ tone = 'neutral', label, isPulsing, className, testId }) => (\n <span className={cx(styles.status, className)} data-testid={testId}>\n <span\n aria-hidden\n className={cx(\n styles.status__dot,\n styles[`status__dot--${tone}`],\n isPulsing && styles['status__dot--pulsing'],\n )}\n />\n <span className={styles.status__label}>{label}</span>\n </span>\n);\n\nexport default /*#__PURE__*/ memo(/*#__PURE__*/ named(StatusDot, 'StatusDot')) as typeof StatusDot;\n"],"names":["StatusDot","tone","label","isPulsing","className","testId","jsxs","cx","styles","jsx","index","memo","named"],"mappings":";;;;;AA4BA,MAAMA,IAAuB,CAAC,EAAE,MAAAC,IAAO,WAAW,OAAAC,GAAO,WAAAC,GAAW,WAAAC,GAAW,QAAAC,EAAA,MAC7E,gBAAAC,EAAC,QAAA,EAAK,WAAWC,EAAGC,EAAO,QAAQJ,CAAS,GAAG,eAAaC,GAC1D,UAAA;AAAA,EAAA,gBAAAI;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,eAAW;AAAA,MACX,WAAWF;AAAA,QACTC,EAAO;AAAA,QACPA,EAAO,gBAAgBP,CAAI,EAAE;AAAA,QAC7BE,KAAaK,EAAO,sBAAsB;AAAA,MAAA;AAAA,IAC5C;AAAA,EAAA;AAAA,EAEF,gBAAAC,EAAC,QAAA,EAAK,WAAWD,EAAO,eAAgB,UAAAN,EAAA,CAAM;AAAA,GAChD,GAGFQ,IAA6B,gBAAAC,EAAmB,gBAAAC,EAAMZ,GAAW,WAAW,CAAC;"}
@@ -0,0 +1 @@
1
+ @layer ui{.ui-status-EcSH2{display:inline-flex;align-items:center;flex-shrink:0}.ui-status__dot-CeQ59{display:block;width:8px;height:8px;border-radius:var(--ui-radius-pill);background-color:currentColor}.ui-status__dot--neutral-qUw4d{color:var(--ui-text-2)}.ui-status__dot--success-oOq-v{color:var(--ui-ok-fg)}.ui-status__dot--warning-gYCr3{color:var(--ui-warn-fg)}.ui-status__dot--danger-ijrpR{color:var(--ui-bad-fg)}.ui-status__dot--pulsing-l97tj{animation:var(--ui-anim-pulse) var(--ui-duration-pulse) var(--ui-ease-out) infinite}@media (prefers-reduced-motion: reduce){.ui-status__dot--pulsing-l97tj{animation:none}}@media (forced-colors: active){.ui-status__dot-CeQ59{background-color:CanvasText;forced-color-adjust:none}}.ui-status__label-UXRIa{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}}
@@ -0,0 +1,2 @@
1
+ "use client";"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("react/jsx-runtime"),b=require("react"),x=require("react-bootstrap-icons"),d=require("../../helpers/class-name.helper.cjs"),N=require("../../helpers/component.helper.cjs"),q=require("../../helpers/label.helper.cjs"),g=require("../../theme/context.cjs"),s={default:{"steps":"ui-steps-ntge1","steps--horizontal":"ui-steps--horizontal-O-mkx","steps--vertical":"ui-steps--vertical-agfwo","steps--static":"ui-steps--static-t9EED","steps__label":"ui-steps__label-NSeFM","steps__item":"ui-steps__item-GrU1x","steps__button":"ui-steps__button-XBsnS","steps__marker":"ui-steps__marker-g-GLE","steps__item--done":"ui-steps__item--done-mvOuN","steps__item--current":"ui-steps__item--current-Qzlal","steps__text":"ui-steps__text-Mkpkh","steps__description":"ui-steps__description-bQuNT","steps__status":"ui-steps__status-wWJfP"}},v=(r,a)=>r<a?"done":r===a?"current":"upcoming",p={done:"completed",current:"current",upcoming:"upcoming"},y=({steps:r,currentIndex:a,onStepClick:n,label:m,orientation:_="horizontal",className:f,testId:h})=>{const{labels:l}=g.useUi();return e.jsx("ol",{className:d.cx(s.default.steps,s.default[`steps--${_}`],a===void 0&&s.default["steps--static"],f),"aria-label":m,"data-testid":h,children:r.map((c,o)=>{var i;const t=a===void 0?void 0:v(o,a),j=!!n&&t==="done",u=e.jsxs(e.Fragment,{children:[e.jsx("span",{className:s.default.steps__marker,"aria-hidden":!0,children:t==="done"?e.jsx(x.CheckLg,{}):o+1}),e.jsxs("span",{className:s.default.steps__text,children:[e.jsx("span",{className:s.default.steps__label,children:c.label}),c.description&&e.jsx("span",{className:s.default.steps__description,children:c.description})]}),t&&e.jsx("span",{className:s.default.steps__status,children:q.resolveLabel(`Steps.${p[t]}`,(i=l==null?void 0:l.steps)==null?void 0:i[p[t]])})]});return e.jsx("li",{className:d.cx(s.default.steps__item,t&&s.default[`steps__item--${t}`]),"aria-current":t==="current"?"step":void 0,children:j?e.jsx("button",{type:"button",className:s.default.steps__button,onClick:()=>n==null?void 0:n(o),children:u}):e.jsx("span",{className:s.default.steps__button,children:u})},c.id)})})},T=b.memo(N.named(y,"Steps"));exports.default=T;
2
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs","sources":["../../../src/components/Steps/index.tsx"],"sourcesContent":["'use client';\n\nimport { type FC, memo, type ReactNode } from 'react';\n\nimport { CheckLg } from 'react-bootstrap-icons';\n\nimport { cx } from '../../helpers/class-name.helper';\nimport { named } from '../../helpers/component.helper';\nimport { resolveLabel } from '../../helpers/label.helper';\n\nimport { useUi } from '../../theme/context';\n\nimport styles from './index.module.scss';\n\nexport type StepItem = {\n id: string;\n label: string;\n /** Etiketin altındaki bir cümlelik açıklama. */\n description?: ReactNode;\n};\n\ntype Props = {\n steps: StepItem[];\n /** Bulunulan adımın DİZİNİ (0 tabanlı). */\n currentIndex?: number;\n /** Bir adıma dönülebiliyorsa verilir. */\n onStepClick?: (index: number) => void;\n /** Akışın erişilebilir adı (\"Ödeme adımları\"). */\n label: string;\n orientation?: 'horizontal' | 'vertical';\n className?: string;\n testId?: string;\n};\n\n/** Bir adımın durumu — üçü de görsel olarak AYRI çizilir. */\nconst statusOf = (index: number, currentIndex: number): 'done' | 'current' | 'upcoming' => {\n if (index < currentIndex) return 'done';\n if (index === currentIndex) return 'current';\n return 'upcoming';\n};\n\n/*\n * ⚠ DURUM METNI SR-ONLY ve SAGLAYICIDAN gelir; gorsel isaret (tik, dolu daire) ekran okuyucuya\n * hicbir sey soylemiyor.\n */\nconst STATUS_KEY: Record<'done' | 'current' | 'upcoming', 'completed' | 'current' | 'upcoming'> = {\n done: 'completed',\n current: 'current',\n upcoming: 'upcoming',\n};\n\n/** Adım göstergesi (stepper) — çok adımlı akışta NEREDE olunduğu. */\nconst Steps: FC<Props> = ({\n steps,\n currentIndex,\n onStepClick,\n label,\n orientation = 'horizontal',\n className,\n testId,\n}) => {\n const { labels } = useUi();\n\n return (\n <ol\n className={cx(\n styles.steps,\n styles[`steps--${orientation}`],\n currentIndex === undefined && styles['steps--static'],\n className,\n )}\n aria-label={label}\n data-testid={testId}\n >\n {steps.map((step, index) => {\n /* Statik listede durum kavrami YOK — hicbir adim \"bulunulan\" degil. */\n const status = currentIndex === undefined ? undefined : statusOf(index, currentIndex);\n /* Ileri atlamak YOK: atlanan adimin verisi toplanmadan devam edilemez. */\n const isClickable = Boolean(onStepClick) && status === 'done';\n\n const body = (\n <>\n <span className={styles.steps__marker} aria-hidden>\n {status === 'done' ? <CheckLg /> : index + 1}\n </span>\n\n <span className={styles.steps__text}>\n <span className={styles.steps__label}>{step.label}</span>\n {step.description && (\n <span className={styles.steps__description}>{step.description}</span>\n )}\n </span>\n\n {/* Durum METIN olarak da okunur: gorsel isaret ekran okuyucuya\n gecmiyor ve `aria-current` yalnizca bulunulan adimi soyluyor. */}\n {status && (\n <span className={styles.steps__status}>\n {resolveLabel(`Steps.${STATUS_KEY[status]}`, labels?.steps?.[STATUS_KEY[status]])}\n </span>\n )}\n </>\n );\n\n return (\n <li\n key={step.id}\n className={cx(styles.steps__item, status && styles[`steps__item--${status}`])}\n aria-current={status === 'current' ? 'step' : undefined}\n >\n {isClickable ? (\n <button\n type=\"button\"\n className={styles.steps__button}\n onClick={() => onStepClick?.(index)}\n >\n {body}\n </button>\n ) : (\n <span className={styles.steps__button}>{body}</span>\n )}\n </li>\n );\n })}\n </ol>\n );\n};\n\nexport default /*#__PURE__*/ memo(/*#__PURE__*/ named(Steps, 'Steps')) as typeof Steps;\n"],"names":["statusOf","index","currentIndex","STATUS_KEY","Steps","steps","onStepClick","label","orientation","className","testId","labels","useUi","jsx","cx","styles","step","status","isClickable","body","jsxs","Fragment","CheckLg","_a","memo","named"],"mappings":"2aAkCMA,EAAW,CAACC,EAAeC,IAC3BD,EAAQC,EAAqB,OAC7BD,IAAUC,EAAqB,UAC5B,WAOHC,EAA4F,CAChG,KAAM,YACN,QAAS,UACT,SAAU,UACZ,EAGMC,EAAmB,CAAC,CACxB,MAAAC,EACA,aAAAH,EACA,YAAAI,EACA,MAAAC,EACA,YAAAC,EAAc,aACd,UAAAC,EACA,OAAAC,CACF,IAAM,CACJ,KAAM,CAAE,OAAAC,CAAA,EAAWC,QAAA,EAEnB,OACEC,EAAAA,IAAC,KAAA,CACC,UAAWC,EAAAA,GACTC,EAAAA,QAAO,MACPA,EAAAA,QAAO,UAAUP,CAAW,EAAE,EAC9BN,IAAiB,QAAaa,EAAAA,QAAO,eAAe,EACpDN,CAAA,EAEF,aAAYF,EACZ,cAAaG,EAEZ,SAAAL,EAAM,IAAI,CAACW,EAAMf,IAAU,OAE1B,MAAMgB,EAASf,IAAiB,OAAY,OAAYF,EAASC,EAAOC,CAAY,EAE9EgB,EAAc,EAAQZ,GAAgBW,IAAW,OAEjDE,EACJC,EAAAA,KAAAC,EAAAA,SAAA,CACE,SAAA,CAAAR,EAAAA,IAAC,OAAA,CAAK,UAAWE,EAAAA,QAAO,cAAe,cAAW,GAC/C,SAAAE,IAAW,OAASJ,EAAAA,IAACS,EAAAA,QAAA,CAAA,CAAQ,EAAKrB,EAAQ,EAC7C,EAEAmB,EAAAA,KAAC,OAAA,CAAK,UAAWL,EAAAA,QAAO,YACtB,SAAA,CAAAF,MAAC,OAAA,CAAK,UAAWE,EAAAA,QAAO,aAAe,WAAK,MAAM,EACjDC,EAAK,aACJH,MAAC,OAAA,CAAK,UAAWE,EAAAA,QAAO,mBAAqB,WAAK,WAAA,CAAY,CAAA,EAElE,EAICE,GACCJ,EAAAA,IAAC,OAAA,CAAK,UAAWE,EAAAA,QAAO,cACrB,wBAAa,SAASZ,EAAWc,CAAM,CAAC,IAAIM,EAAAZ,GAAA,YAAAA,EAAQ,QAAR,YAAAY,EAAgBpB,EAAWc,CAAM,EAAE,CAAA,CAClF,CAAA,EAEJ,EAGF,OACEJ,EAAAA,IAAC,KAAA,CAEC,UAAWC,EAAAA,GAAGC,EAAAA,QAAO,YAAaE,GAAUF,EAAAA,QAAO,gBAAgBE,CAAM,EAAE,CAAC,EAC5E,eAAcA,IAAW,UAAY,OAAS,OAE7C,SAAAC,EACCL,EAAAA,IAAC,SAAA,CACC,KAAK,SACL,UAAWE,EAAAA,QAAO,cAClB,QAAS,IAAMT,GAAA,YAAAA,EAAcL,GAE5B,SAAAkB,CAAA,CAAA,EAGHN,EAAAA,IAAC,OAAA,CAAK,UAAWE,EAAAA,QAAO,cAAgB,SAAAI,CAAA,CAAK,CAAA,EAb1CH,EAAK,EAAA,CAiBhB,CAAC,CAAA,CAAA,CAGP,EAEAf,EAA6BuB,OAAmBC,EAAAA,MAAMrB,EAAO,OAAO,CAAC"}
@@ -0,0 +1,23 @@
1
+ import { FC, ReactNode } from 'react';
2
+ export type StepItem = {
3
+ id: string;
4
+ label: string;
5
+ /** Etiketin altındaki bir cümlelik açıklama. */
6
+ description?: ReactNode;
7
+ };
8
+ type Props = {
9
+ steps: StepItem[];
10
+ /** Bulunulan adımın DİZİNİ (0 tabanlı). */
11
+ currentIndex?: number;
12
+ /** Bir adıma dönülebiliyorsa verilir. */
13
+ onStepClick?: (index: number) => void;
14
+ /** Akışın erişilebilir adı ("Ödeme adımları"). */
15
+ label: string;
16
+ orientation?: 'horizontal' | 'vertical';
17
+ className?: string;
18
+ testId?: string;
19
+ };
20
+ /** Adım göstergesi (stepper) — çok adımlı akışta NEREDE olunduğu. */
21
+ declare const Steps: FC<Props>;
22
+ declare const _default: typeof Steps;
23
+ export default _default;
@@ -0,0 +1,69 @@
1
+ "use client";
2
+ import { jsx as t, jsxs as l, Fragment as g } from "react/jsx-runtime";
3
+ import { memo as v } from "react";
4
+ import { CheckLg as y } from "react-bootstrap-icons";
5
+ import { cx as d } from "../../helpers/class-name.helper.js";
6
+ import { named as $ } from "../../helpers/component.helper.js";
7
+ import { resolveLabel as j } from "../../helpers/label.helper.js";
8
+ import { useUi as L } from "../../theme/context.js";
9
+ const s = {"steps":"ui-steps-ntge1","steps--horizontal":"ui-steps--horizontal-O-mkx","steps--vertical":"ui-steps--vertical-agfwo","steps--static":"ui-steps--static-t9EED","steps__label":"ui-steps__label-NSeFM","steps__item":"ui-steps__item-GrU1x","steps__button":"ui-steps__button-XBsnS","steps__marker":"ui-steps__marker-g-GLE","steps__item--done":"ui-steps__item--done-mvOuN","steps__item--current":"ui-steps__item--current-Qzlal","steps__text":"ui-steps__text-Mkpkh","steps__description":"ui-steps__description-bQuNT","steps__status":"ui-steps__status-wWJfP"};
10
+ const T = (a, r) => a < r ? "done" : a === r ? "current" : "upcoming", u = {
11
+ done: "completed",
12
+ current: "current",
13
+ upcoming: "upcoming"
14
+ }, U = ({
15
+ steps: a,
16
+ currentIndex: r,
17
+ onStepClick: o,
18
+ label: _,
19
+ orientation: h = "horizontal",
20
+ className: f,
21
+ testId: b
22
+ }) => {
23
+ const { labels: n } = L();
24
+ return /* @__PURE__ */ t(
25
+ "ol",
26
+ {
27
+ className: d(
28
+ s.steps,
29
+ s[`steps--${h}`],
30
+ r === void 0 && s["steps--static"],
31
+ f
32
+ ),
33
+ "aria-label": _,
34
+ "data-testid": b,
35
+ children: a.map((i, c) => {
36
+ var p;
37
+ const e = r === void 0 ? void 0 : T(c, r), N = !!o && e === "done", m = /* @__PURE__ */ l(g, { children: [
38
+ /* @__PURE__ */ t("span", { className: s.steps__marker, "aria-hidden": !0, children: e === "done" ? /* @__PURE__ */ t(y, {}) : c + 1 }),
39
+ /* @__PURE__ */ l("span", { className: s.steps__text, children: [
40
+ /* @__PURE__ */ t("span", { className: s.steps__label, children: i.label }),
41
+ i.description && /* @__PURE__ */ t("span", { className: s.steps__description, children: i.description })
42
+ ] }),
43
+ e && /* @__PURE__ */ t("span", { className: s.steps__status, children: j(`Steps.${u[e]}`, (p = n == null ? void 0 : n.steps) == null ? void 0 : p[u[e]]) })
44
+ ] });
45
+ return /* @__PURE__ */ t(
46
+ "li",
47
+ {
48
+ className: d(s.steps__item, e && s[`steps__item--${e}`]),
49
+ "aria-current": e === "current" ? "step" : void 0,
50
+ children: N ? /* @__PURE__ */ t(
51
+ "button",
52
+ {
53
+ type: "button",
54
+ className: s.steps__button,
55
+ onClick: () => o == null ? void 0 : o(c),
56
+ children: m
57
+ }
58
+ ) : /* @__PURE__ */ t("span", { className: s.steps__button, children: m })
59
+ },
60
+ i.id
61
+ );
62
+ })
63
+ }
64
+ );
65
+ }, q = /* @__PURE__ */ v(/* @__PURE__ */ $(U, "Steps"));
66
+ export {
67
+ q as default
68
+ };
69
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../src/components/Steps/index.tsx"],"sourcesContent":["'use client';\n\nimport { type FC, memo, type ReactNode } from 'react';\n\nimport { CheckLg } from 'react-bootstrap-icons';\n\nimport { cx } from '../../helpers/class-name.helper';\nimport { named } from '../../helpers/component.helper';\nimport { resolveLabel } from '../../helpers/label.helper';\n\nimport { useUi } from '../../theme/context';\n\nimport styles from './index.module.scss';\n\nexport type StepItem = {\n id: string;\n label: string;\n /** Etiketin altındaki bir cümlelik açıklama. */\n description?: ReactNode;\n};\n\ntype Props = {\n steps: StepItem[];\n /** Bulunulan adımın DİZİNİ (0 tabanlı). */\n currentIndex?: number;\n /** Bir adıma dönülebiliyorsa verilir. */\n onStepClick?: (index: number) => void;\n /** Akışın erişilebilir adı (\"Ödeme adımları\"). */\n label: string;\n orientation?: 'horizontal' | 'vertical';\n className?: string;\n testId?: string;\n};\n\n/** Bir adımın durumu — üçü de görsel olarak AYRI çizilir. */\nconst statusOf = (index: number, currentIndex: number): 'done' | 'current' | 'upcoming' => {\n if (index < currentIndex) return 'done';\n if (index === currentIndex) return 'current';\n return 'upcoming';\n};\n\n/*\n * ⚠ DURUM METNI SR-ONLY ve SAGLAYICIDAN gelir; gorsel isaret (tik, dolu daire) ekran okuyucuya\n * hicbir sey soylemiyor.\n */\nconst STATUS_KEY: Record<'done' | 'current' | 'upcoming', 'completed' | 'current' | 'upcoming'> = {\n done: 'completed',\n current: 'current',\n upcoming: 'upcoming',\n};\n\n/** Adım göstergesi (stepper) — çok adımlı akışta NEREDE olunduğu. */\nconst Steps: FC<Props> = ({\n steps,\n currentIndex,\n onStepClick,\n label,\n orientation = 'horizontal',\n className,\n testId,\n}) => {\n const { labels } = useUi();\n\n return (\n <ol\n className={cx(\n styles.steps,\n styles[`steps--${orientation}`],\n currentIndex === undefined && styles['steps--static'],\n className,\n )}\n aria-label={label}\n data-testid={testId}\n >\n {steps.map((step, index) => {\n /* Statik listede durum kavrami YOK — hicbir adim \"bulunulan\" degil. */\n const status = currentIndex === undefined ? undefined : statusOf(index, currentIndex);\n /* Ileri atlamak YOK: atlanan adimin verisi toplanmadan devam edilemez. */\n const isClickable = Boolean(onStepClick) && status === 'done';\n\n const body = (\n <>\n <span className={styles.steps__marker} aria-hidden>\n {status === 'done' ? <CheckLg /> : index + 1}\n </span>\n\n <span className={styles.steps__text}>\n <span className={styles.steps__label}>{step.label}</span>\n {step.description && (\n <span className={styles.steps__description}>{step.description}</span>\n )}\n </span>\n\n {/* Durum METIN olarak da okunur: gorsel isaret ekran okuyucuya\n gecmiyor ve `aria-current` yalnizca bulunulan adimi soyluyor. */}\n {status && (\n <span className={styles.steps__status}>\n {resolveLabel(`Steps.${STATUS_KEY[status]}`, labels?.steps?.[STATUS_KEY[status]])}\n </span>\n )}\n </>\n );\n\n return (\n <li\n key={step.id}\n className={cx(styles.steps__item, status && styles[`steps__item--${status}`])}\n aria-current={status === 'current' ? 'step' : undefined}\n >\n {isClickable ? (\n <button\n type=\"button\"\n className={styles.steps__button}\n onClick={() => onStepClick?.(index)}\n >\n {body}\n </button>\n ) : (\n <span className={styles.steps__button}>{body}</span>\n )}\n </li>\n );\n })}\n </ol>\n );\n};\n\nexport default /*#__PURE__*/ memo(/*#__PURE__*/ named(Steps, 'Steps')) as typeof Steps;\n"],"names":["statusOf","index","currentIndex","STATUS_KEY","Steps","steps","onStepClick","label","orientation","className","testId","labels","useUi","jsx","cx","styles","step","status","isClickable","body","jsxs","Fragment","CheckLg","_a","memo","named"],"mappings":";;;;;;;;;AAkCA,MAAMA,IAAW,CAACC,GAAeC,MAC3BD,IAAQC,IAAqB,SAC7BD,MAAUC,IAAqB,YAC5B,YAOHC,IAA4F;AAAA,EAChG,MAAM;AAAA,EACN,SAAS;AAAA,EACT,UAAU;AACZ,GAGMC,IAAmB,CAAC;AAAA,EACxB,OAAAC;AAAA,EACA,cAAAH;AAAA,EACA,aAAAI;AAAA,EACA,OAAAC;AAAA,EACA,aAAAC,IAAc;AAAA,EACd,WAAAC;AAAA,EACA,QAAAC;AACF,MAAM;AACJ,QAAM,EAAE,QAAAC,EAAA,IAAWC,EAAA;AAEnB,SACE,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWC;AAAA,QACTC,EAAO;AAAA,QACPA,EAAO,UAAUP,CAAW,EAAE;AAAA,QAC9BN,MAAiB,UAAaa,EAAO,eAAe;AAAA,QACpDN;AAAA,MAAA;AAAA,MAEF,cAAYF;AAAA,MACZ,eAAaG;AAAA,MAEZ,UAAAL,EAAM,IAAI,CAACW,GAAMf,MAAU;;AAE1B,cAAMgB,IAASf,MAAiB,SAAY,SAAYF,EAASC,GAAOC,CAAY,GAE9EgB,IAAc,EAAQZ,KAAgBW,MAAW,QAEjDE,IACJ,gBAAAC,EAAAC,GAAA,EACE,UAAA;AAAA,UAAA,gBAAAR,EAAC,QAAA,EAAK,WAAWE,EAAO,eAAe,eAAW,IAC/C,UAAAE,MAAW,SAAS,gBAAAJ,EAACS,GAAA,CAAA,CAAQ,IAAKrB,IAAQ,GAC7C;AAAA,UAEA,gBAAAmB,EAAC,QAAA,EAAK,WAAWL,EAAO,aACtB,UAAA;AAAA,YAAA,gBAAAF,EAAC,QAAA,EAAK,WAAWE,EAAO,cAAe,YAAK,OAAM;AAAA,YACjDC,EAAK,eACJ,gBAAAH,EAAC,QAAA,EAAK,WAAWE,EAAO,oBAAqB,YAAK,YAAA,CAAY;AAAA,UAAA,GAElE;AAAA,UAICE,KACC,gBAAAJ,EAAC,QAAA,EAAK,WAAWE,EAAO,eACrB,YAAa,SAASZ,EAAWc,CAAM,CAAC,KAAIM,IAAAZ,KAAA,gBAAAA,EAAQ,UAAR,gBAAAY,EAAgBpB,EAAWc,CAAM,EAAE,EAAA,CAClF;AAAA,QAAA,GAEJ;AAGF,eACE,gBAAAJ;AAAA,UAAC;AAAA,UAAA;AAAA,YAEC,WAAWC,EAAGC,EAAO,aAAaE,KAAUF,EAAO,gBAAgBE,CAAM,EAAE,CAAC;AAAA,YAC5E,gBAAcA,MAAW,YAAY,SAAS;AAAA,YAE7C,UAAAC,IACC,gBAAAL;AAAA,cAAC;AAAA,cAAA;AAAA,gBACC,MAAK;AAAA,gBACL,WAAWE,EAAO;AAAA,gBAClB,SAAS,MAAMT,KAAA,gBAAAA,EAAcL;AAAA,gBAE5B,UAAAkB;AAAA,cAAA;AAAA,YAAA,IAGH,gBAAAN,EAAC,QAAA,EAAK,WAAWE,EAAO,eAAgB,UAAAI,EAAA,CAAK;AAAA,UAAA;AAAA,UAb1CH,EAAK;AAAA,QAAA;AAAA,MAiBhB,CAAC;AAAA,IAAA;AAAA,EAAA;AAGP,GAEAf,IAA6B,gBAAAuB,EAAmB,gBAAAC,EAAMrB,GAAO,OAAO,CAAC;"}
@@ -0,0 +1 @@
1
+ @layer ui{.ui-steps-ntge1{display:flex;margin:0;padding:0;list-style:none}.ui-steps--horizontal-O-mkx{flex-direction:row;gap:var(--ui-space-2)}@media (max-width: 640px){.ui-steps--horizontal-O-mkx{flex-direction:column;gap:var(--ui-space-1)}}.ui-steps--vertical-agfwo{flex-direction:column;gap:var(--ui-space-1)}.ui-steps--static-t9EED .ui-steps__label-NSeFM{white-space:normal;overflow:visible;text-overflow:clip;color:var(--ui-text)}.ui-steps__item-GrU1x{display:flex;flex:1;min-width:0}.ui-steps--horizontal-O-mkx .ui-steps__item-GrU1x:not(:last-child):after{content:"";align-self:center;flex:1;height:1px;margin-inline:var(--ui-space-2);background-color:var(--ui-border)}@media (max-width: 640px){.ui-steps--horizontal-O-mkx .ui-steps__item-GrU1x:not(:last-child):after{display:none}}.ui-steps__button-XBsnS{display:flex;align-items:center;gap:var(--ui-space-3);flex:0 1 auto;min-width:0;padding:var(--ui-space-2);border:none;border-radius:var(--ui-radius-md);background:none;text-align:start;font-family:var(--ui-font-body);color:inherit}button.ui-steps__button-XBsnS{background-color:transparent;transition:background-color var(--ui-duration-fast) var(--ui-ease-out),translate var(--ui-duration-instant) var(--ui-ease-out)}button.ui-steps__button-XBsnS:hover:not(:disabled):not([aria-disabled=true]){background-color:var(--ui-surface-2)}button.ui-steps__button-XBsnS:active:not(:disabled):not([aria-disabled=true]){background-color:var(--ui-surface-3);translate:0 1px}@media (prefers-reduced-motion: reduce){button.ui-steps__button-XBsnS{transition:none}button.ui-steps__button-XBsnS:active:not(:disabled):not([aria-disabled=true]){translate:none}}button.ui-steps__button-XBsnS{cursor:pointer}button.ui-steps__button-XBsnS:focus-visible{outline:var(--ui-ring-width, 2px) solid var(--ui-ring-color);outline-offset:var(--ui-ring-offset, -1px)}.ui-steps__marker-g-GLE{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:28px;height:28px;border-radius:var(--ui-radius-pill);border:1px solid var(--ui-border-strong);background-color:var(--ui-surface);color:var(--ui-text-2);font-size:var(--ui-font-size-xs);font-weight:600;font-variant-numeric:tabular-nums}.ui-steps__item--done-mvOuN .ui-steps__marker-g-GLE{background-color:var(--ui-selected);border-color:var(--ui-selected);color:var(--ui-on-selected)}.ui-steps__item--current-Qzlal .ui-steps__marker-g-GLE{border-color:var(--ui-selected);box-shadow:inset 0 0 0 1px var(--ui-selected);color:var(--ui-text)}@media (forced-colors: active){.ui-steps__item--done-mvOuN .ui-steps__marker-g-GLE,.ui-steps__item--current-Qzlal .ui-steps__marker-g-GLE{background-color:Highlight;color:HighlightText;forced-color-adjust:none}}.ui-steps__text-Mkpkh{display:flex;flex-direction:column;gap:2px;min-width:0}.ui-steps__label-NSeFM{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:var(--ui-font-size-sm);font-weight:500;color:var(--ui-text-2)}.ui-steps__item--current-Qzlal .ui-steps__label-NSeFM{color:var(--ui-text);font-weight:600}.ui-steps__item--done-mvOuN .ui-steps__label-NSeFM{color:var(--ui-text)}.ui-steps__description-bQuNT{font-size:var(--ui-font-size-xs);color:var(--ui-text-3)}.ui-steps__status-wWJfP{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("react/jsx-runtime"),o=require("react"),_=require("../../helpers/class-name.helper.cjs"),x=require("../../helpers/component.helper.cjs"),h=require("../Link/index.cjs"),a={default:{"card":"ui-card-wkzhi","card__media":"ui-card__media--Lm-v","card__content":"ui-card__content-8uHkm","card__title":"ui-card__title-1EwbD","card__link":"ui-card__link-mhY-M","card__description":"ui-card__description-3O0R7","card__meta":"ui-card__meta-Xzk4q"}},f=({title:c,href:t,description:r,meta:s,media:d,headingLevel:l=3,linkProps:n,className:i,testId:u})=>{const m=`h${l}`;return e.jsxs("article",{className:_.cx(a.default.card,i),"data-testid":u,children:[d&&e.jsx("span",{className:a.default.card__media,"aria-hidden":!0,children:d}),e.jsxs("div",{className:a.default.card__content,children:[e.jsx(m,{className:a.default.card__title,children:e.jsx(h.default,{href:t,className:a.default.card__link,...n,children:c})}),r&&e.jsx("p",{className:a.default.card__description,children:r}),s&&e.jsx("div",{className:a.default.card__meta,children:s})]})]})},j=o.memo(x.named(f,"SummaryCard"));exports.default=j;
2
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs","sources":["../../../src/components/SummaryCard/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';\nimport type { UiLinkExtraProps } from '../../types/link.type';\nimport UiLink from '../Link';\n\nimport styles from './index.module.scss';\n\nexport type SummaryCardHeadingLevel = 2 | 3 | 4;\n\ntype Props = {\n /** Kart başlığı — aynı zamanda bağlantı metni. */\n title: string;\n href: string;\n /** Başlığın altındaki 1-2 cümlelik özet. */\n description?: string;\n /** Alt meta satırı: rozetler, fiyat aralığı, sayaç. */\n meta?: ReactNode;\n /** Sol madalyon: ikon ya da küçük medya. */\n media?: ReactNode;\n /** Liste bağlamındaki başlık seviyesi. */\n headingLevel?: SummaryCardHeadingLevel;\n /** Yönlendiriciye geçirilecek ek props. */\n linkProps?: UiLinkExtraProps;\n className?: string;\n testId?: string;\n};\n\n/** Özet kartı — başlık + kısa açıklama + meta satırı taşıyan BAĞLANTILI kart. */\nconst SummaryCard: FC<Props> = ({\n title,\n href,\n description,\n meta,\n media,\n headingLevel = 3,\n linkProps,\n className,\n testId,\n}) => {\n const Heading = `h${headingLevel}` as ElementType;\n\n return (\n <article className={cx(styles.card, className)} data-testid={testId}>\n {media && (\n <span className={styles.card__media} aria-hidden>\n {media}\n </span>\n )}\n\n <div className={styles.card__content}>\n <Heading className={styles.card__title}>\n <UiLink href={href} className={styles.card__link} {...linkProps}>\n {title}\n </UiLink>\n </Heading>\n\n {description && <p className={styles.card__description}>{description}</p>}\n\n {meta && <div className={styles.card__meta}>{meta}</div>}\n </div>\n </article>\n );\n};\n\nexport default /*#__PURE__*/ memo(\n /*#__PURE__*/ named(SummaryCard, 'SummaryCard'),\n) as typeof SummaryCard;\n"],"names":["SummaryCard","title","href","description","meta","media","headingLevel","linkProps","className","testId","Heading","jsxs","cx","styles","jsx","UiLink","index","memo","named"],"mappings":"yUA8BMA,EAAyB,CAAC,CAC9B,MAAAC,EACA,KAAAC,EACA,YAAAC,EACA,KAAAC,EACA,MAAAC,EACA,aAAAC,EAAe,EACf,UAAAC,EACA,UAAAC,EACA,OAAAC,CACF,IAAM,CACJ,MAAMC,EAAU,IAAIJ,CAAY,GAEhC,OACEK,OAAC,WAAQ,UAAWC,EAAAA,GAAGC,EAAAA,QAAO,KAAML,CAAS,EAAG,cAAaC,EAC1D,SAAA,CAAAJ,SACE,OAAA,CAAK,UAAWQ,EAAAA,QAAO,YAAa,cAAW,GAC7C,SAAAR,CAAA,CACH,EAGFM,EAAAA,KAAC,MAAA,CAAI,UAAWE,EAAAA,QAAO,cACrB,SAAA,CAAAC,EAAAA,IAACJ,EAAA,CAAQ,UAAWG,EAAAA,QAAO,YACzB,SAAAC,EAAAA,IAACC,EAAAA,QAAA,CAAO,KAAAb,EAAY,UAAWW,EAAAA,QAAO,WAAa,GAAGN,EACnD,WACH,EACF,EAECJ,GAAeW,EAAAA,IAAC,IAAA,CAAE,UAAWD,EAAAA,QAAO,kBAAoB,SAAAV,EAAY,EAEpEC,GAAQU,EAAAA,IAAC,MAAA,CAAI,UAAWD,EAAAA,QAAO,WAAa,SAAAT,CAAA,CAAK,CAAA,CAAA,CACpD,CAAA,EACF,CAEJ,EAEAY,EAA6BC,EAAAA,KACbC,EAAAA,MAAMlB,EAAa,aAAa,CAChD"}
@@ -0,0 +1,24 @@
1
+ import { FC, ReactNode } from 'react';
2
+ import { UiLinkExtraProps } from '../../types/link.type';
3
+ export type SummaryCardHeadingLevel = 2 | 3 | 4;
4
+ type Props = {
5
+ /** Kart başlığı — aynı zamanda bağlantı metni. */
6
+ title: string;
7
+ href: string;
8
+ /** Başlığın altındaki 1-2 cümlelik özet. */
9
+ description?: string;
10
+ /** Alt meta satırı: rozetler, fiyat aralığı, sayaç. */
11
+ meta?: ReactNode;
12
+ /** Sol madalyon: ikon ya da küçük medya. */
13
+ media?: ReactNode;
14
+ /** Liste bağlamındaki başlık seviyesi. */
15
+ headingLevel?: SummaryCardHeadingLevel;
16
+ /** Yönlendiriciye geçirilecek ek props. */
17
+ linkProps?: UiLinkExtraProps;
18
+ className?: string;
19
+ testId?: string;
20
+ };
21
+ /** Özet kartı — başlık + kısa açıklama + meta satırı taşıyan BAĞLANTILI kart. */
22
+ declare const SummaryCard: FC<Props>;
23
+ declare const _default: typeof SummaryCard;
24
+ export default _default;
@@ -0,0 +1,33 @@
1
+ import { jsxs as m, jsx as a } from "react/jsx-runtime";
2
+ import { memo as h } from "react";
3
+ import { cx as p } from "../../helpers/class-name.helper.js";
4
+ import { named as f } from "../../helpers/component.helper.js";
5
+ import N from "../Link/index.js";
6
+ const r = {"card":"ui-card-wkzhi","card__media":"ui-card__media--Lm-v","card__content":"ui-card__content-8uHkm","card__title":"ui-card__title-1EwbD","card__link":"ui-card__link-mhY-M","card__description":"ui-card__description-3O0R7","card__meta":"ui-card__meta-Xzk4q"};
7
+ const u = ({
8
+ title: i,
9
+ href: s,
10
+ description: e,
11
+ meta: c,
12
+ media: d,
13
+ headingLevel: t = 3,
14
+ linkProps: n,
15
+ className: l,
16
+ testId: o
17
+ }) => {
18
+ const _ = `h${t}`;
19
+ return /* @__PURE__ */ m("article", { className: p(r.card, l), "data-testid": o, children: [
20
+ d && /* @__PURE__ */ a("span", { className: r.card__media, "aria-hidden": !0, children: d }),
21
+ /* @__PURE__ */ m("div", { className: r.card__content, children: [
22
+ /* @__PURE__ */ a(_, { className: r.card__title, children: /* @__PURE__ */ a(N, { href: s, className: r.card__link, ...n, children: i }) }),
23
+ e && /* @__PURE__ */ a("p", { className: r.card__description, children: e }),
24
+ c && /* @__PURE__ */ a("div", { className: r.card__meta, children: c })
25
+ ] })
26
+ ] });
27
+ }, S = /* @__PURE__ */ h(
28
+ /* @__PURE__ */ f(u, "SummaryCard")
29
+ );
30
+ export {
31
+ S as default
32
+ };
33
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../src/components/SummaryCard/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';\nimport type { UiLinkExtraProps } from '../../types/link.type';\nimport UiLink from '../Link';\n\nimport styles from './index.module.scss';\n\nexport type SummaryCardHeadingLevel = 2 | 3 | 4;\n\ntype Props = {\n /** Kart başlığı — aynı zamanda bağlantı metni. */\n title: string;\n href: string;\n /** Başlığın altındaki 1-2 cümlelik özet. */\n description?: string;\n /** Alt meta satırı: rozetler, fiyat aralığı, sayaç. */\n meta?: ReactNode;\n /** Sol madalyon: ikon ya da küçük medya. */\n media?: ReactNode;\n /** Liste bağlamındaki başlık seviyesi. */\n headingLevel?: SummaryCardHeadingLevel;\n /** Yönlendiriciye geçirilecek ek props. */\n linkProps?: UiLinkExtraProps;\n className?: string;\n testId?: string;\n};\n\n/** Özet kartı — başlık + kısa açıklama + meta satırı taşıyan BAĞLANTILI kart. */\nconst SummaryCard: FC<Props> = ({\n title,\n href,\n description,\n meta,\n media,\n headingLevel = 3,\n linkProps,\n className,\n testId,\n}) => {\n const Heading = `h${headingLevel}` as ElementType;\n\n return (\n <article className={cx(styles.card, className)} data-testid={testId}>\n {media && (\n <span className={styles.card__media} aria-hidden>\n {media}\n </span>\n )}\n\n <div className={styles.card__content}>\n <Heading className={styles.card__title}>\n <UiLink href={href} className={styles.card__link} {...linkProps}>\n {title}\n </UiLink>\n </Heading>\n\n {description && <p className={styles.card__description}>{description}</p>}\n\n {meta && <div className={styles.card__meta}>{meta}</div>}\n </div>\n </article>\n );\n};\n\nexport default /*#__PURE__*/ memo(\n /*#__PURE__*/ named(SummaryCard, 'SummaryCard'),\n) as typeof SummaryCard;\n"],"names":["SummaryCard","title","href","description","meta","media","headingLevel","linkProps","className","testId","Heading","jsxs","cx","styles","jsx","UiLink","index","memo","named"],"mappings":";;;;;;AA8BA,MAAMA,IAAyB,CAAC;AAAA,EAC9B,OAAAC;AAAA,EACA,MAAAC;AAAA,EACA,aAAAC;AAAA,EACA,MAAAC;AAAA,EACA,OAAAC;AAAA,EACA,cAAAC,IAAe;AAAA,EACf,WAAAC;AAAA,EACA,WAAAC;AAAA,EACA,QAAAC;AACF,MAAM;AACJ,QAAMC,IAAU,IAAIJ,CAAY;AAEhC,SACE,gBAAAK,EAAC,aAAQ,WAAWC,EAAGC,EAAO,MAAML,CAAS,GAAG,eAAaC,GAC1D,UAAA;AAAA,IAAAJ,uBACE,QAAA,EAAK,WAAWQ,EAAO,aAAa,eAAW,IAC7C,UAAAR,EAAA,CACH;AAAA,IAGF,gBAAAM,EAAC,OAAA,EAAI,WAAWE,EAAO,eACrB,UAAA;AAAA,MAAA,gBAAAC,EAACJ,GAAA,EAAQ,WAAWG,EAAO,aACzB,UAAA,gBAAAC,EAACC,GAAA,EAAO,MAAAb,GAAY,WAAWW,EAAO,YAAa,GAAGN,GACnD,aACH,GACF;AAAA,MAECJ,KAAe,gBAAAW,EAAC,KAAA,EAAE,WAAWD,EAAO,mBAAoB,UAAAV,GAAY;AAAA,MAEpEC,KAAQ,gBAAAU,EAAC,OAAA,EAAI,WAAWD,EAAO,YAAa,UAAAT,EAAA,CAAK;AAAA,IAAA,EAAA,CACpD;AAAA,EAAA,GACF;AAEJ,GAEAY,IAA6B,gBAAAC;AAAA,EACb,gBAAAC,EAAMlB,GAAa,aAAa;AAChD;"}
@@ -0,0 +1 @@
1
+ @layer ui{.ui-card-wkzhi{background-color:var(--ui-surface);border:1px solid var(--ui-border);border-radius:var(--ui-radius-lg)}@media (max-width: 640px){.ui-card-wkzhi{border-radius:var(--ui-radius-md)}}.ui-card-wkzhi{transition:border-color var(--ui-duration-fast) var(--ui-ease-out),box-shadow var(--ui-duration-fast) var(--ui-ease-out),transform var(--ui-duration-fast) var(--ui-ease-out)}.ui-card-wkzhi:hover{border-color:var(--ui-border-strong);box-shadow:var(--ui-shadow-md);transform:translateY(-2px)}.ui-card-wkzhi:active{transform:translateY(0);box-shadow:var(--ui-shadow-xs)}@media (prefers-reduced-motion: reduce){.ui-card-wkzhi{transition:none}.ui-card-wkzhi:hover,.ui-card-wkzhi:active{transform:none}}.ui-card-wkzhi{position:relative;display:flex;align-items:flex-start;gap:var(--ui-space-3);padding:var(--ui-space-4);height:100%}.ui-card__media--Lm-v{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;flex-shrink:0;border-radius:var(--ui-radius-sm);background-color:var(--ui-surface-2);color:var(--ui-text-2);font-size:var(--ui-icon-md)}.ui-card__content-8uHkm{display:flex;flex-direction:column;gap:var(--ui-space-1);flex:1;min-width:0}.ui-card__title-1EwbD{font-size:var(--ui-font-size-base);font-weight:600;line-height:var(--ui-leading-snug)}.ui-card__link-mhY-M{color:var(--ui-text);text-decoration:none}.ui-card__link-mhY-M:focus-visible{outline:var(--ui-ring-width, 2px) solid var(--ui-ring-color);outline-offset:var(--ui-ring-offset, 2px)}.ui-card__link-mhY-M:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:var(--ui-radius-lg)}.ui-card__description-3O0R7{font-size:var(--ui-font-size-sm);line-height:var(--ui-leading-normal);color:var(--ui-text-2);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.ui-card__meta-Xzk4q{position:relative;z-index:10;display:flex;flex-wrap:wrap;align-items:center;gap:var(--ui-space-2)}}
@@ -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"),c=require("react"),m=require("../../helpers/class-name.helper.cjs"),x=require("../../helpers/component.helper.cjs"),e={default:{"switch":"ui-switch-KLH29","switch__input":"ui-switch__input-Q2UQ4","switch--labelFirst":"ui-switch--labelFirst-Grirk","switch__label":"ui-switch__label-gPZuO","switch__hint":"ui-switch__hint-NRuzC","switch__track":"ui-switch__track-3417m","switch__thumb":"ui-switch__thumb-1LHta","switch__text":"ui-switch__text-32uMY"}},f=c.forwardRef(({label:r,hint:t,isLabelFirst:n,className:u,id:o,testId:h,...l},_)=>{const b=c.useId(),a=o??b,i=`${a}-label`,d=`${a}-hint`;return s.jsxs("label",{className:m.cx(e.default.switch,n&&e.default["switch--labelFirst"],u),"data-testid":h,children:[s.jsx("input",{ref:_,type:"checkbox",role:"switch",id:a,className:e.default.switch__input,"aria-labelledby":i,"aria-describedby":t?d:l["aria-describedby"],...l}),s.jsx("span",{className:e.default.switch__track,"aria-hidden":!0,children:s.jsx("span",{className:e.default.switch__thumb})}),s.jsxs("span",{className:e.default.switch__text,children:[s.jsx("span",{id:i,className:e.default.switch__label,children:r}),t&&s.jsx("span",{id:d,className:e.default.switch__hint,children:t})]})]})}),p=c.memo(x.named(f,"Switch"));exports.default=p;
2
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs","sources":["../../../src/components/Switch/index.tsx"],"sourcesContent":["'use client';\n\nimport { forwardRef, type InputHTMLAttributes, memo, type ReactNode, useId } from 'react';\n\nimport { cx } from '../../helpers/class-name.helper';\nimport { named } from '../../helpers/component.helper';\n\nimport styles from './index.module.scss';\n\ntype Props = Omit<InputHTMLAttributes<HTMLInputElement>, 'type' | 'role'> & {\n /** Anahtarın görünür etiketi. */\n label: ReactNode;\n /** Etiketin altındaki açıklama; `aria-describedby` ile bağlanır. */\n hint?: string;\n /** Etiket anahtarın SOLUNDA durur — ayar listelerinin yaygın düzeni. */\n isLabelFirst?: boolean;\n testId?: string;\n};\n\n/**\n * Anahtar (switch) — anında uygulanan aç/kapa.\n * @example <Switch label=\"Kampanya bildirimleri\" hint=\"E-posta ile ayda en fazla iki…\n */\nconst Switch = forwardRef<HTMLInputElement, Props>(\n ({ label, hint, isLabelFirst, className, id, testId, ...rest }, ref) => {\n /*\n * Prop'un dokumani `aria-describedby` diyordu ama hicbir `id` uretilmiyor, metin yalnizca\n * sarmalayan `<label>`in icinde duruyordu\n * ⚠ IPUCU ERISILEBILIR ADA DEGIL ACIKLAMAYA BAGLANIR.\n */\n const generatedId = useId();\n const baseId = id ?? generatedId;\n const labelId = `${baseId}-label`;\n const hintId = `${baseId}-hint`;\n\n return (\n <label\n className={cx(styles.switch, isLabelFirst && styles['switch--labelFirst'], className)}\n data-testid={testId}\n >\n <input\n ref={ref}\n type=\"checkbox\"\n /*\n * `role=\"switch\"` YEREL onay kutusunun UZERINE yazilir: davranis checkbox'tan gelir,\n * DUYURU switch olur.\n */\n role=\"switch\"\n id={baseId}\n className={styles.switch__input}\n aria-labelledby={labelId}\n aria-describedby={hint ? hintId : rest['aria-describedby']}\n {...rest}\n />\n\n {/* Kulbun tasiyicisi; gorsel durum tamamen CSS'te. */}\n <span className={styles.switch__track} aria-hidden>\n <span className={styles.switch__thumb} />\n </span>\n\n <span className={styles.switch__text}>\n <span id={labelId} className={styles.switch__label}>\n {label}\n </span>\n {hint && (\n <span id={hintId} className={styles.switch__hint}>\n {hint}\n </span>\n )}\n </span>\n </label>\n );\n },\n);\n\nexport default /*#__PURE__*/ memo(/*#__PURE__*/ named(Switch, 'Switch')) as typeof Switch;\n"],"names":["Switch","forwardRef","label","hint","isLabelFirst","className","id","testId","rest","ref","generatedId","useId","baseId","labelId","hintId","jsxs","cx","styles","jsx","index","memo","named"],"mappings":"uTAsBMA,EAASC,EAAAA,WACb,CAAC,CAAE,MAAAC,EAAO,KAAAC,EAAM,aAAAC,EAAc,UAAAC,EAAW,GAAAC,EAAI,OAAAC,EAAQ,GAAGC,CAAA,EAAQC,IAAQ,CAMtE,MAAMC,EAAcC,EAAAA,MAAA,EACdC,EAASN,GAAMI,EACfG,EAAU,GAAGD,CAAM,SACnBE,EAAS,GAAGF,CAAM,QAExB,OACEG,EAAAA,KAAC,QAAA,CACC,UAAWC,EAAAA,GAAGC,EAAAA,QAAO,OAAQb,GAAgBa,UAAO,oBAAoB,EAAGZ,CAAS,EACpF,cAAaE,EAEb,SAAA,CAAAW,EAAAA,IAAC,QAAA,CACC,IAAAT,EACA,KAAK,WAKL,KAAK,SACL,GAAIG,EACJ,UAAWK,EAAAA,QAAO,cAClB,kBAAiBJ,EACjB,mBAAkBV,EAAOW,EAASN,EAAK,kBAAkB,EACxD,GAAGA,CAAA,CAAA,EAINU,EAAAA,IAAC,OAAA,CAAK,UAAWD,EAAAA,QAAO,cAAe,cAAW,GAChD,SAAAC,EAAAA,IAAC,OAAA,CAAK,UAAWD,EAAAA,QAAO,aAAA,CAAe,EACzC,EAEAF,EAAAA,KAAC,OAAA,CAAK,UAAWE,EAAAA,QAAO,aACtB,SAAA,CAAAC,MAAC,QAAK,GAAIL,EAAS,UAAWI,EAAAA,QAAO,cAClC,SAAAf,EACH,EACCC,SACE,OAAA,CAAK,GAAIW,EAAQ,UAAWG,UAAO,aACjC,SAAAd,CAAA,CACH,CAAA,CAAA,CAEJ,CAAA,CAAA,CAAA,CAGN,CACF,EAEAgB,EAA6BC,OAAmBC,EAAAA,MAAMrB,EAAQ,QAAQ,CAAC"}
@@ -0,0 +1,16 @@
1
+ import { InputHTMLAttributes, ReactNode } from 'react';
2
+ /**
3
+ * Anahtar (switch) — anında uygulanan aç/kapa.
4
+ * @example <Switch label="Kampanya bildirimleri" hint="E-posta ile ayda en fazla iki…
5
+ */
6
+ declare const Switch: import('react').ForwardRefExoticComponent<Omit<InputHTMLAttributes<HTMLInputElement>, "role" | "type"> & {
7
+ /** Anahtarın görünür etiketi. */
8
+ label: ReactNode;
9
+ /** Etiketin altındaki açıklama; `aria-describedby` ile bağlanır. */
10
+ hint?: string;
11
+ /** Etiket anahtarın SOLUNDA durur — ayar listelerinin yaygın düzeni. */
12
+ isLabelFirst?: boolean;
13
+ testId?: string;
14
+ } & import('react').RefAttributes<HTMLInputElement>>;
15
+ declare const _default: typeof Switch;
16
+ export default _default;
@@ -0,0 +1,42 @@
1
+ "use client";
2
+ import { jsxs as l, jsx as e } from "react/jsx-runtime";
3
+ import { memo as w, forwardRef as _, useId as f } from "react";
4
+ import { cx as u } from "../../helpers/class-name.helper.js";
5
+ import { named as x } from "../../helpers/component.helper.js";
6
+ const s = {"switch":"ui-switch-KLH29","switch__input":"ui-switch__input-Q2UQ4","switch--labelFirst":"ui-switch--labelFirst-Grirk","switch__label":"ui-switch__label-gPZuO","switch__hint":"ui-switch__hint-NRuzC","switch__track":"ui-switch__track-3417m","switch__thumb":"ui-switch__thumb-1LHta","switch__text":"ui-switch__text-32uMY"};
7
+ const N = _(
8
+ ({ label: d, hint: a, isLabelFirst: n, className: m, id: o, testId: h, ...i }, b) => {
9
+ const p = f(), t = o ?? p, c = `${t}-label`, r = `${t}-hint`;
10
+ return /* @__PURE__ */ l(
11
+ "label",
12
+ {
13
+ className: u(s.switch, n && s["switch--labelFirst"], m),
14
+ "data-testid": h,
15
+ children: [
16
+ /* @__PURE__ */ e(
17
+ "input",
18
+ {
19
+ ref: b,
20
+ type: "checkbox",
21
+ role: "switch",
22
+ id: t,
23
+ className: s.switch__input,
24
+ "aria-labelledby": c,
25
+ "aria-describedby": a ? r : i["aria-describedby"],
26
+ ...i
27
+ }
28
+ ),
29
+ /* @__PURE__ */ e("span", { className: s.switch__track, "aria-hidden": !0, children: /* @__PURE__ */ e("span", { className: s.switch__thumb }) }),
30
+ /* @__PURE__ */ l("span", { className: s.switch__text, children: [
31
+ /* @__PURE__ */ e("span", { id: c, className: s.switch__label, children: d }),
32
+ a && /* @__PURE__ */ e("span", { id: r, className: s.switch__hint, children: a })
33
+ ] })
34
+ ]
35
+ }
36
+ );
37
+ }
38
+ ), $ = /* @__PURE__ */ w(/* @__PURE__ */ x(N, "Switch"));
39
+ export {
40
+ $ as default
41
+ };
42
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../src/components/Switch/index.tsx"],"sourcesContent":["'use client';\n\nimport { forwardRef, type InputHTMLAttributes, memo, type ReactNode, useId } from 'react';\n\nimport { cx } from '../../helpers/class-name.helper';\nimport { named } from '../../helpers/component.helper';\n\nimport styles from './index.module.scss';\n\ntype Props = Omit<InputHTMLAttributes<HTMLInputElement>, 'type' | 'role'> & {\n /** Anahtarın görünür etiketi. */\n label: ReactNode;\n /** Etiketin altındaki açıklama; `aria-describedby` ile bağlanır. */\n hint?: string;\n /** Etiket anahtarın SOLUNDA durur — ayar listelerinin yaygın düzeni. */\n isLabelFirst?: boolean;\n testId?: string;\n};\n\n/**\n * Anahtar (switch) — anında uygulanan aç/kapa.\n * @example <Switch label=\"Kampanya bildirimleri\" hint=\"E-posta ile ayda en fazla iki…\n */\nconst Switch = forwardRef<HTMLInputElement, Props>(\n ({ label, hint, isLabelFirst, className, id, testId, ...rest }, ref) => {\n /*\n * Prop'un dokumani `aria-describedby` diyordu ama hicbir `id` uretilmiyor, metin yalnizca\n * sarmalayan `<label>`in icinde duruyordu\n * ⚠ IPUCU ERISILEBILIR ADA DEGIL ACIKLAMAYA BAGLANIR.\n */\n const generatedId = useId();\n const baseId = id ?? generatedId;\n const labelId = `${baseId}-label`;\n const hintId = `${baseId}-hint`;\n\n return (\n <label\n className={cx(styles.switch, isLabelFirst && styles['switch--labelFirst'], className)}\n data-testid={testId}\n >\n <input\n ref={ref}\n type=\"checkbox\"\n /*\n * `role=\"switch\"` YEREL onay kutusunun UZERINE yazilir: davranis checkbox'tan gelir,\n * DUYURU switch olur.\n */\n role=\"switch\"\n id={baseId}\n className={styles.switch__input}\n aria-labelledby={labelId}\n aria-describedby={hint ? hintId : rest['aria-describedby']}\n {...rest}\n />\n\n {/* Kulbun tasiyicisi; gorsel durum tamamen CSS'te. */}\n <span className={styles.switch__track} aria-hidden>\n <span className={styles.switch__thumb} />\n </span>\n\n <span className={styles.switch__text}>\n <span id={labelId} className={styles.switch__label}>\n {label}\n </span>\n {hint && (\n <span id={hintId} className={styles.switch__hint}>\n {hint}\n </span>\n )}\n </span>\n </label>\n );\n },\n);\n\nexport default /*#__PURE__*/ memo(/*#__PURE__*/ named(Switch, 'Switch')) as typeof Switch;\n"],"names":["Switch","forwardRef","label","hint","isLabelFirst","className","id","testId","rest","ref","generatedId","useId","baseId","labelId","hintId","jsxs","cx","styles","jsx","index","memo","named"],"mappings":";;;;;;AAsBA,MAAMA,IAASC;AAAA,EACb,CAAC,EAAE,OAAAC,GAAO,MAAAC,GAAM,cAAAC,GAAc,WAAAC,GAAW,IAAAC,GAAI,QAAAC,GAAQ,GAAGC,EAAA,GAAQC,MAAQ;AAMtE,UAAMC,IAAcC,EAAA,GACdC,IAASN,KAAMI,GACfG,IAAU,GAAGD,CAAM,UACnBE,IAAS,GAAGF,CAAM;AAExB,WACE,gBAAAG;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,WAAWC,EAAGC,EAAO,QAAQb,KAAgBa,EAAO,oBAAoB,GAAGZ,CAAS;AAAA,QACpF,eAAaE;AAAA,QAEb,UAAA;AAAA,UAAA,gBAAAW;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,KAAAT;AAAA,cACA,MAAK;AAAA,cAKL,MAAK;AAAA,cACL,IAAIG;AAAA,cACJ,WAAWK,EAAO;AAAA,cAClB,mBAAiBJ;AAAA,cACjB,oBAAkBV,IAAOW,IAASN,EAAK,kBAAkB;AAAA,cACxD,GAAGA;AAAA,YAAA;AAAA,UAAA;AAAA,UAIN,gBAAAU,EAAC,QAAA,EAAK,WAAWD,EAAO,eAAe,eAAW,IAChD,UAAA,gBAAAC,EAAC,QAAA,EAAK,WAAWD,EAAO,cAAA,CAAe,GACzC;AAAA,UAEA,gBAAAF,EAAC,QAAA,EAAK,WAAWE,EAAO,cACtB,UAAA;AAAA,YAAA,gBAAAC,EAAC,UAAK,IAAIL,GAAS,WAAWI,EAAO,eAClC,UAAAf,GACH;AAAA,YACCC,uBACE,QAAA,EAAK,IAAIW,GAAQ,WAAWG,EAAO,cACjC,UAAAd,EAAA,CACH;AAAA,UAAA,EAAA,CAEJ;AAAA,QAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EAGN;AACF,GAEAgB,IAA6B,gBAAAC,EAAmB,gBAAAC,EAAMrB,GAAQ,QAAQ,CAAC;"}