@soroush.tech/design-system 2.0.0-rc.1 → 2.0.0-rc.3

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 (324) hide show
  1. package/README.md +30 -10
  2. package/dist/AppBar.d.cts +1 -3
  3. package/dist/AppBar.d.mts +1 -3
  4. package/dist/Avatar.cjs +1 -1
  5. package/dist/Avatar.d.cts +1 -3
  6. package/dist/Avatar.d.mts +1 -3
  7. package/dist/Avatar.mjs +1 -1
  8. package/dist/Backdrop.d.cts +1 -1
  9. package/dist/Backdrop.d.mts +1 -1
  10. package/dist/Breadcrumbs.cjs +132 -0
  11. package/dist/Breadcrumbs.d.cts +40 -0
  12. package/dist/Breadcrumbs.d.mts +40 -0
  13. package/dist/Breadcrumbs.mjs +131 -0
  14. package/dist/Button.cjs +1 -1
  15. package/dist/Button.d.cts +1 -1
  16. package/dist/Button.d.mts +1 -1
  17. package/dist/Button.mjs +1 -1
  18. package/dist/ButtonGroup.d.cts +1 -1
  19. package/dist/ButtonGroup.d.mts +1 -1
  20. package/dist/Card.cjs +3 -3
  21. package/dist/Card.d.cts +4 -3
  22. package/dist/Card.d.mts +4 -3
  23. package/dist/Card.mjs +3 -3
  24. package/dist/Checkbox.d.cts +1 -2
  25. package/dist/Checkbox.d.mts +1 -2
  26. package/dist/CircularProgress.d.cts +2 -3
  27. package/dist/CircularProgress.d.mts +2 -3
  28. package/dist/Drawer.d.cts +3 -2
  29. package/dist/Drawer.d.mts +3 -2
  30. package/dist/Flex.d.cts +1 -1
  31. package/dist/Flex.d.mts +1 -1
  32. package/dist/Form.d.cts +1 -1
  33. package/dist/Form.d.mts +1 -1
  34. package/dist/FormControl.cjs +10 -2
  35. package/dist/FormControl.d.cts +9 -2
  36. package/dist/FormControl.d.mts +9 -2
  37. package/dist/FormControl.mjs +10 -2
  38. package/dist/FormHelperText.d.cts +1 -1
  39. package/dist/FormHelperText.d.mts +1 -1
  40. package/dist/FormLabel.cjs +9 -1
  41. package/dist/FormLabel.d.cts +2 -2
  42. package/dist/FormLabel.d.mts +2 -2
  43. package/dist/FormLabel.mjs +10 -2
  44. package/dist/Grid.d.cts +1 -3
  45. package/dist/Grid.d.mts +1 -3
  46. package/dist/{Icon-CH3asUJu.mjs → Icon-BihOAP4u.mjs} +52 -2
  47. package/dist/{Icon-CI6q2Eyi.cjs → Icon-D-EWsBVg.cjs} +52 -2
  48. package/dist/Icon.cjs +1 -1
  49. package/dist/Icon.d.cts +1 -1
  50. package/dist/Icon.d.mts +1 -1
  51. package/dist/Icon.mjs +1 -1
  52. package/dist/Image.d.cts +1 -2
  53. package/dist/Image.d.mts +1 -2
  54. package/dist/InputRange.cjs +675 -0
  55. package/dist/InputRange.d.cts +79 -0
  56. package/dist/InputRange.d.mts +79 -0
  57. package/dist/InputRange.mjs +673 -0
  58. package/dist/LinearProgress.d.cts +2 -3
  59. package/dist/LinearProgress.d.mts +2 -3
  60. package/dist/Link.cjs +1 -1
  61. package/dist/Link.d.cts +1 -1
  62. package/dist/Link.d.mts +1 -1
  63. package/dist/Link.mjs +1 -1
  64. package/dist/Menu/ContextMenu.cjs +146 -0
  65. package/dist/Menu/ContextMenu.d.cts +52 -0
  66. package/dist/Menu/ContextMenu.d.mts +52 -0
  67. package/dist/Menu/ContextMenu.mjs +145 -0
  68. package/dist/Menu/Menu.cjs +3 -0
  69. package/dist/Menu/Menu.d.cts +2 -0
  70. package/dist/Menu/Menu.d.mts +2 -0
  71. package/dist/Menu/Menu.mjs +2 -0
  72. package/dist/Menu/MenuDivider.cjs +29 -0
  73. package/dist/Menu/MenuDivider.d.cts +12 -0
  74. package/dist/Menu/MenuDivider.d.mts +12 -0
  75. package/dist/Menu/MenuDivider.mjs +28 -0
  76. package/dist/Menu/MenuItems.cjs +29 -0
  77. package/dist/Menu/MenuItems.d.cts +2 -0
  78. package/dist/Menu/MenuItems.d.mts +2 -0
  79. package/dist/Menu/MenuItems.mjs +28 -0
  80. package/dist/Menu/MenuList.cjs +3 -0
  81. package/dist/Menu/MenuList.d.cts +38 -0
  82. package/dist/Menu/MenuList.d.mts +38 -0
  83. package/dist/Menu/MenuList.mjs +2 -0
  84. package/dist/Menu-Cgg-sX4W.cjs +173 -0
  85. package/dist/Menu-CrzHc_cn.mjs +168 -0
  86. package/dist/Menu.cjs +13 -0
  87. package/dist/Menu.d.cts +7 -0
  88. package/dist/Menu.d.mts +7 -0
  89. package/dist/Menu.mjs +6 -0
  90. package/dist/MenuItem-BTP7Ijwi.cjs +673 -0
  91. package/dist/MenuItem-DUn4IZKK.mjs +649 -0
  92. package/dist/MenuItem.cjs +2 -148
  93. package/dist/MenuItem.d.cts +2 -52
  94. package/dist/MenuItem.d.mts +2 -52
  95. package/dist/MenuItem.mjs +1 -147
  96. package/dist/MenuList-B7msJ1IG.mjs +187 -0
  97. package/dist/MenuList-D4imLXAa.cjs +223 -0
  98. package/dist/MenuListContext-DKUOhNyw.d.cts +21 -0
  99. package/dist/MenuListContext-x-7lH4CH.d.mts +21 -0
  100. package/dist/Modal.d.cts +1 -1
  101. package/dist/Modal.d.mts +1 -1
  102. package/dist/NativeSelect.cjs +9 -8
  103. package/dist/NativeSelect.d.cts +3 -4
  104. package/dist/NativeSelect.d.mts +3 -4
  105. package/dist/NativeSelect.mjs +9 -8
  106. package/dist/NumberField.cjs +476 -0
  107. package/dist/NumberField.d.cts +74 -0
  108. package/dist/NumberField.d.mts +74 -0
  109. package/dist/NumberField.mjs +474 -0
  110. package/dist/Pagination/PaginationItem.cjs +1 -1
  111. package/dist/Pagination/PaginationItem.d.cts +1 -1
  112. package/dist/Pagination/PaginationItem.d.mts +1 -1
  113. package/dist/Pagination/PaginationItem.mjs +1 -1
  114. package/dist/Pagination.d.cts +2 -2
  115. package/dist/Pagination.d.mts +2 -2
  116. package/dist/Paper.cjs +1 -1
  117. package/dist/Paper.d.cts +2 -1
  118. package/dist/Paper.d.mts +2 -1
  119. package/dist/Paper.mjs +1 -1
  120. package/dist/{Popover-TpwRSORC.cjs → Popover-CiZfgiKE.cjs} +5 -125
  121. package/dist/Popover-QjM5Z1CR.mjs +133 -0
  122. package/dist/Popover.cjs +1 -1
  123. package/dist/Popover.d.cts +6 -7
  124. package/dist/Popover.d.mts +6 -7
  125. package/dist/Popover.mjs +1 -1
  126. package/dist/Pressable.cjs +1 -1
  127. package/dist/Pressable.d.cts +1 -1
  128. package/dist/Pressable.d.mts +1 -1
  129. package/dist/Pressable.mjs +1 -1
  130. package/dist/Quote.d.cts +2 -3
  131. package/dist/Quote.d.mts +2 -3
  132. package/dist/Radio.d.cts +1 -2
  133. package/dist/Radio.d.mts +1 -2
  134. package/dist/Rating.cjs +373 -0
  135. package/dist/Rating.d.cts +57 -0
  136. package/dist/Rating.d.mts +57 -0
  137. package/dist/Rating.mjs +371 -0
  138. package/dist/Select.cjs +5 -4
  139. package/dist/Select.d.cts +3 -4
  140. package/dist/Select.d.mts +3 -4
  141. package/dist/Select.mjs +7 -6
  142. package/dist/Sidebar/Sidebar.d.cts +1 -1
  143. package/dist/Sidebar/Sidebar.d.mts +1 -1
  144. package/dist/Sidebar/SidebarItem.cjs +1 -1
  145. package/dist/Sidebar/SidebarItem.d.cts +3 -4
  146. package/dist/Sidebar/SidebarItem.d.mts +3 -4
  147. package/dist/Sidebar/SidebarItem.mjs +3 -3
  148. package/dist/Skeleton.d.cts +1 -2
  149. package/dist/Skeleton.d.mts +1 -2
  150. package/dist/Switch.cjs +23 -16
  151. package/dist/Switch.d.cts +2 -3
  152. package/dist/Switch.d.mts +2 -3
  153. package/dist/Switch.mjs +25 -18
  154. package/dist/Table/Table.d.cts +2 -3
  155. package/dist/Table/Table.d.mts +2 -3
  156. package/dist/Table/TableBody.d.cts +1 -2
  157. package/dist/Table/TableBody.d.mts +1 -2
  158. package/dist/Table/TableCell.d.cts +1 -1
  159. package/dist/Table/TableCell.d.mts +1 -1
  160. package/dist/Table/TableContainer.d.cts +1 -3
  161. package/dist/Table/TableContainer.d.mts +1 -3
  162. package/dist/Table/TableControl.d.cts +1 -1
  163. package/dist/Table/TableControl.d.mts +1 -1
  164. package/dist/Table/TableControl.mjs +2 -2
  165. package/dist/Table/TableFooter.d.cts +1 -2
  166. package/dist/Table/TableFooter.d.mts +1 -2
  167. package/dist/Table/TableHead.d.cts +1 -2
  168. package/dist/Table/TableHead.d.mts +1 -2
  169. package/dist/Table/TablePagination.d.cts +2 -2
  170. package/dist/Table/TablePagination.d.mts +2 -2
  171. package/dist/Table/TablePaginationActions.cjs +1 -1
  172. package/dist/Table/TablePaginationActions.d.cts +1 -1
  173. package/dist/Table/TablePaginationActions.d.mts +1 -1
  174. package/dist/Table/TablePaginationActions.mjs +1 -1
  175. package/dist/Table/TableRow.d.cts +1 -2
  176. package/dist/Table/TableRow.d.mts +1 -2
  177. package/dist/Table/TableSortLabel.cjs +1 -1
  178. package/dist/Table/TableSortLabel.d.cts +1 -1
  179. package/dist/Table/TableSortLabel.d.mts +1 -1
  180. package/dist/Table/TableSortLabel.mjs +1 -1
  181. package/dist/Table/hooks.d.cts +1 -1
  182. package/dist/Table/hooks.d.mts +1 -1
  183. package/dist/Table.d.cts +5 -5
  184. package/dist/Table.d.mts +5 -5
  185. package/dist/{TableContext-BeCxbtHH.d.cts → TableContext-DhuRf6Wy.d.mts} +1 -1
  186. package/dist/{TableContext-BiRiYkVZ.d.mts → TableContext-Duj1nVG7.d.cts} +1 -1
  187. package/dist/Tabs/Tab.cjs +306 -0
  188. package/dist/Tabs/Tab.d.cts +62 -0
  189. package/dist/Tabs/Tab.d.mts +62 -0
  190. package/dist/Tabs/Tab.mjs +305 -0
  191. package/dist/Tabs/TabContext.cjs +34 -0
  192. package/dist/Tabs/TabContext.d.cts +20 -0
  193. package/dist/Tabs/TabContext.d.mts +20 -0
  194. package/dist/Tabs/TabContext.mjs +33 -0
  195. package/dist/Tabs/TabList.cjs +31 -0
  196. package/dist/Tabs/TabList.d.cts +11 -0
  197. package/dist/Tabs/TabList.d.mts +11 -0
  198. package/dist/Tabs/TabList.mjs +30 -0
  199. package/dist/Tabs/TabPanel.cjs +40 -0
  200. package/dist/Tabs/TabPanel.d.cts +27 -0
  201. package/dist/Tabs/TabPanel.d.mts +27 -0
  202. package/dist/Tabs/TabPanel.mjs +38 -0
  203. package/dist/Tabs/TabScrollButton.cjs +93 -0
  204. package/dist/Tabs/TabScrollButton.d.cts +2 -0
  205. package/dist/Tabs/TabScrollButton.d.mts +2 -0
  206. package/dist/Tabs/TabScrollButton.mjs +91 -0
  207. package/dist/Tabs/Tabs.cjs +3 -0
  208. package/dist/Tabs/Tabs.d.cts +3 -0
  209. package/dist/Tabs/Tabs.d.mts +3 -0
  210. package/dist/Tabs/Tabs.mjs +2 -0
  211. package/dist/Tabs-BTNOJx5v.mjs +634 -0
  212. package/dist/Tabs-D4tWCq78.cjs +646 -0
  213. package/dist/Tabs.cjs +13 -0
  214. package/dist/Tabs.d.cts +8 -0
  215. package/dist/Tabs.d.mts +8 -0
  216. package/dist/Tabs.mjs +7 -0
  217. package/dist/TabsContext-B_XHbjcS.d.cts +6 -0
  218. package/dist/TabsContext-Dn2kqUwr.d.mts +6 -0
  219. package/dist/TabsValueContext-D40zGCpE.cjs +19 -0
  220. package/dist/TabsValueContext-DvL3inf7.mjs +8 -0
  221. package/dist/TextInput.cjs +4 -4
  222. package/dist/TextInput.d.cts +2 -3
  223. package/dist/TextInput.d.mts +2 -3
  224. package/dist/TextInput.mjs +4 -4
  225. package/dist/ToggleButton/ToggleButton.cjs +1 -1
  226. package/dist/ToggleButton/ToggleButton.d.cts +1 -1
  227. package/dist/ToggleButton/ToggleButton.d.mts +1 -1
  228. package/dist/ToggleButton/ToggleButton.mjs +1 -1
  229. package/dist/ToggleButton/ToggleButtonGroup.cjs +1 -1
  230. package/dist/ToggleButton/ToggleButtonGroup.d.cts +1 -1
  231. package/dist/ToggleButton/ToggleButtonGroup.d.mts +1 -1
  232. package/dist/ToggleButton/ToggleButtonGroup.mjs +1 -1
  233. package/dist/TransferList.cjs +356 -0
  234. package/dist/TransferList.d.cts +67 -0
  235. package/dist/TransferList.d.mts +67 -0
  236. package/dist/TransferList.mjs +354 -0
  237. package/dist/Typography.cjs +1 -1
  238. package/dist/Typography.d.cts +2 -2
  239. package/dist/Typography.d.mts +2 -2
  240. package/dist/Typography.mjs +1 -1
  241. package/dist/View.d.cts +1 -1
  242. package/dist/View.d.mts +1 -1
  243. package/dist/catalog.cjs +4568 -0
  244. package/dist/catalog.d.cts +90 -0
  245. package/dist/catalog.d.mts +90 -0
  246. package/dist/catalog.mjs +4567 -0
  247. package/dist/computePopoverPosition-BIprs_xo.mjs +123 -0
  248. package/dist/computePopoverPosition-DiyEOHnU.cjs +128 -0
  249. package/dist/dividerLine-BNljcGlv.cjs +66 -0
  250. package/dist/dividerLine-FahY-M6_.mjs +31 -0
  251. package/dist/engine.d.cts +1 -1
  252. package/dist/engine.d.mts +1 -1
  253. package/dist/index-B1RFybA_.d.mts +72 -0
  254. package/dist/index-B4TeaB7b.d.cts +72 -0
  255. package/dist/{index-BUoVTCqX.d.mts → index-BGbTuHP9.d.mts} +1 -2
  256. package/dist/{index-Celm-8iN.d.cts → index-BHKgEOZJ.d.cts} +2 -3
  257. package/dist/{index-Chg6pSrr.d.mts → index-BQWjh4rK.d.mts} +2 -3
  258. package/dist/{index-B78VkB0-.d.cts → index-BelFIizY.d.cts} +2 -3
  259. package/dist/index-BkzZxHVj.d.mts +35 -0
  260. package/dist/{index-DbEnSf2m.d.cts → index-BrgwkY6z.d.mts} +3 -4
  261. package/dist/{index-Wnv6jCR3.d.mts → index-Bx0-6yeX.d.mts} +1 -2
  262. package/dist/index-BxVTIMnB.d.cts +1 -0
  263. package/dist/{index-BfZuh9c2.d.mts → index-ByYxVl9O.d.mts} +2 -3
  264. package/dist/index-CE5JG1us.d.mts +34 -0
  265. package/dist/{index-BhibLnZ0.d.cts → index-CG_1uPrD.d.mts} +2 -3
  266. package/dist/{themes-RX2UX5gD.d.mts → index-CJhK7JND.d.mts} +265 -8
  267. package/dist/{index-BB-dLv5V.d.mts → index-CQfJZADG.d.cts} +3 -4
  268. package/dist/{index-CxUsrlg1.d.cts → index-CUz2h5xY.d.mts} +2 -3
  269. package/dist/{index-Bid71KeF.d.cts → index-CbFaWtjK.d.mts} +2 -2
  270. package/dist/{index-DdqdSOct.d.cts → index-ChXeKJCk.d.cts} +1 -2
  271. package/dist/index-CknoXDLQ.d.cts +35 -0
  272. package/dist/{index-BSqet8aO.d.cts → index-ClZyaZrR.d.mts} +2 -3
  273. package/dist/{index-DXvQ-JVZ.d.mts → index-DAwcmIjN.d.cts} +2 -3
  274. package/dist/index-DGnXJwLj.d.mts +72 -0
  275. package/dist/{themes-Kbk9h5cN.d.cts → index-DJ0f69wh.d.cts} +262 -5
  276. package/dist/index-DWjz5ZzG.d.cts +72 -0
  277. package/dist/{index-DNwF3DUX.d.cts → index-DYF8sRE-.d.cts} +2 -3
  278. package/dist/index-DaIIo5QU.d.mts +1 -0
  279. package/dist/{index-CrN4MSUF.d.cts → index-DchHf5cF.d.cts} +1 -1
  280. package/dist/{index-S-ClM6WM.d.mts → index-DtYjdBvO.d.cts} +2 -2
  281. package/dist/{index-Ctqajtac.d.cts → index-Dv_fk1_F.d.cts} +27 -3
  282. package/dist/{index-smqjMLAZ.d.mts → index-K5exjvnX.d.cts} +2 -3
  283. package/dist/index-KnXhlKMr.d.cts +34 -0
  284. package/dist/index-WHFhjfgy.d.cts +98 -0
  285. package/dist/{index-GpnmW6vu.d.mts → index-YKrfFC_I.d.cts} +2 -3
  286. package/dist/index-bpnLB_4K.d.mts +98 -0
  287. package/dist/{index-VOsBSWEu.d.mts → index-h4dYtVrp.d.mts} +1 -1
  288. package/dist/{index-DO9J-Fla.d.mts → index-ha1WjSZ5.d.mts} +27 -3
  289. package/dist/{index-Belxmt1X.d.cts → index-nqUA_6J_.d.cts} +1 -2
  290. package/dist/{index-nc4Sxiy9.d.mts → index-pTNq3iQn.d.mts} +2 -3
  291. package/dist/index.d.cts +1 -2
  292. package/dist/index.d.mts +1 -2
  293. package/dist/isRtl-BJDtm86G.mjs +7 -0
  294. package/dist/isRtl-DTkYHRPo.cjs +12 -0
  295. package/dist/precision-B1lhxnnO.mjs +25 -0
  296. package/dist/precision-B58cTPB2.cjs +48 -0
  297. package/dist/style.cjs +1 -1
  298. package/dist/style.d.cts +2 -2
  299. package/dist/style.d.mts +2 -2
  300. package/dist/style.mjs +1 -1
  301. package/dist/surfaceSystem-BGQBoXv_.cjs +38 -0
  302. package/dist/surfaceSystem-D8TbmKy3.mjs +21 -0
  303. package/dist/theme-BxXuXRgQ.cjs +137 -0
  304. package/dist/theme-Z9_QludW.mjs +102 -0
  305. package/dist/theme.cjs +25 -24
  306. package/dist/theme.d.cts +3 -3
  307. package/dist/theme.d.mts +3 -3
  308. package/dist/theme.mjs +2 -1
  309. package/dist/{theme-CDVxig_g.mjs → themes-L-dE7_ck.mjs} +10 -110
  310. package/dist/{theme-BXlAP3xf.cjs → themes-gd6tcmqS.cjs} +0 -136
  311. package/dist/useControlled-C666KpQ0.cjs +18 -0
  312. package/dist/useControlled-CBRLsO-H.mjs +13 -0
  313. package/dist/{useTablePagination-COTiNH_8.d.mts → useTablePagination-C-u3ru4N.d.cts} +1 -1
  314. package/dist/{useTablePagination-WFkaUZu8.d.cts → useTablePagination-D-39ZmQh.d.mts} +1 -1
  315. package/package.json +83 -2
  316. package/dist/Popover-DwnSLpp1.mjs +0 -253
  317. package/dist/index-B_dKjEDR.d.mts +0 -23
  318. package/dist/index-C1WqEDtQ.d.mts +0 -69
  319. package/dist/index-CA7HnbtH.d.cts +0 -21
  320. package/dist/index-CKZaErxJ.d.mts +0 -21
  321. package/dist/index-DBUwu65Z.d.cts +0 -69
  322. package/dist/index-DzQJSYIh.d.cts +0 -23
  323. package/dist/index-cuv3o-L7.d.mts +0 -34
  324. package/dist/index-nB94D7UM.d.cts +0 -34
