@hot-updater/console 0.36.7 → 1.0.0-rc.1

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 (262) hide show
  1. package/.output/nitro.json +1 -1
  2. package/.output/public/assets/BundleIdDisplay-D4ErdU5_.js +1 -0
  3. package/.output/public/assets/InsightsCapabilityContext-B42VqvP6.js +1 -0
  4. package/.output/public/assets/api-keys-api-DGVTTvTJ.js +1 -0
  5. package/.output/public/assets/api-keys-z16OZIP4.js +1 -0
  6. package/.output/public/assets/badge-Br_KDO0J.js +1 -0
  7. package/.output/public/assets/card-DzuEXvyJ.js +1 -0
  8. package/.output/public/assets/chart-no-axes-combined-FaYMGmQS.js +1 -0
  9. package/.output/public/assets/createServerFn-gM2-LFBy.js +3 -0
  10. package/.output/public/assets/dialog-BeAENgez.js +1 -0
  11. package/.output/public/assets/dist-Bssh_cv0.js +1 -0
  12. package/.output/public/assets/field-Buq148-A.js +1 -0
  13. package/.output/public/assets/index-uOpQAIC4.js +10 -0
  14. package/.output/public/assets/input-group-B3p5UpyW.js +1 -0
  15. package/.output/public/assets/insights-DJTr7Ozn.js +1 -0
  16. package/.output/public/assets/insights-api-DVMOoRMS.js +1 -0
  17. package/.output/public/assets/installations-BY64iIAK.js +2 -0
  18. package/.output/public/assets/installations-D5v9i3AL.js +1 -0
  19. package/.output/public/assets/lazyRouteComponent-DKYu5cZJ.js +1 -0
  20. package/.output/public/assets/preload-helper-CQ36nxok.js +1 -0
  21. package/.output/public/assets/refresh-cw-BkbfZ62O.js +1 -0
  22. package/.output/public/assets/routes-BuoI5-Cr.js +2 -0
  23. package/.output/public/assets/routes-C8fvgETO.js +1 -0
  24. package/.output/public/assets/search-qsIDvS2I.js +1 -0
  25. package/.output/public/assets/shield-check-DE_hVuHu.js +1 -0
  26. package/.output/public/assets/signing-mJD88Y4C.js +1 -0
  27. package/.output/public/assets/styles-BZIG7t42.css +2 -0
  28. package/.output/public/assets/table-RamFEclP.js +1 -0
  29. package/.output/public/assets/useCompositeListItem-ChzDqdpc.js +42 -0
  30. package/.output/public/assets/useMutation-JsGVjQMY.js +1 -0
  31. package/.output/public/assets/useOpenInteractionType-Dwfy-SpA.js +1 -0
  32. package/.output/server/__23tanstack-start-server-fn-resolver-Dftxlm2E.mjs +146 -0
  33. package/.output/server/_libs/@base-ui/react+[...].mjs +16124 -0
  34. package/.output/server/_libs/@reduxjs/toolkit+[...].mjs +1554 -0
  35. package/.output/server/_libs/@tanstack/react-router+[...].mjs +41 -10
  36. package/.output/server/_libs/@tanstack/react-router-ssr-query+[...].mjs +132 -0
  37. package/.output/server/_libs/d3-array.mjs +231 -0
  38. package/.output/server/_libs/d3-color.mjs +330 -0
  39. package/.output/server/_libs/d3-format.mjs +252 -0
  40. package/.output/server/_libs/d3-interpolate.mjs +207 -0
  41. package/.output/server/_libs/d3-path.mjs +77 -0
  42. package/.output/server/_libs/d3-scale+[...].mjs +1907 -0
  43. package/.output/server/_libs/d3-shape.mjs +818 -0
  44. package/.output/server/_libs/decimal.js-light.mjs +884 -0
  45. package/.output/server/_libs/es-toolkit.mjs +1134 -0
  46. package/.output/server/_libs/eventemitter3.mjs +236 -0
  47. package/.output/server/_libs/immer.mjs +532 -0
  48. package/.output/server/_libs/lucide-react.mjs +141 -13
  49. package/.output/server/_libs/next-themes.mjs +2 -2
  50. package/.output/server/_libs/react-redux+[...].mjs +205 -0
  51. package/.output/server/_libs/recharts+[...].mjs +14117 -0
  52. package/.output/server/_libs/sonner.mjs +2 -2
  53. package/.output/server/_libs/tanstack__query-core.mjs +114 -1
  54. package/.output/server/_libs/tanstack__react-query.mjs +3 -4
  55. package/.output/server/_runtime.mjs +10 -1
  56. package/.output/server/_ssr/BundleActivityChart-CWcdPuUn.mjs +288 -0
  57. package/.output/server/_ssr/BundleIdDisplay-BEvB3MvA.mjs +13 -0
  58. package/.output/server/_ssr/InsightsCapabilityContext-Cx8fjm2s.mjs +15 -0
  59. package/.output/server/_ssr/api-keys-CpBqHpuC.mjs +300 -0
  60. package/.output/server/_ssr/api-keys-api-Czkp57UV.mjs +60 -0
  61. package/.output/server/_ssr/api-keys-rpc-BTtMDSoR.mjs +136 -0
  62. package/.output/server/_ssr/api-rpc-BEX8ISai.mjs +1468 -0
  63. package/.output/server/_ssr/auth-BF8mbAgF.mjs +21 -0
  64. package/.output/server/_ssr/auth-rpc-BFMEC-TT.mjs +24 -0
  65. package/.output/server/_ssr/auth.server-DW71WzsD.mjs +47 -0
  66. package/.output/server/_ssr/badge-CpWXQwyF.mjs +26 -0
  67. package/.output/server/_ssr/bundle-signing-rpc-BbCFUQSu.mjs +16 -0
  68. package/.output/server/_ssr/bundle-signing.server-C4NW5mWx.mjs +12 -0
  69. package/.output/server/_ssr/card-Bsc8mRis.mjs +86 -0
  70. package/.output/server/_ssr/config-Dv8qLDZ0.mjs +13 -0
  71. package/.output/server/_ssr/config.server-DQYEr_5X.mjs +361 -0
  72. package/.output/server/_ssr/{createServerFn-DzU0k62V.mjs → createServerFn-B2hcXoPM.mjs} +1 -1
  73. package/.output/server/_ssr/createServerRpc-DB29C_5p.mjs +12 -0
  74. package/.output/server/_ssr/{sidebar-Cv_H0_Jv.mjs → createSsrRpc-DhfrxEjg.mjs} +68 -50
  75. package/.output/server/_ssr/databaseRows-QlCYLi0H.mjs +166 -0
  76. package/.output/server/_ssr/deleteBundle-Cu_XOMt0.mjs +66 -0
  77. package/.output/server/_ssr/dialog-C0vKUp8R.mjs +170 -0
  78. package/.output/server/_ssr/dist-BVSLTpoP.mjs +250 -0
  79. package/.output/server/_ssr/downloadBundle-CNnYxYO2.mjs +24 -0
  80. package/.output/server/_ssr/{empty-plugin-adapters-B4HCzgmM.mjs → empty-plugin-adapters-B5QvGpEl.mjs} +1 -1
  81. package/.output/server/_ssr/field-DASCh-5d.mjs +74 -0
  82. package/.output/server/_ssr/{getBundleChildren-CVtSiH5t.mjs → getBundleChildren-BcRMFoDF.mjs} +10 -18
  83. package/.output/server/_ssr/input-group-etIsBUqv.mjs +288 -0
  84. package/.output/server/_ssr/insights-api-C1F7UreR.mjs +71 -0
  85. package/.output/server/_ssr/insights-input-9fEJF-ZG.mjs +96 -0
  86. package/.output/server/_ssr/insights-rpc-C-8R6kED.mjs +155 -0
  87. package/.output/server/_ssr/insights-ygT_aIfo.mjs +858 -0
  88. package/.output/server/_ssr/installations-DqRT1QTd.mjs +535 -0
  89. package/.output/server/_ssr/installations-K8TCYTYh.mjs +19 -0
  90. package/.output/server/_ssr/router-BxBEvtF1.mjs +513 -0
  91. package/.output/server/_ssr/routes-BC7rn-tf.mjs +37 -0
  92. package/.output/server/_ssr/routes-CM5KAwpB.mjs +2285 -0
  93. package/.output/server/_ssr/runtime.server-la7TRAH_.mjs +527 -0
  94. package/.output/server/_ssr/server-CpzW--lT.mjs +7468 -0
  95. package/.output/server/_ssr/signing-jk4HANnl.mjs +134 -0
  96. package/.output/server/_ssr/ssr.mjs +4 -5740
  97. package/.output/server/_ssr/start-DpViQGnt.mjs +4 -0
  98. package/.output/server/_ssr/table-CU58HeI7.mjs +53 -0
  99. package/.output/server/_ssr/uuidv7-CaKuKXrV.mjs +31 -0
  100. package/.output/server/_tanstack-start-manifest_v-Mz9MmSlD.mjs +103 -0
  101. package/.output/server/index.mjs +229 -47
  102. package/README.md +29 -8
  103. package/lib/index.d.mts +35 -0
  104. package/lib/index.mjs +4 -0
  105. package/lib/vite-internal.mjs +127 -0
  106. package/lib/vite.d.mts +10 -0
  107. package/lib/vite.mjs +5 -0
  108. package/package.json +51 -29
  109. package/public/apple-touch-icon.png +0 -0
  110. package/public/favicon-16x16.png +0 -0
  111. package/public/favicon-32x32.png +0 -0
  112. package/public/favicon.ico +0 -0
  113. package/public/logo.svg +1 -0
  114. package/public/manifest.json +30 -0
  115. package/public/robots.txt +3 -0
  116. package/src/components/AppSidebar.tsx +159 -0
  117. package/src/components/BundleIdDisplay.tsx +18 -0
  118. package/src/components/ChannelBadge.tsx +31 -0
  119. package/src/components/ConsoleAccessPage.tsx +122 -0
  120. package/src/components/EnabledStatusIcon.tsx +54 -0
  121. package/src/components/HashValueDisplay.tsx +85 -0
  122. package/src/components/HotUpdaterLogo.tsx +30 -0
  123. package/src/components/NotFoundPage.tsx +33 -0
  124. package/src/components/PlatformIcon.tsx +39 -0
  125. package/src/components/RolloutPercentageBadge.tsx +28 -0
  126. package/src/components/ThemeProvider.tsx +116 -0
  127. package/src/components/TimestampDisplay.tsx +41 -0
  128. package/src/components/features/api-keys/ApiKeysPage.tsx +377 -0
  129. package/src/components/features/bundles/BundleActivityChart.tsx +193 -0
  130. package/src/components/features/bundles/BundleChildrenPanel.tsx +201 -0
  131. package/src/components/features/bundles/BundleInsightsSummary.tsx +123 -0
  132. package/src/components/features/bundles/BundleMetadata.tsx +136 -0
  133. package/src/components/features/bundles/RolloutCohortsDialog.tsx +201 -0
  134. package/src/components/features/channels/ChannelManagementDialog.tsx +228 -0
  135. package/src/components/features/insights/ActivityChart.tsx +150 -0
  136. package/src/components/features/insights/BundleDistribution.tsx +133 -0
  137. package/src/components/features/insights/BundleSelector.tsx +114 -0
  138. package/src/components/features/insights/InsightsCapabilityContext.tsx +24 -0
  139. package/src/components/features/insights/InsightsControls.tsx +115 -0
  140. package/src/components/features/insights/InsightsErrorAlert.tsx +21 -0
  141. package/src/components/features/insights/InsightsOverview.tsx +208 -0
  142. package/src/components/features/insights/InstallationHistoryCard.tsx +248 -0
  143. package/src/components/features/insights/InstallationMatchesCard.tsx +132 -0
  144. package/src/components/features/insights/InstallationPageHeader.tsx +138 -0
  145. package/src/components/features/insights/InstallationPagination.tsx +48 -0
  146. package/src/components/features/insights/InstallationSearch.tsx +230 -0
  147. package/src/components/features/insights/UpdateOutcomes.tsx +147 -0
  148. package/src/components/features/releases/ReleaseEditorSheet.tsx +879 -0
  149. package/src/components/features/releases/ReleaseStateBadge.tsx +20 -0
  150. package/src/components/features/signing/BundleSigningPage.tsx +139 -0
  151. package/src/components/ui/alert-dialog.tsx +185 -0
  152. package/src/components/ui/alert.tsx +76 -0
  153. package/src/components/ui/badge.tsx +49 -0
  154. package/src/components/ui/button.tsx +58 -0
  155. package/src/components/ui/card.tsx +89 -0
  156. package/src/components/ui/chart.tsx +371 -0
  157. package/src/components/ui/combobox.tsx +303 -0
  158. package/src/components/ui/dialog.tsx +156 -0
  159. package/src/components/ui/dropdown-menu.tsx +270 -0
  160. package/src/components/ui/field.tsx +235 -0
  161. package/src/components/ui/input-group.tsx +147 -0
  162. package/src/components/ui/input.tsx +19 -0
  163. package/src/components/ui/label.tsx +25 -0
  164. package/src/components/ui/progress.tsx +84 -0
  165. package/src/components/ui/select.tsx +205 -0
  166. package/src/components/ui/separator.tsx +23 -0
  167. package/src/components/ui/sheet.tsx +132 -0
  168. package/src/components/ui/sidebar.tsx +779 -0
  169. package/src/components/ui/skeleton.tsx +13 -0
  170. package/src/components/ui/slider.tsx +56 -0
  171. package/src/components/ui/sonner.tsx +45 -0
  172. package/src/components/ui/switch.tsx +25 -0
  173. package/src/components/ui/table.tsx +114 -0
  174. package/src/components/ui/textarea.tsx +18 -0
  175. package/src/components/ui/toggle-group.tsx +89 -0
  176. package/src/components/ui/toggle.tsx +43 -0
  177. package/src/components/ui/tooltip.tsx +66 -0
  178. package/src/hooks/use-mobile.ts +30 -0
  179. package/src/index.ts +47 -0
  180. package/src/lib/api-keys-api.ts +69 -0
  181. package/src/lib/api-keys-rpc.ts +87 -0
  182. package/src/lib/api-rpc.ts +478 -0
  183. package/src/lib/api.ts +444 -0
  184. package/src/lib/auth-rpc.ts +16 -0
  185. package/src/lib/bundle-signing-api.ts +14 -0
  186. package/src/lib/bundle-signing-rpc.ts +16 -0
  187. package/src/lib/constants.ts +1 -0
  188. package/src/lib/git.ts +51 -0
  189. package/src/lib/insights-api.ts +144 -0
  190. package/src/lib/insights-error.ts +19 -0
  191. package/src/lib/insights-input.ts +187 -0
  192. package/src/lib/insights-overview.ts +170 -0
  193. package/src/lib/insights-rpc.ts +218 -0
  194. package/src/lib/server/auth.server.ts +43 -0
  195. package/src/lib/server/bundle-signing.server.ts +23 -0
  196. package/src/lib/server/config.server.ts +109 -0
  197. package/src/lib/server/console-runtime.server.ts +61 -0
  198. package/src/lib/server/deleteBundle.ts +145 -0
  199. package/src/lib/server/downloadBundle.ts +46 -0
  200. package/src/lib/server/getBundleChildren.ts +130 -0
  201. package/src/lib/server/listReleases.ts +61 -0
  202. package/src/lib/server/releaseActivity.ts +27 -0
  203. package/src/lib/server/releaseReachability.ts +95 -0
  204. package/src/lib/server/runtime.server.ts +172 -0
  205. package/src/lib/utils.ts +9 -0
  206. package/src/logo.svg +1 -0
  207. package/src/routeTree.gen.ts +199 -0
  208. package/src/router.tsx +21 -0
  209. package/src/routes/-installations-search.ts +19 -0
  210. package/src/routes/-releases-search.ts +74 -0
  211. package/src/routes/__root.tsx +174 -0
  212. package/src/routes/api/auth/$.ts +19 -0
  213. package/src/routes/api/bundles/$bundleId/download.ts +17 -0
  214. package/src/routes/api-keys.tsx +37 -0
  215. package/src/routes/index.tsx +982 -0
  216. package/src/routes/insights.tsx +139 -0
  217. package/src/routes/installations.tsx +194 -0
  218. package/src/routes/signing.tsx +37 -0
  219. package/src/styles.css +152 -0
  220. package/src/virtual-modules.d.ts +21 -0
  221. package/src/vite-env.d.ts +1 -0
  222. package/src/vite-internal.ts +195 -0
  223. package/src/vite.ts +12 -0
  224. package/.output/public/assets/dist-DJX53faP.js +0 -3
  225. package/.output/public/assets/index-Iylis5kY.js +0 -10
  226. package/.output/public/assets/routes-HT21hs0C.js +0 -54
  227. package/.output/public/assets/styles-C0Re4quB.css +0 -2
  228. package/.output/server/__23tanstack-start-server-fn-resolver-CgwgZ0-i.mjs +0 -66
  229. package/.output/server/_libs/@floating-ui/core+[...].mjs +0 -698
  230. package/.output/server/_libs/@floating-ui/dom+[...].mjs +0 -644
  231. package/.output/server/_libs/@floating-ui/react-dom+[...].mjs +0 -839
  232. package/.output/server/_libs/@radix-ui/react-alert-dialog+[...].mjs +0 -2138
  233. package/.output/server/_libs/@radix-ui/react-popper+[...].mjs +0 -308
  234. package/.output/server/_libs/@radix-ui/react-select+[...].mjs +0 -1038
  235. package/.output/server/_libs/@tanstack/devtools-event-client+[...].mjs +0 -196
  236. package/.output/server/_libs/@tanstack/form-core+[...].mjs +0 -3228
  237. package/.output/server/_libs/@tanstack/react-form+[...].mjs +0 -430
  238. package/.output/server/_libs/@tanstack/react-table+[...].mjs +0 -2382
  239. package/.output/server/_libs/radix-ui__number.mjs +0 -6
  240. package/.output/server/_libs/radix-ui__primitive.mjs +0 -9
  241. package/.output/server/_libs/radix-ui__react-arrow.mjs +0 -23
  242. package/.output/server/_libs/radix-ui__react-collection.mjs +0 -78
  243. package/.output/server/_libs/radix-ui__react-direction.mjs +0 -13
  244. package/.output/server/_libs/radix-ui__react-label.mjs +0 -22
  245. package/.output/server/_libs/radix-ui__react-separator.mjs +0 -30
  246. package/.output/server/_libs/radix-ui__react-slider.mjs +0 -510
  247. package/.output/server/_libs/radix-ui__react-switch.mjs +0 -157
  248. package/.output/server/_libs/radix-ui__react-tooltip.mjs +0 -493
  249. package/.output/server/_ssr/api-rpc-BIbDUKSz.mjs +0 -292
  250. package/.output/server/_ssr/config.server-BSS366KT.mjs +0 -41
  251. package/.output/server/_ssr/deleteBundle-BgbZTtpW.mjs +0 -141
  252. package/.output/server/_ssr/dist-KboydRVk.mjs +0 -120
  253. package/.output/server/_ssr/router-C3hqEy3k.mjs +0 -307
  254. package/.output/server/_ssr/routes-B0lQvvlC.mjs +0 -3048
  255. package/.output/server/_ssr/start-02sLteYG.mjs +0 -4
  256. package/.output/server/_ssr/storageProfile-FVkjPoGb.mjs +0 -9
  257. package/.output/server/_tanstack-start-manifest_v-Bpx52WOU.mjs +0 -20
  258. package/.output/server/node_modules/tslib/modules/index.js +0 -70
  259. package/.output/server/node_modules/tslib/modules/package.json +0 -3
  260. package/.output/server/node_modules/tslib/package.json +0 -47
  261. package/.output/server/node_modules/tslib/tslib.js +0 -484
  262. package/.output/server/package.json +0 -9
