@shepai/cli 1.167.0 → 1.168.0-pr509.b1dd877

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 (479) hide show
  1. package/apis/json-schema/Feature.yaml +10 -0
  2. package/apis/json-schema/SkillInjectionConfig.yaml +17 -0
  3. package/apis/json-schema/SkillSource.yaml +21 -0
  4. package/apis/json-schema/SkillSourceType.yaml +7 -0
  5. package/apis/json-schema/WorkflowConfig.yaml +3 -0
  6. package/dist/packages/core/src/application/ports/output/agents/interactive-agent-executor.interface.d.ts +38 -2
  7. package/dist/packages/core/src/application/ports/output/agents/interactive-agent-executor.interface.d.ts.map +1 -1
  8. package/dist/packages/core/src/application/ports/output/services/index.d.ts +1 -0
  9. package/dist/packages/core/src/application/ports/output/services/index.d.ts.map +1 -1
  10. package/dist/packages/core/src/application/ports/output/services/interactive-session-service.interface.d.ts +16 -1
  11. package/dist/packages/core/src/application/ports/output/services/interactive-session-service.interface.d.ts.map +1 -1
  12. package/dist/packages/core/src/application/ports/output/services/skill-injector.interface.d.ts +39 -0
  13. package/dist/packages/core/src/application/ports/output/services/skill-injector.interface.d.ts.map +1 -0
  14. package/dist/packages/core/src/application/ports/output/services/skill-injector.interface.js +8 -0
  15. package/dist/packages/core/src/application/use-cases/features/adopt-branch.use-case.d.ts.map +1 -1
  16. package/dist/packages/core/src/application/use-cases/features/adopt-branch.use-case.js +1 -0
  17. package/dist/packages/core/src/application/use-cases/features/create/create-feature.use-case.d.ts +3 -1
  18. package/dist/packages/core/src/application/use-cases/features/create/create-feature.use-case.d.ts.map +1 -1
  19. package/dist/packages/core/src/application/use-cases/features/create/create-feature.use-case.js +22 -3
  20. package/dist/packages/core/src/application/use-cases/features/create/types.d.ts +2 -0
  21. package/dist/packages/core/src/application/use-cases/features/create/types.d.ts.map +1 -1
  22. package/dist/packages/core/src/application/use-cases/interactive/index.d.ts +2 -0
  23. package/dist/packages/core/src/application/use-cases/interactive/index.d.ts.map +1 -1
  24. package/dist/packages/core/src/application/use-cases/interactive/index.js +1 -0
  25. package/dist/packages/core/src/application/use-cases/interactive/respond-to-interaction.use-case.d.ts +17 -0
  26. package/dist/packages/core/src/application/use-cases/interactive/respond-to-interaction.use-case.d.ts.map +1 -0
  27. package/dist/packages/core/src/application/use-cases/interactive/respond-to-interaction.use-case.js +34 -0
  28. package/dist/packages/core/src/application/use-cases/repositories/delete-repository.use-case.d.ts.map +1 -1
  29. package/dist/packages/core/src/application/use-cases/repositories/delete-repository.use-case.js +6 -2
  30. package/dist/packages/core/src/domain/factories/settings-defaults.factory.d.ts.map +1 -1
  31. package/dist/packages/core/src/domain/factories/settings-defaults.factory.js +55 -1
  32. package/dist/packages/core/src/domain/generated/output.d.ts +50 -0
  33. package/dist/packages/core/src/domain/generated/output.d.ts.map +1 -1
  34. package/dist/packages/core/src/domain/generated/output.js +5 -0
  35. package/dist/packages/core/src/infrastructure/di/container.d.ts.map +1 -1
  36. package/dist/packages/core/src/infrastructure/di/container.js +7 -0
  37. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/feature.mapper.d.ts +2 -0
  38. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/feature.mapper.d.ts.map +1 -1
  39. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/feature.mapper.js +6 -0
  40. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/settings.mapper.d.ts +2 -0
  41. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/settings.mapper.d.ts.map +1 -1
  42. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/settings.mapper.js +27 -0
  43. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/053-add-skill-injection-config.d.ts +15 -0
  44. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/053-add-skill-injection-config.d.ts.map +1 -0
  45. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/053-add-skill-injection-config.js +23 -0
  46. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/054-add-injected-skills-to-features.d.ts +11 -0
  47. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/054-add-injected-skills-to-features.d.ts.map +1 -0
  48. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/054-add-injected-skills-to-features.js +19 -0
  49. package/dist/packages/core/src/infrastructure/repositories/sqlite-feature.repository.d.ts.map +1 -1
  50. package/dist/packages/core/src/infrastructure/repositories/sqlite-feature.repository.js +8 -4
  51. package/dist/packages/core/src/infrastructure/services/agents/common/executors/claude-code-interactive-executor.service.d.ts +3 -0
  52. package/dist/packages/core/src/infrastructure/services/agents/common/executors/claude-code-interactive-executor.service.d.ts.map +1 -1
  53. package/dist/packages/core/src/infrastructure/services/agents/common/executors/claude-code-interactive-executor.service.js +59 -6
  54. package/dist/packages/core/src/infrastructure/services/interactive/interactive-session.service.d.ts +7 -0
  55. package/dist/packages/core/src/infrastructure/services/interactive/interactive-session.service.d.ts.map +1 -1
  56. package/dist/packages/core/src/infrastructure/services/interactive/interactive-session.service.js +101 -1
  57. package/dist/packages/core/src/infrastructure/services/skill-injector.service.d.ts +26 -0
  58. package/dist/packages/core/src/infrastructure/services/skill-injector.service.d.ts.map +1 -0
  59. package/dist/packages/core/src/infrastructure/services/skill-injector.service.js +201 -0
  60. package/dist/src/presentation/cli/commands/feat/new.command.d.ts.map +1 -1
  61. package/dist/src/presentation/cli/commands/feat/new.command.js +3 -0
  62. package/dist/src/presentation/web/app/actions/add-injected-skill.d.ts +7 -0
  63. package/dist/src/presentation/web/app/actions/add-injected-skill.d.ts.map +1 -0
  64. package/dist/src/presentation/web/app/actions/add-injected-skill.js +34 -0
  65. package/dist/src/presentation/web/app/actions/create-feature.d.ts +2 -0
  66. package/dist/src/presentation/web/app/actions/create-feature.d.ts.map +1 -1
  67. package/dist/src/presentation/web/app/actions/create-feature.js +3 -1
  68. package/dist/src/presentation/web/app/actions/get-workflow-defaults.d.ts +1 -0
  69. package/dist/src/presentation/web/app/actions/get-workflow-defaults.d.ts.map +1 -1
  70. package/dist/src/presentation/web/app/actions/get-workflow-defaults.js +1 -0
  71. package/dist/src/presentation/web/app/actions/remove-injected-skill.d.ts +6 -0
  72. package/dist/src/presentation/web/app/actions/remove-injected-skill.d.ts.map +1 -0
  73. package/dist/src/presentation/web/app/actions/remove-injected-skill.js +35 -0
  74. package/dist/src/presentation/web/app/api/interactive/chat/[featureId]/respond/route.d.ts +19 -0
  75. package/dist/src/presentation/web/app/api/interactive/chat/[featureId]/respond/route.d.ts.map +1 -0
  76. package/dist/src/presentation/web/app/api/interactive/chat/[featureId]/respond/route.js +33 -0
  77. package/dist/src/presentation/web/app/api/interactive/chat/[featureId]/stream/route.d.ts.map +1 -1
  78. package/dist/src/presentation/web/app/api/interactive/chat/[featureId]/stream/route.js +7 -0
  79. package/dist/src/presentation/web/app/build-feature-node-data.d.ts.map +1 -1
  80. package/dist/src/presentation/web/app/build-feature-node-data.js +2 -0
  81. package/dist/src/presentation/web/app/layout.d.ts +0 -1
  82. package/dist/src/presentation/web/app/layout.d.ts.map +1 -1
  83. package/dist/src/presentation/web/app/layout.js +0 -1
  84. package/dist/src/presentation/web/app/skills/page.d.ts.map +1 -1
  85. package/dist/src/presentation/web/app/skills/page.js +6 -1
  86. package/dist/src/presentation/web/components/assistant-ui/thread.d.ts +3 -2
  87. package/dist/src/presentation/web/components/assistant-ui/thread.d.ts.map +1 -1
  88. package/dist/src/presentation/web/components/assistant-ui/thread.js +26 -3
  89. package/dist/src/presentation/web/components/common/feature-create-drawer/feature-create-drawer.d.ts +2 -0
  90. package/dist/src/presentation/web/components/common/feature-create-drawer/feature-create-drawer.d.ts.map +1 -1
  91. package/dist/src/presentation/web/components/common/feature-create-drawer/feature-create-drawer.js +6 -2
  92. package/dist/src/presentation/web/components/common/feature-create-drawer/feature-create-drawer.stories.d.ts.map +1 -1
  93. package/dist/src/presentation/web/components/common/feature-create-drawer/feature-create-drawer.stories.js +1 -0
  94. package/dist/src/presentation/web/components/common/feature-drawer-tabs/overview-tab.d.ts.map +1 -1
  95. package/dist/src/presentation/web/components/common/feature-drawer-tabs/overview-tab.js +10 -4
  96. package/dist/src/presentation/web/components/common/feature-drawer-tabs/overview-tab.stories.d.ts +2 -0
  97. package/dist/src/presentation/web/components/common/feature-drawer-tabs/overview-tab.stories.d.ts.map +1 -1
  98. package/dist/src/presentation/web/components/common/feature-drawer-tabs/overview-tab.stories.js +12 -0
  99. package/dist/src/presentation/web/components/common/feature-node/feature-node-state-config.d.ts +4 -0
  100. package/dist/src/presentation/web/components/common/feature-node/feature-node-state-config.d.ts.map +1 -1
  101. package/dist/src/presentation/web/components/common/react-file-manager-dialog/react-file-manager-dialog.d.ts.map +1 -1
  102. package/dist/src/presentation/web/components/common/react-file-manager-dialog/react-file-manager-dialog.js +68 -56
  103. package/dist/src/presentation/web/components/features/chat/ChatDotIndicator.d.ts +1 -0
  104. package/dist/src/presentation/web/components/features/chat/ChatDotIndicator.d.ts.map +1 -1
  105. package/dist/src/presentation/web/components/features/chat/ChatDotIndicator.js +7 -1
  106. package/dist/src/presentation/web/components/features/chat/ChatDotIndicator.stories.d.ts +1 -0
  107. package/dist/src/presentation/web/components/features/chat/ChatDotIndicator.stories.d.ts.map +1 -1
  108. package/dist/src/presentation/web/components/features/chat/ChatDotIndicator.stories.js +3 -0
  109. package/dist/src/presentation/web/components/features/chat/ChatSheet.d.ts.map +1 -1
  110. package/dist/src/presentation/web/components/features/chat/ChatSheet.js +3 -1
  111. package/dist/src/presentation/web/components/features/chat/ChatTab.d.ts.map +1 -1
  112. package/dist/src/presentation/web/components/features/chat/ChatTab.js +3 -2
  113. package/dist/src/presentation/web/components/features/chat/InteractionBubble.d.ts +33 -0
  114. package/dist/src/presentation/web/components/features/chat/InteractionBubble.d.ts.map +1 -0
  115. package/dist/src/presentation/web/components/features/chat/InteractionBubble.js +155 -0
  116. package/dist/src/presentation/web/components/features/chat/InteractionBubble.stories.d.ts +22 -0
  117. package/dist/src/presentation/web/components/features/chat/InteractionBubble.stories.d.ts.map +1 -0
  118. package/dist/src/presentation/web/components/features/chat/InteractionBubble.stories.js +107 -0
  119. package/dist/src/presentation/web/components/features/chat/useChatRuntime.d.ts +16 -0
  120. package/dist/src/presentation/web/components/features/chat/useChatRuntime.d.ts.map +1 -1
  121. package/dist/src/presentation/web/components/features/chat/useChatRuntime.js +62 -1
  122. package/dist/src/presentation/web/components/features/control-center/control-center-inner.d.ts.map +1 -1
  123. package/dist/src/presentation/web/components/features/control-center/control-center-inner.js +18 -3
  124. package/dist/src/presentation/web/components/features/control-center/use-control-center-state.d.ts +1 -0
  125. package/dist/src/presentation/web/components/features/control-center/use-control-center-state.d.ts.map +1 -1
  126. package/dist/src/presentation/web/components/features/control-center/use-control-center-state.js +1 -1
  127. package/dist/src/presentation/web/components/features/skills/add-skill-dialog.d.ts +10 -0
  128. package/dist/src/presentation/web/components/features/skills/add-skill-dialog.d.ts.map +1 -0
  129. package/dist/src/presentation/web/components/features/skills/add-skill-dialog.js +56 -0
  130. package/dist/src/presentation/web/components/features/skills/add-skill-dialog.stories.d.ts +16 -0
  131. package/dist/src/presentation/web/components/features/skills/add-skill-dialog.stories.d.ts.map +1 -0
  132. package/dist/src/presentation/web/components/features/skills/add-skill-dialog.stories.js +66 -0
  133. package/dist/src/presentation/web/components/features/skills/auto-injected-skills-section.d.ts +8 -0
  134. package/dist/src/presentation/web/components/features/skills/auto-injected-skills-section.d.ts.map +1 -0
  135. package/dist/src/presentation/web/components/features/skills/auto-injected-skills-section.js +42 -0
  136. package/dist/src/presentation/web/components/features/skills/auto-injected-skills-section.stories.d.ts +16 -0
  137. package/dist/src/presentation/web/components/features/skills/auto-injected-skills-section.stories.d.ts.map +1 -0
  138. package/dist/src/presentation/web/components/features/skills/auto-injected-skills-section.stories.js +69 -0
  139. package/dist/src/presentation/web/components/features/skills/skills-page-client.d.ts +3 -1
  140. package/dist/src/presentation/web/components/features/skills/skills-page-client.d.ts.map +1 -1
  141. package/dist/src/presentation/web/components/features/skills/skills-page-client.js +5 -3
  142. package/dist/src/presentation/web/components/features/skills/skills-page-client.stories.d.ts +1 -0
  143. package/dist/src/presentation/web/components/features/skills/skills-page-client.stories.d.ts.map +1 -1
  144. package/dist/src/presentation/web/components/features/skills/skills-page-client.stories.js +27 -0
  145. package/dist/src/presentation/web/hooks/use-graph-state.d.ts.map +1 -1
  146. package/dist/src/presentation/web/hooks/use-graph-state.js +16 -0
  147. package/dist/src/presentation/web/hooks/use-turn-statuses.d.ts +1 -1
  148. package/dist/src/presentation/web/hooks/use-turn-statuses.d.ts.map +1 -1
  149. package/dist/src/presentation/web/hooks/use-turn-statuses.js +1 -1
  150. package/dist/translations/ar/cli.json +2 -0
  151. package/dist/translations/ar/web.json +15 -11
  152. package/dist/translations/de/cli.json +2 -0
  153. package/dist/translations/de/web.json +35 -17
  154. package/dist/translations/en/cli.json +2 -0
  155. package/dist/translations/en/web.json +4 -0
  156. package/dist/translations/es/cli.json +2 -0
  157. package/dist/translations/es/web.json +16 -12
  158. package/dist/translations/fr/cli.json +2 -0
  159. package/dist/translations/fr/web.json +16 -12
  160. package/dist/translations/he/cli.json +2 -0
  161. package/dist/translations/he/web.json +16 -12
  162. package/dist/translations/pt/cli.json +2 -0
  163. package/dist/translations/pt/web.json +16 -12
  164. package/dist/translations/ru/cli.json +2 -0
  165. package/dist/translations/ru/web.json +16 -12
  166. package/dist/tsconfig.build.tsbuildinfo +1 -1
  167. package/package.json +1 -1
  168. package/web/.next/BUILD_ID +1 -1
  169. package/web/.next/app-path-routes-manifest.json +1 -0
  170. package/web/.next/build-manifest.json +7 -7
  171. package/web/.next/fallback-build-manifest.json +2 -2
  172. package/web/.next/prerender-manifest.json +3 -3
  173. package/web/.next/required-server-files.js +3 -3
  174. package/web/.next/required-server-files.json +3 -3
  175. package/web/.next/routes-manifest.json +8 -0
  176. package/web/.next/server/app/(dashboard)/@drawer/adopt/page/build-manifest.json +5 -5
  177. package/web/.next/server/app/(dashboard)/@drawer/adopt/page/react-loadable-manifest.json +1 -8
  178. package/web/.next/server/app/(dashboard)/@drawer/adopt/page/server-reference-manifest.json +29 -29
  179. package/web/.next/server/app/(dashboard)/@drawer/adopt/page.js +1 -1
  180. package/web/.next/server/app/(dashboard)/@drawer/adopt/page.js.nft.json +1 -1
  181. package/web/.next/server/app/(dashboard)/@drawer/adopt/page_client-reference-manifest.js +1 -1
  182. package/web/.next/server/app/(dashboard)/@drawer/chat/page/build-manifest.json +5 -5
  183. package/web/.next/server/app/(dashboard)/@drawer/chat/page/react-loadable-manifest.json +1 -8
  184. package/web/.next/server/app/(dashboard)/@drawer/chat/page/server-reference-manifest.json +27 -27
  185. package/web/.next/server/app/(dashboard)/@drawer/chat/page.js +1 -1
  186. package/web/.next/server/app/(dashboard)/@drawer/chat/page.js.nft.json +1 -1
  187. package/web/.next/server/app/(dashboard)/@drawer/chat/page_client-reference-manifest.js +1 -1
  188. package/web/.next/server/app/(dashboard)/@drawer/create/page/build-manifest.json +5 -5
  189. package/web/.next/server/app/(dashboard)/@drawer/create/page/react-loadable-manifest.json +1 -8
  190. package/web/.next/server/app/(dashboard)/@drawer/create/page/server-reference-manifest.json +30 -30
  191. package/web/.next/server/app/(dashboard)/@drawer/create/page.js +1 -1
  192. package/web/.next/server/app/(dashboard)/@drawer/create/page.js.nft.json +1 -1
  193. package/web/.next/server/app/(dashboard)/@drawer/create/page_client-reference-manifest.js +1 -1
  194. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page/build-manifest.json +5 -5
  195. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page/react-loadable-manifest.json +1 -8
  196. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page/server-reference-manifest.json +38 -38
  197. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page.js +1 -1
  198. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page.js.nft.json +1 -1
  199. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
  200. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/build-manifest.json +5 -5
  201. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/react-loadable-manifest.json +1 -8
  202. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/server-reference-manifest.json +38 -38
  203. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js +1 -1
  204. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js.nft.json +1 -1
  205. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page_client-reference-manifest.js +1 -1
  206. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page/build-manifest.json +5 -5
  207. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page/react-loadable-manifest.json +1 -8
  208. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page/server-reference-manifest.json +28 -28
  209. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page.js +1 -1
  210. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page.js.nft.json +1 -1
  211. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page_client-reference-manifest.js +1 -1
  212. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/build-manifest.json +5 -5
  213. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/react-loadable-manifest.json +1 -8
  214. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/server-reference-manifest.json +28 -28
  215. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js +1 -1
  216. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js.nft.json +1 -1
  217. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  218. package/web/.next/server/app/(dashboard)/chat/page/build-manifest.json +5 -5
  219. package/web/.next/server/app/(dashboard)/chat/page/react-loadable-manifest.json +1 -8
  220. package/web/.next/server/app/(dashboard)/chat/page/server-reference-manifest.json +27 -27
  221. package/web/.next/server/app/(dashboard)/chat/page.js +1 -1
  222. package/web/.next/server/app/(dashboard)/chat/page.js.nft.json +1 -1
  223. package/web/.next/server/app/(dashboard)/chat/page_client-reference-manifest.js +1 -1
  224. package/web/.next/server/app/(dashboard)/create/page/build-manifest.json +5 -5
  225. package/web/.next/server/app/(dashboard)/create/page/react-loadable-manifest.json +1 -8
  226. package/web/.next/server/app/(dashboard)/create/page/server-reference-manifest.json +30 -30
  227. package/web/.next/server/app/(dashboard)/create/page.js +1 -1
  228. package/web/.next/server/app/(dashboard)/create/page.js.nft.json +1 -1
  229. package/web/.next/server/app/(dashboard)/create/page_client-reference-manifest.js +1 -1
  230. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page/build-manifest.json +5 -5
  231. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page/react-loadable-manifest.json +1 -8
  232. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page/server-reference-manifest.json +38 -38
  233. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page.js +1 -1
  234. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page.js.nft.json +1 -1
  235. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
  236. package/web/.next/server/app/(dashboard)/feature/[featureId]/page/build-manifest.json +5 -5
  237. package/web/.next/server/app/(dashboard)/feature/[featureId]/page/react-loadable-manifest.json +1 -8
  238. package/web/.next/server/app/(dashboard)/feature/[featureId]/page/server-reference-manifest.json +38 -38
  239. package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js +1 -1
  240. package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js.nft.json +1 -1
  241. package/web/.next/server/app/(dashboard)/feature/[featureId]/page_client-reference-manifest.js +1 -1
  242. package/web/.next/server/app/(dashboard)/page/build-manifest.json +5 -5
  243. package/web/.next/server/app/(dashboard)/page/react-loadable-manifest.json +1 -8
  244. package/web/.next/server/app/(dashboard)/page/server-reference-manifest.json +27 -27
  245. package/web/.next/server/app/(dashboard)/page.js +1 -1
  246. package/web/.next/server/app/(dashboard)/page.js.nft.json +1 -1
  247. package/web/.next/server/app/(dashboard)/page_client-reference-manifest.js +1 -1
  248. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page/build-manifest.json +5 -5
  249. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page/react-loadable-manifest.json +1 -8
  250. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page/server-reference-manifest.json +28 -28
  251. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page.js +1 -1
  252. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page.js.nft.json +1 -1
  253. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page_client-reference-manifest.js +1 -1
  254. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/build-manifest.json +5 -5
  255. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/react-loadable-manifest.json +1 -8
  256. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/server-reference-manifest.json +28 -28
  257. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js +1 -1
  258. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js.nft.json +1 -1
  259. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  260. package/web/.next/server/app/_global-error/page/build-manifest.json +5 -5
  261. package/web/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  262. package/web/.next/server/app/_global-error.html +2 -2
  263. package/web/.next/server/app/_global-error.rsc +7 -7
  264. package/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +2 -2
  265. package/web/.next/server/app/_global-error.segments/_full.segment.rsc +7 -7
  266. package/web/.next/server/app/_global-error.segments/_head.segment.rsc +3 -3
  267. package/web/.next/server/app/_global-error.segments/_index.segment.rsc +3 -3
  268. package/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  269. package/web/.next/server/app/_not-found/page/build-manifest.json +5 -5
  270. package/web/.next/server/app/_not-found/page/react-loadable-manifest.json +1 -8
  271. package/web/.next/server/app/_not-found/page/server-reference-manifest.json +6 -6
  272. package/web/.next/server/app/_not-found/page.js +1 -1
  273. package/web/.next/server/app/_not-found/page.js.nft.json +1 -1
  274. package/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  275. package/web/.next/server/app/api/attachments/preview/route.js.nft.json +1 -1
  276. package/web/.next/server/app/api/evidence/route.js.nft.json +1 -1
  277. package/web/.next/server/app/api/graph-data/route.js.nft.json +1 -1
  278. package/web/.next/server/app/api/interactive/chat/[featureId]/messages/route.js.nft.json +1 -1
  279. package/web/.next/server/app/api/interactive/chat/[featureId]/respond/route/app-paths-manifest.json +3 -0
  280. package/web/.next/server/app/api/interactive/chat/[featureId]/respond/route/build-manifest.json +11 -0
  281. package/web/.next/server/app/api/interactive/chat/[featureId]/respond/route/server-reference-manifest.json +4 -0
  282. package/web/.next/server/app/api/interactive/chat/[featureId]/respond/route.js +7 -0
  283. package/web/.next/server/app/api/interactive/chat/[featureId]/respond/route.js.map +5 -0
  284. package/web/.next/server/app/api/interactive/chat/[featureId]/respond/route.js.nft.json +1 -0
  285. package/web/.next/server/app/api/interactive/chat/[featureId]/respond/route_client-reference-manifest.js +2 -0
  286. package/web/.next/server/app/settings/page/build-manifest.json +5 -5
  287. package/web/.next/server/app/settings/page/react-loadable-manifest.json +1 -8
  288. package/web/.next/server/app/settings/page/server-reference-manifest.json +9 -9
  289. package/web/.next/server/app/settings/page.js +3 -3
  290. package/web/.next/server/app/settings/page.js.nft.json +1 -1
  291. package/web/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  292. package/web/.next/server/app/skills/page/build-manifest.json +5 -5
  293. package/web/.next/server/app/skills/page/react-loadable-manifest.json +1 -8
  294. package/web/.next/server/app/skills/page/server-reference-manifest.json +52 -22
  295. package/web/.next/server/app/skills/page.js +3 -2
  296. package/web/.next/server/app/skills/page.js.nft.json +1 -1
  297. package/web/.next/server/app/skills/page_client-reference-manifest.js +1 -1
  298. package/web/.next/server/app/tools/page/build-manifest.json +5 -5
  299. package/web/.next/server/app/tools/page/react-loadable-manifest.json +1 -8
  300. package/web/.next/server/app/tools/page/server-reference-manifest.json +11 -11
  301. package/web/.next/server/app/tools/page.js +1 -1
  302. package/web/.next/server/app/tools/page.js.nft.json +1 -1
  303. package/web/.next/server/app/tools/page_client-reference-manifest.js +1 -1
  304. package/web/.next/server/app/version/page/build-manifest.json +5 -5
  305. package/web/.next/server/app/version/page/react-loadable-manifest.json +1 -8
  306. package/web/.next/server/app/version/page/server-reference-manifest.json +6 -6
  307. package/web/.next/server/app/version/page.js +1 -1
  308. package/web/.next/server/app/version/page.js.nft.json +1 -1
  309. package/web/.next/server/app/version/page_client-reference-manifest.js +1 -1
  310. package/web/.next/server/app-paths-manifest.json +1 -0
  311. package/web/.next/server/chunks/8ba4b_server_app_api_interactive_chat_[featureId]_respond_route_actions_990d51bd.js +3 -0
  312. package/web/.next/server/chunks/8ba4b_server_app_api_interactive_chat_[featureId]_respond_route_actions_990d51bd.js.map +1 -0
  313. package/web/.next/server/chunks/[root-of-the-server]__31944fa2._.js +3 -0
  314. package/web/.next/server/chunks/[root-of-the-server]__31944fa2._.js.map +1 -0
  315. package/web/.next/server/chunks/[root-of-the-server]__8a281f8d._.js +9 -3
  316. package/web/.next/server/chunks/[root-of-the-server]__8a281f8d._.js.map +1 -1
  317. package/web/.next/server/chunks/[root-of-the-server]__a402b567._.js +1 -1
  318. package/web/.next/server/chunks/[root-of-the-server]__c78383b1._.js +1 -1
  319. package/web/.next/server/chunks/[root-of-the-server]__c78383b1._.js.map +1 -1
  320. package/web/.next/server/chunks/[root-of-the-server]__cd67a84c._.js +1 -1
  321. package/web/.next/server/chunks/[root-of-the-server]__cd67a84c._.js.map +1 -1
  322. package/web/.next/server/chunks/ssr/{_0727935d._.js → 403f9_next_8a33ddee._.js} +2 -2
  323. package/web/.next/server/chunks/ssr/403f9_next_8a33ddee._.js.map +1 -0
  324. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js +1 -1
  325. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js.map +1 -1
  326. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_feature-drawer-client_tsx_e9755fc8._.js +3 -3
  327. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_feature-drawer-client_tsx_e9755fc8._.js.map +1 -1
  328. package/web/.next/server/chunks/ssr/{[root-of-the-server]__1abe77bb._.js → [root-of-the-server]__1b4846fd._.js} +3 -3
  329. package/web/.next/server/chunks/ssr/[root-of-the-server]__1b4846fd._.js.map +1 -0
  330. package/web/.next/server/chunks/ssr/[root-of-the-server]__1f389e5d._.js +1 -1
  331. package/web/.next/server/chunks/ssr/[root-of-the-server]__1f389e5d._.js.map +1 -1
  332. package/web/.next/server/chunks/ssr/[root-of-the-server]__357d99f9._.js +1 -1
  333. package/web/.next/server/chunks/ssr/[root-of-the-server]__4fb81977._.js +1 -1
  334. package/web/.next/server/chunks/ssr/[root-of-the-server]__4fb81977._.js.map +1 -1
  335. package/web/.next/server/chunks/ssr/[root-of-the-server]__7562afc6._.js +2 -2
  336. package/web/.next/server/chunks/ssr/[root-of-the-server]__7562afc6._.js.map +1 -1
  337. package/web/.next/server/chunks/ssr/[root-of-the-server]__7dcd0917._.js +1 -1
  338. package/web/.next/server/chunks/ssr/[root-of-the-server]__7dcd0917._.js.map +1 -1
  339. package/web/.next/server/chunks/ssr/{[root-of-the-server]__8b0aac03._.js → [root-of-the-server]__7ded596d._.js} +2 -2
  340. package/web/.next/server/chunks/ssr/[root-of-the-server]__7ded596d._.js.map +1 -0
  341. package/web/.next/server/chunks/ssr/[root-of-the-server]__86ff0bc5._.js +2 -2
  342. package/web/.next/server/chunks/ssr/[root-of-the-server]__86ff0bc5._.js.map +1 -1
  343. package/web/.next/server/chunks/ssr/[root-of-the-server]__b7b96453._.js +1 -1
  344. package/web/.next/server/chunks/ssr/[root-of-the-server]__b7b96453._.js.map +1 -1
  345. package/web/.next/server/chunks/ssr/[root-of-the-server]__ba7f5873._.js +1 -1
  346. package/web/.next/server/chunks/ssr/[root-of-the-server]__ba7f5873._.js.map +1 -1
  347. package/web/.next/server/chunks/ssr/[root-of-the-server]__c5e09f6f._.js +1 -1
  348. package/web/.next/server/chunks/ssr/[root-of-the-server]__c5e09f6f._.js.map +1 -1
  349. package/web/.next/server/chunks/ssr/[root-of-the-server]__e07df893._.js +3 -0
  350. package/web/.next/server/chunks/ssr/[root-of-the-server]__e07df893._.js.map +1 -0
  351. package/web/.next/server/chunks/ssr/_02e01240._.js +1 -1
  352. package/web/.next/server/chunks/ssr/_02e01240._.js.map +1 -1
  353. package/web/.next/server/chunks/ssr/_05c23ad9._.js +1 -1
  354. package/web/.next/server/chunks/ssr/_05c23ad9._.js.map +1 -1
  355. package/web/.next/server/chunks/ssr/_08e6a4c5._.js +3 -0
  356. package/web/.next/server/chunks/ssr/_08e6a4c5._.js.map +1 -0
  357. package/web/.next/server/chunks/ssr/_16eb4fec._.js +1 -1
  358. package/web/.next/server/chunks/ssr/_16eb4fec._.js.map +1 -1
  359. package/web/.next/server/chunks/ssr/_18886033._.js +1 -1
  360. package/web/.next/server/chunks/ssr/_18886033._.js.map +1 -1
  361. package/web/.next/server/chunks/ssr/_1e08a336._.js.map +1 -1
  362. package/web/.next/server/chunks/ssr/_22e00a14._.js +1 -1
  363. package/web/.next/server/chunks/ssr/_22e00a14._.js.map +1 -1
  364. package/web/.next/server/chunks/ssr/_45496654._.js +3 -0
  365. package/web/.next/server/chunks/ssr/_45496654._.js.map +1 -0
  366. package/web/.next/server/chunks/ssr/_4cbb7f95._.js +3 -0
  367. package/web/.next/server/chunks/ssr/_4cbb7f95._.js.map +1 -0
  368. package/web/.next/server/chunks/ssr/_5119a3df._.js.map +1 -1
  369. package/web/.next/server/chunks/ssr/_56b9d60f._.js +1 -1
  370. package/web/.next/server/chunks/ssr/_56b9d60f._.js.map +1 -1
  371. package/web/.next/server/chunks/ssr/{_a5913a26._.js → _79b66f37._.js} +2 -2
  372. package/web/.next/server/chunks/ssr/{_a5913a26._.js.map → _79b66f37._.js.map} +1 -1
  373. package/web/.next/server/chunks/ssr/{_b4c3ffcc._.js → _8b9129da._.js} +2 -2
  374. package/web/.next/server/chunks/ssr/{_b4c3ffcc._.js.map → _8b9129da._.js.map} +1 -1
  375. package/web/.next/server/chunks/ssr/_a5a5901d._.js +1 -1
  376. package/web/.next/server/chunks/ssr/_a5a5901d._.js.map +1 -1
  377. package/web/.next/server/chunks/ssr/_a963dd3c._.js +3 -0
  378. package/web/.next/server/chunks/ssr/_a963dd3c._.js.map +1 -0
  379. package/web/.next/server/chunks/ssr/_ad09f271._.js +1 -1
  380. package/web/.next/server/chunks/ssr/_ad09f271._.js.map +1 -1
  381. package/web/.next/server/chunks/ssr/_c3f595c6._.js +1 -1
  382. package/web/.next/server/chunks/ssr/_c3f595c6._.js.map +1 -1
  383. package/web/.next/server/chunks/ssr/_d78b2b6e._.js +3 -0
  384. package/web/.next/server/chunks/ssr/_d78b2b6e._.js.map +1 -0
  385. package/web/.next/server/chunks/ssr/_df737cce._.js +3 -0
  386. package/web/.next/server/chunks/ssr/_df737cce._.js.map +1 -0
  387. package/web/.next/server/chunks/ssr/_e3f14907._.js +9 -0
  388. package/web/.next/server/chunks/ssr/_e3f14907._.js.map +1 -0
  389. package/web/.next/server/chunks/ssr/_ea9e1556._.js +1 -1
  390. package/web/.next/server/chunks/ssr/_ea9e1556._.js.map +1 -1
  391. package/web/.next/server/chunks/ssr/_f1ba9be6._.js +2 -2
  392. package/web/.next/server/chunks/ssr/_f1ba9be6._.js.map +1 -1
  393. package/web/.next/server/chunks/ssr/_f33cd07e._.js +2 -2
  394. package/web/.next/server/chunks/ssr/_f33cd07e._.js.map +1 -1
  395. package/web/.next/server/chunks/ssr/_f8b45233._.js +1 -1
  396. package/web/.next/server/chunks/ssr/_f8b45233._.js.map +1 -1
  397. package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js +1 -1
  398. package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js.map +1 -1
  399. package/web/.next/server/chunks/ssr/f3a1f_components_common_control-center-drawer_repository-drawer-client_tsx_39a00c03._.js +1 -1
  400. package/web/.next/server/chunks/ssr/f3a1f_components_common_control-center-drawer_repository-drawer-client_tsx_39a00c03._.js.map +1 -1
  401. package/web/.next/server/chunks/ssr/src_presentation_web_app_actions_open-ide_ts_baaca5d5._.js +1 -1
  402. package/web/.next/server/chunks/ssr/src_presentation_web_components_895e5bfa._.js +1 -1
  403. package/web/.next/server/chunks/ssr/src_presentation_web_components_895e5bfa._.js.map +1 -1
  404. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js +1 -1
  405. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js.map +1 -1
  406. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_skills_8a174cac._.js +3 -0
  407. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_skills_8a174cac._.js.map +1 -0
  408. package/web/.next/server/chunks/ssr/src_presentation_web_components_ui_select_tsx_45d6b8ae._.js +1 -1
  409. package/web/.next/server/chunks/ssr/src_presentation_web_components_ui_select_tsx_45d6b8ae._.js.map +1 -1
  410. package/web/.next/server/chunks/ssr/src_presentation_web_db9fa0c2._.js +1 -1
  411. package/web/.next/server/chunks/ssr/src_presentation_web_db9fa0c2._.js.map +1 -1
  412. package/web/.next/server/chunks/ssr/translations_23dd5e7e._.js +1 -1
  413. package/web/.next/server/chunks/ssr/translations_23dd5e7e._.js.map +1 -1
  414. package/web/.next/server/middleware-build-manifest.js +5 -5
  415. package/web/.next/server/pages/500.html +2 -2
  416. package/web/.next/server/server-reference-manifest.js +1 -1
  417. package/web/.next/server/server-reference-manifest.json +89 -59
  418. package/web/.next/static/chunks/0839854125212e6b.js +1 -0
  419. package/web/.next/static/chunks/{fe70e73feb07bcfd.js → 08ec4c9ab61717aa.js} +1 -1
  420. package/web/.next/static/chunks/{dedf6ca63c5468fa.js → 09edd35d194bec06.js} +3 -3
  421. package/web/.next/static/chunks/{d4d8f0a137bd2eb4.js → 12803afee7d0afc8.js} +2 -2
  422. package/web/.next/static/chunks/19680940c0bb3c3a.js +1 -0
  423. package/web/.next/static/chunks/{0be57768a211221a.js → 37a345c8f447ab56.js} +1 -1
  424. package/web/.next/static/chunks/3cbeac4d756302bc.js +5 -0
  425. package/web/.next/static/chunks/4355f7c193b01832.js +1 -0
  426. package/web/.next/static/chunks/{7a7d7e71cf9b5a4e.js → 4669ea9953c265d2.js} +1 -1
  427. package/web/.next/static/chunks/55e9df1e73af0b3e.js +7 -0
  428. package/web/.next/static/chunks/6deedc27548cd1df.js +1 -0
  429. package/web/.next/static/chunks/7b669373b268c12b.js +1 -0
  430. package/web/.next/static/chunks/7e22b815fb2a5b1b.js +3 -0
  431. package/web/.next/static/chunks/84a181ff3270fd9f.js +1 -0
  432. package/web/.next/static/chunks/89aac43287d73b02.js +1 -0
  433. package/web/.next/static/chunks/{d7eebb5c0aa9e101.js → a818bb026935d536.js} +2 -2
  434. package/web/.next/static/chunks/b2d1da8faf0da41d.js +1 -0
  435. package/web/.next/static/chunks/b7228e77a05ccbba.js +1 -0
  436. package/web/.next/static/chunks/ba251fd9b9fd254b.js +1 -0
  437. package/web/.next/static/chunks/c11bb4718643147f.js +5 -0
  438. package/web/.next/static/chunks/{3f404f608aebc7bb.js → d4a8e02e4be71dcf.js} +1 -1
  439. package/web/.next/static/chunks/f49e0076b62c6826.js +1 -0
  440. package/web/.next/static/chunks/fbff2864f22e8c88.css +1 -0
  441. package/web/.next/static/chunks/{turbopack-432ef324fc27240c.js → turbopack-9f7dcf06ca44886d.js} +1 -1
  442. package/web/.next/server/chunks/ssr/[root-of-the-server]__1abe77bb._.js.map +0 -1
  443. package/web/.next/server/chunks/ssr/[root-of-the-server]__2d0c3840._.js +0 -3
  444. package/web/.next/server/chunks/ssr/[root-of-the-server]__2d0c3840._.js.map +0 -1
  445. package/web/.next/server/chunks/ssr/[root-of-the-server]__8b0aac03._.js.map +0 -1
  446. package/web/.next/server/chunks/ssr/_0727935d._.js.map +0 -1
  447. package/web/.next/server/chunks/ssr/_0dc06d07._.js +0 -3
  448. package/web/.next/server/chunks/ssr/_0dc06d07._.js.map +0 -1
  449. package/web/.next/server/chunks/ssr/_3bcda5d7._.js +0 -3
  450. package/web/.next/server/chunks/ssr/_3bcda5d7._.js.map +0 -1
  451. package/web/.next/server/chunks/ssr/_4d49a312._.js +0 -3
  452. package/web/.next/server/chunks/ssr/_4d49a312._.js.map +0 -1
  453. package/web/.next/server/chunks/ssr/_506a3bc3._.js +0 -9
  454. package/web/.next/server/chunks/ssr/_506a3bc3._.js.map +0 -1
  455. package/web/.next/server/chunks/ssr/_5ab8e97d._.js +0 -3
  456. package/web/.next/server/chunks/ssr/_5ab8e97d._.js.map +0 -1
  457. package/web/.next/server/chunks/ssr/_9215e9ec._.js +0 -3
  458. package/web/.next/server/chunks/ssr/_9215e9ec._.js.map +0 -1
  459. package/web/.next/static/chunks/16eea21868510afd.js +0 -5
  460. package/web/.next/static/chunks/3208dc997aaee4d3.css +0 -1
  461. package/web/.next/static/chunks/3deefc76ea55047c.js +0 -1
  462. package/web/.next/static/chunks/40b6bcf1a2de4a0f.js +0 -1
  463. package/web/.next/static/chunks/420eb8b33d83c4cb.js +0 -1
  464. package/web/.next/static/chunks/63b0ad1dbc27a5d0.js +0 -1
  465. package/web/.next/static/chunks/65440524d7ee7d13.js +0 -1
  466. package/web/.next/static/chunks/6c634b447a6a0db8.js +0 -7
  467. package/web/.next/static/chunks/6d7b999c99d6d175.js +0 -9
  468. package/web/.next/static/chunks/6eb32cd5d2795a7c.js +0 -1
  469. package/web/.next/static/chunks/7f4d1ec4e9f921a3.js +0 -1
  470. package/web/.next/static/chunks/8180973e9cd6a99e.css +0 -1
  471. package/web/.next/static/chunks/8866edda931a81c2.js +0 -1
  472. package/web/.next/static/chunks/c0e13e7d1601bc5d.js +0 -1
  473. package/web/.next/static/chunks/c7e793951b20a67f.js +0 -1
  474. package/web/.next/static/chunks/d6a1facd04a52af5.js +0 -5
  475. package/web/.next/static/chunks/da6d0839a24602eb.js +0 -3
  476. package/web/.next/static/chunks/db3bf9eb0b519bae.js +0 -1
  477. /package/web/.next/static/{JjjyVzk5ESdcMWkH6999z → QTub9VF21lk2PO7IJDkNp}/_buildManifest.js +0 -0
  478. /package/web/.next/static/{JjjyVzk5ESdcMWkH6999z → QTub9VF21lk2PO7IJDkNp}/_clientMiddlewareManifest.json +0 -0
  479. /package/web/.next/static/{JjjyVzk5ESdcMWkH6999z → QTub9VF21lk2PO7IJDkNp}/_ssgManifest.js +0 -0
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../../node_modules/.pnpm/%40radix-ui%2Breact-select%402.2.6_%40types%2Breact-dom%4019.2.3_%40types%2Breact%4019.2.10__%40types%2Breact_1f7b4ff668a805c08339bb4e58c413b0/node_modules/%40radix-ui/react-select/dist/index.mjs","../../../../../../../src/presentation/web/components/ui/select.tsx","../../../../../../../node_modules/.pnpm/%40radix-ui%2Bnumber%401.1.1/node_modules/%40radix-ui/number/dist/index.mjs"],"sourcesContent":["\"use client\";\n\n// src/select.tsx\nimport * as React from \"react\";\nimport * as ReactDOM from \"react-dom\";\nimport { clamp } from \"@radix-ui/number\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { createCollection } from \"@radix-ui/react-collection\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { useDirection } from \"@radix-ui/react-direction\";\nimport { DismissableLayer } from \"@radix-ui/react-dismissable-layer\";\nimport { useFocusGuards } from \"@radix-ui/react-focus-guards\";\nimport { FocusScope } from \"@radix-ui/react-focus-scope\";\nimport { useId } from \"@radix-ui/react-id\";\nimport * as PopperPrimitive from \"@radix-ui/react-popper\";\nimport { createPopperScope } from \"@radix-ui/react-popper\";\nimport { Portal as PortalPrimitive } from \"@radix-ui/react-portal\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { createSlot } from \"@radix-ui/react-slot\";\nimport { useCallbackRef } from \"@radix-ui/react-use-callback-ref\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\nimport { usePrevious } from \"@radix-ui/react-use-previous\";\nimport { VISUALLY_HIDDEN_STYLES } from \"@radix-ui/react-visually-hidden\";\nimport { hideOthers } from \"aria-hidden\";\nimport { RemoveScroll } from \"react-remove-scroll\";\nimport { Fragment, jsx, jsxs } from \"react/jsx-runtime\";\nvar OPEN_KEYS = [\" \", \"Enter\", \"ArrowUp\", \"ArrowDown\"];\nvar SELECTION_KEYS = [\" \", \"Enter\"];\nvar SELECT_NAME = \"Select\";\nvar [Collection, useCollection, createCollectionScope] = createCollection(SELECT_NAME);\nvar [createSelectContext, createSelectScope] = createContextScope(SELECT_NAME, [\n createCollectionScope,\n createPopperScope\n]);\nvar usePopperScope = createPopperScope();\nvar [SelectProvider, useSelectContext] = createSelectContext(SELECT_NAME);\nvar [SelectNativeOptionsProvider, useSelectNativeOptionsContext] = createSelectContext(SELECT_NAME);\nvar Select = (props) => {\n const {\n __scopeSelect,\n children,\n open: openProp,\n defaultOpen,\n onOpenChange,\n value: valueProp,\n defaultValue,\n onValueChange,\n dir,\n name,\n autoComplete,\n disabled,\n required,\n form\n } = props;\n const popperScope = usePopperScope(__scopeSelect);\n const [trigger, setTrigger] = React.useState(null);\n const [valueNode, setValueNode] = React.useState(null);\n const [valueNodeHasChildren, setValueNodeHasChildren] = React.useState(false);\n const direction = useDirection(dir);\n const [open, setOpen] = useControllableState({\n prop: openProp,\n defaultProp: defaultOpen ?? false,\n onChange: onOpenChange,\n caller: SELECT_NAME\n });\n const [value, setValue] = useControllableState({\n prop: valueProp,\n defaultProp: defaultValue,\n onChange: onValueChange,\n caller: SELECT_NAME\n });\n const triggerPointerDownPosRef = React.useRef(null);\n const isFormControl = trigger ? form || !!trigger.closest(\"form\") : true;\n const [nativeOptionsSet, setNativeOptionsSet] = React.useState(/* @__PURE__ */ new Set());\n const nativeSelectKey = Array.from(nativeOptionsSet).map((option) => option.props.value).join(\";\");\n return /* @__PURE__ */ jsx(PopperPrimitive.Root, { ...popperScope, children: /* @__PURE__ */ jsxs(\n SelectProvider,\n {\n required,\n scope: __scopeSelect,\n trigger,\n onTriggerChange: setTrigger,\n valueNode,\n onValueNodeChange: setValueNode,\n valueNodeHasChildren,\n onValueNodeHasChildrenChange: setValueNodeHasChildren,\n contentId: useId(),\n value,\n onValueChange: setValue,\n open,\n onOpenChange: setOpen,\n dir: direction,\n triggerPointerDownPosRef,\n disabled,\n children: [\n /* @__PURE__ */ jsx(Collection.Provider, { scope: __scopeSelect, children: /* @__PURE__ */ jsx(\n SelectNativeOptionsProvider,\n {\n scope: props.__scopeSelect,\n onNativeOptionAdd: React.useCallback((option) => {\n setNativeOptionsSet((prev) => new Set(prev).add(option));\n }, []),\n onNativeOptionRemove: React.useCallback((option) => {\n setNativeOptionsSet((prev) => {\n const optionsSet = new Set(prev);\n optionsSet.delete(option);\n return optionsSet;\n });\n }, []),\n children\n }\n ) }),\n isFormControl ? /* @__PURE__ */ jsxs(\n SelectBubbleInput,\n {\n \"aria-hidden\": true,\n required,\n tabIndex: -1,\n name,\n autoComplete,\n value,\n onChange: (event) => setValue(event.target.value),\n disabled,\n form,\n children: [\n value === void 0 ? /* @__PURE__ */ jsx(\"option\", { value: \"\" }) : null,\n Array.from(nativeOptionsSet)\n ]\n },\n nativeSelectKey\n ) : null\n ]\n }\n ) });\n};\nSelect.displayName = SELECT_NAME;\nvar TRIGGER_NAME = \"SelectTrigger\";\nvar SelectTrigger = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSelect, disabled = false, ...triggerProps } = props;\n const popperScope = usePopperScope(__scopeSelect);\n const context = useSelectContext(TRIGGER_NAME, __scopeSelect);\n const isDisabled = context.disabled || disabled;\n const composedRefs = useComposedRefs(forwardedRef, context.onTriggerChange);\n const getItems = useCollection(__scopeSelect);\n const pointerTypeRef = React.useRef(\"touch\");\n const [searchRef, handleTypeaheadSearch, resetTypeahead] = useTypeaheadSearch((search) => {\n const enabledItems = getItems().filter((item) => !item.disabled);\n const currentItem = enabledItems.find((item) => item.value === context.value);\n const nextItem = findNextItem(enabledItems, search, currentItem);\n if (nextItem !== void 0) {\n context.onValueChange(nextItem.value);\n }\n });\n const handleOpen = (pointerEvent) => {\n if (!isDisabled) {\n context.onOpenChange(true);\n resetTypeahead();\n }\n if (pointerEvent) {\n context.triggerPointerDownPosRef.current = {\n x: Math.round(pointerEvent.pageX),\n y: Math.round(pointerEvent.pageY)\n };\n }\n };\n return /* @__PURE__ */ jsx(PopperPrimitive.Anchor, { asChild: true, ...popperScope, children: /* @__PURE__ */ jsx(\n Primitive.button,\n {\n type: \"button\",\n role: \"combobox\",\n \"aria-controls\": context.contentId,\n \"aria-expanded\": context.open,\n \"aria-required\": context.required,\n \"aria-autocomplete\": \"none\",\n dir: context.dir,\n \"data-state\": context.open ? \"open\" : \"closed\",\n disabled: isDisabled,\n \"data-disabled\": isDisabled ? \"\" : void 0,\n \"data-placeholder\": shouldShowPlaceholder(context.value) ? \"\" : void 0,\n ...triggerProps,\n ref: composedRefs,\n onClick: composeEventHandlers(triggerProps.onClick, (event) => {\n event.currentTarget.focus();\n if (pointerTypeRef.current !== \"mouse\") {\n handleOpen(event);\n }\n }),\n onPointerDown: composeEventHandlers(triggerProps.onPointerDown, (event) => {\n pointerTypeRef.current = event.pointerType;\n const target = event.target;\n if (target.hasPointerCapture(event.pointerId)) {\n target.releasePointerCapture(event.pointerId);\n }\n if (event.button === 0 && event.ctrlKey === false && event.pointerType === \"mouse\") {\n handleOpen(event);\n event.preventDefault();\n }\n }),\n onKeyDown: composeEventHandlers(triggerProps.onKeyDown, (event) => {\n const isTypingAhead = searchRef.current !== \"\";\n const isModifierKey = event.ctrlKey || event.altKey || event.metaKey;\n if (!isModifierKey && event.key.length === 1) handleTypeaheadSearch(event.key);\n if (isTypingAhead && event.key === \" \") return;\n if (OPEN_KEYS.includes(event.key)) {\n handleOpen();\n event.preventDefault();\n }\n })\n }\n ) });\n }\n);\nSelectTrigger.displayName = TRIGGER_NAME;\nvar VALUE_NAME = \"SelectValue\";\nvar SelectValue = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSelect, className, style, children, placeholder = \"\", ...valueProps } = props;\n const context = useSelectContext(VALUE_NAME, __scopeSelect);\n const { onValueNodeHasChildrenChange } = context;\n const hasChildren = children !== void 0;\n const composedRefs = useComposedRefs(forwardedRef, context.onValueNodeChange);\n useLayoutEffect(() => {\n onValueNodeHasChildrenChange(hasChildren);\n }, [onValueNodeHasChildrenChange, hasChildren]);\n return /* @__PURE__ */ jsx(\n Primitive.span,\n {\n ...valueProps,\n ref: composedRefs,\n style: { pointerEvents: \"none\" },\n children: shouldShowPlaceholder(context.value) ? /* @__PURE__ */ jsx(Fragment, { children: placeholder }) : children\n }\n );\n }\n);\nSelectValue.displayName = VALUE_NAME;\nvar ICON_NAME = \"SelectIcon\";\nvar SelectIcon = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSelect, children, ...iconProps } = props;\n return /* @__PURE__ */ jsx(Primitive.span, { \"aria-hidden\": true, ...iconProps, ref: forwardedRef, children: children || \"\\u25BC\" });\n }\n);\nSelectIcon.displayName = ICON_NAME;\nvar PORTAL_NAME = \"SelectPortal\";\nvar SelectPortal = (props) => {\n return /* @__PURE__ */ jsx(PortalPrimitive, { asChild: true, ...props });\n};\nSelectPortal.displayName = PORTAL_NAME;\nvar CONTENT_NAME = \"SelectContent\";\nvar SelectContent = React.forwardRef(\n (props, forwardedRef) => {\n const context = useSelectContext(CONTENT_NAME, props.__scopeSelect);\n const [fragment, setFragment] = React.useState();\n useLayoutEffect(() => {\n setFragment(new DocumentFragment());\n }, []);\n if (!context.open) {\n const frag = fragment;\n return frag ? ReactDOM.createPortal(\n /* @__PURE__ */ jsx(SelectContentProvider, { scope: props.__scopeSelect, children: /* @__PURE__ */ jsx(Collection.Slot, { scope: props.__scopeSelect, children: /* @__PURE__ */ jsx(\"div\", { children: props.children }) }) }),\n frag\n ) : null;\n }\n return /* @__PURE__ */ jsx(SelectContentImpl, { ...props, ref: forwardedRef });\n }\n);\nSelectContent.displayName = CONTENT_NAME;\nvar CONTENT_MARGIN = 10;\nvar [SelectContentProvider, useSelectContentContext] = createSelectContext(CONTENT_NAME);\nvar CONTENT_IMPL_NAME = \"SelectContentImpl\";\nvar Slot = createSlot(\"SelectContent.RemoveScroll\");\nvar SelectContentImpl = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeSelect,\n position = \"item-aligned\",\n onCloseAutoFocus,\n onEscapeKeyDown,\n onPointerDownOutside,\n //\n // PopperContent props\n side,\n sideOffset,\n align,\n alignOffset,\n arrowPadding,\n collisionBoundary,\n collisionPadding,\n sticky,\n hideWhenDetached,\n avoidCollisions,\n //\n ...contentProps\n } = props;\n const context = useSelectContext(CONTENT_NAME, __scopeSelect);\n const [content, setContent] = React.useState(null);\n const [viewport, setViewport] = React.useState(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setContent(node));\n const [selectedItem, setSelectedItem] = React.useState(null);\n const [selectedItemText, setSelectedItemText] = React.useState(\n null\n );\n const getItems = useCollection(__scopeSelect);\n const [isPositioned, setIsPositioned] = React.useState(false);\n const firstValidItemFoundRef = React.useRef(false);\n React.useEffect(() => {\n if (content) return hideOthers(content);\n }, [content]);\n useFocusGuards();\n const focusFirst = React.useCallback(\n (candidates) => {\n const [firstItem, ...restItems] = getItems().map((item) => item.ref.current);\n const [lastItem] = restItems.slice(-1);\n const PREVIOUSLY_FOCUSED_ELEMENT = document.activeElement;\n for (const candidate of candidates) {\n if (candidate === PREVIOUSLY_FOCUSED_ELEMENT) return;\n candidate?.scrollIntoView({ block: \"nearest\" });\n if (candidate === firstItem && viewport) viewport.scrollTop = 0;\n if (candidate === lastItem && viewport) viewport.scrollTop = viewport.scrollHeight;\n candidate?.focus();\n if (document.activeElement !== PREVIOUSLY_FOCUSED_ELEMENT) return;\n }\n },\n [getItems, viewport]\n );\n const focusSelectedItem = React.useCallback(\n () => focusFirst([selectedItem, content]),\n [focusFirst, selectedItem, content]\n );\n React.useEffect(() => {\n if (isPositioned) {\n focusSelectedItem();\n }\n }, [isPositioned, focusSelectedItem]);\n const { onOpenChange, triggerPointerDownPosRef } = context;\n React.useEffect(() => {\n if (content) {\n let pointerMoveDelta = { x: 0, y: 0 };\n const handlePointerMove = (event) => {\n pointerMoveDelta = {\n x: Math.abs(Math.round(event.pageX) - (triggerPointerDownPosRef.current?.x ?? 0)),\n y: Math.abs(Math.round(event.pageY) - (triggerPointerDownPosRef.current?.y ?? 0))\n };\n };\n const handlePointerUp = (event) => {\n if (pointerMoveDelta.x <= 10 && pointerMoveDelta.y <= 10) {\n event.preventDefault();\n } else {\n if (!content.contains(event.target)) {\n onOpenChange(false);\n }\n }\n document.removeEventListener(\"pointermove\", handlePointerMove);\n triggerPointerDownPosRef.current = null;\n };\n if (triggerPointerDownPosRef.current !== null) {\n document.addEventListener(\"pointermove\", handlePointerMove);\n document.addEventListener(\"pointerup\", handlePointerUp, { capture: true, once: true });\n }\n return () => {\n document.removeEventListener(\"pointermove\", handlePointerMove);\n document.removeEventListener(\"pointerup\", handlePointerUp, { capture: true });\n };\n }\n }, [content, onOpenChange, triggerPointerDownPosRef]);\n React.useEffect(() => {\n const close = () => onOpenChange(false);\n window.addEventListener(\"blur\", close);\n window.addEventListener(\"resize\", close);\n return () => {\n window.removeEventListener(\"blur\", close);\n window.removeEventListener(\"resize\", close);\n };\n }, [onOpenChange]);\n const [searchRef, handleTypeaheadSearch] = useTypeaheadSearch((search) => {\n const enabledItems = getItems().filter((item) => !item.disabled);\n const currentItem = enabledItems.find((item) => item.ref.current === document.activeElement);\n const nextItem = findNextItem(enabledItems, search, currentItem);\n if (nextItem) {\n setTimeout(() => nextItem.ref.current.focus());\n }\n });\n const itemRefCallback = React.useCallback(\n (node, value, disabled) => {\n const isFirstValidItem = !firstValidItemFoundRef.current && !disabled;\n const isSelectedItem = context.value !== void 0 && context.value === value;\n if (isSelectedItem || isFirstValidItem) {\n setSelectedItem(node);\n if (isFirstValidItem) firstValidItemFoundRef.current = true;\n }\n },\n [context.value]\n );\n const handleItemLeave = React.useCallback(() => content?.focus(), [content]);\n const itemTextRefCallback = React.useCallback(\n (node, value, disabled) => {\n const isFirstValidItem = !firstValidItemFoundRef.current && !disabled;\n const isSelectedItem = context.value !== void 0 && context.value === value;\n if (isSelectedItem || isFirstValidItem) {\n setSelectedItemText(node);\n }\n },\n [context.value]\n );\n const SelectPosition = position === \"popper\" ? SelectPopperPosition : SelectItemAlignedPosition;\n const popperContentProps = SelectPosition === SelectPopperPosition ? {\n side,\n sideOffset,\n align,\n alignOffset,\n arrowPadding,\n collisionBoundary,\n collisionPadding,\n sticky,\n hideWhenDetached,\n avoidCollisions\n } : {};\n return /* @__PURE__ */ jsx(\n SelectContentProvider,\n {\n scope: __scopeSelect,\n content,\n viewport,\n onViewportChange: setViewport,\n itemRefCallback,\n selectedItem,\n onItemLeave: handleItemLeave,\n itemTextRefCallback,\n focusSelectedItem,\n selectedItemText,\n position,\n isPositioned,\n searchRef,\n children: /* @__PURE__ */ jsx(RemoveScroll, { as: Slot, allowPinchZoom: true, children: /* @__PURE__ */ jsx(\n FocusScope,\n {\n asChild: true,\n trapped: context.open,\n onMountAutoFocus: (event) => {\n event.preventDefault();\n },\n onUnmountAutoFocus: composeEventHandlers(onCloseAutoFocus, (event) => {\n context.trigger?.focus({ preventScroll: true });\n event.preventDefault();\n }),\n children: /* @__PURE__ */ jsx(\n DismissableLayer,\n {\n asChild: true,\n disableOutsidePointerEvents: true,\n onEscapeKeyDown,\n onPointerDownOutside,\n onFocusOutside: (event) => event.preventDefault(),\n onDismiss: () => context.onOpenChange(false),\n children: /* @__PURE__ */ jsx(\n SelectPosition,\n {\n role: \"listbox\",\n id: context.contentId,\n \"data-state\": context.open ? \"open\" : \"closed\",\n dir: context.dir,\n onContextMenu: (event) => event.preventDefault(),\n ...contentProps,\n ...popperContentProps,\n onPlaced: () => setIsPositioned(true),\n ref: composedRefs,\n style: {\n // flex layout so we can place the scroll buttons properly\n display: \"flex\",\n flexDirection: \"column\",\n // reset the outline by default as the content MAY get focused\n outline: \"none\",\n ...contentProps.style\n },\n onKeyDown: composeEventHandlers(contentProps.onKeyDown, (event) => {\n const isModifierKey = event.ctrlKey || event.altKey || event.metaKey;\n if (event.key === \"Tab\") event.preventDefault();\n if (!isModifierKey && event.key.length === 1) handleTypeaheadSearch(event.key);\n if ([\"ArrowUp\", \"ArrowDown\", \"Home\", \"End\"].includes(event.key)) {\n const items = getItems().filter((item) => !item.disabled);\n let candidateNodes = items.map((item) => item.ref.current);\n if ([\"ArrowUp\", \"End\"].includes(event.key)) {\n candidateNodes = candidateNodes.slice().reverse();\n }\n if ([\"ArrowUp\", \"ArrowDown\"].includes(event.key)) {\n const currentElement = event.target;\n const currentIndex = candidateNodes.indexOf(currentElement);\n candidateNodes = candidateNodes.slice(currentIndex + 1);\n }\n setTimeout(() => focusFirst(candidateNodes));\n event.preventDefault();\n }\n })\n }\n )\n }\n )\n }\n ) })\n }\n );\n }\n);\nSelectContentImpl.displayName = CONTENT_IMPL_NAME;\nvar ITEM_ALIGNED_POSITION_NAME = \"SelectItemAlignedPosition\";\nvar SelectItemAlignedPosition = React.forwardRef((props, forwardedRef) => {\n const { __scopeSelect, onPlaced, ...popperProps } = props;\n const context = useSelectContext(CONTENT_NAME, __scopeSelect);\n const contentContext = useSelectContentContext(CONTENT_NAME, __scopeSelect);\n const [contentWrapper, setContentWrapper] = React.useState(null);\n const [content, setContent] = React.useState(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setContent(node));\n const getItems = useCollection(__scopeSelect);\n const shouldExpandOnScrollRef = React.useRef(false);\n const shouldRepositionRef = React.useRef(true);\n const { viewport, selectedItem, selectedItemText, focusSelectedItem } = contentContext;\n const position = React.useCallback(() => {\n if (context.trigger && context.valueNode && contentWrapper && content && viewport && selectedItem && selectedItemText) {\n const triggerRect = context.trigger.getBoundingClientRect();\n const contentRect = content.getBoundingClientRect();\n const valueNodeRect = context.valueNode.getBoundingClientRect();\n const itemTextRect = selectedItemText.getBoundingClientRect();\n if (context.dir !== \"rtl\") {\n const itemTextOffset = itemTextRect.left - contentRect.left;\n const left = valueNodeRect.left - itemTextOffset;\n const leftDelta = triggerRect.left - left;\n const minContentWidth = triggerRect.width + leftDelta;\n const contentWidth = Math.max(minContentWidth, contentRect.width);\n const rightEdge = window.innerWidth - CONTENT_MARGIN;\n const clampedLeft = clamp(left, [\n CONTENT_MARGIN,\n // Prevents the content from going off the starting edge of the\n // viewport. It may still go off the ending edge, but this can be\n // controlled by the user since they may want to manage overflow in a\n // specific way.\n // https://github.com/radix-ui/primitives/issues/2049\n Math.max(CONTENT_MARGIN, rightEdge - contentWidth)\n ]);\n contentWrapper.style.minWidth = minContentWidth + \"px\";\n contentWrapper.style.left = clampedLeft + \"px\";\n } else {\n const itemTextOffset = contentRect.right - itemTextRect.right;\n const right = window.innerWidth - valueNodeRect.right - itemTextOffset;\n const rightDelta = window.innerWidth - triggerRect.right - right;\n const minContentWidth = triggerRect.width + rightDelta;\n const contentWidth = Math.max(minContentWidth, contentRect.width);\n const leftEdge = window.innerWidth - CONTENT_MARGIN;\n const clampedRight = clamp(right, [\n CONTENT_MARGIN,\n Math.max(CONTENT_MARGIN, leftEdge - contentWidth)\n ]);\n contentWrapper.style.minWidth = minContentWidth + \"px\";\n contentWrapper.style.right = clampedRight + \"px\";\n }\n const items = getItems();\n const availableHeight = window.innerHeight - CONTENT_MARGIN * 2;\n const itemsHeight = viewport.scrollHeight;\n const contentStyles = window.getComputedStyle(content);\n const contentBorderTopWidth = parseInt(contentStyles.borderTopWidth, 10);\n const contentPaddingTop = parseInt(contentStyles.paddingTop, 10);\n const contentBorderBottomWidth = parseInt(contentStyles.borderBottomWidth, 10);\n const contentPaddingBottom = parseInt(contentStyles.paddingBottom, 10);\n const fullContentHeight = contentBorderTopWidth + contentPaddingTop + itemsHeight + contentPaddingBottom + contentBorderBottomWidth;\n const minContentHeight = Math.min(selectedItem.offsetHeight * 5, fullContentHeight);\n const viewportStyles = window.getComputedStyle(viewport);\n const viewportPaddingTop = parseInt(viewportStyles.paddingTop, 10);\n const viewportPaddingBottom = parseInt(viewportStyles.paddingBottom, 10);\n const topEdgeToTriggerMiddle = triggerRect.top + triggerRect.height / 2 - CONTENT_MARGIN;\n const triggerMiddleToBottomEdge = availableHeight - topEdgeToTriggerMiddle;\n const selectedItemHalfHeight = selectedItem.offsetHeight / 2;\n const itemOffsetMiddle = selectedItem.offsetTop + selectedItemHalfHeight;\n const contentTopToItemMiddle = contentBorderTopWidth + contentPaddingTop + itemOffsetMiddle;\n const itemMiddleToContentBottom = fullContentHeight - contentTopToItemMiddle;\n const willAlignWithoutTopOverflow = contentTopToItemMiddle <= topEdgeToTriggerMiddle;\n if (willAlignWithoutTopOverflow) {\n const isLastItem = items.length > 0 && selectedItem === items[items.length - 1].ref.current;\n contentWrapper.style.bottom = \"0px\";\n const viewportOffsetBottom = content.clientHeight - viewport.offsetTop - viewport.offsetHeight;\n const clampedTriggerMiddleToBottomEdge = Math.max(\n triggerMiddleToBottomEdge,\n selectedItemHalfHeight + // viewport might have padding bottom, include it to avoid a scrollable viewport\n (isLastItem ? viewportPaddingBottom : 0) + viewportOffsetBottom + contentBorderBottomWidth\n );\n const height = contentTopToItemMiddle + clampedTriggerMiddleToBottomEdge;\n contentWrapper.style.height = height + \"px\";\n } else {\n const isFirstItem = items.length > 0 && selectedItem === items[0].ref.current;\n contentWrapper.style.top = \"0px\";\n const clampedTopEdgeToTriggerMiddle = Math.max(\n topEdgeToTriggerMiddle,\n contentBorderTopWidth + viewport.offsetTop + // viewport might have padding top, include it to avoid a scrollable viewport\n (isFirstItem ? viewportPaddingTop : 0) + selectedItemHalfHeight\n );\n const height = clampedTopEdgeToTriggerMiddle + itemMiddleToContentBottom;\n contentWrapper.style.height = height + \"px\";\n viewport.scrollTop = contentTopToItemMiddle - topEdgeToTriggerMiddle + viewport.offsetTop;\n }\n contentWrapper.style.margin = `${CONTENT_MARGIN}px 0`;\n contentWrapper.style.minHeight = minContentHeight + \"px\";\n contentWrapper.style.maxHeight = availableHeight + \"px\";\n onPlaced?.();\n requestAnimationFrame(() => shouldExpandOnScrollRef.current = true);\n }\n }, [\n getItems,\n context.trigger,\n context.valueNode,\n contentWrapper,\n content,\n viewport,\n selectedItem,\n selectedItemText,\n context.dir,\n onPlaced\n ]);\n useLayoutEffect(() => position(), [position]);\n const [contentZIndex, setContentZIndex] = React.useState();\n useLayoutEffect(() => {\n if (content) setContentZIndex(window.getComputedStyle(content).zIndex);\n }, [content]);\n const handleScrollButtonChange = React.useCallback(\n (node) => {\n if (node && shouldRepositionRef.current === true) {\n position();\n focusSelectedItem?.();\n shouldRepositionRef.current = false;\n }\n },\n [position, focusSelectedItem]\n );\n return /* @__PURE__ */ jsx(\n SelectViewportProvider,\n {\n scope: __scopeSelect,\n contentWrapper,\n shouldExpandOnScrollRef,\n onScrollButtonChange: handleScrollButtonChange,\n children: /* @__PURE__ */ jsx(\n \"div\",\n {\n ref: setContentWrapper,\n style: {\n display: \"flex\",\n flexDirection: \"column\",\n position: \"fixed\",\n zIndex: contentZIndex\n },\n children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n ...popperProps,\n ref: composedRefs,\n style: {\n // When we get the height of the content, it includes borders. If we were to set\n // the height without having `boxSizing: 'border-box'` it would be too big.\n boxSizing: \"border-box\",\n // We need to ensure the content doesn't get taller than the wrapper\n maxHeight: \"100%\",\n ...popperProps.style\n }\n }\n )\n }\n )\n }\n );\n});\nSelectItemAlignedPosition.displayName = ITEM_ALIGNED_POSITION_NAME;\nvar POPPER_POSITION_NAME = \"SelectPopperPosition\";\nvar SelectPopperPosition = React.forwardRef((props, forwardedRef) => {\n const {\n __scopeSelect,\n align = \"start\",\n collisionPadding = CONTENT_MARGIN,\n ...popperProps\n } = props;\n const popperScope = usePopperScope(__scopeSelect);\n return /* @__PURE__ */ jsx(\n PopperPrimitive.Content,\n {\n ...popperScope,\n ...popperProps,\n ref: forwardedRef,\n align,\n collisionPadding,\n style: {\n // Ensure border-box for floating-ui calculations\n boxSizing: \"border-box\",\n ...popperProps.style,\n // re-namespace exposed content custom properties\n ...{\n \"--radix-select-content-transform-origin\": \"var(--radix-popper-transform-origin)\",\n \"--radix-select-content-available-width\": \"var(--radix-popper-available-width)\",\n \"--radix-select-content-available-height\": \"var(--radix-popper-available-height)\",\n \"--radix-select-trigger-width\": \"var(--radix-popper-anchor-width)\",\n \"--radix-select-trigger-height\": \"var(--radix-popper-anchor-height)\"\n }\n }\n }\n );\n});\nSelectPopperPosition.displayName = POPPER_POSITION_NAME;\nvar [SelectViewportProvider, useSelectViewportContext] = createSelectContext(CONTENT_NAME, {});\nvar VIEWPORT_NAME = \"SelectViewport\";\nvar SelectViewport = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSelect, nonce, ...viewportProps } = props;\n const contentContext = useSelectContentContext(VIEWPORT_NAME, __scopeSelect);\n const viewportContext = useSelectViewportContext(VIEWPORT_NAME, __scopeSelect);\n const composedRefs = useComposedRefs(forwardedRef, contentContext.onViewportChange);\n const prevScrollTopRef = React.useRef(0);\n return /* @__PURE__ */ jsxs(Fragment, { children: [\n /* @__PURE__ */ jsx(\n \"style\",\n {\n dangerouslySetInnerHTML: {\n __html: `[data-radix-select-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-select-viewport]::-webkit-scrollbar{display:none}`\n },\n nonce\n }\n ),\n /* @__PURE__ */ jsx(Collection.Slot, { scope: __scopeSelect, children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n \"data-radix-select-viewport\": \"\",\n role: \"presentation\",\n ...viewportProps,\n ref: composedRefs,\n style: {\n // we use position: 'relative' here on the `viewport` so that when we call\n // `selectedItem.offsetTop` in calculations, the offset is relative to the viewport\n // (independent of the scrollUpButton).\n position: \"relative\",\n flex: 1,\n // Viewport should only be scrollable in the vertical direction.\n // This won't work in vertical writing modes, so we'll need to\n // revisit this if/when that is supported\n // https://developer.chrome.com/blog/vertical-form-controls\n overflow: \"hidden auto\",\n ...viewportProps.style\n },\n onScroll: composeEventHandlers(viewportProps.onScroll, (event) => {\n const viewport = event.currentTarget;\n const { contentWrapper, shouldExpandOnScrollRef } = viewportContext;\n if (shouldExpandOnScrollRef?.current && contentWrapper) {\n const scrolledBy = Math.abs(prevScrollTopRef.current - viewport.scrollTop);\n if (scrolledBy > 0) {\n const availableHeight = window.innerHeight - CONTENT_MARGIN * 2;\n const cssMinHeight = parseFloat(contentWrapper.style.minHeight);\n const cssHeight = parseFloat(contentWrapper.style.height);\n const prevHeight = Math.max(cssMinHeight, cssHeight);\n if (prevHeight < availableHeight) {\n const nextHeight = prevHeight + scrolledBy;\n const clampedNextHeight = Math.min(availableHeight, nextHeight);\n const heightDiff = nextHeight - clampedNextHeight;\n contentWrapper.style.height = clampedNextHeight + \"px\";\n if (contentWrapper.style.bottom === \"0px\") {\n viewport.scrollTop = heightDiff > 0 ? heightDiff : 0;\n contentWrapper.style.justifyContent = \"flex-end\";\n }\n }\n }\n }\n prevScrollTopRef.current = viewport.scrollTop;\n })\n }\n ) })\n ] });\n }\n);\nSelectViewport.displayName = VIEWPORT_NAME;\nvar GROUP_NAME = \"SelectGroup\";\nvar [SelectGroupContextProvider, useSelectGroupContext] = createSelectContext(GROUP_NAME);\nvar SelectGroup = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSelect, ...groupProps } = props;\n const groupId = useId();\n return /* @__PURE__ */ jsx(SelectGroupContextProvider, { scope: __scopeSelect, id: groupId, children: /* @__PURE__ */ jsx(Primitive.div, { role: \"group\", \"aria-labelledby\": groupId, ...groupProps, ref: forwardedRef }) });\n }\n);\nSelectGroup.displayName = GROUP_NAME;\nvar LABEL_NAME = \"SelectLabel\";\nvar SelectLabel = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSelect, ...labelProps } = props;\n const groupContext = useSelectGroupContext(LABEL_NAME, __scopeSelect);\n return /* @__PURE__ */ jsx(Primitive.div, { id: groupContext.id, ...labelProps, ref: forwardedRef });\n }\n);\nSelectLabel.displayName = LABEL_NAME;\nvar ITEM_NAME = \"SelectItem\";\nvar [SelectItemContextProvider, useSelectItemContext] = createSelectContext(ITEM_NAME);\nvar SelectItem = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeSelect,\n value,\n disabled = false,\n textValue: textValueProp,\n ...itemProps\n } = props;\n const context = useSelectContext(ITEM_NAME, __scopeSelect);\n const contentContext = useSelectContentContext(ITEM_NAME, __scopeSelect);\n const isSelected = context.value === value;\n const [textValue, setTextValue] = React.useState(textValueProp ?? \"\");\n const [isFocused, setIsFocused] = React.useState(false);\n const composedRefs = useComposedRefs(\n forwardedRef,\n (node) => contentContext.itemRefCallback?.(node, value, disabled)\n );\n const textId = useId();\n const pointerTypeRef = React.useRef(\"touch\");\n const handleSelect = () => {\n if (!disabled) {\n context.onValueChange(value);\n context.onOpenChange(false);\n }\n };\n if (value === \"\") {\n throw new Error(\n \"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.\"\n );\n }\n return /* @__PURE__ */ jsx(\n SelectItemContextProvider,\n {\n scope: __scopeSelect,\n value,\n disabled,\n textId,\n isSelected,\n onItemTextChange: React.useCallback((node) => {\n setTextValue((prevTextValue) => prevTextValue || (node?.textContent ?? \"\").trim());\n }, []),\n children: /* @__PURE__ */ jsx(\n Collection.ItemSlot,\n {\n scope: __scopeSelect,\n value,\n disabled,\n textValue,\n children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n role: \"option\",\n \"aria-labelledby\": textId,\n \"data-highlighted\": isFocused ? \"\" : void 0,\n \"aria-selected\": isSelected && isFocused,\n \"data-state\": isSelected ? \"checked\" : \"unchecked\",\n \"aria-disabled\": disabled || void 0,\n \"data-disabled\": disabled ? \"\" : void 0,\n tabIndex: disabled ? void 0 : -1,\n ...itemProps,\n ref: composedRefs,\n onFocus: composeEventHandlers(itemProps.onFocus, () => setIsFocused(true)),\n onBlur: composeEventHandlers(itemProps.onBlur, () => setIsFocused(false)),\n onClick: composeEventHandlers(itemProps.onClick, () => {\n if (pointerTypeRef.current !== \"mouse\") handleSelect();\n }),\n onPointerUp: composeEventHandlers(itemProps.onPointerUp, () => {\n if (pointerTypeRef.current === \"mouse\") handleSelect();\n }),\n onPointerDown: composeEventHandlers(itemProps.onPointerDown, (event) => {\n pointerTypeRef.current = event.pointerType;\n }),\n onPointerMove: composeEventHandlers(itemProps.onPointerMove, (event) => {\n pointerTypeRef.current = event.pointerType;\n if (disabled) {\n contentContext.onItemLeave?.();\n } else if (pointerTypeRef.current === \"mouse\") {\n event.currentTarget.focus({ preventScroll: true });\n }\n }),\n onPointerLeave: composeEventHandlers(itemProps.onPointerLeave, (event) => {\n if (event.currentTarget === document.activeElement) {\n contentContext.onItemLeave?.();\n }\n }),\n onKeyDown: composeEventHandlers(itemProps.onKeyDown, (event) => {\n const isTypingAhead = contentContext.searchRef?.current !== \"\";\n if (isTypingAhead && event.key === \" \") return;\n if (SELECTION_KEYS.includes(event.key)) handleSelect();\n if (event.key === \" \") event.preventDefault();\n })\n }\n )\n }\n )\n }\n );\n }\n);\nSelectItem.displayName = ITEM_NAME;\nvar ITEM_TEXT_NAME = \"SelectItemText\";\nvar SelectItemText = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSelect, className, style, ...itemTextProps } = props;\n const context = useSelectContext(ITEM_TEXT_NAME, __scopeSelect);\n const contentContext = useSelectContentContext(ITEM_TEXT_NAME, __scopeSelect);\n const itemContext = useSelectItemContext(ITEM_TEXT_NAME, __scopeSelect);\n const nativeOptionsContext = useSelectNativeOptionsContext(ITEM_TEXT_NAME, __scopeSelect);\n const [itemTextNode, setItemTextNode] = React.useState(null);\n const composedRefs = useComposedRefs(\n forwardedRef,\n (node) => setItemTextNode(node),\n itemContext.onItemTextChange,\n (node) => contentContext.itemTextRefCallback?.(node, itemContext.value, itemContext.disabled)\n );\n const textContent = itemTextNode?.textContent;\n const nativeOption = React.useMemo(\n () => /* @__PURE__ */ jsx(\"option\", { value: itemContext.value, disabled: itemContext.disabled, children: textContent }, itemContext.value),\n [itemContext.disabled, itemContext.value, textContent]\n );\n const { onNativeOptionAdd, onNativeOptionRemove } = nativeOptionsContext;\n useLayoutEffect(() => {\n onNativeOptionAdd(nativeOption);\n return () => onNativeOptionRemove(nativeOption);\n }, [onNativeOptionAdd, onNativeOptionRemove, nativeOption]);\n return /* @__PURE__ */ jsxs(Fragment, { children: [\n /* @__PURE__ */ jsx(Primitive.span, { id: itemContext.textId, ...itemTextProps, ref: composedRefs }),\n itemContext.isSelected && context.valueNode && !context.valueNodeHasChildren ? ReactDOM.createPortal(itemTextProps.children, context.valueNode) : null\n ] });\n }\n);\nSelectItemText.displayName = ITEM_TEXT_NAME;\nvar ITEM_INDICATOR_NAME = \"SelectItemIndicator\";\nvar SelectItemIndicator = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSelect, ...itemIndicatorProps } = props;\n const itemContext = useSelectItemContext(ITEM_INDICATOR_NAME, __scopeSelect);\n return itemContext.isSelected ? /* @__PURE__ */ jsx(Primitive.span, { \"aria-hidden\": true, ...itemIndicatorProps, ref: forwardedRef }) : null;\n }\n);\nSelectItemIndicator.displayName = ITEM_INDICATOR_NAME;\nvar SCROLL_UP_BUTTON_NAME = \"SelectScrollUpButton\";\nvar SelectScrollUpButton = React.forwardRef((props, forwardedRef) => {\n const contentContext = useSelectContentContext(SCROLL_UP_BUTTON_NAME, props.__scopeSelect);\n const viewportContext = useSelectViewportContext(SCROLL_UP_BUTTON_NAME, props.__scopeSelect);\n const [canScrollUp, setCanScrollUp] = React.useState(false);\n const composedRefs = useComposedRefs(forwardedRef, viewportContext.onScrollButtonChange);\n useLayoutEffect(() => {\n if (contentContext.viewport && contentContext.isPositioned) {\n let handleScroll2 = function() {\n const canScrollUp2 = viewport.scrollTop > 0;\n setCanScrollUp(canScrollUp2);\n };\n var handleScroll = handleScroll2;\n const viewport = contentContext.viewport;\n handleScroll2();\n viewport.addEventListener(\"scroll\", handleScroll2);\n return () => viewport.removeEventListener(\"scroll\", handleScroll2);\n }\n }, [contentContext.viewport, contentContext.isPositioned]);\n return canScrollUp ? /* @__PURE__ */ jsx(\n SelectScrollButtonImpl,\n {\n ...props,\n ref: composedRefs,\n onAutoScroll: () => {\n const { viewport, selectedItem } = contentContext;\n if (viewport && selectedItem) {\n viewport.scrollTop = viewport.scrollTop - selectedItem.offsetHeight;\n }\n }\n }\n ) : null;\n});\nSelectScrollUpButton.displayName = SCROLL_UP_BUTTON_NAME;\nvar SCROLL_DOWN_BUTTON_NAME = \"SelectScrollDownButton\";\nvar SelectScrollDownButton = React.forwardRef((props, forwardedRef) => {\n const contentContext = useSelectContentContext(SCROLL_DOWN_BUTTON_NAME, props.__scopeSelect);\n const viewportContext = useSelectViewportContext(SCROLL_DOWN_BUTTON_NAME, props.__scopeSelect);\n const [canScrollDown, setCanScrollDown] = React.useState(false);\n const composedRefs = useComposedRefs(forwardedRef, viewportContext.onScrollButtonChange);\n useLayoutEffect(() => {\n if (contentContext.viewport && contentContext.isPositioned) {\n let handleScroll2 = function() {\n const maxScroll = viewport.scrollHeight - viewport.clientHeight;\n const canScrollDown2 = Math.ceil(viewport.scrollTop) < maxScroll;\n setCanScrollDown(canScrollDown2);\n };\n var handleScroll = handleScroll2;\n const viewport = contentContext.viewport;\n handleScroll2();\n viewport.addEventListener(\"scroll\", handleScroll2);\n return () => viewport.removeEventListener(\"scroll\", handleScroll2);\n }\n }, [contentContext.viewport, contentContext.isPositioned]);\n return canScrollDown ? /* @__PURE__ */ jsx(\n SelectScrollButtonImpl,\n {\n ...props,\n ref: composedRefs,\n onAutoScroll: () => {\n const { viewport, selectedItem } = contentContext;\n if (viewport && selectedItem) {\n viewport.scrollTop = viewport.scrollTop + selectedItem.offsetHeight;\n }\n }\n }\n ) : null;\n});\nSelectScrollDownButton.displayName = SCROLL_DOWN_BUTTON_NAME;\nvar SelectScrollButtonImpl = React.forwardRef((props, forwardedRef) => {\n const { __scopeSelect, onAutoScroll, ...scrollIndicatorProps } = props;\n const contentContext = useSelectContentContext(\"SelectScrollButton\", __scopeSelect);\n const autoScrollTimerRef = React.useRef(null);\n const getItems = useCollection(__scopeSelect);\n const clearAutoScrollTimer = React.useCallback(() => {\n if (autoScrollTimerRef.current !== null) {\n window.clearInterval(autoScrollTimerRef.current);\n autoScrollTimerRef.current = null;\n }\n }, []);\n React.useEffect(() => {\n return () => clearAutoScrollTimer();\n }, [clearAutoScrollTimer]);\n useLayoutEffect(() => {\n const activeItem = getItems().find((item) => item.ref.current === document.activeElement);\n activeItem?.ref.current?.scrollIntoView({ block: \"nearest\" });\n }, [getItems]);\n return /* @__PURE__ */ jsx(\n Primitive.div,\n {\n \"aria-hidden\": true,\n ...scrollIndicatorProps,\n ref: forwardedRef,\n style: { flexShrink: 0, ...scrollIndicatorProps.style },\n onPointerDown: composeEventHandlers(scrollIndicatorProps.onPointerDown, () => {\n if (autoScrollTimerRef.current === null) {\n autoScrollTimerRef.current = window.setInterval(onAutoScroll, 50);\n }\n }),\n onPointerMove: composeEventHandlers(scrollIndicatorProps.onPointerMove, () => {\n contentContext.onItemLeave?.();\n if (autoScrollTimerRef.current === null) {\n autoScrollTimerRef.current = window.setInterval(onAutoScroll, 50);\n }\n }),\n onPointerLeave: composeEventHandlers(scrollIndicatorProps.onPointerLeave, () => {\n clearAutoScrollTimer();\n })\n }\n );\n});\nvar SEPARATOR_NAME = \"SelectSeparator\";\nvar SelectSeparator = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSelect, ...separatorProps } = props;\n return /* @__PURE__ */ jsx(Primitive.div, { \"aria-hidden\": true, ...separatorProps, ref: forwardedRef });\n }\n);\nSelectSeparator.displayName = SEPARATOR_NAME;\nvar ARROW_NAME = \"SelectArrow\";\nvar SelectArrow = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSelect, ...arrowProps } = props;\n const popperScope = usePopperScope(__scopeSelect);\n const context = useSelectContext(ARROW_NAME, __scopeSelect);\n const contentContext = useSelectContentContext(ARROW_NAME, __scopeSelect);\n return context.open && contentContext.position === \"popper\" ? /* @__PURE__ */ jsx(PopperPrimitive.Arrow, { ...popperScope, ...arrowProps, ref: forwardedRef }) : null;\n }\n);\nSelectArrow.displayName = ARROW_NAME;\nvar BUBBLE_INPUT_NAME = \"SelectBubbleInput\";\nvar SelectBubbleInput = React.forwardRef(\n ({ __scopeSelect, value, ...props }, forwardedRef) => {\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n const prevValue = usePrevious(value);\n React.useEffect(() => {\n const select = ref.current;\n if (!select) return;\n const selectProto = window.HTMLSelectElement.prototype;\n const descriptor = Object.getOwnPropertyDescriptor(\n selectProto,\n \"value\"\n );\n const setValue = descriptor.set;\n if (prevValue !== value && setValue) {\n const event = new Event(\"change\", { bubbles: true });\n setValue.call(select, value);\n select.dispatchEvent(event);\n }\n }, [prevValue, value]);\n return /* @__PURE__ */ jsx(\n Primitive.select,\n {\n ...props,\n style: { ...VISUALLY_HIDDEN_STYLES, ...props.style },\n ref: composedRefs,\n defaultValue: value\n }\n );\n }\n);\nSelectBubbleInput.displayName = BUBBLE_INPUT_NAME;\nfunction shouldShowPlaceholder(value) {\n return value === \"\" || value === void 0;\n}\nfunction useTypeaheadSearch(onSearchChange) {\n const handleSearchChange = useCallbackRef(onSearchChange);\n const searchRef = React.useRef(\"\");\n const timerRef = React.useRef(0);\n const handleTypeaheadSearch = React.useCallback(\n (key) => {\n const search = searchRef.current + key;\n handleSearchChange(search);\n (function updateSearch(value) {\n searchRef.current = value;\n window.clearTimeout(timerRef.current);\n if (value !== \"\") timerRef.current = window.setTimeout(() => updateSearch(\"\"), 1e3);\n })(search);\n },\n [handleSearchChange]\n );\n const resetTypeahead = React.useCallback(() => {\n searchRef.current = \"\";\n window.clearTimeout(timerRef.current);\n }, []);\n React.useEffect(() => {\n return () => window.clearTimeout(timerRef.current);\n }, []);\n return [searchRef, handleTypeaheadSearch, resetTypeahead];\n}\nfunction findNextItem(items, search, currentItem) {\n const isRepeated = search.length > 1 && Array.from(search).every((char) => char === search[0]);\n const normalizedSearch = isRepeated ? search[0] : search;\n const currentItemIndex = currentItem ? items.indexOf(currentItem) : -1;\n let wrappedItems = wrapArray(items, Math.max(currentItemIndex, 0));\n const excludeCurrentItem = normalizedSearch.length === 1;\n if (excludeCurrentItem) wrappedItems = wrappedItems.filter((v) => v !== currentItem);\n const nextItem = wrappedItems.find(\n (item) => item.textValue.toLowerCase().startsWith(normalizedSearch.toLowerCase())\n );\n return nextItem !== currentItem ? nextItem : void 0;\n}\nfunction wrapArray(array, startIndex) {\n return array.map((_, index) => array[(startIndex + index) % array.length]);\n}\nvar Root2 = Select;\nvar Trigger = SelectTrigger;\nvar Value = SelectValue;\nvar Icon = SelectIcon;\nvar Portal = SelectPortal;\nvar Content2 = SelectContent;\nvar Viewport = SelectViewport;\nvar Group = SelectGroup;\nvar Label = SelectLabel;\nvar Item = SelectItem;\nvar ItemText = SelectItemText;\nvar ItemIndicator = SelectItemIndicator;\nvar ScrollUpButton = SelectScrollUpButton;\nvar ScrollDownButton = SelectScrollDownButton;\nvar Separator = SelectSeparator;\nvar Arrow2 = SelectArrow;\nexport {\n Arrow2 as Arrow,\n Content2 as Content,\n Group,\n Icon,\n Item,\n ItemIndicator,\n ItemText,\n Label,\n Portal,\n Root2 as Root,\n ScrollDownButton,\n ScrollUpButton,\n Select,\n SelectArrow,\n SelectContent,\n SelectGroup,\n SelectIcon,\n SelectItem,\n SelectItemIndicator,\n SelectItemText,\n SelectLabel,\n SelectPortal,\n SelectScrollDownButton,\n SelectScrollUpButton,\n SelectSeparator,\n SelectTrigger,\n SelectValue,\n SelectViewport,\n Separator,\n Trigger,\n Value,\n Viewport,\n createSelectScope\n};\n//# sourceMappingURL=index.mjs.map\n","'use client';\n\nimport * as React from 'react';\nimport { Select as SelectPrimitive } from 'radix-ui';\nimport { Check, ChevronDown, ChevronUp } from 'lucide-react';\n\nimport { cn } from '@/lib/utils';\n\nconst Select = SelectPrimitive.Root;\n\nconst SelectGroup = SelectPrimitive.Group;\n\nconst SelectValue = SelectPrimitive.Value;\n\nconst SelectTrigger = React.forwardRef<\n React.ComponentRef<typeof SelectPrimitive.Trigger>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Trigger>\n>(({ className, children, ...props }, ref) => (\n <SelectPrimitive.Trigger\n ref={ref}\n className={cn(\n 'border-input ring-offset-background placeholder:text-muted-foreground focus:ring-ring flex h-9 w-full items-center justify-between rounded-md border bg-transparent px-3 py-2 text-sm whitespace-nowrap shadow-sm focus:ring-1 focus:outline-none disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1',\n className\n )}\n {...props}\n >\n {children}\n <SelectPrimitive.Icon asChild>\n <ChevronDown className=\"h-4 w-4 opacity-50\" />\n </SelectPrimitive.Icon>\n </SelectPrimitive.Trigger>\n));\nSelectTrigger.displayName = SelectPrimitive.Trigger.displayName;\n\nconst SelectScrollUpButton = React.forwardRef<\n React.ComponentRef<typeof SelectPrimitive.ScrollUpButton>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.ScrollUpButton>\n>(({ className, ...props }, ref) => (\n <SelectPrimitive.ScrollUpButton\n ref={ref}\n className={cn('flex cursor-default items-center justify-center py-1', className)}\n {...props}\n >\n <ChevronUp className=\"h-4 w-4\" />\n </SelectPrimitive.ScrollUpButton>\n));\nSelectScrollUpButton.displayName = SelectPrimitive.ScrollUpButton.displayName;\n\nconst SelectScrollDownButton = React.forwardRef<\n React.ComponentRef<typeof SelectPrimitive.ScrollDownButton>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.ScrollDownButton>\n>(({ className, ...props }, ref) => (\n <SelectPrimitive.ScrollDownButton\n ref={ref}\n className={cn('flex cursor-default items-center justify-center py-1', className)}\n {...props}\n >\n <ChevronDown className=\"h-4 w-4\" />\n </SelectPrimitive.ScrollDownButton>\n));\nSelectScrollDownButton.displayName = SelectPrimitive.ScrollDownButton.displayName;\n\nconst SelectContent = React.forwardRef<\n React.ComponentRef<typeof SelectPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Content>\n>(({ className, children, position = 'popper', ...props }, ref) => (\n <SelectPrimitive.Portal>\n <SelectPrimitive.Content\n ref={ref}\n className={cn(\n 'bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 relative z-50 max-h-96 min-w-[8rem] overflow-hidden rounded-md border shadow-md',\n position === 'popper' &&\n 'data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1',\n className\n )}\n position={position}\n {...props}\n >\n <SelectScrollUpButton />\n <SelectPrimitive.Viewport\n className={cn(\n 'p-1',\n position === 'popper' &&\n 'h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]'\n )}\n >\n {children}\n </SelectPrimitive.Viewport>\n <SelectScrollDownButton />\n </SelectPrimitive.Content>\n </SelectPrimitive.Portal>\n));\nSelectContent.displayName = SelectPrimitive.Content.displayName;\n\nconst SelectLabel = React.forwardRef<\n React.ComponentRef<typeof SelectPrimitive.Label>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Label>\n>(({ className, ...props }, ref) => (\n <SelectPrimitive.Label\n ref={ref}\n className={cn('px-2 py-1.5 text-sm font-semibold', className)}\n {...props}\n />\n));\nSelectLabel.displayName = SelectPrimitive.Label.displayName;\n\nconst SelectItem = React.forwardRef<\n React.ComponentRef<typeof SelectPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Item>\n>(({ className, children, ...props }, ref) => (\n <SelectPrimitive.Item\n ref={ref}\n className={cn(\n 'focus:bg-accent focus:text-accent-foreground relative flex w-full cursor-default items-center rounded-sm py-1.5 ps-2 pe-8 text-sm outline-none select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50',\n className\n )}\n {...props}\n >\n <span className=\"absolute end-2 flex h-3.5 w-3.5 items-center justify-center\">\n <SelectPrimitive.ItemIndicator>\n <Check className=\"h-4 w-4\" />\n </SelectPrimitive.ItemIndicator>\n </span>\n <SelectPrimitive.ItemText>{children}</SelectPrimitive.ItemText>\n </SelectPrimitive.Item>\n));\nSelectItem.displayName = SelectPrimitive.Item.displayName;\n\nconst SelectSeparator = React.forwardRef<\n React.ComponentRef<typeof SelectPrimitive.Separator>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Separator>\n>(({ className, ...props }, ref) => (\n <SelectPrimitive.Separator\n ref={ref}\n className={cn('bg-muted -mx-1 my-1 h-px', className)}\n {...props}\n />\n));\nSelectSeparator.displayName = SelectPrimitive.Separator.displayName;\n\nexport {\n Select,\n SelectGroup,\n SelectValue,\n SelectTrigger,\n SelectContent,\n SelectLabel,\n SelectItem,\n SelectSeparator,\n SelectScrollUpButton,\n SelectScrollDownButton,\n};\n","// packages/core/number/src/number.ts\nfunction clamp(value, [min, max]) {\n return Math.min(max, Math.max(min, value));\n}\nexport {\n clamp\n};\n//# sourceMappingURL=index.mjs.map\n"],"names":[],"mappings":"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","ignoreList":[0,2]}
1
+ {"version":3,"sources":["../../../../../../../node_modules/.pnpm/%40radix-ui%2Breact-select%402.2.6_%40types%2Breact-dom%4019.2.3_%40types%2Breact%4019.2.10__%40types%2Breact_1f7b4ff668a805c08339bb4e58c413b0/node_modules/%40radix-ui/react-select/dist/index.mjs","../../../../../../../src/presentation/web/components/ui/select.tsx"],"sourcesContent":["\"use client\";\n\n// src/select.tsx\nimport * as React from \"react\";\nimport * as ReactDOM from \"react-dom\";\nimport { clamp } from \"@radix-ui/number\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { createCollection } from \"@radix-ui/react-collection\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { useDirection } from \"@radix-ui/react-direction\";\nimport { DismissableLayer } from \"@radix-ui/react-dismissable-layer\";\nimport { useFocusGuards } from \"@radix-ui/react-focus-guards\";\nimport { FocusScope } from \"@radix-ui/react-focus-scope\";\nimport { useId } from \"@radix-ui/react-id\";\nimport * as PopperPrimitive from \"@radix-ui/react-popper\";\nimport { createPopperScope } from \"@radix-ui/react-popper\";\nimport { Portal as PortalPrimitive } from \"@radix-ui/react-portal\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { createSlot } from \"@radix-ui/react-slot\";\nimport { useCallbackRef } from \"@radix-ui/react-use-callback-ref\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\nimport { usePrevious } from \"@radix-ui/react-use-previous\";\nimport { VISUALLY_HIDDEN_STYLES } from \"@radix-ui/react-visually-hidden\";\nimport { hideOthers } from \"aria-hidden\";\nimport { RemoveScroll } from \"react-remove-scroll\";\nimport { Fragment, jsx, jsxs } from \"react/jsx-runtime\";\nvar OPEN_KEYS = [\" \", \"Enter\", \"ArrowUp\", \"ArrowDown\"];\nvar SELECTION_KEYS = [\" \", \"Enter\"];\nvar SELECT_NAME = \"Select\";\nvar [Collection, useCollection, createCollectionScope] = createCollection(SELECT_NAME);\nvar [createSelectContext, createSelectScope] = createContextScope(SELECT_NAME, [\n createCollectionScope,\n createPopperScope\n]);\nvar usePopperScope = createPopperScope();\nvar [SelectProvider, useSelectContext] = createSelectContext(SELECT_NAME);\nvar [SelectNativeOptionsProvider, useSelectNativeOptionsContext] = createSelectContext(SELECT_NAME);\nvar Select = (props) => {\n const {\n __scopeSelect,\n children,\n open: openProp,\n defaultOpen,\n onOpenChange,\n value: valueProp,\n defaultValue,\n onValueChange,\n dir,\n name,\n autoComplete,\n disabled,\n required,\n form\n } = props;\n const popperScope = usePopperScope(__scopeSelect);\n const [trigger, setTrigger] = React.useState(null);\n const [valueNode, setValueNode] = React.useState(null);\n const [valueNodeHasChildren, setValueNodeHasChildren] = React.useState(false);\n const direction = useDirection(dir);\n const [open, setOpen] = useControllableState({\n prop: openProp,\n defaultProp: defaultOpen ?? false,\n onChange: onOpenChange,\n caller: SELECT_NAME\n });\n const [value, setValue] = useControllableState({\n prop: valueProp,\n defaultProp: defaultValue,\n onChange: onValueChange,\n caller: SELECT_NAME\n });\n const triggerPointerDownPosRef = React.useRef(null);\n const isFormControl = trigger ? form || !!trigger.closest(\"form\") : true;\n const [nativeOptionsSet, setNativeOptionsSet] = React.useState(/* @__PURE__ */ new Set());\n const nativeSelectKey = Array.from(nativeOptionsSet).map((option) => option.props.value).join(\";\");\n return /* @__PURE__ */ jsx(PopperPrimitive.Root, { ...popperScope, children: /* @__PURE__ */ jsxs(\n SelectProvider,\n {\n required,\n scope: __scopeSelect,\n trigger,\n onTriggerChange: setTrigger,\n valueNode,\n onValueNodeChange: setValueNode,\n valueNodeHasChildren,\n onValueNodeHasChildrenChange: setValueNodeHasChildren,\n contentId: useId(),\n value,\n onValueChange: setValue,\n open,\n onOpenChange: setOpen,\n dir: direction,\n triggerPointerDownPosRef,\n disabled,\n children: [\n /* @__PURE__ */ jsx(Collection.Provider, { scope: __scopeSelect, children: /* @__PURE__ */ jsx(\n SelectNativeOptionsProvider,\n {\n scope: props.__scopeSelect,\n onNativeOptionAdd: React.useCallback((option) => {\n setNativeOptionsSet((prev) => new Set(prev).add(option));\n }, []),\n onNativeOptionRemove: React.useCallback((option) => {\n setNativeOptionsSet((prev) => {\n const optionsSet = new Set(prev);\n optionsSet.delete(option);\n return optionsSet;\n });\n }, []),\n children\n }\n ) }),\n isFormControl ? /* @__PURE__ */ jsxs(\n SelectBubbleInput,\n {\n \"aria-hidden\": true,\n required,\n tabIndex: -1,\n name,\n autoComplete,\n value,\n onChange: (event) => setValue(event.target.value),\n disabled,\n form,\n children: [\n value === void 0 ? /* @__PURE__ */ jsx(\"option\", { value: \"\" }) : null,\n Array.from(nativeOptionsSet)\n ]\n },\n nativeSelectKey\n ) : null\n ]\n }\n ) });\n};\nSelect.displayName = SELECT_NAME;\nvar TRIGGER_NAME = \"SelectTrigger\";\nvar SelectTrigger = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSelect, disabled = false, ...triggerProps } = props;\n const popperScope = usePopperScope(__scopeSelect);\n const context = useSelectContext(TRIGGER_NAME, __scopeSelect);\n const isDisabled = context.disabled || disabled;\n const composedRefs = useComposedRefs(forwardedRef, context.onTriggerChange);\n const getItems = useCollection(__scopeSelect);\n const pointerTypeRef = React.useRef(\"touch\");\n const [searchRef, handleTypeaheadSearch, resetTypeahead] = useTypeaheadSearch((search) => {\n const enabledItems = getItems().filter((item) => !item.disabled);\n const currentItem = enabledItems.find((item) => item.value === context.value);\n const nextItem = findNextItem(enabledItems, search, currentItem);\n if (nextItem !== void 0) {\n context.onValueChange(nextItem.value);\n }\n });\n const handleOpen = (pointerEvent) => {\n if (!isDisabled) {\n context.onOpenChange(true);\n resetTypeahead();\n }\n if (pointerEvent) {\n context.triggerPointerDownPosRef.current = {\n x: Math.round(pointerEvent.pageX),\n y: Math.round(pointerEvent.pageY)\n };\n }\n };\n return /* @__PURE__ */ jsx(PopperPrimitive.Anchor, { asChild: true, ...popperScope, children: /* @__PURE__ */ jsx(\n Primitive.button,\n {\n type: \"button\",\n role: \"combobox\",\n \"aria-controls\": context.contentId,\n \"aria-expanded\": context.open,\n \"aria-required\": context.required,\n \"aria-autocomplete\": \"none\",\n dir: context.dir,\n \"data-state\": context.open ? \"open\" : \"closed\",\n disabled: isDisabled,\n \"data-disabled\": isDisabled ? \"\" : void 0,\n \"data-placeholder\": shouldShowPlaceholder(context.value) ? \"\" : void 0,\n ...triggerProps,\n ref: composedRefs,\n onClick: composeEventHandlers(triggerProps.onClick, (event) => {\n event.currentTarget.focus();\n if (pointerTypeRef.current !== \"mouse\") {\n handleOpen(event);\n }\n }),\n onPointerDown: composeEventHandlers(triggerProps.onPointerDown, (event) => {\n pointerTypeRef.current = event.pointerType;\n const target = event.target;\n if (target.hasPointerCapture(event.pointerId)) {\n target.releasePointerCapture(event.pointerId);\n }\n if (event.button === 0 && event.ctrlKey === false && event.pointerType === \"mouse\") {\n handleOpen(event);\n event.preventDefault();\n }\n }),\n onKeyDown: composeEventHandlers(triggerProps.onKeyDown, (event) => {\n const isTypingAhead = searchRef.current !== \"\";\n const isModifierKey = event.ctrlKey || event.altKey || event.metaKey;\n if (!isModifierKey && event.key.length === 1) handleTypeaheadSearch(event.key);\n if (isTypingAhead && event.key === \" \") return;\n if (OPEN_KEYS.includes(event.key)) {\n handleOpen();\n event.preventDefault();\n }\n })\n }\n ) });\n }\n);\nSelectTrigger.displayName = TRIGGER_NAME;\nvar VALUE_NAME = \"SelectValue\";\nvar SelectValue = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSelect, className, style, children, placeholder = \"\", ...valueProps } = props;\n const context = useSelectContext(VALUE_NAME, __scopeSelect);\n const { onValueNodeHasChildrenChange } = context;\n const hasChildren = children !== void 0;\n const composedRefs = useComposedRefs(forwardedRef, context.onValueNodeChange);\n useLayoutEffect(() => {\n onValueNodeHasChildrenChange(hasChildren);\n }, [onValueNodeHasChildrenChange, hasChildren]);\n return /* @__PURE__ */ jsx(\n Primitive.span,\n {\n ...valueProps,\n ref: composedRefs,\n style: { pointerEvents: \"none\" },\n children: shouldShowPlaceholder(context.value) ? /* @__PURE__ */ jsx(Fragment, { children: placeholder }) : children\n }\n );\n }\n);\nSelectValue.displayName = VALUE_NAME;\nvar ICON_NAME = \"SelectIcon\";\nvar SelectIcon = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSelect, children, ...iconProps } = props;\n return /* @__PURE__ */ jsx(Primitive.span, { \"aria-hidden\": true, ...iconProps, ref: forwardedRef, children: children || \"\\u25BC\" });\n }\n);\nSelectIcon.displayName = ICON_NAME;\nvar PORTAL_NAME = \"SelectPortal\";\nvar SelectPortal = (props) => {\n return /* @__PURE__ */ jsx(PortalPrimitive, { asChild: true, ...props });\n};\nSelectPortal.displayName = PORTAL_NAME;\nvar CONTENT_NAME = \"SelectContent\";\nvar SelectContent = React.forwardRef(\n (props, forwardedRef) => {\n const context = useSelectContext(CONTENT_NAME, props.__scopeSelect);\n const [fragment, setFragment] = React.useState();\n useLayoutEffect(() => {\n setFragment(new DocumentFragment());\n }, []);\n if (!context.open) {\n const frag = fragment;\n return frag ? ReactDOM.createPortal(\n /* @__PURE__ */ jsx(SelectContentProvider, { scope: props.__scopeSelect, children: /* @__PURE__ */ jsx(Collection.Slot, { scope: props.__scopeSelect, children: /* @__PURE__ */ jsx(\"div\", { children: props.children }) }) }),\n frag\n ) : null;\n }\n return /* @__PURE__ */ jsx(SelectContentImpl, { ...props, ref: forwardedRef });\n }\n);\nSelectContent.displayName = CONTENT_NAME;\nvar CONTENT_MARGIN = 10;\nvar [SelectContentProvider, useSelectContentContext] = createSelectContext(CONTENT_NAME);\nvar CONTENT_IMPL_NAME = \"SelectContentImpl\";\nvar Slot = createSlot(\"SelectContent.RemoveScroll\");\nvar SelectContentImpl = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeSelect,\n position = \"item-aligned\",\n onCloseAutoFocus,\n onEscapeKeyDown,\n onPointerDownOutside,\n //\n // PopperContent props\n side,\n sideOffset,\n align,\n alignOffset,\n arrowPadding,\n collisionBoundary,\n collisionPadding,\n sticky,\n hideWhenDetached,\n avoidCollisions,\n //\n ...contentProps\n } = props;\n const context = useSelectContext(CONTENT_NAME, __scopeSelect);\n const [content, setContent] = React.useState(null);\n const [viewport, setViewport] = React.useState(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setContent(node));\n const [selectedItem, setSelectedItem] = React.useState(null);\n const [selectedItemText, setSelectedItemText] = React.useState(\n null\n );\n const getItems = useCollection(__scopeSelect);\n const [isPositioned, setIsPositioned] = React.useState(false);\n const firstValidItemFoundRef = React.useRef(false);\n React.useEffect(() => {\n if (content) return hideOthers(content);\n }, [content]);\n useFocusGuards();\n const focusFirst = React.useCallback(\n (candidates) => {\n const [firstItem, ...restItems] = getItems().map((item) => item.ref.current);\n const [lastItem] = restItems.slice(-1);\n const PREVIOUSLY_FOCUSED_ELEMENT = document.activeElement;\n for (const candidate of candidates) {\n if (candidate === PREVIOUSLY_FOCUSED_ELEMENT) return;\n candidate?.scrollIntoView({ block: \"nearest\" });\n if (candidate === firstItem && viewport) viewport.scrollTop = 0;\n if (candidate === lastItem && viewport) viewport.scrollTop = viewport.scrollHeight;\n candidate?.focus();\n if (document.activeElement !== PREVIOUSLY_FOCUSED_ELEMENT) return;\n }\n },\n [getItems, viewport]\n );\n const focusSelectedItem = React.useCallback(\n () => focusFirst([selectedItem, content]),\n [focusFirst, selectedItem, content]\n );\n React.useEffect(() => {\n if (isPositioned) {\n focusSelectedItem();\n }\n }, [isPositioned, focusSelectedItem]);\n const { onOpenChange, triggerPointerDownPosRef } = context;\n React.useEffect(() => {\n if (content) {\n let pointerMoveDelta = { x: 0, y: 0 };\n const handlePointerMove = (event) => {\n pointerMoveDelta = {\n x: Math.abs(Math.round(event.pageX) - (triggerPointerDownPosRef.current?.x ?? 0)),\n y: Math.abs(Math.round(event.pageY) - (triggerPointerDownPosRef.current?.y ?? 0))\n };\n };\n const handlePointerUp = (event) => {\n if (pointerMoveDelta.x <= 10 && pointerMoveDelta.y <= 10) {\n event.preventDefault();\n } else {\n if (!content.contains(event.target)) {\n onOpenChange(false);\n }\n }\n document.removeEventListener(\"pointermove\", handlePointerMove);\n triggerPointerDownPosRef.current = null;\n };\n if (triggerPointerDownPosRef.current !== null) {\n document.addEventListener(\"pointermove\", handlePointerMove);\n document.addEventListener(\"pointerup\", handlePointerUp, { capture: true, once: true });\n }\n return () => {\n document.removeEventListener(\"pointermove\", handlePointerMove);\n document.removeEventListener(\"pointerup\", handlePointerUp, { capture: true });\n };\n }\n }, [content, onOpenChange, triggerPointerDownPosRef]);\n React.useEffect(() => {\n const close = () => onOpenChange(false);\n window.addEventListener(\"blur\", close);\n window.addEventListener(\"resize\", close);\n return () => {\n window.removeEventListener(\"blur\", close);\n window.removeEventListener(\"resize\", close);\n };\n }, [onOpenChange]);\n const [searchRef, handleTypeaheadSearch] = useTypeaheadSearch((search) => {\n const enabledItems = getItems().filter((item) => !item.disabled);\n const currentItem = enabledItems.find((item) => item.ref.current === document.activeElement);\n const nextItem = findNextItem(enabledItems, search, currentItem);\n if (nextItem) {\n setTimeout(() => nextItem.ref.current.focus());\n }\n });\n const itemRefCallback = React.useCallback(\n (node, value, disabled) => {\n const isFirstValidItem = !firstValidItemFoundRef.current && !disabled;\n const isSelectedItem = context.value !== void 0 && context.value === value;\n if (isSelectedItem || isFirstValidItem) {\n setSelectedItem(node);\n if (isFirstValidItem) firstValidItemFoundRef.current = true;\n }\n },\n [context.value]\n );\n const handleItemLeave = React.useCallback(() => content?.focus(), [content]);\n const itemTextRefCallback = React.useCallback(\n (node, value, disabled) => {\n const isFirstValidItem = !firstValidItemFoundRef.current && !disabled;\n const isSelectedItem = context.value !== void 0 && context.value === value;\n if (isSelectedItem || isFirstValidItem) {\n setSelectedItemText(node);\n }\n },\n [context.value]\n );\n const SelectPosition = position === \"popper\" ? SelectPopperPosition : SelectItemAlignedPosition;\n const popperContentProps = SelectPosition === SelectPopperPosition ? {\n side,\n sideOffset,\n align,\n alignOffset,\n arrowPadding,\n collisionBoundary,\n collisionPadding,\n sticky,\n hideWhenDetached,\n avoidCollisions\n } : {};\n return /* @__PURE__ */ jsx(\n SelectContentProvider,\n {\n scope: __scopeSelect,\n content,\n viewport,\n onViewportChange: setViewport,\n itemRefCallback,\n selectedItem,\n onItemLeave: handleItemLeave,\n itemTextRefCallback,\n focusSelectedItem,\n selectedItemText,\n position,\n isPositioned,\n searchRef,\n children: /* @__PURE__ */ jsx(RemoveScroll, { as: Slot, allowPinchZoom: true, children: /* @__PURE__ */ jsx(\n FocusScope,\n {\n asChild: true,\n trapped: context.open,\n onMountAutoFocus: (event) => {\n event.preventDefault();\n },\n onUnmountAutoFocus: composeEventHandlers(onCloseAutoFocus, (event) => {\n context.trigger?.focus({ preventScroll: true });\n event.preventDefault();\n }),\n children: /* @__PURE__ */ jsx(\n DismissableLayer,\n {\n asChild: true,\n disableOutsidePointerEvents: true,\n onEscapeKeyDown,\n onPointerDownOutside,\n onFocusOutside: (event) => event.preventDefault(),\n onDismiss: () => context.onOpenChange(false),\n children: /* @__PURE__ */ jsx(\n SelectPosition,\n {\n role: \"listbox\",\n id: context.contentId,\n \"data-state\": context.open ? \"open\" : \"closed\",\n dir: context.dir,\n onContextMenu: (event) => event.preventDefault(),\n ...contentProps,\n ...popperContentProps,\n onPlaced: () => setIsPositioned(true),\n ref: composedRefs,\n style: {\n // flex layout so we can place the scroll buttons properly\n display: \"flex\",\n flexDirection: \"column\",\n // reset the outline by default as the content MAY get focused\n outline: \"none\",\n ...contentProps.style\n },\n onKeyDown: composeEventHandlers(contentProps.onKeyDown, (event) => {\n const isModifierKey = event.ctrlKey || event.altKey || event.metaKey;\n if (event.key === \"Tab\") event.preventDefault();\n if (!isModifierKey && event.key.length === 1) handleTypeaheadSearch(event.key);\n if ([\"ArrowUp\", \"ArrowDown\", \"Home\", \"End\"].includes(event.key)) {\n const items = getItems().filter((item) => !item.disabled);\n let candidateNodes = items.map((item) => item.ref.current);\n if ([\"ArrowUp\", \"End\"].includes(event.key)) {\n candidateNodes = candidateNodes.slice().reverse();\n }\n if ([\"ArrowUp\", \"ArrowDown\"].includes(event.key)) {\n const currentElement = event.target;\n const currentIndex = candidateNodes.indexOf(currentElement);\n candidateNodes = candidateNodes.slice(currentIndex + 1);\n }\n setTimeout(() => focusFirst(candidateNodes));\n event.preventDefault();\n }\n })\n }\n )\n }\n )\n }\n ) })\n }\n );\n }\n);\nSelectContentImpl.displayName = CONTENT_IMPL_NAME;\nvar ITEM_ALIGNED_POSITION_NAME = \"SelectItemAlignedPosition\";\nvar SelectItemAlignedPosition = React.forwardRef((props, forwardedRef) => {\n const { __scopeSelect, onPlaced, ...popperProps } = props;\n const context = useSelectContext(CONTENT_NAME, __scopeSelect);\n const contentContext = useSelectContentContext(CONTENT_NAME, __scopeSelect);\n const [contentWrapper, setContentWrapper] = React.useState(null);\n const [content, setContent] = React.useState(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setContent(node));\n const getItems = useCollection(__scopeSelect);\n const shouldExpandOnScrollRef = React.useRef(false);\n const shouldRepositionRef = React.useRef(true);\n const { viewport, selectedItem, selectedItemText, focusSelectedItem } = contentContext;\n const position = React.useCallback(() => {\n if (context.trigger && context.valueNode && contentWrapper && content && viewport && selectedItem && selectedItemText) {\n const triggerRect = context.trigger.getBoundingClientRect();\n const contentRect = content.getBoundingClientRect();\n const valueNodeRect = context.valueNode.getBoundingClientRect();\n const itemTextRect = selectedItemText.getBoundingClientRect();\n if (context.dir !== \"rtl\") {\n const itemTextOffset = itemTextRect.left - contentRect.left;\n const left = valueNodeRect.left - itemTextOffset;\n const leftDelta = triggerRect.left - left;\n const minContentWidth = triggerRect.width + leftDelta;\n const contentWidth = Math.max(minContentWidth, contentRect.width);\n const rightEdge = window.innerWidth - CONTENT_MARGIN;\n const clampedLeft = clamp(left, [\n CONTENT_MARGIN,\n // Prevents the content from going off the starting edge of the\n // viewport. It may still go off the ending edge, but this can be\n // controlled by the user since they may want to manage overflow in a\n // specific way.\n // https://github.com/radix-ui/primitives/issues/2049\n Math.max(CONTENT_MARGIN, rightEdge - contentWidth)\n ]);\n contentWrapper.style.minWidth = minContentWidth + \"px\";\n contentWrapper.style.left = clampedLeft + \"px\";\n } else {\n const itemTextOffset = contentRect.right - itemTextRect.right;\n const right = window.innerWidth - valueNodeRect.right - itemTextOffset;\n const rightDelta = window.innerWidth - triggerRect.right - right;\n const minContentWidth = triggerRect.width + rightDelta;\n const contentWidth = Math.max(minContentWidth, contentRect.width);\n const leftEdge = window.innerWidth - CONTENT_MARGIN;\n const clampedRight = clamp(right, [\n CONTENT_MARGIN,\n Math.max(CONTENT_MARGIN, leftEdge - contentWidth)\n ]);\n contentWrapper.style.minWidth = minContentWidth + \"px\";\n contentWrapper.style.right = clampedRight + \"px\";\n }\n const items = getItems();\n const availableHeight = window.innerHeight - CONTENT_MARGIN * 2;\n const itemsHeight = viewport.scrollHeight;\n const contentStyles = window.getComputedStyle(content);\n const contentBorderTopWidth = parseInt(contentStyles.borderTopWidth, 10);\n const contentPaddingTop = parseInt(contentStyles.paddingTop, 10);\n const contentBorderBottomWidth = parseInt(contentStyles.borderBottomWidth, 10);\n const contentPaddingBottom = parseInt(contentStyles.paddingBottom, 10);\n const fullContentHeight = contentBorderTopWidth + contentPaddingTop + itemsHeight + contentPaddingBottom + contentBorderBottomWidth;\n const minContentHeight = Math.min(selectedItem.offsetHeight * 5, fullContentHeight);\n const viewportStyles = window.getComputedStyle(viewport);\n const viewportPaddingTop = parseInt(viewportStyles.paddingTop, 10);\n const viewportPaddingBottom = parseInt(viewportStyles.paddingBottom, 10);\n const topEdgeToTriggerMiddle = triggerRect.top + triggerRect.height / 2 - CONTENT_MARGIN;\n const triggerMiddleToBottomEdge = availableHeight - topEdgeToTriggerMiddle;\n const selectedItemHalfHeight = selectedItem.offsetHeight / 2;\n const itemOffsetMiddle = selectedItem.offsetTop + selectedItemHalfHeight;\n const contentTopToItemMiddle = contentBorderTopWidth + contentPaddingTop + itemOffsetMiddle;\n const itemMiddleToContentBottom = fullContentHeight - contentTopToItemMiddle;\n const willAlignWithoutTopOverflow = contentTopToItemMiddle <= topEdgeToTriggerMiddle;\n if (willAlignWithoutTopOverflow) {\n const isLastItem = items.length > 0 && selectedItem === items[items.length - 1].ref.current;\n contentWrapper.style.bottom = \"0px\";\n const viewportOffsetBottom = content.clientHeight - viewport.offsetTop - viewport.offsetHeight;\n const clampedTriggerMiddleToBottomEdge = Math.max(\n triggerMiddleToBottomEdge,\n selectedItemHalfHeight + // viewport might have padding bottom, include it to avoid a scrollable viewport\n (isLastItem ? viewportPaddingBottom : 0) + viewportOffsetBottom + contentBorderBottomWidth\n );\n const height = contentTopToItemMiddle + clampedTriggerMiddleToBottomEdge;\n contentWrapper.style.height = height + \"px\";\n } else {\n const isFirstItem = items.length > 0 && selectedItem === items[0].ref.current;\n contentWrapper.style.top = \"0px\";\n const clampedTopEdgeToTriggerMiddle = Math.max(\n topEdgeToTriggerMiddle,\n contentBorderTopWidth + viewport.offsetTop + // viewport might have padding top, include it to avoid a scrollable viewport\n (isFirstItem ? viewportPaddingTop : 0) + selectedItemHalfHeight\n );\n const height = clampedTopEdgeToTriggerMiddle + itemMiddleToContentBottom;\n contentWrapper.style.height = height + \"px\";\n viewport.scrollTop = contentTopToItemMiddle - topEdgeToTriggerMiddle + viewport.offsetTop;\n }\n contentWrapper.style.margin = `${CONTENT_MARGIN}px 0`;\n contentWrapper.style.minHeight = minContentHeight + \"px\";\n contentWrapper.style.maxHeight = availableHeight + \"px\";\n onPlaced?.();\n requestAnimationFrame(() => shouldExpandOnScrollRef.current = true);\n }\n }, [\n getItems,\n context.trigger,\n context.valueNode,\n contentWrapper,\n content,\n viewport,\n selectedItem,\n selectedItemText,\n context.dir,\n onPlaced\n ]);\n useLayoutEffect(() => position(), [position]);\n const [contentZIndex, setContentZIndex] = React.useState();\n useLayoutEffect(() => {\n if (content) setContentZIndex(window.getComputedStyle(content).zIndex);\n }, [content]);\n const handleScrollButtonChange = React.useCallback(\n (node) => {\n if (node && shouldRepositionRef.current === true) {\n position();\n focusSelectedItem?.();\n shouldRepositionRef.current = false;\n }\n },\n [position, focusSelectedItem]\n );\n return /* @__PURE__ */ jsx(\n SelectViewportProvider,\n {\n scope: __scopeSelect,\n contentWrapper,\n shouldExpandOnScrollRef,\n onScrollButtonChange: handleScrollButtonChange,\n children: /* @__PURE__ */ jsx(\n \"div\",\n {\n ref: setContentWrapper,\n style: {\n display: \"flex\",\n flexDirection: \"column\",\n position: \"fixed\",\n zIndex: contentZIndex\n },\n children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n ...popperProps,\n ref: composedRefs,\n style: {\n // When we get the height of the content, it includes borders. If we were to set\n // the height without having `boxSizing: 'border-box'` it would be too big.\n boxSizing: \"border-box\",\n // We need to ensure the content doesn't get taller than the wrapper\n maxHeight: \"100%\",\n ...popperProps.style\n }\n }\n )\n }\n )\n }\n );\n});\nSelectItemAlignedPosition.displayName = ITEM_ALIGNED_POSITION_NAME;\nvar POPPER_POSITION_NAME = \"SelectPopperPosition\";\nvar SelectPopperPosition = React.forwardRef((props, forwardedRef) => {\n const {\n __scopeSelect,\n align = \"start\",\n collisionPadding = CONTENT_MARGIN,\n ...popperProps\n } = props;\n const popperScope = usePopperScope(__scopeSelect);\n return /* @__PURE__ */ jsx(\n PopperPrimitive.Content,\n {\n ...popperScope,\n ...popperProps,\n ref: forwardedRef,\n align,\n collisionPadding,\n style: {\n // Ensure border-box for floating-ui calculations\n boxSizing: \"border-box\",\n ...popperProps.style,\n // re-namespace exposed content custom properties\n ...{\n \"--radix-select-content-transform-origin\": \"var(--radix-popper-transform-origin)\",\n \"--radix-select-content-available-width\": \"var(--radix-popper-available-width)\",\n \"--radix-select-content-available-height\": \"var(--radix-popper-available-height)\",\n \"--radix-select-trigger-width\": \"var(--radix-popper-anchor-width)\",\n \"--radix-select-trigger-height\": \"var(--radix-popper-anchor-height)\"\n }\n }\n }\n );\n});\nSelectPopperPosition.displayName = POPPER_POSITION_NAME;\nvar [SelectViewportProvider, useSelectViewportContext] = createSelectContext(CONTENT_NAME, {});\nvar VIEWPORT_NAME = \"SelectViewport\";\nvar SelectViewport = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSelect, nonce, ...viewportProps } = props;\n const contentContext = useSelectContentContext(VIEWPORT_NAME, __scopeSelect);\n const viewportContext = useSelectViewportContext(VIEWPORT_NAME, __scopeSelect);\n const composedRefs = useComposedRefs(forwardedRef, contentContext.onViewportChange);\n const prevScrollTopRef = React.useRef(0);\n return /* @__PURE__ */ jsxs(Fragment, { children: [\n /* @__PURE__ */ jsx(\n \"style\",\n {\n dangerouslySetInnerHTML: {\n __html: `[data-radix-select-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-select-viewport]::-webkit-scrollbar{display:none}`\n },\n nonce\n }\n ),\n /* @__PURE__ */ jsx(Collection.Slot, { scope: __scopeSelect, children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n \"data-radix-select-viewport\": \"\",\n role: \"presentation\",\n ...viewportProps,\n ref: composedRefs,\n style: {\n // we use position: 'relative' here on the `viewport` so that when we call\n // `selectedItem.offsetTop` in calculations, the offset is relative to the viewport\n // (independent of the scrollUpButton).\n position: \"relative\",\n flex: 1,\n // Viewport should only be scrollable in the vertical direction.\n // This won't work in vertical writing modes, so we'll need to\n // revisit this if/when that is supported\n // https://developer.chrome.com/blog/vertical-form-controls\n overflow: \"hidden auto\",\n ...viewportProps.style\n },\n onScroll: composeEventHandlers(viewportProps.onScroll, (event) => {\n const viewport = event.currentTarget;\n const { contentWrapper, shouldExpandOnScrollRef } = viewportContext;\n if (shouldExpandOnScrollRef?.current && contentWrapper) {\n const scrolledBy = Math.abs(prevScrollTopRef.current - viewport.scrollTop);\n if (scrolledBy > 0) {\n const availableHeight = window.innerHeight - CONTENT_MARGIN * 2;\n const cssMinHeight = parseFloat(contentWrapper.style.minHeight);\n const cssHeight = parseFloat(contentWrapper.style.height);\n const prevHeight = Math.max(cssMinHeight, cssHeight);\n if (prevHeight < availableHeight) {\n const nextHeight = prevHeight + scrolledBy;\n const clampedNextHeight = Math.min(availableHeight, nextHeight);\n const heightDiff = nextHeight - clampedNextHeight;\n contentWrapper.style.height = clampedNextHeight + \"px\";\n if (contentWrapper.style.bottom === \"0px\") {\n viewport.scrollTop = heightDiff > 0 ? heightDiff : 0;\n contentWrapper.style.justifyContent = \"flex-end\";\n }\n }\n }\n }\n prevScrollTopRef.current = viewport.scrollTop;\n })\n }\n ) })\n ] });\n }\n);\nSelectViewport.displayName = VIEWPORT_NAME;\nvar GROUP_NAME = \"SelectGroup\";\nvar [SelectGroupContextProvider, useSelectGroupContext] = createSelectContext(GROUP_NAME);\nvar SelectGroup = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSelect, ...groupProps } = props;\n const groupId = useId();\n return /* @__PURE__ */ jsx(SelectGroupContextProvider, { scope: __scopeSelect, id: groupId, children: /* @__PURE__ */ jsx(Primitive.div, { role: \"group\", \"aria-labelledby\": groupId, ...groupProps, ref: forwardedRef }) });\n }\n);\nSelectGroup.displayName = GROUP_NAME;\nvar LABEL_NAME = \"SelectLabel\";\nvar SelectLabel = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSelect, ...labelProps } = props;\n const groupContext = useSelectGroupContext(LABEL_NAME, __scopeSelect);\n return /* @__PURE__ */ jsx(Primitive.div, { id: groupContext.id, ...labelProps, ref: forwardedRef });\n }\n);\nSelectLabel.displayName = LABEL_NAME;\nvar ITEM_NAME = \"SelectItem\";\nvar [SelectItemContextProvider, useSelectItemContext] = createSelectContext(ITEM_NAME);\nvar SelectItem = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeSelect,\n value,\n disabled = false,\n textValue: textValueProp,\n ...itemProps\n } = props;\n const context = useSelectContext(ITEM_NAME, __scopeSelect);\n const contentContext = useSelectContentContext(ITEM_NAME, __scopeSelect);\n const isSelected = context.value === value;\n const [textValue, setTextValue] = React.useState(textValueProp ?? \"\");\n const [isFocused, setIsFocused] = React.useState(false);\n const composedRefs = useComposedRefs(\n forwardedRef,\n (node) => contentContext.itemRefCallback?.(node, value, disabled)\n );\n const textId = useId();\n const pointerTypeRef = React.useRef(\"touch\");\n const handleSelect = () => {\n if (!disabled) {\n context.onValueChange(value);\n context.onOpenChange(false);\n }\n };\n if (value === \"\") {\n throw new Error(\n \"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.\"\n );\n }\n return /* @__PURE__ */ jsx(\n SelectItemContextProvider,\n {\n scope: __scopeSelect,\n value,\n disabled,\n textId,\n isSelected,\n onItemTextChange: React.useCallback((node) => {\n setTextValue((prevTextValue) => prevTextValue || (node?.textContent ?? \"\").trim());\n }, []),\n children: /* @__PURE__ */ jsx(\n Collection.ItemSlot,\n {\n scope: __scopeSelect,\n value,\n disabled,\n textValue,\n children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n role: \"option\",\n \"aria-labelledby\": textId,\n \"data-highlighted\": isFocused ? \"\" : void 0,\n \"aria-selected\": isSelected && isFocused,\n \"data-state\": isSelected ? \"checked\" : \"unchecked\",\n \"aria-disabled\": disabled || void 0,\n \"data-disabled\": disabled ? \"\" : void 0,\n tabIndex: disabled ? void 0 : -1,\n ...itemProps,\n ref: composedRefs,\n onFocus: composeEventHandlers(itemProps.onFocus, () => setIsFocused(true)),\n onBlur: composeEventHandlers(itemProps.onBlur, () => setIsFocused(false)),\n onClick: composeEventHandlers(itemProps.onClick, () => {\n if (pointerTypeRef.current !== \"mouse\") handleSelect();\n }),\n onPointerUp: composeEventHandlers(itemProps.onPointerUp, () => {\n if (pointerTypeRef.current === \"mouse\") handleSelect();\n }),\n onPointerDown: composeEventHandlers(itemProps.onPointerDown, (event) => {\n pointerTypeRef.current = event.pointerType;\n }),\n onPointerMove: composeEventHandlers(itemProps.onPointerMove, (event) => {\n pointerTypeRef.current = event.pointerType;\n if (disabled) {\n contentContext.onItemLeave?.();\n } else if (pointerTypeRef.current === \"mouse\") {\n event.currentTarget.focus({ preventScroll: true });\n }\n }),\n onPointerLeave: composeEventHandlers(itemProps.onPointerLeave, (event) => {\n if (event.currentTarget === document.activeElement) {\n contentContext.onItemLeave?.();\n }\n }),\n onKeyDown: composeEventHandlers(itemProps.onKeyDown, (event) => {\n const isTypingAhead = contentContext.searchRef?.current !== \"\";\n if (isTypingAhead && event.key === \" \") return;\n if (SELECTION_KEYS.includes(event.key)) handleSelect();\n if (event.key === \" \") event.preventDefault();\n })\n }\n )\n }\n )\n }\n );\n }\n);\nSelectItem.displayName = ITEM_NAME;\nvar ITEM_TEXT_NAME = \"SelectItemText\";\nvar SelectItemText = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSelect, className, style, ...itemTextProps } = props;\n const context = useSelectContext(ITEM_TEXT_NAME, __scopeSelect);\n const contentContext = useSelectContentContext(ITEM_TEXT_NAME, __scopeSelect);\n const itemContext = useSelectItemContext(ITEM_TEXT_NAME, __scopeSelect);\n const nativeOptionsContext = useSelectNativeOptionsContext(ITEM_TEXT_NAME, __scopeSelect);\n const [itemTextNode, setItemTextNode] = React.useState(null);\n const composedRefs = useComposedRefs(\n forwardedRef,\n (node) => setItemTextNode(node),\n itemContext.onItemTextChange,\n (node) => contentContext.itemTextRefCallback?.(node, itemContext.value, itemContext.disabled)\n );\n const textContent = itemTextNode?.textContent;\n const nativeOption = React.useMemo(\n () => /* @__PURE__ */ jsx(\"option\", { value: itemContext.value, disabled: itemContext.disabled, children: textContent }, itemContext.value),\n [itemContext.disabled, itemContext.value, textContent]\n );\n const { onNativeOptionAdd, onNativeOptionRemove } = nativeOptionsContext;\n useLayoutEffect(() => {\n onNativeOptionAdd(nativeOption);\n return () => onNativeOptionRemove(nativeOption);\n }, [onNativeOptionAdd, onNativeOptionRemove, nativeOption]);\n return /* @__PURE__ */ jsxs(Fragment, { children: [\n /* @__PURE__ */ jsx(Primitive.span, { id: itemContext.textId, ...itemTextProps, ref: composedRefs }),\n itemContext.isSelected && context.valueNode && !context.valueNodeHasChildren ? ReactDOM.createPortal(itemTextProps.children, context.valueNode) : null\n ] });\n }\n);\nSelectItemText.displayName = ITEM_TEXT_NAME;\nvar ITEM_INDICATOR_NAME = \"SelectItemIndicator\";\nvar SelectItemIndicator = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSelect, ...itemIndicatorProps } = props;\n const itemContext = useSelectItemContext(ITEM_INDICATOR_NAME, __scopeSelect);\n return itemContext.isSelected ? /* @__PURE__ */ jsx(Primitive.span, { \"aria-hidden\": true, ...itemIndicatorProps, ref: forwardedRef }) : null;\n }\n);\nSelectItemIndicator.displayName = ITEM_INDICATOR_NAME;\nvar SCROLL_UP_BUTTON_NAME = \"SelectScrollUpButton\";\nvar SelectScrollUpButton = React.forwardRef((props, forwardedRef) => {\n const contentContext = useSelectContentContext(SCROLL_UP_BUTTON_NAME, props.__scopeSelect);\n const viewportContext = useSelectViewportContext(SCROLL_UP_BUTTON_NAME, props.__scopeSelect);\n const [canScrollUp, setCanScrollUp] = React.useState(false);\n const composedRefs = useComposedRefs(forwardedRef, viewportContext.onScrollButtonChange);\n useLayoutEffect(() => {\n if (contentContext.viewport && contentContext.isPositioned) {\n let handleScroll2 = function() {\n const canScrollUp2 = viewport.scrollTop > 0;\n setCanScrollUp(canScrollUp2);\n };\n var handleScroll = handleScroll2;\n const viewport = contentContext.viewport;\n handleScroll2();\n viewport.addEventListener(\"scroll\", handleScroll2);\n return () => viewport.removeEventListener(\"scroll\", handleScroll2);\n }\n }, [contentContext.viewport, contentContext.isPositioned]);\n return canScrollUp ? /* @__PURE__ */ jsx(\n SelectScrollButtonImpl,\n {\n ...props,\n ref: composedRefs,\n onAutoScroll: () => {\n const { viewport, selectedItem } = contentContext;\n if (viewport && selectedItem) {\n viewport.scrollTop = viewport.scrollTop - selectedItem.offsetHeight;\n }\n }\n }\n ) : null;\n});\nSelectScrollUpButton.displayName = SCROLL_UP_BUTTON_NAME;\nvar SCROLL_DOWN_BUTTON_NAME = \"SelectScrollDownButton\";\nvar SelectScrollDownButton = React.forwardRef((props, forwardedRef) => {\n const contentContext = useSelectContentContext(SCROLL_DOWN_BUTTON_NAME, props.__scopeSelect);\n const viewportContext = useSelectViewportContext(SCROLL_DOWN_BUTTON_NAME, props.__scopeSelect);\n const [canScrollDown, setCanScrollDown] = React.useState(false);\n const composedRefs = useComposedRefs(forwardedRef, viewportContext.onScrollButtonChange);\n useLayoutEffect(() => {\n if (contentContext.viewport && contentContext.isPositioned) {\n let handleScroll2 = function() {\n const maxScroll = viewport.scrollHeight - viewport.clientHeight;\n const canScrollDown2 = Math.ceil(viewport.scrollTop) < maxScroll;\n setCanScrollDown(canScrollDown2);\n };\n var handleScroll = handleScroll2;\n const viewport = contentContext.viewport;\n handleScroll2();\n viewport.addEventListener(\"scroll\", handleScroll2);\n return () => viewport.removeEventListener(\"scroll\", handleScroll2);\n }\n }, [contentContext.viewport, contentContext.isPositioned]);\n return canScrollDown ? /* @__PURE__ */ jsx(\n SelectScrollButtonImpl,\n {\n ...props,\n ref: composedRefs,\n onAutoScroll: () => {\n const { viewport, selectedItem } = contentContext;\n if (viewport && selectedItem) {\n viewport.scrollTop = viewport.scrollTop + selectedItem.offsetHeight;\n }\n }\n }\n ) : null;\n});\nSelectScrollDownButton.displayName = SCROLL_DOWN_BUTTON_NAME;\nvar SelectScrollButtonImpl = React.forwardRef((props, forwardedRef) => {\n const { __scopeSelect, onAutoScroll, ...scrollIndicatorProps } = props;\n const contentContext = useSelectContentContext(\"SelectScrollButton\", __scopeSelect);\n const autoScrollTimerRef = React.useRef(null);\n const getItems = useCollection(__scopeSelect);\n const clearAutoScrollTimer = React.useCallback(() => {\n if (autoScrollTimerRef.current !== null) {\n window.clearInterval(autoScrollTimerRef.current);\n autoScrollTimerRef.current = null;\n }\n }, []);\n React.useEffect(() => {\n return () => clearAutoScrollTimer();\n }, [clearAutoScrollTimer]);\n useLayoutEffect(() => {\n const activeItem = getItems().find((item) => item.ref.current === document.activeElement);\n activeItem?.ref.current?.scrollIntoView({ block: \"nearest\" });\n }, [getItems]);\n return /* @__PURE__ */ jsx(\n Primitive.div,\n {\n \"aria-hidden\": true,\n ...scrollIndicatorProps,\n ref: forwardedRef,\n style: { flexShrink: 0, ...scrollIndicatorProps.style },\n onPointerDown: composeEventHandlers(scrollIndicatorProps.onPointerDown, () => {\n if (autoScrollTimerRef.current === null) {\n autoScrollTimerRef.current = window.setInterval(onAutoScroll, 50);\n }\n }),\n onPointerMove: composeEventHandlers(scrollIndicatorProps.onPointerMove, () => {\n contentContext.onItemLeave?.();\n if (autoScrollTimerRef.current === null) {\n autoScrollTimerRef.current = window.setInterval(onAutoScroll, 50);\n }\n }),\n onPointerLeave: composeEventHandlers(scrollIndicatorProps.onPointerLeave, () => {\n clearAutoScrollTimer();\n })\n }\n );\n});\nvar SEPARATOR_NAME = \"SelectSeparator\";\nvar SelectSeparator = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSelect, ...separatorProps } = props;\n return /* @__PURE__ */ jsx(Primitive.div, { \"aria-hidden\": true, ...separatorProps, ref: forwardedRef });\n }\n);\nSelectSeparator.displayName = SEPARATOR_NAME;\nvar ARROW_NAME = \"SelectArrow\";\nvar SelectArrow = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSelect, ...arrowProps } = props;\n const popperScope = usePopperScope(__scopeSelect);\n const context = useSelectContext(ARROW_NAME, __scopeSelect);\n const contentContext = useSelectContentContext(ARROW_NAME, __scopeSelect);\n return context.open && contentContext.position === \"popper\" ? /* @__PURE__ */ jsx(PopperPrimitive.Arrow, { ...popperScope, ...arrowProps, ref: forwardedRef }) : null;\n }\n);\nSelectArrow.displayName = ARROW_NAME;\nvar BUBBLE_INPUT_NAME = \"SelectBubbleInput\";\nvar SelectBubbleInput = React.forwardRef(\n ({ __scopeSelect, value, ...props }, forwardedRef) => {\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n const prevValue = usePrevious(value);\n React.useEffect(() => {\n const select = ref.current;\n if (!select) return;\n const selectProto = window.HTMLSelectElement.prototype;\n const descriptor = Object.getOwnPropertyDescriptor(\n selectProto,\n \"value\"\n );\n const setValue = descriptor.set;\n if (prevValue !== value && setValue) {\n const event = new Event(\"change\", { bubbles: true });\n setValue.call(select, value);\n select.dispatchEvent(event);\n }\n }, [prevValue, value]);\n return /* @__PURE__ */ jsx(\n Primitive.select,\n {\n ...props,\n style: { ...VISUALLY_HIDDEN_STYLES, ...props.style },\n ref: composedRefs,\n defaultValue: value\n }\n );\n }\n);\nSelectBubbleInput.displayName = BUBBLE_INPUT_NAME;\nfunction shouldShowPlaceholder(value) {\n return value === \"\" || value === void 0;\n}\nfunction useTypeaheadSearch(onSearchChange) {\n const handleSearchChange = useCallbackRef(onSearchChange);\n const searchRef = React.useRef(\"\");\n const timerRef = React.useRef(0);\n const handleTypeaheadSearch = React.useCallback(\n (key) => {\n const search = searchRef.current + key;\n handleSearchChange(search);\n (function updateSearch(value) {\n searchRef.current = value;\n window.clearTimeout(timerRef.current);\n if (value !== \"\") timerRef.current = window.setTimeout(() => updateSearch(\"\"), 1e3);\n })(search);\n },\n [handleSearchChange]\n );\n const resetTypeahead = React.useCallback(() => {\n searchRef.current = \"\";\n window.clearTimeout(timerRef.current);\n }, []);\n React.useEffect(() => {\n return () => window.clearTimeout(timerRef.current);\n }, []);\n return [searchRef, handleTypeaheadSearch, resetTypeahead];\n}\nfunction findNextItem(items, search, currentItem) {\n const isRepeated = search.length > 1 && Array.from(search).every((char) => char === search[0]);\n const normalizedSearch = isRepeated ? search[0] : search;\n const currentItemIndex = currentItem ? items.indexOf(currentItem) : -1;\n let wrappedItems = wrapArray(items, Math.max(currentItemIndex, 0));\n const excludeCurrentItem = normalizedSearch.length === 1;\n if (excludeCurrentItem) wrappedItems = wrappedItems.filter((v) => v !== currentItem);\n const nextItem = wrappedItems.find(\n (item) => item.textValue.toLowerCase().startsWith(normalizedSearch.toLowerCase())\n );\n return nextItem !== currentItem ? nextItem : void 0;\n}\nfunction wrapArray(array, startIndex) {\n return array.map((_, index) => array[(startIndex + index) % array.length]);\n}\nvar Root2 = Select;\nvar Trigger = SelectTrigger;\nvar Value = SelectValue;\nvar Icon = SelectIcon;\nvar Portal = SelectPortal;\nvar Content2 = SelectContent;\nvar Viewport = SelectViewport;\nvar Group = SelectGroup;\nvar Label = SelectLabel;\nvar Item = SelectItem;\nvar ItemText = SelectItemText;\nvar ItemIndicator = SelectItemIndicator;\nvar ScrollUpButton = SelectScrollUpButton;\nvar ScrollDownButton = SelectScrollDownButton;\nvar Separator = SelectSeparator;\nvar Arrow2 = SelectArrow;\nexport {\n Arrow2 as Arrow,\n Content2 as Content,\n Group,\n Icon,\n Item,\n ItemIndicator,\n ItemText,\n Label,\n Portal,\n Root2 as Root,\n ScrollDownButton,\n ScrollUpButton,\n Select,\n SelectArrow,\n SelectContent,\n SelectGroup,\n SelectIcon,\n SelectItem,\n SelectItemIndicator,\n SelectItemText,\n SelectLabel,\n SelectPortal,\n SelectScrollDownButton,\n SelectScrollUpButton,\n SelectSeparator,\n SelectTrigger,\n SelectValue,\n SelectViewport,\n Separator,\n Trigger,\n Value,\n Viewport,\n createSelectScope\n};\n//# sourceMappingURL=index.mjs.map\n","'use client';\n\nimport * as React from 'react';\nimport { Select as SelectPrimitive } from 'radix-ui';\nimport { Check, ChevronDown, ChevronUp } from 'lucide-react';\n\nimport { cn } from '@/lib/utils';\n\nconst Select = SelectPrimitive.Root;\n\nconst SelectGroup = SelectPrimitive.Group;\n\nconst SelectValue = SelectPrimitive.Value;\n\nconst SelectTrigger = React.forwardRef<\n React.ComponentRef<typeof SelectPrimitive.Trigger>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Trigger>\n>(({ className, children, ...props }, ref) => (\n <SelectPrimitive.Trigger\n ref={ref}\n className={cn(\n 'border-input ring-offset-background placeholder:text-muted-foreground focus:ring-ring flex h-9 w-full items-center justify-between rounded-md border bg-transparent px-3 py-2 text-sm whitespace-nowrap shadow-sm focus:ring-1 focus:outline-none disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1',\n className\n )}\n {...props}\n >\n {children}\n <SelectPrimitive.Icon asChild>\n <ChevronDown className=\"h-4 w-4 opacity-50\" />\n </SelectPrimitive.Icon>\n </SelectPrimitive.Trigger>\n));\nSelectTrigger.displayName = SelectPrimitive.Trigger.displayName;\n\nconst SelectScrollUpButton = React.forwardRef<\n React.ComponentRef<typeof SelectPrimitive.ScrollUpButton>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.ScrollUpButton>\n>(({ className, ...props }, ref) => (\n <SelectPrimitive.ScrollUpButton\n ref={ref}\n className={cn('flex cursor-default items-center justify-center py-1', className)}\n {...props}\n >\n <ChevronUp className=\"h-4 w-4\" />\n </SelectPrimitive.ScrollUpButton>\n));\nSelectScrollUpButton.displayName = SelectPrimitive.ScrollUpButton.displayName;\n\nconst SelectScrollDownButton = React.forwardRef<\n React.ComponentRef<typeof SelectPrimitive.ScrollDownButton>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.ScrollDownButton>\n>(({ className, ...props }, ref) => (\n <SelectPrimitive.ScrollDownButton\n ref={ref}\n className={cn('flex cursor-default items-center justify-center py-1', className)}\n {...props}\n >\n <ChevronDown className=\"h-4 w-4\" />\n </SelectPrimitive.ScrollDownButton>\n));\nSelectScrollDownButton.displayName = SelectPrimitive.ScrollDownButton.displayName;\n\nconst SelectContent = React.forwardRef<\n React.ComponentRef<typeof SelectPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Content>\n>(({ className, children, position = 'popper', ...props }, ref) => (\n <SelectPrimitive.Portal>\n <SelectPrimitive.Content\n ref={ref}\n className={cn(\n 'bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 relative z-50 max-h-96 min-w-[8rem] overflow-hidden rounded-md border shadow-md',\n position === 'popper' &&\n 'data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1',\n className\n )}\n position={position}\n {...props}\n >\n <SelectScrollUpButton />\n <SelectPrimitive.Viewport\n className={cn(\n 'p-1',\n position === 'popper' &&\n 'h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]'\n )}\n >\n {children}\n </SelectPrimitive.Viewport>\n <SelectScrollDownButton />\n </SelectPrimitive.Content>\n </SelectPrimitive.Portal>\n));\nSelectContent.displayName = SelectPrimitive.Content.displayName;\n\nconst SelectLabel = React.forwardRef<\n React.ComponentRef<typeof SelectPrimitive.Label>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Label>\n>(({ className, ...props }, ref) => (\n <SelectPrimitive.Label\n ref={ref}\n className={cn('px-2 py-1.5 text-sm font-semibold', className)}\n {...props}\n />\n));\nSelectLabel.displayName = SelectPrimitive.Label.displayName;\n\nconst SelectItem = React.forwardRef<\n React.ComponentRef<typeof SelectPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Item>\n>(({ className, children, ...props }, ref) => (\n <SelectPrimitive.Item\n ref={ref}\n className={cn(\n 'focus:bg-accent focus:text-accent-foreground relative flex w-full cursor-default items-center rounded-sm py-1.5 ps-2 pe-8 text-sm outline-none select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50',\n className\n )}\n {...props}\n >\n <span className=\"absolute end-2 flex h-3.5 w-3.5 items-center justify-center\">\n <SelectPrimitive.ItemIndicator>\n <Check className=\"h-4 w-4\" />\n </SelectPrimitive.ItemIndicator>\n </span>\n <SelectPrimitive.ItemText>{children}</SelectPrimitive.ItemText>\n </SelectPrimitive.Item>\n));\nSelectItem.displayName = SelectPrimitive.Item.displayName;\n\nconst SelectSeparator = React.forwardRef<\n React.ComponentRef<typeof SelectPrimitive.Separator>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Separator>\n>(({ className, ...props }, ref) => (\n <SelectPrimitive.Separator\n ref={ref}\n className={cn('bg-muted -mx-1 my-1 h-px', className)}\n {...props}\n />\n));\nSelectSeparator.displayName = SelectPrimitive.Separator.displayName;\n\nexport {\n Select,\n SelectGroup,\n SelectValue,\n SelectTrigger,\n SelectContent,\n SelectLabel,\n SelectItem,\n SelectSeparator,\n SelectScrollUpButton,\n SelectScrollDownButton,\n};\n"],"names":[],"mappings":"wDCEA,EAAA,EAAA,CAAA,CAAA,ODEA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,MACA,EAAA,EAAA,CAAA,CAAA,MACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,MACA,EAAA,EAAA,CAAA,CAAA,OAEA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OAEI,EAAY,CAAC,IAAK,QAAS,UAAW,YAAY,CAClD,EAAiB,CAAC,IAAK,QAAQ,CAC/B,EAAc,SACd,CAAC,EAAY,EAAe,EAAsB,CAAG,CAAA,EAAA,EAAA,gBAAA,AAAgB,EAAC,GACtE,CAAC,EAAqB,EAAkB,CAAG,CAAA,EAAA,EAAA,kBAAA,AAAkB,EAAC,EAAa,CAC7E,EACA,EAAA,iBAAiB,CAClB,EACG,EAAiB,CAAA,EAAA,EAAA,iBAAA,AAAiB,IAClC,CAAC,EAAgB,EAAiB,CAAG,EAAoB,GACzD,CAAC,EAA6B,EAA8B,CAAG,EAAoB,GACnF,EAAS,AAAC,IACZ,GAAM,eACJ,CAAa,CACb,UAAQ,CACR,KAAM,CAAQ,aACd,CAAW,cACX,CAAY,CACZ,MAAO,CAAS,cAChB,CAAY,eACZ,CAAa,KACb,CAAG,MACH,CAAI,cACJ,CAAY,UACZ,CAAQ,UACR,CAAQ,MACR,CAAI,CACL,CAAG,EACE,EAAc,EAAe,GAC7B,CAAC,EAAS,EAAW,CAAG,EAAA,QAAc,CAAC,MACvC,CAAC,EAAW,EAAa,CAAG,EAAA,QAAc,CAAC,MAC3C,CAAC,EAAsB,EAAwB,CAAG,EAAA,QAAc,CAAC,IACjE,EAAY,CAAA,EAAA,EAAA,YAAA,AAAY,EAAC,GACzB,CAAC,EAAM,EAAQ,CAAG,CAAA,EAAA,EAAA,oBAAA,AAAoB,EAAC,CAC3C,KAAM,EACN,YAAa,IAAe,EAC5B,SAAU,EACV,OAAQ,CACV,GACM,CAAC,EAAO,EAAS,CAAG,CAAA,EAAA,EAAA,oBAAA,AAAoB,EAAC,CAC7C,KAAM,EACN,YAAa,EACb,SAAU,EACV,OAAQ,CACV,GACM,EAA2B,EAAA,MAAY,CAAC,MACxC,GAAgB,GAAU,GAAQ,CAAC,CAAC,EAAQ,OAAO,CAAC,QACpD,CAAC,CAD6D,CAC3C,EAAoB,CAAG,EAAA,QAAc,CAAC,AAAgB,IAAI,KAC7E,EAAkB,EADoD,IAC9C,IAAI,CAAC,GAAkB,GAAG,CAAE,AAAD,GAAY,EAAO,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,KAC9F,MAAuB,CAAA,AAAhB,EAAgB,EAAA,GAAA,AAAG,EAAC,EAAA,EAAP,EAA2B,CAAE,CAAE,GAAG,CAAW,CAAE,SAA0B,CAAhB,AAAgB,EAAA,EAAA,IAAA,AAAI,EAC/F,EACA,CAFwF,SAGtF,EACA,MAAO,UACP,EACA,gBAAiB,EACjB,YACA,kBAAmB,uBACnB,EACA,6BAA8B,EAC9B,UAAW,CAAA,EAAA,EAAA,KAAA,AAAK,UAChB,EACA,cAAe,OACf,EACA,aAAc,EACd,IAAK,2BACL,WACA,EACA,SAAU,CACQ,CAAA,EAAA,EAAA,GAAG,AAAH,EAAI,EAAW,QAAQ,CAAE,CAAE,MAAO,EAAe,SAA0B,CAAhB,AAAgB,EAAA,EAAA,GAAA,AAAG,EAC5F,EACA,CACE,CAHoF,KAG7E,EAAM,aAAa,CAC1B,kBAAmB,EAAA,WAAiB,CAAC,AAAC,IACpC,EAAoB,AAAC,GAAS,IAAI,IAAI,GAAM,GAAG,CAAC,GAClD,EAAG,EAAE,EACL,qBAAsB,EAAA,WAAiB,CAAC,AAAC,IACvC,EAAoB,AAAC,IACnB,IAAM,EAAa,IAAI,IAAI,GAE3B,OADA,EAAW,MAAM,CAAC,GACX,CACT,EACF,EAAG,EAAE,WACL,CACF,EACA,GACF,EAAgC,CAAA,EAAA,EAAA,IAAA,AAAI,EAClC,GACA,AAFc,CAGZ,YAHyB,GAGV,WACf,EACA,SAAU,CAAC,OACX,eACA,QACA,EACA,SAAU,AAAC,GAAU,EAAS,EAAM,MAAM,CAAC,KAAK,WAChD,OACA,EACA,SAAU,CACE,KAAK,IAAf,AAAmB,EAAgB,CAAA,EAAA,EAAA,GAAA,AAAG,EAAC,CAAP,QAAiB,CAAE,MAAO,EAAG,GAAK,KAClE,MAAM,IAAI,CAAC,GAEf,AADG,EAEH,GACE,KACL,AACH,EACA,EACJ,EACA,EAAO,WAAW,CAAG,EACrB,IAAI,EAAe,gBACf,EAAgB,EAAA,UAAgB,CAClC,CAAC,EAAO,KACN,GAAM,eAAE,CAAa,CAAE,WAAW,EAAK,CAAE,GAAG,EAAc,CAAG,EACvD,EAAc,EAAe,GAC7B,EAAU,EAAiB,EAAc,GACzC,EAAa,EAAQ,QAAQ,EAAI,EACjC,EAAe,CAAA,EAAA,EAAA,eAAe,AAAf,EAAgB,EAAc,EAAQ,eAAe,EACpE,EAAW,EAAc,GACzB,EAAiB,EAAA,MAAY,CAAC,SAC9B,CAAC,EAAW,EAAuB,EAAe,CAAG,GAAmB,AAAC,IAC7E,IAAM,EAAe,IAAW,MAAM,CAAC,AAAC,GAAS,CAAC,EAAK,QAAQ,EACzD,EAAc,EAAa,IAAI,CAAC,AAAC,GAAS,EAAK,KAAK,GAAK,EAAQ,KAAK,EACtE,EAAW,GAAa,EAAc,EAAQ,EACnC,MAAK,GAAG,CAArB,GACF,EAAQ,aAAa,CAAC,EAAS,KAAK,CAExC,GACM,EAAa,AAAC,IACb,IACH,EAAQ,MADO,MACK,EAAC,GACrB,KAEE,IACF,EAAQ,QADQ,gBACgB,CAAC,OAAO,CAAG,CACzC,EAAG,KAAK,KAAK,CAAC,EAAa,KAAK,EAChC,EAAG,KAAK,KAAK,CAAC,EAAa,KAAK,EAClC,CAEJ,EACA,MAAuB,CAAhB,AAAgB,EAAA,EAAA,GAAA,AAAG,EAAC,EAAA,EAAP,IAA6B,CAAE,CAAE,SAAS,EAAM,GAAG,CAAW,CAAE,SAA0B,CAAA,AAAhB,EAAgB,EAAA,GAAA,AAAG,EAC/G,EAAA,EADyG,OAChG,CAAC,MAAM,CAChB,CACE,KAAM,SACN,KAAM,WACN,gBAAiB,EAAQ,SAAS,CAClC,gBAAiB,EAAQ,IAAI,CAC7B,gBAAiB,EAAQ,QAAQ,CACjC,oBAAqB,OACrB,IAAK,EAAQ,GAAG,CAChB,aAAc,EAAQ,IAAI,CAAG,OAAS,SACtC,SAAU,EACV,gBAAiB,EAAa,GAAK,KAAK,EACxC,mBAAoB,GAAsB,EAAQ,KAAK,EAAI,GAAK,KAAK,EACrE,GAAG,CAAY,CACf,IAAK,EACL,QAAS,CAAA,EAAA,EAAA,oBAAA,AAAoB,EAAC,EAAa,OAAO,CAAE,AAAC,IACnD,EAAM,aAAa,CAAC,KAAK,GACM,SAAS,CAApC,EAAe,OAAO,EACxB,EAAW,EAEf,GACA,cAAe,CAAA,EAAA,EAAA,oBAAA,AAAoB,EAAC,EAAa,aAAa,CAAE,AAAC,IAC/D,EAAe,OAAO,CAAG,EAAM,WAAW,CAC1C,IAAM,EAAS,EAAM,MAAM,CACvB,EAAO,iBAAiB,CAAC,EAAM,SAAS,GAAG,AAC7C,EAAO,qBAAqB,CAAC,EAAM,SAAS,EAEzB,IAAjB,EAAM,MAAM,EAAU,CAAkB,MAAZ,OAAO,EAAoC,SAAS,CAA/B,EAAM,WAAW,GACpE,EAAW,GACX,EAAM,cAAc,GAExB,GACA,UAAW,CAAA,EAAA,EAAA,oBAAA,AAAoB,EAAC,EAAa,SAAS,CAAE,AAAC,IACvD,IAAM,EAAsC,KAAtB,EAAU,OAAO,AAEnC,CAAC,AADiB,EAAM,OAAO,EAAI,EAAM,MAAM,EAAI,EAAM,OAAO,EACzB,IAArB,EAAM,GAAG,CAAC,MAAM,EAAQ,EAAsB,EAAM,GAAG,IACzE,GAA+B,MAAd,EAAM,GAAG,AAAK,GAC/B,AADoC,EAC1B,QAAQ,CAAC,EAAM,GAAG,GAAG,CACjC,IACA,EAAM,cAAc,GAExB,EACF,EACA,EACJ,GAEF,EAAc,WAAW,CAAG,EAC5B,IAAI,EAAa,cACb,EAAc,EAAA,UAAgB,CAChC,CAAC,EAAO,KACN,GAAM,eAAE,CAAa,CAAE,WAAS,OAAE,CAAK,UAAE,CAAQ,aAAE,EAAc,EAAE,CAAE,GAAG,EAAY,CAAG,EACjF,EAAU,EAAiB,EAAY,GACvC,8BAAE,CAA4B,CAAE,CAAG,EACnC,EAA2B,KAAK,IAAlB,EACd,EAAe,CAAA,EAAA,EAAA,eAAA,AAAe,EAAC,EAAc,EAAQ,iBAAiB,EAI5E,MAHA,CAAA,AAGO,EAHP,EAAA,SAGoB,MAHpB,AAAe,EAAC,KACd,EAA6B,EAC/B,EAAG,CAAC,EAA8B,EAAY,EACvB,CAAA,EAAA,EAAA,GAAA,AAAG,EACxB,EAAA,SAAS,CAAC,IAAI,CACd,CACE,GAAG,CAAU,CACb,IAAK,EACL,MAAO,CAAE,cAAe,MAAO,EAC/B,SAAU,GAAsB,EAAQ,KAAK,EAAoB,CAAA,CAAhB,CAAgB,EAAA,GAAA,AAAG,EAAC,EAAA,GAAP,KAAe,CAAE,CAAE,SAAU,CAAY,GAAK,CAC9G,EAEJ,GAEF,EAAY,WAAW,CAAG,EAE1B,IAAI,EAAa,EAAA,UAAgB,CAC/B,CAAC,EAAO,KACN,GAAM,eAAE,CAAa,UAAE,CAAQ,CAAE,GAAG,EAAW,CAAG,EAClD,MAAuB,CAAhB,AAAgB,EAAA,EAAA,GAAA,AAAG,EAAC,EAAA,EAAP,OAAgB,CAAC,IAAI,CAAE,CAAE,eAAe,EAAM,GAAG,CAAS,CAAE,IAAK,EAAc,SAAU,GAAY,GAAS,EACpI,GAEF,EAAW,WAAW,CAPN,EAOS,WAEzB,IAAI,EAAe,AAAC,GACK,CAAA,EAAA,EAAA,GAAA,AAAG,EAAC,EAAA,MAAe,CAAE,CAAE,SAAS,EAAM,GAAG,CAAK,AAAC,GAExE,EAAa,WAAW,CAJN,EAIS,aAC3B,IAAI,EAAe,gBACf,EAAgB,EAAA,UAAgB,CAClC,CAAC,EAAO,KACN,IAAM,EAAU,EAAiB,EAAc,EAAM,aAAa,EAC5D,CAAC,EAAU,EAAY,CAAG,EAAA,QAAc,SAI9C,CAHA,CAAA,EAAA,AAGI,EAHJ,eAAA,AAAe,EAAC,KACd,EAAY,IAAI,iBAClB,EAAG,EAAE,EACA,EAAQ,IAAI,EAAE,AAOI,CAAA,EAAA,EAAA,GAAA,AAAG,EAAC,EAAmB,CAAE,GAAG,CAAK,CAAE,IAAK,CAAa,GAN7D,AACN,EAAO,EAAA,YAAqB,CACjC,AAAgB,CAAA,EAAA,EAAA,GAAA,AAAG,EAAC,EAAuB,CAA9B,AAAgC,MAAO,EAAM,aAAa,CAAE,SAA0B,CAAhB,AAAgB,EAAA,EAAA,GAAA,AAAG,EAAC,EAAW,EAAlB,EAAsB,CAAE,CAAE,MAAO,EAAM,aAAa,CAAE,SAA0B,CAAhB,AAAgB,EAAA,EAAA,GAAA,AAAG,EAAC,IAAP,EAAc,CAAE,SAAU,EAAM,QAAQ,AAAC,EAAG,EAAG,IAC5N,EACE,IAGR,GAEF,EAAc,WAAW,CAAG,EAE5B,GAAI,CAAC,EAAuB,EAAwB,CAAG,EAAoB,GAEvE,EAAO,CAAA,EAAA,EAAA,UAAA,AAAU,EAAC,8BAClB,EAAoB,EAAA,UAAgB,CACtC,CAAC,EAAO,KACN,GAAM,eACJ,CAAa,UACb,EAAW,cAAc,kBACzB,CAAgB,iBAChB,CAAe,sBACf,CAAoB,EACpB,EAAE,EAEF,CAAI,YACJ,CAAU,OACV,CAAK,aACL,CAAW,CACX,cAAY,mBACZ,CAAiB,kBACjB,CAAgB,QAChB,CAAM,kBACN,CAAgB,iBAChB,CAAe,CAEf,CADA,EAAE,AACC,EACJ,CAAG,EACE,EAAU,EAAiB,EAAc,GACzC,CAAC,EAAS,EAAW,CAAG,EAAA,QAAc,CAAC,MACvC,CAAC,EAAU,EAAY,CAAG,EAAA,QAAc,CAAC,MACzC,EAAe,CAAA,EAAA,EAAA,eAAA,AAAe,EAAC,EAAc,AAAC,GAAS,EAAW,IAClE,CAAC,EAAc,EAAgB,CAAG,EAAA,QAAc,CAAC,MACjD,CAAC,EAAkB,EAAoB,CAAG,EAAA,QAAc,CAC5D,MAEI,EAAW,EAAc,GACzB,CAAC,EAAc,EAAgB,CAAG,EAAA,QAAc,EAAC,GACjD,EAAyB,EAAA,MAAY,CAAC,IAC5C,EAAA,SAAe,CAAC,KACd,GAAI,EAAS,MAAO,CAAA,EAAA,EAAA,UAAA,AAAU,EAAC,EACjC,EAAG,CAAC,EAAQ,EACZ,CAAA,EAAA,EAAA,cAAc,AAAd,IACA,IAAM,EAAa,EAAA,WAAiB,CAClC,AAAC,IACC,GAAM,CAAC,EAAW,GAAG,EAAU,CAAG,IAAW,GAAG,CAAC,AAAC,GAAS,EAAK,GAAG,CAAC,OAAO,EACrE,CAAC,EAAS,CAAG,EAAU,KAAK,CAAC,CAAC,GAC9B,EAA6B,SAAS,aAAa,CACzD,IAAK,IAAM,KAAa,EACtB,GAAI,IAAc,EADgB,EAElC,GAAW,eAAe,CAAE,MAAO,SAAU,GACzC,IAAc,GAAa,IAAU,EAAS,SAAS,EAAG,EAC1D,IAAc,GAAY,IAAU,EAAS,SAAS,CAAG,EAAS,YAAA,AAAY,EAClF,GAAW,QACP,SAAS,aAAa,GAAK,GALe,MAOlD,EACA,CAAC,EAAU,EAAS,EAEhB,EAAoB,EAAA,MALuC,KAKtB,CACzC,IAAM,EAAW,CAAC,EAAc,EAAQ,EACxC,CAAC,EAAY,EAAc,EAAQ,EAErC,EAAA,SAAe,CAAC,KACV,GACF,GAEJ,EAAG,CAAC,EAAc,EAAkB,CAHhB,CAIpB,GAAM,cAAE,CAAY,0BAAE,CAAwB,CAAE,CAAG,EACnD,EAAA,SAAe,CAAC,KACd,GAAI,EAAS,CACX,IAAI,EAAmB,CAAE,EAAG,EAAG,EAAG,CAAE,EAC9B,EAAoB,AAAC,IACzB,EAAmB,CACjB,EAAG,KAAK,GAAG,CAAC,KAAK,KAAK,CAAC,EAAM,KAAK,EAAK,EAAD,CAA0B,OAAO,EAAE,IAAK,CAAC,EAC/E,EAAG,KAAK,GAAG,CAAC,KAAK,KAAK,CAAC,EAAM,KAAK,GAAK,CAAD,CAA0B,OAAO,EAAE,IAAK,CAAC,CACjF,CACF,EACM,EAAkB,AAAC,IACnB,EAAiB,CAAC,EAAI,IAAM,EAAiB,CAAC,EAAI,GACpD,CADwD,CAClD,cAAc,GAEf,AAAD,EAAS,QAAQ,CAAC,EAAM,MAAM,GAAG,AACnC,GAAa,GAGjB,SAAS,mBAAmB,CAAC,cAAe,GAC5C,EAAyB,OAAO,CAAG,IACrC,EAKA,OAJyC,MAAM,CAA3C,EAAyB,OAAO,GAClC,SAAS,gBAAgB,CAAC,cAAe,GACzC,SAAS,gBAAgB,CAAC,YAAa,EAAiB,CAAE,SAAS,EAAM,MAAM,CAAK,IAE/E,KACL,SAAS,mBAAmB,CAAC,cAAe,GAC5C,SAAS,mBAAmB,CAAC,YAAa,EAAiB,CAAE,SAAS,CAAK,EAC7E,CACF,CACF,EAAG,CAAC,EAAS,EAAc,EAAyB,EACpD,EAAA,SAAe,CAAC,KACd,IAAM,EAAQ,IAAM,GAAa,GAGjC,OAFA,OAAO,gBAAgB,CAAC,OAAQ,GAChC,OAAO,gBAAgB,CAAC,SAAU,GAC3B,KACL,OAAO,mBAAmB,CAAC,OAAQ,GACnC,OAAO,mBAAmB,CAAC,SAAU,EACvC,CACF,EAAG,CAAC,EAAa,EACjB,GAAM,CAAC,EAAW,EAAsB,CAAG,GAAmB,AAAC,IAC7D,IAAM,EAAe,IAAW,MAAM,CAAC,AAAC,GAAS,CAAC,EAAK,QAAQ,EACzD,EAAc,EAAa,IAAI,CAAC,AAAC,GAAS,EAAK,GAAG,CAAC,OAAO,GAAK,SAAS,aAAa,EACrF,EAAW,GAAa,EAAc,EAAQ,GAChD,GACF,OADY,IACD,IAAM,EAAS,GAAG,CAAC,OAAO,CAAC,KAAK,GAE/C,GACM,GAAkB,EAAA,WAAiB,CACvC,CAAC,EAAM,EAAO,KACZ,IAAM,EAAmB,CAAC,EAAuB,OAAO,EAAI,CAAC,GACpB,AACrC,KAD0C,IAAvB,EAAQ,KAAK,EAAe,EAAQ,KAAK,GAAK,GAC/C,CAAA,GAAkB,CACtC,EAAgB,GACZ,IAAkB,EAAuB,OAAO,EAAG,CAAA,EAE3D,EACA,CAAC,EAAQ,KAAK,CAAC,EAEX,GAAkB,EAAA,WAAiB,CAAC,IAAM,GAAS,QAAS,CAAC,EAAQ,EACrE,GAAsB,EAAA,WAAiB,CAC3C,CAAC,EAAM,EAAO,KACZ,IAAM,EAAmB,CAAC,EAAuB,OAAO,EAAI,CAAC,GACpB,AACrC,KAD0C,IAAvB,EAAQ,KAAK,EAAe,EAAQ,KAAK,GAAK,GAC/C,CAAA,GACpB,AADsC,EAClB,EAExB,EACA,CAAC,EAAQ,KAAK,CAAC,EAEX,GAA8B,WAAb,EAAwB,EAAuB,EAChE,GAAqB,KAAmB,EAAuB,CACnE,OACA,mBACA,cACA,eACA,EACA,qCACA,SACA,mBACA,kBACA,CACF,EAAI,CAAC,EACL,MAAuB,CAAhB,AAAgB,EAAA,EAAA,GAAA,AAAG,EACxB,EACA,CACE,CAHgB,KAGT,UACP,WACA,EACA,iBAAkB,kBAClB,GACA,eACA,YAAa,uBACb,qBACA,mBACA,WACA,eACA,YACA,EACA,SAA0B,CAAhB,AAAgB,EAAA,EAAA,GAAA,AAAG,EAAC,EAAA,EAAP,UAAmB,CAAE,CAAE,GAAI,EAAM,gBAAgB,EAAM,SAA0B,CAAhB,AAAgB,EAAA,EAAA,GAAA,AAAG,EACzG,EAAA,EADmG,QACzF,CACV,CACE,QAAS,GACT,QAAS,EAAQ,IAAI,CACrB,iBAAkB,AAAC,IACjB,EAAM,cAAc,EACtB,EACA,mBAAoB,CAAA,EAAA,EAAA,oBAAA,AAAoB,EAAC,EAAkB,AAAC,IAC1D,EAAQ,OAAO,EAAE,MAAM,CAAE,eAAe,CAAK,GAC7C,EAAM,cAAc,EACtB,GACA,SAA0B,CAAA,AAAhB,EAAgB,EAAA,GAAA,AAAG,EAC3B,EAAA,EADqB,cACL,CAChB,CACE,SAAS,EACT,6BAA6B,kBAC7B,uBACA,EACA,eAAgB,AAAC,GAAU,EAAM,cAAc,GAC/C,UAAW,IAAM,EAAQ,YAAY,CAAC,IACtC,SAA0B,CAAA,AAAhB,EAAgB,EAAA,GAAA,AAAG,EAC3B,GACA,CACE,AAHmB,KAGb,UACN,GAAI,EAAQ,SAAS,CACrB,aAAc,EAAQ,IAAI,CAAG,OAAS,SACtC,IAAK,EAAQ,GAAG,CAChB,cAAgB,AAAD,GAAW,EAAM,cAAc,GAC9C,GAAG,CAAY,CACf,GAAG,EAAkB,CACrB,SAAU,IAAM,GAAgB,GAChC,IAAK,EACL,MAAO,CAEL,QAAS,OACT,cAAe,SAEf,QAAS,OACT,GAAG,EAAa,KAAK,AACvB,EACA,UAAW,CAAA,EAAA,EAAA,oBAAA,AAAoB,EAAC,EAAa,SAAS,CAAE,AAAC,IACvD,IAAM,EAAgB,EAAM,OAAO,EAAI,EAAM,MAAM,EAAI,EAAM,OAAO,CAGpE,GAFkB,QAAd,EAAM,GAAG,EAAY,EAAM,cAAc,GACzC,AAAC,GAAsC,IAArB,EAAM,GAAG,CAAC,MAAM,EAAQ,EAAsB,EAAM,GAAG,EACzE,CAAC,UAAW,YAAa,OAAQ,MAAM,CAAC,QAAQ,CAAC,EAAM,GAAG,EAAG,CAE/D,IAAI,EADU,AACO,IADI,MAAM,CAAC,AAAC,GAAS,CAAC,EAAK,QAAQ,EAC7B,GAAG,CAAE,AAAD,GAAU,EAAK,GAAG,CAAC,OAAO,EAIzD,GAHI,CAAC,UAAW,MAAM,CAAC,QAAQ,CAAC,EAAM,GAAG,GAAG,CAC1C,EAAiB,EAAe,KAAK,GAAG,OAAO,EAAA,EAE7C,CAAC,UAAW,YAAY,CAAC,QAAQ,CAAC,EAAM,GAAG,EAAG,CAChD,IAAM,EAAiB,EAAM,MAAM,CAC7B,EAAe,EAAe,OAAO,CAAC,GAC5C,EAAiB,EAAe,KAAK,CAAC,EAAe,EACvD,CACA,WAAW,IAAM,EAAW,IAC5B,EAAM,cAAc,EACtB,CACF,EACF,EAEJ,EAEJ,EACA,EACJ,EAEJ,EAEF,GAAkB,WAAW,CA1OL,EA0OQ,kBAEhC,IAAI,EAA4B,EAAA,UAAgB,CAAC,CAAC,EAAO,KACvD,GAAM,eAAE,CAAa,UAAE,CAAQ,CAAE,GAAG,EAAa,CAAG,EAC9C,EAAU,EAAiB,EAAc,GACzC,EAAiB,EAAwB,EAAc,GACvD,CAAC,EAAgB,EAAkB,CAAG,EAAA,QAAc,CAAC,MACrD,CAAC,EAAS,EAAW,CAAG,EAAA,QAAc,CAAC,MACvC,EAAe,CAAA,EAAA,EAAA,eAAA,AAAe,EAAC,EAAc,AAAC,GAAS,EAAW,IAClE,EAAW,EAAc,GACzB,EAA0B,EAAA,MAAY,CAAC,IACvC,EAAsB,EAAA,MAAY,EAAC,GACnC,UAAE,CAAQ,cAAE,CAAY,kBAAE,CAAgB,mBAAE,CAAiB,CAAE,CAAG,EAClE,EAAW,EAAA,WAAiB,CAAC,KACjC,GAAI,EAAQ,OAAO,EAAI,EAAQ,SAAS,EAAI,GAAkB,GAAW,GAAY,GAAgB,EAAkB,CACrH,IAAM,EAAc,EAAQ,OAAO,CAAC,qBAAqB,GACnD,EAAc,EAAQ,qBAAqB,GAC3C,EAAgB,EAAQ,SAAS,CAAC,qBAAqB,GACvD,EAAe,EAAiB,qBAAqB,GAC3D,GAAoB,QAAhB,EAAQ,GAAG,CAAY,CACzB,IAAM,EAAiB,EAAa,IAAI,CAAG,EAAY,IAAI,CACrD,EAAO,EAAc,IAAI,CAAG,EAC5B,EAAY,EAAY,IAAI,CAAG,EAC/B,EAAkB,EAAY,KAAK,CAAG,EACtC,EAAe,KAAK,GAAG,CAAC,EAAiB,EAAY,KAAK,EAC1D,EAAY,OAAO,UAAU,GAAG,CAChC,EAAc,CAAA,EAAA,EAAA,KAAA,AAAK,EAAC,EAAM,IAO9B,KAAK,GAAG,CAAC,GAAgB,EAAY,GACtC,EACD,EAAe,KAAK,CAAC,QAAQ,CAAG,EAAkB,KAClD,EAAe,KAAK,CAAC,IAAI,CAAG,EAAc,IAC5C,KAAO,CACL,IAAM,EAAiB,EAAY,KAAK,CAAG,EAAa,KAAK,CACvD,EAAQ,OAAO,UAAU,CAAG,EAAc,KAAK,CAAG,EAClD,EAAa,OAAO,UAAU,CAAG,EAAY,KAAK,CAAG,EACrD,EAAkB,EAAY,KAAK,CAAG,EACtC,EAAe,KAAK,GAAG,CAAC,EAAiB,EAAY,KAAK,EAC1D,EAAW,OAAO,UAAU,GAAG,CAC/B,EAAe,CAAA,EAAA,EAAA,KAAA,AAAK,EAAC,EAAO,IAEhC,KAAK,GAAG,CAAC,GAAgB,EAAW,GACrC,EACD,EAAe,KAAK,CAAC,QAAQ,CAAG,EAAkB,KAClD,EAAe,KAAK,CAAC,KAAK,CAAG,EAAe,IAC9C,CACA,IAAM,EAAQ,IACR,EAAkB,OAAO,WAAW,CAAG,GACvC,EAAc,EAAS,UADiC,EACrB,CACnC,EAAgB,OAAO,gBAAgB,CAAC,GACxC,EAAwB,SAAS,EAAc,cAAc,CAAE,IAC/D,EAAoB,SAAS,EAAc,UAAU,CAAE,IACvD,EAA2B,SAAS,EAAc,iBAAiB,CAAE,IAErE,EAAoB,EAAwB,EAAoB,EADzC,SAAS,EAAc,CACgC,YADnB,CAAE,IACwC,EACrG,EAAmB,KAAK,GAAG,CAA6B,EAA5B,EAAa,YAAY,CAAM,GAC3D,EAAiB,OAAO,gBAAgB,CAAC,GACzC,EAAqB,SAAS,EAAe,UAAU,CAAE,IACzD,EAAwB,SAAS,EAAe,aAAa,CAAE,IAC/D,EAAyB,EAAY,GAAG,CAAG,EAAY,MAAM,CAAG,EA5SvD,EA4S2D,CAEpE,EAAyB,EAAa,YAAY,CAAG,EAErD,EAAyB,EAAwB,GAD9B,EAAa,SAAS,CAAG,CAAA,EAIlD,EAH2E,CAEvC,CAChC,EAD0D,EAC7B,CAC/B,IAAM,EAAa,EAAM,MAAM,CAAG,GAAK,IAAiB,CAAK,CAAC,EAAM,MAAM,CAAG,EAAE,CAAC,GAAG,CAAC,OAAO,CAC3F,EAAe,KAAK,CAAC,MAAM,CAAG,MAE9B,IAAM,EAAmC,KAAK,GAAG,CAVjB,AAW9B,EAXgD,EAYhD,EACC,GAAa,EAAwB,CAAC,GAJZ,CAIgB,CAJR,YAGV,AAHsB,CAAG,EAAS,SAAS,CAAG,EAAS,YAAA,AAAY,EAI1B,GAGpE,EAAe,KAAK,CAAC,MAAM,CAAG,AADf,EAAyB,EACD,IACzC,KAAO,CACL,IAAM,EAAc,EAAM,MAAM,CAAG,GAAK,CANmE,GAMlD,CAAK,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,CAC7E,EAAe,KAAK,CAAC,GAAG,CAAG,MAC3B,IAAM,EAAgC,KAAK,GAAG,CAC5C,EACA,EAAwB,EAAS,SAAS,EACzC,CAD4C,CAC9B,GAAqB,CAAC,CAAI,GAG3C,EAAe,KAAK,CAAC,MAAM,CADZ,AACe,GAtBE,EAAoB,CAAA,EAsBb,KACvC,EAAS,SAAS,CAAG,EAAyB,EAAyB,EAAS,CAFjC,QAE0C,AAC3F,CACA,EAAe,KAAK,CAAC,IAPyG,EAOnG,CAAG,GAAG,MACjC,EAAe,KAAK,CAAC,CAD2B,IAAI,CAAC,GACvB,CAAG,EAAmB,KACpD,EAAe,KAAK,CAAC,SAAS,CAAG,EAAkB,KACnD,MACA,sBAAsB,IAAM,EAAwB,OAAO,EAAG,EAChE,CACF,EAAG,CACD,EACA,EAAQ,OAAO,CACf,EAAQ,SAAS,CACjB,EACA,EACA,EACA,EACA,EACA,EAAQ,GAAG,CACX,EACD,EACD,CAAA,EAAA,EAAA,eAAA,AAAe,EAAC,IAAM,IAAY,CAAC,EAAS,EAC5C,GAAM,CAAC,EAAe,EAAiB,CAAG,EAAA,QAAc,GACxD,CAAA,EAAA,EAAA,eAAA,AAAe,EAAC,KACV,GAAS,EAAiB,OAAO,gBAAgB,CAAC,GAAS,MAAM,CACvE,EAAG,CAAC,EAAQ,EACZ,IAAM,EAA2B,EAAA,WAAiB,CAChD,AAAC,IACK,IAAwC,IAAhC,EAAsC,AAAlB,OAAO,GACrC,IACA,MACA,EAAoB,OAAO,EAAG,EAElC,EACA,CAAC,EAAU,EAAkB,EAE/B,MAAuB,CAAA,AAAhB,EAAgB,EAAA,GAAA,AAAG,EACxB,EACA,CACE,CAHgB,KAGT,iBACP,0BACA,EACA,qBAAsB,EACtB,SAA0B,CAAhB,AAAgB,EAAA,EAAA,GAAA,AAAG,EAC3B,IADqB,EAErB,CACE,IAAK,EACL,MAAO,CACL,QAAS,OACT,cAAe,SACf,SAAU,QACV,OAAQ,CACV,EACA,SAA0B,CAAA,AAAhB,EAAgB,EAAA,GAAA,AAAG,EAC3B,EAAA,EADqB,OACZ,CAAC,GAAG,CACb,CACE,GAAG,CAAW,CACd,IAAK,EACL,MAAO,CAGL,UAAW,aAEX,UAAW,OACX,GAAG,EAAY,KAAK,AACtB,CACF,EAEJ,EAEJ,EAEJ,GACA,EAA0B,WAAW,CAnKJ,EAmKO,0BAExC,IAAI,EAAuB,EAAA,UAAgB,CAAC,CAAC,EAAO,KAClD,GAAM,eACJ,CAAa,OACb,EAAQ,OAAO,kBACf,IAAiC,CACjC,GAAG,EACJ,CAAG,EACE,EAAc,EAAe,EAHd,CAIrB,MAAuB,CAAhB,AAAgB,EAAA,EAAA,GAAA,AAAG,EACxB,EAAA,EADkB,KACK,CACvB,CACE,GAAG,CAAW,CACd,GAAG,CAAW,CACd,IAAK,EACL,yBACA,EACA,MAAO,CAEL,UAAW,aACX,GAAG,EAAY,KAAK,CAGlB,0CAA2C,uCAC3C,yCAA0C,sCAC1C,0CAA2C,uCAC3C,+BAAgC,mCAChC,gCAAiC,mCAErC,CACF,EAEJ,GACA,EAAqB,WAAW,CAjCL,EAiCQ,qBACnC,GAAI,CAAC,EAAwB,GAAyB,CAAG,EAAoB,EAAc,CAAC,GACxF,GAAgB,iBAChB,GAAiB,EAAA,UAAgB,CACnC,CAAC,EAAO,KACN,GAAM,eAAE,CAAa,OAAE,CAAK,CAAE,GAAG,EAAe,CAAG,EAC7C,EAAiB,EAAwB,GAAe,GACxD,EAAkB,GAAyB,GAAe,GAC1D,EAAe,CAAA,EAAA,EAAA,eAAA,AAAe,EAAC,EAAc,EAAe,gBAAgB,EAC5E,EAAmB,EAAA,MAAY,CAAC,GACtC,MAAuB,CAAA,AAAhB,EAAgB,EAAA,IAAA,AAAI,EAAC,EAAA,CAAR,OAAgB,CAAE,CAAE,SAAU,CAChC,CAAA,EAAA,EAAA,GAAA,AAAG,EACjB,QACA,CACE,wBAAyB,CACvB,OAAQ,CAAC,yKAAyK,CAAC,AACrL,QACA,CACF,GAEc,CAAA,EAAA,EAAA,GAAA,AAAG,EAAC,EAAW,IAAI,CAAE,CAAE,MAAO,EAAe,SAA0B,CAAhB,AAAgB,EAAA,EAAA,GAAA,AAAG,EACxF,EAAA,EADkF,OACzE,CAAC,GAAG,CACb,CACE,6BAA8B,GAC9B,KAAM,eACN,GAAG,CAAa,CAChB,IAAK,EACL,MAAO,CAIL,SAAU,WACV,KAAM,EAKN,SAAU,cACV,GAAG,EAAc,KAAK,AACxB,EACA,SAAU,CAAA,EAAA,EAAA,oBAAoB,AAApB,EAAqB,EAAc,QAAQ,CAAE,AAAC,IACtD,IAAM,EAAW,EAAM,aAAa,CAC9B,gBAAE,CAAc,yBAAE,CAAuB,CAAE,CAAG,EACpD,GAAI,GAAyB,SAAW,EAAgB,CACtD,IAAM,EAAa,KAAK,GAAG,CAAC,EAAiB,OAAO,CAAG,EAAS,SAAS,EACzE,GAAI,EAAa,EAAG,CAClB,IAAM,EAAkB,OAAO,WAAW,CAAG,GAGvC,EAAa,KAAK,GAAG,CAAC,AAFP,GADyC,QAC9B,EAAe,CAEL,IAFU,CAAC,SAAS,EAC5C,WAAW,EAAe,KAAK,CAAC,MAAM,GAExD,GAAI,EAAa,EAAiB,CAChC,IAAM,EAAa,EAAa,EAC1B,EAAoB,KAAK,GAAG,CAAC,EAAiB,GAC9C,EAAa,EAAa,EAChC,EAAe,KAAK,CAAC,MAAM,CAAG,EAAoB,KACd,OAAO,CAAvC,EAAe,KAAK,CAAC,MAAM,GAC7B,EAAS,SAAS,CAAG,EAAa,EAAI,EAAa,EACnD,EAAe,KAAK,CAAC,cAAc,CAAG,WAE1C,CACF,CACF,CACA,EAAiB,OAAO,CAAG,EAAS,SAAS,AAC/C,EACF,EACA,GACH,AAAC,EACJ,GAEF,GAAe,WAAW,CAAG,GAC7B,IAAI,GAAa,cACb,CAAC,GAA4B,GAAsB,CAAG,EAAoB,IAC1E,GAAc,EAAA,UAAgB,CAChC,CAAC,EAAO,KACN,GAAM,eAAE,CAAa,CAAE,GAAG,EAAY,CAAG,EACnC,EAAU,CAAA,EAAA,EAAA,KAAA,AAAK,IACrB,MAAuB,CAAhB,AAAgB,EAAA,EAAA,GAAA,AAAG,EAAC,GAA4B,CAAnC,AAAqC,MAAO,EAAe,GAAI,EAAS,SAA0B,CAAA,AAAhB,EAAgB,EAAA,GAAA,AAAG,EAAC,EAAA,EAAP,OAAgB,CAAC,GAAG,CAAE,CAAE,KAAM,QAAS,kBAAmB,EAAS,GAAG,CAAU,CAAE,IAAK,CAAa,EAAG,EAC5N,EAEF,IAAY,WAAW,CAAG,GAC1B,IAAI,GAAa,cACb,GAAc,EAAA,UAAgB,CAChC,CAAC,EAAO,KACN,GAAM,eAAE,CAAa,CAAE,GAAG,EAAY,CAAG,EACnC,EAAe,GAAsB,GAAY,GACvD,MAAuB,CAAA,AAAhB,EAAgB,EAAA,GAAA,AAAG,EAAC,EAAA,EAAP,OAAgB,CAAC,GAAG,CAAE,CAAE,GAAI,EAAa,EAAE,CAAE,GAAG,CAAU,CAAE,IAAK,CAAa,EACpG,GAEF,GAAY,WAAW,CAAG,GAC1B,IAAI,GAAY,aACZ,CAAC,GAA2B,GAAqB,CAAG,EAAoB,IACxE,GAAa,EAAA,UAAgB,CAC/B,CAAC,EAAO,KACN,GAAM,eACJ,CAAa,OACb,CAAK,UACL,GAAW,CAAK,CAChB,UAAW,CAAa,CACxB,GAAG,EACJ,CAAG,EACE,EAAU,EAAiB,GAAW,GACtC,EAAiB,EAAwB,GAAW,GACpD,EAAa,EAAQ,KAAK,GAAK,EAC/B,CAAC,EAAW,EAAa,CAAG,EAAA,QAAc,CAAC,GAAiB,IAC5D,CAAC,EAAW,EAAa,CAAG,EAAA,QAAc,EAAC,GAC3C,EAAe,CAAA,EAAA,EAAA,eAAA,AAAe,EAClC,EACA,AAAC,GAAS,EAAe,eAAe,GAAG,EAAM,EAAO,IAEpD,EAAS,CAAA,EAAA,EAAA,KAAK,AAAL,IACT,EAAiB,EAAA,MAAY,CAAC,SAC9B,EAAe,KACd,IACH,EAAQ,IADK,SACQ,CAAC,GACtB,EAAQ,YAAY,EAAC,GAEzB,EACA,GAAI,AAAU,IAAI,GAChB,MAAU,AAAJ,MACJ,yLAGJ,MAAuB,CAAhB,AAAgB,EAAA,EAAA,GAAA,AAAG,EACxB,GACA,CAFkB,AAGhB,MAAO,QACP,WACA,SACA,aACA,EACA,iBAAkB,EAAA,WAAiB,CAAC,AAAC,IACnC,EAAa,AAAC,GAAkB,GAAiB,CAAC,GAAM,aAAe,EAAA,CAAE,CAAE,IAAI,GACjF,EAAG,EAAE,EACL,SAA0B,CAAhB,AAAgB,EAAA,EAAA,GAAA,AAAG,EAC3B,EAAW,EADU,MACF,CACnB,CACE,MAAO,QACP,EACA,qBACA,EACA,SAA0B,CAAA,AAAhB,EAAgB,EAAA,GAAA,AAAG,EAC3B,EAAA,EADqB,OACZ,CAAC,GAAG,CACb,CACE,KAAM,SACN,kBAAmB,EACnB,mBAAoB,EAAY,GAAK,KAAK,EAC1C,gBAAiB,GAAc,EAC/B,aAAc,EAAa,UAAY,YACvC,gBAAiB,GAAY,KAAK,EAClC,gBAAiB,EAAW,GAAK,KAAK,EACtC,SAAU,EAAW,KAAK,EAAI,CAAC,EAC/B,GAAG,CAAS,CACZ,IAAK,EACL,QAAS,CAAA,EAAA,EAAA,oBAAA,AAAoB,EAAC,EAAU,OAAO,CAAE,IAAM,GAAa,IACpE,OAAQ,CAAA,EAAA,EAAA,oBAAoB,AAApB,EAAqB,EAAU,MAAM,CAAE,IAAM,GAAa,IAClE,QAAS,CAAA,EAAA,EAAA,oBAAA,AAAoB,EAAC,EAAU,OAAO,CAAE,KAChB,UAA3B,EAAe,OAAO,EAAc,GAC1C,GACA,YAAa,CAAA,EAAA,EAAA,oBAAA,AAAoB,EAAC,EAAU,WAAW,CAAE,KACnD,AAA2B,YAAZ,OAAO,EAAc,GAC1C,GACA,cAAe,CAAA,EAAA,EAAA,oBAAA,AAAoB,EAAC,EAAU,aAAa,CAAE,AAAC,IAC5D,EAAe,OAAO,CAAG,EAAM,WAAW,AAC5C,GACA,cAAe,CAAA,EAAA,EAAA,oBAAA,AAAoB,EAAC,EAAU,aAAa,CAAE,AAAC,IAC5D,EAAe,OAAO,CAAG,EAAM,WAAW,CACtC,EACF,EAAe,MADH,KACc,KACU,SAAS,CAApC,EAAe,OAAO,EAC/B,EAAM,aAAa,CAAC,KAAK,CAAC,CAAE,eAAe,CAAK,EAEpD,GACA,eAAgB,CAAA,EAAA,EAAA,oBAAA,AAAoB,EAAC,EAAU,cAAc,CAAE,AAAC,IAC1D,EAAM,aAAa,GAAK,SAAS,aAAa,EAAE,AAClD,EAAe,WAAW,IAE9B,GACA,UAAW,CAAA,EAAA,EAAA,oBAAA,AAAoB,EAAC,EAAU,SAAS,CAAE,AAAC,IAEhD,CADkB,EAAe,SAAS,EAAE,UAAY,IACzB,MAAd,EAAM,GAAG,AAAK,GAAK,CACpC,EAAe,QAAQ,CAAC,EAAM,GAAG,GAAG,IACtB,MAAd,EAAM,GAAG,EAAU,EAAM,cAAc,GAC7C,EACF,EAEJ,EAEJ,EAEJ,GAEF,GAAW,WAAW,CAAG,GACzB,IAAI,GAAiB,iBACjB,GAAiB,EAAA,UAAgB,CACnC,CAAC,EAAO,KACN,GAAM,eAAE,CAAa,WAAE,CAAS,OAAE,CAAK,CAAE,GAAG,EAAe,CAAG,EACxD,EAAU,EAAiB,GAAgB,GAC3C,EAAiB,EAAwB,GAAgB,GACzD,EAAc,GAAqB,GAAgB,GACnD,EAAuB,EAA8B,GAAgB,GACrE,CAAC,EAAc,EAAgB,CAAG,EAAA,QAAc,CAAC,MACjD,EAAe,CAAA,EAAA,EAAA,eAAA,AAAe,EAClC,EACA,AAAC,GAAS,EAAgB,GAC1B,EAAY,gBAAgB,CAC5B,AAAC,GAAS,EAAe,mBAAmB,GAAG,EAAM,EAAY,KAAK,CAAE,EAAY,QAAQ,GAExF,EAAc,GAAc,YAC5B,EAAe,EAAA,OAAa,CAChC,IAAsB,AAAhB,CAAgB,EAAA,EAAA,GAAA,AAAG,EAAC,GAAP,MAAiB,CAAE,MAAO,EAAY,KAAK,CAAE,SAAU,EAAY,QAAQ,CAAE,SAAU,CAAY,EAAG,EAAY,KAAK,EAC1I,CAAC,EAAY,QAAQ,CAAE,EAAY,KAAK,CAAE,EAAY,EAElD,mBAAE,CAAiB,sBAAE,CAAoB,CAAE,CAAG,EAKpD,MAJA,CAAA,AAIO,EAJP,EAAA,SAIoB,MAJpB,AAAe,EAAC,KACd,EAAkB,GACX,IAAM,EAAqB,IACjC,CAAC,EAAmB,EAAsB,EAAa,EACnC,CAAA,EAAA,EAAA,IAAA,AAAI,EAAC,EAAA,QAAQ,CAAE,CAAE,SAAU,CAChC,CAAA,EAAA,EAAA,GAAA,AAAG,EAAC,EAAA,SAAS,CAAC,IAAI,CAAE,CAAE,GAAI,EAAY,MAAM,CAAE,GAAG,CAAa,CAAE,IAAK,CAAa,GAClG,EAAY,UAAU,EAAI,EAAQ,SAAS,EAAI,CAAC,EAAQ,oBAAoB,CAAG,EAAA,YAAqB,CAAC,EAAc,QAAQ,CAAE,EAAQ,SAAS,EAAI,KACnJ,AAAC,EACJ,GAEF,GAAe,WAAW,CAAG,GAC7B,IAAI,GAAsB,sBACtB,GAAsB,EAAA,UAAgB,CACxC,CAAC,EAAO,KACN,GAAM,eAAE,CAAa,CAAE,GAAG,EAAoB,CAAG,EAEjD,OADoB,AACb,GADkC,GAAqB,GAC3C,UAAU,CAAmB,CAAA,CAAhB,CAAgB,EAAA,GAAG,AAAH,EAAI,EAAA,GAAP,MAAgB,CAAC,IAAI,CAAE,CAAE,cAAe,GAAM,GAAG,CAAkB,CAAE,IAAK,CAAa,GAAK,IAC3I,GAEF,GAAoB,WAAW,CAAG,GAClC,IAAI,GAAwB,uBACxB,GAAuB,EAAA,UAAgB,CAAC,CAAC,EAAO,KAClD,IAAM,EAAiB,EAAwB,GAAuB,EAAM,aAAa,EACnF,EAAkB,GAAyB,GAAuB,EAAM,aAAa,EACrF,CAAC,EAAa,EAAe,CAAG,EAAA,QAAc,EAAC,GAC/C,EAAe,CAAA,EAAA,EAAA,eAAA,AAAe,EAAC,EAAc,EAAgB,oBAAoB,EAcvF,MAbA,CAAA,EAAA,EAAA,eAAA,AAAe,EAAC,KACd,GAAI,EAAe,QAAQ,EAAI,EAAe,YAAY,CAAE,CAC1D,IAAI,EAAgB,WAElB,EADqB,EAAS,SAAS,CAAG,CAC3B,CACjB,EAEM,EAAW,EAAe,QAAQ,CAGxC,OAFA,IACA,EAAS,gBAAgB,CAAC,SAAU,GAC7B,IAAM,EAAS,mBAAmB,CAAC,SAAU,EACtD,CACF,EAAG,CAAC,EAAe,QAAQ,CAAE,EAAe,YAAY,CAAC,EAClD,EAA8B,CAAA,EAAA,EAAA,GAAA,AAAG,EACtC,EADmB,CAEnB,CACE,GAAG,CAAK,CACR,IAAK,EACL,AAL8B,aAKhB,KACZ,GAAM,UAAE,CAAQ,cAAE,CAAY,CAAE,CAAG,EAC/B,GAAY,GACd,GAAS,QADmB,CACV,CAAG,EAAS,SAAS,CAAG,EAAa,YAAA,AAAY,CAEvE,CACF,GACE,IACN,GACA,GAAqB,WAAW,CAAG,GACnC,IAAI,GAA0B,yBAC1B,GAAyB,EAAA,UAAgB,CAAC,CAAC,EAAO,KACpD,IAAM,EAAiB,EAAwB,GAAyB,EAAM,aAAa,EACrF,EAAkB,GAAyB,GAAyB,EAAM,aAAa,EACvF,CAAC,EAAe,EAAiB,CAAG,EAAA,QAAc,EAAC,GACnD,EAAe,CAAA,EAAA,EAAA,eAAA,AAAe,EAAC,EAAc,EAAgB,oBAAoB,EAevF,MAdA,CAAA,EAAA,EAAA,eAAA,AAAe,EAAC,KACd,GAAI,EAAe,QAAQ,EAAI,EAAe,YAAY,CAAE,CAC1D,IAAI,EAAgB,WAClB,IAAM,EAAY,EAAS,YAAY,CAAG,EAAS,YAAY,CAE/D,EADuB,KAAK,IAAI,CAAC,EAAS,GACzB,MADkC,EAAI,EAEzD,EAEM,EAAW,EAAe,QAAQ,CAGxC,OAFA,IACA,EAAS,gBAAgB,CAAC,SAAU,GAC7B,IAAM,EAAS,mBAAmB,CAAC,SAAU,EACtD,CACF,EAAG,CAAC,EAAe,QAAQ,CAAE,EAAe,YAAY,CAAC,EAClD,EAAgC,CAAA,EAAA,EAAA,GAAA,AAAG,EACxC,GACA,CACE,AAHmB,GAGhB,CAAK,CACR,IAAK,EACL,EALgC,WAKlB,KACZ,GAAM,UAAE,CAAQ,cAAE,CAAY,CAAE,CAAG,EAC/B,GAAY,IACd,EAAS,QADmB,CACV,CAAG,EAAS,SAAS,CAAG,EAAa,YAAA,AAAY,CAEvE,CACF,GACE,IACN,EACA,IAAuB,WAAW,CAAG,GACrC,IAAI,GAAyB,EAAA,UAAgB,CAAC,CAAC,EAAO,KACpD,GAAM,eAAE,CAAa,cAAE,CAAY,CAAE,GAAG,EAAsB,CAAG,EAC3D,EAAiB,EAAwB,qBAAsB,GAC/D,EAAqB,EAAA,MAAY,CAAC,MAClC,EAAW,EAAc,GACzB,EAAuB,EAAA,WAAiB,CAAC,KACV,MAAM,CAArC,EAAmB,OAAO,GAC5B,OAAO,aAAa,CAAC,EAAmB,OAAO,EAC/C,EAAmB,OAAO,CAAG,KAEjC,EAAG,EAAE,EAQL,OAPA,AAOO,EAPP,SAAe,CAAC,CAOI,GANX,IAAM,IACZ,CAAC,EAAqB,EACzB,CAAA,EAAA,EAAA,eAAA,AAAe,EAAC,KACd,IAAM,EAAa,IAAW,IAAI,CAAC,AAAC,GAAS,EAAK,GAAG,CAAC,OAAO,GAAK,SAAS,aAAa,EACxF,GAAY,IAAI,SAAS,eAAe,CAAE,MAAO,SAAU,EAC7D,EAAG,CAAC,EAAS,EACU,CAAA,EAAA,EAAA,GAAA,AAAG,EACxB,EAAA,SAAS,CAAC,GAAG,CACb,CACE,eAAe,EACf,GAAG,CAAoB,CACvB,IAAK,EACL,MAAO,CAAE,WAAY,EAAG,GAAG,EAAqB,KAAK,AAAC,EACtD,cAAe,CAAA,EAAA,EAAA,oBAAA,AAAoB,EAAC,EAAqB,aAAa,CAAE,KAClE,AAA+B,MAAM,GAAlB,OAAO,GAC5B,EAAmB,OAAO,CAAG,OAAO,WAAW,CAAC,EAAc,GAAA,CAElE,GACA,cAAe,CAAA,EAAA,EAAA,oBAAA,AAAoB,EAAC,EAAqB,aAAa,CAAE,KACtE,EAAe,WAAW,KACS,MAAM,CAArC,EAAmB,OAAO,EAC5B,GAAmB,OAAO,CAAG,OAAO,WAAW,CAAC,EAAc,GAAA,CAElE,GACA,eAAgB,CAAA,EAAA,EAAA,oBAAA,AAAoB,EAAC,EAAqB,cAAc,CAAE,KACxE,GACF,EACF,EAEJ,GAEI,GAAkB,EAAA,UAAgB,CACpC,CAAC,EAAO,KACN,GAAM,eAAE,CAAa,CAAE,GAAG,EAAgB,CAAG,EAC7C,MAAuB,CAAhB,AAAgB,EAAA,EAAA,GAAA,AAAG,EAAC,EAAA,EAAP,OAAgB,CAAC,GAAG,CAAE,CAAE,eAAe,EAAM,GAAG,CAAc,CAAE,IAAK,CAAa,EACxG,EAEF,IAAgB,WAAW,CAPN,EAOS,gBAC9B,IAAI,GAAa,cACb,GAAc,EAAA,UAAgB,CAChC,CAAC,EAAO,KACN,GAAM,eAAE,CAAa,CAAE,GAAG,EAAY,CAAG,EACnC,EAAc,EAAe,GAC7B,EAAU,EAAiB,GAAY,GACvC,EAAiB,EAAwB,GAAY,GAC3D,OAAO,EAAQ,IAAI,EAAgC,WAA5B,AAAuC,EAAxB,QAAQ,CAAgC,CAAA,CAAH,CAAG,EAAA,GAAA,AAAG,EAAC,EAAA,KAAqB,CAAE,CAAE,GAAG,CAAW,CAAE,GAAG,CAAU,CAAE,IAAK,CAAa,GAAK,IACnK,GAEF,GAAY,WAAW,CAAG,GAE1B,IAAI,GAAoB,EAAA,UAAgB,CACtC,CAAC,eAAE,CAAa,OAAE,CAAK,CAAE,GAAG,EAAO,CAAE,KACnC,IAAM,EAAM,EAAA,MAAY,CAAC,MACnB,EAAe,CAAA,EAAA,EAAA,eAAA,AAAe,EAAC,EAAc,GAC7C,EAAY,CAAA,EAAA,EAAA,WAAA,AAAW,EAAC,GAgB9B,OAfA,AAeO,EAfP,SAAe,CAAC,CAeI,IAdlB,IAAM,EAAS,EAAI,OAAO,CAC1B,GAAI,CAAC,EAAQ,OAMb,IAAM,EAJa,AAIF,OAJS,wBAAwB,CAChD,AAFkB,OAAO,iBAAiB,CAAC,SAAS,CAGpD,SAE0B,GAAG,CAC/B,GAAI,IAAc,GAAS,EAAU,CACnC,IAAM,EAAQ,IAAI,MAAM,SAAU,CAAE,SAAS,CAAK,GAClD,EAAS,IAAI,CAAC,EAAQ,GACtB,EAAO,aAAa,CAAC,EACvB,CACF,EAAG,CAAC,EAAW,EAAM,EACE,CAAA,EAAA,EAAA,GAAA,AAAG,EACxB,EAAA,SAAS,CAAC,MAAM,CAChB,CACE,GAAG,CAAK,CACR,MAAO,CAAE,GAAG,EAAA,sBAAsB,CAAE,GAAG,EAAM,KAAM,AAAD,EAClD,IAAK,EACL,aAAc,CAChB,EAEJ,GAGF,SAAS,GAAsB,CAAK,EAClC,MAAiB,KAAV,GAA0B,KAAK,IAAf,CACzB,CACA,SAAS,GAAmB,CAAc,EACxC,IAAM,EAAqB,CAAA,EAAA,EAAA,cAAA,AAAc,EAAC,GACpC,EAAY,EAAA,MAAY,CAAC,IACzB,EAAW,EAAA,MAAY,CAAC,GACxB,EAAwB,EAAA,WAAiB,CAC7C,AAAC,IACC,IAAM,EAAS,EAAU,OAAO,CAAG,EACnC,EAAmB,GACnB,AAAC,SAAS,EAAa,CAAK,EAC1B,EAAU,OAAO,CAAG,EACpB,OAAO,YAAY,CAAC,EAAS,OAAO,EACtB,KAAV,GAAc,GAAS,OAAO,CAAG,OAAO,UAAU,CAAC,IAAM,EAAa,IAAK,IAAA,CACjF,CAAC,CAAE,EACL,EACA,CAAC,EAAmB,EAEhB,EAAiB,EAAA,WAAiB,CAAC,KACvC,EAAU,OAAO,CAAG,GACpB,OAAO,YAAY,CAAC,EAAS,OAAO,CACtC,EAAG,EAAE,EAIL,OAHA,EAAA,SAAe,CAAC,IACP,IAAM,OAAO,YAAY,CAAC,EAAS,OAAO,EAChD,EAAE,EACE,CAAC,EAAW,EAAuB,EAAe,AAC3D,CACA,SAAS,GAAa,CAAK,CAAE,CAAM,CAAE,CAAW,QAYtB,EAVxB,IAAM,EADa,AACM,EADC,AAWQ,MAXF,CAAG,GAAK,MAAM,IAAI,CAAC,GAAQ,KAAK,CAAE,AAAD,GAAU,IAAS,CAAM,CAAC,EAAE,EACvD,CAAM,CAAC,EAAE,CAAG,EAC5C,EAAmB,EAAc,EAAM,OAAO,CAAC,GAAe,CAAC,EACjE,GAQa,EARY,GAQP,CARc,KAAK,CAAtB,EAAyB,CAAC,EAAkB,GASxD,EAAM,GAAG,CAAC,CAAC,EAAG,IAAU,CAAK,CAAC,AAAC,GAAa,CAAA,CAAK,CAAI,EAAM,MAAM,CAAC,EAPrE,CADmD,IAA5B,EAAiB,MAAM,GAC1B,EAAe,EAAa,MAAM,CAAC,AAAC,GAAM,IAAM,EAAA,EACxE,IAAM,EAAW,EAAa,IAAI,CAChC,AAAC,GAAS,EAAK,SAAS,CAAC,WAAW,GAAG,UAAU,CAAC,EAAiB,WAAW,KAEhF,OAAO,IAAa,EAAc,EAAW,KAAK,CACpD,CAxCA,GAAkB,WAAW,CAhCL,EAgCQ,mCA2DnB,iBAVE,cAEH,cAJD,aAMA,uBAES,kBADL,eAFH,gBAJC,aAJD,yBAaW,wBADF,iYAEL,iBAbF,cACF,iBAIG,6DC1nCf,GAAA,EAAA,CAAA,CAAA,OAAA,GAAA,EAAA,CAAA,CAAA,OAAA,GAAA,EAAA,CAAA,CAAA,OAEA,GAAA,EAAA,CAAA,CAAA,OAEA,IAAM,GAAS,GAAgB,IAAI,CAEf,GAAgB,KAAK,CAEzC,IAAM,GAAc,GAAgB,KAAK,CAEnC,GAAgB,EAAA,UAAgB,CAGpC,CAAC,WAAE,CAAS,UAAE,CAAQ,CAAE,GAAG,EAAO,CAAE,IACpC,CAAA,EAAA,EAAA,IAAA,EAAC,GAAgB,OAAO,CAAA,CACtB,IAAK,EACL,UAAW,CAAA,EAAA,GAAA,EAAA,AAAE,EACX,0TACA,GAED,GAAG,CAAK,WAER,EACD,CAAA,EAAA,EAAA,GAAA,EAAC,GAAgB,IAAI,CAAA,CAAC,OAAO,CAAA,CAAA,WAC3B,CAAA,EAAA,EAAA,GAAA,EAAC,GAAA,WAAW,CAAA,CAAC,UAAU,6BAI7B,GAAc,WAAW,CAAG,GAAgB,OAAO,CAAC,WAAW,CAE/D,IAAM,GAAuB,EAAA,UAAgB,CAG3C,CAAC,WAAE,CAAS,CAAE,GAAG,EAAO,CAAE,IAC1B,CAAA,EAAA,EAAA,GAAA,EAAC,GAAgB,cAAc,CAAA,CAC7B,IAAK,EACL,UAAW,CAAA,EAAA,GAAA,EAAA,AAAE,EAAC,uDAAwD,GACrE,GAAG,CAAK,UAET,CAAA,EAAA,EAAA,GAAA,EAAC,GAAA,SAAS,CAAA,CAAC,UAAU,eAGzB,GAAqB,WAAW,CAAG,GAAgB,cAAc,CAAC,WAAW,CAE7E,IAAM,GAAyB,EAAA,UAAgB,CAG7C,CAAC,WAAE,CAAS,CAAE,GAAG,EAAO,CAAE,IAC1B,CAAA,EAAA,EAAA,GAAA,EAAC,GAAgB,gBAAgB,CAAA,CAC/B,IAAK,EACL,UAAW,CAAA,EAAA,GAAA,EAAA,AAAE,EAAC,uDAAwD,GACrE,GAAG,CAAK,UAET,CAAA,EAAA,EAAA,GAAA,EAAC,GAAA,WAAW,CAAA,CAAC,UAAU,eAG3B,GAAuB,WAAW,CAAG,GAAgB,gBAAgB,CAAC,WAAW,CAEjF,IAAM,GAAgB,EAAA,UAAgB,CAGpC,CAAC,WAAE,CAAS,UAAE,CAAQ,UAAE,EAAW,QAAQ,CAAE,GAAG,EAAO,CAAE,IACzD,CAAA,EAAA,EAAA,GAAA,EAAC,GAAgB,MAAM,CAAA,UACrB,CAAA,EAAA,EAAA,IAAA,EAAC,GAAgB,OAAO,CAAA,CACtB,IAAK,EACL,UAAW,CAAA,EAAA,GAAA,EAAE,AAAF,EACT,scACa,WAAb,GACE,kIACF,GAEF,SAAU,EACT,GAAG,CAAK,WAET,CAAA,EAAA,EAAA,GAAA,EAAC,GAAA,CAAA,GACD,CAAA,EAAA,EAAA,GAAA,EAAC,GAAgB,QAAQ,CAAA,CACvB,UAAW,CAAA,EAAA,GAAA,EAAA,AAAE,EACX,MACa,WAAb,GACE,oGAGH,IAEH,CAAA,EAAA,EAAA,GAAA,EAAC,GAAA,CAAA,QAIP,IAAc,WAAW,CAAG,GAAgB,OAAO,CAAC,WAAW,CAE3C,AAUpB,EAVoB,UAAgB,CAGlC,CAAC,WAAE,CAAS,CAAE,GAAG,EAAO,CAAE,IAC1B,CAAA,EAAA,EAAA,GAAA,EAAC,GAAgB,KAAK,CAAA,CACpB,IAAK,EACL,UAAW,CAAA,EAAA,GAAA,EAAA,AAAE,EAAC,oCAAqC,GAClD,GAAG,CAAK,IAGD,WAAW,CAAG,GAAgB,KAAK,CAAC,WAAW,CAE3D,IAAM,GAAa,EAAA,UAAgB,CAGjC,CAAC,WAAE,CAAS,UAAE,CAAQ,CAAE,GAAG,EAAO,CAAE,IACpC,CAAA,EAAA,EAAA,IAAA,EAAC,GAAgB,IAAI,CAAA,CACnB,IAAK,EACL,UAAW,CAAA,EAAA,GAAA,EAAA,AAAE,EACX,4NACA,GAED,GAAG,CAAK,WAET,CAAA,EAAA,EAAA,GAAA,EAAC,OAAA,CAAK,UAAU,uEACd,CAAA,EAAA,EAAA,GAAA,EAAC,GAAgB,aAAa,CAAA,UAC5B,CAAA,EAAA,EAAA,GAAA,EAAC,GAAA,KAAK,CAAA,CAAC,UAAU,gBAGrB,CAAA,EAAA,EAAA,GAAA,EAAC,GAAgB,QAAQ,CAAA,UAAE,QAG/B,GAAW,WAAW,CAAG,GAAgB,IAAI,CAAC,WAAW,CAEjC,AAUxB,EAVwB,UAAgB,CAGtC,CAAC,WAAE,CAAS,CAAE,GAAG,EAAO,CAAE,IAC1B,CAAA,EAAA,EAAA,GAAA,EAAC,GAAgB,SAAS,CAAA,CACxB,IAAK,EACL,UAAW,CAAA,EAAA,GAAA,EAAA,AAAE,EAAC,2BAA4B,GACzC,GAAG,CAAK,IAGG,WAAW,CAAG,GAAgB,SAAS,CAAC,WAAW","ignoreList":[0]}