@soroush.tech/design-system 0.1.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 (373) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +278 -0
  3. package/dist/AppBar.cjs +71 -0
  4. package/dist/AppBar.d.cts +23 -0
  5. package/dist/AppBar.d.mts +23 -0
  6. package/dist/AppBar.mjs +69 -0
  7. package/dist/Avatar.cjs +106 -0
  8. package/dist/Avatar.d.cts +28 -0
  9. package/dist/Avatar.d.mts +28 -0
  10. package/dist/Avatar.mjs +103 -0
  11. package/dist/Backdrop.cjs +26 -0
  12. package/dist/Backdrop.d.cts +10 -0
  13. package/dist/Backdrop.d.mts +10 -0
  14. package/dist/Backdrop.mjs +25 -0
  15. package/dist/Button.cjs +178 -0
  16. package/dist/Button.d.cts +2 -0
  17. package/dist/Button.d.mts +2 -0
  18. package/dist/Button.mjs +175 -0
  19. package/dist/ButtonGroup.cjs +110 -0
  20. package/dist/ButtonGroup.d.cts +2 -0
  21. package/dist/ButtonGroup.d.mts +2 -0
  22. package/dist/ButtonGroup.mjs +107 -0
  23. package/dist/ButtonGroupContext-DS-kl9lG.mjs +5 -0
  24. package/dist/ButtonGroupContext-NtkVeDVE.cjs +9 -0
  25. package/dist/Card.cjs +95 -0
  26. package/dist/Card.d.cts +18 -0
  27. package/dist/Card.d.mts +18 -0
  28. package/dist/Card.mjs +93 -0
  29. package/dist/Checkbox.cjs +192 -0
  30. package/dist/Checkbox.d.cts +2 -0
  31. package/dist/Checkbox.d.mts +2 -0
  32. package/dist/Checkbox.mjs +190 -0
  33. package/dist/CircularProgress.cjs +136 -0
  34. package/dist/CircularProgress.d.cts +34 -0
  35. package/dist/CircularProgress.d.mts +34 -0
  36. package/dist/CircularProgress.mjs +133 -0
  37. package/dist/CodeBlock.cjs +101 -0
  38. package/dist/CodeBlock.d.cts +2 -0
  39. package/dist/CodeBlock.d.mts +2 -0
  40. package/dist/CodeBlock.mjs +100 -0
  41. package/dist/Drawer.cjs +69 -0
  42. package/dist/Drawer.d.cts +22 -0
  43. package/dist/Drawer.d.mts +22 -0
  44. package/dist/Drawer.mjs +66 -0
  45. package/dist/Field.cjs +59 -0
  46. package/dist/Field.d.cts +36 -0
  47. package/dist/Field.d.mts +36 -0
  48. package/dist/Field.mjs +58 -0
  49. package/dist/Flex.cjs +21 -0
  50. package/dist/Flex.d.cts +2 -0
  51. package/dist/Flex.d.mts +2 -0
  52. package/dist/Flex.mjs +19 -0
  53. package/dist/FocusTrap.cjs +82 -0
  54. package/dist/FocusTrap.d.cts +24 -0
  55. package/dist/FocusTrap.d.mts +24 -0
  56. package/dist/FocusTrap.mjs +81 -0
  57. package/dist/Form.cjs +44 -0
  58. package/dist/Form.d.cts +41 -0
  59. package/dist/Form.d.mts +41 -0
  60. package/dist/Form.mjs +42 -0
  61. package/dist/FormContext-CRmRgDgu.cjs +10 -0
  62. package/dist/FormContext-_G3sxJyQ.mjs +6 -0
  63. package/dist/FormControl.cjs +84 -0
  64. package/dist/FormControl.d.cts +78 -0
  65. package/dist/FormControl.d.mts +78 -0
  66. package/dist/FormControl.mjs +81 -0
  67. package/dist/FormControlContext-CyxdOxdN.mjs +6 -0
  68. package/dist/FormControlContext-aeKTjRKY.cjs +10 -0
  69. package/dist/FormHelperText.cjs +40 -0
  70. package/dist/FormHelperText.d.cts +16 -0
  71. package/dist/FormHelperText.d.mts +16 -0
  72. package/dist/FormHelperText.mjs +39 -0
  73. package/dist/FormLabel.cjs +34 -0
  74. package/dist/FormLabel.d.cts +2 -0
  75. package/dist/FormLabel.d.mts +2 -0
  76. package/dist/FormLabel.mjs +33 -0
  77. package/dist/Grid.cjs +37 -0
  78. package/dist/Grid.d.cts +21 -0
  79. package/dist/Grid.d.mts +21 -0
  80. package/dist/Grid.mjs +32 -0
  81. package/dist/Icon-1YtNCUKo.cjs +755 -0
  82. package/dist/Icon-CAKRmFz3.mjs +742 -0
  83. package/dist/Icon.cjs +4 -0
  84. package/dist/Icon.d.cts +2 -0
  85. package/dist/Icon.d.mts +2 -0
  86. package/dist/Icon.mjs +2 -0
  87. package/dist/Image.cjs +82 -0
  88. package/dist/Image.d.cts +2 -0
  89. package/dist/Image.d.mts +2 -0
  90. package/dist/Image.mjs +80 -0
  91. package/dist/LinearProgress.cjs +217 -0
  92. package/dist/LinearProgress.d.cts +36 -0
  93. package/dist/LinearProgress.d.mts +36 -0
  94. package/dist/LinearProgress.mjs +214 -0
  95. package/dist/Link.cjs +64 -0
  96. package/dist/Link.d.cts +2 -0
  97. package/dist/Link.d.mts +2 -0
  98. package/dist/Link.mjs +62 -0
  99. package/dist/Markdown/Control.cjs +61 -0
  100. package/dist/Markdown/Control.d.cts +18 -0
  101. package/dist/Markdown/Control.d.mts +18 -0
  102. package/dist/Markdown/Control.mjs +60 -0
  103. package/dist/Markdown/Editor.cjs +130 -0
  104. package/dist/Markdown/Editor.d.cts +40 -0
  105. package/dist/Markdown/Editor.d.mts +40 -0
  106. package/dist/Markdown/Editor.mjs +128 -0
  107. package/dist/Markdown/Preview.cjs +241 -0
  108. package/dist/Markdown/Preview.d.cts +55 -0
  109. package/dist/Markdown/Preview.d.mts +55 -0
  110. package/dist/Markdown/Preview.mjs +236 -0
  111. package/dist/Markdown/Toolbar.cjs +4 -0
  112. package/dist/Markdown/Toolbar.d.cts +13 -0
  113. package/dist/Markdown/Toolbar.d.mts +13 -0
  114. package/dist/Markdown/Toolbar.mjs +2 -0
  115. package/dist/Markdown.cjs +13 -0
  116. package/dist/Markdown.d.cts +80 -0
  117. package/dist/Markdown.d.mts +80 -0
  118. package/dist/Markdown.mjs +6 -0
  119. package/dist/MarkdownContext-BN8A3W-J.mjs +11 -0
  120. package/dist/MarkdownContext-DSwjzpH8.cjs +22 -0
  121. package/dist/MenuItem.cjs +150 -0
  122. package/dist/MenuItem.d.cts +51 -0
  123. package/dist/MenuItem.d.mts +51 -0
  124. package/dist/MenuItem.mjs +147 -0
  125. package/dist/Modal-BDMPTSXv.cjs +351 -0
  126. package/dist/Modal-DR60peRg.mjs +327 -0
  127. package/dist/Modal.cjs +6 -0
  128. package/dist/Modal.d.cts +2 -0
  129. package/dist/Modal.d.mts +2 -0
  130. package/dist/Modal.mjs +2 -0
  131. package/dist/NativeSelect.cjs +189 -0
  132. package/dist/NativeSelect.d.cts +62 -0
  133. package/dist/NativeSelect.d.mts +62 -0
  134. package/dist/NativeSelect.mjs +186 -0
  135. package/dist/Pagination/PaginationItem.cjs +116 -0
  136. package/dist/Pagination/PaginationItem.d.cts +2 -0
  137. package/dist/Pagination/PaginationItem.d.mts +2 -0
  138. package/dist/Pagination/PaginationItem.mjs +114 -0
  139. package/dist/Pagination.cjs +134 -0
  140. package/dist/Pagination.d.cts +23 -0
  141. package/dist/Pagination.d.mts +23 -0
  142. package/dist/Pagination.mjs +130 -0
  143. package/dist/Paper.cjs +51 -0
  144. package/dist/Paper.d.cts +2 -0
  145. package/dist/Paper.d.mts +2 -0
  146. package/dist/Paper.mjs +48 -0
  147. package/dist/Popover-B61J7C79.mjs +252 -0
  148. package/dist/Popover-CRDLmywF.cjs +259 -0
  149. package/dist/Popover.cjs +3 -0
  150. package/dist/Popover.d.cts +84 -0
  151. package/dist/Popover.d.mts +84 -0
  152. package/dist/Popover.mjs +2 -0
  153. package/dist/Portal.cjs +20 -0
  154. package/dist/Portal.d.cts +18 -0
  155. package/dist/Portal.d.mts +18 -0
  156. package/dist/Portal.mjs +19 -0
  157. package/dist/Quote.cjs +11 -0
  158. package/dist/Quote.d.cts +2 -0
  159. package/dist/Quote.d.mts +2 -0
  160. package/dist/Quote.mjs +10 -0
  161. package/dist/Radio.cjs +143 -0
  162. package/dist/Radio.d.cts +38 -0
  163. package/dist/Radio.d.mts +38 -0
  164. package/dist/Radio.mjs +141 -0
  165. package/dist/Select.cjs +528 -0
  166. package/dist/Select.d.cts +68 -0
  167. package/dist/Select.d.mts +68 -0
  168. package/dist/Select.mjs +525 -0
  169. package/dist/Skeleton.cjs +82 -0
  170. package/dist/Skeleton.d.cts +21 -0
  171. package/dist/Skeleton.d.mts +21 -0
  172. package/dist/Skeleton.mjs +79 -0
  173. package/dist/Switch.cjs +332 -0
  174. package/dist/Switch.d.cts +40 -0
  175. package/dist/Switch.d.mts +40 -0
  176. package/dist/Switch.mjs +329 -0
  177. package/dist/Table/Table.cjs +65 -0
  178. package/dist/Table/Table.d.cts +2 -0
  179. package/dist/Table/Table.d.mts +2 -0
  180. package/dist/Table/Table.mjs +63 -0
  181. package/dist/Table/TableBody.cjs +42 -0
  182. package/dist/Table/TableBody.d.cts +2 -0
  183. package/dist/Table/TableBody.d.mts +2 -0
  184. package/dist/Table/TableBody.mjs +40 -0
  185. package/dist/Table/TableCell.cjs +93 -0
  186. package/dist/Table/TableCell.d.cts +2 -0
  187. package/dist/Table/TableCell.d.mts +2 -0
  188. package/dist/Table/TableCell.mjs +91 -0
  189. package/dist/Table/TableContainer.cjs +15 -0
  190. package/dist/Table/TableContainer.d.cts +2 -0
  191. package/dist/Table/TableContainer.d.mts +2 -0
  192. package/dist/Table/TableContainer.mjs +14 -0
  193. package/dist/Table/TableControl.cjs +42 -0
  194. package/dist/Table/TableControl.d.cts +2 -0
  195. package/dist/Table/TableControl.d.mts +2 -0
  196. package/dist/Table/TableControl.mjs +41 -0
  197. package/dist/Table/TableFooter.cjs +42 -0
  198. package/dist/Table/TableFooter.d.cts +2 -0
  199. package/dist/Table/TableFooter.d.mts +2 -0
  200. package/dist/Table/TableFooter.mjs +40 -0
  201. package/dist/Table/TableHead.cjs +42 -0
  202. package/dist/Table/TableHead.d.cts +2 -0
  203. package/dist/Table/TableHead.d.mts +2 -0
  204. package/dist/Table/TableHead.mjs +40 -0
  205. package/dist/Table/TablePagination.cjs +89 -0
  206. package/dist/Table/TablePagination.d.cts +2 -0
  207. package/dist/Table/TablePagination.d.mts +2 -0
  208. package/dist/Table/TablePagination.mjs +88 -0
  209. package/dist/Table/TablePaginationActions.cjs +65 -0
  210. package/dist/Table/TablePaginationActions.d.cts +2 -0
  211. package/dist/Table/TablePaginationActions.d.mts +2 -0
  212. package/dist/Table/TablePaginationActions.mjs +63 -0
  213. package/dist/Table/TableRow.cjs +56 -0
  214. package/dist/Table/TableRow.d.cts +2 -0
  215. package/dist/Table/TableRow.d.mts +2 -0
  216. package/dist/Table/TableRow.mjs +54 -0
  217. package/dist/Table/TableSortLabel.cjs +62 -0
  218. package/dist/Table/TableSortLabel.d.cts +2 -0
  219. package/dist/Table/TableSortLabel.d.mts +2 -0
  220. package/dist/Table/TableSortLabel.mjs +60 -0
  221. package/dist/Table/hooks.cjs +112 -0
  222. package/dist/Table/hooks.d.cts +3 -0
  223. package/dist/Table/hooks.d.mts +3 -0
  224. package/dist/Table/hooks.mjs +109 -0
  225. package/dist/Table.cjs +31 -0
  226. package/dist/Table.d.cts +16 -0
  227. package/dist/Table.d.mts +16 -0
  228. package/dist/Table.mjs +15 -0
  229. package/dist/TableContext-2qH7XYJB.d.cts +19 -0
  230. package/dist/TableContext-2qH7XYJB.d.mts +19 -0
  231. package/dist/TableContext-BRWPghAI.mjs +6 -0
  232. package/dist/TableContext-qqp35o8z.cjs +10 -0
  233. package/dist/TableSectionContext-meIG4lFZ.mjs +5 -0
  234. package/dist/TableSectionContext-pYlJ-duI.cjs +9 -0
  235. package/dist/TextInput-6o37Zddp.cjs +231 -0
  236. package/dist/TextInput-D_lHYJlL.mjs +224 -0
  237. package/dist/TextInput.cjs +3 -0
  238. package/dist/TextInput.d.cts +2 -0
  239. package/dist/TextInput.d.mts +2 -0
  240. package/dist/TextInput.mjs +2 -0
  241. package/dist/ThemeProvider.cjs +15 -0
  242. package/dist/ThemeProvider.d.cts +20 -0
  243. package/dist/ThemeProvider.d.mts +20 -0
  244. package/dist/ThemeProvider.mjs +14 -0
  245. package/dist/ToggleButton/ToggleButton.cjs +58 -0
  246. package/dist/ToggleButton/ToggleButton.d.cts +14 -0
  247. package/dist/ToggleButton/ToggleButton.d.mts +14 -0
  248. package/dist/ToggleButton/ToggleButton.mjs +56 -0
  249. package/dist/ToggleButton/ToggleButtonGroup.cjs +54 -0
  250. package/dist/ToggleButton/ToggleButtonGroup.d.cts +23 -0
  251. package/dist/ToggleButton/ToggleButtonGroup.d.mts +23 -0
  252. package/dist/ToggleButton/ToggleButtonGroup.mjs +52 -0
  253. package/dist/ToggleButton.cjs +7 -0
  254. package/dist/ToggleButton.d.cts +4 -0
  255. package/dist/ToggleButton.d.mts +4 -0
  256. package/dist/ToggleButton.mjs +4 -0
  257. package/dist/ToggleButtonGroupContext-CqD-Afho.d.cts +15 -0
  258. package/dist/ToggleButtonGroupContext-CqD-Afho.d.mts +15 -0
  259. package/dist/ToggleButtonGroupContext-DxIyy8ze.mjs +5 -0
  260. package/dist/ToggleButtonGroupContext-Ewc5Ixas.cjs +9 -0
  261. package/dist/Toolbar-B-W22Sk4.cjs +459 -0
  262. package/dist/Toolbar-KbR97iJS.mjs +448 -0
  263. package/dist/Typography.cjs +64 -0
  264. package/dist/Typography.d.cts +3 -0
  265. package/dist/Typography.d.mts +3 -0
  266. package/dist/Typography.mjs +61 -0
  267. package/dist/View.cjs +40 -0
  268. package/dist/View.d.cts +2 -0
  269. package/dist/View.d.mts +2 -0
  270. package/dist/View.mjs +38 -0
  271. package/dist/applyAction-B2B-hnP3.mjs +98 -0
  272. package/dist/applyAction-B2uVHxOE.cjs +103 -0
  273. package/dist/createTheme-Dts2F4R_.d.cts +21 -0
  274. package/dist/createTheme-Dts2F4R_.d.mts +21 -0
  275. package/dist/hooks/useCopyToClipboard.cjs +33 -0
  276. package/dist/hooks/useCopyToClipboard.d.cts +16 -0
  277. package/dist/hooks/useCopyToClipboard.d.mts +16 -0
  278. package/dist/hooks/useCopyToClipboard.mjs +31 -0
  279. package/dist/hooks.cjs +52 -0
  280. package/dist/hooks.d.cts +40 -0
  281. package/dist/hooks.d.mts +40 -0
  282. package/dist/hooks.mjs +41 -0
  283. package/dist/index-4rC2j7fR.d.cts +46 -0
  284. package/dist/index-8dzWTpFp.d.cts +24 -0
  285. package/dist/index-B1rCD6Oo.d.cts +17 -0
  286. package/dist/index-BH8jQOdF.d.mts +46 -0
  287. package/dist/index-BLRMuO_x.d.mts +24 -0
  288. package/dist/index-BLfFycfJ.d.mts +72 -0
  289. package/dist/index-BPrjvi7B.d.cts +13 -0
  290. package/dist/index-BX5-NfbX.d.cts +94 -0
  291. package/dist/index-Bihpwn75.d.cts +64 -0
  292. package/dist/index-BlfIbAMs.d.cts +45 -0
  293. package/dist/index-BnzUumAC2.d.mts +30 -0
  294. package/dist/index-BoqlPb3Z.d.mts +13 -0
  295. package/dist/index-BqVgv2B_.d.mts +42 -0
  296. package/dist/index-Bwi4kRpf.d.mts +79 -0
  297. package/dist/index-Bx24ZnOV.d.mts +43 -0
  298. package/dist/index-C-P_hipv.d.mts +21 -0
  299. package/dist/index-C0xMvDjL.d.mts +49 -0
  300. package/dist/index-C5_ciaeo.d.cts +79 -0
  301. package/dist/index-CDVnvjIE.d.cts +27 -0
  302. package/dist/index-CDcGTGR4.d.cts +21 -0
  303. package/dist/index-CEOZI-6L.d.mts +48 -0
  304. package/dist/index-CLU39rUS2.d.mts +30 -0
  305. package/dist/index-CM_KCTee.d.cts +48 -0
  306. package/dist/index-CT9uGKrs.d.cts +30 -0
  307. package/dist/index-CcYSvIJi.d.cts +21 -0
  308. package/dist/index-CdF_4ckE.d.mts +11 -0
  309. package/dist/index-CeYkEXU2.d.cts +68 -0
  310. package/dist/index-Cl_yBpzW2.d.mts +13 -0
  311. package/dist/index-Cv_UOfYx.d.mts +18 -0
  312. package/dist/index-CxSNNzBT2.d.mts +68 -0
  313. package/dist/index-CyZYXDn0.d.cts +42 -0
  314. package/dist/index-DASvoACZ.d.cts +49 -0
  315. package/dist/index-DBGE6yKw.d.mts +16 -0
  316. package/dist/index-DCQ2fsDu.d.mts +40 -0
  317. package/dist/index-DD2AVtiR.d.cts +16 -0
  318. package/dist/index-DE5PtzPn.d.mts +27 -0
  319. package/dist/index-DOPXpr2J.d.cts +43 -0
  320. package/dist/index-DSCMXFTn.d.cts +30 -0
  321. package/dist/index-DTkQSXQD.d.cts +11 -0
  322. package/dist/index-DeJWkpf9.d.cts +16 -0
  323. package/dist/index-DeiZHSwA.d.cts +12 -0
  324. package/dist/index-Des8BisQ.d.mts +12 -0
  325. package/dist/index-Dg8-CPOO.d.cts +18 -0
  326. package/dist/index-DgRS5Aqv.d.mts +16 -0
  327. package/dist/index-Dm9HfgV6.d.mts +63 -0
  328. package/dist/index-DmJIuQJj.d.mts +24 -0
  329. package/dist/index-Dp81rWM1.d.cts +72 -0
  330. package/dist/index-Dtzj8X58.d.cts +40 -0
  331. package/dist/index-DvW2eETV.d.mts +21 -0
  332. package/dist/index-Dy03o__A.d.mts +94 -0
  333. package/dist/index-FwTocqhP.d.cts +34 -0
  334. package/dist/index-GVsFY00r.d.cts +21 -0
  335. package/dist/index-Nqco3fsM.d.cts +13 -0
  336. package/dist/index-g-9DZ_KQ.d.cts +28 -0
  337. package/dist/index-g9EThkSg.d.mts +21 -0
  338. package/dist/index-kpk9e3xM2.d.mts +45 -0
  339. package/dist/index-pX7tBQdJ.d.mts +34 -0
  340. package/dist/index-u57CbuAU2.d.mts +28 -0
  341. package/dist/index-x80UG39F.d.cts +24 -0
  342. package/dist/index-z35LEYG8.d.mts +17 -0
  343. package/dist/index.cjs +68 -0
  344. package/dist/index.d.cts +4 -0
  345. package/dist/index.d.mts +4 -0
  346. package/dist/index.mjs +3 -0
  347. package/dist/inputVariantStyles-BBkkYQtE.cjs +32 -0
  348. package/dist/inputVariantStyles-CcqpGfuP.mjs +28 -0
  349. package/dist/rolldown-runtime-BBjsoOtd.mjs +27 -0
  350. package/dist/rolldown-runtime-DDXJien1.cjs +50 -0
  351. package/dist/src-BiocWFSR.cjs +60 -0
  352. package/dist/src-DcNT2aIK.mjs +49 -0
  353. package/dist/themeDefault-B-QjpGEO.cjs +16 -0
  354. package/dist/themeDefault-CjXaY3ok.mjs +11 -0
  355. package/dist/themes-D1SAp3SL.d.mts +500 -0
  356. package/dist/themes-D81JYbqm.d.cts +500 -0
  357. package/dist/themes.cjs +318 -0
  358. package/dist/themes.d.cts +3 -0
  359. package/dist/themes.d.mts +3 -0
  360. package/dist/themes.mjs +303 -0
  361. package/dist/useDefaultProps-Cb-5FNok.cjs +19 -0
  362. package/dist/useDefaultProps-CoApb4KT.mjs +14 -0
  363. package/dist/useTableSort--XMWjujs.d.cts +51 -0
  364. package/dist/useTableSort-CpDs4cGq.d.mts +51 -0
  365. package/dist/utils/styleCache.cjs +7 -0
  366. package/dist/utils/styleCache.d.cts +3 -0
  367. package/dist/utils/styleCache.d.mts +4 -0
  368. package/dist/utils/styleCache.mjs +5 -0
  369. package/dist/utils.cjs +65 -0
  370. package/dist/utils.d.cts +39 -0
  371. package/dist/utils.d.mts +39 -0
  372. package/dist/utils.mjs +58 -0
  373. package/package.json +125 -0