@@ -0,0 +1,137 @@
1
+ const require_themes = require("./themes-gd6tcmqS.cjs");
2
+ let react = require("react");
3
+ let react_jsx_runtime = require("react/jsx-runtime");
4
+ let _emotion_react = require("@emotion/react");
5
+ //#region src/theme/utils/createTheme.ts
6
+ const isPlainObject = (value) => typeof value === "object" && value !== null && !Array.isArray(value);
7
+ const deepMerge = (base, overrides) => {
8
+ const merged = { ...base };
9
+ for (const [key, value] of Object.entries(overrides)) {
10
+ if (value === void 0) continue;
11
+ const baseValue = merged[key];
12
+ merged[key] = isPlainObject(baseValue) && isPlainObject(value) ? deepMerge(baseValue, value) : value;
13
+ }
14
+ return merged;
15
+ };
16
+ /**
17
+ * Builds a theme by deep-merging sparse `overrides` onto `base`.
18
+ *
19
+ * - Recurses only where both sides are plain objects; arrays (`shadows`,
20
+ * `fontSizes`) and functions replace wholesale.
21
+ * - `undefined` override values are ignored - a key can be added or replaced,
22
+ * never removed.
23
+ * - Neither argument is mutated; untouched branches keep referential identity.
24
+ * - `breakpoints` gets its query helpers back, built from the merged sizes.
25
+ */
26
+ const createTheme = (base, overrides) => {
27
+ const theme = deepMerge(base, overrides);
28
+ return withHelpers(theme);
29
+ };
30
+ /** A theme whose `breakpoints` carry the query helpers - added when a hand-built theme lacks them. */
31
+ const withHelpers = (theme) => theme.breakpoints && !("up" in theme.breakpoints) ? {
32
+ ...theme,
33
+ breakpoints: require_themes.withBreakpointHelpers(theme.breakpoints)
34
+ } : theme;
35
+ //#endregion
36
+ //#region src/theme/ThemeProvider.tsx
37
+ function ThemeProvider({ children, theme = require_themes.baseTheme, defaults }) {
38
+ const value = (0, react.useMemo)(() => defaults ? createTheme(theme, { defaults }) : withHelpers(theme), [theme, defaults]);
39
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_emotion_react.ThemeProvider, {
40
+ theme: value,
41
+ children
42
+ });
43
+ }
44
+ //#endregion
45
+ //#region src/theme/LayoutProvider.tsx
46
+ const pageLayout = (theme, layout) => {
47
+ const page = layout;
48
+ let carried = {};
49
+ const merged = {};
50
+ for (const key of Object.keys(theme.breakpoints)) {
51
+ carried = deepMerge(carried, page[key] ?? {});
52
+ if (Object.keys(carried).length > 0) merged[key] = carried;
53
+ }
54
+ return merged;
55
+ };
56
+ /**
57
+ * @description A page-level layout: everything inside sees `theme.layout` with the page's
58
+ * values merged on top - `View`, `Flex` and `Grid` with `layout`, and `useTheme().layout`. It
59
+ * derives the theme from the one around it and changes nothing else, so colours, light/dark
60
+ * switching and every other token stay the app theme's. Nested providers stack.
61
+ */
62
+ function LayoutProvider({ layout, children }) {
63
+ const derive = (0, react.useCallback)((outer) => {
64
+ const theme = "breakpoints" in outer ? outer : require_themes.baseTheme;
65
+ return createTheme(theme, { layout: pageLayout(theme, layout) });
66
+ }, [layout]);
67
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_emotion_react.ThemeProvider, {
68
+ theme: derive,
69
+ children
70
+ });
71
+ }
72
+ //#endregion
73
+ //#region src/theme/hooks/useTheme.ts
74
+ /**
75
+ * The active theme, typed as this package's own `Theme` - Emotion is an
76
+ * internal implementation detail, never part of the public type surface.
77
+ */
78
+ const useTheme = () => (0, _emotion_react.useTheme)();
79
+ //#endregion
80
+ //#region src/theme/hooks/useDefaultProps.ts
81
+ /**
82
+ * The theme-contributed default prop values for a component
83
+ * (`theme.components[name].defaultProps`), or an empty object.
84
+ *
85
+ * Components apply it as one step of the default-resolution chain:
86
+ * explicit prop → group context → `useDefaultProps` → `theme.defaults.*` → literal fallback.
87
+ */
88
+ function useDefaultProps(name) {
89
+ return useTheme().components?.[name]?.defaultProps ?? {};
90
+ }
91
+ //#endregion
92
+ //#region src/theme/hoc/withTheme.tsx
93
+ function withTheme(WrappedComponent) {
94
+ return function WithTheme(props) {
95
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_emotion_react.ThemeContext.Consumer, { children: (theme) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(WrappedComponent, {
96
+ ...props,
97
+ theme
98
+ }) });
99
+ };
100
+ }
101
+ //#endregion
102
+ Object.defineProperty(exports, "LayoutProvider", {
103
+ enumerable: true,
104
+ get: function() {
105
+ return LayoutProvider;
106
+ }
107
+ });
108
+ Object.defineProperty(exports, "ThemeProvider", {
109
+ enumerable: true,
110
+ get: function() {
111
+ return ThemeProvider;
112
+ }
113
+ });
114
+ Object.defineProperty(exports, "createTheme", {
115
+ enumerable: true,
116
+ get: function() {
117
+ return createTheme;
118
+ }
119
+ });
120
+ Object.defineProperty(exports, "useDefaultProps", {
121
+ enumerable: true,
122
+ get: function() {
123
+ return useDefaultProps;
124
+ }
125
+ });
126
+ Object.defineProperty(exports, "useTheme", {
127
+ enumerable: true,
128
+ get: function() {
129
+ return useTheme;
130
+ }
131
+ });
132
+ Object.defineProperty(exports, "withTheme", {
133
+ enumerable: true,
134
+ get: function() {
135
+ return withTheme;
136
+ }
137
+ });
@@ -0,0 +1,102 @@
1
+ import { C as withBreakpointHelpers, n as baseTheme } from "./themes-L-dE7_ck.mjs";
2
+ import { a as useEmotionTheme, n as EmotionThemeContext, r as EmotionThemeProvider } from "./emotion-BAyqVw0c.mjs";
3
+ import { useCallback, useMemo } from "react";
4
+ import { jsx } from "react/jsx-runtime";
5
+ //#region src/theme/utils/createTheme.ts
6
+ const isPlainObject = (value) => typeof value === "object" && value !== null && !Array.isArray(value);
7
+ const deepMerge = (base, overrides) => {
8
+ const merged = { ...base };
9
+ for (const [key, value] of Object.entries(overrides)) {
10
+ if (value === void 0) continue;
11
+ const baseValue = merged[key];
12
+ merged[key] = isPlainObject(baseValue) && isPlainObject(value) ? deepMerge(baseValue, value) : value;
13
+ }
14
+ return merged;
15
+ };
16
+ /**
17
+ * Builds a theme by deep-merging sparse `overrides` onto `base`.
18
+ *
19
+ * - Recurses only where both sides are plain objects; arrays (`shadows`,
20
+ * `fontSizes`) and functions replace wholesale.
21
+ * - `undefined` override values are ignored - a key can be added or replaced,
22
+ * never removed.
23
+ * - Neither argument is mutated; untouched branches keep referential identity.
24
+ * - `breakpoints` gets its query helpers back, built from the merged sizes.
25
+ */
26
+ const createTheme = (base, overrides) => {
27
+ const theme = deepMerge(base, overrides);
28
+ return withHelpers(theme);
29
+ };
30
+ /** A theme whose `breakpoints` carry the query helpers - added when a hand-built theme lacks them. */
31
+ const withHelpers = (theme) => theme.breakpoints && !("up" in theme.breakpoints) ? {
32
+ ...theme,
33
+ breakpoints: withBreakpointHelpers(theme.breakpoints)
34
+ } : theme;
35
+ //#endregion
36
+ //#region src/theme/ThemeProvider.tsx
37
+ function ThemeProvider({ children, theme = baseTheme, defaults }) {
38
+ const value = useMemo(() => defaults ? createTheme(theme, { defaults }) : withHelpers(theme), [theme, defaults]);
39
+ return /* @__PURE__ */ jsx(EmotionThemeProvider, {
40
+ theme: value,
41
+ children
42
+ });
43
+ }
44
+ //#endregion
45
+ //#region src/theme/LayoutProvider.tsx
46
+ const pageLayout = (theme, layout) => {
47
+ const page = layout;
48
+ let carried = {};
49
+ const merged = {};
50
+ for (const key of Object.keys(theme.breakpoints)) {
51
+ carried = deepMerge(carried, page[key] ?? {});
52
+ if (Object.keys(carried).length > 0) merged[key] = carried;
53
+ }
54
+ return merged;
55
+ };
56
+ /**
57
+ * @description A page-level layout: everything inside sees `theme.layout` with the page's
58
+ * values merged on top - `View`, `Flex` and `Grid` with `layout`, and `useTheme().layout`. It
59
+ * derives the theme from the one around it and changes nothing else, so colours, light/dark
60
+ * switching and every other token stay the app theme's. Nested providers stack.
61
+ */
62
+ function LayoutProvider({ layout, children }) {
63
+ const derive = useCallback((outer) => {
64
+ const theme = "breakpoints" in outer ? outer : baseTheme;
65
+ return createTheme(theme, { layout: pageLayout(theme, layout) });
66
+ }, [layout]);
67
+ return /* @__PURE__ */ jsx(EmotionThemeProvider, {
68
+ theme: derive,
69
+ children
70
+ });
71
+ }
72
+ //#endregion
73
+ //#region src/theme/hooks/useTheme.ts
74
+ /**
75
+ * The active theme, typed as this package's own `Theme` - Emotion is an
76
+ * internal implementation detail, never part of the public type surface.
77
+ */
78
+ const useTheme = () => useEmotionTheme();
79
+ //#endregion
80
+ //#region src/theme/hooks/useDefaultProps.ts
81
+ /**
82
+ * The theme-contributed default prop values for a component
83
+ * (`theme.components[name].defaultProps`), or an empty object.
84
+ *
85
+ * Components apply it as one step of the default-resolution chain:
86
+ * explicit prop → group context → `useDefaultProps` → `theme.defaults.*` → literal fallback.
87
+ */
88
+ function useDefaultProps(name) {
89
+ return useTheme().components?.[name]?.defaultProps ?? {};
90
+ }
91
+ //#endregion
92
+ //#region src/theme/hoc/withTheme.tsx
93
+ function withTheme(WrappedComponent) {
94
+ return function WithTheme(props) {
95
+ return /* @__PURE__ */ jsx(EmotionThemeContext.Consumer, { children: (theme) => /* @__PURE__ */ jsx(WrappedComponent, {
96
+ ...props,
97
+ theme
98
+ }) });
99
+ };
100
+ }
101
+ //#endregion
102
+ export { ThemeProvider as a, LayoutProvider as i, useDefaultProps as n, createTheme as o, useTheme as r, withTheme as t };
package/dist/theme.cjs CHANGED
@@ -1,33 +1,34 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
2
  const require_themeDefault = require("./themeDefault-Cebi08Cv.cjs");
