@handijit/ui 0.0.0-stage → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (639) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +786 -2
  3. package/build/base.css +1 -0
  4. package/build/charts.cjs +2 -0
  5. package/build/charts.cjs.map +1 -0
  6. package/build/charts.css +1 -0
  7. package/build/charts.js +1866 -0
  8. package/build/charts.js.map +1 -0
  9. package/build/chat.cjs +4 -0
  10. package/build/chat.cjs.map +1 -0
  11. package/build/chat.css +1 -0
  12. package/build/chat.js +1121 -0
  13. package/build/chat.js.map +1 -0
  14. package/build/components/Accordion/index.cjs +2 -0
  15. package/build/components/Accordion/index.cjs.map +1 -0
  16. package/build/components/Accordion/index.d.ts +29 -0
  17. package/build/components/Accordion/index.js +42 -0
  18. package/build/components/Accordion/index.js.map +1 -0
  19. package/build/components/Accordion/style.css +1 -0
  20. package/build/components/Alert/index.cjs +2 -0
  21. package/build/components/Alert/index.cjs.map +1 -0
  22. package/build/components/Alert/index.d.ts +15 -0
  23. package/build/components/Alert/index.js +30 -0
  24. package/build/components/Alert/index.js.map +1 -0
  25. package/build/components/Alert/style.css +1 -0
  26. package/build/components/Avatar/index.cjs +2 -0
  27. package/build/components/Avatar/index.cjs.map +1 -0
  28. package/build/components/Avatar/index.d.ts +26 -0
  29. package/build/components/Avatar/index.js +57 -0
  30. package/build/components/Avatar/index.js.map +1 -0
  31. package/build/components/Avatar/style.css +1 -0
  32. package/build/components/Badge/index.cjs +2 -0
  33. package/build/components/Badge/index.cjs.map +1 -0
  34. package/build/components/Badge/index.d.ts +21 -0
  35. package/build/components/Badge/index.js +26 -0
  36. package/build/components/Badge/index.js.map +1 -0
  37. package/build/components/Badge/style.css +1 -0
  38. package/build/components/BottomSheet/index.cjs +2 -0
  39. package/build/components/BottomSheet/index.cjs.map +1 -0
  40. package/build/components/BottomSheet/index.d.ts +21 -0
  41. package/build/components/BottomSheet/index.js +85 -0
  42. package/build/components/BottomSheet/index.js.map +1 -0
  43. package/build/components/BottomSheet/style.css +1 -0
  44. package/build/components/Breadcrumb/index.cjs +2 -0
  45. package/build/components/Breadcrumb/index.cjs.map +1 -0
  46. package/build/components/Breadcrumb/index.d.ts +20 -0
  47. package/build/components/Breadcrumb/index.js +31 -0
  48. package/build/components/Breadcrumb/index.js.map +1 -0
  49. package/build/components/Breadcrumb/style.css +1 -0
  50. package/build/components/Button/index.cjs +2 -0
  51. package/build/components/Button/index.cjs.map +1 -0
  52. package/build/components/Button/index.d.ts +32 -0
  53. package/build/components/Button/index.js +88 -0
  54. package/build/components/Button/index.js.map +1 -0
  55. package/build/components/Button/style.css +1 -0
  56. package/build/components/Card/index.cjs +2 -0
  57. package/build/components/Card/index.cjs.map +1 -0
  58. package/build/components/Card/index.d.ts +51 -0
  59. package/build/components/Card/index.js +58 -0
  60. package/build/components/Card/index.js.map +1 -0
  61. package/build/components/Card/style.css +1 -0
  62. package/build/components/Carousel/index.cjs +2 -0
  63. package/build/components/Carousel/index.cjs.map +1 -0
  64. package/build/components/Carousel/index.d.ts +24 -0
  65. package/build/components/Carousel/index.js +111 -0
  66. package/build/components/Carousel/index.js.map +1 -0
  67. package/build/components/Carousel/style.css +1 -0
  68. package/build/components/Checkbox/index.cjs +2 -0
  69. package/build/components/Checkbox/index.cjs.map +1 -0
  70. package/build/components/Checkbox/index.d.ts +10 -0
  71. package/build/components/Checkbox/index.js +33 -0
  72. package/build/components/Checkbox/index.js.map +1 -0
  73. package/build/components/Checkbox/style.css +1 -0
  74. package/build/components/Chip/index.cjs +2 -0
  75. package/build/components/Chip/index.cjs.map +1 -0
  76. package/build/components/Chip/index.d.ts +27 -0
  77. package/build/components/Chip/index.js +67 -0
  78. package/build/components/Chip/index.js.map +1 -0
  79. package/build/components/Chip/style.css +1 -0
  80. package/build/components/ChipGroup/index.cjs +2 -0
  81. package/build/components/ChipGroup/index.cjs.map +1 -0
  82. package/build/components/ChipGroup/index.d.ts +34 -0
  83. package/build/components/ChipGroup/index.js +64 -0
  84. package/build/components/ChipGroup/index.js.map +1 -0
  85. package/build/components/ChipGroup/style.css +1 -0
  86. package/build/components/CodeBadge/index.cjs +2 -0
  87. package/build/components/CodeBadge/index.cjs.map +1 -0
  88. package/build/components/CodeBadge/index.d.ts +36 -0
  89. package/build/components/CodeBadge/index.js +62 -0
  90. package/build/components/CodeBadge/index.js.map +1 -0
  91. package/build/components/CodeBadge/style.css +1 -0
  92. package/build/components/Combobox/index.cjs +2 -0
  93. package/build/components/Combobox/index.cjs.map +1 -0
  94. package/build/components/Combobox/index.d.ts +6 -0
  95. package/build/components/Combobox/index.js +302 -0
  96. package/build/components/Combobox/index.js.map +1 -0
  97. package/build/components/Combobox/style.css +1 -0
  98. package/build/components/CommandPalette/index.cjs +2 -0
  99. package/build/components/CommandPalette/index.cjs.map +1 -0
  100. package/build/components/CommandPalette/index.d.ts +37 -0
  101. package/build/components/CommandPalette/index.js +181 -0
  102. package/build/components/CommandPalette/index.js.map +1 -0
  103. package/build/components/CommandPalette/style.css +1 -0
  104. package/build/components/ConfirmDialog/index.cjs +2 -0
  105. package/build/components/ConfirmDialog/index.cjs.map +1 -0
  106. package/build/components/ConfirmDialog/index.d.ts +34 -0
  107. package/build/components/ConfirmDialog/index.js +85 -0
  108. package/build/components/ConfirmDialog/index.js.map +1 -0
  109. package/build/components/CopyField/index.cjs +2 -0
  110. package/build/components/CopyField/index.cjs.map +1 -0
  111. package/build/components/CopyField/index.d.ts +20 -0
  112. package/build/components/CopyField/index.js +44 -0
  113. package/build/components/CopyField/index.js.map +1 -0
  114. package/build/components/CopyField/style.css +1 -0
  115. package/build/components/DataTable/index.cjs +2 -0
  116. package/build/components/DataTable/index.cjs.map +1 -0
  117. package/build/components/DataTable/index.d.ts +60 -0
  118. package/build/components/DataTable/index.js +109 -0
  119. package/build/components/DataTable/index.js.map +1 -0
  120. package/build/components/DataTable/style.css +1 -0
  121. package/build/components/DateField/index.cjs +2 -0
  122. package/build/components/DateField/index.cjs.map +1 -0
  123. package/build/components/DateField/index.d.ts +44 -0
  124. package/build/components/DateField/index.js +79 -0
  125. package/build/components/DateField/index.js.map +1 -0
  126. package/build/components/DateField/style.css +1 -0
  127. package/build/components/Directory/index.cjs +2 -0
  128. package/build/components/Directory/index.cjs.map +1 -0
  129. package/build/components/Directory/index.d.ts +51 -0
  130. package/build/components/Directory/index.js +46 -0
  131. package/build/components/Directory/index.js.map +1 -0
  132. package/build/components/Directory/style.css +1 -0
  133. package/build/components/Disclosure/index.cjs +2 -0
  134. package/build/components/Disclosure/index.cjs.map +1 -0
  135. package/build/components/Disclosure/index.d.ts +34 -0
  136. package/build/components/Disclosure/index.js +64 -0
  137. package/build/components/Disclosure/index.js.map +1 -0
  138. package/build/components/Disclosure/style.css +1 -0
  139. package/build/components/Divider/index.cjs +2 -0
  140. package/build/components/Divider/index.cjs.map +1 -0
  141. package/build/components/Divider/index.d.ts +10 -0
  142. package/build/components/Divider/index.js +24 -0
  143. package/build/components/Divider/index.js.map +1 -0
  144. package/build/components/Divider/style.css +1 -0
  145. package/build/components/Drawer/index.cjs +2 -0
  146. package/build/components/Drawer/index.cjs.map +1 -0
  147. package/build/components/Drawer/index.d.ts +22 -0
  148. package/build/components/Drawer/index.js +88 -0
  149. package/build/components/Drawer/index.js.map +1 -0
  150. package/build/components/Drawer/style.css +1 -0
  151. package/build/components/EmptyState/index.cjs +2 -0
  152. package/build/components/EmptyState/index.cjs.map +1 -0
  153. package/build/components/EmptyState/index.d.ts +19 -0
  154. package/build/components/EmptyState/index.js +35 -0
  155. package/build/components/EmptyState/index.js.map +1 -0
  156. package/build/components/EmptyState/style.css +1 -0
  157. package/build/components/Field/index.cjs +2 -0
  158. package/build/components/Field/index.cjs.map +1 -0
  159. package/build/components/Field/index.d.ts +31 -0
  160. package/build/components/Field/index.js +52 -0
  161. package/build/components/Field/index.js.map +1 -0
  162. package/build/components/Field/style.css +1 -0
  163. package/build/components/FileUpload/index.cjs +2 -0
  164. package/build/components/FileUpload/index.cjs.map +1 -0
  165. package/build/components/FileUpload/index.d.ts +42 -0
  166. package/build/components/FileUpload/index.js +145 -0
  167. package/build/components/FileUpload/index.js.map +1 -0
  168. package/build/components/FileUpload/style.css +1 -0
  169. package/build/components/FilterBar/index.cjs +2 -0
  170. package/build/components/FilterBar/index.cjs.map +1 -0
  171. package/build/components/FilterBar/index.d.ts +28 -0
  172. package/build/components/FilterBar/index.js +35 -0
  173. package/build/components/FilterBar/index.js.map +1 -0
  174. package/build/components/FilterBar/style.css +1 -0
  175. package/build/components/IconButton/index.cjs +2 -0
  176. package/build/components/IconButton/index.cjs.map +1 -0
  177. package/build/components/IconButton/index.d.ts +22 -0
  178. package/build/components/IconButton/index.js +61 -0
  179. package/build/components/IconButton/index.js.map +1 -0
  180. package/build/components/IconButton/style.css +1 -0
  181. package/build/components/Input/index.cjs +2 -0
  182. package/build/components/Input/index.cjs.map +1 -0
  183. package/build/components/Input/index.d.ts +15 -0
  184. package/build/components/Input/index.js +52 -0
  185. package/build/components/Input/index.js.map +1 -0
  186. package/build/components/Input/style.css +1 -0
  187. package/build/components/Kbd/index.cjs +2 -0
  188. package/build/components/Kbd/index.cjs.map +1 -0
  189. package/build/components/Kbd/index.d.ts +12 -0
  190. package/build/components/Kbd/index.js +13 -0
  191. package/build/components/Kbd/index.js.map +1 -0
  192. package/build/components/Kbd/style.css +1 -0
  193. package/build/components/Link/index.cjs +2 -0
  194. package/build/components/Link/index.cjs.map +1 -0
  195. package/build/components/Link/index.d.ts +5 -0
  196. package/build/components/Link/index.js +11 -0
  197. package/build/components/Link/index.js.map +1 -0
  198. package/build/components/Menu/index.cjs +2 -0
  199. package/build/components/Menu/index.cjs.map +1 -0
  200. package/build/components/Menu/index.d.ts +46 -0
  201. package/build/components/Menu/index.js +241 -0
  202. package/build/components/Menu/index.js.map +1 -0
  203. package/build/components/Menu/style.css +1 -0
  204. package/build/components/Modal/index.cjs +2 -0
  205. package/build/components/Modal/index.cjs.map +1 -0
  206. package/build/components/Modal/index.d.ts +28 -0
  207. package/build/components/Modal/index.js +92 -0
  208. package/build/components/Modal/index.js.map +1 -0
  209. package/build/components/Modal/style.css +1 -0
  210. package/build/components/PageHeader/index.cjs +2 -0
  211. package/build/components/PageHeader/index.cjs.map +1 -0
  212. package/build/components/PageHeader/index.d.ts +24 -0
  213. package/build/components/PageHeader/index.js +34 -0
  214. package/build/components/PageHeader/index.js.map +1 -0
  215. package/build/components/PageHeader/style.css +1 -0
  216. package/build/components/Pagination/index.cjs +2 -0
  217. package/build/components/Pagination/index.cjs.map +1 -0
  218. package/build/components/Pagination/index.d.ts +39 -0
  219. package/build/components/Pagination/index.js +128 -0
  220. package/build/components/Pagination/index.js.map +1 -0
  221. package/build/components/Pagination/style.css +1 -0
  222. package/build/components/Panel/index.cjs +2 -0
  223. package/build/components/Panel/index.cjs.map +1 -0
  224. package/build/components/Panel/index.d.ts +43 -0
  225. package/build/components/Panel/index.js +55 -0
  226. package/build/components/Panel/index.js.map +1 -0
  227. package/build/components/Panel/style.css +1 -0
  228. package/build/components/PasswordInput/index.cjs +2 -0
  229. package/build/components/PasswordInput/index.cjs.map +1 -0
  230. package/build/components/PasswordInput/index.d.ts +14 -0
  231. package/build/components/PasswordInput/index.js +40 -0
  232. package/build/components/PasswordInput/index.js.map +1 -0
  233. package/build/components/PasswordInput/style.css +1 -0
  234. package/build/components/Popover/index.cjs +2 -0
  235. package/build/components/Popover/index.cjs.map +1 -0
  236. package/build/components/Popover/index.d.ts +20 -0
  237. package/build/components/Popover/index.js +91 -0
  238. package/build/components/Popover/index.js.map +1 -0
  239. package/build/components/Popover/style.css +1 -0
  240. package/build/components/Price/index.cjs +2 -0
  241. package/build/components/Price/index.cjs.map +1 -0
  242. package/build/components/Price/index.d.ts +22 -0
  243. package/build/components/Price/index.js +46 -0
  244. package/build/components/Price/index.js.map +1 -0
  245. package/build/components/Price/style.css +1 -0
  246. package/build/components/Progress/index.cjs +2 -0
  247. package/build/components/Progress/index.cjs.map +1 -0
  248. package/build/components/Progress/index.d.ts +49 -0
  249. package/build/components/Progress/index.js +120 -0
  250. package/build/components/Progress/index.js.map +1 -0
  251. package/build/components/Progress/style.css +1 -0
  252. package/build/components/PromptDialog/index.cjs +2 -0
  253. package/build/components/PromptDialog/index.cjs.map +1 -0
  254. package/build/components/PromptDialog/index.d.ts +36 -0
  255. package/build/components/PromptDialog/index.js +119 -0
  256. package/build/components/PromptDialog/index.js.map +1 -0
  257. package/build/components/PromptDialog/style.css +1 -0
  258. package/build/components/QuantityStepper/index.cjs +2 -0
  259. package/build/components/QuantityStepper/index.cjs.map +1 -0
  260. package/build/components/QuantityStepper/index.d.ts +21 -0
  261. package/build/components/QuantityStepper/index.js +106 -0
  262. package/build/components/QuantityStepper/index.js.map +1 -0
  263. package/build/components/QuantityStepper/style.css +1 -0
  264. package/build/components/Radio/index.cjs +2 -0
  265. package/build/components/Radio/index.cjs.map +1 -0
  266. package/build/components/Radio/index.d.ts +12 -0
  267. package/build/components/Radio/index.js +35 -0
  268. package/build/components/Radio/index.js.map +1 -0
  269. package/build/components/Radio/style.css +1 -0
  270. package/build/components/RadioCard/index.cjs +2 -0
  271. package/build/components/RadioCard/index.cjs.map +1 -0
  272. package/build/components/RadioCard/index.d.ts +16 -0
  273. package/build/components/RadioCard/index.js +48 -0
  274. package/build/components/RadioCard/index.js.map +1 -0
  275. package/build/components/RadioCard/style.css +1 -0
  276. package/build/components/RangeSlider/index.cjs +2 -0
  277. package/build/components/RangeSlider/index.cjs.map +1 -0
  278. package/build/components/RangeSlider/index.d.ts +26 -0
  279. package/build/components/RangeSlider/index.js +102 -0
  280. package/build/components/RangeSlider/index.js.map +1 -0
  281. package/build/components/RangeSlider/style.css +1 -0
  282. package/build/components/Rating/index.cjs +2 -0
  283. package/build/components/Rating/index.cjs.map +1 -0
  284. package/build/components/Rating/index.d.ts +16 -0
  285. package/build/components/Rating/index.js +29 -0
  286. package/build/components/Rating/index.js.map +1 -0
  287. package/build/components/Rating/style.css +1 -0
  288. package/build/components/RatingInput/index.cjs +2 -0
  289. package/build/components/RatingInput/index.cjs.map +1 -0
  290. package/build/components/RatingInput/index.d.ts +21 -0
  291. package/build/components/RatingInput/index.js +75 -0
  292. package/build/components/RatingInput/index.js.map +1 -0
  293. package/build/components/RatingInput/style.css +1 -0
  294. package/build/components/ScrollArea/index.cjs +2 -0
  295. package/build/components/ScrollArea/index.cjs.map +1 -0
  296. package/build/components/ScrollArea/index.d.ts +23 -0
  297. package/build/components/ScrollArea/index.js +65 -0
  298. package/build/components/ScrollArea/index.js.map +1 -0
  299. package/build/components/ScrollArea/style.css +1 -0
  300. package/build/components/SectionHeader/index.cjs +2 -0
  301. package/build/components/SectionHeader/index.cjs.map +1 -0
  302. package/build/components/SectionHeader/index.d.ts +17 -0
  303. package/build/components/SectionHeader/index.js +25 -0
  304. package/build/components/SectionHeader/index.js.map +1 -0
  305. package/build/components/SectionHeader/style.css +1 -0
  306. package/build/components/SegmentedControl/index.cjs +2 -0
  307. package/build/components/SegmentedControl/index.cjs.map +1 -0
  308. package/build/components/SegmentedControl/index.d.ts +24 -0
  309. package/build/components/SegmentedControl/index.js +69 -0
  310. package/build/components/SegmentedControl/index.js.map +1 -0
  311. package/build/components/SegmentedControl/style.css +1 -0
  312. package/build/components/Select/index.cjs +2 -0
  313. package/build/components/Select/index.cjs.map +1 -0
  314. package/build/components/Select/index.d.ts +39 -0
  315. package/build/components/Select/index.js +179 -0
  316. package/build/components/Select/index.js.map +1 -0
  317. package/build/components/Select/style.css +1 -0
  318. package/build/components/Skeleton/index.cjs +2 -0
  319. package/build/components/Skeleton/index.cjs.map +1 -0
  320. package/build/components/Skeleton/index.d.ts +25 -0
  321. package/build/components/Skeleton/index.js +50 -0
  322. package/build/components/Skeleton/index.js.map +1 -0
  323. package/build/components/Skeleton/style.css +1 -0
  324. package/build/components/Spinner/index.cjs +2 -0
  325. package/build/components/Spinner/index.cjs.map +1 -0
  326. package/build/components/Spinner/index.d.ts +11 -0
  327. package/build/components/Spinner/index.js +15 -0
  328. package/build/components/Spinner/index.js.map +1 -0
  329. package/build/components/Spinner/style.css +1 -0
  330. package/build/components/Stat/index.cjs +2 -0
  331. package/build/components/Stat/index.cjs.map +1 -0
  332. package/build/components/Stat/index.d.ts +34 -0
  333. package/build/components/Stat/index.js +72 -0
  334. package/build/components/Stat/index.js.map +1 -0
  335. package/build/components/Stat/style.css +1 -0
  336. package/build/components/StatusDot/index.cjs +2 -0
  337. package/build/components/StatusDot/index.cjs.map +1 -0
  338. package/build/components/StatusDot/index.d.ts +23 -0
  339. package/build/components/StatusDot/index.js +23 -0
  340. package/build/components/StatusDot/index.js.map +1 -0
  341. package/build/components/StatusDot/style.css +1 -0
  342. package/build/components/Steps/index.cjs +2 -0
  343. package/build/components/Steps/index.cjs.map +1 -0
  344. package/build/components/Steps/index.d.ts +23 -0
  345. package/build/components/Steps/index.js +69 -0
  346. package/build/components/Steps/index.js.map +1 -0
  347. package/build/components/Steps/style.css +1 -0
  348. package/build/components/SummaryCard/index.cjs +2 -0
  349. package/build/components/SummaryCard/index.cjs.map +1 -0
  350. package/build/components/SummaryCard/index.d.ts +24 -0
  351. package/build/components/SummaryCard/index.js +33 -0
  352. package/build/components/SummaryCard/index.js.map +1 -0
  353. package/build/components/SummaryCard/style.css +1 -0
  354. package/build/components/Switch/index.cjs +2 -0
  355. package/build/components/Switch/index.cjs.map +1 -0
  356. package/build/components/Switch/index.d.ts +16 -0
  357. package/build/components/Switch/index.js +42 -0
  358. package/build/components/Switch/index.js.map +1 -0
  359. package/build/components/Switch/style.css +1 -0
  360. package/build/components/Table/index.cjs +2 -0
  361. package/build/components/Table/index.cjs.map +1 -0
  362. package/build/components/Table/index.d.ts +28 -0
  363. package/build/components/Table/index.js +58 -0
  364. package/build/components/Table/index.js.map +1 -0
  365. package/build/components/Table/style.css +1 -0
  366. package/build/components/TableCheckbox/index.cjs +2 -0
  367. package/build/components/TableCheckbox/index.cjs.map +1 -0
  368. package/build/components/TableCheckbox/index.d.ts +15 -0
  369. package/build/components/TableCheckbox/index.js +31 -0
  370. package/build/components/TableCheckbox/index.js.map +1 -0
  371. package/build/components/TableCheckbox/style.css +1 -0
  372. package/build/components/Tabs/index.cjs +2 -0
  373. package/build/components/Tabs/index.cjs.map +1 -0
  374. package/build/components/Tabs/index.d.ts +27 -0
  375. package/build/components/Tabs/index.js +102 -0
  376. package/build/components/Tabs/index.js.map +1 -0
  377. package/build/components/Tabs/style.css +1 -0
  378. package/build/components/TagInput/index.cjs +2 -0
  379. package/build/components/TagInput/index.cjs.map +1 -0
  380. package/build/components/TagInput/index.d.ts +25 -0
  381. package/build/components/TagInput/index.js +124 -0
  382. package/build/components/TagInput/index.js.map +1 -0
  383. package/build/components/TagInput/style.css +1 -0
  384. package/build/components/TextLink/index.cjs +2 -0
  385. package/build/components/TextLink/index.cjs.map +1 -0
  386. package/build/components/TextLink/index.d.ts +16 -0
  387. package/build/components/TextLink/index.js +32 -0
  388. package/build/components/TextLink/index.js.map +1 -0
  389. package/build/components/TextLink/style.css +1 -0
  390. package/build/components/Textarea/index.cjs +2 -0
  391. package/build/components/Textarea/index.cjs.map +1 -0
  392. package/build/components/Textarea/index.d.ts +20 -0
  393. package/build/components/Textarea/index.js +68 -0
  394. package/build/components/Textarea/index.js.map +1 -0
  395. package/build/components/Textarea/style.css +1 -0
  396. package/build/components/Tile/index.cjs +2 -0
  397. package/build/components/Tile/index.cjs.map +1 -0
  398. package/build/components/Tile/index.d.ts +19 -0
  399. package/build/components/Tile/index.js +24 -0
  400. package/build/components/Tile/index.js.map +1 -0
  401. package/build/components/Tile/style.css +1 -0
  402. package/build/components/Timeline/index.cjs +2 -0
  403. package/build/components/Timeline/index.cjs.map +1 -0
  404. package/build/components/Timeline/index.d.ts +24 -0
  405. package/build/components/Timeline/index.js +56 -0
  406. package/build/components/Timeline/index.js.map +1 -0
  407. package/build/components/Timeline/style.css +1 -0
  408. package/build/components/Toast/index.cjs +2 -0
  409. package/build/components/Toast/index.cjs.map +1 -0
  410. package/build/components/Toast/index.d.ts +43 -0
  411. package/build/components/Toast/index.js +136 -0
  412. package/build/components/Toast/index.js.map +1 -0
  413. package/build/components/Toast/style.css +1 -0
  414. package/build/components/ToastPortal/index.cjs +2 -0
  415. package/build/components/ToastPortal/index.cjs.map +1 -0
  416. package/build/components/ToastPortal/index.d.ts +8 -0
  417. package/build/components/ToastPortal/index.js +15 -0
  418. package/build/components/ToastPortal/index.js.map +1 -0
  419. package/build/components/Tooltip/index.cjs +2 -0
  420. package/build/components/Tooltip/index.cjs.map +1 -0
  421. package/build/components/Tooltip/index.d.ts +23 -0
  422. package/build/components/Tooltip/index.js +116 -0
  423. package/build/components/Tooltip/index.js.map +1 -0
  424. package/build/components/Tooltip/style.css +1 -0
  425. package/build/constants/breakpoint.constants.cjs +2 -0
  426. package/build/constants/breakpoint.constants.cjs.map +1 -0
  427. package/build/constants/breakpoint.constants.d.ts +13 -0
  428. package/build/constants/breakpoint.constants.js +11 -0
  429. package/build/constants/breakpoint.constants.js.map +1 -0
  430. package/build/constants/combobox.constants.cjs +2 -0
  431. package/build/constants/combobox.constants.cjs.map +1 -0
  432. package/build/constants/combobox.constants.d.ts +11 -0
  433. package/build/constants/combobox.constants.js +7 -0
  434. package/build/constants/combobox.constants.js.map +1 -0
  435. package/build/constants/scroll.constants.cjs +2 -0
  436. package/build/constants/scroll.constants.cjs.map +1 -0
  437. package/build/constants/scroll.constants.d.ts +7 -0
  438. package/build/constants/scroll.constants.js +5 -0
  439. package/build/constants/scroll.constants.js.map +1 -0
  440. package/build/enums/ui-size.enum.cjs +2 -0
  441. package/build/enums/ui-size.enum.cjs.map +1 -0
  442. package/build/enums/ui-size.enum.d.ts +12 -0
  443. package/build/enums/ui-size.enum.js +5 -0
  444. package/build/enums/ui-size.enum.js.map +1 -0
  445. package/build/enums/ui-variant.enum.cjs +2 -0
  446. package/build/enums/ui-variant.enum.cjs.map +1 -0
  447. package/build/enums/ui-variant.enum.d.ts +20 -0
  448. package/build/enums/ui-variant.enum.js +5 -0
  449. package/build/enums/ui-variant.enum.js.map +1 -0
  450. package/build/helpers/class-name.helper.cjs +2 -0
  451. package/build/helpers/class-name.helper.cjs.map +1 -0
  452. package/build/helpers/class-name.helper.d.ts +3 -0
  453. package/build/helpers/class-name.helper.js +10 -0
  454. package/build/helpers/class-name.helper.js.map +1 -0
  455. package/build/helpers/component.helper.cjs +2 -0
  456. package/build/helpers/component.helper.cjs.map +1 -0
  457. package/build/helpers/component.helper.d.ts +13 -0
  458. package/build/helpers/component.helper.js +5 -0
  459. package/build/helpers/component.helper.js.map +1 -0
  460. package/build/helpers/focus.helper.cjs +2 -0
  461. package/build/helpers/focus.helper.cjs.map +1 -0
  462. package/build/helpers/focus.helper.d.ts +42 -0
  463. package/build/helpers/focus.helper.js +65 -0
  464. package/build/helpers/focus.helper.js.map +1 -0
  465. package/build/helpers/label.helper.cjs +2 -0
  466. package/build/helpers/label.helper.cjs.map +1 -0
  467. package/build/helpers/label.helper.d.ts +11 -0
  468. package/build/helpers/label.helper.js +11 -0
  469. package/build/helpers/label.helper.js.map +1 -0
  470. package/build/helpers/portal.helper.cjs +2 -0
  471. package/build/helpers/portal.helper.cjs.map +1 -0
  472. package/build/helpers/portal.helper.d.ts +28 -0
  473. package/build/helpers/portal.helper.js +36 -0
  474. package/build/helpers/portal.helper.js.map +1 -0
  475. package/build/helpers/scroll.helper.cjs +2 -0
  476. package/build/helpers/scroll.helper.cjs.map +1 -0
  477. package/build/helpers/scroll.helper.d.ts +8 -0
  478. package/build/helpers/scroll.helper.js +11 -0
  479. package/build/helpers/scroll.helper.js.map +1 -0
  480. package/build/helpers/text.helper.cjs +2 -0
  481. package/build/helpers/text.helper.cjs.map +1 -0
  482. package/build/helpers/text.helper.d.ts +5 -0
  483. package/build/helpers/text.helper.js +6 -0
  484. package/build/helpers/text.helper.js.map +1 -0
  485. package/build/helpers/theme.helper.cjs +2 -0
  486. package/build/helpers/theme.helper.cjs.map +1 -0
  487. package/build/helpers/theme.helper.d.ts +18 -0
  488. package/build/helpers/theme.helper.js +37 -0
  489. package/build/helpers/theme.helper.js.map +1 -0
  490. package/build/hooks/useAnnounce.cjs +2 -0
  491. package/build/hooks/useAnnounce.cjs.map +1 -0
  492. package/build/hooks/useAnnounce.d.ts +4 -0
  493. package/build/hooks/useAnnounce.js +23 -0
  494. package/build/hooks/useAnnounce.js.map +1 -0
  495. package/build/hooks/useAsyncSearch.cjs +2 -0
  496. package/build/hooks/useAsyncSearch.cjs.map +1 -0
  497. package/build/hooks/useAsyncSearch.d.ts +11 -0
  498. package/build/hooks/useAsyncSearch.js +17 -0
  499. package/build/hooks/useAsyncSearch.js.map +1 -0
  500. package/build/hooks/useCopyFeedback.cjs +2 -0
  501. package/build/hooks/useCopyFeedback.cjs.map +1 -0
  502. package/build/hooks/useCopyFeedback.d.ts +10 -0
  503. package/build/hooks/useCopyFeedback.js +25 -0
  504. package/build/hooks/useCopyFeedback.js.map +1 -0
  505. package/build/hooks/useDismissOnEscape.cjs +2 -0
  506. package/build/hooks/useDismissOnEscape.cjs.map +1 -0
  507. package/build/hooks/useDismissOnEscape.d.ts +12 -0
  508. package/build/hooks/useDismissOnEscape.js +18 -0
  509. package/build/hooks/useDismissOnEscape.js.map +1 -0
  510. package/build/hooks/useListboxNavigation.cjs +2 -0
  511. package/build/hooks/useListboxNavigation.cjs.map +1 -0
  512. package/build/hooks/useListboxNavigation.d.ts +7 -0
  513. package/build/hooks/useListboxNavigation.js +53 -0
  514. package/build/hooks/useListboxNavigation.js.map +1 -0
  515. package/build/hooks/usePortalSurface.cjs +2 -0
  516. package/build/hooks/usePortalSurface.cjs.map +1 -0
  517. package/build/hooks/usePortalSurface.d.ts +25 -0
  518. package/build/hooks/usePortalSurface.js +19 -0
  519. package/build/hooks/usePortalSurface.js.map +1 -0
  520. package/build/hooks/usePositioning.cjs +2 -0
  521. package/build/hooks/usePositioning.cjs.map +1 -0
  522. package/build/hooks/usePositioning.d.ts +13 -0
  523. package/build/hooks/usePositioning.js +74 -0
  524. package/build/hooks/usePositioning.js.map +1 -0
  525. package/build/hooks/useScrollLock.cjs +2 -0
  526. package/build/hooks/useScrollLock.cjs.map +1 -0
  527. package/build/hooks/useScrollLock.d.ts +2 -0
  528. package/build/hooks/useScrollLock.js +34 -0
  529. package/build/hooks/useScrollLock.js.map +1 -0
  530. package/build/hooks/useSheetViewport.cjs +2 -0
  531. package/build/hooks/useSheetViewport.cjs.map +1 -0
  532. package/build/hooks/useSheetViewport.d.ts +6 -0
  533. package/build/hooks/useSheetViewport.js +29 -0
  534. package/build/hooks/useSheetViewport.js.map +1 -0
  535. package/build/hooks/useStickToBottom.cjs +2 -0
  536. package/build/hooks/useStickToBottom.cjs.map +1 -0
  537. package/build/hooks/useStickToBottom.d.ts +12 -0
  538. package/build/hooks/useStickToBottom.js +39 -0
  539. package/build/hooks/useStickToBottom.js.map +1 -0
  540. package/build/hooks/useUiTheme.cjs +2 -0
  541. package/build/hooks/useUiTheme.cjs.map +1 -0
  542. package/build/hooks/useUiTheme.d.ts +10 -0
  543. package/build/hooks/useUiTheme.js +42 -0
  544. package/build/hooks/useUiTheme.js.map +1 -0
  545. package/build/hooks/useUiTokens.cjs +2 -0
  546. package/build/hooks/useUiTokens.cjs.map +1 -0
  547. package/build/hooks/useUiTokens.d.ts +11 -0
  548. package/build/hooks/useUiTokens.js +36 -0
  549. package/build/hooks/useUiTokens.js.map +1 -0
  550. package/build/hooks/useVirtualList.cjs +2 -0
  551. package/build/hooks/useVirtualList.cjs.map +1 -0
  552. package/build/hooks/useVirtualList.d.ts +13 -0
  553. package/build/hooks/useVirtualList.js +41 -0
  554. package/build/hooks/useVirtualList.js.map +1 -0
  555. package/build/index.cjs +2 -0
  556. package/build/index.cjs.map +1 -0
  557. package/build/index.d.ts +93 -0
  558. package/build/index.js +199 -0
  559. package/build/index.js.map +1 -0
  560. package/build/scss/_index.scss +7 -0
  561. package/build/scss/_mixins.scss +828 -0
  562. package/build/scss/_variables.scss +243 -0
  563. package/build/styles/base.d.ts +0 -0
  564. package/build/styles.css +133 -0
  565. package/build/theme/UiProvider.cjs +2 -0
  566. package/build/theme/UiProvider.cjs.map +1 -0
  567. package/build/theme/UiProvider.d.ts +23 -0
  568. package/build/theme/UiProvider.js +12 -0
  569. package/build/theme/UiProvider.js.map +1 -0
  570. package/build/theme/UiThemeScript.cjs +2 -0
  571. package/build/theme/UiThemeScript.cjs.map +1 -0
  572. package/build/theme/UiThemeScript.d.ts +22 -0
  573. package/build/theme/UiThemeScript.js +8 -0
  574. package/build/theme/UiThemeScript.js.map +1 -0
  575. package/build/theme/context.cjs +2 -0
  576. package/build/theme/context.cjs.map +1 -0
  577. package/build/theme/context.d.ts +5 -0
  578. package/build/theme/context.js +8 -0
  579. package/build/theme/context.js.map +1 -0
  580. package/build/types/charts/AreaChart/index.d.ts +14 -0
  581. package/build/types/charts/BarChart/index.d.ts +16 -0
  582. package/build/types/charts/BoxPlot/index.d.ts +43 -0
  583. package/build/types/charts/ComposedChart/index.d.ts +16 -0
  584. package/build/types/charts/Heatmap/index.d.ts +30 -0
  585. package/build/types/charts/Histogram/index.d.ts +29 -0
  586. package/build/types/charts/LineChart/index.d.ts +14 -0
  587. package/build/types/charts/PieChart/index.d.ts +36 -0
  588. package/build/types/charts/RadarChart/index.d.ts +40 -0
  589. package/build/types/charts/ScatterPlot/index.d.ts +41 -0
  590. package/build/types/charts/core/CartesianChart.d.ts +43 -0
  591. package/build/types/charts/core/ChartFrame.d.ts +55 -0
  592. package/build/types/charts/core/axes.d.ts +37 -0
  593. package/build/types/charts/core/cartesian.d.ts +80 -0
  594. package/build/types/charts/core/format.d.ts +19 -0
  595. package/build/types/charts/core/margins.d.ts +9 -0
  596. package/build/types/charts/core/palette.d.ts +11 -0
  597. package/build/types/charts/core/path.d.ts +24 -0
  598. package/build/types/charts/core/scale.d.ts +40 -0
  599. package/build/types/charts/core/series.d.ts +11 -0
  600. package/build/types/charts/core/spatial.d.ts +12 -0
  601. package/build/types/charts/core/stats.d.ts +34 -0
  602. package/build/types/charts/core/types.d.ts +31 -0
  603. package/build/types/charts/core/useChartWidth.d.ts +7 -0
  604. package/build/types/charts/index.d.ts +21 -0
  605. package/build/types/chat/ActionList/index.d.ts +46 -0
  606. package/build/types/chat/AppBar/index.d.ts +21 -0
  607. package/build/types/chat/ChatMessage/index.d.ts +24 -0
  608. package/build/types/chat/ChatThread/index.d.ts +24 -0
  609. package/build/types/chat/Citation/index.d.ts +15 -0
  610. package/build/types/chat/CodeBlock/format.d.ts +7 -0
  611. package/build/types/chat/CodeBlock/grammars.d.ts +44 -0
  612. package/build/types/chat/CodeBlock/highlight.d.ts +22 -0
  613. package/build/types/chat/CodeBlock/index.d.ts +33 -0
  614. package/build/types/chat/DescriptionList/index.d.ts +16 -0
  615. package/build/types/chat/Legend/index.d.ts +21 -0
  616. package/build/types/chat/MessageActions/index.d.ts +21 -0
  617. package/build/types/chat/PromptInput/index.d.ts +47 -0
  618. package/build/types/chat/PromptSuggestions/index.d.ts +25 -0
  619. package/build/types/chat/Prose/index.d.ts +15 -0
  620. package/build/types/chat/ReasoningBlock/index.d.ts +24 -0
  621. package/build/types/chat/ReasoningText/index.d.ts +14 -0
  622. package/build/types/chat/SegmentBar/index.d.ts +46 -0
  623. package/build/types/chat/SourceList/index.d.ts +25 -0
  624. package/build/types/chat/TerminalOutput/index.d.ts +25 -0
  625. package/build/types/chat/ToolCall/index.d.ts +41 -0
  626. package/build/types/chat/index.d.ts +26 -0
  627. package/build/types/combobox.type.d.ts +49 -0
  628. package/build/types/common-element-props.type.d.ts +8 -0
  629. package/build/types/helpers/class-name.helper.d.ts +3 -0
  630. package/build/types/helpers/component.helper.d.ts +13 -0
  631. package/build/types/helpers/label.helper.d.ts +12 -0
  632. package/build/types/hook.type.d.ts +36 -0
  633. package/build/types/link.type.d.ts +14 -0
  634. package/build/types/positioning.type.d.ts +38 -0
  635. package/build/types/theme.type.d.ts +181 -0
  636. package/build/types/types/common-element-props.type.d.ts +8 -0
  637. package/build/types/types/link.type.d.ts +14 -0
  638. package/build/types/types/theme.type.d.ts +181 -0
  639. package/package.json +487 -4
