@g4rcez/components 5.0.2 → 5.0.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 (273) hide show
  1. package/dist/AnimatePresence-j36AYeOQ.js +181 -0
  2. package/dist/AnimatePresence-j36AYeOQ.js.map +1 -0
  3. package/dist/Calendar.es-xICmgvjq.js +23 -0
  4. package/dist/Calendar.es-xICmgvjq.js.map +1 -0
  5. package/dist/Funnel.es-DjKVl8Nj.js +23 -0
  6. package/dist/Funnel.es-DjKVl8Nj.js.map +1 -0
  7. package/dist/{MotionConfig-DKKYqBH2.js → MotionConfig-CXHoPGbK.js} +2 -2
  8. package/dist/{MotionConfig-DKKYqBH2.js.map → MotionConfig-CXHoPGbK.js.map} +1 -1
  9. package/dist/Plus.es-DbyRkEE2.js +23 -0
  10. package/dist/Plus.es-DbyRkEE2.js.map +1 -0
  11. package/dist/Trash.es-BFAc8PMf.js +23 -0
  12. package/dist/Trash.es-BFAc8PMf.js.map +1 -0
  13. package/dist/{calendar-PCCZDUIL.js → calendar-DEPkz8sw.js} +364 -502
  14. package/dist/calendar-DEPkz8sw.js.map +1 -0
  15. package/dist/calendar-header-Dfr-CwkY.js +174 -0
  16. package/dist/calendar-header-Dfr-CwkY.js.map +1 -0
  17. package/dist/chunk-jwUa06l-.js +23 -0
  18. package/dist/components/core/button.js +1 -1
  19. package/dist/components/core/heading.js +11 -0
  20. package/dist/components/core/heading.js.map +1 -0
  21. package/dist/{polymorph-BLXhrn9n.js → components/core/polymorph.js} +2 -2
  22. package/dist/components/core/polymorph.js.map +1 -0
  23. package/dist/components/core/render-on-view.js +29 -0
  24. package/dist/components/core/render-on-view.js.map +1 -0
  25. package/dist/components/core/resizable.d.ts +7 -1
  26. package/dist/components/core/resizable.d.ts.map +1 -1
  27. package/dist/components/core/resizable.js +60 -0
  28. package/dist/components/core/resizable.js.map +1 -0
  29. package/dist/components/core/resizable.jsx +46 -40
  30. package/dist/{slot-pC8kH9De.js → components/core/slot.js} +2 -2
  31. package/dist/components/core/slot.js.map +1 -0
  32. package/dist/components/core/tag.js +1 -1
  33. package/dist/components/core/typography.js +40 -0
  34. package/dist/components/core/typography.js.map +1 -0
  35. package/dist/components/display/alert.d.ts.map +1 -1
  36. package/dist/components/display/alert.js +83 -102
  37. package/dist/components/display/alert.js.map +1 -1
  38. package/dist/components/display/alert.jsx +26 -29
  39. package/dist/components/display/calendar.d.ts.map +1 -1
  40. package/dist/components/display/calendar.js +1 -1
  41. package/dist/components/display/calendar.jsx +15 -10
  42. package/dist/components/display/card.js +2 -2
  43. package/dist/components/display/empty.d.ts.map +1 -1
  44. package/dist/components/display/empty.js +25 -0
  45. package/dist/components/display/empty.js.map +1 -0
  46. package/dist/components/display/empty.jsx +3 -1
  47. package/dist/components/display/list.d.ts.map +1 -1
  48. package/dist/components/display/list.js +132 -122
  49. package/dist/components/display/list.js.map +1 -1
  50. package/dist/components/display/list.jsx +30 -25
  51. package/dist/components/display/notifications.d.ts.map +1 -1
  52. package/dist/components/display/notifications.js +1 -1
  53. package/dist/components/display/notifications.jsx +8 -6
  54. package/dist/components/display/progress.d.ts.map +1 -1
  55. package/dist/components/display/progress.js +3 -0
  56. package/dist/components/display/progress.jsx +6 -8
  57. package/dist/components/display/shortcut.js +2 -0
  58. package/dist/components/display/skeleton.js +41 -0
  59. package/dist/components/display/skeleton.js.map +1 -0
  60. package/dist/components/display/spinner.js +17 -0
  61. package/dist/components/display/spinner.js.map +1 -0
  62. package/dist/components/display/step.d.ts.map +1 -1
  63. package/dist/components/display/step.js +3 -0
  64. package/dist/components/display/step.jsx +5 -5
  65. package/dist/components/display/tabs.js +1 -1
  66. package/dist/components/display/timeline.js +1 -1
  67. package/dist/components/floating/command-palette.d.ts.map +1 -1
  68. package/dist/components/floating/command-palette.js +255 -0
  69. package/dist/components/floating/command-palette.js.map +1 -0
  70. package/dist/components/floating/command-palette.jsx +34 -25
  71. package/dist/components/floating/dropdown.js +1 -1
  72. package/dist/components/floating/dropdown.js.map +1 -1
  73. package/dist/components/floating/dropdown.jsx +1 -1
  74. package/dist/components/floating/expand.js +15 -14
  75. package/dist/components/floating/expand.js.map +1 -1
  76. package/dist/components/floating/menu.js +1 -1
  77. package/dist/components/floating/modal.d.ts +14 -11
  78. package/dist/components/floating/modal.d.ts.map +1 -1
  79. package/dist/components/floating/modal.js +1 -1
  80. package/dist/components/floating/modal.jsx +56 -17
  81. package/dist/components/floating/toolbar.d.ts +3 -3
  82. package/dist/components/floating/toolbar.d.ts.map +1 -1
  83. package/dist/components/floating/toolbar.js +20 -0
  84. package/dist/components/floating/toolbar.js.map +1 -0
  85. package/dist/components/floating/toolbar.jsx +7 -3
  86. package/dist/components/floating/tooltip.js +2 -2
  87. package/dist/components/floating/tooltip.js.map +1 -1
  88. package/dist/components/floating/tooltip.jsx +1 -1
  89. package/dist/components/floating/wizard.js +3 -0
  90. package/dist/components/form/autocomplete.d.ts.map +1 -1
  91. package/dist/components/form/autocomplete.js +344 -2
  92. package/dist/components/form/autocomplete.js.map +1 -0
  93. package/dist/components/form/autocomplete.jsx +27 -18
  94. package/dist/components/form/checkbox.d.ts.map +1 -1
  95. package/dist/components/form/checkbox.js +29 -27
  96. package/dist/components/form/checkbox.js.map +1 -1
  97. package/dist/components/form/checkbox.jsx +21 -6
  98. package/dist/components/form/date-picker.js +1 -1
  99. package/dist/components/form/date-picker.jsx +1 -1
  100. package/dist/components/form/file-upload.d.ts +6 -1
  101. package/dist/components/form/file-upload.d.ts.map +1 -1
  102. package/dist/components/form/file-upload.js +1 -1
  103. package/dist/components/form/file-upload.jsx +34 -12
  104. package/dist/components/form/formReset.js +10 -0
  105. package/dist/components/form/formReset.js.map +1 -0
  106. package/dist/components/form/free-text.js +70 -0
  107. package/dist/components/form/free-text.js.map +1 -0
  108. package/dist/components/form/free-text.jsx +1 -1
  109. package/dist/components/form/input-field.d.ts.map +1 -1
  110. package/dist/components/form/input-field.js +3 -0
  111. package/dist/components/form/input-field.jsx +14 -8
  112. package/dist/components/form/input.js +1 -1
  113. package/dist/components/form/multi-select.d.ts.map +1 -1
  114. package/dist/components/form/multi-select.js +420 -0
  115. package/dist/components/form/multi-select.js.map +1 -0
  116. package/dist/components/form/multi-select.jsx +41 -33
  117. package/dist/components/form/select.d.ts.map +1 -1
  118. package/dist/components/form/select.js +55 -51
  119. package/dist/components/form/select.js.map +1 -1
  120. package/dist/components/form/select.jsx +8 -5
  121. package/dist/components/form/slider.js +3 -0
  122. package/dist/components/form/switch.d.ts +2 -1
  123. package/dist/components/form/switch.d.ts.map +1 -1
  124. package/dist/components/form/switch.js +32 -26
  125. package/dist/components/form/switch.js.map +1 -1
  126. package/dist/components/form/switch.jsx +26 -13
  127. package/dist/components/form/textarea.js +19 -0
  128. package/dist/components/form/textarea.js.map +1 -0
  129. package/dist/components/page-calendar/calendar-header.d.ts.map +1 -1
  130. package/dist/components/page-calendar/calendar-header.js +2 -0
  131. package/dist/components/page-calendar/calendar-header.jsx +6 -4
  132. package/dist/components/page-calendar/day-view.js +124 -0
  133. package/dist/components/page-calendar/day-view.js.map +1 -0
  134. package/dist/components/page-calendar/event-pill.js +44 -0
  135. package/dist/components/page-calendar/event-pill.js.map +1 -0
  136. package/dist/components/page-calendar/month-view.d.ts.map +1 -1
  137. package/dist/components/page-calendar/month-view.js +109 -0
  138. package/dist/components/page-calendar/month-view.js.map +1 -0
  139. package/dist/components/page-calendar/month-view.jsx +78 -31
  140. package/dist/components/page-calendar/page-calendar.d.ts.map +1 -1
  141. package/dist/components/page-calendar/page-calendar.js +75 -0
  142. package/dist/components/page-calendar/page-calendar.js.map +1 -0
  143. package/dist/components/page-calendar/page-calendar.jsx +2 -2
  144. package/dist/components/page-calendar/week-view.js +88 -0
  145. package/dist/components/page-calendar/week-view.js.map +1 -0
  146. package/dist/components/table/filter.d.ts.map +1 -1
  147. package/dist/components/table/filter.js +239 -0
  148. package/dist/components/table/filter.js.map +1 -0
  149. package/dist/components/table/filter.jsx +9 -4
  150. package/dist/components/table/group.d.ts.map +1 -1
  151. package/dist/components/table/group.js +3 -0
  152. package/dist/components/table/group.jsx +5 -3
  153. package/dist/components/table/index.js +102 -0
  154. package/dist/components/table/index.js.map +1 -0
  155. package/dist/components/table/inner-table.js +2 -0
  156. package/dist/components/table/inner-table.jsx +1 -1
  157. package/dist/components/table/metadata.js +73 -0
  158. package/dist/components/table/metadata.js.map +1 -0
  159. package/dist/components/table/metadata.jsx +1 -1
  160. package/dist/components/table/pagination.js +70 -0
  161. package/dist/components/table/pagination.js.map +1 -0
  162. package/dist/components/table/row.js +58 -0
  163. package/dist/components/table/row.js.map +1 -0
  164. package/dist/components/table/sort.d.ts.map +1 -1
  165. package/dist/components/table/sort.js +3 -0
  166. package/dist/components/table/sort.jsx +3 -1
  167. package/dist/components/table/thead.js +3 -0
  168. package/dist/config/default-translations.d.ts +18 -0
  169. package/dist/config/default-translations.d.ts.map +1 -1
  170. package/dist/config/default-translations.jsx +18 -0
  171. package/dist/{use-translations-DTLfPE3_.js → context-CsnUsfeP.js} +55 -40
  172. package/dist/context-CsnUsfeP.js.map +1 -0
  173. package/dist/{date-picker-BhKEFZew.js → date-picker-DNzupG8R.js} +301 -317
  174. package/dist/date-picker-DNzupG8R.js.map +1 -0
  175. package/dist/dict-CisoYSMO.js +28 -0
  176. package/dist/dict-CisoYSMO.js.map +1 -0
  177. package/dist/dist-ChfJ5LO9.js +498 -0
  178. package/dist/dist-ChfJ5LO9.js.map +1 -0
  179. package/dist/{dist-BrGpYRaj.js → dist-DIjUECx9.js} +56 -56
  180. package/dist/{dist-BrGpYRaj.js.map → dist-DIjUECx9.js.map} +1 -1
  181. package/dist/dom-Bn4wY_Zx.js.map +1 -1
  182. package/dist/{file-upload-DWbZfeG5.js → file-upload-C2zNnv9n.js} +501 -481
  183. package/dist/{file-upload-DWbZfeG5.js.map → file-upload-C2zNnv9n.js.map} +1 -1
  184. package/dist/fzf-CPGDDCoU.js +64 -0
  185. package/dist/fzf-CPGDDCoU.js.map +1 -0
  186. package/dist/getISOWeek-EcB4Ebqp.js +72 -0
  187. package/dist/getISOWeek-EcB4Ebqp.js.map +1 -0
  188. package/dist/group-Dl14TJXO.js +222 -0
  189. package/dist/group-Dl14TJXO.js.map +1 -0
  190. package/dist/hooks/use-translations.d.ts +18 -0
  191. package/dist/hooks/use-translations.d.ts.map +1 -1
  192. package/dist/index.css +1 -1
  193. package/dist/index.js.map +1 -1
  194. package/dist/inner-table-CeDX60cL.js +151 -0
  195. package/dist/inner-table-CeDX60cL.js.map +1 -0
  196. package/dist/input-Cmyuea4Y.js +412 -0
  197. package/dist/input-Cmyuea4Y.js.map +1 -0
  198. package/dist/{input-field-B_whI66Q.js → input-field-ffx1MbHo.js} +29 -16
  199. package/dist/input-field-ffx1MbHo.js.map +1 -0
  200. package/dist/isSameMonth-C3lsSwcg.js +10 -0
  201. package/dist/isSameMonth-C3lsSwcg.js.map +1 -0
  202. package/dist/isToday-COXfxFui.js +32 -0
  203. package/dist/isToday-COXfxFui.js.map +1 -0
  204. package/dist/lib/dom.d.ts.map +1 -1
  205. package/dist/modal-Df8-6i-o.js +408 -0
  206. package/dist/modal-Df8-6i-o.js.map +1 -0
  207. package/dist/notifications-NhCESJUV.js +1697 -0
  208. package/dist/notifications-NhCESJUV.js.map +1 -0
  209. package/dist/page-calendar.utils-Bd0PHktL.js +102 -0
  210. package/dist/page-calendar.utils-Bd0PHktL.js.map +1 -0
  211. package/dist/preset/preset.tailwind.d.ts.map +1 -1
  212. package/dist/preset/preset.tailwind.js +6 -7
  213. package/dist/preset/src/styles/dark.js +1 -1
  214. package/dist/progress-8LO5gWLp.js +104 -0
  215. package/dist/progress-8LO5gWLp.js.map +1 -0
  216. package/dist/{proxy-BcJ_5Dwq.js → proxy-fP2NxmhM.js} +658 -844
  217. package/dist/proxy-fP2NxmhM.js.map +1 -0
  218. package/dist/shim-Czv-YhKR.js +93 -0
  219. package/dist/shim-Czv-YhKR.js.map +1 -0
  220. package/dist/shortcut-CQCmgmlU.js +100 -0
  221. package/dist/shortcut-CQCmgmlU.js.map +1 -0
  222. package/dist/slider-TX9hiHO-.js +1196 -0
  223. package/dist/slider-TX9hiHO-.js.map +1 -0
  224. package/dist/sort-DGmiselV.js +195 -0
  225. package/dist/sort-DGmiselV.js.map +1 -0
  226. package/dist/step-DFpJ7zCG.js +185 -0
  227. package/dist/step-DFpJ7zCG.js.map +1 -0
  228. package/dist/styles/dark.js +1 -1
  229. package/dist/subMonths-QcCnE3Yh.js +43 -0
  230. package/dist/subMonths-QcCnE3Yh.js.map +1 -0
  231. package/dist/table-lib-1bkYSklk.js +174 -0
  232. package/dist/table-lib-1bkYSklk.js.map +1 -0
  233. package/dist/{tabs-Ciy0l9OF.js → tabs-Brc963EW.js} +2 -2
  234. package/dist/{tabs-Ciy0l9OF.js.map → tabs-Brc963EW.js.map} +1 -1
  235. package/dist/thead-B6WELJZ-.js +211 -0
  236. package/dist/thead-B6WELJZ-.js.map +1 -0
  237. package/dist/use-locale-DPM_sg4s.js +12 -0
  238. package/dist/use-locale-DPM_sg4s.js.map +1 -0
  239. package/dist/use-remove-scroll-pAgC09Sq.js +38 -0
  240. package/dist/use-remove-scroll-pAgC09Sq.js.map +1 -0
  241. package/dist/use-translations-BE4PuhLm.js +11 -0
  242. package/dist/use-translations-BE4PuhLm.js.map +1 -0
  243. package/dist/useAnimationFrame-DnKbaXfi.js +223 -0
  244. package/dist/useAnimationFrame-DnKbaXfi.js.map +1 -0
  245. package/dist/valueToPercent-DZc_m1tm.js +43 -0
  246. package/dist/valueToPercent-DZc_m1tm.js.map +1 -0
  247. package/dist/visuallyHidden-B7wI86yi.js +303 -0
  248. package/dist/visuallyHidden-B7wI86yi.js.map +1 -0
  249. package/dist/with-selector-BFW5n-pb.js +102 -0
  250. package/dist/with-selector-BFW5n-pb.js.map +1 -0
  251. package/dist/wizard-7u_qZ-78.js +218 -0
  252. package/dist/wizard-7u_qZ-78.js.map +1 -0
  253. package/package.json +19 -11
  254. package/dist/autocomplete-D3VOTihi.js +0 -415
  255. package/dist/autocomplete-D3VOTihi.js.map +0 -1
  256. package/dist/calendar-PCCZDUIL.js.map +0 -1
  257. package/dist/components/table/table.js +0 -3
  258. package/dist/date-picker-BhKEFZew.js.map +0 -1
  259. package/dist/input-B7jqwPG4.js +0 -473
  260. package/dist/input-B7jqwPG4.js.map +0 -1
  261. package/dist/input-field-B_whI66Q.js.map +0 -1
  262. package/dist/modal-Bz-61ays.js +0 -373
  263. package/dist/modal-Bz-61ays.js.map +0 -1
  264. package/dist/notifications-MT4XkLov.js +0 -2203
  265. package/dist/notifications-MT4XkLov.js.map +0 -1
  266. package/dist/polymorph-BLXhrn9n.js.map +0 -1
  267. package/dist/proxy-BcJ_5Dwq.js.map +0 -1
  268. package/dist/skeleton-CBYEq3lM.js +0 -26
  269. package/dist/skeleton-CBYEq3lM.js.map +0 -1
  270. package/dist/slot-pC8kH9De.js.map +0 -1
  271. package/dist/table-CUFbAI2k.js +0 -1914
  272. package/dist/table-CUFbAI2k.js.map +0 -1
  273. package/dist/use-translations-DTLfPE3_.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slider-TX9hiHO-.js","names":["React","React","useId","React","React","React","_formatErrorMessage","React","React","React","React","_formatErrorMessage","REASONS.keyboard","REASONS.inputChange","React","React","React","ownerWindow","REASONS.drag","REASONS.trackPress","React","React","React","React","ownerWindow"],"sources":["../../../node_modules/.pnpm/@base-ui+utils@0.2.9_@types+react@19.2.14_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/@base-ui/utils/esm/useControlled.js","../../../node_modules/.pnpm/@base-ui+react@1.5.0_@types+react@19.2.14_date-fns@4.3.0_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/@base-ui/react/esm/internals/useValueChanged.js","../../../node_modules/.pnpm/@base-ui+react@1.5.0_@types+react@19.2.14_date-fns@4.3.0_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/@base-ui/react/esm/internals/useBaseUiId.js","../../../node_modules/.pnpm/@base-ui+react@1.5.0_@types+react@19.2.14_date-fns@4.3.0_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/@base-ui/react/esm/internals/areArraysEqual.js","../../../node_modules/.pnpm/@base-ui+react@1.5.0_@types+react@19.2.14_date-fns@4.3.0_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/@base-ui/react/esm/internals/composite/list/CompositeListContext.js","../../../node_modules/.pnpm/@base-ui+react@1.5.0_@types+react@19.2.14_date-fns@4.3.0_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/@base-ui/react/esm/internals/composite/list/CompositeList.js","../../../node_modules/.pnpm/@base-ui+react@1.5.0_@types+react@19.2.14_date-fns@4.3.0_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/@base-ui/react/esm/field/control/FieldControlDataAttributes.js","../../../node_modules/.pnpm/@base-ui+react@1.5.0_@types+react@19.2.14_date-fns@4.3.0_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/@base-ui/react/esm/internals/field-constants/constants.js","../../../node_modules/.pnpm/@base-ui+react@1.5.0_@types+react@19.2.14_date-fns@4.3.0_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/@base-ui/react/esm/internals/field-root-context/FieldRootContext.js","../../../node_modules/.pnpm/@base-ui+react@1.5.0_@types+react@19.2.14_date-fns@4.3.0_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/@base-ui/react/esm/internals/field-register-control/useRegisterFieldControl.js","../../../node_modules/.pnpm/@base-ui+react@1.5.0_@types+react@19.2.14_date-fns@4.3.0_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/@base-ui/react/esm/internals/form-context/FormContext.js","../../../node_modules/.pnpm/@base-ui+react@1.5.0_@types+react@19.2.14_date-fns@4.3.0_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/@base-ui/react/esm/internals/labelable-provider/LabelableContext.js","../../../node_modules/.pnpm/@base-ui+react@1.5.0_@types+react@19.2.14_date-fns@4.3.0_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/@base-ui/react/esm/utils/resolveAriaLabelledBy.js","../../../node_modules/.pnpm/@base-ui+react@1.5.0_@types+react@19.2.14_date-fns@4.3.0_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/@base-ui/react/esm/slider/utils/asc.js","../../../node_modules/.pnpm/@base-ui+react@1.5.0_@types+react@19.2.14_date-fns@4.3.0_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/@base-ui/react/esm/slider/utils/replaceArrayItemAtIndex.js","../../../node_modules/.pnpm/@base-ui+react@1.5.0_@types+react@19.2.14_date-fns@4.3.0_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/@base-ui/react/esm/slider/utils/getSliderValue.js","../../../node_modules/.pnpm/@base-ui+react@1.5.0_@types+react@19.2.14_date-fns@4.3.0_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/@base-ui/react/esm/slider/utils/validateMinimumDistance.js","../../../node_modules/.pnpm/@base-ui+react@1.5.0_@types+react@19.2.14_date-fns@4.3.0_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/@base-ui/react/esm/slider/root/stateAttributesMapping.js","../../../node_modules/.pnpm/@base-ui+react@1.5.0_@types+react@19.2.14_date-fns@4.3.0_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/@base-ui/react/esm/slider/root/SliderRootContext.js","../../../node_modules/.pnpm/@base-ui+react@1.5.0_@types+react@19.2.14_date-fns@4.3.0_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/@base-ui/react/esm/slider/root/SliderRoot.js","../../../node_modules/.pnpm/@base-ui+react@1.5.0_@types+react@19.2.14_date-fns@4.3.0_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/@base-ui/react/esm/internals/direction-context/DirectionContext.js","../../../node_modules/.pnpm/@base-ui+react@1.5.0_@types+react@19.2.14_date-fns@4.3.0_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/@base-ui/react/esm/slider/utils/getMidpoint.js","../../../node_modules/.pnpm/@base-ui+react@1.5.0_@types+react@19.2.14_date-fns@4.3.0_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/@base-ui/react/esm/slider/utils/roundValueToStep.js","../../../node_modules/.pnpm/@base-ui+react@1.5.0_@types+react@19.2.14_date-fns@4.3.0_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/@base-ui/react/esm/slider/utils/getPushedThumbValues.js","../../../node_modules/.pnpm/@base-ui+react@1.5.0_@types+react@19.2.14_date-fns@4.3.0_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/@base-ui/react/esm/slider/utils/resolveThumbCollision.js","../../../node_modules/.pnpm/@base-ui+react@1.5.0_@types+react@19.2.14_date-fns@4.3.0_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/@base-ui/react/esm/slider/control/SliderControl.js","../../../node_modules/.pnpm/@base-ui+react@1.5.0_@types+react@19.2.14_date-fns@4.3.0_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/@base-ui/react/esm/slider/track/SliderTrack.js","../../../node_modules/.pnpm/@base-ui+react@1.5.0_@types+react@19.2.14_date-fns@4.3.0_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/@base-ui/react/esm/utils/useIsHydrating.js","../../../node_modules/.pnpm/@base-ui+react@1.5.0_@types+react@19.2.14_date-fns@4.3.0_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/@base-ui/react/esm/internals/composite/composite.js","../../../node_modules/.pnpm/@base-ui+react@1.5.0_@types+react@19.2.14_date-fns@4.3.0_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/@base-ui/react/esm/internals/composite/list/useCompositeListItem.js","../../../node_modules/.pnpm/@base-ui+react@1.5.0_@types+react@19.2.14_date-fns@4.3.0_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/@base-ui/react/esm/internals/csp-context/CSPContext.js","../../../node_modules/.pnpm/@base-ui+react@1.5.0_@types+react@19.2.14_date-fns@4.3.0_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/@base-ui/react/esm/internals/labelable-provider/useLabelableId.js","../../../node_modules/.pnpm/@base-ui+react@1.5.0_@types+react@19.2.14_date-fns@4.3.0_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/@base-ui/react/esm/slider/thumb/SliderThumbDataAttributes.js","../../../node_modules/.pnpm/@base-ui+react@1.5.0_@types+react@19.2.14_date-fns@4.3.0_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/@base-ui/react/esm/slider/thumb/prehydrationScript.min.js","../../../node_modules/.pnpm/@base-ui+react@1.5.0_@types+react@19.2.14_date-fns@4.3.0_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/@base-ui/react/esm/slider/thumb/SliderThumb.js","../../../node_modules/.pnpm/@base-ui+react@1.5.0_@types+react@19.2.14_date-fns@4.3.0_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/@base-ui/react/esm/slider/indicator/SliderIndicator.js","../src/components/form/slider.tsx"],"sourcesContent":["'use client';\n\n// TODO: uncomment once we enable eslint-plugin-react-compiler // eslint-disable-next-line react-compiler/react-compiler -- process.env never changes, dependency arrays are intentionally ignored\n/* eslint-disable react-hooks/rules-of-hooks, react-hooks/exhaustive-deps */\nimport * as React from 'react';\nimport { error } from \"./error.js\";\nexport function useControlled({\n controlled,\n default: defaultProp,\n name,\n state = 'value'\n}) {\n // isControlled is ignored in the hook dependency lists as it should never change.\n const {\n current: isControlled\n } = React.useRef(controlled !== undefined);\n const [valueState, setValue] = React.useState(defaultProp);\n const value = isControlled ? controlled : valueState;\n if (process.env.NODE_ENV !== 'production') {\n React.useEffect(() => {\n if (isControlled !== (controlled !== undefined)) {\n error([`A component is changing the ${isControlled ? '' : 'un'}controlled ${state} state of ${name} to be ${isControlled ? 'un' : ''}controlled.`, 'Elements should not switch from uncontrolled to controlled (or vice versa).', `Decide between using a controlled or uncontrolled ${name} ` + 'element for the lifetime of the component.', \"The nature of the state is determined during the first render. It's considered controlled if the value is not `undefined`.\", 'More info: https://fb.me/react-controlled-components'].join('\\n'));\n }\n }, [state, name, controlled]);\n const {\n current: defaultValue\n } = React.useRef(defaultProp);\n React.useEffect(() => {\n if (!isControlled && serializeToDevModeString(defaultValue) !== serializeToDevModeString(defaultProp)) {\n error([`A component is changing the default ${state} state of an uncontrolled ${name} after being initialized. ` + `To suppress this warning opt to use a controlled ${name}.`].join('\\n'));\n }\n }, [defaultProp]);\n }\n const setValueIfUncontrolled = React.useCallback(newValue => {\n if (!isControlled) {\n setValue(newValue);\n }\n }, []);\n return [value, setValueIfUncontrolled];\n}\nfunction serializeToDevModeString(input) {\n let nextId = 0;\n const seen = new WeakMap();\n try {\n const result = JSON.stringify(input, function replacer(key, value) {\n if (key === '_owner' && this != null && typeof this === 'object' && '$$typeof' in this) {\n return undefined;\n }\n if (typeof value === 'bigint') {\n return `__bigint__:${value}`;\n }\n if (value !== null && typeof value === 'object') {\n const id = seen.get(value);\n if (id !== undefined) {\n return `__object__:${id}`;\n }\n seen.set(value, nextId);\n nextId += 1;\n }\n return value;\n });\n return result ?? `__top__:${typeof input}`;\n } catch {\n return '__unserializable__';\n }\n}","'use client';\n\nimport * as React from 'react';\nimport { useIsoLayoutEffect } from '@base-ui/utils/useIsoLayoutEffect';\nimport { useStableCallback } from '@base-ui/utils/useStableCallback';\nexport function useValueChanged(value, onChange) {\n const valueRef = React.useRef(value);\n const onChangeCallback = useStableCallback(onChange);\n useIsoLayoutEffect(() => {\n if (valueRef.current === value) {\n return;\n }\n onChangeCallback(valueRef.current);\n }, [value, onChangeCallback]);\n useIsoLayoutEffect(() => {\n valueRef.current = value;\n }, [value]);\n}","'use client';\n\nimport { useId } from '@base-ui/utils/useId';\n\n/**\n * Wraps `useId` and prefixes generated `id`s with `base-ui-`\n * @param {string | undefined} idOverride overrides the generated id when provided\n * @returns {string | undefined}\n */\nexport function useBaseUiId(idOverride) {\n return useId(idOverride, 'base-ui');\n}","export function areArraysEqual(array1, array2, itemComparer = (a, b) => a === b) {\n return array1.length === array2.length && array1.every((value, index) => itemComparer(value, array2[index]));\n}","'use client';\n\nimport * as React from 'react';\nexport const CompositeListContext = /*#__PURE__*/React.createContext({\n register: () => {},\n unregister: () => {},\n subscribeMapChange: () => {\n return () => {};\n },\n elementsRef: {\n current: []\n },\n nextIndexRef: {\n current: 0\n }\n});\nif (process.env.NODE_ENV !== \"production\") CompositeListContext.displayName = \"CompositeListContext\";\nexport function useCompositeListContext() {\n return React.useContext(CompositeListContext);\n}","/* eslint-disable no-bitwise */\n'use client';\n\nimport * as React from 'react';\nimport { useRefWithInit } from '@base-ui/utils/useRefWithInit';\nimport { useStableCallback } from '@base-ui/utils/useStableCallback';\nimport { useIsoLayoutEffect } from '@base-ui/utils/useIsoLayoutEffect';\nimport { CompositeListContext } from \"./CompositeListContext.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n/**\n * Provides context for a list of items in a composite component.\n * @internal\n */\nexport function CompositeList(props) {\n const {\n children,\n elementsRef,\n labelsRef,\n onMapChange: onMapChangeProp\n } = props;\n const onMapChange = useStableCallback(onMapChangeProp);\n const nextIndexRef = React.useRef(0);\n const listeners = useRefWithInit(createListeners).current;\n\n // We use a stable `map` to avoid O(n^2) re-allocation costs for large lists.\n // `mapTick` is our re-render trigger mechanism. We also need to update the\n // elements and label refs, but there's a lot of async work going on and sometimes\n // the effect that handles `onMapChange` gets called after those refs have been\n // filled, and we don't want to lose those values by setting their lengths to `0`.\n // We also need to have them at the proper length because floating-ui uses that\n // information for list navigation.\n\n const map = useRefWithInit(createMap).current;\n // `mapTick` uses a counter rather than objects for low precision-loss risk and better memory efficiency\n const [mapTick, setMapTick] = React.useState(0);\n const lastTickRef = React.useRef(mapTick);\n const register = useStableCallback((node, metadata) => {\n map.set(node, metadata ?? null);\n lastTickRef.current += 1;\n setMapTick(lastTickRef.current);\n });\n const unregister = useStableCallback(node => {\n map.delete(node);\n lastTickRef.current += 1;\n setMapTick(lastTickRef.current);\n });\n const sortedMap = React.useMemo(() => {\n // `mapTick` is the `useMemo` trigger as `map` is stable.\n disableEslintWarning(mapTick);\n const newMap = new Map();\n // Filter out disconnected elements before sorting to avoid inconsistent\n // compareDocumentPosition results when elements are detached from the DOM.\n const sortedNodes = Array.from(map.keys()).filter(node => node.isConnected).sort(sortByDocumentPosition);\n sortedNodes.forEach((node, index) => {\n const metadata = map.get(node) ?? {};\n newMap.set(node, {\n ...metadata,\n index\n });\n });\n return newMap;\n }, [map, mapTick]);\n useIsoLayoutEffect(() => {\n if (typeof MutationObserver !== 'function' || sortedMap.size === 0) {\n return undefined;\n }\n const mutationObserver = new MutationObserver(entries => {\n const diff = new Set();\n const updateDiff = node => diff.has(node) ? diff.delete(node) : diff.add(node);\n entries.forEach(entry => {\n entry.removedNodes.forEach(updateDiff);\n entry.addedNodes.forEach(updateDiff);\n });\n if (diff.size === 0) {\n lastTickRef.current += 1;\n setMapTick(lastTickRef.current);\n }\n });\n sortedMap.forEach((_, node) => {\n if (node.parentElement) {\n mutationObserver.observe(node.parentElement, {\n childList: true\n });\n }\n });\n return () => {\n mutationObserver.disconnect();\n };\n }, [sortedMap]);\n useIsoLayoutEffect(() => {\n const shouldUpdateLengths = lastTickRef.current === mapTick;\n if (shouldUpdateLengths) {\n if (elementsRef.current.length !== sortedMap.size) {\n elementsRef.current.length = sortedMap.size;\n }\n if (labelsRef && labelsRef.current.length !== sortedMap.size) {\n labelsRef.current.length = sortedMap.size;\n }\n nextIndexRef.current = sortedMap.size;\n }\n onMapChange(sortedMap);\n }, [onMapChange, sortedMap, elementsRef, labelsRef, mapTick]);\n useIsoLayoutEffect(() => {\n return () => {\n elementsRef.current = [];\n };\n }, [elementsRef]);\n useIsoLayoutEffect(() => {\n return () => {\n if (labelsRef) {\n labelsRef.current = [];\n }\n };\n }, [labelsRef]);\n const subscribeMapChange = useStableCallback(fn => {\n listeners.add(fn);\n return () => {\n listeners.delete(fn);\n };\n });\n useIsoLayoutEffect(() => {\n listeners.forEach(l => l(sortedMap));\n }, [listeners, sortedMap]);\n const contextValue = React.useMemo(() => ({\n register,\n unregister,\n subscribeMapChange,\n elementsRef,\n labelsRef,\n nextIndexRef\n }), [register, unregister, subscribeMapChange, elementsRef, labelsRef, nextIndexRef]);\n return /*#__PURE__*/_jsx(CompositeListContext.Provider, {\n value: contextValue,\n children: children\n });\n}\nfunction createMap() {\n return new Map();\n}\nfunction createListeners() {\n return new Set();\n}\nfunction sortByDocumentPosition(a, b) {\n const position = a.compareDocumentPosition(b);\n if (position & Node.DOCUMENT_POSITION_FOLLOWING || position & Node.DOCUMENT_POSITION_CONTAINED_BY) {\n return -1;\n }\n if (position & Node.DOCUMENT_POSITION_PRECEDING || position & Node.DOCUMENT_POSITION_CONTAINS) {\n return 1;\n }\n return 0;\n}\nfunction disableEslintWarning(_) {}","export let FieldControlDataAttributes = /*#__PURE__*/function (FieldControlDataAttributes) {\n /**\n * Present when the field is disabled.\n */\n FieldControlDataAttributes[\"disabled\"] = \"data-disabled\";\n /**\n * Present when the field is in a valid state.\n */\n FieldControlDataAttributes[\"valid\"] = \"data-valid\";\n /**\n * Present when the field is in an invalid state.\n */\n FieldControlDataAttributes[\"invalid\"] = \"data-invalid\";\n /**\n * Present when the field has been touched.\n */\n FieldControlDataAttributes[\"touched\"] = \"data-touched\";\n /**\n * Present when the field's value has changed.\n */\n FieldControlDataAttributes[\"dirty\"] = \"data-dirty\";\n /**\n * Present when the field is filled.\n */\n FieldControlDataAttributes[\"filled\"] = \"data-filled\";\n /**\n * Present when the field control is focused.\n */\n FieldControlDataAttributes[\"focused\"] = \"data-focused\";\n return FieldControlDataAttributes;\n}({});","import { FieldControlDataAttributes } from \"../../field/control/FieldControlDataAttributes.js\";\nexport const DEFAULT_VALIDITY_STATE = {\n badInput: false,\n customError: false,\n patternMismatch: false,\n rangeOverflow: false,\n rangeUnderflow: false,\n stepMismatch: false,\n tooLong: false,\n tooShort: false,\n typeMismatch: false,\n valid: null,\n valueMissing: false\n};\nexport const DEFAULT_FIELD_STATE_ATTRIBUTES = {\n valid: null,\n touched: false,\n dirty: false,\n filled: false,\n focused: false\n};\nexport const DEFAULT_FIELD_ROOT_STATE = {\n disabled: false,\n ...DEFAULT_FIELD_STATE_ATTRIBUTES\n};\nexport const fieldValidityMapping = {\n valid(value) {\n if (value === null) {\n return null;\n }\n if (value) {\n return {\n [FieldControlDataAttributes.valid]: ''\n };\n }\n return {\n [FieldControlDataAttributes.invalid]: ''\n };\n }\n};","'use client';\n\nimport _formatErrorMessage from \"@base-ui/utils/formatErrorMessage\";\nimport * as React from 'react';\nimport { EMPTY_OBJECT } from '@base-ui/utils/empty';\nimport { NOOP } from \"../noop.js\";\nimport { DEFAULT_FIELD_ROOT_STATE, DEFAULT_FIELD_STATE_ATTRIBUTES, DEFAULT_VALIDITY_STATE } from \"../field-constants/constants.js\";\nexport const DEFAULT_FIELD_ROOT_CONTEXT = {\n invalid: undefined,\n name: undefined,\n validityData: {\n state: DEFAULT_VALIDITY_STATE,\n errors: [],\n error: '',\n value: '',\n initialValue: null\n },\n setValidityData: NOOP,\n disabled: undefined,\n touched: DEFAULT_FIELD_STATE_ATTRIBUTES.touched,\n setTouched: NOOP,\n dirty: DEFAULT_FIELD_STATE_ATTRIBUTES.dirty,\n setDirty: NOOP,\n filled: DEFAULT_FIELD_STATE_ATTRIBUTES.filled,\n setFilled: NOOP,\n focused: DEFAULT_FIELD_STATE_ATTRIBUTES.focused,\n setFocused: NOOP,\n validate: () => null,\n validationMode: 'onSubmit',\n validationDebounceTime: 0,\n shouldValidateOnChange: () => false,\n state: DEFAULT_FIELD_ROOT_STATE,\n markedDirtyRef: {\n current: false\n },\n registerFieldControl: NOOP,\n validation: {\n getValidationProps: (props = EMPTY_OBJECT) => props,\n getInputValidationProps: (props = EMPTY_OBJECT) => props,\n inputRef: {\n current: null\n },\n commit: async () => {}\n }\n};\nexport const FieldRootContext = /*#__PURE__*/React.createContext(DEFAULT_FIELD_ROOT_CONTEXT);\nif (process.env.NODE_ENV !== \"production\") FieldRootContext.displayName = \"FieldRootContext\";\nexport function useFieldRootContext(optional = true) {\n const context = React.useContext(FieldRootContext);\n if (context.setValidityData === NOOP && !optional) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? 'Base UI: FieldRootContext is missing. Field parts must be placed within <Field.Root>.' : _formatErrorMessage(28));\n }\n return context;\n}","'use client';\n\nimport * as React from 'react';\nimport { useIsoLayoutEffect } from '@base-ui/utils/useIsoLayoutEffect';\nimport { useFieldRootContext } from \"../field-root-context/FieldRootContext.js\";\nexport function useRegisterFieldControl(controlRef, id, value, getFormValueOverride, enabled = true) {\n const {\n registerFieldControl\n } = useFieldRootContext();\n const sourceRef = React.useRef(null);\n if (!sourceRef.current) {\n sourceRef.current = Symbol();\n }\n useIsoLayoutEffect(() => {\n const source = sourceRef.current;\n if (!source || !enabled) {\n return undefined;\n }\n const registration = {\n controlRef,\n getValue: getFormValueOverride,\n id,\n value\n };\n registerFieldControl(source, registration);\n return () => {\n registerFieldControl(source, undefined);\n };\n }, [controlRef, enabled, getFormValueOverride, id, registerFieldControl, value]);\n}","'use client';\n\nimport * as React from 'react';\nimport { NOOP } from \"../noop.js\";\nexport const FormContext = /*#__PURE__*/React.createContext({\n formRef: {\n current: {\n fields: new Map()\n }\n },\n errors: {},\n clearErrors: NOOP,\n validationMode: 'onSubmit',\n submitAttemptedRef: {\n current: false\n }\n});\nif (process.env.NODE_ENV !== \"production\") FormContext.displayName = \"FormContext\";\nexport function useFormContext() {\n return React.useContext(FormContext);\n}","'use client';\n\nimport * as React from 'react';\nimport { NOOP } from \"../noop.js\";\n/**\n * A context for providing [labelable elements](https://html.spec.whatwg.org/multipage/forms.html#category-label)\\\n * with an accessible name (label) and description.\n */\nexport const LabelableContext = /*#__PURE__*/React.createContext({\n controlId: undefined,\n registerControlId: NOOP,\n labelId: undefined,\n setLabelId: NOOP,\n messageIds: [],\n setMessageIds: NOOP,\n getDescriptionProps: externalProps => externalProps\n});\nif (process.env.NODE_ENV !== \"production\") LabelableContext.displayName = \"LabelableContext\";\nexport function useLabelableContext() {\n return React.useContext(LabelableContext);\n}","'use client';\n\nexport function getDefaultLabelId(id) {\n return id == null ? undefined : `${id}-label`;\n}\nexport function resolveAriaLabelledBy(fieldLabelId, localLabelId) {\n return fieldLabelId ?? localLabelId;\n}","export function asc(a, b) {\n return a - b;\n}","import { asc } from \"./asc.js\";\nexport function replaceArrayItemAtIndex(array, index, newValue) {\n const output = array.slice();\n output[index] = newValue;\n return output.sort(asc);\n}","import { clamp } from \"../../internals/clamp.js\";\nimport { replaceArrayItemAtIndex } from \"./replaceArrayItemAtIndex.js\";\nexport function getSliderValue(valueInput, index, min, max, range, values) {\n let newValue = valueInput;\n newValue = clamp(newValue, min, max);\n if (range) {\n newValue = replaceArrayItemAtIndex(values, index,\n // Bound the new value to the thumb's neighbours.\n clamp(newValue, values[index - 1] || -Infinity, values[index + 1] || Infinity));\n }\n return newValue;\n}","export function validateMinimumDistance(values, step, minStepsBetweenValues) {\n if (!Array.isArray(values)) {\n return true;\n }\n const distances = values.reduce((acc, val, index, vals) => {\n if (index === vals.length - 1) {\n return acc;\n }\n acc.push(Math.abs(val - vals[index + 1]));\n return acc;\n }, []);\n return Math.min(...distances) >= step * minStepsBetweenValues;\n}","import { fieldValidityMapping } from \"../../internals/field-constants/constants.js\";\nexport const sliderStateAttributesMapping = {\n activeThumbIndex: () => null,\n max: () => null,\n min: () => null,\n minStepsBetweenValues: () => null,\n step: () => null,\n values: () => null,\n ...fieldValidityMapping\n};","'use client';\n\nimport _formatErrorMessage from \"@base-ui/utils/formatErrorMessage\";\nimport * as React from 'react';\nexport const SliderRootContext = /*#__PURE__*/React.createContext(undefined);\nif (process.env.NODE_ENV !== \"production\") SliderRootContext.displayName = \"SliderRootContext\";\nexport function useSliderRootContext() {\n const context = React.useContext(SliderRootContext);\n if (context === undefined) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? 'Base UI: SliderRootContext is missing. Slider parts must be placed within <Slider.Root>.' : _formatErrorMessage(62));\n }\n return context;\n}","'use client';\n\nimport * as React from 'react';\nimport { ownerDocument } from '@base-ui/utils/owner';\nimport { useControlled } from '@base-ui/utils/useControlled';\nimport { useStableCallback } from '@base-ui/utils/useStableCallback';\nimport { useValueAsRef } from '@base-ui/utils/useValueAsRef';\nimport { useIsoLayoutEffect } from '@base-ui/utils/useIsoLayoutEffect';\nimport { warn } from '@base-ui/utils/warn';\nimport { createChangeEventDetails, createGenericEventDetails } from \"../../internals/createBaseUIEventDetails.js\";\nimport { useValueChanged } from \"../../internals/useValueChanged.js\";\nimport { useBaseUiId } from \"../../internals/useBaseUiId.js\";\nimport { useRenderElement } from \"../../internals/useRenderElement.js\";\nimport { clamp } from \"../../internals/clamp.js\";\nimport { areArraysEqual } from \"../../internals/areArraysEqual.js\";\nimport { activeElement, contains } from \"../../floating-ui-react/utils.js\";\nimport { CompositeList } from \"../../internals/composite/list/CompositeList.js\";\nimport { useFieldRootContext } from \"../../internals/field-root-context/FieldRootContext.js\";\nimport { useRegisterFieldControl } from \"../../internals/field-register-control/useRegisterFieldControl.js\";\nimport { useFormContext } from \"../../internals/form-context/FormContext.js\";\nimport { useLabelableContext } from \"../../internals/labelable-provider/LabelableContext.js\";\nimport { resolveAriaLabelledBy, getDefaultLabelId } from \"../../utils/resolveAriaLabelledBy.js\";\nimport { asc } from \"../utils/asc.js\";\nimport { getSliderValue } from \"../utils/getSliderValue.js\";\nimport { validateMinimumDistance } from \"../utils/validateMinimumDistance.js\";\nimport { sliderStateAttributesMapping } from \"./stateAttributesMapping.js\";\nimport { SliderRootContext } from \"./SliderRootContext.js\";\nimport { REASONS } from \"../../internals/reasons.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nfunction getSliderChangeEventReason(event) {\n return 'key' in event ? REASONS.keyboard : REASONS.inputChange;\n}\nfunction areValuesEqual(newValue, oldValue) {\n if (typeof newValue === 'number' && typeof oldValue === 'number') {\n return newValue === oldValue;\n }\n if (Array.isArray(newValue) && Array.isArray(oldValue)) {\n return areArraysEqual(newValue, oldValue);\n }\n return false;\n}\n\n/**\n * Groups all parts of the slider.\n * Renders a `<div>` element.\n *\n * Documentation: [Base UI Slider](https://base-ui.com/react/components/slider)\n */\nexport const SliderRoot = /*#__PURE__*/React.forwardRef(function SliderRoot(componentProps, forwardedRef) {\n const {\n 'aria-labelledby': ariaLabelledByProp,\n className,\n defaultValue,\n disabled: disabledProp = false,\n id: idProp,\n format,\n largeStep = 10,\n locale,\n render,\n max = 100,\n min = 0,\n minStepsBetweenValues = 0,\n form,\n name: nameProp,\n onValueChange: onValueChangeProp,\n onValueCommitted: onValueCommittedProp,\n orientation = 'horizontal',\n step = 1,\n thumbCollisionBehavior = 'push',\n thumbAlignment = 'center',\n value: valueProp,\n style,\n ...elementProps\n } = componentProps;\n const id = useBaseUiId(idProp);\n const defaultLabelId = getDefaultLabelId(id);\n const onValueChange = useStableCallback(onValueChangeProp);\n const onValueCommitted = useStableCallback(onValueCommittedProp);\n const {\n clearErrors\n } = useFormContext();\n const {\n state: fieldState,\n disabled: fieldDisabled,\n name: fieldName,\n setTouched,\n setDirty,\n validityData,\n shouldValidateOnChange,\n validation\n } = useFieldRootContext();\n const {\n labelId: fieldLabelId\n } = useLabelableContext();\n const [labelId, setLabelId] = React.useState();\n const ariaLabelledby = ariaLabelledByProp ?? resolveAriaLabelledBy(fieldLabelId, labelId);\n const disabled = fieldDisabled || disabledProp;\n const name = fieldName ?? nameProp;\n\n // The internal value is potentially unsorted, e.g. to support frozen arrays\n // https://github.com/mui/material-ui/pull/28472\n const [valueUnwrapped, setValueUnwrapped] = useControlled({\n controlled: valueProp,\n default: defaultValue ?? min,\n name: 'Slider'\n });\n const sliderRef = React.useRef(null);\n const controlRef = React.useRef(null);\n const thumbRefs = React.useRef([]);\n // The input element nested in the pressed thumb.\n const pressedInputRef = React.useRef(null);\n // The px distance between the pointer and the center of a pressed thumb.\n const pressedThumbCenterOffsetRef = React.useRef(null);\n // The index of the pressed thumb, or the closest thumb if the `Control` was pressed.\n // This is updated on pointerdown, which is sooner than the `active/activeIndex`\n // state which is updated later when the nested `input` receives focus.\n const pressedThumbIndexRef = React.useRef(-1);\n // The values when the current drag interaction started.\n const pressedValuesRef = React.useRef(null);\n const lastChangedValueRef = React.useRef(null);\n const lastChangeReasonRef = React.useRef('none');\n const formatOptionsRef = useValueAsRef(format);\n\n // We can't use the :active browser pseudo-classes.\n // - The active state isn't triggered when clicking on the rail.\n // - The active state isn't transferred when inversing a range slider.\n const [active, setActiveState] = React.useState(-1);\n const [lastUsedThumbIndex, setLastUsedThumbIndex] = React.useState(-1);\n const [dragging, setDragging] = React.useState(false);\n const [thumbMap, setThumbMap] = React.useState(() => new Map());\n const [indicatorPosition, setIndicatorPosition] = React.useState([undefined, undefined]);\n const setActive = useStableCallback(value => {\n setActiveState(value);\n if (value !== -1) {\n setLastUsedThumbIndex(value);\n }\n });\n useRegisterFieldControl(controlRef, id, valueUnwrapped);\n useValueChanged(valueUnwrapped, () => {\n clearErrors(name);\n if (shouldValidateOnChange()) {\n validation.commit(valueUnwrapped);\n } else {\n validation.commit(valueUnwrapped, true);\n }\n const initialValue = validityData.initialValue;\n let isDirty;\n if (Array.isArray(valueUnwrapped) && Array.isArray(initialValue)) {\n isDirty = !areArraysEqual(valueUnwrapped, initialValue);\n } else {\n isDirty = valueUnwrapped !== initialValue;\n }\n setDirty(isDirty);\n });\n const registerFieldControlRef = useStableCallback(element => {\n if (element) {\n controlRef.current = element;\n }\n });\n const range = Array.isArray(valueUnwrapped);\n const values = React.useMemo(() => {\n if (!range) {\n return [clamp(valueUnwrapped, min, max)];\n }\n return valueUnwrapped.slice().sort(asc);\n }, [max, min, range, valueUnwrapped]);\n const setValue = useStableCallback((newValue, details) => {\n if (Number.isNaN(newValue) || areValuesEqual(newValue, valueUnwrapped)) {\n return;\n }\n const changeDetails = details ?? createChangeEventDetails(REASONS.none, undefined, undefined, {\n activeThumbIndex: -1\n });\n lastChangeReasonRef.current = changeDetails.reason;\n\n // Redefine target to allow name and value to be read.\n // This allows seamless integration with the most popular form libraries.\n // https://github.com/mui/material-ui/issues/13485#issuecomment-676048492\n // Clone the event to not override `target` of the original event.\n const nativeEvent = changeDetails.event;\n const EventConstructor = nativeEvent.constructor ?? Event;\n const clonedEvent = new EventConstructor(nativeEvent.type, nativeEvent);\n Object.defineProperty(clonedEvent, 'target', {\n writable: true,\n value: {\n value: newValue,\n name\n }\n });\n changeDetails.event = clonedEvent;\n lastChangedValueRef.current = newValue;\n onValueChange(newValue, changeDetails);\n if (changeDetails.isCanceled) {\n return;\n }\n setValueUnwrapped(newValue);\n });\n const handleInputChange = useStableCallback((valueInput, index, event) => {\n const newValue = getSliderValue(valueInput, index, min, max, range, values);\n if (validateMinimumDistance(newValue, step, minStepsBetweenValues)) {\n const reason = getSliderChangeEventReason(event);\n setValue(newValue, createChangeEventDetails(reason, event.nativeEvent, undefined, {\n activeThumbIndex: index\n }));\n setTouched(true);\n const nextValue = lastChangedValueRef.current ?? newValue;\n onValueCommitted(nextValue, createGenericEventDetails(reason, event.nativeEvent));\n }\n });\n if (process.env.NODE_ENV !== 'production') {\n if (min >= max) {\n warn('Slider `max` must be greater than `min`.');\n }\n }\n useIsoLayoutEffect(() => {\n const activeEl = activeElement(ownerDocument(sliderRef.current));\n if (disabled && contains(sliderRef.current, activeEl)) {\n // This is necessary because Firefox and Safari will keep focus\n // on a disabled element:\n // https://codesandbox.io/p/sandbox/mui-pr-22247-forked-h151h?file=/src/App.js\n activeEl.blur();\n }\n }, [disabled]);\n if (disabled && active !== -1) {\n setActive(-1);\n }\n const state = React.useMemo(() => ({\n ...fieldState,\n activeThumbIndex: active,\n disabled,\n dragging,\n orientation,\n max,\n min,\n minStepsBetweenValues,\n step,\n values\n }), [fieldState, active, disabled, dragging, max, min, minStepsBetweenValues, orientation, step, values]);\n const contextValue = React.useMemo(() => ({\n active,\n controlRef,\n disabled,\n dragging,\n validation,\n formatOptionsRef,\n handleInputChange,\n indicatorPosition,\n inset: thumbAlignment !== 'center',\n labelId: ariaLabelledby,\n rootLabelId: defaultLabelId,\n largeStep,\n lastUsedThumbIndex,\n lastChangedValueRef,\n lastChangeReasonRef,\n form,\n locale,\n max,\n min,\n minStepsBetweenValues,\n name,\n onValueCommitted,\n orientation,\n pressedInputRef,\n pressedThumbCenterOffsetRef,\n pressedThumbIndexRef,\n pressedValuesRef,\n registerFieldControlRef,\n renderBeforeHydration: thumbAlignment === 'edge',\n setActive,\n setDragging,\n setIndicatorPosition,\n setLabelId,\n setValue,\n state,\n step,\n thumbCollisionBehavior,\n thumbMap,\n thumbRefs,\n values\n }), [active, controlRef, ariaLabelledby, defaultLabelId, disabled, dragging, validation, formatOptionsRef, handleInputChange, indicatorPosition, largeStep, lastUsedThumbIndex, lastChangedValueRef, lastChangeReasonRef, form, locale, max, min, minStepsBetweenValues, name, onValueCommitted, orientation, pressedInputRef, pressedThumbCenterOffsetRef, pressedThumbIndexRef, pressedValuesRef, registerFieldControlRef, setActive, setDragging, setIndicatorPosition, setLabelId, setValue, state, step, thumbCollisionBehavior, thumbAlignment, thumbMap, thumbRefs, values]);\n const element = useRenderElement('div', componentProps, {\n state,\n ref: [forwardedRef, sliderRef],\n props: [{\n 'aria-labelledby': ariaLabelledby,\n id,\n role: 'group'\n }, validation.getValidationProps, elementProps],\n stateAttributesMapping: sliderStateAttributesMapping\n });\n return /*#__PURE__*/_jsx(SliderRootContext.Provider, {\n value: contextValue,\n children: /*#__PURE__*/_jsx(CompositeList, {\n elementsRef: thumbRefs,\n onMapChange: setThumbMap,\n children: element\n })\n });\n});\nif (process.env.NODE_ENV !== \"production\") SliderRoot.displayName = \"SliderRoot\";","'use client';\n\nimport * as React from 'react';\n/**\n * @internal\n */\nexport const DirectionContext = /*#__PURE__*/React.createContext(undefined);\nif (process.env.NODE_ENV !== \"production\") DirectionContext.displayName = \"DirectionContext\";\nexport function useDirection() {\n const context = React.useContext(DirectionContext);\n return context?.direction ?? 'ltr';\n}","export function getMidpoint(element) {\n const rect = element.getBoundingClientRect();\n return {\n x: (rect.left + rect.right) / 2,\n y: (rect.top + rect.bottom) / 2\n };\n}","export function getDecimalPrecision(num) {\n if (num === 0) {\n return 0;\n }\n\n // This handles the case when num is very small (0.00000001), js will turn this into 1e-8.\n // When num is bigger than 1 or less than -1 it won't get converted to this notation so it's fine.\n if (Math.abs(num) < 1) {\n const parts = num.toExponential().split('e-');\n const matissaDecimalPart = parts[0].split('.')[1];\n return (matissaDecimalPart ? matissaDecimalPart.length : 0) + parseInt(parts[1], 10);\n }\n const decimalPart = num.toString().split('.')[1];\n return decimalPart ? decimalPart.length : 0;\n}\nexport function roundValueToStep(value, step, min) {\n const nearest = Math.round((value - min) / step) * step + min;\n return Number(nearest.toFixed(Math.max(getDecimalPrecision(step), getDecimalPrecision(min))));\n}","import { clamp } from \"../../internals/clamp.js\";\n/**\n * Returns a new array of slider values where attempting to move the thumb at `index`\n * beyond its neighbours \"pushes\" them while respecting `minStepsBetweenValues`.\n */\nexport function getPushedThumbValues({\n values,\n index,\n nextValue,\n min,\n max,\n step,\n minStepsBetweenValues,\n initialValues\n}) {\n if (values.length === 0) {\n return [];\n }\n const nextValues = values.slice();\n const minValueDifference = step * minStepsBetweenValues;\n const lastIndex = nextValues.length - 1;\n const baseInitialValues = initialValues ?? values;\n const indexMin = min + index * minValueDifference;\n const indexMax = max - (lastIndex - index) * minValueDifference;\n nextValues[index] = clamp(nextValue, indexMin, indexMax);\n for (let i = index + 1; i <= lastIndex; i += 1) {\n const minAllowed = nextValues[i - 1] + minValueDifference;\n const maxAllowed = max - (lastIndex - i) * minValueDifference;\n const initialValue = baseInitialValues[i] ?? nextValues[i];\n let candidate = Math.max(nextValues[i], minAllowed);\n if (initialValue < candidate) {\n candidate = Math.max(initialValue, minAllowed);\n }\n nextValues[i] = clamp(candidate, minAllowed, maxAllowed);\n }\n for (let i = index - 1; i >= 0; i -= 1) {\n const maxAllowed = nextValues[i + 1] - minValueDifference;\n const minAllowed = min + i * minValueDifference;\n const initialValue = baseInitialValues[i] ?? nextValues[i];\n let candidate = Math.min(nextValues[i], maxAllowed);\n if (initialValue > candidate) {\n candidate = Math.min(initialValue, maxAllowed);\n }\n nextValues[i] = clamp(candidate, minAllowed, maxAllowed);\n }\n for (let i = 0; i <= lastIndex; i += 1) {\n nextValues[i] = Number(nextValues[i].toFixed(12));\n }\n return nextValues;\n}","import { clamp } from \"../../internals/clamp.js\";\nimport { getPushedThumbValues } from \"./getPushedThumbValues.js\";\nexport function resolveThumbCollision({\n behavior,\n values,\n currentValues,\n initialValues,\n pressedIndex,\n nextValue,\n min,\n max,\n step,\n minStepsBetweenValues\n}) {\n const activeValues = currentValues ?? values;\n const baselineValues = initialValues ?? values;\n const range = activeValues.length > 1;\n if (!range) {\n return {\n value: nextValue,\n thumbIndex: 0,\n didSwap: false\n };\n }\n const minValueDifference = step * minStepsBetweenValues;\n switch (behavior) {\n case 'swap':\n {\n const pressedInitialValue = activeValues[pressedIndex];\n const epsilon = 1e-7;\n const candidateValues = activeValues.slice();\n const previousNeighbor = candidateValues[pressedIndex - 1];\n const nextNeighbor = candidateValues[pressedIndex + 1];\n const lowerBound = previousNeighbor != null ? previousNeighbor + minValueDifference : min;\n const upperBound = nextNeighbor != null ? nextNeighbor - minValueDifference : max;\n const constrainedValue = clamp(nextValue, lowerBound, upperBound);\n const pressedValueAfterClamp = Number(constrainedValue.toFixed(12));\n candidateValues[pressedIndex] = pressedValueAfterClamp;\n const movingForward = nextValue > pressedInitialValue;\n const movingBackward = nextValue < pressedInitialValue;\n const shouldSwapForward = movingForward && nextNeighbor != null && nextValue >= nextNeighbor - epsilon;\n const shouldSwapBackward = movingBackward && previousNeighbor != null && nextValue <= previousNeighbor + epsilon;\n if (!shouldSwapForward && !shouldSwapBackward) {\n return {\n value: candidateValues,\n thumbIndex: pressedIndex,\n didSwap: false\n };\n }\n const targetIndex = shouldSwapForward ? pressedIndex + 1 : pressedIndex - 1;\n const initialValuesForPush = candidateValues.map((_, index) => {\n if (index === pressedIndex) {\n return pressedValueAfterClamp;\n }\n const baseline = baselineValues[index];\n if (baseline != null) {\n return baseline;\n }\n return activeValues[index];\n });\n let nextValueForTarget = nextValue;\n if (shouldSwapForward) {\n nextValueForTarget = Math.max(nextValue, candidateValues[targetIndex]);\n } else {\n nextValueForTarget = Math.min(nextValue, candidateValues[targetIndex]);\n }\n const adjustedValues = getPushedThumbValues({\n values: candidateValues,\n index: targetIndex,\n nextValue: nextValueForTarget,\n min,\n max,\n step,\n minStepsBetweenValues,\n initialValues: initialValuesForPush\n });\n const neighborIndex = shouldSwapForward ? targetIndex - 1 : targetIndex + 1;\n if (neighborIndex >= 0 && neighborIndex < adjustedValues.length) {\n const previousValue = adjustedValues[neighborIndex - 1];\n const nextValueAfter = adjustedValues[neighborIndex + 1];\n let neighborLowerBound = previousValue != null ? previousValue + minValueDifference : min;\n neighborLowerBound = Math.max(neighborLowerBound, min + neighborIndex * minValueDifference);\n let neighborUpperBound = nextValueAfter != null ? nextValueAfter - minValueDifference : max;\n neighborUpperBound = Math.min(neighborUpperBound, max - (adjustedValues.length - 1 - neighborIndex) * minValueDifference);\n const restoredValue = clamp(pressedValueAfterClamp, neighborLowerBound, neighborUpperBound);\n adjustedValues[neighborIndex] = Number(restoredValue.toFixed(12));\n }\n return {\n value: adjustedValues,\n thumbIndex: targetIndex,\n didSwap: true\n };\n }\n case 'push':\n {\n const nextValues = getPushedThumbValues({\n values: activeValues,\n index: pressedIndex,\n nextValue,\n min,\n max,\n step,\n minStepsBetweenValues\n });\n return {\n value: nextValues,\n thumbIndex: pressedIndex,\n didSwap: false\n };\n }\n case 'none':\n default:\n {\n const candidateValues = activeValues.slice();\n const previousNeighbor = candidateValues[pressedIndex - 1];\n const nextNeighbor = candidateValues[pressedIndex + 1];\n const lowerBound = previousNeighbor != null ? previousNeighbor + minValueDifference : min;\n const upperBound = nextNeighbor != null ? nextNeighbor - minValueDifference : max;\n const constrainedValue = clamp(nextValue, lowerBound, upperBound);\n candidateValues[pressedIndex] = Number(constrainedValue.toFixed(12));\n return {\n value: candidateValues,\n thumbIndex: pressedIndex,\n didSwap: false\n };\n }\n }\n}","'use client';\n\nimport * as React from 'react';\nimport { isElement } from '@floating-ui/utils/dom';\nimport { addEventListener } from '@base-ui/utils/addEventListener';\nimport { ownerDocument, ownerWindow } from '@base-ui/utils/owner';\nimport { useAnimationFrame } from '@base-ui/utils/useAnimationFrame';\nimport { useStableCallback } from '@base-ui/utils/useStableCallback';\nimport { useValueAsRef } from '@base-ui/utils/useValueAsRef';\nimport { activeElement, contains, getTarget } from \"../../floating-ui-react/utils.js\";\nimport { clamp } from \"../../internals/clamp.js\";\nimport { createChangeEventDetails, createGenericEventDetails } from \"../../internals/createBaseUIEventDetails.js\";\nimport { REASONS } from \"../../internals/reasons.js\";\nimport { useRenderElement } from \"../../internals/useRenderElement.js\";\nimport { useDirection } from \"../../internals/direction-context/DirectionContext.js\";\nimport { useSliderRootContext } from \"../root/SliderRootContext.js\";\nimport { sliderStateAttributesMapping } from \"../root/stateAttributesMapping.js\";\nimport { getMidpoint } from \"../utils/getMidpoint.js\";\nimport { roundValueToStep } from \"../utils/roundValueToStep.js\";\nimport { validateMinimumDistance } from \"../utils/validateMinimumDistance.js\";\nimport { resolveThumbCollision } from \"../utils/resolveThumbCollision.js\";\nconst INTENTIONAL_DRAG_COUNT_THRESHOLD = 2;\nfunction getControlOffset(styles, vertical) {\n if (!styles) {\n return {\n start: 0,\n end: 0\n };\n }\n function parseSize(value) {\n const parsed = value != null ? parseFloat(value) : 0;\n return Number.isNaN(parsed) ? 0 : parsed;\n }\n const start = !vertical ? 'InlineStart' : 'Top';\n const end = !vertical ? 'InlineEnd' : 'Bottom';\n return {\n start: parseSize(styles[`border${start}Width`]) + parseSize(styles[`padding${start}`]),\n end: parseSize(styles[`border${end}Width`]) + parseSize(styles[`padding${end}`])\n };\n}\nfunction getFingerCoords(event, touchIdRef) {\n // The event is TouchEvent\n if (touchIdRef.current != null && event.changedTouches) {\n const touchEvent = event;\n for (let i = 0; i < touchEvent.changedTouches.length; i += 1) {\n const touch = touchEvent.changedTouches[i];\n if (touch.identifier === touchIdRef.current) {\n return {\n x: touch.clientX,\n y: touch.clientY\n };\n }\n }\n return null;\n }\n\n // The event is PointerEvent\n return {\n x: event.clientX,\n y: event.clientY\n };\n}\n\n/**\n * The clickable, interactive part of the slider.\n * Renders a `<div>` element.\n *\n * Documentation: [Base UI Slider](https://base-ui.com/react/components/slider)\n */\nexport const SliderControl = /*#__PURE__*/React.forwardRef(function SliderControl(componentProps, forwardedRef) {\n const {\n render: renderProp,\n className,\n style,\n ...elementProps\n } = componentProps;\n const {\n disabled,\n dragging,\n inset,\n lastChangedValueRef,\n lastChangeReasonRef,\n max,\n min,\n minStepsBetweenValues,\n onValueCommitted,\n orientation,\n pressedInputRef,\n pressedThumbCenterOffsetRef,\n pressedThumbIndexRef,\n pressedValuesRef,\n registerFieldControlRef,\n renderBeforeHydration,\n setActive,\n setDragging,\n setValue,\n state,\n step,\n thumbCollisionBehavior,\n thumbRefs,\n values\n } = useSliderRootContext();\n const direction = useDirection();\n const range = values.length > 1;\n const vertical = orientation === 'vertical';\n const controlRef = React.useRef(null);\n const stylesRef = React.useRef(null);\n const setStylesRef = useStableCallback(element => {\n if (element && stylesRef.current == null) {\n stylesRef.current = ownerWindow(element).getComputedStyle(element);\n }\n });\n\n // A number that uniquely identifies the current finger in the touch session.\n const touchIdRef = React.useRef(null);\n // The number of touch/pointermove events that have fired.\n const moveCountRef = React.useRef(0);\n // The offset amount to each side of the control for inset sliders.\n // This value should be equal to the radius or half the width/height of the thumb.\n const insetThumbOffsetRef = React.useRef(0);\n const latestValuesRef = useValueAsRef(values);\n function updatePressedThumb(nextIndex) {\n if (pressedThumbIndexRef.current !== nextIndex) {\n pressedThumbIndexRef.current = nextIndex;\n }\n const thumbElement = thumbRefs.current[nextIndex];\n if (!thumbElement) {\n pressedThumbCenterOffsetRef.current = null;\n pressedInputRef.current = null;\n return;\n }\n pressedInputRef.current = thumbElement.querySelector('input[type=\"range\"]');\n }\n function getFingerState(fingerCoords) {\n const control = controlRef.current;\n if (!control) {\n return null;\n }\n const {\n width,\n height,\n bottom,\n left,\n right\n } = control.getBoundingClientRect();\n const controlOffset = getControlOffset(stylesRef.current, vertical);\n const insetThumbOffset = insetThumbOffsetRef.current;\n const controlSize = (vertical ? height : width) - controlOffset.start - controlOffset.end - insetThumbOffset * 2;\n const thumbCenterOffset = pressedThumbCenterOffsetRef.current ?? 0;\n const fingerX = fingerCoords.x - thumbCenterOffset;\n const fingerY = fingerCoords.y - thumbCenterOffset;\n const valueSize = vertical ? bottom - fingerY - controlOffset.end : (direction === 'rtl' ? right - fingerX : fingerX - left) - controlOffset.start;\n // the value at the finger origin scaled down to fit the range [0, 1]\n const valueRescaled = clamp((valueSize - insetThumbOffset) / controlSize, 0, 1);\n let newValue = (max - min) * valueRescaled + min;\n newValue = roundValueToStep(newValue, step, min);\n newValue = clamp(newValue, min, max);\n if (!range) {\n return {\n value: newValue,\n thumbIndex: 0,\n didSwap: false\n };\n }\n const thumbIndex = pressedThumbIndexRef.current;\n if (thumbIndex < 0) {\n return null;\n }\n const collisionResult = resolveThumbCollision({\n behavior: thumbCollisionBehavior,\n values,\n currentValues: latestValuesRef.current ?? values,\n initialValues: pressedValuesRef.current,\n pressedIndex: thumbIndex,\n nextValue: newValue,\n min,\n max,\n step,\n minStepsBetweenValues\n });\n if (thumbCollisionBehavior === 'swap' && collisionResult.didSwap) {\n updatePressedThumb(collisionResult.thumbIndex);\n } else {\n pressedThumbIndexRef.current = collisionResult.thumbIndex;\n }\n return collisionResult;\n }\n function startPressing(fingerCoords) {\n pressedValuesRef.current = range ? values.slice() : null;\n latestValuesRef.current = values;\n const pressedThumbIndex = pressedThumbIndexRef.current;\n let closestThumbIndex = pressedThumbIndex;\n if (pressedThumbIndex > -1 && pressedThumbIndex < values.length) {\n if (values[pressedThumbIndex] === max) {\n let candidateIndex = pressedThumbIndex;\n while (candidateIndex > 0 && values[candidateIndex - 1] === max) {\n candidateIndex -= 1;\n }\n closestThumbIndex = candidateIndex;\n }\n } else {\n // pressed on control\n const axis = !vertical ? 'x' : 'y';\n let minDistance;\n closestThumbIndex = -1;\n for (let i = 0; i < thumbRefs.current.length; i += 1) {\n const thumbEl = thumbRefs.current[i];\n if (isElement(thumbEl)) {\n const midpoint = getMidpoint(thumbEl);\n const distance = Math.abs(fingerCoords[axis] - midpoint[axis]);\n if (minDistance === undefined || distance <= minDistance) {\n closestThumbIndex = i;\n minDistance = distance;\n }\n }\n }\n }\n if (closestThumbIndex > -1 && closestThumbIndex !== pressedThumbIndex) {\n updatePressedThumb(closestThumbIndex);\n }\n if (inset) {\n const thumbEl = thumbRefs.current[closestThumbIndex];\n if (isElement(thumbEl)) {\n const thumbRect = thumbEl.getBoundingClientRect();\n const side = !vertical ? 'width' : 'height';\n insetThumbOffsetRef.current = thumbRect[side] / 2;\n }\n }\n }\n function focusThumb(thumbIndex) {\n const input = thumbRefs.current?.[thumbIndex]?.querySelector('input[type=\"range\"]');\n if (!input) {\n return;\n }\n input.focus({\n preventScroll: true,\n // Prevent pointer-driven focus rings in browsers that support this option.\n // Supported in Chrome from 144+.\n focusVisible: false\n });\n }\n const handleTouchMove = useStableCallback(nativeEvent => {\n const fingerCoords = getFingerCoords(nativeEvent, touchIdRef);\n if (fingerCoords == null) {\n return;\n }\n moveCountRef.current += 1;\n\n // Cancel move in case some other element consumed a pointerup event and it was not fired.\n if (nativeEvent.type === 'pointermove' && nativeEvent.buttons === 0) {\n handleTouchEnd(nativeEvent);\n return;\n }\n const finger = getFingerState(fingerCoords);\n if (finger == null) {\n return;\n }\n if (validateMinimumDistance(finger.value, step, minStepsBetweenValues)) {\n if (!dragging && moveCountRef.current > INTENTIONAL_DRAG_COUNT_THRESHOLD) {\n setDragging(true);\n }\n setValue(finger.value, createChangeEventDetails(REASONS.drag, nativeEvent, undefined, {\n activeThumbIndex: finger.thumbIndex\n }));\n latestValuesRef.current = Array.isArray(finger.value) ? finger.value : [finger.value];\n if (finger.didSwap) {\n focusThumb(finger.thumbIndex);\n }\n }\n });\n function handleTouchEnd(nativeEvent) {\n setActive(-1);\n setDragging(false);\n pressedInputRef.current = null;\n pressedThumbCenterOffsetRef.current = null;\n const fingerCoords = getFingerCoords(nativeEvent, touchIdRef);\n const finger = fingerCoords != null ? getFingerState(fingerCoords) : null;\n if (finger != null) {\n const commitReason = lastChangeReasonRef.current;\n onValueCommitted(lastChangedValueRef.current ?? finger.value, createGenericEventDetails(commitReason, nativeEvent));\n }\n if ('pointerType' in nativeEvent && controlRef.current?.hasPointerCapture(nativeEvent.pointerId)) {\n controlRef.current?.releasePointerCapture(nativeEvent.pointerId);\n }\n pressedThumbIndexRef.current = -1;\n touchIdRef.current = null;\n pressedValuesRef.current = null;\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n stopListening();\n }\n const handleTouchStart = useStableCallback(nativeEvent => {\n if (disabled) {\n return;\n }\n const touch = nativeEvent.changedTouches[0];\n if (touch != null) {\n touchIdRef.current = touch.identifier;\n }\n const fingerCoords = getFingerCoords(nativeEvent, touchIdRef);\n if (fingerCoords != null) {\n startPressing(fingerCoords);\n const finger = getFingerState(fingerCoords);\n if (finger == null) {\n return;\n }\n focusThumb(finger.thumbIndex);\n setValue(finger.value, createChangeEventDetails(REASONS.trackPress, nativeEvent, undefined, {\n activeThumbIndex: finger.thumbIndex\n }));\n latestValuesRef.current = Array.isArray(finger.value) ? finger.value : [finger.value];\n if (finger.didSwap) {\n focusThumb(finger.thumbIndex);\n }\n }\n moveCountRef.current = 0;\n const doc = ownerDocument(controlRef.current);\n doc.addEventListener('touchmove', handleTouchMove, {\n passive: true\n });\n doc.addEventListener('touchend', handleTouchEnd, {\n passive: true\n });\n });\n const stopListening = useStableCallback(() => {\n const doc = ownerDocument(controlRef.current);\n doc.removeEventListener('pointermove', handleTouchMove);\n doc.removeEventListener('pointerup', handleTouchEnd);\n doc.removeEventListener('touchmove', handleTouchMove);\n doc.removeEventListener('touchend', handleTouchEnd);\n pressedValuesRef.current = null;\n });\n const focusFrame = useAnimationFrame();\n React.useEffect(() => {\n const control = controlRef.current;\n if (!control) {\n return () => stopListening();\n }\n const unsubscribeTouchStart = addEventListener(control, 'touchstart', handleTouchStart, {\n passive: true\n });\n return () => {\n unsubscribeTouchStart();\n focusFrame.cancel();\n stopListening();\n };\n }, [stopListening, handleTouchStart, controlRef, focusFrame]);\n React.useEffect(() => {\n if (disabled) {\n stopListening();\n }\n }, [disabled, stopListening]);\n const element = useRenderElement('div', componentProps, {\n state,\n ref: [forwardedRef, registerFieldControlRef, controlRef, setStylesRef],\n props: [{\n ['data-base-ui-slider-control']: renderBeforeHydration ? '' : undefined,\n onPointerDown(event) {\n const control = controlRef.current;\n const target = getTarget(event.nativeEvent);\n if (!control || disabled || event.defaultPrevented || !isElement(target) ||\n // Only handle left clicks\n event.button !== 0) {\n return;\n }\n const fingerCoords = getFingerCoords(event, touchIdRef);\n if (fingerCoords != null) {\n startPressing(fingerCoords);\n const finger = getFingerState(fingerCoords);\n if (finger == null) {\n return;\n }\n const pressedOnFocusedThumb = contains(thumbRefs.current[finger.thumbIndex], activeElement(ownerDocument(control)));\n if (pressedOnFocusedThumb) {\n event.preventDefault();\n } else {\n focusFrame.request(() => {\n focusThumb(finger.thumbIndex);\n });\n }\n setDragging(true);\n const pressedOnAnyThumb = pressedThumbCenterOffsetRef.current != null;\n if (!pressedOnAnyThumb) {\n setValue(finger.value, createChangeEventDetails(REASONS.trackPress, event.nativeEvent, undefined, {\n activeThumbIndex: finger.thumbIndex\n }));\n latestValuesRef.current = Array.isArray(finger.value) ? finger.value : [finger.value];\n if (finger.didSwap) {\n focusThumb(finger.thumbIndex);\n }\n }\n }\n if (event.nativeEvent.pointerId) {\n control.setPointerCapture(event.nativeEvent.pointerId);\n }\n moveCountRef.current = 0;\n const doc = ownerDocument(controlRef.current);\n doc.addEventListener('pointermove', handleTouchMove, {\n passive: true\n });\n doc.addEventListener('pointerup', handleTouchEnd, {\n once: true\n });\n }\n }, elementProps],\n stateAttributesMapping: sliderStateAttributesMapping\n });\n return element;\n});\nif (process.env.NODE_ENV !== \"production\") SliderControl.displayName = \"SliderControl\";","'use client';\n\nimport * as React from 'react';\nimport { useRenderElement } from \"../../internals/useRenderElement.js\";\nimport { useSliderRootContext } from \"../root/SliderRootContext.js\";\nimport { sliderStateAttributesMapping } from \"../root/stateAttributesMapping.js\";\n\n/**\n * Contains the slider indicator and represents the entire range of the slider.\n * Renders a `<div>` element.\n *\n * Documentation: [Base UI Slider](https://base-ui.com/react/components/slider)\n */\nexport const SliderTrack = /*#__PURE__*/React.forwardRef(function SliderTrack(componentProps, forwardedRef) {\n const {\n render,\n className,\n style,\n ...elementProps\n } = componentProps;\n const {\n state\n } = useSliderRootContext();\n const element = useRenderElement('div', componentProps, {\n state,\n ref: forwardedRef,\n props: [{\n style: {\n position: 'relative'\n }\n }, elementProps],\n stateAttributesMapping: sliderStateAttributesMapping\n });\n return element;\n});\nif (process.env.NODE_ENV !== \"production\") SliderTrack.displayName = \"SliderTrack\";","import { useSyncExternalStore } from 'use-sync-external-store/shim';\nimport { NOOP } from \"../internals/noop.js\";\nfunction subscribe() {\n return NOOP;\n}\nfunction getSnapshot() {\n return false;\n}\nfunction getServerSnapshot() {\n return true;\n}\n\n/**\n * Returns `true` while React is hydrating server-rendered markup and `false`\n * for fresh client-only mounts.\n */\nexport function useIsHydrating() {\n return useSyncExternalStore(subscribe, getSnapshot, getServerSnapshot);\n}","import { isHTMLElement } from '@floating-ui/utils/dom';\nexport { stopEvent, isIndexOutOfListBounds, isListIndexDisabled, createGridCellMap, findNonDisabledListIndex, getGridCellIndexOfCorner, getGridCellIndices, getGridNavigatedIndex, getMaxListIndex, getMinListIndex } from \"../../floating-ui-react/utils.js\";\nexport const ARROW_UP = 'ArrowUp';\nexport const ARROW_DOWN = 'ArrowDown';\nexport const ARROW_LEFT = 'ArrowLeft';\nexport const ARROW_RIGHT = 'ArrowRight';\nexport const HOME = 'Home';\nexport const END = 'End';\nexport const PAGE_UP = 'PageUp';\nexport const PAGE_DOWN = 'PageDown';\nexport const HORIZONTAL_KEYS = new Set([ARROW_LEFT, ARROW_RIGHT]);\nexport const HORIZONTAL_KEYS_WITH_EXTRA_KEYS = new Set([ARROW_LEFT, ARROW_RIGHT, HOME, END]);\nexport const VERTICAL_KEYS = new Set([ARROW_UP, ARROW_DOWN]);\nexport const VERTICAL_KEYS_WITH_EXTRA_KEYS = new Set([ARROW_UP, ARROW_DOWN, HOME, END]);\nexport const ARROW_KEYS = new Set([...HORIZONTAL_KEYS, ...VERTICAL_KEYS]);\nexport const COMPOSITE_KEYS = new Set([...ARROW_KEYS, HOME, END]);\nexport const SHIFT = 'Shift';\nexport const CONTROL = 'Control';\nexport const ALT = 'Alt';\nexport const META = 'Meta';\nexport const MODIFIER_KEYS = new Set([SHIFT, CONTROL, ALT, META]);\nfunction isInputElement(element) {\n return isHTMLElement(element) && element.tagName === 'INPUT';\n}\nexport function isNativeInput(element) {\n if (isInputElement(element) && element.selectionStart != null) {\n return true;\n }\n if (isHTMLElement(element) && element.tagName === 'TEXTAREA') {\n return true;\n }\n return false;\n}\nexport function scrollIntoViewIfNeeded(scrollContainer, element, direction, orientation) {\n if (!scrollContainer || !element || !element.scrollTo) {\n return;\n }\n let targetX = scrollContainer.scrollLeft;\n let targetY = scrollContainer.scrollTop;\n const isOverflowingX = scrollContainer.clientWidth < scrollContainer.scrollWidth;\n const isOverflowingY = scrollContainer.clientHeight < scrollContainer.scrollHeight;\n if (isOverflowingX && orientation !== 'vertical') {\n const elementOffsetLeft = getOffset(scrollContainer, element, 'left');\n const containerStyles = getStyles(scrollContainer);\n const elementStyles = getStyles(element);\n if (direction === 'ltr') {\n if (elementOffsetLeft + element.offsetWidth + elementStyles.scrollMarginRight > scrollContainer.scrollLeft + scrollContainer.clientWidth - containerStyles.scrollPaddingRight) {\n // overflow to the right, scroll to align right edges\n targetX = elementOffsetLeft + element.offsetWidth + elementStyles.scrollMarginRight - scrollContainer.clientWidth + containerStyles.scrollPaddingRight;\n } else if (elementOffsetLeft - elementStyles.scrollMarginLeft < scrollContainer.scrollLeft + containerStyles.scrollPaddingLeft) {\n // overflow to the left, scroll to align left edges\n targetX = elementOffsetLeft - elementStyles.scrollMarginLeft - containerStyles.scrollPaddingLeft;\n }\n }\n if (direction === 'rtl') {\n if (elementOffsetLeft - elementStyles.scrollMarginRight < scrollContainer.scrollLeft + containerStyles.scrollPaddingLeft) {\n // overflow to the left, scroll to align left edges\n targetX = elementOffsetLeft - elementStyles.scrollMarginLeft - containerStyles.scrollPaddingLeft;\n } else if (elementOffsetLeft + element.offsetWidth + elementStyles.scrollMarginRight > scrollContainer.scrollLeft + scrollContainer.clientWidth - containerStyles.scrollPaddingRight) {\n // overflow to the right, scroll to align right edges\n targetX = elementOffsetLeft + element.offsetWidth + elementStyles.scrollMarginRight - scrollContainer.clientWidth + containerStyles.scrollPaddingRight;\n }\n }\n }\n if (isOverflowingY && orientation !== 'horizontal') {\n const elementOffsetTop = getOffset(scrollContainer, element, 'top');\n const containerStyles = getStyles(scrollContainer);\n const elementStyles = getStyles(element);\n if (elementOffsetTop - elementStyles.scrollMarginTop < scrollContainer.scrollTop + containerStyles.scrollPaddingTop) {\n // overflow upwards, align top edges\n targetY = elementOffsetTop - elementStyles.scrollMarginTop - containerStyles.scrollPaddingTop;\n } else if (elementOffsetTop + element.offsetHeight + elementStyles.scrollMarginBottom > scrollContainer.scrollTop + scrollContainer.clientHeight - containerStyles.scrollPaddingBottom) {\n // overflow downwards, align bottom edges\n targetY = elementOffsetTop + element.offsetHeight + elementStyles.scrollMarginBottom - scrollContainer.clientHeight + containerStyles.scrollPaddingBottom;\n }\n }\n scrollContainer.scrollTo({\n left: targetX,\n top: targetY,\n behavior: 'auto'\n });\n}\nfunction getOffset(ancestor, element, side) {\n const propName = side === 'left' ? 'offsetLeft' : 'offsetTop';\n let result = 0;\n while (element.offsetParent) {\n result += element[propName];\n if (element.offsetParent === ancestor) {\n break;\n }\n element = element.offsetParent;\n }\n return result;\n}\nfunction getStyles(element) {\n const styles = getComputedStyle(element);\n return {\n scrollMarginTop: parseFloat(styles.scrollMarginTop) || 0,\n scrollMarginRight: parseFloat(styles.scrollMarginRight) || 0,\n scrollMarginBottom: parseFloat(styles.scrollMarginBottom) || 0,\n scrollMarginLeft: parseFloat(styles.scrollMarginLeft) || 0,\n scrollPaddingTop: parseFloat(styles.scrollPaddingTop) || 0,\n scrollPaddingRight: parseFloat(styles.scrollPaddingRight) || 0,\n scrollPaddingBottom: parseFloat(styles.scrollPaddingBottom) || 0,\n scrollPaddingLeft: parseFloat(styles.scrollPaddingLeft) || 0\n };\n}","'use client';\n\nimport * as React from 'react';\nimport { useIsoLayoutEffect } from '@base-ui/utils/useIsoLayoutEffect';\nimport { useCompositeListContext } from \"./CompositeListContext.js\";\nexport let IndexGuessBehavior = /*#__PURE__*/function (IndexGuessBehavior) {\n IndexGuessBehavior[IndexGuessBehavior[\"None\"] = 0] = \"None\";\n IndexGuessBehavior[IndexGuessBehavior[\"GuessFromOrder\"] = 1] = \"GuessFromOrder\";\n return IndexGuessBehavior;\n}({});\n\n/**\n * Used to register a list item and its index (DOM position) in the `CompositeList`.\n */\nexport function useCompositeListItem(params = {}) {\n const {\n label,\n metadata,\n textRef,\n indexGuessBehavior,\n index: externalIndex\n } = params;\n const {\n register,\n unregister,\n subscribeMapChange,\n elementsRef,\n labelsRef,\n nextIndexRef\n } = useCompositeListContext();\n const indexRef = React.useRef(-1);\n const [index, setIndex] = React.useState(externalIndex ?? (indexGuessBehavior === IndexGuessBehavior.GuessFromOrder ? () => {\n if (indexRef.current === -1) {\n const newIndex = nextIndexRef.current;\n nextIndexRef.current += 1;\n indexRef.current = newIndex;\n }\n return indexRef.current;\n } : -1));\n const componentRef = React.useRef(null);\n const ref = React.useCallback(node => {\n componentRef.current = node;\n if (index !== -1 && node !== null) {\n elementsRef.current[index] = node;\n if (labelsRef) {\n const isLabelDefined = label !== undefined;\n labelsRef.current[index] = isLabelDefined ? label : textRef?.current?.textContent ?? node.textContent;\n }\n }\n }, [index, elementsRef, labelsRef, label, textRef]);\n useIsoLayoutEffect(() => {\n if (externalIndex != null) {\n return undefined;\n }\n const node = componentRef.current;\n if (node) {\n register(node, metadata);\n return () => {\n unregister(node);\n };\n }\n return undefined;\n }, [externalIndex, register, unregister, metadata]);\n useIsoLayoutEffect(() => {\n if (externalIndex != null) {\n return undefined;\n }\n return subscribeMapChange(map => {\n const i = componentRef.current ? map.get(componentRef.current)?.index : null;\n if (i != null) {\n setIndex(i);\n }\n });\n }, [externalIndex, subscribeMapChange, setIndex]);\n return React.useMemo(() => ({\n ref,\n index\n }), [index, ref]);\n}","'use client';\n\nimport * as React from 'react';\n/**\n * @internal\n */\nexport const CSPContext = /*#__PURE__*/React.createContext(undefined);\nif (process.env.NODE_ENV !== \"production\") CSPContext.displayName = \"CSPContext\";\nconst DEFAULT_CSP_CONTEXT_VALUE = {\n disableStyleElements: false\n};\n\n/**\n * @internal\n */\nexport function useCSPContext() {\n return React.useContext(CSPContext) ?? DEFAULT_CSP_CONTEXT_VALUE;\n}","'use client';\n\nimport * as React from 'react';\nimport { useIsoLayoutEffect } from '@base-ui/utils/useIsoLayoutEffect';\nimport { useStableCallback } from '@base-ui/utils/useStableCallback';\nimport { useRefWithInit } from '@base-ui/utils/useRefWithInit';\nimport { isElement } from '@floating-ui/utils/dom';\nimport { NOOP } from \"../noop.js\";\nimport { useBaseUiId } from \"../useBaseUiId.js\";\nimport { useLabelableContext } from \"./LabelableContext.js\";\nexport function useLabelableId(params = {}) {\n const {\n id,\n implicit = false,\n controlRef\n } = params;\n const {\n controlId,\n registerControlId\n } = useLabelableContext();\n const defaultId = useBaseUiId(id);\n const controlIdForEffect = implicit ? controlId : undefined;\n const controlSourceRef = useRefWithInit(() => Symbol('labelable-control'));\n const hasRegisteredRef = React.useRef(false);\n const hadExplicitIdRef = React.useRef(id != null);\n const unregisterControlId = useStableCallback(() => {\n if (!hasRegisteredRef.current || registerControlId === NOOP) {\n return;\n }\n hasRegisteredRef.current = false;\n registerControlId(controlSourceRef.current, undefined);\n });\n useIsoLayoutEffect(() => {\n if (registerControlId === NOOP) {\n return undefined;\n }\n let nextId;\n if (implicit) {\n const elem = controlRef?.current;\n if (isElement(elem) && elem.closest('label') != null) {\n nextId = id ?? null;\n } else {\n nextId = controlIdForEffect ?? defaultId;\n }\n } else if (id != null) {\n hadExplicitIdRef.current = true;\n nextId = id;\n } else if (hadExplicitIdRef.current) {\n nextId = defaultId;\n } else {\n unregisterControlId();\n return undefined;\n }\n if (nextId === undefined) {\n unregisterControlId();\n return undefined;\n }\n hasRegisteredRef.current = true;\n registerControlId(controlSourceRef.current, nextId);\n return undefined;\n }, [id, controlRef, controlIdForEffect, registerControlId, implicit, defaultId, controlSourceRef, unregisterControlId]);\n React.useEffect(() => {\n return unregisterControlId;\n }, [unregisterControlId]);\n return controlId ?? defaultId;\n}","export let SliderThumbDataAttributes = /*#__PURE__*/function (SliderThumbDataAttributes) {\n /**\n * Indicates the index of the thumb in range sliders.\n */\n SliderThumbDataAttributes[\"index\"] = \"data-index\";\n /**\n * Present while the user is dragging.\n */\n SliderThumbDataAttributes[\"dragging\"] = \"data-dragging\";\n /**\n * Indicates the orientation of the slider.\n * @type {'horizontal' | 'vertical'}\n */\n SliderThumbDataAttributes[\"orientation\"] = \"data-orientation\";\n /**\n * Present when the slider is disabled.\n */\n SliderThumbDataAttributes[\"disabled\"] = \"data-disabled\";\n /**\n * Present when the slider is in a valid state (when wrapped in Field.Root).\n */\n SliderThumbDataAttributes[\"valid\"] = \"data-valid\";\n /**\n * Present when the slider is in an invalid state (when wrapped in Field.Root).\n */\n SliderThumbDataAttributes[\"invalid\"] = \"data-invalid\";\n /**\n * Present when the slider has been touched (when wrapped in Field.Root).\n */\n SliderThumbDataAttributes[\"touched\"] = \"data-touched\";\n /**\n * Present when the slider's value has changed (when wrapped in Field.Root).\n */\n SliderThumbDataAttributes[\"dirty\"] = \"data-dirty\";\n /**\n * Present when the slider is focused (when wrapped in Field.Root).\n */\n SliderThumbDataAttributes[\"focused\"] = \"data-focused\";\n return SliderThumbDataAttributes;\n}({});","// This file is autogenerated. Do not edit it directly.\n// To update it, modify the corresponding source file and run `pnpm inline-scripts`.\n\n// prettier-ignore\nexport const script = '!function(){const t=document.currentScript?.parentElement;if(!t)return;const e=t.closest(\"[data-base-ui-slider-control]\");if(!e)return;const r=e.querySelector(\"[data-base-ui-slider-indicator]\"),i=e.getBoundingClientRect(),n=\"vertical\"===e.getAttribute(\"data-orientation\")?\"height\":\"width\",o=e.querySelectorAll(\\'input[type=\"range\"]\\'),l=o.length>1,s=o.length-1;let a=null,u=null;for(let t=0;t<o.length;t+=1){const e=o[t],y=parseFloat(e.getAttribute(\"value\")??\"\");if(Number.isNaN(y))return;const c=e.parentElement;if(!c)return;const p=parseFloat(e.getAttribute(\"max\")??\"100\"),g=parseFloat(e.getAttribute(\"min\")??\"0\"),b=c?.getBoundingClientRect(),d=i[n]-b[n],m=100*(y-g)/(p-g),v=(b[n]/2+d*m/100)/i[n]*100;c.style.setProperty(\"--position\",`${v}%`),Number.isFinite(v)&&(c.style.removeProperty(\"visibility\"),r&&(0===t?(a=v,r.style.setProperty(\"--start-position\",`${v}%`),l||r.style.removeProperty(\"visibility\")):t===s&&(u=v-(a??0),r.style.setProperty(\"--end-position\",`${v}%`),r.style.setProperty(\"--relative-size\",`${u}%`),r.style.removeProperty(\"visibility\"))))}}();';","'use client';\n\nimport * as React from 'react';\nimport { useStableCallback } from '@base-ui/utils/useStableCallback';\nimport { useIsoLayoutEffect } from '@base-ui/utils/useIsoLayoutEffect';\nimport { useMergedRefs } from '@base-ui/utils/useMergedRefs';\nimport { visuallyHidden } from '@base-ui/utils/visuallyHidden';\nimport { ownerWindow } from '@base-ui/utils/owner';\nimport { clamp } from \"../../internals/clamp.js\";\nimport { formatNumber } from \"../../utils/formatNumber.js\";\nimport { mergeProps } from \"../../merge-props/index.js\";\nimport { useBaseUiId } from \"../../internals/useBaseUiId.js\";\nimport { useIsHydrating } from \"../../utils/useIsHydrating.js\";\nimport { useRenderElement } from \"../../internals/useRenderElement.js\";\nimport { valueToPercent } from \"../../utils/valueToPercent.js\";\nimport { ARROW_DOWN, ARROW_UP, ARROW_RIGHT, ARROW_LEFT, HOME, END, COMPOSITE_KEYS, PAGE_UP, PAGE_DOWN } from \"../../internals/composite/composite.js\";\nimport { useCompositeListItem } from \"../../internals/composite/list/useCompositeListItem.js\";\nimport { useDirection } from \"../../internals/direction-context/DirectionContext.js\";\nimport { useCSPContext } from \"../../internals/csp-context/CSPContext.js\";\nimport { useFieldRootContext } from \"../../internals/field-root-context/FieldRootContext.js\";\nimport { matchesFocusVisible } from \"../../floating-ui-react/utils/element.js\";\nimport { useLabelableId } from \"../../internals/labelable-provider/useLabelableId.js\";\nimport { getMidpoint } from \"../utils/getMidpoint.js\";\nimport { getSliderValue } from \"../utils/getSliderValue.js\";\nimport { getDecimalPrecision, roundValueToStep } from \"../utils/roundValueToStep.js\";\nimport { useSliderRootContext } from \"../root/SliderRootContext.js\";\nimport { sliderStateAttributesMapping } from \"../root/stateAttributesMapping.js\";\nimport { SliderThumbDataAttributes } from \"./SliderThumbDataAttributes.js\";\nimport { script as prehydrationScript } from \"./prehydrationScript.min.js\";\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nconst ALL_KEYS = new Set([...COMPOSITE_KEYS, PAGE_UP, PAGE_DOWN]);\nfunction getDefaultAriaValueText(values, index, format, locale) {\n if (index < 0) {\n return undefined;\n }\n if (values.length === 2) {\n if (index === 0) {\n return `${formatNumber(values[index], locale, format)} start range`;\n }\n return `${formatNumber(values[index], locale, format)} end range`;\n }\n return format ? formatNumber(values[index], locale, format) : undefined;\n}\nfunction getNewValue(thumbValue, increment, direction, min, max) {\n const value = direction === 1 ? thumbValue + increment : thumbValue - increment;\n const roundedValue = Number(value.toFixed(Math.max(getDecimalPrecision(thumbValue), getDecimalPrecision(increment), getDecimalPrecision(min))));\n return clamp(roundedValue, min, max);\n}\n\n/**\n * The draggable part of the slider at the tip of the indicator.\n * Renders a `<div>` element and a nested `<input type=\"range\">`.\n *\n * Documentation: [Base UI Slider](https://base-ui.com/react/components/slider)\n */\nexport const SliderThumb = /*#__PURE__*/React.forwardRef(function SliderThumb(componentProps, forwardedRef) {\n const {\n render,\n children: childrenProp,\n className,\n 'aria-describedby': ariaDescribedByProp,\n 'aria-label': ariaLabelProp,\n 'aria-labelledby': ariaLabelledByProp,\n disabled: disabledProp = false,\n getAriaLabel: getAriaLabelProp,\n getAriaValueText: getAriaValueTextProp,\n id: idProp,\n index: indexProp,\n inputRef: inputRefProp,\n onBlur: onBlurProp,\n onFocus: onFocusProp,\n onKeyDown: onKeyDownProp,\n tabIndex: tabIndexProp,\n style,\n ...elementProps\n } = componentProps;\n const {\n nonce\n } = useCSPContext();\n const id = useBaseUiId(idProp);\n const {\n active: activeIndex,\n lastUsedThumbIndex,\n controlRef,\n disabled: contextDisabled,\n validation,\n formatOptionsRef,\n handleInputChange,\n inset,\n labelId,\n largeStep,\n locale,\n max,\n min,\n minStepsBetweenValues,\n form,\n name,\n orientation,\n pressedInputRef,\n pressedThumbCenterOffsetRef,\n pressedThumbIndexRef,\n renderBeforeHydration,\n setActive,\n setIndicatorPosition,\n state,\n step,\n values: sliderValues\n } = useSliderRootContext();\n const direction = useDirection();\n const disabled = disabledProp || contextDisabled;\n const range = sliderValues.length > 1;\n const vertical = orientation === 'vertical';\n const rtl = direction === 'rtl';\n const {\n setTouched,\n setFocused,\n validationMode\n } = useFieldRootContext();\n const thumbRef = React.useRef(null);\n const inputRef = React.useRef(null);\n const restoringFocusVisibleRef = React.useRef(false);\n const defaultInputId = useBaseUiId();\n const labelableId = useLabelableId();\n const inputId = range ? defaultInputId : labelableId;\n const thumbMetadata = React.useMemo(() => ({\n inputId\n }), [inputId]);\n const {\n ref: listItemRef,\n index: compositeIndex\n } = useCompositeListItem({\n metadata: thumbMetadata\n });\n const index = !range ? 0 : indexProp ?? compositeIndex;\n const last = index === sliderValues.length - 1;\n const thumbValue = sliderValues[index];\n const thumbValuePercent = valueToPercent(thumbValue, min, max);\n const [positionPercent, setPositionPercent] = React.useState();\n const isHydrating = useIsHydrating();\n const safeLastUsedThumbIndex = lastUsedThumbIndex >= 0 && lastUsedThumbIndex < sliderValues.length ? lastUsedThumbIndex : -1;\n const getInsetPosition = useStableCallback(() => {\n const control = controlRef.current;\n const thumb = thumbRef.current;\n if (!control || !thumb) {\n return;\n }\n const thumbRect = thumb.getBoundingClientRect();\n const controlRect = control.getBoundingClientRect();\n const side = vertical ? 'height' : 'width';\n // the total travel distance adjusted to account for the thumb size\n const controlSize = controlRect[side] - thumbRect[side];\n // px distance from the starting edge (inline-start or bottom) to the thumb center\n const thumbOffsetFromControlEdge = thumbRect[side] / 2 + controlSize * thumbValuePercent / 100;\n const nextPositionPercent = thumbOffsetFromControlEdge / controlRect[side] * 100;\n const nextInsetPosition = Number.isFinite(nextPositionPercent) ? nextPositionPercent : undefined;\n setPositionPercent(nextInsetPosition);\n if (index === 0) {\n setIndicatorPosition(prevPosition => [nextInsetPosition, prevPosition[1]]);\n } else if (last) {\n setIndicatorPosition(prevPosition => [prevPosition[0], nextInsetPosition]);\n }\n });\n useIsoLayoutEffect(() => {\n if (inset) {\n queueMicrotask(getInsetPosition);\n }\n }, [getInsetPosition, inset]);\n useIsoLayoutEffect(() => {\n if (inset) {\n getInsetPosition();\n }\n }, [getInsetPosition, inset, thumbValuePercent]);\n useIsoLayoutEffect(() => {\n if (!inset) {\n return undefined;\n }\n const control = controlRef.current;\n const thumb = thumbRef.current;\n if (!control || !thumb) {\n return undefined;\n }\n const ResizeObserverCtor = ownerWindow(control).ResizeObserver;\n if (typeof ResizeObserverCtor !== 'function') {\n return undefined;\n }\n const resizeObserver = new ResizeObserverCtor(getInsetPosition);\n resizeObserver.observe(control);\n resizeObserver.observe(thumb);\n return () => {\n resizeObserver.disconnect();\n };\n }, [controlRef, getInsetPosition, inset]);\n const startEdge = vertical ? 'bottom' : 'insetInlineStart';\n const crossOffsetProperty = vertical ? 'left' : 'top';\n let zIndex;\n if (range) {\n if (activeIndex === index) {\n zIndex = 2;\n } else if (safeLastUsedThumbIndex === index) {\n zIndex = 1;\n }\n } else if (activeIndex === index) {\n zIndex = 1;\n }\n let thumbStyle;\n if (inset) {\n thumbStyle = {\n ['--position']: `${positionPercent ?? 0}%`,\n visibility: renderBeforeHydration && isHydrating || positionPercent === undefined ? 'hidden' : undefined,\n position: 'absolute',\n [startEdge]: 'var(--position)',\n [crossOffsetProperty]: '50%',\n translate: `${(vertical || !rtl ? -1 : 1) * 50}% ${(vertical ? 1 : -1) * 50}%`,\n zIndex\n };\n } else {\n thumbStyle = !Number.isFinite(thumbValuePercent) ? visuallyHidden : {\n position: 'absolute',\n [startEdge]: `${thumbValuePercent}%`,\n [crossOffsetProperty]: '50%',\n translate: `${(vertical || !rtl ? -1 : 1) * 50}% ${(vertical ? 1 : -1) * 50}%`,\n zIndex\n };\n }\n let cssWritingMode;\n if (orientation === 'vertical') {\n cssWritingMode = rtl ? 'vertical-rl' : 'vertical-lr';\n }\n const ariaLabel = typeof getAriaLabelProp === 'function' ? getAriaLabelProp(index) : ariaLabelProp;\n const inputProps = mergeProps({\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledByProp ?? (ariaLabel == null ? labelId : undefined),\n 'aria-describedby': ariaDescribedByProp,\n 'aria-orientation': orientation,\n 'aria-valuenow': thumbValue,\n 'aria-valuetext': typeof getAriaValueTextProp === 'function' ? getAriaValueTextProp(formatNumber(thumbValue, locale, formatOptionsRef.current ?? undefined), thumbValue, index) : getDefaultAriaValueText(sliderValues, index, formatOptionsRef.current ?? undefined, locale),\n disabled,\n form,\n id: inputId,\n max,\n min,\n name,\n onChange(event) {\n handleInputChange(event.currentTarget.valueAsNumber, index, event);\n },\n onFocus(event) {\n const isRestoringFocusVisible = restoringFocusVisibleRef.current;\n restoringFocusVisibleRef.current = false;\n setActive(index);\n setFocused(true);\n if (isRestoringFocusVisible) {\n event.stopPropagation();\n }\n },\n onBlur(event) {\n if (restoringFocusVisibleRef.current) {\n event.stopPropagation();\n return;\n }\n if (!thumbRef.current) {\n return;\n }\n setActive(-1);\n setTouched(true);\n setFocused(false);\n if (validationMode === 'onBlur') {\n validation.commit(getSliderValue(thumbValue, index, min, max, range, sliderValues));\n }\n },\n onKeyDown(event) {\n if (!ALL_KEYS.has(event.key)) {\n return;\n }\n if (COMPOSITE_KEYS.has(event.key)) {\n event.stopPropagation();\n }\n let newValue = null;\n const roundedValue = roundValueToStep(thumbValue, step, min);\n switch (event.key) {\n case ARROW_UP:\n newValue = getNewValue(roundedValue, event.shiftKey ? largeStep : step, 1, min, max);\n break;\n case ARROW_RIGHT:\n newValue = getNewValue(roundedValue, event.shiftKey ? largeStep : step, rtl ? -1 : 1, min, max);\n break;\n case ARROW_DOWN:\n newValue = getNewValue(roundedValue, event.shiftKey ? largeStep : step, -1, min, max);\n break;\n case ARROW_LEFT:\n newValue = getNewValue(roundedValue, event.shiftKey ? largeStep : step, rtl ? 1 : -1, min, max);\n break;\n case PAGE_UP:\n newValue = getNewValue(roundedValue, largeStep, 1, min, max);\n break;\n case PAGE_DOWN:\n newValue = getNewValue(roundedValue, largeStep, -1, min, max);\n break;\n case END:\n newValue = max;\n if (range) {\n newValue = Number.isFinite(sliderValues[index + 1]) ? sliderValues[index + 1] - step * minStepsBetweenValues : max;\n }\n break;\n case HOME:\n newValue = min;\n if (range) {\n newValue = Number.isFinite(sliderValues[index - 1]) ? sliderValues[index - 1] + step * minStepsBetweenValues : min;\n }\n break;\n default:\n break;\n }\n if (newValue !== null) {\n const input = event.currentTarget;\n if (!matchesFocusVisible(input)) {\n restoringFocusVisibleRef.current = true;\n input.blur();\n input.focus({\n preventScroll: true,\n // Show `:focus-visible` after keyboard interaction, even if the\n // thumb was previously focused by a pointer.\n focusVisible: true\n });\n }\n handleInputChange(newValue, index, event);\n event.preventDefault();\n }\n },\n step,\n style: {\n ...visuallyHidden,\n // So that VoiceOver's focus indicator matches the thumb's dimensions\n width: '100%',\n height: '100%',\n writingMode: cssWritingMode\n },\n tabIndex: tabIndexProp ?? undefined,\n type: 'range',\n value: thumbValue ?? ''\n }, validation.getInputValidationProps);\n const mergedInputRef = useMergedRefs(inputRef, validation.inputRef, inputRefProp);\n const element = useRenderElement('div', componentProps, {\n state,\n ref: [forwardedRef, listItemRef, thumbRef],\n props: [{\n [SliderThumbDataAttributes.index]: index,\n children: /*#__PURE__*/_jsxs(React.Fragment, {\n children: [childrenProp, /*#__PURE__*/_jsx(\"input\", {\n ref: mergedInputRef,\n ...inputProps,\n suppressHydrationWarning: true\n }), inset && isHydrating && renderBeforeHydration &&\n // this must be rendered with the last thumb to ensure all\n // preceding thumbs are already rendered in the DOM\n last && /*#__PURE__*/_jsx(\"script\", {\n nonce: nonce\n // eslint-disable-next-line react/no-danger\n ,\n dangerouslySetInnerHTML: {\n __html: prehydrationScript\n },\n suppressHydrationWarning: true\n })]\n }),\n id,\n onBlur: onBlurProp,\n onFocus: onFocusProp,\n onPointerDown(event) {\n pressedThumbIndexRef.current = index;\n if (thumbRef.current != null) {\n const axis = orientation === 'horizontal' ? 'x' : 'y';\n const midpoint = getMidpoint(thumbRef.current);\n const offset = (orientation === 'horizontal' ? event.clientX : event.clientY) - midpoint[axis];\n pressedThumbCenterOffsetRef.current = offset;\n }\n if (inputRef.current != null && pressedInputRef.current !== inputRef.current) {\n pressedInputRef.current = inputRef.current;\n }\n },\n style: thumbStyle,\n suppressHydrationWarning: renderBeforeHydration || undefined\n }, elementProps],\n stateAttributesMapping: sliderStateAttributesMapping\n });\n return element;\n});\nif (process.env.NODE_ENV !== \"production\") SliderThumb.displayName = \"SliderThumb\";","'use client';\n\nimport * as React from 'react';\nimport { valueToPercent } from \"../../utils/valueToPercent.js\";\nimport { useIsHydrating } from \"../../utils/useIsHydrating.js\";\nimport { useRenderElement } from \"../../internals/useRenderElement.js\";\nimport { useSliderRootContext } from \"../root/SliderRootContext.js\";\nimport { sliderStateAttributesMapping } from \"../root/stateAttributesMapping.js\";\nfunction getInsetStyles(vertical, range, start, end, renderBeforeHydration, hydrating) {\n const visibility = start === undefined || range && end === undefined ? 'hidden' : undefined;\n const startEdge = vertical ? 'bottom' : 'insetInlineStart';\n const mainSide = vertical ? 'height' : 'width';\n const crossSide = vertical ? 'width' : 'height';\n const styles = {\n visibility: renderBeforeHydration && hydrating ? 'hidden' : visibility,\n position: vertical ? 'absolute' : 'relative',\n [crossSide]: 'inherit'\n };\n styles['--start-position'] = `${start ?? 0}%`;\n if (!range) {\n styles[startEdge] = 0;\n styles[mainSide] = 'var(--start-position)';\n return styles;\n }\n styles['--relative-size'] = `${(end ?? 0) - (start ?? 0)}%`;\n styles[startEdge] = 'var(--start-position)';\n styles[mainSide] = 'var(--relative-size)';\n return styles;\n}\nfunction getCenteredStyles(vertical, range, start, end) {\n const startEdge = vertical ? 'bottom' : 'insetInlineStart';\n const mainSide = vertical ? 'height' : 'width';\n const crossSide = vertical ? 'width' : 'height';\n const styles = {\n position: vertical ? 'absolute' : 'relative',\n [crossSide]: 'inherit'\n };\n if (!range) {\n styles[startEdge] = 0;\n styles[mainSide] = `${start}%`;\n return styles;\n }\n const size = end - start;\n styles[startEdge] = `${start}%`;\n styles[mainSide] = `${size}%`;\n return styles;\n}\n\n/**\n * Visualizes the current value of the slider.\n * Renders a `<div>` element.\n *\n * Documentation: [Base UI Slider](https://base-ui.com/react/components/slider)\n */\nexport const SliderIndicator = /*#__PURE__*/React.forwardRef(function SliderIndicator(componentProps, forwardedRef) {\n const {\n render,\n className,\n style: styleProp,\n ...elementProps\n } = componentProps;\n const {\n indicatorPosition,\n inset,\n max,\n min,\n orientation,\n renderBeforeHydration,\n state,\n values\n } = useSliderRootContext();\n const isHydrating = useIsHydrating();\n const vertical = orientation === 'vertical';\n const range = values.length > 1;\n const style = inset ? getInsetStyles(vertical, range, indicatorPosition[0], indicatorPosition[1], renderBeforeHydration, isHydrating) : getCenteredStyles(vertical, range, valueToPercent(values[0], min, max), valueToPercent(values[values.length - 1], min, max));\n const element = useRenderElement('div', componentProps, {\n state,\n ref: forwardedRef,\n props: [{\n ['data-base-ui-slider-indicator']: renderBeforeHydration ? '' : undefined,\n style,\n suppressHydrationWarning: renderBeforeHydration || undefined\n }, elementProps],\n stateAttributesMapping: sliderStateAttributesMapping\n });\n return element;\n});\nif (process.env.NODE_ENV !== \"production\") SliderIndicator.displayName = \"SliderIndicator\";","\"use client\";\nimport { Slider as Base } from \"@base-ui/react/slider\";\nimport { Is } from \"sidekicker\";\nimport { css } from \"../../lib/dom\";\nimport { Tooltip } from \"../floating/tooltip\";\nimport { useEffect, useRef, useState } from \"react\";\nimport { uuid } from \"../../lib/fns\";\nimport { useLocale } from \"../../hooks/use-locale\";\n\ntype SliderProps = Parameters<typeof Base.Root>[0] & {\n tooltip?: boolean;\n};\n\nconst Thumb = (props: { tooltip: boolean }) => {\n const [float, setFloat] = useState<number | null>(null);\n const ref = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n const html = ref.current;\n if (html === null) return;\n const initialValue = Number(html.getAttribute(\"aria-valuenow\"));\n if (Is.number(initialValue)) {\n setFloat(initialValue);\n }\n const observer = new MutationObserver((changes) => {\n const span = changes[0].target as HTMLSpanElement;\n const value = Number(span.getAttribute(\"aria-valuenow\"));\n setFloat(Is.number(value) ? value : null);\n });\n observer.observe(html, { attributeFilter: [\"aria-valuenow\"] });\n return () => observer.disconnect();\n }, []);\n\n return (\n <Tooltip\n title=\"\"\n ref={ref}\n as={Base.Thumb}\n enabled={props.tooltip}\n className=\"focus-within::scale-105 block size-slider-thumb-size cursor-grab rounded-full border-2 border-input-border bg-input-switch shadow-shadow-floating focus-within:border-primary focus-within:outline active:cursor-grabbing\"\n >\n {float}\n </Tooltip>\n );\n};\n\nexport const Slider = (props: SliderProps) => {\n const { tooltip, className, defaultValue, value, ...restProps } = props;\n const id = useRef(uuid());\n const array = defaultValue || value || [];\n const locale = useLocale();\n\n return (\n <Base.Root {...restProps} value={value} locale={locale} defaultValue={defaultValue}>\n <Base.Control className={css(\"relative flex h-slider-control-h w-full touch-none select-none items-center\", className)}>\n <Base.Track className=\"relative h-slider-track-h grow rounded-full bg-background\">\n <Base.Indicator className=\"absolute h-full rounded-full bg-primary\" />\n </Base.Track>\n {Array.isArray(array) ? array.map((_, i) => <Thumb tooltip={tooltip ?? false} key={`${id.current}-${i}`} />) : null}\n </Base.Control>\n </Base.Root>\n );\n};\n"],"x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35],"mappings":"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"}