3
- const require_theme = require("./theme-BXlAP3xf.cjs");
3
+ const require_themes = require("./themes-gd6tcmqS.cjs");
4
+ const require_theme = require("./theme-BxXuXRgQ.cjs");
4
5
  exports.LayoutProvider = require_theme.LayoutProvider;
5
6
  exports.ThemeProvider = require_theme.ThemeProvider;
6
- exports.avatar = require_theme.avatar;
7
- exports.baseTheme = require_theme.baseTheme;
8
- exports.between = require_theme.between;
9
- exports.borderWidths = require_theme.borderWidths;
10
- exports.breakpoints = require_theme.breakpoints;
11
- exports.containerQueries = require_theme.containerQueries;
7
+ exports.avatar = require_themes.avatar;
8
+ exports.baseTheme = require_themes.baseTheme;
9
+ exports.between = require_themes.between;
10
+ exports.borderWidths = require_themes.borderWidths;
11
+ exports.breakpoints = require_themes.breakpoints;
12
+ exports.containerQueries = require_themes.containerQueries;
12
13
  exports.createTheme = require_theme.createTheme;
13
- exports.down = require_theme.down;
14
- exports.fontSizes = require_theme.fontSizes;
15
- exports.fontWeights = require_theme.fontWeights;
16
- exports.fonts = require_theme.fonts;
17
- exports.icon = require_theme.icon;
18
- exports.layout = require_theme.layout;
19
- exports.letterSpacings = require_theme.letterSpacings;
20
- exports.lineHeights = require_theme.lineHeights;
21
- exports.not = require_theme.not;
22
- exports.only = require_theme.only;
23
- exports.radii = require_theme.radii;
24
- exports.sizes = require_theme.sizes;
25
- exports.space = require_theme.space;
14
+ exports.down = require_themes.down;
15
+ exports.fontSizes = require_themes.fontSizes;
16
+ exports.fontWeights = require_themes.fontWeights;
17
+ exports.fonts = require_themes.fonts;
18
+ exports.icon = require_themes.icon;
19
+ exports.layout = require_themes.layout;
20
+ exports.letterSpacings = require_themes.letterSpacings;
21
+ exports.lineHeights = require_themes.lineHeights;
22
+ exports.not = require_themes.not;
23
+ exports.only = require_themes.only;
24
+ exports.radii = require_themes.radii;
25
+ exports.sizes = require_themes.sizes;
26
+ exports.space = require_themes.space;
26
27
  exports.themeDefault = require_themeDefault.themeDefault;
