businesslens 0.2.2

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 (354) hide show
  1. package/.output/nitro.json +15 -0
  2. package/.output/public/_nuxt/ANTr5GBv.js +1 -0
  3. package/.output/public/_nuxt/B3Z-Zt7l.js +37 -0
  4. package/.output/public/_nuxt/Bd76-HGM.js +1 -0
  5. package/.output/public/_nuxt/Bf4VrETn.js +1 -0
  6. package/.output/public/_nuxt/CR3jGlpM.js +1 -0
  7. package/.output/public/_nuxt/CntoM1kL.js +1 -0
  8. package/.output/public/_nuxt/DogqooqX.js +1 -0
  9. package/.output/public/_nuxt/Zsu92SSr.js +1 -0
  10. package/.output/public/_nuxt/builds/latest.json +1 -0
  11. package/.output/public/_nuxt/builds/meta/e74555da-0c18-4e95-b959-2bdcc538677b.json +1 -0
  12. package/.output/public/_nuxt/default.CRZmPCG_.css +1 -0
  13. package/.output/public/_nuxt/e3lOfLH3.js +1 -0
  14. package/.output/public/_nuxt/entry.SgkJh-3P.css +1 -0
  15. package/.output/public/_nuxt/error-404.CTIGkQtd.css +1 -0
  16. package/.output/public/_nuxt/error-500.CKBWIF4V.css +1 -0
  17. package/.output/public/_nuxt/fCd72uLR.js +1 -0
  18. package/.output/public/_nuxt/inter-cyrillic-ext-wght-normal.BOeWTOD4.woff2 +0 -0
  19. package/.output/public/_nuxt/inter-cyrillic-wght-normal.DqGufNeO.woff2 +0 -0
  20. package/.output/public/_nuxt/inter-greek-ext-wght-normal.DlzME5K_.woff2 +0 -0
  21. package/.output/public/_nuxt/inter-greek-wght-normal.CkhJZR-_.woff2 +0 -0
  22. package/.output/public/_nuxt/inter-latin-ext-wght-normal.DO1Apj_S.woff2 +0 -0
  23. package/.output/public/_nuxt/inter-latin-wght-normal.Dx4kXJAl.woff2 +0 -0
  24. package/.output/public/_nuxt/inter-vietnamese-wght-normal.CBcvBZtf.woff2 +0 -0
  25. package/.output/public/_nuxt/vk0fkBN0.js +1 -0
  26. package/.output/public/_nuxt/zg6VsE4d.js +39 -0
  27. package/.output/public/brand/logo/businesslens-mark.svg +20 -0
  28. package/.output/public/favicon.svg +13 -0
  29. package/.output/server/chunks/_/error-500.mjs +19 -0
  30. package/.output/server/chunks/_/error-500.mjs.map +1 -0
  31. package/.output/server/chunks/_/icons.mjs +6150 -0
  32. package/.output/server/chunks/_/icons.mjs.map +1 -0
  33. package/.output/server/chunks/build/Card-DJ5Lo0Cn.mjs +161 -0
  34. package/.output/server/chunks/build/Card-DJ5Lo0Cn.mjs.map +1 -0
  35. package/.output/server/chunks/build/EntityInspector-fTjbuYoq.mjs +4412 -0
  36. package/.output/server/chunks/build/EntityInspector-fTjbuYoq.mjs.map +1 -0
  37. package/.output/server/chunks/build/Slideover-KOfskX1l.mjs +4226 -0
  38. package/.output/server/chunks/build/Slideover-KOfskX1l.mjs.map +1 -0
  39. package/.output/server/chunks/build/Tooltip-DkxwLaX6.mjs +1338 -0
  40. package/.output/server/chunks/build/Tooltip-DkxwLaX6.mjs.map +1 -0
  41. package/.output/server/chunks/build/client.precomputed.mjs +4 -0
  42. package/.output/server/chunks/build/client.precomputed.mjs.map +1 -0
  43. package/.output/server/chunks/build/default-BJSthw3t.mjs +8999 -0
  44. package/.output/server/chunks/build/default-BJSthw3t.mjs.map +1 -0
  45. package/.output/server/chunks/build/default-styles.BYgqaNao.mjs +8 -0
  46. package/.output/server/chunks/build/default-styles.BYgqaNao.mjs.map +1 -0
  47. package/.output/server/chunks/build/error-404-BOiGLcfP.mjs +96 -0
  48. package/.output/server/chunks/build/error-404-BOiGLcfP.mjs.map +1 -0
  49. package/.output/server/chunks/build/error-404-styles.DA-UkGXW.mjs +8 -0
  50. package/.output/server/chunks/build/error-404-styles.DA-UkGXW.mjs.map +1 -0
  51. package/.output/server/chunks/build/error-500-Bwyw373t.mjs +79 -0
  52. package/.output/server/chunks/build/error-500-Bwyw373t.mjs.map +1 -0
  53. package/.output/server/chunks/build/error-500-styles.De7qbKJ2.mjs +8 -0
  54. package/.output/server/chunks/build/error-500-styles.De7qbKJ2.mjs.map +1 -0
  55. package/.output/server/chunks/build/index-BuhKSZfH.mjs +313 -0
  56. package/.output/server/chunks/build/index-BuhKSZfH.mjs.map +1 -0
  57. package/.output/server/chunks/build/journeys-DHHOyxCM.mjs +244 -0
  58. package/.output/server/chunks/build/journeys-DHHOyxCM.mjs.map +1 -0
  59. package/.output/server/chunks/build/server.mjs +14099 -0
  60. package/.output/server/chunks/build/server.mjs.map +1 -0
  61. package/.output/server/chunks/build/styles.mjs +9 -0
  62. package/.output/server/chunks/build/styles.mjs.map +1 -0
  63. package/.output/server/chunks/build/topology-BJfDB_jA.mjs +295 -0
  64. package/.output/server/chunks/build/topology-BJfDB_jA.mjs.map +1 -0
  65. package/.output/server/chunks/build/useReport-pDAk-ETG.mjs +406 -0
  66. package/.output/server/chunks/build/useReport-pDAk-ETG.mjs.map +1 -0
  67. package/.output/server/chunks/nitro/nitro.mjs +5770 -0
  68. package/.output/server/chunks/nitro/nitro.mjs.map +1 -0
  69. package/.output/server/chunks/routes/api/report.get.mjs +617 -0
  70. package/.output/server/chunks/routes/api/report.get.mjs.map +1 -0
  71. package/.output/server/chunks/routes/renderer.mjs +451 -0
  72. package/.output/server/chunks/routes/renderer.mjs.map +1 -0
  73. package/.output/server/chunks/virtual/_virtual_spa-template.mjs +4 -0
  74. package/.output/server/chunks/virtual/_virtual_spa-template.mjs.map +1 -0
  75. package/.output/server/index.mjs +12 -0
  76. package/.output/server/index.mjs.map +1 -0
  77. package/.output/server/node_modules/.nitro/hookable@5.5.3/dist/index.mjs +290 -0
  78. package/.output/server/node_modules/.nitro/hookable@5.5.3/package.json +49 -0
  79. package/.output/server/node_modules/.nitro/hookable@6.1.1/dist/index.mjs +257 -0
  80. package/.output/server/node_modules/.nitro/hookable@6.1.1/package.json +53 -0
  81. package/.output/server/node_modules/@babel/parser/lib/index.js +14599 -0
  82. package/.output/server/node_modules/@babel/parser/package.json +50 -0
  83. package/.output/server/node_modules/@iconify/utils/lib/colors/index.js +295 -0
  84. package/.output/server/node_modules/@iconify/utils/lib/colors/keywords.js +701 -0
  85. package/.output/server/node_modules/@iconify/utils/lib/css/common.js +75 -0
  86. package/.output/server/node_modules/@iconify/utils/lib/css/format.js +39 -0
  87. package/.output/server/node_modules/@iconify/utils/lib/css/icon.js +47 -0
  88. package/.output/server/node_modules/@iconify/utils/lib/css/icons.js +128 -0
  89. package/.output/server/node_modules/@iconify/utils/lib/customisations/bool.js +19 -0
  90. package/.output/server/node_modules/@iconify/utils/lib/customisations/defaults.js +13 -0
  91. package/.output/server/node_modules/@iconify/utils/lib/customisations/flip.js +17 -0
  92. package/.output/server/node_modules/@iconify/utils/lib/customisations/merge.js +16 -0
  93. package/.output/server/node_modules/@iconify/utils/lib/customisations/rotate.js +30 -0
  94. package/.output/server/node_modules/@iconify/utils/lib/emoji/cleanup.js +78 -0
  95. package/.output/server/node_modules/@iconify/utils/lib/emoji/convert.js +100 -0
  96. package/.output/server/node_modules/@iconify/utils/lib/emoji/data.js +28 -0
  97. package/.output/server/node_modules/@iconify/utils/lib/emoji/format.js +58 -0
  98. package/.output/server/node_modules/@iconify/utils/lib/emoji/parse.js +48 -0
  99. package/.output/server/node_modules/@iconify/utils/lib/emoji/regex/base.js +203 -0
  100. package/.output/server/node_modules/@iconify/utils/lib/emoji/regex/create.js +33 -0
  101. package/.output/server/node_modules/@iconify/utils/lib/emoji/regex/numbers.js +132 -0
  102. package/.output/server/node_modules/@iconify/utils/lib/emoji/regex/similar.js +165 -0
  103. package/.output/server/node_modules/@iconify/utils/lib/emoji/regex/tree.js +79 -0
  104. package/.output/server/node_modules/@iconify/utils/lib/emoji/replace/find.js +92 -0
  105. package/.output/server/node_modules/@iconify/utils/lib/emoji/replace/replace.js +26 -0
  106. package/.output/server/node_modules/@iconify/utils/lib/emoji/test/components.js +76 -0
  107. package/.output/server/node_modules/@iconify/utils/lib/emoji/test/missing.js +66 -0
  108. package/.output/server/node_modules/@iconify/utils/lib/emoji/test/name.js +45 -0
  109. package/.output/server/node_modules/@iconify/utils/lib/emoji/test/parse.js +103 -0
  110. package/.output/server/node_modules/@iconify/utils/lib/emoji/test/similar.js +36 -0
  111. package/.output/server/node_modules/@iconify/utils/lib/emoji/test/tree.js +92 -0
  112. package/.output/server/node_modules/@iconify/utils/lib/emoji/test/variations.js +62 -0
  113. package/.output/server/node_modules/@iconify/utils/lib/icon/defaults.js +25 -0
  114. package/.output/server/node_modules/@iconify/utils/lib/icon/merge.js +16 -0
  115. package/.output/server/node_modules/@iconify/utils/lib/icon/name.js +57 -0
  116. package/.output/server/node_modules/@iconify/utils/lib/icon/square.js +33 -0
  117. package/.output/server/node_modules/@iconify/utils/lib/icon/transformations.js +12 -0
  118. package/.output/server/node_modules/@iconify/utils/lib/icon-set/convert-info.js +125 -0
  119. package/.output/server/node_modules/@iconify/utils/lib/icon-set/expand.js +19 -0
  120. package/.output/server/node_modules/@iconify/utils/lib/icon-set/get-icon.js +25 -0
  121. package/.output/server/node_modules/@iconify/utils/lib/icon-set/get-icons.js +36 -0
  122. package/.output/server/node_modules/@iconify/utils/lib/icon-set/minify.js +91 -0
  123. package/.output/server/node_modules/@iconify/utils/lib/icon-set/parse.js +46 -0
  124. package/.output/server/node_modules/@iconify/utils/lib/icon-set/tree.js +23 -0
  125. package/.output/server/node_modules/@iconify/utils/lib/icon-set/validate-basic.js +42 -0
  126. package/.output/server/node_modules/@iconify/utils/lib/icon-set/validate.js +123 -0
  127. package/.output/server/node_modules/@iconify/utils/lib/index.js +52 -0
  128. package/.output/server/node_modules/@iconify/utils/lib/loader/custom.js +30 -0
  129. package/.output/server/node_modules/@iconify/utils/lib/loader/loader.js +26 -0
  130. package/.output/server/node_modules/@iconify/utils/lib/loader/modern.js +27 -0
  131. package/.output/server/node_modules/@iconify/utils/lib/loader/utils.js +105 -0
  132. package/.output/server/node_modules/@iconify/utils/lib/misc/objects.js +26 -0
  133. package/.output/server/node_modules/@iconify/utils/lib/misc/strings.js +26 -0
  134. package/.output/server/node_modules/@iconify/utils/lib/misc/title.js +9 -0
  135. package/.output/server/node_modules/@iconify/utils/lib/svg/build.js +113 -0
  136. package/.output/server/node_modules/@iconify/utils/lib/svg/defs.js +31 -0
  137. package/.output/server/node_modules/@iconify/utils/lib/svg/encode-svg-for-css.js +13 -0
  138. package/.output/server/node_modules/@iconify/utils/lib/svg/html.js +9 -0
  139. package/.output/server/node_modules/@iconify/utils/lib/svg/id.js +41 -0
  140. package/.output/server/node_modules/@iconify/utils/lib/svg/inner-html.js +22 -0
  141. package/.output/server/node_modules/@iconify/utils/lib/svg/parse.js +67 -0
  142. package/.output/server/node_modules/@iconify/utils/lib/svg/pretty.js +54 -0
  143. package/.output/server/node_modules/@iconify/utils/lib/svg/size.js +27 -0
  144. package/.output/server/node_modules/@iconify/utils/lib/svg/trim.js +7 -0
  145. package/.output/server/node_modules/@iconify/utils/lib/svg/url.js +22 -0
  146. package/.output/server/node_modules/@iconify/utils/lib/svg/viewbox.js +8 -0
  147. package/.output/server/node_modules/@iconify/utils/package.json +119 -0
  148. package/.output/server/node_modules/@vue/compiler-core/dist/compiler-core.cjs.prod.js +6759 -0
  149. package/.output/server/node_modules/@vue/compiler-core/package.json +58 -0
  150. package/.output/server/node_modules/@vue/compiler-dom/dist/compiler-dom.cjs.prod.js +689 -0
  151. package/.output/server/node_modules/@vue/compiler-dom/package.json +57 -0
  152. package/.output/server/node_modules/@vue/compiler-ssr/dist/compiler-ssr.cjs.js +1413 -0
  153. package/.output/server/node_modules/@vue/compiler-ssr/package.json +34 -0
  154. package/.output/server/node_modules/@vue/devtools-api/dist/index.js +2 -0
  155. package/.output/server/node_modules/@vue/devtools-api/package.json +34 -0
  156. package/.output/server/node_modules/@vue/devtools-kit/dist/index.js +5670 -0
  157. package/.output/server/node_modules/@vue/devtools-kit/package.json +44 -0
  158. package/.output/server/node_modules/@vue/devtools-shared/dist/index.js +239 -0
  159. package/.output/server/node_modules/@vue/devtools-shared/package.json +33 -0
  160. package/.output/server/node_modules/@vue/reactivity/dist/reactivity.cjs.prod.js +1899 -0
  161. package/.output/server/node_modules/@vue/reactivity/package.json +55 -0
  162. package/.output/server/node_modules/@vue/runtime-core/dist/runtime-core.cjs.prod.js +6940 -0
  163. package/.output/server/node_modules/@vue/runtime-core/package.json +52 -0
  164. package/.output/server/node_modules/@vue/runtime-dom/dist/runtime-dom.cjs.prod.js +1822 -0
  165. package/.output/server/node_modules/@vue/runtime-dom/package.json +60 -0
  166. package/.output/server/node_modules/@vue/server-renderer/dist/server-renderer.cjs.prod.js +896 -0
  167. package/.output/server/node_modules/@vue/server-renderer/package.json +55 -0
  168. package/.output/server/node_modules/@vue/shared/dist/shared.cjs.prod.js +604 -0
  169. package/.output/server/node_modules/@vue/shared/package.json +47 -0
  170. package/.output/server/node_modules/@vue-flow/core/dist/vue-flow-core.mjs +10186 -0
  171. package/.output/server/node_modules/@vue-flow/core/package.json +95 -0
  172. package/.output/server/node_modules/ajv/dist/2020.js +55 -0
  173. package/.output/server/node_modules/ajv/dist/ajv.js +50 -0
  174. package/.output/server/node_modules/ajv/dist/compile/codegen/code.js +156 -0
  175. package/.output/server/node_modules/ajv/dist/compile/codegen/index.js +697 -0
  176. package/.output/server/node_modules/ajv/dist/compile/codegen/scope.js +143 -0
  177. package/.output/server/node_modules/ajv/dist/compile/errors.js +123 -0
  178. package/.output/server/node_modules/ajv/dist/compile/index.js +242 -0
  179. package/.output/server/node_modules/ajv/dist/compile/names.js +28 -0
  180. package/.output/server/node_modules/ajv/dist/compile/ref_error.js +12 -0
  181. package/.output/server/node_modules/ajv/dist/compile/resolve.js +155 -0
  182. package/.output/server/node_modules/ajv/dist/compile/rules.js +26 -0
  183. package/.output/server/node_modules/ajv/dist/compile/util.js +178 -0
  184. package/.output/server/node_modules/ajv/dist/compile/validate/applicability.js +19 -0
  185. package/.output/server/node_modules/ajv/dist/compile/validate/boolSchema.js +50 -0
  186. package/.output/server/node_modules/ajv/dist/compile/validate/dataType.js +203 -0
  187. package/.output/server/node_modules/ajv/dist/compile/validate/defaults.js +35 -0
  188. package/.output/server/node_modules/ajv/dist/compile/validate/index.js +520 -0
  189. package/.output/server/node_modules/ajv/dist/compile/validate/keyword.js +124 -0
  190. package/.output/server/node_modules/ajv/dist/compile/validate/subschema.js +81 -0
  191. package/.output/server/node_modules/ajv/dist/core.js +618 -0
  192. package/.output/server/node_modules/ajv/dist/refs/data.json +13 -0
  193. package/.output/server/node_modules/ajv/dist/refs/json-schema-2020-12/index.js +30 -0
  194. package/.output/server/node_modules/ajv/dist/refs/json-schema-2020-12/meta/applicator.json +48 -0
  195. package/.output/server/node_modules/ajv/dist/refs/json-schema-2020-12/meta/content.json +17 -0
  196. package/.output/server/node_modules/ajv/dist/refs/json-schema-2020-12/meta/core.json +51 -0
  197. package/.output/server/node_modules/ajv/dist/refs/json-schema-2020-12/meta/format-annotation.json +14 -0
  198. package/.output/server/node_modules/ajv/dist/refs/json-schema-2020-12/meta/meta-data.json +37 -0
  199. package/.output/server/node_modules/ajv/dist/refs/json-schema-2020-12/meta/unevaluated.json +15 -0
  200. package/.output/server/node_modules/ajv/dist/refs/json-schema-2020-12/meta/validation.json +90 -0
  201. package/.output/server/node_modules/ajv/dist/refs/json-schema-2020-12/schema.json +55 -0
  202. package/.output/server/node_modules/ajv/dist/refs/json-schema-draft-07.json +151 -0
  203. package/.output/server/node_modules/ajv/dist/runtime/equal.js +7 -0
  204. package/.output/server/node_modules/ajv/dist/runtime/ucs2length.js +24 -0
  205. package/.output/server/node_modules/ajv/dist/runtime/uri.js +6 -0
  206. package/.output/server/node_modules/ajv/dist/runtime/validation_error.js +11 -0
  207. package/.output/server/node_modules/ajv/dist/vocabularies/applicator/additionalItems.js +49 -0
  208. package/.output/server/node_modules/ajv/dist/vocabularies/applicator/additionalProperties.js +106 -0
  209. package/.output/server/node_modules/ajv/dist/vocabularies/applicator/allOf.js +23 -0
  210. package/.output/server/node_modules/ajv/dist/vocabularies/applicator/anyOf.js +12 -0
  211. package/.output/server/node_modules/ajv/dist/vocabularies/applicator/contains.js +95 -0
  212. package/.output/server/node_modules/ajv/dist/vocabularies/applicator/dependencies.js +85 -0
  213. package/.output/server/node_modules/ajv/dist/vocabularies/applicator/dependentSchemas.js +11 -0
  214. package/.output/server/node_modules/ajv/dist/vocabularies/applicator/if.js +66 -0
  215. package/.output/server/node_modules/ajv/dist/vocabularies/applicator/index.js +44 -0
  216. package/.output/server/node_modules/ajv/dist/vocabularies/applicator/items.js +52 -0
  217. package/.output/server/node_modules/ajv/dist/vocabularies/applicator/items2020.js +30 -0
  218. package/.output/server/node_modules/ajv/dist/vocabularies/applicator/not.js +26 -0
  219. package/.output/server/node_modules/ajv/dist/vocabularies/applicator/oneOf.js +60 -0
  220. package/.output/server/node_modules/ajv/dist/vocabularies/applicator/patternProperties.js +75 -0
  221. package/.output/server/node_modules/ajv/dist/vocabularies/applicator/prefixItems.js +12 -0
  222. package/.output/server/node_modules/ajv/dist/vocabularies/applicator/properties.js +54 -0
  223. package/.output/server/node_modules/ajv/dist/vocabularies/applicator/propertyNames.js +38 -0
  224. package/.output/server/node_modules/ajv/dist/vocabularies/applicator/thenElse.js +13 -0
  225. package/.output/server/node_modules/ajv/dist/vocabularies/code.js +131 -0
  226. package/.output/server/node_modules/ajv/dist/vocabularies/core/id.js +10 -0
  227. package/.output/server/node_modules/ajv/dist/vocabularies/core/index.js +16 -0
  228. package/.output/server/node_modules/ajv/dist/vocabularies/core/ref.js +122 -0
  229. package/.output/server/node_modules/ajv/dist/vocabularies/discriminator/index.js +104 -0
  230. package/.output/server/node_modules/ajv/dist/vocabularies/discriminator/types.js +9 -0
  231. package/.output/server/node_modules/ajv/dist/vocabularies/draft2020.js +23 -0
  232. package/.output/server/node_modules/ajv/dist/vocabularies/draft7.js +17 -0
  233. package/.output/server/node_modules/ajv/dist/vocabularies/dynamic/dynamicAnchor.js +30 -0
  234. package/.output/server/node_modules/ajv/dist/vocabularies/dynamic/dynamicRef.js +51 -0
  235. package/.output/server/node_modules/ajv/dist/vocabularies/dynamic/index.js +9 -0
  236. package/.output/server/node_modules/ajv/dist/vocabularies/dynamic/recursiveAnchor.js +16 -0
  237. package/.output/server/node_modules/ajv/dist/vocabularies/dynamic/recursiveRef.js +10 -0
  238. package/.output/server/node_modules/ajv/dist/vocabularies/format/format.js +92 -0
  239. package/.output/server/node_modules/ajv/dist/vocabularies/format/index.js +6 -0
  240. package/.output/server/node_modules/ajv/dist/vocabularies/metadata.js +18 -0
  241. package/.output/server/node_modules/ajv/dist/vocabularies/next.js +8 -0
  242. package/.output/server/node_modules/ajv/dist/vocabularies/unevaluated/index.js +7 -0
  243. package/.output/server/node_modules/ajv/dist/vocabularies/unevaluated/unevaluatedItems.js +40 -0
  244. package/.output/server/node_modules/ajv/dist/vocabularies/unevaluated/unevaluatedProperties.js +65 -0
  245. package/.output/server/node_modules/ajv/dist/vocabularies/validation/const.js +25 -0
  246. package/.output/server/node_modules/ajv/dist/vocabularies/validation/dependentRequired.js +12 -0
  247. package/.output/server/node_modules/ajv/dist/vocabularies/validation/enum.js +48 -0
  248. package/.output/server/node_modules/ajv/dist/vocabularies/validation/index.js +33 -0
  249. package/.output/server/node_modules/ajv/dist/vocabularies/validation/limitContains.js +15 -0
  250. package/.output/server/node_modules/ajv/dist/vocabularies/validation/limitItems.js +24 -0
  251. package/.output/server/node_modules/ajv/dist/vocabularies/validation/limitLength.js +27 -0
  252. package/.output/server/node_modules/ajv/dist/vocabularies/validation/limitNumber.js +27 -0
  253. package/.output/server/node_modules/ajv/dist/vocabularies/validation/limitProperties.js +24 -0
  254. package/.output/server/node_modules/ajv/dist/vocabularies/validation/multipleOf.js +26 -0
  255. package/.output/server/node_modules/ajv/dist/vocabularies/validation/pattern.js +24 -0
  256. package/.output/server/node_modules/ajv/dist/vocabularies/validation/required.js +79 -0
  257. package/.output/server/node_modules/ajv/dist/vocabularies/validation/uniqueItems.js +64 -0
  258. package/.output/server/node_modules/ajv/package.json +126 -0
  259. package/.output/server/node_modules/ajv-formats/dist/formats.js +208 -0
  260. package/.output/server/node_modules/ajv-formats/dist/index.js +37 -0
  261. package/.output/server/node_modules/ajv-formats/dist/limit.js +69 -0
  262. package/.output/server/node_modules/ajv-formats/package.json +74 -0
  263. package/.output/server/node_modules/birpc/dist/index.mjs +291 -0
  264. package/.output/server/node_modules/birpc/package.json +57 -0
  265. package/.output/server/node_modules/consola/dist/chunks/prompt.mjs +280 -0
  266. package/.output/server/node_modules/consola/dist/core.mjs +512 -0
  267. package/.output/server/node_modules/consola/dist/index.mjs +651 -0
  268. package/.output/server/node_modules/consola/dist/shared/consola.DRwqZj3T.mjs +72 -0
  269. package/.output/server/node_modules/consola/dist/shared/consola.DXBYu-KD.mjs +288 -0
  270. package/.output/server/node_modules/consola/package.json +136 -0
  271. package/.output/server/node_modules/devalue/index.js +4 -0
  272. package/.output/server/node_modules/devalue/package.json +40 -0
  273. package/.output/server/node_modules/devalue/src/base64.js +60 -0
  274. package/.output/server/node_modules/devalue/src/constants.js +12 -0
  275. package/.output/server/node_modules/devalue/src/parse.js +283 -0
  276. package/.output/server/node_modules/devalue/src/stringify.js +401 -0
  277. package/.output/server/node_modules/devalue/src/uneval.js +552 -0
  278. package/.output/server/node_modules/devalue/src/utils.js +160 -0
  279. package/.output/server/node_modules/entities/dist/commonjs/decode-codepoint.js +77 -0
  280. package/.output/server/node_modules/entities/dist/commonjs/decode.js +568 -0
  281. package/.output/server/node_modules/entities/dist/commonjs/generated/decode-data-html.js +7 -0
  282. package/.output/server/node_modules/entities/dist/commonjs/generated/decode-data-xml.js +7 -0
  283. package/.output/server/node_modules/entities/dist/commonjs/internal/bin-trie-flags.js +21 -0
  284. package/.output/server/node_modules/entities/dist/commonjs/internal/decode-shared.js +31 -0
  285. package/.output/server/node_modules/entities/dist/commonjs/package.json +3 -0
  286. package/.output/server/node_modules/entities/package.json +120 -0
  287. package/.output/server/node_modules/estree-walker/dist/umd/estree-walker.js +344 -0
  288. package/.output/server/node_modules/estree-walker/package.json +37 -0
  289. package/.output/server/node_modules/fast-deep-equal/index.js +46 -0
  290. package/.output/server/node_modules/fast-deep-equal/package.json +61 -0
  291. package/.output/server/node_modules/fast-uri/index.js +406 -0
  292. package/.output/server/node_modules/fast-uri/lib/schemes.js +267 -0
  293. package/.output/server/node_modules/fast-uri/lib/utils.js +443 -0
  294. package/.output/server/node_modules/fast-uri/package.json +68 -0
  295. package/.output/server/node_modules/json-schema-traverse/index.js +93 -0
  296. package/.output/server/node_modules/json-schema-traverse/package.json +43 -0
  297. package/.output/server/node_modules/perfect-debounce/dist/index.mjs +89 -0
  298. package/.output/server/node_modules/perfect-debounce/package.json +41 -0
  299. package/.output/server/node_modules/source-map-js/lib/array-set.js +121 -0
  300. package/.output/server/node_modules/source-map-js/lib/base64-vlq.js +140 -0
  301. package/.output/server/node_modules/source-map-js/lib/base64.js +67 -0
  302. package/.output/server/node_modules/source-map-js/lib/binary-search.js +111 -0
  303. package/.output/server/node_modules/source-map-js/lib/mapping-list.js +79 -0
  304. package/.output/server/node_modules/source-map-js/lib/quick-sort.js +132 -0
  305. package/.output/server/node_modules/source-map-js/lib/source-map-consumer.js +1188 -0
  306. package/.output/server/node_modules/source-map-js/lib/source-map-generator.js +444 -0
  307. package/.output/server/node_modules/source-map-js/lib/source-node.js +413 -0
  308. package/.output/server/node_modules/source-map-js/lib/util.js +594 -0
  309. package/.output/server/node_modules/source-map-js/package.json +71 -0
  310. package/.output/server/node_modules/source-map-js/source-map.js +8 -0
  311. package/.output/server/node_modules/tailwindcss/dist/chunk-X4GG3EDV.mjs +1 -0
  312. package/.output/server/node_modules/tailwindcss/dist/colors.mjs +1 -0
  313. package/.output/server/node_modules/tailwindcss/package.json +89 -0
  314. package/.output/server/node_modules/ufo/dist/index.mjs +645 -0
  315. package/.output/server/node_modules/ufo/package.json +48 -0
  316. package/.output/server/node_modules/unhead/dist/index.mjs +9 -0
  317. package/.output/server/node_modules/unhead/dist/parser.mjs +508 -0
  318. package/.output/server/node_modules/unhead/dist/plugins.mjs +101 -0
  319. package/.output/server/node_modules/unhead/dist/scripts.mjs +30 -0
  320. package/.output/server/node_modules/unhead/dist/server.mjs +180 -0
  321. package/.output/server/node_modules/unhead/dist/shared/unhead.B3VbJo7Y.mjs +207 -0
  322. package/.output/server/node_modules/unhead/dist/shared/unhead.BYvz9V1x.mjs +43 -0
  323. package/.output/server/node_modules/unhead/dist/shared/unhead.BnoAbrHA.mjs +269 -0
  324. package/.output/server/node_modules/unhead/dist/shared/unhead.CaI5ZD4O.mjs +182 -0
  325. package/.output/server/node_modules/unhead/dist/shared/unhead.CbpEuj3y.mjs +71 -0
  326. package/.output/server/node_modules/unhead/dist/shared/unhead.D4vSFytZ.mjs +236 -0
  327. package/.output/server/node_modules/unhead/dist/shared/unhead.DQc16pHI.mjs +196 -0
  328. package/.output/server/node_modules/unhead/dist/shared/unhead.Dh1cQCTe.mjs +44 -0
  329. package/.output/server/node_modules/unhead/dist/shared/unhead.TxTMM7cM.mjs +166 -0
  330. package/.output/server/node_modules/unhead/dist/shared/unhead.yem5I2v_.mjs +38 -0
  331. package/.output/server/node_modules/unhead/dist/utils.mjs +5 -0
  332. package/.output/server/node_modules/unhead/package.json +105 -0
  333. package/.output/server/node_modules/vue/dist/vue.cjs.js +80 -0
  334. package/.output/server/node_modules/vue/dist/vue.cjs.prod.js +66 -0
  335. package/.output/server/node_modules/vue/index.js +7 -0
  336. package/.output/server/node_modules/vue/index.mjs +1 -0
  337. package/.output/server/node_modules/vue/package.json +112 -0
  338. package/.output/server/node_modules/vue/server-renderer/index.mjs +1 -0
  339. package/.output/server/node_modules/vue-bundle-renderer/dist/runtime.mjs +249 -0
  340. package/.output/server/node_modules/vue-bundle-renderer/package.json +57 -0
  341. package/.output/server/node_modules/vue-router/dist/devtools-DCoWQoU_.js +1034 -0
  342. package/.output/server/node_modules/vue-router/dist/useApi-s_02lHjl.js +181 -0
  343. package/.output/server/node_modules/vue-router/dist/vue-router.js +1499 -0
  344. package/.output/server/node_modules/vue-router/package.json +226 -0
  345. package/.output/server/node_modules/vue-router/vue-router.node.mjs +2 -0
  346. package/.output/server/package.json +41 -0
  347. package/README.md +114 -0
  348. package/THIRD_PARTY_NOTICES.md +28 -0
  349. package/bin/businesslens.mjs +181 -0
  350. package/package.json +68 -0
  351. package/packages/report-schema/schemas/report.schema.json +235 -0
  352. package/packages/report-schema/types/index.ts +1 -0
  353. package/packages/report-schema/types/report.ts +101 -0
  354. package/packages/report-schema/validate.mjs +111 -0
