palettecn 0.1.0

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 (460) hide show
  1. package/dist/index.mjs +10 -0
  2. package/dist/web/nitro.json +17 -0
  3. package/dist/web/public/assets/abap-BdvmRIgS.js +1 -0
  4. package/dist/web/public/assets/actionscript-3-et0rQaqm.js +1 -0
  5. package/dist/web/public/assets/ada-DPgrustg.js +1 -0
  6. package/dist/web/public/assets/andromeeda-DJl1yeV_.js +1 -0
  7. package/dist/web/public/assets/angular-html-Dm7s7tSx.js +1 -0
  8. package/dist/web/public/assets/angular-ts-B_ywTULt.js +1 -0
  9. package/dist/web/public/assets/apache-CFpsYX8S.js +1 -0
  10. package/dist/web/public/assets/apex-CN5n6pbI.js +1 -0
  11. package/dist/web/public/assets/apl-Dm11wHHc.js +1 -0
  12. package/dist/web/public/assets/applescript-JrY23hsL.js +1 -0
  13. package/dist/web/public/assets/ara-DR83hn3A.js +1 -0
  14. package/dist/web/public/assets/asciidoc-Dpu9XLB1.js +1 -0
  15. package/dist/web/public/assets/asm-BYI3A31V.js +1 -0
  16. package/dist/web/public/assets/astro-DP1naDCT.js +1 -0
  17. package/dist/web/public/assets/aurora-x-Nav5jnoQ.js +1 -0
  18. package/dist/web/public/assets/awk-BIoTx_w6.js +1 -0
  19. package/dist/web/public/assets/ayu-dark-H5QV5J7K.js +1 -0
  20. package/dist/web/public/assets/ayu-light-BrwTNGnU.js +1 -0
  21. package/dist/web/public/assets/ayu-mirage-Bg6FpF5w.js +1 -0
  22. package/dist/web/public/assets/ballerina-BFvDNd4T.js +1 -0
  23. package/dist/web/public/assets/bat-DtQkx7Ny.js +1 -0
  24. package/dist/web/public/assets/beancount-BIjKALa1.js +1 -0
  25. package/dist/web/public/assets/berry-BPkDN_EZ.js +1 -0
  26. package/dist/web/public/assets/bibtex-Dur2CNW6.js +1 -0
  27. package/dist/web/public/assets/bicep-BMz1bZ7m.js +1 -0
  28. package/dist/web/public/assets/bird2-91rdr9s7.js +1 -0
  29. package/dist/web/public/assets/blade-DD5O596X.js +1 -0
  30. package/dist/web/public/assets/bsl-FmB7U2qd.js +1 -0
  31. package/dist/web/public/assets/bundle-mjs-Bso3xn9x.js +1 -0
  32. package/dist/web/public/assets/c-DqqBLLyl.js +1 -0
  33. package/dist/web/public/assets/c3-CJTbEooS.js +1 -0
  34. package/dist/web/public/assets/cadence-C0GI7BZZ.js +1 -0
  35. package/dist/web/public/assets/cairo-B5JMmIC0.js +1 -0
  36. package/dist/web/public/assets/catppuccin-frappe-D76-cUjK.js +1 -0
  37. package/dist/web/public/assets/catppuccin-latte-DUHNJ_6_.js +1 -0
  38. package/dist/web/public/assets/catppuccin-macchiato-CFhPH2wd.js +1 -0
  39. package/dist/web/public/assets/catppuccin-mocha-BRD0cvUW.js +1 -0
  40. package/dist/web/public/assets/chunk-FRKYWMV7-DUkk3w4h.js +122 -0
  41. package/dist/web/public/assets/clarity-KgUVrNfC.js +1 -0
  42. package/dist/web/public/assets/clojure-BhQuoGIG.js +1 -0
  43. package/dist/web/public/assets/cmake-CA59gUFQ.js +1 -0
  44. package/dist/web/public/assets/cobol-CCFShgGZ.js +1 -0
  45. package/dist/web/public/assets/codeowners-CD36YqjJ.js +1 -0
  46. package/dist/web/public/assets/codeql-CrMosKUt.js +1 -0
  47. package/dist/web/public/assets/coffee-C-Mn3tBT.js +1 -0
  48. package/dist/web/public/assets/common-lisp-DYnOjAFz.js +1 -0
  49. package/dist/web/public/assets/components-DiZ1dSl3.js +77 -0
  50. package/dist/web/public/assets/coq-BaHtq3Qt.js +1 -0
  51. package/dist/web/public/assets/cpp-D8Y73ItU.js +1 -0
  52. package/dist/web/public/assets/crystal-CnXWqbxx.js +1 -0
  53. package/dist/web/public/assets/csharp-D6sghVPa.js +1 -0
  54. package/dist/web/public/assets/css-CUGjdPw_.js +1 -0
  55. package/dist/web/public/assets/csv-DuxyxUAI.js +1 -0
  56. package/dist/web/public/assets/cue-D9NRAX0_.js +1 -0
  57. package/dist/web/public/assets/cypher-HJRdtilF.js +1 -0
  58. package/dist/web/public/assets/d-B4Ont7_X.js +1 -0
  59. package/dist/web/public/assets/dark-plus-DZSBycyp.js +1 -0
  60. package/dist/web/public/assets/dart-Dp4asavE.js +1 -0
  61. package/dist/web/public/assets/dax-DBUubp6S.js +1 -0
  62. package/dist/web/public/assets/desktop-DQ0n6zIQ.js +1 -0
  63. package/dist/web/public/assets/diff-CFHlrffC.js +1 -0
  64. package/dist/web/public/assets/docker-BuefmsF5.js +1 -0
  65. package/dist/web/public/assets/dotenv-BKTsUQ_r.js +1 -0
  66. package/dist/web/public/assets/dracula-MOn9qacs.js +1 -0
  67. package/dist/web/public/assets/dracula-soft-C4r_sC_D.js +1 -0
  68. package/dist/web/public/assets/dream-maker-BNdv5lLS.js +1 -0
  69. package/dist/web/public/assets/edge-C-Mi8Oda.js +1 -0
  70. package/dist/web/public/assets/elixir-CTS5wQtX.js +1 -0
  71. package/dist/web/public/assets/elm-rM310x8D.js +1 -0
  72. package/dist/web/public/assets/emacs-lisp-D9FIGRtM.js +1 -0
  73. package/dist/web/public/assets/erb-oaGjGVGO.js +1 -0
  74. package/dist/web/public/assets/erlang-q4Mkyw3m.js +1 -0
  75. package/dist/web/public/assets/everforest-dark-CNa2QFRn.js +1 -0
  76. package/dist/web/public/assets/everforest-light-DRbUDqJT.js +1 -0
  77. package/dist/web/public/assets/fennel-DpqQTaVZ.js +1 -0
  78. package/dist/web/public/assets/field-1-Ujza0S5j.js +1 -0
  79. package/dist/web/public/assets/fish-hyk5x6Q4.js +1 -0
  80. package/dist/web/public/assets/fluent-DMll-MGX.js +1 -0
  81. package/dist/web/public/assets/fortran-fixed-form-BmdfKovV.js +1 -0
  82. package/dist/web/public/assets/fortran-free-form-MCAifii4.js +1 -0
  83. package/dist/web/public/assets/fsharp-DLlBn9Nl.js +1 -0
  84. package/dist/web/public/assets/gdresource-BzFzBRli.js +1 -0
  85. package/dist/web/public/assets/gdscript-D3R4J0Cv.js +1 -0
  86. package/dist/web/public/assets/gdshader-BAubtqqN.js +1 -0
  87. package/dist/web/public/assets/genie-BnIIX2pC.js +1 -0
  88. package/dist/web/public/assets/gherkin-CL3NUuB1.js +1 -0
  89. package/dist/web/public/assets/git-commit-BYPE8h85.js +1 -0
  90. package/dist/web/public/assets/git-rebase-Bmmgf6eN.js +1 -0
  91. package/dist/web/public/assets/github-dark-default-C6I2oE4c.js +1 -0
  92. package/dist/web/public/assets/github-dark-dimmed-DEqwxg6D.js +1 -0
  93. package/dist/web/public/assets/github-dark-high-contrast-DDt3j0cs.js +1 -0
  94. package/dist/web/public/assets/github-dark-oLN6SDKl.js +1 -0
  95. package/dist/web/public/assets/github-light-DaN-N2Gj.js +1 -0
  96. package/dist/web/public/assets/github-light-default-B3EwMbS7.js +1 -0
  97. package/dist/web/public/assets/github-light-high-contrast-Cl9D0f_e.js +1 -0
  98. package/dist/web/public/assets/gleam-Cvj8QRtQ.js +1 -0
  99. package/dist/web/public/assets/glimmer-js-CahbROb1.js +1 -0
  100. package/dist/web/public/assets/glimmer-ts-JMFYNbot.js +1 -0
  101. package/dist/web/public/assets/global-XWAvxWcA.css +2 -0
  102. package/dist/web/public/assets/glsl-BCuCNM3V.js +1 -0
  103. package/dist/web/public/assets/gn-DxCHSEMl.js +1 -0
  104. package/dist/web/public/assets/gnuplot-CkGXHK7B.js +1 -0
  105. package/dist/web/public/assets/go-B_NLCuTj.js +1 -0
  106. package/dist/web/public/assets/graphql-RXOfHGfI.js +1 -0
  107. package/dist/web/public/assets/groovy-DVge8oRs.js +1 -0
  108. package/dist/web/public/assets/gruvbox-dark-hard-BwZz1yni.js +1 -0
  109. package/dist/web/public/assets/gruvbox-dark-medium-Bqy6jkuO.js +1 -0
  110. package/dist/web/public/assets/gruvbox-dark-soft-DjUvyUfH.js +1 -0
  111. package/dist/web/public/assets/gruvbox-light-hard-BTLmfPdm.js +1 -0
  112. package/dist/web/public/assets/gruvbox-light-medium-DeWqsWs6.js +1 -0
  113. package/dist/web/public/assets/gruvbox-light-soft-BL8ld-1F.js +1 -0
  114. package/dist/web/public/assets/hack-BBQpwyf_.js +1 -0
  115. package/dist/web/public/assets/haml-mWELc9kh.js +1 -0
  116. package/dist/web/public/assets/handlebars-COrUo8cC.js +1 -0
  117. package/dist/web/public/assets/haskell-DRmM8XlQ.js +1 -0
  118. package/dist/web/public/assets/haxe-BEhq8ZEr.js +1 -0
  119. package/dist/web/public/assets/hcl-B5ZIaGS0.js +1 -0
  120. package/dist/web/public/assets/highlighted-body-TPN3WLV5-YJgGFx4e.js +1 -0
  121. package/dist/web/public/assets/hjson-B9uRLqIO.js +1 -0
  122. package/dist/web/public/assets/hlsl-Hv1kKjrS.js +1 -0
  123. package/dist/web/public/assets/horizon-ClXGBjWw.js +1 -0
  124. package/dist/web/public/assets/horizon-bright-CvUCr3ux.js +1 -0
  125. package/dist/web/public/assets/houston-NqkqG60q.js +1 -0
  126. package/dist/web/public/assets/html-cmigv1ou.js +1 -0
  127. package/dist/web/public/assets/html-derivative-B3me0pSu.js +1 -0
  128. package/dist/web/public/assets/http-BojM9cyU.js +1 -0
  129. package/dist/web/public/assets/hurl-BxEmMiGP.js +1 -0
  130. package/dist/web/public/assets/hxml-CoBuVbfs.js +1 -0
  131. package/dist/web/public/assets/hy-CeISYGGU.js +1 -0
  132. package/dist/web/public/assets/imba-xjcDFXUW.js +1 -0
  133. package/dist/web/public/assets/ini-D0ZCSj6e.js +1 -0
  134. package/dist/web/public/assets/inter-cyrillic-ext-wght-normal-BOeWTOD4.woff2 +0 -0
  135. package/dist/web/public/assets/inter-cyrillic-wght-normal-DqGufNeO.woff2 +0 -0
  136. package/dist/web/public/assets/inter-greek-ext-wght-normal-DlzME5K_.woff2 +0 -0
  137. package/dist/web/public/assets/inter-greek-wght-normal-CkhJZR-_.woff2 +0 -0
  138. package/dist/web/public/assets/inter-latin-ext-wght-normal-DO1Apj_S.woff2 +0 -0
  139. package/dist/web/public/assets/inter-latin-wght-normal-Dx4kXJAl.woff2 +0 -0
  140. package/dist/web/public/assets/inter-vietnamese-wght-normal-CBcvBZtf.woff2 +0 -0
  141. package/dist/web/public/assets/java-BvheClGI.js +1 -0
  142. package/dist/web/public/assets/javascript-DjlJORDg.js +1 -0
  143. package/dist/web/public/assets/jinja-Bi4sG72X.js +1 -0
  144. package/dist/web/public/assets/jison-BTz5Ik2Y.js +1 -0
  145. package/dist/web/public/assets/json-CiTd40Rg.js +1 -0
  146. package/dist/web/public/assets/json5-FR9EyF7a.js +1 -0
  147. package/dist/web/public/assets/jsonc-CHIeFfsD.js +1 -0
  148. package/dist/web/public/assets/jsonl-B4WQkwTf.js +1 -0
  149. package/dist/web/public/assets/jsonnet-vd-gzGkL.js +1 -0
  150. package/dist/web/public/assets/jssm-C_bj1LkZ.js +1 -0
  151. package/dist/web/public/assets/jsx-Bx-RZMFH.js +1 -0
  152. package/dist/web/public/assets/jsx-runtime-n8k0hwt8.js +1 -0
  153. package/dist/web/public/assets/julia-BKcIfSxk.js +1 -0
  154. package/dist/web/public/assets/just-IkZCagAs.js +1 -0
  155. package/dist/web/public/assets/kanagawa-dragon-B3Cz89vt.js +1 -0
  156. package/dist/web/public/assets/kanagawa-lotus-CRe_W5Ft.js +1 -0
  157. package/dist/web/public/assets/kanagawa-wave-BPqZ5XB7.js +1 -0
  158. package/dist/web/public/assets/kdl-BzL_Ak31.js +1 -0
  159. package/dist/web/public/assets/kotlin-BQQFk6ql.js +1 -0
  160. package/dist/web/public/assets/kusto-vWe6OLKV.js +1 -0
  161. package/dist/web/public/assets/laserwave-CwtvEUcj.js +1 -0
  162. package/dist/web/public/assets/latex-9N90_WFU.js +1 -0
  163. package/dist/web/public/assets/lean-CaqenOqv.js +1 -0
  164. package/dist/web/public/assets/less-CERnPzn6.js +1 -0
  165. package/dist/web/public/assets/light-plus-B9_M_OKq.js +1 -0
  166. package/dist/web/public/assets/liquid-CQLPDP7m.js +1 -0
  167. package/dist/web/public/assets/llvm-BylJXvm7.js +1 -0
  168. package/dist/web/public/assets/log-CBBcNcbO.js +1 -0
  169. package/dist/web/public/assets/logo-r-8Jc8Xk.js +1 -0
  170. package/dist/web/public/assets/lua-BBL6LXKd.js +1 -0
  171. package/dist/web/public/assets/luau-B2g7L-zP.js +1 -0
  172. package/dist/web/public/assets/main-0lKVDR64.css +2 -0
  173. package/dist/web/public/assets/main-CcNf0BOb.js +126 -0
  174. package/dist/web/public/assets/make-DK-HzJ2w.js +1 -0
  175. package/dist/web/public/assets/markdown-FgdsukgR.js +1 -0
  176. package/dist/web/public/assets/marko-CLZwt2N2.js +1 -0
  177. package/dist/web/public/assets/material-theme-DOJ9PS4O.js +1 -0
  178. package/dist/web/public/assets/material-theme-darker-DOurH5jT.js +1 -0
  179. package/dist/web/public/assets/material-theme-lighter-BfPWxCP6.js +1 -0
  180. package/dist/web/public/assets/material-theme-ocean-BcO5PKoq.js +1 -0
  181. package/dist/web/public/assets/material-theme-palenight-ClWQBDDd.js +1 -0
  182. package/dist/web/public/assets/matlab-DwyUVNXd.js +1 -0
  183. package/dist/web/public/assets/mdc-Bo8CRPg4.js +1 -0
  184. package/dist/web/public/assets/mdx-3EBShbsD.js +1 -0
  185. package/dist/web/public/assets/mermaid-ByG2-SLz.js +1 -0
  186. package/dist/web/public/assets/mermaid-O7DHMXV3-COAgR3aM.js +1 -0
  187. package/dist/web/public/assets/min-dark-ClJ2x5pc.js +1 -0
  188. package/dist/web/public/assets/min-light-BsOUz5iE.js +1 -0
  189. package/dist/web/public/assets/mipsasm-BKDtQCf3.js +1 -0
  190. package/dist/web/public/assets/mojo-DmEAK7iv.js +1 -0
  191. package/dist/web/public/assets/monokai-BKc3VADO.js +1 -0
  192. package/dist/web/public/assets/moonbit-Qm8v_cKN.js +1 -0
  193. package/dist/web/public/assets/move-CMectUPk.js +1 -0
  194. package/dist/web/public/assets/narrat-Bdm8NaK8.js +1 -0
  195. package/dist/web/public/assets/nextflow-BpSt05nC.js +1 -0
  196. package/dist/web/public/assets/nextflow-groovy-BZ-bqJ-u.js +1 -0
  197. package/dist/web/public/assets/nginx-ChZL5FWE.js +1 -0
  198. package/dist/web/public/assets/night-owl-CbFc5pXO.js +1 -0
  199. package/dist/web/public/assets/night-owl-light-zYbVCVuz.js +1 -0
  200. package/dist/web/public/assets/nim-5JnPAJWa.js +1 -0
  201. package/dist/web/public/assets/nix-P5P-2qHs.js +1 -0
  202. package/dist/web/public/assets/nord-C7hKGudV.js +1 -0
  203. package/dist/web/public/assets/nushell-DKPnC5RG.js +1 -0
  204. package/dist/web/public/assets/objective-c-BPwXtM0v.js +1 -0
  205. package/dist/web/public/assets/objective-cpp-CWYEdWNG.js +1 -0
  206. package/dist/web/public/assets/ocaml-CL7OJ02v.js +1 -0
  207. package/dist/web/public/assets/odin-Dtay25eA.js +1 -0
  208. package/dist/web/public/assets/one-dark-pro-CrdFNNwF.js +1 -0
  209. package/dist/web/public/assets/one-light-BUiz8X4B.js +1 -0
  210. package/dist/web/public/assets/openscad-WD4sXUUp.js +1 -0
  211. package/dist/web/public/assets/pascal-A6-MZnZ8.js +1 -0
  212. package/dist/web/public/assets/perl-Yq3AfnVV.js +1 -0
  213. package/dist/web/public/assets/php-CCj0foPx.js +1 -0
  214. package/dist/web/public/assets/pkl-cmPbg8fI.js +1 -0
  215. package/dist/web/public/assets/plastic-DtQ_LnDB.js +1 -0
  216. package/dist/web/public/assets/plsql-DwmuVd7q.js +1 -0
  217. package/dist/web/public/assets/po-CkVxkZaj.js +1 -0
  218. package/dist/web/public/assets/poimandres-Dt0xZuaa.js +1 -0
  219. package/dist/web/public/assets/polar-hStNz_W2.js +1 -0
  220. package/dist/web/public/assets/postcss-ZIk0AQ7M.js +1 -0
  221. package/dist/web/public/assets/powerquery-D0gqoHHD.js +1 -0
  222. package/dist/web/public/assets/powershell-DXB5HoVh.js +1 -0
  223. package/dist/web/public/assets/prisma-DmTrfxC0.js +1 -0
  224. package/dist/web/public/assets/prolog-CdoyriEj.js +1 -0
  225. package/dist/web/public/assets/proto-4MrN11dS.js +1 -0
  226. package/dist/web/public/assets/pug-svYJKDOQ.js +1 -0
  227. package/dist/web/public/assets/puppet-MEaLGpAP.js +1 -0
  228. package/dist/web/public/assets/purescript-CPxCorqB.js +1 -0
  229. package/dist/web/public/assets/python-f4fp5z0z.js +1 -0
  230. package/dist/web/public/assets/qml-BzEtWdqI.js +1 -0
  231. package/dist/web/public/assets/qmldir-DCjSceJ_.js +1 -0
  232. package/dist/web/public/assets/qss-BdM02NUc.js +1 -0
  233. package/dist/web/public/assets/r-luosIeJH.js +1 -0
  234. package/dist/web/public/assets/racket-D2tfa8Zc.js +1 -0
  235. package/dist/web/public/assets/raku-KeGPJVZg.js +1 -0
  236. package/dist/web/public/assets/razor-Bokxs4Qx.js +1 -0
  237. package/dist/web/public/assets/red-C0qZ-1lN.js +1 -0
  238. package/dist/web/public/assets/reg-DdnswvOj.js +1 -0
  239. package/dist/web/public/assets/regexp-CYC8h6V9.js +1 -0
  240. package/dist/web/public/assets/rel-RhzEfSRc.js +1 -0
  241. package/dist/web/public/assets/riscv-dS5TzX10.js +1 -0
  242. package/dist/web/public/assets/ron-CQjQSCVp.js +1 -0
  243. package/dist/web/public/assets/rose-pine-C89ViLdr.js +1 -0
  244. package/dist/web/public/assets/rose-pine-dawn-Dq2gf0yi.js +1 -0
  245. package/dist/web/public/assets/rose-pine-moon-CBDvXVs_.js +1 -0
  246. package/dist/web/public/assets/rosmsg-nvjuSIGu.js +1 -0
  247. package/dist/web/public/assets/routes-BXqJCOpL.js +542 -0
  248. package/dist/web/public/assets/rst-1xwvVGf7.js +1 -0
  249. package/dist/web/public/assets/ruby-Blad-eDx.js +1 -0
  250. package/dist/web/public/assets/rust-rV8q_xyI.js +1 -0
  251. package/dist/web/public/assets/sas-DUPWtptg.js +1 -0
  252. package/dist/web/public/assets/sass-CuxdoNN0.js +1 -0
  253. package/dist/web/public/assets/scala-Df4L7N3R.js +1 -0
  254. package/dist/web/public/assets/scheme-DalRmAPH.js +1 -0
  255. package/dist/web/public/assets/scss-CYQ8LEwP.js +1 -0
  256. package/dist/web/public/assets/sdbl-B_TmFnGf.js +1 -0
  257. package/dist/web/public/assets/shaderlab-DYEMDY3e.js +1 -0
  258. package/dist/web/public/assets/shellscript-DjKZ34ac.js +1 -0
  259. package/dist/web/public/assets/shellsession-C3kcnBnh.js +1 -0
  260. package/dist/web/public/assets/slack-dark-ak_jOeLl.js +1 -0
  261. package/dist/web/public/assets/slack-ochin-ByiYhLwu.js +1 -0
  262. package/dist/web/public/assets/smalltalk-DTTnjjZJ.js +1 -0
  263. package/dist/web/public/assets/snazzy-light-BBRYeY60.js +1 -0
  264. package/dist/web/public/assets/solarized-dark-BtoLnWkw.js +1 -0
  265. package/dist/web/public/assets/solarized-light-CtzUA7GI.js +1 -0
  266. package/dist/web/public/assets/solidity-CSIHEQ2t.js +1 -0
  267. package/dist/web/public/assets/soy-BN0uzUAI.js +1 -0
  268. package/dist/web/public/assets/sparql-B6k9tA6Q.js +1 -0
  269. package/dist/web/public/assets/splunk-DkRzN7V_.js +1 -0
  270. package/dist/web/public/assets/sql-Bx-WX28V.js +1 -0
  271. package/dist/web/public/assets/ssh-config-Bqp7ng33.js +1 -0
  272. package/dist/web/public/assets/stata-HAj7doU8.js +1 -0
  273. package/dist/web/public/assets/stylus-CdbCxDLX.js +1 -0
  274. package/dist/web/public/assets/surrealql-BkGf0I3k.js +1 -0
  275. package/dist/web/public/assets/svelte-DtWg6ssL.js +1 -0
  276. package/dist/web/public/assets/swift-yRu2dtgr.js +1 -0
  277. package/dist/web/public/assets/synthwave-84-2WIu6MHX.js +1 -0
  278. package/dist/web/public/assets/system-verilog-GUE_oP1V.js +1 -0
  279. package/dist/web/public/assets/systemd-FLIJAQZV.js +1 -0
  280. package/dist/web/public/assets/talonscript-DTR-8ILs.js +1 -0
  281. package/dist/web/public/assets/tasl-WHNWP-1F.js +1 -0
  282. package/dist/web/public/assets/tcl-BaBXNNp6.js +1 -0
  283. package/dist/web/public/assets/templ-Dc9vj00n.js +1 -0
  284. package/dist/web/public/assets/terraform-uJUFpr8t.js +1 -0
  285. package/dist/web/public/assets/tex-DA3dAz55.js +1 -0
  286. package/dist/web/public/assets/tokyo-night-BbogFqAr.js +1 -0
  287. package/dist/web/public/assets/toml-CyR4Gqq1.js +1 -0
  288. package/dist/web/public/assets/ts-tags-BD1j21LH.js +1 -0
  289. package/dist/web/public/assets/tsv-COLVYI6A.js +1 -0
  290. package/dist/web/public/assets/tsx-CFm2E6uK.js +1 -0
  291. package/dist/web/public/assets/turtle-PQwt4gkb.js +1 -0
  292. package/dist/web/public/assets/twig-DrUXy85s.js +1 -0
  293. package/dist/web/public/assets/typescript-Dy-5sXFx.js +1 -0
  294. package/dist/web/public/assets/typespec-Bb7qHV0g.js +1 -0
  295. package/dist/web/public/assets/typst-Bj_JElGz.js +1 -0
  296. package/dist/web/public/assets/v-BTkrtik4.js +1 -0
  297. package/dist/web/public/assets/vala-AXT1CI9v.js +1 -0
  298. package/dist/web/public/assets/vb-DzTKUgW8.js +1 -0
  299. package/dist/web/public/assets/verilog-aI3j5Xj8.js +1 -0
  300. package/dist/web/public/assets/vesper-BmnwIC_B.js +1 -0
  301. package/dist/web/public/assets/vhdl-4IgBB7vO.js +1 -0
  302. package/dist/web/public/assets/viml-D_XMKSR6.js +1 -0
  303. package/dist/web/public/assets/vitesse-black-DhmxIXiA.js +1 -0
  304. package/dist/web/public/assets/vitesse-dark-dvEH_9qt.js +1 -0
  305. package/dist/web/public/assets/vitesse-light-Ca0W2L1O.js +1 -0
  306. package/dist/web/public/assets/vue-DC_yTvy2.js +1 -0
  307. package/dist/web/public/assets/vue-html-Bp8x4gdt.js +1 -0
  308. package/dist/web/public/assets/vue-vine-ZcUkuUUp.js +1 -0
  309. package/dist/web/public/assets/vyper-Dz2f7-FK.js +1 -0
  310. package/dist/web/public/assets/wasm-CuXPCj65.js +1 -0
  311. package/dist/web/public/assets/wasm-DHkXUMsP.js +1 -0
  312. package/dist/web/public/assets/wenyan-BRAtM0Iv.js +1 -0
  313. package/dist/web/public/assets/wgsl-CMpn9jTa.js +1 -0
  314. package/dist/web/public/assets/wikitext-DRmBVmVA.js +1 -0
  315. package/dist/web/public/assets/wit-Drp_HLqJ.js +1 -0
  316. package/dist/web/public/assets/wolfram-C33umj7M.js +1 -0
  317. package/dist/web/public/assets/xml-BHoOtGbO.js +1 -0
  318. package/dist/web/public/assets/xsl-CN1PlFqm.js +1 -0
  319. package/dist/web/public/assets/yaml-DT0mpn8u.js +1 -0
  320. package/dist/web/public/assets/zenscript-BlYQ_Frf.js +1 -0
  321. package/dist/web/public/assets/zig-Buk7I0y-.js +1 -0
  322. package/dist/web/server/_chunks/ssr-renderer.mjs +15 -0
  323. package/dist/web/server/_libs/@ai-sdk/anthropic+[...].mjs +14021 -0
  324. package/dist/web/server/_libs/@ai-sdk/moonshotai+[...].mjs +898 -0
  325. package/dist/web/server/_libs/@ai-sdk/react+[...].mjs +8969 -0
  326. package/dist/web/server/_libs/@emotion/is-prop-valid+[...].mjs +34 -0
  327. package/dist/web/server/_libs/@floating-ui/core+[...].mjs +698 -0
  328. package/dist/web/server/_libs/@floating-ui/dom+[...].mjs +644 -0
  329. package/dist/web/server/_libs/@floating-ui/react-dom+[...].mjs +475 -0
  330. package/dist/web/server/_libs/@lobehub/icons+[...].mjs +3079 -0
  331. package/dist/web/server/_libs/@radix-ui/react-arrow+[...].mjs +184 -0
  332. package/dist/web/server/_libs/@radix-ui/react-collapsible+[...].mjs +374 -0
  333. package/dist/web/server/_libs/@radix-ui/react-dialog+[...].mjs +1503 -0
  334. package/dist/web/server/_libs/@radix-ui/react-menu+[...].mjs +1236 -0
  335. package/dist/web/server/_libs/@radix-ui/react-select+[...].mjs +1007 -0
  336. package/dist/web/server/_libs/@shikijs/core+[...].mjs +9017 -0
  337. package/dist/web/server/_libs/@shikijs/engine-javascript+[...].mjs +3159 -0
  338. package/dist/web/server/_libs/@streamdown/math+[...].mjs +37559 -0
  339. package/dist/web/server/_libs/@tanstack/react-router+[...].mjs +14074 -0
  340. package/dist/web/server/_libs/_.mjs +3 -0
  341. package/dist/web/server/_libs/_2.mjs +3 -0
  342. package/dist/web/server/_libs/_3.mjs +2 -0
  343. package/dist/web/server/_libs/_4.mjs +2 -0
  344. package/dist/web/server/_libs/ai-sdk__gateway+vercel__oidc.mjs +1255 -0
  345. package/dist/web/server/_libs/ai-sdk__google.mjs +1630 -0
  346. package/dist/web/server/_libs/ai-sdk__openai+zod.mjs +4951 -0
  347. package/dist/web/server/_libs/ai-sdk__provider-utils.mjs +411 -0
  348. package/dist/web/server/_libs/ai-sdk__provider.mjs +222 -0
  349. package/dist/web/server/_libs/bail.mjs +13 -0
  350. package/dist/web/server/_libs/character-entities.mjs +2135 -0
  351. package/dist/web/server/_libs/class-variance-authority+clsx.mjs +69 -0
  352. package/dist/web/server/_libs/color+[...].mjs +2185 -0
  353. package/dist/web/server/_libs/copy-text-to-clipboard.mjs +40 -0
  354. package/dist/web/server/_libs/d3-array.mjs +231 -0
  355. package/dist/web/server/_libs/d3-color.mjs +330 -0
  356. package/dist/web/server/_libs/d3-format.mjs +252 -0
  357. package/dist/web/server/_libs/d3-interpolate.mjs +207 -0
  358. package/dist/web/server/_libs/d3-path.mjs +77 -0
  359. package/dist/web/server/_libs/d3-scale+[...].mjs +1907 -0
  360. package/dist/web/server/_libs/d3-shape.mjs +818 -0
  361. package/dist/web/server/_libs/date-fns.mjs +3012 -0
  362. package/dist/web/server/_libs/date-fns__tz.mjs +249 -0
  363. package/dist/web/server/_libs/decimal.js-light.mjs +884 -0
  364. package/dist/web/server/_libs/decode-named-character-reference+[...].mjs +19 -0
  365. package/dist/web/server/_libs/dexie.mjs +3745 -0
  366. package/dist/web/server/_libs/escape-string-regexp.mjs +7 -0
  367. package/dist/web/server/_libs/estree-util-is-identifier-name.mjs +20 -0
  368. package/dist/web/server/_libs/eventemitter3.mjs +237 -0
  369. package/dist/web/server/_libs/extend.mjs +75 -0
  370. package/dist/web/server/_libs/fast-equals.mjs +423 -0
  371. package/dist/web/server/_libs/framer-motion+[...].mjs +9573 -0
  372. package/dist/web/server/_libs/fuzzysort.mjs +621 -0
  373. package/dist/web/server/_libs/h3+rou3+srvx.mjs +1158 -0
  374. package/dist/web/server/_libs/hast-util-raw+[...].mjs +800 -0
  375. package/dist/web/server/_libs/hast-util-sanitize.mjs +780 -0
  376. package/dist/web/server/_libs/hast-util-to-jsx-runtime+[...].mjs +853 -0
  377. package/dist/web/server/_libs/hookable.mjs +41 -0
  378. package/dist/web/server/_libs/html-url-attributes.mjs +44 -0
  379. package/dist/web/server/_libs/is-plain-obj.mjs +8 -0
  380. package/dist/web/server/_libs/lodash.mjs +4532 -0
  381. package/dist/web/server/_libs/lucide-react.mjs +605 -0
  382. package/dist/web/server/_libs/markdown-table.mjs +289 -0
  383. package/dist/web/server/_libs/marked.mjs +1511 -0
  384. package/dist/web/server/_libs/mdast-util-find-and-replace.mjs +198 -0
  385. package/dist/web/server/_libs/mdast-util-from-markdown+[...].mjs +8121 -0
  386. package/dist/web/server/_libs/mdast-util-gfm+[...].mjs +2060 -0
  387. package/dist/web/server/_libs/mdast-util-to-hast+[...].mjs +1770 -0
  388. package/dist/web/server/_libs/micromark-extension-gfm+[...].mjs +2235 -0
  389. package/dist/web/server/_libs/nanoid.mjs +26 -0
  390. package/dist/web/server/_libs/next-themes.mjs +124 -0
  391. package/dist/web/server/_libs/prop-types.mjs +69 -0
  392. package/dist/web/server/_libs/radix-ui__number.mjs +6 -0
  393. package/dist/web/server/_libs/radix-ui__primitive.mjs +9 -0
  394. package/dist/web/server/_libs/radix-ui__react-collection.mjs +80 -0
  395. package/dist/web/server/_libs/radix-ui__react-direction.mjs +11 -0
  396. package/dist/web/server/_libs/radix-ui__react-label.mjs +23 -0
  397. package/dist/web/server/_libs/radix-ui__react-menubar.mjs +400 -0
  398. package/dist/web/server/_libs/radix-ui__react-popover.mjs +251 -0
  399. package/dist/web/server/_libs/radix-ui__react-progress.mjs +81 -0
  400. package/dist/web/server/_libs/radix-ui__react-scroll-area.mjs +669 -0
  401. package/dist/web/server/_libs/radix-ui__react-separator.mjs +32 -0
  402. package/dist/web/server/_libs/radix-ui__react-slider.mjs +464 -0
  403. package/dist/web/server/_libs/radix-ui__react-switch.mjs +120 -0
  404. package/dist/web/server/_libs/radix-ui__react-tabs.mjs +145 -0
  405. package/dist/web/server/_libs/radix-ui__react-tooltip.mjs +494 -0
  406. package/dist/web/server/_libs/react-day-picker.mjs +3510 -0
  407. package/dist/web/server/_libs/react-is.mjs +48 -0
  408. package/dist/web/server/_libs/react-resizable-panels.mjs +1517 -0
  409. package/dist/web/server/_libs/react-smooth.mjs +1024 -0
  410. package/dist/web/server/_libs/recharts+[...].mjs +12998 -0
  411. package/dist/web/server/_libs/rehype-harden.mjs +210 -0
  412. package/dist/web/server/_libs/rehype-raw.mjs +37 -0
  413. package/dist/web/server/_libs/rehype-sanitize.mjs +27 -0
  414. package/dist/web/server/_libs/remark-gfm.mjs +34 -0
  415. package/dist/web/server/_libs/remark-parse.mjs +37 -0
  416. package/dist/web/server/_libs/remark-rehype.mjs +169 -0
  417. package/dist/web/server/_libs/remend.mjs +544 -0
  418. package/dist/web/server/_libs/scule.mjs +55 -0
  419. package/dist/web/server/_libs/shiki+streamdown__code.mjs +1748 -0
  420. package/dist/web/server/_libs/shiki.mjs +16 -0
  421. package/dist/web/server/_libs/shikijs__engine-oniguruma.mjs +387 -0
  422. package/dist/web/server/_libs/shikijs__langs.mjs +1357 -0
  423. package/dist/web/server/_libs/shikijs__themes.mjs +268 -0
  424. package/dist/web/server/_libs/sonner.mjs +909 -0
  425. package/dist/web/server/_libs/streamdown+[...].mjs +5842 -0
  426. package/dist/web/server/_libs/tanstack__history.mjs +342 -0
  427. package/dist/web/server/_libs/tanstack__query-core.mjs +2073 -0
  428. package/dist/web/server/_libs/tanstack__react-query.mjs +146 -0
  429. package/dist/web/server/_libs/tanstack__router-core.mjs +6 -0
  430. package/dist/web/server/_libs/tanstack__zod-adapter.mjs +16 -0
  431. package/dist/web/server/_libs/ufo.mjs +64 -0
  432. package/dist/web/server/_libs/ungap__structured-clone.mjs +197 -0
  433. package/dist/web/server/_libs/use-stick-to-bottom.mjs +410 -0
  434. package/dist/web/server/_libs/vercel__oidc.mjs +393 -0
  435. package/dist/web/server/_libs/zhipu-ai-provider.mjs +13483 -0
  436. package/dist/web/server/_libs/zustand.mjs +48 -0
  437. package/dist/web/server/_runtime.mjs +35 -0
  438. package/dist/web/server/_ssr/components-BzCiScpA.mjs +1452 -0
  439. package/dist/web/server/_ssr/dist-3Mu7PF0n.mjs +137 -0
  440. package/dist/web/server/_ssr/dist-BRaLXgxZ.mjs +17 -0
  441. package/dist/web/server/_ssr/field-1-agM60DBf.mjs +167 -0
  442. package/dist/web/server/_ssr/get-providers-BoYkp0Of.mjs +40 -0
  443. package/dist/web/server/_ssr/initialize-provider-B6W8V5Eg.mjs +19 -0
  444. package/dist/web/server/_ssr/model-list-CDFjdz2P.mjs +60 -0
  445. package/dist/web/server/_ssr/router-BmmOCtJZ.mjs +168 -0
  446. package/dist/web/server/_ssr/routes-CvlpZK4Q.mjs +2630 -0
  447. package/dist/web/server/_ssr/schemas-DsZ5O3zp.mjs +67 -0
  448. package/dist/web/server/_ssr/send-message-DUT1vRvx.mjs +135 -0
  449. package/dist/web/server/_ssr/ssr.mjs +5253 -0
  450. package/dist/web/server/_ssr/start-rewezkfD.mjs +4 -0
  451. package/dist/web/server/_ssr/submit-key-CcCv6-yy.mjs +62 -0
  452. package/dist/web/server/_ssr/suggestions-B0Uc3p7F.mjs +38 -0
  453. package/dist/web/server/_ssr/use-providers-Bwqg2U3N.mjs +1554 -0
  454. package/dist/web/server/_tanstack-start-manifest_v-BMIvh4y6.mjs +60 -0
  455. package/dist/web/server/index.mjs +2531 -0
  456. package/dist/web/server/node_modules/tslib/modules/index.js +70 -0
  457. package/dist/web/server/node_modules/tslib/modules/package.json +3 -0
  458. package/dist/web/server/node_modules/tslib/package.json +47 -0
  459. package/dist/web/server/node_modules/tslib/tslib.js +484 -0
  460. package/package.json +32 -0
