@soroush.tech/design-system 2.0.0-rc.2 → 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 (267) hide show
  1. package/README.md +14 -10
  2. package/dist/AppBar.d.cts +1 -1
  3. package/dist/AppBar.d.mts +1 -1
  4. package/dist/Avatar.d.cts +1 -1
  5. package/dist/Avatar.d.mts +1 -1
  6. package/dist/Backdrop.d.cts +1 -1
  7. package/dist/Backdrop.d.mts +1 -1
  8. package/dist/Breadcrumbs.cjs +1 -1
  9. package/dist/Breadcrumbs.d.cts +3 -3
  10. package/dist/Breadcrumbs.d.mts +3 -3
  11. package/dist/Breadcrumbs.mjs +1 -1
  12. package/dist/Button.d.cts +1 -1
  13. package/dist/Button.d.mts +1 -1
  14. package/dist/ButtonGroup.d.cts +1 -1
  15. package/dist/ButtonGroup.d.mts +1 -1
  16. package/dist/Card.cjs +1 -1
  17. package/dist/Card.d.cts +4 -4
  18. package/dist/Card.d.mts +4 -4
  19. package/dist/Card.mjs +1 -1
  20. package/dist/Checkbox.d.cts +1 -1
  21. package/dist/Checkbox.d.mts +1 -1
  22. package/dist/CircularProgress.d.cts +2 -2
  23. package/dist/CircularProgress.d.mts +2 -2
  24. package/dist/Drawer.d.cts +3 -3
  25. package/dist/Drawer.d.mts +3 -3
  26. package/dist/Flex.d.cts +1 -1
  27. package/dist/Flex.d.mts +1 -1
  28. package/dist/Form.d.cts +1 -1
  29. package/dist/Form.d.mts +1 -1
  30. package/dist/FormControl.cjs +9 -1
  31. package/dist/FormControl.d.cts +9 -1
  32. package/dist/FormControl.d.mts +9 -1
  33. package/dist/FormControl.mjs +9 -1
  34. package/dist/FormHelperText.d.cts +1 -1
  35. package/dist/FormHelperText.d.mts +1 -1
  36. package/dist/FormLabel.cjs +9 -1
  37. package/dist/FormLabel.d.cts +2 -2
  38. package/dist/FormLabel.d.mts +2 -2
  39. package/dist/FormLabel.mjs +10 -2
  40. package/dist/Grid.d.cts +1 -1
  41. package/dist/Grid.d.mts +1 -1
  42. package/dist/{Icon-DlheCTJb.mjs → Icon-BihOAP4u.mjs} +40 -0
  43. package/dist/{Icon-Cvuhp9ek.cjs → Icon-D-EWsBVg.cjs} +40 -0
  44. package/dist/Icon.cjs +1 -1
  45. package/dist/Icon.d.cts +1 -1
  46. package/dist/Icon.d.mts +1 -1
  47. package/dist/Icon.mjs +1 -1
  48. package/dist/Image.d.cts +1 -1
  49. package/dist/Image.d.mts +1 -1
  50. package/dist/InputRange.cjs +675 -0
  51. package/dist/InputRange.d.cts +79 -0
  52. package/dist/InputRange.d.mts +79 -0
  53. package/dist/InputRange.mjs +673 -0
  54. package/dist/LinearProgress.d.cts +2 -2
  55. package/dist/LinearProgress.d.mts +2 -2
  56. package/dist/Link.d.cts +1 -1
  57. package/dist/Link.d.mts +1 -1
  58. package/dist/Menu/ContextMenu.cjs +1 -1
  59. package/dist/Menu/ContextMenu.d.cts +5 -5
  60. package/dist/Menu/ContextMenu.d.mts +5 -5
  61. package/dist/Menu/ContextMenu.mjs +1 -1
  62. package/dist/Menu/Menu.cjs +1 -1
  63. package/dist/Menu/Menu.d.cts +1 -1
  64. package/dist/Menu/Menu.d.mts +1 -1
  65. package/dist/Menu/Menu.mjs +1 -1
  66. package/dist/Menu/MenuItems.cjs +1 -1
  67. package/dist/Menu/MenuItems.d.cts +1 -1
  68. package/dist/Menu/MenuItems.d.mts +1 -1
  69. package/dist/Menu/MenuItems.mjs +1 -1
  70. package/dist/Menu/MenuList.d.cts +2 -2
  71. package/dist/Menu/MenuList.d.mts +2 -2
  72. package/dist/{Menu-BkKPTOfh.cjs → Menu-Cgg-sX4W.cjs} +3 -2
  73. package/dist/{Menu-tECbAEFj.mjs → Menu-CrzHc_cn.mjs} +2 -1
  74. package/dist/Menu.cjs +1 -1
  75. package/dist/Menu.d.cts +3 -3
  76. package/dist/Menu.d.mts +3 -3
  77. package/dist/Menu.mjs +1 -1
  78. package/dist/{MenuItem-CfdN4axw.cjs → MenuItem-BTP7Ijwi.cjs} +6 -17
  79. package/dist/{MenuItem-BR7ingQx.mjs → MenuItem-DUn4IZKK.mjs} +3 -8
  80. package/dist/MenuItem.cjs +1 -1
  81. package/dist/MenuItem.d.cts +1 -1
  82. package/dist/MenuItem.d.mts +1 -1
  83. package/dist/MenuItem.mjs +1 -1
  84. package/dist/{MenuListContext-Dml16k0X.d.mts → MenuListContext-DKUOhNyw.d.cts} +2 -2
  85. package/dist/{MenuListContext-vujGcRk9.d.cts → MenuListContext-x-7lH4CH.d.mts} +2 -2
  86. package/dist/Modal.d.cts +1 -1
  87. package/dist/Modal.d.mts +1 -1
  88. package/dist/NativeSelect.cjs +8 -7
  89. package/dist/NativeSelect.d.cts +3 -3
  90. package/dist/NativeSelect.d.mts +3 -3
  91. package/dist/NativeSelect.mjs +8 -7
  92. package/dist/NumberField.cjs +476 -0
  93. package/dist/NumberField.d.cts +74 -0
  94. package/dist/NumberField.d.mts +74 -0
  95. package/dist/NumberField.mjs +474 -0
  96. package/dist/Pagination/PaginationItem.cjs +1 -1
  97. package/dist/Pagination/PaginationItem.d.cts +1 -1
  98. package/dist/Pagination/PaginationItem.d.mts +1 -1
  99. package/dist/Pagination/PaginationItem.mjs +1 -1
  100. package/dist/Pagination.d.cts +2 -2
  101. package/dist/Pagination.d.mts +2 -2
  102. package/dist/Paper.d.cts +2 -2
  103. package/dist/Paper.d.mts +2 -2
  104. package/dist/Popover.d.cts +3 -3
  105. package/dist/Popover.d.mts +3 -3
  106. package/dist/Pressable.d.cts +1 -1
  107. package/dist/Pressable.d.mts +1 -1
  108. package/dist/Quote.d.cts +2 -2
  109. package/dist/Quote.d.mts +2 -2
  110. package/dist/Radio.d.cts +1 -1
  111. package/dist/Radio.d.mts +1 -1
  112. package/dist/Rating.cjs +373 -0
  113. package/dist/Rating.d.cts +57 -0
  114. package/dist/Rating.d.mts +57 -0
  115. package/dist/Rating.mjs +371 -0
  116. package/dist/Select.cjs +3 -2
  117. package/dist/Select.d.cts +3 -3
  118. package/dist/Select.d.mts +3 -3
  119. package/dist/Select.mjs +5 -4
  120. package/dist/Sidebar/Sidebar.d.cts +1 -1
  121. package/dist/Sidebar/Sidebar.d.mts +1 -1
  122. package/dist/Sidebar/SidebarItem.cjs +1 -1
  123. package/dist/Sidebar/SidebarItem.d.cts +3 -3
  124. package/dist/Sidebar/SidebarItem.d.mts +3 -3
  125. package/dist/Sidebar/SidebarItem.mjs +3 -3
  126. package/dist/Skeleton.d.cts +1 -1
  127. package/dist/Skeleton.d.mts +1 -1
  128. package/dist/Switch.cjs +22 -15
  129. package/dist/Switch.d.cts +2 -2
  130. package/dist/Switch.d.mts +2 -2
  131. package/dist/Switch.mjs +24 -17
  132. package/dist/Table/Table.d.cts +2 -2
  133. package/dist/Table/Table.d.mts +2 -2
  134. package/dist/Table/TableBody.d.cts +1 -1
  135. package/dist/Table/TableBody.d.mts +1 -1
  136. package/dist/Table/TableCell.d.cts +1 -1
  137. package/dist/Table/TableCell.d.mts +1 -1
  138. package/dist/Table/TableContainer.d.cts +1 -1
  139. package/dist/Table/TableContainer.d.mts +1 -1
  140. package/dist/Table/TableControl.d.cts +1 -1
  141. package/dist/Table/TableControl.d.mts +1 -1
  142. package/dist/Table/TableControl.mjs +2 -2
  143. package/dist/Table/TableFooter.d.cts +1 -1
  144. package/dist/Table/TableFooter.d.mts +1 -1
  145. package/dist/Table/TableHead.d.cts +1 -1
  146. package/dist/Table/TableHead.d.mts +1 -1
  147. package/dist/Table/TablePagination.d.cts +2 -2
  148. package/dist/Table/TablePagination.d.mts +2 -2
  149. package/dist/Table/TablePaginationActions.d.cts +1 -1
  150. package/dist/Table/TablePaginationActions.d.mts +1 -1
  151. package/dist/Table/TableRow.d.cts +1 -1
  152. package/dist/Table/TableRow.d.mts +1 -1
  153. package/dist/Table/TableSortLabel.cjs +1 -1
  154. package/dist/Table/TableSortLabel.d.cts +1 -1
  155. package/dist/Table/TableSortLabel.d.mts +1 -1
  156. package/dist/Table/TableSortLabel.mjs +1 -1
  157. package/dist/Table/hooks.d.cts +1 -1
  158. package/dist/Table/hooks.d.mts +1 -1
  159. package/dist/Table.d.cts +5 -5
  160. package/dist/Table.d.mts +5 -5
  161. package/dist/{TableContext-6PgGpUzM.d.mts → TableContext-DhuRf6Wy.d.mts} +1 -1
  162. package/dist/{TableContext-CBGk-Lh8.d.cts → TableContext-Duj1nVG7.d.cts} +1 -1
  163. package/dist/Tabs/Tab.cjs +1 -1
  164. package/dist/Tabs/Tab.d.cts +2 -2
  165. package/dist/Tabs/Tab.d.mts +2 -2
  166. package/dist/Tabs/Tab.mjs +1 -1
  167. package/dist/Tabs/TabContext.d.cts +1 -1
  168. package/dist/Tabs/TabContext.d.mts +1 -1
  169. package/dist/Tabs/TabList.cjs +1 -1
  170. package/dist/Tabs/TabList.d.cts +1 -1
  171. package/dist/Tabs/TabList.d.mts +1 -1
  172. package/dist/Tabs/TabList.mjs +1 -1
  173. package/dist/Tabs/TabPanel.d.cts +2 -2
  174. package/dist/Tabs/TabPanel.d.mts +2 -2
  175. package/dist/Tabs/TabScrollButton.cjs +1 -1
  176. package/dist/Tabs/TabScrollButton.d.cts +1 -1
  177. package/dist/Tabs/TabScrollButton.d.mts +1 -1
  178. package/dist/Tabs/TabScrollButton.mjs +1 -1
  179. package/dist/Tabs/Tabs.cjs +1 -1
  180. package/dist/Tabs/Tabs.d.cts +2 -2
  181. package/dist/Tabs/Tabs.d.mts +2 -2
  182. package/dist/Tabs/Tabs.mjs +1 -1
  183. package/dist/{Tabs-YfCUbkQV.mjs → Tabs-BTNOJx5v.mjs} +4 -3
  184. package/dist/{Tabs-D_wkX-Jb.cjs → Tabs-D4tWCq78.cjs} +7 -6
  185. package/dist/Tabs.cjs +1 -1
  186. package/dist/Tabs.d.cts +3 -3
  187. package/dist/Tabs.d.mts +3 -3
  188. package/dist/Tabs.mjs +1 -1
  189. package/dist/{TabsContext-C2agsLBN.d.cts → TabsContext-B_XHbjcS.d.cts} +1 -1
  190. package/dist/{TabsContext-DqyxdmGW.d.mts → TabsContext-Dn2kqUwr.d.mts} +1 -1
  191. package/dist/TextInput.cjs +3 -3
  192. package/dist/TextInput.d.cts +2 -2
  193. package/dist/TextInput.d.mts +2 -2
  194. package/dist/TextInput.mjs +3 -3
  195. package/dist/ToggleButton/ToggleButton.d.cts +1 -1
  196. package/dist/ToggleButton/ToggleButton.d.mts +1 -1
  197. package/dist/ToggleButton/ToggleButtonGroup.d.cts +1 -1
  198. package/dist/ToggleButton/ToggleButtonGroup.d.mts +1 -1
  199. package/dist/TransferList.cjs +356 -0
  200. package/dist/TransferList.d.cts +67 -0
  201. package/dist/TransferList.d.mts +67 -0
  202. package/dist/TransferList.mjs +354 -0
  203. package/dist/Typography.d.cts +2 -2
  204. package/dist/Typography.d.mts +2 -2
  205. package/dist/View.d.cts +1 -1
  206. package/dist/View.d.mts +1 -1
  207. package/dist/catalog.cjs +476 -18
  208. package/dist/catalog.d.cts +1 -1
  209. package/dist/catalog.d.mts +1 -1
  210. package/dist/catalog.mjs +476 -18
  211. package/dist/engine.d.cts +1 -1
  212. package/dist/engine.d.mts +1 -1
  213. package/dist/{index-DCmH5f9I.d.cts → index-B1RFybA_.d.mts} +2 -2
  214. package/dist/{index-Cj5Rhh_9.d.mts → index-B4TeaB7b.d.cts} +2 -2
  215. package/dist/{index-DIC7HKpP.d.mts → index-BGbTuHP9.d.mts} +1 -1
  216. package/dist/{index-BiVvxOvj.d.cts → index-BHKgEOZJ.d.cts} +2 -2
  217. package/dist/{index-BbgFYfX_.d.mts → index-BQWjh4rK.d.mts} +2 -2
  218. package/dist/{index-DJCpnTH3.d.mts → index-BelFIizY.d.cts} +3 -3
  219. package/dist/{index-C3KrFPCj.d.mts → index-BkzZxHVj.d.mts} +2 -2
  220. package/dist/{index-B8DNxyEw.d.mts → index-BrgwkY6z.d.mts} +2 -2
  221. package/dist/{index-DqjXDutI.d.mts → index-Bx0-6yeX.d.mts} +1 -1
  222. package/dist/index-BxVTIMnB.d.cts +1 -0
  223. package/dist/{index-Bhdn4KTy.d.cts → index-ByYxVl9O.d.mts} +3 -3
  224. package/dist/{index-gnh-Oe0n.d.cts → index-CE5JG1us.d.mts} +1 -1
  225. package/dist/{index-XxydXX8l.d.cts → index-CG_1uPrD.d.mts} +2 -2
  226. package/dist/{index-CVNJEUwJ.d.mts → index-CJhK7JND.d.mts} +49 -1
  227. package/dist/{index-BjfPEP_5.d.cts → index-CQfJZADG.d.cts} +2 -2
  228. package/dist/{index-DrVYWt-X.d.mts → index-CUz2h5xY.d.mts} +1 -1
  229. package/dist/{index-CrIxI8Na.d.mts → index-CbFaWtjK.d.mts} +2 -2
  230. package/dist/{index-BFruxTHv.d.cts → index-ChXeKJCk.d.cts} +1 -1
  231. package/dist/{index-DQcnJ5H4.d.cts → index-CknoXDLQ.d.cts} +2 -2
  232. package/dist/{index-IdMqR82e.d.cts → index-ClZyaZrR.d.mts} +2 -2
  233. package/dist/{index-Bxd9NOWb.d.mts → index-DAwcmIjN.d.cts} +2 -2
  234. package/dist/{index-CWnbCxgw.d.cts → index-DGnXJwLj.d.mts} +4 -4
  235. package/dist/{index-DmJ7yWWi.d.cts → index-DJ0f69wh.d.cts} +49 -1
  236. package/dist/{index-DckSub2J.d.mts → index-DWjz5ZzG.d.cts} +4 -4
  237. package/dist/{index-DXhMkjQ6.d.cts → index-DYF8sRE-.d.cts} +2 -2
  238. package/dist/index-DaIIo5QU.d.mts +1 -0
  239. package/dist/{index-BVPrG1L0.d.mts → index-DchHf5cF.d.cts} +1 -1
  240. package/dist/{index-BlLH6rlE.d.cts → index-DtYjdBvO.d.cts} +2 -2
  241. package/dist/{index-BqpS_Huq.d.mts → index-Dv_fk1_F.d.cts} +19 -3
  242. package/dist/{index-BSA6SKao.d.mts → index-K5exjvnX.d.cts} +2 -2
  243. package/dist/{index-BjPX49XA.d.mts → index-KnXhlKMr.d.cts} +1 -1
  244. package/dist/{index-B3LIhqHR.d.cts → index-WHFhjfgy.d.cts} +4 -4
  245. package/dist/{index-BCnKYNlZ.d.cts → index-YKrfFC_I.d.cts} +1 -1
  246. package/dist/{index-CoEqjFYn.d.mts → index-bpnLB_4K.d.mts} +4 -4
  247. package/dist/{index-DDJuUfL5.d.cts → index-h4dYtVrp.d.mts} +1 -1
  248. package/dist/{index-qlfNErNd.d.cts → index-ha1WjSZ5.d.mts} +19 -3
  249. package/dist/{index-DuVNRXP4.d.cts → index-nqUA_6J_.d.cts} +1 -1
  250. package/dist/{index-DeDxYlSQ.d.mts → index-pTNq3iQn.d.mts} +2 -2
  251. package/dist/index.d.cts +1 -1
  252. package/dist/index.d.mts +1 -1
  253. package/dist/isRtl-BJDtm86G.mjs +7 -0
  254. package/dist/isRtl-DTkYHRPo.cjs +12 -0
  255. package/dist/precision-B1lhxnnO.mjs +25 -0
  256. package/dist/precision-B58cTPB2.cjs +48 -0
  257. package/dist/style.d.cts +2 -2
  258. package/dist/style.d.mts +2 -2
  259. package/dist/theme.d.cts +3 -3
  260. package/dist/theme.d.mts +3 -3
  261. package/dist/useControlled-C666KpQ0.cjs +18 -0
  262. package/dist/useControlled-CBRLsO-H.mjs +13 -0
  263. package/dist/{useTablePagination-C5VKtqDp.d.cts → useTablePagination-C-u3ru4N.d.cts} +1 -1
  264. package/dist/{useTablePagination-C6LSlt3w.d.mts → useTablePagination-D-39ZmQh.d.mts} +1 -1
  265. package/package.json +42 -2
  266. package/dist/index-DBteSahY.d.cts +0 -1
  267. package/dist/index-_G1osn09.d.mts +0 -1