@@ -0,0 +1,4412 @@
1
+ import { useSlots, computed, useTemplateRef, unref, mergeProps, withCtx, createVNode, renderSlot, openBlock, createBlock, createCommentVNode, toRef, createTextVNode, toDisplayString, Fragment, renderList, resolveDynamicComponent, defineComponent, toRefs, ref, createElementBlock, withModifiers, normalizeProps, guardReactiveProps, watch, Teleport, toValue, createElementVNode, watchEffect, nextTick, normalizeStyle, useSSRContext } from 'vue';
2
+ import { ssrRenderComponent, ssrRenderAttrs, ssrRenderSlot, ssrRenderClass, ssrRenderList, ssrInterpolate, ssrRenderVNode, ssrRenderStyle, ssrIncludeBooleanAttr } from 'vue/server-renderer';
3
+ import { t as useComponentProps, k as useVModel, v as useAppConfig, w as useFormField, x as useFieldGroup, y as useComponentIcons, z as tv, P as Primitive, e as _sfc_main$d, A as _sfc_main$b, C as useForwardProps, D as reactivePick, E as usePortal, F as isArrayOfArray, G as FieldGroupReset, H as get, I as _sfc_main$c, l as isNullish, m as useCollection, B as looseToNumber, p as useForwardExpose, J as getDisplayValue, T as Teleport_default, s as Presence_default, f as _sfc_main$8, h as unrefElement, n as createContext, V as VisuallyHidden_default, r as refAutoReset, o as useForwardProps$1, j as injectConfigProviderContext, i as getActiveElement, q as useResizeObserver } from './server.mjs';
4
+ import { u as useDirection, P as PopperRoot_default, a as useId, b as PopperAnchor_default, c as useForwardPropsEmits, d as PopperArrow_default, _ as _sfc_main$3, e as useFocusGuards, f as useBodyScrollLock, g as useHideOthers, F as FocusScope_default, D as DismissableLayer_default, h as focusFirst, i as PopperContent_default } from './Slideover-KOfskX1l.mjs';
5
+ import { l as defu, E as isEqual } from '../nitro/nitro.mjs';
6
+ import { u as useReport, _ as _sfc_main$4 } from './useReport-pDAk-ETG.mjs';
7
+
8
+ function clamp(value, min = Number.NEGATIVE_INFINITY, max = Number.POSITIVE_INFINITY) {
9
+ return Math.min(max, Math.max(min, value));
10
+ }
11
+ function handleAndDispatchCustomEvent(name, handler, detail) {
12
+ const target = detail.originalEvent.target;
13
+ const event = new CustomEvent(name, {
14
+ bubbles: false,
15
+ cancelable: true,
16
+ detail
17
+ });
18
+ if (handler) target.addEventListener(name, handler, { once: true });
19
+ target.dispatchEvent(event);
20
+ }
21
+ function useFormControl(el) {
22
+ return computed(() => toValue(el) ? Boolean(unrefElement(el)?.closest("form")) : true);
23
+ }
24
+ function useTypeahead(callback) {
25
+ const search = refAutoReset("", 1e3);
26
+ const handleTypeaheadSearch = (key, items) => {
27
+ search.value = search.value + key;
28
+ {
29
+ const currentItem = getActiveElement();
30
+ const itemsWithTextValue = items.map((item) => ({
31
+ ...item,
32
+ textValue: item.value?.textValue ?? item.ref.textContent?.trim() ?? ""
33
+ }));
34
+ const currentMatch = itemsWithTextValue.find((item) => item.ref === currentItem);
35
+ const values = itemsWithTextValue.map((item) => item.textValue);
36
+ const nextMatch = getNextMatch(values, search.value, currentMatch?.textValue);
37
+ const newItem = itemsWithTextValue.find((item) => item.textValue === nextMatch);
38
+ if (newItem) newItem.ref.focus();
39
+ return newItem?.ref;
40
+ }
41
+ };
42
+ const resetTypeahead = () => {
43
+ search.value = "";
44
+ };
45
+ return {
46
+ search,
47
+ handleTypeaheadSearch,
48
+ resetTypeahead
49
+ };
50
+ }
51
+ function wrapArray(array, startIndex) {
52
+ return array.map((_, index) => array[(startIndex + index) % array.length]);
53
+ }
54
+ function getNextMatch(values, search, currentMatch) {
55
+ const isRepeated = search.length > 1 && Array.from(search).every((char) => char === search[0]);
56
+ const normalizedSearch = isRepeated ? search[0] : search;
57
+ const currentMatchIndex = currentMatch ? values.indexOf(currentMatch) : -1;
58
+ let wrappedValues = wrapArray(values, Math.max(currentMatchIndex, 0));
59
+ const excludeCurrentMatch = normalizedSearch.length === 1;
60
+ if (excludeCurrentMatch) wrappedValues = wrappedValues.filter((v) => v !== currentMatch);
61
+ const nextMatch = wrappedValues.find((value) => value.toLowerCase().startsWith(normalizedSearch.toLowerCase()));
62
+ return nextMatch !== currentMatch ? nextMatch : void 0;
63
+ }
64
+ function useNonce(nonce) {
65
+ const context = injectConfigProviderContext({ nonce: ref() });
66
+ return computed(() => nonce?.value || context.nonce?.value);
67
+ }
68
+ const OPEN_KEYS = [
69
+ " ",
70
+ "Enter",
71
+ "ArrowUp",
72
+ "ArrowDown"
73
+ ];
74
+ const SELECTION_KEYS = [" ", "Enter"];
75
+ const CONTENT_MARGIN = 10;
76
+ function valueComparator(value, currentValue, comparator) {
77
+ if (value === void 0) return false;
78
+ else if (Array.isArray(value)) return value.some((val) => compare(val, currentValue, comparator));
79
+ else return compare(value, currentValue, comparator);
80
+ }
81
+ function compare(value, currentValue, comparator) {
82
+ if (value === void 0 || currentValue === void 0) return false;
83
+ if (typeof value === "string") return value === currentValue;
84
+ if (typeof comparator === "function") return comparator(value, currentValue);
85
+ if (typeof comparator === "string") return value?.[comparator] === currentValue?.[comparator];
86
+ return isEqual(value, currentValue);
87
+ }
88
+ function shouldShowPlaceholder(value) {
89
+ return value === void 0 || value === null || value === "" || Array.isArray(value) && value.length === 0;
90
+ }
91
+ const _hoisted_1$1 = {
92
+ key: 0,
93
+ value: ""
94
+ };
95
+ const [injectSelectRootContext, provideSelectRootContext] = /* @__PURE__ */ createContext("SelectRoot");
96
+ var SelectRoot_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
97
+ inheritAttrs: false,
98
+ __name: "SelectRoot",
99
+ props: {
100
+ open: {
101
+ type: Boolean,
102
+ required: false,
103
+ default: void 0
104
+ },
105
+ defaultOpen: {
106
+ type: Boolean,
107
+ required: false
108
+ },
109
+ defaultValue: {
110
+ type: null,
111
+ required: false
112
+ },
113
+ modelValue: {
114
+ type: null,
115
+ required: false,
116
+ default: void 0
117
+ },
118
+ by: {
119
+ type: [String, Function],
120
+ required: false
121
+ },
122
+ dir: {
123
+ type: String,
124
+ required: false
125
+ },
126
+ multiple: {
127
+ type: Boolean,
128
+ required: false
129
+ },
130
+ autocomplete: {
131
+ type: String,
132
+ required: false
133
+ },
134
+ disabled: {
135
+ type: Boolean,
136
+ required: false
137
+ },
138
+ name: {
139
+ type: String,
140
+ required: false
141
+ },
142
+ required: {
143
+ type: Boolean,
144
+ required: false
145
+ }
146
+ },
147
+ emits: ["update:modelValue", "update:open"],
148
+ setup(__props, { emit: __emit }) {
149
+ const props = __props;
150
+ const emits = __emit;
151
+ const { required, disabled, multiple, dir: propDir } = toRefs(props);
152
+ const modelValue = useVModel(props, "modelValue", emits, {
153
+ defaultValue: props.defaultValue ?? (multiple.value ? [] : void 0),
154
+ passive: props.modelValue === void 0,
155
+ deep: true
156
+ });
157
+ const open = useVModel(props, "open", emits, {
158
+ defaultValue: props.defaultOpen,
159
+ passive: props.open === void 0
160
+ });
161
+ const triggerElement = ref();
162
+ const valueElement = ref();
163
+ const triggerPointerDownPosRef = ref({
164
+ x: 0,
165
+ y: 0
166
+ });
167
+ const isEmptyModelValue = computed(() => {
168
+ if (multiple.value && Array.isArray(modelValue.value)) return modelValue.value?.length === 0;
169
+ else return isNullish(modelValue.value);
170
+ });
171
+ useCollection({ isProvider: true });
172
+ const dir = useDirection(propDir);
173
+ const isFormControl = useFormControl(triggerElement);
174
+ const optionsSet = ref(/* @__PURE__ */ new Set());
175
+ const nativeSelectKey = computed(() => {
176
+ return Array.from(optionsSet.value).map((option) => option.value).join(";");
177
+ });
178
+ function handleValueChange(value) {
179
+ if (multiple.value) {
180
+ const array = Array.isArray(modelValue.value) ? [...modelValue.value] : [];
181
+ const index = array.findIndex((i) => compare(i, value, props.by));
182
+ index === -1 ? array.push(value) : array.splice(index, 1);
183
+ modelValue.value = [...array];
184
+ } else modelValue.value = value;
185
+ }
186
+ function getOption(value) {
187
+ return Array.from(optionsSet.value).find((option) => valueComparator(value, option.value, props.by));
188
+ }
189
+ provideSelectRootContext({
190
+ triggerElement,
191
+ onTriggerChange: (node) => {
192
+ triggerElement.value = node;
193
+ },
194
+ valueElement,
195
+ onValueElementChange: (node) => {
196
+ valueElement.value = node;
197
+ },
198
+ contentId: "",
199
+ modelValue,
200
+ onValueChange: handleValueChange,
201
+ by: props.by,
202
+ open,
203
+ multiple,
204
+ required,
205
+ onOpenChange: (value) => {
206
+ open.value = value;
207
+ },
208
+ dir,
209
+ triggerPointerDownPosRef,
210
+ disabled,
211
+ isEmptyModelValue,
212
+ optionsSet,
213
+ onOptionAdd: (option) => {
214
+ const existingOption = getOption(option.value);
215
+ if (existingOption) optionsSet.value.delete(existingOption);
216
+ optionsSet.value.add(option);
217
+ },
218
+ onOptionRemove: (option) => {
219
+ const existingOption = getOption(option.value);
220
+ if (existingOption) optionsSet.value.delete(existingOption);
221
+ }
222
+ });
223
+ return (_ctx, _cache) => {
224
+ return openBlock(), createBlock(unref(PopperRoot_default), null, {
225
+ default: withCtx(() => [renderSlot(_ctx.$slots, "default", {
226
+ modelValue: unref(modelValue),
227
+ open: unref(open)
228
+ }), unref(isFormControl) && _ctx.name ? (openBlock(), createBlock(BubbleSelect_default, {
229
+ key: nativeSelectKey.value,
230
+ "aria-hidden": "true",
231
+ tabindex: "-1",
232
+ multiple: unref(multiple),
233
+ required: unref(required),
234
+ name: _ctx.name,
235
+ autocomplete: _ctx.autocomplete,
236
+ disabled: unref(disabled),
237
+ value: unref(modelValue)
238
+ }, {
239
+ default: withCtx(() => [unref(isNullish)(unref(modelValue)) ? (openBlock(), createElementBlock("option", _hoisted_1$1)) : createCommentVNode("v-if", true), (openBlock(true), createElementBlock(Fragment, null, renderList(Array.from(optionsSet.value), (option) => {
240
+ return openBlock(), createElementBlock("option", mergeProps({ key: option.value ?? "" }, { ref_for: true }, option), null, 16);
241
+ }), 128))]),
242
+ _: 1
243
+ }, 8, [
244
+ "multiple",
245
+ "required",
246
+ "name",
247
+ "autocomplete",
248
+ "disabled",
249
+ "value"
250
+ ])) : createCommentVNode("v-if", true)]),
251
+ _: 3
252
+ });
253
+ };
254
+ }
255
+ });
256
+ var SelectRoot_default = SelectRoot_vue_vue_type_script_setup_true_lang_default;
257
+ var BubbleSelect_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
258
+ __name: "BubbleSelect",
259
+ props: {
260
+ autocomplete: {
261
+ type: String,
262
+ required: false
263
+ },
264
+ autofocus: {
265
+ type: Boolean,
266
+ required: false
267
+ },
268
+ disabled: {
269
+ type: Boolean,
270
+ required: false
271
+ },
272
+ form: {
273
+ type: String,
274
+ required: false
275
+ },
276
+ multiple: {
277
+ type: Boolean,
278
+ required: false
279
+ },
280
+ name: {
281
+ type: String,
282
+ required: false
283
+ },
284
+ required: {
285
+ type: Boolean,
286
+ required: false
287
+ },
288
+ size: {
289
+ type: Number,
290
+ required: false
291
+ },
292
+ value: {
293
+ type: null,
294
+ required: false
295
+ }
296
+ },
297
+ setup(__props) {
298
+ const props = __props;
299
+ const selectElement = ref();
300
+ const rootContext = injectSelectRootContext();
301
+ watch(() => props.value, (cur, prev) => {
302
+ const selectProto = (void 0).HTMLSelectElement.prototype;
303
+ const descriptor = Object.getOwnPropertyDescriptor(selectProto, "value");
304
+ const setValue = descriptor.set;
305
+ if (cur !== prev && setValue && selectElement.value) {
306
+ const event = new Event("change", { bubbles: true });
307
+ setValue.call(selectElement.value, cur);
308
+ selectElement.value.dispatchEvent(event);
309
+ }
310
+ });
311
+ function handleInput(event) {
312
+ rootContext.onValueChange(event.target.value);
313
+ }
314
+ return (_ctx, _cache) => {
315
+ return openBlock(), createBlock(unref(VisuallyHidden_default), { "as-child": "" }, {
316
+ default: withCtx(() => [createElementVNode("select", mergeProps({
317
+ ref_key: "selectElement",
318
+ ref: selectElement
319
+ }, props, { onInput: handleInput }), [renderSlot(_ctx.$slots, "default")], 16)]),
320
+ _: 3
321
+ });
322
+ };
323
+ }
324
+ });
325
+ var BubbleSelect_default = BubbleSelect_vue_vue_type_script_setup_true_lang_default;
326
+ var SelectPopperPosition_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
327
+ __name: "SelectPopperPosition",
328
+ props: {
329
+ side: {
330
+ type: null,
331
+ required: false
332
+ },
333
+ sideOffset: {
334
+ type: Number,
335
+ required: false
336
+ },
337
+ sideFlip: {
338
+ type: Boolean,
339
+ required: false
340
+ },
341
+ align: {
342
+ type: null,
343
+ required: false,
344
+ default: "start"
345
+ },
346
+ alignOffset: {
347
+ type: Number,
348
+ required: false
349
+ },
350
+ alignFlip: {
351
+ type: Boolean,
352
+ required: false
353
+ },
354
+ avoidCollisions: {
355
+ type: Boolean,
356
+ required: false
357
+ },
358
+ collisionBoundary: {
359
+ type: null,
360
+ required: false
361
+ },
362
+ collisionPadding: {
363
+ type: [Number, Object],
364
+ required: false,
365
+ default: CONTENT_MARGIN
366
+ },
367
+ arrowPadding: {
368
+ type: Number,
369
+ required: false
370
+ },
371
+ hideShiftedArrow: {
372
+ type: Boolean,
373
+ required: false
374
+ },
375
+ sticky: {
376
+ type: String,
377
+ required: false
378
+ },
379
+ hideWhenDetached: {
380
+ type: Boolean,
381
+ required: false
382
+ },
383
+ positionStrategy: {
384
+ type: String,
385
+ required: false
386
+ },
387
+ updatePositionStrategy: {
388
+ type: String,
389
+ required: false
390
+ },
391
+ disableUpdateOnLayoutShift: {
392
+ type: Boolean,
393
+ required: false
394
+ },
395
+ prioritizePosition: {
396
+ type: Boolean,
397
+ required: false
398
+ },
399
+ reference: {
400
+ type: null,
401
+ required: false
402
+ },
403
+ asChild: {
404
+ type: Boolean,
405
+ required: false
406
+ },
407
+ as: {
408
+ type: null,
409
+ required: false
410
+ }
411
+ },
412
+ setup(__props) {
413
+ const props = __props;
414
+ const forwarded = useForwardProps$1(props);
415
+ return (_ctx, _cache) => {
416
+ return openBlock(), createBlock(unref(PopperContent_default), mergeProps(unref(forwarded), { style: {
417
+ "boxSizing": "border-box",
418
+ "--reka-select-content-transform-origin": "var(--reka-popper-transform-origin)",
419
+ "--reka-select-content-available-width": "var(--reka-popper-available-width)",
420
+ "--reka-select-content-available-height": "var(--reka-popper-available-height)",
421
+ "--reka-select-trigger-width": "var(--reka-popper-anchor-width)",
422
+ "--reka-select-trigger-height": "var(--reka-popper-anchor-height)"
423
+ } }), {
424
+ default: withCtx(() => [renderSlot(_ctx.$slots, "default")]),
425
+ _: 3
426
+ }, 16);
427
+ };
428
+ }
429
+ });
430
+ var SelectPopperPosition_default = SelectPopperPosition_vue_vue_type_script_setup_true_lang_default;
431
+ const SelectContentDefaultContextValue = {
432
+ onViewportChange: () => {
433
+ },
434
+ itemTextRefCallback: () => {
435
+ },
436
+ itemRefCallback: () => {
437
+ }
438
+ };
439
+ const [injectSelectContentContext, provideSelectContentContext] = /* @__PURE__ */ createContext("SelectContent");
440
+ var SelectContentImpl_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
441
+ __name: "SelectContentImpl",
442
+ props: {
443
+ position: {
444
+ type: String,
445
+ required: false,
446
+ default: "item-aligned"
447
+ },
448
+ bodyLock: {
449
+ type: Boolean,
450
+ required: false,
451
+ default: true
452
+ },
453
+ side: {
454
+ type: null,
455
+ required: false
456
+ },
457
+ sideOffset: {
458
+ type: Number,
459
+ required: false
460
+ },
461
+ sideFlip: {
462
+ type: Boolean,
463
+ required: false
464
+ },
465
+ align: {
466
+ type: null,
467
+ required: false,
468
+ default: "start"
469
+ },
470
+ alignOffset: {
471
+ type: Number,
472
+ required: false
473
+ },
474
+ alignFlip: {
475
+ type: Boolean,
476
+ required: false
477
+ },
478
+ avoidCollisions: {
479
+ type: Boolean,
480
+ required: false
481
+ },
482
+ collisionBoundary: {
483
+ type: null,
484
+ required: false
485
+ },
486
+ collisionPadding: {
487
+ type: [Number, Object],
488
+ required: false
489
+ },
490
+ arrowPadding: {
491
+ type: Number,
492
+ required: false
493
+ },
494
+ hideShiftedArrow: {
495
+ type: Boolean,
496
+ required: false
497
+ },
498
+ sticky: {
499
+ type: String,
500
+ required: false
501
+ },
502
+ hideWhenDetached: {
503
+ type: Boolean,
504
+ required: false
505
+ },
506
+ positionStrategy: {
507
+ type: String,
508
+ required: false
509
+ },
510
+ updatePositionStrategy: {
511
+ type: String,
512
+ required: false
513
+ },
514
+ disableUpdateOnLayoutShift: {
515
+ type: Boolean,
516
+ required: false
517
+ },
518
+ prioritizePosition: {
519
+ type: Boolean,
520
+ required: false
521
+ },
522
+ reference: {
523
+ type: null,
524
+ required: false
525
+ },
526
+ asChild: {
527
+ type: Boolean,
528
+ required: false
529
+ },
530
+ as: {
531
+ type: null,
532
+ required: false
533
+ },
534
+ disableOutsidePointerEvents: {
535
+ type: Boolean,
536
+ required: false,
537
+ default: true
538
+ }
539
+ },
540
+ emits: [
541
+ "closeAutoFocus",
542
+ "escapeKeyDown",
543
+ "pointerDownOutside"
544
+ ],
545
+ setup(__props, { emit: __emit }) {
546
+ const props = __props;
547
+ const emits = __emit;
548
+ const rootContext = injectSelectRootContext();
549
+ useFocusGuards();
550
+ useBodyScrollLock(props.bodyLock);
551
+ const { CollectionSlot, getItems } = useCollection();
552
+ const content = ref();
553
+ useHideOthers(content);
554
+ const { search, handleTypeaheadSearch } = useTypeahead();
555
+ const viewport = ref();
556
+ const selectedItem = ref();
557
+ const selectedItemText = ref();
558
+ const isPositioned = ref(false);
559
+ const firstValidItemFoundRef = ref(false);
560
+ const firstSelectedItemInArrayFoundRef = ref(false);
561
+ function focusSelectedItem() {
562
+ if (selectedItem.value && content.value) focusFirst([selectedItem.value, content.value]);
563
+ }
564
+ watch(isPositioned, () => {
565
+ focusSelectedItem();
566
+ });
567
+ const { onOpenChange, triggerPointerDownPosRef } = rootContext;
568
+ watchEffect((cleanupFn) => {
569
+ if (!content.value) return;
570
+ let pointerMoveDelta = {
571
+ x: 0,
572
+ y: 0
573
+ };
574
+ const handlePointerMove = (event) => {
575
+ pointerMoveDelta = {
576
+ x: Math.abs(Math.round(event.pageX) - (triggerPointerDownPosRef.value?.x ?? 0)),
577
+ y: Math.abs(Math.round(event.pageY) - (triggerPointerDownPosRef.value?.y ?? 0))
578
+ };
579
+ };
580
+ const handlePointerUp = (event) => {
581
+ if (event.pointerType === "touch") return;
582
+ if (pointerMoveDelta.x <= 10 && pointerMoveDelta.y <= 10) event.preventDefault();
583
+ else if (!content.value?.contains(event.target)) onOpenChange(false);
584
+ (void 0).removeEventListener("pointermove", handlePointerMove);
585
+ triggerPointerDownPosRef.value = null;
586
+ };
587
+ if (triggerPointerDownPosRef.value !== null) {
588
+ (void 0).addEventListener("pointermove", handlePointerMove);
589
+ (void 0).addEventListener("pointerup", handlePointerUp, {
590
+ capture: true,
591
+ once: true
592
+ });
593
+ }
594
+ cleanupFn(() => {
595
+ (void 0).removeEventListener("pointermove", handlePointerMove);
596
+ (void 0).removeEventListener("pointerup", handlePointerUp, { capture: true });
597
+ });
598
+ });
599
+ function handleKeyDown(event) {
600
+ const isModifierKey = event.ctrlKey || event.altKey || event.metaKey;
601
+ if (event.key === "Tab") event.preventDefault();
602
+ if (!isModifierKey && event.key.length === 1) handleTypeaheadSearch(event.key, getItems());
603
+ if ([
604
+ "ArrowUp",
605
+ "ArrowDown",
606
+ "Home",
607
+ "End"
608
+ ].includes(event.key)) {
609
+ const collectionItems = getItems().map((i) => i.ref);
610
+ let candidateNodes = [...collectionItems];
611
+ if (["ArrowUp", "End"].includes(event.key)) candidateNodes = candidateNodes.slice().reverse();
612
+ if (["ArrowUp", "ArrowDown"].includes(event.key)) {
613
+ const currentElement = event.target;
614
+ const currentIndex = candidateNodes.indexOf(currentElement);
615
+ candidateNodes = candidateNodes.slice(currentIndex + 1);
616
+ }
617
+ setTimeout(() => focusFirst(candidateNodes));
618
+ event.preventDefault();
619
+ }
620
+ }
621
+ const pickedProps = computed(() => {
622
+ if (props.position === "popper") return props;
623
+ else return {};
624
+ });
625
+ const forwardedProps = useForwardProps$1(pickedProps.value);
626
+ provideSelectContentContext({
627
+ content,
628
+ viewport,
629
+ onViewportChange: (node) => {
630
+ viewport.value = node;
631
+ },
632
+ itemRefCallback: (node, value, disabled) => {
633
+ const isFirstValidItem = !firstValidItemFoundRef.value && !disabled;
634
+ const isSelectedItem = valueComparator(rootContext.modelValue.value, value, rootContext.by);
635
+ if (rootContext.multiple.value) {
636
+ if (firstSelectedItemInArrayFoundRef.value) return;
637
+ if (isSelectedItem || isFirstValidItem) {
638
+ selectedItem.value = node;
639
+ if (isSelectedItem) firstSelectedItemInArrayFoundRef.value = true;
640
+ }
641
+ } else if (isSelectedItem || isFirstValidItem) selectedItem.value = node;
642
+ if (isFirstValidItem) firstValidItemFoundRef.value = true;
643
+ },
644
+ selectedItem,
645
+ selectedItemText,
646
+ onItemLeave: () => {
647
+ content.value?.focus();
648
+ },
649
+ itemTextRefCallback: (node, value, disabled) => {
650
+ const isFirstValidItem = !firstValidItemFoundRef.value && !disabled;
651
+ const isSelectedItem = valueComparator(rootContext.modelValue.value, value, rootContext.by);
652
+ if (isSelectedItem || isFirstValidItem) selectedItemText.value = node;
653
+ },
654
+ focusSelectedItem,
655
+ position: props.position,
656
+ isPositioned,
657
+ searchRef: search
658
+ });
659
+ return (_ctx, _cache) => {
660
+ return openBlock(), createBlock(unref(CollectionSlot), null, {
661
+ default: withCtx(() => [createVNode(unref(FocusScope_default), {
662
+ "as-child": "",
663
+ onMountAutoFocus: _cache[6] || (_cache[6] = withModifiers(() => {
664
+ }, ["prevent"])),
665
+ onUnmountAutoFocus: _cache[7] || (_cache[7] = (event) => {
666
+ emits("closeAutoFocus", event);
667
+ if (event.defaultPrevented) return;
668
+ unref(rootContext).triggerElement.value?.focus({ preventScroll: true });
669
+ event.preventDefault();
670
+ })
671
+ }, {
672
+ default: withCtx(() => [createVNode(unref(DismissableLayer_default), {
673
+ "as-child": "",
674
+ "disable-outside-pointer-events": _ctx.disableOutsidePointerEvents,
675
+ onFocusOutside: _cache[2] || (_cache[2] = withModifiers(() => {
676
+ }, ["prevent"])),
677
+ onDismiss: _cache[3] || (_cache[3] = ($event) => unref(rootContext).onOpenChange(false)),
678
+ onEscapeKeyDown: _cache[4] || (_cache[4] = ($event) => emits("escapeKeyDown", $event)),
679
+ onPointerDownOutside: _cache[5] || (_cache[5] = ($event) => emits("pointerDownOutside", $event))
680
+ }, {
681
+ default: withCtx(() => [(openBlock(), createBlock(resolveDynamicComponent(_ctx.position === "popper" ? SelectPopperPosition_default : SelectItemAlignedPosition_default), mergeProps({
682
+ ..._ctx.$attrs,
683
+ ...unref(forwardedProps)
684
+ }, {
685
+ id: unref(rootContext).contentId,
686
+ ref: (vnode) => {
687
+ if (!vnode) return void 0;
688
+ const el = unref(unrefElement)(vnode);
689
+ if (el?.hasAttribute("data-reka-popper-content-wrapper")) content.value = el.firstElementChild;
690
+ else content.value = el;
691
+ return void 0;
692
+ },
693
+ role: "listbox",
694
+ "data-state": unref(rootContext).open.value ? "open" : "closed",
695
+ dir: unref(rootContext).dir.value,
696
+ style: {
697
+ display: "flex",
698
+ flexDirection: "column",
699
+ outline: "none"
700
+ },
701
+ onContextmenu: _cache[0] || (_cache[0] = withModifiers(() => {
702
+ }, ["prevent"])),
703
+ onPlaced: _cache[1] || (_cache[1] = ($event) => isPositioned.value = true),
704
+ onKeydown: handleKeyDown
705
+ }), {
706
+ default: withCtx(() => [renderSlot(_ctx.$slots, "default")]),
707
+ _: 3
708
+ }, 16, [
709
+ "id",
710
+ "data-state",
711
+ "dir",
712
+ "onKeydown"
713
+ ]))]),
714
+ _: 3
715
+ }, 8, ["disable-outside-pointer-events"])]),
716
+ _: 3
717
+ })]),
718
+ _: 3
719
+ });
720
+ };
721
+ }
722
+ });
723
+ var SelectContentImpl_default = SelectContentImpl_vue_vue_type_script_setup_true_lang_default;
724
+ const [injectSelectItemAlignedPositionContext, provideSelectItemAlignedPositionContext] = /* @__PURE__ */ createContext("SelectItemAlignedPosition");
725
+ var SelectItemAlignedPosition_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
726
+ inheritAttrs: false,
727
+ __name: "SelectItemAlignedPosition",
728
+ props: {
729
+ asChild: {
730
+ type: Boolean,
731
+ required: false
732
+ },
733
+ as: {
734
+ type: null,
735
+ required: false
736
+ }
737
+ },
738
+ emits: ["placed"],
739
+ setup(__props, { emit: __emit }) {
740
+ const props = __props;
741
+ const emits = __emit;
742
+ const { getItems } = useCollection();
743
+ const rootContext = injectSelectRootContext();
744
+ const contentContext = injectSelectContentContext();
745
+ const shouldExpandOnScrollRef = ref(false);
746
+ const shouldRepositionRef = ref(true);
747
+ const contentWrapperElement = ref();
748
+ const { forwardRef, currentElement: contentElement } = useForwardExpose();
749
+ const { viewport, selectedItem, selectedItemText, focusSelectedItem } = contentContext;
750
+ function position() {
751
+ if (rootContext.triggerElement.value && rootContext.valueElement.value && contentWrapperElement.value && contentElement.value && viewport?.value && selectedItem?.value && selectedItemText?.value) {
752
+ const triggerRect = rootContext.triggerElement.value.getBoundingClientRect();
753
+ const contentRect = contentElement.value.getBoundingClientRect();
754
+ const valueNodeRect = rootContext.valueElement.value.getBoundingClientRect();
755
+ const itemTextRect = selectedItemText.value.getBoundingClientRect();
756
+ if (rootContext.dir.value !== "rtl") {
757
+ const itemTextOffset = itemTextRect.left - contentRect.left;
758
+ const left = valueNodeRect.left - itemTextOffset;
759
+ const leftDelta = triggerRect.left - left;
760
+ const minContentWidth = triggerRect.width + leftDelta;
761
+ const contentWidth = Math.max(minContentWidth, contentRect.width);
762
+ const rightEdge = (void 0).innerWidth - CONTENT_MARGIN;
763
+ const clampedLeft = clamp(left, CONTENT_MARGIN, Math.max(CONTENT_MARGIN, rightEdge - contentWidth));
764
+ contentWrapperElement.value.style.minWidth = `${minContentWidth}px`;
765
+ contentWrapperElement.value.style.left = `${clampedLeft}px`;
766
+ } else {
767
+ const itemTextOffset = contentRect.right - itemTextRect.right;
768
+ const right = (void 0).innerWidth - valueNodeRect.right - itemTextOffset;
769
+ const rightDelta = (void 0).innerWidth - triggerRect.right - right;
770
+ const minContentWidth = triggerRect.width + rightDelta;
771
+ const contentWidth = Math.max(minContentWidth, contentRect.width);
772
+ const leftEdge = (void 0).innerWidth - CONTENT_MARGIN;
773
+ const clampedRight = clamp(right, CONTENT_MARGIN, Math.max(CONTENT_MARGIN, leftEdge - contentWidth));
774
+ contentWrapperElement.value.style.minWidth = `${minContentWidth}px`;
775
+ contentWrapperElement.value.style.right = `${clampedRight}px`;
776
+ }
777
+ const items = getItems().map((i) => i.ref);
778
+ const availableHeight = (void 0).innerHeight - CONTENT_MARGIN * 2;
779
+ const itemsHeight = viewport.value.scrollHeight;
780
+ const contentStyles = (void 0).getComputedStyle(contentElement.value);
781
+ const contentBorderTopWidth = Number.parseInt(contentStyles.borderTopWidth, 10);
782
+ const contentPaddingTop = Number.parseInt(contentStyles.paddingTop, 10);
783
+ const contentBorderBottomWidth = Number.parseInt(contentStyles.borderBottomWidth, 10);
784
+ const contentPaddingBottom = Number.parseInt(contentStyles.paddingBottom, 10);
785
+ const fullContentHeight = contentBorderTopWidth + contentPaddingTop + itemsHeight + contentPaddingBottom + contentBorderBottomWidth;
786
+ const minContentHeight = Math.min(selectedItem.value.offsetHeight * 5, fullContentHeight);
787
+ const viewportStyles = (void 0).getComputedStyle(viewport.value);
788
+ const viewportPaddingTop = Number.parseInt(viewportStyles.paddingTop, 10);
789
+ const viewportPaddingBottom = Number.parseInt(viewportStyles.paddingBottom, 10);
790
+ const topEdgeToTriggerMiddle = triggerRect.top + triggerRect.height / 2 - CONTENT_MARGIN;
791
+ const triggerMiddleToBottomEdge = availableHeight - topEdgeToTriggerMiddle;
792
+ const selectedItemHalfHeight = selectedItem.value.offsetHeight / 2;
793
+ const itemOffsetMiddle = selectedItem.value.offsetTop + selectedItemHalfHeight;
794
+ const contentTopToItemMiddle = contentBorderTopWidth + contentPaddingTop + itemOffsetMiddle;
795
+ const itemMiddleToContentBottom = fullContentHeight - contentTopToItemMiddle;
796
+ const willAlignWithoutTopOverflow = contentTopToItemMiddle <= topEdgeToTriggerMiddle;
797
+ if (willAlignWithoutTopOverflow) {
798
+ const isLastItem = selectedItem.value === items.at(-1);
799
+ contentWrapperElement.value.style.bottom = `0px`;
800
+ const viewportOffsetBottom = contentElement.value.clientHeight - viewport.value.offsetTop - viewport.value.offsetHeight;
801
+ const clampedTriggerMiddleToBottomEdge = Math.max(triggerMiddleToBottomEdge, selectedItemHalfHeight + (isLastItem ? viewportPaddingBottom : 0) + viewportOffsetBottom + contentBorderBottomWidth);
802
+ const height = contentTopToItemMiddle + clampedTriggerMiddleToBottomEdge;
803
+ contentWrapperElement.value.style.height = `${height}px`;
804
+ } else {
805
+ const isFirstItem = selectedItem.value === items[0];
806
+ contentWrapperElement.value.style.top = `0px`;
807
+ const clampedTopEdgeToTriggerMiddle = Math.max(topEdgeToTriggerMiddle, contentBorderTopWidth + viewport.value.offsetTop + (isFirstItem ? viewportPaddingTop : 0) + selectedItemHalfHeight);
808
+ const height = clampedTopEdgeToTriggerMiddle + itemMiddleToContentBottom;
809
+ contentWrapperElement.value.style.height = `${height}px`;
810
+ viewport.value.scrollTop = contentTopToItemMiddle - topEdgeToTriggerMiddle + viewport.value.offsetTop;
811
+ }
812
+ contentWrapperElement.value.style.margin = `${CONTENT_MARGIN}px 0`;
813
+ contentWrapperElement.value.style.minHeight = `${minContentHeight}px`;
814
+ contentWrapperElement.value.style.maxHeight = `${availableHeight}px`;
815
+ emits("placed");
816
+ requestAnimationFrame(() => shouldExpandOnScrollRef.value = true);
817
+ }
818
+ }
819
+ const contentZIndex = ref("");
820
+ function handleScrollButtonChange(node) {
821
+ if (node && shouldRepositionRef.value === true) {
822
+ position();
823
+ focusSelectedItem?.();
824
+ shouldRepositionRef.value = false;
825
+ }
826
+ }
827
+ useResizeObserver(rootContext.triggerElement, () => {
828
+ position();
829
+ });
830
+ provideSelectItemAlignedPositionContext({
831
+ contentWrapper: contentWrapperElement,
832
+ shouldExpandOnScrollRef,
833
+ onScrollButtonChange: handleScrollButtonChange
834
+ });
835
+ return (_ctx, _cache) => {
836
+ return openBlock(), createElementBlock("div", {
837
+ ref_key: "contentWrapperElement",
838
+ ref: contentWrapperElement,
839
+ style: normalizeStyle({
840
+ display: "flex",
841
+ flexDirection: "column",
842
+ position: "fixed",
843
+ zIndex: contentZIndex.value
844
+ })
845
+ }, [createVNode(unref(Primitive), mergeProps({
846
+ ref: unref(forwardRef),
847
+ style: {
848
+ boxSizing: "border-box",
849
+ maxHeight: "100%"
850
+ }
851
+ }, {
852
+ ..._ctx.$attrs,
853
+ ...props
854
+ }), {
855
+ default: withCtx(() => [renderSlot(_ctx.$slots, "default")]),
856
+ _: 3
857
+ }, 16)], 4);
858
+ };
859
+ }
860
+ });
861
+ var SelectItemAlignedPosition_default = SelectItemAlignedPosition_vue_vue_type_script_setup_true_lang_default;
862
+ var SelectArrow_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
863
+ __name: "SelectArrow",
864
+ props: {
865
+ width: {
866
+ type: Number,
867
+ required: false,
868
+ default: 10
869
+ },
870
+ height: {
871
+ type: Number,
872
+ required: false,
873
+ default: 5
874
+ },
875
+ rounded: {
876
+ type: Boolean,
877
+ required: false
878
+ },
879
+ asChild: {
880
+ type: Boolean,
881
+ required: false
882
+ },
883
+ as: {
884
+ type: null,
885
+ required: false,
886
+ default: "svg"
887
+ }
888
+ },
889
+ setup(__props) {
890
+ const props = __props;
891
+ const contentContext = injectSelectContentContext(SelectContentDefaultContextValue);
892
+ return (_ctx, _cache) => {
893
+ return unref(contentContext).position === "popper" ? (openBlock(), createBlock(unref(PopperArrow_default), normalizeProps(mergeProps({ key: 0 }, props)), {
894
+ default: withCtx(() => [renderSlot(_ctx.$slots, "default")]),
895
+ _: 3
896
+ }, 16)) : createCommentVNode("v-if", true);
897
+ };
898
+ }
899
+ });
900
+ var SelectArrow_default = SelectArrow_vue_vue_type_script_setup_true_lang_default;
901
+ var SelectProvider_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
902
+ inheritAttrs: false,
903
+ __name: "SelectProvider",
904
+ props: { context: {
905
+ type: Object,
906
+ required: true
907
+ } },
908
+ setup(__props) {
909
+ const props = __props;
910
+ provideSelectRootContext(props.context);
911
+ provideSelectContentContext(SelectContentDefaultContextValue);
912
+ return (_ctx, _cache) => {
913
+ return renderSlot(_ctx.$slots, "default");
914
+ };
915
+ }
916
+ });
917
+ var SelectProvider_default = SelectProvider_vue_vue_type_script_setup_true_lang_default;
918
+ const _hoisted_1 = { key: 1 };
919
+ var SelectContent_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
920
+ inheritAttrs: false,
921
+ __name: "SelectContent",
922
+ props: {
923
+ forceMount: {
924
+ type: Boolean,
925
+ required: false
926
+ },
927
+ position: {
928
+ type: String,
929
+ required: false
930
+ },
931
+ bodyLock: {
932
+ type: Boolean,
933
+ required: false
934
+ },
935
+ side: {
936
+ type: null,
937
+ required: false
938
+ },
939
+ sideOffset: {
940
+ type: Number,
941
+ required: false
942
+ },
943
+ sideFlip: {
944
+ type: Boolean,
945
+ required: false
946
+ },
947
+ align: {
948
+ type: null,
949
+ required: false
950
+ },
951
+ alignOffset: {
952
+ type: Number,
953
+ required: false
954
+ },
955
+ alignFlip: {
956
+ type: Boolean,
957
+ required: false
958
+ },
959
+ avoidCollisions: {
960
+ type: Boolean,
961
+ required: false
962
+ },
963
+ collisionBoundary: {
964
+ type: null,
965
+ required: false
966
+ },
967
+ collisionPadding: {
968
+ type: [Number, Object],
969
+ required: false
970
+ },
971
+ arrowPadding: {
972
+ type: Number,
973
+ required: false
974
+ },
975
+ hideShiftedArrow: {
976
+ type: Boolean,
977
+ required: false
978
+ },
979
+ sticky: {
980
+ type: String,
981
+ required: false
982
+ },
983
+ hideWhenDetached: {
984
+ type: Boolean,
985
+ required: false
986
+ },
987
+ positionStrategy: {
988
+ type: String,
989
+ required: false
990
+ },
991
+ updatePositionStrategy: {
992
+ type: String,
993
+ required: false
994
+ },
995
+ disableUpdateOnLayoutShift: {
996
+ type: Boolean,
997
+ required: false
998
+ },
999
+ prioritizePosition: {
1000
+ type: Boolean,
1001
+ required: false
1002
+ },
1003
+ reference: {
1004
+ type: null,
1005
+ required: false
1006
+ },
1007
+ asChild: {
1008
+ type: Boolean,
1009
+ required: false
1010
+ },
1011
+ as: {
1012
+ type: null,
1013
+ required: false
1014
+ },
1015
+ disableOutsidePointerEvents: {
1016
+ type: Boolean,
1017
+ required: false
1018
+ }
1019
+ },
1020
+ emits: [
1021
+ "closeAutoFocus",
1022
+ "escapeKeyDown",
1023
+ "pointerDownOutside"
1024
+ ],
1025
+ setup(__props, { emit: __emit }) {
1026
+ const props = __props;
1027
+ const emits = __emit;
1028
+ const forwarded = useForwardPropsEmits(props, emits);
1029
+ const rootContext = injectSelectRootContext();
1030
+ const fragment = ref();
1031
+ const presenceRef = ref();
1032
+ const present = computed(() => props.forceMount || rootContext.open.value);
1033
+ const renderPresence = ref(present.value);
1034
+ let renderPresenceTimeout;
1035
+ function clearRenderPresenceTimeout() {
1036
+ if (renderPresenceTimeout) {
1037
+ clearTimeout(renderPresenceTimeout);
1038
+ renderPresenceTimeout = void 0;
1039
+ }
1040
+ }
1041
+ watch(present, (_value, _oldValue, onCleanup) => {
1042
+ clearRenderPresenceTimeout();
1043
+ renderPresenceTimeout = setTimeout(() => {
1044
+ renderPresence.value = present.value;
1045
+ renderPresenceTimeout = void 0;
1046
+ });
1047
+ onCleanup(clearRenderPresenceTimeout);
1048
+ });
1049
+ return (_ctx, _cache) => {
1050
+ return present.value || renderPresence.value || presenceRef.value?.present ? (openBlock(), createBlock(unref(Presence_default), {
1051
+ key: 0,
1052
+ ref_key: "presenceRef",
1053
+ ref: presenceRef,
1054
+ present: present.value
1055
+ }, {
1056
+ default: withCtx(() => [createVNode(SelectContentImpl_default, normalizeProps(guardReactiveProps({
1057
+ ...unref(forwarded),
1058
+ ..._ctx.$attrs
1059
+ })), {
1060
+ default: withCtx(() => [renderSlot(_ctx.$slots, "default")]),
1061
+ _: 3
1062
+ }, 16)]),
1063
+ _: 3
1064
+ }, 8, ["present"])) : fragment.value ? (openBlock(), createElementBlock("div", _hoisted_1, [(openBlock(), createBlock(Teleport, { to: fragment.value }, [createVNode(SelectProvider_default, { context: unref(rootContext) }, {
1065
+ default: withCtx(() => [renderSlot(_ctx.$slots, "default")]),
1066
+ _: 3
1067
+ }, 8, ["context"])], 8, ["to"]))])) : createCommentVNode("v-if", true);
1068
+ };
1069
+ }
1070
+ });
1071
+ var SelectContent_default = SelectContent_vue_vue_type_script_setup_true_lang_default;
1072
+ const [injectSelectGroupContext, provideSelectGroupContext] = /* @__PURE__ */ createContext("SelectGroup");
1073
+ var SelectGroup_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
1074
+ __name: "SelectGroup",
1075
+ props: {
1076
+ asChild: {
1077
+ type: Boolean,
1078
+ required: false
1079
+ },
1080
+ as: {
1081
+ type: null,
1082
+ required: false
1083
+ }
1084
+ },
1085
+ setup(__props) {
1086
+ const props = __props;
1087
+ const id = useId(void 0, "reka-select-group");
1088
+ provideSelectGroupContext({ id });
1089
+ return (_ctx, _cache) => {
1090
+ return openBlock(), createBlock(unref(Primitive), mergeProps({ role: "group" }, props, { "aria-labelledby": unref(id) }), {
1091
+ default: withCtx(() => [renderSlot(_ctx.$slots, "default")]),
1092
+ _: 3
1093
+ }, 16, ["aria-labelledby"]);
1094
+ };
1095
+ }
1096
+ });
1097
+ var SelectGroup_default = SelectGroup_vue_vue_type_script_setup_true_lang_default;
1098
+ const [injectSelectItemContext, provideSelectItemContext] = /* @__PURE__ */ createContext("SelectItem");
1099
+ var SelectItem_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
1100
+ __name: "SelectItem",
1101
+ props: {
1102
+ value: {
1103
+ type: null,
1104
+ required: true
1105
+ },
1106
+ disabled: {
1107
+ type: Boolean,
1108
+ required: false
1109
+ },
1110
+ textValue: {
1111
+ type: String,
1112
+ required: false
1113
+ },
1114
+ asChild: {
1115
+ type: Boolean,
1116
+ required: false
1117
+ },
1118
+ as: {
1119
+ type: null,
1120
+ required: false
1121
+ }
1122
+ },
1123
+ emits: ["select"],
1124
+ setup(__props, { emit: __emit }) {
1125
+ const props = __props;
1126
+ const emits = __emit;
1127
+ const { disabled } = toRefs(props);
1128
+ const rootContext = injectSelectRootContext();
1129
+ const contentContext = injectSelectContentContext();
1130
+ const { forwardRef } = useForwardExpose();
1131
+ const { CollectionItem } = useCollection();
1132
+ const isSelected = computed(() => valueComparator(rootContext.modelValue?.value, props.value, rootContext.by));
1133
+ const isFocused = ref(false);
1134
+ const textValue = ref(props.textValue ?? "");
1135
+ const textId = useId(void 0, "reka-select-item-text");
1136
+ const SELECT_SELECT = "select.select";
1137
+ async function handleSelectCustomEvent(ev) {
1138
+ if (ev.defaultPrevented) return;
1139
+ const eventDetail = {
1140
+ originalEvent: ev,
1141
+ value: props.value
1142
+ };
1143
+ handleAndDispatchCustomEvent(SELECT_SELECT, handleSelect, eventDetail);
1144
+ }
1145
+ async function handleSelect(ev) {
1146
+ await nextTick();
1147
+ emits("select", ev);
1148
+ if (ev.defaultPrevented) return;
1149
+ if (!disabled.value) {
1150
+ rootContext.onValueChange(props.value);
1151
+ if (!rootContext.multiple.value) rootContext.onOpenChange(false);
1152
+ }
1153
+ }
1154
+ async function handlePointerMove(event) {
1155
+ await nextTick();
1156
+ if (event.defaultPrevented) return;
1157
+ if (disabled.value) contentContext.onItemLeave?.();
1158
+ else event.currentTarget?.focus({ preventScroll: true });
1159
+ }
1160
+ async function handlePointerLeave(event) {
1161
+ await nextTick();
1162
+ if (event.defaultPrevented) return;
1163
+ if (event.currentTarget === getActiveElement()) contentContext.onItemLeave?.();
1164
+ }
1165
+ async function handleKeyDown(event) {
1166
+ await nextTick();
1167
+ if (event.defaultPrevented) return;
1168
+ const isTypingAhead = contentContext.searchRef?.value !== "";
1169
+ if (isTypingAhead && event.key === " ") return;
1170
+ if (SELECTION_KEYS.includes(event.key)) handleSelectCustomEvent(event);
1171
+ if (event.key === " ") event.preventDefault();
1172
+ }
1173
+ if (props.value === "") throw new Error("A <SelectItem /> 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.");
1174
+ provideSelectItemContext({
1175
+ value: props.value,
1176
+ disabled,
1177
+ textId,
1178
+ isSelected,
1179
+ onItemTextChange: (node) => {
1180
+ textValue.value = ((textValue.value || node?.textContent) ?? "").trim();
1181
+ }
1182
+ });
1183
+ return (_ctx, _cache) => {
1184
+ return openBlock(), createBlock(unref(CollectionItem), { value: { textValue: textValue.value } }, {
1185
+ default: withCtx(() => [createVNode(unref(Primitive), {
1186
+ ref: unref(forwardRef),
1187
+ role: "option",
1188
+ "aria-labelledby": unref(textId),
1189
+ "data-highlighted": isFocused.value ? "" : void 0,
1190
+ "aria-selected": isSelected.value,
1191
+ "data-state": isSelected.value ? "checked" : "unchecked",
1192
+ "aria-disabled": unref(disabled) || void 0,
1193
+ "data-disabled": unref(disabled) ? "" : void 0,
1194
+ tabindex: unref(disabled) ? void 0 : -1,
1195
+ as: _ctx.as,
1196
+ "as-child": _ctx.asChild,
1197
+ onFocus: _cache[0] || (_cache[0] = ($event) => isFocused.value = true),
1198
+ onBlur: _cache[1] || (_cache[1] = ($event) => isFocused.value = false),
1199
+ onPointerup: handleSelectCustomEvent,
1200
+ onPointerdown: _cache[2] || (_cache[2] = (event) => {
1201
+ event.currentTarget.focus({ preventScroll: true });
1202
+ }),
1203
+ onTouchend: _cache[3] || (_cache[3] = withModifiers(() => {
1204
+ }, ["prevent", "stop"])),
1205
+ onPointermove: handlePointerMove,
1206
+ onPointerleave: handlePointerLeave,
1207
+ onKeydown: handleKeyDown
1208
+ }, {
1209
+ default: withCtx(() => [renderSlot(_ctx.$slots, "default")]),
1210
+ _: 3
1211
+ }, 8, [
1212
+ "aria-labelledby",
1213
+ "data-highlighted",
1214
+ "aria-selected",
1215
+ "data-state",
1216
+ "aria-disabled",
1217
+ "data-disabled",
1218
+ "tabindex",
1219
+ "as",
1220
+ "as-child"
1221
+ ])]),
1222
+ _: 3
1223
+ }, 8, ["value"]);
1224
+ };
1225
+ }
1226
+ });
1227
+ var SelectItem_default = SelectItem_vue_vue_type_script_setup_true_lang_default;
1228
+ var SelectItemIndicator_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
1229
+ __name: "SelectItemIndicator",
1230
+ props: {
1231
+ asChild: {
1232
+ type: Boolean,
1233
+ required: false
1234
+ },
1235
+ as: {
1236
+ type: null,
1237
+ required: false,
1238
+ default: "span"
1239
+ }
1240
+ },
1241
+ setup(__props) {
1242
+ const props = __props;
1243
+ const itemContext = injectSelectItemContext();
1244
+ return (_ctx, _cache) => {
1245
+ return unref(itemContext).isSelected.value ? (openBlock(), createBlock(unref(Primitive), mergeProps({
1246
+ key: 0,
1247
+ "aria-hidden": "true"
1248
+ }, props), {
1249
+ default: withCtx(() => [renderSlot(_ctx.$slots, "default")]),
1250
+ _: 3
1251
+ }, 16)) : createCommentVNode("v-if", true);
1252
+ };
1253
+ }
1254
+ });
1255
+ var SelectItemIndicator_default = SelectItemIndicator_vue_vue_type_script_setup_true_lang_default;
1256
+ var SelectItemText_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
1257
+ inheritAttrs: false,
1258
+ __name: "SelectItemText",
1259
+ props: {
1260
+ asChild: {
1261
+ type: Boolean,
1262
+ required: false
1263
+ },
1264
+ as: {
1265
+ type: null,
1266
+ required: false,
1267
+ default: "span"
1268
+ }
1269
+ },
1270
+ setup(__props) {
1271
+ const props = __props;
1272
+ injectSelectRootContext();
1273
+ injectSelectContentContext();
1274
+ const itemContext = injectSelectItemContext();
1275
+ const { forwardRef, currentElement: itemTextElement } = useForwardExpose();
1276
+ computed(() => {
1277
+ return {
1278
+ value: itemContext.value,
1279
+ disabled: itemContext.disabled.value,
1280
+ textContent: itemTextElement.value?.textContent ?? itemContext.value?.toString() ?? ""
1281
+ };
1282
+ });
1283
+ return (_ctx, _cache) => {
1284
+ return openBlock(), createBlock(unref(Primitive), mergeProps({
1285
+ id: unref(itemContext).textId,
1286
+ ref: unref(forwardRef)
1287
+ }, {
1288
+ ...props,
1289
+ ..._ctx.$attrs
1290
+ }), {
1291
+ default: withCtx(() => [renderSlot(_ctx.$slots, "default")]),
1292
+ _: 3
1293
+ }, 16, ["id"]);
1294
+ };
1295
+ }
1296
+ });
1297
+ var SelectItemText_default = SelectItemText_vue_vue_type_script_setup_true_lang_default;
1298
+ var SelectLabel_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
1299
+ __name: "SelectLabel",
1300
+ props: {
1301
+ for: {
1302
+ type: String,
1303
+ required: false
1304
+ },
1305
+ asChild: {
1306
+ type: Boolean,
1307
+ required: false
1308
+ },
1309
+ as: {
1310
+ type: null,
1311
+ required: false,
1312
+ default: "div"
1313
+ }
1314
+ },
1315
+ setup(__props) {
1316
+ const props = __props;
1317
+ const groupContext = injectSelectGroupContext({ id: "" });
1318
+ return (_ctx, _cache) => {
1319
+ return openBlock(), createBlock(unref(Primitive), mergeProps(props, { id: unref(groupContext).id }), {
1320
+ default: withCtx(() => [renderSlot(_ctx.$slots, "default")]),
1321
+ _: 3
1322
+ }, 16, ["id"]);
1323
+ };
1324
+ }
1325
+ });
1326
+ var SelectLabel_default = SelectLabel_vue_vue_type_script_setup_true_lang_default;
1327
+ var SelectPortal_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
1328
+ __name: "SelectPortal",
1329
+ props: {
1330
+ to: {
1331
+ type: null,
1332
+ required: false
1333
+ },
1334
+ disabled: {
1335
+ type: Boolean,
1336
+ required: false
1337
+ },
1338
+ defer: {
1339
+ type: Boolean,
1340
+ required: false
1341
+ },
1342
+ forceMount: {
1343
+ type: Boolean,
1344
+ required: false
1345
+ }
1346
+ },
1347
+ setup(__props) {
1348
+ const props = __props;
1349
+ return (_ctx, _cache) => {
1350
+ return openBlock(), createBlock(unref(Teleport_default), normalizeProps(guardReactiveProps(props)), {
1351
+ default: withCtx(() => [renderSlot(_ctx.$slots, "default")]),
1352
+ _: 3
1353
+ }, 16);
1354
+ };
1355
+ }
1356
+ });
1357
+ var SelectPortal_default = SelectPortal_vue_vue_type_script_setup_true_lang_default;
1358
+ var SelectSeparator_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
1359
+ __name: "SelectSeparator",
1360
+ props: {
1361
+ asChild: {
1362
+ type: Boolean,
1363
+ required: false
1364
+ },
1365
+ as: {
1366
+ type: null,
1367
+ required: false
1368
+ }
1369
+ },
1370
+ setup(__props) {
1371
+ const props = __props;
1372
+ return (_ctx, _cache) => {
1373
+ return openBlock(), createBlock(unref(Primitive), mergeProps({ "aria-hidden": "true" }, props), {
1374
+ default: withCtx(() => [renderSlot(_ctx.$slots, "default")]),
1375
+ _: 3
1376
+ }, 16);
1377
+ };
1378
+ }
1379
+ });
1380
+ var SelectSeparator_default = SelectSeparator_vue_vue_type_script_setup_true_lang_default;
1381
+ var SelectTrigger_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
1382
+ __name: "SelectTrigger",
1383
+ props: {
1384
+ disabled: {
1385
+ type: Boolean,
1386
+ required: false
1387
+ },
1388
+ reference: {
1389
+ type: null,
1390
+ required: false
1391
+ },
1392
+ asChild: {
1393
+ type: Boolean,
1394
+ required: false
1395
+ },
1396
+ as: {
1397
+ type: null,
1398
+ required: false,
1399
+ default: "button"
1400
+ }
1401
+ },
1402
+ setup(__props) {
1403
+ const props = __props;
1404
+ const rootContext = injectSelectRootContext();
1405
+ const { forwardRef } = useForwardExpose();
1406
+ const isDisabled = computed(() => rootContext.disabled?.value || props.disabled);
1407
+ rootContext.contentId ||= useId(void 0, "reka-select-content");
1408
+ const { getItems } = useCollection();
1409
+ const { search, handleTypeaheadSearch, resetTypeahead } = useTypeahead();
1410
+ function handleOpen() {
1411
+ if (!isDisabled.value) {
1412
+ rootContext.onOpenChange(true);
1413
+ resetTypeahead();
1414
+ }
1415
+ }
1416
+ function handlePointerOpen(event) {
1417
+ handleOpen();
1418
+ rootContext.triggerPointerDownPosRef.value = {
1419
+ x: Math.round(event.pageX),
1420
+ y: Math.round(event.pageY)
1421
+ };
1422
+ }
1423
+ return (_ctx, _cache) => {
1424
+ return openBlock(), createBlock(unref(PopperAnchor_default), {
1425
+ "as-child": "",
1426
+ reference: _ctx.reference
1427
+ }, {
1428
+ default: withCtx(() => [createVNode(unref(Primitive), {
1429
+ ref: unref(forwardRef),
1430
+ role: "combobox",
1431
+ type: _ctx.as === "button" ? "button" : void 0,
1432
+ "aria-controls": unref(rootContext).contentId,
1433
+ "aria-expanded": unref(rootContext).open.value || false,
1434
+ "aria-required": unref(rootContext).required?.value,
1435
+ "aria-autocomplete": "none",
1436
+ disabled: isDisabled.value,
1437
+ dir: unref(rootContext)?.dir.value,
1438
+ "data-state": unref(rootContext)?.open.value ? "open" : "closed",
1439
+ "data-disabled": isDisabled.value ? "" : void 0,
1440
+ "data-placeholder": unref(shouldShowPlaceholder)(unref(rootContext).modelValue?.value) ? "" : void 0,
1441
+ "as-child": _ctx.asChild,
1442
+ as: _ctx.as,
1443
+ onClick: _cache[0] || (_cache[0] = (event) => {
1444
+ event?.currentTarget?.focus();
1445
+ }),
1446
+ onPointerdown: _cache[1] || (_cache[1] = (event) => {
1447
+ if (event.pointerType === "touch") return event.preventDefault();
1448
+ const target = event.target;
1449
+ if (target.hasPointerCapture(event.pointerId)) target.releasePointerCapture(event.pointerId);
1450
+ if (event.button === 0 && event.ctrlKey === false) {
1451
+ handlePointerOpen(event);
1452
+ event.preventDefault();
1453
+ }
1454
+ }),
1455
+ onPointerup: _cache[2] || (_cache[2] = withModifiers((event) => {
1456
+ if (event.pointerType === "touch") handlePointerOpen(event);
1457
+ }, ["prevent"])),
1458
+ onKeydown: _cache[3] || (_cache[3] = (event) => {
1459
+ const isTypingAhead = unref(search) !== "";
1460
+ const isModifierKey = event.ctrlKey || event.altKey || event.metaKey;
1461
+ if (!isModifierKey && event.key.length === 1) {
1462
+ if (isTypingAhead && event.key === " ") return;
1463
+ }
1464
+ unref(handleTypeaheadSearch)(event.key, unref(getItems)());
1465
+ if (unref(OPEN_KEYS).includes(event.key)) {
1466
+ handleOpen();
1467
+ event.preventDefault();
1468
+ }
1469
+ })
1470
+ }, {
1471
+ default: withCtx(() => [renderSlot(_ctx.$slots, "default")]),
1472
+ _: 3
1473
+ }, 8, [
1474
+ "type",
1475
+ "aria-controls",
1476
+ "aria-expanded",
1477
+ "aria-required",
1478
+ "disabled",
1479
+ "dir",
1480
+ "data-state",
1481
+ "data-disabled",
1482
+ "data-placeholder",
1483
+ "as-child",
1484
+ "as"
1485
+ ])]),
1486
+ _: 3
1487
+ }, 8, ["reference"]);
1488
+ };
1489
+ }
1490
+ });
1491
+ var SelectTrigger_default = SelectTrigger_vue_vue_type_script_setup_true_lang_default;
1492
+ var SelectValue_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
1493
+ __name: "SelectValue",
1494
+ props: {
1495
+ placeholder: {
1496
+ type: String,
1497
+ required: false,
1498
+ default: ""
1499
+ },
1500
+ asChild: {
1501
+ type: Boolean,
1502
+ required: false
1503
+ },
1504
+ as: {
1505
+ type: null,
1506
+ required: false,
1507
+ default: "span"
1508
+ }
1509
+ },
1510
+ setup(__props) {
1511
+ const props = __props;
1512
+ const { forwardRef } = useForwardExpose();
1513
+ const rootContext = injectSelectRootContext();
1514
+ const selectedLabel = computed(() => {
1515
+ let list = [];
1516
+ const options = Array.from(rootContext.optionsSet.value);
1517
+ const getOption = (value) => options.find((option) => valueComparator(value, option.value, rootContext.by));
1518
+ if (Array.isArray(rootContext.modelValue.value)) list = rootContext.modelValue.value.map((value) => getOption(value)?.textContent ?? "");
1519
+ else list = [getOption(rootContext.modelValue.value)?.textContent ?? ""];
1520
+ return list.filter(Boolean);
1521
+ });
1522
+ const slotText = computed(() => {
1523
+ return selectedLabel.value.length ? selectedLabel.value.join(", ") : props.placeholder;
1524
+ });
1525
+ return (_ctx, _cache) => {
1526
+ return openBlock(), createBlock(unref(Primitive), {
1527
+ ref: unref(forwardRef),
1528
+ as: _ctx.as,
1529
+ "as-child": _ctx.asChild,
1530
+ style: { pointerEvents: "none" },
1531
+ "data-placeholder": selectedLabel.value.length ? void 0 : props.placeholder
1532
+ }, {
1533
+ default: withCtx(() => [renderSlot(_ctx.$slots, "default", {
1534
+ selectedLabel: selectedLabel.value,
1535
+ modelValue: unref(rootContext).modelValue.value
1536
+ }, () => [createTextVNode(toDisplayString(slotText.value), 1)])]),
1537
+ _: 3
1538
+ }, 8, [
1539
+ "as",
1540
+ "as-child",
1541
+ "data-placeholder"
1542
+ ]);
1543
+ };
1544
+ }
1545
+ });
1546
+ var SelectValue_default = SelectValue_vue_vue_type_script_setup_true_lang_default;
1547
+ var SelectViewport_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
1548
+ __name: "SelectViewport",
1549
+ props: {
1550
+ nonce: {
1551
+ type: String,
1552
+ required: false
1553
+ },
1554
+ asChild: {
1555
+ type: Boolean,
1556
+ required: false
1557
+ },
1558
+ as: {
1559
+ type: null,
1560
+ required: false
1561
+ }
1562
+ },
1563
+ setup(__props) {
1564
+ const props = __props;
1565
+ const { nonce: propNonce } = toRefs(props);
1566
+ const nonce = useNonce(propNonce);
1567
+ const contentContext = injectSelectContentContext();
1568
+ const alignedPositionContext = contentContext.position === "item-aligned" ? injectSelectItemAlignedPositionContext() : void 0;
1569
+ const { forwardRef } = useForwardExpose();
1570
+ const prevScrollTopRef = ref(0);
1571
+ function handleScroll(event) {
1572
+ const viewport = event.currentTarget;
1573
+ const { shouldExpandOnScrollRef, contentWrapper } = alignedPositionContext ?? {};
1574
+ if (shouldExpandOnScrollRef?.value && contentWrapper?.value) {
1575
+ const scrolledBy = Math.abs(prevScrollTopRef.value - viewport.scrollTop);
1576
+ if (scrolledBy > 0) {
1577
+ const availableHeight = (void 0).innerHeight - CONTENT_MARGIN * 2;
1578
+ const cssMinHeight = Number.parseFloat(contentWrapper.value.style.minHeight);
1579
+ const cssHeight = Number.parseFloat(contentWrapper.value.style.height);
1580
+ const prevHeight = Math.max(cssMinHeight, cssHeight);
1581
+ if (prevHeight < availableHeight) {
1582
+ const nextHeight = prevHeight + scrolledBy;
1583
+ const clampedNextHeight = Math.min(availableHeight, nextHeight);
1584
+ const heightDiff = nextHeight - clampedNextHeight;
1585
+ contentWrapper.value.style.height = `${clampedNextHeight}px`;
1586
+ if (contentWrapper.value.style.bottom === "0px") {
1587
+ viewport.scrollTop = heightDiff > 0 ? heightDiff : 0;
1588
+ contentWrapper.value.style.justifyContent = "flex-end";
1589
+ }
1590
+ }
1591
+ }
1592
+ }
1593
+ prevScrollTopRef.value = viewport.scrollTop;
1594
+ }
1595
+ return (_ctx, _cache) => {
1596
+ return openBlock(), createElementBlock(Fragment, null, [createVNode(unref(Primitive), mergeProps({
1597
+ ref: unref(forwardRef),
1598
+ "data-reka-select-viewport": "",
1599
+ role: "presentation"
1600
+ }, {
1601
+ ..._ctx.$attrs,
1602
+ ...props
1603
+ }, {
1604
+ style: {
1605
+ position: "relative",
1606
+ flex: 1,
1607
+ overflow: "hidden auto"
1608
+ },
1609
+ onScroll: handleScroll
1610
+ }), {
1611
+ default: withCtx(() => [renderSlot(_ctx.$slots, "default")]),
1612
+ _: 3
1613
+ }, 16), createVNode(unref(Primitive), {
1614
+ as: "style",
1615
+ nonce: unref(nonce)
1616
+ }, {
1617
+ default: withCtx(() => _cache[0] || (_cache[0] = [createTextVNode(" /* Hide scrollbars cross-browser and enable momentum scroll for touch devices */ [data-reka-select-viewport] { scrollbar-width:none; -ms-overflow-style: none; -webkit-overflow-scrolling: touch; } [data-reka-select-viewport]::-webkit-scrollbar { display: none; } ")])),
1618
+ _: 1,
1619
+ __: [0]
1620
+ }, 8, ["nonce"])], 64);
1621
+ };
1622
+ }
1623
+ });
1624
+ var SelectViewport_default = SelectViewport_vue_vue_type_script_setup_true_lang_default;
1625
+ const theme$1 = {
1626
+ "slots": {
1627
+ "root": "relative inline-flex items-center",
1628
+ "base": [
1629
+ "w-full rounded-md border-0 appearance-none placeholder:text-dimmed disabled:cursor-not-allowed disabled:opacity-75",
1630
+ "transition-colors"
1631
+ ],
1632
+ "leading": "absolute inset-y-0 start-0 flex items-center",
1633
+ "leadingIcon": "shrink-0 text-dimmed",
1634
+ "leadingAvatar": "shrink-0",
1635
+ "leadingAvatarSize": "",
1636
+ "trailing": "absolute inset-y-0 end-0 flex items-center",
1637
+ "trailingIcon": "shrink-0 text-dimmed"
1638
+ },
1639
+ "variants": {
1640
+ "fieldGroup": {
1641
+ "horizontal": {
1642
+ "root": "group has-focus-visible:z-[1]",
1643
+ "base": "group-not-only:group-first:rounded-e-none group-not-only:group-last:rounded-s-none group-not-last:group-not-first:rounded-none"
1644
+ },
1645
+ "vertical": {
1646
+ "root": "group has-focus-visible:z-[1]",
1647
+ "base": "group-not-only:group-first:rounded-b-none group-not-only:group-last:rounded-t-none group-not-last:group-not-first:rounded-none"
1648
+ }
1649
+ },
1650
+ "size": {
1651
+ "xs": {
1652
+ "base": "px-2 py-1 text-sm/4 gap-1",
1653
+ "leading": "ps-2",
1654
+ "trailing": "pe-2",
1655
+ "leadingIcon": "size-4",
1656
+ "leadingAvatarSize": "3xs",
1657
+ "trailingIcon": "size-4"
1658
+ },
1659
+ "sm": {
1660
+ "base": "px-2.5 py-1.5 text-sm/4 gap-1.5",
1661
+ "leading": "ps-2.5",
1662
+ "trailing": "pe-2.5",
1663
+ "leadingIcon": "size-4",
1664
+ "leadingAvatarSize": "3xs",
1665
+ "trailingIcon": "size-4"
1666
+ },
1667
+ "md": {
1668
+ "base": "px-2.5 py-1.5 text-base/5 gap-1.5",
1669
+ "leading": "ps-2.5",
1670
+ "trailing": "pe-2.5",
1671
+ "leadingIcon": "size-5",
1672
+ "leadingAvatarSize": "2xs",
1673
+ "trailingIcon": "size-5"
1674
+ },
1675
+ "lg": {
1676
+ "base": "px-3 py-2 text-base/5 gap-2",
1677
+ "leading": "ps-3",
1678
+ "trailing": "pe-3",
1679
+ "leadingIcon": "size-5",
1680
+ "leadingAvatarSize": "2xs",
1681
+ "trailingIcon": "size-5"
1682
+ },
1683
+ "xl": {
1684
+ "base": "px-3 py-2 text-base gap-2",
1685
+ "leading": "ps-3",
1686
+ "trailing": "pe-3",
1687
+ "leadingIcon": "size-6",
1688
+ "leadingAvatarSize": "xs",
1689
+ "trailingIcon": "size-6"
1690
+ }
1691
+ },
1692
+ "variant": {
1693
+ "outline": "text-highlighted bg-default ring ring-inset ring-accented",
1694
+ "soft": "text-highlighted bg-elevated/50 hover:bg-elevated focus:bg-elevated disabled:bg-elevated/50",
1695
+ "subtle": "text-highlighted bg-elevated ring ring-inset ring-accented",
1696
+ "ghost": "text-highlighted bg-transparent hover:bg-elevated focus:bg-elevated disabled:bg-transparent dark:disabled:bg-transparent",
1697
+ "none": "text-highlighted bg-transparent focus:outline-none"
1698
+ },
1699
+ "color": {
1700
+ "primary": "",
1701
+ "secondary": "",
1702
+ "success": "",
1703
+ "info": "",
1704
+ "warning": "",
1705
+ "error": "",
1706
+ "neutral": ""
1707
+ },
1708
+ "leading": {
1709
+ "true": ""
1710
+ },
1711
+ "trailing": {
1712
+ "true": ""
1713
+ },
1714
+ "loading": {
1715
+ "true": ""
1716
+ },
1717
+ "highlight": {
1718
+ "true": ""
1719
+ },
1720
+ "fixed": {
1721
+ "false": ""
1722
+ },
1723
+ "type": {
1724
+ "file": "file:me-1.5 file:font-medium file:text-muted file:outline-none"
1725
+ }
1726
+ },
1727
+ "compoundVariants": [
1728
+ {
1729
+ "color": "primary",
1730
+ "variant": [
1731
+ "outline",
1732
+ "subtle"
1733
+ ],
1734
+ "class": "outline-primary/25 focus-visible:outline-3 focus-visible:ring-primary"
1735
+ },
1736
+ {
1737
+ "color": "secondary",
1738
+ "variant": [
1739
+ "outline",
1740
+ "subtle"
1741
+ ],
1742
+ "class": "outline-secondary/25 focus-visible:outline-3 focus-visible:ring-secondary"
1743
+ },
1744
+ {
1745
+ "color": "success",
1746
+ "variant": [
1747
+ "outline",
1748
+ "subtle"
1749
+ ],
1750
+ "class": "outline-success/25 focus-visible:outline-3 focus-visible:ring-success"
1751
+ },
1752
+ {
1753
+ "color": "info",
1754
+ "variant": [
1755
+ "outline",
1756
+ "subtle"
1757
+ ],
1758
+ "class": "outline-info/25 focus-visible:outline-3 focus-visible:ring-info"
1759
+ },
1760
+ {
1761
+ "color": "warning",
1762
+ "variant": [
1763
+ "outline",
1764
+ "subtle"
1765
+ ],
1766
+ "class": "outline-warning/25 focus-visible:outline-3 focus-visible:ring-warning"
1767
+ },
1768
+ {
1769
+ "color": "error",
1770
+ "variant": [
1771
+ "outline",
1772
+ "subtle"
1773
+ ],
1774
+ "class": "outline-error/25 focus-visible:outline-3 focus-visible:ring-error"
1775
+ },
1776
+ {
1777
+ "color": "primary",
1778
+ "variant": [
1779
+ "soft",
1780
+ "ghost"
1781
+ ],
1782
+ "class": "outline-primary/25 focus-visible:outline-3"
1783
+ },
1784
+ {
1785
+ "color": "secondary",
1786
+ "variant": [
1787
+ "soft",
1788
+ "ghost"
1789
+ ],
1790
+ "class": "outline-secondary/25 focus-visible:outline-3"
1791
+ },
1792
+ {
1793
+ "color": "success",
1794
+ "variant": [
1795
+ "soft",
1796
+ "ghost"
1797
+ ],
1798
+ "class": "outline-success/25 focus-visible:outline-3"
1799
+ },
1800
+ {
1801
+ "color": "info",
1802
+ "variant": [
1803
+ "soft",
1804
+ "ghost"
1805
+ ],
1806
+ "class": "outline-info/25 focus-visible:outline-3"
1807
+ },
1808
+ {
1809
+ "color": "warning",
1810
+ "variant": [
1811
+ "soft",
1812
+ "ghost"
1813
+ ],
1814
+ "class": "outline-warning/25 focus-visible:outline-3"
1815
+ },
1816
+ {
1817
+ "color": "error",
1818
+ "variant": [
1819
+ "soft",
1820
+ "ghost"
1821
+ ],
1822
+ "class": "outline-error/25 focus-visible:outline-3"
1823
+ },
1824
+ {
1825
+ "color": "primary",
1826
+ "highlight": true,
1827
+ "class": "ring ring-inset ring-primary"
1828
+ },
1829
+ {
1830
+ "color": "secondary",
1831
+ "highlight": true,
1832
+ "class": "ring ring-inset ring-secondary"
1833
+ },
1834
+ {
1835
+ "color": "success",
1836
+ "highlight": true,
1837
+ "class": "ring ring-inset ring-success"
1838
+ },
1839
+ {
1840
+ "color": "info",
1841
+ "highlight": true,
1842
+ "class": "ring ring-inset ring-info"
1843
+ },
1844
+ {
1845
+ "color": "warning",
1846
+ "highlight": true,
1847
+ "class": "ring ring-inset ring-warning"
1848
+ },
1849
+ {
1850
+ "color": "error",
1851
+ "highlight": true,
1852
+ "class": "ring ring-inset ring-error"
1853
+ },
1854
+ {
1855
+ "color": "neutral",
1856
+ "variant": [
1857
+ "outline",
1858
+ "subtle"
1859
+ ],
1860
+ "class": "outline-inverted/25 focus-visible:outline-3 focus-visible:ring-inverted"
1861
+ },
1862
+ {
1863
+ "color": "neutral",
1864
+ "variant": [
1865
+ "soft",
1866
+ "ghost"
1867
+ ],
1868
+ "class": "outline-inverted/25 focus-visible:outline-3"
1869
+ },
1870
+ {
1871
+ "color": "neutral",
1872
+ "highlight": true,
1873
+ "class": "ring ring-inset ring-inverted"
1874
+ },
1875
+ {
1876
+ "leading": true,
1877
+ "size": "xs",
1878
+ "class": "ps-7"
1879
+ },
1880
+ {
1881
+ "leading": true,
1882
+ "size": "sm",
1883
+ "class": "ps-8"
1884
+ },
1885
+ {
1886
+ "leading": true,
1887
+ "size": "md",
1888
+ "class": "ps-9"
1889
+ },
1890
+ {
1891
+ "leading": true,
1892
+ "size": "lg",
1893
+ "class": "ps-10"
1894
+ },
1895
+ {
1896
+ "leading": true,
1897
+ "size": "xl",
1898
+ "class": "ps-11"
1899
+ },
1900
+ {
1901
+ "trailing": true,
1902
+ "size": "xs",
1903
+ "class": "pe-7"
1904
+ },
1905
+ {
1906
+ "trailing": true,
1907
+ "size": "sm",
1908
+ "class": "pe-8"
1909
+ },
1910
+ {
1911
+ "trailing": true,
1912
+ "size": "md",
1913
+ "class": "pe-9"
1914
+ },
1915
+ {
1916
+ "trailing": true,
1917
+ "size": "lg",
1918
+ "class": "pe-10"
1919
+ },
1920
+ {
1921
+ "trailing": true,
1922
+ "size": "xl",
1923
+ "class": "pe-11"
1924
+ },
1925
+ {
1926
+ "loading": true,
1927
+ "leading": true,
1928
+ "class": {
1929
+ "leadingIcon": "animate-spin"
1930
+ }
1931
+ },
1932
+ {
1933
+ "loading": true,
1934
+ "leading": false,
1935
+ "trailing": true,
1936
+ "class": {
1937
+ "trailingIcon": "animate-spin"
1938
+ }
1939
+ },
1940
+ {
1941
+ "fixed": false,
1942
+ "size": "xs",
1943
+ "class": "md:text-xs"
1944
+ },
1945
+ {
1946
+ "fixed": false,
1947
+ "size": "sm",
1948
+ "class": "md:text-xs"
1949
+ },
1950
+ {
1951
+ "fixed": false,
1952
+ "size": "md",
1953
+ "class": "md:text-sm"
1954
+ },
1955
+ {
1956
+ "fixed": false,
1957
+ "size": "lg",
1958
+ "class": "md:text-sm"
1959
+ }
1960
+ ],
1961
+ "defaultVariants": {
1962
+ "size": "md",
1963
+ "color": "primary",
1964
+ "variant": "outline"
1965
+ }
1966
+ };
1967
+ const _sfc_main$2 = /* @__PURE__ */ Object.assign({ inheritAttrs: false }, {
1968
+ __name: "UInput",
1969
+ __ssrInlineRender: true,
1970
+ props: {
1971
+ as: { type: null, required: false },
1972
+ id: { type: String, required: false },
1973
+ name: { type: String, required: false },
1974
+ type: { type: null, required: false, default: "text" },
1975
+ placeholder: { type: String, required: false },
1976
+ color: { type: null, required: false },
1977
+ variant: { type: null, required: false },
1978
+ size: { type: null, required: false },
1979
+ required: { type: Boolean, required: false },
1980
+ autocomplete: { type: [String, Object], required: false, default: "off" },
1981
+ autofocus: { type: Boolean, required: false },
1982
+ autofocusDelay: { type: Number, required: false, default: 0 },
1983
+ disabled: { type: Boolean, required: false },
1984
+ highlight: { type: Boolean, required: false },
1985
+ fixed: { type: Boolean, required: false },
1986
+ modelValue: { type: null, required: false },
1987
+ defaultValue: { type: null, required: false },
1988
+ modelModifiers: { type: null, required: false },
1989
+ class: { type: null, required: false },
1990
+ ui: { type: Object, required: false },
1991
+ icon: { type: null, required: false },
1992
+ avatar: { type: Object, required: false },
1993
+ leading: { type: Boolean, required: false },
1994
+ leadingIcon: { type: null, required: false },
1995
+ trailing: { type: Boolean, required: false },
1996
+ trailingIcon: { type: null, required: false },
1997
+ loading: { type: Boolean, required: false },
1998
+ loadingIcon: { type: null, required: false }
1999
+ },
2000
+ emits: ["update:modelValue", "blur", "change"],
2001
+ setup(__props, { expose: __expose, emit: __emit }) {
2002
+ const _props = __props;
2003
+ const emits = __emit;
2004
+ const slots = useSlots();
2005
+ const props = useComponentProps("input", _props);
2006
+ const modelValue = useVModel(props, "modelValue", emits, { defaultValue: props.defaultValue });
2007
+ const appConfig = useAppConfig();
2008
+ const { emitFormBlur, emitFormInput, emitFormChange, size: formFieldSize, color, id, name, highlight, disabled, emitFormFocus, ariaAttrs } = useFormField(_props, { deferInputValidation: true });
2009
+ const { orientation, size: fieldGroupSize } = useFieldGroup(_props);
2010
+ const { isLeading, isTrailing, leadingIconName, trailingIconName } = useComponentIcons(props);
2011
+ const inputSize = computed(() => fieldGroupSize.value || formFieldSize.value);
2012
+ const ui = computed(() => tv({ extend: tv(theme$1), ...appConfig.ui?.input || {} })({
2013
+ type: props.type,
2014
+ color: color.value ?? props.color,
2015
+ variant: props.variant,
2016
+ size: inputSize?.value ?? props.size,
2017
+ loading: props.loading,
2018
+ highlight: highlight.value ?? props.highlight,
2019
+ fixed: props.fixed,
2020
+ leading: isLeading.value || !!props.avatar || !!slots.leading,
2021
+ trailing: isTrailing.value || !!slots.trailing,
2022
+ fieldGroup: orientation.value
2023
+ }));
2024
+ const inputRef = useTemplateRef("inputRef");
2025
+ function updateInput(value) {
2026
+ if (props.modelModifiers?.trim && (typeof value === "string" || value === null || value === void 0)) {
2027
+ value = value?.trim() ?? null;
2028
+ }
2029
+ if (props.modelModifiers?.number || props.type === "number") {
2030
+ value = looseToNumber(value);
2031
+ }
2032
+ if (props.modelModifiers?.nullable) {
2033
+ value ||= null;
2034
+ }
2035
+ if (props.modelModifiers?.optional && !props.modelModifiers?.nullable && value !== null) {
2036
+ value ||= void 0;
2037
+ }
2038
+ modelValue.value = value;
2039
+ emitFormInput();
2040
+ }
2041
+ function onInput(event) {
2042
+ if (!props.modelModifiers?.lazy) {
2043
+ updateInput(event.target.value);
2044
+ }
2045
+ }
2046
+ function onChange(event) {
2047
+ const value = event.target.value;
2048
+ if (props.modelModifiers?.lazy) {
2049
+ updateInput(value);
2050
+ }
2051
+ if (props.modelModifiers?.trim) {
2052
+ event.target.value = value.trim();
2053
+ }
2054
+ emitFormChange();
2055
+ emits("change", event);
2056
+ }
2057
+ function onBlur(event) {
2058
+ emitFormBlur();
2059
+ emits("blur", event);
2060
+ }
2061
+ __expose({
2062
+ inputRef
2063
+ });
2064
+ return (_ctx, _push, _parent, _attrs) => {
2065
+ _push(ssrRenderComponent(unref(Primitive), mergeProps({
2066
+ as: unref(props).as,
2067
+ "data-slot": "root",
2068
+ class: ui.value.root({ class: [unref(props).ui?.root, unref(props).class] })
2069
+ }, _attrs), {
2070
+ default: withCtx((_, _push2, _parent2, _scopeId) => {
2071
+ if (_push2) {
2072
+ _push2(`<input${ssrRenderAttrs(mergeProps({
2073
+ id: unref(id),
2074
+ ref_key: "inputRef",
2075
+ ref: inputRef,
2076
+ type: unref(props).type,
2077
+ value: unref(modelValue),
2078
+ name: unref(name),
2079
+ placeholder: unref(props).placeholder,
2080
+ "data-slot": "base",
2081
+ class: ui.value.base({ class: unref(props).ui?.base }),
2082
+ disabled: unref(disabled),
2083
+ required: unref(props).required,
2084
+ autocomplete: unref(props).autocomplete
2085
+ }, { ..._ctx.$attrs, ...unref(ariaAttrs) }))}${_scopeId}>`);
2086
+ ssrRenderSlot(_ctx.$slots, "default", { ui: ui.value }, null, _push2, _parent2, _scopeId);
2087
+ if (unref(isLeading) || !!unref(props).avatar || !!slots.leading) {
2088
+ _push2(`<span data-slot="leading" class="${ssrRenderClass(ui.value.leading({ class: unref(props).ui?.leading }))}"${_scopeId}>`);
2089
+ ssrRenderSlot(_ctx.$slots, "leading", { ui: ui.value }, () => {
2090
+ if (unref(isLeading) && unref(leadingIconName)) {
2091
+ _push2(ssrRenderComponent(_sfc_main$d, {
2092
+ name: unref(leadingIconName),
2093
+ "data-slot": "leadingIcon",
2094
+ class: ui.value.leadingIcon({ class: unref(props).ui?.leadingIcon })
2095
+ }, null, _parent2, _scopeId));
2096
+ } else if (!!unref(props).avatar) {
2097
+ _push2(ssrRenderComponent(_sfc_main$b, mergeProps({
2098
+ size: unref(props).ui?.leadingAvatarSize || ui.value.leadingAvatarSize()
2099
+ }, unref(props).avatar, {
2100
+ "data-slot": "leadingAvatar",
2101
+ class: ui.value.leadingAvatar({ class: unref(props).ui?.leadingAvatar })
2102
+ }), null, _parent2, _scopeId));
2103
+ } else {
2104
+ _push2(`<!---->`);
2105
+ }
2106
+ }, _push2, _parent2, _scopeId);
2107
+ _push2(`</span>`);
2108
+ } else {
2109
+ _push2(`<!---->`);
2110
+ }
2111
+ if (unref(isTrailing) || !!slots.trailing) {
2112
+ _push2(`<span data-slot="trailing" class="${ssrRenderClass(ui.value.trailing({ class: unref(props).ui?.trailing }))}"${_scopeId}>`);
2113
+ ssrRenderSlot(_ctx.$slots, "trailing", { ui: ui.value }, () => {
2114
+ if (unref(trailingIconName)) {
2115
+ _push2(ssrRenderComponent(_sfc_main$d, {
2116
+ name: unref(trailingIconName),
2117
+ "data-slot": "trailingIcon",
2118
+ class: ui.value.trailingIcon({ class: unref(props).ui?.trailingIcon })
2119
+ }, null, _parent2, _scopeId));
2120
+ } else {
2121
+ _push2(`<!---->`);
2122
+ }
2123
+ }, _push2, _parent2, _scopeId);
2124
+ _push2(`</span>`);
2125
+ } else {
2126
+ _push2(`<!---->`);
2127
+ }
2128
+ } else {
2129
+ return [
2130
+ createVNode("input", mergeProps({
2131
+ id: unref(id),
2132
+ ref_key: "inputRef",
2133
+ ref: inputRef,
2134
+ type: unref(props).type,
2135
+ value: unref(modelValue),
2136
+ name: unref(name),
2137
+ placeholder: unref(props).placeholder,
2138
+ "data-slot": "base",
2139
+ class: ui.value.base({ class: unref(props).ui?.base }),
2140
+ disabled: unref(disabled),
2141
+ required: unref(props).required,
2142
+ autocomplete: unref(props).autocomplete
2143
+ }, { ..._ctx.$attrs, ...unref(ariaAttrs) }, {
2144
+ onInput,
2145
+ onBlur,
2146
+ onChange,
2147
+ onFocus: unref(emitFormFocus)
2148
+ }), null, 16, ["id", "type", "value", "name", "placeholder", "disabled", "required", "autocomplete", "onFocus"]),
2149
+ renderSlot(_ctx.$slots, "default", { ui: ui.value }),
2150
+ unref(isLeading) || !!unref(props).avatar || !!slots.leading ? (openBlock(), createBlock("span", {
2151
+ key: 0,
2152
+ "data-slot": "leading",
2153
+ class: ui.value.leading({ class: unref(props).ui?.leading })
2154
+ }, [
2155
+ renderSlot(_ctx.$slots, "leading", { ui: ui.value }, () => [
2156
+ unref(isLeading) && unref(leadingIconName) ? (openBlock(), createBlock(_sfc_main$d, {
2157
+ key: 0,
2158
+ name: unref(leadingIconName),
2159
+ "data-slot": "leadingIcon",
2160
+ class: ui.value.leadingIcon({ class: unref(props).ui?.leadingIcon })
2161
+ }, null, 8, ["name", "class"])) : !!unref(props).avatar ? (openBlock(), createBlock(_sfc_main$b, mergeProps({
2162
+ key: 1,
2163
+ size: unref(props).ui?.leadingAvatarSize || ui.value.leadingAvatarSize()
2164
+ }, unref(props).avatar, {
2165
+ "data-slot": "leadingAvatar",
2166
+ class: ui.value.leadingAvatar({ class: unref(props).ui?.leadingAvatar })
2167
+ }), null, 16, ["size", "class"])) : createCommentVNode("", true)
2168
+ ])
2169
+ ], 2)) : createCommentVNode("", true),
2170
+ unref(isTrailing) || !!slots.trailing ? (openBlock(), createBlock("span", {
2171
+ key: 1,
2172
+ "data-slot": "trailing",
2173
+ class: ui.value.trailing({ class: unref(props).ui?.trailing })
2174
+ }, [
2175
+ renderSlot(_ctx.$slots, "trailing", { ui: ui.value }, () => [
2176
+ unref(trailingIconName) ? (openBlock(), createBlock(_sfc_main$d, {
2177
+ key: 0,
2178
+ name: unref(trailingIconName),
2179
+ "data-slot": "trailingIcon",
2180
+ class: ui.value.trailingIcon({ class: unref(props).ui?.trailingIcon })
2181
+ }, null, 8, ["name", "class"])) : createCommentVNode("", true)
2182
+ ])
2183
+ ], 2)) : createCommentVNode("", true)
2184
+ ];
2185
+ }
2186
+ }),
2187
+ _: 3
2188
+ }, _parent));
2189
+ };
2190
+ }
2191
+ });
2192
+ const _sfc_setup$2 = _sfc_main$2.setup;
2193
+ _sfc_main$2.setup = (props, ctx) => {
2194
+ const ssrContext = useSSRContext();
2195
+ (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("../node_modules/.pnpm/@nuxt+ui@4.9.0_fc567bb539fc22c96f06ec9e35286506/node_modules/@nuxt/ui/dist/runtime/components/Input.vue");
2196
+ return _sfc_setup$2 ? _sfc_setup$2(props, ctx) : void 0;
2197
+ };
2198
+ const theme = {
2199
+ "slots": {
2200
+ "base": [
2201
+ "relative group rounded-md inline-flex items-center disabled:cursor-not-allowed disabled:opacity-75",
2202
+ "transition-colors"
2203
+ ],
2204
+ "leading": "absolute inset-y-0 start-0 flex items-center",
2205
+ "leadingIcon": "shrink-0 text-dimmed",
2206
+ "leadingAvatar": "shrink-0",
2207
+ "leadingAvatarSize": "",
2208
+ "trailing": "absolute inset-y-0 end-0 flex items-center",
2209
+ "trailingIcon": "shrink-0 text-dimmed",
2210
+ "value": "truncate pointer-events-none",
2211
+ "placeholder": "truncate text-dimmed",
2212
+ "arrow": "fill-bg stroke-default",
2213
+ "content": "max-h-[min(15rem,var(--reka-select-content-available-height,15rem))] w-(--reka-select-trigger-width) bg-default shadow-lg rounded-md ring ring-default overflow-hidden origin-(--reka-select-content-transform-origin) pointer-events-auto flex flex-col",
2214
+ "viewport": "relative divide-y divide-default scroll-py-1 overflow-y-auto flex-1",
2215
+ "group": "p-1 isolate",
2216
+ "empty": "text-center text-muted",
2217
+ "label": "font-semibold text-highlighted",
2218
+ "separator": "-mx-1 my-1 h-px bg-border",
2219
+ "item": [
2220
+ "group relative w-full flex items-start select-none outline-none before:absolute before:z-[-1] before:inset-px before:rounded-md data-disabled:cursor-not-allowed data-disabled:opacity-75 text-default data-highlighted:not-data-disabled:text-highlighted data-highlighted:not-data-disabled:before:bg-elevated/50",
2221
+ "transition-colors before:transition-colors"
2222
+ ],
2223
+ "itemLeadingIcon": [
2224
+ "shrink-0 text-dimmed group-data-highlighted:not-group-data-disabled:text-default",
2225
+ "transition-colors"
2226
+ ],
2227
+ "itemLeadingAvatar": "shrink-0",
2228
+ "itemLeadingAvatarSize": "",
2229
+ "itemLeadingChip": "shrink-0",
2230
+ "itemLeadingChipSize": "",
2231
+ "itemTrailing": "ms-auto inline-flex gap-1.5 items-center",
2232
+ "itemTrailingIcon": "shrink-0",
2233
+ "itemWrapper": "flex-1 flex flex-col min-w-0",
2234
+ "itemLabel": "truncate",
2235
+ "itemDescription": "truncate text-muted"
2236
+ },
2237
+ "variants": {
2238
+ "fieldGroup": {
2239
+ "horizontal": "not-only:first:rounded-e-none not-only:last:rounded-s-none not-last:not-first:rounded-none focus-visible:z-[1]",
2240
+ "vertical": "not-only:first:rounded-b-none not-only:last:rounded-t-none not-last:not-first:rounded-none focus-visible:z-[1]"
2241
+ },
2242
+ "size": {
2243
+ "xs": {
2244
+ "base": "px-2 py-1 text-xs gap-1",
2245
+ "leading": "ps-2",
2246
+ "trailing": "pe-2",
2247
+ "leadingIcon": "size-4",
2248
+ "leadingAvatarSize": "3xs",
2249
+ "trailingIcon": "size-4",
2250
+ "label": "p-1 text-[10px]/3 gap-1",
2251
+ "item": "p-1 text-xs gap-1",
2252
+ "itemLeadingIcon": "size-4",
2253
+ "itemLeadingAvatarSize": "3xs",
2254
+ "itemLeadingChip": "size-4",
2255
+ "itemLeadingChipSize": "sm",
2256
+ "itemTrailingIcon": "size-4",
2257
+ "empty": "p-2 text-xs"
2258
+ },
2259
+ "sm": {
2260
+ "base": "px-2.5 py-1.5 text-xs gap-1.5",
2261
+ "leading": "ps-2.5",
2262
+ "trailing": "pe-2.5",
2263
+ "leadingIcon": "size-4",
2264
+ "leadingAvatarSize": "3xs",
2265
+ "trailingIcon": "size-4",
2266
+ "label": "p-1.5 text-[10px]/3 gap-1.5",
2267
+ "item": "p-1.5 text-xs gap-1.5",
2268
+ "itemLeadingIcon": "size-4",
2269
+ "itemLeadingAvatarSize": "3xs",
2270
+ "itemLeadingChip": "size-4",
2271
+ "itemLeadingChipSize": "sm",
2272
+ "itemTrailingIcon": "size-4",
2273
+ "empty": "p-2.5 text-xs"
2274
+ },
2275
+ "md": {
2276
+ "base": "px-2.5 py-1.5 text-sm gap-1.5",
2277
+ "leading": "ps-2.5",
2278
+ "trailing": "pe-2.5",
2279
+ "leadingIcon": "size-5",
2280
+ "leadingAvatarSize": "2xs",
2281
+ "trailingIcon": "size-5",
2282
+ "label": "p-1.5 text-xs gap-1.5",
2283
+ "item": "p-1.5 text-sm gap-1.5",
2284
+ "itemLeadingIcon": "size-5",
2285
+ "itemLeadingAvatarSize": "2xs",
2286
+ "itemLeadingChip": "size-5",
2287
+ "itemLeadingChipSize": "md",
2288
+ "itemTrailingIcon": "size-5",
2289
+ "empty": "p-2.5 text-sm"
2290
+ },
2291
+ "lg": {
2292
+ "base": "px-3 py-2 text-sm gap-2",
2293
+ "leading": "ps-3",
2294
+ "trailing": "pe-3",
2295
+ "leadingIcon": "size-5",
2296
+ "leadingAvatarSize": "2xs",
2297
+ "trailingIcon": "size-5",
2298
+ "label": "p-2 text-xs gap-2",
2299
+ "item": "p-2 text-sm gap-2",
2300
+ "itemLeadingIcon": "size-5",
2301
+ "itemLeadingAvatarSize": "2xs",
2302
+ "itemLeadingChip": "size-5",
2303
+ "itemLeadingChipSize": "md",
2304
+ "itemTrailingIcon": "size-5",
2305
+ "empty": "p-3 text-sm"
2306
+ },
2307
+ "xl": {
2308
+ "base": "px-3 py-2 text-base gap-2",
2309
+ "leading": "ps-3",
2310
+ "trailing": "pe-3",
2311
+ "leadingIcon": "size-6",
2312
+ "leadingAvatarSize": "xs",
2313
+ "trailingIcon": "size-6",
2314
+ "label": "p-2 text-sm gap-2",
2315
+ "item": "p-2 text-base gap-2",
2316
+ "itemLeadingIcon": "size-6",
2317
+ "itemLeadingAvatarSize": "xs",
2318
+ "itemLeadingChip": "size-6",
2319
+ "itemLeadingChipSize": "lg",
2320
+ "itemTrailingIcon": "size-6",
2321
+ "empty": "p-3 text-base"
2322
+ }
2323
+ },
2324
+ "variant": {
2325
+ "outline": "text-highlighted bg-default ring ring-inset ring-accented hover:bg-elevated disabled:bg-default",
2326
+ "soft": "text-highlighted bg-elevated/50 hover:bg-elevated focus:bg-elevated disabled:bg-elevated/50",
2327
+ "subtle": "text-highlighted bg-elevated ring ring-inset ring-accented hover:bg-accented/75 disabled:bg-elevated",
2328
+ "ghost": "text-highlighted bg-transparent hover:bg-elevated focus:bg-elevated disabled:bg-transparent dark:disabled:bg-transparent",
2329
+ "none": "text-highlighted bg-transparent focus:outline-none"
2330
+ },
2331
+ "color": {
2332
+ "primary": "",
2333
+ "secondary": "",
2334
+ "success": "",
2335
+ "info": "",
2336
+ "warning": "",
2337
+ "error": "",
2338
+ "neutral": ""
2339
+ },
2340
+ "leading": {
2341
+ "true": ""
2342
+ },
2343
+ "trailing": {
2344
+ "true": ""
2345
+ },
2346
+ "loading": {
2347
+ "true": ""
2348
+ },
2349
+ "highlight": {
2350
+ "true": ""
2351
+ },
2352
+ "fixed": {
2353
+ "false": ""
2354
+ },
2355
+ "type": {
2356
+ "file": "file:me-1.5 file:font-medium file:text-muted file:outline-none"
2357
+ },
2358
+ "position": {
2359
+ "popper": {
2360
+ "content": "data-[state=open]:animate-[scale-in_100ms_ease-out] data-[state=closed]:animate-[scale-out_100ms_ease-in]"
2361
+ },
2362
+ "item-aligned": {
2363
+ "content": ""
2364
+ }
2365
+ },
2366
+ "multiple": {
2367
+ "true": ""
2368
+ }
2369
+ },
2370
+ "compoundVariants": [
2371
+ {
2372
+ "color": "primary",
2373
+ "variant": [
2374
+ "outline",
2375
+ "subtle"
2376
+ ],
2377
+ "class": "outline-primary/25 focus-visible:outline-3 focus-visible:ring-primary"
2378
+ },
2379
+ {
2380
+ "color": "secondary",
2381
+ "variant": [
2382
+ "outline",
2383
+ "subtle"
2384
+ ],
2385
+ "class": "outline-secondary/25 focus-visible:outline-3 focus-visible:ring-secondary"
2386
+ },
2387
+ {
2388
+ "color": "success",
2389
+ "variant": [
2390
+ "outline",
2391
+ "subtle"
2392
+ ],
2393
+ "class": "outline-success/25 focus-visible:outline-3 focus-visible:ring-success"
2394
+ },
2395
+ {
2396
+ "color": "info",
2397
+ "variant": [
2398
+ "outline",
2399
+ "subtle"
2400
+ ],
2401
+ "class": "outline-info/25 focus-visible:outline-3 focus-visible:ring-info"
2402
+ },
2403
+ {
2404
+ "color": "warning",
2405
+ "variant": [
2406
+ "outline",
2407
+ "subtle"
2408
+ ],
2409
+ "class": "outline-warning/25 focus-visible:outline-3 focus-visible:ring-warning"
2410
+ },
2411
+ {
2412
+ "color": "error",
2413
+ "variant": [
2414
+ "outline",
2415
+ "subtle"
2416
+ ],
2417
+ "class": "outline-error/25 focus-visible:outline-3 focus-visible:ring-error"
2418
+ },
2419
+ {
2420
+ "color": "primary",
2421
+ "variant": [
2422
+ "soft",
2423
+ "ghost"
2424
+ ],
2425
+ "class": "outline-primary/25 focus-visible:outline-3"
2426
+ },
2427
+ {
2428
+ "color": "secondary",
2429
+ "variant": [
2430
+ "soft",
2431
+ "ghost"
2432
+ ],
2433
+ "class": "outline-secondary/25 focus-visible:outline-3"
2434
+ },
2435
+ {
2436
+ "color": "success",
2437
+ "variant": [
2438
+ "soft",
2439
+ "ghost"
2440
+ ],
2441
+ "class": "outline-success/25 focus-visible:outline-3"
2442
+ },
2443
+ {
2444
+ "color": "info",
2445
+ "variant": [
2446
+ "soft",
2447
+ "ghost"
2448
+ ],
2449
+ "class": "outline-info/25 focus-visible:outline-3"
2450
+ },
2451
+ {
2452
+ "color": "warning",
2453
+ "variant": [
2454
+ "soft",
2455
+ "ghost"
2456
+ ],
2457
+ "class": "outline-warning/25 focus-visible:outline-3"
2458
+ },
2459
+ {
2460
+ "color": "error",
2461
+ "variant": [
2462
+ "soft",
2463
+ "ghost"
2464
+ ],
2465
+ "class": "outline-error/25 focus-visible:outline-3"
2466
+ },
2467
+ {
2468
+ "color": "primary",
2469
+ "highlight": true,
2470
+ "class": "ring ring-inset ring-primary"
2471
+ },
2472
+ {
2473
+ "color": "secondary",
2474
+ "highlight": true,
2475
+ "class": "ring ring-inset ring-secondary"
2476
+ },
2477
+ {
2478
+ "color": "success",
2479
+ "highlight": true,
2480
+ "class": "ring ring-inset ring-success"
2481
+ },
2482
+ {
2483
+ "color": "info",
2484
+ "highlight": true,
2485
+ "class": "ring ring-inset ring-info"
2486
+ },
2487
+ {
2488
+ "color": "warning",
2489
+ "highlight": true,
2490
+ "class": "ring ring-inset ring-warning"
2491
+ },
2492
+ {
2493
+ "color": "error",
2494
+ "highlight": true,
2495
+ "class": "ring ring-inset ring-error"
2496
+ },
2497
+ {
2498
+ "color": "neutral",
2499
+ "variant": [
2500
+ "outline",
2501
+ "subtle"
2502
+ ],
2503
+ "class": "outline-inverted/25 focus-visible:outline-3 focus-visible:ring-inverted"
2504
+ },
2505
+ {
2506
+ "color": "neutral",
2507
+ "variant": [
2508
+ "soft",
2509
+ "ghost"
2510
+ ],
2511
+ "class": "outline-inverted/25 focus-visible:outline-3"
2512
+ },
2513
+ {
2514
+ "color": "neutral",
2515
+ "highlight": true,
2516
+ "class": "ring ring-inset ring-inverted"
2517
+ },
2518
+ {
2519
+ "leading": true,
2520
+ "size": "xs",
2521
+ "class": "ps-7"
2522
+ },
2523
+ {
2524
+ "leading": true,
2525
+ "size": "sm",
2526
+ "class": "ps-8"
2527
+ },
2528
+ {
2529
+ "leading": true,
2530
+ "size": "md",
2531
+ "class": "ps-9"
2532
+ },
2533
+ {
2534
+ "leading": true,
2535
+ "size": "lg",
2536
+ "class": "ps-10"
2537
+ },
2538
+ {
2539
+ "leading": true,
2540
+ "size": "xl",
2541
+ "class": "ps-11"
2542
+ },
2543
+ {
2544
+ "trailing": true,
2545
+ "size": "xs",
2546
+ "class": "pe-7"
2547
+ },
2548
+ {
2549
+ "trailing": true,
2550
+ "size": "sm",
2551
+ "class": "pe-8"
2552
+ },
2553
+ {
2554
+ "trailing": true,
2555
+ "size": "md",
2556
+ "class": "pe-9"
2557
+ },
2558
+ {
2559
+ "trailing": true,
2560
+ "size": "lg",
2561
+ "class": "pe-10"
2562
+ },
2563
+ {
2564
+ "trailing": true,
2565
+ "size": "xl",
2566
+ "class": "pe-11"
2567
+ },
2568
+ {
2569
+ "loading": true,
2570
+ "leading": true,
2571
+ "class": {
2572
+ "leadingIcon": "animate-spin"
2573
+ }
2574
+ },
2575
+ {
2576
+ "loading": true,
2577
+ "leading": false,
2578
+ "trailing": true,
2579
+ "class": {
2580
+ "trailingIcon": "animate-spin"
2581
+ }
2582
+ },
2583
+ {
2584
+ "fixed": false,
2585
+ "size": "xs",
2586
+ "class": "md:text-xs"
2587
+ },
2588
+ {
2589
+ "fixed": false,
2590
+ "size": "sm",
2591
+ "class": "md:text-xs"
2592
+ },
2593
+ {
2594
+ "fixed": false,
2595
+ "size": "md",
2596
+ "class": "md:text-sm"
2597
+ },
2598
+ {
2599
+ "fixed": false,
2600
+ "size": "lg",
2601
+ "class": "md:text-sm"
2602
+ }
2603
+ ],
2604
+ "defaultVariants": {
2605
+ "size": "md",
2606
+ "color": "primary",
2607
+ "variant": "outline",
2608
+ "position": "popper"
2609
+ }
2610
+ };
2611
+ const _sfc_main$1 = /* @__PURE__ */ Object.assign({ inheritAttrs: false }, {
2612
+ __name: "USelect",
2613
+ __ssrInlineRender: true,
2614
+ props: {
2615
+ id: { type: String, required: false },
2616
+ placeholder: { type: String, required: false },
2617
+ color: { type: null, required: false },
2618
+ variant: { type: null, required: false },
2619
+ size: { type: null, required: false },
2620
+ trailingIcon: { type: null, required: false },
2621
+ selectedIcon: { type: null, required: false },
2622
+ content: { type: Object, required: false },
2623
+ arrow: { type: [Boolean, Object], required: false },
2624
+ portal: { type: [Boolean, String], required: false, skipCheck: true, default: true },
2625
+ valueKey: { type: null, required: false, default: "value" },
2626
+ labelKey: { type: null, required: false, default: "label" },
2627
+ descriptionKey: { type: null, required: false, default: "description" },
2628
+ items: { type: null, required: false },
2629
+ defaultValue: { type: null, required: false },
2630
+ modelValue: { type: null, required: false },
2631
+ modelModifiers: { type: null, required: false },
2632
+ multiple: { type: Boolean, required: false },
2633
+ highlight: { type: Boolean, required: false },
2634
+ autofocus: { type: Boolean, required: false },
2635
+ autofocusDelay: { type: Number, required: false, default: 0 },
2636
+ class: { type: null, required: false },
2637
+ ui: { type: Object, required: false },
2638
+ open: { type: Boolean, required: false },
2639
+ defaultOpen: { type: Boolean, required: false },
2640
+ autocomplete: { type: String, required: false },
2641
+ disabled: { type: Boolean, required: false },
2642
+ name: { type: String, required: false },
2643
+ required: { type: Boolean, required: false },
2644
+ icon: { type: null, required: false },
2645
+ avatar: { type: Object, required: false },
2646
+ leading: { type: Boolean, required: false },
2647
+ leadingIcon: { type: null, required: false },
2648
+ trailing: { type: Boolean, required: false },
2649
+ loading: { type: Boolean, required: false },
2650
+ loadingIcon: { type: null, required: false }
2651
+ },
2652
+ emits: ["change", "blur", "focus", "update:modelValue", "update:open"],
2653
+ setup(__props, { expose: __expose, emit: __emit }) {
2654
+ const _props = __props;
2655
+ const emits = __emit;
2656
+ const slots = useSlots();
2657
+ const props = useComponentProps("select", _props);
2658
+ const appConfig = useAppConfig();
2659
+ const rootProps = useForwardProps(reactivePick(props, "open", "defaultOpen", "disabled", "autocomplete", "required", "multiple"), emits);
2660
+ const portalProps = usePortal(toRef(() => props.portal));
2661
+ const position = computed(() => props.content?.position ?? appConfig.ui?.select?.defaultVariants?.position ?? theme.defaultVariants?.position);
2662
+ const contentProps = toRef(() => defu(props.content, { side: "bottom", sideOffset: 8, collisionPadding: 8, position: position.value }));
2663
+ const arrowProps = toRef(() => defu(props.arrow, { rounded: true }));
2664
+ const { emitFormChange, emitFormInput, emitFormBlur, emitFormFocus, size: formFieldSize, color, id, name, highlight, disabled, ariaAttrs } = useFormField(_props);
2665
+ const { orientation, size: fieldGroupSize } = useFieldGroup(_props);
2666
+ const { isLeading, isTrailing, leadingIconName, trailingIconName } = useComponentIcons(toRef(() => defu(props, { trailingIcon: appConfig.ui.icons.chevronDown })));
2667
+ const selectSize = computed(() => fieldGroupSize.value || formFieldSize.value);
2668
+ const isItemAligned = computed(() => position.value === "item-aligned");
2669
+ const ui = computed(() => tv({ extend: tv(theme), ...appConfig.ui?.select || {} })({
2670
+ color: color.value ?? props.color,
2671
+ variant: props.variant,
2672
+ size: selectSize.value ?? props.size,
2673
+ loading: props.loading,
2674
+ highlight: highlight.value ?? props.highlight,
2675
+ leading: isLeading.value || !!props.avatar || !!slots.leading,
2676
+ trailing: isTrailing.value || !!slots.trailing,
2677
+ fieldGroup: orientation.value,
2678
+ position: position.value,
2679
+ multiple: props.multiple
2680
+ }));
2681
+ const groups = computed(
2682
+ () => props.items?.length ? isArrayOfArray(props.items) ? props.items : [props.items] : []
2683
+ );
2684
+ const items = computed(() => groups.value.flatMap((group) => group));
2685
+ function displayValue(value) {
2686
+ if (props.multiple && Array.isArray(value)) {
2687
+ const displayedValues = value.map((item) => getDisplayValue(items.value, item, {
2688
+ labelKey: props.labelKey,
2689
+ valueKey: props.valueKey
2690
+ })).filter((v) => v != null && v !== "");
2691
+ return displayedValues.length > 0 ? displayedValues.join(", ") : void 0;
2692
+ }
2693
+ return getDisplayValue(items.value, value, {
2694
+ labelKey: props.labelKey,
2695
+ valueKey: props.valueKey
2696
+ });
2697
+ }
2698
+ const triggerRef = useTemplateRef("triggerRef");
2699
+ function onUpdate(value) {
2700
+ if (props.modelModifiers?.trim && (typeof value === "string" || value === null || value === void 0)) {
2701
+ value = value?.trim() ?? null;
2702
+ }
2703
+ if (props.modelModifiers?.number) {
2704
+ value = looseToNumber(value);
2705
+ }
2706
+ if (props.modelModifiers?.nullable) {
2707
+ value ??= null;
2708
+ }
2709
+ if (props.modelModifiers?.optional && !props.modelModifiers?.nullable && value !== null) {
2710
+ value ??= void 0;
2711
+ }
2712
+ const event = new Event("change", { target: { value } });
2713
+ emits("change", event);
2714
+ emitFormChange();
2715
+ emitFormInput();
2716
+ }
2717
+ function onUpdateOpen(value) {
2718
+ if (!value) {
2719
+ const event = new FocusEvent("blur");
2720
+ emits("blur", event);
2721
+ emitFormBlur();
2722
+ } else {
2723
+ const event = new FocusEvent("focus");
2724
+ emits("focus", event);
2725
+ emitFormFocus();
2726
+ }
2727
+ }
2728
+ function isSelectItem(item) {
2729
+ return typeof item === "object" && item !== null;
2730
+ }
2731
+ function onTriggerClick(open) {
2732
+ if (!open) {
2733
+ triggerRef.value?.$el?.dispatchEvent(new PointerEvent("pointerdown", { bubbles: true, button: 0 }));
2734
+ }
2735
+ }
2736
+ const viewportRef = useTemplateRef("viewportRef");
2737
+ __expose({
2738
+ triggerRef: toRef(() => triggerRef.value?.$el),
2739
+ viewportRef: toRef(() => {
2740
+ const instance = viewportRef.value;
2741
+ return instance && typeof instance === "object" && "$el" in instance ? instance.$el : instance;
2742
+ })
2743
+ });
2744
+ return (_ctx, _push, _parent, _attrs) => {
2745
+ _push(ssrRenderComponent(unref(SelectRoot_default), mergeProps({ name: unref(name) }, unref(rootProps), {
2746
+ autocomplete: unref(props).autocomplete,
2747
+ disabled: unref(disabled),
2748
+ "default-value": unref(props).defaultValue,
2749
+ "model-value": __props.modelValue,
2750
+ "onUpdate:modelValue": onUpdate,
2751
+ "onUpdate:open": onUpdateOpen
2752
+ }, _attrs), {
2753
+ default: withCtx(({ modelValue, open }, _push2, _parent2, _scopeId) => {
2754
+ if (_push2) {
2755
+ _push2(ssrRenderComponent(unref(SelectTrigger_default), mergeProps({
2756
+ id: unref(id),
2757
+ ref_key: "triggerRef",
2758
+ ref: triggerRef,
2759
+ "data-slot": "base",
2760
+ class: ui.value.base({ class: [unref(props).ui?.base, unref(props).class] })
2761
+ }, { ..._ctx.$attrs, ...unref(ariaAttrs) }, {
2762
+ onClick: ($event) => onTriggerClick(open)
2763
+ }), {
2764
+ default: withCtx((_, _push3, _parent3, _scopeId2) => {
2765
+ if (_push3) {
2766
+ if (unref(isLeading) || !!unref(props).avatar || !!slots.leading) {
2767
+ _push3(`<span data-slot="leading" class="${ssrRenderClass(ui.value.leading({ class: unref(props).ui?.leading }))}"${_scopeId2}>`);
2768
+ ssrRenderSlot(_ctx.$slots, "leading", {
2769
+ modelValue,
2770
+ open,
2771
+ ui: ui.value
2772
+ }, () => {
2773
+ if (unref(isLeading) && unref(leadingIconName)) {
2774
+ _push3(ssrRenderComponent(_sfc_main$d, {
2775
+ name: unref(leadingIconName),
2776
+ "data-slot": "leadingIcon",
2777
+ class: ui.value.leadingIcon({ class: unref(props).ui?.leadingIcon })
2778
+ }, null, _parent3, _scopeId2));
2779
+ } else if (!!unref(props).avatar) {
2780
+ _push3(ssrRenderComponent(_sfc_main$b, mergeProps({
2781
+ size: unref(props).ui?.itemLeadingAvatarSize || ui.value.itemLeadingAvatarSize()
2782
+ }, unref(props).avatar, {
2783
+ "data-slot": "itemLeadingAvatar",
2784
+ class: ui.value.itemLeadingAvatar({ class: unref(props).ui?.itemLeadingAvatar })
2785
+ }), null, _parent3, _scopeId2));
2786
+ } else {
2787
+ _push3(`<!---->`);
2788
+ }
2789
+ }, _push3, _parent3, _scopeId2);
2790
+ _push3(`</span>`);
2791
+ } else {
2792
+ _push3(`<!---->`);
2793
+ }
2794
+ _push3(`<!--[-->`);
2795
+ ssrRenderList([displayValue(modelValue)], (displayedModelValue) => {
2796
+ _push3(ssrRenderComponent(unref(SelectValue_default), {
2797
+ "data-slot": displayedModelValue != null ? "value" : "placeholder",
2798
+ class: displayedModelValue != null ? ui.value.value({ class: unref(props).ui?.value }) : ui.value.placeholder({ class: unref(props).ui?.placeholder })
2799
+ }, {
2800
+ default: withCtx((_2, _push4, _parent4, _scopeId3) => {
2801
+ if (_push4) {
2802
+ ssrRenderSlot(_ctx.$slots, "default", {
2803
+ modelValue,
2804
+ open,
2805
+ ui: ui.value
2806
+ }, () => {
2807
+ _push4(`${ssrInterpolate(displayedModelValue ?? (unref(props).placeholder ?? " "))}`);
2808
+ }, _push4, _parent4, _scopeId3);
2809
+ } else {
2810
+ return [
2811
+ renderSlot(_ctx.$slots, "default", {
2812
+ modelValue,
2813
+ open,
2814
+ ui: ui.value
2815
+ }, () => [
2816
+ createTextVNode(toDisplayString(displayedModelValue ?? (unref(props).placeholder ?? " ")), 1)
2817
+ ])
2818
+ ];
2819
+ }
2820
+ }),
2821
+ _: 2
2822
+ }, _parent3, _scopeId2));
2823
+ });
2824
+ _push3(`<!--]-->`);
2825
+ if (unref(isTrailing) || !!slots.trailing) {
2826
+ _push3(`<span data-slot="trailing" class="${ssrRenderClass(ui.value.trailing({ class: unref(props).ui?.trailing }))}"${_scopeId2}>`);
2827
+ ssrRenderSlot(_ctx.$slots, "trailing", {
2828
+ modelValue,
2829
+ open,
2830
+ ui: ui.value
2831
+ }, () => {
2832
+ if (unref(trailingIconName)) {
2833
+ _push3(ssrRenderComponent(_sfc_main$d, {
2834
+ name: unref(trailingIconName),
2835
+ "data-slot": "trailingIcon",
2836
+ class: ui.value.trailingIcon({ class: unref(props).ui?.trailingIcon })
2837
+ }, null, _parent3, _scopeId2));
2838
+ } else {
2839
+ _push3(`<!---->`);
2840
+ }
2841
+ }, _push3, _parent3, _scopeId2);
2842
+ _push3(`</span>`);
2843
+ } else {
2844
+ _push3(`<!---->`);
2845
+ }
2846
+ } else {
2847
+ return [
2848
+ unref(isLeading) || !!unref(props).avatar || !!slots.leading ? (openBlock(), createBlock("span", {
2849
+ key: 0,
2850
+ "data-slot": "leading",
2851
+ class: ui.value.leading({ class: unref(props).ui?.leading })
2852
+ }, [
2853
+ renderSlot(_ctx.$slots, "leading", {
2854
+ modelValue,
2855
+ open,
2856
+ ui: ui.value
2857
+ }, () => [
2858
+ unref(isLeading) && unref(leadingIconName) ? (openBlock(), createBlock(_sfc_main$d, {
2859
+ key: 0,
2860
+ name: unref(leadingIconName),
2861
+ "data-slot": "leadingIcon",
2862
+ class: ui.value.leadingIcon({ class: unref(props).ui?.leadingIcon })
2863
+ }, null, 8, ["name", "class"])) : !!unref(props).avatar ? (openBlock(), createBlock(_sfc_main$b, mergeProps({
2864
+ key: 1,
2865
+ size: unref(props).ui?.itemLeadingAvatarSize || ui.value.itemLeadingAvatarSize()
2866
+ }, unref(props).avatar, {
2867
+ "data-slot": "itemLeadingAvatar",
2868
+ class: ui.value.itemLeadingAvatar({ class: unref(props).ui?.itemLeadingAvatar })
2869
+ }), null, 16, ["size", "class"])) : createCommentVNode("", true)
2870
+ ])
2871
+ ], 2)) : createCommentVNode("", true),
2872
+ (openBlock(true), createBlock(Fragment, null, renderList([displayValue(modelValue)], (displayedModelValue) => {
2873
+ return openBlock(), createBlock(unref(SelectValue_default), {
2874
+ key: displayedModelValue,
2875
+ "data-slot": displayedModelValue != null ? "value" : "placeholder",
2876
+ class: displayedModelValue != null ? ui.value.value({ class: unref(props).ui?.value }) : ui.value.placeholder({ class: unref(props).ui?.placeholder })
2877
+ }, {
2878
+ default: withCtx(() => [
2879
+ renderSlot(_ctx.$slots, "default", {
2880
+ modelValue,
2881
+ open,
2882
+ ui: ui.value
2883
+ }, () => [
2884
+ createTextVNode(toDisplayString(displayedModelValue ?? (unref(props).placeholder ?? " ")), 1)
2885
+ ])
2886
+ ]),
2887
+ _: 2
2888
+ }, 1032, ["data-slot", "class"]);
2889
+ }), 128)),
2890
+ unref(isTrailing) || !!slots.trailing ? (openBlock(), createBlock("span", {
2891
+ key: 1,
2892
+ "data-slot": "trailing",
2893
+ class: ui.value.trailing({ class: unref(props).ui?.trailing })
2894
+ }, [
2895
+ renderSlot(_ctx.$slots, "trailing", {
2896
+ modelValue,
2897
+ open,
2898
+ ui: ui.value
2899
+ }, () => [
2900
+ unref(trailingIconName) ? (openBlock(), createBlock(_sfc_main$d, {
2901
+ key: 0,
2902
+ name: unref(trailingIconName),
2903
+ "data-slot": "trailingIcon",
2904
+ class: ui.value.trailingIcon({ class: unref(props).ui?.trailingIcon })
2905
+ }, null, 8, ["name", "class"])) : createCommentVNode("", true)
2906
+ ])
2907
+ ], 2)) : createCommentVNode("", true)
2908
+ ];
2909
+ }
2910
+ }),
2911
+ _: 2
2912
+ }, _parent2, _scopeId));
2913
+ _push2(ssrRenderComponent(unref(SelectPortal_default), unref(portalProps), {
2914
+ default: withCtx((_, _push3, _parent3, _scopeId2) => {
2915
+ if (_push3) {
2916
+ _push3(ssrRenderComponent(unref(FieldGroupReset), null, {
2917
+ default: withCtx((_2, _push4, _parent4, _scopeId3) => {
2918
+ if (_push4) {
2919
+ _push4(ssrRenderComponent(unref(SelectContent_default), mergeProps({
2920
+ "data-slot": "content",
2921
+ class: ui.value.content({ class: unref(props).ui?.content })
2922
+ }, contentProps.value), {
2923
+ default: withCtx((_3, _push5, _parent5, _scopeId4) => {
2924
+ if (_push5) {
2925
+ ssrRenderSlot(_ctx.$slots, "content-top", {}, null, _push5, _parent5, _scopeId4);
2926
+ ssrRenderVNode(_push5, createVNode(resolveDynamicComponent(isItemAligned.value ? unref(SelectViewport_default) : "div"), {
2927
+ ref_key: "viewportRef",
2928
+ ref: viewportRef,
2929
+ role: "presentation",
2930
+ "data-slot": "viewport",
2931
+ class: ui.value.viewport({ class: unref(props).ui?.viewport })
2932
+ }, {
2933
+ default: withCtx((_4, _push6, _parent6, _scopeId5) => {
2934
+ if (_push6) {
2935
+ _push6(`<!--[-->`);
2936
+ ssrRenderList(groups.value, (group, groupIndex) => {
2937
+ _push6(ssrRenderComponent(unref(SelectGroup_default), {
2938
+ key: `group-${groupIndex}`,
2939
+ "data-slot": "group",
2940
+ class: ui.value.group({ class: unref(props).ui?.group })
2941
+ }, {
2942
+ default: withCtx((_5, _push7, _parent7, _scopeId6) => {
2943
+ if (_push7) {
2944
+ _push7(`<!--[-->`);
2945
+ ssrRenderList(group, (item, index) => {
2946
+ _push7(`<!--[-->`);
2947
+ if (isSelectItem(item) && item.type === "label") {
2948
+ _push7(ssrRenderComponent(unref(SelectLabel_default), {
2949
+ "data-slot": "label",
2950
+ class: ui.value.label({ class: [unref(props).ui?.label, item.ui?.label, item.class] })
2951
+ }, {
2952
+ default: withCtx((_6, _push8, _parent8, _scopeId7) => {
2953
+ if (_push8) {
2954
+ _push8(`${ssrInterpolate(unref(get)(item, unref(props).labelKey))}`);
2955
+ } else {
2956
+ return [
2957
+ createTextVNode(toDisplayString(unref(get)(item, unref(props).labelKey)), 1)
2958
+ ];
2959
+ }
2960
+ }),
2961
+ _: 2
2962
+ }, _parent7, _scopeId6));
2963
+ } else if (isSelectItem(item) && item.type === "separator") {
2964
+ _push7(ssrRenderComponent(unref(SelectSeparator_default), {
2965
+ "data-slot": "separator",
2966
+ class: ui.value.separator({ class: [unref(props).ui?.separator, item.ui?.separator, item.class] })
2967
+ }, null, _parent7, _scopeId6));
2968
+ } else {
2969
+ _push7(ssrRenderComponent(unref(SelectItem_default), {
2970
+ "data-slot": "item",
2971
+ class: ui.value.item({ class: [unref(props).ui?.item, isSelectItem(item) && item.ui?.item, isSelectItem(item) && item.class] }),
2972
+ disabled: isSelectItem(item) && item.disabled,
2973
+ value: isSelectItem(item) ? unref(get)(item, unref(props).valueKey) : item,
2974
+ onSelect: ($event) => isSelectItem(item) && item.onSelect?.($event)
2975
+ }, {
2976
+ default: withCtx((_6, _push8, _parent8, _scopeId7) => {
2977
+ if (_push8) {
2978
+ ssrRenderSlot(_ctx.$slots, "item", {
2979
+ item,
2980
+ index,
2981
+ ui: ui.value
2982
+ }, () => {
2983
+ ssrRenderSlot(_ctx.$slots, "item-leading", {
2984
+ item,
2985
+ index,
2986
+ ui: ui.value
2987
+ }, () => {
2988
+ if (isSelectItem(item) && item.icon) {
2989
+ _push8(ssrRenderComponent(_sfc_main$d, {
2990
+ name: item.icon,
2991
+ "data-slot": "itemLeadingIcon",
2992
+ class: ui.value.itemLeadingIcon({ class: [unref(props).ui?.itemLeadingIcon, item.ui?.itemLeadingIcon] })
2993
+ }, null, _parent8, _scopeId7));
2994
+ } else if (isSelectItem(item) && item.avatar) {
2995
+ _push8(ssrRenderComponent(_sfc_main$b, mergeProps({
2996
+ size: item.ui?.itemLeadingAvatarSize || unref(props).ui?.itemLeadingAvatarSize || ui.value.itemLeadingAvatarSize()
2997
+ }, { ref_for: true }, item.avatar, {
2998
+ "data-slot": "itemLeadingAvatar",
2999
+ class: ui.value.itemLeadingAvatar({ class: [unref(props).ui?.itemLeadingAvatar, item.ui?.itemLeadingAvatar] })
3000
+ }), null, _parent8, _scopeId7));
3001
+ } else if (isSelectItem(item) && item.chip) {
3002
+ _push8(ssrRenderComponent(_sfc_main$c, mergeProps({
3003
+ size: item.ui?.itemLeadingChipSize || unref(props).ui?.itemLeadingChipSize || ui.value.itemLeadingChipSize(),
3004
+ inset: "",
3005
+ standalone: ""
3006
+ }, { ref_for: true }, item.chip, {
3007
+ "data-slot": "itemLeadingChip",
3008
+ class: ui.value.itemLeadingChip({ class: [unref(props).ui?.itemLeadingChip, item.ui?.itemLeadingChip] })
3009
+ }), null, _parent8, _scopeId7));
3010
+ } else {
3011
+ _push8(`<!---->`);
3012
+ }
3013
+ }, _push8, _parent8, _scopeId7);
3014
+ _push8(`<span data-slot="itemWrapper" class="${ssrRenderClass(ui.value.itemWrapper({ class: [unref(props).ui?.itemWrapper, isSelectItem(item) && item.ui?.itemWrapper] }))}"${_scopeId7}>`);
3015
+ _push8(ssrRenderComponent(unref(SelectItemText_default), {
3016
+ "data-slot": "itemLabel",
3017
+ class: ui.value.itemLabel({ class: [unref(props).ui?.itemLabel, isSelectItem(item) && item.ui?.itemLabel] })
3018
+ }, {
3019
+ default: withCtx((_7, _push9, _parent9, _scopeId8) => {
3020
+ if (_push9) {
3021
+ ssrRenderSlot(_ctx.$slots, "item-label", {
3022
+ item,
3023
+ index
3024
+ }, () => {
3025
+ _push9(`${ssrInterpolate(isSelectItem(item) ? unref(get)(item, unref(props).labelKey) : item)}`);
3026
+ }, _push9, _parent9, _scopeId8);
3027
+ } else {
3028
+ return [
3029
+ renderSlot(_ctx.$slots, "item-label", {
3030
+ item,
3031
+ index
3032
+ }, () => [
3033
+ createTextVNode(toDisplayString(isSelectItem(item) ? unref(get)(item, unref(props).labelKey) : item), 1)
3034
+ ])
3035
+ ];
3036
+ }
3037
+ }),
3038
+ _: 2
3039
+ }, _parent8, _scopeId7));
3040
+ if (isSelectItem(item) && (unref(get)(item, unref(props).descriptionKey) || !!slots["item-description"])) {
3041
+ _push8(`<span data-slot="itemDescription" class="${ssrRenderClass(ui.value.itemDescription({ class: [unref(props).ui?.itemDescription, isSelectItem(item) && item.ui?.itemDescription] }))}"${_scopeId7}>`);
3042
+ ssrRenderSlot(_ctx.$slots, "item-description", {
3043
+ item,
3044
+ index
3045
+ }, () => {
3046
+ _push8(`${ssrInterpolate(unref(get)(item, unref(props).descriptionKey))}`);
3047
+ }, _push8, _parent8, _scopeId7);
3048
+ _push8(`</span>`);
3049
+ } else {
3050
+ _push8(`<!---->`);
3051
+ }
3052
+ _push8(`</span><span data-slot="itemTrailing" class="${ssrRenderClass(ui.value.itemTrailing({ class: [unref(props).ui?.itemTrailing, isSelectItem(item) && item.ui?.itemTrailing] }))}"${_scopeId7}>`);
3053
+ ssrRenderSlot(_ctx.$slots, "item-trailing", {
3054
+ item,
3055
+ index,
3056
+ ui: ui.value
3057
+ }, null, _push8, _parent8, _scopeId7);
3058
+ _push8(ssrRenderComponent(unref(SelectItemIndicator_default), { "as-child": "" }, {
3059
+ default: withCtx((_7, _push9, _parent9, _scopeId8) => {
3060
+ if (_push9) {
3061
+ _push9(ssrRenderComponent(_sfc_main$d, {
3062
+ name: unref(props).selectedIcon || unref(appConfig).ui.icons.check,
3063
+ "data-slot": "itemTrailingIcon",
3064
+ class: ui.value.itemTrailingIcon({ class: [unref(props).ui?.itemTrailingIcon, isSelectItem(item) && item.ui?.itemTrailingIcon] })
3065
+ }, null, _parent9, _scopeId8));
3066
+ } else {
3067
+ return [
3068
+ createVNode(_sfc_main$d, {
3069
+ name: unref(props).selectedIcon || unref(appConfig).ui.icons.check,
3070
+ "data-slot": "itemTrailingIcon",
3071
+ class: ui.value.itemTrailingIcon({ class: [unref(props).ui?.itemTrailingIcon, isSelectItem(item) && item.ui?.itemTrailingIcon] })
3072
+ }, null, 8, ["name", "class"])
3073
+ ];
3074
+ }
3075
+ }),
3076
+ _: 2
3077
+ }, _parent8, _scopeId7));
3078
+ _push8(`</span>`);
3079
+ }, _push8, _parent8, _scopeId7);
3080
+ } else {
3081
+ return [
3082
+ renderSlot(_ctx.$slots, "item", {
3083
+ item,
3084
+ index,
3085
+ ui: ui.value
3086
+ }, () => [
3087
+ renderSlot(_ctx.$slots, "item-leading", {
3088
+ item,
3089
+ index,
3090
+ ui: ui.value
3091
+ }, () => [
3092
+ isSelectItem(item) && item.icon ? (openBlock(), createBlock(_sfc_main$d, {
3093
+ key: 0,
3094
+ name: item.icon,
3095
+ "data-slot": "itemLeadingIcon",
3096
+ class: ui.value.itemLeadingIcon({ class: [unref(props).ui?.itemLeadingIcon, item.ui?.itemLeadingIcon] })
3097
+ }, null, 8, ["name", "class"])) : isSelectItem(item) && item.avatar ? (openBlock(), createBlock(_sfc_main$b, mergeProps({
3098
+ key: 1,
3099
+ size: item.ui?.itemLeadingAvatarSize || unref(props).ui?.itemLeadingAvatarSize || ui.value.itemLeadingAvatarSize()
3100
+ }, { ref_for: true }, item.avatar, {
3101
+ "data-slot": "itemLeadingAvatar",
3102
+ class: ui.value.itemLeadingAvatar({ class: [unref(props).ui?.itemLeadingAvatar, item.ui?.itemLeadingAvatar] })
3103
+ }), null, 16, ["size", "class"])) : isSelectItem(item) && item.chip ? (openBlock(), createBlock(_sfc_main$c, mergeProps({
3104
+ key: 2,
3105
+ size: item.ui?.itemLeadingChipSize || unref(props).ui?.itemLeadingChipSize || ui.value.itemLeadingChipSize(),
3106
+ inset: "",
3107
+ standalone: ""
3108
+ }, { ref_for: true }, item.chip, {
3109
+ "data-slot": "itemLeadingChip",
3110
+ class: ui.value.itemLeadingChip({ class: [unref(props).ui?.itemLeadingChip, item.ui?.itemLeadingChip] })
3111
+ }), null, 16, ["size", "class"])) : createCommentVNode("", true)
3112
+ ]),
3113
+ createVNode("span", {
3114
+ "data-slot": "itemWrapper",
3115
+ class: ui.value.itemWrapper({ class: [unref(props).ui?.itemWrapper, isSelectItem(item) && item.ui?.itemWrapper] })
3116
+ }, [
3117
+ createVNode(unref(SelectItemText_default), {
3118
+ "data-slot": "itemLabel",
3119
+ class: ui.value.itemLabel({ class: [unref(props).ui?.itemLabel, isSelectItem(item) && item.ui?.itemLabel] })
3120
+ }, {
3121
+ default: withCtx(() => [
3122
+ renderSlot(_ctx.$slots, "item-label", {
3123
+ item,
3124
+ index
3125
+ }, () => [
3126
+ createTextVNode(toDisplayString(isSelectItem(item) ? unref(get)(item, unref(props).labelKey) : item), 1)
3127
+ ])
3128
+ ]),
3129
+ _: 2
3130
+ }, 1032, ["class"]),
3131
+ isSelectItem(item) && (unref(get)(item, unref(props).descriptionKey) || !!slots["item-description"]) ? (openBlock(), createBlock("span", {
3132
+ key: 0,
3133
+ "data-slot": "itemDescription",
3134
+ class: ui.value.itemDescription({ class: [unref(props).ui?.itemDescription, isSelectItem(item) && item.ui?.itemDescription] })
3135
+ }, [
3136
+ renderSlot(_ctx.$slots, "item-description", {
3137
+ item,
3138
+ index
3139
+ }, () => [
3140
+ createTextVNode(toDisplayString(unref(get)(item, unref(props).descriptionKey)), 1)
3141
+ ])
3142
+ ], 2)) : createCommentVNode("", true)
3143
+ ], 2),
3144
+ createVNode("span", {
3145
+ "data-slot": "itemTrailing",
3146
+ class: ui.value.itemTrailing({ class: [unref(props).ui?.itemTrailing, isSelectItem(item) && item.ui?.itemTrailing] })
3147
+ }, [
3148
+ renderSlot(_ctx.$slots, "item-trailing", {
3149
+ item,
3150
+ index,
3151
+ ui: ui.value
3152
+ }),
3153
+ createVNode(unref(SelectItemIndicator_default), { "as-child": "" }, {
3154
+ default: withCtx(() => [
3155
+ createVNode(_sfc_main$d, {
3156
+ name: unref(props).selectedIcon || unref(appConfig).ui.icons.check,
3157
+ "data-slot": "itemTrailingIcon",
3158
+ class: ui.value.itemTrailingIcon({ class: [unref(props).ui?.itemTrailingIcon, isSelectItem(item) && item.ui?.itemTrailingIcon] })
3159
+ }, null, 8, ["name", "class"])
3160
+ ]),
3161
+ _: 2
3162
+ }, 1024)
3163
+ ], 2)
3164
+ ])
3165
+ ];
3166
+ }
3167
+ }),
3168
+ _: 2
3169
+ }, _parent7, _scopeId6));
3170
+ }
3171
+ _push7(`<!--]-->`);
3172
+ });
3173
+ _push7(`<!--]-->`);
3174
+ } else {
3175
+ return [
3176
+ (openBlock(true), createBlock(Fragment, null, renderList(group, (item, index) => {
3177
+ return openBlock(), createBlock(Fragment, {
3178
+ key: `group-${groupIndex}-${index}`
3179
+ }, [
3180
+ isSelectItem(item) && item.type === "label" ? (openBlock(), createBlock(unref(SelectLabel_default), {
3181
+ key: 0,
3182
+ "data-slot": "label",
3183
+ class: ui.value.label({ class: [unref(props).ui?.label, item.ui?.label, item.class] })
3184
+ }, {
3185
+ default: withCtx(() => [
3186
+ createTextVNode(toDisplayString(unref(get)(item, unref(props).labelKey)), 1)
3187
+ ]),
3188
+ _: 2
3189
+ }, 1032, ["class"])) : isSelectItem(item) && item.type === "separator" ? (openBlock(), createBlock(unref(SelectSeparator_default), {
3190
+ key: 1,
3191
+ "data-slot": "separator",
3192
+ class: ui.value.separator({ class: [unref(props).ui?.separator, item.ui?.separator, item.class] })
3193
+ }, null, 8, ["class"])) : (openBlock(), createBlock(unref(SelectItem_default), {
3194
+ key: 2,
3195
+ "data-slot": "item",
3196
+ class: ui.value.item({ class: [unref(props).ui?.item, isSelectItem(item) && item.ui?.item, isSelectItem(item) && item.class] }),
3197
+ disabled: isSelectItem(item) && item.disabled,
3198
+ value: isSelectItem(item) ? unref(get)(item, unref(props).valueKey) : item,
3199
+ onSelect: ($event) => isSelectItem(item) && item.onSelect?.($event)
3200
+ }, {
3201
+ default: withCtx(() => [
3202
+ renderSlot(_ctx.$slots, "item", {
3203
+ item,
3204
+ index,
3205
+ ui: ui.value
3206
+ }, () => [
3207
+ renderSlot(_ctx.$slots, "item-leading", {
3208
+ item,
3209
+ index,
3210
+ ui: ui.value
3211
+ }, () => [
3212
+ isSelectItem(item) && item.icon ? (openBlock(), createBlock(_sfc_main$d, {
3213
+ key: 0,
3214
+ name: item.icon,
3215
+ "data-slot": "itemLeadingIcon",
3216
+ class: ui.value.itemLeadingIcon({ class: [unref(props).ui?.itemLeadingIcon, item.ui?.itemLeadingIcon] })
3217
+ }, null, 8, ["name", "class"])) : isSelectItem(item) && item.avatar ? (openBlock(), createBlock(_sfc_main$b, mergeProps({
3218
+ key: 1,
3219
+ size: item.ui?.itemLeadingAvatarSize || unref(props).ui?.itemLeadingAvatarSize || ui.value.itemLeadingAvatarSize()
3220
+ }, { ref_for: true }, item.avatar, {
3221
+ "data-slot": "itemLeadingAvatar",
3222
+ class: ui.value.itemLeadingAvatar({ class: [unref(props).ui?.itemLeadingAvatar, item.ui?.itemLeadingAvatar] })
3223
+ }), null, 16, ["size", "class"])) : isSelectItem(item) && item.chip ? (openBlock(), createBlock(_sfc_main$c, mergeProps({
3224
+ key: 2,
3225
+ size: item.ui?.itemLeadingChipSize || unref(props).ui?.itemLeadingChipSize || ui.value.itemLeadingChipSize(),
3226
+ inset: "",
3227
+ standalone: ""
3228
+ }, { ref_for: true }, item.chip, {
3229
+ "data-slot": "itemLeadingChip",
3230
+ class: ui.value.itemLeadingChip({ class: [unref(props).ui?.itemLeadingChip, item.ui?.itemLeadingChip] })
3231
+ }), null, 16, ["size", "class"])) : createCommentVNode("", true)
3232
+ ]),
3233
+ createVNode("span", {
3234
+ "data-slot": "itemWrapper",
3235
+ class: ui.value.itemWrapper({ class: [unref(props).ui?.itemWrapper, isSelectItem(item) && item.ui?.itemWrapper] })
3236
+ }, [
3237
+ createVNode(unref(SelectItemText_default), {
3238
+ "data-slot": "itemLabel",
3239
+ class: ui.value.itemLabel({ class: [unref(props).ui?.itemLabel, isSelectItem(item) && item.ui?.itemLabel] })
3240
+ }, {
3241
+ default: withCtx(() => [
3242
+ renderSlot(_ctx.$slots, "item-label", {
3243
+ item,
3244
+ index
3245
+ }, () => [
3246
+ createTextVNode(toDisplayString(isSelectItem(item) ? unref(get)(item, unref(props).labelKey) : item), 1)
3247
+ ])
3248
+ ]),
3249
+ _: 2
3250
+ }, 1032, ["class"]),
3251
+ isSelectItem(item) && (unref(get)(item, unref(props).descriptionKey) || !!slots["item-description"]) ? (openBlock(), createBlock("span", {
3252
+ key: 0,
3253
+ "data-slot": "itemDescription",
3254
+ class: ui.value.itemDescription({ class: [unref(props).ui?.itemDescription, isSelectItem(item) && item.ui?.itemDescription] })
3255
+ }, [
3256
+ renderSlot(_ctx.$slots, "item-description", {
3257
+ item,
3258
+ index
3259
+ }, () => [
3260
+ createTextVNode(toDisplayString(unref(get)(item, unref(props).descriptionKey)), 1)
3261
+ ])
3262
+ ], 2)) : createCommentVNode("", true)
3263
+ ], 2),
3264
+ createVNode("span", {
3265
+ "data-slot": "itemTrailing",
3266
+ class: ui.value.itemTrailing({ class: [unref(props).ui?.itemTrailing, isSelectItem(item) && item.ui?.itemTrailing] })
3267
+ }, [
3268
+ renderSlot(_ctx.$slots, "item-trailing", {
3269
+ item,
3270
+ index,
3271
+ ui: ui.value
3272
+ }),
3273
+ createVNode(unref(SelectItemIndicator_default), { "as-child": "" }, {
3274
+ default: withCtx(() => [
3275
+ createVNode(_sfc_main$d, {
3276
+ name: unref(props).selectedIcon || unref(appConfig).ui.icons.check,
3277
+ "data-slot": "itemTrailingIcon",
3278
+ class: ui.value.itemTrailingIcon({ class: [unref(props).ui?.itemTrailingIcon, isSelectItem(item) && item.ui?.itemTrailingIcon] })
3279
+ }, null, 8, ["name", "class"])
3280
+ ]),
3281
+ _: 2
3282
+ }, 1024)
3283
+ ], 2)
3284
+ ])
3285
+ ]),
3286
+ _: 2
3287
+ }, 1032, ["class", "disabled", "value", "onSelect"]))
3288
+ ], 64);
3289
+ }), 128))
3290
+ ];
3291
+ }
3292
+ }),
3293
+ _: 2
3294
+ }, _parent6, _scopeId5));
3295
+ });
3296
+ _push6(`<!--]-->`);
3297
+ } else {
3298
+ return [
3299
+ (openBlock(true), createBlock(Fragment, null, renderList(groups.value, (group, groupIndex) => {
3300
+ return openBlock(), createBlock(unref(SelectGroup_default), {
3301
+ key: `group-${groupIndex}`,
3302
+ "data-slot": "group",
3303
+ class: ui.value.group({ class: unref(props).ui?.group })
3304
+ }, {
3305
+ default: withCtx(() => [
3306
+ (openBlock(true), createBlock(Fragment, null, renderList(group, (item, index) => {
3307
+ return openBlock(), createBlock(Fragment, {
3308
+ key: `group-${groupIndex}-${index}`
3309
+ }, [
3310
+ isSelectItem(item) && item.type === "label" ? (openBlock(), createBlock(unref(SelectLabel_default), {
3311
+ key: 0,
3312
+ "data-slot": "label",
3313
+ class: ui.value.label({ class: [unref(props).ui?.label, item.ui?.label, item.class] })
3314
+ }, {
3315
+ default: withCtx(() => [
3316
+ createTextVNode(toDisplayString(unref(get)(item, unref(props).labelKey)), 1)
3317
+ ]),
3318
+ _: 2
3319
+ }, 1032, ["class"])) : isSelectItem(item) && item.type === "separator" ? (openBlock(), createBlock(unref(SelectSeparator_default), {
3320
+ key: 1,
3321
+ "data-slot": "separator",
3322
+ class: ui.value.separator({ class: [unref(props).ui?.separator, item.ui?.separator, item.class] })
3323
+ }, null, 8, ["class"])) : (openBlock(), createBlock(unref(SelectItem_default), {
3324
+ key: 2,
3325
+ "data-slot": "item",
3326
+ class: ui.value.item({ class: [unref(props).ui?.item, isSelectItem(item) && item.ui?.item, isSelectItem(item) && item.class] }),
3327
+ disabled: isSelectItem(item) && item.disabled,
3328
+ value: isSelectItem(item) ? unref(get)(item, unref(props).valueKey) : item,
3329
+ onSelect: ($event) => isSelectItem(item) && item.onSelect?.($event)
3330
+ }, {
3331
+ default: withCtx(() => [
3332
+ renderSlot(_ctx.$slots, "item", {
3333
+ item,
3334
+ index,
3335
+ ui: ui.value
3336
+ }, () => [
3337
+ renderSlot(_ctx.$slots, "item-leading", {
3338
+ item,
3339
+ index,
3340
+ ui: ui.value
3341
+ }, () => [
3342
+ isSelectItem(item) && item.icon ? (openBlock(), createBlock(_sfc_main$d, {
3343
+ key: 0,
3344
+ name: item.icon,
3345
+ "data-slot": "itemLeadingIcon",
3346
+ class: ui.value.itemLeadingIcon({ class: [unref(props).ui?.itemLeadingIcon, item.ui?.itemLeadingIcon] })
3347
+ }, null, 8, ["name", "class"])) : isSelectItem(item) && item.avatar ? (openBlock(), createBlock(_sfc_main$b, mergeProps({
3348
+ key: 1,
3349
+ size: item.ui?.itemLeadingAvatarSize || unref(props).ui?.itemLeadingAvatarSize || ui.value.itemLeadingAvatarSize()
3350
+ }, { ref_for: true }, item.avatar, {
3351
+ "data-slot": "itemLeadingAvatar",
3352
+ class: ui.value.itemLeadingAvatar({ class: [unref(props).ui?.itemLeadingAvatar, item.ui?.itemLeadingAvatar] })
3353
+ }), null, 16, ["size", "class"])) : isSelectItem(item) && item.chip ? (openBlock(), createBlock(_sfc_main$c, mergeProps({
3354
+ key: 2,
3355
+ size: item.ui?.itemLeadingChipSize || unref(props).ui?.itemLeadingChipSize || ui.value.itemLeadingChipSize(),
3356
+ inset: "",
3357
+ standalone: ""
3358
+ }, { ref_for: true }, item.chip, {
3359
+ "data-slot": "itemLeadingChip",
3360
+ class: ui.value.itemLeadingChip({ class: [unref(props).ui?.itemLeadingChip, item.ui?.itemLeadingChip] })
3361
+ }), null, 16, ["size", "class"])) : createCommentVNode("", true)
3362
+ ]),
3363
+ createVNode("span", {
3364
+ "data-slot": "itemWrapper",
3365
+ class: ui.value.itemWrapper({ class: [unref(props).ui?.itemWrapper, isSelectItem(item) && item.ui?.itemWrapper] })
3366
+ }, [
3367
+ createVNode(unref(SelectItemText_default), {
3368
+ "data-slot": "itemLabel",
3369
+ class: ui.value.itemLabel({ class: [unref(props).ui?.itemLabel, isSelectItem(item) && item.ui?.itemLabel] })
3370
+ }, {
3371
+ default: withCtx(() => [
3372
+ renderSlot(_ctx.$slots, "item-label", {
3373
+ item,
3374
+ index
3375
+ }, () => [
3376
+ createTextVNode(toDisplayString(isSelectItem(item) ? unref(get)(item, unref(props).labelKey) : item), 1)
3377
+ ])
3378
+ ]),
3379
+ _: 2
3380
+ }, 1032, ["class"]),
3381
+ isSelectItem(item) && (unref(get)(item, unref(props).descriptionKey) || !!slots["item-description"]) ? (openBlock(), createBlock("span", {
3382
+ key: 0,
3383
+ "data-slot": "itemDescription",
3384
+ class: ui.value.itemDescription({ class: [unref(props).ui?.itemDescription, isSelectItem(item) && item.ui?.itemDescription] })
3385
+ }, [
3386
+ renderSlot(_ctx.$slots, "item-description", {
3387
+ item,
3388
+ index
3389
+ }, () => [
3390
+ createTextVNode(toDisplayString(unref(get)(item, unref(props).descriptionKey)), 1)
3391
+ ])
3392
+ ], 2)) : createCommentVNode("", true)
3393
+ ], 2),
3394
+ createVNode("span", {
3395
+ "data-slot": "itemTrailing",
3396
+ class: ui.value.itemTrailing({ class: [unref(props).ui?.itemTrailing, isSelectItem(item) && item.ui?.itemTrailing] })
3397
+ }, [
3398
+ renderSlot(_ctx.$slots, "item-trailing", {
3399
+ item,
3400
+ index,
3401
+ ui: ui.value
3402
+ }),
3403
+ createVNode(unref(SelectItemIndicator_default), { "as-child": "" }, {
3404
+ default: withCtx(() => [
3405
+ createVNode(_sfc_main$d, {
3406
+ name: unref(props).selectedIcon || unref(appConfig).ui.icons.check,
3407
+ "data-slot": "itemTrailingIcon",
3408
+ class: ui.value.itemTrailingIcon({ class: [unref(props).ui?.itemTrailingIcon, isSelectItem(item) && item.ui?.itemTrailingIcon] })
3409
+ }, null, 8, ["name", "class"])
3410
+ ]),
3411
+ _: 2
3412
+ }, 1024)
3413
+ ], 2)
3414
+ ])
3415
+ ]),
3416
+ _: 2
3417
+ }, 1032, ["class", "disabled", "value", "onSelect"]))
3418
+ ], 64);
3419
+ }), 128))
3420
+ ]),
3421
+ _: 2
3422
+ }, 1032, ["class"]);
3423
+ }), 128))
3424
+ ];
3425
+ }
3426
+ }),
3427
+ _: 2
3428
+ }), _parent5, _scopeId4);
3429
+ ssrRenderSlot(_ctx.$slots, "content-bottom", {}, null, _push5, _parent5, _scopeId4);
3430
+ if (!!unref(props).arrow) {
3431
+ _push5(ssrRenderComponent(unref(SelectArrow_default), mergeProps(arrowProps.value, {
3432
+ "data-slot": "arrow",
3433
+ class: ui.value.arrow({ class: unref(props).ui?.arrow })
3434
+ }), null, _parent5, _scopeId4));
3435
+ } else {
3436
+ _push5(`<!---->`);
3437
+ }
3438
+ } else {
3439
+ return [
3440
+ renderSlot(_ctx.$slots, "content-top"),
3441
+ (openBlock(), createBlock(resolveDynamicComponent(isItemAligned.value ? unref(SelectViewport_default) : "div"), {
3442
+ ref_key: "viewportRef",
3443
+ ref: viewportRef,
3444
+ role: "presentation",
3445
+ "data-slot": "viewport",
3446
+ class: ui.value.viewport({ class: unref(props).ui?.viewport })
3447
+ }, {
3448
+ default: withCtx(() => [
3449
+ (openBlock(true), createBlock(Fragment, null, renderList(groups.value, (group, groupIndex) => {
3450
+ return openBlock(), createBlock(unref(SelectGroup_default), {
3451
+ key: `group-${groupIndex}`,
3452
+ "data-slot": "group",
3453
+ class: ui.value.group({ class: unref(props).ui?.group })
3454
+ }, {
3455
+ default: withCtx(() => [
3456
+ (openBlock(true), createBlock(Fragment, null, renderList(group, (item, index) => {
3457
+ return openBlock(), createBlock(Fragment, {
3458
+ key: `group-${groupIndex}-${index}`
3459
+ }, [
3460
+ isSelectItem(item) && item.type === "label" ? (openBlock(), createBlock(unref(SelectLabel_default), {
3461
+ key: 0,
3462
+ "data-slot": "label",
3463
+ class: ui.value.label({ class: [unref(props).ui?.label, item.ui?.label, item.class] })
3464
+ }, {
3465
+ default: withCtx(() => [
3466
+ createTextVNode(toDisplayString(unref(get)(item, unref(props).labelKey)), 1)
3467
+ ]),
3468
+ _: 2
3469
+ }, 1032, ["class"])) : isSelectItem(item) && item.type === "separator" ? (openBlock(), createBlock(unref(SelectSeparator_default), {
3470
+ key: 1,
3471
+ "data-slot": "separator",
3472
+ class: ui.value.separator({ class: [unref(props).ui?.separator, item.ui?.separator, item.class] })
3473
+ }, null, 8, ["class"])) : (openBlock(), createBlock(unref(SelectItem_default), {
3474
+ key: 2,
3475
+ "data-slot": "item",
3476
+ class: ui.value.item({ class: [unref(props).ui?.item, isSelectItem(item) && item.ui?.item, isSelectItem(item) && item.class] }),
3477
+ disabled: isSelectItem(item) && item.disabled,
3478
+ value: isSelectItem(item) ? unref(get)(item, unref(props).valueKey) : item,
3479
+ onSelect: ($event) => isSelectItem(item) && item.onSelect?.($event)
3480
+ }, {
3481
+ default: withCtx(() => [
3482
+ renderSlot(_ctx.$slots, "item", {
3483
+ item,
3484
+ index,
3485
+ ui: ui.value
3486
+ }, () => [
3487
+ renderSlot(_ctx.$slots, "item-leading", {
3488
+ item,
3489
+ index,
3490
+ ui: ui.value
3491
+ }, () => [
3492
+ isSelectItem(item) && item.icon ? (openBlock(), createBlock(_sfc_main$d, {
3493
+ key: 0,
3494
+ name: item.icon,
3495
+ "data-slot": "itemLeadingIcon",
3496
+ class: ui.value.itemLeadingIcon({ class: [unref(props).ui?.itemLeadingIcon, item.ui?.itemLeadingIcon] })
3497
+ }, null, 8, ["name", "class"])) : isSelectItem(item) && item.avatar ? (openBlock(), createBlock(_sfc_main$b, mergeProps({
3498
+ key: 1,
3499
+ size: item.ui?.itemLeadingAvatarSize || unref(props).ui?.itemLeadingAvatarSize || ui.value.itemLeadingAvatarSize()
3500
+ }, { ref_for: true }, item.avatar, {
3501
+ "data-slot": "itemLeadingAvatar",
3502
+ class: ui.value.itemLeadingAvatar({ class: [unref(props).ui?.itemLeadingAvatar, item.ui?.itemLeadingAvatar] })
3503
+ }), null, 16, ["size", "class"])) : isSelectItem(item) && item.chip ? (openBlock(), createBlock(_sfc_main$c, mergeProps({
3504
+ key: 2,
3505
+ size: item.ui?.itemLeadingChipSize || unref(props).ui?.itemLeadingChipSize || ui.value.itemLeadingChipSize(),
3506
+ inset: "",
3507
+ standalone: ""
3508
+ }, { ref_for: true }, item.chip, {
3509
+ "data-slot": "itemLeadingChip",
3510
+ class: ui.value.itemLeadingChip({ class: [unref(props).ui?.itemLeadingChip, item.ui?.itemLeadingChip] })
3511
+ }), null, 16, ["size", "class"])) : createCommentVNode("", true)
3512
+ ]),
3513
+ createVNode("span", {
3514
+ "data-slot": "itemWrapper",
3515
+ class: ui.value.itemWrapper({ class: [unref(props).ui?.itemWrapper, isSelectItem(item) && item.ui?.itemWrapper] })
3516
+ }, [
3517
+ createVNode(unref(SelectItemText_default), {
3518
+ "data-slot": "itemLabel",
3519
+ class: ui.value.itemLabel({ class: [unref(props).ui?.itemLabel, isSelectItem(item) && item.ui?.itemLabel] })
3520
+ }, {
3521
+ default: withCtx(() => [
3522
+ renderSlot(_ctx.$slots, "item-label", {
3523
+ item,
3524
+ index
3525
+ }, () => [
3526
+ createTextVNode(toDisplayString(isSelectItem(item) ? unref(get)(item, unref(props).labelKey) : item), 1)
3527
+ ])
3528
+ ]),
3529
+ _: 2
3530
+ }, 1032, ["class"]),
3531
+ isSelectItem(item) && (unref(get)(item, unref(props).descriptionKey) || !!slots["item-description"]) ? (openBlock(), createBlock("span", {
3532
+ key: 0,
3533
+ "data-slot": "itemDescription",
3534
+ class: ui.value.itemDescription({ class: [unref(props).ui?.itemDescription, isSelectItem(item) && item.ui?.itemDescription] })
3535
+ }, [
3536
+ renderSlot(_ctx.$slots, "item-description", {
3537
+ item,
3538
+ index
3539
+ }, () => [
3540
+ createTextVNode(toDisplayString(unref(get)(item, unref(props).descriptionKey)), 1)
3541
+ ])
3542
+ ], 2)) : createCommentVNode("", true)
3543
+ ], 2),
3544
+ createVNode("span", {
3545
+ "data-slot": "itemTrailing",
3546
+ class: ui.value.itemTrailing({ class: [unref(props).ui?.itemTrailing, isSelectItem(item) && item.ui?.itemTrailing] })
3547
+ }, [
3548
+ renderSlot(_ctx.$slots, "item-trailing", {
3549
+ item,
3550
+ index,
3551
+ ui: ui.value
3552
+ }),
3553
+ createVNode(unref(SelectItemIndicator_default), { "as-child": "" }, {
3554
+ default: withCtx(() => [
3555
+ createVNode(_sfc_main$d, {
3556
+ name: unref(props).selectedIcon || unref(appConfig).ui.icons.check,
3557
+ "data-slot": "itemTrailingIcon",
3558
+ class: ui.value.itemTrailingIcon({ class: [unref(props).ui?.itemTrailingIcon, isSelectItem(item) && item.ui?.itemTrailingIcon] })
3559
+ }, null, 8, ["name", "class"])
3560
+ ]),
3561
+ _: 2
3562
+ }, 1024)
3563
+ ], 2)
3564
+ ])
3565
+ ]),
3566
+ _: 2
3567
+ }, 1032, ["class", "disabled", "value", "onSelect"]))
3568
+ ], 64);
3569
+ }), 128))
3570
+ ]),
3571
+ _: 2
3572
+ }, 1032, ["class"]);
3573
+ }), 128))
3574
+ ]),
3575
+ _: 3
3576
+ }, 8, ["class"])),
3577
+ renderSlot(_ctx.$slots, "content-bottom"),
3578
+ !!unref(props).arrow ? (openBlock(), createBlock(unref(SelectArrow_default), mergeProps({ key: 0 }, arrowProps.value, {
3579
+ "data-slot": "arrow",
3580
+ class: ui.value.arrow({ class: unref(props).ui?.arrow })
3581
+ }), null, 16, ["class"])) : createCommentVNode("", true)
3582
+ ];
3583
+ }
3584
+ }),
3585
+ _: 2
3586
+ }, _parent4, _scopeId3));
3587
+ } else {
3588
+ return [
3589
+ createVNode(unref(SelectContent_default), mergeProps({
3590
+ "data-slot": "content",
3591
+ class: ui.value.content({ class: unref(props).ui?.content })
3592
+ }, contentProps.value), {
3593
+ default: withCtx(() => [
3594
+ renderSlot(_ctx.$slots, "content-top"),
3595
+ (openBlock(), createBlock(resolveDynamicComponent(isItemAligned.value ? unref(SelectViewport_default) : "div"), {
3596
+ ref_key: "viewportRef",
3597
+ ref: viewportRef,
3598
+ role: "presentation",
3599
+ "data-slot": "viewport",
3600
+ class: ui.value.viewport({ class: unref(props).ui?.viewport })
3601
+ }, {
3602
+ default: withCtx(() => [
3603
+ (openBlock(true), createBlock(Fragment, null, renderList(groups.value, (group, groupIndex) => {
3604
+ return openBlock(), createBlock(unref(SelectGroup_default), {
3605
+ key: `group-${groupIndex}`,
3606
+ "data-slot": "group",
3607
+ class: ui.value.group({ class: unref(props).ui?.group })
3608
+ }, {
3609
+ default: withCtx(() => [
3610
+ (openBlock(true), createBlock(Fragment, null, renderList(group, (item, index) => {
3611
+ return openBlock(), createBlock(Fragment, {
3612
+ key: `group-${groupIndex}-${index}`
3613
+ }, [
3614
+ isSelectItem(item) && item.type === "label" ? (openBlock(), createBlock(unref(SelectLabel_default), {
3615
+ key: 0,
3616
+ "data-slot": "label",
3617
+ class: ui.value.label({ class: [unref(props).ui?.label, item.ui?.label, item.class] })
3618
+ }, {
3619
+ default: withCtx(() => [
3620
+ createTextVNode(toDisplayString(unref(get)(item, unref(props).labelKey)), 1)
3621
+ ]),
3622
+ _: 2
3623
+ }, 1032, ["class"])) : isSelectItem(item) && item.type === "separator" ? (openBlock(), createBlock(unref(SelectSeparator_default), {
3624
+ key: 1,
3625
+ "data-slot": "separator",
3626
+ class: ui.value.separator({ class: [unref(props).ui?.separator, item.ui?.separator, item.class] })
3627
+ }, null, 8, ["class"])) : (openBlock(), createBlock(unref(SelectItem_default), {
3628
+ key: 2,
3629
+ "data-slot": "item",
3630
+ class: ui.value.item({ class: [unref(props).ui?.item, isSelectItem(item) && item.ui?.item, isSelectItem(item) && item.class] }),
3631
+ disabled: isSelectItem(item) && item.disabled,
3632
+ value: isSelectItem(item) ? unref(get)(item, unref(props).valueKey) : item,
3633
+ onSelect: ($event) => isSelectItem(item) && item.onSelect?.($event)
3634
+ }, {
3635
+ default: withCtx(() => [
3636
+ renderSlot(_ctx.$slots, "item", {
3637
+ item,
3638
+ index,
3639
+ ui: ui.value
3640
+ }, () => [
3641
+ renderSlot(_ctx.$slots, "item-leading", {
3642
+ item,
3643
+ index,
3644
+ ui: ui.value
3645
+ }, () => [
3646
+ isSelectItem(item) && item.icon ? (openBlock(), createBlock(_sfc_main$d, {
3647
+ key: 0,
3648
+ name: item.icon,
3649
+ "data-slot": "itemLeadingIcon",
3650
+ class: ui.value.itemLeadingIcon({ class: [unref(props).ui?.itemLeadingIcon, item.ui?.itemLeadingIcon] })
3651
+ }, null, 8, ["name", "class"])) : isSelectItem(item) && item.avatar ? (openBlock(), createBlock(_sfc_main$b, mergeProps({
3652
+ key: 1,
3653
+ size: item.ui?.itemLeadingAvatarSize || unref(props).ui?.itemLeadingAvatarSize || ui.value.itemLeadingAvatarSize()
3654
+ }, { ref_for: true }, item.avatar, {
3655
+ "data-slot": "itemLeadingAvatar",
3656
+ class: ui.value.itemLeadingAvatar({ class: [unref(props).ui?.itemLeadingAvatar, item.ui?.itemLeadingAvatar] })
3657
+ }), null, 16, ["size", "class"])) : isSelectItem(item) && item.chip ? (openBlock(), createBlock(_sfc_main$c, mergeProps({
3658
+ key: 2,
3659
+ size: item.ui?.itemLeadingChipSize || unref(props).ui?.itemLeadingChipSize || ui.value.itemLeadingChipSize(),
3660
+ inset: "",
3661
+ standalone: ""
3662
+ }, { ref_for: true }, item.chip, {
3663
+ "data-slot": "itemLeadingChip",
3664
+ class: ui.value.itemLeadingChip({ class: [unref(props).ui?.itemLeadingChip, item.ui?.itemLeadingChip] })
3665
+ }), null, 16, ["size", "class"])) : createCommentVNode("", true)
3666
+ ]),
3667
+ createVNode("span", {
3668
+ "data-slot": "itemWrapper",
3669
+ class: ui.value.itemWrapper({ class: [unref(props).ui?.itemWrapper, isSelectItem(item) && item.ui?.itemWrapper] })
3670
+ }, [
3671
+ createVNode(unref(SelectItemText_default), {
3672
+ "data-slot": "itemLabel",
3673
+ class: ui.value.itemLabel({ class: [unref(props).ui?.itemLabel, isSelectItem(item) && item.ui?.itemLabel] })
3674
+ }, {
3675
+ default: withCtx(() => [
3676
+ renderSlot(_ctx.$slots, "item-label", {
3677
+ item,
3678
+ index
3679
+ }, () => [
3680
+ createTextVNode(toDisplayString(isSelectItem(item) ? unref(get)(item, unref(props).labelKey) : item), 1)
3681
+ ])
3682
+ ]),
3683
+ _: 2
3684
+ }, 1032, ["class"]),
3685
+ isSelectItem(item) && (unref(get)(item, unref(props).descriptionKey) || !!slots["item-description"]) ? (openBlock(), createBlock("span", {
3686
+ key: 0,
3687
+ "data-slot": "itemDescription",
3688
+ class: ui.value.itemDescription({ class: [unref(props).ui?.itemDescription, isSelectItem(item) && item.ui?.itemDescription] })
3689
+ }, [
3690
+ renderSlot(_ctx.$slots, "item-description", {
3691
+ item,
3692
+ index
3693
+ }, () => [
3694
+ createTextVNode(toDisplayString(unref(get)(item, unref(props).descriptionKey)), 1)
3695
+ ])
3696
+ ], 2)) : createCommentVNode("", true)
3697
+ ], 2),
3698
+ createVNode("span", {
3699
+ "data-slot": "itemTrailing",
3700
+ class: ui.value.itemTrailing({ class: [unref(props).ui?.itemTrailing, isSelectItem(item) && item.ui?.itemTrailing] })
3701
+ }, [
3702
+ renderSlot(_ctx.$slots, "item-trailing", {
3703
+ item,
3704
+ index,
3705
+ ui: ui.value
3706
+ }),
3707
+ createVNode(unref(SelectItemIndicator_default), { "as-child": "" }, {
3708
+ default: withCtx(() => [
3709
+ createVNode(_sfc_main$d, {
3710
+ name: unref(props).selectedIcon || unref(appConfig).ui.icons.check,
3711
+ "data-slot": "itemTrailingIcon",
3712
+ class: ui.value.itemTrailingIcon({ class: [unref(props).ui?.itemTrailingIcon, isSelectItem(item) && item.ui?.itemTrailingIcon] })
3713
+ }, null, 8, ["name", "class"])
3714
+ ]),
3715
+ _: 2
3716
+ }, 1024)
3717
+ ], 2)
3718
+ ])
3719
+ ]),
3720
+ _: 2
3721
+ }, 1032, ["class", "disabled", "value", "onSelect"]))
3722
+ ], 64);
3723
+ }), 128))
3724
+ ]),
3725
+ _: 2
3726
+ }, 1032, ["class"]);
3727
+ }), 128))
3728
+ ]),
3729
+ _: 3
3730
+ }, 8, ["class"])),
3731
+ renderSlot(_ctx.$slots, "content-bottom"),
3732
+ !!unref(props).arrow ? (openBlock(), createBlock(unref(SelectArrow_default), mergeProps({ key: 0 }, arrowProps.value, {
3733
+ "data-slot": "arrow",
3734
+ class: ui.value.arrow({ class: unref(props).ui?.arrow })
3735
+ }), null, 16, ["class"])) : createCommentVNode("", true)
3736
+ ]),
3737
+ _: 3
3738
+ }, 16, ["class"])
3739
+ ];
3740
+ }
3741
+ }),
3742
+ _: 2
3743
+ }, _parent3, _scopeId2));
3744
+ } else {
3745
+ return [
3746
+ createVNode(unref(FieldGroupReset), null, {
3747
+ default: withCtx(() => [
3748
+ createVNode(unref(SelectContent_default), mergeProps({
3749
+ "data-slot": "content",
3750
+ class: ui.value.content({ class: unref(props).ui?.content })
3751
+ }, contentProps.value), {
3752
+ default: withCtx(() => [
3753
+ renderSlot(_ctx.$slots, "content-top"),
3754
+ (openBlock(), createBlock(resolveDynamicComponent(isItemAligned.value ? unref(SelectViewport_default) : "div"), {
3755
+ ref_key: "viewportRef",
3756
+ ref: viewportRef,
3757
+ role: "presentation",
3758
+ "data-slot": "viewport",
3759
+ class: ui.value.viewport({ class: unref(props).ui?.viewport })
3760
+ }, {
3761
+ default: withCtx(() => [
3762
+ (openBlock(true), createBlock(Fragment, null, renderList(groups.value, (group, groupIndex) => {
3763
+ return openBlock(), createBlock(unref(SelectGroup_default), {
3764
+ key: `group-${groupIndex}`,
3765
+ "data-slot": "group",
3766
+ class: ui.value.group({ class: unref(props).ui?.group })
3767
+ }, {
3768
+ default: withCtx(() => [
3769
+ (openBlock(true), createBlock(Fragment, null, renderList(group, (item, index) => {
3770
+ return openBlock(), createBlock(Fragment, {
3771
+ key: `group-${groupIndex}-${index}`
3772
+ }, [
3773
+ isSelectItem(item) && item.type === "label" ? (openBlock(), createBlock(unref(SelectLabel_default), {
3774
+ key: 0,
3775
+ "data-slot": "label",
3776
+ class: ui.value.label({ class: [unref(props).ui?.label, item.ui?.label, item.class] })
3777
+ }, {
3778
+ default: withCtx(() => [
3779
+ createTextVNode(toDisplayString(unref(get)(item, unref(props).labelKey)), 1)
3780
+ ]),
3781
+ _: 2
3782
+ }, 1032, ["class"])) : isSelectItem(item) && item.type === "separator" ? (openBlock(), createBlock(unref(SelectSeparator_default), {
3783
+ key: 1,
3784
+ "data-slot": "separator",
3785
+ class: ui.value.separator({ class: [unref(props).ui?.separator, item.ui?.separator, item.class] })
3786
+ }, null, 8, ["class"])) : (openBlock(), createBlock(unref(SelectItem_default), {
3787
+ key: 2,
3788
+ "data-slot": "item",
3789
+ class: ui.value.item({ class: [unref(props).ui?.item, isSelectItem(item) && item.ui?.item, isSelectItem(item) && item.class] }),
3790
+ disabled: isSelectItem(item) && item.disabled,
3791
+ value: isSelectItem(item) ? unref(get)(item, unref(props).valueKey) : item,
3792
+ onSelect: ($event) => isSelectItem(item) && item.onSelect?.($event)
3793
+ }, {
3794
+ default: withCtx(() => [
3795
+ renderSlot(_ctx.$slots, "item", {
3796
+ item,
3797
+ index,
3798
+ ui: ui.value
3799
+ }, () => [
3800
+ renderSlot(_ctx.$slots, "item-leading", {
3801
+ item,
3802
+ index,
3803
+ ui: ui.value
3804
+ }, () => [
3805
+ isSelectItem(item) && item.icon ? (openBlock(), createBlock(_sfc_main$d, {
3806
+ key: 0,
3807
+ name: item.icon,
3808
+ "data-slot": "itemLeadingIcon",
3809
+ class: ui.value.itemLeadingIcon({ class: [unref(props).ui?.itemLeadingIcon, item.ui?.itemLeadingIcon] })
3810
+ }, null, 8, ["name", "class"])) : isSelectItem(item) && item.avatar ? (openBlock(), createBlock(_sfc_main$b, mergeProps({
3811
+ key: 1,
3812
+ size: item.ui?.itemLeadingAvatarSize || unref(props).ui?.itemLeadingAvatarSize || ui.value.itemLeadingAvatarSize()
3813
+ }, { ref_for: true }, item.avatar, {
3814
+ "data-slot": "itemLeadingAvatar",
3815
+ class: ui.value.itemLeadingAvatar({ class: [unref(props).ui?.itemLeadingAvatar, item.ui?.itemLeadingAvatar] })
3816
+ }), null, 16, ["size", "class"])) : isSelectItem(item) && item.chip ? (openBlock(), createBlock(_sfc_main$c, mergeProps({
3817
+ key: 2,
3818
+ size: item.ui?.itemLeadingChipSize || unref(props).ui?.itemLeadingChipSize || ui.value.itemLeadingChipSize(),
3819
+ inset: "",
3820
+ standalone: ""
3821
+ }, { ref_for: true }, item.chip, {
3822
+ "data-slot": "itemLeadingChip",
3823
+ class: ui.value.itemLeadingChip({ class: [unref(props).ui?.itemLeadingChip, item.ui?.itemLeadingChip] })
3824
+ }), null, 16, ["size", "class"])) : createCommentVNode("", true)
3825
+ ]),
3826
+ createVNode("span", {
3827
+ "data-slot": "itemWrapper",
3828
+ class: ui.value.itemWrapper({ class: [unref(props).ui?.itemWrapper, isSelectItem(item) && item.ui?.itemWrapper] })
3829
+ }, [
3830
+ createVNode(unref(SelectItemText_default), {
3831
+ "data-slot": "itemLabel",
3832
+ class: ui.value.itemLabel({ class: [unref(props).ui?.itemLabel, isSelectItem(item) && item.ui?.itemLabel] })
3833
+ }, {
3834
+ default: withCtx(() => [
3835
+ renderSlot(_ctx.$slots, "item-label", {
3836
+ item,
3837
+ index
3838
+ }, () => [
3839
+ createTextVNode(toDisplayString(isSelectItem(item) ? unref(get)(item, unref(props).labelKey) : item), 1)
3840
+ ])
3841
+ ]),
3842
+ _: 2
3843
+ }, 1032, ["class"]),
3844
+ isSelectItem(item) && (unref(get)(item, unref(props).descriptionKey) || !!slots["item-description"]) ? (openBlock(), createBlock("span", {
3845
+ key: 0,
3846
+ "data-slot": "itemDescription",
3847
+ class: ui.value.itemDescription({ class: [unref(props).ui?.itemDescription, isSelectItem(item) && item.ui?.itemDescription] })
3848
+ }, [
3849
+ renderSlot(_ctx.$slots, "item-description", {
3850
+ item,
3851
+ index
3852
+ }, () => [
3853
+ createTextVNode(toDisplayString(unref(get)(item, unref(props).descriptionKey)), 1)
3854
+ ])
3855
+ ], 2)) : createCommentVNode("", true)
3856
+ ], 2),
3857
+ createVNode("span", {
3858
+ "data-slot": "itemTrailing",
3859
+ class: ui.value.itemTrailing({ class: [unref(props).ui?.itemTrailing, isSelectItem(item) && item.ui?.itemTrailing] })
3860
+ }, [
3861
+ renderSlot(_ctx.$slots, "item-trailing", {
3862
+ item,
3863
+ index,
3864
+ ui: ui.value
3865
+ }),
3866
+ createVNode(unref(SelectItemIndicator_default), { "as-child": "" }, {
3867
+ default: withCtx(() => [
3868
+ createVNode(_sfc_main$d, {
3869
+ name: unref(props).selectedIcon || unref(appConfig).ui.icons.check,
3870
+ "data-slot": "itemTrailingIcon",
3871
+ class: ui.value.itemTrailingIcon({ class: [unref(props).ui?.itemTrailingIcon, isSelectItem(item) && item.ui?.itemTrailingIcon] })
3872
+ }, null, 8, ["name", "class"])
3873
+ ]),
3874
+ _: 2
3875
+ }, 1024)
3876
+ ], 2)
3877
+ ])
3878
+ ]),
3879
+ _: 2
3880
+ }, 1032, ["class", "disabled", "value", "onSelect"]))
3881
+ ], 64);
3882
+ }), 128))
3883
+ ]),
3884
+ _: 2
3885
+ }, 1032, ["class"]);
3886
+ }), 128))
3887
+ ]),
3888
+ _: 3
3889
+ }, 8, ["class"])),
3890
+ renderSlot(_ctx.$slots, "content-bottom"),
3891
+ !!unref(props).arrow ? (openBlock(), createBlock(unref(SelectArrow_default), mergeProps({ key: 0 }, arrowProps.value, {
3892
+ "data-slot": "arrow",
3893
+ class: ui.value.arrow({ class: unref(props).ui?.arrow })
3894
+ }), null, 16, ["class"])) : createCommentVNode("", true)
3895
+ ]),
3896
+ _: 3
3897
+ }, 16, ["class"])
3898
+ ]),
3899
+ _: 3
3900
+ })
3901
+ ];
3902
+ }
3903
+ }),
3904
+ _: 2
3905
+ }, _parent2, _scopeId));
3906
+ } else {
3907
+ return [
3908
+ createVNode(unref(SelectTrigger_default), mergeProps({
3909
+ id: unref(id),
3910
+ ref_key: "triggerRef",
3911
+ ref: triggerRef,
3912
+ "data-slot": "base",
3913
+ class: ui.value.base({ class: [unref(props).ui?.base, unref(props).class] })
3914
+ }, { ..._ctx.$attrs, ...unref(ariaAttrs) }, {
3915
+ onClick: ($event) => onTriggerClick(open)
3916
+ }), {
3917
+ default: withCtx(() => [
3918
+ unref(isLeading) || !!unref(props).avatar || !!slots.leading ? (openBlock(), createBlock("span", {
3919
+ key: 0,
3920
+ "data-slot": "leading",
3921
+ class: ui.value.leading({ class: unref(props).ui?.leading })
3922
+ }, [
3923
+ renderSlot(_ctx.$slots, "leading", {
3924
+ modelValue,
3925
+ open,
3926
+ ui: ui.value
3927
+ }, () => [
3928
+ unref(isLeading) && unref(leadingIconName) ? (openBlock(), createBlock(_sfc_main$d, {
3929
+ key: 0,
3930
+ name: unref(leadingIconName),
3931
+ "data-slot": "leadingIcon",
3932
+ class: ui.value.leadingIcon({ class: unref(props).ui?.leadingIcon })
3933
+ }, null, 8, ["name", "class"])) : !!unref(props).avatar ? (openBlock(), createBlock(_sfc_main$b, mergeProps({
3934
+ key: 1,
3935
+ size: unref(props).ui?.itemLeadingAvatarSize || ui.value.itemLeadingAvatarSize()
3936
+ }, unref(props).avatar, {
3937
+ "data-slot": "itemLeadingAvatar",
3938
+ class: ui.value.itemLeadingAvatar({ class: unref(props).ui?.itemLeadingAvatar })
3939
+ }), null, 16, ["size", "class"])) : createCommentVNode("", true)
3940
+ ])
3941
+ ], 2)) : createCommentVNode("", true),
3942
+ (openBlock(true), createBlock(Fragment, null, renderList([displayValue(modelValue)], (displayedModelValue) => {
3943
+ return openBlock(), createBlock(unref(SelectValue_default), {
3944
+ key: displayedModelValue,
3945
+ "data-slot": displayedModelValue != null ? "value" : "placeholder",
3946
+ class: displayedModelValue != null ? ui.value.value({ class: unref(props).ui?.value }) : ui.value.placeholder({ class: unref(props).ui?.placeholder })
3947
+ }, {
3948
+ default: withCtx(() => [
3949
+ renderSlot(_ctx.$slots, "default", {
3950
+ modelValue,
3951
+ open,
3952
+ ui: ui.value
3953
+ }, () => [
3954
+ createTextVNode(toDisplayString(displayedModelValue ?? (unref(props).placeholder ?? " ")), 1)
3955
+ ])
3956
+ ]),
3957
+ _: 2
3958
+ }, 1032, ["data-slot", "class"]);
3959
+ }), 128)),
3960
+ unref(isTrailing) || !!slots.trailing ? (openBlock(), createBlock("span", {
3961
+ key: 1,
3962
+ "data-slot": "trailing",
3963
+ class: ui.value.trailing({ class: unref(props).ui?.trailing })
3964
+ }, [
3965
+ renderSlot(_ctx.$slots, "trailing", {
3966
+ modelValue,
3967
+ open,
3968
+ ui: ui.value
3969
+ }, () => [
3970
+ unref(trailingIconName) ? (openBlock(), createBlock(_sfc_main$d, {
3971
+ key: 0,
3972
+ name: unref(trailingIconName),
3973
+ "data-slot": "trailingIcon",
3974
+ class: ui.value.trailingIcon({ class: unref(props).ui?.trailingIcon })
3975
+ }, null, 8, ["name", "class"])) : createCommentVNode("", true)
3976
+ ])
3977
+ ], 2)) : createCommentVNode("", true)
3978
+ ]),
3979
+ _: 2
3980
+ }, 1040, ["id", "class", "onClick"]),
3981
+ createVNode(unref(SelectPortal_default), unref(portalProps), {
3982
+ default: withCtx(() => [
3983
+ createVNode(unref(FieldGroupReset), null, {
3984
+ default: withCtx(() => [
3985
+ createVNode(unref(SelectContent_default), mergeProps({
3986
+ "data-slot": "content",
3987
+ class: ui.value.content({ class: unref(props).ui?.content })
3988
+ }, contentProps.value), {
3989
+ default: withCtx(() => [
3990
+ renderSlot(_ctx.$slots, "content-top"),
3991
+ (openBlock(), createBlock(resolveDynamicComponent(isItemAligned.value ? unref(SelectViewport_default) : "div"), {
3992
+ ref_key: "viewportRef",
3993
+ ref: viewportRef,
3994
+ role: "presentation",
3995
+ "data-slot": "viewport",
3996
+ class: ui.value.viewport({ class: unref(props).ui?.viewport })
3997
+ }, {
3998
+ default: withCtx(() => [
3999
+ (openBlock(true), createBlock(Fragment, null, renderList(groups.value, (group, groupIndex) => {
4000
+ return openBlock(), createBlock(unref(SelectGroup_default), {
4001
+ key: `group-${groupIndex}`,
4002
+ "data-slot": "group",
4003
+ class: ui.value.group({ class: unref(props).ui?.group })
4004
+ }, {
4005
+ default: withCtx(() => [
4006
+ (openBlock(true), createBlock(Fragment, null, renderList(group, (item, index) => {
4007
+ return openBlock(), createBlock(Fragment, {
4008
+ key: `group-${groupIndex}-${index}`
4009
+ }, [
4010
+ isSelectItem(item) && item.type === "label" ? (openBlock(), createBlock(unref(SelectLabel_default), {
4011
+ key: 0,
4012
+ "data-slot": "label",
4013
+ class: ui.value.label({ class: [unref(props).ui?.label, item.ui?.label, item.class] })
4014
+ }, {
4015
+ default: withCtx(() => [
4016
+ createTextVNode(toDisplayString(unref(get)(item, unref(props).labelKey)), 1)
4017
+ ]),
4018
+ _: 2
4019
+ }, 1032, ["class"])) : isSelectItem(item) && item.type === "separator" ? (openBlock(), createBlock(unref(SelectSeparator_default), {
4020
+ key: 1,
4021
+ "data-slot": "separator",
4022
+ class: ui.value.separator({ class: [unref(props).ui?.separator, item.ui?.separator, item.class] })
4023
+ }, null, 8, ["class"])) : (openBlock(), createBlock(unref(SelectItem_default), {
4024
+ key: 2,
4025
+ "data-slot": "item",
4026
+ class: ui.value.item({ class: [unref(props).ui?.item, isSelectItem(item) && item.ui?.item, isSelectItem(item) && item.class] }),
4027
+ disabled: isSelectItem(item) && item.disabled,
4028
+ value: isSelectItem(item) ? unref(get)(item, unref(props).valueKey) : item,
4029
+ onSelect: ($event) => isSelectItem(item) && item.onSelect?.($event)
4030
+ }, {
4031
+ default: withCtx(() => [
4032
+ renderSlot(_ctx.$slots, "item", {
4033
+ item,
4034
+ index,
4035
+ ui: ui.value
4036
+ }, () => [
4037
+ renderSlot(_ctx.$slots, "item-leading", {
4038
+ item,
4039
+ index,
4040
+ ui: ui.value
4041
+ }, () => [
4042
+ isSelectItem(item) && item.icon ? (openBlock(), createBlock(_sfc_main$d, {
4043
+ key: 0,
4044
+ name: item.icon,
4045
+ "data-slot": "itemLeadingIcon",
4046
+ class: ui.value.itemLeadingIcon({ class: [unref(props).ui?.itemLeadingIcon, item.ui?.itemLeadingIcon] })
4047
+ }, null, 8, ["name", "class"])) : isSelectItem(item) && item.avatar ? (openBlock(), createBlock(_sfc_main$b, mergeProps({
4048
+ key: 1,
4049
+ size: item.ui?.itemLeadingAvatarSize || unref(props).ui?.itemLeadingAvatarSize || ui.value.itemLeadingAvatarSize()
4050
+ }, { ref_for: true }, item.avatar, {
4051
+ "data-slot": "itemLeadingAvatar",
4052
+ class: ui.value.itemLeadingAvatar({ class: [unref(props).ui?.itemLeadingAvatar, item.ui?.itemLeadingAvatar] })
4053
+ }), null, 16, ["size", "class"])) : isSelectItem(item) && item.chip ? (openBlock(), createBlock(_sfc_main$c, mergeProps({
4054
+ key: 2,
4055
+ size: item.ui?.itemLeadingChipSize || unref(props).ui?.itemLeadingChipSize || ui.value.itemLeadingChipSize(),
4056
+ inset: "",
4057
+ standalone: ""
4058
+ }, { ref_for: true }, item.chip, {
4059
+ "data-slot": "itemLeadingChip",
4060
+ class: ui.value.itemLeadingChip({ class: [unref(props).ui?.itemLeadingChip, item.ui?.itemLeadingChip] })
4061
+ }), null, 16, ["size", "class"])) : createCommentVNode("", true)
4062
+ ]),
4063
+ createVNode("span", {
4064
+ "data-slot": "itemWrapper",
4065
+ class: ui.value.itemWrapper({ class: [unref(props).ui?.itemWrapper, isSelectItem(item) && item.ui?.itemWrapper] })
4066
+ }, [
4067
+ createVNode(unref(SelectItemText_default), {
4068
+ "data-slot": "itemLabel",
4069
+ class: ui.value.itemLabel({ class: [unref(props).ui?.itemLabel, isSelectItem(item) && item.ui?.itemLabel] })
4070
+ }, {
4071
+ default: withCtx(() => [
4072
+ renderSlot(_ctx.$slots, "item-label", {
4073
+ item,
4074
+ index
4075
+ }, () => [
4076
+ createTextVNode(toDisplayString(isSelectItem(item) ? unref(get)(item, unref(props).labelKey) : item), 1)
4077
+ ])
4078
+ ]),
4079
+ _: 2
4080
+ }, 1032, ["class"]),
4081
+ isSelectItem(item) && (unref(get)(item, unref(props).descriptionKey) || !!slots["item-description"]) ? (openBlock(), createBlock("span", {
4082
+ key: 0,
4083
+ "data-slot": "itemDescription",
4084
+ class: ui.value.itemDescription({ class: [unref(props).ui?.itemDescription, isSelectItem(item) && item.ui?.itemDescription] })
4085
+ }, [
4086
+ renderSlot(_ctx.$slots, "item-description", {
4087
+ item,
4088
+ index
4089
+ }, () => [
4090
+ createTextVNode(toDisplayString(unref(get)(item, unref(props).descriptionKey)), 1)
4091
+ ])
4092
+ ], 2)) : createCommentVNode("", true)
4093
+ ], 2),
4094
+ createVNode("span", {
4095
+ "data-slot": "itemTrailing",
4096
+ class: ui.value.itemTrailing({ class: [unref(props).ui?.itemTrailing, isSelectItem(item) && item.ui?.itemTrailing] })
4097
+ }, [
4098
+ renderSlot(_ctx.$slots, "item-trailing", {
4099
+ item,
4100
+ index,
4101
+ ui: ui.value
4102
+ }),
4103
+ createVNode(unref(SelectItemIndicator_default), { "as-child": "" }, {
4104
+ default: withCtx(() => [
4105
+ createVNode(_sfc_main$d, {
4106
+ name: unref(props).selectedIcon || unref(appConfig).ui.icons.check,
4107
+ "data-slot": "itemTrailingIcon",
4108
+ class: ui.value.itemTrailingIcon({ class: [unref(props).ui?.itemTrailingIcon, isSelectItem(item) && item.ui?.itemTrailingIcon] })
4109
+ }, null, 8, ["name", "class"])
4110
+ ]),
4111
+ _: 2
4112
+ }, 1024)
4113
+ ], 2)
4114
+ ])
4115
+ ]),
4116
+ _: 2
4117
+ }, 1032, ["class", "disabled", "value", "onSelect"]))
4118
+ ], 64);
4119
+ }), 128))
4120
+ ]),
4121
+ _: 2
4122
+ }, 1032, ["class"]);
4123
+ }), 128))
4124
+ ]),
4125
+ _: 3
4126
+ }, 8, ["class"])),
4127
+ renderSlot(_ctx.$slots, "content-bottom"),
4128
+ !!unref(props).arrow ? (openBlock(), createBlock(unref(SelectArrow_default), mergeProps({ key: 0 }, arrowProps.value, {
4129
+ "data-slot": "arrow",
4130
+ class: ui.value.arrow({ class: unref(props).ui?.arrow })
4131
+ }), null, 16, ["class"])) : createCommentVNode("", true)
4132
+ ]),
4133
+ _: 3
4134
+ }, 16, ["class"])
4135
+ ]),
4136
+ _: 3
4137
+ })
4138
+ ]),
4139
+ _: 3
4140
+ }, 16)
4141
+ ];
4142
+ }
4143
+ }),
4144
+ _: 3
4145
+ }, _parent));
4146
+ };
4147
+ }
4148
+ });
4149
+ const _sfc_setup$1 = _sfc_main$1.setup;
4150
+ _sfc_main$1.setup = (props, ctx) => {
4151
+ const ssrContext = useSSRContext();
4152
+ (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("../node_modules/.pnpm/@nuxt+ui@4.9.0_fc567bb539fc22c96f06ec9e35286506/node_modules/@nuxt/ui/dist/runtime/components/Select.vue");
4153
+ return _sfc_setup$1 ? _sfc_setup$1(props, ctx) : void 0;
4154
+ };
4155
+ const _sfc_main = /* @__PURE__ */ defineComponent({
4156
+ __name: "EntityInspector",
4157
+ __ssrInlineRender: true,
4158
+ props: {
4159
+ open: { type: Boolean },
4160
+ entityId: {},
4161
+ scenarioId: {}
4162
+ },
4163
+ emits: ["update:open"],
4164
+ setup(__props, { emit: __emit }) {
4165
+ const props = __props;
4166
+ const emit = __emit;
4167
+ const { actorById, domainById, journeyById, scenarioKindById, scenariosByJourney, domainColor } = useReport();
4168
+ const activeTab = ref("overview");
4169
+ const journey = computed(() => props.entityId ? journeyById.value[props.entityId] || null : null);
4170
+ const tabs = computed(() => journey.value ? [
4171
+ { id: "overview", label: "Overview", icon: "i-lucide-info" },
4172
+ { id: "scenarios", label: `Scenarios (${scenariosByJourney.value[journey.value.id]?.length || 0})`, icon: "i-lucide-list-checks" }
4173
+ ] : []);
4174
+ watch(() => [props.entityId, props.scenarioId], () => {
4175
+ activeTab.value = props.scenarioId ? "scenarios" : "overview";
4176
+ });
4177
+ return (_ctx, _push, _parent, _attrs) => {
4178
+ const _component_USlideover = _sfc_main$3;
4179
+ const _component_UBadge = _sfc_main$4;
4180
+ const _component_UButton = _sfc_main$8;
4181
+ const _component_UIcon = _sfc_main$d;
4182
+ _push(ssrRenderComponent(_component_USlideover, mergeProps({
4183
+ open: __props.open,
4184
+ title: unref(journey)?.title || "Journey details",
4185
+ description: unref(journey)?.summary || "",
4186
+ ui: { content: "max-w-2xl" },
4187
+ "onUpdate:open": ($event) => emit("update:open", $event)
4188
+ }, _attrs), {
4189
+ body: withCtx((_, _push2, _parent2, _scopeId) => {
4190
+ if (_push2) {
4191
+ if (unref(journey)) {
4192
+ _push2(`<div class="inspector" style="${ssrRenderStyle({ "--entity-color": unref(domainColor)(unref(journey).domainId) })}"${_scopeId}><div class="inspector-context"${_scopeId}>`);
4193
+ _push2(ssrRenderComponent(_component_UBadge, {
4194
+ color: "neutral",
4195
+ variant: "subtle"
4196
+ }, {
4197
+ default: withCtx((_2, _push3, _parent3, _scopeId2) => {
4198
+ if (_push3) {
4199
+ _push3(`${ssrInterpolate(unref(domainById)[unref(journey).domainId].name)}`);
4200
+ } else {
4201
+ return [
4202
+ createTextVNode(toDisplayString(unref(domainById)[unref(journey).domainId].name), 1)
4203
+ ];
4204
+ }
4205
+ }),
4206
+ _: 1
4207
+ }, _parent2, _scopeId));
4208
+ _push2(`<span${_scopeId}>${ssrInterpolate(unref(journey).actorIds.map((id) => unref(actorById)[id].name).join(" · "))}</span></div><div class="inspector-tabs"${_scopeId}><!--[-->`);
4209
+ ssrRenderList(unref(tabs), (tab) => {
4210
+ _push2(ssrRenderComponent(_component_UButton, {
4211
+ key: tab.id,
4212
+ icon: tab.icon,
4213
+ label: tab.label,
4214
+ variant: unref(activeTab) === tab.id ? "soft" : "ghost",
4215
+ color: unref(activeTab) === tab.id ? "primary" : "neutral",
4216
+ size: "sm",
4217
+ onClick: () => {
4218
+ activeTab.value = tab.id;
4219
+ }
4220
+ }, null, _parent2, _scopeId));
4221
+ });
4222
+ _push2(`<!--]--></div>`);
4223
+ if (unref(activeTab) === "overview") {
4224
+ _push2(`<section class="inspector-section"${_scopeId}><div class="detail-block"${_scopeId}><span class="detail-label"${_scopeId}>Entry points</span><div class="token-list"${_scopeId}><!--[-->`);
4225
+ ssrRenderList(unref(journey).entryPoints, (entry) => {
4226
+ _push2(`<code${_scopeId}>${ssrInterpolate(entry.type)} · ${ssrInterpolate(entry.path)}</code>`);
4227
+ });
4228
+ _push2(`<!--]--></div></div><div class="detail-block"${_scopeId}><span class="detail-label"${_scopeId}>Repository evidence</span><div class="source-paths"${_scopeId}><!--[-->`);
4229
+ ssrRenderList(unref(journey).codeRefs, (reference) => {
4230
+ _push2(`<code${_scopeId}>${ssrInterpolate(reference.path)}`);
4231
+ if (reference.symbol) {
4232
+ _push2(`<!--[--> · ${ssrInterpolate(reference.symbol)}<!--]-->`);
4233
+ } else {
4234
+ _push2(`<!---->`);
4235
+ }
4236
+ _push2(`</code>`);
4237
+ });
4238
+ _push2(`<!--]--></div></div>`);
4239
+ _push2(ssrRenderComponent(_component_UButton, {
4240
+ to: { path: "/topology", query: { mode: "trace", journey: unref(journey).id } },
4241
+ icon: "i-lucide-git-fork",
4242
+ label: "Trace this journey",
4243
+ block: ""
4244
+ }, null, _parent2, _scopeId));
4245
+ _push2(`</section>`);
4246
+ } else {
4247
+ _push2(`<section class="inspector-section scenario-stack"${_scopeId}><!--[-->`);
4248
+ ssrRenderList(unref(scenariosByJourney)[unref(journey).id], (scenario) => {
4249
+ _push2(`<details class="scenario-card"${ssrIncludeBooleanAttr(scenario.id === __props.scenarioId) ? " open" : ""}${_scopeId}><summary${_scopeId}><span${_scopeId}><small${_scopeId}>${ssrInterpolate(unref(scenarioKindById)[scenario.kindId].name)}</small><strong${_scopeId}>${ssrInterpolate(scenario.title)}</strong></span>`);
4250
+ _push2(ssrRenderComponent(_component_UIcon, {
4251
+ name: "i-lucide-chevron-down",
4252
+ "aria-hidden": "true"
4253
+ }, null, _parent2, _scopeId));
4254
+ _push2(`</summary><div class="scenario-body"${_scopeId}><p${_scopeId}><span class="detail-label"${_scopeId}>Trigger</span>${ssrInterpolate(scenario.trigger)}</p><ol class="step-list"${_scopeId}><!--[-->`);
4255
+ ssrRenderList(scenario.steps, (step, index) => {
4256
+ _push2(`<li${_scopeId}><span${_scopeId}>${ssrInterpolate(index + 1)}</span><p${_scopeId}>${ssrInterpolate(step)}</p></li>`);
4257
+ });
4258
+ _push2(`<!--]--></ol><p${_scopeId}><span class="detail-label"${_scopeId}>Outcome</span>${ssrInterpolate(scenario.outcome)}</p>`);
4259
+ if (scenario.edgeCases.length) {
4260
+ _push2(`<div${_scopeId}><span class="detail-label"${_scopeId}>Edge cases</span><ul${_scopeId}><!--[-->`);
4261
+ ssrRenderList(scenario.edgeCases, (edge) => {
4262
+ _push2(`<li${_scopeId}>${ssrInterpolate(edge)}</li>`);
4263
+ });
4264
+ _push2(`<!--]--></ul></div>`);
4265
+ } else {
4266
+ _push2(`<!---->`);
4267
+ }
4268
+ _push2(`</div></details>`);
4269
+ });
4270
+ _push2(`<!--]--></section>`);
4271
+ }
4272
+ _push2(`</div>`);
4273
+ } else {
4274
+ _push2(`<!---->`);
4275
+ }
4276
+ } else {
4277
+ return [
4278
+ unref(journey) ? (openBlock(), createBlock("div", {
4279
+ key: 0,
4280
+ class: "inspector",
4281
+ style: { "--entity-color": unref(domainColor)(unref(journey).domainId) }
4282
+ }, [
4283
+ createVNode("div", { class: "inspector-context" }, [
4284
+ createVNode(_component_UBadge, {
4285
+ color: "neutral",
4286
+ variant: "subtle"
4287
+ }, {
4288
+ default: withCtx(() => [
4289
+ createTextVNode(toDisplayString(unref(domainById)[unref(journey).domainId].name), 1)
4290
+ ]),
4291
+ _: 1
4292
+ }),
4293
+ createVNode("span", null, toDisplayString(unref(journey).actorIds.map((id) => unref(actorById)[id].name).join(" · ")), 1)
4294
+ ]),
4295
+ createVNode("div", { class: "inspector-tabs" }, [
4296
+ (openBlock(true), createBlock(Fragment, null, renderList(unref(tabs), (tab) => {
4297
+ return openBlock(), createBlock(_component_UButton, {
4298
+ key: tab.id,
4299
+ icon: tab.icon,
4300
+ label: tab.label,
4301
+ variant: unref(activeTab) === tab.id ? "soft" : "ghost",
4302
+ color: unref(activeTab) === tab.id ? "primary" : "neutral",
4303
+ size: "sm",
4304
+ onClick: () => {
4305
+ activeTab.value = tab.id;
4306
+ }
4307
+ }, null, 8, ["icon", "label", "variant", "color", "onClick"]);
4308
+ }), 128))
4309
+ ]),
4310
+ unref(activeTab) === "overview" ? (openBlock(), createBlock("section", {
4311
+ key: 0,
4312
+ class: "inspector-section"
4313
+ }, [
4314
+ createVNode("div", { class: "detail-block" }, [
4315
+ createVNode("span", { class: "detail-label" }, "Entry points"),
4316
+ createVNode("div", { class: "token-list" }, [
4317
+ (openBlock(true), createBlock(Fragment, null, renderList(unref(journey).entryPoints, (entry) => {
4318
+ return openBlock(), createBlock("code", {
4319
+ key: `${entry.type}:${entry.path}`
4320
+ }, toDisplayString(entry.type) + " · " + toDisplayString(entry.path), 1);
4321
+ }), 128))
4322
+ ])
4323
+ ]),
4324
+ createVNode("div", { class: "detail-block" }, [
4325
+ createVNode("span", { class: "detail-label" }, "Repository evidence"),
4326
+ createVNode("div", { class: "source-paths" }, [
4327
+ (openBlock(true), createBlock(Fragment, null, renderList(unref(journey).codeRefs, (reference) => {
4328
+ return openBlock(), createBlock("code", {
4329
+ key: `${reference.path}:${reference.symbol}`
4330
+ }, [
4331
+ createTextVNode(toDisplayString(reference.path), 1),
4332
+ reference.symbol ? (openBlock(), createBlock(Fragment, { key: 0 }, [
4333
+ createTextVNode(" · " + toDisplayString(reference.symbol), 1)
4334
+ ], 64)) : createCommentVNode("", true)
4335
+ ]);
4336
+ }), 128))
4337
+ ])
4338
+ ]),
4339
+ createVNode(_component_UButton, {
4340
+ to: { path: "/topology", query: { mode: "trace", journey: unref(journey).id } },
4341
+ icon: "i-lucide-git-fork",
4342
+ label: "Trace this journey",
4343
+ block: ""
4344
+ }, null, 8, ["to"])
4345
+ ])) : (openBlock(), createBlock("section", {
4346
+ key: 1,
4347
+ class: "inspector-section scenario-stack"
4348
+ }, [
4349
+ (openBlock(true), createBlock(Fragment, null, renderList(unref(scenariosByJourney)[unref(journey).id], (scenario) => {
4350
+ return openBlock(), createBlock("details", {
4351
+ key: scenario.id,
4352
+ class: "scenario-card",
4353
+ open: scenario.id === __props.scenarioId
4354
+ }, [
4355
+ createVNode("summary", null, [
4356
+ createVNode("span", null, [
4357
+ createVNode("small", null, toDisplayString(unref(scenarioKindById)[scenario.kindId].name), 1),
4358
+ createVNode("strong", null, toDisplayString(scenario.title), 1)
4359
+ ]),
4360
+ createVNode(_component_UIcon, {
4361
+ name: "i-lucide-chevron-down",
4362
+ "aria-hidden": "true"
4363
+ })
4364
+ ]),
4365
+ createVNode("div", { class: "scenario-body" }, [
4366
+ createVNode("p", null, [
4367
+ createVNode("span", { class: "detail-label" }, "Trigger"),
4368
+ createTextVNode(toDisplayString(scenario.trigger), 1)
4369
+ ]),
4370
+ createVNode("ol", { class: "step-list" }, [
4371
+ (openBlock(true), createBlock(Fragment, null, renderList(scenario.steps, (step, index) => {
4372
+ return openBlock(), createBlock("li", { key: step }, [
4373
+ createVNode("span", null, toDisplayString(index + 1), 1),
4374
+ createVNode("p", null, toDisplayString(step), 1)
4375
+ ]);
4376
+ }), 128))
4377
+ ]),
4378
+ createVNode("p", null, [
4379
+ createVNode("span", { class: "detail-label" }, "Outcome"),
4380
+ createTextVNode(toDisplayString(scenario.outcome), 1)
4381
+ ]),
4382
+ scenario.edgeCases.length ? (openBlock(), createBlock("div", { key: 0 }, [
4383
+ createVNode("span", { class: "detail-label" }, "Edge cases"),
4384
+ createVNode("ul", null, [
4385
+ (openBlock(true), createBlock(Fragment, null, renderList(scenario.edgeCases, (edge) => {
4386
+ return openBlock(), createBlock("li", { key: edge }, toDisplayString(edge), 1);
4387
+ }), 128))
4388
+ ])
4389
+ ])) : createCommentVNode("", true)
4390
+ ])
4391
+ ], 8, ["open"]);
4392
+ }), 128))
4393
+ ]))
4394
+ ], 4)) : createCommentVNode("", true)
4395
+ ];
4396
+ }
4397
+ }),
4398
+ _: 1
4399
+ }, _parent));
4400
+ };
4401
+ }
4402
+ });
4403
+ const _sfc_setup = _sfc_main.setup;
4404
+ _sfc_main.setup = (props, ctx) => {
4405
+ const ssrContext = useSSRContext();
4406
+ (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/product/EntityInspector.vue");
4407
+ return _sfc_setup ? _sfc_setup(props, ctx) : void 0;
4408
+ };
4409
+ const EntityInspector = Object.assign(_sfc_main, { __name: "ProductEntityInspector" });
4410
+
4411
+ export { EntityInspector as E, _sfc_main$2 as _, _sfc_main$1 as a };
4412
+ //# sourceMappingURL=EntityInspector-fTjbuYoq.mjs.map