@@ -0,0 +1,1007 @@
1
+ import { i as __toESM } from "../../_runtime.mjs";
2
+ import { u as require_react } from "../@ai-sdk/react+[...].mjs";
3
+ import { s as require_jsx_runtime } from "../@lobehub/icons+[...].mjs";
4
+ import { l as require_react_dom } from "../@floating-ui/react-dom+[...].mjs";
5
+ import { a as createSlot, c as useComposedRefs, n as Primitive } from "./react-arrow+[...].mjs";
6
+ import { i as useId, l as createContextScope, o as useControllableState, s as useLayoutEffect2 } from "./react-collapsible+[...].mjs";
7
+ import { t as createCollection } from "../radix-ui__react-collection.mjs";
8
+ import { t as composeEventHandlers } from "../radix-ui__primitive.mjs";
9
+ import { t as useDirection } from "../radix-ui__react-direction.mjs";
10
+ import { d as useFocusGuards, f as Portal$1, h as useCallbackRef, l as hideOthers, m as DismissableLayer, p as FocusScope, u as ReactRemoveScroll } from "./react-dialog+[...].mjs";
11
+ import { C as Content, S as Arrow, T as createPopperScope, w as Root2$1, x as Anchor } from "./react-menu+[...].mjs";
12
+ import { t as clamp } from "../radix-ui__number.mjs";
13
+ //#region ../../node_modules/.pnpm/@radix-ui+react-visually-hidden@1.2.3_@types+react-dom@19.2.3_@types+react@19.2.14__@ty_fa89646d7248b32d1762bf88948f6339/node_modules/@radix-ui/react-visually-hidden/dist/index.mjs
14
+ var import_react = /* @__PURE__ */ __toESM(require_react(), 1);
15
+ var import_jsx_runtime = require_jsx_runtime();
16
+ var VISUALLY_HIDDEN_STYLES = Object.freeze({
17
+ position: "absolute",
18
+ border: 0,
19
+ width: 1,
20
+ height: 1,
21
+ padding: 0,
22
+ margin: -1,
23
+ overflow: "hidden",
24
+ clip: "rect(0, 0, 0, 0)",
25
+ whiteSpace: "nowrap",
26
+ wordWrap: "normal"
27
+ });
28
+ var NAME = "VisuallyHidden";
29
+ var VisuallyHidden = import_react.forwardRef((props, forwardedRef) => {
30
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Primitive.span, {
31
+ ...props,
32
+ ref: forwardedRef,
33
+ style: {
34
+ ...VISUALLY_HIDDEN_STYLES,
35
+ ...props.style
36
+ }
37
+ });
38
+ });
39
+ VisuallyHidden.displayName = NAME;
40
+ var Root = VisuallyHidden;
41
+ //#endregion
42
+ //#region ../../node_modules/.pnpm/@radix-ui+react-use-previous@1.1.1_@types+react@19.2.14_react@19.2.4/node_modules/@radix-ui/react-use-previous/dist/index.mjs
43
+ function usePrevious(value) {
44
+ const ref = import_react.useRef({
45
+ value,
46
+ previous: value
47
+ });
48
+ return import_react.useMemo(() => {
49
+ if (ref.current.value !== value) {
50
+ ref.current.previous = ref.current.value;
51
+ ref.current.value = value;
52
+ }
53
+ return ref.current.previous;
54
+ }, [value]);
55
+ }
56
+ //#endregion
57
+ //#region ../../node_modules/.pnpm/@radix-ui+react-select@2.2.6_@types+react-dom@19.2.3_@types+react@19.2.14__@types+react_53894a32562cb9eeb6aef8b357a4f4e3/node_modules/@radix-ui/react-select/dist/index.mjs
58
+ var import_react_dom = /* @__PURE__ */ __toESM(require_react_dom(), 1);
59
+ var OPEN_KEYS = [
60
+ " ",
61
+ "Enter",
62
+ "ArrowUp",
63
+ "ArrowDown"
64
+ ];
65
+ var SELECTION_KEYS = [" ", "Enter"];
66
+ var SELECT_NAME = "Select";
67
+ var [Collection, useCollection, createCollectionScope] = createCollection(SELECT_NAME);
68
+ var [createSelectContext, createSelectScope] = createContextScope(SELECT_NAME, [createCollectionScope, createPopperScope]);
69
+ var usePopperScope = createPopperScope();
70
+ var [SelectProvider, useSelectContext] = createSelectContext(SELECT_NAME);
71
+ var [SelectNativeOptionsProvider, useSelectNativeOptionsContext] = createSelectContext(SELECT_NAME);
72
+ var Select = (props) => {
73
+ const { __scopeSelect, children, open: openProp, defaultOpen, onOpenChange, value: valueProp, defaultValue, onValueChange, dir, name, autoComplete, disabled, required, form } = props;
74
+ const popperScope = usePopperScope(__scopeSelect);
75
+ const [trigger, setTrigger] = import_react.useState(null);
76
+ const [valueNode, setValueNode] = import_react.useState(null);
77
+ const [valueNodeHasChildren, setValueNodeHasChildren] = import_react.useState(false);
78
+ const direction = useDirection(dir);
79
+ const [open, setOpen] = useControllableState({
80
+ prop: openProp,
81
+ defaultProp: defaultOpen ?? false,
82
+ onChange: onOpenChange,
83
+ caller: SELECT_NAME
84
+ });
85
+ const [value, setValue] = useControllableState({
86
+ prop: valueProp,
87
+ defaultProp: defaultValue,
88
+ onChange: onValueChange,
89
+ caller: SELECT_NAME
90
+ });
91
+ const triggerPointerDownPosRef = import_react.useRef(null);
92
+ const isFormControl = trigger ? form || !!trigger.closest("form") : true;
93
+ const [nativeOptionsSet, setNativeOptionsSet] = import_react.useState(/* @__PURE__ */ new Set());
94
+ const nativeSelectKey = Array.from(nativeOptionsSet).map((option) => option.props.value).join(";");
95
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Root2$1, {
96
+ ...popperScope,
97
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(SelectProvider, {
98
+ required,
99
+ scope: __scopeSelect,
100
+ trigger,
101
+ onTriggerChange: setTrigger,
102
+ valueNode,
103
+ onValueNodeChange: setValueNode,
104
+ valueNodeHasChildren,
105
+ onValueNodeHasChildrenChange: setValueNodeHasChildren,
106
+ contentId: useId(),
107
+ value,
108
+ onValueChange: setValue,
109
+ open,
110
+ onOpenChange: setOpen,
111
+ dir: direction,
112
+ triggerPointerDownPosRef,
113
+ disabled,
114
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Collection.Provider, {
115
+ scope: __scopeSelect,
116
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(SelectNativeOptionsProvider, {
117
+ scope: props.__scopeSelect,
118
+ onNativeOptionAdd: import_react.useCallback((option) => {
119
+ setNativeOptionsSet((prev) => new Set(prev).add(option));
120
+ }, []),
121
+ onNativeOptionRemove: import_react.useCallback((option) => {
122
+ setNativeOptionsSet((prev) => {
123
+ const optionsSet = new Set(prev);
124
+ optionsSet.delete(option);
125
+ return optionsSet;
126
+ });
127
+ }, []),
128
+ children
129
+ })
130
+ }), isFormControl ? /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(SelectBubbleInput, {
131
+ "aria-hidden": true,
132
+ required,
133
+ tabIndex: -1,
134
+ name,
135
+ autoComplete,
136
+ value,
137
+ onChange: (event) => setValue(event.target.value),
138
+ disabled,
139
+ form,
140
+ children: [value === void 0 ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)("option", { value: "" }) : null, Array.from(nativeOptionsSet)]
141
+ }, nativeSelectKey) : null]
142
+ })
143
+ });
144
+ };
145
+ Select.displayName = SELECT_NAME;
146
+ var TRIGGER_NAME = "SelectTrigger";
147
+ var SelectTrigger = import_react.forwardRef((props, forwardedRef) => {
148
+ const { __scopeSelect, disabled = false, ...triggerProps } = props;
149
+ const popperScope = usePopperScope(__scopeSelect);
150
+ const context = useSelectContext(TRIGGER_NAME, __scopeSelect);
151
+ const isDisabled = context.disabled || disabled;
152
+ const composedRefs = useComposedRefs(forwardedRef, context.onTriggerChange);
153
+ const getItems = useCollection(__scopeSelect);
154
+ const pointerTypeRef = import_react.useRef("touch");
155
+ const [searchRef, handleTypeaheadSearch, resetTypeahead] = useTypeaheadSearch((search) => {
156
+ const enabledItems = getItems().filter((item) => !item.disabled);
157
+ const nextItem = findNextItem(enabledItems, search, enabledItems.find((item) => item.value === context.value));
158
+ if (nextItem !== void 0) context.onValueChange(nextItem.value);
159
+ });
160
+ const handleOpen = (pointerEvent) => {
161
+ if (!isDisabled) {
162
+ context.onOpenChange(true);
163
+ resetTypeahead();
164
+ }
165
+ if (pointerEvent) context.triggerPointerDownPosRef.current = {
166
+ x: Math.round(pointerEvent.pageX),
167
+ y: Math.round(pointerEvent.pageY)
168
+ };
169
+ };
170
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Anchor, {
171
+ asChild: true,
172
+ ...popperScope,
173
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Primitive.button, {
174
+ type: "button",
175
+ role: "combobox",
176
+ "aria-controls": context.contentId,
177
+ "aria-expanded": context.open,
178
+ "aria-required": context.required,
179
+ "aria-autocomplete": "none",
180
+ dir: context.dir,
181
+ "data-state": context.open ? "open" : "closed",
182
+ disabled: isDisabled,
183
+ "data-disabled": isDisabled ? "" : void 0,
184
+ "data-placeholder": shouldShowPlaceholder(context.value) ? "" : void 0,
185
+ ...triggerProps,
186
+ ref: composedRefs,
187
+ onClick: composeEventHandlers(triggerProps.onClick, (event) => {
188
+ event.currentTarget.focus();
189
+ if (pointerTypeRef.current !== "mouse") handleOpen(event);
190
+ }),
191
+ onPointerDown: composeEventHandlers(triggerProps.onPointerDown, (event) => {
192
+ pointerTypeRef.current = event.pointerType;
193
+ const target = event.target;
194
+ if (target.hasPointerCapture(event.pointerId)) target.releasePointerCapture(event.pointerId);
195
+ if (event.button === 0 && event.ctrlKey === false && event.pointerType === "mouse") {
196
+ handleOpen(event);
197
+ event.preventDefault();
198
+ }
199
+ }),
200
+ onKeyDown: composeEventHandlers(triggerProps.onKeyDown, (event) => {
201
+ const isTypingAhead = searchRef.current !== "";
202
+ if (!(event.ctrlKey || event.altKey || event.metaKey) && event.key.length === 1) handleTypeaheadSearch(event.key);
203
+ if (isTypingAhead && event.key === " ") return;
204
+ if (OPEN_KEYS.includes(event.key)) {
205
+ handleOpen();
206
+ event.preventDefault();
207
+ }
208
+ })
209
+ })
210
+ });
211
+ });
212
+ SelectTrigger.displayName = TRIGGER_NAME;
213
+ var VALUE_NAME = "SelectValue";
214
+ var SelectValue = import_react.forwardRef((props, forwardedRef) => {
215
+ const { __scopeSelect, className, style, children, placeholder = "", ...valueProps } = props;
216
+ const context = useSelectContext(VALUE_NAME, __scopeSelect);
217
+ const { onValueNodeHasChildrenChange } = context;
218
+ const hasChildren = children !== void 0;
219
+ const composedRefs = useComposedRefs(forwardedRef, context.onValueNodeChange);
220
+ useLayoutEffect2(() => {
221
+ onValueNodeHasChildrenChange(hasChildren);
222
+ }, [onValueNodeHasChildrenChange, hasChildren]);
223
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Primitive.span, {
224
+ ...valueProps,
225
+ ref: composedRefs,
226
+ style: { pointerEvents: "none" },
227
+ children: shouldShowPlaceholder(context.value) ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_jsx_runtime.Fragment, { children: placeholder }) : children
228
+ });
229
+ });
230
+ SelectValue.displayName = VALUE_NAME;
231
+ var ICON_NAME = "SelectIcon";
232
+ var SelectIcon = import_react.forwardRef((props, forwardedRef) => {
233
+ const { __scopeSelect, children, ...iconProps } = props;
234
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Primitive.span, {
235
+ "aria-hidden": true,
236
+ ...iconProps,
237
+ ref: forwardedRef,
238
+ children: children || "▼"
239
+ });
240
+ });
241
+ SelectIcon.displayName = ICON_NAME;
242
+ var PORTAL_NAME = "SelectPortal";
243
+ var SelectPortal = (props) => {
244
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Portal$1, {
245
+ asChild: true,
246
+ ...props
247
+ });
248
+ };
249
+ SelectPortal.displayName = PORTAL_NAME;
250
+ var CONTENT_NAME = "SelectContent";
251
+ var SelectContent = import_react.forwardRef((props, forwardedRef) => {
252
+ const context = useSelectContext(CONTENT_NAME, props.__scopeSelect);
253
+ const [fragment, setFragment] = import_react.useState();
254
+ useLayoutEffect2(() => {
255
+ setFragment(new DocumentFragment());
256
+ }, []);
257
+ if (!context.open) {
258
+ const frag = fragment;
259
+ return frag ? import_react_dom.createPortal(/* @__PURE__ */ (0, import_jsx_runtime.jsx)(SelectContentProvider, {
260
+ scope: props.__scopeSelect,
261
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Collection.Slot, {
262
+ scope: props.__scopeSelect,
263
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { children: props.children })
264
+ })
265
+ }), frag) : null;
266
+ }
267
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(SelectContentImpl, {
268
+ ...props,
269
+ ref: forwardedRef
270
+ });
271
+ });
272
+ SelectContent.displayName = CONTENT_NAME;
273
+ var CONTENT_MARGIN = 10;
274
+ var [SelectContentProvider, useSelectContentContext] = createSelectContext(CONTENT_NAME);
275
+ var CONTENT_IMPL_NAME = "SelectContentImpl";
276
+ var Slot = createSlot("SelectContent.RemoveScroll");
277
+ var SelectContentImpl = import_react.forwardRef((props, forwardedRef) => {
278
+ const { __scopeSelect, position = "item-aligned", onCloseAutoFocus, onEscapeKeyDown, onPointerDownOutside, side, sideOffset, align, alignOffset, arrowPadding, collisionBoundary, collisionPadding, sticky, hideWhenDetached, avoidCollisions, ...contentProps } = props;
279
+ const context = useSelectContext(CONTENT_NAME, __scopeSelect);
280
+ const [content, setContent] = import_react.useState(null);
281
+ const [viewport, setViewport] = import_react.useState(null);
282
+ const composedRefs = useComposedRefs(forwardedRef, (node) => setContent(node));
283
+ const [selectedItem, setSelectedItem] = import_react.useState(null);
284
+ const [selectedItemText, setSelectedItemText] = import_react.useState(null);
285
+ const getItems = useCollection(__scopeSelect);
286
+ const [isPositioned, setIsPositioned] = import_react.useState(false);
287
+ const firstValidItemFoundRef = import_react.useRef(false);
288
+ import_react.useEffect(() => {
289
+ if (content) return hideOthers(content);
290
+ }, [content]);
291
+ useFocusGuards();
292
+ const focusFirst = import_react.useCallback((candidates) => {
293
+ const [firstItem, ...restItems] = getItems().map((item) => item.ref.current);
294
+ const [lastItem] = restItems.slice(-1);
295
+ const PREVIOUSLY_FOCUSED_ELEMENT = document.activeElement;
296
+ for (const candidate of candidates) {
297
+ if (candidate === PREVIOUSLY_FOCUSED_ELEMENT) return;
298
+ candidate?.scrollIntoView({ block: "nearest" });
299
+ if (candidate === firstItem && viewport) viewport.scrollTop = 0;
300
+ if (candidate === lastItem && viewport) viewport.scrollTop = viewport.scrollHeight;
301
+ candidate?.focus();
302
+ if (document.activeElement !== PREVIOUSLY_FOCUSED_ELEMENT) return;
303
+ }
304
+ }, [getItems, viewport]);
305
+ const focusSelectedItem = import_react.useCallback(() => focusFirst([selectedItem, content]), [
306
+ focusFirst,
307
+ selectedItem,
308
+ content
309
+ ]);
310
+ import_react.useEffect(() => {
311
+ if (isPositioned) focusSelectedItem();
312
+ }, [isPositioned, focusSelectedItem]);
313
+ const { onOpenChange, triggerPointerDownPosRef } = context;
314
+ import_react.useEffect(() => {
315
+ if (content) {
316
+ let pointerMoveDelta = {
317
+ x: 0,
318
+ y: 0
319
+ };
320
+ const handlePointerMove = (event) => {
321
+ pointerMoveDelta = {
322
+ x: Math.abs(Math.round(event.pageX) - (triggerPointerDownPosRef.current?.x ?? 0)),
323
+ y: Math.abs(Math.round(event.pageY) - (triggerPointerDownPosRef.current?.y ?? 0))
324
+ };
325
+ };
326
+ const handlePointerUp = (event) => {
327
+ if (pointerMoveDelta.x <= 10 && pointerMoveDelta.y <= 10) event.preventDefault();
328
+ else if (!content.contains(event.target)) onOpenChange(false);
329
+ document.removeEventListener("pointermove", handlePointerMove);
330
+ triggerPointerDownPosRef.current = null;
331
+ };
332
+ if (triggerPointerDownPosRef.current !== null) {
333
+ document.addEventListener("pointermove", handlePointerMove);
334
+ document.addEventListener("pointerup", handlePointerUp, {
335
+ capture: true,
336
+ once: true
337
+ });
338
+ }
339
+ return () => {
340
+ document.removeEventListener("pointermove", handlePointerMove);
341
+ document.removeEventListener("pointerup", handlePointerUp, { capture: true });
342
+ };
343
+ }
344
+ }, [
345
+ content,
346
+ onOpenChange,
347
+ triggerPointerDownPosRef
348
+ ]);
349
+ import_react.useEffect(() => {
350
+ const close = () => onOpenChange(false);
351
+ window.addEventListener("blur", close);
352
+ window.addEventListener("resize", close);
353
+ return () => {
354
+ window.removeEventListener("blur", close);
355
+ window.removeEventListener("resize", close);
356
+ };
357
+ }, [onOpenChange]);
358
+ const [searchRef, handleTypeaheadSearch] = useTypeaheadSearch((search) => {
359
+ const enabledItems = getItems().filter((item) => !item.disabled);
360
+ const nextItem = findNextItem(enabledItems, search, enabledItems.find((item) => item.ref.current === document.activeElement));
361
+ if (nextItem) setTimeout(() => nextItem.ref.current.focus());
362
+ });
363
+ const itemRefCallback = import_react.useCallback((node, value, disabled) => {
364
+ const isFirstValidItem = !firstValidItemFoundRef.current && !disabled;
365
+ if (context.value !== void 0 && context.value === value || isFirstValidItem) {
366
+ setSelectedItem(node);
367
+ if (isFirstValidItem) firstValidItemFoundRef.current = true;
368
+ }
369
+ }, [context.value]);
370
+ const handleItemLeave = import_react.useCallback(() => content?.focus(), [content]);
371
+ const itemTextRefCallback = import_react.useCallback((node, value, disabled) => {
372
+ const isFirstValidItem = !firstValidItemFoundRef.current && !disabled;
373
+ if (context.value !== void 0 && context.value === value || isFirstValidItem) setSelectedItemText(node);
374
+ }, [context.value]);
375
+ const SelectPosition = position === "popper" ? SelectPopperPosition : SelectItemAlignedPosition;
376
+ const popperContentProps = SelectPosition === SelectPopperPosition ? {
377
+ side,
378
+ sideOffset,
379
+ align,
380
+ alignOffset,
381
+ arrowPadding,
382
+ collisionBoundary,
383
+ collisionPadding,
384
+ sticky,
385
+ hideWhenDetached,
386
+ avoidCollisions
387
+ } : {};
388
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(SelectContentProvider, {
389
+ scope: __scopeSelect,
390
+ content,
391
+ viewport,
392
+ onViewportChange: setViewport,
393
+ itemRefCallback,
394
+ selectedItem,
395
+ onItemLeave: handleItemLeave,
396
+ itemTextRefCallback,
397
+ focusSelectedItem,
398
+ selectedItemText,
399
+ position,
400
+ isPositioned,
401
+ searchRef,
402
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(ReactRemoveScroll, {
403
+ as: Slot,
404
+ allowPinchZoom: true,
405
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(FocusScope, {
406
+ asChild: true,
407
+ trapped: context.open,
408
+ onMountAutoFocus: (event) => {
409
+ event.preventDefault();
410
+ },
411
+ onUnmountAutoFocus: composeEventHandlers(onCloseAutoFocus, (event) => {
412
+ context.trigger?.focus({ preventScroll: true });
413
+ event.preventDefault();
414
+ }),
415
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(DismissableLayer, {
416
+ asChild: true,
417
+ disableOutsidePointerEvents: true,
418
+ onEscapeKeyDown,
419
+ onPointerDownOutside,
420
+ onFocusOutside: (event) => event.preventDefault(),
421
+ onDismiss: () => context.onOpenChange(false),
422
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(SelectPosition, {
423
+ role: "listbox",
424
+ id: context.contentId,
425
+ "data-state": context.open ? "open" : "closed",
426
+ dir: context.dir,
427
+ onContextMenu: (event) => event.preventDefault(),
428
+ ...contentProps,
429
+ ...popperContentProps,
430
+ onPlaced: () => setIsPositioned(true),
431
+ ref: composedRefs,
432
+ style: {
433
+ display: "flex",
434
+ flexDirection: "column",
435
+ outline: "none",
436
+ ...contentProps.style
437
+ },
438
+ onKeyDown: composeEventHandlers(contentProps.onKeyDown, (event) => {
439
+ const isModifierKey = event.ctrlKey || event.altKey || event.metaKey;
440
+ if (event.key === "Tab") event.preventDefault();
441
+ if (!isModifierKey && event.key.length === 1) handleTypeaheadSearch(event.key);
442
+ if ([
443
+ "ArrowUp",
444
+ "ArrowDown",
445
+ "Home",
446
+ "End"
447
+ ].includes(event.key)) {
448
+ let candidateNodes = getItems().filter((item) => !item.disabled).map((item) => item.ref.current);
449
+ if (["ArrowUp", "End"].includes(event.key)) candidateNodes = candidateNodes.slice().reverse();
450
+ if (["ArrowUp", "ArrowDown"].includes(event.key)) {
451
+ const currentElement = event.target;
452
+ const currentIndex = candidateNodes.indexOf(currentElement);
453
+ candidateNodes = candidateNodes.slice(currentIndex + 1);
454
+ }
455
+ setTimeout(() => focusFirst(candidateNodes));
456
+ event.preventDefault();
457
+ }
458
+ })
459
+ })
460
+ })
461
+ })
462
+ })
463
+ });
464
+ });
465
+ SelectContentImpl.displayName = CONTENT_IMPL_NAME;
466
+ var ITEM_ALIGNED_POSITION_NAME = "SelectItemAlignedPosition";
467
+ var SelectItemAlignedPosition = import_react.forwardRef((props, forwardedRef) => {
468
+ const { __scopeSelect, onPlaced, ...popperProps } = props;
469
+ const context = useSelectContext(CONTENT_NAME, __scopeSelect);
470
+ const contentContext = useSelectContentContext(CONTENT_NAME, __scopeSelect);
471
+ const [contentWrapper, setContentWrapper] = import_react.useState(null);
472
+ const [content, setContent] = import_react.useState(null);
473
+ const composedRefs = useComposedRefs(forwardedRef, (node) => setContent(node));
474
+ const getItems = useCollection(__scopeSelect);
475
+ const shouldExpandOnScrollRef = import_react.useRef(false);
476
+ const shouldRepositionRef = import_react.useRef(true);
477
+ const { viewport, selectedItem, selectedItemText, focusSelectedItem } = contentContext;
478
+ const position = import_react.useCallback(() => {
479
+ if (context.trigger && context.valueNode && contentWrapper && content && viewport && selectedItem && selectedItemText) {
480
+ const triggerRect = context.trigger.getBoundingClientRect();
481
+ const contentRect = content.getBoundingClientRect();
482
+ const valueNodeRect = context.valueNode.getBoundingClientRect();
483
+ const itemTextRect = selectedItemText.getBoundingClientRect();
484
+ if (context.dir !== "rtl") {
485
+ const itemTextOffset = itemTextRect.left - contentRect.left;
486
+ const left = valueNodeRect.left - itemTextOffset;
487
+ const leftDelta = triggerRect.left - left;
488
+ const minContentWidth = triggerRect.width + leftDelta;
489
+ const contentWidth = Math.max(minContentWidth, contentRect.width);
490
+ const rightEdge = window.innerWidth - CONTENT_MARGIN;
491
+ const clampedLeft = clamp(left, [CONTENT_MARGIN, Math.max(CONTENT_MARGIN, rightEdge - contentWidth)]);
492
+ contentWrapper.style.minWidth = minContentWidth + "px";
493
+ contentWrapper.style.left = clampedLeft + "px";
494
+ } else {
495
+ const itemTextOffset = contentRect.right - itemTextRect.right;
496
+ const right = window.innerWidth - valueNodeRect.right - itemTextOffset;
497
+ const rightDelta = window.innerWidth - triggerRect.right - right;
498
+ const minContentWidth = triggerRect.width + rightDelta;
499
+ const contentWidth = Math.max(minContentWidth, contentRect.width);
500
+ const leftEdge = window.innerWidth - CONTENT_MARGIN;
501
+ const clampedRight = clamp(right, [CONTENT_MARGIN, Math.max(CONTENT_MARGIN, leftEdge - contentWidth)]);
502
+ contentWrapper.style.minWidth = minContentWidth + "px";
503
+ contentWrapper.style.right = clampedRight + "px";
504
+ }
505
+ const items = getItems();
506
+ const availableHeight = window.innerHeight - CONTENT_MARGIN * 2;
507
+ const itemsHeight = viewport.scrollHeight;
508
+ const contentStyles = window.getComputedStyle(content);
509
+ const contentBorderTopWidth = parseInt(contentStyles.borderTopWidth, 10);
510
+ const contentPaddingTop = parseInt(contentStyles.paddingTop, 10);
511
+ const contentBorderBottomWidth = parseInt(contentStyles.borderBottomWidth, 10);
512
+ const contentPaddingBottom = parseInt(contentStyles.paddingBottom, 10);
513
+ const fullContentHeight = contentBorderTopWidth + contentPaddingTop + itemsHeight + contentPaddingBottom + contentBorderBottomWidth;
514
+ const minContentHeight = Math.min(selectedItem.offsetHeight * 5, fullContentHeight);
515
+ const viewportStyles = window.getComputedStyle(viewport);
516
+ const viewportPaddingTop = parseInt(viewportStyles.paddingTop, 10);
517
+ const viewportPaddingBottom = parseInt(viewportStyles.paddingBottom, 10);
518
+ const topEdgeToTriggerMiddle = triggerRect.top + triggerRect.height / 2 - CONTENT_MARGIN;
519
+ const triggerMiddleToBottomEdge = availableHeight - topEdgeToTriggerMiddle;
520
+ const selectedItemHalfHeight = selectedItem.offsetHeight / 2;
521
+ const itemOffsetMiddle = selectedItem.offsetTop + selectedItemHalfHeight;
522
+ const contentTopToItemMiddle = contentBorderTopWidth + contentPaddingTop + itemOffsetMiddle;
523
+ const itemMiddleToContentBottom = fullContentHeight - contentTopToItemMiddle;
524
+ if (contentTopToItemMiddle <= topEdgeToTriggerMiddle) {
525
+ const isLastItem = items.length > 0 && selectedItem === items[items.length - 1].ref.current;
526
+ contentWrapper.style.bottom = "0px";
527
+ const viewportOffsetBottom = content.clientHeight - viewport.offsetTop - viewport.offsetHeight;
528
+ const height = contentTopToItemMiddle + Math.max(triggerMiddleToBottomEdge, selectedItemHalfHeight + (isLastItem ? viewportPaddingBottom : 0) + viewportOffsetBottom + contentBorderBottomWidth);
529
+ contentWrapper.style.height = height + "px";
530
+ } else {
531
+ const isFirstItem = items.length > 0 && selectedItem === items[0].ref.current;
532
+ contentWrapper.style.top = "0px";
533
+ const height = Math.max(topEdgeToTriggerMiddle, contentBorderTopWidth + viewport.offsetTop + (isFirstItem ? viewportPaddingTop : 0) + selectedItemHalfHeight) + itemMiddleToContentBottom;
534
+ contentWrapper.style.height = height + "px";
535
+ viewport.scrollTop = contentTopToItemMiddle - topEdgeToTriggerMiddle + viewport.offsetTop;
536
+ }
537
+ contentWrapper.style.margin = `${CONTENT_MARGIN}px 0`;
538
+ contentWrapper.style.minHeight = minContentHeight + "px";
539
+ contentWrapper.style.maxHeight = availableHeight + "px";
540
+ onPlaced?.();
541
+ requestAnimationFrame(() => shouldExpandOnScrollRef.current = true);
542
+ }
543
+ }, [
544
+ getItems,
545
+ context.trigger,
546
+ context.valueNode,
547
+ contentWrapper,
548
+ content,
549
+ viewport,
550
+ selectedItem,
551
+ selectedItemText,
552
+ context.dir,
553
+ onPlaced
554
+ ]);
555
+ useLayoutEffect2(() => position(), [position]);
556
+ const [contentZIndex, setContentZIndex] = import_react.useState();
557
+ useLayoutEffect2(() => {
558
+ if (content) setContentZIndex(window.getComputedStyle(content).zIndex);
559
+ }, [content]);
560
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(SelectViewportProvider, {
561
+ scope: __scopeSelect,
562
+ contentWrapper,
563
+ shouldExpandOnScrollRef,
564
+ onScrollButtonChange: import_react.useCallback((node) => {
565
+ if (node && shouldRepositionRef.current === true) {
566
+ position();
567
+ focusSelectedItem?.();
568
+ shouldRepositionRef.current = false;
569
+ }
570
+ }, [position, focusSelectedItem]),
571
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
572
+ ref: setContentWrapper,
573
+ style: {
574
+ display: "flex",
575
+ flexDirection: "column",
576
+ position: "fixed",
577
+ zIndex: contentZIndex
578
+ },
579
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Primitive.div, {
580
+ ...popperProps,
581
+ ref: composedRefs,
582
+ style: {
583
+ boxSizing: "border-box",
584
+ maxHeight: "100%",
585
+ ...popperProps.style
586
+ }
587
+ })
588
+ })
589
+ });
590
+ });
591
+ SelectItemAlignedPosition.displayName = ITEM_ALIGNED_POSITION_NAME;
592
+ var POPPER_POSITION_NAME = "SelectPopperPosition";
593
+ var SelectPopperPosition = import_react.forwardRef((props, forwardedRef) => {
594
+ const { __scopeSelect, align = "start", collisionPadding = CONTENT_MARGIN, ...popperProps } = props;
595
+ const popperScope = usePopperScope(__scopeSelect);
596
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Content, {
597
+ ...popperScope,
598
+ ...popperProps,
599
+ ref: forwardedRef,
600
+ align,
601
+ collisionPadding,
602
+ style: {
603
+ boxSizing: "border-box",
604
+ ...popperProps.style,
605
+ "--radix-select-content-transform-origin": "var(--radix-popper-transform-origin)",
606
+ "--radix-select-content-available-width": "var(--radix-popper-available-width)",
607
+ "--radix-select-content-available-height": "var(--radix-popper-available-height)",
608
+ "--radix-select-trigger-width": "var(--radix-popper-anchor-width)",
609
+ "--radix-select-trigger-height": "var(--radix-popper-anchor-height)"
610
+ }
611
+ });
612
+ });
613
+ SelectPopperPosition.displayName = POPPER_POSITION_NAME;
614
+ var [SelectViewportProvider, useSelectViewportContext] = createSelectContext(CONTENT_NAME, {});
615
+ var VIEWPORT_NAME = "SelectViewport";
616
+ var SelectViewport = import_react.forwardRef((props, forwardedRef) => {
617
+ const { __scopeSelect, nonce, ...viewportProps } = props;
618
+ const contentContext = useSelectContentContext(VIEWPORT_NAME, __scopeSelect);
619
+ const viewportContext = useSelectViewportContext(VIEWPORT_NAME, __scopeSelect);
620
+ const composedRefs = useComposedRefs(forwardedRef, contentContext.onViewportChange);
621
+ const prevScrollTopRef = import_react.useRef(0);
622
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)("style", {
623
+ dangerouslySetInnerHTML: { __html: `[data-radix-select-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-select-viewport]::-webkit-scrollbar{display:none}` },
624
+ nonce
625
+ }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Collection.Slot, {
626
+ scope: __scopeSelect,
627
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Primitive.div, {
628
+ "data-radix-select-viewport": "",
629
+ role: "presentation",
630
+ ...viewportProps,
631
+ ref: composedRefs,
632
+ style: {
633
+ position: "relative",
634
+ flex: 1,
635
+ overflow: "hidden auto",
636
+ ...viewportProps.style
637
+ },
638
+ onScroll: composeEventHandlers(viewportProps.onScroll, (event) => {
639
+ const viewport = event.currentTarget;
640
+ const { contentWrapper, shouldExpandOnScrollRef } = viewportContext;
641
+ if (shouldExpandOnScrollRef?.current && contentWrapper) {
642
+ const scrolledBy = Math.abs(prevScrollTopRef.current - viewport.scrollTop);
643
+ if (scrolledBy > 0) {
644
+ const availableHeight = window.innerHeight - CONTENT_MARGIN * 2;
645
+ const cssMinHeight = parseFloat(contentWrapper.style.minHeight);
646
+ const cssHeight = parseFloat(contentWrapper.style.height);
647
+ const prevHeight = Math.max(cssMinHeight, cssHeight);
648
+ if (prevHeight < availableHeight) {
649
+ const nextHeight = prevHeight + scrolledBy;
650
+ const clampedNextHeight = Math.min(availableHeight, nextHeight);
651
+ const heightDiff = nextHeight - clampedNextHeight;
652
+ contentWrapper.style.height = clampedNextHeight + "px";
653
+ if (contentWrapper.style.bottom === "0px") {
654
+ viewport.scrollTop = heightDiff > 0 ? heightDiff : 0;
655
+ contentWrapper.style.justifyContent = "flex-end";
656
+ }
657
+ }
658
+ }
659
+ }
660
+ prevScrollTopRef.current = viewport.scrollTop;
661
+ })
662
+ })
663
+ })] });
664
+ });
665
+ SelectViewport.displayName = VIEWPORT_NAME;
666
+ var GROUP_NAME = "SelectGroup";
667
+ var [SelectGroupContextProvider, useSelectGroupContext] = createSelectContext(GROUP_NAME);
668
+ var SelectGroup = import_react.forwardRef((props, forwardedRef) => {
669
+ const { __scopeSelect, ...groupProps } = props;
670
+ const groupId = useId();
671
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(SelectGroupContextProvider, {
672
+ scope: __scopeSelect,
673
+ id: groupId,
674
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Primitive.div, {
675
+ role: "group",
676
+ "aria-labelledby": groupId,
677
+ ...groupProps,
678
+ ref: forwardedRef
679
+ })
680
+ });
681
+ });
682
+ SelectGroup.displayName = GROUP_NAME;
683
+ var LABEL_NAME = "SelectLabel";
684
+ var SelectLabel = import_react.forwardRef((props, forwardedRef) => {
685
+ const { __scopeSelect, ...labelProps } = props;
686
+ const groupContext = useSelectGroupContext(LABEL_NAME, __scopeSelect);
687
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Primitive.div, {
688
+ id: groupContext.id,
689
+ ...labelProps,
690
+ ref: forwardedRef
691
+ });
692
+ });
693
+ SelectLabel.displayName = LABEL_NAME;
694
+ var ITEM_NAME = "SelectItem";
695
+ var [SelectItemContextProvider, useSelectItemContext] = createSelectContext(ITEM_NAME);
696
+ var SelectItem = import_react.forwardRef((props, forwardedRef) => {
697
+ const { __scopeSelect, value, disabled = false, textValue: textValueProp, ...itemProps } = props;
698
+ const context = useSelectContext(ITEM_NAME, __scopeSelect);
699
+ const contentContext = useSelectContentContext(ITEM_NAME, __scopeSelect);
700
+ const isSelected = context.value === value;
701
+ const [textValue, setTextValue] = import_react.useState(textValueProp ?? "");
702
+ const [isFocused, setIsFocused] = import_react.useState(false);
703
+ const composedRefs = useComposedRefs(forwardedRef, (node) => contentContext.itemRefCallback?.(node, value, disabled));
704
+ const textId = useId();
705
+ const pointerTypeRef = import_react.useRef("touch");
706
+ const handleSelect = () => {
707
+ if (!disabled) {
708
+ context.onValueChange(value);
709
+ context.onOpenChange(false);
710
+ }
711
+ };
712
+ if (value === "") throw new Error("A <Select.Item /> must have a value prop that is not an empty string. This is because the Select value can be set to an empty string to clear the selection and show the placeholder.");
713
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(SelectItemContextProvider, {
714
+ scope: __scopeSelect,
715
+ value,
716
+ disabled,
717
+ textId,
718
+ isSelected,
719
+ onItemTextChange: import_react.useCallback((node) => {
720
+ setTextValue((prevTextValue) => prevTextValue || (node?.textContent ?? "").trim());
721
+ }, []),
722
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Collection.ItemSlot, {
723
+ scope: __scopeSelect,
724
+ value,
725
+ disabled,
726
+ textValue,
727
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Primitive.div, {
728
+ role: "option",
729
+ "aria-labelledby": textId,
730
+ "data-highlighted": isFocused ? "" : void 0,
731
+ "aria-selected": isSelected && isFocused,
732
+ "data-state": isSelected ? "checked" : "unchecked",
733
+ "aria-disabled": disabled || void 0,
734
+ "data-disabled": disabled ? "" : void 0,
735
+ tabIndex: disabled ? void 0 : -1,
736
+ ...itemProps,
737
+ ref: composedRefs,
738
+ onFocus: composeEventHandlers(itemProps.onFocus, () => setIsFocused(true)),
739
+ onBlur: composeEventHandlers(itemProps.onBlur, () => setIsFocused(false)),
740
+ onClick: composeEventHandlers(itemProps.onClick, () => {
741
+ if (pointerTypeRef.current !== "mouse") handleSelect();
742
+ }),
743
+ onPointerUp: composeEventHandlers(itemProps.onPointerUp, () => {
744
+ if (pointerTypeRef.current === "mouse") handleSelect();
745
+ }),
746
+ onPointerDown: composeEventHandlers(itemProps.onPointerDown, (event) => {
747
+ pointerTypeRef.current = event.pointerType;
748
+ }),
749
+ onPointerMove: composeEventHandlers(itemProps.onPointerMove, (event) => {
750
+ pointerTypeRef.current = event.pointerType;
751
+ if (disabled) contentContext.onItemLeave?.();
752
+ else if (pointerTypeRef.current === "mouse") event.currentTarget.focus({ preventScroll: true });
753
+ }),
754
+ onPointerLeave: composeEventHandlers(itemProps.onPointerLeave, (event) => {
755
+ if (event.currentTarget === document.activeElement) contentContext.onItemLeave?.();
756
+ }),
757
+ onKeyDown: composeEventHandlers(itemProps.onKeyDown, (event) => {
758
+ if (contentContext.searchRef?.current !== "" && event.key === " ") return;
759
+ if (SELECTION_KEYS.includes(event.key)) handleSelect();
760
+ if (event.key === " ") event.preventDefault();
761
+ })
762
+ })
763
+ })
764
+ });
765
+ });
766
+ SelectItem.displayName = ITEM_NAME;
767
+ var ITEM_TEXT_NAME = "SelectItemText";
768
+ var SelectItemText = import_react.forwardRef((props, forwardedRef) => {
769
+ const { __scopeSelect, className, style, ...itemTextProps } = props;
770
+ const context = useSelectContext(ITEM_TEXT_NAME, __scopeSelect);
771
+ const contentContext = useSelectContentContext(ITEM_TEXT_NAME, __scopeSelect);
772
+ const itemContext = useSelectItemContext(ITEM_TEXT_NAME, __scopeSelect);
773
+ const nativeOptionsContext = useSelectNativeOptionsContext(ITEM_TEXT_NAME, __scopeSelect);
774
+ const [itemTextNode, setItemTextNode] = import_react.useState(null);
775
+ const composedRefs = useComposedRefs(forwardedRef, (node) => setItemTextNode(node), itemContext.onItemTextChange, (node) => contentContext.itemTextRefCallback?.(node, itemContext.value, itemContext.disabled));
776
+ const textContent = itemTextNode?.textContent;
777
+ const nativeOption = import_react.useMemo(() => /* @__PURE__ */ (0, import_jsx_runtime.jsx)("option", {
778
+ value: itemContext.value,
779
+ disabled: itemContext.disabled,
780
+ children: textContent
781
+ }, itemContext.value), [
782
+ itemContext.disabled,
783
+ itemContext.value,
784
+ textContent
785
+ ]);
786
+ const { onNativeOptionAdd, onNativeOptionRemove } = nativeOptionsContext;
787
+ useLayoutEffect2(() => {
788
+ onNativeOptionAdd(nativeOption);
789
+ return () => onNativeOptionRemove(nativeOption);
790
+ }, [
791
+ onNativeOptionAdd,
792
+ onNativeOptionRemove,
793
+ nativeOption
794
+ ]);
795
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Primitive.span, {
796
+ id: itemContext.textId,
797
+ ...itemTextProps,
798
+ ref: composedRefs
799
+ }), itemContext.isSelected && context.valueNode && !context.valueNodeHasChildren ? import_react_dom.createPortal(itemTextProps.children, context.valueNode) : null] });
800
+ });
801
+ SelectItemText.displayName = ITEM_TEXT_NAME;
802
+ var ITEM_INDICATOR_NAME = "SelectItemIndicator";
803
+ var SelectItemIndicator = import_react.forwardRef((props, forwardedRef) => {
804
+ const { __scopeSelect, ...itemIndicatorProps } = props;
805
+ return useSelectItemContext(ITEM_INDICATOR_NAME, __scopeSelect).isSelected ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Primitive.span, {
806
+ "aria-hidden": true,
807
+ ...itemIndicatorProps,
808
+ ref: forwardedRef
809
+ }) : null;
810
+ });
811
+ SelectItemIndicator.displayName = ITEM_INDICATOR_NAME;
812
+ var SCROLL_UP_BUTTON_NAME = "SelectScrollUpButton";
813
+ var SelectScrollUpButton = import_react.forwardRef((props, forwardedRef) => {
814
+ const contentContext = useSelectContentContext(SCROLL_UP_BUTTON_NAME, props.__scopeSelect);
815
+ const viewportContext = useSelectViewportContext(SCROLL_UP_BUTTON_NAME, props.__scopeSelect);
816
+ const [canScrollUp, setCanScrollUp] = import_react.useState(false);
817
+ const composedRefs = useComposedRefs(forwardedRef, viewportContext.onScrollButtonChange);
818
+ useLayoutEffect2(() => {
819
+ if (contentContext.viewport && contentContext.isPositioned) {
820
+ let handleScroll2 = function() {
821
+ setCanScrollUp(viewport.scrollTop > 0);
822
+ };
823
+ const viewport = contentContext.viewport;
824
+ handleScroll2();
825
+ viewport.addEventListener("scroll", handleScroll2);
826
+ return () => viewport.removeEventListener("scroll", handleScroll2);
827
+ }
828
+ }, [contentContext.viewport, contentContext.isPositioned]);
829
+ return canScrollUp ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(SelectScrollButtonImpl, {
830
+ ...props,
831
+ ref: composedRefs,
832
+ onAutoScroll: () => {
833
+ const { viewport, selectedItem } = contentContext;
834
+ if (viewport && selectedItem) viewport.scrollTop = viewport.scrollTop - selectedItem.offsetHeight;
835
+ }
836
+ }) : null;
837
+ });
838
+ SelectScrollUpButton.displayName = SCROLL_UP_BUTTON_NAME;
839
+ var SCROLL_DOWN_BUTTON_NAME = "SelectScrollDownButton";
840
+ var SelectScrollDownButton = import_react.forwardRef((props, forwardedRef) => {
841
+ const contentContext = useSelectContentContext(SCROLL_DOWN_BUTTON_NAME, props.__scopeSelect);
842
+ const viewportContext = useSelectViewportContext(SCROLL_DOWN_BUTTON_NAME, props.__scopeSelect);
843
+ const [canScrollDown, setCanScrollDown] = import_react.useState(false);
844
+ const composedRefs = useComposedRefs(forwardedRef, viewportContext.onScrollButtonChange);
845
+ useLayoutEffect2(() => {
846
+ if (contentContext.viewport && contentContext.isPositioned) {
847
+ let handleScroll2 = function() {
848
+ const maxScroll = viewport.scrollHeight - viewport.clientHeight;
849
+ setCanScrollDown(Math.ceil(viewport.scrollTop) < maxScroll);
850
+ };
851
+ const viewport = contentContext.viewport;
852
+ handleScroll2();
853
+ viewport.addEventListener("scroll", handleScroll2);
854
+ return () => viewport.removeEventListener("scroll", handleScroll2);
855
+ }
856
+ }, [contentContext.viewport, contentContext.isPositioned]);
857
+ return canScrollDown ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(SelectScrollButtonImpl, {
858
+ ...props,
859
+ ref: composedRefs,
860
+ onAutoScroll: () => {
861
+ const { viewport, selectedItem } = contentContext;
862
+ if (viewport && selectedItem) viewport.scrollTop = viewport.scrollTop + selectedItem.offsetHeight;
863
+ }
864
+ }) : null;
865
+ });
866
+ SelectScrollDownButton.displayName = SCROLL_DOWN_BUTTON_NAME;
867
+ var SelectScrollButtonImpl = import_react.forwardRef((props, forwardedRef) => {
868
+ const { __scopeSelect, onAutoScroll, ...scrollIndicatorProps } = props;
869
+ const contentContext = useSelectContentContext("SelectScrollButton", __scopeSelect);
870
+ const autoScrollTimerRef = import_react.useRef(null);
871
+ const getItems = useCollection(__scopeSelect);
872
+ const clearAutoScrollTimer = import_react.useCallback(() => {
873
+ if (autoScrollTimerRef.current !== null) {
874
+ window.clearInterval(autoScrollTimerRef.current);
875
+ autoScrollTimerRef.current = null;
876
+ }
877
+ }, []);
878
+ import_react.useEffect(() => {
879
+ return () => clearAutoScrollTimer();
880
+ }, [clearAutoScrollTimer]);
881
+ useLayoutEffect2(() => {
882
+ getItems().find((item) => item.ref.current === document.activeElement)?.ref.current?.scrollIntoView({ block: "nearest" });
883
+ }, [getItems]);
884
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Primitive.div, {
885
+ "aria-hidden": true,
886
+ ...scrollIndicatorProps,
887
+ ref: forwardedRef,
888
+ style: {
889
+ flexShrink: 0,
890
+ ...scrollIndicatorProps.style
891
+ },
892
+ onPointerDown: composeEventHandlers(scrollIndicatorProps.onPointerDown, () => {
893
+ if (autoScrollTimerRef.current === null) autoScrollTimerRef.current = window.setInterval(onAutoScroll, 50);
894
+ }),
895
+ onPointerMove: composeEventHandlers(scrollIndicatorProps.onPointerMove, () => {
896
+ contentContext.onItemLeave?.();
897
+ if (autoScrollTimerRef.current === null) autoScrollTimerRef.current = window.setInterval(onAutoScroll, 50);
898
+ }),
899
+ onPointerLeave: composeEventHandlers(scrollIndicatorProps.onPointerLeave, () => {
900
+ clearAutoScrollTimer();
901
+ })
902
+ });
903
+ });
904
+ var SEPARATOR_NAME = "SelectSeparator";
905
+ var SelectSeparator = import_react.forwardRef((props, forwardedRef) => {
906
+ const { __scopeSelect, ...separatorProps } = props;
907
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Primitive.div, {
908
+ "aria-hidden": true,
909
+ ...separatorProps,
910
+ ref: forwardedRef
911
+ });
912
+ });
913
+ SelectSeparator.displayName = SEPARATOR_NAME;
914
+ var ARROW_NAME = "SelectArrow";
915
+ var SelectArrow = import_react.forwardRef((props, forwardedRef) => {
916
+ const { __scopeSelect, ...arrowProps } = props;
917
+ const popperScope = usePopperScope(__scopeSelect);
918
+ const context = useSelectContext(ARROW_NAME, __scopeSelect);
919
+ const contentContext = useSelectContentContext(ARROW_NAME, __scopeSelect);
920
+ return context.open && contentContext.position === "popper" ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Arrow, {
921
+ ...popperScope,
922
+ ...arrowProps,
923
+ ref: forwardedRef
924
+ }) : null;
925
+ });
926
+ SelectArrow.displayName = ARROW_NAME;
927
+ var BUBBLE_INPUT_NAME = "SelectBubbleInput";
928
+ var SelectBubbleInput = import_react.forwardRef(({ __scopeSelect, value, ...props }, forwardedRef) => {
929
+ const ref = import_react.useRef(null);
930
+ const composedRefs = useComposedRefs(forwardedRef, ref);
931
+ const prevValue = usePrevious(value);
932
+ import_react.useEffect(() => {
933
+ const select = ref.current;
934
+ if (!select) return;
935
+ const selectProto = window.HTMLSelectElement.prototype;
936
+ const setValue = Object.getOwnPropertyDescriptor(selectProto, "value").set;
937
+ if (prevValue !== value && setValue) {
938
+ const event = new Event("change", { bubbles: true });
939
+ setValue.call(select, value);
940
+ select.dispatchEvent(event);
941
+ }
942
+ }, [prevValue, value]);
943
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Primitive.select, {
944
+ ...props,
945
+ style: {
946
+ ...VISUALLY_HIDDEN_STYLES,
947
+ ...props.style
948
+ },
949
+ ref: composedRefs,
950
+ defaultValue: value
951
+ });
952
+ });
953
+ SelectBubbleInput.displayName = BUBBLE_INPUT_NAME;
954
+ function shouldShowPlaceholder(value) {
955
+ return value === "" || value === void 0;
956
+ }
957
+ function useTypeaheadSearch(onSearchChange) {
958
+ const handleSearchChange = useCallbackRef(onSearchChange);
959
+ const searchRef = import_react.useRef("");
960
+ const timerRef = import_react.useRef(0);
961
+ const handleTypeaheadSearch = import_react.useCallback((key) => {
962
+ const search = searchRef.current + key;
963
+ handleSearchChange(search);
964
+ (function updateSearch(value) {
965
+ searchRef.current = value;
966
+ window.clearTimeout(timerRef.current);
967
+ if (value !== "") timerRef.current = window.setTimeout(() => updateSearch(""), 1e3);
968
+ })(search);
969
+ }, [handleSearchChange]);
970
+ const resetTypeahead = import_react.useCallback(() => {
971
+ searchRef.current = "";
972
+ window.clearTimeout(timerRef.current);
973
+ }, []);
974
+ import_react.useEffect(() => {
975
+ return () => window.clearTimeout(timerRef.current);
976
+ }, []);
977
+ return [
978
+ searchRef,
979
+ handleTypeaheadSearch,
980
+ resetTypeahead
981
+ ];
982
+ }
983
+ function findNextItem(items, search, currentItem) {
984
+ const normalizedSearch = search.length > 1 && Array.from(search).every((char) => char === search[0]) ? search[0] : search;
985
+ const currentItemIndex = currentItem ? items.indexOf(currentItem) : -1;
986
+ let wrappedItems = wrapArray(items, Math.max(currentItemIndex, 0));
987
+ if (normalizedSearch.length === 1) wrappedItems = wrappedItems.filter((v) => v !== currentItem);
988
+ const nextItem = wrappedItems.find((item) => item.textValue.toLowerCase().startsWith(normalizedSearch.toLowerCase()));
989
+ return nextItem !== currentItem ? nextItem : void 0;
990
+ }
991
+ function wrapArray(array, startIndex) {
992
+ return array.map((_, index) => array[(startIndex + index) % array.length]);
993
+ }
994
+ var Root2 = Select;
995
+ var Trigger = SelectTrigger;
996
+ var Value = SelectValue;
997
+ var Icon = SelectIcon;
998
+ var Portal = SelectPortal;
999
+ var Content2 = SelectContent;
1000
+ var Viewport = SelectViewport;
1001
+ var Item = SelectItem;
1002
+ var ItemText = SelectItemText;
1003
+ var ItemIndicator = SelectItemIndicator;
1004
+ var ScrollUpButton = SelectScrollUpButton;
1005
+ var ScrollDownButton = SelectScrollDownButton;
1006
+ //#endregion
1007
+ export { ItemText as a, ScrollDownButton as c, Value as d, Viewport as f, ItemIndicator as i, ScrollUpButton as l, Root as m, Icon as n, Portal as o, usePrevious as p, Item as r, Root2 as s, Content2 as t, Trigger as u };