27
- exports.typography = require_theme.typography;
28
- exports.up = require_theme.up;
28
+ exports.typography = require_themes.typography;
29
+ exports.up = require_themes.up;
29
30
  exports.useDefaultProps = require_theme.useDefaultProps;
30
31
  exports.useTheme = require_theme.useTheme;
31
- exports.withBreakpointHelpers = require_theme.withBreakpointHelpers;
32
+ exports.withBreakpointHelpers = require_themes.withBreakpointHelpers;
32
33
  exports.withTheme = require_theme.withTheme;
33
- exports.zOrder = require_theme.zOrder;
34
+ exports.zOrder = require_themes.zOrder;
package/dist/theme.d.cts CHANGED
@@ -1,3 +1,3 @@
1
- import { $ as between, A as ThemeBreakpoints, B as ThemeRadii, C as PressableOwnerState, Ct as withBreakpointHelpers, D as ThemeBackground, E as ThemeAvatarSizes, F as ThemeIconSizes, G as ThemeSwitch, H as ThemeSizes, I as ThemeLayout, J as ThemeZOrder, K as ThemeText, L as ThemeLetterSpacings, M as ThemeDefaults, N as ThemeFontWeights, O as ThemeBorder, P as ThemeFonts, Q as baseTheme, R as ThemeLineHeights, S as PaletteEntry, St as BreakpointHelpers, T as Theme, U as ThemeSkeleton, V as ThemeShadow, W as ThemeSpace, X as TypographyVariantStyle, Y as TypographyVariant, Z as avatar, _ as LayoutPanel, _t as up, a as CSSObject, at as fontWeights, b as OpenScale, bt as ThemeOverride, c as CardSlotTypographyProps, ct as layout, d as ComponentVariant, dt as not, et as borderWidths, f as DefaultBreakpoints, ft as only, g as LayoutLength, gt as typography, h as LayoutEntry, ht as space, i as ButtonVariants, it as fontSizes, j as ThemeComponents, k as ThemeBorderWidths, l as ComponentConfig, lt as letterSpacings, m as LayoutContent, mt as sizes, n as BreakpointOverrides, nt as containerQueries, o as CardOwnerState, ot as fonts, p as LayoutBars, pt as radii, q as ThemeTypographyVariants, r as ButtonOwnerState, rt as down, s as CardSlotIconProps, st as icon, t as BreakpointKey, tt as breakpoints, u as ComponentStyle, ut as lineHeights, v as LayoutPanels, vt as zOrder, w as SizeEntry, x as PaletteColor, xt as createTheme, y as LayoutSpace, yt as DeepPartial, z as ThemePalette } from "./themes-Kbk9h5cN.cjs";
2
- import { a as LayoutProvider, i as themeDefault, n as useDefaultProps, o as LayoutProviderProps, r as useTheme, s as ThemeProvider, t as withTheme } from "./index-CrN4MSUF.cjs";
3
- export { BreakpointHelpers, BreakpointKey, BreakpointOverrides, ButtonOwnerState, ButtonVariants, CSSObject, CardOwnerState, CardSlotIconProps, CardSlotTypographyProps, ComponentConfig, ComponentStyle, ComponentVariant, type DeepPartial, DefaultBreakpoints, LayoutBars, LayoutContent, LayoutEntry, LayoutLength, LayoutPanel, LayoutPanels, LayoutProvider, LayoutProviderProps, LayoutSpace, OpenScale, PaletteColor, PaletteEntry, PressableOwnerState, SizeEntry, Theme, ThemeAvatarSizes, ThemeBackground, ThemeBorder, ThemeBorderWidths, ThemeBreakpoints, ThemeComponents, ThemeDefaults, ThemeFontWeights, ThemeFonts, ThemeIconSizes, ThemeLayout, ThemeLetterSpacings, ThemeLineHeights, type ThemeOverride, ThemePalette, ThemeProvider, ThemeRadii, ThemeShadow, ThemeSizes, ThemeSkeleton, ThemeSpace, ThemeSwitch, ThemeText, ThemeTypographyVariants, ThemeZOrder, TypographyVariant, TypographyVariantStyle, avatar, baseTheme, between, borderWidths, breakpoints, containerQueries, createTheme, down, fontSizes, fontWeights, fonts, icon, layout, letterSpacings, lineHeights, not, only, radii, sizes, space, themeDefault, typography, up, useDefaultProps, useTheme, withBreakpointHelpers, withTheme, zOrder };
1
+ import { $ as ThemeFonts, A as MenuListOwnerState, At as lineHeights, B as TabPanelOwnerState, Bt as ThemeOverride, C as LayoutContent, Ct as down, D as LayoutPanels, Dt as icon, E as LayoutPanel, Et as fonts, F as PaletteEntry, Ft as space, G as ThemeAvatarSizes, H as TabsOwnerState, Ht as BreakpointHelpers, I as PressableOwnerState, It as typography, J as ThemeBorderWidths, K as ThemeBackground, L as RatingOwnerState, Lt as up, M as NumberFieldOwnerState, Mt as only, N as OpenScale, Nt as radii, O as LayoutSpace, Ot as layout, P as PaletteColor, Pt as sizes, Q as ThemeFontWeights, R as SizeEntry, Rt as zOrder, S as LayoutBars, St as containerQueries, T as LayoutLength, Tt as fontWeights, U as TabsVariants, Ut as withBreakpointHelpers, V as TabScrollButtonOwnerState, Vt as createTheme, W as Theme, X as ThemeComponents, Y as ThemeBreakpoints, Z as ThemeDefaults, _ as ComponentStyle, _t as avatar, at as ThemeRadii, b as DefaultBreakpoints, bt as borderWidths, c as BreakpointKey, ct as ThemeSkeleton, d as ButtonVariants, dt as ThemeText, et as ThemeIconSizes, f as CSSObject, ft as ThemeTypographyVariants, g as ComponentConfig, gt as TypographyVariantStyle, h as CardSlotTypographyProps, ht as TypographyVariant, it as ThemePalette, j as MenuOwnerState, jt as not, k as MenuItemOwnerState, kt as letterSpacings, l as BreakpointOverrides, lt as ThemeSpace, m as CardSlotIconProps, mt as TransferListOwnerState, nt as ThemeLetterSpacings, ot as ThemeShadow, p as CardOwnerState, pt as ThemeZOrder, q as ThemeBorder, rt as ThemeLineHeights, s as BreadcrumbsOwnerState, st as ThemeSizes, tt as ThemeLayout, u as ButtonOwnerState, ut as ThemeSwitch, v as ComponentVariant, vt as baseTheme, w as LayoutEntry, wt as fontSizes, x as InputRangeOwnerState, xt as breakpoints, y as ContextMenuOwnerState, yt as between, z as TabOwnerState, zt as DeepPartial } from "./index-DJ0f69wh.cjs";
2
+ import { a as LayoutProvider, i as themeDefault, n as useDefaultProps, o as LayoutProviderProps, r as useTheme, s as ThemeProvider, t as withTheme } from "./index-DchHf5cF.cjs";
3
+ export { BreadcrumbsOwnerState, BreakpointHelpers, BreakpointKey, BreakpointOverrides, ButtonOwnerState, ButtonVariants, CSSObject, CardOwnerState, CardSlotIconProps, CardSlotTypographyProps, ComponentConfig, ComponentStyle, ComponentVariant, ContextMenuOwnerState, type DeepPartial, DefaultBreakpoints, InputRangeOwnerState, LayoutBars, LayoutContent, LayoutEntry, LayoutLength, LayoutPanel, LayoutPanels, LayoutProvider, LayoutProviderProps, LayoutSpace, MenuItemOwnerState, MenuListOwnerState, MenuOwnerState, NumberFieldOwnerState, OpenScale, PaletteColor, PaletteEntry, PressableOwnerState, RatingOwnerState, SizeEntry, TabOwnerState, TabPanelOwnerState, TabScrollButtonOwnerState, TabsOwnerState, TabsVariants, Theme, ThemeAvatarSizes, ThemeBackground, ThemeBorder, ThemeBorderWidths, ThemeBreakpoints, ThemeComponents, ThemeDefaults, ThemeFontWeights, ThemeFonts, ThemeIconSizes, ThemeLayout, ThemeLetterSpacings, ThemeLineHeights, type ThemeOverride, ThemePalette, ThemeProvider, ThemeRadii, ThemeShadow, ThemeSizes, ThemeSkeleton, ThemeSpace, ThemeSwitch, ThemeText, ThemeTypographyVariants, ThemeZOrder, TransferListOwnerState, TypographyVariant, TypographyVariantStyle, avatar, baseTheme, between, borderWidths, breakpoints, containerQueries, createTheme, down, fontSizes, fontWeights, fonts, icon, layout, letterSpacings, lineHeights, not, only, radii, sizes, space, themeDefault, typography, up, useDefaultProps, useTheme, withBreakpointHelpers, withTheme, zOrder };
package/dist/theme.d.mts CHANGED
@@ -1,3 +1,3 @@
1
- import { $ as between, A as ThemeBreakpoints, B as ThemeRadii, C as PressableOwnerState, Ct as withBreakpointHelpers, D as ThemeBackground, E as ThemeAvatarSizes, F as ThemeIconSizes, G as ThemeSwitch, H as ThemeSizes, I as ThemeLayout, J as ThemeZOrder, K as ThemeText, L as ThemeLetterSpacings, M as ThemeDefaults, N as ThemeFontWeights, O as ThemeBorder, P as ThemeFonts, Q as baseTheme, R as ThemeLineHeights, S as PaletteEntry, St as BreakpointHelpers, T as Theme, U as ThemeSkeleton, V as ThemeShadow, W as ThemeSpace, X as TypographyVariantStyle, Y as TypographyVariant, Z as avatar, _ as LayoutPanel, _t as up, a as CSSObject, at as fontWeights, b as OpenScale, bt as ThemeOverride, c as CardSlotTypographyProps, ct as layout, d as ComponentVariant, dt as not, et as borderWidths, f as DefaultBreakpoints, ft as only, g as LayoutLength, gt as typography, h as LayoutEntry, ht as space, i as ButtonVariants, it as fontSizes, j as ThemeComponents, k as ThemeBorderWidths, l as ComponentConfig, lt as letterSpacings, m as LayoutContent, mt as sizes, n as BreakpointOverrides, nt as containerQueries, o as CardOwnerState, ot as fonts, p as LayoutBars, pt as radii, q as ThemeTypographyVariants, r as ButtonOwnerState, rt as down, s as CardSlotIconProps, st as icon, t as BreakpointKey, tt as breakpoints, u as ComponentStyle, ut as lineHeights, v as LayoutPanels, vt as zOrder, w as SizeEntry, x as PaletteColor, xt as createTheme, y as LayoutSpace, yt as DeepPartial, z as ThemePalette } from "./themes-RX2UX5gD.mjs";
2
- import { a as LayoutProvider, i as themeDefault, n as useDefaultProps, o as LayoutProviderProps, r as useTheme, s as ThemeProvider, t as withTheme } from "./index-VOsBSWEu.mjs";
3
- export { BreakpointHelpers, BreakpointKey, BreakpointOverrides, ButtonOwnerState, ButtonVariants, CSSObject, CardOwnerState, CardSlotIconProps, CardSlotTypographyProps, ComponentConfig, ComponentStyle, ComponentVariant, type DeepPartial, DefaultBreakpoints, LayoutBars, LayoutContent, LayoutEntry, LayoutLength, LayoutPanel, LayoutPanels, LayoutProvider, LayoutProviderProps, LayoutSpace, OpenScale, PaletteColor, PaletteEntry, PressableOwnerState, SizeEntry, Theme, ThemeAvatarSizes, ThemeBackground, ThemeBorder, ThemeBorderWidths, ThemeBreakpoints, ThemeComponents, ThemeDefaults, ThemeFontWeights, ThemeFonts, ThemeIconSizes, ThemeLayout, ThemeLetterSpacings, ThemeLineHeights, type ThemeOverride, ThemePalette, ThemeProvider, ThemeRadii, ThemeShadow, ThemeSizes, ThemeSkeleton, ThemeSpace, ThemeSwitch, ThemeText, ThemeTypographyVariants, ThemeZOrder, TypographyVariant, TypographyVariantStyle, avatar, baseTheme, between, borderWidths, breakpoints, containerQueries, createTheme, down, fontSizes, fontWeights, fonts, icon, layout, letterSpacings, lineHeights, not, only, radii, sizes, space, themeDefault, typography, up, useDefaultProps, useTheme, withBreakpointHelpers, withTheme, zOrder };
1
+ import { $ as ThemeFonts, A as MenuListOwnerState, At as lineHeights, B as TabPanelOwnerState, Bt as ThemeOverride, C as LayoutContent, Ct as down, D as LayoutPanels, Dt as icon, E as LayoutPanel, Et as fonts, F as PaletteEntry, Ft as space, G as ThemeAvatarSizes, H as TabsOwnerState, Ht as BreakpointHelpers, I as PressableOwnerState, It as typography, J as ThemeBorderWidths, K as ThemeBackground, L as RatingOwnerState, Lt as up, M as NumberFieldOwnerState, Mt as only, N as OpenScale, Nt as radii, O as LayoutSpace, Ot as layout, P as PaletteColor, Pt as sizes, Q as ThemeFontWeights, R as SizeEntry, Rt as zOrder, S as LayoutBars, St as containerQueries, T as LayoutLength, Tt as fontWeights, U as TabsVariants, Ut as withBreakpointHelpers, V as TabScrollButtonOwnerState, Vt as createTheme, W as Theme, X as ThemeComponents, Y as ThemeBreakpoints, Z as ThemeDefaults, _ as ComponentStyle, _t as avatar, at as ThemeRadii, b as DefaultBreakpoints, bt as borderWidths, c as BreakpointKey, ct as ThemeSkeleton, d as ButtonVariants, dt as ThemeText, et as ThemeIconSizes, f as CSSObject, ft as ThemeTypographyVariants, g as ComponentConfig, gt as TypographyVariantStyle, h as CardSlotTypographyProps, ht as TypographyVariant, it as ThemePalette, j as MenuOwnerState, jt as not, k as MenuItemOwnerState, kt as letterSpacings, l as BreakpointOverrides, lt as ThemeSpace, m as CardSlotIconProps, mt as TransferListOwnerState, nt as ThemeLetterSpacings, ot as ThemeShadow, p as CardOwnerState, pt as ThemeZOrder, q as ThemeBorder, rt as ThemeLineHeights, s as BreadcrumbsOwnerState, st as ThemeSizes, tt as ThemeLayout, u as ButtonOwnerState, ut as ThemeSwitch, v as ComponentVariant, vt as baseTheme, w as LayoutEntry, wt as fontSizes, x as InputRangeOwnerState, xt as breakpoints, y as ContextMenuOwnerState, yt as between, z as TabOwnerState, zt as DeepPartial } from "./index-CJhK7JND.mjs";
2
+ import { a as LayoutProvider, i as themeDefault, n as useDefaultProps, o as LayoutProviderProps, r as useTheme, s as ThemeProvider, t as withTheme } from "./index-h4dYtVrp.mjs";
3
+ export { BreadcrumbsOwnerState, BreakpointHelpers, BreakpointKey, BreakpointOverrides, ButtonOwnerState, ButtonVariants, CSSObject, CardOwnerState, CardSlotIconProps, CardSlotTypographyProps, ComponentConfig, ComponentStyle, ComponentVariant, ContextMenuOwnerState, type DeepPartial, DefaultBreakpoints, InputRangeOwnerState, LayoutBars, LayoutContent, LayoutEntry, LayoutLength, LayoutPanel, LayoutPanels, LayoutProvider, LayoutProviderProps, LayoutSpace, MenuItemOwnerState, MenuListOwnerState, MenuOwnerState, NumberFieldOwnerState, OpenScale, PaletteColor, PaletteEntry, PressableOwnerState, RatingOwnerState, SizeEntry, TabOwnerState, TabPanelOwnerState, TabScrollButtonOwnerState, TabsOwnerState, TabsVariants, Theme, ThemeAvatarSizes, ThemeBackground, ThemeBorder, ThemeBorderWidths, ThemeBreakpoints, ThemeComponents, ThemeDefaults, ThemeFontWeights, ThemeFonts, ThemeIconSizes, ThemeLayout, ThemeLetterSpacings, ThemeLineHeights, type ThemeOverride, ThemePalette, ThemeProvider, ThemeRadii, ThemeShadow, ThemeSizes, ThemeSkeleton, ThemeSpace, ThemeSwitch, ThemeText, ThemeTypographyVariants, ThemeZOrder, TransferListOwnerState, TypographyVariant, TypographyVariantStyle, avatar, baseTheme, between, borderWidths, breakpoints, containerQueries, createTheme, down, fontSizes, fontWeights, fonts, icon, layout, letterSpacings, lineHeights, not, only, radii, sizes, space, themeDefault, typography, up, useDefaultProps, useTheme, withBreakpointHelpers, withTheme, zOrder };
package/dist/theme.mjs CHANGED
@@ -1,3 +1,4 @@
1
1
  import { t as themeDefault } from "./themeDefault-Z3KmyIbm.mjs";