@@ -0,0 +1,29 @@
1
+ "use client";
2
+ import { useEffect as m } from "react";
3
+ const u = "--ui-sheet-height", c = "--ui-sheet-inset-bottom";
4
+ let r = 0, o = 0;
5
+ const a = 240, d = () => {
6
+ const e = window.visualViewport;
7
+ if (!e || e.height < a) return;
8
+ const t = window.innerHeight - e.height - e.offsetTop, i = document.documentElement;
9
+ i.style.setProperty(c, `${Math.max(0, Math.round(t))}px`), i.style.setProperty(u, `${Math.round(e.height)}px`);
10
+ }, n = () => {
11
+ o || (o = window.requestAnimationFrame(() => {
12
+ o = 0, d();
13
+ }));
14
+ }, s = () => {
15
+ o && (window.cancelAnimationFrame(o), o = 0);
16
+ }, h = (e = !0) => {
17
+ m(() => {
18
+ if (!e) return;
19
+ const t = window.visualViewport;
20
+ if (t)
21
+ return r += 1, r === 1 && (t.addEventListener("resize", n), t.addEventListener("scroll", n), window.addEventListener("orientationchange", n)), s(), d(), () => {
22
+ r -= 1, !(r > 0) && (t.removeEventListener("resize", n), t.removeEventListener("scroll", n), window.removeEventListener("orientationchange", n), s(), document.documentElement.style.removeProperty(c), document.documentElement.style.removeProperty(u));
23
+ };
24
+ }, [e]);
25
+ };
26
+ export {
27
+ h as default
28
+ };
29
+ //# sourceMappingURL=useSheetViewport.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useSheetViewport.js","sources":["../../src/hooks/useSheetViewport.ts"],"sourcesContent":["'use client';\n\nimport { useEffect } from 'react';\n\n/** Panelin kaplayabilecegi en fazla yukseklik — GORUNEN alanin yuksekligi. */\nconst HEIGHT_VAR = '--ui-sheet-height';\n\n/** Panelin dibinin, yerlesim gorunum alaninin dibinden ne kadar yukarida duracagi. */\nconst INSET_VAR = '--ui-sheet-inset-bottom';\n\n/* Tek olcum, tek dinleyici. */\nlet openCount = 0;\nlet frame = 0;\n\n/** Gorsel gorunum alanini olcup CSS degiskenlerine yazar. */\n/** MAKUL EN KÜÇÜK GÖRÜNÜM ALANI. */\nconst MIN_VIEWPORT_HEIGHT = 240;\n\nconst measure = () => {\n const viewport = window.visualViewport;\n if (!viewport) return;\n\n /* ABSURT OLCUM YAZILMAZ. */\n if (viewport.height < MIN_VIEWPORT_HEIGHT) return;\n\n const covered = window.innerHeight - viewport.height - viewport.offsetTop;\n const root = document.documentElement;\n\n root.style.setProperty(INSET_VAR, `${Math.max(0, Math.round(covered))}px`);\n root.style.setProperty(HEIGHT_VAR, `${Math.round(viewport.height)}px`);\n};\n\n/**\n * Kare başına bir ölçüm: klavye açılırken `resize` ve `scroll` ard arda düşüyor ve her ölçüm bir\n * yerleşim okuması.\n */\nconst schedule = () => {\n if (frame) return;\n frame = window.requestAnimationFrame(() => {\n frame = 0;\n measure();\n });\n};\n\n/** Bekleyen kareyi iptal eder ve bayrağı serbest bırakır. */\nconst cancelScheduled = () => {\n if (!frame) return;\n window.cancelAnimationFrame(frame);\n frame = 0;\n};\n\n/**\n * Alt sayfayi gorunen alana yaslar.\n * @param isActive Panel acik mi.\n */\nconst useSheetViewport = (isActive = true) => {\n useEffect(() => {\n if (!isActive) return;\n\n const viewport = window.visualViewport;\n if (!viewport) return;\n\n openCount += 1;\n\n if (openCount === 1) {\n viewport.addEventListener('resize', schedule);\n viewport.addEventListener('scroll', schedule);\n window.addEventListener('orientationchange', schedule);\n }\n\n /* Bekleyen kare IPTAL edilir ve olcum SENKRON yapilir. */\n cancelScheduled();\n measure();\n\n return () => {\n openCount -= 1;\n if (openCount > 0) return;\n\n viewport.removeEventListener('resize', schedule);\n viewport.removeEventListener('scroll', schedule);\n window.removeEventListener('orientationchange', schedule);\n\n cancelScheduled();\n\n /*\n * Degiskenler SILINIR, sifirlanmaz: yedek deger CSS'te (`var(…, 0px)` / `var(…, 100dvh)`) ve\n * panel kapaliyken dogru olan o.\n */\n document.documentElement.style.removeProperty(INSET_VAR);\n document.documentElement.style.removeProperty(HEIGHT_VAR);\n };\n }, [isActive]);\n};\n\nexport default useSheetViewport;\n"],"names":["HEIGHT_VAR","INSET_VAR","openCount","frame","MIN_VIEWPORT_HEIGHT","measure","viewport","covered","root","schedule","cancelScheduled","useSheetViewport","isActive","useEffect"],"mappings":";;AAIA,MAAMA,IAAa,qBAGbC,IAAY;AAGlB,IAAIC,IAAY,GACZC,IAAQ;AAIZ,MAAMC,IAAsB,KAEtBC,IAAU,MAAM;AACpB,QAAMC,IAAW,OAAO;AAIxB,MAHI,CAACA,KAGDA,EAAS,SAASF,EAAqB;AAE3C,QAAMG,IAAU,OAAO,cAAcD,EAAS,SAASA,EAAS,WAC1DE,IAAO,SAAS;AAEtB,EAAAA,EAAK,MAAM,YAAYP,GAAW,GAAG,KAAK,IAAI,GAAG,KAAK,MAAMM,CAAO,CAAC,CAAC,IAAI,GACzEC,EAAK,MAAM,YAAYR,GAAY,GAAG,KAAK,MAAMM,EAAS,MAAM,CAAC,IAAI;AACvE,GAMMG,IAAW,MAAM;AACrB,EAAIN,MACJA,IAAQ,OAAO,sBAAsB,MAAM;AACzC,IAAAA,IAAQ,GACRE,EAAA;AAAA,EACF,CAAC;AACH,GAGMK,IAAkB,MAAM;AAC5B,EAAKP,MACL,OAAO,qBAAqBA,CAAK,GACjCA,IAAQ;AACV,GAMMQ,IAAmB,CAACC,IAAW,OAAS;AAC5C,EAAAC,EAAU,MAAM;AACd,QAAI,CAACD,EAAU;AAEf,UAAMN,IAAW,OAAO;AACxB,QAAKA;AAEL,aAAAJ,KAAa,GAETA,MAAc,MAChBI,EAAS,iBAAiB,UAAUG,CAAQ,GAC5CH,EAAS,iBAAiB,UAAUG,CAAQ,GAC5C,OAAO,iBAAiB,qBAAqBA,CAAQ,IAIvDC,EAAA,GACAL,EAAA,GAEO,MAAM;AAEX,QADAH,KAAa,GACT,EAAAA,IAAY,OAEhBI,EAAS,oBAAoB,UAAUG,CAAQ,GAC/CH,EAAS,oBAAoB,UAAUG,CAAQ,GAC/C,OAAO,oBAAoB,qBAAqBA,CAAQ,GAExDC,EAAA,GAMA,SAAS,gBAAgB,MAAM,eAAeT,CAAS,GACvD,SAAS,gBAAgB,MAAM,eAAeD,CAAU;AAAA,MAC1D;AAAA,EACF,GAAG,CAACY,CAAQ,CAAC;AACf;"}
@@ -0,0 +1,2 @@
1
+ "use client";"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const s=require("react"),h=require("../constants/scroll.constants.cjs"),b=t=>t.scrollHeight-t.scrollTop-t.clientHeight,T=()=>{var t;return((t=window.matchMedia)==null?void 0:t.call(window,"(prefers-reduced-motion: reduce)").matches)??!1},E=(t,c=!0)=>{const o=s.useRef(!0),[d,u]=s.useState(!0),n=s.useCallback(()=>{const e=t.current;e&&o.current&&(e.scrollTop=e.scrollHeight)},[t]);s.useEffect(()=>{const e=t.current;if(!c||!e)return;const l=()=>{const a=b(e)<h.STICK_TO_END_THRESHOLD;o.current=a,u(a)};n(),e.addEventListener("scroll",l,{passive:!0});const i=new MutationObserver(n);i.observe(e,{childList:!0,subtree:!0,characterData:!0});const r=typeof ResizeObserver>"u"?null:new ResizeObserver(n);return r==null||r.observe(e),()=>{e.removeEventListener("scroll",l),i.disconnect(),r==null||r.disconnect()}},[c,t,n]);const v=s.useCallback(()=>{const e=t.current;e&&(o.current=!0,u(!0),e.scrollTo({top:e.scrollHeight,behavior:T()?"instant":"smooth"}))},[t]);return{isAtEnd:d,scrollToEnd:v}};exports.default=E;
2
+ //# sourceMappingURL=useStickToBottom.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useStickToBottom.cjs","sources":["../../src/hooks/useStickToBottom.ts"],"sourcesContent":["'use client';\n\nimport { type RefObject, useCallback, useEffect, useRef, useState } from 'react';\n\nimport { STICK_TO_END_THRESHOLD } from '../constants/scroll.constants';\nimport type { StickToBottom } from '@/types/hook.type';\n\nconst distanceToEnd = (node: HTMLElement): number =>\n node.scrollHeight - node.scrollTop - node.clientHeight;\n\nconst prefersReducedMotion = (): boolean =>\n window.matchMedia?.('(prefers-reduced-motion: reduce)').matches ?? false;\n\n/**\n * Kaydırma kutusunu SONA yapışık tutar — kullanıcı yukarı kaydırana kadar. Akan bir yanıt, canlı\n * terminal çıktısı, büyüyen akıl yürütme metni.\n * İçerik değişimini (`MutationObserver`: yeni satır, akan metin) ve kutunun kendi boyunu\n * (`ResizeObserver`: ekran klavyesi açılınca) izler; render'da yerleşim okumaz.\n * @param isEnabled `false` iken hiçbir şey izlenmez.\n * @example const { isAtEnd, scrollToEnd } = useStickToBottom(listRef);\n */\nconst useStickToBottom = (ref: RefObject<HTMLElement | null>, isEnabled = true): StickToBottom => {\n const isPinned = useRef(true);\n const [isAtEnd, setIsAtEnd] = useState(true);\n\n const stick = useCallback(() => {\n const node = ref.current;\n if (node && isPinned.current) node.scrollTop = node.scrollHeight;\n }, [ref]);\n\n useEffect(() => {\n const node = ref.current;\n if (!isEnabled || !node) return;\n\n const handleScroll = () => {\n const atEnd = distanceToEnd(node) < STICK_TO_END_THRESHOLD;\n isPinned.current = atEnd;\n setIsAtEnd(atEnd);\n };\n\n stick();\n node.addEventListener('scroll', handleScroll, { passive: true });\n\n const mutations = new MutationObserver(stick);\n mutations.observe(node, { childList: true, subtree: true, characterData: true });\n\n const resize = typeof ResizeObserver === 'undefined' ? null : new ResizeObserver(stick);\n resize?.observe(node);\n\n return () => {\n node.removeEventListener('scroll', handleScroll);\n mutations.disconnect();\n resize?.disconnect();\n };\n }, [isEnabled, ref, stick]);\n\n /* \"En yeniye in\": yeniden yapışır. Azaltılmış harekette ANİ. */\n const scrollToEnd = useCallback(() => {\n const node = ref.current;\n if (!node) return;\n\n isPinned.current = true;\n setIsAtEnd(true);\n node.scrollTo({\n top: node.scrollHeight,\n behavior: prefersReducedMotion() ? 'instant' : 'smooth',\n });\n }, [ref]);\n\n return { isAtEnd, scrollToEnd };\n};\n\nexport default useStickToBottom;\n"],"names":["distanceToEnd","node","prefersReducedMotion","_a","useStickToBottom","ref","isEnabled","isPinned","useRef","isAtEnd","setIsAtEnd","useState","stick","useCallback","useEffect","handleScroll","atEnd","STICK_TO_END_THRESHOLD","mutations","resize","scrollToEnd"],"mappings":"iMAMMA,EAAiBC,GACrBA,EAAK,aAAeA,EAAK,UAAYA,EAAK,aAEtCC,EAAuB,IAAA,OAC3B,QAAAC,EAAA,OAAO,aAAP,YAAAA,EAAA,YAAoB,oCAAoC,UAAW,IAU/DC,EAAmB,CAACC,EAAoCC,EAAY,KAAwB,CAChG,MAAMC,EAAWC,EAAAA,OAAO,EAAI,EACtB,CAACC,EAASC,CAAU,EAAIC,EAAAA,SAAS,EAAI,EAErCC,EAAQC,EAAAA,YAAY,IAAM,CAC9B,MAAMZ,EAAOI,EAAI,QACbJ,GAAQM,EAAS,UAASN,EAAK,UAAYA,EAAK,aACtD,EAAG,CAACI,CAAG,CAAC,EAERS,EAAAA,UAAU,IAAM,CACd,MAAMb,EAAOI,EAAI,QACjB,GAAI,CAACC,GAAa,CAACL,EAAM,OAEzB,MAAMc,EAAe,IAAM,CACzB,MAAMC,EAAQhB,EAAcC,CAAI,EAAIgB,EAAAA,uBACpCV,EAAS,QAAUS,EACnBN,EAAWM,CAAK,CAClB,EAEAJ,EAAA,EACAX,EAAK,iBAAiB,SAAUc,EAAc,CAAE,QAAS,GAAM,EAE/D,MAAMG,EAAY,IAAI,iBAAiBN,CAAK,EAC5CM,EAAU,QAAQjB,EAAM,CAAE,UAAW,GAAM,QAAS,GAAM,cAAe,GAAM,EAE/E,MAAMkB,EAAS,OAAO,eAAmB,IAAc,KAAO,IAAI,eAAeP,CAAK,EACtF,OAAAO,GAAA,MAAAA,EAAQ,QAAQlB,GAET,IAAM,CACXA,EAAK,oBAAoB,SAAUc,CAAY,EAC/CG,EAAU,WAAA,EACVC,GAAA,MAAAA,EAAQ,YACV,CACF,EAAG,CAACb,EAAWD,EAAKO,CAAK,CAAC,EAG1B,MAAMQ,EAAcP,EAAAA,YAAY,IAAM,CACpC,MAAMZ,EAAOI,EAAI,QACZJ,IAELM,EAAS,QAAU,GACnBG,EAAW,EAAI,EACfT,EAAK,SAAS,CACZ,IAAKA,EAAK,aACV,SAAUC,EAAA,EAAyB,UAAY,QAAA,CAChD,EACH,EAAG,CAACG,CAAG,CAAC,EAER,MAAO,CAAE,QAAAI,EAAS,YAAAW,CAAA,CACpB"}
@@ -0,0 +1,12 @@
1
+ import { RefObject } from 'react';
2
+ import { StickToBottom } from '../types/hook.type';
3
+ /**
4
+ * Kaydırma kutusunu SONA yapışık tutar — kullanıcı yukarı kaydırana kadar. Akan bir yanıt, canlı
5
+ * terminal çıktısı, büyüyen akıl yürütme metni.
6
+ * İçerik değişimini (`MutationObserver`: yeni satır, akan metin) ve kutunun kendi boyunu
7
+ * (`ResizeObserver`: ekran klavyesi açılınca) izler; render'da yerleşim okumaz.
8
+ * @param isEnabled `false` iken hiçbir şey izlenmez.
9
+ * @example const { isAtEnd, scrollToEnd } = useStickToBottom(listRef);
10
+ */
11
+ declare const useStickToBottom: (ref: RefObject<HTMLElement | null>, isEnabled?: boolean) => StickToBottom;
12
+ export default useStickToBottom;
@@ -0,0 +1,39 @@
1
+ "use client";
2
+ import { useRef as m, useState as p, useCallback as d, useEffect as v } from "react";
3
+ import { STICK_TO_END_THRESHOLD as f } from "../constants/scroll.constants.js";
4
+ const E = (e) => e.scrollHeight - e.scrollTop - e.clientHeight, T = () => {
5
+ var e;
6
+ return ((e = window.matchMedia) == null ? void 0 : e.call(window, "(prefers-reduced-motion: reduce)").matches) ?? !1;
7
+ }, O = (e, s = !0) => {
8
+ const o = m(!0), [a, c] = p(!0), n = d(() => {
9
+ const t = e.current;
10
+ t && o.current && (t.scrollTop = t.scrollHeight);
11
+ }, [e]);
12
+ v(() => {
13
+ const t = e.current;
14
+ if (!s || !t) return;
15
+ const u = () => {
16
+ const l = E(t) < f;
17
+ o.current = l, c(l);
18
+ };
19
+ n(), t.addEventListener("scroll", u, { passive: !0 });
20
+ const i = new MutationObserver(n);
21
+ i.observe(t, { childList: !0, subtree: !0, characterData: !0 });
22
+ const r = typeof ResizeObserver > "u" ? null : new ResizeObserver(n);
23
+ return r == null || r.observe(t), () => {
24
+ t.removeEventListener("scroll", u), i.disconnect(), r == null || r.disconnect();
25
+ };
26
+ }, [s, e, n]);
27
+ const h = d(() => {
28
+ const t = e.current;
29
+ t && (o.current = !0, c(!0), t.scrollTo({
30
+ top: t.scrollHeight,
31
+ behavior: T() ? "instant" : "smooth"
32
+ }));
33
+ }, [e]);
34
+ return { isAtEnd: a, scrollToEnd: h };
35
+ };
36
+ export {
37
+ O as default
38
+ };
39
+ //# sourceMappingURL=useStickToBottom.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useStickToBottom.js","sources":["../../src/hooks/useStickToBottom.ts"],"sourcesContent":["'use client';\n\nimport { type RefObject, useCallback, useEffect, useRef, useState } from 'react';\n\nimport { STICK_TO_END_THRESHOLD } from '../constants/scroll.constants';\nimport type { StickToBottom } from '@/types/hook.type';\n\nconst distanceToEnd = (node: HTMLElement): number =>\n node.scrollHeight - node.scrollTop - node.clientHeight;\n\nconst prefersReducedMotion = (): boolean =>\n window.matchMedia?.('(prefers-reduced-motion: reduce)').matches ?? false;\n\n/**\n * Kaydırma kutusunu SONA yapışık tutar — kullanıcı yukarı kaydırana kadar. Akan bir yanıt, canlı\n * terminal çıktısı, büyüyen akıl yürütme metni.\n * İçerik değişimini (`MutationObserver`: yeni satır, akan metin) ve kutunun kendi boyunu\n * (`ResizeObserver`: ekran klavyesi açılınca) izler; render'da yerleşim okumaz.\n * @param isEnabled `false` iken hiçbir şey izlenmez.\n * @example const { isAtEnd, scrollToEnd } = useStickToBottom(listRef);\n */\nconst useStickToBottom = (ref: RefObject<HTMLElement | null>, isEnabled = true): StickToBottom => {\n const isPinned = useRef(true);\n const [isAtEnd, setIsAtEnd] = useState(true);\n\n const stick = useCallback(() => {\n const node = ref.current;\n if (node && isPinned.current) node.scrollTop = node.scrollHeight;\n }, [ref]);\n\n useEffect(() => {\n const node = ref.current;\n if (!isEnabled || !node) return;\n\n const handleScroll = () => {\n const atEnd = distanceToEnd(node) < STICK_TO_END_THRESHOLD;\n isPinned.current = atEnd;\n setIsAtEnd(atEnd);\n };\n\n stick();\n node.addEventListener('scroll', handleScroll, { passive: true });\n\n const mutations = new MutationObserver(stick);\n mutations.observe(node, { childList: true, subtree: true, characterData: true });\n\n const resize = typeof ResizeObserver === 'undefined' ? null : new ResizeObserver(stick);\n resize?.observe(node);\n\n return () => {\n node.removeEventListener('scroll', handleScroll);\n mutations.disconnect();\n resize?.disconnect();\n };\n }, [isEnabled, ref, stick]);\n\n /* \"En yeniye in\": yeniden yapışır. Azaltılmış harekette ANİ. */\n const scrollToEnd = useCallback(() => {\n const node = ref.current;\n if (!node) return;\n\n isPinned.current = true;\n setIsAtEnd(true);\n node.scrollTo({\n top: node.scrollHeight,\n behavior: prefersReducedMotion() ? 'instant' : 'smooth',\n });\n }, [ref]);\n\n return { isAtEnd, scrollToEnd };\n};\n\nexport default useStickToBottom;\n"],"names":["distanceToEnd","node","prefersReducedMotion","_a","useStickToBottom","ref","isEnabled","isPinned","useRef","isAtEnd","setIsAtEnd","useState","stick","useCallback","useEffect","handleScroll","atEnd","STICK_TO_END_THRESHOLD","mutations","resize","scrollToEnd"],"mappings":";;;AAMA,MAAMA,IAAgB,CAACC,MACrBA,EAAK,eAAeA,EAAK,YAAYA,EAAK,cAEtCC,IAAuB,MAAA;;AAC3B,WAAAC,IAAA,OAAO,eAAP,gBAAAA,EAAA,aAAoB,oCAAoC,YAAW;AAAA,GAU/DC,IAAmB,CAACC,GAAoCC,IAAY,OAAwB;AAChG,QAAMC,IAAWC,EAAO,EAAI,GACtB,CAACC,GAASC,CAAU,IAAIC,EAAS,EAAI,GAErCC,IAAQC,EAAY,MAAM;AAC9B,UAAMZ,IAAOI,EAAI;AACjB,IAAIJ,KAAQM,EAAS,YAASN,EAAK,YAAYA,EAAK;AAAA,EACtD,GAAG,CAACI,CAAG,CAAC;AAER,EAAAS,EAAU,MAAM;AACd,UAAMb,IAAOI,EAAI;AACjB,QAAI,CAACC,KAAa,CAACL,EAAM;AAEzB,UAAMc,IAAe,MAAM;AACzB,YAAMC,IAAQhB,EAAcC,CAAI,IAAIgB;AACpC,MAAAV,EAAS,UAAUS,GACnBN,EAAWM,CAAK;AAAA,IAClB;AAEA,IAAAJ,EAAA,GACAX,EAAK,iBAAiB,UAAUc,GAAc,EAAE,SAAS,IAAM;AAE/D,UAAMG,IAAY,IAAI,iBAAiBN,CAAK;AAC5C,IAAAM,EAAU,QAAQjB,GAAM,EAAE,WAAW,IAAM,SAAS,IAAM,eAAe,IAAM;AAE/E,UAAMkB,IAAS,OAAO,iBAAmB,MAAc,OAAO,IAAI,eAAeP,CAAK;AACtF,WAAAO,KAAA,QAAAA,EAAQ,QAAQlB,IAET,MAAM;AACX,MAAAA,EAAK,oBAAoB,UAAUc,CAAY,GAC/CG,EAAU,WAAA,GACVC,KAAA,QAAAA,EAAQ;AAAA,IACV;AAAA,EACF,GAAG,CAACb,GAAWD,GAAKO,CAAK,CAAC;AAG1B,QAAMQ,IAAcP,EAAY,MAAM;AACpC,UAAMZ,IAAOI,EAAI;AACjB,IAAKJ,MAELM,EAAS,UAAU,IACnBG,EAAW,EAAI,GACfT,EAAK,SAAS;AAAA,MACZ,KAAKA,EAAK;AAAA,MACV,UAAUC,EAAA,IAAyB,YAAY;AAAA,IAAA,CAChD;AAAA,EACH,GAAG,CAACG,CAAG,CAAC;AAER,SAAO,EAAE,SAAAI,GAAS,aAAAW,EAAA;AACpB;"}
@@ -0,0 +1,2 @@
1
+ "use client";"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const r=require("react"),T=require("@handijit/design"),l=require("@handijit/utils"),e=require("../helpers/theme.helper.cjs"),E=()=>{const[m,o]=r.useState("system"),[c,i]=r.useState("light"),[h,S]=r.useState(!1);r.useEffect(()=>{var d;if(!l.isClient())return;const t=()=>{o(e.readStoredPreference()),i(e.readActiveTheme())};t(),S(!0);const n=new MutationObserver(t);n.observe(document.documentElement,{attributes:!0,attributeFilter:[T.THEME_ATTRIBUTE]});const s=(d=window.matchMedia)==null?void 0:d.call(window,"(prefers-color-scheme: dark)"),u=()=>{e.readStoredPreference()==="system"&&e.applyThemePreference("system"),t()};return s==null||s.addEventListener("change",u),()=>{n.disconnect(),s==null||s.removeEventListener("change",u)}},[]);const a=r.useCallback(t=>{if(!l.isClient())return;const n=document.documentElement;n.classList.add(e.THEME_SWITCHING_CLASS),e.applyThemePreference(t),o(t),i(e.readActiveTheme()),window.requestAnimationFrame(()=>{window.requestAnimationFrame(()=>n.classList.remove(e.THEME_SWITCHING_CLASS))})},[]),f=r.useCallback(()=>a(c==="dark"?"light":"dark"),[c,a]);return{scheme:c,preference:m,setScheme:a,toggle:f,isReady:h}};exports.default=E;
2
+ //# sourceMappingURL=useUiTheme.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useUiTheme.cjs","sources":["../../src/hooks/useUiTheme.ts"],"sourcesContent":["'use client';\n\nimport { useCallback, useEffect, useState } from 'react';\n\nimport { THEME_ATTRIBUTE } from '@handijit/design';\nimport { isClient } from '@handijit/utils';\n\nimport {\n applyThemePreference,\n readActiveTheme,\n readStoredPreference,\n THEME_SWITCHING_CLASS,\n} from '../helpers/theme.helper';\nimport type { UiColorPreference, UiColorScheme, UiThemeState } from '@/types/theme.type';\n\n/**\n * Reads and changes the light/dark choice, on the `data-theme` contract of `@handijit/design`.\n *\n * The choice lives where the design boot script reads it (`localStorage[\"hd-theme\"]`), so a choice\n * made here survives a reload without a flash when `UiThemeScript` is in `<head>`.\n * @example const { scheme, toggle, isReady } = useUiTheme();\n */\nconst useUiTheme = (): UiThemeState => {\n /*\n * The first value is a constant: the server has no `document`, and reading the real value during\n * the first client render produced a hydration mismatch. `isReady` tells when it is real.\n */\n const [preference, setPreferenceState] = useState<UiColorPreference>('system');\n const [scheme, setSchemeState] = useState<UiColorScheme>('light');\n const [isReady, setIsReady] = useState(false);\n\n useEffect(() => {\n if (!isClient()) return;\n\n const sync = () => {\n setPreferenceState(readStoredPreference());\n setSchemeState(readActiveTheme());\n };\n\n sync();\n setIsReady(true);\n\n /* The boot script, another hook instance or the application may write the attribute. */\n const observer = new MutationObserver(sync);\n observer.observe(document.documentElement, {\n attributes: true,\n attributeFilter: [THEME_ATTRIBUTE],\n });\n\n /*\n * Without the boot script nobody rewrites the attribute when the system setting changes; a page\n * that follows the system has to be moved here.\n */\n const query = window.matchMedia?.('(prefers-color-scheme: dark)');\n const handleSystemChange = () => {\n if (readStoredPreference() === 'system') applyThemePreference('system');\n sync();\n };\n query?.addEventListener('change', handleSystemChange);\n\n return () => {\n observer.disconnect();\n query?.removeEventListener('change', handleSystemChange);\n };\n }, []);\n\n const setScheme = useCallback((next: UiColorPreference) => {\n if (!isClient()) return;\n\n const root = document.documentElement;\n\n root.classList.add(THEME_SWITCHING_CLASS);\n applyThemePreference(next);\n setPreferenceState(next);\n setSchemeState(readActiveTheme());\n\n /* The class comes off on the NEXT frame, after the new colours have been painted once. */\n window.requestAnimationFrame(() => {\n window.requestAnimationFrame(() => root.classList.remove(THEME_SWITCHING_CLASS));\n });\n }, []);\n\n const toggle = useCallback(\n () => setScheme(scheme === 'dark' ? 'light' : 'dark'),\n [scheme, setScheme],\n );\n\n return { scheme, preference, setScheme, toggle, isReady };\n};\n\nexport default useUiTheme;\n"],"names":["useUiTheme","preference","setPreferenceState","useState","scheme","setSchemeState","isReady","setIsReady","useEffect","isClient","sync","readStoredPreference","readActiveTheme","observer","THEME_ATTRIBUTE","query","_a","handleSystemChange","applyThemePreference","setScheme","useCallback","next","root","THEME_SWITCHING_CLASS","toggle"],"mappings":"sPAqBMA,EAAa,IAAoB,CAKrC,KAAM,CAACC,EAAYC,CAAkB,EAAIC,EAAAA,SAA4B,QAAQ,EACvE,CAACC,EAAQC,CAAc,EAAIF,EAAAA,SAAwB,OAAO,EAC1D,CAACG,EAASC,CAAU,EAAIJ,EAAAA,SAAS,EAAK,EAE5CK,EAAAA,UAAU,IAAM,OACd,GAAI,CAACC,EAAAA,WAAY,OAEjB,MAAMC,EAAO,IAAM,CACjBR,EAAmBS,EAAAA,sBAAsB,EACzCN,EAAeO,EAAAA,iBAAiB,CAClC,EAEAF,EAAA,EACAH,EAAW,EAAI,EAGf,MAAMM,EAAW,IAAI,iBAAiBH,CAAI,EAC1CG,EAAS,QAAQ,SAAS,gBAAiB,CACzC,WAAY,GACZ,gBAAiB,CAACC,EAAAA,eAAe,CAAA,CAClC,EAMD,MAAMC,GAAQC,EAAA,OAAO,aAAP,YAAAA,EAAA,YAAoB,gCAC5BC,EAAqB,IAAM,CAC3BN,uBAAA,IAA2B,UAAUO,EAAAA,qBAAqB,QAAQ,EACtER,EAAA,CACF,EACA,OAAAK,GAAA,MAAAA,EAAO,iBAAiB,SAAUE,GAE3B,IAAM,CACXJ,EAAS,WAAA,EACTE,GAAA,MAAAA,EAAO,oBAAoB,SAAUE,EACvC,CACF,EAAG,CAAA,CAAE,EAEL,MAAME,EAAYC,cAAaC,GAA4B,CACzD,GAAI,CAACZ,EAAAA,WAAY,OAEjB,MAAMa,EAAO,SAAS,gBAEtBA,EAAK,UAAU,IAAIC,uBAAqB,EACxCL,EAAAA,qBAAqBG,CAAI,EACzBnB,EAAmBmB,CAAI,EACvBhB,EAAeO,EAAAA,iBAAiB,EAGhC,OAAO,sBAAsB,IAAM,CACjC,OAAO,sBAAsB,IAAMU,EAAK,UAAU,OAAOC,EAAAA,qBAAqB,CAAC,CACjF,CAAC,CACH,EAAG,CAAA,CAAE,EAECC,EAASJ,EAAAA,YACb,IAAMD,EAAUf,IAAW,OAAS,QAAU,MAAM,EACpD,CAACA,EAAQe,CAAS,CAAA,EAGpB,MAAO,CAAE,OAAAf,EAAQ,WAAAH,EAAY,UAAAkB,EAAW,OAAAK,EAAQ,QAAAlB,CAAA,CAClD"}
@@ -0,0 +1,10 @@
1
+ import { UiThemeState } from '../types/theme.type';
2
+ /**
3
+ * Reads and changes the light/dark choice, on the `data-theme` contract of `@handijit/design`.
4
+ *
5
+ * The choice lives where the design boot script reads it (`localStorage["hd-theme"]`), so a choice
6
+ * made here survives a reload without a flash when `UiThemeScript` is in `<head>`.
7
+ * @example const { scheme, toggle, isReady } = useUiTheme();
8
+ */
9
+ declare const useUiTheme: () => UiThemeState;
10
+ export default useUiTheme;
@@ -0,0 +1,42 @@
1
+ "use client";
2
+ import { useState as o, useEffect as g, useCallback as d } from "react";
3
+ import { THEME_ATTRIBUTE as w } from "@handijit/design";
4
+ import { isClient as u } from "@handijit/utils";
5
+ import { THEME_SWITCHING_CLASS as l, applyThemePreference as f, readActiveTheme as h, readStoredPreference as E } from "../helpers/theme.helper.js";
6
+ const L = () => {
7
+ const [S, c] = o("system"), [r, a] = o("light"), [p, T] = o(!1);
8
+ g(() => {
9
+ var m;
10
+ if (!u()) return;
11
+ const e = () => {
12
+ c(E()), a(h());
13
+ };
14
+ e(), T(!0);
15
+ const s = new MutationObserver(e);
16
+ s.observe(document.documentElement, {
17
+ attributes: !0,
18
+ attributeFilter: [w]
19
+ });
20
+ const t = (m = window.matchMedia) == null ? void 0 : m.call(window, "(prefers-color-scheme: dark)"), i = () => {
21
+ E() === "system" && f("system"), e();
22
+ };
23
+ return t == null || t.addEventListener("change", i), () => {
24
+ s.disconnect(), t == null || t.removeEventListener("change", i);
25
+ };
26
+ }, []);
27
+ const n = d((e) => {
28
+ if (!u()) return;
29
+ const s = document.documentElement;
30
+ s.classList.add(l), f(e), c(e), a(h()), window.requestAnimationFrame(() => {
31
+ window.requestAnimationFrame(() => s.classList.remove(l));
32
+ });
33
+ }, []), v = d(
34
+ () => n(r === "dark" ? "light" : "dark"),
35
+ [r, n]
36
+ );
37
+ return { scheme: r, preference: S, setScheme: n, toggle: v, isReady: p };
38
+ };
39
+ export {
40
+ L as default
41
+ };
42
+ //# sourceMappingURL=useUiTheme.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useUiTheme.js","sources":["../../src/hooks/useUiTheme.ts"],"sourcesContent":["'use client';\n\nimport { useCallback, useEffect, useState } from 'react';\n\nimport { THEME_ATTRIBUTE } from '@handijit/design';\nimport { isClient } from '@handijit/utils';\n\nimport {\n applyThemePreference,\n readActiveTheme,\n readStoredPreference,\n THEME_SWITCHING_CLASS,\n} from '../helpers/theme.helper';\nimport type { UiColorPreference, UiColorScheme, UiThemeState } from '@/types/theme.type';\n\n/**\n * Reads and changes the light/dark choice, on the `data-theme` contract of `@handijit/design`.\n *\n * The choice lives where the design boot script reads it (`localStorage[\"hd-theme\"]`), so a choice\n * made here survives a reload without a flash when `UiThemeScript` is in `<head>`.\n * @example const { scheme, toggle, isReady } = useUiTheme();\n */\nconst useUiTheme = (): UiThemeState => {\n /*\n * The first value is a constant: the server has no `document`, and reading the real value during\n * the first client render produced a hydration mismatch. `isReady` tells when it is real.\n */\n const [preference, setPreferenceState] = useState<UiColorPreference>('system');\n const [scheme, setSchemeState] = useState<UiColorScheme>('light');\n const [isReady, setIsReady] = useState(false);\n\n useEffect(() => {\n if (!isClient()) return;\n\n const sync = () => {\n setPreferenceState(readStoredPreference());\n setSchemeState(readActiveTheme());\n };\n\n sync();\n setIsReady(true);\n\n /* The boot script, another hook instance or the application may write the attribute. */\n const observer = new MutationObserver(sync);\n observer.observe(document.documentElement, {\n attributes: true,\n attributeFilter: [THEME_ATTRIBUTE],\n });\n\n /*\n * Without the boot script nobody rewrites the attribute when the system setting changes; a page\n * that follows the system has to be moved here.\n */\n const query = window.matchMedia?.('(prefers-color-scheme: dark)');\n const handleSystemChange = () => {\n if (readStoredPreference() === 'system') applyThemePreference('system');\n sync();\n };\n query?.addEventListener('change', handleSystemChange);\n\n return () => {\n observer.disconnect();\n query?.removeEventListener('change', handleSystemChange);\n };\n }, []);\n\n const setScheme = useCallback((next: UiColorPreference) => {\n if (!isClient()) return;\n\n const root = document.documentElement;\n\n root.classList.add(THEME_SWITCHING_CLASS);\n applyThemePreference(next);\n setPreferenceState(next);\n setSchemeState(readActiveTheme());\n\n /* The class comes off on the NEXT frame, after the new colours have been painted once. */\n window.requestAnimationFrame(() => {\n window.requestAnimationFrame(() => root.classList.remove(THEME_SWITCHING_CLASS));\n });\n }, []);\n\n const toggle = useCallback(\n () => setScheme(scheme === 'dark' ? 'light' : 'dark'),\n [scheme, setScheme],\n );\n\n return { scheme, preference, setScheme, toggle, isReady };\n};\n\nexport default useUiTheme;\n"],"names":["useUiTheme","preference","setPreferenceState","useState","scheme","setSchemeState","isReady","setIsReady","useEffect","isClient","sync","readStoredPreference","readActiveTheme","observer","THEME_ATTRIBUTE","query","_a","handleSystemChange","applyThemePreference","setScheme","useCallback","next","root","THEME_SWITCHING_CLASS","toggle"],"mappings":";;;;;AAqBA,MAAMA,IAAa,MAAoB;AAKrC,QAAM,CAACC,GAAYC,CAAkB,IAAIC,EAA4B,QAAQ,GACvE,CAACC,GAAQC,CAAc,IAAIF,EAAwB,OAAO,GAC1D,CAACG,GAASC,CAAU,IAAIJ,EAAS,EAAK;AAE5C,EAAAK,EAAU,MAAM;;AACd,QAAI,CAACC,IAAY;AAEjB,UAAMC,IAAO,MAAM;AACjB,MAAAR,EAAmBS,GAAsB,GACzCN,EAAeO,GAAiB;AAAA,IAClC;AAEA,IAAAF,EAAA,GACAH,EAAW,EAAI;AAGf,UAAMM,IAAW,IAAI,iBAAiBH,CAAI;AAC1C,IAAAG,EAAS,QAAQ,SAAS,iBAAiB;AAAA,MACzC,YAAY;AAAA,MACZ,iBAAiB,CAACC,CAAe;AAAA,IAAA,CAClC;AAMD,UAAMC,KAAQC,IAAA,OAAO,eAAP,gBAAAA,EAAA,aAAoB,iCAC5BC,IAAqB,MAAM;AAC/B,MAAIN,EAAA,MAA2B,YAAUO,EAAqB,QAAQ,GACtER,EAAA;AAAA,IACF;AACA,WAAAK,KAAA,QAAAA,EAAO,iBAAiB,UAAUE,IAE3B,MAAM;AACX,MAAAJ,EAAS,WAAA,GACTE,KAAA,QAAAA,EAAO,oBAAoB,UAAUE;AAAA,IACvC;AAAA,EACF,GAAG,CAAA,CAAE;AAEL,QAAME,IAAYC,EAAY,CAACC,MAA4B;AACzD,QAAI,CAACZ,IAAY;AAEjB,UAAMa,IAAO,SAAS;AAEtB,IAAAA,EAAK,UAAU,IAAIC,CAAqB,GACxCL,EAAqBG,CAAI,GACzBnB,EAAmBmB,CAAI,GACvBhB,EAAeO,GAAiB,GAGhC,OAAO,sBAAsB,MAAM;AACjC,aAAO,sBAAsB,MAAMU,EAAK,UAAU,OAAOC,CAAqB,CAAC;AAAA,IACjF,CAAC;AAAA,EACH,GAAG,CAAA,CAAE,GAECC,IAASJ;AAAA,IACb,MAAMD,EAAUf,MAAW,SAAS,UAAU,MAAM;AAAA,IACpD,CAACA,GAAQe,CAAS;AAAA,EAAA;AAGpB,SAAO,EAAE,QAAAf,GAAQ,YAAAH,GAAY,WAAAkB,GAAW,QAAAK,GAAQ,SAAAlB,EAAA;AAClD;"}
@@ -0,0 +1,2 @@
1
+ "use client";"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const d=require("react"),m=require("@handijit/design"),E=require("@handijit/utils"),b="currentColor",g=(e,t)=>{const s=getComputedStyle(t);return Object.fromEntries(e.map(r=>[r,s.getPropertyValue(m.cssVarName(r)).trim()||b]))},v=(e,t)=>Object.keys(e).every(s=>e[s]===t[s]),h=e=>{const t=e.join("|"),[s,r]=d.useState(()=>Object.fromEntries(e.map(c=>[c,b])));return d.useEffect(()=>{var l;if(!E.isClient())return;const c=t.split("|"),o=()=>r(i=>{const a=g(c,document.documentElement);return v(i,a)&&Object.keys(i).length===c.length?i:a});o();const u=new MutationObserver(o);u.observe(document.documentElement,{attributes:!0,attributeFilter:[m.THEME_ATTRIBUTE,"style","class"]}),u.observe(document.head,{childList:!0});const n=(l=window.matchMedia)==null?void 0:l.call(window,"(prefers-color-scheme: dark)");return n==null||n.addEventListener("change",o),()=>{u.disconnect(),n==null||n.removeEventListener("change",o)}},[t]),s};exports.default=h;
2
+ //# sourceMappingURL=useUiTokens.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useUiTokens.cjs","sources":["../../src/hooks/useUiTokens.ts"],"sourcesContent":["'use client';\n\nimport { useEffect, useState } from 'react';\n\nimport { cssVarName, THEME_ATTRIBUTE, type TokenName } from '@handijit/design';\nimport { isClient } from '@handijit/utils';\n\n/** Returned on the server and in the first frame: drawing libraries paint an empty string black. */\nconst FALLBACK = 'currentColor';\n\nconst read = <TName extends TokenName>(\n names: readonly TName[],\n element: Element,\n): Record<TName, string> => {\n const style = getComputedStyle(element);\n\n return Object.fromEntries(\n names.map(name => [name, style.getPropertyValue(cssVarName(name)).trim() || FALLBACK]),\n ) as Record<TName, string>;\n};\n\nconst isSame = (first: Record<string, string>, second: Record<string, string>): boolean =>\n Object.keys(first).every(key => first[key] === second[key]);\n\n/**\n * The RESOLVED values of design tokens — for drawing libraries that cannot read a CSS variable\n * (a canvas, an SVG attribute that rejects `var(--…)`).\n * Names are the token names of `@handijit/design` without the `--hd-` prefix. The values follow the\n * root theme (`data-theme`, the system setting, an inline override on `<html>`).\n * ⚠ Every value is `currentColor` in the server output and in the first frame before hydration.\n * @example const colors = useUiTokens(['chart-1', 'chart-2', 'border']);\n */\nconst useUiTokens = <TName extends TokenName>(names: readonly TName[]): Record<TName, string> => {\n /* The array may be a new object on every render; the subscription follows the NAMES. */\n const key = names.join('|');\n\n const [values, setValues] = useState(\n () => Object.fromEntries(names.map(name => [name, FALLBACK])) as Record<TName, string>,\n );\n\n useEffect(() => {\n if (!isClient()) return;\n\n const list = key.split('|') as TName[];\n const update = () =>\n setValues(previous => {\n const next = read(list, document.documentElement);\n return isSame(previous, next) && Object.keys(previous).length === list.length\n ? previous\n : next;\n });\n\n update();\n\n const observer = new MutationObserver(update);\n observer.observe(document.documentElement, {\n attributes: true,\n attributeFilter: [THEME_ATTRIBUTE, 'style', 'class'],\n });\n /* A stylesheet added later (the application's brand override) changes the values too. */\n observer.observe(document.head, { childList: true });\n\n const query = window.matchMedia?.('(prefers-color-scheme: dark)');\n query?.addEventListener('change', update);\n\n return () => {\n observer.disconnect();\n query?.removeEventListener('change', update);\n };\n }, [key]);\n\n return values;\n};\n\nexport default useUiTokens;\n"],"names":["FALLBACK","read","names","element","style","name","cssVarName","isSame","first","second","key","useUiTokens","values","setValues","useState","useEffect","isClient","list","update","previous","next","observer","THEME_ATTRIBUTE","query","_a"],"mappings":"6MAOMA,EAAW,eAEXC,EAAO,CACXC,EACAC,IAC0B,CAC1B,MAAMC,EAAQ,iBAAiBD,CAAO,EAEtC,OAAO,OAAO,YACZD,EAAM,IAAIG,GAAQ,CAACA,EAAMD,EAAM,iBAAiBE,EAAAA,WAAWD,CAAI,CAAC,EAAE,KAAA,GAAUL,CAAQ,CAAC,CAAA,CAEzF,EAEMO,EAAS,CAACC,EAA+BC,IAC7C,OAAO,KAAKD,CAAK,EAAE,SAAaA,EAAME,CAAG,IAAMD,EAAOC,CAAG,CAAC,EAUtDC,EAAwCT,GAAmD,CAE/F,MAAMQ,EAAMR,EAAM,KAAK,GAAG,EAEpB,CAACU,EAAQC,CAAS,EAAIC,EAAAA,SAC1B,IAAM,OAAO,YAAYZ,EAAM,OAAY,CAACG,EAAML,CAAQ,CAAC,CAAC,CAAA,EAG9De,OAAAA,EAAAA,UAAU,IAAM,OACd,GAAI,CAACC,EAAAA,WAAY,OAEjB,MAAMC,EAAOP,EAAI,MAAM,GAAG,EACpBQ,EAAS,IACbL,EAAUM,GAAY,CACpB,MAAMC,EAAOnB,EAAKgB,EAAM,SAAS,eAAe,EAChD,OAAOV,EAAOY,EAAUC,CAAI,GAAK,OAAO,KAAKD,CAAQ,EAAE,SAAWF,EAAK,OACnEE,EACAC,CACN,CAAC,EAEHF,EAAA,EAEA,MAAMG,EAAW,IAAI,iBAAiBH,CAAM,EAC5CG,EAAS,QAAQ,SAAS,gBAAiB,CACzC,WAAY,GACZ,gBAAiB,CAACC,kBAAiB,QAAS,OAAO,CAAA,CACpD,EAEDD,EAAS,QAAQ,SAAS,KAAM,CAAE,UAAW,GAAM,EAEnD,MAAME,GAAQC,EAAA,OAAO,aAAP,YAAAA,EAAA,YAAoB,gCAClC,OAAAD,GAAA,MAAAA,EAAO,iBAAiB,SAAUL,GAE3B,IAAM,CACXG,EAAS,WAAA,EACTE,GAAA,MAAAA,EAAO,oBAAoB,SAAUL,EACvC,CACF,EAAG,CAACR,CAAG,CAAC,EAEDE,CACT"}
@@ -0,0 +1,11 @@
1
+ import { TokenName } from '@handijit/design';
2
+ /**
3
+ * The RESOLVED values of design tokens — for drawing libraries that cannot read a CSS variable
4
+ * (a canvas, an SVG attribute that rejects `var(--…)`).
5
+ * Names are the token names of `@handijit/design` without the `--hd-` prefix. The values follow the
6
+ * root theme (`data-theme`, the system setting, an inline override on `<html>`).
7
+ * ⚠ Every value is `currentColor` in the server output and in the first frame before hydration.
8
+ * @example const colors = useUiTokens(['chart-1', 'chart-2', 'border']);
9
+ */
10
+ declare const useUiTokens: <TName extends TokenName>(names: readonly TName[]) => Record<TName, string>;
11
+ export default useUiTokens;
@@ -0,0 +1,36 @@
1
+ "use client";
2
+ import { useState as d, useEffect as b } from "react";
3
+ import { THEME_ATTRIBUTE as E, cssVarName as f } from "@handijit/design";
4
+ import { isClient as p } from "@handijit/utils";
5
+ const l = "currentColor", h = (e, t) => {
6
+ const n = getComputedStyle(t);
7
+ return Object.fromEntries(
8
+ e.map((s) => [s, n.getPropertyValue(f(s)).trim() || l])
9
+ );
10
+ }, v = (e, t) => Object.keys(e).every((n) => e[n] === t[n]), O = (e) => {
11
+ const t = e.join("|"), [n, s] = d(
12
+ () => Object.fromEntries(e.map((o) => [o, l]))
13
+ );
14
+ return b(() => {
15
+ var m;
16
+ if (!p()) return;
17
+ const o = t.split("|"), c = () => s((a) => {
18
+ const u = h(o, document.documentElement);
19
+ return v(a, u) && Object.keys(a).length === o.length ? a : u;
20
+ });
21
+ c();
22
+ const i = new MutationObserver(c);
23
+ i.observe(document.documentElement, {
24
+ attributes: !0,
25
+ attributeFilter: [E, "style", "class"]
26
+ }), i.observe(document.head, { childList: !0 });
27
+ const r = (m = window.matchMedia) == null ? void 0 : m.call(window, "(prefers-color-scheme: dark)");
28
+ return r == null || r.addEventListener("change", c), () => {
29
+ i.disconnect(), r == null || r.removeEventListener("change", c);
30
+ };
31
+ }, [t]), n;
32
+ };
33
+ export {
34
+ O as default
35
+ };
36
+ //# sourceMappingURL=useUiTokens.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useUiTokens.js","sources":["../../src/hooks/useUiTokens.ts"],"sourcesContent":["'use client';\n\nimport { useEffect, useState } from 'react';\n\nimport { cssVarName, THEME_ATTRIBUTE, type TokenName } from '@handijit/design';\nimport { isClient } from '@handijit/utils';\n\n/** Returned on the server and in the first frame: drawing libraries paint an empty string black. */\nconst FALLBACK = 'currentColor';\n\nconst read = <TName extends TokenName>(\n names: readonly TName[],\n element: Element,\n): Record<TName, string> => {\n const style = getComputedStyle(element);\n\n return Object.fromEntries(\n names.map(name => [name, style.getPropertyValue(cssVarName(name)).trim() || FALLBACK]),\n ) as Record<TName, string>;\n};\n\nconst isSame = (first: Record<string, string>, second: Record<string, string>): boolean =>\n Object.keys(first).every(key => first[key] === second[key]);\n\n/**\n * The RESOLVED values of design tokens — for drawing libraries that cannot read a CSS variable\n * (a canvas, an SVG attribute that rejects `var(--…)`).\n * Names are the token names of `@handijit/design` without the `--hd-` prefix. The values follow the\n * root theme (`data-theme`, the system setting, an inline override on `<html>`).\n * ⚠ Every value is `currentColor` in the server output and in the first frame before hydration.\n * @example const colors = useUiTokens(['chart-1', 'chart-2', 'border']);\n */\nconst useUiTokens = <TName extends TokenName>(names: readonly TName[]): Record<TName, string> => {\n /* The array may be a new object on every render; the subscription follows the NAMES. */\n const key = names.join('|');\n\n const [values, setValues] = useState(\n () => Object.fromEntries(names.map(name => [name, FALLBACK])) as Record<TName, string>,\n );\n\n useEffect(() => {\n if (!isClient()) return;\n\n const list = key.split('|') as TName[];\n const update = () =>\n setValues(previous => {\n const next = read(list, document.documentElement);\n return isSame(previous, next) && Object.keys(previous).length === list.length\n ? previous\n : next;\n });\n\n update();\n\n const observer = new MutationObserver(update);\n observer.observe(document.documentElement, {\n attributes: true,\n attributeFilter: [THEME_ATTRIBUTE, 'style', 'class'],\n });\n /* A stylesheet added later (the application's brand override) changes the values too. */\n observer.observe(document.head, { childList: true });\n\n const query = window.matchMedia?.('(prefers-color-scheme: dark)');\n query?.addEventListener('change', update);\n\n return () => {\n observer.disconnect();\n query?.removeEventListener('change', update);\n };\n }, [key]);\n\n return values;\n};\n\nexport default useUiTokens;\n"],"names":["FALLBACK","read","names","element","style","name","cssVarName","isSame","first","second","key","useUiTokens","values","setValues","useState","useEffect","isClient","list","update","previous","next","observer","THEME_ATTRIBUTE","query","_a"],"mappings":";;;;AAOA,MAAMA,IAAW,gBAEXC,IAAO,CACXC,GACAC,MAC0B;AAC1B,QAAMC,IAAQ,iBAAiBD,CAAO;AAEtC,SAAO,OAAO;AAAA,IACZD,EAAM,IAAI,CAAAG,MAAQ,CAACA,GAAMD,EAAM,iBAAiBE,EAAWD,CAAI,CAAC,EAAE,KAAA,KAAUL,CAAQ,CAAC;AAAA,EAAA;AAEzF,GAEMO,IAAS,CAACC,GAA+BC,MAC7C,OAAO,KAAKD,CAAK,EAAE,MAAM,OAAOA,EAAME,CAAG,MAAMD,EAAOC,CAAG,CAAC,GAUtDC,IAAc,CAA0BT,MAAmD;AAE/F,QAAMQ,IAAMR,EAAM,KAAK,GAAG,GAEpB,CAACU,GAAQC,CAAS,IAAIC;AAAA,IAC1B,MAAM,OAAO,YAAYZ,EAAM,IAAI,OAAQ,CAACG,GAAML,CAAQ,CAAC,CAAC;AAAA,EAAA;AAG9D,SAAAe,EAAU,MAAM;;AACd,QAAI,CAACC,IAAY;AAEjB,UAAMC,IAAOP,EAAI,MAAM,GAAG,GACpBQ,IAAS,MACbL,EAAU,CAAAM,MAAY;AACpB,YAAMC,IAAOnB,EAAKgB,GAAM,SAAS,eAAe;AAChD,aAAOV,EAAOY,GAAUC,CAAI,KAAK,OAAO,KAAKD,CAAQ,EAAE,WAAWF,EAAK,SACnEE,IACAC;AAAA,IACN,CAAC;AAEH,IAAAF,EAAA;AAEA,UAAMG,IAAW,IAAI,iBAAiBH,CAAM;AAC5C,IAAAG,EAAS,QAAQ,SAAS,iBAAiB;AAAA,MACzC,YAAY;AAAA,MACZ,iBAAiB,CAACC,GAAiB,SAAS,OAAO;AAAA,IAAA,CACpD,GAEDD,EAAS,QAAQ,SAAS,MAAM,EAAE,WAAW,IAAM;AAEnD,UAAME,KAAQC,IAAA,OAAO,eAAP,gBAAAA,EAAA,aAAoB;AAClC,WAAAD,KAAA,QAAAA,EAAO,iBAAiB,UAAUL,IAE3B,MAAM;AACX,MAAAG,EAAS,WAAA,GACTE,KAAA,QAAAA,EAAO,oBAAoB,UAAUL;AAAA,IACvC;AAAA,EACF,GAAG,CAACR,CAAG,CAAC,GAEDE;AACT;"}
@@ -0,0 +1,2 @@
1
+ "use client";"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const c=require("react"),M=40,p=6,E=(l,{rowHeight:n=M,overscan:u=p,isEnabled:a=!0}={})=>{const f=c.useRef(null),[d,T]=c.useState({start:0,end:l,totalHeight:l*n,offset:0}),o=c.useCallback(()=>{const e=f.current,t=!a||!e||e.clientHeight===0?{start:0,end:l,totalHeight:l*n,offset:0}:(()=>{const s=Math.ceil(e.clientHeight/n),r=Math.floor(e.scrollTop/n),i=Math.max(0,r-u),m=Math.min(l,r+s+u);return{start:i,end:m,totalHeight:l*n,offset:i*n}})();T(s=>s.start===t.start&&s.end===t.end&&s.totalHeight===t.totalHeight&&s.offset===t.offset?s:t)},[l,a,u,n]);c.useEffect(o),c.useEffect(()=>{const e=f.current;if(!e)return;e.addEventListener("scroll",o,{passive:!0});const t=typeof ResizeObserver>"u"?null:new ResizeObserver(o);return t==null||t.observe(e),()=>{e.removeEventListener("scroll",o),t==null||t.disconnect()}},[o]);const R=c.useCallback(e=>{const t=f.current;if(!t||!a)return;const s=e*n,r=s+n;s<t.scrollTop?t.scrollTop=s:r>t.scrollTop+t.clientHeight&&(t.scrollTop=r-t.clientHeight)},[a,n]);return{scrollRef:f,range:d,scrollToIndex:R,measure:o}};exports.default=E;
2
+ //# sourceMappingURL=useVirtualList.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useVirtualList.cjs","sources":["../../src/hooks/useVirtualList.ts"],"sourcesContent":["'use client';\n\nimport { useCallback, useEffect, useRef, useState } from 'react';\nimport { VirtualRange } from '@/types/hook.type';\n\n/**\n * Ölçüm gelmediğinde varsayılan satır yüksekliği.\n * ⚠ `constants/combobox.constants.ts` içindeki `OPTION_HEIGHT` ile aynı sayı ama AYNI ŞEY DEĞİL: bu\n * jenerik bir varsayılan, o bir bileşenin…\n */\nconst DEFAULT_ROW_HEIGHT = 40;\n\n/** Görünen pencerenin altında ve üstünde fazladan çizilen satır. */\nconst DEFAULT_OVERSCAN = 6;\n\n/** SANALLAŞTIRMA — yalnızca görünen satırları çiz. */\nconst useVirtualList = (\n count: number,\n { rowHeight = DEFAULT_ROW_HEIGHT, overscan = DEFAULT_OVERSCAN, isEnabled = true } = {},\n) => {\n const scrollRef = useRef<HTMLElement | null>(null);\n const [range, setRange] = useState<VirtualRange>({\n start: 0,\n end: count,\n totalHeight: count * rowHeight,\n offset: 0,\n });\n\n const measure = useCallback(() => {\n const node = scrollRef.current;\n\n /* KAPALIYKEN VE OLCUM YOKKEN TAM LISTE. */\n const next =\n !isEnabled || !node || node.clientHeight === 0\n ? { start: 0, end: count, totalHeight: count * rowHeight, offset: 0 }\n : (() => {\n const visibleCount = Math.ceil(node.clientHeight / rowHeight);\n const first = Math.floor(node.scrollTop / rowHeight);\n\n const start = Math.max(0, first - overscan);\n const end = Math.min(count, first + visibleCount + overscan);\n\n return { start, end, totalHeight: count * rowHeight, offset: start * rowHeight };\n })();\n\n /* DEGISMEDIYSE AYNI NESNE geri verilir. */\n setRange(prev =>\n prev.start === next.start &&\n prev.end === next.end &&\n prev.totalHeight === next.totalHeight &&\n prev.offset === next.offset\n ? prev\n : next,\n );\n }, [count, isEnabled, overscan, rowHeight]);\n\n /* OLCUM HER BOYAMADAN SONRA — BAGIMLILIK LISTESI YOK */\n useEffect(measure);\n\n useEffect(() => {\n const node = scrollRef.current;\n if (!node) return;\n\n node.addEventListener('scroll', measure, { passive: true });\n\n const observer = typeof ResizeObserver === 'undefined' ? null : new ResizeObserver(measure);\n observer?.observe(node);\n\n return () => {\n node.removeEventListener('scroll', measure);\n observer?.disconnect();\n };\n }, [measure]);\n\n /** Verilen dizini görünür alana getirir. */\n const scrollToIndex = useCallback(\n (index: number) => {\n const node = scrollRef.current;\n if (!node || !isEnabled) return;\n\n const top = index * rowHeight;\n const bottom = top + rowHeight;\n\n if (top < node.scrollTop) node.scrollTop = top;\n else if (bottom > node.scrollTop + node.clientHeight)\n node.scrollTop = bottom - node.clientHeight;\n },\n [isEnabled, rowHeight],\n );\n\n return { scrollRef, range, scrollToIndex, measure };\n};\n\nexport default useVirtualList;\n"],"names":["DEFAULT_ROW_HEIGHT","DEFAULT_OVERSCAN","useVirtualList","count","rowHeight","overscan","isEnabled","scrollRef","useRef","range","setRange","useState","measure","useCallback","node","next","visibleCount","first","start","end","prev","useEffect","observer","scrollToIndex","index","top","bottom"],"mappings":"kJASMA,EAAqB,GAGrBC,EAAmB,EAGnBC,EAAiB,CACrBC,EACA,CAAE,UAAAC,EAAYJ,EAAoB,SAAAK,EAAWJ,EAAkB,UAAAK,EAAY,EAAA,EAAS,KACjF,CACH,MAAMC,EAAYC,EAAAA,OAA2B,IAAI,EAC3C,CAACC,EAAOC,CAAQ,EAAIC,WAAuB,CAC/C,MAAO,EACP,IAAKR,EACL,YAAaA,EAAQC,EACrB,OAAQ,CAAA,CACT,EAEKQ,EAAUC,EAAAA,YAAY,IAAM,CAChC,MAAMC,EAAOP,EAAU,QAGjBQ,EACJ,CAACT,GAAa,CAACQ,GAAQA,EAAK,eAAiB,EACzC,CAAE,MAAO,EAAG,IAAKX,EAAO,YAAaA,EAAQC,EAAW,OAAQ,CAAA,GAC/D,IAAM,CACL,MAAMY,EAAe,KAAK,KAAKF,EAAK,aAAeV,CAAS,EACtDa,EAAQ,KAAK,MAAMH,EAAK,UAAYV,CAAS,EAE7Cc,EAAQ,KAAK,IAAI,EAAGD,EAAQZ,CAAQ,EACpCc,EAAM,KAAK,IAAIhB,EAAOc,EAAQD,EAAeX,CAAQ,EAE3D,MAAO,CAAE,MAAAa,EAAO,IAAAC,EAAK,YAAahB,EAAQC,EAAW,OAAQc,EAAQd,CAAA,CACvE,GAAA,EAGNM,KACEU,EAAK,QAAUL,EAAK,OACpBK,EAAK,MAAQL,EAAK,KAClBK,EAAK,cAAgBL,EAAK,aAC1BK,EAAK,SAAWL,EAAK,OACjBK,EACAL,CAAA,CAER,EAAG,CAACZ,EAAOG,EAAWD,EAAUD,CAAS,CAAC,EAG1CiB,EAAAA,UAAUT,CAAO,EAEjBS,EAAAA,UAAU,IAAM,CACd,MAAMP,EAAOP,EAAU,QACvB,GAAI,CAACO,EAAM,OAEXA,EAAK,iBAAiB,SAAUF,EAAS,CAAE,QAAS,GAAM,EAE1D,MAAMU,EAAW,OAAO,eAAmB,IAAc,KAAO,IAAI,eAAeV,CAAO,EAC1F,OAAAU,GAAA,MAAAA,EAAU,QAAQR,GAEX,IAAM,CACXA,EAAK,oBAAoB,SAAUF,CAAO,EAC1CU,GAAA,MAAAA,EAAU,YACZ,CACF,EAAG,CAACV,CAAO,CAAC,EAGZ,MAAMW,EAAgBV,EAAAA,YACnBW,GAAkB,CACjB,MAAMV,EAAOP,EAAU,QACvB,GAAI,CAACO,GAAQ,CAACR,EAAW,OAEzB,MAAMmB,EAAMD,EAAQpB,EACdsB,EAASD,EAAMrB,EAEjBqB,EAAMX,EAAK,UAAWA,EAAK,UAAYW,EAClCC,EAASZ,EAAK,UAAYA,EAAK,eACtCA,EAAK,UAAYY,EAASZ,EAAK,aACnC,EACA,CAACR,EAAWF,CAAS,CAAA,EAGvB,MAAO,CAAE,UAAAG,EAAW,MAAAE,EAAO,cAAAc,EAAe,QAAAX,CAAA,CAC5C"}
@@ -0,0 +1,13 @@
1
+ import { VirtualRange } from '../types/hook.type';
2
+ /** SANALLAŞTIRMA — yalnızca görünen satırları çiz. */
3
+ declare const useVirtualList: (count: number, { rowHeight, overscan, isEnabled }?: {
4
+ rowHeight?: number | undefined;
5
+ overscan?: number | undefined;
6
+ isEnabled?: boolean | undefined;
7
+ }) => {
8
+ scrollRef: import('react').RefObject<HTMLElement | null>;
9
+ range: VirtualRange;
10
+ scrollToIndex: (index: number) => void;
11
+ measure: () => void;
12
+ };
13
+ export default useVirtualList;
@@ -0,0 +1,41 @@
1
+ "use client";
2
+ import { useRef as L, useState as h, useCallback as u, useEffect as d } from "react";
3
+ const x = 40, E = 6, O = (o, { rowHeight: n = x, overscan: a = E, isEnabled: r = !0 } = {}) => {
4
+ const f = L(null), [T, m] = h({
5
+ start: 0,
6
+ end: o,
7
+ totalHeight: o * n,
8
+ offset: 0
9
+ }), l = u(() => {
10
+ const e = f.current, t = !r || !e || e.clientHeight === 0 ? { start: 0, end: o, totalHeight: o * n, offset: 0 } : (() => {
11
+ const s = Math.ceil(e.clientHeight / n), c = Math.floor(e.scrollTop / n), i = Math.max(0, c - a), p = Math.min(o, c + s + a);
12
+ return { start: i, end: p, totalHeight: o * n, offset: i * n };
13
+ })();
14
+ m(
15
+ (s) => s.start === t.start && s.end === t.end && s.totalHeight === t.totalHeight && s.offset === t.offset ? s : t
16
+ );
17
+ }, [o, r, a, n]);
18
+ d(l), d(() => {
19
+ const e = f.current;
20
+ if (!e) return;
21
+ e.addEventListener("scroll", l, { passive: !0 });
22
+ const t = typeof ResizeObserver > "u" ? null : new ResizeObserver(l);
23
+ return t == null || t.observe(e), () => {
24
+ e.removeEventListener("scroll", l), t == null || t.disconnect();
25
+ };
26
+ }, [l]);
27
+ const R = u(
28
+ (e) => {
29
+ const t = f.current;
30
+ if (!t || !r) return;
31
+ const s = e * n, c = s + n;
32
+ s < t.scrollTop ? t.scrollTop = s : c > t.scrollTop + t.clientHeight && (t.scrollTop = c - t.clientHeight);
33
+ },
34
+ [r, n]
35
+ );
36
+ return { scrollRef: f, range: T, scrollToIndex: R, measure: l };
37
+ };
38
+ export {
39
+ O as default
40
+ };
41
+ //# sourceMappingURL=useVirtualList.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useVirtualList.js","sources":["../../src/hooks/useVirtualList.ts"],"sourcesContent":["'use client';\n\nimport { useCallback, useEffect, useRef, useState } from 'react';\nimport { VirtualRange } from '@/types/hook.type';\n\n/**\n * Ölçüm gelmediğinde varsayılan satır yüksekliği.\n * ⚠ `constants/combobox.constants.ts` içindeki `OPTION_HEIGHT` ile aynı sayı ama AYNI ŞEY DEĞİL: bu\n * jenerik bir varsayılan, o bir bileşenin…\n */\nconst DEFAULT_ROW_HEIGHT = 40;\n\n/** Görünen pencerenin altında ve üstünde fazladan çizilen satır. */\nconst DEFAULT_OVERSCAN = 6;\n\n/** SANALLAŞTIRMA — yalnızca görünen satırları çiz. */\nconst useVirtualList = (\n count: number,\n { rowHeight = DEFAULT_ROW_HEIGHT, overscan = DEFAULT_OVERSCAN, isEnabled = true } = {},\n) => {\n const scrollRef = useRef<HTMLElement | null>(null);\n const [range, setRange] = useState<VirtualRange>({\n start: 0,\n end: count,\n totalHeight: count * rowHeight,\n offset: 0,\n });\n\n const measure = useCallback(() => {\n const node = scrollRef.current;\n\n /* KAPALIYKEN VE OLCUM YOKKEN TAM LISTE. */\n const next =\n !isEnabled || !node || node.clientHeight === 0\n ? { start: 0, end: count, totalHeight: count * rowHeight, offset: 0 }\n : (() => {\n const visibleCount = Math.ceil(node.clientHeight / rowHeight);\n const first = Math.floor(node.scrollTop / rowHeight);\n\n const start = Math.max(0, first - overscan);\n const end = Math.min(count, first + visibleCount + overscan);\n\n return { start, end, totalHeight: count * rowHeight, offset: start * rowHeight };\n })();\n\n /* DEGISMEDIYSE AYNI NESNE geri verilir. */\n setRange(prev =>\n prev.start === next.start &&\n prev.end === next.end &&\n prev.totalHeight === next.totalHeight &&\n prev.offset === next.offset\n ? prev\n : next,\n );\n }, [count, isEnabled, overscan, rowHeight]);\n\n /* OLCUM HER BOYAMADAN SONRA — BAGIMLILIK LISTESI YOK */\n useEffect(measure);\n\n useEffect(() => {\n const node = scrollRef.current;\n if (!node) return;\n\n node.addEventListener('scroll', measure, { passive: true });\n\n const observer = typeof ResizeObserver === 'undefined' ? null : new ResizeObserver(measure);\n observer?.observe(node);\n\n return () => {\n node.removeEventListener('scroll', measure);\n observer?.disconnect();\n };\n }, [measure]);\n\n /** Verilen dizini görünür alana getirir. */\n const scrollToIndex = useCallback(\n (index: number) => {\n const node = scrollRef.current;\n if (!node || !isEnabled) return;\n\n const top = index * rowHeight;\n const bottom = top + rowHeight;\n\n if (top < node.scrollTop) node.scrollTop = top;\n else if (bottom > node.scrollTop + node.clientHeight)\n node.scrollTop = bottom - node.clientHeight;\n },\n [isEnabled, rowHeight],\n );\n\n return { scrollRef, range, scrollToIndex, measure };\n};\n\nexport default useVirtualList;\n"],"names":["DEFAULT_ROW_HEIGHT","DEFAULT_OVERSCAN","useVirtualList","count","rowHeight","overscan","isEnabled","scrollRef","useRef","range","setRange","useState","measure","useCallback","node","next","visibleCount","first","start","end","prev","useEffect","observer","scrollToIndex","index","top","bottom"],"mappings":";;AASA,MAAMA,IAAqB,IAGrBC,IAAmB,GAGnBC,IAAiB,CACrBC,GACA,EAAE,WAAAC,IAAYJ,GAAoB,UAAAK,IAAWJ,GAAkB,WAAAK,IAAY,GAAA,IAAS,OACjF;AACH,QAAMC,IAAYC,EAA2B,IAAI,GAC3C,CAACC,GAAOC,CAAQ,IAAIC,EAAuB;AAAA,IAC/C,OAAO;AAAA,IACP,KAAKR;AAAA,IACL,aAAaA,IAAQC;AAAA,IACrB,QAAQ;AAAA,EAAA,CACT,GAEKQ,IAAUC,EAAY,MAAM;AAChC,UAAMC,IAAOP,EAAU,SAGjBQ,IACJ,CAACT,KAAa,CAACQ,KAAQA,EAAK,iBAAiB,IACzC,EAAE,OAAO,GAAG,KAAKX,GAAO,aAAaA,IAAQC,GAAW,QAAQ,EAAA,KAC/D,MAAM;AACL,YAAMY,IAAe,KAAK,KAAKF,EAAK,eAAeV,CAAS,GACtDa,IAAQ,KAAK,MAAMH,EAAK,YAAYV,CAAS,GAE7Cc,IAAQ,KAAK,IAAI,GAAGD,IAAQZ,CAAQ,GACpCc,IAAM,KAAK,IAAIhB,GAAOc,IAAQD,IAAeX,CAAQ;AAE3D,aAAO,EAAE,OAAAa,GAAO,KAAAC,GAAK,aAAahB,IAAQC,GAAW,QAAQc,IAAQd,EAAA;AAAA,IACvE,GAAA;AAGN,IAAAM;AAAA,MAAS,OACPU,EAAK,UAAUL,EAAK,SACpBK,EAAK,QAAQL,EAAK,OAClBK,EAAK,gBAAgBL,EAAK,eAC1BK,EAAK,WAAWL,EAAK,SACjBK,IACAL;AAAA,IAAA;AAAA,EAER,GAAG,CAACZ,GAAOG,GAAWD,GAAUD,CAAS,CAAC;AAG1C,EAAAiB,EAAUT,CAAO,GAEjBS,EAAU,MAAM;AACd,UAAMP,IAAOP,EAAU;AACvB,QAAI,CAACO,EAAM;AAEX,IAAAA,EAAK,iBAAiB,UAAUF,GAAS,EAAE,SAAS,IAAM;AAE1D,UAAMU,IAAW,OAAO,iBAAmB,MAAc,OAAO,IAAI,eAAeV,CAAO;AAC1F,WAAAU,KAAA,QAAAA,EAAU,QAAQR,IAEX,MAAM;AACX,MAAAA,EAAK,oBAAoB,UAAUF,CAAO,GAC1CU,KAAA,QAAAA,EAAU;AAAA,IACZ;AAAA,EACF,GAAG,CAACV,CAAO,CAAC;AAGZ,QAAMW,IAAgBV;AAAA,IACpB,CAACW,MAAkB;AACjB,YAAMV,IAAOP,EAAU;AACvB,UAAI,CAACO,KAAQ,CAACR,EAAW;AAEzB,YAAMmB,IAAMD,IAAQpB,GACdsB,IAASD,IAAMrB;AAErB,MAAIqB,IAAMX,EAAK,YAAWA,EAAK,YAAYW,IAClCC,IAASZ,EAAK,YAAYA,EAAK,iBACtCA,EAAK,YAAYY,IAASZ,EAAK;AAAA,IACnC;AAAA,IACA,CAACR,GAAWF,CAAS;AAAA,EAAA;AAGvB,SAAO,EAAE,WAAAG,GAAW,OAAAE,GAAO,eAAAc,GAAe,SAAAX,EAAA;AAC5C;"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const x=require("./theme/UiProvider.cjs"),T=require("./theme/UiThemeScript.cjs"),$=require("./theme/context.cjs"),t=require("@handijit/design"),E=require("./helpers/focus.helper.cjs"),S=require("./hooks/useAnnounce.cjs"),_=require("./hooks/useUiTheme.cjs"),B=require("./hooks/useUiTokens.cjs"),R=require("./hooks/useStickToBottom.cjs"),P=require("./hooks/useListboxNavigation.cjs"),A=require("./hooks/usePositioning.cjs"),m=require("./hooks/useVirtualList.cjs"),O=require("./enums/ui-variant.enum.cjs"),p=require("./enums/ui-size.enum.cjs"),e=require("./constants/breakpoint.constants.cjs"),o=require("./helpers/text.helper.cjs"),C=require("./components/Button/index.cjs"),I=require("./components/IconButton/index.cjs"),b=require("./components/TextLink/index.cjs"),g=require("./components/Tooltip/index.cjs"),d=require("./components/Menu/index.cjs"),D=require("./components/Popover/index.cjs"),M=require("./components/Chip/index.cjs"),y=require("./components/ChipGroup/index.cjs"),U=require("./components/Combobox/index.cjs"),h=require("./components/SegmentedControl/index.cjs"),H=require("./components/Select/index.cjs"),k=require("./components/Checkbox/index.cjs"),L=require("./components/Switch/index.cjs"),F=require("./components/Radio/index.cjs"),w=require("./components/RadioCard/index.cjs"),v=require("./components/RangeSlider/index.cjs"),K=require("./components/RatingInput/index.cjs"),N=require("./components/QuantityStepper/index.cjs"),V=require("./components/TableCheckbox/index.cjs"),Y=require("./components/Input/index.cjs"),Q=require("./components/PasswordInput/index.cjs"),j=require("./components/TagInput/index.cjs"),G=require("./components/Textarea/index.cjs"),a=require("./components/DateField/index.cjs"),z=require("./components/Field/index.cjs"),J=require("./components/FileUpload/index.cjs"),W=require("./components/Alert/index.cjs"),X=require("./components/Avatar/index.cjs"),Z=require("./components/Badge/index.cjs"),ee=require("./components/Breadcrumb/index.cjs"),r=require("./components/Card/index.cjs"),re=require("./components/Carousel/index.cjs"),te=require("./components/CodeBadge/index.cjs"),ie=require("./components/Kbd/index.cjs"),ne=require("./components/StatusDot/index.cjs"),ue=require("./components/CopyField/index.cjs"),oe=require("./components/Divider/index.cjs"),i=require("./components/Directory/index.cjs"),de=require("./components/EmptyState/index.cjs"),ae=require("./components/PageHeader/index.cjs"),u=require("./components/Panel/index.cjs"),le=require("./components/Price/index.cjs"),se=require("./components/Rating/index.cjs"),ce=require("./components/SectionHeader/index.cjs"),fe=require("./components/ScrollArea/index.cjs"),n=require("./components/Skeleton/index.cjs"),qe=require("./components/Stat/index.cjs"),xe=require("./components/SummaryCard/index.cjs"),l=require("./components/Progress/index.cjs"),Te=require("./components/Spinner/index.cjs"),s=require("./components/Toast/index.cjs"),$e=require("./components/ToastPortal/index.cjs"),Ee=require("./components/Accordion/index.cjs"),Se=require("./components/Disclosure/index.cjs"),_e=require("./components/Steps/index.cjs"),Be=require("./components/Tabs/index.cjs"),Re=require("./components/Tile/index.cjs"),Pe=require("./components/Timeline/index.cjs"),Ae=require("./components/BottomSheet/index.cjs"),me=require("./components/Modal/index.cjs"),Oe=require("./components/CommandPalette/index.cjs"),pe=require("./components/ConfirmDialog/index.cjs"),Ce=require("./components/Drawer/index.cjs"),Ie=require("./components/PromptDialog/index.cjs"),c=require("./components/Table/index.cjs"),f=require("./components/DataTable/index.cjs"),q=require("./components/FilterBar/index.cjs"),be=require("./components/Pagination/index.cjs");exports.UiProvider=x.default;exports.UiThemeScript=T.default;exports.useUi=$.useUi;Object.defineProperty(exports,"THEME_ATTRIBUTE",{enumerable:!0,get:()=>t.THEME_ATTRIBUTE});Object.defineProperty(exports,"THEME_BOOT_SCRIPT",{enumerable:!0,get:()=>t.THEME_BOOT_SCRIPT});Object.defineProperty(exports,"THEME_BOOT_SCRIPT_HASH",{enumerable:!0,get:()=>t.THEME_BOOT_SCRIPT_HASH});Object.defineProperty(exports,"THEME_STORAGE_KEY",{enumerable:!0,get:()=>t.THEME_STORAGE_KEY});exports.hasOpenSurface=E.hasOpenSurface;exports.useAnnounce=S.default;exports.useUiTheme=_.default;exports.useUiTokens=B.default;exports.useStickToBottom=R.default;exports.useListboxNavigation=P.default;exports.usePositioning=A.default;exports.useVirtualList=m.default;exports.UIVariant=O.default;exports.UISize=p.default;exports.ABOVE_MOBILE_MEDIA_QUERY=e.ABOVE_MOBILE_MEDIA_QUERY;exports.ABOVE_TABLET_MEDIA_QUERY=e.ABOVE_TABLET_MEDIA_QUERY;exports.MOBILE_BREAKPOINT=e.MOBILE_BREAKPOINT;exports.SHEET_MEDIA_QUERY=e.SHEET_MEDIA_QUERY;exports.TABLET_BREAKPOINT=e.TABLET_BREAKPOINT;exports.TABLET_PORTRAIT_BREAKPOINT=e.TABLET_PORTRAIT_BREAKPOINT;exports.matchesSearch=o.matchesSearch;exports.normalizeSearchTerm=o.normalizeSearchTerm;exports.Button=C.default;exports.IconButton=I.default;exports.TextLink=b.default;exports.Tooltip=g.default;exports.ContextMenu=d.ContextMenu;exports.Menu=d.default;exports.Popover=D.default;exports.Chip=M.default;exports.ChipGroup=y.default;exports.Combobox=U.default;exports.SegmentedControl=h.default;exports.Select=H.default;exports.Checkbox=k.default;exports.Switch=L.default;exports.Radio=F.default;exports.RadioCard=w.default;exports.RangeSlider=v.default;exports.RatingInput=K.default;exports.QuantityStepper=N.default;exports.TableCheckbox=V.default;exports.Input=Y.default;exports.PasswordInput=Q.default;exports.TagInput=j.default;exports.Textarea=G.default;exports.DateField=a.default;exports.DateRange=a.DateRange;exports.Field=z.default;exports.FileUpload=J.default;exports.Alert=W.default;exports.Avatar=X.default;exports.Badge=Z.default;exports.Breadcrumb=ee.default;exports.Card=r.default;exports.CardBody=r.CardBody;exports.CardFooter=r.CardFooter;exports.CardMedia=r.CardMedia;exports.CardOverlay=r.CardOverlay;exports.Carousel=re.default;exports.CodeBadge=te.default;exports.Kbd=ie.default;exports.StatusDot=ne.default;exports.CopyField=ue.default;exports.Divider=oe.default;exports.Directory=i.default;exports.DirectoryGroup=i.DirectoryGroup;exports.DirectoryJump=i.DirectoryJump;exports.DirectoryRow=i.DirectoryRow;exports.EmptyState=de.default;exports.PageHeader=ae.default;exports.Panel=u.default;exports.PanelForm=u.PanelForm;exports.PanelRow=u.PanelRow;exports.Price=le.default;exports.Rating=se.default;exports.SectionHeader=ce.default;exports.ScrollArea=fe.default;exports.Skeleton=n.default;exports.SkeletonCard=n.SkeletonCard;exports.SkeletonRows=n.SkeletonRows;exports.SkeletonTable=n.SkeletonTable;exports.Stat=qe.default;exports.SummaryCard=xe.default;exports.Progress=l.default;exports.ProgressCircle=l.ProgressCircle;exports.Spinner=Te.default;exports.ToastHub=s.default;exports.toast=s.toast;exports.ToastPortal=$e.default;exports.Accordion=Ee.default;exports.Disclosure=Se.default;exports.Steps=_e.default;exports.Tabs=Be.default;exports.Tile=Re.default;exports.Timeline=Pe.default;exports.BottomSheet=Ae.default;exports.Modal=me.default;exports.CommandPalette=Oe.default;exports.ConfirmDialog=pe.default;exports.Drawer=Ce.default;exports.PromptDialog=Ie.default;exports.Table=c.default;exports.TableScroller=c.TableScroller;exports.DataTable=f.default;exports.DataTableRow=f.DataTableRow;exports.FilterBar=q.default;exports.FilterBarField=q.FilterBarField;exports.Pagination=be.default;
2
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -0,0 +1,93 @@
1
+ /**
2
+ * @handijit/ui — açık genel API. Dışa verilen her ad bir SÖZLEŞMEDİR: bir sonraki büyük sürüme
3
+ * kadar kaldırılmaz ve davranışı sessizce değişmez.
4
+ */
5
+ export { default as UiProvider } from './theme/UiProvider';
6
+ export { default as UiThemeScript } from './theme/UiThemeScript';
7
+ export { useUi } from './theme/context';
8
+ export { THEME_ATTRIBUTE, THEME_BOOT_SCRIPT, THEME_BOOT_SCRIPT_HASH, THEME_STORAGE_KEY, } from '@handijit/design';
9
+ export { hasOpenSurface } from './helpers/focus.helper';
10
+ export { default as useAnnounce } from './hooks/useAnnounce';
11
+ export { default as useUiTheme } from './hooks/useUiTheme';
12
+ export { default as useUiTokens } from './hooks/useUiTokens';
13
+ export { default as useStickToBottom } from './hooks/useStickToBottom';
14
+ export { default as useListboxNavigation, type ListboxNavigation, } from './hooks/useListboxNavigation';
15
+ export { default as usePositioning } from './hooks/usePositioning';
16
+ export { default as useVirtualList } from './hooks/useVirtualList';
17
+ export { default as UIVariant } from './enums/ui-variant.enum';
18
+ export { default as UISize } from './enums/ui-size.enum';
19
+ export type { CommonElementProps } from './types/common-element-props.type';
20
+ export type { UiLinkComponent, UiLinkExtraProps, UiLinkProps } from './types/link.type';
21
+ export { ABOVE_MOBILE_MEDIA_QUERY, ABOVE_TABLET_MEDIA_QUERY, MOBILE_BREAKPOINT, SHEET_MEDIA_QUERY, TABLET_BREAKPOINT, TABLET_PORTRAIT_BREAKPOINT, } from './constants/breakpoint.constants';
22
+ export { matchesSearch, normalizeSearchTerm } from './helpers/text.helper';
23
+ export { default as Button } from './components/Button';
24
+ export { default as IconButton, type IconButtonVariant } from './components/IconButton';
25
+ export { default as TextLink } from './components/TextLink';
26
+ export { default as Tooltip } from './components/Tooltip';
27
+ export { ContextMenu, default as Menu, type MenuItem } from './components/Menu';
28
+ export { default as Popover } from './components/Popover';
29
+ export { default as Chip, type ChipSize } from './components/Chip';
30
+ export { default as ChipGroup, type ChipOption } from './components/ChipGroup';
31
+ export { default as Combobox, type ComboboxLabels, type ComboboxOption, } from './components/Combobox';
32
+ export { default as SegmentedControl, type SegmentOption } from './components/SegmentedControl';
33
+ export { default as Select, type SelectOption } from './components/Select';
34
+ export { default as Checkbox } from './components/Checkbox';
35
+ export { default as Switch } from './components/Switch';
36
+ export { default as Radio } from './components/Radio';
37
+ export { default as RadioCard } from './components/RadioCard';
38
+ export { default as RangeSlider, type RangeValue } from './components/RangeSlider';
39
+ export { default as RatingInput, type RatingLabels } from './components/RatingInput';
40
+ export { default as QuantityStepper } from './components/QuantityStepper';
41
+ export { default as TableCheckbox } from './components/TableCheckbox';
42
+ export { default as Input } from './components/Input';
43
+ export { default as PasswordInput } from './components/PasswordInput';
44
+ export { default as TagInput } from './components/TagInput';
45
+ export { default as Textarea } from './components/Textarea';
46
+ export { default as DateField, DateRange, type DateRangeValue } from './components/DateField';
47
+ export { default as Field, type FieldChildProps } from './components/Field';
48
+ export { default as FileUpload, type UploadFile } from './components/FileUpload';
49
+ export { default as Alert, type AlertTone } from './components/Alert';
50
+ export { default as Avatar } from './components/Avatar';
51
+ export { default as Badge, type BadgeTone, type BadgeVariant } from './components/Badge';
52
+ export { default as Breadcrumb, type Crumb } from './components/Breadcrumb';
53
+ export { default as Card, CardBody, CardFooter, CardMedia, type CardMediaFit, CardOverlay, } from './components/Card';
54
+ export { default as Carousel } from './components/Carousel';
55
+ export { default as CodeBadge, type CodeBadgeSize } from './components/CodeBadge';
56
+ export { default as Kbd } from './components/Kbd';
57
+ export { default as StatusDot, type StatusDotTone } from './components/StatusDot';
58
+ export { default as CopyField } from './components/CopyField';
59
+ export { default as Divider } from './components/Divider';
60
+ export { default as Directory, DirectoryGroup, DirectoryJump, DirectoryRow, } from './components/Directory';
61
+ export { default as EmptyState } from './components/EmptyState';
62
+ export { default as PageHeader } from './components/PageHeader';
63
+ export { default as Panel, PanelForm, PanelRow } from './components/Panel';
64
+ export { default as Price } from './components/Price';
65
+ export { default as Rating } from './components/Rating';
66
+ export { default as SectionHeader } from './components/SectionHeader';
67
+ export { default as ScrollArea } from './components/ScrollArea';
68
+ export { default as Skeleton, SkeletonCard, SkeletonRows, SkeletonTable, } from './components/Skeleton';
69
+ export { default as Stat, type StatTrend } from './components/Stat';
70
+ export { default as SummaryCard, type SummaryCardHeadingLevel } from './components/SummaryCard';
71
+ export { default as Progress, ProgressCircle } from './components/Progress';
72
+ export { default as Spinner } from './components/Spinner';
73
+ export { default as ToastHub, toast, type ToastOptions, type ToastTone } from './components/Toast';
74
+ export { default as ToastPortal } from './components/ToastPortal';
75
+ export { default as Accordion, type AccordionItem } from './components/Accordion';
76
+ export { default as Disclosure, type DisclosureVariant } from './components/Disclosure';
77
+ export { default as Steps, type StepItem } from './components/Steps';
78
+ export { default as Tabs, type TabItem } from './components/Tabs';
79
+ export { default as Tile } from './components/Tile';
80
+ export { default as Timeline, type TimelineEvent, type TimelineStatus, } from './components/Timeline';
81
+ export { default as BottomSheet } from './components/BottomSheet';
82
+ export { default as Modal, type ModalTone } from './components/Modal';
83
+ export { default as CommandPalette, type CommandItem } from './components/CommandPalette';
84
+ export { default as ConfirmDialog, type ConfirmKind } from './components/ConfirmDialog';
85
+ export { default as Drawer } from './components/Drawer';
86
+ export { default as PromptDialog } from './components/PromptDialog';
87
+ export { default as Table, TableScroller } from './components/Table';
88
+ export { default as DataTable, DataTableRow, type DataTableColumn } from './components/DataTable';
89
+ export { default as FilterBar, FilterBarField } from './components/FilterBar';
90
+ export { default as Pagination } from './components/Pagination';
91
+ export type { AnnouncePoliteness, ListboxNavigationOptions, VirtualRange } from './types/hook.type';
92
+ export type { PositionAlign, PositionSide, PositioningOptions, PositioningState, } from './types/positioning.type';
93
+ export type { UiColorPreference, UiColorScheme, UiContextValue, UiLabels, UiThemeState, } from './types/theme.type';