@@ -1,510 +0,0 @@
1
- import { r as __toESM } from "../_runtime.mjs";
2
- import { u as require_react } from "./@floating-ui/react-dom+[...].mjs";
3
- import { E as useControllableState, N as useComposedRefs, O as createContextScope, P as require_jsx_runtime, k as Primitive } from "./@radix-ui/react-alert-dialog+[...].mjs";
4
- import { p as usePrevious } from "./@radix-ui/react-select+[...].mjs";
5
- import { t as createCollection } from "./radix-ui__react-collection.mjs";
6
- import { t as composeEventHandlers } from "./radix-ui__primitive.mjs";
7
- import { t as useDirection } from "./radix-ui__react-direction.mjs";
8
- import { o as useSize } from "./@radix-ui/react-popper+[...].mjs";
9
- import { t as clamp } from "./radix-ui__number.mjs";
10
- //#region ../../node_modules/.pnpm/@radix-ui+react-slider@1.4.0_@types+react-dom@19.2.3_@types+react@19.2.15__@types+react_c4720e06d3edc591b175d090ab6efa41/node_modules/@radix-ui/react-slider/dist/index.mjs
11
- var import_react = /* @__PURE__ */ __toESM(require_react(), 1);
12
- var import_jsx_runtime = require_jsx_runtime();
13
- var PAGE_KEYS = ["PageUp", "PageDown"];
14
- var ARROW_KEYS = [
15
- "ArrowUp",
16
- "ArrowDown",
17
- "ArrowLeft",
18
- "ArrowRight"
19
- ];
20
- var BACK_KEYS = {
21
- "from-left": [
22
- "Home",
23
- "PageDown",
24
- "ArrowDown",
25
- "ArrowLeft"
26
- ],
27
- "from-right": [
28
- "Home",
29
- "PageDown",
30
- "ArrowDown",
31
- "ArrowRight"
32
- ],
33
- "from-bottom": [
34
- "Home",
35
- "PageDown",
36
- "ArrowDown",
37
- "ArrowLeft"
38
- ],
39
- "from-top": [
40
- "Home",
41
- "PageDown",
42
- "ArrowUp",
43
- "ArrowLeft"
44
- ]
45
- };
46
- var SLIDER_NAME = "Slider";
47
- var [Collection, useCollection, createCollectionScope] = createCollection(SLIDER_NAME);
48
- var [createSliderContext, createSliderScope] = createContextScope(SLIDER_NAME, [createCollectionScope]);
49
- var [SliderProvider, useSliderContext] = createSliderContext(SLIDER_NAME);
50
- var Slider = import_react.forwardRef((props, forwardedRef) => {
51
- const { name, min = 0, max = 100, step = 1, orientation = "horizontal", disabled = false, minStepsBetweenThumbs = 0, defaultValue = [min], value, onValueChange = () => {}, onValueCommit = () => {}, inverted = false, form, ...sliderProps } = props;
52
- const thumbRefs = import_react.useRef(/* @__PURE__ */ new Set());
53
- const valueIndexToChangeRef = import_react.useRef(0);
54
- const isKeyboardInteractionRef = import_react.useRef(false);
55
- const SliderOrientation = orientation === "horizontal" ? SliderHorizontal : SliderVertical;
56
- const [values = [], setValues] = useControllableState({
57
- prop: value,
58
- defaultProp: defaultValue,
59
- onChange: (value2) => {
60
- [...thumbRefs.current][valueIndexToChangeRef.current]?.focus({
61
- preventScroll: true,
62
- focusVisible: isKeyboardInteractionRef.current
63
- });
64
- isKeyboardInteractionRef.current = false;
65
- onValueChange(value2);
66
- }
67
- });
68
- const valuesBeforeSlideStartRef = import_react.useRef(values);
69
- function handleSlideStart(value2) {
70
- updateValues(value2, getClosestValueIndex(values, value2));
71
- }
72
- function handleSlideMove(value2) {
73
- updateValues(value2, valueIndexToChangeRef.current);
74
- }
75
- function handleSlideEnd() {
76
- const prevValue = valuesBeforeSlideStartRef.current[valueIndexToChangeRef.current];
77
- if (values[valueIndexToChangeRef.current] !== prevValue) onValueCommit(values);
78
- }
79
- function updateValues(value2, atIndex, { commit } = { commit: false }) {
80
- const decimalCount = getDecimalCount(step);
81
- const nextValue = clamp(roundValue(Math.round((value2 - min) / step) * step + min, decimalCount), [min, max]);
82
- setValues((prevValues = []) => {
83
- const nextValues = getNextSortedValues(prevValues, nextValue, atIndex);
84
- if (hasMinStepsBetweenValues(nextValues, minStepsBetweenThumbs * step)) {
85
- valueIndexToChangeRef.current = nextValues.indexOf(nextValue);
86
- const hasChanged = String(nextValues) !== String(prevValues);
87
- if (hasChanged && commit) onValueCommit(nextValues);
88
- return hasChanged ? nextValues : prevValues;
89
- } else return prevValues;
90
- });
91
- }
92
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(SliderProvider, {
93
- scope: props.__scopeSlider,
94
- name,
95
- disabled,
96
- min,
97
- max,
98
- valueIndexToChangeRef,
99
- thumbs: thumbRefs.current,
100
- values,
101
- orientation,
102
- form,
103
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Collection.Provider, {
104
- scope: props.__scopeSlider,
105
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Collection.Slot, {
106
- scope: props.__scopeSlider,
107
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(SliderOrientation, {
108
- "aria-disabled": disabled,
109
- "data-disabled": disabled ? "" : void 0,
110
- ...sliderProps,
111
- ref: forwardedRef,
112
- onPointerDown: composeEventHandlers(sliderProps.onPointerDown, () => {
113
- if (!disabled) {
114
- valuesBeforeSlideStartRef.current = values;
115
- isKeyboardInteractionRef.current = false;
116
- }
117
- }),
118
- min,
119
- max,
120
- inverted,
121
- onSlideStart: disabled ? void 0 : handleSlideStart,
122
- onSlideMove: disabled ? void 0 : handleSlideMove,
123
- onSlideEnd: disabled ? void 0 : handleSlideEnd,
124
- onHomeKeyDown: () => {
125
- if (!disabled) {
126
- isKeyboardInteractionRef.current = true;
127
- updateValues(min, 0, { commit: true });
128
- }
129
- },
130
- onEndKeyDown: () => {
131
- if (!disabled) {
132
- isKeyboardInteractionRef.current = true;
133
- updateValues(max, values.length - 1, { commit: true });
134
- }
135
- },
136
- onStepKeyDown: ({ event, direction: stepDirection }) => {
137
- if (!disabled) {
138
- isKeyboardInteractionRef.current = true;
139
- const multiplier = PAGE_KEYS.includes(event.key) || event.shiftKey && ARROW_KEYS.includes(event.key) ? 10 : 1;
140
- const atIndex = valueIndexToChangeRef.current;
141
- const value2 = values[atIndex];
142
- updateValues(value2 + step * multiplier * stepDirection, atIndex, { commit: true });
143
- }
144
- }
145
- })
146
- })
147
- })
148
- });
149
- });
150
- Slider.displayName = SLIDER_NAME;
151
- var [SliderOrientationProvider, useSliderOrientationContext] = createSliderContext(SLIDER_NAME, {
152
- startEdge: "left",
153
- endEdge: "right",
154
- size: "width",
155
- direction: 1
156
- });
157
- var SliderHorizontal = import_react.forwardRef((props, forwardedRef) => {
158
- const { min, max, dir, inverted, onSlideStart, onSlideMove, onSlideEnd, onStepKeyDown, ...sliderProps } = props;
159
- const [slider, setSlider] = import_react.useState(null);
160
- const composedRefs = useComposedRefs(forwardedRef, (node) => setSlider(node));
161
- const rectRef = import_react.useRef(void 0);
162
- const direction = useDirection(dir);
163
- const isDirectionLTR = direction === "ltr";
164
- const isSlidingFromLeft = isDirectionLTR && !inverted || !isDirectionLTR && inverted;
165
- function getValueFromPointer(pointerPosition) {
166
- const rect = rectRef.current || slider.getBoundingClientRect();
167
- const value = linearScale([0, rect.width], isSlidingFromLeft ? [min, max] : [max, min]);
168
- rectRef.current = rect;
169
- return value(pointerPosition - rect.left);
170
- }
171
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(SliderOrientationProvider, {
172
- scope: props.__scopeSlider,
173
- startEdge: isSlidingFromLeft ? "left" : "right",
174
- endEdge: isSlidingFromLeft ? "right" : "left",
175
- direction: isSlidingFromLeft ? 1 : -1,
176
- size: "width",
177
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(SliderImpl, {
178
- dir: direction,
179
- "data-orientation": "horizontal",
180
- ...sliderProps,
181
- ref: composedRefs,
182
- style: {
183
- ...sliderProps.style,
184
- "--radix-slider-thumb-transform": "translateX(-50%)"
185
- },
186
- onSlideStart: (event) => {
187
- const value = getValueFromPointer(event.clientX);
188
- onSlideStart?.(value);
189
- },
190
- onSlideMove: (event) => {
191
- const value = getValueFromPointer(event.clientX);
192
- onSlideMove?.(value);
193
- },
194
- onSlideEnd: () => {
195
- rectRef.current = void 0;
196
- onSlideEnd?.();
197
- },
198
- onStepKeyDown: (event) => {
199
- const isBackKey = BACK_KEYS[isSlidingFromLeft ? "from-left" : "from-right"].includes(event.key);
200
- onStepKeyDown?.({
201
- event,
202
- direction: isBackKey ? -1 : 1
203
- });
204
- }
205
- })
206
- });
207
- });
208
- var SliderVertical = import_react.forwardRef((props, forwardedRef) => {
209
- const { min, max, inverted, onSlideStart, onSlideMove, onSlideEnd, onStepKeyDown, ...sliderProps } = props;
210
- const sliderRef = import_react.useRef(null);
211
- const ref = useComposedRefs(forwardedRef, sliderRef);
212
- const rectRef = import_react.useRef(void 0);
213
- const isSlidingFromBottom = !inverted;
214
- function getValueFromPointer(pointerPosition) {
215
- const rect = rectRef.current || sliderRef.current.getBoundingClientRect();
216
- const value = linearScale([0, rect.height], isSlidingFromBottom ? [max, min] : [min, max]);
217
- rectRef.current = rect;
218
- return value(pointerPosition - rect.top);
219
- }
220
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(SliderOrientationProvider, {
221
- scope: props.__scopeSlider,
222
- startEdge: isSlidingFromBottom ? "bottom" : "top",
223
- endEdge: isSlidingFromBottom ? "top" : "bottom",
224
- size: "height",
225
- direction: isSlidingFromBottom ? 1 : -1,
226
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(SliderImpl, {
227
- "data-orientation": "vertical",
228
- ...sliderProps,
229
- ref,
230
- style: {
231
- ...sliderProps.style,
232
- "--radix-slider-thumb-transform": "translateY(50%)"
233
- },
234
- onSlideStart: (event) => {
235
- const value = getValueFromPointer(event.clientY);
236
- onSlideStart?.(value);
237
- },
238
- onSlideMove: (event) => {
239
- const value = getValueFromPointer(event.clientY);
240
- onSlideMove?.(value);
241
- },
242
- onSlideEnd: () => {
243
- rectRef.current = void 0;
244
- onSlideEnd?.();
245
- },
246
- onStepKeyDown: (event) => {
247
- const isBackKey = BACK_KEYS[isSlidingFromBottom ? "from-bottom" : "from-top"].includes(event.key);
248
- onStepKeyDown?.({
249
- event,
250
- direction: isBackKey ? -1 : 1
251
- });
252
- }
253
- })
254
- });
255
- });
256
- var SliderImpl = import_react.forwardRef((props, forwardedRef) => {
257
- const { __scopeSlider, onSlideStart, onSlideMove, onSlideEnd, onHomeKeyDown, onEndKeyDown, onStepKeyDown, ...sliderProps } = props;
258
- const context = useSliderContext(SLIDER_NAME, __scopeSlider);
259
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Primitive.span, {
260
- ...sliderProps,
261
- ref: forwardedRef,
262
- onKeyDown: composeEventHandlers(props.onKeyDown, (event) => {
263
- if (event.key === "Home") {
264
- onHomeKeyDown(event);
265
- event.preventDefault();
266
- } else if (event.key === "End") {
267
- onEndKeyDown(event);
268
- event.preventDefault();
269
- } else if (PAGE_KEYS.concat(ARROW_KEYS).includes(event.key)) {
270
- onStepKeyDown(event);
271
- event.preventDefault();
272
- }
273
- }),
274
- onPointerDown: composeEventHandlers(props.onPointerDown, (event) => {
275
- const target = event.target;
276
- target.setPointerCapture(event.pointerId);
277
- event.preventDefault();
278
- if (context.thumbs.has(target)) target.focus({
279
- preventScroll: true,
280
- focusVisible: false
281
- });
282
- else onSlideStart(event);
283
- }),
284
- onPointerMove: composeEventHandlers(props.onPointerMove, (event) => {
285
- if (event.target.hasPointerCapture(event.pointerId)) onSlideMove(event);
286
- }),
287
- onPointerUp: composeEventHandlers(props.onPointerUp, (event) => {
288
- const target = event.target;
289
- if (target.hasPointerCapture(event.pointerId)) {
290
- target.releasePointerCapture(event.pointerId);
291
- onSlideEnd(event);
292
- }
293
- })
294
- });
295
- });
296
- var TRACK_NAME = "SliderTrack";
297
- var SliderTrack = import_react.forwardRef((props, forwardedRef) => {
298
- const { __scopeSlider, ...trackProps } = props;
299
- const context = useSliderContext(TRACK_NAME, __scopeSlider);
300
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Primitive.span, {
301
- "data-disabled": context.disabled ? "" : void 0,
302
- "data-orientation": context.orientation,
303
- ...trackProps,
304
- ref: forwardedRef
305
- });
306
- });
307
- SliderTrack.displayName = TRACK_NAME;
308
- var RANGE_NAME = "SliderRange";
309
- var SliderRange = import_react.forwardRef((props, forwardedRef) => {
310
- const { __scopeSlider, ...rangeProps } = props;
311
- const context = useSliderContext(RANGE_NAME, __scopeSlider);
312
- const orientation = useSliderOrientationContext(RANGE_NAME, __scopeSlider);
313
- const composedRefs = useComposedRefs(forwardedRef, import_react.useRef(null));
314
- const valuesCount = context.values.length;
315
- const percentages = context.values.map((value) => convertValueToPercentage(value, context.min, context.max));
316
- const offsetStart = valuesCount > 1 ? Math.min(...percentages) : 0;
317
- const offsetEnd = 100 - Math.max(...percentages);
318
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Primitive.span, {
319
- "data-orientation": context.orientation,
320
- "data-disabled": context.disabled ? "" : void 0,
321
- ...rangeProps,
322
- ref: composedRefs,
323
- style: {
324
- ...props.style,
325
- [orientation.startEdge]: offsetStart + "%",
326
- [orientation.endEdge]: offsetEnd + "%"
327
- }
328
- });
329
- });
330
- SliderRange.displayName = RANGE_NAME;
331
- var THUMB_NAME = "SliderThumb";
332
- var [SliderThumbContextProvider, useSliderThumbContext] = createSliderContext(THUMB_NAME);
333
- var THUMB_PROVIDER_NAME = "SliderThumbProvider";
334
- function SliderThumbProvider(props) {
335
- const { __scopeSlider, name, children, internal_do_not_use_render } = props;
336
- const context = useSliderContext(THUMB_PROVIDER_NAME, __scopeSlider);
337
- const getItems = useCollection(__scopeSlider);
338
- const [thumb, setThumb] = import_react.useState(null);
339
- const index = import_react.useMemo(() => thumb ? getItems().findIndex((item) => item.ref.current === thumb) : -1, [getItems, thumb]);
340
- const size = useSize(thumb);
341
- const isFormControl = thumb ? !!context.form || !!thumb.closest("form") : true;
342
- const value = context.values[index];
343
- const resolvedName = name ?? (context.name ? context.name + (context.values.length > 1 ? "[]" : "") : void 0);
344
- const percent = value === void 0 ? 0 : convertValueToPercentage(value, context.min, context.max);
345
- import_react.useEffect(() => {
346
- if (thumb) {
347
- context.thumbs.add(thumb);
348
- return () => {
349
- context.thumbs.delete(thumb);
350
- };
351
- }
352
- }, [thumb, context.thumbs]);
353
- const thumbContext = {
354
- value,
355
- name: resolvedName,
356
- form: context.form,
357
- isFormControl,
358
- index,
359
- thumb,
360
- onThumbChange: setThumb,
361
- percent,
362
- size
363
- };
364
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(SliderThumbContextProvider, {
365
- scope: __scopeSlider,
366
- ...thumbContext,
367
- children: isFunction(internal_do_not_use_render) ? internal_do_not_use_render(thumbContext) : children
368
- });
369
- }
370
- SliderThumbProvider.displayName = THUMB_PROVIDER_NAME;
371
- var THUMB_TRIGGER_NAME = "SliderThumbTrigger";
372
- var SliderThumbTrigger = import_react.forwardRef((props, forwardedRef) => {
373
- const { __scopeSlider, ...thumbProps } = props;
374
- const context = useSliderContext(THUMB_TRIGGER_NAME, __scopeSlider);
375
- const orientation = useSliderOrientationContext(THUMB_TRIGGER_NAME, __scopeSlider);
376
- const { index, value, percent, size, onThumbChange } = useSliderThumbContext(THUMB_TRIGGER_NAME, __scopeSlider);
377
- const composedRefs = useComposedRefs(forwardedRef, (node) => onThumbChange(node));
378
- const label = getLabel(index, context.values.length);
379
- const orientationSize = size?.[orientation.size];
380
- const thumbInBoundsOffset = orientationSize ? getThumbInBoundsOffset(orientationSize, percent, orientation.direction) : 0;
381
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
382
- style: {
383
- transform: "var(--radix-slider-thumb-transform)",
384
- position: "absolute",
385
- [orientation.startEdge]: `calc(${percent}% + ${thumbInBoundsOffset}px)`
386
- },
387
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Collection.ItemSlot, {
388
- scope: __scopeSlider,
389
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Primitive.span, {
390
- role: "slider",
391
- "aria-label": props["aria-label"] || label,
392
- "aria-valuemin": context.min,
393
- "aria-valuenow": value,
394
- "aria-valuemax": context.max,
395
- "aria-orientation": context.orientation,
396
- "data-orientation": context.orientation,
397
- "data-disabled": context.disabled ? "" : void 0,
398
- tabIndex: context.disabled ? void 0 : 0,
399
- ...thumbProps,
400
- ref: composedRefs,
401
- style: value === void 0 ? { display: "none" } : props.style,
402
- onFocus: composeEventHandlers(props.onFocus, () => {
403
- context.valueIndexToChangeRef.current = index;
404
- })
405
- })
406
- })
407
- });
408
- });
409
- SliderThumbTrigger.displayName = THUMB_TRIGGER_NAME;
410
- var SliderThumb = import_react.forwardRef((props, forwardedRef) => {
411
- const { __scopeSlider, name, ...thumbProps } = props;
412
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(SliderThumbProvider, {
413
- __scopeSlider,
414
- name,
415
- internal_do_not_use_render: ({ index, isFormControl }) => /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(SliderThumbTrigger, {
416
- ...thumbProps,
417
- ref: forwardedRef,
418
- __scopeSlider
419
- }), isFormControl ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(SliderBubbleInput, { __scopeSlider }, index) : null] })
420
- });
421
- });
422
- SliderThumb.displayName = THUMB_NAME;
423
- var BUBBLE_INPUT_NAME = "SliderBubbleInput";
424
- var SliderBubbleInput = import_react.forwardRef(({ __scopeSlider, ...props }, forwardedRef) => {
425
- const { value, name, form } = useSliderThumbContext(BUBBLE_INPUT_NAME, __scopeSlider);
426
- const ref = import_react.useRef(null);
427
- const composedRefs = useComposedRefs(ref, forwardedRef);
428
- const prevValue = usePrevious(value);
429
- import_react.useEffect(() => {
430
- const input = ref.current;
431
- if (!input) return;
432
- const inputProto = window.HTMLInputElement.prototype;
433
- const setValue = Object.getOwnPropertyDescriptor(inputProto, "value").set;
434
- if (prevValue !== value && setValue) {
435
- const event = new Event("input", { bubbles: true });
436
- setValue.call(input, value);
437
- input.dispatchEvent(event);
438
- }
439
- }, [prevValue, value]);
440
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Primitive.input, {
441
- style: { display: "none" },
442
- name,
443
- form,
444
- ...props,
445
- ref: composedRefs,
446
- defaultValue: value
447
- });
448
- });
449
- SliderBubbleInput.displayName = BUBBLE_INPUT_NAME;
450
- function getNextSortedValues(prevValues = [], nextValue, atIndex) {
451
- const nextValues = [...prevValues];
452
- nextValues[atIndex] = nextValue;
453
- return nextValues.sort((a, b) => a - b);
454
- }
455
- function convertValueToPercentage(value, min, max) {
456
- return clamp(100 / (max - min) * (value - min), [0, 100]);
457
- }
458
- function getLabel(index, totalValues) {
459
- if (totalValues > 2) return `Value ${index + 1} of ${totalValues}`;
460
- else if (totalValues === 2) return ["Minimum", "Maximum"][index];
461
- else return;
462
- }
463
- function getClosestValueIndex(values, nextValue) {
464
- if (values.length === 1) return 0;
465
- const distances = values.map((value) => Math.abs(value - nextValue));
466
- const closestDistance = Math.min(...distances);
467
- return distances.indexOf(closestDistance);
468
- }
469
- function getThumbInBoundsOffset(width, left, direction) {
470
- const halfWidth = width / 2;
471
- return (halfWidth - linearScale([0, 50], [0, halfWidth])(left) * direction) * direction;
472
- }
473
- function getStepsBetweenValues(values) {
474
- return values.slice(0, -1).map((value, index) => values[index + 1] - value);
475
- }
476
- function hasMinStepsBetweenValues(values, minStepsBetweenValues) {
477
- if (minStepsBetweenValues > 0) {
478
- const stepsBetweenValues = getStepsBetweenValues(values);
479
- return Math.min(...stepsBetweenValues) >= minStepsBetweenValues;
480
- }
481
- return true;
482
- }
483
- function linearScale(input, output) {
484
- return (value) => {
485
- if (input[0] === input[1] || output[0] === output[1]) return output[0];
486
- const ratio = (output[1] - output[0]) / (input[1] - input[0]);
487
- return output[0] + ratio * (value - input[0]);
488
- };
489
- }
490
- function getDecimalCount(value) {
491
- if (!Number.isFinite(value)) return 0;
492
- const str = value.toString();
493
- if (str.includes("e")) {
494
- const [coefficient, exponent] = str.split("e");
495
- const decimalPart2 = coefficient.split(".")[1] || "";
496
- const exponentNum = Number(exponent);
497
- return Math.max(0, decimalPart2.length - exponentNum);
498
- }
499
- const decimalPart = str.split(".")[1];
500
- return decimalPart ? decimalPart.length : 0;
501
- }
502
- function roundValue(value, decimalCount) {
503
- const rounder = Math.pow(10, decimalCount);
504
- return Math.round(value * rounder) / rounder;
505
- }
506
- function isFunction(value) {
507
- return typeof value === "function";
508
- }
509
- //#endregion
510
- export { SliderTrack as i, SliderRange as n, SliderThumb as r, Slider as t };
@@ -1,157 +0,0 @@
1
- import { r as __toESM } from "../_runtime.mjs";
2
- import { u as require_react } from "./@floating-ui/react-dom+[...].mjs";
3
- import { E as useControllableState, N as useComposedRefs, O as createContextScope, P as require_jsx_runtime, k as Primitive } from "./@radix-ui/react-alert-dialog+[...].mjs";
4
- import { p as usePrevious } from "./@radix-ui/react-select+[...].mjs";
5
- import { t as composeEventHandlers } from "./radix-ui__primitive.mjs";
6
- import { o as useSize } from "./@radix-ui/react-popper+[...].mjs";
7
- //#region ../../node_modules/.pnpm/@radix-ui+react-switch@1.3.0_@types+react-dom@19.2.3_@types+react@19.2.15__@types+react_55e256c9d19c631edfd6f4015145e5fa/node_modules/@radix-ui/react-switch/dist/index.mjs
8
- var import_react = /* @__PURE__ */ __toESM(require_react(), 1);
9
- var import_jsx_runtime = require_jsx_runtime();
10
- var SWITCH_NAME = "Switch";
11
- var [createSwitchContext, createSwitchScope] = createContextScope(SWITCH_NAME);
12
- var [SwitchProviderImpl, useSwitchContext] = createSwitchContext(SWITCH_NAME);
13
- function SwitchProvider(props) {
14
- const { __scopeSwitch, checked: checkedProp, children, defaultChecked, disabled, form, name, onCheckedChange, required, value = "on", internal_do_not_use_render } = props;
15
- const [checked, setChecked] = useControllableState({
16
- prop: checkedProp,
17
- defaultProp: defaultChecked ?? false,
18
- onChange: onCheckedChange,
19
- caller: SWITCH_NAME
20
- });
21
- const [control, setControl] = import_react.useState(null);
22
- const [bubbleInput, setBubbleInput] = import_react.useState(null);
23
- const context = {
24
- checked,
25
- setChecked,
26
- disabled,
27
- control,
28
- setControl,
29
- name,
30
- form,
31
- value,
32
- hasConsumerStoppedPropagationRef: import_react.useRef(false),
33
- required,
34
- defaultChecked,
35
- isFormControl: control ? !!form || !!control.closest("form") : true,
36
- bubbleInput,
37
- setBubbleInput
38
- };
39
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(SwitchProviderImpl, {
40
- scope: __scopeSwitch,
41
- ...context,
42
- children: isFunction(internal_do_not_use_render) ? internal_do_not_use_render(context) : children
43
- });
44
- }
45
- var TRIGGER_NAME = "SwitchTrigger";
46
- var SwitchTrigger = import_react.forwardRef(({ __scopeSwitch, onClick, ...switchProps }, forwardedRef) => {
47
- const { value, disabled, checked, required, setControl, setChecked, hasConsumerStoppedPropagationRef, isFormControl, bubbleInput } = useSwitchContext(TRIGGER_NAME, __scopeSwitch);
48
- const composedRefs = useComposedRefs(forwardedRef, setControl);
49
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Primitive.button, {
50
- type: "button",
51
- role: "switch",
52
- "aria-checked": checked,
53
- "aria-required": required,
54
- "data-state": getState(checked),
55
- "data-disabled": disabled ? "" : void 0,
56
- disabled,
57
- value,
58
- ...switchProps,
59
- ref: composedRefs,
60
- onClick: composeEventHandlers(onClick, (event) => {
61
- setChecked((prevChecked) => !prevChecked);
62
- if (bubbleInput && isFormControl) {
63
- hasConsumerStoppedPropagationRef.current = event.isPropagationStopped();
64
- if (!hasConsumerStoppedPropagationRef.current) event.stopPropagation();
65
- }
66
- })
67
- });
68
- });
69
- SwitchTrigger.displayName = TRIGGER_NAME;
70
- var Switch = import_react.forwardRef((props, forwardedRef) => {
71
- const { __scopeSwitch, name, checked, defaultChecked, required, disabled, value, onCheckedChange, form, ...switchProps } = props;
72
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(SwitchProvider, {
73
- __scopeSwitch,
74
- checked,
75
- defaultChecked,
76
- disabled,
77
- required,
78
- onCheckedChange,
79
- name,
80
- form,
81
- value,
82
- internal_do_not_use_render: ({ isFormControl }) => /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(SwitchTrigger, {
83
- ...switchProps,
84
- ref: forwardedRef,
85
- __scopeSwitch
86
- }), isFormControl && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(SwitchBubbleInput, { __scopeSwitch })] })
87
- });
88
- });
89
- Switch.displayName = SWITCH_NAME;
90
- var THUMB_NAME = "SwitchThumb";
91
- var SwitchThumb = import_react.forwardRef((props, forwardedRef) => {
92
- const { __scopeSwitch, ...thumbProps } = props;
93
- const context = useSwitchContext(THUMB_NAME, __scopeSwitch);
94
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Primitive.span, {
95
- "data-state": getState(context.checked),
96
- "data-disabled": context.disabled ? "" : void 0,
97
- ...thumbProps,
98
- ref: forwardedRef
99
- });
100
- });
101
- SwitchThumb.displayName = THUMB_NAME;
102
- var BUBBLE_INPUT_NAME = "SwitchBubbleInput";
103
- var SwitchBubbleInput = import_react.forwardRef(({ __scopeSwitch, ...props }, forwardedRef) => {
104
- const { control, hasConsumerStoppedPropagationRef, checked, defaultChecked, required, disabled, name, value, form, bubbleInput, setBubbleInput } = useSwitchContext(BUBBLE_INPUT_NAME, __scopeSwitch);
105
- const composedRefs = useComposedRefs(forwardedRef, setBubbleInput);
106
- const prevChecked = usePrevious(checked);
107
- const controlSize = useSize(control);
108
- import_react.useEffect(() => {
109
- const input = bubbleInput;
110
- if (!input) return;
111
- const inputProto = window.HTMLInputElement.prototype;
112
- const setChecked = Object.getOwnPropertyDescriptor(inputProto, "checked").set;
113
- const bubbles = !hasConsumerStoppedPropagationRef.current;
114
- if (prevChecked !== checked && setChecked) {
115
- const event = new Event("click", { bubbles });
116
- setChecked.call(input, checked);
117
- input.dispatchEvent(event);
118
- }
119
- }, [
120
- bubbleInput,
121
- prevChecked,
122
- checked,
123
- hasConsumerStoppedPropagationRef
124
- ]);
125
- const defaultCheckedRef = import_react.useRef(checked);
126
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Primitive.input, {
127
- type: "checkbox",
128
- "aria-hidden": true,
129
- defaultChecked: defaultChecked ?? defaultCheckedRef.current,
130
- required,
131
- disabled,
132
- name,
133
- value,
134
- form,
135
- ...props,
136
- tabIndex: -1,
137
- ref: composedRefs,
138
- style: {
139
- ...props.style,
140
- ...controlSize,
141
- position: "absolute",
142
- pointerEvents: "none",
143
- opacity: 0,
144
- margin: 0,
145
- transform: "translateX(-100%)"
146
- }
147
- });
148
- });
149
- SwitchBubbleInput.displayName = BUBBLE_INPUT_NAME;
150
- function isFunction(value) {
151
- return typeof value === "function";
152
- }
153
- function getState(checked) {
154
- return checked ? "checked" : "unchecked";
155
- }
156
- //#endregion
157
- export { SwitchThumb as n, Switch as t };