@@ -0,0 +1,51 @@
1
+ import { n as TableSortLabelDirection } from "./index-DmJIuQJj.mjs";
2
+ //#region src/Table/hooks/useTablePagination.d.ts
3
+ interface UseTablePaginationOptions {
4
+ /** Initial zero-based page. Default: `0`. */
5
+ defaultPage?: number;
6
+ /** Initial rows per page; `-1` shows all rows. Default: `10`. */
7
+ defaultRowsPerPage?: number;
8
+ }
9
+ /** Paging state — property names mirror `TablePagination`'s props so it spreads in one go. */
10
+ interface TablePaginationState {
11
+ page: number;
12
+ rowsPerPage: number;
13
+ onPageChange: (page: number) => void;
14
+ /** Changing the page size resets to the first page. */
15
+ onRowsPerPageChange: (rowsPerPage: number) => void;
16
+ }
17
+ /**
18
+ * Pagination state for tables.
19
+ *
20
+ * ```tsx
21
+ * const pagination = useTablePagination({ defaultRowsPerPage: 10 })
22
+ * <TablePagination count={data.length} {...pagination} />
23
+ * <TableControl data={data} pagination={pagination}>{(row) => …}</TableControl>
24
+ * ```
25
+ */
26
+ declare function useTablePagination({ defaultPage, defaultRowsPerPage }?: UseTablePaginationOptions): TablePaginationState;
27
+ //#endregion
28
+ //#region src/Table/hooks/useTableSort.d.ts
29
+ /** One column's sort state — spreads directly onto `TableSortLabel`. */
30
+ interface TableSortEntry {
31
+ isActive: boolean;
32
+ direction: TableSortLabelDirection;
33
+ /** Activates the column and flips its stored direction. */
34
+ onClick: () => void;
35
+ }
36
+ type TableSortMap<K extends string = string> = Record<K, TableSortEntry>;
37
+ /**
38
+ * Column-keyed sort state for sortable tables. Each column remembers its own
39
+ * direction (initially `'asc'`); clicking a column activates it AND flips its
40
+ * stored direction — so the first click on a column sorts `'desc'`.
41
+ * `keys` is read once on mount.
42
+ *
43
+ * ```tsx
44
+ * const sort = useTableSort(['name', 'latency'])
45
+ * <TableSortLabel {...sort.name}>Service</TableSortLabel>
46
+ * <TableControl data={rows} sort={sort}>{(row) => …}</TableControl>
47
+ * ```
48
+ */
49
+ declare function useTableSort<K extends string>(keys: readonly K[], onChange?: (key: K, direction: TableSortLabelDirection) => void): TableSortMap<K>;
50
+ //#endregion
51
+ export { UseTablePaginationOptions as a, TablePaginationState as i, TableSortMap as n, useTablePagination as o, useTableSort as r, TableSortEntry as t };
@@ -0,0 +1,7 @@
1
+ const require_rolldown_runtime = require("../rolldown-runtime-DDXJien1.cjs");
2
+ let _emotion_cache = require("@emotion/cache");
3
+ _emotion_cache = require_rolldown_runtime.__toESM(_emotion_cache, 1);
4
+ //#region src/utils/styleCache.ts
5
+ var styleCache_default = (0, _emotion_cache.default)({ key: "soroush" });
6
+ //#endregion
7
+ module.exports = styleCache_default;
@@ -0,0 +1,3 @@
1
+ //#region src/utils/styleCache.d.ts
2
+ declare const _default: import("@emotion/cache").EmotionCache;
3
+ export = _default;
@@ -0,0 +1,4 @@
1
+ //#region src/utils/styleCache.d.ts
2
+ declare const _default: import("@emotion/cache").EmotionCache;
3
+ //#endregion
4
+ export { _default as default };
@@ -0,0 +1,5 @@
1
+ import createCache from "@emotion/cache";
2
+ //#region src/utils/styleCache.ts
3
+ var styleCache_default = createCache({ key: "soroush" });
4
+ //#endregion
5
+ export { styleCache_default as default };
package/dist/utils.cjs ADDED
@@ -0,0 +1,65 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
+ const require_themeDefault = require("./themeDefault-B-QjpGEO.cjs");
3
+ //#region src/utils/spacing.ts
4
+ const spacing = (units) => `${8 * units}px`;
5
+ //#endregion
6
+ //#region src/utils/generateBoxShadow.ts
7
+ const generateBoxShadow = (elevation, shadowColor) => {
8
+ return `0 ${elevation}px ${elevation * 2}px ${shadowColor}`;
9
+ };
10
+ //#endregion
11
+ //#region src/utils/clamp.ts
12
+ /** Clamps `value` to the inclusive range `[min, max]`. */
13
+ function clamp(value, min, max) {
14
+ return Math.min(Math.max(value, min), max);
15
+ }
16
+ //#endregion
17
+ //#region src/utils/luminance.ts
18
+ function luminance(hex) {
19
+ const r = Number.parseInt(hex.slice(1, 3), 16);
20
+ const g = Number.parseInt(hex.slice(3, 5), 16);
21
+ const b = Number.parseInt(hex.slice(5, 7), 16);
22
+ return (.299 * r + .587 * g + .114 * b) / 255;
23
+ }
24
+ //#endregion
25
+ //#region src/utils/alpha.ts
26
+ /**
27
+ * Appends an alpha channel to a 6-digit hex color, producing an 8-digit `#RRGGBBAA` hex.
28
+ * @param color - 6-digit hex string, e.g. `'#4ade80'`
29
+ * @param opacity - alpha from `0` (transparent) to `1` (opaque)
30
+ * @returns 8-digit hex string, e.g. `'#4ade801A'`
31
+ * @example alpha('#4ade80', 0.1) // '#4ade801A'
32
+ */
33
+ const alpha = (color, opacity) => {
34
+ return `${color}${Math.round(clamp(opacity, 0, 1) * 255).toString(16).padStart(2, "0").toUpperCase()}`;
35
+ };
36
+ //#endregion
37
+ //#region src/utils/createTheme.ts
38
+ const isPlainObject = (value) => typeof value === "object" && value !== null && !Array.isArray(value);
39
+ const deepMerge = (base, overrides) => {
40
+ const merged = { ...base };
41
+ for (const [key, value] of Object.entries(overrides)) {
42
+ if (value === void 0) continue;
43
+ const baseValue = merged[key];
44
+ merged[key] = isPlainObject(baseValue) && isPlainObject(value) ? deepMerge(baseValue, value) : value;
45
+ }
46
+ return merged;
47
+ };
48
+ /**
49
+ * Builds a theme by deep-merging sparse `overrides` onto `base`.
50
+ *
51
+ * - Recurses only where both sides are plain objects; arrays (`shadows`,
52
+ * `fontSizes`) and functions replace wholesale.
53
+ * - `undefined` override values are ignored — a key can be added or replaced,
54
+ * never removed.
55
+ * - Neither argument is mutated; untouched branches keep referential identity.
56
+ */
57
+ const createTheme = (base, overrides) => deepMerge(base, overrides);
58
+ //#endregion
59
+ exports.alpha = alpha;
60
+ exports.clamp = clamp;
61
+ exports.createTheme = createTheme;
62
+ exports.generateBoxShadow = generateBoxShadow;
63
+ exports.luminance = luminance;
64
+ exports.spacing = spacing;
65
+ exports.themeDefault = require_themeDefault.themeDefault;
@@ -0,0 +1,39 @@
1
+ import { n as ThemeOverride, r as createTheme, t as DeepPartial } from "./createTheme-Dts2F4R_.cjs";
2
+ import { Theme, ThemeDefaults } from "@emotion/react";
3
+ //#region src/utils/spacing.d.ts
4
+ /** The default `theme.space` steps. Kept for back-compat; `spacing()` accepts any
5
+ * number so values can be built for consumer-augmented space keys. */
6
+ type SpaceUnits = 0 | 0.5 | 1 | 1.5 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10;
7
+ declare const spacing: (units: number) => string;
8
+ //#endregion
9
+ //#region src/utils/generateBoxShadow.d.ts
10
+ declare const generateBoxShadow: (elevation: number, shadowColor: string) => string;
11
+ //#endregion
12
+ //#region src/utils/clamp.d.ts
13
+ /** Clamps `value` to the inclusive range `[min, max]`. */
14
+ declare function clamp(value: number, min: number, max: number): number;
15
+ //#endregion
16
+ //#region src/utils/luminance.d.ts
17
+ declare function luminance(hex: string): number;
18
+ //#endregion
19
+ //#region src/utils/alpha.d.ts
20
+ /**
21
+ * Appends an alpha channel to a 6-digit hex color, producing an 8-digit `#RRGGBBAA` hex.
22
+ * @param color - 6-digit hex string, e.g. `'#4ade80'`
23
+ * @param opacity - alpha from `0` (transparent) to `1` (opaque)
24
+ * @returns 8-digit hex string, e.g. `'#4ade801A'`
25
+ * @example alpha('#4ade80', 0.1) // '#4ade801A'
26
+ */
27
+ declare const alpha: (color: string, opacity: number) => string;
28
+ //#endregion
29
+ //#region src/utils/themeDefault.d.ts
30
+ /**
31
+ * Resolves a component's default token/variant key: the theme's optional
32
+ * `defaults` override wins, otherwise the component's literal `fallback`.
33
+ * Components call this in their prop defaults (`size = themeDefault(theme,
34
+ * 'size', 'md')`) so every built-in default stays visible in the component
35
+ * yet overridable per theme or via `ThemeProvider`'s `defaults` prop.
36
+ */
37
+ declare const themeDefault: <K extends keyof ThemeDefaults>(theme: Theme, key: K, fallback: NonNullable<ThemeDefaults[K]>) => NonNullable<ThemeDefaults[K]>;
38
+ //#endregion
39
+ export { DeepPartial, SpaceUnits, ThemeOverride, alpha, clamp, createTheme, generateBoxShadow, luminance, spacing, themeDefault };
@@ -0,0 +1,39 @@
1
+ import { n as ThemeOverride, r as createTheme, t as DeepPartial } from "./createTheme-Dts2F4R_.mjs";
2
+ import { Theme, ThemeDefaults } from "@emotion/react";
3
+ //#region src/utils/spacing.d.ts
4
+ /** The default `theme.space` steps. Kept for back-compat; `spacing()` accepts any
5
+ * number so values can be built for consumer-augmented space keys. */
6
+ type SpaceUnits = 0 | 0.5 | 1 | 1.5 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10;
7
+ declare const spacing: (units: number) => string;
8
+ //#endregion
9
+ //#region src/utils/generateBoxShadow.d.ts
10
+ declare const generateBoxShadow: (elevation: number, shadowColor: string) => string;
11
+ //#endregion
12
+ //#region src/utils/clamp.d.ts
13
+ /** Clamps `value` to the inclusive range `[min, max]`. */
14
+ declare function clamp(value: number, min: number, max: number): number;
15
+ //#endregion
16
+ //#region src/utils/luminance.d.ts
17
+ declare function luminance(hex: string): number;
18
+ //#endregion
19
+ //#region src/utils/alpha.d.ts
20
+ /**
21
+ * Appends an alpha channel to a 6-digit hex color, producing an 8-digit `#RRGGBBAA` hex.
22
+ * @param color - 6-digit hex string, e.g. `'#4ade80'`
23
+ * @param opacity - alpha from `0` (transparent) to `1` (opaque)
24
+ * @returns 8-digit hex string, e.g. `'#4ade801A'`
25
+ * @example alpha('#4ade80', 0.1) // '#4ade801A'
26
+ */
27
+ declare const alpha: (color: string, opacity: number) => string;
28
+ //#endregion
29
+ //#region src/utils/themeDefault.d.ts
30
+ /**
31
+ * Resolves a component's default token/variant key: the theme's optional
32
+ * `defaults` override wins, otherwise the component's literal `fallback`.
33
+ * Components call this in their prop defaults (`size = themeDefault(theme,
34
+ * 'size', 'md')`) so every built-in default stays visible in the component
35
+ * yet overridable per theme or via `ThemeProvider`'s `defaults` prop.
36
+ */
37
+ declare const themeDefault: <K extends keyof ThemeDefaults>(theme: Theme, key: K, fallback: NonNullable<ThemeDefaults[K]>) => NonNullable<ThemeDefaults[K]>;
38
+ //#endregion
39
+ export { DeepPartial, SpaceUnits, ThemeOverride, alpha, clamp, createTheme, generateBoxShadow, luminance, spacing, themeDefault };
package/dist/utils.mjs ADDED
@@ -0,0 +1,58 @@
1
+ import { t as themeDefault } from "./themeDefault-CjXaY3ok.mjs";
2
+ //#region src/utils/spacing.ts
3
+ const spacing = (units) => `${8 * units}px`;
4
+ //#endregion
5
+ //#region src/utils/generateBoxShadow.ts
6
+ const generateBoxShadow = (elevation, shadowColor) => {
7
+ return `0 ${elevation}px ${elevation * 2}px ${shadowColor}`;
8
+ };
9
+ //#endregion
10
+ //#region src/utils/clamp.ts
11
+ /** Clamps `value` to the inclusive range `[min, max]`. */
12
+ function clamp(value, min, max) {
13
+ return Math.min(Math.max(value, min), max);
14
+ }
15
+ //#endregion
16
+ //#region src/utils/luminance.ts
17
+ function luminance(hex) {
18
+ const r = Number.parseInt(hex.slice(1, 3), 16);
19
+ const g = Number.parseInt(hex.slice(3, 5), 16);
20
+ const b = Number.parseInt(hex.slice(5, 7), 16);
21
+ return (.299 * r + .587 * g + .114 * b) / 255;
22
+ }
23
+ //#endregion
24
+ //#region src/utils/alpha.ts
25
+ /**
26
+ * Appends an alpha channel to a 6-digit hex color, producing an 8-digit `#RRGGBBAA` hex.
27
+ * @param color - 6-digit hex string, e.g. `'#4ade80'`
28
+ * @param opacity - alpha from `0` (transparent) to `1` (opaque)
29
+ * @returns 8-digit hex string, e.g. `'#4ade801A'`
30
+ * @example alpha('#4ade80', 0.1) // '#4ade801A'
31
+ */
32
+ const alpha = (color, opacity) => {
33
+ return `${color}${Math.round(clamp(opacity, 0, 1) * 255).toString(16).padStart(2, "0").toUpperCase()}`;
34
+ };
35
+ //#endregion
36
+ //#region src/utils/createTheme.ts
37
+ const isPlainObject = (value) => typeof value === "object" && value !== null && !Array.isArray(value);
38
+ const deepMerge = (base, overrides) => {
39
+ const merged = { ...base };
40
+ for (const [key, value] of Object.entries(overrides)) {
41
+ if (value === void 0) continue;
42
+ const baseValue = merged[key];
43
+ merged[key] = isPlainObject(baseValue) && isPlainObject(value) ? deepMerge(baseValue, value) : value;
44
+ }
45
+ return merged;
46
+ };
47
+ /**
48
+ * Builds a theme by deep-merging sparse `overrides` onto `base`.
49
+ *
50
+ * - Recurses only where both sides are plain objects; arrays (`shadows`,
51
+ * `fontSizes`) and functions replace wholesale.
52
+ * - `undefined` override values are ignored — a key can be added or replaced,
53
+ * never removed.
54
+ * - Neither argument is mutated; untouched branches keep referential identity.
55
+ */
56
+ const createTheme = (base, overrides) => deepMerge(base, overrides);
57
+ //#endregion
58
+ export { alpha, clamp, createTheme, generateBoxShadow, luminance, spacing, themeDefault };
package/package.json ADDED
@@ -0,0 +1,125 @@
1
+ {
2
+ "name": "@soroush.tech/design-system",
3
+ "version": "0.1.0",
4
+ "description": "Emotion + @soroush.tech/styled-system React component library — token-driven light/dark themes, layout primitives, forms, overlays, and a headless markdown editor/renderer.",
5
+ "keywords": [
6
+ "design-system",
7
+ "react",
8
+ "emotion",
9
+ "styled-system",
10
+ "components",
11
+ "theme",
12
+ "markdown",
13
+ "typescript"
14
+ ],
15
+ "author": "Masoud Soroush <masoud@soroush.tech>",
16
+ "license": "MIT",
17
+ "homepage": "https://soroush.tech",
18
+ "repository": {
19
+ "type": "git",
20
+ "url": "git+https://github.com/soroush-tech/core.git",
21
+ "directory": "packages/design-system"
22
+ },
23
+ "bugs": {
24
+ "url": "https://github.com/soroush-tech/core/issues"
25
+ },
26
+ "type": "module",
27
+ "sideEffects": false,
28
+ "files": [
29
+ "dist"
30
+ ],
31
+ "exports": {
32
+ ".": {
33
+ "import": {
34
+ "types": "./dist/index.d.mts",
35
+ "default": "./dist/index.mjs"
36
+ },
37
+ "require": {
38
+ "types": "./dist/index.d.cts",
39
+ "default": "./dist/index.cjs"
40
+ }
41
+ },
42
+ "./*": {
43
+ "import": {
44
+ "types": "./dist/*.d.mts",
45
+ "default": "./dist/*.mjs"
46
+ },
47
+ "require": {
48
+ "types": "./dist/*.d.cts",
49
+ "default": "./dist/*.cjs"
50
+ }
51
+ }
52
+ },
53
+ "types": "./dist/index.d.mts",
54
+ "publishConfig": {
55
+ "access": "public"
56
+ },
57
+ "dependencies": {
58
+ "@emotion/cache": "^11.14.0",
59
+ "react-markdown": "^10.1.0",
60
+ "rehype-highlight": "^7.0.2",
61
+ "remark-gfm": "^4.0.1",
62
+ "@soroush.tech/styled-system": "^5.7.1"
63
+ },
64
+ "peerDependencies": {
65
+ "@emotion/react": "^11.14.0",
66
+ "@emotion/styled": "^11.14.1",
67
+ "@tanstack/react-form": "^1.33.2",
68
+ "react": "^19.0.0",
69
+ "react-dom": "^19.0.0"
70
+ },
71
+ "peerDependenciesMeta": {
72
+ "@tanstack/react-form": {
73
+ "optional": true
74
+ }
75
+ },
76
+ "devDependencies": {
77
+ "@emotion/css": "^11.13.5",
78
+ "@emotion/react": "^11.14.0",
79
+ "@emotion/styled": "^11.14.1",
80
+ "@storybook/react-vite": "^10.5.0",
81
+ "@tanstack/react-form": "^1.33.2",
82
+ "@testing-library/jest-dom": "^6.9.1",
83
+ "@testing-library/react": "^16.3.2",
84
+ "@types/node": "^26.1.1",
85
+ "@types/react": "^19.2.17",
86
+ "@types/react-dom": "^19.2.3",
87
+ "@vitest/browser-playwright": "^4.1.10",
88
+ "@vitest/coverage-v8": "^4.1.10",
89
+ "eslint": "^10.7.0",
90
+ "eslint-plugin-react": "^7.37.5",
91
+ "eslint-plugin-react-hooks": "^7.1.1",
92
+ "eslint-plugin-react-refresh": "^0.5.3",
93
+ "eslint-plugin-storybook": "^10.5.0",
94
+ "globals": "^17.7.0",
95
+ "jsdom": "^29.1.1",
96
+ "playwright": "^1.61.1",
97
+ "react": "^19.2.7",
98
+ "react-dom": "^19.2.7",
99
+ "storybook": "^10.5.0",
100
+ "tsdown": "^0.22.7",
101
+ "typescript": "~6.0.3",
102
+ "vitest": "^4.1.10",
103
+ "zod": "^4.4.3",
104
+ "@soroush.tech/eslint-config": "0.0.0"
105
+ },
106
+ "scripts": {
107
+ "build": "tsdown",
108
+ "storybook": "pnpm --filter @soroush/web storybook",
109
+ "lint": "eslint . --max-warnings 0",
110
+ "typecheck": "tsc --noEmit",
111
+ "test": "vitest run",
112
+ "test:coverage": "vitest run --coverage",
113
+ "test:types": "pnpm build && tsc -p type-tests/tsconfig.json",
114
+ "audit:styled": "node scripts/audit-styled.mjs"
115
+ },
116
+ "main": "./dist/index.cjs",
117
+ "module": "./dist/index.mjs",
118
+ "typesVersions": {
119
+ "*": {
120
+ "*": [
121
+ "./dist/*.d.cts"
122
+ ]
123
+ }
124
+ }
125
+ }