@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,306 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
+ const require_src = require("../src-DU81aGy9.cjs");
3
+ const require_theme = require("../theme-BxXuXRgQ.cjs");
4
+ const require_Icon = require("../Icon-D-EWsBVg.cjs");
5
+ const require_dividerLine = require("../dividerLine-BNljcGlv.cjs");
6
+ let react = require("react");
7
+ let react_jsx_runtime = require("react/jsx-runtime");
8
+ //#region src/Tabs/Tab/Tab.tsx
9
+ const shouldForwardProp = (0, require("@soroush.tech/styled-system/should-forward-prop").createShouldForwardProp)([
10
+ "variant",
11
+ "color",
12
+ "textColor",
13
+ "sizeToken",
14
+ "isSelected",
15
+ "isDisabled",
16
+ "iconPlacement",
17
+ "isWrapped",
18
+ "fullWidth",
19
+ "isVertical",
20
+ "hasDivider",
21
+ "selectedBg",
22
+ "bg",
23
+ "borderRadius",
24
+ "lineColor",
25
+ "rowPaddingTop",
26
+ "rowPaddingBottom"
27
+ ]);
28
+ const getEnclosedEdgeStyle = (theme, main, lineMain, isSelected, isVertical, hasDivider, radius) => {
29
+ const thin = theme.borderWidths.thin;
30
+ const top = `inset 0 ${thin} 0 ${main}`;
31
+ const right = `inset -${thin} 0 0 ${main}`;
32
+ const foot = `inset 0 -${thin} 0 ${main}`;
33
+ const left = `inset ${thin} 0 0 ${main}`;
34
+ const outline = isVertical ? [
35
+ top,
36
+ foot,
37
+ left
38
+ ] : [
39
+ top,
40
+ right,
41
+ left
42
+ ];
43
+ let edges = "none";
44
+ if (hasDivider) edges = isSelected ? outline.join(", ") : require_dividerLine.getDividerShadow(theme, isVertical, lineMain);
45
+ return {
46
+ border: "none",
47
+ padding: thin,
48
+ boxShadow: edges,
49
+ borderRadius: 0,
50
+ ...isVertical ? {
51
+ borderStartStartRadius: radius,
52
+ borderEndStartRadius: radius
53
+ } : {
54
+ borderTopLeftRadius: radius,
55
+ borderTopRightRadius: radius
56
+ }
57
+ };
58
+ };
59
+ const TabRoot = require_src.styled("div", {
60
+ name: "Tab",
61
+ label: "Tab",
62
+ shouldForwardProp
63
+ })(({ theme, variant, color, isSelected, isDisabled, fullWidth, isVertical, hasDivider, selectedBg, bg, borderRadius, lineColor }) => {
64
+ const main = (0, require_src.src_exports.get)(theme, `palette.${color}.main`);
65
+ const isBoxed = variant === "boxed";
66
+ const outlineColor = isBoxed && isSelected ? `${main}59` : "transparent";
67
+ const raised = (0, require_src.src_exports.get)(theme, "background.paper");
68
+ const groundKey = isSelected && selectedBg ? selectedBg : bg;
69
+ const ground = groundKey ? (0, require_src.src_exports.get)(theme, `background.${groundKey}`) : "transparent";
70
+ const isRounded = isBoxed || variant === "enclosed";
71
+ let radius = 0;
72
+ if (borderRadius) radius = theme.radii[borderRadius];
73
+ else if (isRounded) radius = theme.radii.sm;
74
+ return {
75
+ position: "relative",
76
+ display: "flex",
77
+ alignItems: "stretch",
78
+ flexGrow: fullWidth ? 1 : 0,
79
+ flexShrink: fullWidth ? 1 : 0,
80
+ flexBasis: fullWidth ? 0 : "auto",
81
+ minWidth: 0,
82
+ backgroundColor: ground,
83
+ border: `${theme.borderWidths.thin} solid ${outlineColor}`,
84
+ borderRadius: radius,
85
+ ...variant === "enclosed" && getEnclosedEdgeStyle(theme, main, (0, require_src.src_exports.get)(theme, `palette.${lineColor}.main`), isSelected, isVertical, hasDivider, String(radius)),
86
+ transition: "background-color 0.12s ease",
87
+ ...isDisabled ? {} : { "&:hover": { backgroundColor: isBoxed ? raised : `${main}14` } },
88
+ "&:hover [data-tab-close]": { visibility: "visible" }
89
+ };
90
+ });
91
+ const TabLabel = require_src.styled("button", {
92
+ name: "Tab",
93
+ slot: "label",
94
+ label: "TabLabel",
95
+ shouldForwardProp
96
+ })(({ theme, variant, color, textColor, sizeToken, isSelected, isDisabled, iconPlacement, isWrapped, isVertical, rowPaddingTop, rowPaddingBottom }) => {
97
+ const { paddingTop, paddingBottom, paddingLeft, paddingRight, fontSize } = theme.sizes[sizeToken];
98
+ const main = (0, require_src.src_exports.get)(theme, `palette.${color}.main`);
99
+ const idleColor = (0, require_src.src_exports.get)(theme, `text.${textColor ?? "primary"}`);
100
+ let labelColor = isSelected ? variant === "boxed" ? idleColor : main : idleColor;
101
+ if (isDisabled) labelColor = (0, require_src.src_exports.get)(theme, "text.disabled");
102
+ return {
103
+ appearance: "none",
104
+ display: "grid",
105
+ gridAutoFlow: iconPlacement === "start" || iconPlacement === "end" ? "column" : "row",
106
+ alignContent: iconPlacement === "bottom" ? "start" : "end",
107
+ alignItems: "center",
108
+ justifyContent: "center",
109
+ justifyItems: "center",
110
+ gap: theme.space[1],
111
+ flex: 1,
112
+ minWidth: 0,
113
+ margin: 0,
114
+ paddingTop: theme.space[isVertical ? paddingTop : rowPaddingTop],
115
+ paddingBottom: theme.space[isVertical ? paddingBottom : rowPaddingBottom],
116
+ paddingLeft: theme.space[paddingLeft],
117
+ paddingRight: theme.space[paddingRight],
118
+ fontFamily: theme.fonts.body,
119
+ fontSize: theme.fontSizes[fontSize],
120
+ lineHeight: theme.lineHeights.base,
121
+ whiteSpace: isWrapped ? "normal" : "nowrap",
122
+ textAlign: "center",
123
+ textDecoration: "none",
124
+ color: labelColor,
125
+ backgroundColor: "transparent",
126
+ border: "none",
127
+ borderRadius: "inherit",
128
+ cursor: isDisabled ? "default" : "pointer",
129
+ outline: "none",
130
+ "&:focus-visible": {
131
+ outline: `${theme.borderWidths.base} solid ${main}`,
132
+ outlineOffset: `-${theme.borderWidths.base}`
133
+ }
134
+ };
135
+ });
136
+ const SecondaryActionSlot = require_src.styled("div", {
137
+ name: "Tab",
138
+ slot: "secondaryAction",
139
+ label: "TabSecondaryAction"
140
+ })({
141
+ display: "flex",
142
+ alignItems: "center",
143
+ flexShrink: 0
144
+ });
145
+ const TabClose = require_src.styled("button", {
146
+ name: "Tab",
147
+ slot: "close",
148
+ label: "TabClose",
149
+ shouldForwardProp
150
+ })(({ theme, color, isSelected }) => {
151
+ const main = (0, require_src.src_exports.get)(theme, `palette.${color}.main`);
152
+ return {
153
+ appearance: "none",
154
+ display: "grid",
155
+ placeItems: "center",
156
+ alignSelf: "center",
157
+ flexShrink: 0,
158
+ width: theme.icon.sm,
159
+ height: theme.icon.sm,
160
+ padding: 0,
161
+ marginInlineEnd: theme.space[.5],
162
+ border: "none",
163
+ borderRadius: theme.radii.sm,
164
+ backgroundColor: "transparent",
165
+ color: "inherit",
166
+ cursor: "pointer",
167
+ visibility: isSelected ? "visible" : "hidden",
168
+ "&:hover": { backgroundColor: `${main}1F` }
169
+ };
170
+ });
171
+ const IconSlot = require_src.styled("span", {
172
+ name: "Tab",
173
+ slot: "icon",
174
+ label: "TabIcon"
175
+ })({
176
+ display: "inline-flex",
177
+ flexShrink: 0
178
+ });
179
+ /**
180
+ * @description One tab of a `Tabs`. In a `tablist` it is a `tab` with `aria-selected` and
181
+ * `aria-controls`, the selected one alone in the page's tab order; in a navigation
182
+ * (`Tabs as="nav"`) a button or link marked `aria-current="page"` when it is the current
183
+ * one. It takes one `icon`, which `iconPosition` places on a side of its label.
184
+ */
185
+ function Tab({ value: valueProp, label, icon, iconPosition = "top", isWrapped: isWrappedProp, bg: bgProp, borderRadius: borderRadiusProp, color: colorProp, textColor: textColorProp, size: sizeProp, selectedBg: selectedBgProp, disabled = false, href, as, onClick, title, closeLabel, secondaryAction, className, "data-testid": dataTestid }) {
186
+ const dp = require_theme.useDefaultProps("Tab");
187
+ const iconPlacement = icon == null ? void 0 : iconPosition;
188
+ const isIconFirst = iconPlacement === "top" || iconPlacement === "start";
189
+ const iconSlot = icon == null ? null : /* @__PURE__ */ (0, react_jsx_runtime.jsx)(IconSlot, {
190
+ "aria-hidden": true,
191
+ children: icon
192
+ });
193
+ const isWrapped = isWrappedProp ?? dp.isWrapped ?? false;
194
+ const bg = bgProp ?? dp.bg;
195
+ const borderRadius = borderRadiusProp ?? dp.borderRadius;
196
+ const tabs = require_dividerLine.useTabsContext();
197
+ const index = (0, react.useContext)(require_dividerLine.TabIndexContext);
198
+ const value = valueProp ?? index;
199
+ const isSelected = tabs.selectedValue === value;
200
+ const { isNavigation, select, rowProps } = tabs;
201
+ const color = colorProp ?? rowProps.color ?? dp.color ?? tabs.color;
202
+ const textColor = textColorProp ?? rowProps.textColor ?? dp.textColor ?? tabs.textColor;
203
+ const size = sizeProp ?? rowProps.size ?? dp.size ?? tabs.size;
204
+ const selectedBg = selectedBgProp ?? rowProps.selectedBg ?? dp.selectedBg ?? tabs.selectedBg;
205
+ const handleClick = (event) => {
206
+ if (disabled) {
207
+ event.preventDefault();
208
+ return;
209
+ }
210
+ onClick?.(event);
211
+ select(value);
212
+ };
213
+ const handleFocus = () => {
214
+ if (tabs.shouldSelectOnFocus && !disabled && !isSelected) select(value);
215
+ };
216
+ const isClosable = closeLabel !== void 0;
217
+ const close = () => tabs.onTabClose?.(value);
218
+ const handleMouseDown = (event) => {
219
+ if (isClosable && event.button === 1) event.preventDefault();
220
+ };
221
+ const handleAuxClick = (event) => {
222
+ if (isClosable && event.button === 1) close();
223
+ };
224
+ const handleKeyDown = (event) => {
225
+ if (isClosable && event.key === "Delete") {
226
+ event.preventDefault();
227
+ close();
228
+ }
229
+ };
230
+ const element = as ?? (href === void 0 ? "button" : "a");
231
+ const semantics = isNavigation ? { "aria-current": isSelected ? "page" : void 0 } : {
232
+ role: "tab",
233
+ "aria-selected": isSelected,
234
+ "aria-controls": tabs.getPanelId(value),
235
+ tabIndex: value === tabs.focusableValue ? 0 : -1
236
+ };
237
+ const styleProps = {
238
+ variant: tabs.variant,
239
+ color,
240
+ textColor,
241
+ sizeToken: size,
242
+ isSelected,
243
+ isDisabled: disabled,
244
+ iconPlacement,
245
+ isWrapped,
246
+ fullWidth: tabs.fullWidth,
247
+ isVertical: tabs.isVertical,
248
+ hasDivider: tabs.hasDivider,
249
+ selectedBg,
250
+ bg,
251
+ borderRadius,
252
+ lineColor: tabs.selectedColor,
253
+ rowPaddingTop: tabs.rowPaddingTop,
254
+ rowPaddingBottom: tabs.rowPaddingBottom
255
+ };
256
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(TabRoot, {
257
+ ...styleProps,
258
+ role: "presentation",
259
+ className,
260
+ "data-tab-value": String(value),
261
+ "data-tab-selected": isSelected || void 0,
262
+ children: [
263
+ /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(TabLabel, {
264
+ ...semantics,
265
+ as: element,
266
+ id: tabs.getTabId(value),
267
+ type: element === "button" ? "button" : void 0,
268
+ href,
269
+ title,
270
+ "aria-disabled": disabled || void 0,
271
+ "aria-keyshortcuts": isClosable ? "Delete" : void 0,
272
+ "data-tab": true,
273
+ "data-testid": dataTestid,
274
+ ...styleProps,
275
+ onClick: handleClick,
276
+ onFocus: handleFocus,
277
+ onMouseDown: handleMouseDown,
278
+ onAuxClick: handleAuxClick,
279
+ onKeyDown: handleKeyDown,
280
+ children: [
281
+ isIconFirst && iconSlot,
282
+ label,
283
+ !isIconFirst && iconSlot
284
+ ]
285
+ }),
286
+ secondaryAction != null && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(SecondaryActionSlot, { children: secondaryAction }),
287
+ isClosable && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(TabClose, {
288
+ type: "button",
289
+ "aria-hidden": true,
290
+ title: closeLabel,
291
+ tabIndex: -1,
292
+ "data-tab-close": true,
293
+ color,
294
+ isSelected,
295
+ onClick: close,
296
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Icon.Icon, {
297
+ name: "close",
298
+ size: "0.75rem",
299
+ color: "inherit"
300
+ })
301
+ })
302
+ ]
303
+ });
304
+ }
305
+ //#endregion
306
+ exports.Tab = Tab;
@@ -0,0 +1,62 @@
1
+ import { W as Theme } from "../index-DJ0f69wh.cjs";
2
+ import { t as TabValue } from "../TabsContext-B_XHbjcS.cjs";
3
+ import { ElementType, MouseEvent, ReactNode } from "react";
4
+ //#region src/Tabs/Tab/Tab.d.ts
5
+ /** Where `icon` sits around a tab's label. */
6
+ type TabIconPosition = 'start' | 'end' | 'top' | 'bottom';
7
+ interface TabProps {
8
+ /** What the tab is chosen as. Default: its position among the tabs. */
9
+ value?: TabValue;
10
+ /** The tab's label. */
11
+ label?: ReactNode;
12
+ /** The tab's icon, as given - its size is the icon's own (`<Icon size="sm" />`). */
13
+ icon?: ReactNode;
14
+ /** Where `icon` sits around the label. Default: `'top'`. */
15
+ iconPosition?: TabIconPosition;
16
+ /**
17
+ * The tab's ground while it isn't selected - resolves against `theme.background`. Selected, it
18
+ * takes its `Tabs`' `selectedBg`.
19
+ */
20
+ bg?: keyof Theme['background'];
21
+ /**
22
+ * The tab's corner radius - resolves against `theme.radii`. In the enclosed look it rounds the
23
+ * corners away from the divider; elsewhere, all four. Default: `'sm'` boxed or enclosed, none
24
+ * otherwise.
25
+ */
26
+ borderRadius?: keyof Theme['radii'];
27
+ /** The tab's accent - its selected label, outline and indicator - resolves to `theme.palette[color]`. Default: its `Tabs`'. */
28
+ color?: keyof Theme['palette'];
29
+ /** The label's color - resolves against `theme.text`. Default: its `Tabs`'. */
30
+ textColor?: keyof Theme['text'];
31
+ /** Density token - resolves against `theme.sizes`. Default: its `Tabs`'. */
32
+ size?: keyof Theme['sizes'];
33
+ /** The tab's ground while it is selected - resolves against `theme.background`. Default: its `Tabs`' `selectedBg`. */
34
+ selectedBg?: keyof Theme['background'];
35
+ /** The label may take two lines rather than one. Default: `false`. */
36
+ isWrapped?: boolean;
37
+ /** The tab can't be chosen, and the arrow keys pass it. Default: `false`. */
38
+ disabled?: boolean;
39
+ /** A link, for a navigation of pages. */
40
+ href?: string;
41
+ /** The element the tab is rendered as. Default: `'button'`, or `'a'` with `href`. */
42
+ as?: ElementType;
43
+ /** Fired when the tab is pressed. */
44
+ onClick?: (event: MouseEvent<HTMLElement>) => void;
45
+ /** Hover text. */
46
+ title?: string;
47
+ /** Makes the tab closable: its close button's tooltip (`Close Button`). The button is the pointer's - a tablist owns tabs alone, so it is hidden from assistive technology - and Delete closes the focused tab. `Tabs`' `onTabClose` hears either. */
48
+ closeLabel?: string;
49
+ /** A control of the tab's own after its label - a kebab menu, a badge. */
50
+ secondaryAction?: ReactNode;
51
+ className?: string;
52
+ 'data-testid'?: string;
53
+ }
54
+ /**
55
+ * @description One tab of a `Tabs`. In a `tablist` it is a `tab` with `aria-selected` and
56
+ * `aria-controls`, the selected one alone in the page's tab order; in a navigation
57
+ * (`Tabs as="nav"`) a button or link marked `aria-current="page"` when it is the current
58
+ * one. It takes one `icon`, which `iconPosition` places on a side of its label.
59
+ */
60
+ declare function Tab({ value: valueProp, label, icon, iconPosition, isWrapped: isWrappedProp, bg: bgProp, borderRadius: borderRadiusProp, color: colorProp, textColor: textColorProp, size: sizeProp, selectedBg: selectedBgProp, disabled, href, as, onClick, title, closeLabel, secondaryAction, className, 'data-testid': dataTestid }: Readonly<TabProps>): import("react").JSX.Element;
61
+ //#endregion
62
+ export { Tab, TabIconPosition, TabProps };
@@ -0,0 +1,62 @@
1
+ import { W as Theme } from "../index-CJhK7JND.mjs";
2
+ import { t as TabValue } from "../TabsContext-Dn2kqUwr.mjs";
3
+ import { ElementType, MouseEvent, ReactNode } from "react";
4
+ //#region src/Tabs/Tab/Tab.d.ts
5
+ /** Where `icon` sits around a tab's label. */
6
+ type TabIconPosition = 'start' | 'end' | 'top' | 'bottom';
7
+ interface TabProps {
8
+ /** What the tab is chosen as. Default: its position among the tabs. */
9
+ value?: TabValue;
10
+ /** The tab's label. */
11
+ label?: ReactNode;
12
+ /** The tab's icon, as given - its size is the icon's own (`<Icon size="sm" />`). */
13
+ icon?: ReactNode;
14
+ /** Where `icon` sits around the label. Default: `'top'`. */
15
+ iconPosition?: TabIconPosition;
16
+ /**
17
+ * The tab's ground while it isn't selected - resolves against `theme.background`. Selected, it
18
+ * takes its `Tabs`' `selectedBg`.
19
+ */
20
+ bg?: keyof Theme['background'];
21
+ /**
22
+ * The tab's corner radius - resolves against `theme.radii`. In the enclosed look it rounds the
23
+ * corners away from the divider; elsewhere, all four. Default: `'sm'` boxed or enclosed, none
24
+ * otherwise.
25
+ */
26
+ borderRadius?: keyof Theme['radii'];
27
+ /** The tab's accent - its selected label, outline and indicator - resolves to `theme.palette[color]`. Default: its `Tabs`'. */
28
+ color?: keyof Theme['palette'];
29
+ /** The label's color - resolves against `theme.text`. Default: its `Tabs`'. */
30
+ textColor?: keyof Theme['text'];
31
+ /** Density token - resolves against `theme.sizes`. Default: its `Tabs`'. */
32
+ size?: keyof Theme['sizes'];
33
+ /** The tab's ground while it is selected - resolves against `theme.background`. Default: its `Tabs`' `selectedBg`. */
34
+ selectedBg?: keyof Theme['background'];
35
+ /** The label may take two lines rather than one. Default: `false`. */
36
+ isWrapped?: boolean;
37
+ /** The tab can't be chosen, and the arrow keys pass it. Default: `false`. */
38
+ disabled?: boolean;
39
+ /** A link, for a navigation of pages. */
40
+ href?: string;
41
+ /** The element the tab is rendered as. Default: `'button'`, or `'a'` with `href`. */
42
+ as?: ElementType;
43
+ /** Fired when the tab is pressed. */
44
+ onClick?: (event: MouseEvent<HTMLElement>) => void;
45
+ /** Hover text. */
46
+ title?: string;
47
+ /** Makes the tab closable: its close button's tooltip (`Close Button`). The button is the pointer's - a tablist owns tabs alone, so it is hidden from assistive technology - and Delete closes the focused tab. `Tabs`' `onTabClose` hears either. */
48
+ closeLabel?: string;
49
+ /** A control of the tab's own after its label - a kebab menu, a badge. */
50
+ secondaryAction?: ReactNode;
51
+ className?: string;
52
+ 'data-testid'?: string;
53
+ }
54
+ /**
55
+ * @description One tab of a `Tabs`. In a `tablist` it is a `tab` with `aria-selected` and
56
+ * `aria-controls`, the selected one alone in the page's tab order; in a navigation
57
+ * (`Tabs as="nav"`) a button or link marked `aria-current="page"` when it is the current
58
+ * one. It takes one `icon`, which `iconPosition` places on a side of its label.
59
+ */
60
+ declare function Tab({ value: valueProp, label, icon, iconPosition, isWrapped: isWrappedProp, bg: bgProp, borderRadius: borderRadiusProp, color: colorProp, textColor: textColorProp, size: sizeProp, selectedBg: selectedBgProp, disabled, href, as, onClick, title, closeLabel, secondaryAction, className, 'data-testid': dataTestid }: Readonly<TabProps>): import("react").JSX.Element;
61
+ //#endregion
62
+ export { Tab, TabIconPosition, TabProps };