2
- import { C as sizes, D as zOrder, E as up, O as createTheme, S as radii, T as typography, _ as layout, a as ThemeProvider, b as not, c as between, d as containerQueries, f as down, g as icon, h as fonts, i as LayoutProvider, k as withBreakpointHelpers, l as borderWidths, m as fontWeights, n as useDefaultProps, o as avatar, p as fontSizes, r as useTheme, s as baseTheme, t as withTheme, u as breakpoints, v as letterSpacings, w as space, x as only, y as lineHeights } from "./theme-CDVxig_g.mjs";
2
+ import { C as withBreakpointHelpers, S as zOrder, _ as radii, a as breakpoints, b as typography, c as fontSizes, d as icon, f as layout, g as only, h as not, i as borderWidths, l as fontWeights, m as lineHeights, n as baseTheme, o as containerQueries, p as letterSpacings, r as between, s as down, t as avatar, u as fonts, v as sizes, x as up, y as space } from "./themes-L-dE7_ck.mjs";
3
+ import { a as ThemeProvider, i as LayoutProvider, n as useDefaultProps, o as createTheme, r as useTheme, t as withTheme } from "./theme-Z9_QludW.mjs";
3
4
  export { LayoutProvider, ThemeProvider, avatar, baseTheme, between, borderWidths, breakpoints, containerQueries, createTheme, down, fontSizes, fontWeights, fonts, icon, layout, letterSpacings, lineHeights, not, only, radii, sizes, space, themeDefault, typography, up, useDefaultProps, useTheme, withBreakpointHelpers, withTheme, zOrder };
