@8wave/ai-elements 0.68.0 → 0.69.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/_chunks/{PkStreamingMarkdown-D3MJ5dfu.js → PkStreamingMarkdown-C0BpOvli.js} +2 -2
- package/dist/_chunks/{PkStreamingMarkdown-D3MJ5dfu.js.map → PkStreamingMarkdown-C0BpOvli.js.map} +1 -1
- package/dist/_chunks/{PkToolShowArtifact-BFe_MhNr.js → PkToolShowArtifact-DzNIkKvZ.js} +3 -3
- package/dist/_chunks/{PkToolShowArtifact-BFe_MhNr.js.map → PkToolShowArtifact-DzNIkKvZ.js.map} +1 -1
- package/dist/_chunks/{PkToolShowLocation-DN57lKN1.js → PkToolShowLocation-BsBiA4jV.js} +2 -2
- package/dist/_chunks/{PkToolShowLocation-DN57lKN1.js.map → PkToolShowLocation-BsBiA4jV.js.map} +1 -1
- package/dist/_chunks/src-BRYn66N3.js.map +1 -1
- package/dist/_chunks/{vue-leaflet.es-7LObg4WN.js → vue-leaflet.es-BT-uRmMx.js} +5 -5
- package/dist/_chunks/{vue-leaflet.es-7LObg4WN.js.map → vue-leaflet.es-BT-uRmMx.js.map} +1 -1
- package/dist/ai-elements.es.js +293 -299
- package/dist/ai-elements.es.js.map +1 -1
- package/dist-vue/PkChatbot.js +1 -1
- package/dist-vue/PkChatbotMessages.js +1 -1
- package/dist-vue/PkChatbotViewChat.js +1 -1
- package/dist-vue/PkChatbotViewConversations.js +1 -1
- package/dist-vue/PkChatbotViewProfile.js +1 -1
- package/dist-vue/_chunks/{PkChatbot-C_ASB2zq.js → PkChatbot-Cy7p5UI_.js} +5 -5
- package/dist-vue/_chunks/{PkChatbot-C_ASB2zq.js.map → PkChatbot-Cy7p5UI_.js.map} +1 -1
- package/dist-vue/_chunks/{PkChatbotMessages-CQdxH86L.js → PkChatbotMessages-C7-ZtU0-.js} +11 -11
- package/dist-vue/_chunks/{PkChatbotMessages-CQdxH86L.js.map → PkChatbotMessages-C7-ZtU0-.js.map} +1 -1
- package/dist-vue/_chunks/{PkChatbotViewChat-DHOeNxnR.js → PkChatbotViewChat-EWotdJkz.js} +3 -3
- package/dist-vue/_chunks/{PkChatbotViewChat-DHOeNxnR.js.map → PkChatbotViewChat-EWotdJkz.js.map} +1 -1
- package/dist-vue/_chunks/{PkChatbotViewConversations-DFv_8-8K.js → PkChatbotViewConversations-Ct0TbDrg.js} +2 -2
- package/dist-vue/_chunks/{PkChatbotViewConversations-DFv_8-8K.js.map → PkChatbotViewConversations-Ct0TbDrg.js.map} +1 -1
- package/dist-vue/_chunks/{PkChatbotViewProfile-BUj0YnIi.js → PkChatbotViewProfile-BhdCxVSX.js} +2 -2
- package/dist-vue/_chunks/{PkChatbotViewProfile-BUj0YnIi.js.map → PkChatbotViewProfile-BhdCxVSX.js.map} +1 -1
- package/dist-vue/_chunks/{PkToolShowArtifact-DIw-_JPA.js → PkToolShowArtifact-pTS7wzhw.js} +2 -2
- package/dist-vue/_chunks/{PkToolShowArtifact-DIw-_JPA.js.map → PkToolShowArtifact-pTS7wzhw.js.map} +1 -1
- package/dist-vue/_chunks/{PkToolShowCalendarEvent-ZZM8p7wu.js → PkToolShowCalendarEvent-DQ--fzwb.js} +2 -2
- package/dist-vue/_chunks/{PkToolShowCalendarEvent-ZZM8p7wu.js.map → PkToolShowCalendarEvent-DQ--fzwb.js.map} +1 -1
- package/dist-vue/_chunks/{PkToolShowComparison-7akNsf1w.js → PkToolShowComparison-CzRUrjbP.js} +2 -2
- package/dist-vue/_chunks/{PkToolShowComparison-7akNsf1w.js.map → PkToolShowComparison-CzRUrjbP.js.map} +1 -1
- package/dist-vue/_chunks/{PkToolShowEmail-CpiAbmr0.js → PkToolShowEmail-htn0ivwY.js} +2 -2
- package/dist-vue/_chunks/{PkToolShowEmail-CpiAbmr0.js.map → PkToolShowEmail-htn0ivwY.js.map} +1 -1
- package/dist-vue/_chunks/{PkToolShowImageGallery-jY7iYqTv.js → PkToolShowImageGallery-CpU183SC.js} +2 -2
- package/dist-vue/_chunks/{PkToolShowImageGallery-jY7iYqTv.js.map → PkToolShowImageGallery-CpU183SC.js.map} +1 -1
- package/dist-vue/_chunks/{PkToolShowLocation-BeOkj0Q2.js → PkToolShowLocation-DSZvW68g.js} +2 -2
- package/dist-vue/_chunks/{PkToolShowLocation-BeOkj0Q2.js.map → PkToolShowLocation-DSZvW68g.js.map} +1 -1
- package/dist-vue/_chunks/{PkToolShowMessage-AS8VNcYP.js → PkToolShowMessage-DtGDm3pq.js} +2 -2
- package/dist-vue/_chunks/{PkToolShowMessage-AS8VNcYP.js.map → PkToolShowMessage-DtGDm3pq.js.map} +1 -1
- package/dist-vue/_chunks/{PkToolShowProductList-FEq8sFxW.js → PkToolShowProductList-BlkUdbtV.js} +2 -2
- package/dist-vue/_chunks/{PkToolShowProductList-FEq8sFxW.js.map → PkToolShowProductList-BlkUdbtV.js.map} +1 -1
- package/dist-vue/_chunks/{PkToolShowQrCode-DAt8tBHK.js → PkToolShowQrCode-BUyhM_MN.js} +2 -2
- package/dist-vue/_chunks/{PkToolShowQrCode-DAt8tBHK.js.map → PkToolShowQrCode-BUyhM_MN.js.map} +1 -1
- package/dist-vue/_chunks/{PkToolShowWebPages-jA5eZRdi.js → PkToolShowWebPages-BQp9A4vb.js} +2 -2
- package/dist-vue/_chunks/{PkToolShowWebPages-jA5eZRdi.js.map → PkToolShowWebPages-BQp9A4vb.js.map} +1 -1
- package/dist-vue/_chunks/{dist-C-yeiSHm.js → dist-BHuX2VvC.js} +2 -2
- package/dist-vue/_chunks/{dist-C-yeiSHm.js.map → dist-BHuX2VvC.js.map} +1 -1
- package/dist-vue/_chunks/{dist-D2-23M8l.js → dist-BWXfA4NS.js} +4 -4
- package/dist-vue/_chunks/{dist-D2-23M8l.js.map → dist-BWXfA4NS.js.map} +1 -1
- package/dist-vue/_chunks/{dist-DJ_vDk0q.js → dist-CAXUIcdd.js} +3 -3
- package/dist-vue/_chunks/{dist-DJ_vDk0q.js.map → dist-CAXUIcdd.js.map} +1 -1
- package/dist-vue/_chunks/{dist-C38fHUMa.js → dist-D-VT7gvP.js} +2 -2
- package/dist-vue/_chunks/{dist-C38fHUMa.js.map → dist-D-VT7gvP.js.map} +1 -1
- package/dist-vue/_chunks/{dist-BrsWoii-.js → dist-DEe8jwtO.js} +2 -2
- package/dist-vue/_chunks/{dist-BrsWoii-.js.map → dist-DEe8jwtO.js.map} +1 -1
- package/dist-vue/_chunks/{dist-BmqFgHbN.js → dist-DV82RztV.js} +2 -2
- package/dist-vue/_chunks/{dist-BmqFgHbN.js.map → dist-DV82RztV.js.map} +1 -1
- package/dist-vue/_chunks/{dist-ByzpJpuj.js → dist-DVM_p-M1.js} +3 -3
- package/dist-vue/_chunks/{dist-ByzpJpuj.js.map → dist-DVM_p-M1.js.map} +1 -1
- package/dist-vue/_chunks/{dist-D3coexrW.js → dist-DfEAZDKB.js} +2 -2
- package/dist-vue/_chunks/{dist-D3coexrW.js.map → dist-DfEAZDKB.js.map} +1 -1
- package/dist-vue/_chunks/{dist-veLX58Me.js → dist-QbFF3eM_.js} +2 -2
- package/dist-vue/_chunks/{dist-veLX58Me.js.map → dist-QbFF3eM_.js.map} +1 -1
- package/dist-vue/_chunks/{dist-B65AhbTK.js → dist-bUGhZmKp.js} +3 -3
- package/dist-vue/_chunks/{dist-B65AhbTK.js.map → dist-bUGhZmKp.js.map} +1 -1
- package/dist-vue/_chunks/{dist-DmKzgdbO.js → dist-jVwgEJDw.js} +2 -2
- package/dist-vue/_chunks/{dist-DmKzgdbO.js.map → dist-jVwgEJDw.js.map} +1 -1
- package/dist-vue/_chunks/src-DjRNH9vV.js.map +1 -1
- package/dist-vue/_chunks/{useChatbotStore-B9BUWM4O.js → useChatbotStore-ys9uGP5v.js} +4 -10
- package/dist-vue/_chunks/{useChatbotStore-B9BUWM4O.js.map → useChatbotStore-ys9uGP5v.js.map} +1 -1
- package/dist-vue/composables.js +1 -1
- package/dist-vue/index.js +32 -32
- package/package.json +1 -1
package/dist-vue/_chunks/{PkToolShowLocation-BeOkj0Q2.js.map → PkToolShowLocation-DSZvW68g.js.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PkToolShowLocation-BeOkj0Q2.js","names":["$t"],"sources":["../../../../packages/components/src/chat/PkToolShowLocation.vue","../../../../packages/components/src/chat/PkToolShowLocation.vue"],"sourcesContent":["<script setup lang=\"ts\">\n import {\n computed,\n ref,\n watchEffect,\n defineAsyncComponent,\n onMounted,\n getCurrentInstance,\n } from 'vue'\n import { useClipboard } from '@vueuse/core'\n import { loadCdnCss, getShadowRoot } from 'utils'\n\n const leafletModule = import('@maxel01/vue-leaflet')\n const LMap = defineAsyncComponent(() => leafletModule.then((m) => m.LMap))\n const LTileLayer = defineAsyncComponent(() =>\n leafletModule.then((m) => m.LTileLayer),\n )\n const LMarker = defineAsyncComponent(() =>\n leafletModule.then((m) => m.LMarker),\n )\n const LPopup = defineAsyncComponent(() =>\n leafletModule.then((m) => m.LPopup),\n )\n\n const props = defineProps<{\n part: unknown\n }>()\n\n const { copy, copied } = useClipboard()\n\n const toolPart = computed(() => {\n const part = props.part as {\n input?: {\n name: string\n address: string\n latitude?: number\n longitude?: number\n additionalInfo?: string\n }\n }\n return part\n })\n\n const geocodedCoords = ref<[number, number] | null>(null)\n\n onMounted(() => {\n loadCdnCss(\n 'https://cdn.jsdelivr.net/npm/leaflet@2.0.0-alpha.1/dist/leaflet.css',\n getShadowRoot(getCurrentInstance()?.proxy?.$el),\n )\n })\n\n watchEffect(async () => {\n const input = toolPart.value.input\n if (!input || input.latitude != null || !input.address) {\n return\n }\n\n try {\n const response = await fetch(\n `https://nominatim.openstreetmap.org/search?q=${encodeURIComponent(input.address)}&format=json&limit=1`,\n { headers: { 'Accept-Language': 'en' } },\n )\n const results = (await response.json()) as {\n lat: string\n lon: string\n }[]\n if (results.length > 0) {\n geocodedCoords.value = [\n Number(results[0].lat),\n Number(results[0].lon),\n ]\n }\n } catch {\n // Geocoding failed — fallback to text-only card\n }\n })\n\n const hasCoords = computed(\n () =>\n (toolPart.value.input?.latitude != null &&\n toolPart.value.input?.longitude != null) ||\n geocodedCoords.value != null,\n )\n\n const center = computed<[number, number]>(() => {\n if (\n toolPart.value.input?.latitude != null &&\n toolPart.value.input?.longitude != null\n ) {\n return [\n toolPart.value.input.latitude,\n toolPart.value.input.longitude,\n ]\n }\n return geocodedCoords.value ?? [0, 0]\n })\n\n const openGoogleMaps = () => {\n const input = toolPart.value.input\n if (!input) {\n return\n }\n const destination = hasCoords.value\n ? `${center.value[0]},${center.value[1]}`\n : input.address\n window.open(\n `https://www.google.com/maps/dir/?api=1&destination=${encodeURIComponent(destination)}`,\n '_blank',\n )\n }\n\n const openAppleMaps = () => {\n const input = toolPart.value.input\n if (!input) {\n return\n }\n const destination = hasCoords.value\n ? `${center.value[0]},${center.value[1]}`\n : input.address\n window.open(\n `https://maps.apple.com/?daddr=${encodeURIComponent(destination)}`,\n '_blank',\n )\n }\n\n const openWaze = () => {\n const input = toolPart.value.input\n if (!input) {\n return\n }\n if (hasCoords.value) {\n window.open(\n `https://waze.com/ul?ll=${center.value[0]},${center.value[1]}&navigate=yes`,\n '_blank',\n )\n } else {\n window.open(\n `https://waze.com/ul?q=${encodeURIComponent(input.address)}&navigate=yes`,\n '_blank',\n )\n }\n }\n\n const copyLocation = () => {\n const input = toolPart.value.input\n if (!input) {\n return\n }\n copy(`${input.name}\\n${input.address}`)\n }\n</script>\n\n<template>\n <div\n v-if=\"toolPart?.input\"\n class=\"border border-surface-3 rounded-xl w-full overflow-hidden\">\n <div\n class=\"px-sm py-6 bg-surface-1 text-12 border-b border-surface-3 text-word-3 flex items-center gap-8\">\n <VvIcon name=\"ri:map-pin-line\" class=\"text-16\" />\n <strong class=\"font-bold\">{{ $t('label.location') }}</strong>\n <VvButtonGroup modifiers=\"compact\" class=\"ml-auto shrink-0\">\n <VvButton\n modifiers=\"action-quiet-small\"\n :icon=\"copied ? 'ri:check-line' : 'ri:file-copy-line'\"\n :label=\"copied ? $t('action.copied') : $t('action.copy')\"\n @click=\"copyLocation\" />\n <VvDropdown\n v-bind=\"{\n placement: 'bottom-end',\n modifiers: 'menu',\n flip: true,\n offset: 3,\n }\">\n <VvButton\n icon=\"ri:direction-line\"\n modifiers=\"action-quiet-small\"\n :label=\"$t('action.getDirections')\" />\n <template #items>\n <VvDropdownAction @click=\"openGoogleMaps\">\n <VvIcon name=\"ri:map-2-line\" />\n Google Maps\n </VvDropdownAction>\n <VvDropdownAction @click=\"openAppleMaps\">\n <VvIcon name=\"ri:map-line\" />\n Apple Maps\n </VvDropdownAction>\n <VvDropdownAction @click=\"openWaze\">\n <VvIcon name=\"ri:navigation-line\" />\n Waze\n </VvDropdownAction>\n </template>\n </VvDropdown>\n </VvButtonGroup>\n </div>\n <div v-if=\"hasCoords\" class=\"h-224 border-b border-surface-3\">\n <LMap\n :zoom=\"12\"\n :center\n :use-global-leaflet=\"false\"\n :options=\"{\n scrollWheelZoom: false,\n dragging: true,\n zoomControl: true,\n attributionControl: false,\n }\"\n style=\"height: 100%; width: 100%\">\n <LTileLayer\n url=\"https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png\"\n layer-type=\"base\"\n name=\"OpenStreetMap\" />\n <LMarker :lat-lng=\"center\">\n <LPopup>{{ toolPart.input.name }}</LPopup>\n </LMarker>\n </LMap>\n </div>\n <div class=\"p-sm flex flex-col gap-4\">\n <p class=\"font-semibold text-word-1 text-14\">\n {{ toolPart.input.name }}\n </p>\n <p class=\"text-12 text-word-3\">{{ toolPart.input.address }}</p>\n <p v-if=\"toolPart.input.additionalInfo\" class=\"text-12 text-word-4\">\n {{ toolPart.input.additionalInfo }}\n </p>\n </div>\n </div>\n</template>\n","<script setup lang=\"ts\">\n import {\n computed,\n ref,\n watchEffect,\n defineAsyncComponent,\n onMounted,\n getCurrentInstance,\n } from 'vue'\n import { useClipboard } from '@vueuse/core'\n import { loadCdnCss, getShadowRoot } from 'utils'\n\n const leafletModule = import('@maxel01/vue-leaflet')\n const LMap = defineAsyncComponent(() => leafletModule.then((m) => m.LMap))\n const LTileLayer = defineAsyncComponent(() =>\n leafletModule.then((m) => m.LTileLayer),\n )\n const LMarker = defineAsyncComponent(() =>\n leafletModule.then((m) => m.LMarker),\n )\n const LPopup = defineAsyncComponent(() =>\n leafletModule.then((m) => m.LPopup),\n )\n\n const props = defineProps<{\n part: unknown\n }>()\n\n const { copy, copied } = useClipboard()\n\n const toolPart = computed(() => {\n const part = props.part as {\n input?: {\n name: string\n address: string\n latitude?: number\n longitude?: number\n additionalInfo?: string\n }\n }\n return part\n })\n\n const geocodedCoords = ref<[number, number] | null>(null)\n\n onMounted(() => {\n loadCdnCss(\n 'https://cdn.jsdelivr.net/npm/leaflet@2.0.0-alpha.1/dist/leaflet.css',\n getShadowRoot(getCurrentInstance()?.proxy?.$el),\n )\n })\n\n watchEffect(async () => {\n const input = toolPart.value.input\n if (!input || input.latitude != null || !input.address) {\n return\n }\n\n try {\n const response = await fetch(\n `https://nominatim.openstreetmap.org/search?q=${encodeURIComponent(input.address)}&format=json&limit=1`,\n { headers: { 'Accept-Language': 'en' } },\n )\n const results = (await response.json()) as {\n lat: string\n lon: string\n }[]\n if (results.length > 0) {\n geocodedCoords.value = [\n Number(results[0].lat),\n Number(results[0].lon),\n ]\n }\n } catch {\n // Geocoding failed — fallback to text-only card\n }\n })\n\n const hasCoords = computed(\n () =>\n (toolPart.value.input?.latitude != null &&\n toolPart.value.input?.longitude != null) ||\n geocodedCoords.value != null,\n )\n\n const center = computed<[number, number]>(() => {\n if (\n toolPart.value.input?.latitude != null &&\n toolPart.value.input?.longitude != null\n ) {\n return [\n toolPart.value.input.latitude,\n toolPart.value.input.longitude,\n ]\n }\n return geocodedCoords.value ?? [0, 0]\n })\n\n const openGoogleMaps = () => {\n const input = toolPart.value.input\n if (!input) {\n return\n }\n const destination = hasCoords.value\n ? `${center.value[0]},${center.value[1]}`\n : input.address\n window.open(\n `https://www.google.com/maps/dir/?api=1&destination=${encodeURIComponent(destination)}`,\n '_blank',\n )\n }\n\n const openAppleMaps = () => {\n const input = toolPart.value.input\n if (!input) {\n return\n }\n const destination = hasCoords.value\n ? `${center.value[0]},${center.value[1]}`\n : input.address\n window.open(\n `https://maps.apple.com/?daddr=${encodeURIComponent(destination)}`,\n '_blank',\n )\n }\n\n const openWaze = () => {\n const input = toolPart.value.input\n if (!input) {\n return\n }\n if (hasCoords.value) {\n window.open(\n `https://waze.com/ul?ll=${center.value[0]},${center.value[1]}&navigate=yes`,\n '_blank',\n )\n } else {\n window.open(\n `https://waze.com/ul?q=${encodeURIComponent(input.address)}&navigate=yes`,\n '_blank',\n )\n }\n }\n\n const copyLocation = () => {\n const input = toolPart.value.input\n if (!input) {\n return\n }\n copy(`${input.name}\\n${input.address}`)\n }\n</script>\n\n<template>\n <div\n v-if=\"toolPart?.input\"\n class=\"border border-surface-3 rounded-xl w-full overflow-hidden\">\n <div\n class=\"px-sm py-6 bg-surface-1 text-12 border-b border-surface-3 text-word-3 flex items-center gap-8\">\n <VvIcon name=\"ri:map-pin-line\" class=\"text-16\" />\n <strong class=\"font-bold\">{{ $t('label.location') }}</strong>\n <VvButtonGroup modifiers=\"compact\" class=\"ml-auto shrink-0\">\n <VvButton\n modifiers=\"action-quiet-small\"\n :icon=\"copied ? 'ri:check-line' : 'ri:file-copy-line'\"\n :label=\"copied ? $t('action.copied') : $t('action.copy')\"\n @click=\"copyLocation\" />\n <VvDropdown\n v-bind=\"{\n placement: 'bottom-end',\n modifiers: 'menu',\n flip: true,\n offset: 3,\n }\">\n <VvButton\n icon=\"ri:direction-line\"\n modifiers=\"action-quiet-small\"\n :label=\"$t('action.getDirections')\" />\n <template #items>\n <VvDropdownAction @click=\"openGoogleMaps\">\n <VvIcon name=\"ri:map-2-line\" />\n Google Maps\n </VvDropdownAction>\n <VvDropdownAction @click=\"openAppleMaps\">\n <VvIcon name=\"ri:map-line\" />\n Apple Maps\n </VvDropdownAction>\n <VvDropdownAction @click=\"openWaze\">\n <VvIcon name=\"ri:navigation-line\" />\n Waze\n </VvDropdownAction>\n </template>\n </VvDropdown>\n </VvButtonGroup>\n </div>\n <div v-if=\"hasCoords\" class=\"h-224 border-b border-surface-3\">\n <LMap\n :zoom=\"12\"\n :center\n :use-global-leaflet=\"false\"\n :options=\"{\n scrollWheelZoom: false,\n dragging: true,\n zoomControl: true,\n attributionControl: false,\n }\"\n style=\"height: 100%; width: 100%\">\n <LTileLayer\n url=\"https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png\"\n layer-type=\"base\"\n name=\"OpenStreetMap\" />\n <LMarker :lat-lng=\"center\">\n <LPopup>{{ toolPart.input.name }}</LPopup>\n </LMarker>\n </LMap>\n </div>\n <div class=\"p-sm flex flex-col gap-4\">\n <p class=\"font-semibold text-word-1 text-14\">\n {{ toolPart.input.name }}\n </p>\n <p class=\"text-12 text-word-3\">{{ toolPart.input.address }}</p>\n <p v-if=\"toolPart.input.additionalInfo\" class=\"text-12 text-word-4\">\n {{ toolPart.input.additionalInfo }}\n </p>\n </div>\n </div>\n</template>\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"PkToolShowLocation-DSZvW68g.js","names":["$t"],"sources":["../../../../packages/components/src/chat/PkToolShowLocation.vue","../../../../packages/components/src/chat/PkToolShowLocation.vue"],"sourcesContent":["<script setup lang=\"ts\">\n import {\n computed,\n ref,\n watchEffect,\n defineAsyncComponent,\n onMounted,\n getCurrentInstance,\n } from 'vue'\n import { useClipboard } from '@vueuse/core'\n import { loadCdnCss, getShadowRoot } from 'utils'\n\n const leafletModule = import('@maxel01/vue-leaflet')\n const LMap = defineAsyncComponent(() => leafletModule.then((m) => m.LMap))\n const LTileLayer = defineAsyncComponent(() =>\n leafletModule.then((m) => m.LTileLayer),\n )\n const LMarker = defineAsyncComponent(() =>\n leafletModule.then((m) => m.LMarker),\n )\n const LPopup = defineAsyncComponent(() =>\n leafletModule.then((m) => m.LPopup),\n )\n\n const props = defineProps<{\n part: unknown\n }>()\n\n const { copy, copied } = useClipboard()\n\n const toolPart = computed(() => {\n const part = props.part as {\n input?: {\n name: string\n address: string\n latitude?: number\n longitude?: number\n additionalInfo?: string\n }\n }\n return part\n })\n\n const geocodedCoords = ref<[number, number] | null>(null)\n\n onMounted(() => {\n loadCdnCss(\n 'https://cdn.jsdelivr.net/npm/leaflet@2.0.0-alpha.1/dist/leaflet.css',\n getShadowRoot(getCurrentInstance()?.proxy?.$el),\n )\n })\n\n watchEffect(async () => {\n const input = toolPart.value.input\n if (!input || input.latitude != null || !input.address) {\n return\n }\n\n try {\n const response = await fetch(\n `https://nominatim.openstreetmap.org/search?q=${encodeURIComponent(input.address)}&format=json&limit=1`,\n { headers: { 'Accept-Language': 'en' } },\n )\n const results = (await response.json()) as {\n lat: string\n lon: string\n }[]\n if (results.length > 0) {\n geocodedCoords.value = [\n Number(results[0].lat),\n Number(results[0].lon),\n ]\n }\n } catch {\n // Geocoding failed — fallback to text-only card\n }\n })\n\n const hasCoords = computed(\n () =>\n (toolPart.value.input?.latitude != null &&\n toolPart.value.input?.longitude != null) ||\n geocodedCoords.value != null,\n )\n\n const center = computed<[number, number]>(() => {\n if (\n toolPart.value.input?.latitude != null &&\n toolPart.value.input?.longitude != null\n ) {\n return [\n toolPart.value.input.latitude,\n toolPart.value.input.longitude,\n ]\n }\n return geocodedCoords.value ?? [0, 0]\n })\n\n const openGoogleMaps = () => {\n const input = toolPart.value.input\n if (!input) {\n return\n }\n const destination = hasCoords.value\n ? `${center.value[0]},${center.value[1]}`\n : input.address\n window.open(\n `https://www.google.com/maps/dir/?api=1&destination=${encodeURIComponent(destination)}`,\n '_blank',\n )\n }\n\n const openAppleMaps = () => {\n const input = toolPart.value.input\n if (!input) {\n return\n }\n const destination = hasCoords.value\n ? `${center.value[0]},${center.value[1]}`\n : input.address\n window.open(\n `https://maps.apple.com/?daddr=${encodeURIComponent(destination)}`,\n '_blank',\n )\n }\n\n const openWaze = () => {\n const input = toolPart.value.input\n if (!input) {\n return\n }\n if (hasCoords.value) {\n window.open(\n `https://waze.com/ul?ll=${center.value[0]},${center.value[1]}&navigate=yes`,\n '_blank',\n )\n } else {\n window.open(\n `https://waze.com/ul?q=${encodeURIComponent(input.address)}&navigate=yes`,\n '_blank',\n )\n }\n }\n\n const copyLocation = () => {\n const input = toolPart.value.input\n if (!input) {\n return\n }\n copy(`${input.name}\\n${input.address}`)\n }\n</script>\n\n<template>\n <div\n v-if=\"toolPart?.input\"\n class=\"border border-surface-3 rounded-xl w-full overflow-hidden\">\n <div\n class=\"px-sm py-6 bg-surface-1 text-12 border-b border-surface-3 text-word-3 flex items-center gap-8\">\n <VvIcon name=\"ri:map-pin-line\" class=\"text-16\" />\n <strong class=\"font-bold\">{{ $t('label.location') }}</strong>\n <VvButtonGroup modifiers=\"compact\" class=\"ml-auto shrink-0\">\n <VvButton\n modifiers=\"action-quiet-small\"\n :icon=\"copied ? 'ri:check-line' : 'ri:file-copy-line'\"\n :label=\"copied ? $t('action.copied') : $t('action.copy')\"\n @click=\"copyLocation\" />\n <VvDropdown\n v-bind=\"{\n placement: 'bottom-end',\n modifiers: 'menu',\n flip: true,\n offset: 3,\n }\">\n <VvButton\n icon=\"ri:direction-line\"\n modifiers=\"action-quiet-small\"\n :label=\"$t('action.getDirections')\" />\n <template #items>\n <VvDropdownAction @click=\"openGoogleMaps\">\n <VvIcon name=\"ri:map-2-line\" />\n Google Maps\n </VvDropdownAction>\n <VvDropdownAction @click=\"openAppleMaps\">\n <VvIcon name=\"ri:map-line\" />\n Apple Maps\n </VvDropdownAction>\n <VvDropdownAction @click=\"openWaze\">\n <VvIcon name=\"ri:navigation-line\" />\n Waze\n </VvDropdownAction>\n </template>\n </VvDropdown>\n </VvButtonGroup>\n </div>\n <div v-if=\"hasCoords\" class=\"h-224 border-b border-surface-3\">\n <LMap\n :zoom=\"12\"\n :center\n :use-global-leaflet=\"false\"\n :options=\"{\n scrollWheelZoom: false,\n dragging: true,\n zoomControl: true,\n attributionControl: false,\n }\"\n style=\"height: 100%; width: 100%\">\n <LTileLayer\n url=\"https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png\"\n layer-type=\"base\"\n name=\"OpenStreetMap\" />\n <LMarker :lat-lng=\"center\">\n <LPopup>{{ toolPart.input.name }}</LPopup>\n </LMarker>\n </LMap>\n </div>\n <div class=\"p-sm flex flex-col gap-4\">\n <p class=\"font-semibold text-word-1 text-14\">\n {{ toolPart.input.name }}\n </p>\n <p class=\"text-12 text-word-3\">{{ toolPart.input.address }}</p>\n <p v-if=\"toolPart.input.additionalInfo\" class=\"text-12 text-word-4\">\n {{ toolPart.input.additionalInfo }}\n </p>\n </div>\n </div>\n</template>\n","<script setup lang=\"ts\">\n import {\n computed,\n ref,\n watchEffect,\n defineAsyncComponent,\n onMounted,\n getCurrentInstance,\n } from 'vue'\n import { useClipboard } from '@vueuse/core'\n import { loadCdnCss, getShadowRoot } from 'utils'\n\n const leafletModule = import('@maxel01/vue-leaflet')\n const LMap = defineAsyncComponent(() => leafletModule.then((m) => m.LMap))\n const LTileLayer = defineAsyncComponent(() =>\n leafletModule.then((m) => m.LTileLayer),\n )\n const LMarker = defineAsyncComponent(() =>\n leafletModule.then((m) => m.LMarker),\n )\n const LPopup = defineAsyncComponent(() =>\n leafletModule.then((m) => m.LPopup),\n )\n\n const props = defineProps<{\n part: unknown\n }>()\n\n const { copy, copied } = useClipboard()\n\n const toolPart = computed(() => {\n const part = props.part as {\n input?: {\n name: string\n address: string\n latitude?: number\n longitude?: number\n additionalInfo?: string\n }\n }\n return part\n })\n\n const geocodedCoords = ref<[number, number] | null>(null)\n\n onMounted(() => {\n loadCdnCss(\n 'https://cdn.jsdelivr.net/npm/leaflet@2.0.0-alpha.1/dist/leaflet.css',\n getShadowRoot(getCurrentInstance()?.proxy?.$el),\n )\n })\n\n watchEffect(async () => {\n const input = toolPart.value.input\n if (!input || input.latitude != null || !input.address) {\n return\n }\n\n try {\n const response = await fetch(\n `https://nominatim.openstreetmap.org/search?q=${encodeURIComponent(input.address)}&format=json&limit=1`,\n { headers: { 'Accept-Language': 'en' } },\n )\n const results = (await response.json()) as {\n lat: string\n lon: string\n }[]\n if (results.length > 0) {\n geocodedCoords.value = [\n Number(results[0].lat),\n Number(results[0].lon),\n ]\n }\n } catch {\n // Geocoding failed — fallback to text-only card\n }\n })\n\n const hasCoords = computed(\n () =>\n (toolPart.value.input?.latitude != null &&\n toolPart.value.input?.longitude != null) ||\n geocodedCoords.value != null,\n )\n\n const center = computed<[number, number]>(() => {\n if (\n toolPart.value.input?.latitude != null &&\n toolPart.value.input?.longitude != null\n ) {\n return [\n toolPart.value.input.latitude,\n toolPart.value.input.longitude,\n ]\n }\n return geocodedCoords.value ?? [0, 0]\n })\n\n const openGoogleMaps = () => {\n const input = toolPart.value.input\n if (!input) {\n return\n }\n const destination = hasCoords.value\n ? `${center.value[0]},${center.value[1]}`\n : input.address\n window.open(\n `https://www.google.com/maps/dir/?api=1&destination=${encodeURIComponent(destination)}`,\n '_blank',\n )\n }\n\n const openAppleMaps = () => {\n const input = toolPart.value.input\n if (!input) {\n return\n }\n const destination = hasCoords.value\n ? `${center.value[0]},${center.value[1]}`\n : input.address\n window.open(\n `https://maps.apple.com/?daddr=${encodeURIComponent(destination)}`,\n '_blank',\n )\n }\n\n const openWaze = () => {\n const input = toolPart.value.input\n if (!input) {\n return\n }\n if (hasCoords.value) {\n window.open(\n `https://waze.com/ul?ll=${center.value[0]},${center.value[1]}&navigate=yes`,\n '_blank',\n )\n } else {\n window.open(\n `https://waze.com/ul?q=${encodeURIComponent(input.address)}&navigate=yes`,\n '_blank',\n )\n }\n }\n\n const copyLocation = () => {\n const input = toolPart.value.input\n if (!input) {\n return\n }\n copy(`${input.name}\\n${input.address}`)\n }\n</script>\n\n<template>\n <div\n v-if=\"toolPart?.input\"\n class=\"border border-surface-3 rounded-xl w-full overflow-hidden\">\n <div\n class=\"px-sm py-6 bg-surface-1 text-12 border-b border-surface-3 text-word-3 flex items-center gap-8\">\n <VvIcon name=\"ri:map-pin-line\" class=\"text-16\" />\n <strong class=\"font-bold\">{{ $t('label.location') }}</strong>\n <VvButtonGroup modifiers=\"compact\" class=\"ml-auto shrink-0\">\n <VvButton\n modifiers=\"action-quiet-small\"\n :icon=\"copied ? 'ri:check-line' : 'ri:file-copy-line'\"\n :label=\"copied ? $t('action.copied') : $t('action.copy')\"\n @click=\"copyLocation\" />\n <VvDropdown\n v-bind=\"{\n placement: 'bottom-end',\n modifiers: 'menu',\n flip: true,\n offset: 3,\n }\">\n <VvButton\n icon=\"ri:direction-line\"\n modifiers=\"action-quiet-small\"\n :label=\"$t('action.getDirections')\" />\n <template #items>\n <VvDropdownAction @click=\"openGoogleMaps\">\n <VvIcon name=\"ri:map-2-line\" />\n Google Maps\n </VvDropdownAction>\n <VvDropdownAction @click=\"openAppleMaps\">\n <VvIcon name=\"ri:map-line\" />\n Apple Maps\n </VvDropdownAction>\n <VvDropdownAction @click=\"openWaze\">\n <VvIcon name=\"ri:navigation-line\" />\n Waze\n </VvDropdownAction>\n </template>\n </VvDropdown>\n </VvButtonGroup>\n </div>\n <div v-if=\"hasCoords\" class=\"h-224 border-b border-surface-3\">\n <LMap\n :zoom=\"12\"\n :center\n :use-global-leaflet=\"false\"\n :options=\"{\n scrollWheelZoom: false,\n dragging: true,\n zoomControl: true,\n attributionControl: false,\n }\"\n style=\"height: 100%; width: 100%\">\n <LTileLayer\n url=\"https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png\"\n layer-type=\"base\"\n name=\"OpenStreetMap\" />\n <LMarker :lat-lng=\"center\">\n <LPopup>{{ toolPart.input.name }}</LPopup>\n </LMarker>\n </LMap>\n </div>\n <div class=\"p-sm flex flex-col gap-4\">\n <p class=\"font-semibold text-word-1 text-14\">\n {{ toolPart.input.name }}\n </p>\n <p class=\"text-12 text-word-3\">{{ toolPart.input.address }}</p>\n <p v-if=\"toolPart.input.additionalInfo\" class=\"text-12 text-word-4\">\n {{ toolPart.input.additionalInfo }}\n </p>\n </div>\n </div>\n</template>\n"],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { u as e } from "./useChatbotStore-
|
|
1
|
+
import { u as e } from "./useChatbotStore-ys9uGP5v.js";
|
|
2
2
|
import { computed as t, createElementBlock as n, createElementVNode as r, createTextVNode as i, createVNode as a, defineComponent as o, guardReactiveProps as s, normalizeProps as c, openBlock as l, toDisplayString as u, unref as d, withCtx as f } from "vue";
|
|
3
3
|
import { VvButton as p, VvButtonGroup as m, VvDropdown as h, VvDropdownAction as g, VvIcon as _ } from "@volverjs/ui-vue/components";
|
|
4
4
|
import { useClipboard as v } from "@vueuse/core";
|
|
@@ -73,4 +73,4 @@ var y = { class: "border border-surface-3 rounded-xl w-full overflow-hidden" },
|
|
|
73
73
|
//#endregion
|
|
74
74
|
export { E as n, D as t };
|
|
75
75
|
|
|
76
|
-
//# sourceMappingURL=PkToolShowMessage-
|
|
76
|
+
//# sourceMappingURL=PkToolShowMessage-DtGDm3pq.js.map
|
package/dist-vue/_chunks/{PkToolShowMessage-AS8VNcYP.js.map → PkToolShowMessage-DtGDm3pq.js.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PkToolShowMessage-
|
|
1
|
+
{"version":3,"file":"PkToolShowMessage-DtGDm3pq.js","names":["$t"],"sources":["../../../../packages/components/src/chat/PkToolShowMessage.vue","../../../../packages/components/src/chat/PkToolShowMessage.vue"],"sourcesContent":["<script setup lang=\"ts\">\n import { computed } from 'vue'\n import { useClipboard } from '@vueuse/core'\n\n const props = defineProps<{\n part: unknown\n }>()\n\n const { copy, copied } = useClipboard()\n\n const toolPart = computed(() => {\n const part = props.part as {\n input?: {\n body: string\n }\n }\n return part\n })\n\n const openInWhatsApp = () => {\n if (!toolPart.value.input) {\n return\n }\n const url = `https://wa.me/?text=${encodeURIComponent(toolPart.value.input.body)}`\n window.open(url, '_blank')\n }\n\n const openInTelegram = () => {\n if (!toolPart.value.input) {\n return\n }\n const url = `https://t.me/share/url?text=${encodeURIComponent(toolPart.value.input.body)}`\n window.open(url, '_blank')\n }\n\n const openInSms = () => {\n if (!toolPart.value.input) {\n return\n }\n const url = `sms:?body=${encodeURIComponent(toolPart.value.input.body)}`\n window.open(url)\n }\n</script>\n\n<template>\n <div class=\"border border-surface-3 rounded-xl w-full overflow-hidden\">\n <div\n class=\"px-sm py-6 bg-surface-1 text-12 border-b border-surface-3 text-word-3 flex items-center gap-8\">\n <VvIcon name=\"ri:chat-1-line\" class=\"text-16\" />\n <strong class=\"font-bold\">\n {{ $t('label.message') }}\n </strong>\n <VvButtonGroup modifiers=\"compact\" class=\"ml-auto shrink-0\">\n <VvButton\n modifiers=\"action-quiet-small\"\n :icon=\"copied ? 'ri:check-line' : 'ri:file-copy-line'\"\n :label=\"copied ? $t('action.copied') : $t('action.copy')\"\n @click=\"copy(toolPart?.input?.body ?? '')\" />\n <VvDropdown\n v-bind=\"{\n placement: 'bottom-end',\n modifiers: 'menu',\n flip: true,\n offset: 3,\n }\">\n <VvButton\n icon=\"ri:send-plane-line\"\n modifiers=\"action-quiet-small\"\n :label=\"$t('action.send')\" />\n <template #items>\n <VvDropdownAction @click=\"openInWhatsApp\">\n <VvIcon name=\"ri:whatsapp-line\" />\n {{ $t('action.openInWhatsApp') }}\n </VvDropdownAction>\n <VvDropdownAction @click=\"openInTelegram\">\n <VvIcon name=\"ri:telegram-line\" />\n {{ $t('action.openInTelegram') }}\n </VvDropdownAction>\n <VvDropdownAction @click=\"openInSms\">\n <VvIcon name=\"ri:message-2-line\" />\n {{ $t('action.openInSms') }}\n </VvDropdownAction>\n </template>\n </VvDropdown>\n </VvButtonGroup>\n </div>\n <div class=\"p-sm\">\n <div class=\"text-12 text-word-4 mb-4\">\n {{ $t('label.body') }}\n </div>\n <pre class=\"text-word-2 whitespace-pre-wrap break-words\">{{\n toolPart?.input?.body\n }}</pre>\n </div>\n </div>\n</template>\n","<script setup lang=\"ts\">\n import { computed } from 'vue'\n import { useClipboard } from '@vueuse/core'\n\n const props = defineProps<{\n part: unknown\n }>()\n\n const { copy, copied } = useClipboard()\n\n const toolPart = computed(() => {\n const part = props.part as {\n input?: {\n body: string\n }\n }\n return part\n })\n\n const openInWhatsApp = () => {\n if (!toolPart.value.input) {\n return\n }\n const url = `https://wa.me/?text=${encodeURIComponent(toolPart.value.input.body)}`\n window.open(url, '_blank')\n }\n\n const openInTelegram = () => {\n if (!toolPart.value.input) {\n return\n }\n const url = `https://t.me/share/url?text=${encodeURIComponent(toolPart.value.input.body)}`\n window.open(url, '_blank')\n }\n\n const openInSms = () => {\n if (!toolPart.value.input) {\n return\n }\n const url = `sms:?body=${encodeURIComponent(toolPart.value.input.body)}`\n window.open(url)\n }\n</script>\n\n<template>\n <div class=\"border border-surface-3 rounded-xl w-full overflow-hidden\">\n <div\n class=\"px-sm py-6 bg-surface-1 text-12 border-b border-surface-3 text-word-3 flex items-center gap-8\">\n <VvIcon name=\"ri:chat-1-line\" class=\"text-16\" />\n <strong class=\"font-bold\">\n {{ $t('label.message') }}\n </strong>\n <VvButtonGroup modifiers=\"compact\" class=\"ml-auto shrink-0\">\n <VvButton\n modifiers=\"action-quiet-small\"\n :icon=\"copied ? 'ri:check-line' : 'ri:file-copy-line'\"\n :label=\"copied ? $t('action.copied') : $t('action.copy')\"\n @click=\"copy(toolPart?.input?.body ?? '')\" />\n <VvDropdown\n v-bind=\"{\n placement: 'bottom-end',\n modifiers: 'menu',\n flip: true,\n offset: 3,\n }\">\n <VvButton\n icon=\"ri:send-plane-line\"\n modifiers=\"action-quiet-small\"\n :label=\"$t('action.send')\" />\n <template #items>\n <VvDropdownAction @click=\"openInWhatsApp\">\n <VvIcon name=\"ri:whatsapp-line\" />\n {{ $t('action.openInWhatsApp') }}\n </VvDropdownAction>\n <VvDropdownAction @click=\"openInTelegram\">\n <VvIcon name=\"ri:telegram-line\" />\n {{ $t('action.openInTelegram') }}\n </VvDropdownAction>\n <VvDropdownAction @click=\"openInSms\">\n <VvIcon name=\"ri:message-2-line\" />\n {{ $t('action.openInSms') }}\n </VvDropdownAction>\n </template>\n </VvDropdown>\n </VvButtonGroup>\n </div>\n <div class=\"p-sm\">\n <div class=\"text-12 text-word-4 mb-4\">\n {{ $t('label.body') }}\n </div>\n <pre class=\"text-word-2 whitespace-pre-wrap break-words\">{{\n toolPart?.input?.body\n }}</pre>\n </div>\n </div>\n</template>\n"],"mappings":";;;;;;;;;EAII,IAAM,IAAQ,GAIR,EAAE,SAAM,cAAW,GAAa,EAEhC,IAAW,QACA,EAAM,KAMtB,EAEK,UAAuB;AACzB,OAAI,CAAC,EAAS,MAAM,MAChB;GAEJ,IAAM,IAAM,uBAAuB,mBAAmB,EAAS,MAAM,MAAM,KAAK;AAChF,UAAO,KAAK,GAAK,SAAQ;KAGvB,UAAuB;AACzB,OAAI,CAAC,EAAS,MAAM,MAChB;GAEJ,IAAM,IAAM,+BAA+B,mBAAmB,EAAS,MAAM,MAAM,KAAK;AACxF,UAAO,KAAK,GAAK,SAAQ;KAGvB,UAAkB;AACpB,OAAI,CAAC,EAAS,MAAM,MAChB;GAEJ,IAAM,IAAM,aAAa,mBAAmB,EAAS,MAAM,MAAM,KAAK;AACtE,UAAO,KAAK,EAAG;;;;eAKnB,EAiDM,OAjDN,GAiDM,CAhDF,EAuCM,OAvCN,GAuCM;IArCF,EAAgD,GAAA;KAAxC,MAAK;KAAiB,OAAM;;IACpC,EAES,UAFT,GAES,EADFA,EAAAA,GAAE,gBAAA,CAAA,EAAA,EAAA;IAET,EAgCgB,GAAA;KAhCD,WAAU;KAAU,OAAM;;sBAKY,CAJjD,EAIiD,GAAA;MAH7C,WAAU;MACT,MAAM,EAAA,EAAM,GAAA,kBAAA;MACZ,OAAO,EAAA,EAAM,GAAGA,EAAAA,GAAE,gBAAA,GAAoBA,EAAAA,GAAE,cAAA;MACxC,SAAK,AAAA,EAAA,QAAA,MAAE,EAAA,EAAI,CAAC,EAAA,OAAU,OAAO,QAAI,GAAA;qCACtC,EAyBa,GAAA,EAAA,EAxBD;;;;;MAKP,CAAA,CAAA,EAAA;MAKU,OAAK,QAIO;OAHnB,EAGmB,GAAA,EAHA,SAAO,GAAc,EAAA;yBACF,CAAlC,EAAkC,GAAA,EAA1B,MAAK,oBAAkB,CAAA,EAAA,EAAG,MAClC,EAAGA,EAAAA,GAAE,wBAAA,CAAA,EAAA,EAAA,CAAA,CAAA;;;OAET,EAGmB,GAAA,EAHA,SAAO,GAAc,EAAA;yBACF,CAAlC,EAAkC,GAAA,EAA1B,MAAK,oBAAkB,CAAA,EAAA,EAAG,MAClC,EAAGA,EAAAA,GAAE,wBAAA,CAAA,EAAA,EAAA,CAAA,CAAA;;;OAET,EAGmB,GAAA,EAHA,SAAO,GAAS,EAAA;yBACI,CAAnC,EAAmC,GAAA,EAA3B,MAAK,qBAAmB,CAAA,EAAA,EAAG,MACnC,EAAGA,EAAAA,GAAE,mBAAA,CAAA,EAAA,EAAA,CAAA,CAAA;;;;uBAZoB,CAHjC,EAGiC,GAAA;OAF7B,MAAK;OACL,WAAU;OACT,OAAOA,EAAAA,GAAE,cAAA;;;;;;OAkB1B,EAOM,OAPN,GAOM,CANF,EAEM,OAFN,GAEM,EADCA,EAAAA,GAAE,aAAA,CAAA,EAAA,EAAA,EAET,EAEQ,OAFR,GAEQ,EADJ,EAAA,OAAU,OAAO,KAAI,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA"}
|
package/dist-vue/_chunks/{PkToolShowProductList-FEq8sFxW.js → PkToolShowProductList-BlkUdbtV.js}
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { u as e } from "./useChatbotStore-
|
|
1
|
+
import { u as e } from "./useChatbotStore-ys9uGP5v.js";
|
|
2
2
|
import { t } from "./PkUrl-C9annqfF.js";
|
|
3
3
|
import { Fragment as n, computed as r, createBlock as i, createCommentVNode as a, createElementBlock as o, createElementVNode as s, createVNode as c, defineComponent as l, normalizeClass as u, openBlock as d, renderList as f, resolveDynamicComponent as p, toDisplayString as m, withCtx as h } from "vue";
|
|
4
4
|
import { VvIcon as g } from "@volverjs/ui-vue/components";
|
|
@@ -64,4 +64,4 @@ var _ = {
|
|
|
64
64
|
//#endregion
|
|
65
65
|
export { E as n, D as t };
|
|
66
66
|
|
|
67
|
-
//# sourceMappingURL=PkToolShowProductList-
|
|
67
|
+
//# sourceMappingURL=PkToolShowProductList-BlkUdbtV.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PkToolShowProductList-
|
|
1
|
+
{"version":3,"file":"PkToolShowProductList-BlkUdbtV.js","names":[],"sources":["../../../../packages/components/src/chat/PkToolShowProductList.vue","../../../../packages/components/src/chat/PkToolShowProductList.vue"],"sourcesContent":["<script setup lang=\"ts\">\n import { computed } from 'vue'\n import PkUrl from '../PkUrl.vue'\n\n const props = defineProps<{\n part: unknown\n }>()\n\n const toolPart = computed(() => {\n const part = props.part as {\n input?: {\n products: Array<{\n name: string\n url?: string\n image?: string\n price?: string\n availability?: string\n description?: string\n }>\n }\n }\n return part\n })\n\n const getAvailabilityColor = (availability?: string) => {\n if (!availability) {\n return ''\n }\n const lower = availability.toLowerCase()\n if (\n lower.includes('in stock') ||\n lower.includes('available') ||\n lower.includes('disponibile')\n ) {\n return 'text-success'\n }\n if (\n lower.includes('out of stock') ||\n lower.includes('unavailable') ||\n lower.includes('non disponibile')\n ) {\n return 'text-danger'\n }\n if (\n lower.includes('limited') ||\n lower.includes('low stock') ||\n lower.includes('limitato')\n ) {\n return 'text-warning'\n }\n return 'text-word-3'\n }\n</script>\n\n<template>\n <ul\n v-if=\"toolPart?.input?.products?.length\"\n class=\"flex flex-col gap-xs w-full\">\n <li\n v-for=\"(product, index) in toolPart.input.products\"\n :key=\"index\"\n class=\"border border-surface-3 rounded-lg overflow-hidden hover:border-surface-4 transition-colors\">\n <component\n :is=\"product.url ? 'a' : 'div'\"\n :href=\"product.url\"\n :target=\"product.url ? '_blank' : undefined\"\n :rel=\"product.url ? 'noopener noreferrer' : undefined\"\n class=\"flex gap-8 p-8 hover:bg-surface-1 transition-colors\">\n <img\n v-if=\"product.image\"\n :src=\"product.image\"\n :alt=\"product.name\"\n class=\"w-48 h-48 object-contain rounded shrink-0 border border-surface-3 bg-surface\" />\n <div class=\"flex flex-col gap-4 min-w-0 flex-1\">\n <strong class=\"font-bold text-12 text-word-1 truncate\">\n {{ product.name }}\n </strong>\n <span\n v-if=\"product.url\"\n class=\"text-10 text-word-4 truncate flex items-center gap-4\">\n <VvIcon name=\"ri:link\" class=\"shrink-0 text-12\" />\n <PkUrl :url=\"product.url\" />\n </span>\n <div class=\"flex items-center gap-sm flex-wrap text-12\">\n <span\n v-if=\"product.price\"\n class=\"font-semibold text-word-1\">\n {{ product.price }}\n </span>\n <span\n v-if=\"product.availability\"\n class=\"text-10 font-medium\"\n :class=\"getAvailabilityColor(product.availability)\">\n {{ product.availability }}\n </span>\n </div>\n <p\n v-if=\"product.description\"\n class=\"text-12 text-word-3 line-clamp-2\">\n {{ product.description }}\n </p>\n </div>\n </component>\n </li>\n </ul>\n</template>\n","<script setup lang=\"ts\">\n import { computed } from 'vue'\n import PkUrl from '../PkUrl.vue'\n\n const props = defineProps<{\n part: unknown\n }>()\n\n const toolPart = computed(() => {\n const part = props.part as {\n input?: {\n products: Array<{\n name: string\n url?: string\n image?: string\n price?: string\n availability?: string\n description?: string\n }>\n }\n }\n return part\n })\n\n const getAvailabilityColor = (availability?: string) => {\n if (!availability) {\n return ''\n }\n const lower = availability.toLowerCase()\n if (\n lower.includes('in stock') ||\n lower.includes('available') ||\n lower.includes('disponibile')\n ) {\n return 'text-success'\n }\n if (\n lower.includes('out of stock') ||\n lower.includes('unavailable') ||\n lower.includes('non disponibile')\n ) {\n return 'text-danger'\n }\n if (\n lower.includes('limited') ||\n lower.includes('low stock') ||\n lower.includes('limitato')\n ) {\n return 'text-warning'\n }\n return 'text-word-3'\n }\n</script>\n\n<template>\n <ul\n v-if=\"toolPart?.input?.products?.length\"\n class=\"flex flex-col gap-xs w-full\">\n <li\n v-for=\"(product, index) in toolPart.input.products\"\n :key=\"index\"\n class=\"border border-surface-3 rounded-lg overflow-hidden hover:border-surface-4 transition-colors\">\n <component\n :is=\"product.url ? 'a' : 'div'\"\n :href=\"product.url\"\n :target=\"product.url ? '_blank' : undefined\"\n :rel=\"product.url ? 'noopener noreferrer' : undefined\"\n class=\"flex gap-8 p-8 hover:bg-surface-1 transition-colors\">\n <img\n v-if=\"product.image\"\n :src=\"product.image\"\n :alt=\"product.name\"\n class=\"w-48 h-48 object-contain rounded shrink-0 border border-surface-3 bg-surface\" />\n <div class=\"flex flex-col gap-4 min-w-0 flex-1\">\n <strong class=\"font-bold text-12 text-word-1 truncate\">\n {{ product.name }}\n </strong>\n <span\n v-if=\"product.url\"\n class=\"text-10 text-word-4 truncate flex items-center gap-4\">\n <VvIcon name=\"ri:link\" class=\"shrink-0 text-12\" />\n <PkUrl :url=\"product.url\" />\n </span>\n <div class=\"flex items-center gap-sm flex-wrap text-12\">\n <span\n v-if=\"product.price\"\n class=\"font-semibold text-word-1\">\n {{ product.price }}\n </span>\n <span\n v-if=\"product.availability\"\n class=\"text-10 font-medium\"\n :class=\"getAvailabilityColor(product.availability)\">\n {{ product.availability }}\n </span>\n </div>\n <p\n v-if=\"product.description\"\n class=\"text-12 text-word-3 line-clamp-2\">\n {{ product.description }}\n </p>\n </div>\n </component>\n </li>\n </ul>\n</template>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;EAII,IAAM,IAAQ,GAIR,IAAW,QACA,EAAM,KAatB,EAEK,KAAwB,MAA0B;AACpD,OAAI,CAAC,EACD,QAAO;GAEX,IAAM,IAAQ,EAAa,aAAY;AAsBvC,UApBI,EAAM,SAAS,WAAW,IAC1B,EAAM,SAAS,YAAY,IAC3B,EAAM,SAAS,cAAa,GAErB,iBAGP,EAAM,SAAS,eAAe,IAC9B,EAAM,SAAS,cAAc,IAC7B,EAAM,SAAS,kBAAiB,GAEzB,gBAGP,EAAM,SAAS,UAAU,IACzB,EAAM,SAAS,YAAY,IAC3B,EAAM,SAAS,WAAU,GAElB,iBAEJ;;;;UAMD,EAAA,OAAU,OAAO,UAAU,UAAA,GAAA,EADrC,EAiDK,MAjDL,GAiDK,EAAA,EAAA,GAAA,EA9CD,EA6CK,GAAA,MAAA,EA5C0B,EAAA,MAAS,MAAM,WAAlC,GAAS,YADrB,EA6CK,MAAA;IA3CA,KAAK;IACN,OAAM;aACN,EAwCY,EAvCH,EAAQ,MAAG,MAAA,MAAA,EAAA;IACf,MAAM,EAAQ;IACd,QAAQ,EAAQ,MAAG,WAAc,KAAA;IACjC,KAAK,EAAQ,MAAG,wBAA2B,KAAA;IAC5C,OAAM;;qBAKqF,CAHjF,EAAQ,SAAA,GAAA,EADlB,EAI2F,OAAA;;KAFtF,KAAK,EAAQ;KACb,KAAK,EAAQ;KACd,OAAM;iCACV,EA4BM,OA5BN,GA4BM;KA3BF,EAES,UAFT,GAES,EADF,EAAQ,KAAI,EAAA,EAAA;KAGT,EAAQ,OAAA,GAAA,EADlB,EAKO,QALP,GAKO,CAFH,EAAkD,GAAA;MAA1C,MAAK;MAAU,OAAM;SAC7B,EAA4B,GAAA,EAApB,KAAK,EAAQ,KAAA,EAAA,MAAA,GAAA,CAAA,MAAA,CAAA,CAAA,CAAA,IAAA,EAAA,IAAA,GAAA;KAEzB,EAYM,OAZN,GAYM,CAVQ,EAAQ,SAAA,GAAA,EADlB,EAIO,QAJP,GAIO,EADA,EAAQ,MAAK,EAAA,EAAA,IAAA,EAAA,IAAA,GAAA,EAGV,EAAQ,gBAAA,GAAA,EADlB,EAKO,QAAA;;MAHH,OAAK,EAAA,CAAC,uBACE,EAAqB,EAAQ,aAAY,CAAA,CAAA;UAC9C,EAAQ,aAAY,EAAA,EAAA,IAAA,EAAA,IAAA,GAAA,CAAA,CAAA;KAIrB,EAAQ,eAAA,GAAA,EADlB,EAII,KAJJ,GAII,EADG,EAAQ,YAAW,EAAA,EAAA,IAAA,EAAA,IAAA,GAAA"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { u as e } from "./useChatbotStore-
|
|
1
|
+
import { u as e } from "./useChatbotStore-ys9uGP5v.js";
|
|
2
2
|
import { computed as t, createCommentVNode as n, createElementBlock as r, createElementVNode as i, createVNode as a, defineComponent as o, onMounted as s, openBlock as c, ref as l, toDisplayString as u, unref as d, withCtx as f } from "vue";
|
|
3
3
|
import { VvButton as p, VvButtonGroup as m, VvIcon as h } from "@volverjs/ui-vue/components";
|
|
4
4
|
import { useClipboard as g } from "@vueuse/core";
|
|
@@ -69,4 +69,4 @@ var _ = {
|
|
|
69
69
|
//#endregion
|
|
70
70
|
export { w as n, T as t };
|
|
71
71
|
|
|
72
|
-
//# sourceMappingURL=PkToolShowQrCode-
|
|
72
|
+
//# sourceMappingURL=PkToolShowQrCode-BUyhM_MN.js.map
|
package/dist-vue/_chunks/{PkToolShowQrCode-DAt8tBHK.js.map → PkToolShowQrCode-BUyhM_MN.js.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PkToolShowQrCode-
|
|
1
|
+
{"version":3,"file":"PkToolShowQrCode-BUyhM_MN.js","names":["$t"],"sources":["../../../../packages/components/src/chat/PkToolShowQrCode.vue","../../../../packages/components/src/chat/PkToolShowQrCode.vue"],"sourcesContent":["<script setup lang=\"ts\">\n import { computed, ref, onMounted } from 'vue'\n import { useClipboard } from '@vueuse/core'\n\n const props = defineProps<{\n part: unknown\n }>()\n\n const { copy, copied } = useClipboard()\n\n const toolPart = computed(() => {\n const part = props.part as {\n input?: {\n content: string\n label?: string\n }\n }\n return part\n })\n\n const svgContent = ref('')\n const qrContainerRef = ref<HTMLElement>()\n\n onMounted(async () => {\n const content = toolPart.value.input?.content\n if (!content) {\n return\n }\n const { default: QRCode } = await import('qrcode')\n svgContent.value = await QRCode.toString(content, { type: 'svg' })\n })\n\n const downloadQr = async () => {\n const svgEl = qrContainerRef.value?.querySelector('svg')\n if (!svgEl) {\n return\n }\n const svgData = new XMLSerializer().serializeToString(svgEl)\n const svgBlob = new Blob([svgData], {\n type: 'image/svg+xml;charset=utf-8',\n })\n const svgUrl = URL.createObjectURL(svgBlob)\n\n const canvas = document.createElement('canvas')\n canvas.width = 512\n canvas.height = 512\n const ctx = canvas.getContext('2d')\n const img = new Image()\n img.onload = () => {\n ctx?.drawImage(img, 0, 0, 512, 512)\n URL.revokeObjectURL(svgUrl)\n const a = document.createElement('a')\n a.href = canvas.toDataURL('image/png')\n a.download = 'qrcode.png'\n a.click()\n }\n img.src = svgUrl\n }\n</script>\n\n<template>\n <div\n v-if=\"toolPart?.input\"\n class=\"border border-surface-3 rounded-xl w-full overflow-hidden\">\n <div\n class=\"px-sm py-6 bg-surface-1 text-12 border-b border-surface-3 text-word-3 flex items-center gap-8\">\n <VvIcon name=\"ri:qr-code-line\" class=\"text-16\" />\n <strong class=\"font-bold\">{{ $t('label.qrCode') }}</strong>\n <VvButtonGroup modifiers=\"compact\" class=\"ml-auto shrink-0\">\n <VvButton\n modifiers=\"action-quiet-small\"\n :icon=\"copied ? 'ri:check-line' : 'ri:file-copy-line'\"\n :label=\"copied ? $t('action.copied') : $t('action.copy')\"\n @click=\"copy(toolPart?.input?.content ?? '')\" />\n <VvButton\n modifiers=\"action-quiet-small\"\n icon=\"ri:download-line\"\n :label=\"$t('action.download')\"\n @click=\"downloadQr\" />\n </VvButtonGroup>\n </div>\n <div class=\"p-sm flex flex-col items-center\">\n <div ref=\"qrContainerRef\" class=\"w-144 h-144\" v-html=\"svgContent\" />\n <p\n v-if=\"toolPart.input.label\"\n class=\"text-12 text-word-3 text-center\">\n {{ toolPart.input.label }}\n </p>\n </div>\n </div>\n</template>\n","<script setup lang=\"ts\">\n import { computed, ref, onMounted } from 'vue'\n import { useClipboard } from '@vueuse/core'\n\n const props = defineProps<{\n part: unknown\n }>()\n\n const { copy, copied } = useClipboard()\n\n const toolPart = computed(() => {\n const part = props.part as {\n input?: {\n content: string\n label?: string\n }\n }\n return part\n })\n\n const svgContent = ref('')\n const qrContainerRef = ref<HTMLElement>()\n\n onMounted(async () => {\n const content = toolPart.value.input?.content\n if (!content) {\n return\n }\n const { default: QRCode } = await import('qrcode')\n svgContent.value = await QRCode.toString(content, { type: 'svg' })\n })\n\n const downloadQr = async () => {\n const svgEl = qrContainerRef.value?.querySelector('svg')\n if (!svgEl) {\n return\n }\n const svgData = new XMLSerializer().serializeToString(svgEl)\n const svgBlob = new Blob([svgData], {\n type: 'image/svg+xml;charset=utf-8',\n })\n const svgUrl = URL.createObjectURL(svgBlob)\n\n const canvas = document.createElement('canvas')\n canvas.width = 512\n canvas.height = 512\n const ctx = canvas.getContext('2d')\n const img = new Image()\n img.onload = () => {\n ctx?.drawImage(img, 0, 0, 512, 512)\n URL.revokeObjectURL(svgUrl)\n const a = document.createElement('a')\n a.href = canvas.toDataURL('image/png')\n a.download = 'qrcode.png'\n a.click()\n }\n img.src = svgUrl\n }\n</script>\n\n<template>\n <div\n v-if=\"toolPart?.input\"\n class=\"border border-surface-3 rounded-xl w-full overflow-hidden\">\n <div\n class=\"px-sm py-6 bg-surface-1 text-12 border-b border-surface-3 text-word-3 flex items-center gap-8\">\n <VvIcon name=\"ri:qr-code-line\" class=\"text-16\" />\n <strong class=\"font-bold\">{{ $t('label.qrCode') }}</strong>\n <VvButtonGroup modifiers=\"compact\" class=\"ml-auto shrink-0\">\n <VvButton\n modifiers=\"action-quiet-small\"\n :icon=\"copied ? 'ri:check-line' : 'ri:file-copy-line'\"\n :label=\"copied ? $t('action.copied') : $t('action.copy')\"\n @click=\"copy(toolPart?.input?.content ?? '')\" />\n <VvButton\n modifiers=\"action-quiet-small\"\n icon=\"ri:download-line\"\n :label=\"$t('action.download')\"\n @click=\"downloadQr\" />\n </VvButtonGroup>\n </div>\n <div class=\"p-sm flex flex-col items-center\">\n <div ref=\"qrContainerRef\" class=\"w-144 h-144\" v-html=\"svgContent\" />\n <p\n v-if=\"toolPart.input.label\"\n class=\"text-12 text-word-3 text-center\">\n {{ toolPart.input.label }}\n </p>\n </div>\n </div>\n</template>\n"],"mappings":";;;;;;;;;;;;;;;EAII,IAAM,IAAQ,GAIR,EAAE,SAAM,cAAW,GAAa,EAEhC,IAAW,QACA,EAAM,KAOtB,EAEK,IAAa,EAAI,GAAE,EACnB,IAAiB,GAAiB;AAExC,IAAU,YAAY;GAClB,IAAM,IAAU,EAAS,MAAM,OAAO;AACtC,OAAI,CAAC,EACD;GAEJ,IAAM,EAAE,SAAS,MAAW,MAAM,OAAO;AACzC,KAAW,QAAQ,MAAM,EAAO,SAAS,GAAS,EAAE,MAAM,OAAO,CAAA;IACpE;EAED,IAAM,IAAa,YAAY;GAC3B,IAAM,IAAQ,EAAe,OAAO,cAAc,MAAK;AACvD,OAAI,CAAC,EACD;GAEJ,IAAM,IAAU,IAAI,eAAe,CAAC,kBAAkB,EAAK,EACrD,IAAU,IAAI,KAAK,CAAC,EAAQ,EAAE,EAChC,MAAM,+BACT,CAAA,EACK,IAAS,IAAI,gBAAgB,EAAO,EAEpC,IAAS,SAAS,cAAc,SAAQ;AAE9C,GADA,EAAO,QAAQ,KACf,EAAO,SAAS;GAChB,IAAM,IAAM,EAAO,WAAW,KAAI,EAC5B,IAAM,IAAI,OAAM;AAStB,GARA,EAAI,eAAe;AAEf,IADA,GAAK,UAAU,GAAK,GAAG,GAAG,KAAK,IAAG,EAClC,IAAI,gBAAgB,EAAM;IAC1B,IAAM,IAAI,SAAS,cAAc,IAAG;AAGpC,IAFA,EAAE,OAAO,EAAO,UAAU,YAAW,EACrC,EAAE,WAAW,cACb,EAAE,OAAM;MAEZ,EAAI,MAAM;;;;UAMJ,EAAA,OAAU,SAAA,GAAA,EADpB,EA4BM,OA5BN,GA4BM,CAzBF,EAgBM,OAhBN,GAgBM;IAdF,EAAiD,GAAA;KAAzC,MAAK;KAAkB,OAAM;;IACrC,EAA2D,UAA3D,GAA2D,EAA9BA,EAAAA,GAAE,eAAA,CAAA,EAAA,EAAA;IAC/B,EAWgB,GAAA;KAXD,WAAU;KAAU,OAAM;;sBAKe,CAJpD,EAIoD,GAAA;MAHhD,WAAU;MACT,MAAM,EAAA,EAAM,GAAA,kBAAA;MACZ,OAAO,EAAA,EAAM,GAAGA,EAAAA,GAAE,gBAAA,GAAoBA,EAAAA,GAAE,cAAA;MACxC,SAAK,AAAA,EAAA,QAAA,MAAE,EAAA,EAAI,CAAC,EAAA,OAAU,OAAO,WAAO,GAAA;qCACzC,EAI0B,GAAA;MAHtB,WAAU;MACV,MAAK;MACJ,OAAOA,EAAAA,GAAE,kBAAA;MACT,SAAO;;;;OAGpB,EAOM,OAPN,GAOM,CANF,EAAoE,OAAA;aAA3D;IAAJ,KAAI;IAAiB,OAAM;IAAc,WAAQ,EAAA;mBAE5C,EAAA,MAAS,MAAM,SAAA,GAAA,EADzB,EAII,KAJJ,GAII,EADG,EAAA,MAAS,MAAM,MAAK,EAAA,EAAA,IAAA,EAAA,IAAA,GAAA,CAAA,CAAA,CAAA,CAAA,IAAA,EAAA,IAAA,GAAA"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { u as e } from "./useChatbotStore-
|
|
1
|
+
import { u as e } from "./useChatbotStore-ys9uGP5v.js";
|
|
2
2
|
import { n as t } from "./src-DjRNH9vV.js";
|
|
3
3
|
import { t as n } from "./PkUrl-C9annqfF.js";
|
|
4
4
|
import { Fragment as r, computed as i, createCommentVNode as a, createElementBlock as o, createElementVNode as s, createTextVNode as c, createVNode as l, defineComponent as u, openBlock as d, ref as f, renderList as p, toDisplayString as m, unref as h } from "vue";
|
|
@@ -59,4 +59,4 @@ var _ = {
|
|
|
59
59
|
//#endregion
|
|
60
60
|
export { E as n, D as t };
|
|
61
61
|
|
|
62
|
-
//# sourceMappingURL=PkToolShowWebPages-
|
|
62
|
+
//# sourceMappingURL=PkToolShowWebPages-BQp9A4vb.js.map
|
package/dist-vue/_chunks/{PkToolShowWebPages-jA5eZRdi.js.map → PkToolShowWebPages-BQp9A4vb.js.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PkToolShowWebPages-
|
|
1
|
+
{"version":3,"file":"PkToolShowWebPages-BQp9A4vb.js","names":["$t"],"sources":["../../../../packages/components/src/chat/PkToolShowWebPages.vue","../../../../packages/components/src/chat/PkToolShowWebPages.vue"],"sourcesContent":["<script setup lang=\"ts\">\n import { computed, ref } from 'vue'\n import { isSameSite } from 'utils'\n import PkUrl from '../PkUrl.vue'\n\n const props = defineProps<{\n part: unknown\n }>()\n\n const toolPart = computed(() => {\n const part = props.part as {\n input?: {\n pages: Array<{\n title: string\n url: string\n image?: string\n description?: string\n }>\n }\n }\n return part\n })\n\n const showMore = ref(false)\n const pages = computed(() => {\n if (showMore.value) {\n return toolPart.value.input?.pages || []\n }\n return (toolPart.value.input?.pages || []).slice(0, 2)\n })\n const hasMore = computed(\n () => (toolPart.value.input?.pages || []).length > 2,\n )\n</script>\n\n<template>\n <ul v-if=\"pages?.length\" class=\"flex flex-col gap-xs w-full\">\n <li\n v-for=\"(page, index) in pages\"\n :key=\"index\"\n class=\"border border-surface-3 rounded-lg overflow-hidden hover:border-surface-4 transition-colors shrink-0\">\n <a\n :href=\"page.url\"\n :title=\"$t('action.open')\"\n :target=\"isSameSite(page.url) ? undefined : '_blank'\"\n :rel=\"isSameSite(page.url) ? undefined : 'noopener noreferrer'\"\n class=\"flex gap-8 p-8 hover:bg-surface-1 transition-colors\">\n <img\n v-if=\"page.image\"\n :src=\"page.image\"\n :alt=\"page.title\"\n class=\"w-48 h-48 object-contain rounded shrink-0 border border-surface-3 bg-surface\" />\n <div class=\"flex flex-col gap-4 min-w-0 flex-1\">\n <strong class=\"font-bold text-12 text-word-1 truncate\">\n {{ page.title }}\n </strong>\n <span\n class=\"text-10 text-word-4 truncate flex items-center gap-4\">\n <VvIcon name=\"ri:link\" class=\"shrink-0 text-12\" />\n <PkUrl :url=\"page.url\" />\n </span>\n <p\n v-if=\"page.description\"\n class=\"text-12 text-word-3 line-clamp-2\">\n {{ page.description }}\n </p>\n </div>\n </a>\n </li>\n <li v-if=\"hasMore\" class=\"text-center\">\n <button\n class=\"text-12 text-word-3 cursor-pointer hover:underline flex items-center gap-4 mx-auto\"\n @click=\"showMore = !showMore\">\n <VvIcon\n :name=\"\n showMore ? 'ri:arrow-up-s-line' : 'ri:arrow-down-s-line'\n \"\n class=\"text-16\" />\n {{\n showMore\n ? $t('action.showLess')\n : $t('action.showMore', {\n count: (toolPart?.input?.pages?.length || 0) - 2,\n })\n }}\n </button>\n </li>\n </ul>\n</template>\n","<script setup lang=\"ts\">\n import { computed, ref } from 'vue'\n import { isSameSite } from 'utils'\n import PkUrl from '../PkUrl.vue'\n\n const props = defineProps<{\n part: unknown\n }>()\n\n const toolPart = computed(() => {\n const part = props.part as {\n input?: {\n pages: Array<{\n title: string\n url: string\n image?: string\n description?: string\n }>\n }\n }\n return part\n })\n\n const showMore = ref(false)\n const pages = computed(() => {\n if (showMore.value) {\n return toolPart.value.input?.pages || []\n }\n return (toolPart.value.input?.pages || []).slice(0, 2)\n })\n const hasMore = computed(\n () => (toolPart.value.input?.pages || []).length > 2,\n )\n</script>\n\n<template>\n <ul v-if=\"pages?.length\" class=\"flex flex-col gap-xs w-full\">\n <li\n v-for=\"(page, index) in pages\"\n :key=\"index\"\n class=\"border border-surface-3 rounded-lg overflow-hidden hover:border-surface-4 transition-colors shrink-0\">\n <a\n :href=\"page.url\"\n :title=\"$t('action.open')\"\n :target=\"isSameSite(page.url) ? undefined : '_blank'\"\n :rel=\"isSameSite(page.url) ? undefined : 'noopener noreferrer'\"\n class=\"flex gap-8 p-8 hover:bg-surface-1 transition-colors\">\n <img\n v-if=\"page.image\"\n :src=\"page.image\"\n :alt=\"page.title\"\n class=\"w-48 h-48 object-contain rounded shrink-0 border border-surface-3 bg-surface\" />\n <div class=\"flex flex-col gap-4 min-w-0 flex-1\">\n <strong class=\"font-bold text-12 text-word-1 truncate\">\n {{ page.title }}\n </strong>\n <span\n class=\"text-10 text-word-4 truncate flex items-center gap-4\">\n <VvIcon name=\"ri:link\" class=\"shrink-0 text-12\" />\n <PkUrl :url=\"page.url\" />\n </span>\n <p\n v-if=\"page.description\"\n class=\"text-12 text-word-3 line-clamp-2\">\n {{ page.description }}\n </p>\n </div>\n </a>\n </li>\n <li v-if=\"hasMore\" class=\"text-center\">\n <button\n class=\"text-12 text-word-3 cursor-pointer hover:underline flex items-center gap-4 mx-auto\"\n @click=\"showMore = !showMore\">\n <VvIcon\n :name=\"\n showMore ? 'ri:arrow-up-s-line' : 'ri:arrow-down-s-line'\n \"\n class=\"text-16\" />\n {{\n showMore\n ? $t('action.showLess')\n : $t('action.showMore', {\n count: (toolPart?.input?.pages?.length || 0) - 2,\n })\n }}\n </button>\n </li>\n </ul>\n</template>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;EAKI,IAAM,IAAQ,GAIR,IAAW,QACA,EAAM,KAWtB,EAEK,IAAW,EAAI,GAAK,EACpB,IAAQ,QACN,EAAS,QACF,EAAS,MAAM,OAAO,SAAS,EAAC,IAEnC,EAAS,MAAM,OAAO,SAAS,EAAE,EAAE,MAAM,GAAG,EAAC,CACxD,EACK,IAAU,SACL,EAAS,MAAM,OAAO,SAAS,EAAE,EAAE,SAAS,EACvD;;;UAIU,EAAA,OAAO,UAAA,GAAA,EAAjB,EAmDK,MAnDL,GAmDK,EAAA,EAAA,GAAA,EAlDD,EA+BK,GAAA,MAAA,EA9BuB,EAAA,QAAhB,GAAM,YADlB,EA+BK,MAAA;IA7BA,KAAK;IACN,OAAM;OACN,EA0BI,KAAA;IAzBC,MAAM,EAAK;IACX,OAAOA,EAAAA,GAAE,cAAA;IACT,QAAQ,EAAA,EAAU,CAAC,EAAK,IAAG,GAAI,KAAA,IAAS;IACxC,KAAK,EAAA,EAAU,CAAC,EAAK,IAAG,GAAI,KAAA,IAAS;IACtC,OAAM;OAEI,EAAK,SAAA,GAAA,EADf,EAI2F,OAAA;;IAFtF,KAAK,EAAK;IACV,KAAK,EAAK;IACX,OAAM;gCACV,EAcM,OAdN,GAcM;IAbF,EAES,UAFT,GAES,EADF,EAAK,MAAK,EAAA,EAAA;IAEjB,EAIO,QAJP,GAIO,CAFH,EAAkD,GAAA;KAA1C,MAAK;KAAU,OAAM;QAC7B,EAAyB,GAAA,EAAjB,KAAK,EAAK,KAAA,EAAA,MAAA,GAAA,CAAA,MAAA,CAAA,CAAA,CAAA;IAGZ,EAAK,eAAA,GAAA,EADf,EAII,KAJJ,GAII,EADG,EAAK,YAAW,EAAA,EAAA,IAAA,EAAA,IAAA,GAAA;0BAKzB,EAAA,SAAA,GAAA,EAAV,EAiBK,MAjBL,GAiBK,CAhBD,EAeS,UAAA;IAdL,OAAM;IACL,SAAK,AAAA,EAAA,QAAA,MAAE,EAAA,QAAQ,CAAI,EAAA;OACpB,EAIsB,GAAA;IAHjB,MAA+B,EAAA,QAAQ,uBAAA;IAGxC,OAAM;4BAAY,MACtB,EACI,EAAA,QAAmCA,EAAAA,GAAE,kBAAA,GAA8CA,EAAAA,GAAE,mBAAA,EAAA,QAA4D,EAAA,OAAU,OAAO,OAAO,UAAM,KAAA,GAAA,CAAA,CAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,IAAA,EAAA,IAAA,GAAA,CAAA,CAAA,IAAA,EAAA,IAAA,GAAA"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { C as e, M as t, N as n, m as r, n as i, r as a, s as o, t as s, u as c, v as ee, y as l } from "./dist--mE2E_mM.js";
|
|
2
|
-
import { r as u } from "./dist-
|
|
2
|
+
import { r as u } from "./dist-DV82RztV.js";
|
|
3
3
|
//#region ../../node_modules/.pnpm/@lezer+sass@1.1.0/node_modules/@lezer/sass/dist/index.js
|
|
4
4
|
var d = 168, f = 169, p = 170, te = 1, m = 2, h = 3, ne = 171, g = 172, _ = 4, v = 173, y = 5, b = 174, x = 175, S = 176, C = 177, w = 6, T = 7, E = 8, re = 9, D = 0, O = [
|
|
5
5
|
9,
|
|
@@ -374,4 +374,4 @@ function _e(e) {
|
|
|
374
374
|
//#endregion
|
|
375
375
|
export { _e as sass };
|
|
376
376
|
|
|
377
|
-
//# sourceMappingURL=dist-
|
|
377
|
+
//# sourceMappingURL=dist-BHuX2VvC.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dist-C-yeiSHm.js","names":[],"sources":["../../../../node_modules/.pnpm/@lezer+sass@1.1.0/node_modules/@lezer/sass/dist/index.js","../../../../node_modules/.pnpm/@codemirror+lang-sass@6.0.2/node_modules/@codemirror/lang-sass/dist/index.js"],"sourcesContent":["import { ExternalTokenizer, ContextTracker, LRParser } from '@lezer/lr';\nimport { styleTags, tags } from '@lezer/highlight';\n\n// This file was generated by lezer-generator. You probably shouldn't edit it.\nconst indent = 168,\n dedent = 169,\n descendantOp = 170,\n InterpolationEnd = 1,\n InterpolationContinue = 2,\n Unit = 3,\n callee = 171,\n identifier = 172,\n VariableName = 4,\n queryIdentifier = 173,\n InterpolationStart = 5,\n newline = 174,\n blankLineStart = 175,\n eof = 176,\n whitespace = 177,\n LineComment = 6,\n Comment = 7,\n IndentedMixin = 8,\n IndentedInclude = 9,\n Dialect_indented = 0;\n\n/* Hand-written tokenizers for CSS tokens that can't be\n expressed by Lezer's built-in tokenizer. */\n\nconst space = [9, 10, 11, 12, 13, 32, 133, 160, 5760, 8192, 8193, 8194, 8195, 8196, 8197,\n 8198, 8199, 8200, 8201, 8202, 8232, 8233, 8239, 8287, 12288];\nconst colon = 58, parenL = 40, underscore = 95, bracketL = 91, dash = 45, period = 46,\n hash = 35, percent = 37, braceL = 123, braceR = 125, slash = 47, asterisk = 42,\n newlineChar = 10, equals = 61, plus = 43, and = 38;\n\nfunction isAlpha(ch) { return ch >= 65 && ch <= 90 || ch >= 97 && ch <= 122 || ch >= 161 }\n\nfunction isDigit(ch) { return ch >= 48 && ch <= 57 }\n\nfunction startOfComment(input) {\n let next;\n return input.next == slash && ((next = input.peek(1)) == slash || next == asterisk)\n}\n\nconst spaces = new ExternalTokenizer((input, stack) => {\n if (stack.dialectEnabled(Dialect_indented)) {\n let prev;\n if (input.next < 0 && stack.canShift(eof)) {\n input.acceptToken(eof);\n } else if (((prev = input.peek(-1)) == newlineChar || prev < 0) && stack.canShift(blankLineStart)) {\n let spaces = 0;\n while (input.next != newlineChar && space.includes(input.next)) { input.advance(); spaces++; }\n if (input.next == newlineChar || startOfComment(input))\n input.acceptToken(blankLineStart, -spaces);\n else if (spaces)\n input.acceptToken(whitespace);\n } else if (input.next == newlineChar) {\n input.acceptToken(newline, 1);\n } else if (space.includes(input.next)) {\n input.advance();\n while (input.next != newlineChar && space.includes(input.next)) input.advance();\n input.acceptToken(whitespace);\n }\n } else {\n let length = 0;\n while (space.includes(input.next)) {\n input.advance();\n length++;\n }\n if (length) input.acceptToken(whitespace);\n }\n}, {contextual: true});\n\nconst comments = new ExternalTokenizer((input, stack) => {\n if (!startOfComment(input)) return\n input.advance();\n if (stack.dialectEnabled(Dialect_indented)) {\n let indentedComment = -1;\n for (let off = 1;; off++) {\n let prev = input.peek(-off - 1);\n if (prev == newlineChar || prev < 0) {\n indentedComment = off + 1;\n break\n } else if (!space.includes(prev)) {\n break\n }\n }\n if (indentedComment > -1) { // Weird indented-style comment\n let block = input.next == asterisk, end = 0;\n input.advance();\n while (input.next >= 0) {\n if (input.next == newlineChar) {\n input.advance();\n let indented = 0;\n while (input.next != newlineChar && space.includes(input.next)) {\n indented++;\n input.advance();\n }\n if (indented < indentedComment) {\n end = -indented - 1;\n break\n }\n } else if (block && input.next == asterisk && input.peek(1) == slash) {\n end = 2;\n break\n } else {\n input.advance();\n }\n }\n input.acceptToken(block ? Comment : LineComment, end);\n return\n }\n }\n if (input.next == slash) {\n while (input.next != newlineChar && input.next >= 0) input.advance();\n input.acceptToken(LineComment);\n } else {\n input.advance();\n while (input.next >= 0) {\n let {next} = input;\n input.advance();\n if (next == asterisk && input.next == slash) {\n input.advance();\n break\n }\n }\n input.acceptToken(Comment);\n }\n});\n\nconst indentedMixins = new ExternalTokenizer((input, stack) => {\n if ((input.next == plus || input.next == equals) && stack.dialectEnabled(Dialect_indented))\n input.acceptToken(input.next == equals ? IndentedMixin : IndentedInclude, 1);\n});\n\nconst indentation = new ExternalTokenizer((input, stack) => {\n if (!stack.dialectEnabled(Dialect_indented)) return\n let cDepth = stack.context.depth;\n if (input.next < 0 && cDepth) {\n input.acceptToken(dedent);\n return\n }\n let prev = input.peek(-1);\n if (prev == newlineChar) {\n let depth = 0;\n while (input.next != newlineChar && space.includes(input.next)) {\n input.advance();\n depth++;\n }\n if (depth != cDepth &&\n input.next != newlineChar && !startOfComment(input)) {\n if (depth < cDepth) input.acceptToken(dedent, -depth);\n else input.acceptToken(indent);\n }\n }\n});\n\nconst identifiers = new ExternalTokenizer((input, stack) => {\n for (let inside = false, dashes = 0, i = 0;; i++) {\n let {next} = input;\n if (isAlpha(next) || next == dash || next == underscore || (inside && isDigit(next))) {\n if (!inside && (next != dash || i > 0)) inside = true;\n if (dashes === i && next == dash) dashes++;\n input.advance();\n } else if (next == hash && input.peek(1) == braceL) {\n input.acceptToken(InterpolationStart, 2);\n break\n } else {\n if (inside) input.acceptToken(\n dashes == 2 && stack.canShift(VariableName) ? VariableName\n : stack.canShift(queryIdentifier) ? queryIdentifier\n : next == parenL ? callee\n : identifier);\n break\n }\n }\n});\n\nconst interpolationEnd = new ExternalTokenizer(input => {\n if (input.next == braceR) {\n input.advance();\n while (isAlpha(input.next) || input.next == dash || input.next == underscore || isDigit(input.next))\n input.advance();\n if (input.next == hash && input.peek(1) == braceL)\n input.acceptToken(InterpolationContinue, 2);\n else\n input.acceptToken(InterpolationEnd);\n }\n});\n\nconst descendant = new ExternalTokenizer(input => {\n if (space.includes(input.peek(-1))) {\n let {next} = input;\n if (isAlpha(next) || next == underscore || next == hash || next == period ||\n next == bracketL || next == colon && isAlpha(input.peek(1)) || next == dash || next == and || next == asterisk)\n input.acceptToken(descendantOp);\n }\n});\n\nconst unitToken = new ExternalTokenizer(input => {\n if (!space.includes(input.peek(-1))) {\n let {next} = input;\n if (next == percent) { input.advance(); input.acceptToken(Unit); }\n if (isAlpha(next)) {\n do { input.advance(); } while (isAlpha(input.next) || isDigit(input.next))\n input.acceptToken(Unit);\n }\n }\n});\n\nfunction IndentLevel(parent, depth) {\n this.parent = parent;\n this.depth = depth;\n this.hash = (parent ? parent.hash + parent.hash << 8 : 0) + depth + (depth << 4);\n}\n\nconst topIndent = new IndentLevel(null, 0);\n\nconst trackIndent = new ContextTracker({\n start: topIndent,\n shift(context, term, stack, input) {\n if (term == indent) return new IndentLevel(context, stack.pos - input.pos)\n if (term == dedent) return context.parent\n return context\n },\n hash(context) { return context.hash }\n});\n\nconst cssHighlighting = styleTags({\n \"AtKeyword import charset namespace keyframes media supports include mixin use forward extend at-root\": tags.definitionKeyword,\n \"Keyword selector\": tags.keyword,\n \"ControlKeyword\": tags.controlKeyword,\n NamespaceName: tags.namespace,\n KeyframeName: tags.labelName,\n KeyframeRangeName: tags.operatorKeyword,\n TagName: tags.tagName,\n \"ClassName Suffix\": tags.className,\n PseudoClassName: tags.constant(tags.className),\n IdName: tags.labelName,\n \"FeatureName PropertyName\": tags.propertyName,\n AttributeName: tags.attributeName,\n NumberLiteral: tags.number,\n KeywordQuery: tags.keyword,\n UnaryQueryOp: tags.operatorKeyword,\n \"CallTag ValueName\": tags.atom,\n VariableName: tags.variableName,\n SassVariableName: tags.special(tags.variableName),\n Callee: tags.operatorKeyword,\n Unit: tags.unit,\n \"UniversalSelector NestingSelector IndentedMixin IndentedInclude\": tags.definitionOperator,\n MatchOp: tags.compareOperator,\n \"ChildOp SiblingOp, LogicOp\": tags.logicOperator,\n BinOp: tags.arithmeticOperator,\n \"Important Global Default\": tags.modifier,\n Comment: tags.blockComment,\n LineComment: tags.lineComment,\n ColorLiteral: tags.color,\n \"ParenthesizedContent StringLiteral\": tags.string,\n \"InterpolationStart InterpolationContinue InterpolationEnd\": tags.meta,\n \": \\\"...\\\"\": tags.punctuation,\n \"PseudoOp #\": tags.derefOperator,\n \"; ,\": tags.separator,\n \"( )\": tags.paren,\n \"[ ]\": tags.squareBracket,\n \"{ }\": tags.brace\n});\n\n// This file was generated by lezer-generator. You probably shouldn't edit it.\nconst spec_identifier = {__proto__:null,not:62, using:197, as:207, with:211, without:211, hide:225, show:225, if:263, from:269, to:271, through:273, in:279};\nconst spec_callee = {__proto__:null,url:82, \"url-prefix\":82, domain:82, regexp:82, lang:104, \"nth-child\":104, \"nth-last-child\":104, \"nth-of-type\":104, \"nth-last-of-type\":104, dir:104, \"host-context\":104};\nconst spec_AtKeyword = {__proto__:null,\"@import\":162, \"@include\":194, \"@mixin\":200, \"@function\":200, \"@use\":204, \"@extend\":214, \"@at-root\":218, \"@forward\":222, \"@media\":228, \"@charset\":232, \"@namespace\":236, \"@keyframes\":242, \"@supports\":254, \"@if\":258, \"@else\":260, \"@for\":266, \"@each\":276, \"@while\":282, \"@debug\":286, \"@warn\":286, \"@error\":286, \"@return\":286};\nconst spec_queryIdentifier = {__proto__:null,layer:166, not:184, only:184, selector:190};\nconst parser = LRParser.deserialize({\n version: 14,\n states: \"!$WQ`Q+tOOO#fQ+tOOP#mOpOOOOQ#U'#Ch'#ChO#rQ(pO'#CjOOQ#U'#Ci'#CiO%_Q)QO'#GXO%rQ.jO'#CnO&mQ#dO'#D]O'dQ(pO'#CgO'kQ)OO'#D_O'vQ#dO'#DfO'{Q#dO'#DiO(QQ#dO'#DqOOQ#U'#GX'#GXO(VQ(pO'#GXO(^Q(nO'#DuO%rQ.jO'#D}O%rQ.jO'#E`O%rQ.jO'#EcO%rQ.jO'#EeO(cQ)OO'#EjO)TQ)OO'#ElO%rQ.jO'#EnO)bQ)OO'#EqO%rQ.jO'#EsO)|Q)OO'#EuO*XQ)OO'#ExO*aQ)OO'#FOO*uQ)OO'#FbOOQ&Z'#GW'#GWOOQ&Y'#Fe'#FeO+PQ(nO'#FeQ`Q+tOOO%rQ.jO'#FQO+[Q(nO'#FUO+aQ)OO'#FZO%rQ.jO'#F^O%rQ.jO'#F`OOQ&Z'#Fm'#FmO+iQ+uO'#GaO+vQ(oO'#GaQOQ#SOOP,XO#SO'#GVPOOO)CAz)CAzOOQ#U'#Cm'#CmOOQ#U,59W,59WOOQ#i'#Cp'#CpO%rQ.jO'#CsO,xQ.wO'#CuO/dQ.^O,59YO%rQ.jO'#CzOOQ#S'#DP'#DPO/uQ(nO'#DUO/zQ)OO'#DZOOQ#i'#GZ'#GZO0SQ(nO'#DOOOQ#U'#D^'#D^OOQ#U,59w,59wO&mQ#dO,59wO0XQ)OO,59yO'vQ#dO,5:QO'{Q#dO,5:TO(cQ)OO,5:WO(cQ)OO,5:YO(cQ)OO,5:ZO(cQ)OO'#FlO0dQ(nO,59RO0oQ+tO'#DsO0vQ#TO'#DsOOQ&Z,59R,59ROOQ#U'#Da'#DaOOQ#S'#Dd'#DdOOQ#U,59y,59yO0{Q(nO,59yO1QQ(nO,59yOOQ#U'#Dh'#DhOOQ#U,5:Q,5:QOOQ#S'#Dj'#DjO1VQ9`O,5:TOOQ#U'#Dr'#DrOOQ#U,5:],5:]O2YQ.jO,5:aO2dQ.jO,5:iO3`Q.jO,5:zO3mQ.YO,5:}O4OQ.jO,5;POOQ#U'#Cj'#CjO4wQ(pO,5;UO5UQ(pO,5;WOOQ&Z,5;W,5;WO5]Q)OO,5;WO5bQ.jO,5;YOOQ#S'#ET'#ETO6TQ.jO'#E]O6kQ(nO'#GcO*aQ)OO'#EZO7PQ(nO'#E^OOQ#S'#Gd'#GdO0gQ(nO,5;]O4UQ.YO,5;_OOQ#d'#Ew'#EwO+PQ(nO,5;aO7UQ)OO,5;aOOQ#S'#Ez'#EzO7^Q(nO,5;dO7cQ(nO,5;jO7nQ(nO,5;|OOQ&Z'#Gf'#GfOOQ&Y,5<P,5<POOQ&Y-E9c-E9cO3mQ.YO,5;lO7|Q)OO,5;pO8RQ)OO'#GhO8ZQ)OO,5;uO3mQ.YO,5;xO4UQ.YO,5;zOOQ&Z-E9k-E9kO8`Q(oO,5<{OOQ&Z'#Gb'#GbO8qQ+uO'#FpO8`Q(oO,5<{POO#S'#Fd'#FdP9UO#SO,5<qPOOO,5<q,5<qO9dQ.YO,59_OOQ#i,59a,59aO%rQ.jO,59cO%rQ.jO,59hO%rQ.jO'#FiO9rQ#WO1G.tOOQ#k1G.t1G.tO9zQ.oO,59fO<pQ! lO,59pOOQ#d'#D['#D[OOQ#d'#Fh'#FhO<{Q)OO,59uOOQ#i,59u,59uO={Q.jO'#DQOOQ#i,59j,59jOOQ#U1G/c1G/cOOQ#U1G/e1G/eO0{Q(nO1G/eO1QQ(nO1G/eOOQ#U1G/l1G/lO>VQ9`O1G/oO>pQ(pO1G/rO?dQ(pO1G/tO@WQ(pO1G/uO@zQ(pO,5<WOOQ#S-E9j-E9jOOQ&Z1G.m1G.mOAXQ(nO,5:_OA^Q+uO,5:_OAeQ)OO'#DeOAlQ.jO'#DcOOQ#U1G/o1G/oO%rQ.jO1G/oOBkQ.jO'#DwOBuQ.kO1G/{OOQ#T1G/{1G/{OCrQ)OO'#EQO+PQ(nO1G0TO2pQ)OO1G0TODaQ+uO'#GfOOQ&Z1G0f1G0fO0SQ(nO1G0fOOQ&Z1G0i1G0iOOQ&Z1G0k1G0kO0SQ(nO1G0kOFyQ)OO1G0kOOQ&Z1G0p1G0pOOQ&Z1G0r1G0rOGRQ)OO1G0rOGWQ(nO1G0rOG]Q)OO1G0tOOQ&Z1G0t1G0tOGkQ.jO'#FsOG{Q#dO1G0tOHQQ!N^O'#CuOH]Q!NUO'#ETOHkQ!NUO,5:pOHsQ(nO,5:wOOQ#S'#Ge'#GeOHnQ!NUO,5:sO*aQ)OO,5:rOH{Q)OO'#FrOI`Q(nO,5<}OIqQ(nO,5:uO(cQ)OO,5:xOOQ&Z1G0w1G0wOOQ&Z1G0y1G0yOOQ&Z1G0{1G0{O+PQ(nO1G0{OJYQ)OO'#E{OOQ&Z1G1O1G1OOOQ&Z1G1U1G1UOOQ&Z1G1h1G1hOJeQ+uO1G1WO%rQ.jO1G1[OL}Q)OO'#FxOMYQ)OO,5=SO%rQ.jO1G1aOOQ&Z1G1d1G1dOOQ&Z1G1f1G1fOMbQ(oO1G2gOMsQ+uO,5<[OOQ#T,5<[,5<[OOQ#T-E9n-E9nPOO#S-E9b-E9bPOOO1G2]1G2]OOQ#i1G.y1G.yONWQ.oO1G.}OOQ#i1G/S1G/SO!!|Q.^O,5<TOOQ#W-E9g-E9gOOQ#k7+$`7+$`OOQ#i1G/[1G/[O!#_Q(nO1G/[OOQ#d-E9f-E9fOOQ#i1G/a1G/aO!#dQ.jO'#FfO!$qQ.jO'#G]O!&]Q.jO'#GZO!&dQ(nO,59lOOQ#U7+%P7+%POOQ#U7+%Z7+%ZO%rQ.jO7+%ZOOQ&Z1G/y1G/yO!&iQ#TO1G/yO!&nQ(pO'#G_O!&xQ(nO,5:PO!&}Q.jO'#G^O!'XQ(nO,59}O!'^Q.YO7+%ZO!'lQ.YO'#GZO!'}Q(nO,5:cOOQ#T,5:c,5:cO!(VQ.kO'#FoO%rQ.jO'#FoO!)yQ.kO7+%gOOQ#T7+%g7+%gO!*mQ#dO,5:lOOQ&Z7+%o7+%oO+PQ(nO7+%oO7nQ(nO7+&QO+PQ(nO7+&VOOQ#d'#Eh'#EhO!*rQ)OO7+&VO!+QQ(nO7+&^O*aQ)OO7+&^OOQ#d-E9q-E9qOOQ&Z7+&`7+&`O!+VQ.jO'#GgOOQ#d,5<_,5<_OF|Q(nO7+&`O%rQ.jO1G0[O!+qQ.jO1G0_OOQ#S1G0c1G0cOOQ#S1G0^1G0^O!+xQ(nO,5<^OOQ#S-E9p-E9pO!,^Q(pO1G0dOOQ&Z7+&g7+&gO,gQ(vO'#CuOOQ#S'#E}'#E}O!,eQ(nO'#E|OOQ#S'#E|'#E|O!,sQ(nO'#FuO!-OQ)OO,5;gOOQ&Z,5;g,5;gO!-ZQ+uO7+&rO!/sQ)OO7+&rO!0OQ.jO7+&vOOQ#d,5<d,5<dOOQ#d-E9v-E9vO3mQ.YO7+&{OOQ#T1G1v1G1vOOQ#i7+$v7+$vOOQ#d-E9d-E9dO!0aQ.jO'#FgO!0nQ(nO,5<wO!0nQ(nO,5<wO%rQ.jO,5<wOOQ#i1G/W1G/WO!0vQ.YO<<HuOOQ&Z7+%e7+%eO!1UQ)OO'#FkO!1`Q(nO,5<yOOQ#U1G/k1G/kO!1hQ.jO'#FjO!1rQ(nO,5<xOOQ#U1G/i1G/iOOQ#U<<Hu<<HuO1_Q.jO,5<YO!1zQ(nO'#FnOOQ#S-E9l-E9lOOQ#T1G/}1G/}O!2PQ.kO,5<ZOOQ#e-E9m-E9mOOQ#T<<IR<<IROOQ#S'#ES'#ESO!3sQ(nO1G0WOOQ&Z<<IZ<<IZOOQ&Z<<Il<<IlOOQ&Z<<Iq<<IqO0SQ(nO<<IqO*aQ)OO<<IxO!3{Q(nO<<IxO!4TQ.jO'#FtO!4hQ)OO,5=ROG]Q)OO<<IzO!4yQ.jO7+%vOOQ#S'#EV'#EVO!5QQ!NUO7+%yOOQ#S7+&O7+&OOOQ#S,5;h,5;hOJ]Q)OO'#FvO!,sQ(nO,5<aOOQ#d,5<a,5<aOOQ#d-E9s-E9sOOQ&Z1G1R1G1ROOQ&Z-E9u-E9uO!/sQ)OO<<J^O%rQ.jO,5<cOOQ&Z<<J^<<J^O%rQ.jO<<JbOOQ&Z<<Jg<<JgO!5YQ.jO,5<RO!5gQ.jO,5<ROOQ#S-E9e-E9eO!5nQ(nO1G2cO!5vQ.jO1G2cOOQ#UAN>aAN>aO!6QQ(pO,5<VOOQ#S-E9i-E9iO!6[Q.jO,5<UOOQ#S-E9h-E9hO!6fQ.YO1G1tO!6oQ(nO1G1tO!*mQ#dO'#FqO!6zQ(nO7+%rOOQ#d7+%r7+%rO+PQ(nOAN?]O!7SQ(nOAN?dO0gQ(nOAN?dO!7[Q.jO,5<`OOQ#d-E9r-E9rOG]Q)OOAN?fOOQ&ZAN?fAN?fOOQ#S<<Ib<<IbOOQ#S<<Ie<<IeO!7vQ.jO<<IeOOQ#S,5<b,5<bOOQ#S-E9t-E9tOOQ#d1G1{1G1{P!8_Q)OO'#FwOOQ&ZAN?xAN?xO3mQ.YO1G1}O3mQ.YOAN?|OOQ#S1G1m1G1mO%rQ.jO1G1mO!8dQ(nO7+'}OOQ#S7+'`7+'`OOQ#S,5<],5<]OOQ#S-E9o-E9oOOQ#d<<I^<<I^OOQ&ZG24wG24wO0gQ(nOG25OOOQ&ZG25OG25OOOQ&ZG25QG25QO!8lQ(nOAN?POOQ&Z7+'i7+'iOOQ&ZG25hG25hO!8qQ.jO7+'XOOQ&ZLD*jLD*jOOQ#SG24kG24k\",\n stateData: \"!9R~O$wOSVOSUOS$uQQ~OS`OTVOWcOXbO_UOc`OqWOuYO|[O!SYO!ZZO!rmO!saO#TbO#WcO#YdO#_eO#afO#cgO#fhO#hiO#jjO#mkO#slO#urO#ysO$OtO$RuO$TvO$rSO$|RO%S]O~O$m%TP~P`O$u{O~Oq^Xu^Xu!jXw^X|^X!S^X!Z^X!a^X!d^X!h^X$p^X$t^X~Oq${Xu${Xw${X|${X!S${X!Z${X!a${X!d${X!h${X$p${X$t${X~O$r}O!o${X$v${Xf${Xe${X~P$jOS!XOTVO_!XOc!XOf!QOh!XOj!XOo!TOy!VO|!WO$q!UO$r!PO%O!RO~O$r!ZO~Oq!]Ou!^O|!`O!S!^O!Z!_O!a!aO!d!cO!h!fO$p!bO$t!gO~Ow!dO~P&rO!U!mO$q!jO$r!iO~O$r!nO~O$r!pO~O$r!rO~Ou!tO~P$jOu!tO~OTVO_UOqWOuYO|[O!SYO!ZZO$r!yO$|RO%S]O~Of!}O!h!fO$t!gO~P(cOTVOc#UOf#QO#O#SO#R#TO$s#PO!h%VP$t%VP~Oj#YOy!VO$r#XO~Oj#[O$r#[O~OTVOc#UOf#QO#O#SO#R#TO$s#PO~O!o%VP$v%VP~P)bO!o#`O$t#`O$v#`O~Oc#dO~Oc#eO$P%[P~O$m%TX!p%TX$o%TX~P`O!o#kO$t#kO$m%TX!p%TX$o%TX~OU#nOV#nO$t#pO$w#nO~OR#rO$tiX!hiXeiXwiX~OPiXQiXliXmiXqiXTiXciXfiX!oiX!uiX#OiX#RiX$siX$viX#UiX#ZiX#]iX#diXSiX_iXhiXjiXoiXyiX|iX!liX!miX!niX$qiX$riX%OiX$miXviX{iX#{iX#|iX!piX$oiX~P,gOP#wOQ#uOl#sOm#sOq#tO~Of#yO~O{#}O$r#zO~Of$OO~O!U$TO$q!jO$r!iO~Ow!dO!h!fO$t!gO~O!p%TP~P`O$n$_O~Of$`O~Of$aO~O{$bO!_$cO~OS!XOTVO_!XOc!XOf$dOh!XOj!XOo!TOy!VO|!WO$q!UO$r!PO%O!RO~O!h!fO$t!gO~P1_Ol#sOm#sOq#tO!u$gO!o%VP$t%VP$v%VP~P*aOl#sOm#sOq#tO!o#`O$v#`O~O!h!fO#U$lO$t$jO~P2}Ol#sOm#sOq#tO!h!fO$t!gO~O#Z$pO#]$oO$t#`O~P2}Oq!]Ou!^O|!`O!S!^O!Z!_O!a!aO!d!cO$p!bO~O!o#`O$t#`O$v#`O~P4]Of$sO~P&rO#]$tO~O#Z$xO#d$wO$t#`O~P2}OS$}Oh$}Oj$}Oy!VO$q!UO%O$yO~OTVOc#UOf#QO#O#SO#R#TO$s$zO~P5oOm%POw%QO!h%VX$t%VX!o%VX$v%VX~Of%TO~Oj%XOy!VO~O!h%YO~Om%PO!h!fO$t!gO~O!h!fO!o#`O$t$jO$v#`O~O#z%_O~Ow%`O$P%[X~O$P%bO~O!o#kO$t#kO$m%Ta!p%Ta$o%Ta~O!o$dX$m$dX$t$dX!p$dX$o$dX~P`OU#nOV#nO$t%jO$w#nO~Oe%kOl#sOm#sOq#tO~OP%pOQ#uO~Ol#sOm#sOq#tOPnaQnaTnacnafna!ona!una#Ona#Rna$sna$tna$vna!hna#Una#Zna#]na#dnaenaSna_nahnajnaonawnayna|na!lna!mna!nna$qna$rna%Ona$mnavna{na#{na#|na!pna$ona~Oe%qOj%rOz%rO~O{%tO$r#zO~OS!XOTVO_!XOf!QOh!XOj!XOo!TOy!VO|!WO$q!UO$r!PO%O!RO~Oc%wOe%PP~P=TO{%zO!_%{O~Oq!]Ou!^O|!`O!S!^O!Z!_O~Ow!`i!a!`i!d!`i!h!`i$p!`i$t!`i!o!`i$v!`if!`ie!`i~P>_Ow!bi!a!bi!d!bi!h!bi$p!bi$t!bi!o!bi$v!bif!bie!bi~P>_Ow!ci!a!ci!d!ci!h!ci$p!ci$t!ci!o!ci$v!cif!cie!ci~P>_Ow$`a!h$`a$t$`a~P4]O!p%|O~O$o%TP~P`Oe%RP~P(cOe%QP~P%rOS!XOTVO_!XOc!XOf!QOh!XOo!TOy!VO|!WO$q!UO$r!PO%O!RO~Oe&VOj&TO~PAsOl#sOm#sOq#tOw&XO!l&ZO!m&ZO!n&ZO!o!ii$t!ii$v!ii$m!ii!p!ii$o!ii~P%rOf&[OT!tXc!tX!o!tX#O!tX#R!tX$s!tX$t!tX$v!tX~O$n$_OS%YXT%YXW%YXX%YX_%YXc%YXq%YXu%YX|%YX!S%YX!Z%YX!r%YX!s%YX#T%YX#W%YX#Y%YX#_%YX#a%YX#c%YX#f%YX#h%YX#j%YX#m%YX#s%YX#u%YX#y%YX$O%YX$R%YX$T%YX$m%YX$r%YX$|%YX%S%YX!p%YX!o%YX$t%YX$o%YX~O$r!PO$|&aO~O#]&cO~Ou&dO~O!o#`O#d$wO$t#`O$v#`O~O!o%ZP#d%ZP$t%ZP$v%ZP~P%rO$r!PO~OR#rO!|iXeiX~Oe!wXm!wXu!yX!|!yX~Ou&jO!|&kO~Oe&lOm%PO~Ow$fX!h$fX$t$fX!o$fX$v$fX~P*aOw%QO!h%Va$t%Va!o%Va$v%Va~Om%POw!}a!h!}a$t!}a!o!}a$v!}ae!}a~O!p&xO$r&sO%O&rO~O#v&zOS#tiT#tiW#tiX#ti_#tic#tiq#tiu#ti|#ti!S#ti!Z#ti!r#ti!s#ti#T#ti#W#ti#Y#ti#_#ti#a#ti#c#ti#f#ti#h#ti#j#ti#m#ti#s#ti#u#ti#y#ti$O#ti$R#ti$T#ti$m#ti$r#ti$|#ti%S#ti!p#ti!o#ti$t#ti$o#ti~Oc&|Ow$lX$P$lX~Ow%`O$P%[a~O!o#kO$t#kO$m%Ti!p%Ti$o%Ti~O!o$da$m$da$t$da!p$da$o$da~P`Oq#tOPkiQkilkimkiTkickifki!oki!uki#Oki#Rki$ski$tki$vki!hki#Uki#Zki#]ki#dkiekiSki_kihkijkiokiwkiyki|ki!lki!mki!nki$qki$rki%Oki$mkivki{ki#{ki#|ki!pki$oki~Ol#sOm#sOq#tOP$]aQ$]a~Oe'QO~Ol#sOm#sOq#tOS$YXT$YX_$YXc$YXe$YXf$YXh$YXj$YXo$YXv$YXw$YXy$YX|$YX$q$YX$r$YX%O$YX~Ov'UOw'SOe%PX~P%rOS$}XT$}X_$}Xc$}Xe$}Xf$}Xh$}Xj$}Xl$}Xm$}Xo$}Xq$}Xv$}Xw$}Xy$}X|$}X$q$}X$r$}X%O$}X~Ou'VO~P!%OOe'WO~O$o'YO~Ow'ZOe%RX~P4]Oe']O~Ow'^Oe%QX~P%rOe'`O~Ol#sOm#sOq#tO{'aO~Ou'bOe$}Xl$}Xm$}Xq$}X~Oe'eOj'cO~Ol#sOm#sOq#tOS$cXT$cX_$cXc$cXf$cXh$cXj$cXo$cXw$cXy$cX|$cX!l$cX!m$cX!n$cX!o$cX$q$cX$r$cX$t$cX$v$cX%O$cX$m$cX!p$cX$o$cX~Ow&XO!l'hO!m'hO!n'hO!o!iq$t!iq$v!iq$m!iq!p!iq$o!iq~P%rO$r'iO~O!o#`O#]'nO$t#`O$v#`O~Ou'oO~Ol#sOm#sOq#tOw'qO!o%ZX#d%ZX$t%ZX$v%ZX~O$s'uO~P5oOm%POw$fa!h$fa$t$fa!o$fa$v$fa~Oe'wO~P4]O%O&rOw#pX!h#pX$t#pX~Ow'yO!h!fO$t!gO~O!p'}O$r&sO%O&rO~O#v(POS#tqT#tqW#tqX#tq_#tqc#tqq#tqu#tq|#tq!S#tq!Z#tq!r#tq!s#tq#T#tq#W#tq#Y#tq#_#tq#a#tq#c#tq#f#tq#h#tq#j#tq#m#tq#s#tq#u#tq#y#tq$O#tq$R#tq$T#tq$m#tq$r#tq$|#tq%S#tq!p#tq!o#tq$t#tq$o#tq~O!h!fO#w(QO$t!gO~Ol#sOm#sOq#tO#{(SO#|(SO~Oc(VOe$ZXw$ZX~P=TOw'SOe%Pa~Ol#sOm#sOq#tO{(ZO~Oe$_Xw$_X~P(cOw'ZOe%Ra~Oe$^Xw$^X~P%rOw'^Oe%Qa~Ou'bO~Ol#sOm#sOq#tOS$caT$ca_$cac$caf$cah$caj$cao$caw$cay$ca|$ca!l$ca!m$ca!n$ca!o$ca$q$ca$r$ca$t$ca$v$ca%O$ca$m$ca!p$ca$o$ca~Oe(dOq(bO~Oe(gOm%PO~Ow$hX!o$hX#d$hX$t$hX$v$hX~P%rOw'qO!o%Za#d%Za$t%Za$v%Za~Oe(lO~P%rOe(mO!|(nO~Ov(vOe$Zaw$Za~P%rOu(wO~P!%OOw'SOe%Pi~Ow'SOe%Pi~P%rOe$_aw$_a~P4]Oe$^aw$^a~P%rOl#sOm#sOq#tOw(yOe$bij$bi~Oe(|Oq(bO~Oe)OOm%PO~Ol#sOm#sOq#tOw$ha!o$ha#d$ha$t$ha$v$ha~OS$}Oh$}Oj$}Oy!VO$q!UO$s'uO%O&rO~O#w(QO~Ow'SOe%Pq~Oe)WO~Oe$Zqw$Zq~P%rO%Oql!dl~\",\n goto: \"=Y%]PPPPPPPPPPP%^%h%h%{P%h&`&cP(UPP)ZP*YP)ZPP)ZP)ZP+f,j-lPPP-xPPPP)Z/S%h/W%hP/^P/d/j/p%hP/v%h/|P%hP%h%hP%h0S0VP1k1}2XPPPPP%^PP2_P2b'w'w2h'w'wP'wP'w'wP%^PP%^P%^PP2qP%^P%^P%^PP%^P%^P%^P2w%^P2z2}3Q3X%^P%^PPP%^PPPP%^PP%^P%^P%^P3^3d3j4Y4h4n4t4z5Q5W5d5j5p5z6Q6W6b6h6n6t6zPPPPPPPPPPPP7Q7T7aP8WP:_:b:eP:h:q:w;T;p;y=S=VanOPqx!f#l$_%fs^OPefqx!a!b!c!d!f#l$_$`%T%f'ZsTOPefqx!a!b!c!d!f#l$_$`%T%f'ZR!OUb^ef!a!b!c!d$`%T'Z`_OPqx!f#l$_%f!x!XVabcdgiruv!Q!T!t#s#t#u$O$a$c$d$e$w%_%b%v%{&Q&X&Y&j'S'V'^'b'q't(Q(S(U(Y(^(w)Ug#Uhlm!u#Q#S$i%P%Q&d'o!x!XVabcdgiruv!Q!T!t#s#t#u$O$a$c$d$e$w%_%b%v%{&Q&X&Y&j'S'V'^'b'q't(Q(S(U(Y(^(w)UQ&b$pR&i$x!y!XVabcdgiruv!Q!T!t#s#t#u$O$a$c$d$e$w%_%b%v%{&Q&X&Y&j'S'V'^'b'q't(Q(S(U(Y(^(w)U!x!XVabcdgiruv!Q!T!t#s#t#u$O$a$c$d$e$w%_%b%v%{&Q&X&Y&j'S'V'^'b'q't(Q(S(U(Y(^(w)UU$}#Q&k(nU&u%Y&w'yR'x&t!x!XVabcdgiruv!Q!T!t#s#t#u$O$a$c$d$e$w%_%b%v%{&Q&X&Y&j'S'V'^'b'q't(Q(S(U(Y(^(w)UV$}#Q&k(n#P!YVabcdgiruv!Q!T!t#Q#s#t#u$O$a$c$d$e$w%_%b%v%{&Q&X&Y&j&k'S'V'^'b'q't(Q(S(U(Y(^(n(w)UQ$P!YQ&_$lQ&`$oR(e'n!x!XVabcdgiruv!Q!T!t#s#t#u$O$a$c$d$e$w%_%b%v%{&Q&X&Y&j'S'V'^'b'q't(Q(S(U(Y(^(w)UQ#YjU$}#Q&k(nR%X#ZT#{!W#|Q![WR$Q!]Q!kYR$R!^Q$R!mR%y$TQ!lYR$S!^Q$R!lR%y$SQ!oZR$U!_Q!q[R$V!`R!s]Q!hXQ!|fQ$]!eQ$f!tQ$k!vQ$m!wQ$r!{Q%U#VQ%[#^Q%]#_Q%^#cQ%c#gQ'l&_Q'{&vQ(R&zQ(T'OQ(q'zQ(s(PQ)P(gQ)S(tQ)T(uR)V)OSpOqUyP!f$_Q#jxQ%g#lR'P%fa`OPqx!f#l$_%fQ$f!tR(a'bR$i!uQ'j&[R(z(bQ${#QQ'v&kR)R(nQ&b$pR's&iR#ZjR#]kR%Z#]S&v%Y&wR(o'yV&t%Y&w'yQ#o{R%i#oQqOR#bqQ%v$OQ&Q$a^'R%v&Q't(U(Y(^)UQ't&jQ(U'SQ(Y'VQ(^'^R)U(wQ'T%vU(W'T(X(xQ(X'UR(x(YQ#|!WR%s#|Q#v!SR%o#vQ'_&QR(_'_Q'[&OR(]'[Q!eXR$[!eUxP!f$_S#ix%fR%f#lQ&U$dR'd&UQ&Y$eR'g&YQ#myQ%e#jT%h#m%eQ(c'jR({(cQ%R#RR&o%RQ$u#OS&e$u(jR(j'sQ'r&gR(i'rQ&w%YR'|&wQ'z&vR(p'zQ&y%^R(O&yQ%a#eR&}%aR|QSoOq]wPx!f#l$_%f`XOPqx!f#l$_%fQ!zeQ!{fQ$W!aQ$X!bQ$Y!cQ$Z!dQ&O$`Q&p%TR(['ZQ!SVQ!uaQ!vbQ!wcQ!xdQ#OgQ#WiQ#crQ#guQ#hvS#q!Q$dQ#x!TQ$e!tQ%l#sQ%m#tQ%n#ul%u$O$a%v&Q&j'S'V'^'t(U(Y(^(w)UQ&S$cS&W$e&YQ&g$wQ&{%_Q'O%bQ'X%{Q'f&XQ(`'bQ(h'qQ(t(QR(u(SR%x$OR&R$aR&P$`QzPQ$^!fR%}$_X#ly#j#m%eQ#VhQ#_mQ$h!uR&^$iW#Rhm!u$iQ#^lQ$|#QQ%S#SQ&m%PQ&n%QQ'p&dR(f'oQ%O#QQ'v&kR)R(nQ#apQ$k!vQ$n!xQ$q!zQ$v#OQ%V#WQ%W#YQ%]#_Q%d#hQ&]$hQ&f$uQ&q%XQ'k&^Q'l&_S'm&`&bQ(k'sQ(}(eR)Q(jR&h$wR#ft\",\n nodeNames: \"⚠ InterpolationEnd InterpolationContinue Unit VariableName InterpolationStart LineComment Comment IndentedMixin IndentedInclude StyleSheet RuleSet UniversalSelector TagSelector TagName NestingSelector SuffixedSelector Suffix Interpolation SassVariableName ValueName ) ( ParenthesizedValue ColorLiteral NumberLiteral StringLiteral BinaryExpression BinOp LogicOp UnaryExpression LogicOp NamespacedValue . CallExpression Callee ArgList : ... , CallLiteral CallTag ParenthesizedContent ] [ LineNames LineName ClassSelector ClassName PseudoClassSelector :: PseudoClassName PseudoClassName ArgList PseudoClassName ArgList IdSelector # IdName AttributeSelector AttributeName MatchOp ChildSelector ChildOp DescendantSelector SiblingSelector SiblingOp PlaceholderSelector ClassName Block { Declaration PropertyName Map Important Global Default ; } ImportStatement AtKeyword import Layer layer LayerName KeywordQuery FeatureQuery FeatureName BinaryQuery ComparisonQuery CompareOp UnaryQuery LogicOp ParenthesizedQuery SelectorQuery selector IncludeStatement include Keyword MixinStatement mixin UseStatement use Keyword Star Keyword ExtendStatement extend RootStatement at-root ForwardStatement forward Keyword MediaStatement media CharsetStatement charset NamespaceStatement namespace NamespaceName KeyframesStatement keyframes KeyframeName KeyframeList KeyframeSelector KeyframeRangeName SupportsStatement supports IfStatement ControlKeyword ControlKeyword Keyword ForStatement ControlKeyword Keyword Keyword Keyword EachStatement ControlKeyword Keyword WhileStatement ControlKeyword OutputStatement ControlKeyword AtRule Styles\",\n maxTerm: 196,\n context: trackIndent,\n nodeProps: [\n [\"openedBy\", 1,\"InterpolationStart\",5,\"InterpolationEnd\",21,\"(\",43,\"[\",78,\"{\"],\n [\"isolate\", -3,6,7,26,\"\"],\n [\"closedBy\", 22,\")\",44,\"]\",70,\"}\"]\n ],\n propSources: [cssHighlighting],\n skippedNodes: [0,6,7,146],\n repeatNodeCount: 21,\n tokenData: \"!$Q~RyOq#rqr$jrs0jst2^tu8{uv;hvw;{wx<^xy={yz>^z{>c{|>||}Co}!ODQ!O!PDo!P!QFY!Q![Fk![!]Gf!]!^Hb!^!_Hs!_!`Is!`!aJ^!a!b#r!b!cKa!c!}#r!}#OMn#O#P#r#P#QNP#Q#RNb#R#T#r#T#UNw#U#c#r#c#d!!Y#d#o#r#o#p!!o#p#qNb#q#r!#Q#r#s!#c#s;'S#r;'S;=`!#z<%lO#rW#uSOy$Rz;'S$R;'S;=`$d<%lO$RW$WSzWOy$Rz;'S$R;'S;=`$d<%lO$RW$gP;=`<%l$RY$m[Oy$Rz!_$R!_!`%c!`#W$R#W#X%v#X#Z$R#Z#[)Z#[#]$R#]#^,V#^;'S$R;'S;=`$d<%lO$RY%jSzWlQOy$Rz;'S$R;'S;=`$d<%lO$RY%{UzWOy$Rz#X$R#X#Y&_#Y;'S$R;'S;=`$d<%lO$RY&dUzWOy$Rz#Y$R#Y#Z&v#Z;'S$R;'S;=`$d<%lO$RY&{UzWOy$Rz#T$R#T#U'_#U;'S$R;'S;=`$d<%lO$RY'dUzWOy$Rz#i$R#i#j'v#j;'S$R;'S;=`$d<%lO$RY'{UzWOy$Rz#`$R#`#a(_#a;'S$R;'S;=`$d<%lO$RY(dUzWOy$Rz#h$R#h#i(v#i;'S$R;'S;=`$d<%lO$RY(}S!nQzWOy$Rz;'S$R;'S;=`$d<%lO$RY)`UzWOy$Rz#`$R#`#a)r#a;'S$R;'S;=`$d<%lO$RY)wUzWOy$Rz#c$R#c#d*Z#d;'S$R;'S;=`$d<%lO$RY*`UzWOy$Rz#U$R#U#V*r#V;'S$R;'S;=`$d<%lO$RY*wUzWOy$Rz#T$R#T#U+Z#U;'S$R;'S;=`$d<%lO$RY+`UzWOy$Rz#`$R#`#a+r#a;'S$R;'S;=`$d<%lO$RY+yS!mQzWOy$Rz;'S$R;'S;=`$d<%lO$RY,[UzWOy$Rz#a$R#a#b,n#b;'S$R;'S;=`$d<%lO$RY,sUzWOy$Rz#d$R#d#e-V#e;'S$R;'S;=`$d<%lO$RY-[UzWOy$Rz#c$R#c#d-n#d;'S$R;'S;=`$d<%lO$RY-sUzWOy$Rz#f$R#f#g.V#g;'S$R;'S;=`$d<%lO$RY.[UzWOy$Rz#h$R#h#i.n#i;'S$R;'S;=`$d<%lO$RY.sUzWOy$Rz#T$R#T#U/V#U;'S$R;'S;=`$d<%lO$RY/[UzWOy$Rz#b$R#b#c/n#c;'S$R;'S;=`$d<%lO$RY/sUzWOy$Rz#h$R#h#i0V#i;'S$R;'S;=`$d<%lO$RY0^S!lQzWOy$Rz;'S$R;'S;=`$d<%lO$R~0mWOY0jZr0jrs1Vs#O0j#O#P1[#P;'S0j;'S;=`2W<%lO0j~1[Oj~~1_RO;'S0j;'S;=`1h;=`O0j~1kXOY0jZr0jrs1Vs#O0j#O#P1[#P;'S0j;'S;=`2W;=`<%l0j<%lO0j~2ZP;=`<%l0jZ2cY!ZPOy$Rz!Q$R!Q![3R![!c$R!c!i3R!i#T$R#T#Z3R#Z;'S$R;'S;=`$d<%lO$RY3WYzWOy$Rz!Q$R!Q![3v![!c$R!c!i3v!i#T$R#T#Z3v#Z;'S$R;'S;=`$d<%lO$RY3{YzWOy$Rz!Q$R!Q![4k![!c$R!c!i4k!i#T$R#T#Z4k#Z;'S$R;'S;=`$d<%lO$RY4rYhQzWOy$Rz!Q$R!Q![5b![!c$R!c!i5b!i#T$R#T#Z5b#Z;'S$R;'S;=`$d<%lO$RY5iYhQzWOy$Rz!Q$R!Q![6X![!c$R!c!i6X!i#T$R#T#Z6X#Z;'S$R;'S;=`$d<%lO$RY6^YzWOy$Rz!Q$R!Q![6|![!c$R!c!i6|!i#T$R#T#Z6|#Z;'S$R;'S;=`$d<%lO$RY7TYhQzWOy$Rz!Q$R!Q![7s![!c$R!c!i7s!i#T$R#T#Z7s#Z;'S$R;'S;=`$d<%lO$RY7xYzWOy$Rz!Q$R!Q![8h![!c$R!c!i8h!i#T$R#T#Z8h#Z;'S$R;'S;=`$d<%lO$RY8oShQzWOy$Rz;'S$R;'S;=`$d<%lO$R_9O`Oy$Rz}$R}!O:Q!O!Q$R!Q![:Q![!_$R!_!`;T!`!c$R!c!}:Q!}#R$R#R#S:Q#S#T$R#T#o:Q#o;'S$R;'S;=`$d<%lO$RZ:X^zWcROy$Rz}$R}!O:Q!O!Q$R!Q![:Q![!c$R!c!}:Q!}#R$R#R#S:Q#S#T$R#T#o:Q#o;'S$R;'S;=`$d<%lO$R[;[S!_SzWOy$Rz;'S$R;'S;=`$d<%lO$RZ;oS%SPlQOy$Rz;'S$R;'S;=`$d<%lO$RZ<QS_ROy$Rz;'S$R;'S;=`$d<%lO$R~<aWOY<^Zw<^wx1Vx#O<^#O#P<y#P;'S<^;'S;=`=u<%lO<^~<|RO;'S<^;'S;=`=V;=`O<^~=YXOY<^Zw<^wx1Vx#O<^#O#P<y#P;'S<^;'S;=`=u;=`<%l<^<%lO<^~=xP;=`<%l<^Z>QSfROy$Rz;'S$R;'S;=`$d<%lO$R~>cOe~_>jU$|PlQOy$Rz!_$R!_!`;T!`;'S$R;'S;=`$d<%lO$RZ?TWlQ!dPOy$Rz!O$R!O!P?m!P!Q$R!Q![Br![;'S$R;'S;=`$d<%lO$RZ?rUzWOy$Rz!Q$R!Q![@U![;'S$R;'S;=`$d<%lO$RZ@]YzW%OROy$Rz!Q$R!Q![@U![!g$R!g!h@{!h#X$R#X#Y@{#Y;'S$R;'S;=`$d<%lO$RZAQYzWOy$Rz{$R{|Ap|}$R}!OAp!O!Q$R!Q![BX![;'S$R;'S;=`$d<%lO$RZAuUzWOy$Rz!Q$R!Q![BX![;'S$R;'S;=`$d<%lO$RZB`UzW%OROy$Rz!Q$R!Q![BX![;'S$R;'S;=`$d<%lO$RZBy[zW%OROy$Rz!O$R!O!P@U!P!Q$R!Q![Br![!g$R!g!h@{!h#X$R#X#Y@{#Y;'S$R;'S;=`$d<%lO$RZCtSwROy$Rz;'S$R;'S;=`$d<%lO$RZDVWlQOy$Rz!O$R!O!P?m!P!Q$R!Q![Br![;'S$R;'S;=`$d<%lO$RZDtWqROy$Rz!O$R!O!PE^!P!Q$R!Q![@U![;'S$R;'S;=`$d<%lO$RYEcUzWOy$Rz!O$R!O!PEu!P;'S$R;'S;=`$d<%lO$RYE|SvQzWOy$Rz;'S$R;'S;=`$d<%lO$RYF_SlQOy$Rz;'S$R;'S;=`$d<%lO$RZFp[%OROy$Rz!O$R!O!P@U!P!Q$R!Q![Br![!g$R!g!h@{!h#X$R#X#Y@{#Y;'S$R;'S;=`$d<%lO$RkGkUucOy$Rz![$R![!]G}!];'S$R;'S;=`$d<%lO$RXHUS!SPzWOy$Rz;'S$R;'S;=`$d<%lO$RZHgS!oROy$Rz;'S$R;'S;=`$d<%lO$RjHzU!|`lQOy$Rz!_$R!_!`I^!`;'S$R;'S;=`$d<%lO$RjIgS!|`zWlQOy$Rz;'S$R;'S;=`$d<%lO$RnIzU!|`!_SOy$Rz!_$R!_!`%c!`;'S$R;'S;=`$d<%lO$RkJgV!aP!|`lQOy$Rz!_$R!_!`I^!`!aJ|!a;'S$R;'S;=`$d<%lO$RXKTS!aPzWOy$Rz;'S$R;'S;=`$d<%lO$RXKdYOy$Rz}$R}!OLS!O!c$R!c!}Lq!}#T$R#T#oLq#o;'S$R;'S;=`$d<%lO$RXLXWzWOy$Rz!c$R!c!}Lq!}#T$R#T#oLq#o;'S$R;'S;=`$d<%lO$RXLx[!rPzWOy$Rz}$R}!OLq!O!Q$R!Q![Lq![!c$R!c!}Lq!}#T$R#T#oLq#o;'S$R;'S;=`$d<%lO$RZMsS|ROy$Rz;'S$R;'S;=`$d<%lO$R_NUS{VOy$Rz;'S$R;'S;=`$d<%lO$R[NeUOy$Rz!_$R!_!`;T!`;'S$R;'S;=`$d<%lO$RkNzUOy$Rz#b$R#b#c! ^#c;'S$R;'S;=`$d<%lO$Rk! cUzWOy$Rz#W$R#W#X! u#X;'S$R;'S;=`$d<%lO$Rk! |SmczWOy$Rz;'S$R;'S;=`$d<%lO$Rk!!]UOy$Rz#f$R#f#g! u#g;'S$R;'S;=`$d<%lO$RZ!!tS!hROy$Rz;'S$R;'S;=`$d<%lO$RZ!#VS!pROy$Rz;'S$R;'S;=`$d<%lO$R]!#hU!dPOy$Rz!_$R!_!`;T!`;'S$R;'S;=`$d<%lO$RW!#}P;=`<%l#r\",\n tokenizers: [indentation, descendant, interpolationEnd, unitToken, identifiers, spaces, comments, indentedMixins, 0, 1, 2, 3, 4],\n topRules: {\"StyleSheet\":[0,10],\"Styles\":[1,145]},\n dialects: {indented: 0},\n specialized: [{term: 172, get: (value) => spec_identifier[value] || -1},{term: 171, get: (value) => spec_callee[value] || -1},{term: 80, get: (value) => spec_AtKeyword[value] || -1},{term: 173, get: (value) => spec_queryIdentifier[value] || -1}],\n tokenPrec: 3217\n});\n\nexport { parser };\n","import { parser } from '@lezer/sass';\nimport { LRLanguage, foldNodeProp, foldInside, indentNodeProp, continuedIndent, LanguageSupport } from '@codemirror/language';\nimport { defineCSSCompletionSource } from '@codemirror/lang-css';\n\n/**\nA language provider based on the [Lezer Sass\nparser](https://github.com/lezer-parser/sass), extended with\nhighlighting and indentation information.\n*/\nconst sassLanguage = /*@__PURE__*/LRLanguage.define({\n name: \"sass\",\n parser: /*@__PURE__*/parser.configure({\n props: [\n /*@__PURE__*/foldNodeProp.add({\n Block: foldInside,\n Comment(node, state) {\n return { from: node.from + 2, to: state.sliceDoc(node.to - 2, node.to) == \"*/\" ? node.to - 2 : node.to };\n }\n }),\n /*@__PURE__*/indentNodeProp.add({\n Declaration: /*@__PURE__*/continuedIndent()\n })\n ]\n }),\n languageData: {\n commentTokens: { block: { open: \"/*\", close: \"*/\" }, line: \"//\" },\n indentOnInput: /^\\s*\\}$/,\n wordChars: \"$-\"\n }\n});\nconst indentedSassLanguage = /*@__PURE__*/sassLanguage.configure({\n dialect: \"indented\",\n props: [\n /*@__PURE__*/indentNodeProp.add({\n \"Block RuleSet\": cx => cx.baseIndent + cx.unit\n }),\n /*@__PURE__*/foldNodeProp.add({\n Block: node => ({ from: node.from, to: node.to })\n })\n ]\n});\n/**\nProperty, variable, $-variable, and value keyword completion\nsource.\n*/\nconst sassCompletionSource = /*@__PURE__*/defineCSSCompletionSource(node => node.name == \"VariableName\" || node.name == \"SassVariableName\");\n/**\nLanguage support for CSS.\n*/\nfunction sass(config) {\n return new LanguageSupport((config === null || config === void 0 ? void 0 : config.indented) ? indentedSassLanguage : sassLanguage, sassLanguage.data.of({ autocomplete: sassCompletionSource }));\n}\n\nexport { sass, sassCompletionSource, sassLanguage };\n"],"x_google_ignoreList":[0,1],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"dist-BHuX2VvC.js","names":[],"sources":["../../../../node_modules/.pnpm/@lezer+sass@1.1.0/node_modules/@lezer/sass/dist/index.js","../../../../node_modules/.pnpm/@codemirror+lang-sass@6.0.2/node_modules/@codemirror/lang-sass/dist/index.js"],"sourcesContent":["import { ExternalTokenizer, ContextTracker, LRParser } from '@lezer/lr';\nimport { styleTags, tags } from '@lezer/highlight';\n\n// This file was generated by lezer-generator. You probably shouldn't edit it.\nconst indent = 168,\n dedent = 169,\n descendantOp = 170,\n InterpolationEnd = 1,\n InterpolationContinue = 2,\n Unit = 3,\n callee = 171,\n identifier = 172,\n VariableName = 4,\n queryIdentifier = 173,\n InterpolationStart = 5,\n newline = 174,\n blankLineStart = 175,\n eof = 176,\n whitespace = 177,\n LineComment = 6,\n Comment = 7,\n IndentedMixin = 8,\n IndentedInclude = 9,\n Dialect_indented = 0;\n\n/* Hand-written tokenizers for CSS tokens that can't be\n expressed by Lezer's built-in tokenizer. */\n\nconst space = [9, 10, 11, 12, 13, 32, 133, 160, 5760, 8192, 8193, 8194, 8195, 8196, 8197,\n 8198, 8199, 8200, 8201, 8202, 8232, 8233, 8239, 8287, 12288];\nconst colon = 58, parenL = 40, underscore = 95, bracketL = 91, dash = 45, period = 46,\n hash = 35, percent = 37, braceL = 123, braceR = 125, slash = 47, asterisk = 42,\n newlineChar = 10, equals = 61, plus = 43, and = 38;\n\nfunction isAlpha(ch) { return ch >= 65 && ch <= 90 || ch >= 97 && ch <= 122 || ch >= 161 }\n\nfunction isDigit(ch) { return ch >= 48 && ch <= 57 }\n\nfunction startOfComment(input) {\n let next;\n return input.next == slash && ((next = input.peek(1)) == slash || next == asterisk)\n}\n\nconst spaces = new ExternalTokenizer((input, stack) => {\n if (stack.dialectEnabled(Dialect_indented)) {\n let prev;\n if (input.next < 0 && stack.canShift(eof)) {\n input.acceptToken(eof);\n } else if (((prev = input.peek(-1)) == newlineChar || prev < 0) && stack.canShift(blankLineStart)) {\n let spaces = 0;\n while (input.next != newlineChar && space.includes(input.next)) { input.advance(); spaces++; }\n if (input.next == newlineChar || startOfComment(input))\n input.acceptToken(blankLineStart, -spaces);\n else if (spaces)\n input.acceptToken(whitespace);\n } else if (input.next == newlineChar) {\n input.acceptToken(newline, 1);\n } else if (space.includes(input.next)) {\n input.advance();\n while (input.next != newlineChar && space.includes(input.next)) input.advance();\n input.acceptToken(whitespace);\n }\n } else {\n let length = 0;\n while (space.includes(input.next)) {\n input.advance();\n length++;\n }\n if (length) input.acceptToken(whitespace);\n }\n}, {contextual: true});\n\nconst comments = new ExternalTokenizer((input, stack) => {\n if (!startOfComment(input)) return\n input.advance();\n if (stack.dialectEnabled(Dialect_indented)) {\n let indentedComment = -1;\n for (let off = 1;; off++) {\n let prev = input.peek(-off - 1);\n if (prev == newlineChar || prev < 0) {\n indentedComment = off + 1;\n break\n } else if (!space.includes(prev)) {\n break\n }\n }\n if (indentedComment > -1) { // Weird indented-style comment\n let block = input.next == asterisk, end = 0;\n input.advance();\n while (input.next >= 0) {\n if (input.next == newlineChar) {\n input.advance();\n let indented = 0;\n while (input.next != newlineChar && space.includes(input.next)) {\n indented++;\n input.advance();\n }\n if (indented < indentedComment) {\n end = -indented - 1;\n break\n }\n } else if (block && input.next == asterisk && input.peek(1) == slash) {\n end = 2;\n break\n } else {\n input.advance();\n }\n }\n input.acceptToken(block ? Comment : LineComment, end);\n return\n }\n }\n if (input.next == slash) {\n while (input.next != newlineChar && input.next >= 0) input.advance();\n input.acceptToken(LineComment);\n } else {\n input.advance();\n while (input.next >= 0) {\n let {next} = input;\n input.advance();\n if (next == asterisk && input.next == slash) {\n input.advance();\n break\n }\n }\n input.acceptToken(Comment);\n }\n});\n\nconst indentedMixins = new ExternalTokenizer((input, stack) => {\n if ((input.next == plus || input.next == equals) && stack.dialectEnabled(Dialect_indented))\n input.acceptToken(input.next == equals ? IndentedMixin : IndentedInclude, 1);\n});\n\nconst indentation = new ExternalTokenizer((input, stack) => {\n if (!stack.dialectEnabled(Dialect_indented)) return\n let cDepth = stack.context.depth;\n if (input.next < 0 && cDepth) {\n input.acceptToken(dedent);\n return\n }\n let prev = input.peek(-1);\n if (prev == newlineChar) {\n let depth = 0;\n while (input.next != newlineChar && space.includes(input.next)) {\n input.advance();\n depth++;\n }\n if (depth != cDepth &&\n input.next != newlineChar && !startOfComment(input)) {\n if (depth < cDepth) input.acceptToken(dedent, -depth);\n else input.acceptToken(indent);\n }\n }\n});\n\nconst identifiers = new ExternalTokenizer((input, stack) => {\n for (let inside = false, dashes = 0, i = 0;; i++) {\n let {next} = input;\n if (isAlpha(next) || next == dash || next == underscore || (inside && isDigit(next))) {\n if (!inside && (next != dash || i > 0)) inside = true;\n if (dashes === i && next == dash) dashes++;\n input.advance();\n } else if (next == hash && input.peek(1) == braceL) {\n input.acceptToken(InterpolationStart, 2);\n break\n } else {\n if (inside) input.acceptToken(\n dashes == 2 && stack.canShift(VariableName) ? VariableName\n : stack.canShift(queryIdentifier) ? queryIdentifier\n : next == parenL ? callee\n : identifier);\n break\n }\n }\n});\n\nconst interpolationEnd = new ExternalTokenizer(input => {\n if (input.next == braceR) {\n input.advance();\n while (isAlpha(input.next) || input.next == dash || input.next == underscore || isDigit(input.next))\n input.advance();\n if (input.next == hash && input.peek(1) == braceL)\n input.acceptToken(InterpolationContinue, 2);\n else\n input.acceptToken(InterpolationEnd);\n }\n});\n\nconst descendant = new ExternalTokenizer(input => {\n if (space.includes(input.peek(-1))) {\n let {next} = input;\n if (isAlpha(next) || next == underscore || next == hash || next == period ||\n next == bracketL || next == colon && isAlpha(input.peek(1)) || next == dash || next == and || next == asterisk)\n input.acceptToken(descendantOp);\n }\n});\n\nconst unitToken = new ExternalTokenizer(input => {\n if (!space.includes(input.peek(-1))) {\n let {next} = input;\n if (next == percent) { input.advance(); input.acceptToken(Unit); }\n if (isAlpha(next)) {\n do { input.advance(); } while (isAlpha(input.next) || isDigit(input.next))\n input.acceptToken(Unit);\n }\n }\n});\n\nfunction IndentLevel(parent, depth) {\n this.parent = parent;\n this.depth = depth;\n this.hash = (parent ? parent.hash + parent.hash << 8 : 0) + depth + (depth << 4);\n}\n\nconst topIndent = new IndentLevel(null, 0);\n\nconst trackIndent = new ContextTracker({\n start: topIndent,\n shift(context, term, stack, input) {\n if (term == indent) return new IndentLevel(context, stack.pos - input.pos)\n if (term == dedent) return context.parent\n return context\n },\n hash(context) { return context.hash }\n});\n\nconst cssHighlighting = styleTags({\n \"AtKeyword import charset namespace keyframes media supports include mixin use forward extend at-root\": tags.definitionKeyword,\n \"Keyword selector\": tags.keyword,\n \"ControlKeyword\": tags.controlKeyword,\n NamespaceName: tags.namespace,\n KeyframeName: tags.labelName,\n KeyframeRangeName: tags.operatorKeyword,\n TagName: tags.tagName,\n \"ClassName Suffix\": tags.className,\n PseudoClassName: tags.constant(tags.className),\n IdName: tags.labelName,\n \"FeatureName PropertyName\": tags.propertyName,\n AttributeName: tags.attributeName,\n NumberLiteral: tags.number,\n KeywordQuery: tags.keyword,\n UnaryQueryOp: tags.operatorKeyword,\n \"CallTag ValueName\": tags.atom,\n VariableName: tags.variableName,\n SassVariableName: tags.special(tags.variableName),\n Callee: tags.operatorKeyword,\n Unit: tags.unit,\n \"UniversalSelector NestingSelector IndentedMixin IndentedInclude\": tags.definitionOperator,\n MatchOp: tags.compareOperator,\n \"ChildOp SiblingOp, LogicOp\": tags.logicOperator,\n BinOp: tags.arithmeticOperator,\n \"Important Global Default\": tags.modifier,\n Comment: tags.blockComment,\n LineComment: tags.lineComment,\n ColorLiteral: tags.color,\n \"ParenthesizedContent StringLiteral\": tags.string,\n \"InterpolationStart InterpolationContinue InterpolationEnd\": tags.meta,\n \": \\\"...\\\"\": tags.punctuation,\n \"PseudoOp #\": tags.derefOperator,\n \"; ,\": tags.separator,\n \"( )\": tags.paren,\n \"[ ]\": tags.squareBracket,\n \"{ }\": tags.brace\n});\n\n// This file was generated by lezer-generator. You probably shouldn't edit it.\nconst spec_identifier = {__proto__:null,not:62, using:197, as:207, with:211, without:211, hide:225, show:225, if:263, from:269, to:271, through:273, in:279};\nconst spec_callee = {__proto__:null,url:82, \"url-prefix\":82, domain:82, regexp:82, lang:104, \"nth-child\":104, \"nth-last-child\":104, \"nth-of-type\":104, \"nth-last-of-type\":104, dir:104, \"host-context\":104};\nconst spec_AtKeyword = {__proto__:null,\"@import\":162, \"@include\":194, \"@mixin\":200, \"@function\":200, \"@use\":204, \"@extend\":214, \"@at-root\":218, \"@forward\":222, \"@media\":228, \"@charset\":232, \"@namespace\":236, \"@keyframes\":242, \"@supports\":254, \"@if\":258, \"@else\":260, \"@for\":266, \"@each\":276, \"@while\":282, \"@debug\":286, \"@warn\":286, \"@error\":286, \"@return\":286};\nconst spec_queryIdentifier = {__proto__:null,layer:166, not:184, only:184, selector:190};\nconst parser = LRParser.deserialize({\n version: 14,\n states: \"!$WQ`Q+tOOO#fQ+tOOP#mOpOOOOQ#U'#Ch'#ChO#rQ(pO'#CjOOQ#U'#Ci'#CiO%_Q)QO'#GXO%rQ.jO'#CnO&mQ#dO'#D]O'dQ(pO'#CgO'kQ)OO'#D_O'vQ#dO'#DfO'{Q#dO'#DiO(QQ#dO'#DqOOQ#U'#GX'#GXO(VQ(pO'#GXO(^Q(nO'#DuO%rQ.jO'#D}O%rQ.jO'#E`O%rQ.jO'#EcO%rQ.jO'#EeO(cQ)OO'#EjO)TQ)OO'#ElO%rQ.jO'#EnO)bQ)OO'#EqO%rQ.jO'#EsO)|Q)OO'#EuO*XQ)OO'#ExO*aQ)OO'#FOO*uQ)OO'#FbOOQ&Z'#GW'#GWOOQ&Y'#Fe'#FeO+PQ(nO'#FeQ`Q+tOOO%rQ.jO'#FQO+[Q(nO'#FUO+aQ)OO'#FZO%rQ.jO'#F^O%rQ.jO'#F`OOQ&Z'#Fm'#FmO+iQ+uO'#GaO+vQ(oO'#GaQOQ#SOOP,XO#SO'#GVPOOO)CAz)CAzOOQ#U'#Cm'#CmOOQ#U,59W,59WOOQ#i'#Cp'#CpO%rQ.jO'#CsO,xQ.wO'#CuO/dQ.^O,59YO%rQ.jO'#CzOOQ#S'#DP'#DPO/uQ(nO'#DUO/zQ)OO'#DZOOQ#i'#GZ'#GZO0SQ(nO'#DOOOQ#U'#D^'#D^OOQ#U,59w,59wO&mQ#dO,59wO0XQ)OO,59yO'vQ#dO,5:QO'{Q#dO,5:TO(cQ)OO,5:WO(cQ)OO,5:YO(cQ)OO,5:ZO(cQ)OO'#FlO0dQ(nO,59RO0oQ+tO'#DsO0vQ#TO'#DsOOQ&Z,59R,59ROOQ#U'#Da'#DaOOQ#S'#Dd'#DdOOQ#U,59y,59yO0{Q(nO,59yO1QQ(nO,59yOOQ#U'#Dh'#DhOOQ#U,5:Q,5:QOOQ#S'#Dj'#DjO1VQ9`O,5:TOOQ#U'#Dr'#DrOOQ#U,5:],5:]O2YQ.jO,5:aO2dQ.jO,5:iO3`Q.jO,5:zO3mQ.YO,5:}O4OQ.jO,5;POOQ#U'#Cj'#CjO4wQ(pO,5;UO5UQ(pO,5;WOOQ&Z,5;W,5;WO5]Q)OO,5;WO5bQ.jO,5;YOOQ#S'#ET'#ETO6TQ.jO'#E]O6kQ(nO'#GcO*aQ)OO'#EZO7PQ(nO'#E^OOQ#S'#Gd'#GdO0gQ(nO,5;]O4UQ.YO,5;_OOQ#d'#Ew'#EwO+PQ(nO,5;aO7UQ)OO,5;aOOQ#S'#Ez'#EzO7^Q(nO,5;dO7cQ(nO,5;jO7nQ(nO,5;|OOQ&Z'#Gf'#GfOOQ&Y,5<P,5<POOQ&Y-E9c-E9cO3mQ.YO,5;lO7|Q)OO,5;pO8RQ)OO'#GhO8ZQ)OO,5;uO3mQ.YO,5;xO4UQ.YO,5;zOOQ&Z-E9k-E9kO8`Q(oO,5<{OOQ&Z'#Gb'#GbO8qQ+uO'#FpO8`Q(oO,5<{POO#S'#Fd'#FdP9UO#SO,5<qPOOO,5<q,5<qO9dQ.YO,59_OOQ#i,59a,59aO%rQ.jO,59cO%rQ.jO,59hO%rQ.jO'#FiO9rQ#WO1G.tOOQ#k1G.t1G.tO9zQ.oO,59fO<pQ! lO,59pOOQ#d'#D['#D[OOQ#d'#Fh'#FhO<{Q)OO,59uOOQ#i,59u,59uO={Q.jO'#DQOOQ#i,59j,59jOOQ#U1G/c1G/cOOQ#U1G/e1G/eO0{Q(nO1G/eO1QQ(nO1G/eOOQ#U1G/l1G/lO>VQ9`O1G/oO>pQ(pO1G/rO?dQ(pO1G/tO@WQ(pO1G/uO@zQ(pO,5<WOOQ#S-E9j-E9jOOQ&Z1G.m1G.mOAXQ(nO,5:_OA^Q+uO,5:_OAeQ)OO'#DeOAlQ.jO'#DcOOQ#U1G/o1G/oO%rQ.jO1G/oOBkQ.jO'#DwOBuQ.kO1G/{OOQ#T1G/{1G/{OCrQ)OO'#EQO+PQ(nO1G0TO2pQ)OO1G0TODaQ+uO'#GfOOQ&Z1G0f1G0fO0SQ(nO1G0fOOQ&Z1G0i1G0iOOQ&Z1G0k1G0kO0SQ(nO1G0kOFyQ)OO1G0kOOQ&Z1G0p1G0pOOQ&Z1G0r1G0rOGRQ)OO1G0rOGWQ(nO1G0rOG]Q)OO1G0tOOQ&Z1G0t1G0tOGkQ.jO'#FsOG{Q#dO1G0tOHQQ!N^O'#CuOH]Q!NUO'#ETOHkQ!NUO,5:pOHsQ(nO,5:wOOQ#S'#Ge'#GeOHnQ!NUO,5:sO*aQ)OO,5:rOH{Q)OO'#FrOI`Q(nO,5<}OIqQ(nO,5:uO(cQ)OO,5:xOOQ&Z1G0w1G0wOOQ&Z1G0y1G0yOOQ&Z1G0{1G0{O+PQ(nO1G0{OJYQ)OO'#E{OOQ&Z1G1O1G1OOOQ&Z1G1U1G1UOOQ&Z1G1h1G1hOJeQ+uO1G1WO%rQ.jO1G1[OL}Q)OO'#FxOMYQ)OO,5=SO%rQ.jO1G1aOOQ&Z1G1d1G1dOOQ&Z1G1f1G1fOMbQ(oO1G2gOMsQ+uO,5<[OOQ#T,5<[,5<[OOQ#T-E9n-E9nPOO#S-E9b-E9bPOOO1G2]1G2]OOQ#i1G.y1G.yONWQ.oO1G.}OOQ#i1G/S1G/SO!!|Q.^O,5<TOOQ#W-E9g-E9gOOQ#k7+$`7+$`OOQ#i1G/[1G/[O!#_Q(nO1G/[OOQ#d-E9f-E9fOOQ#i1G/a1G/aO!#dQ.jO'#FfO!$qQ.jO'#G]O!&]Q.jO'#GZO!&dQ(nO,59lOOQ#U7+%P7+%POOQ#U7+%Z7+%ZO%rQ.jO7+%ZOOQ&Z1G/y1G/yO!&iQ#TO1G/yO!&nQ(pO'#G_O!&xQ(nO,5:PO!&}Q.jO'#G^O!'XQ(nO,59}O!'^Q.YO7+%ZO!'lQ.YO'#GZO!'}Q(nO,5:cOOQ#T,5:c,5:cO!(VQ.kO'#FoO%rQ.jO'#FoO!)yQ.kO7+%gOOQ#T7+%g7+%gO!*mQ#dO,5:lOOQ&Z7+%o7+%oO+PQ(nO7+%oO7nQ(nO7+&QO+PQ(nO7+&VOOQ#d'#Eh'#EhO!*rQ)OO7+&VO!+QQ(nO7+&^O*aQ)OO7+&^OOQ#d-E9q-E9qOOQ&Z7+&`7+&`O!+VQ.jO'#GgOOQ#d,5<_,5<_OF|Q(nO7+&`O%rQ.jO1G0[O!+qQ.jO1G0_OOQ#S1G0c1G0cOOQ#S1G0^1G0^O!+xQ(nO,5<^OOQ#S-E9p-E9pO!,^Q(pO1G0dOOQ&Z7+&g7+&gO,gQ(vO'#CuOOQ#S'#E}'#E}O!,eQ(nO'#E|OOQ#S'#E|'#E|O!,sQ(nO'#FuO!-OQ)OO,5;gOOQ&Z,5;g,5;gO!-ZQ+uO7+&rO!/sQ)OO7+&rO!0OQ.jO7+&vOOQ#d,5<d,5<dOOQ#d-E9v-E9vO3mQ.YO7+&{OOQ#T1G1v1G1vOOQ#i7+$v7+$vOOQ#d-E9d-E9dO!0aQ.jO'#FgO!0nQ(nO,5<wO!0nQ(nO,5<wO%rQ.jO,5<wOOQ#i1G/W1G/WO!0vQ.YO<<HuOOQ&Z7+%e7+%eO!1UQ)OO'#FkO!1`Q(nO,5<yOOQ#U1G/k1G/kO!1hQ.jO'#FjO!1rQ(nO,5<xOOQ#U1G/i1G/iOOQ#U<<Hu<<HuO1_Q.jO,5<YO!1zQ(nO'#FnOOQ#S-E9l-E9lOOQ#T1G/}1G/}O!2PQ.kO,5<ZOOQ#e-E9m-E9mOOQ#T<<IR<<IROOQ#S'#ES'#ESO!3sQ(nO1G0WOOQ&Z<<IZ<<IZOOQ&Z<<Il<<IlOOQ&Z<<Iq<<IqO0SQ(nO<<IqO*aQ)OO<<IxO!3{Q(nO<<IxO!4TQ.jO'#FtO!4hQ)OO,5=ROG]Q)OO<<IzO!4yQ.jO7+%vOOQ#S'#EV'#EVO!5QQ!NUO7+%yOOQ#S7+&O7+&OOOQ#S,5;h,5;hOJ]Q)OO'#FvO!,sQ(nO,5<aOOQ#d,5<a,5<aOOQ#d-E9s-E9sOOQ&Z1G1R1G1ROOQ&Z-E9u-E9uO!/sQ)OO<<J^O%rQ.jO,5<cOOQ&Z<<J^<<J^O%rQ.jO<<JbOOQ&Z<<Jg<<JgO!5YQ.jO,5<RO!5gQ.jO,5<ROOQ#S-E9e-E9eO!5nQ(nO1G2cO!5vQ.jO1G2cOOQ#UAN>aAN>aO!6QQ(pO,5<VOOQ#S-E9i-E9iO!6[Q.jO,5<UOOQ#S-E9h-E9hO!6fQ.YO1G1tO!6oQ(nO1G1tO!*mQ#dO'#FqO!6zQ(nO7+%rOOQ#d7+%r7+%rO+PQ(nOAN?]O!7SQ(nOAN?dO0gQ(nOAN?dO!7[Q.jO,5<`OOQ#d-E9r-E9rOG]Q)OOAN?fOOQ&ZAN?fAN?fOOQ#S<<Ib<<IbOOQ#S<<Ie<<IeO!7vQ.jO<<IeOOQ#S,5<b,5<bOOQ#S-E9t-E9tOOQ#d1G1{1G1{P!8_Q)OO'#FwOOQ&ZAN?xAN?xO3mQ.YO1G1}O3mQ.YOAN?|OOQ#S1G1m1G1mO%rQ.jO1G1mO!8dQ(nO7+'}OOQ#S7+'`7+'`OOQ#S,5<],5<]OOQ#S-E9o-E9oOOQ#d<<I^<<I^OOQ&ZG24wG24wO0gQ(nOG25OOOQ&ZG25OG25OOOQ&ZG25QG25QO!8lQ(nOAN?POOQ&Z7+'i7+'iOOQ&ZG25hG25hO!8qQ.jO7+'XOOQ&ZLD*jLD*jOOQ#SG24kG24k\",\n stateData: \"!9R~O$wOSVOSUOS$uQQ~OS`OTVOWcOXbO_UOc`OqWOuYO|[O!SYO!ZZO!rmO!saO#TbO#WcO#YdO#_eO#afO#cgO#fhO#hiO#jjO#mkO#slO#urO#ysO$OtO$RuO$TvO$rSO$|RO%S]O~O$m%TP~P`O$u{O~Oq^Xu^Xu!jXw^X|^X!S^X!Z^X!a^X!d^X!h^X$p^X$t^X~Oq${Xu${Xw${X|${X!S${X!Z${X!a${X!d${X!h${X$p${X$t${X~O$r}O!o${X$v${Xf${Xe${X~P$jOS!XOTVO_!XOc!XOf!QOh!XOj!XOo!TOy!VO|!WO$q!UO$r!PO%O!RO~O$r!ZO~Oq!]Ou!^O|!`O!S!^O!Z!_O!a!aO!d!cO!h!fO$p!bO$t!gO~Ow!dO~P&rO!U!mO$q!jO$r!iO~O$r!nO~O$r!pO~O$r!rO~Ou!tO~P$jOu!tO~OTVO_UOqWOuYO|[O!SYO!ZZO$r!yO$|RO%S]O~Of!}O!h!fO$t!gO~P(cOTVOc#UOf#QO#O#SO#R#TO$s#PO!h%VP$t%VP~Oj#YOy!VO$r#XO~Oj#[O$r#[O~OTVOc#UOf#QO#O#SO#R#TO$s#PO~O!o%VP$v%VP~P)bO!o#`O$t#`O$v#`O~Oc#dO~Oc#eO$P%[P~O$m%TX!p%TX$o%TX~P`O!o#kO$t#kO$m%TX!p%TX$o%TX~OU#nOV#nO$t#pO$w#nO~OR#rO$tiX!hiXeiXwiX~OPiXQiXliXmiXqiXTiXciXfiX!oiX!uiX#OiX#RiX$siX$viX#UiX#ZiX#]iX#diXSiX_iXhiXjiXoiXyiX|iX!liX!miX!niX$qiX$riX%OiX$miXviX{iX#{iX#|iX!piX$oiX~P,gOP#wOQ#uOl#sOm#sOq#tO~Of#yO~O{#}O$r#zO~Of$OO~O!U$TO$q!jO$r!iO~Ow!dO!h!fO$t!gO~O!p%TP~P`O$n$_O~Of$`O~Of$aO~O{$bO!_$cO~OS!XOTVO_!XOc!XOf$dOh!XOj!XOo!TOy!VO|!WO$q!UO$r!PO%O!RO~O!h!fO$t!gO~P1_Ol#sOm#sOq#tO!u$gO!o%VP$t%VP$v%VP~P*aOl#sOm#sOq#tO!o#`O$v#`O~O!h!fO#U$lO$t$jO~P2}Ol#sOm#sOq#tO!h!fO$t!gO~O#Z$pO#]$oO$t#`O~P2}Oq!]Ou!^O|!`O!S!^O!Z!_O!a!aO!d!cO$p!bO~O!o#`O$t#`O$v#`O~P4]Of$sO~P&rO#]$tO~O#Z$xO#d$wO$t#`O~P2}OS$}Oh$}Oj$}Oy!VO$q!UO%O$yO~OTVOc#UOf#QO#O#SO#R#TO$s$zO~P5oOm%POw%QO!h%VX$t%VX!o%VX$v%VX~Of%TO~Oj%XOy!VO~O!h%YO~Om%PO!h!fO$t!gO~O!h!fO!o#`O$t$jO$v#`O~O#z%_O~Ow%`O$P%[X~O$P%bO~O!o#kO$t#kO$m%Ta!p%Ta$o%Ta~O!o$dX$m$dX$t$dX!p$dX$o$dX~P`OU#nOV#nO$t%jO$w#nO~Oe%kOl#sOm#sOq#tO~OP%pOQ#uO~Ol#sOm#sOq#tOPnaQnaTnacnafna!ona!una#Ona#Rna$sna$tna$vna!hna#Una#Zna#]na#dnaenaSna_nahnajnaonawnayna|na!lna!mna!nna$qna$rna%Ona$mnavna{na#{na#|na!pna$ona~Oe%qOj%rOz%rO~O{%tO$r#zO~OS!XOTVO_!XOf!QOh!XOj!XOo!TOy!VO|!WO$q!UO$r!PO%O!RO~Oc%wOe%PP~P=TO{%zO!_%{O~Oq!]Ou!^O|!`O!S!^O!Z!_O~Ow!`i!a!`i!d!`i!h!`i$p!`i$t!`i!o!`i$v!`if!`ie!`i~P>_Ow!bi!a!bi!d!bi!h!bi$p!bi$t!bi!o!bi$v!bif!bie!bi~P>_Ow!ci!a!ci!d!ci!h!ci$p!ci$t!ci!o!ci$v!cif!cie!ci~P>_Ow$`a!h$`a$t$`a~P4]O!p%|O~O$o%TP~P`Oe%RP~P(cOe%QP~P%rOS!XOTVO_!XOc!XOf!QOh!XOo!TOy!VO|!WO$q!UO$r!PO%O!RO~Oe&VOj&TO~PAsOl#sOm#sOq#tOw&XO!l&ZO!m&ZO!n&ZO!o!ii$t!ii$v!ii$m!ii!p!ii$o!ii~P%rOf&[OT!tXc!tX!o!tX#O!tX#R!tX$s!tX$t!tX$v!tX~O$n$_OS%YXT%YXW%YXX%YX_%YXc%YXq%YXu%YX|%YX!S%YX!Z%YX!r%YX!s%YX#T%YX#W%YX#Y%YX#_%YX#a%YX#c%YX#f%YX#h%YX#j%YX#m%YX#s%YX#u%YX#y%YX$O%YX$R%YX$T%YX$m%YX$r%YX$|%YX%S%YX!p%YX!o%YX$t%YX$o%YX~O$r!PO$|&aO~O#]&cO~Ou&dO~O!o#`O#d$wO$t#`O$v#`O~O!o%ZP#d%ZP$t%ZP$v%ZP~P%rO$r!PO~OR#rO!|iXeiX~Oe!wXm!wXu!yX!|!yX~Ou&jO!|&kO~Oe&lOm%PO~Ow$fX!h$fX$t$fX!o$fX$v$fX~P*aOw%QO!h%Va$t%Va!o%Va$v%Va~Om%POw!}a!h!}a$t!}a!o!}a$v!}ae!}a~O!p&xO$r&sO%O&rO~O#v&zOS#tiT#tiW#tiX#ti_#tic#tiq#tiu#ti|#ti!S#ti!Z#ti!r#ti!s#ti#T#ti#W#ti#Y#ti#_#ti#a#ti#c#ti#f#ti#h#ti#j#ti#m#ti#s#ti#u#ti#y#ti$O#ti$R#ti$T#ti$m#ti$r#ti$|#ti%S#ti!p#ti!o#ti$t#ti$o#ti~Oc&|Ow$lX$P$lX~Ow%`O$P%[a~O!o#kO$t#kO$m%Ti!p%Ti$o%Ti~O!o$da$m$da$t$da!p$da$o$da~P`Oq#tOPkiQkilkimkiTkickifki!oki!uki#Oki#Rki$ski$tki$vki!hki#Uki#Zki#]ki#dkiekiSki_kihkijkiokiwkiyki|ki!lki!mki!nki$qki$rki%Oki$mkivki{ki#{ki#|ki!pki$oki~Ol#sOm#sOq#tOP$]aQ$]a~Oe'QO~Ol#sOm#sOq#tOS$YXT$YX_$YXc$YXe$YXf$YXh$YXj$YXo$YXv$YXw$YXy$YX|$YX$q$YX$r$YX%O$YX~Ov'UOw'SOe%PX~P%rOS$}XT$}X_$}Xc$}Xe$}Xf$}Xh$}Xj$}Xl$}Xm$}Xo$}Xq$}Xv$}Xw$}Xy$}X|$}X$q$}X$r$}X%O$}X~Ou'VO~P!%OOe'WO~O$o'YO~Ow'ZOe%RX~P4]Oe']O~Ow'^Oe%QX~P%rOe'`O~Ol#sOm#sOq#tO{'aO~Ou'bOe$}Xl$}Xm$}Xq$}X~Oe'eOj'cO~Ol#sOm#sOq#tOS$cXT$cX_$cXc$cXf$cXh$cXj$cXo$cXw$cXy$cX|$cX!l$cX!m$cX!n$cX!o$cX$q$cX$r$cX$t$cX$v$cX%O$cX$m$cX!p$cX$o$cX~Ow&XO!l'hO!m'hO!n'hO!o!iq$t!iq$v!iq$m!iq!p!iq$o!iq~P%rO$r'iO~O!o#`O#]'nO$t#`O$v#`O~Ou'oO~Ol#sOm#sOq#tOw'qO!o%ZX#d%ZX$t%ZX$v%ZX~O$s'uO~P5oOm%POw$fa!h$fa$t$fa!o$fa$v$fa~Oe'wO~P4]O%O&rOw#pX!h#pX$t#pX~Ow'yO!h!fO$t!gO~O!p'}O$r&sO%O&rO~O#v(POS#tqT#tqW#tqX#tq_#tqc#tqq#tqu#tq|#tq!S#tq!Z#tq!r#tq!s#tq#T#tq#W#tq#Y#tq#_#tq#a#tq#c#tq#f#tq#h#tq#j#tq#m#tq#s#tq#u#tq#y#tq$O#tq$R#tq$T#tq$m#tq$r#tq$|#tq%S#tq!p#tq!o#tq$t#tq$o#tq~O!h!fO#w(QO$t!gO~Ol#sOm#sOq#tO#{(SO#|(SO~Oc(VOe$ZXw$ZX~P=TOw'SOe%Pa~Ol#sOm#sOq#tO{(ZO~Oe$_Xw$_X~P(cOw'ZOe%Ra~Oe$^Xw$^X~P%rOw'^Oe%Qa~Ou'bO~Ol#sOm#sOq#tOS$caT$ca_$cac$caf$cah$caj$cao$caw$cay$ca|$ca!l$ca!m$ca!n$ca!o$ca$q$ca$r$ca$t$ca$v$ca%O$ca$m$ca!p$ca$o$ca~Oe(dOq(bO~Oe(gOm%PO~Ow$hX!o$hX#d$hX$t$hX$v$hX~P%rOw'qO!o%Za#d%Za$t%Za$v%Za~Oe(lO~P%rOe(mO!|(nO~Ov(vOe$Zaw$Za~P%rOu(wO~P!%OOw'SOe%Pi~Ow'SOe%Pi~P%rOe$_aw$_a~P4]Oe$^aw$^a~P%rOl#sOm#sOq#tOw(yOe$bij$bi~Oe(|Oq(bO~Oe)OOm%PO~Ol#sOm#sOq#tOw$ha!o$ha#d$ha$t$ha$v$ha~OS$}Oh$}Oj$}Oy!VO$q!UO$s'uO%O&rO~O#w(QO~Ow'SOe%Pq~Oe)WO~Oe$Zqw$Zq~P%rO%Oql!dl~\",\n goto: \"=Y%]PPPPPPPPPPP%^%h%h%{P%h&`&cP(UPP)ZP*YP)ZPP)ZP)ZP+f,j-lPPP-xPPPP)Z/S%h/W%hP/^P/d/j/p%hP/v%h/|P%hP%h%hP%h0S0VP1k1}2XPPPPP%^PP2_P2b'w'w2h'w'wP'wP'w'wP%^PP%^P%^PP2qP%^P%^P%^PP%^P%^P%^P2w%^P2z2}3Q3X%^P%^PPP%^PPPP%^PP%^P%^P%^P3^3d3j4Y4h4n4t4z5Q5W5d5j5p5z6Q6W6b6h6n6t6zPPPPPPPPPPPP7Q7T7aP8WP:_:b:eP:h:q:w;T;p;y=S=VanOPqx!f#l$_%fs^OPefqx!a!b!c!d!f#l$_$`%T%f'ZsTOPefqx!a!b!c!d!f#l$_$`%T%f'ZR!OUb^ef!a!b!c!d$`%T'Z`_OPqx!f#l$_%f!x!XVabcdgiruv!Q!T!t#s#t#u$O$a$c$d$e$w%_%b%v%{&Q&X&Y&j'S'V'^'b'q't(Q(S(U(Y(^(w)Ug#Uhlm!u#Q#S$i%P%Q&d'o!x!XVabcdgiruv!Q!T!t#s#t#u$O$a$c$d$e$w%_%b%v%{&Q&X&Y&j'S'V'^'b'q't(Q(S(U(Y(^(w)UQ&b$pR&i$x!y!XVabcdgiruv!Q!T!t#s#t#u$O$a$c$d$e$w%_%b%v%{&Q&X&Y&j'S'V'^'b'q't(Q(S(U(Y(^(w)U!x!XVabcdgiruv!Q!T!t#s#t#u$O$a$c$d$e$w%_%b%v%{&Q&X&Y&j'S'V'^'b'q't(Q(S(U(Y(^(w)UU$}#Q&k(nU&u%Y&w'yR'x&t!x!XVabcdgiruv!Q!T!t#s#t#u$O$a$c$d$e$w%_%b%v%{&Q&X&Y&j'S'V'^'b'q't(Q(S(U(Y(^(w)UV$}#Q&k(n#P!YVabcdgiruv!Q!T!t#Q#s#t#u$O$a$c$d$e$w%_%b%v%{&Q&X&Y&j&k'S'V'^'b'q't(Q(S(U(Y(^(n(w)UQ$P!YQ&_$lQ&`$oR(e'n!x!XVabcdgiruv!Q!T!t#s#t#u$O$a$c$d$e$w%_%b%v%{&Q&X&Y&j'S'V'^'b'q't(Q(S(U(Y(^(w)UQ#YjU$}#Q&k(nR%X#ZT#{!W#|Q![WR$Q!]Q!kYR$R!^Q$R!mR%y$TQ!lYR$S!^Q$R!lR%y$SQ!oZR$U!_Q!q[R$V!`R!s]Q!hXQ!|fQ$]!eQ$f!tQ$k!vQ$m!wQ$r!{Q%U#VQ%[#^Q%]#_Q%^#cQ%c#gQ'l&_Q'{&vQ(R&zQ(T'OQ(q'zQ(s(PQ)P(gQ)S(tQ)T(uR)V)OSpOqUyP!f$_Q#jxQ%g#lR'P%fa`OPqx!f#l$_%fQ$f!tR(a'bR$i!uQ'j&[R(z(bQ${#QQ'v&kR)R(nQ&b$pR's&iR#ZjR#]kR%Z#]S&v%Y&wR(o'yV&t%Y&w'yQ#o{R%i#oQqOR#bqQ%v$OQ&Q$a^'R%v&Q't(U(Y(^)UQ't&jQ(U'SQ(Y'VQ(^'^R)U(wQ'T%vU(W'T(X(xQ(X'UR(x(YQ#|!WR%s#|Q#v!SR%o#vQ'_&QR(_'_Q'[&OR(]'[Q!eXR$[!eUxP!f$_S#ix%fR%f#lQ&U$dR'd&UQ&Y$eR'g&YQ#myQ%e#jT%h#m%eQ(c'jR({(cQ%R#RR&o%RQ$u#OS&e$u(jR(j'sQ'r&gR(i'rQ&w%YR'|&wQ'z&vR(p'zQ&y%^R(O&yQ%a#eR&}%aR|QSoOq]wPx!f#l$_%f`XOPqx!f#l$_%fQ!zeQ!{fQ$W!aQ$X!bQ$Y!cQ$Z!dQ&O$`Q&p%TR(['ZQ!SVQ!uaQ!vbQ!wcQ!xdQ#OgQ#WiQ#crQ#guQ#hvS#q!Q$dQ#x!TQ$e!tQ%l#sQ%m#tQ%n#ul%u$O$a%v&Q&j'S'V'^'t(U(Y(^(w)UQ&S$cS&W$e&YQ&g$wQ&{%_Q'O%bQ'X%{Q'f&XQ(`'bQ(h'qQ(t(QR(u(SR%x$OR&R$aR&P$`QzPQ$^!fR%}$_X#ly#j#m%eQ#VhQ#_mQ$h!uR&^$iW#Rhm!u$iQ#^lQ$|#QQ%S#SQ&m%PQ&n%QQ'p&dR(f'oQ%O#QQ'v&kR)R(nQ#apQ$k!vQ$n!xQ$q!zQ$v#OQ%V#WQ%W#YQ%]#_Q%d#hQ&]$hQ&f$uQ&q%XQ'k&^Q'l&_S'm&`&bQ(k'sQ(}(eR)Q(jR&h$wR#ft\",\n nodeNames: \"⚠ InterpolationEnd InterpolationContinue Unit VariableName InterpolationStart LineComment Comment IndentedMixin IndentedInclude StyleSheet RuleSet UniversalSelector TagSelector TagName NestingSelector SuffixedSelector Suffix Interpolation SassVariableName ValueName ) ( ParenthesizedValue ColorLiteral NumberLiteral StringLiteral BinaryExpression BinOp LogicOp UnaryExpression LogicOp NamespacedValue . CallExpression Callee ArgList : ... , CallLiteral CallTag ParenthesizedContent ] [ LineNames LineName ClassSelector ClassName PseudoClassSelector :: PseudoClassName PseudoClassName ArgList PseudoClassName ArgList IdSelector # IdName AttributeSelector AttributeName MatchOp ChildSelector ChildOp DescendantSelector SiblingSelector SiblingOp PlaceholderSelector ClassName Block { Declaration PropertyName Map Important Global Default ; } ImportStatement AtKeyword import Layer layer LayerName KeywordQuery FeatureQuery FeatureName BinaryQuery ComparisonQuery CompareOp UnaryQuery LogicOp ParenthesizedQuery SelectorQuery selector IncludeStatement include Keyword MixinStatement mixin UseStatement use Keyword Star Keyword ExtendStatement extend RootStatement at-root ForwardStatement forward Keyword MediaStatement media CharsetStatement charset NamespaceStatement namespace NamespaceName KeyframesStatement keyframes KeyframeName KeyframeList KeyframeSelector KeyframeRangeName SupportsStatement supports IfStatement ControlKeyword ControlKeyword Keyword ForStatement ControlKeyword Keyword Keyword Keyword EachStatement ControlKeyword Keyword WhileStatement ControlKeyword OutputStatement ControlKeyword AtRule Styles\",\n maxTerm: 196,\n context: trackIndent,\n nodeProps: [\n [\"openedBy\", 1,\"InterpolationStart\",5,\"InterpolationEnd\",21,\"(\",43,\"[\",78,\"{\"],\n [\"isolate\", -3,6,7,26,\"\"],\n [\"closedBy\", 22,\")\",44,\"]\",70,\"}\"]\n ],\n propSources: [cssHighlighting],\n skippedNodes: [0,6,7,146],\n repeatNodeCount: 21,\n tokenData: \"!$Q~RyOq#rqr$jrs0jst2^tu8{uv;hvw;{wx<^xy={yz>^z{>c{|>||}Co}!ODQ!O!PDo!P!QFY!Q![Fk![!]Gf!]!^Hb!^!_Hs!_!`Is!`!aJ^!a!b#r!b!cKa!c!}#r!}#OMn#O#P#r#P#QNP#Q#RNb#R#T#r#T#UNw#U#c#r#c#d!!Y#d#o#r#o#p!!o#p#qNb#q#r!#Q#r#s!#c#s;'S#r;'S;=`!#z<%lO#rW#uSOy$Rz;'S$R;'S;=`$d<%lO$RW$WSzWOy$Rz;'S$R;'S;=`$d<%lO$RW$gP;=`<%l$RY$m[Oy$Rz!_$R!_!`%c!`#W$R#W#X%v#X#Z$R#Z#[)Z#[#]$R#]#^,V#^;'S$R;'S;=`$d<%lO$RY%jSzWlQOy$Rz;'S$R;'S;=`$d<%lO$RY%{UzWOy$Rz#X$R#X#Y&_#Y;'S$R;'S;=`$d<%lO$RY&dUzWOy$Rz#Y$R#Y#Z&v#Z;'S$R;'S;=`$d<%lO$RY&{UzWOy$Rz#T$R#T#U'_#U;'S$R;'S;=`$d<%lO$RY'dUzWOy$Rz#i$R#i#j'v#j;'S$R;'S;=`$d<%lO$RY'{UzWOy$Rz#`$R#`#a(_#a;'S$R;'S;=`$d<%lO$RY(dUzWOy$Rz#h$R#h#i(v#i;'S$R;'S;=`$d<%lO$RY(}S!nQzWOy$Rz;'S$R;'S;=`$d<%lO$RY)`UzWOy$Rz#`$R#`#a)r#a;'S$R;'S;=`$d<%lO$RY)wUzWOy$Rz#c$R#c#d*Z#d;'S$R;'S;=`$d<%lO$RY*`UzWOy$Rz#U$R#U#V*r#V;'S$R;'S;=`$d<%lO$RY*wUzWOy$Rz#T$R#T#U+Z#U;'S$R;'S;=`$d<%lO$RY+`UzWOy$Rz#`$R#`#a+r#a;'S$R;'S;=`$d<%lO$RY+yS!mQzWOy$Rz;'S$R;'S;=`$d<%lO$RY,[UzWOy$Rz#a$R#a#b,n#b;'S$R;'S;=`$d<%lO$RY,sUzWOy$Rz#d$R#d#e-V#e;'S$R;'S;=`$d<%lO$RY-[UzWOy$Rz#c$R#c#d-n#d;'S$R;'S;=`$d<%lO$RY-sUzWOy$Rz#f$R#f#g.V#g;'S$R;'S;=`$d<%lO$RY.[UzWOy$Rz#h$R#h#i.n#i;'S$R;'S;=`$d<%lO$RY.sUzWOy$Rz#T$R#T#U/V#U;'S$R;'S;=`$d<%lO$RY/[UzWOy$Rz#b$R#b#c/n#c;'S$R;'S;=`$d<%lO$RY/sUzWOy$Rz#h$R#h#i0V#i;'S$R;'S;=`$d<%lO$RY0^S!lQzWOy$Rz;'S$R;'S;=`$d<%lO$R~0mWOY0jZr0jrs1Vs#O0j#O#P1[#P;'S0j;'S;=`2W<%lO0j~1[Oj~~1_RO;'S0j;'S;=`1h;=`O0j~1kXOY0jZr0jrs1Vs#O0j#O#P1[#P;'S0j;'S;=`2W;=`<%l0j<%lO0j~2ZP;=`<%l0jZ2cY!ZPOy$Rz!Q$R!Q![3R![!c$R!c!i3R!i#T$R#T#Z3R#Z;'S$R;'S;=`$d<%lO$RY3WYzWOy$Rz!Q$R!Q![3v![!c$R!c!i3v!i#T$R#T#Z3v#Z;'S$R;'S;=`$d<%lO$RY3{YzWOy$Rz!Q$R!Q![4k![!c$R!c!i4k!i#T$R#T#Z4k#Z;'S$R;'S;=`$d<%lO$RY4rYhQzWOy$Rz!Q$R!Q![5b![!c$R!c!i5b!i#T$R#T#Z5b#Z;'S$R;'S;=`$d<%lO$RY5iYhQzWOy$Rz!Q$R!Q![6X![!c$R!c!i6X!i#T$R#T#Z6X#Z;'S$R;'S;=`$d<%lO$RY6^YzWOy$Rz!Q$R!Q![6|![!c$R!c!i6|!i#T$R#T#Z6|#Z;'S$R;'S;=`$d<%lO$RY7TYhQzWOy$Rz!Q$R!Q![7s![!c$R!c!i7s!i#T$R#T#Z7s#Z;'S$R;'S;=`$d<%lO$RY7xYzWOy$Rz!Q$R!Q![8h![!c$R!c!i8h!i#T$R#T#Z8h#Z;'S$R;'S;=`$d<%lO$RY8oShQzWOy$Rz;'S$R;'S;=`$d<%lO$R_9O`Oy$Rz}$R}!O:Q!O!Q$R!Q![:Q![!_$R!_!`;T!`!c$R!c!}:Q!}#R$R#R#S:Q#S#T$R#T#o:Q#o;'S$R;'S;=`$d<%lO$RZ:X^zWcROy$Rz}$R}!O:Q!O!Q$R!Q![:Q![!c$R!c!}:Q!}#R$R#R#S:Q#S#T$R#T#o:Q#o;'S$R;'S;=`$d<%lO$R[;[S!_SzWOy$Rz;'S$R;'S;=`$d<%lO$RZ;oS%SPlQOy$Rz;'S$R;'S;=`$d<%lO$RZ<QS_ROy$Rz;'S$R;'S;=`$d<%lO$R~<aWOY<^Zw<^wx1Vx#O<^#O#P<y#P;'S<^;'S;=`=u<%lO<^~<|RO;'S<^;'S;=`=V;=`O<^~=YXOY<^Zw<^wx1Vx#O<^#O#P<y#P;'S<^;'S;=`=u;=`<%l<^<%lO<^~=xP;=`<%l<^Z>QSfROy$Rz;'S$R;'S;=`$d<%lO$R~>cOe~_>jU$|PlQOy$Rz!_$R!_!`;T!`;'S$R;'S;=`$d<%lO$RZ?TWlQ!dPOy$Rz!O$R!O!P?m!P!Q$R!Q![Br![;'S$R;'S;=`$d<%lO$RZ?rUzWOy$Rz!Q$R!Q![@U![;'S$R;'S;=`$d<%lO$RZ@]YzW%OROy$Rz!Q$R!Q![@U![!g$R!g!h@{!h#X$R#X#Y@{#Y;'S$R;'S;=`$d<%lO$RZAQYzWOy$Rz{$R{|Ap|}$R}!OAp!O!Q$R!Q![BX![;'S$R;'S;=`$d<%lO$RZAuUzWOy$Rz!Q$R!Q![BX![;'S$R;'S;=`$d<%lO$RZB`UzW%OROy$Rz!Q$R!Q![BX![;'S$R;'S;=`$d<%lO$RZBy[zW%OROy$Rz!O$R!O!P@U!P!Q$R!Q![Br![!g$R!g!h@{!h#X$R#X#Y@{#Y;'S$R;'S;=`$d<%lO$RZCtSwROy$Rz;'S$R;'S;=`$d<%lO$RZDVWlQOy$Rz!O$R!O!P?m!P!Q$R!Q![Br![;'S$R;'S;=`$d<%lO$RZDtWqROy$Rz!O$R!O!PE^!P!Q$R!Q![@U![;'S$R;'S;=`$d<%lO$RYEcUzWOy$Rz!O$R!O!PEu!P;'S$R;'S;=`$d<%lO$RYE|SvQzWOy$Rz;'S$R;'S;=`$d<%lO$RYF_SlQOy$Rz;'S$R;'S;=`$d<%lO$RZFp[%OROy$Rz!O$R!O!P@U!P!Q$R!Q![Br![!g$R!g!h@{!h#X$R#X#Y@{#Y;'S$R;'S;=`$d<%lO$RkGkUucOy$Rz![$R![!]G}!];'S$R;'S;=`$d<%lO$RXHUS!SPzWOy$Rz;'S$R;'S;=`$d<%lO$RZHgS!oROy$Rz;'S$R;'S;=`$d<%lO$RjHzU!|`lQOy$Rz!_$R!_!`I^!`;'S$R;'S;=`$d<%lO$RjIgS!|`zWlQOy$Rz;'S$R;'S;=`$d<%lO$RnIzU!|`!_SOy$Rz!_$R!_!`%c!`;'S$R;'S;=`$d<%lO$RkJgV!aP!|`lQOy$Rz!_$R!_!`I^!`!aJ|!a;'S$R;'S;=`$d<%lO$RXKTS!aPzWOy$Rz;'S$R;'S;=`$d<%lO$RXKdYOy$Rz}$R}!OLS!O!c$R!c!}Lq!}#T$R#T#oLq#o;'S$R;'S;=`$d<%lO$RXLXWzWOy$Rz!c$R!c!}Lq!}#T$R#T#oLq#o;'S$R;'S;=`$d<%lO$RXLx[!rPzWOy$Rz}$R}!OLq!O!Q$R!Q![Lq![!c$R!c!}Lq!}#T$R#T#oLq#o;'S$R;'S;=`$d<%lO$RZMsS|ROy$Rz;'S$R;'S;=`$d<%lO$R_NUS{VOy$Rz;'S$R;'S;=`$d<%lO$R[NeUOy$Rz!_$R!_!`;T!`;'S$R;'S;=`$d<%lO$RkNzUOy$Rz#b$R#b#c! ^#c;'S$R;'S;=`$d<%lO$Rk! cUzWOy$Rz#W$R#W#X! u#X;'S$R;'S;=`$d<%lO$Rk! |SmczWOy$Rz;'S$R;'S;=`$d<%lO$Rk!!]UOy$Rz#f$R#f#g! u#g;'S$R;'S;=`$d<%lO$RZ!!tS!hROy$Rz;'S$R;'S;=`$d<%lO$RZ!#VS!pROy$Rz;'S$R;'S;=`$d<%lO$R]!#hU!dPOy$Rz!_$R!_!`;T!`;'S$R;'S;=`$d<%lO$RW!#}P;=`<%l#r\",\n tokenizers: [indentation, descendant, interpolationEnd, unitToken, identifiers, spaces, comments, indentedMixins, 0, 1, 2, 3, 4],\n topRules: {\"StyleSheet\":[0,10],\"Styles\":[1,145]},\n dialects: {indented: 0},\n specialized: [{term: 172, get: (value) => spec_identifier[value] || -1},{term: 171, get: (value) => spec_callee[value] || -1},{term: 80, get: (value) => spec_AtKeyword[value] || -1},{term: 173, get: (value) => spec_queryIdentifier[value] || -1}],\n tokenPrec: 3217\n});\n\nexport { parser };\n","import { parser } from '@lezer/sass';\nimport { LRLanguage, foldNodeProp, foldInside, indentNodeProp, continuedIndent, LanguageSupport } from '@codemirror/language';\nimport { defineCSSCompletionSource } from '@codemirror/lang-css';\n\n/**\nA language provider based on the [Lezer Sass\nparser](https://github.com/lezer-parser/sass), extended with\nhighlighting and indentation information.\n*/\nconst sassLanguage = /*@__PURE__*/LRLanguage.define({\n name: \"sass\",\n parser: /*@__PURE__*/parser.configure({\n props: [\n /*@__PURE__*/foldNodeProp.add({\n Block: foldInside,\n Comment(node, state) {\n return { from: node.from + 2, to: state.sliceDoc(node.to - 2, node.to) == \"*/\" ? node.to - 2 : node.to };\n }\n }),\n /*@__PURE__*/indentNodeProp.add({\n Declaration: /*@__PURE__*/continuedIndent()\n })\n ]\n }),\n languageData: {\n commentTokens: { block: { open: \"/*\", close: \"*/\" }, line: \"//\" },\n indentOnInput: /^\\s*\\}$/,\n wordChars: \"$-\"\n }\n});\nconst indentedSassLanguage = /*@__PURE__*/sassLanguage.configure({\n dialect: \"indented\",\n props: [\n /*@__PURE__*/indentNodeProp.add({\n \"Block RuleSet\": cx => cx.baseIndent + cx.unit\n }),\n /*@__PURE__*/foldNodeProp.add({\n Block: node => ({ from: node.from, to: node.to })\n })\n ]\n});\n/**\nProperty, variable, $-variable, and value keyword completion\nsource.\n*/\nconst sassCompletionSource = /*@__PURE__*/defineCSSCompletionSource(node => node.name == \"VariableName\" || node.name == \"SassVariableName\");\n/**\nLanguage support for CSS.\n*/\nfunction sass(config) {\n return new LanguageSupport((config === null || config === void 0 ? void 0 : config.indented) ? indentedSassLanguage : sassLanguage, sassLanguage.data.of({ autocomplete: sassCompletionSource }));\n}\n\nexport { sass, sassCompletionSource, sassLanguage };\n"],"x_google_ignoreList":[0,1],"mappings":";;;AAIA,IAAM,IAAS,KACb,IAAS,KACT,IAAe,KACf,KAAmB,GACnB,IAAwB,GACxB,IAAO,GACP,KAAS,KACT,IAAa,KACb,IAAe,GACf,IAAkB,KAClB,IAAqB,GACrB,IAAU,KACV,IAAiB,KACjB,IAAM,KACN,IAAa,KACb,IAAc,GACd,IAAU,GACV,IAAgB,GAChB,KAAkB,GAClB,IAAmB,GAKf,IAAQ;CAAC;CAAG;CAAI;CAAI;CAAI;CAAI;CAAI;CAAK;CAAK;CAAM;CAAM;CAAM;CAAM;CAAM;CAAM;CACrE;CAAM;CAAM;CAAM;CAAM;CAAM;CAAM;CAAM;CAAM;CAAM;CAAM,EACrE,IAAQ,IAAI,IAAS,IAAI,IAAa,IAAI,IAAW,IAAI,IAAO,IAAI,IAAS,IAC7E,IAAO,IAAI,IAAU,IAAI,IAAS,KAAK,IAAS,KAAK,IAAQ,IAAI,IAAW,IAC5E,IAAc,IAAI,IAAS,IAAI,IAAO,IAAI,IAAM;AAEtD,SAAS,EAAQ,GAAI;AAAE,QAAO,KAAM,MAAM,KAAM,MAAM,KAAM,MAAM,KAAM,OAAO,KAAM;;AAErF,SAAS,EAAQ,GAAI;AAAE,QAAO,KAAM,MAAM,KAAM;;AAEhD,SAAS,EAAe,GAAO;CAC7B,IAAI;AACJ,QAAO,EAAM,QAAQ,OAAW,IAAO,EAAM,KAAK,EAAE,KAAK,KAAS,KAAQ;;AAG5E,IAAM,IAAS,IAAI,GAAmB,GAAO,MAAU;AACrD,KAAI,EAAM,eAAe,EAAiB,EAAE;EAC1C,IAAI;AACJ,MAAI,EAAM,OAAO,KAAK,EAAM,SAAS,EAAI,CACvC,GAAM,YAAY,EAAI;aACX,IAAO,EAAM,KAAK,GAAG,KAAK,KAAe,IAAO,MAAM,EAAM,SAAS,EAAe,EAAE;GACjG,IAAI,IAAS;AACb,UAAO,EAAM,QAAQ,KAAe,EAAM,SAAS,EAAM,KAAK,EAAqB,CAAjB,EAAM,SAAS,EAAE;AACnF,GAAI,EAAM,QAAQ,KAAe,EAAe,EAAM,GACpD,EAAM,YAAY,GAAgB,CAAC,EAAO,GACnC,KACP,EAAM,YAAY,EAAW;aACtB,EAAM,QAAQ,EACvB,GAAM,YAAY,GAAS,EAAE;WACpB,EAAM,SAAS,EAAM,KAAK,EAAE;AAErC,QADA,EAAM,SAAS,EACR,EAAM,QAAQ,KAAe,EAAM,SAAS,EAAM,KAAK,EAAE,GAAM,SAAS;AAC/E,KAAM,YAAY,EAAW;;QAE1B;EACL,IAAI,IAAS;AACb,SAAO,EAAM,SAAS,EAAM,KAAK,EAE/B,CADA,EAAM,SAAS,EACf;AAEF,EAAI,KAAQ,EAAM,YAAY,EAAW;;GAE1C,EAAC,YAAY,IAAK,CAAC,EAEhB,IAAW,IAAI,GAAmB,GAAO,MAAU;AAClD,OAAe,EAAM,EAE1B;MADA,EAAM,SAAS,EACX,EAAM,eAAe,EAAiB,EAAE;GAC1C,IAAI,IAAkB;AACtB,QAAK,IAAI,IAAM,IAAI,KAAO;IACxB,IAAI,IAAO,EAAM,KAAK,CAAC,IAAM,EAAE;AAC/B,QAAI,KAAQ,KAAe,IAAO,GAAG;AACnC,SAAkB,IAAM;AACxB;eACS,CAAC,EAAM,SAAS,EAAK,CAC9B;;AAGJ,OAAI,IAAkB,IAAI;IACxB,IAAI,IAAQ,EAAM,QAAQ,GAAU,IAAM;AAE1C,SADA,EAAM,SAAS,EACR,EAAM,QAAQ,GACnB,KAAI,EAAM,QAAQ,GAAa;AAC7B,OAAM,SAAS;KACf,IAAI,IAAW;AACf,YAAO,EAAM,QAAQ,KAAe,EAAM,SAAS,EAAM,KAAK,EAE5D,CADA,KACA,EAAM,SAAS;AAEjB,SAAI,IAAW,GAAiB;AAC9B,UAAM,CAAC,IAAW;AAClB;;eAEO,KAAS,EAAM,QAAQ,KAAY,EAAM,KAAK,EAAE,IAAI,GAAO;AACpE,SAAM;AACN;UAEA,GAAM,SAAS;AAGnB,MAAM,YAAY,IAAQ,IAAU,GAAa,EAAI;AACrD;;;AAGJ,MAAI,EAAM,QAAQ,GAAO;AACvB,UAAO,EAAM,QAAQ,KAAe,EAAM,QAAQ,GAAG,GAAM,SAAS;AACpE,KAAM,YAAY,EAAY;SACzB;AAEL,QADA,EAAM,SAAS,EACR,EAAM,QAAQ,IAAG;IACtB,IAAI,EAAC,YAAQ;AAEb,QADA,EAAM,SAAS,EACX,KAAQ,KAAY,EAAM,QAAQ,GAAO;AAC3C,OAAM,SAAS;AACf;;;AAGJ,KAAM,YAAY,EAAQ;;;EAE5B,EAEI,IAAiB,IAAI,GAAmB,GAAO,MAAU;AAC7D,EAAK,EAAM,QAAQ,KAAQ,EAAM,QAAQ,MAAW,EAAM,eAAe,EAAiB,IACxF,EAAM,YAAY,EAAM,QAAQ,IAAS,IAAgB,IAAiB,EAAE;EAC9E,EAEI,KAAc,IAAI,GAAmB,GAAO,MAAU;AAC1D,KAAI,CAAC,EAAM,eAAe,EAAiB,CAAE;CAC7C,IAAI,IAAS,EAAM,QAAQ;AAC3B,KAAI,EAAM,OAAO,KAAK,GAAQ;AAC5B,IAAM,YAAY,EAAO;AACzB;;AAGF,KADW,EAAM,KAAK,GAAG,IACb,GAAa;EACvB,IAAI,IAAQ;AACZ,SAAO,EAAM,QAAQ,KAAe,EAAM,SAAS,EAAM,KAAK,EAE5D,CADA,EAAM,SAAS,EACf;AAEF,EAAI,KAAS,KACT,EAAM,QAAQ,KAAe,CAAC,EAAe,EAAM,KACjD,IAAQ,IAAQ,EAAM,YAAY,GAAQ,CAAC,EAAM,GAChD,EAAM,YAAY,EAAO;;EAGlC,EAEI,KAAc,IAAI,GAAmB,GAAO,MAAU;AAC1D,MAAK,IAAI,IAAS,IAAO,IAAS,GAAG,IAAI,IAAI,KAAK;EAChD,IAAI,EAAC,YAAQ;AACb,MAAI,EAAQ,EAAK,IAAI,KAAQ,KAAQ,KAAQ,KAAe,KAAU,EAAQ,EAAK,CAGjF,CAFI,CAAC,MAAW,KAAQ,KAAQ,IAAI,OAAI,IAAS,KAC7C,MAAW,KAAK,KAAQ,KAAM,KAClC,EAAM,SAAS;WACN,KAAQ,KAAQ,EAAM,KAAK,EAAE,IAAI,GAAQ;AAClD,KAAM,YAAY,GAAoB,EAAE;AACxC;SACK;AACL,GAAI,KAAQ,EAAM,YAChB,KAAU,KAAK,EAAM,SAAS,EAAa,GAAG,IAC1C,EAAM,SAAS,EAAgB,GAAG,IAClC,KAAQ,IAAS,KACjB,EAAW;AACjB;;;EAGJ,EAEI,KAAmB,IAAI,GAAkB,MAAS;AACtD,KAAI,EAAM,QAAQ,GAAQ;AAExB,OADA,EAAM,SAAS,EACR,EAAQ,EAAM,KAAK,IAAI,EAAM,QAAQ,KAAQ,EAAM,QAAQ,KAAc,EAAQ,EAAM,KAAK,EACjG,GAAM,SAAS;AACjB,EAAI,EAAM,QAAQ,KAAQ,EAAM,KAAK,EAAE,IAAI,IACzC,EAAM,YAAY,GAAuB,EAAE,GAE3C,EAAM,YAAY,GAAiB;;EAEvC,EAEI,KAAa,IAAI,GAAkB,MAAS;AAChD,KAAI,EAAM,SAAS,EAAM,KAAK,GAAG,CAAC,EAAE;EAClC,IAAI,EAAC,YAAQ;AACb,GAAI,EAAQ,EAAK,IAAI,KAAQ,KAAc,KAAQ,KAAQ,KAAQ,KAC/D,KAAQ,KAAY,KAAQ,KAAS,EAAQ,EAAM,KAAK,EAAE,CAAC,IAAI,KAAQ,KAAQ,KAAQ,KAAO,KAAQ,MACxG,EAAM,YAAY,EAAa;;EAEnC,EAEI,KAAY,IAAI,GAAkB,MAAS;AAC/C,KAAI,CAAC,EAAM,SAAS,EAAM,KAAK,GAAG,CAAC,EAAE;EACnC,IAAI,EAAC,YAAQ;AAEb,MADI,KAAQ,MAAW,EAAM,SAAS,EAAE,EAAM,YAAY,EAAK,GAC3D,EAAQ,EAAK,EAAE;AACjB;AAAK,MAAM,SAAS;UAAW,EAAQ,EAAM,KAAK,IAAI,EAAQ,EAAM,KAAK;AACzE,KAAM,YAAY,EAAK;;;EAG3B;AAEF,SAAS,EAAY,GAAQ,GAAO;AAGlC,CAFA,KAAK,SAAS,GACd,KAAK,QAAQ,GACb,KAAK,QAAQ,IAAS,EAAO,OAAO,EAAO,QAAQ,IAAI,KAAK,KAAS,KAAS;;AAKhF,IAAM,KAAc,IAAI,EAAe;CACrC,OAHgB,IAAI,EAAY,MAAM,EAAE;CAIxC,MAAM,GAAS,GAAM,GAAO,GAAO;AAGjC,SAFI,KAAQ,IAAe,IAAI,EAAY,GAAS,EAAM,MAAM,EAAM,IAAI,GACtE,KAAQ,IAAe,EAAQ,SAC5B;;CAET,KAAK,GAAS;AAAE,SAAO,EAAQ;;CAChC,CAAC,EAEI,KAAkB,EAAU;CAChC,wGAAwG,EAAK;CAC7G,oBAAoB,EAAK;CACzB,gBAAkB,EAAK;CACvB,eAAe,EAAK;CACpB,cAAc,EAAK;CACnB,mBAAmB,EAAK;CACxB,SAAS,EAAK;CACd,oBAAoB,EAAK;CACzB,iBAAiB,EAAK,SAAS,EAAK,UAAU;CAC9C,QAAQ,EAAK;CACb,4BAA4B,EAAK;CACjC,eAAe,EAAK;CACpB,eAAe,EAAK;CACpB,cAAc,EAAK;CACnB,cAAc,EAAK;CACnB,qBAAqB,EAAK;CAC1B,cAAc,EAAK;CACnB,kBAAkB,EAAK,QAAQ,EAAK,aAAa;CACjD,QAAQ,EAAK;CACb,MAAM,EAAK;CACX,mEAAmE,EAAK;CACxE,SAAS,EAAK;CACd,8BAA8B,EAAK;CACnC,OAAO,EAAK;CACZ,4BAA4B,EAAK;CACjC,SAAS,EAAK;CACd,aAAa,EAAK;CAClB,cAAc,EAAK;CACnB,sCAAsC,EAAK;CAC3C,6DAA6D,EAAK;CAClE,aAAa,EAAK;CAClB,cAAc,EAAK;CACnB,OAAO,EAAK;CACZ,OAAO,EAAK;CACZ,OAAO,EAAK;CACZ,OAAO,EAAK;CACb,CAAC,EAGI,KAAkB;CAAC,WAAU;CAAK,KAAI;CAAI,OAAM;CAAK,IAAG;CAAK,MAAK;CAAK,SAAQ;CAAK,MAAK;CAAK,MAAK;CAAK,IAAG;CAAK,MAAK;CAAK,IAAG;CAAK,SAAQ;CAAK,IAAG;CAAI,EACtJ,KAAc;CAAC,WAAU;CAAK,KAAI;CAAI,cAAa;CAAI,QAAO;CAAI,QAAO;CAAI,MAAK;CAAK,aAAY;CAAK,kBAAiB;CAAK,eAAc;CAAK,oBAAmB;CAAK,KAAI;CAAK,gBAAe;CAAI,EACrM,KAAiB;CAAC,WAAU;CAAK,WAAU;CAAK,YAAW;CAAK,UAAS;CAAK,aAAY;CAAK,QAAO;CAAK,WAAU;CAAK,YAAW;CAAK,YAAW;CAAK,UAAS;CAAK,YAAW;CAAK,cAAa;CAAK,cAAa;CAAK,aAAY;CAAK,OAAM;CAAK,SAAQ;CAAK,QAAO;CAAK,SAAQ;CAAK,UAAS;CAAK,UAAS;CAAK,SAAQ;CAAK,UAAS;CAAK,WAAU;CAAI,EACnW,KAAuB;CAAC,WAAU;CAAK,OAAM;CAAK,KAAI;CAAK,MAAK;CAAK,UAAS;CAAI,EAClF,IAAS,EAAS,YAAY;CAClC,SAAS;CACT,QAAQ;CACR,WAAW;CACX,MAAM;CACN,WAAW;CACX,SAAS;CACT,SAAS;CACT,WAAW;EACT;GAAC;GAAY;GAAE;GAAqB;GAAE;GAAmB;GAAG;GAAI;GAAG;GAAI;GAAG;GAAI;EAC9E;GAAC;GAAW;GAAG;GAAE;GAAE;GAAG;GAAG;EACzB;GAAC;GAAY;GAAG;GAAI;GAAG;GAAI;GAAG;GAAI;EACnC;CACD,aAAa,CAAC,GAAgB;CAC9B,cAAc;EAAC;EAAE;EAAE;EAAE;EAAI;CACzB,iBAAiB;CACjB,WAAW;CACX,YAAY;EAAC;EAAa;EAAY;EAAkB;EAAW;EAAa;EAAQ;EAAU;EAAgB;EAAG;EAAG;EAAG;EAAG;EAAE;CAChI,UAAU;EAAC,YAAa,CAAC,GAAE,GAAG;EAAC,QAAS,CAAC,GAAE,IAAI;EAAC;CAChD,UAAU,EAAC,UAAU,GAAE;CACvB,aAAa;EAAC;GAAC,MAAM;GAAK,MAAM,MAAU,GAAgB,MAAU;GAAG;EAAC;GAAC,MAAM;GAAK,MAAM,MAAU,GAAY,MAAU;GAAG;EAAC;GAAC,MAAM;GAAI,MAAM,MAAU,GAAe,MAAU;GAAG;EAAC;GAAC,MAAM;GAAK,MAAM,MAAU,GAAqB,MAAU;GAAG;EAAC;CACrP,WAAW;CACZ,CAAC,EC5RI,IAA4B,kBAAW,OAAO;CAChD,MAAM;CACN,QAAqB,kBAAO,UAAU,EAClC,OAAO,CACU,kBAAa,IAAI;EAC1B,OAAO;EACP,QAAQ,GAAM,GAAO;AACjB,UAAO;IAAE,MAAM,EAAK,OAAO;IAAG,IAAI,EAAM,SAAS,EAAK,KAAK,GAAG,EAAK,GAAG,IAAI,OAAO,EAAK,KAAK,IAAI,EAAK;IAAI;;EAE/G,CAAC,EACW,kBAAe,IAAI,EAC5B,aAA0B,mBAAiB,EAC9C,CAAC,CACL,EACJ,CAAC;CACF,cAAc;EACV,eAAe;GAAE,OAAO;IAAE,MAAM;IAAM,OAAO;IAAM;GAAE,MAAM;GAAM;EACjE,eAAe;EACf,WAAW;EACd;CACJ,CAAC,EACI,KAAoC,kBAAa,UAAU;CAC7D,SAAS;CACT,OAAO,CACU,kBAAe,IAAI,EAC5B,kBAAiB,MAAM,EAAG,aAAa,EAAG,MAC7C,CAAC,EACW,kBAAa,IAAI,EAC1B,QAAO,OAAS;EAAE,MAAM,EAAK;EAAM,IAAI,EAAK;EAAI,GACnD,CAAC,CACL;CACJ,CAAC,EAKI,KAAoC,mBAA0B,MAAQ,EAAK,QAAQ,kBAAkB,EAAK,QAAQ,mBAAmB;AAI3I,SAAS,GAAK,GAAQ;AAClB,QAAO,IAAI,EAAiB,GAAuD,WAAY,KAAuB,GAAc,EAAa,KAAK,GAAG,EAAE,cAAc,IAAsB,CAAC,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { u as e } from "./useChatbotStore-
|
|
1
|
+
import { u as e } from "./useChatbotStore-ys9uGP5v.js";
|
|
2
2
|
import { A as t, C as n, M as r, N as i, V as a, W as o, lt as s, n as c, p as l, r as ee, s as te, t as ne, u as re, y as ie } from "./dist--mE2E_mM.js";
|
|
3
|
-
import { n as u, t as ae } from "./dist-
|
|
4
|
-
import { a as oe, i as se, n as ce, o as le, r as d } from "./dist-
|
|
3
|
+
import { n as u, t as ae } from "./dist-DV82RztV.js";
|
|
4
|
+
import { a as oe, i as se, n as ce, o as le, r as d } from "./dist-QbFF3eM_.js";
|
|
5
5
|
//#region ../../node_modules/.pnpm/@lezer+html@1.3.13/node_modules/@lezer/html/dist/index.js
|
|
6
6
|
var ue = 55, de = 1, fe = 56, pe = 2, me = 57, he = 3, f = 4, ge = 5, p = 6, m = 7, h = 8, g = 9, _ = 10, _e = 11, ve = 12, ye = 13, v = 58, be = 14, xe = 15, y = 59, b = 21, Se = 23, x = 24, Ce = 25, S = 27, C = 28, we = 29, Te = 32, Ee = 35, De = 37, Oe = 38, ke = 0, Ae = 1, je = {
|
|
7
7
|
area: !0,
|
|
@@ -1332,4 +1332,4 @@ var ct = /* @__PURE__ */ new Set(/* @__PURE__ */ "area base br col command embed
|
|
|
1332
1332
|
//#endregion
|
|
1333
1333
|
export { st as n, tt as r, Ye as t };
|
|
1334
1334
|
|
|
1335
|
-
//# sourceMappingURL=dist-
|
|
1335
|
+
//# sourceMappingURL=dist-BWXfA4NS.js.map
|