@@ -0,0 +1,195 @@
1
+ import { t as e } from "./Plus.es-DbyRkEE2.js";
2
+ import { t } from "./Trash.es-BFAc8PMf.js";
3
+ import { t as n } from "./IconBase.es-BlJQ9IXo.js";
4
+ import { t as r } from "./use-translations-BE4PuhLm.js";
5
+ import { c as i } from "./fns-KbsWlOTG.js";
6
+ import { Select as a } from "./components/form/select.js";
7
+ import { Dropdown as o } from "./components/floating/dropdown.js";
8
+ import { i as s } from "./table-lib-1bkYSklk.js";
9
+ import * as c from "react";
10
+ import { Fragment as l, useState as u } from "react";
11
+ import { jsx as d, jsxs as f } from "react/jsx-runtime";
12
+ //#region ../../node_modules/.pnpm/@phosphor-icons+react@2.1.10_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/@phosphor-icons/react/dist/defs/CaretUpDown.es.js
13
+ var p = /* @__PURE__ */ new Map([
14
+ ["bold", /* @__PURE__ */ c.createElement(c.Fragment, null, /* @__PURE__ */ c.createElement("path", { d: "M184.49,167.51a12,12,0,0,1,0,17l-48,48a12,12,0,0,1-17,0l-48-48a12,12,0,0,1,17-17L128,207l39.51-39.52A12,12,0,0,1,184.49,167.51Zm-96-79L128,49l39.51,39.52a12,12,0,0,0,17-17l-48-48a12,12,0,0,0-17,0l-48,48a12,12,0,0,0,17,17Z" }))],
15
+ ["duotone", /* @__PURE__ */ c.createElement(c.Fragment, null, /* @__PURE__ */ c.createElement("path", {
16
+ d: "M80,176h96l-48,48ZM128,32,80,80h96Z",
17
+ opacity: "0.2"
18
+ }), /* @__PURE__ */ c.createElement("path", { d: "M176,168H80a8,8,0,0,0-5.66,13.66l48,48a8,8,0,0,0,11.32,0l48-48A8,8,0,0,0,176,168Zm-48,44.69L99.31,184h57.38ZM80,88h96a8,8,0,0,0,5.66-13.66l-48-48a8,8,0,0,0-11.32,0l-48,48A8,8,0,0,0,80,88Zm48-44.69L156.69,72H99.31Z" }))],
19
+ ["fill", /* @__PURE__ */ c.createElement(c.Fragment, null, /* @__PURE__ */ c.createElement("path", { d: "M72.61,83.06a8,8,0,0,1,1.73-8.72l48-48a8,8,0,0,1,11.32,0l48,48A8,8,0,0,1,176,88H80A8,8,0,0,1,72.61,83.06ZM176,168H80a8,8,0,0,0-5.66,13.66l48,48a8,8,0,0,0,11.32,0l48-48A8,8,0,0,0,176,168Z" }))],
20
+ ["light", /* @__PURE__ */ c.createElement(c.Fragment, null, /* @__PURE__ */ c.createElement("path", { d: "M180.24,171.76a6,6,0,0,1,0,8.48l-48,48a6,6,0,0,1-8.48,0l-48-48a6,6,0,0,1,8.48-8.48L128,215.51l43.76-43.75A6,6,0,0,1,180.24,171.76Zm-96-87.52L128,40.49l43.76,43.75a6,6,0,0,0,8.48-8.48l-48-48a6,6,0,0,0-8.48,0l-48,48a6,6,0,0,0,8.48,8.48Z" }))],
21
+ ["regular", /* @__PURE__ */ c.createElement(c.Fragment, null, /* @__PURE__ */ c.createElement("path", { d: "M181.66,170.34a8,8,0,0,1,0,11.32l-48,48a8,8,0,0,1-11.32,0l-48-48a8,8,0,0,1,11.32-11.32L128,212.69l42.34-42.35A8,8,0,0,1,181.66,170.34Zm-96-84.68L128,43.31l42.34,42.35a8,8,0,0,0,11.32-11.32l-48-48a8,8,0,0,0-11.32,0l-48,48A8,8,0,0,0,85.66,85.66Z" }))],
22
+ ["thin", /* @__PURE__ */ c.createElement(c.Fragment, null, /* @__PURE__ */ c.createElement("path", { d: "M178.83,173.17a4,4,0,0,1,0,5.66l-48,48a4,4,0,0,1-5.66,0l-48-48a4,4,0,0,1,5.66-5.66L128,218.34l45.17-45.17A4,4,0,0,1,178.83,173.17Zm-96-90.34L128,37.66l45.17,45.17a4,4,0,1,0,5.66-5.66l-48-48a4,4,0,0,0-5.66,0l-48,48a4,4,0,0,0,5.66,5.66Z" }))]
23
+ ]), m = /* @__PURE__ */ new Map([
24
+ ["bold", /* @__PURE__ */ c.createElement(c.Fragment, null, /* @__PURE__ */ c.createElement("path", { d: "M128,128a12,12,0,0,1-12,12H48a12,12,0,0,1,0-24h68A12,12,0,0,1,128,128ZM48,76H180a12,12,0,0,0,0-24H48a12,12,0,0,0,0,24Zm52,104H48a12,12,0,0,0,0,24h52a12,12,0,0,0,0-24Zm132.49-20.49a12,12,0,0,0-17,0L196,179V112a12,12,0,0,0-24,0v67l-19.51-19.52a12,12,0,0,0-17,17l40,40a12,12,0,0,0,17,0l40-40A12,12,0,0,0,232.49,159.51Z" }))],
25
+ ["duotone", /* @__PURE__ */ c.createElement(c.Fragment, null, /* @__PURE__ */ c.createElement("path", {
26
+ d: "M224,80v88l-24,24H48V64H208A16,16,0,0,1,224,80Z",
27
+ opacity: "0.2"
28
+ }), /* @__PURE__ */ c.createElement("path", { d: "M128,128a8,8,0,0,1-8,8H48a8,8,0,0,1,0-16h72A8,8,0,0,1,128,128ZM48,72H184a8,8,0,0,0,0-16H48a8,8,0,0,0,0,16Zm56,112H48a8,8,0,0,0,0,16h56a8,8,0,0,0,0-16Zm125.66-21.66a8,8,0,0,0-11.32,0L192,188.69V112a8,8,0,0,0-16,0v76.69l-26.34-26.35a8,8,0,0,0-11.32,11.32l40,40a8,8,0,0,0,11.32,0l40-40A8,8,0,0,0,229.66,162.34Z" }))],
29
+ ["fill", /* @__PURE__ */ c.createElement(c.Fragment, null, /* @__PURE__ */ c.createElement("path", { d: "M208,32H48A16,16,0,0,0,32,48V208a16,16,0,0,0,16,16H208a16,16,0,0,0,16-16V48A16,16,0,0,0,208,32ZM72,72h96a8,8,0,0,1,0,16H72a8,8,0,0,1,0-16Zm40,112H72a8,8,0,0,1,0-16h40a8,8,0,0,1,0,16Zm8-48H72a8,8,0,0,1,0-16h48a8,8,0,0,1,0,16Zm77.66,29.66-24,24a8,8,0,0,1-11.32,0l-24-24a8,8,0,0,1,11.32-11.32L160,164.69V120a8,8,0,0,1,16,0v44.69l10.34-10.35a8,8,0,0,1,11.32,11.32Z" }))],
30
+ ["light", /* @__PURE__ */ c.createElement(c.Fragment, null, /* @__PURE__ */ c.createElement("path", { d: "M126,128a6,6,0,0,1-6,6H48a6,6,0,0,1,0-12h72A6,6,0,0,1,126,128ZM48,70H184a6,6,0,0,0,0-12H48a6,6,0,0,0,0,12Zm56,116H48a6,6,0,0,0,0,12h56a6,6,0,0,0,0-12Zm124.24-22.24a6,6,0,0,0-8.48,0L190,193.51V112a6,6,0,0,0-12,0v81.51l-29.76-29.75a6,6,0,0,0-8.48,8.48l40,40a6,6,0,0,0,8.48,0l40-40A6,6,0,0,0,228.24,163.76Z" }))],
31
+ ["regular", /* @__PURE__ */ c.createElement(c.Fragment, null, /* @__PURE__ */ c.createElement("path", { d: "M128,128a8,8,0,0,1-8,8H48a8,8,0,0,1,0-16h72A8,8,0,0,1,128,128ZM48,72H184a8,8,0,0,0,0-16H48a8,8,0,0,0,0,16Zm56,112H48a8,8,0,0,0,0,16h56a8,8,0,0,0,0-16Zm125.66-21.66a8,8,0,0,0-11.32,0L192,188.69V112a8,8,0,0,0-16,0v76.69l-26.34-26.35a8,8,0,0,0-11.32,11.32l40,40a8,8,0,0,0,11.32,0l40-40A8,8,0,0,0,229.66,162.34Z" }))],
32
+ ["thin", /* @__PURE__ */ c.createElement(c.Fragment, null, /* @__PURE__ */ c.createElement("path", { d: "M124,128a4,4,0,0,1-4,4H48a4,4,0,0,1,0-8h72A4,4,0,0,1,124,128ZM48,68H184a4,4,0,0,0,0-8H48a4,4,0,0,0,0,8Zm56,120H48a4,4,0,0,0,0,8h56a4,4,0,0,0,0-8Zm122.83-22.83a4,4,0,0,0-5.66,0L188,198.34V112a4,4,0,0,0-8,0v86.34l-33.17-33.17a4,4,0,0,0-5.66,5.66l40,40a4,4,0,0,0,5.66,0l40-40A4,4,0,0,0,226.83,165.17Z" }))]
33
+ ]), h = /* @__PURE__ */ new Map([
34
+ ["bold", /* @__PURE__ */ c.createElement(c.Fragment, null, /* @__PURE__ */ c.createElement("path", { d: "M36,128a12,12,0,0,1,12-12h68a12,12,0,0,1,0,24H48A12,12,0,0,1,36,128ZM48,76h52a12,12,0,0,0,0-24H48a12,12,0,0,0,0,24ZM180,180H48a12,12,0,0,0,0,24H180a12,12,0,0,0,0-24ZM232.49,79.51l-40-40a12,12,0,0,0-17,0l-40,40a12,12,0,0,0,17,17L172,77v67a12,12,0,0,0,24,0V77l19.51,19.52a12,12,0,0,0,17-17Z" }))],
35
+ ["duotone", /* @__PURE__ */ c.createElement(c.Fragment, null, /* @__PURE__ */ c.createElement("path", {
36
+ d: "M224,88v88a16,16,0,0,1-16,16H48V64H200Z",
37
+ opacity: "0.2"
38
+ }), /* @__PURE__ */ c.createElement("path", { d: "M40,128a8,8,0,0,1,8-8h72a8,8,0,0,1,0,16H48A8,8,0,0,1,40,128Zm8-56h56a8,8,0,0,0,0-16H48a8,8,0,0,0,0,16ZM184,184H48a8,8,0,0,0,0,16H184a8,8,0,0,0,0-16ZM229.66,82.34l-40-40a8,8,0,0,0-11.32,0l-40,40a8,8,0,0,0,11.32,11.32L176,67.31V144a8,8,0,0,0,16,0V67.31l26.34,26.35a8,8,0,0,0,11.32-11.32Z" }))],
39
+ ["fill", /* @__PURE__ */ c.createElement(c.Fragment, null, /* @__PURE__ */ c.createElement("path", { d: "M208,32H48A16,16,0,0,0,32,48V208a16,16,0,0,0,16,16H208a16,16,0,0,0,16-16V48A16,16,0,0,0,208,32ZM72,72h40a8,8,0,0,1,0,16H72a8,8,0,0,1,0-16Zm0,48h48a8,8,0,0,1,0,16H72a8,8,0,0,1,0-16Zm96,64H72a8,8,0,0,1,0-16h96a8,8,0,0,1,0,16Zm29.66-82.34a8,8,0,0,1-11.32,0L176,91.31V136a8,8,0,0,1-16,0V91.31l-10.34,10.35a8,8,0,0,1-11.32-11.32l24-24a8,8,0,0,1,11.32,0l24,24A8,8,0,0,1,197.66,101.66Z" }))],
40
+ ["light", /* @__PURE__ */ c.createElement(c.Fragment, null, /* @__PURE__ */ c.createElement("path", { d: "M42,128a6,6,0,0,1,6-6h72a6,6,0,0,1,0,12H48A6,6,0,0,1,42,128Zm6-58h56a6,6,0,0,0,0-12H48a6,6,0,0,0,0,12ZM184,186H48a6,6,0,0,0,0,12H184a6,6,0,0,0,0-12ZM228.24,83.76l-40-40a6,6,0,0,0-8.48,0l-40,40a6,6,0,0,0,8.48,8.48L178,62.49V144a6,6,0,0,0,12,0V62.49l29.76,29.75a6,6,0,0,0,8.48-8.48Z" }))],
41
+ ["regular", /* @__PURE__ */ c.createElement(c.Fragment, null, /* @__PURE__ */ c.createElement("path", { d: "M40,128a8,8,0,0,1,8-8h72a8,8,0,0,1,0,16H48A8,8,0,0,1,40,128Zm8-56h56a8,8,0,0,0,0-16H48a8,8,0,0,0,0,16ZM184,184H48a8,8,0,0,0,0,16H184a8,8,0,0,0,0-16ZM229.66,82.34l-40-40a8,8,0,0,0-11.32,0l-40,40a8,8,0,0,0,11.32,11.32L176,67.31V144a8,8,0,0,0,16,0V67.31l26.34,26.35a8,8,0,0,0,11.32-11.32Z" }))],
42
+ ["thin", /* @__PURE__ */ c.createElement(c.Fragment, null, /* @__PURE__ */ c.createElement("path", { d: "M44,128a4,4,0,0,1,4-4h72a4,4,0,0,1,0,8H48A4,4,0,0,1,44,128Zm4-60h56a4,4,0,0,0,0-8H48a4,4,0,0,0,0,8ZM184,188H48a4,4,0,0,0,0,8H184a4,4,0,0,0,0-8ZM226.83,85.17l-40-40a4,4,0,0,0-5.66,0l-40,40a4,4,0,0,0,5.66,5.66L180,57.66V144a4,4,0,0,0,8,0V57.66l33.17,33.17a4,4,0,1,0,5.66-5.66Z" }))]
43
+ ]), g = c.forwardRef((e, t) => /* @__PURE__ */ c.createElement(n, {
44
+ ref: t,
45
+ ...e,
46
+ weights: p
47
+ }));
48
+ g.displayName = "CaretUpDownIcon";
49
+ //#endregion
50
+ //#region ../../node_modules/.pnpm/@phosphor-icons+react@2.1.10_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/@phosphor-icons/react/dist/csr/SortAscending.es.js
51
+ var _ = c.forwardRef((e, t) => /* @__PURE__ */ c.createElement(n, {
52
+ ref: t,
53
+ ...e,
54
+ weights: m
55
+ }));
56
+ _.displayName = "SortAscendingIcon";
57
+ //#endregion
58
+ //#region ../../node_modules/.pnpm/@phosphor-icons+react@2.1.10_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/@phosphor-icons/react/dist/csr/SortDescending.es.js
59
+ var v = c.forwardRef((e, t) => /* @__PURE__ */ c.createElement(n, {
60
+ ref: t,
61
+ ...e,
62
+ weights: h
63
+ }));
64
+ v.displayName = "SortDescendingIcon";
65
+ //#endregion
66
+ //#region src/components/table/sort.tsx
67
+ var y = (e) => (t, n) => e.reduce((e, r) => {
68
+ let i = r.type === "desc" ? -1 : 1, a = r.value, o = t[a] > n[a] ? i : t[a] < n[a] ? -i : 0;
69
+ return e === 0 ? o : e;
70
+ }, 0), b = (e, t) => (e.sort(y(t)), e), x = (e, t, n) => ({
71
+ label: t,
72
+ id: i(),
73
+ type: n,
74
+ value: e.id
75
+ }), S = (n) => {
76
+ let i = r(), s = {
77
+ asc: {
78
+ label: i.tableSortAsc,
79
+ value: "asc"
80
+ },
81
+ desc: {
82
+ label: i.tableSortDesc,
83
+ value: "desc"
84
+ }
85
+ }, c = [s.asc, s.desc], u = () => {
86
+ let e = n.cols[0];
87
+ e && n.set((t) => [...t, x(e, s.asc.label, s.asc.value)]);
88
+ }, p = (e) => (t) => {
89
+ let r = t.target.value;
90
+ n.set((t) => t.map((t) => t.id === e ? {
91
+ ...t,
92
+ value: r
93
+ } : t));
94
+ }, m = (e) => (t) => {
95
+ let r = t.target.value;
96
+ n.set((t) => t.map((t) => t.id === e ? {
97
+ ...t,
98
+ type: r
99
+ } : t));
100
+ }, h = (e) => {
101
+ let t = e.currentTarget.dataset.id || "";
102
+ n.set((e) => e.filter((e) => e.id !== t));
103
+ };
104
+ return /* @__PURE__ */ d(l, { children: /* @__PURE__ */ d(o, {
105
+ title: i.tableSortDropdownTitle,
106
+ trigger: /* @__PURE__ */ f("span", {
107
+ className: "flex items-center gap-table-inline-gap-tight proportional-nums",
108
+ children: [
109
+ /* @__PURE__ */ d(g, { size: 14 }),
110
+ i.tableSortOrderByLabel,
111
+ " ",
112
+ n.sorters.length === 0 ? "" : ` (${n.sorters.length})`
113
+ ]
114
+ }),
115
+ children: /* @__PURE__ */ f("ul", {
116
+ className: "mt-table-groups-mt space-y-2",
117
+ children: [n.sorters.map((e) => /* @__PURE__ */ f("li", {
118
+ className: "flex flex-nowrap gap-3",
119
+ children: [
120
+ /* @__PURE__ */ d(a, {
121
+ options: n.options,
122
+ value: e.value,
123
+ onChange: p(e.id),
124
+ title: i.tableSortOrderInputTitle,
125
+ placeholder: i.tableSortOrderInputPlaceholder
126
+ }),
127
+ /* @__PURE__ */ d(a, {
128
+ onChange: m(e.id),
129
+ value: e.type,
130
+ options: c,
131
+ title: i.tableSortTypeInputTitle,
132
+ placeholder: i.tableSortTypeInputPlaceholder
133
+ }),
134
+ /* @__PURE__ */ d("button", {
135
+ className: "mt-table-groups-mt",
136
+ "data-id": e.id,
137
+ onClick: h,
138
+ children: /* @__PURE__ */ d("span", {
139
+ className: "text-danger",
140
+ children: /* @__PURE__ */ d(t, {
141
+ "aria-hidden": "true",
142
+ size: 14
143
+ })
144
+ })
145
+ })
146
+ ]
147
+ }, `sorter-select-${e.id}`)), /* @__PURE__ */ d("li", { children: /* @__PURE__ */ f("button", {
148
+ type: "button",
149
+ onClick: u,
150
+ className: "flex items-center gap-table-inline-gap-tight text-primary",
151
+ children: [
152
+ /* @__PURE__ */ d(e, { size: 14 }),
153
+ " ",
154
+ i.tableSortAddButton
155
+ ]
156
+ }) })]
157
+ })
158
+ }) });
159
+ }, C = (e) => {
160
+ let t = r(), [n, i] = u(() => {
161
+ let t = e.sorters.find((t) => t.value === e.col.id);
162
+ return t ? t.type : "undefined";
163
+ }), a = () => {
164
+ let t = n === "undefined" ? "asc" : n === "asc" ? "desc" : "undefined";
165
+ i(t), e.setSorters((n) => {
166
+ if (t === "undefined") return n.filter((t) => t.value !== e.col.id);
167
+ let r = n.findIndex((t) => t.value === e.col.id), i = x(e.col, t, t);
168
+ return r === -1 ? [...n, i] : (n[r] = i, [...n]);
169
+ });
170
+ }, o = `${e.col.id}-sorter-id`, c = s(e.col);
171
+ return /* @__PURE__ */ f("button", {
172
+ "aria-labelledby": o,
173
+ className: "isolate flex items-center",
174
+ onClick: a,
175
+ type: "button",
176
+ children: [
177
+ /* @__PURE__ */ f("span", {
178
+ id: o,
179
+ className: "sr-only",
180
+ children: [
181
+ t.tableSortDropdownTitle,
182
+ " ",
183
+ c
184
+ ]
185
+ }),
186
+ n === "asc" ? /* @__PURE__ */ d(_, { size: 14 }) : null,
187
+ n === "desc" ? /* @__PURE__ */ d(v, { size: 14 }) : null,
188
+ n === "undefined" ? /* @__PURE__ */ d(g, { size: 14 }) : null
189
+ ]
190
+ });
191
+ };
192
+ //#endregion
193
+ export { C as n, b as r, S as t };
194
+
195
+ //# sourceMappingURL=sort-DGmiselV.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sort-DGmiselV.js","names":["e","e","a","e","a","e","o","a","n","o","n","c","e","n","c"],"sources":["../../../node_modules/.pnpm/@phosphor-icons+react@2.1.10_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/@phosphor-icons/react/dist/defs/CaretUpDown.es.js","../../../node_modules/.pnpm/@phosphor-icons+react@2.1.10_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/@phosphor-icons/react/dist/defs/SortAscending.es.js","../../../node_modules/.pnpm/@phosphor-icons+react@2.1.10_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/@phosphor-icons/react/dist/defs/SortDescending.es.js","../../../node_modules/.pnpm/@phosphor-icons+react@2.1.10_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/@phosphor-icons/react/dist/csr/CaretUpDown.es.js","../../../node_modules/.pnpm/@phosphor-icons+react@2.1.10_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/@phosphor-icons/react/dist/csr/SortAscending.es.js","../../../node_modules/.pnpm/@phosphor-icons+react@2.1.10_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/@phosphor-icons/react/dist/csr/SortDescending.es.js","../src/components/table/sort.tsx"],"sourcesContent":["import * as e from \"react\";\nconst a = /* @__PURE__ */ new Map([\n [\n \"bold\",\n /* @__PURE__ */ e.createElement(e.Fragment, null, /* @__PURE__ */ e.createElement(\"path\", { d: \"M184.49,167.51a12,12,0,0,1,0,17l-48,48a12,12,0,0,1-17,0l-48-48a12,12,0,0,1,17-17L128,207l39.51-39.52A12,12,0,0,1,184.49,167.51Zm-96-79L128,49l39.51,39.52a12,12,0,0,0,17-17l-48-48a12,12,0,0,0-17,0l-48,48a12,12,0,0,0,17,17Z\" }))\n ],\n [\n \"duotone\",\n /* @__PURE__ */ e.createElement(e.Fragment, null, /* @__PURE__ */ e.createElement(\"path\", { d: \"M80,176h96l-48,48ZM128,32,80,80h96Z\", opacity: \"0.2\" }), /* @__PURE__ */ e.createElement(\"path\", { d: \"M176,168H80a8,8,0,0,0-5.66,13.66l48,48a8,8,0,0,0,11.32,0l48-48A8,8,0,0,0,176,168Zm-48,44.69L99.31,184h57.38ZM80,88h96a8,8,0,0,0,5.66-13.66l-48-48a8,8,0,0,0-11.32,0l-48,48A8,8,0,0,0,80,88Zm48-44.69L156.69,72H99.31Z\" }))\n ],\n [\n \"fill\",\n /* @__PURE__ */ e.createElement(e.Fragment, null, /* @__PURE__ */ e.createElement(\"path\", { d: \"M72.61,83.06a8,8,0,0,1,1.73-8.72l48-48a8,8,0,0,1,11.32,0l48,48A8,8,0,0,1,176,88H80A8,8,0,0,1,72.61,83.06ZM176,168H80a8,8,0,0,0-5.66,13.66l48,48a8,8,0,0,0,11.32,0l48-48A8,8,0,0,0,176,168Z\" }))\n ],\n [\n \"light\",\n /* @__PURE__ */ e.createElement(e.Fragment, null, /* @__PURE__ */ e.createElement(\"path\", { d: \"M180.24,171.76a6,6,0,0,1,0,8.48l-48,48a6,6,0,0,1-8.48,0l-48-48a6,6,0,0,1,8.48-8.48L128,215.51l43.76-43.75A6,6,0,0,1,180.24,171.76Zm-96-87.52L128,40.49l43.76,43.75a6,6,0,0,0,8.48-8.48l-48-48a6,6,0,0,0-8.48,0l-48,48a6,6,0,0,0,8.48,8.48Z\" }))\n ],\n [\n \"regular\",\n /* @__PURE__ */ e.createElement(e.Fragment, null, /* @__PURE__ */ e.createElement(\"path\", { d: \"M181.66,170.34a8,8,0,0,1,0,11.32l-48,48a8,8,0,0,1-11.32,0l-48-48a8,8,0,0,1,11.32-11.32L128,212.69l42.34-42.35A8,8,0,0,1,181.66,170.34Zm-96-84.68L128,43.31l42.34,42.35a8,8,0,0,0,11.32-11.32l-48-48a8,8,0,0,0-11.32,0l-48,48A8,8,0,0,0,85.66,85.66Z\" }))\n ],\n [\n \"thin\",\n /* @__PURE__ */ e.createElement(e.Fragment, null, /* @__PURE__ */ e.createElement(\"path\", { d: \"M178.83,173.17a4,4,0,0,1,0,5.66l-48,48a4,4,0,0,1-5.66,0l-48-48a4,4,0,0,1,5.66-5.66L128,218.34l45.17-45.17A4,4,0,0,1,178.83,173.17Zm-96-90.34L128,37.66l45.17,45.17a4,4,0,1,0,5.66-5.66l-48-48a4,4,0,0,0-5.66,0l-48,48a4,4,0,0,0,5.66,5.66Z\" }))\n ]\n]);\nexport {\n a as default\n};\n","import * as a from \"react\";\nconst e = /* @__PURE__ */ new Map([\n [\n \"bold\",\n /* @__PURE__ */ a.createElement(a.Fragment, null, /* @__PURE__ */ a.createElement(\"path\", { d: \"M128,128a12,12,0,0,1-12,12H48a12,12,0,0,1,0-24h68A12,12,0,0,1,128,128ZM48,76H180a12,12,0,0,0,0-24H48a12,12,0,0,0,0,24Zm52,104H48a12,12,0,0,0,0,24h52a12,12,0,0,0,0-24Zm132.49-20.49a12,12,0,0,0-17,0L196,179V112a12,12,0,0,0-24,0v67l-19.51-19.52a12,12,0,0,0-17,17l40,40a12,12,0,0,0,17,0l40-40A12,12,0,0,0,232.49,159.51Z\" }))\n ],\n [\n \"duotone\",\n /* @__PURE__ */ a.createElement(a.Fragment, null, /* @__PURE__ */ a.createElement(\"path\", { d: \"M224,80v88l-24,24H48V64H208A16,16,0,0,1,224,80Z\", opacity: \"0.2\" }), /* @__PURE__ */ a.createElement(\"path\", { d: \"M128,128a8,8,0,0,1-8,8H48a8,8,0,0,1,0-16h72A8,8,0,0,1,128,128ZM48,72H184a8,8,0,0,0,0-16H48a8,8,0,0,0,0,16Zm56,112H48a8,8,0,0,0,0,16h56a8,8,0,0,0,0-16Zm125.66-21.66a8,8,0,0,0-11.32,0L192,188.69V112a8,8,0,0,0-16,0v76.69l-26.34-26.35a8,8,0,0,0-11.32,11.32l40,40a8,8,0,0,0,11.32,0l40-40A8,8,0,0,0,229.66,162.34Z\" }))\n ],\n [\n \"fill\",\n /* @__PURE__ */ a.createElement(a.Fragment, null, /* @__PURE__ */ a.createElement(\"path\", { d: \"M208,32H48A16,16,0,0,0,32,48V208a16,16,0,0,0,16,16H208a16,16,0,0,0,16-16V48A16,16,0,0,0,208,32ZM72,72h96a8,8,0,0,1,0,16H72a8,8,0,0,1,0-16Zm40,112H72a8,8,0,0,1,0-16h40a8,8,0,0,1,0,16Zm8-48H72a8,8,0,0,1,0-16h48a8,8,0,0,1,0,16Zm77.66,29.66-24,24a8,8,0,0,1-11.32,0l-24-24a8,8,0,0,1,11.32-11.32L160,164.69V120a8,8,0,0,1,16,0v44.69l10.34-10.35a8,8,0,0,1,11.32,11.32Z\" }))\n ],\n [\n \"light\",\n /* @__PURE__ */ a.createElement(a.Fragment, null, /* @__PURE__ */ a.createElement(\"path\", { d: \"M126,128a6,6,0,0,1-6,6H48a6,6,0,0,1,0-12h72A6,6,0,0,1,126,128ZM48,70H184a6,6,0,0,0,0-12H48a6,6,0,0,0,0,12Zm56,116H48a6,6,0,0,0,0,12h56a6,6,0,0,0,0-12Zm124.24-22.24a6,6,0,0,0-8.48,0L190,193.51V112a6,6,0,0,0-12,0v81.51l-29.76-29.75a6,6,0,0,0-8.48,8.48l40,40a6,6,0,0,0,8.48,0l40-40A6,6,0,0,0,228.24,163.76Z\" }))\n ],\n [\n \"regular\",\n /* @__PURE__ */ a.createElement(a.Fragment, null, /* @__PURE__ */ a.createElement(\"path\", { d: \"M128,128a8,8,0,0,1-8,8H48a8,8,0,0,1,0-16h72A8,8,0,0,1,128,128ZM48,72H184a8,8,0,0,0,0-16H48a8,8,0,0,0,0,16Zm56,112H48a8,8,0,0,0,0,16h56a8,8,0,0,0,0-16Zm125.66-21.66a8,8,0,0,0-11.32,0L192,188.69V112a8,8,0,0,0-16,0v76.69l-26.34-26.35a8,8,0,0,0-11.32,11.32l40,40a8,8,0,0,0,11.32,0l40-40A8,8,0,0,0,229.66,162.34Z\" }))\n ],\n [\n \"thin\",\n /* @__PURE__ */ a.createElement(a.Fragment, null, /* @__PURE__ */ a.createElement(\"path\", { d: \"M124,128a4,4,0,0,1-4,4H48a4,4,0,0,1,0-8h72A4,4,0,0,1,124,128ZM48,68H184a4,4,0,0,0,0-8H48a4,4,0,0,0,0,8Zm56,120H48a4,4,0,0,0,0,8h56a4,4,0,0,0,0-8Zm122.83-22.83a4,4,0,0,0-5.66,0L188,198.34V112a4,4,0,0,0-8,0v86.34l-33.17-33.17a4,4,0,0,0-5.66,5.66l40,40a4,4,0,0,0,5.66,0l40-40A4,4,0,0,0,226.83,165.17Z\" }))\n ]\n]);\nexport {\n e as default\n};\n","import * as a from \"react\";\nconst e = /* @__PURE__ */ new Map([\n [\n \"bold\",\n /* @__PURE__ */ a.createElement(a.Fragment, null, /* @__PURE__ */ a.createElement(\"path\", { d: \"M36,128a12,12,0,0,1,12-12h68a12,12,0,0,1,0,24H48A12,12,0,0,1,36,128ZM48,76h52a12,12,0,0,0,0-24H48a12,12,0,0,0,0,24ZM180,180H48a12,12,0,0,0,0,24H180a12,12,0,0,0,0-24ZM232.49,79.51l-40-40a12,12,0,0,0-17,0l-40,40a12,12,0,0,0,17,17L172,77v67a12,12,0,0,0,24,0V77l19.51,19.52a12,12,0,0,0,17-17Z\" }))\n ],\n [\n \"duotone\",\n /* @__PURE__ */ a.createElement(a.Fragment, null, /* @__PURE__ */ a.createElement(\"path\", { d: \"M224,88v88a16,16,0,0,1-16,16H48V64H200Z\", opacity: \"0.2\" }), /* @__PURE__ */ a.createElement(\"path\", { d: \"M40,128a8,8,0,0,1,8-8h72a8,8,0,0,1,0,16H48A8,8,0,0,1,40,128Zm8-56h56a8,8,0,0,0,0-16H48a8,8,0,0,0,0,16ZM184,184H48a8,8,0,0,0,0,16H184a8,8,0,0,0,0-16ZM229.66,82.34l-40-40a8,8,0,0,0-11.32,0l-40,40a8,8,0,0,0,11.32,11.32L176,67.31V144a8,8,0,0,0,16,0V67.31l26.34,26.35a8,8,0,0,0,11.32-11.32Z\" }))\n ],\n [\n \"fill\",\n /* @__PURE__ */ a.createElement(a.Fragment, null, /* @__PURE__ */ a.createElement(\"path\", { d: \"M208,32H48A16,16,0,0,0,32,48V208a16,16,0,0,0,16,16H208a16,16,0,0,0,16-16V48A16,16,0,0,0,208,32ZM72,72h40a8,8,0,0,1,0,16H72a8,8,0,0,1,0-16Zm0,48h48a8,8,0,0,1,0,16H72a8,8,0,0,1,0-16Zm96,64H72a8,8,0,0,1,0-16h96a8,8,0,0,1,0,16Zm29.66-82.34a8,8,0,0,1-11.32,0L176,91.31V136a8,8,0,0,1-16,0V91.31l-10.34,10.35a8,8,0,0,1-11.32-11.32l24-24a8,8,0,0,1,11.32,0l24,24A8,8,0,0,1,197.66,101.66Z\" }))\n ],\n [\n \"light\",\n /* @__PURE__ */ a.createElement(a.Fragment, null, /* @__PURE__ */ a.createElement(\"path\", { d: \"M42,128a6,6,0,0,1,6-6h72a6,6,0,0,1,0,12H48A6,6,0,0,1,42,128Zm6-58h56a6,6,0,0,0,0-12H48a6,6,0,0,0,0,12ZM184,186H48a6,6,0,0,0,0,12H184a6,6,0,0,0,0-12ZM228.24,83.76l-40-40a6,6,0,0,0-8.48,0l-40,40a6,6,0,0,0,8.48,8.48L178,62.49V144a6,6,0,0,0,12,0V62.49l29.76,29.75a6,6,0,0,0,8.48-8.48Z\" }))\n ],\n [\n \"regular\",\n /* @__PURE__ */ a.createElement(a.Fragment, null, /* @__PURE__ */ a.createElement(\"path\", { d: \"M40,128a8,8,0,0,1,8-8h72a8,8,0,0,1,0,16H48A8,8,0,0,1,40,128Zm8-56h56a8,8,0,0,0,0-16H48a8,8,0,0,0,0,16ZM184,184H48a8,8,0,0,0,0,16H184a8,8,0,0,0,0-16ZM229.66,82.34l-40-40a8,8,0,0,0-11.32,0l-40,40a8,8,0,0,0,11.32,11.32L176,67.31V144a8,8,0,0,0,16,0V67.31l26.34,26.35a8,8,0,0,0,11.32-11.32Z\" }))\n ],\n [\n \"thin\",\n /* @__PURE__ */ a.createElement(a.Fragment, null, /* @__PURE__ */ a.createElement(\"path\", { d: \"M44,128a4,4,0,0,1,4-4h72a4,4,0,0,1,0,8H48A4,4,0,0,1,44,128Zm4-60h56a4,4,0,0,0,0-8H48a4,4,0,0,0,0,8ZM184,188H48a4,4,0,0,0,0,8H184a4,4,0,0,0,0-8ZM226.83,85.17l-40-40a4,4,0,0,0-5.66,0l-40,40a4,4,0,0,0,5.66,5.66L180,57.66V144a4,4,0,0,0,8,0V57.66l33.17,33.17a4,4,0,1,0,5.66-5.66Z\" }))\n ]\n]);\nexport {\n e as default\n};\n","import * as o from \"react\";\nimport a from \"../lib/IconBase.es.js\";\nimport n from \"../defs/CaretUpDown.es.js\";\nconst e = o.forwardRef((r, t) => /* @__PURE__ */ o.createElement(a, { ref: t, ...r, weights: n }));\ne.displayName = \"CaretUpDownIcon\";\nconst c = e;\nexport {\n c as CaretUpDown,\n e as CaretUpDownIcon\n};\n","import * as o from \"react\";\nimport n from \"../lib/IconBase.es.js\";\nimport c from \"../defs/SortAscending.es.js\";\nconst e = o.forwardRef((r, t) => /* @__PURE__ */ o.createElement(n, { ref: t, ...r, weights: c }));\ne.displayName = \"SortAscendingIcon\";\nconst i = e;\nexport {\n i as SortAscending,\n e as SortAscendingIcon\n};\n","import * as e from \"react\";\nimport n from \"../lib/IconBase.es.js\";\nimport c from \"../defs/SortDescending.es.js\";\nconst o = e.forwardRef((r, t) => /* @__PURE__ */ e.createElement(n, { ref: t, ...r, weights: c }));\no.displayName = \"SortDescendingIcon\";\nconst i = o;\nexport {\n i as SortDescending,\n o as SortDescendingIcon\n};\n","\"use client\";\nimport { SortAscendingIcon, SortDescendingIcon, CaretUpDownIcon, PlusIcon, TrashIcon } from \"@phosphor-icons/react\";\nimport React, { Fragment, useState } from \"react\";\nimport { useTranslations } from \"../../hooks/use-translations\";\nimport { uuid } from \"../../lib/fns\";\nimport { Any, Label } from \"../../types\";\nimport { Dropdown } from \"../floating/dropdown\";\nimport { OptionProps, Select } from \"../form/select\";\nimport { Col, getLabel, TableConfiguration, TableOperationProps } from \"./table-lib\";\n\ntype Keyof<T extends Any> = keyof T extends infer R extends string ? R : never;\n\nenum Order {\n Asc = \"asc\",\n Desc = \"desc\",\n Undefined = \"undefined\",\n}\n\nexport type Sorter<T extends Any> = { value: Keyof<T>; type: Order; label: Label; id: string };\n\nconst createSorterFn =\n <T extends Any>(fields: Sorter<T>[]) =>\n (a: T, b: T) =>\n fields.reduce<number>((acc, x) => {\n const reverse = x.type === \"desc\" ? -1 : 1;\n const property = x.value;\n const p = a[property] > b[property] ? reverse : a[property] < b[property] ? -reverse : 0;\n return acc !== 0 ? acc : p;\n }, 0);\n\nexport const multiSort = <T extends Any>(array: T[], fields: Sorter<T>[]) => {\n array.sort(createSorterFn(fields));\n return array;\n};\n\ntype Props<T extends Any> = TableConfiguration<\n T,\n {\n cols: Col<T>[];\n sorters: Sorter<T>[];\n set: React.Dispatch<React.SetStateAction<Sorter<T>[]>>;\n }\n>;\n\nconst createSorter = <T extends Any>(col: Col<T>, label: string, order: Order): Sorter<T> => ({\n label,\n id: uuid(),\n type: order,\n value: col.id as Keyof<T>,\n});\n\nexport const Sort = <T extends Any>(props: Props<T>) => {\n const translation = useTranslations();\n\n const orders = {\n asc: { label: translation.tableSortAsc, value: Order.Asc },\n desc: { label: translation.tableSortDesc, value: Order.Desc },\n } satisfies Omit<Record<Order, OptionProps>, Order.Undefined>;\n\n const orderOptions: OptionProps[] = [orders.asc, orders.desc];\n\n const onAddSorter = () => {\n const col = props.cols[0];\n if (col) props.set((prev) => [...prev, createSorter(col, orders.asc.label, orders.asc.value)]);\n };\n\n const onSetSorter = (id: string) => (e: React.ChangeEvent<HTMLSelectElement>) => {\n const value = e.target.value;\n props.set((prev) => prev.map((x) => (x.id === id ? { ...x, value: value as Keyof<T> } : x)));\n };\n\n const onSortOrderType = (id: string) => (e: React.ChangeEvent<HTMLSelectElement>) => {\n const type = e.target.value;\n props.set((prev) => prev.map((x) => (x.id === id ? { ...x, type: type as Order } : x)));\n };\n\n const onDelete = (e: React.MouseEvent<HTMLButtonElement>) => {\n const id = e.currentTarget.dataset.id || \"\";\n props.set((prev) => prev.filter((x) => x.id !== id));\n };\n\n return (\n <Fragment>\n <Dropdown\n title={translation.tableSortDropdownTitle}\n trigger={\n <span className=\"flex items-center gap-table-inline-gap-tight proportional-nums\">\n <CaretUpDownIcon size={14} />\n {translation.tableSortOrderByLabel} {props.sorters.length === 0 ? \"\" : ` (${props.sorters.length})`}\n </span>\n }\n >\n <ul className=\"mt-table-groups-mt space-y-2\">\n {props.sorters.map((sorter) => {\n return (\n <li key={`sorter-select-${sorter.id}`} className=\"flex flex-nowrap gap-3\">\n <Select\n options={props.options}\n value={sorter.value as string}\n onChange={onSetSorter(sorter.id)}\n title={translation.tableSortOrderInputTitle}\n placeholder={translation.tableSortOrderInputPlaceholder}\n />\n <Select\n onChange={onSortOrderType(sorter.id)}\n value={sorter.type}\n options={orderOptions}\n title={translation.tableSortTypeInputTitle}\n placeholder={translation.tableSortTypeInputPlaceholder}\n />\n <button className=\"mt-table-groups-mt\" data-id={sorter.id} onClick={onDelete}>\n <span className=\"text-danger\">\n <TrashIcon aria-hidden=\"true\" size={14} />\n </span>\n </button>\n </li>\n );\n })}\n <li>\n <button type=\"button\" onClick={onAddSorter} className=\"flex items-center gap-table-inline-gap-tight text-primary\">\n <PlusIcon size={14} /> {translation.tableSortAddButton}\n </button>\n </li>\n </ul>\n </Dropdown>\n </Fragment>\n );\n};\n\ntype SorterHeadProps<T extends Any> = Pick<TableOperationProps<T>, \"sorters\" | \"setSorters\"> & { col: Col<T> };\n\nexport const SorterHead = <T extends Any>(props: SorterHeadProps<T>) => {\n const translations = useTranslations();\n const [status, setStatus] = useState(() => {\n const sorter = props.sorters.find((sort) => sort.value === props.col.id);\n return sorter ? sorter.type : Order.Undefined;\n });\n\n const onClick = () => {\n const next = status === Order.Undefined ? Order.Asc : status === Order.Asc ? Order.Desc : Order.Undefined;\n setStatus(next);\n props.setSorters((prev) => {\n if (next === Order.Undefined) return prev.filter((x) => x.value !== props.col.id);\n const findIndex = prev.findIndex((p) => (p.value as string) === props.col.id);\n const sorter = createSorter(props.col, next, next);\n if (findIndex === -1) return [...prev, sorter];\n prev[findIndex] = sorter;\n return [...prev];\n });\n };\n\n const labelId = `${props.col.id}-sorter-id`;\n\n const label = getLabel(props.col);\n\n return (\n <button aria-labelledby={labelId} className=\"isolate flex items-center\" onClick={onClick} type=\"button\">\n <span id={labelId} className=\"sr-only\">\n {translations.tableSortDropdownTitle} {label}\n </span>\n {status === Order.Asc ? <SortAscendingIcon size={14} /> : null}\n {status === Order.Desc ? <SortDescendingIcon size={14} /> : null}\n {status === Order.Undefined ? <CaretUpDownIcon size={14} /> : null}\n </button>\n );\n};\n"],"x_google_ignoreList":[0,1,2,3,4,5],"mappings":"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"}