@@ -1,8 +1,5 @@
1
1
  import { alpha, generateBoxShadow } from "./utils.mjs";
2
- import { a as useEmotionTheme, n as EmotionThemeContext, r as EmotionThemeProvider } from "./emotion-BAyqVw0c.mjs";
3
2
  import { createContainerQueries, createMediaHelpers } from "@soroush.tech/styled-system";
4
- import { useCallback, useMemo } from "react";
5
- import { jsx } from "react/jsx-runtime";
6
3
  //#region src/theme/utils/spacing.ts
7
4
  const spacing = (units) => units === 0 ? "0px" : `${Math.max(1, Math.round(8 * units))}px`;
8
5
  //#endregion
@@ -26,43 +23,12 @@ const withBreakpointHelpers = (scale) => {
26
23
  return sizes;
27
24
  };
28
25
  //#endregion
29
- //#region src/theme/utils/createTheme.ts
30
- const isPlainObject = (value) => typeof value === "object" && value !== null && !Array.isArray(value);
31
- const deepMerge = (base, overrides) => {
32
- const merged = { ...base };
33
- for (const [key, value] of Object.entries(overrides)) {
34
- if (value === void 0) continue;
35
- const baseValue = merged[key];
36
- merged[key] = isPlainObject(baseValue) && isPlainObject(value) ? deepMerge(baseValue, value) : value;
37
- }
38
- return merged;
39
- };
40
- /**
41
- * Builds a theme by deep-merging sparse `overrides` onto `base`.
42
- *
43
- * - Recurses only where both sides are plain objects; arrays (`shadows`,
44
- * `fontSizes`) and functions replace wholesale.
45
- * - `undefined` override values are ignored - a key can be added or replaced,
46
- * never removed.
47
- * - Neither argument is mutated; untouched branches keep referential identity.
48
- * - `breakpoints` gets its query helpers back, built from the merged sizes.
49
- */
50
- const createTheme = (base, overrides) => {
51
- const theme = deepMerge(base, overrides);
52
- return withHelpers(theme);
53
- };
54
- /** A theme whose `breakpoints` carry the query helpers - added when a hand-built theme lacks them. */
55
- const withHelpers = (theme) => theme.breakpoints && !("up" in theme.breakpoints) ? {
56
- ...theme,
57
- breakpoints: withBreakpointHelpers(theme.breakpoints)
58
- } : theme;
59
- //#endregion
60
26
  //#region src/theme/themes.ts