@@ -0,0 +1,675 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
+ const require_src = require("./src-DU81aGy9.cjs");
3
+ const require_utils = require("./utils.cjs");
4
+ const require_theme = require("./theme-BxXuXRgQ.cjs");
5
+ const require_FormControl = require("./FormControl.cjs");
6
+ const require_isRtl = require("./isRtl-DTkYHRPo.cjs");
7
+ const require_useControlled = require("./useControlled-C666KpQ0.cjs");
8
+ const require_precision = require("./precision-B58cTPB2.cjs");
9
+ let react = require("react");
10
+ let react_jsx_runtime = require("react/jsx-runtime");
11
+ let _soroush_tech_styled_system_should_forward_prop = require("@soroush.tech/styled-system/should-forward-prop");
12
+ //#region src/InputRange/utils/range.ts
13
+ /** How far along the range a value is, as a percent. */
14
+ function valueToPercent(value, min, max) {
15
+ return max === min ? 0 : (value - min) * 100 / (max - min);
16
+ }
17
+ /** The value a fraction of the way along the range is. */
18
+ function fractionToValue(fraction, min, max) {
19
+ return (max - min) * fraction + min;
20
+ }
21
+ const ascending = (a, b) => a - b;
22
+ /**
23
+ * The thumbs' values, sorted and clamped to the range - one for a number, each for an array. An
24
+ * empty array has no thumb to draw or move, so it is one thumb at `min`, as no value is.
25
+ */
26
+ function normalizeValues(value, min, max) {
27
+ const list = typeof value === "number" ? [value] : [...value].sort(ascending);
28
+ return (list.length === 0 ? [min] : list).map((entry) => require_utils.clamp(entry, min, max));
29
+ }
30
+ /** The marks: one at every step for `true`, the ones given, or none. */
31
+ function getMarks(marks, step, min, max) {
32
+ if (marks === true && step !== null) {
33
+ const steps = Math.floor(Number(((max - min) / step).toPrecision(12)));
34
+ return Array.from({ length: steps + 1 }, (_, index) => ({ value: require_precision.snapToStep(min + step * index, step, min) }));
35
+ }
36
+ return Array.isArray(marks) ? marks : [];
37
+ }
38
+ /** The index of the value nearest `target` - the preferred one when it is as near as the nearest. */
39
+ function findClosest(values, target, preferredIndex = -1) {
40
+ let closest = 0;
41
+ values.forEach((value, index) => {
42
+ if (Math.abs(target - value) <= Math.abs(target - values[closest])) closest = index;
43
+ });
44
+ return preferredIndex >= 0 && values[preferredIndex] === values[closest] ? preferredIndex : closest;
45
+ }
46
+ /**
47
+ * Moves one thumb to a value. Passing a neighbour swaps their places, the values staying sorted;
48
+ * without `shouldSwap` the thumb stops at its neighbour instead.
49
+ */
50
+ function moveThumb(values, index, target, shouldSwap) {
51
+ const bounded = shouldSwap ? target : require_utils.clamp(target, values[index - 1] ?? Number.NEGATIVE_INFINITY, values[index + 1] ?? Number.POSITIVE_INFINITY);
52
+ const moved = values.map((value, place) => place === index ? bounded : value).sort(ascending);
53
+ return {
54
+ values: moved,
55
+ index: shouldSwap ? moved.indexOf(bounded) : index
56
+ };
57
+ }
58
+ function areValuesEqual(a, b) {
59
+ return a.length === b.length && a.every((value, index) => value === b[index]);
60
+ }
61
+ const KEYS = /* @__PURE__ */ new Set([
62
+ "ArrowUp",
63
+ "ArrowDown",
64
+ "ArrowLeft",
65
+ "ArrowRight",
66
+ "PageUp",
67
+ "PageDown",
68
+ "Home",
69
+ "End"
70
+ ]);
71
+ /** Whether the slider takes the key. */
72
+ const isRangeKey = (key) => KEYS.has(key);
73
+ const upKeys = (isRtl) => [
74
+ "ArrowUp",
75
+ isRtl ? "ArrowLeft" : "ArrowRight",
76
+ "PageUp",
77
+ "End"
78
+ ];
79
+ const downKeys = (isRtl) => [
80
+ "ArrowDown",
81
+ isRtl ? "ArrowRight" : "ArrowLeft",
82
+ "PageDown",
83
+ "Home"
84
+ ];
85
+ function getMarkValue({ key, value, isRtl, marks }) {
86
+ const values = marks.map((mark) => mark.value);
87
+ if (values.length === 0) return null;
88
+ if (key === "Home") return values[0];
89
+ if (key === "End") return values.at(-1);
90
+ if (downKeys(isRtl).includes(key)) return [...values].reverse().find((mark) => mark < value) ?? values[0];
91
+ return values.find((mark) => mark > value) ?? values.at(-1);
92
+ }
93
+ /** The value a key moves a thumb to - `null` when the key moves nothing. */
94
+ function getKeyValue(params) {
95
+ const { key, shiftKey, value, step, shiftStep, min, max, isRtl } = params;
96
+ if (!isRangeKey(key)) return null;
97
+ if (step === null) return getMarkValue(params);
98
+ if (key === "Home") return min;
99
+ if (key === "End") return max;
100
+ const size = key === "PageUp" || key === "PageDown" || shiftKey ? shiftStep : step;
101
+ const direction = upKeys(isRtl).includes(key) ? 1 : -1;
102
+ return require_utils.clamp(require_precision.addExact(value, direction * size), min, max);
103
+ }
104
+ /** The value under a point - along the box, snapped to the step or the nearest mark. */
105
+ function getValueAtPoint({ x, y, rect, orientation, isRtl, min, max, step, marks }) {
106
+ const length = orientation === "vertical" ? rect.height : rect.width;
107
+ if (length === 0) return null;
108
+ let fraction = orientation === "vertical" ? (rect.bottom - y) / length : (x - rect.left) / length;
109
+ if (orientation === "horizontal" && isRtl) fraction = 1 - fraction;
110
+ const raw = fractionToValue(fraction, min, max);
111
+ if (step !== null) return require_utils.clamp(require_precision.snapToStep(raw, step, min), min, max);
112
+ const markValues = marks.map((mark) => mark.value);
113
+ if (markValues.length === 0) return require_utils.clamp(raw, min, max);
114
+ return require_utils.clamp(markValues[findClosest(markValues, raw)], min, max);
115
+ }
116
+ //#endregion
117
+ //#region src/InputRange/hooks/useInputRange.ts
118
+ const NONE = -1;
119
+ function withTarget(event, target) {
120
+ const native = event.nativeEvent;
121
+ const clone = new native.constructor(native.type, native);
122
+ Object.defineProperty(clone, "target", {
123
+ writable: true,
124
+ value: target
125
+ });
126
+ return clone;
127
+ }
128
+ /**
129
+ * A slider's state: its value (controlled or not) as the thumbs' sorted values, which thumb is
130
+ * pressed, hovered or focused, and the handlers - the pointer's on the root, which keeps the
131
+ * pointer while it drags, and the keys' and the native input's on each thumb's own input.
132
+ */
133
+ function useInputRange({ value: valueProp, defaultValue, min, max, step, shiftStep, marks, orientation, shouldSwapThumbs, isDisabled, name, rootRef, onChange, onChangeCommitted }) {
134
+ const [value, setValue] = require_useControlled.useControlled({
135
+ controlled: valueProp,
136
+ default: defaultValue ?? min
137
+ });
138
+ const isRange = typeof value !== "number";
139
+ const values = normalizeValues(value, min, max);
140
+ const [active, setActive] = (0, react.useState)(NONE);
141
+ const [hovered, setHovered] = (0, react.useState)(NONE);
142
+ const [focused, setFocused] = (0, react.useState)(NONE);
143
+ const [lastUsed, setLastUsed] = (0, react.useState)(NONE);
144
+ const dragIndex = (0, react.useRef)(NONE);
145
+ const pointerId = (0, react.useRef)(NONE);
146
+ const lastChanged = (0, react.useRef)(0);
147
+ const toOutput = (list) => isRange ? [...list] : list[0];
148
+ const emit = (event, list, index) => {
149
+ const next = toOutput(list);
150
+ setValue(next);
151
+ if (areValuesEqual(list, values)) return;
152
+ lastChanged.current = next;
153
+ onChange?.(withTarget(event, {
154
+ value: next,
155
+ name
156
+ }), next, index);
157
+ };
158
+ const focusThumb = (index) => {
159
+ (rootRef.current?.querySelector(`input[data-index="${index}"]`))?.focus({ preventScroll: true });
160
+ };
161
+ const resolveAt = (event, held) => {
162
+ const target = getValueAtPoint({
163
+ x: event.clientX,
164
+ y: event.clientY,
165
+ rect: rootRef.current.getBoundingClientRect(),
166
+ orientation,
167
+ isRtl: require_isRtl.isRtl(rootRef.current),
168
+ min,
169
+ max,
170
+ step,
171
+ marks
172
+ });
173
+ if (target === null) return null;
174
+ const index = held === NONE ? findClosest(values, target, lastUsed) : held;
175
+ return moveThumb(values, index, target, shouldSwapThumbs);
176
+ };
177
+ const hold = (event, moved) => {
178
+ dragIndex.current = moved.index;
179
+ setActive(moved.index);
180
+ setLastUsed(moved.index);
181
+ focusThumb(moved.index);
182
+ emit(event, moved.values, moved.index);
183
+ };
184
+ const handlePointerDown = (event) => {
185
+ if (isDisabled || event.defaultPrevented || event.button !== 0) return;
186
+ const moved = resolveAt(event, NONE);
187
+ if (moved === null) return;
188
+ event.preventDefault();
189
+ pointerId.current = event.pointerId;
190
+ lastChanged.current = toOutput(values);
191
+ hold(event, moved);
192
+ try {
193
+ event.currentTarget.setPointerCapture(event.pointerId);
194
+ } catch {}
195
+ };
196
+ const release = (event) => {
197
+ setActive(NONE);
198
+ pointerId.current = NONE;
199
+ dragIndex.current = NONE;
200
+ if (event.currentTarget.hasPointerCapture?.(event.pointerId)) event.currentTarget.releasePointerCapture(event.pointerId);
201
+ onChangeCommitted?.(event, lastChanged.current);
202
+ };
203
+ const handlePointerMove = (event) => {
204
+ if (event.pointerId !== pointerId.current) return;
205
+ if (event.buttons === 0) return release(event);
206
+ const moved = resolveAt(event, dragIndex.current);
207
+ if (moved !== null) hold(event, moved);
208
+ };
209
+ const handlePointerEnd = (event) => {
210
+ if (event.pointerId === pointerId.current) release(event);
211
+ };
212
+ const change = (event, index, target) => {
213
+ const moved = moveThumb(values, index, require_utils.clamp(target, min, max), shouldSwapThumbs);
214
+ if (moved.index !== index) focusThumb(moved.index);
215
+ setFocused(moved.index);
216
+ emit(event, moved.values, moved.index);
217
+ onChangeCommitted?.(event, toOutput(moved.values));
218
+ };
219
+ const getInputProps = (index) => ({
220
+ onKeyDown: (event) => {
221
+ if (!isRangeKey(event.key)) return;
222
+ event.preventDefault();
223
+ const next = getKeyValue({
224
+ key: event.key,
225
+ shiftKey: event.shiftKey,
226
+ value: values[index],
227
+ step,
228
+ shiftStep,
229
+ min,
230
+ max,
231
+ isRtl: require_isRtl.isRtl(event.currentTarget),
232
+ marks
233
+ });
234
+ if (next !== null) change(event, index, next);
235
+ },
236
+ onChange: (event) => {
237
+ const typed = event.currentTarget.valueAsNumber;
238
+ const markValues = marks.map((mark) => mark.value);
239
+ const target = step === null && markValues.length > 0 ? markValues[findClosest(markValues, typed)] : typed;
240
+ change(event, index, target);
241
+ },
242
+ onFocus: () => setFocused(index),
243
+ onBlur: () => setFocused(NONE)
244
+ });
245
+ const getThumbProps = (index) => ({
246
+ onMouseEnter: () => setHovered(index),
247
+ onMouseLeave: () => setHovered(NONE)
248
+ });
249
+ return {
250
+ values,
251
+ isRange,
252
+ active: isDisabled ? NONE : active,
253
+ hovered,
254
+ focused,
255
+ lastUsed,
256
+ rootProps: {
257
+ onPointerDown: handlePointerDown,
258
+ onPointerMove: handlePointerMove,
259
+ onPointerUp: handlePointerEnd,
260
+ onPointerCancel: handlePointerEnd,
261
+ onLostPointerCapture: handlePointerEnd
262
+ },
263
+ getInputProps,
264
+ getThumbProps
265
+ };
266
+ }
267
+ //#endregion
268
+ //#region src/InputRange/InputRange.tsx
269
+ const RAIL = {
270
+ sm: .25,
271
+ md: .5,
272
+ lg: .75
273
+ };
274
+ const railThickness = (theme, size) => theme.space[RAIL[size] ?? .5];
275
+ const layoutStyles = (0, require_src.src_exports.system)({
276
+ width: true,
277
+ height: true,
278
+ minWidth: true,
279
+ maxWidth: true,
280
+ minHeight: true,
281
+ maxHeight: true
282
+ });
283
+ const InputRangeRoot = require_src.styled("span", {
284
+ name: "InputRange",
285
+ label: "InputRange",
286
+ shouldForwardProp: (0, _soroush_tech_styled_system_should_forward_prop.createShouldForwardProp)([
287
+ ..._soroush_tech_styled_system_should_forward_prop.props,
288
+ "size",
289
+ "orientation",
290
+ "isDisabled"
291
+ ]),
292
+ systemProps: [require_src.src_exports.space, layoutStyles]
293
+ })(({ theme, size, orientation, isDisabled }) => {
294
+ const thumb = theme.icon[size];
295
+ return {
296
+ position: "relative",
297
+ display: "block",
298
+ boxSizing: "border-box",
299
+ ...orientation === "vertical" ? {
300
+ width: thumb,
301
+ height: "12rem",
302
+ marginBlock: `calc(${thumb} / 2)`
303
+ } : {
304
+ height: thumb,
305
+ marginInline: `calc(${thumb} / 2)`
306
+ },
307
+ touchAction: "none",
308
+ userSelect: "none",
309
+ cursor: "pointer",
310
+ ...isDisabled && {
311
+ opacity: .5,
312
+ cursor: "not-allowed",
313
+ pointerEvents: "none"
314
+ }
315
+ };
316
+ });
317
+ const InputRangeRail = require_src.styled("span", {
318
+ name: "InputRange",
319
+ slot: "rail",
320
+ label: "InputRangeRail",
321
+ shouldForwardProp: (0, _soroush_tech_styled_system_should_forward_prop.createShouldForwardProp)([
322
+ "size",
323
+ "orientation",
324
+ "color",
325
+ "isInverted"
326
+ ])
327
+ })(({ theme, size, orientation, color, isInverted }) => {
328
+ const thickness = railThickness(theme, size);
329
+ const fill = isInverted ? (0, require_src.src_exports.get)(theme, `palette.${color}.main`) : (0, require_src.src_exports.get)(theme, "border.light");
330
+ return {
331
+ position: "absolute",
332
+ borderRadius: theme.radii.sm,
333
+ backgroundColor: fill,
334
+ ...orientation === "vertical" ? {
335
+ top: 0,
336
+ bottom: 0,
337
+ insetInlineStart: "50%",
338
+ width: thickness,
339
+ marginInlineStart: `calc(${thickness} / -2)`
340
+ } : {
341
+ insetInlineStart: 0,
342
+ insetInlineEnd: 0,
343
+ top: "50%",
344
+ height: thickness,
345
+ marginTop: `calc(${thickness} / -2)`
346
+ }
347
+ };
348
+ });
349
+ const InputRangeTrack = require_src.styled("span", {
350
+ name: "InputRange",
351
+ slot: "track",
352
+ label: "InputRangeTrack",
353
+ shouldForwardProp: (0, _soroush_tech_styled_system_should_forward_prop.createShouldForwardProp)([
354
+ "size",
355
+ "orientation",
356
+ "color",
357
+ "isInverted",
358
+ "isDragging"
359
+ ])
360
+ })(({ theme, size, orientation, color, isInverted, isDragging }) => {
361
+ const thickness = railThickness(theme, size);
362
+ const fill = isInverted ? (0, require_src.src_exports.get)(theme, "border.light") : (0, require_src.src_exports.get)(theme, `palette.${color}.main`);
363
+ return {
364
+ position: "absolute",
365
+ borderRadius: theme.radii.sm,
366
+ backgroundColor: fill,
367
+ transition: isDragging ? "none" : "inset 0.1s ease, width 0.1s ease, height 0.1s ease",
368
+ "@media (prefers-reduced-motion: reduce)": { transition: "none" },
369
+ ...orientation === "vertical" ? {
370
+ insetInlineStart: "50%",
371
+ width: thickness,
372
+ marginInlineStart: `calc(${thickness} / -2)`
373
+ } : {
374
+ top: "50%",
375
+ height: thickness,
376
+ marginTop: `calc(${thickness} / -2)`
377
+ }
378
+ };
379
+ });
380
+ const InputRangeMark = require_src.styled("span", {
381
+ name: "InputRange",
382
+ slot: "mark",
383
+ label: "InputRangeMark",
384
+ shouldForwardProp: (0, _soroush_tech_styled_system_should_forward_prop.createShouldForwardProp)([
385
+ "size",
386
+ "orientation",
387
+ "color",
388
+ "isActive"
389
+ ])
390
+ })(({ theme, size, orientation, color, isActive }) => {
391
+ const thickness = railThickness(theme, size);
392
+ return {
393
+ position: "absolute",
394
+ pointerEvents: "none",
395
+ opacity: isActive ? .5 : 1,
396
+ backgroundColor: isActive ? (0, require_src.src_exports.get)(theme, `palette.${color}.contrastText`) : (0, require_src.src_exports.get)(theme, "text.disabled"),
397
+ ...orientation === "vertical" ? {
398
+ insetInlineStart: "50%",
399
+ width: thickness,
400
+ height: 2,
401
+ marginInlineStart: `calc(${thickness} / -2)`,
402
+ marginBottom: -1
403
+ } : {
404
+ top: "50%",
405
+ width: 2,
406
+ height: thickness,
407
+ marginTop: `calc(${thickness} / -2)`,
408
+ marginInlineStart: -1
409
+ }
410
+ };
411
+ });
412
+ const InputRangeMarkLabel = require_src.styled("span", {
413
+ name: "InputRange",
414
+ slot: "markLabel",
415
+ label: "InputRangeMarkLabel",
416
+ shouldForwardProp: (0, _soroush_tech_styled_system_should_forward_prop.createShouldForwardProp)(["size", "orientation"])
417
+ })(({ theme, size, orientation }) => {
418
+ const thumb = theme.icon[size];
419
+ return {
420
+ position: "absolute",
421
+ pointerEvents: "none",
422
+ whiteSpace: "nowrap",
423
+ fontSize: theme.fontSizes[0],
424
+ color: (0, require_src.src_exports.get)(theme, "text.secondary"),
425
+ ...orientation === "vertical" ? {
426
+ insetInlineStart: `calc(50% + ${thumb})`,
427
+ transform: "translateY(50%)"
428
+ } : {
429
+ top: `calc(50% + ${thumb})`,
430
+ transform: "translateX(-50%)",
431
+ "[dir=\"rtl\"] &": { transform: "translateX(50%)" }
432
+ }
433
+ };
434
+ });
435
+ const InputRangeThumb = require_src.styled("span", {
436
+ name: "InputRange",
437
+ slot: "thumb",
438
+ label: "InputRangeThumb",
439
+ shouldForwardProp: (0, _soroush_tech_styled_system_should_forward_prop.createShouldForwardProp)([
440
+ "size",
441
+ "orientation",
442
+ "color",
443
+ "isActive",
444
+ "isPassive"
445
+ ])
446
+ })(({ theme, size, orientation, color, isActive, isPassive }) => {
447
+ const thumb = theme.icon[size];
448
+ const main = (0, require_src.src_exports.get)(theme, `palette.${color}.main`);
449
+ return {
450
+ position: "absolute",
451
+ boxSizing: "border-box",
452
+ width: thumb,
453
+ height: thumb,
454
+ borderRadius: "50%",
455
+ backgroundColor: main,
456
+ ...isPassive && { pointerEvents: "none" },
457
+ boxShadow: isActive ? `0 0 0 ${theme.space[1]} ${main}33` : "none",
458
+ transition: "box-shadow 0.15s ease",
459
+ "&:hover": { boxShadow: `0 0 0 ${theme.space[1]} ${main}29` },
460
+ "&:has(input:focus-visible)": {
461
+ outline: `${theme.borderWidths.base} solid ${main}`,
462
+ outlineOffset: theme.space[.5]
463
+ },
464
+ "@media (prefers-reduced-motion: reduce)": { transition: "none" },
465
+ ...orientation === "vertical" ? {
466
+ insetInlineStart: "50%",
467
+ marginInlineStart: `calc(${thumb} / -2)`,
468
+ marginBottom: `calc(${thumb} / -2)`
469
+ } : {
470
+ top: "50%",
471
+ marginTop: `calc(${thumb} / -2)`,
472
+ marginInlineStart: `calc(${thumb} / -2)`
473
+ }
474
+ };
475
+ });
476
+ const InputRangeInput = require_src.styled("input", {
477
+ name: "InputRange",
478
+ slot: "input",
479
+ label: "InputRangeInput",
480
+ shouldForwardProp: (0, _soroush_tech_styled_system_should_forward_prop.createShouldForwardProp)(["orientation"])
481
+ })(({ orientation }) => ({
482
+ position: "absolute",
483
+ inset: 0,
484
+ width: "100%",
485
+ height: "100%",
486
+ margin: 0,
487
+ padding: 0,
488
+ opacity: 0,
489
+ pointerEvents: "none",
490
+ ...orientation === "vertical" && { writingMode: "vertical-lr" }
491
+ }));
492
+ const InputRangeValueLabel = require_src.styled("span", {
493
+ name: "InputRange",
494
+ slot: "valueLabel",
495
+ label: "InputRangeValueLabel",
496
+ shouldForwardProp: (0, _soroush_tech_styled_system_should_forward_prop.createShouldForwardProp)([
497
+ "color",
498
+ "orientation",
499
+ "isOpen"
500
+ ])
501
+ })(({ theme, color, orientation, isOpen }) => ({
502
+ position: "absolute",
503
+ pointerEvents: "none",
504
+ whiteSpace: "nowrap",
505
+ padding: `${theme.space[.25]} ${theme.space[1]}`,
506
+ borderRadius: theme.radii.sm,
507
+ fontSize: theme.fontSizes[0],
508
+ lineHeight: 1.4,
509
+ color: (0, require_src.src_exports.get)(theme, `palette.${color}.contrastText`),
510
+ backgroundColor: (0, require_src.src_exports.get)(theme, `palette.${color}.main`),
511
+ visibility: isOpen ? "visible" : "hidden",
512
+ ...orientation === "vertical" ? {
513
+ insetInlineStart: "100%",
514
+ top: "50%",
515
+ marginInlineStart: theme.space[1],
516
+ transform: "translateY(-50%)"
517
+ } : {
518
+ bottom: "100%",
519
+ insetInlineStart: "50%",
520
+ marginBottom: theme.space[1],
521
+ transform: "translateX(-50%)",
522
+ "[dir=\"rtl\"] &": { transform: "translateX(50%)" }
523
+ }
524
+ }));
525
+ const place = (orientation, percent) => orientation === "vertical" ? { bottom: `${percent}%` } : { insetInlineStart: `${percent}%` };
526
+ /**
527
+ * @description A slider: one value on a range, or two or more thumbs for a range of values.
528
+ * Each thumb is a visually hidden native `<input type="range">`, so the keys (the arrows, Page,
529
+ * Home and End), assistive technology and forms work as the platform's; the pointer drags a thumb,
530
+ * touch included. Marks, a value label, a vertical layout and a track drawn or not or inverted.
531
+ * In a `FormControl` it takes the field's size, color, error, and disabled state, and its
532
+ * `FormLabel` targets the first thumb.
533
+ */
534
+ function InputRange({ value, defaultValue, onChange, onChangeCommitted, min = 0, max = 100, step: stepProp, shiftStep: shiftStepProp, marks: marksProp, orientation: orientationProp, track: trackProp, scale = (entry) => entry, valueLabel: valueLabelProp, formatValueLabel, getAriaLabel, getAriaValueText, shouldSwapThumbs: shouldSwapProp, size: sizeProp, color: colorProp, disabled: disabledProp, error: errorProp, name, id: idProp, className, "aria-label": ariaLabel, "aria-labelledby": ariaLabelledby, "aria-describedby": ariaDescribedby, "data-testid": dataTestid, ...rest }) {
535
+ const dp = require_theme.useDefaultProps("InputRange");
536
+ const fc = require_FormControl.useFormControl({
537
+ id: idProp,
538
+ error: errorProp,
539
+ disabled: disabledProp,
540
+ size: sizeProp ?? dp.size,
541
+ color: colorProp ?? dp.color
542
+ });
543
+ const color = fc.error ? "error" : fc.color ?? "primary";
544
+ const step = stepProp === void 0 ? dp.step ?? 1 : stepProp;
545
+ const orientation = orientationProp ?? dp.orientation ?? "horizontal";
546
+ const track = trackProp ?? dp.track ?? "normal";
547
+ const valueLabel = valueLabelProp ?? dp.valueLabel ?? "off";
548
+ const marks = getMarks(marksProp ?? false, step, min, max);
549
+ const rootRef = (0, react.useRef)(null);
550
+ const baseId = (0, react.useId)();
551
+ const range = useInputRange({
552
+ value,
553
+ defaultValue,
554
+ min,
555
+ max,
556
+ step,
557
+ shiftStep: shiftStepProp ?? dp.shiftStep ?? 10,
558
+ marks,
559
+ orientation,
560
+ shouldSwapThumbs: shouldSwapProp ?? dp.shouldSwapThumbs ?? true,
561
+ isDisabled: fc.disabled,
562
+ name,
563
+ rootRef,
564
+ onChange,
565
+ onChangeCommitted
566
+ });
567
+ const { values } = range;
568
+ const thumbKeys = values.map((_, position) => `${baseId}-${position}`);
569
+ const trackStart = valueToPercent(range.isRange ? values[0] : min, min, max);
570
+ const trackEnd = valueToPercent(values.at(-1), min, max);
571
+ const isInverted = track === "inverted";
572
+ const axis = {
573
+ size: fc.size,
574
+ orientation
575
+ };
576
+ const isDragging = range.active !== -1;
577
+ const isMarkActive = (mark) => {
578
+ if (track === false) return false;
579
+ const covered = mark >= values[0] && mark <= values.at(-1);
580
+ return range.isRange || isInverted ? covered !== isInverted : mark <= values[0];
581
+ };
582
+ const trackStyle = orientation === "vertical" ? {
583
+ bottom: `${trackStart}%`,
584
+ height: `${trackEnd - trackStart}%`
585
+ } : {
586
+ insetInlineStart: `${trackStart}%`,
587
+ width: `${trackEnd - trackStart}%`
588
+ };
589
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(InputRangeRoot, {
590
+ ref: rootRef,
591
+ isDisabled: fc.disabled,
592
+ className,
593
+ "data-testid": dataTestid,
594
+ ...axis,
595
+ ...range.rootProps,
596
+ ...rest,
597
+ children: [
598
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)(InputRangeRail, {
599
+ color,
600
+ isInverted,
601
+ ...axis
602
+ }),
603
+ track !== false && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(InputRangeTrack, {
604
+ color,
605
+ isInverted,
606
+ isDragging,
607
+ style: trackStyle,
608
+ ...axis
609
+ }),
610
+ marks.filter((mark) => mark.value >= min && mark.value <= max).map((mark) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react.Fragment, { children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(InputRangeMark, {
611
+ "data-mark": mark.value,
612
+ color,
613
+ isActive: isMarkActive(mark.value),
614
+ style: place(orientation, valueToPercent(mark.value, min, max)),
615
+ ...axis
616
+ }), mark.label != null && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(InputRangeMarkLabel, {
617
+ "aria-hidden": true,
618
+ style: place(orientation, valueToPercent(mark.value, min, max)),
619
+ ...axis,
620
+ children: mark.label
621
+ })] }, mark.value)),
622
+ values.map((thumbValue, index) => {
623
+ const isShown = valueLabel === "on" || valueLabel === "auto" && [
624
+ range.active,
625
+ range.hovered,
626
+ range.focused
627
+ ].includes(index);
628
+ const zIndex = range.lastUsed === index ? 1 : void 0;
629
+ const input = range.getInputProps(index);
630
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(InputRangeThumb, {
631
+ "data-index": index,
632
+ color,
633
+ isActive: range.active === index,
634
+ isPassive: range.active !== -1 && range.active !== index,
635
+ style: {
636
+ ...place(orientation, valueToPercent(thumbValue, min, max)),
637
+ zIndex
638
+ },
639
+ ...axis,
640
+ ...range.getThumbProps(index),
641
+ children: [valueLabel !== "off" && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(InputRangeValueLabel, {
642
+ "aria-hidden": true,
643
+ color,
644
+ orientation,
645
+ isOpen: isShown,
646
+ children: formatValueLabel ? formatValueLabel(scale(thumbValue), index) : scale(thumbValue)
647
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(InputRangeInput, {
648
+ type: "range",
649
+ orientation,
650
+ "data-index": index,
651
+ id: index === 0 ? fc.id : void 0,
652
+ name,
653
+ min,
654
+ max,
655
+ step: step ?? "any",
656
+ value: thumbValue,
657
+ disabled: fc.disabled,
658
+ "aria-label": getAriaLabel?.(index) ?? ariaLabel,
659
+ "aria-labelledby": ariaLabelledby ?? fc.labelId,
660
+ "aria-describedby": ariaDescribedby ?? fc["aria-describedby"],
661
+ "aria-invalid": fc.error || void 0,
662
+ "aria-orientation": orientation,
663
+ "aria-valuemin": scale(min),
664
+ "aria-valuemax": scale(max),
665
+ "aria-valuenow": scale(thumbValue),
666
+ "aria-valuetext": getAriaValueText?.(scale(thumbValue), index),
667
+ ...input
668
+ })]
669
+ }, thumbKeys[index]);
670
+ })
671
+ ]
672
+ });
673
+ }
674
+ //#endregion
675
+ exports.InputRange = InputRange;