61
- const shadow = {
27
+ const shadow$1 = {
62
28
  color: "#000000",
63
29
  opacity: .4
64
30
  };
65
- const shadows = Array.from({ length: 25 }, (_, elevation) => generateBoxShadow(elevation, alpha(shadow.color, shadow.opacity)));
31
+ const shadows = Array.from({ length: 25 }, (_, elevation) => generateBoxShadow(elevation, alpha(shadow$1.color, shadow$1.opacity)));
66
32
  const radii = {
67
33
  sq: "0",
68
34
  sm: "4px",
@@ -155,7 +121,7 @@ const sizes = {
155
121
  fontSize: 1
156
122
  }
157
123
  };
158
- const space = {
124
+ const space$1 = {
159
125
  0: 0,
160
126
  .125: spacing(.125),
161
127
  .25: spacing(.25),
@@ -183,7 +149,7 @@ const breakpoints = withBreakpointHelpers({
183
149
  lg: "1200px",
184
150
  xl: "1600px"
185
151
  });
186
- const layout = {
152
+ const layout$1 = {
187
153
  xs: {
188
154
  bars: { top: 8 },
189
155
  panels: {
@@ -235,7 +201,7 @@ const layout = {
235
201
  content: { maxWidth: "1600px" }
236
202
  }
237
203
  };
238
- const typography = {
204
+ const typography$1 = {
239
205
  h1: {
240
206
  element: "h1",
241
207
  fontSize: 6,
@@ -318,16 +284,16 @@ const baseTheme = {
318
284
  borderWidths,
319
285
  fontSizes,
320
286
  lineHeights,
321
- typography,
287
+ typography: typography$1,
322
288
  letterSpacings,
323
289
  fontWeights,
324
290
  fonts,
325
291
  avatar,
326
292
  icon,
327
293
  sizes,
328
- space,
294
+ space: space$1,
329
295
  breakpoints,
330
- layout,
296
+ layout: layout$1,
331
297
  zOrder,
332
298
  blur: "12px",
333
299
  colorScheme: "dark",
@@ -409,7 +375,7 @@ const baseTheme = {
409
375
  logoFilter: "brightness(0) invert(1)",
410
376
  portraitBlend: "screen",
411
377
  portraitOpacity: .8,
412
- shadow,
378
+ shadow: shadow$1,
413
379
  shadows
414
380
  };
415
381
  /**
@@ -418,70 +384,4 @@ const baseTheme = {
418
384
  */
419
385
  const { up, down, only, between, not, containerQueries } = breakpoints;
420
386
  //#endregion
421
- //#region src/theme/ThemeProvider.tsx
422
- function ThemeProvider({ children, theme = baseTheme, defaults }) {
423
- const value = useMemo(() => defaults ? createTheme(theme, { defaults }) : withHelpers(theme), [theme, defaults]);
424
- return /* @__PURE__ */ jsx(EmotionThemeProvider, {
425
- theme: value,
426
- children
427
- });
428
- }
429
- //#endregion
430
- //#region src/theme/LayoutProvider.tsx
431
- const pageLayout = (theme, layout) => {
432
- const page = layout;
433
- let carried = {};
434
- const merged = {};
435
- for (const key of Object.keys(theme.breakpoints)) {
436
- carried = deepMerge(carried, page[key] ?? {});
437
- if (Object.keys(carried).length > 0) merged[key] = carried;
438
- }
439
- return merged;
440
- };
441
- /**
442
- * @description A page-level layout: everything inside sees `theme.layout` with the page's
443
- * values merged on top - `View`, `Flex` and `Grid` with `layout`, and `useTheme().layout`. It
444
- * derives the theme from the one around it and changes nothing else, so colours, light/dark
445
- * switching and every other token stay the app theme's. Nested providers stack.
446
- */
447
- function LayoutProvider({ layout, children }) {
448
- const derive = useCallback((outer) => {
449
- const theme = "breakpoints" in outer ? outer : baseTheme;
450
- return createTheme(theme, { layout: pageLayout(theme, layout) });
451
- }, [layout]);
452
- return /* @__PURE__ */ jsx(EmotionThemeProvider, {
453
- theme: derive,
454
- children
455
- });
456
- }
457
- //#endregion
458
- //#region src/theme/hooks/useTheme.ts
459
- /**
460
- * The active theme, typed as this package's own `Theme` - Emotion is an
461
- * internal implementation detail, never part of the public type surface.
462
- */
463
- const useTheme = () => useEmotionTheme();
464
- //#endregion
465
- //#region src/theme/hooks/useDefaultProps.ts
466
- /**
467
- * The theme-contributed default prop values for a component
468
- * (`theme.components[name].defaultProps`), or an empty object.
469
- *
470
- * Components apply it as one step of the default-resolution chain:
471
- * explicit prop → group context → `useDefaultProps` → `theme.defaults.*` → literal fallback.
472
- */
473
- function useDefaultProps(name) {
474
- return useTheme().components?.[name]?.defaultProps ?? {};
475
- }
476
- //#endregion
477
- //#region src/theme/hoc/withTheme.tsx
478
- function withTheme(WrappedComponent) {
479
- return function WithTheme(props) {
480
- return /* @__PURE__ */ jsx(EmotionThemeContext.Consumer, { children: (theme) => /* @__PURE__ */ jsx(WrappedComponent, {
481
- ...props,
482
- theme
483
- }) });
484
- };
485
- }
486
- //#endregion
487
- export { sizes as C, zOrder as D, up as E, createTheme as O, radii as S, typography as T, layout as _, ThemeProvider as a, not as b, between as c, containerQueries as d, down as f, icon as g, fonts as h, LayoutProvider as i, withBreakpointHelpers as k, borderWidths as l, fontWeights as m, useDefaultProps as n, avatar as o, fontSizes as p, useTheme as r, baseTheme as s, withTheme as t, breakpoints as u, letterSpacings as v, space as w, only as x, lineHeights as y };
387
+ export { withBreakpointHelpers as C, zOrder as S, radii as _, breakpoints as a, typography$1 as b, fontSizes as c, icon as d, layout$1 as f, only as g, not as h, borderWidths as i, fontWeights as l, lineHeights as m, baseTheme as n, containerQueries as o, letterSpacings as p, between as r, down as s, avatar as t, fonts as u, sizes as v, up as x, space$1 as y };