@onereach/ui-components 26.6.5 → 26.6.6-beta.5952.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.
@@ -3,7 +3,7 @@ import { Compartment as F, EditorState as H } from "@codemirror/state";
3
3
  import { keymap as no, EditorView as k } from "@codemirror/view";
4
4
  import { useIdAttribute as lo, useControlAttributes as ao, useValidationAttributes as so, useProxyModelValue as io, useTheme as uo } from "@onereach/ui-components-common/hooks";
5
5
  import { O as co } from "./OrIconButton-Ds8k8FmS.mjs";
6
- import { O as mo } from "./OrModal-DiVA7_Ct.mjs";
6
+ import { O as mo } from "./OrModal-Cu2s5mfW.mjs";
7
7
  import { basicSetup as fo } from "codemirror";
8
8
  import { defineComponent as D, ref as h, computed as B, resolveComponent as p, openBlock as I, createElementBlock as L, normalizeClass as V, createVNode as v, withCtx as n, renderSlot as a, createTextVNode as g, toDisplayString as C, createElementVNode as W, withDirectives as z, createBlock as R, vShow as J, createCommentVNode as G, reactive as po, toRef as yo, watch as T, onMounted as bo, onUnmounted as ho, createSlots as A, withModifiers as vo } from "vue";
9
9
  import { O as go } from "./OrError-B5ihH6-3.mjs";
@@ -499,4 +499,4 @@ export {
499
499
  c as C,
500
500
  Po as O
501
501
  };
502
- //# sourceMappingURL=OrCode-BLHj3vA6.mjs.map
502
+ //# sourceMappingURL=OrCode-DaM9I3Ks.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"OrCode-BLHj3vA6.mjs","sources":["../../../components/or-code-v3/src/styles.ts","../../../components/or-code-v3/src/partials/OrCodeControl.vue","../../../components/or-code-v3/src/props.ts","../../../components/or-code-v3/src/OrCode.vue"],"sourcesContent":["export const Code: string[] = [\n // Layout\n 'layout-column',\n\n // Spacing\n 'gap-xs',\n];\n\nexport const CodeControlRoot: string[] = [\n // Layout\n 'layout-column',\n\n // Sizing\n 'h-full',\n\n // Spacing\n 'gap-xs',\n];\n\nexport const CodeControl: string[] = [\n // Layout\n 'grid',\n\n // Box\n 'w-full',\n 'h-full',\n\n // Spacing\n '!mx-0',\n '!my-0',\n\n // Theme\n 'theme-background-transparent',\n\n // todo: https://onereach.atlassian.net/browse/UI-580\n 'dark:invert dark:hue-rotate-180',\n];\n\nexport const CodeModal: string[] = [\n // Sizing\n '!h-full',\n];\n","<template>\n <div\n :ref=\"'root'\"\n :class=\"rootStyles\"\n >\n <OrLabel\n :control-id=\"controlId\"\n :variant=\"'input'\"\n :required=\"required\"\n :disabled=\"disabled\"\n >\n <slot name=\"label\">\n {{ label }}\n </slot>\n\n <template v-slot:addon>\n <slot name=\"addon\" />\n </template>\n </OrLabel>\n\n <OrInputBox\n :class=\"['grow']\"\n :size=\"'m'\"\n :invalid=\"!!error || !!$slots.error\"\n :readonly=\"readonly\"\n :disabled=\"disabled\"\n >\n <div\n :ref=\"'control'\"\n :class=\"controlStyles\"\n />\n </OrInputBox>\n\n <template v-if=\"$slots.hint || hint\">\n <OrHint\n v-show=\"!error\"\n :disabled=\"disabled\"\n >\n <slot name=\"hint\">\n {{ hint }}\n </slot>\n </OrHint>\n </template>\n\n <OrError\n v-show=\"typeof error === 'string' && error.length > 0 || $slots.error\"\n :disabled=\"disabled\"\n >\n <slot name=\"error\">\n {{ error }}\n </slot>\n </OrError>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { OrErrorV3 as OrError } from '@onereach/ui-components.or-error-v3';\nimport { OrHintV3 as OrHint } from '@onereach/ui-components.or-hint-v3';\nimport { OrInputBoxV3 as OrInputBox } from '@onereach/ui-components.or-input-box-v3';\nimport { OrLabelV3 as OrLabel } from '@onereach/ui-components.or-label-v3';\nimport { computed, defineComponent, ref } from 'vue';\n\nimport { CodeControl, CodeControlRoot } from '../styles';\n\nexport default defineComponent({\n name: 'OrCodeControl',\n\n components: {\n OrError,\n OrHint,\n OrInputBox,\n OrLabel,\n },\n\n props: {\n error: {\n type: [String, Boolean],\n default: undefined,\n },\n\n required: {\n type: Boolean,\n default: false,\n },\n\n controlId: {\n type: String,\n default: undefined,\n },\n\n label: {\n type: String,\n default: undefined,\n },\n\n readonly: {\n type: Boolean,\n default: false,\n },\n\n disabled: {\n type: Boolean,\n default: false,\n },\n\n hint: {\n type: String,\n default: undefined,\n },\n },\n\n expose: [\n 'root',\n 'control',\n\n 'focus',\n 'blur',\n ],\n\n setup() {\n // Refs\n const root = ref<HTMLElement>();\n const control = ref<HTMLElement>();\n\n // Methods\n function focus(): void {\n control.value?.focus();\n }\n\n function blur(): void {\n control.value?.blur();\n }\n // Styles\n const rootStyles = computed(() => [\n 'or-code-control-v3',\n ...CodeControlRoot,\n ]);\n\n const controlStyles = computed(() => [\n ...CodeControl,\n ]);\n\n return {\n root,\n control,\n rootStyles,\n controlStyles,\n focus,\n blur,\n };\n },\n});\n</script>\n","export enum CodeLanguage {\n HTML = 'html',\n CSS = 'css',\n JS = 'js',\n TS = 'ts',\n JSON = 'json',\n MD = 'md',\n}\n","<template>\n <div\n :ref=\"'root'\"\n :class=\"rootStyles\"\n >\n <OrCodeControl\n :ref=\"'control'\"\n :control-id=\"controlAttributes.id\"\n :label=\"label\"\n :hint=\"hint\"\n :error=\"error\"\n :disabled=\"disabled\"\n :readonly=\"readonly\"\n >\n <template v-slot:label>\n <slot name=\"label\">\n {{ label }}\n </slot>\n </template>\n <template v-slot:addon>\n <div :class=\"['layout-row', 'gap-xs']\">\n <slot name=\"addon\" />\n\n <OrIconButton\n v-if=\"enableFullscreen\"\n :icon=\"'fullscreen'\"\n @click.stop=\"openFullscreen()\"\n />\n </div>\n </template>\n <template v-slot:hint>\n <slot name=\"hint\">\n {{ hint }}\n </slot>\n </template>\n <template\n v-if=\"$slots.error\"\n v-slot:error\n >\n <slot name=\"error\" />\n </template>\n </OrCodeControl>\n\n <OrModal\n :ref=\"'modal'\"\n :additional-styles=\"modalStyles\"\n :size=\"'l'\"\n >\n <template v-slot:header>\n <slot name=\"label\">\n {{ label }}\n </slot>\n </template>\n\n <OrCodeControl\n :ref=\"'fullscreenControl'\"\n :control-id=\"controlAttributes.id\"\n :hint=\"hint\"\n :error=\"error\"\n :disabled=\"disabled\"\n :readonly=\"readonly\"\n >\n <template v-slot:addon>\n <slot name=\"addon\" />\n </template>\n <template\n v-if=\"$slots.error\"\n v-slot:error\n >\n <slot name=\"error\" />\n </template>\n </OrCodeControl>\n\n <template\n v-if=\"$slots.modalFooter\"\n v-slot:footer\n >\n <slot name=\"modalFooter\" />\n </template>\n </OrModal>\n </div>\n</template>\n\n<script lang=\"ts\">\n\n/* Codemirror core */\n\nimport { indentWithTab } from '@codemirror/commands';\nimport { Compartment, EditorState, Extension } from '@codemirror/state';\nimport { EditorView, keymap } from '@codemirror/view';\nimport { useControlAttributes, useIdAttribute, useProxyModelValue, useTheme, useValidationAttributes } from '@onereach/ui-components-common/hooks';\n\n/* Components */\nimport { OrIconButtonV3 as OrIconButton } from '@onereach/ui-components.or-icon-button-v3';\nimport { OrModalV3 as OrModal } from '@onereach/ui-components.or-modal-v3';\nimport { basicSetup } from 'codemirror';\nimport { PropType, computed, defineComponent, onMounted, onUnmounted, reactive, ref, toRef, watch } from 'vue';\n\nimport OrCodeControl from './partials/OrCodeControl.vue';\nimport { CodeLanguage } from './props';\nimport { Code, CodeControl, CodeModal } from './styles';\n\nexport default defineComponent({\n name: 'OrCode',\n\n components: {\n OrModal,\n OrCodeControl,\n OrIconButton,\n },\n\n model: {\n prop: 'modelValue',\n event: 'update:modelValue',\n },\n\n props: {\n modelValue: {\n type: String,\n default: undefined,\n },\n\n language: {\n type: String as PropType<CodeLanguage>,\n default: () => CodeLanguage.JS,\n },\n\n extensions: {\n type: Array as PropType<Extension[]>,\n default: () => [],\n },\n\n label: {\n type: String,\n default: undefined,\n },\n\n hint: {\n type: String,\n default: undefined,\n },\n\n error: {\n type: [String, Boolean],\n default: undefined,\n },\n\n required: {\n type: Boolean,\n default: false,\n },\n\n readonly: {\n type: Boolean,\n default: false,\n },\n\n disabled: {\n type: Boolean,\n default: false,\n },\n\n // todo: review flag prop, seems better to set 'false' default value\n enableFullscreen: {\n type: Boolean,\n default: true,\n },\n },\n\n emits: [\n 'update:modelValue',\n\n 'input',\n 'keydown',\n 'keyup',\n 'focus',\n 'blur',\n ],\n\n expose: [\n 'root',\n\n 'editorView',\n 'control',\n 'fullscreenControl',\n 'modal',\n\n 'focus',\n 'blur',\n 'openFullscreen',\n ],\n\n setup(props, context) {\n // Refs\n const root = ref<HTMLElement>();\n const control = ref<InstanceType<typeof OrCodeControl>>();\n const fullscreenControl = ref<InstanceType<typeof OrCodeControl>>();\n\n const modal = ref<InstanceType<typeof OrModal>>();\n\n // Styles\n const rootStyles = computed(() => [\n 'or-code-v3',\n ...Code,\n ]);\n\n const controlStyles = computed(() => [\n ...CodeControl,\n ]);\n\n const modalStyles = computed(() => [\n ...CodeModal,\n ]);\n\n const addedExtensionCompartment = new Compartment();\n const languageExtensionCompartment = new Compartment();\n const readonlyExtensionCompartment = new Compartment();\n const disabledExtensionCompartment = new Compartment();\n\n // State\n const controlAttributes = reactive({\n id: useIdAttribute(),\n ...useControlAttributes(),\n ...useValidationAttributes(),\n });\n\n const proxyModelValue = useProxyModelValue(toRef(props, 'modelValue'), context.emit);\n\n const getLanguageExtension = async (language: CodeLanguage) => {\n switch (language) {\n case CodeLanguage.HTML:\n return (await import('@codemirror/lang-html')).html();\n\n case CodeLanguage.CSS:\n return (await import('@codemirror/lang-css')).css();\n\n case CodeLanguage.JS:\n return (await import('@codemirror/lang-javascript')).javascript();\n\n case CodeLanguage.TS:\n return (await import('@codemirror/lang-javascript')).javascript({ typescript: true });\n\n case CodeLanguage.JSON:\n return (await import('@codemirror/lang-json')).json();\n\n case CodeLanguage.MD:\n return (await import('@codemirror/lang-markdown')).markdown();\n }\n };\n\n // Methods\n function focus(): void {\n (control.value?.focus as unknown as () => void)?.();\n }\n\n function blur(): void {\n (control.value?.blur as unknown as () => void)?.();\n }\n\n function openFullscreen(): void {\n (modal.value?.open as unknown as () => void)?.();\n }\n\n // #region Codemirror\n const theme = useTheme();\n const defaultExtensions = [\n basicSetup,\n\n keymap.of([\n indentWithTab,\n ]),\n\n EditorView.domEventHandlers({\n input: (event) => {\n context.emit('input', event);\n },\n\n keydown: (event) => {\n context.emit('keydown', event);\n },\n\n keyup: (event) => {\n context.emit('keyup', event);\n },\n\n focus: (event) => {\n context.emit('focus', event);\n },\n\n blur: (event) => {\n context.emit('blur', event);\n },\n }),\n\n EditorView.theme({\n '&': {\n overflow: 'hidden',\n\n color: theme.textColor['on-background'],\n backgroundColor: 'transparent',\n },\n\n '&.cm-focused': {\n outline: 'none',\n },\n\n '.cm-scroller': {\n fontFamily: theme.fontFamily['caption'],\n fontWeight: theme.fontWeight['caption'],\n fontSize: theme.fontSize['caption'],\n lineHeight: theme.lineHeight['caption'],\n },\n\n '.cm-gutters': {\n color: theme.textColor['on-background'],\n backgroundColor: theme.backgroundColor['primary-opacity-0-12'],\n borderColor: theme.borderColor['outline'],\n\n backdropFilter: 'blur(2px)',\n },\n\n '.cm-activeLineGutter, .cm-activeLine': {\n backgroundColor: theme.backgroundColor['primary-opacity-0-08'],\n },\n }),\n ];\n\n const state = EditorState.create({\n doc: proxyModelValue.value,\n\n extensions: [\n ...defaultExtensions,\n languageExtensionCompartment.of([]),\n addedExtensionCompartment.of(props.extensions),\n readonlyExtensionCompartment.of([EditorState.readOnly.of(props.readonly)]),\n disabledExtensionCompartment.of([EditorView.editable.of(!props.disabled)]),\n ],\n });\n\n const editorView = new EditorView({\n state,\n\n dispatch: (transaction) => {\n editorView.update([\n transaction,\n ]);\n\n if (transaction.docChanged) {\n proxyModelValue.value = String(editorView.state.doc);\n }\n },\n });\n\n watch(proxyModelValue, (value) => {\n if (editorView.composing) return;\n if (editorView.state.doc.toString() === value) return;\n\n const modelValue = value ?? '';\n const { selection } = editorView.state;\n\n editorView!.dispatch({\n changes: {\n from: 0,\n to: editorView!.state.doc.length,\n insert: modelValue,\n },\n\n selection: selection.ranges.some((range) => range.to > modelValue.length) ? { anchor: modelValue.length } : selection,\n });\n });\n\n watch([\n () => props.extensions,\n () => props.language,\n () => props.readonly,\n () => props.disabled,\n ], async ([extensions, language, readonly, disabled], [, prevLanguage, pevReadonly, pevDisabled]) => {\n let effects = [];\n\n if (readonly !== pevReadonly) {\n effects.push(readonlyExtensionCompartment.reconfigure(EditorState.readOnly.of(readonly)));\n }\n\n if (disabled !== pevDisabled) {\n effects.push(disabledExtensionCompartment.reconfigure(EditorView.editable.of(!disabled)));\n }\n\n if (language !== prevLanguage) {\n const languageExt = await getLanguageExtension(language as CodeLanguage);\n\n effects.push(languageExtensionCompartment.reconfigure([languageExt]));\n }\n\n effects.push(addedExtensionCompartment.reconfigure(extensions));\n\n editorView!.dispatch({ effects });\n }, { immediate: true });\n // #endregion\n\n // Effects\n watch(() => modal.value?.state, (value) => {\n setTimeout(() => {\n if (value === 'open') {\n (fullscreenControl.value?.control as unknown as HTMLElement)?.append(editorView.dom);\n } else {\n (control.value?.control as unknown as HTMLElement)?.append(editorView.dom);\n }\n });\n });\n\n // Lifecycle\n onMounted(() => {\n (control.value?.control as unknown as HTMLElement)?.append(editorView.dom);\n });\n\n onUnmounted(() => {\n editorView.destroy();\n });\n\n return {\n root,\n editorView,\n control,\n fullscreenControl,\n modal,\n rootStyles,\n controlStyles,\n modalStyles,\n controlAttributes,\n proxyModelValue,\n focus,\n blur,\n openFullscreen,\n };\n },\n});\n</script>\n"],"names":["Code","CodeControlRoot","CodeControl","CodeModal","_sfc_main$1","defineComponent","OrError","OrHint","OrInputBox","OrLabel","root","ref","control","focus","_a","blur","rootStyles","computed","controlStyles","_resolveComponent","_openBlock","_createElementBlock","_normalizeClass","_ctx","_component_OrLabel","_renderSlot","_createVNode","_component_OrInputBox","_withCtx","_createElementVNode","_withDirectives","_createBlock","_component_OrHint","_createCommentVNode","_component_OrError","CodeLanguage","_sfc_main","OrModal","OrCodeControl","OrIconButton","props","context","fullscreenControl","modal","modalStyles","addedExtensionCompartment","Compartment","languageExtensionCompartment","readonlyExtensionCompartment","disabledExtensionCompartment","controlAttributes","reactive","useIdAttribute","useControlAttributes","useValidationAttributes","proxyModelValue","useProxyModelValue","toRef","getLanguageExtension","language","_b","openFullscreen","theme","useTheme","defaultExtensions","basicSetup","keymap","indentWithTab","EditorView","event","state","EditorState","editorView","transaction","watch","value","modelValue","selection","range","extensions","readonly","disabled","prevLanguage","pevReadonly","pevDisabled","effects","languageExt","_d","_c","onMounted","onUnmounted","_component_OrCodeControl","_createSlots","_hoisted_1","_component_OrIconButton","_component_OrModal"],"mappings":"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"}
1
+ {"version":3,"file":"OrCode-DaM9I3Ks.mjs","sources":["../../../components/or-code-v3/src/styles.ts","../../../components/or-code-v3/src/partials/OrCodeControl.vue","../../../components/or-code-v3/src/props.ts","../../../components/or-code-v3/src/OrCode.vue"],"sourcesContent":["export const Code: string[] = [\n // Layout\n 'layout-column',\n\n // Spacing\n 'gap-xs',\n];\n\nexport const CodeControlRoot: string[] = [\n // Layout\n 'layout-column',\n\n // Sizing\n 'h-full',\n\n // Spacing\n 'gap-xs',\n];\n\nexport const CodeControl: string[] = [\n // Layout\n 'grid',\n\n // Box\n 'w-full',\n 'h-full',\n\n // Spacing\n '!mx-0',\n '!my-0',\n\n // Theme\n 'theme-background-transparent',\n\n // todo: https://onereach.atlassian.net/browse/UI-580\n 'dark:invert dark:hue-rotate-180',\n];\n\nexport const CodeModal: string[] = [\n // Sizing\n '!h-full',\n];\n","<template>\n <div\n :ref=\"'root'\"\n :class=\"rootStyles\"\n >\n <OrLabel\n :control-id=\"controlId\"\n :variant=\"'input'\"\n :required=\"required\"\n :disabled=\"disabled\"\n >\n <slot name=\"label\">\n {{ label }}\n </slot>\n\n <template v-slot:addon>\n <slot name=\"addon\" />\n </template>\n </OrLabel>\n\n <OrInputBox\n :class=\"['grow']\"\n :size=\"'m'\"\n :invalid=\"!!error || !!$slots.error\"\n :readonly=\"readonly\"\n :disabled=\"disabled\"\n >\n <div\n :ref=\"'control'\"\n :class=\"controlStyles\"\n />\n </OrInputBox>\n\n <template v-if=\"$slots.hint || hint\">\n <OrHint\n v-show=\"!error\"\n :disabled=\"disabled\"\n >\n <slot name=\"hint\">\n {{ hint }}\n </slot>\n </OrHint>\n </template>\n\n <OrError\n v-show=\"typeof error === 'string' && error.length > 0 || $slots.error\"\n :disabled=\"disabled\"\n >\n <slot name=\"error\">\n {{ error }}\n </slot>\n </OrError>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { OrErrorV3 as OrError } from '@onereach/ui-components.or-error-v3';\nimport { OrHintV3 as OrHint } from '@onereach/ui-components.or-hint-v3';\nimport { OrInputBoxV3 as OrInputBox } from '@onereach/ui-components.or-input-box-v3';\nimport { OrLabelV3 as OrLabel } from '@onereach/ui-components.or-label-v3';\nimport { computed, defineComponent, ref } from 'vue';\n\nimport { CodeControl, CodeControlRoot } from '../styles';\n\nexport default defineComponent({\n name: 'OrCodeControl',\n\n components: {\n OrError,\n OrHint,\n OrInputBox,\n OrLabel,\n },\n\n props: {\n error: {\n type: [String, Boolean],\n default: undefined,\n },\n\n required: {\n type: Boolean,\n default: false,\n },\n\n controlId: {\n type: String,\n default: undefined,\n },\n\n label: {\n type: String,\n default: undefined,\n },\n\n readonly: {\n type: Boolean,\n default: false,\n },\n\n disabled: {\n type: Boolean,\n default: false,\n },\n\n hint: {\n type: String,\n default: undefined,\n },\n },\n\n expose: [\n 'root',\n 'control',\n\n 'focus',\n 'blur',\n ],\n\n setup() {\n // Refs\n const root = ref<HTMLElement>();\n const control = ref<HTMLElement>();\n\n // Methods\n function focus(): void {\n control.value?.focus();\n }\n\n function blur(): void {\n control.value?.blur();\n }\n // Styles\n const rootStyles = computed(() => [\n 'or-code-control-v3',\n ...CodeControlRoot,\n ]);\n\n const controlStyles = computed(() => [\n ...CodeControl,\n ]);\n\n return {\n root,\n control,\n rootStyles,\n controlStyles,\n focus,\n blur,\n };\n },\n});\n</script>\n","export enum CodeLanguage {\n HTML = 'html',\n CSS = 'css',\n JS = 'js',\n TS = 'ts',\n JSON = 'json',\n MD = 'md',\n}\n","<template>\n <div\n :ref=\"'root'\"\n :class=\"rootStyles\"\n >\n <OrCodeControl\n :ref=\"'control'\"\n :control-id=\"controlAttributes.id\"\n :label=\"label\"\n :hint=\"hint\"\n :error=\"error\"\n :disabled=\"disabled\"\n :readonly=\"readonly\"\n >\n <template v-slot:label>\n <slot name=\"label\">\n {{ label }}\n </slot>\n </template>\n <template v-slot:addon>\n <div :class=\"['layout-row', 'gap-xs']\">\n <slot name=\"addon\" />\n\n <OrIconButton\n v-if=\"enableFullscreen\"\n :icon=\"'fullscreen'\"\n @click.stop=\"openFullscreen()\"\n />\n </div>\n </template>\n <template v-slot:hint>\n <slot name=\"hint\">\n {{ hint }}\n </slot>\n </template>\n <template\n v-if=\"$slots.error\"\n v-slot:error\n >\n <slot name=\"error\" />\n </template>\n </OrCodeControl>\n\n <OrModal\n :ref=\"'modal'\"\n :additional-styles=\"modalStyles\"\n :size=\"'l'\"\n >\n <template v-slot:header>\n <slot name=\"label\">\n {{ label }}\n </slot>\n </template>\n\n <OrCodeControl\n :ref=\"'fullscreenControl'\"\n :control-id=\"controlAttributes.id\"\n :hint=\"hint\"\n :error=\"error\"\n :disabled=\"disabled\"\n :readonly=\"readonly\"\n >\n <template v-slot:addon>\n <slot name=\"addon\" />\n </template>\n <template\n v-if=\"$slots.error\"\n v-slot:error\n >\n <slot name=\"error\" />\n </template>\n </OrCodeControl>\n\n <template\n v-if=\"$slots.modalFooter\"\n v-slot:footer\n >\n <slot name=\"modalFooter\" />\n </template>\n </OrModal>\n </div>\n</template>\n\n<script lang=\"ts\">\n\n/* Codemirror core */\n\nimport { indentWithTab } from '@codemirror/commands';\nimport { Compartment, EditorState, Extension } from '@codemirror/state';\nimport { EditorView, keymap } from '@codemirror/view';\nimport { useControlAttributes, useIdAttribute, useProxyModelValue, useTheme, useValidationAttributes } from '@onereach/ui-components-common/hooks';\n\n/* Components */\nimport { OrIconButtonV3 as OrIconButton } from '@onereach/ui-components.or-icon-button-v3';\nimport { OrModalV3 as OrModal } from '@onereach/ui-components.or-modal-v3';\nimport { basicSetup } from 'codemirror';\nimport { PropType, computed, defineComponent, onMounted, onUnmounted, reactive, ref, toRef, watch } from 'vue';\n\nimport OrCodeControl from './partials/OrCodeControl.vue';\nimport { CodeLanguage } from './props';\nimport { Code, CodeControl, CodeModal } from './styles';\n\nexport default defineComponent({\n name: 'OrCode',\n\n components: {\n OrModal,\n OrCodeControl,\n OrIconButton,\n },\n\n model: {\n prop: 'modelValue',\n event: 'update:modelValue',\n },\n\n props: {\n modelValue: {\n type: String,\n default: undefined,\n },\n\n language: {\n type: String as PropType<CodeLanguage>,\n default: () => CodeLanguage.JS,\n },\n\n extensions: {\n type: Array as PropType<Extension[]>,\n default: () => [],\n },\n\n label: {\n type: String,\n default: undefined,\n },\n\n hint: {\n type: String,\n default: undefined,\n },\n\n error: {\n type: [String, Boolean],\n default: undefined,\n },\n\n required: {\n type: Boolean,\n default: false,\n },\n\n readonly: {\n type: Boolean,\n default: false,\n },\n\n disabled: {\n type: Boolean,\n default: false,\n },\n\n // todo: review flag prop, seems better to set 'false' default value\n enableFullscreen: {\n type: Boolean,\n default: true,\n },\n },\n\n emits: [\n 'update:modelValue',\n\n 'input',\n 'keydown',\n 'keyup',\n 'focus',\n 'blur',\n ],\n\n expose: [\n 'root',\n\n 'editorView',\n 'control',\n 'fullscreenControl',\n 'modal',\n\n 'focus',\n 'blur',\n 'openFullscreen',\n ],\n\n setup(props, context) {\n // Refs\n const root = ref<HTMLElement>();\n const control = ref<InstanceType<typeof OrCodeControl>>();\n const fullscreenControl = ref<InstanceType<typeof OrCodeControl>>();\n\n const modal = ref<InstanceType<typeof OrModal>>();\n\n // Styles\n const rootStyles = computed(() => [\n 'or-code-v3',\n ...Code,\n ]);\n\n const controlStyles = computed(() => [\n ...CodeControl,\n ]);\n\n const modalStyles = computed(() => [\n ...CodeModal,\n ]);\n\n const addedExtensionCompartment = new Compartment();\n const languageExtensionCompartment = new Compartment();\n const readonlyExtensionCompartment = new Compartment();\n const disabledExtensionCompartment = new Compartment();\n\n // State\n const controlAttributes = reactive({\n id: useIdAttribute(),\n ...useControlAttributes(),\n ...useValidationAttributes(),\n });\n\n const proxyModelValue = useProxyModelValue(toRef(props, 'modelValue'), context.emit);\n\n const getLanguageExtension = async (language: CodeLanguage) => {\n switch (language) {\n case CodeLanguage.HTML:\n return (await import('@codemirror/lang-html')).html();\n\n case CodeLanguage.CSS:\n return (await import('@codemirror/lang-css')).css();\n\n case CodeLanguage.JS:\n return (await import('@codemirror/lang-javascript')).javascript();\n\n case CodeLanguage.TS:\n return (await import('@codemirror/lang-javascript')).javascript({ typescript: true });\n\n case CodeLanguage.JSON:\n return (await import('@codemirror/lang-json')).json();\n\n case CodeLanguage.MD:\n return (await import('@codemirror/lang-markdown')).markdown();\n }\n };\n\n // Methods\n function focus(): void {\n (control.value?.focus as unknown as () => void)?.();\n }\n\n function blur(): void {\n (control.value?.blur as unknown as () => void)?.();\n }\n\n function openFullscreen(): void {\n (modal.value?.open as unknown as () => void)?.();\n }\n\n // #region Codemirror\n const theme = useTheme();\n const defaultExtensions = [\n basicSetup,\n\n keymap.of([\n indentWithTab,\n ]),\n\n EditorView.domEventHandlers({\n input: (event) => {\n context.emit('input', event);\n },\n\n keydown: (event) => {\n context.emit('keydown', event);\n },\n\n keyup: (event) => {\n context.emit('keyup', event);\n },\n\n focus: (event) => {\n context.emit('focus', event);\n },\n\n blur: (event) => {\n context.emit('blur', event);\n },\n }),\n\n EditorView.theme({\n '&': {\n overflow: 'hidden',\n\n color: theme.textColor['on-background'],\n backgroundColor: 'transparent',\n },\n\n '&.cm-focused': {\n outline: 'none',\n },\n\n '.cm-scroller': {\n fontFamily: theme.fontFamily['caption'],\n fontWeight: theme.fontWeight['caption'],\n fontSize: theme.fontSize['caption'],\n lineHeight: theme.lineHeight['caption'],\n },\n\n '.cm-gutters': {\n color: theme.textColor['on-background'],\n backgroundColor: theme.backgroundColor['primary-opacity-0-12'],\n borderColor: theme.borderColor['outline'],\n\n backdropFilter: 'blur(2px)',\n },\n\n '.cm-activeLineGutter, .cm-activeLine': {\n backgroundColor: theme.backgroundColor['primary-opacity-0-08'],\n },\n }),\n ];\n\n const state = EditorState.create({\n doc: proxyModelValue.value,\n\n extensions: [\n ...defaultExtensions,\n languageExtensionCompartment.of([]),\n addedExtensionCompartment.of(props.extensions),\n readonlyExtensionCompartment.of([EditorState.readOnly.of(props.readonly)]),\n disabledExtensionCompartment.of([EditorView.editable.of(!props.disabled)]),\n ],\n });\n\n const editorView = new EditorView({\n state,\n\n dispatch: (transaction) => {\n editorView.update([\n transaction,\n ]);\n\n if (transaction.docChanged) {\n proxyModelValue.value = String(editorView.state.doc);\n }\n },\n });\n\n watch(proxyModelValue, (value) => {\n if (editorView.composing) return;\n if (editorView.state.doc.toString() === value) return;\n\n const modelValue = value ?? '';\n const { selection } = editorView.state;\n\n editorView!.dispatch({\n changes: {\n from: 0,\n to: editorView!.state.doc.length,\n insert: modelValue,\n },\n\n selection: selection.ranges.some((range) => range.to > modelValue.length) ? { anchor: modelValue.length } : selection,\n });\n });\n\n watch([\n () => props.extensions,\n () => props.language,\n () => props.readonly,\n () => props.disabled,\n ], async ([extensions, language, readonly, disabled], [, prevLanguage, pevReadonly, pevDisabled]) => {\n let effects = [];\n\n if (readonly !== pevReadonly) {\n effects.push(readonlyExtensionCompartment.reconfigure(EditorState.readOnly.of(readonly)));\n }\n\n if (disabled !== pevDisabled) {\n effects.push(disabledExtensionCompartment.reconfigure(EditorView.editable.of(!disabled)));\n }\n\n if (language !== prevLanguage) {\n const languageExt = await getLanguageExtension(language as CodeLanguage);\n\n effects.push(languageExtensionCompartment.reconfigure([languageExt]));\n }\n\n effects.push(addedExtensionCompartment.reconfigure(extensions));\n\n editorView!.dispatch({ effects });\n }, { immediate: true });\n // #endregion\n\n // Effects\n watch(() => modal.value?.state, (value) => {\n setTimeout(() => {\n if (value === 'open') {\n (fullscreenControl.value?.control as unknown as HTMLElement)?.append(editorView.dom);\n } else {\n (control.value?.control as unknown as HTMLElement)?.append(editorView.dom);\n }\n });\n });\n\n // Lifecycle\n onMounted(() => {\n (control.value?.control as unknown as HTMLElement)?.append(editorView.dom);\n });\n\n onUnmounted(() => {\n editorView.destroy();\n });\n\n return {\n root,\n editorView,\n control,\n fullscreenControl,\n modal,\n rootStyles,\n controlStyles,\n modalStyles,\n controlAttributes,\n proxyModelValue,\n focus,\n blur,\n openFullscreen,\n };\n },\n});\n</script>\n"],"names":["Code","CodeControlRoot","CodeControl","CodeModal","_sfc_main$1","defineComponent","OrError","OrHint","OrInputBox","OrLabel","root","ref","control","focus","_a","blur","rootStyles","computed","controlStyles","_resolveComponent","_openBlock","_createElementBlock","_normalizeClass","_ctx","_component_OrLabel","_renderSlot","_createVNode","_component_OrInputBox","_withCtx","_createElementVNode","_withDirectives","_createBlock","_component_OrHint","_createCommentVNode","_component_OrError","CodeLanguage","_sfc_main","OrModal","OrCodeControl","OrIconButton","props","context","fullscreenControl","modal","modalStyles","addedExtensionCompartment","Compartment","languageExtensionCompartment","readonlyExtensionCompartment","disabledExtensionCompartment","controlAttributes","reactive","useIdAttribute","useControlAttributes","useValidationAttributes","proxyModelValue","useProxyModelValue","toRef","getLanguageExtension","language","_b","openFullscreen","theme","useTheme","defaultExtensions","basicSetup","keymap","indentWithTab","EditorView","event","state","EditorState","editorView","transaction","watch","value","modelValue","selection","range","extensions","readonly","disabled","prevLanguage","pevReadonly","pevDisabled","effects","languageExt","_d","_c","onMounted","onUnmounted","_component_OrCodeControl","_createSlots","_hoisted_1","_component_OrIconButton","_component_OrModal"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { usePopoverState as R } from "@onereach/ui-components-common/hooks";
2
- import { O as C } from "./OrFilterPopover-DXO-6y8a.mjs";
2
+ import { O as C } from "./OrFilterPopover-Co1jgWWI.mjs";
3
3
  import { O as S } from "./OrFilterTrigger-BNVaoHrT.mjs";
4
4
  import { defineComponent as c, ref as n, computed as m, toRef as k, resolveComponent as f, openBlock as B, createElementBlock as T, normalizeClass as b, createVNode as u, mergeProps as v, withCtx as d, renderSlot as O, normalizeProps as j, guardReactiveProps as z } from "vue";
5
5
  import { _ as w } from "./_plugin-vue_export-helper-CHgC5LLL.mjs";
@@ -102,4 +102,4 @@ const H = /* @__PURE__ */ w(E, [["render", N]]);
102
102
  export {
103
103
  H as O
104
104
  };
105
- //# sourceMappingURL=OrFilter-CYD-gDsX.mjs.map
105
+ //# sourceMappingURL=OrFilter-BmWBFFA7.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"OrFilter-CYD-gDsX.mjs","sources":["../../../components/or-filter-v3/src/styles.ts","../../../components/or-filter-v3/src/OrFilter.vue"],"sourcesContent":["export const Filter: string[] = [];\n","<template>\n <div\n :ref=\"'root'\"\n :class=\"rootStyles\"\n >\n <OrFilterTrigger\n :ref=\"'trigger'\"\n :is-open=\"state === 'open'\"\n v-bind=\"triggerProps\"\n @click=\"toggle()\"\n @reset=\"reset()\"\n />\n\n <OrFilterPopover\n :ref=\"'popover'\"\n :is-open=\"state === 'open'\"\n :trigger=\"triggerRoot\"\n v-bind=\"popoverProps\"\n @update:state=\"$event === 'open' ? open() : close()\"\n @apply=\"apply()\"\n @reset=\"reset()\"\n >\n <slot />\n\n <template v-slot:actions=\"props\">\n <slot\n :name=\"'actions'\"\n v-bind=\"props\"\n />\n </template>\n </OrFilterPopover>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { usePopoverState } from '@onereach/ui-components-common/hooks';\nimport { OrFilterPopoverV3 as OrFilterPopover } from '@onereach/ui-components.or-filter-popover-v3';\nimport { OrFilterTriggerV3 as OrFilterTrigger } from '@onereach/ui-components.or-filter-trigger-v3';\nimport { PropType, computed, defineComponent, ref, toRef } from 'vue';\n\nimport * as Styles from './styles';\n\nexport default defineComponent({\n name: 'OrFilter',\n\n components: {\n OrFilterPopover,\n OrFilterTrigger,\n },\n\n props: {\n isOpen: {\n type: Boolean,\n default: false,\n },\n\n triggerProps: {\n type: Object as PropType<Omit<InstanceType<typeof OrFilterTrigger>['$props'], 'isOpen'>>,\n default: () => ({}),\n },\n\n popoverProps: {\n type: Object as PropType<Omit<InstanceType<typeof OrFilterPopover>['$props'], 'isOpen' | 'trigger'>>,\n default: () => ({}),\n },\n },\n\n emits: [\n 'update:state',\n\n 'open',\n 'close',\n\n 'apply',\n 'reset',\n ],\n\n expose: [\n 'root',\n\n 'state',\n\n 'open',\n 'close',\n 'toggle',\n ],\n\n setup(props, context) {\n // Refs & Styles\n const root = ref<HTMLElement>();\n\n const rootStyles = computed(() => [\n 'or-filter-v3',\n ...Styles.Filter,\n ]);\n\n const trigger = ref<InstanceType<typeof OrFilterTrigger>>();\n\n const triggerRoot = computed(() => {\n return trigger.value?.root;\n });\n\n const popover = ref<InstanceType<typeof OrFilterPopover>>();\n\n // State\n const { state, open, close, toggle } = usePopoverState(toRef(props, 'isOpen'), context.emit);\n\n // Methods\n function apply(): void {\n context.emit('apply');\n }\n\n function reset(): void {\n context.emit('reset');\n }\n\n return {\n root,\n rootStyles,\n\n trigger,\n triggerRoot,\n\n popover,\n\n state,\n\n open,\n close,\n toggle,\n\n apply,\n reset,\n };\n },\n});\n</script>\n"],"names":["Filter","_sfc_main","defineComponent","OrFilterPopover","OrFilterTrigger","props","context","root","ref","rootStyles","computed","Styles.Filter","trigger","triggerRoot","_a","popover","state","open","close","toggle","usePopoverState","toRef","apply","reset","_resolveComponent","_openBlock","_createElementBlock","_normalizeClass","_ctx","_component_OrFilterTrigger","_mergeProps","_cache","$event","_createVNode","_component_OrFilterPopover","_withCtx","_renderSlot","_normalizeProps","_guardReactiveProps"],"mappings":";;;;;AAAO,MAAMA,IAAmB,CAAC,GC0CjCC,IAAeC,EAAgB;AAAA,EAC7B,MAAM;AAAA,EAEN,YAAY;AAAA,IACV,iBAAAC;AAAA,IACA,iBAAAC;AAAA,EACF;AAAA,EAEA,OAAO;AAAA,IACL,QAAQ;AAAA,MACN,MAAM;AAAA,MACN,SAAS;AAAA,IACX;AAAA,IAEA,cAAc;AAAA,MACZ,MAAM;AAAA,MACN,SAAS,OAAO,CAAA;AAAA,IAClB;AAAA,IAEA,cAAc;AAAA,MACZ,MAAM;AAAA,MACN,SAAS,OAAO,CAAA;AAAA,IAClB;AAAA,EACF;AAAA,EAEA,OAAO;AAAA,IACL;AAAA,IAEA;AAAA,IACA;AAAA,IAEA;AAAA,IACA;AAAA,EACF;AAAA,EAEA,QAAQ;AAAA,IACN;AAAA,IAEA;AAAA,IAEA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAAA,EAEA,MAAMC,GAAOC,GAAS;AAEpB,UAAMC,IAAOC,KAEPC,IAAaC,EAAS,MAAM;AAAA,MAChC;AAAA,MACA,GAAGC;AAAAA,IAAO,CACX,GAEKC,IAAUJ,KAEVK,IAAcH,EAAS,MAAM;;AACjC,cAAOI,IAAAF,EAAQ,UAAR,gBAAAE,EAAe;AAAA,IAAA,CACvB,GAEKC,IAAUP,KAGV,EAAE,OAAAQ,GAAO,MAAAC,GAAM,OAAAC,GAAO,QAAAC,EAAO,IAAIC,EAAgBC,EAAMhB,GAAO,QAAQ,GAAGC,EAAQ,IAAI;AAG3F,aAASgB,IAAc;AACrB,MAAAhB,EAAQ,KAAK,OAAO;AAAA,IACtB;AAEA,aAASiB,IAAc;AACrB,MAAAjB,EAAQ,KAAK,OAAO;AAAA,IACtB;AAEO,WAAA;AAAA,MACL,MAAAC;AAAA,MACA,YAAAE;AAAA,MAEA,SAAAG;AAAA,MACA,aAAAC;AAAA,MAEA,SAAAE;AAAA,MAEA,OAAAC;AAAA,MAEA,MAAAC;AAAA,MACA,OAAAC;AAAA,MACA,QAAAC;AAAA,MAEA,OAAAG;AAAA,MACA,OAAAC;AAAA,IAAA;AAAA,EAEJ;AACF,CAAC;;sCAtICC,EA8BM,iBAAA;SA5BEC,EAAY,GAAAC,EAAA,OAAA;AAAA,IAAA,KAAA;AAAA,IAElB,OAMEC,EAAAC,EAAA,UAAA;AAAA,EAAA,GAAA;AAAA,MAJUC,GAAKC,EAAA;AAAA,MACP,KAAA;AAAA,MACP,WAAKF,EAAA,UAAA;AAAA,IAAA,GACLA,EAAK,cAAA;AAAA,MAAA,SAAAG,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA,CAAAC,MAAAJ,EAAA;MAGR,SAAAG,EAiBkB,qBAjBlBH,EAiBkB;IAAA,CAAA,GAhBf,MAAK,IAAS,CAAA,SAAA,CAAA;AAAA,IAAAK,EACLC,GAAKJ,EAAA;AAAA,MACd,KAAA;AAAA,MAAA,WACOF,EAAY,UAAA;AAAA,MACnB,SAAAA,EAAA;AAAA,IAAA,GACAA,EAAK,cAAA;AAAA,MACL,kBAAKG,uBAAEC,MAAK,SAAAJ,EAAA,KAAA,IAAAA,EAAA,MAAA;AAAA,MAAA,SAAAG,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA,CAAAC,MAAAJ,EAAA;MAII,SAAOG,SAIpBA,EAJ2B,CAAA,IAAA,CAAAC,MAAAJ,EAAA;IAAA,CAC7B,GAAA;AAAA,MAAA,SAAAO,EAAA,CAAA9B,MAAA;AAAA,QAHM+B,EAAAR,EAAA,QAAA,WAAAS,EAAAC,EAAAjC,CAAA,CAAA,CAAA;AAAA,MAAA,CAAA;AAAA;;;;;;;;"}
1
+ {"version":3,"file":"OrFilter-BmWBFFA7.mjs","sources":["../../../components/or-filter-v3/src/styles.ts","../../../components/or-filter-v3/src/OrFilter.vue"],"sourcesContent":["export const Filter: string[] = [];\n","<template>\n <div\n :ref=\"'root'\"\n :class=\"rootStyles\"\n >\n <OrFilterTrigger\n :ref=\"'trigger'\"\n :is-open=\"state === 'open'\"\n v-bind=\"triggerProps\"\n @click=\"toggle()\"\n @reset=\"reset()\"\n />\n\n <OrFilterPopover\n :ref=\"'popover'\"\n :is-open=\"state === 'open'\"\n :trigger=\"triggerRoot\"\n v-bind=\"popoverProps\"\n @update:state=\"$event === 'open' ? open() : close()\"\n @apply=\"apply()\"\n @reset=\"reset()\"\n >\n <slot />\n\n <template v-slot:actions=\"props\">\n <slot\n :name=\"'actions'\"\n v-bind=\"props\"\n />\n </template>\n </OrFilterPopover>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { usePopoverState } from '@onereach/ui-components-common/hooks';\nimport { OrFilterPopoverV3 as OrFilterPopover } from '@onereach/ui-components.or-filter-popover-v3';\nimport { OrFilterTriggerV3 as OrFilterTrigger } from '@onereach/ui-components.or-filter-trigger-v3';\nimport { PropType, computed, defineComponent, ref, toRef } from 'vue';\n\nimport * as Styles from './styles';\n\nexport default defineComponent({\n name: 'OrFilter',\n\n components: {\n OrFilterPopover,\n OrFilterTrigger,\n },\n\n props: {\n isOpen: {\n type: Boolean,\n default: false,\n },\n\n triggerProps: {\n type: Object as PropType<Omit<InstanceType<typeof OrFilterTrigger>['$props'], 'isOpen'>>,\n default: () => ({}),\n },\n\n popoverProps: {\n type: Object as PropType<Omit<InstanceType<typeof OrFilterPopover>['$props'], 'isOpen' | 'trigger'>>,\n default: () => ({}),\n },\n },\n\n emits: [\n 'update:state',\n\n 'open',\n 'close',\n\n 'apply',\n 'reset',\n ],\n\n expose: [\n 'root',\n\n 'state',\n\n 'open',\n 'close',\n 'toggle',\n ],\n\n setup(props, context) {\n // Refs & Styles\n const root = ref<HTMLElement>();\n\n const rootStyles = computed(() => [\n 'or-filter-v3',\n ...Styles.Filter,\n ]);\n\n const trigger = ref<InstanceType<typeof OrFilterTrigger>>();\n\n const triggerRoot = computed(() => {\n return trigger.value?.root;\n });\n\n const popover = ref<InstanceType<typeof OrFilterPopover>>();\n\n // State\n const { state, open, close, toggle } = usePopoverState(toRef(props, 'isOpen'), context.emit);\n\n // Methods\n function apply(): void {\n context.emit('apply');\n }\n\n function reset(): void {\n context.emit('reset');\n }\n\n return {\n root,\n rootStyles,\n\n trigger,\n triggerRoot,\n\n popover,\n\n state,\n\n open,\n close,\n toggle,\n\n apply,\n reset,\n };\n },\n});\n</script>\n"],"names":["Filter","_sfc_main","defineComponent","OrFilterPopover","OrFilterTrigger","props","context","root","ref","rootStyles","computed","Styles.Filter","trigger","triggerRoot","_a","popover","state","open","close","toggle","usePopoverState","toRef","apply","reset","_resolveComponent","_openBlock","_createElementBlock","_normalizeClass","_ctx","_component_OrFilterTrigger","_mergeProps","_cache","$event","_createVNode","_component_OrFilterPopover","_withCtx","_renderSlot","_normalizeProps","_guardReactiveProps"],"mappings":";;;;;AAAO,MAAMA,IAAmB,CAAC,GC0CjCC,IAAeC,EAAgB;AAAA,EAC7B,MAAM;AAAA,EAEN,YAAY;AAAA,IACV,iBAAAC;AAAA,IACA,iBAAAC;AAAA,EACF;AAAA,EAEA,OAAO;AAAA,IACL,QAAQ;AAAA,MACN,MAAM;AAAA,MACN,SAAS;AAAA,IACX;AAAA,IAEA,cAAc;AAAA,MACZ,MAAM;AAAA,MACN,SAAS,OAAO,CAAA;AAAA,IAClB;AAAA,IAEA,cAAc;AAAA,MACZ,MAAM;AAAA,MACN,SAAS,OAAO,CAAA;AAAA,IAClB;AAAA,EACF;AAAA,EAEA,OAAO;AAAA,IACL;AAAA,IAEA;AAAA,IACA;AAAA,IAEA;AAAA,IACA;AAAA,EACF;AAAA,EAEA,QAAQ;AAAA,IACN;AAAA,IAEA;AAAA,IAEA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAAA,EAEA,MAAMC,GAAOC,GAAS;AAEpB,UAAMC,IAAOC,KAEPC,IAAaC,EAAS,MAAM;AAAA,MAChC;AAAA,MACA,GAAGC;AAAAA,IAAO,CACX,GAEKC,IAAUJ,KAEVK,IAAcH,EAAS,MAAM;;AACjC,cAAOI,IAAAF,EAAQ,UAAR,gBAAAE,EAAe;AAAA,IAAA,CACvB,GAEKC,IAAUP,KAGV,EAAE,OAAAQ,GAAO,MAAAC,GAAM,OAAAC,GAAO,QAAAC,EAAO,IAAIC,EAAgBC,EAAMhB,GAAO,QAAQ,GAAGC,EAAQ,IAAI;AAG3F,aAASgB,IAAc;AACrB,MAAAhB,EAAQ,KAAK,OAAO;AAAA,IACtB;AAEA,aAASiB,IAAc;AACrB,MAAAjB,EAAQ,KAAK,OAAO;AAAA,IACtB;AAEO,WAAA;AAAA,MACL,MAAAC;AAAA,MACA,YAAAE;AAAA,MAEA,SAAAG;AAAA,MACA,aAAAC;AAAA,MAEA,SAAAE;AAAA,MAEA,OAAAC;AAAA,MAEA,MAAAC;AAAA,MACA,OAAAC;AAAA,MACA,QAAAC;AAAA,MAEA,OAAAG;AAAA,MACA,OAAAC;AAAA,IAAA;AAAA,EAEJ;AACF,CAAC;;sCAtICC,EA8BM,iBAAA;SA5BEC,EAAY,GAAAC,EAAA,OAAA;AAAA,IAAA,KAAA;AAAA,IAElB,OAMEC,EAAAC,EAAA,UAAA;AAAA,EAAA,GAAA;AAAA,MAJUC,GAAKC,EAAA;AAAA,MACP,KAAA;AAAA,MACP,WAAKF,EAAA,UAAA;AAAA,IAAA,GACLA,EAAK,cAAA;AAAA,MAAA,SAAAG,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA,CAAAC,MAAAJ,EAAA;MAGR,SAAAG,EAiBkB,qBAjBlBH,EAiBkB;IAAA,CAAA,GAhBf,MAAK,IAAS,CAAA,SAAA,CAAA;AAAA,IAAAK,EACLC,GAAKJ,EAAA;AAAA,MACd,KAAA;AAAA,MAAA,WACOF,EAAY,UAAA;AAAA,MACnB,SAAAA,EAAA;AAAA,IAAA,GACAA,EAAK,cAAA;AAAA,MACL,kBAAKG,uBAAEC,MAAK,SAAAJ,EAAA,KAAA,IAAAA,EAAA,MAAA;AAAA,MAAA,SAAAG,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA,CAAAC,MAAAJ,EAAA;MAII,SAAOG,SAIpBA,EAJ2B,CAAA,IAAA,CAAAC,MAAAJ,EAAA;IAAA,CAC7B,GAAA;AAAA,MAAA,SAAAO,EAAA,CAAA9B,MAAA;AAAA,QAHM+B,EAAAR,EAAA,QAAA,WAAAS,EAAAC,EAAAjC,CAAA,CAAA,CAAA;AAAA,MAAA,CAAA;AAAA;;;;;;;;"}
@@ -1,6 +1,6 @@
1
1
  import { usePopoverState as L, useResponsive as N } from "@onereach/ui-components-common/hooks";
2
2
  import { O as R } from "./OrButton-ZxDr22t7.mjs";
3
- import { O as V } from "./OrModal-DiVA7_Ct.mjs";
3
+ import { O as V } from "./OrModal-Cu2s5mfW.mjs";
4
4
  import { O as j, a as z } from "./OrPopover-GBPJ4IDN.mjs";
5
5
  import "@onereach/ui-components-common/utils";
6
6
  import { defineComponent as A, ref as E, computed as y, toRef as U, resolveComponent as v, openBlock as d, createElementBlock as P, createBlock as $, withCtx as s, createElementVNode as p, mergeProps as c, normalizeClass as r, toDisplayString as a, createVNode as i, createTextVNode as n, renderSlot as f, normalizeProps as C, guardReactiveProps as w, createCommentVNode as g } from "vue";
@@ -242,4 +242,4 @@ const ee = /* @__PURE__ */ H(I, [["render", Q]]);
242
242
  export {
243
243
  ee as O
244
244
  };
245
- //# sourceMappingURL=OrFilterPopover-DXO-6y8a.mjs.map
245
+ //# sourceMappingURL=OrFilterPopover-Co1jgWWI.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"OrFilterPopover-DXO-6y8a.mjs","sources":["../../../components/or-filter-popover-v3/src/styles.ts","../../../components/or-filter-popover-v3/src/OrFilterPopover.vue"],"sourcesContent":["export const FilterPopover: string[] = [\n // Layout\n 'layout-column',\n\n // Box\n 'w-auto md:w-[352px]',\n\n // Spacing\n 'px-0 md:px-md',\n 'py-0 md:py-md',\n\n 'gap-md',\n];\n\nexport const FilterPopoverHeader: string[] = [\n // Layout\n 'layout-row',\n\n // Spacing\n 'gap-md',\n\n // Typography\n 'typography-headline-3',\n];\n\nexport const FilterPopoverFooter: string[] = [\n // Layout\n 'layout-row-reverse',\n\n // Spacing\n 'gap-md',\n];\n","<template>\n <div :class=\"['contents']\">\n <template v-if=\"isDesktop\">\n <OrPopover\n :is-open=\"state === 'open'\"\n :variant=\"'popover'\"\n :trigger=\"trigger\"\n :placement=\"placement\"\n :fallback-placement=\"fallbackPlacement\"\n :offset=\"offset\"\n @update:state=\"$event === 'open' ? open() : close()\"\n >\n <div\n v-bind=\"$attrs\"\n :ref=\"'root'\"\n :class=\"rootStyles\"\n >\n <div :class=\"headerStyles\">\n <div :class=\"['grow', 'truncate']\">\n {{ title }}\n </div>\n\n <OrButton\n :variant=\"'link'\"\n @click=\"reset()\"\n >\n {{ resetLabel }}\n </OrButton>\n </div>\n\n <slot />\n\n <slot\n v-bind=\"{ apply, reset, isDesktop, isMobile }\"\n :name=\"'actions'\"\n >\n <div\n v-if=\"enableDesktopControls\"\n :class=\"footerStyles\"\n >\n <OrButton\n :class=\"['grow']\"\n :variant=\"'contained'\"\n @click=\"apply()\"\n >\n {{ applyLabel }}\n </OrButton>\n\n <OrButton\n :class=\"['grow']\"\n :variant=\"'outlined'\"\n @click=\"close()\"\n >\n {{ closeLabel }}\n </OrButton>\n </div>\n </slot>\n </div>\n </OrPopover>\n </template>\n\n <template v-if=\"isMobile\">\n <OrModal\n :is-open=\"state === 'open'\"\n @update:state=\"$event === 'open' ? open() : close()\"\n >\n <template v-slot:header>\n {{ title }}\n </template>\n\n <div\n v-bind=\"$attrs\"\n :ref=\"'root'\"\n :class=\"rootStyles\"\n >\n <slot />\n </div>\n\n <template v-slot:footer>\n <slot\n v-bind=\"{ apply, reset, isDesktop, isMobile }\"\n :name=\"'actions'\"\n >\n <div :class=\"footerStyles\">\n <OrButton\n :class=\"['grow']\"\n :variant=\"'contained'\"\n @click=\"apply()\"\n >\n {{ applyLabel }}\n </OrButton>\n\n <OrButton\n :class=\"['grow']\"\n :variant=\"'outlined'\"\n @click=\"reset()\"\n >\n {{ resetLabel }}\n </OrButton>\n </div>\n </slot>\n </template>\n </OrModal>\n </template>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { FlipOptions, ReferenceElement } from '@floating-ui/dom';\nimport { usePopoverState, useResponsive } from '@onereach/ui-components-common/hooks';\nimport { OrButtonV3 as OrButton } from '@onereach/ui-components.or-button-v3';\nimport { OrModalV3 as OrModal } from '@onereach/ui-components.or-modal-v3';\nimport { OrPopoverV3 as OrPopover, PopoverOffset, PopoverPlacement } from '@onereach/ui-components.or-popover-v3';\nimport { PropType, computed, defineComponent, ref, toRef } from 'vue';\n\nimport * as Styles from './styles';\n\nexport default defineComponent({\n name: 'OrFilterPopover',\n\n components: {\n OrButton,\n OrModal,\n OrPopover,\n },\n\n inheritAttrs: false,\n\n props: {\n isOpen: {\n type: Boolean,\n default: false,\n },\n\n title: {\n type: String,\n default: 'Filters',\n },\n\n applyLabel: {\n type: String,\n default: 'View Results',\n },\n\n resetLabel: {\n type: String,\n default: 'Reset All',\n },\n\n closeLabel: {\n type: String,\n default: 'Close',\n },\n\n trigger: {\n type: Object as PropType<ReferenceElement>,\n default: undefined,\n },\n\n placement: {\n type: String as PropType<`${PopoverPlacement}`>,\n default: () => PopoverPlacement.BottomStart,\n },\n\n fallbackPlacement: {\n type: String as PropType<FlipOptions['fallbackAxisSideDirection']>,\n default: undefined,\n },\n\n enableDesktopControls: {\n type: Boolean,\n default: false,\n },\n\n offset: {\n type: [Number, Object, Function] as PropType<PopoverOffset>,\n default: 8,\n },\n },\n\n emits: [\n 'update:state',\n\n 'open',\n 'close',\n\n 'apply',\n 'reset',\n ],\n\n expose: [\n 'root',\n\n 'state',\n\n 'open',\n 'close',\n 'toggle',\n ],\n\n setup(props, context) {\n // Refs & Styles\n const root = ref<HTMLElement>();\n\n const rootStyles = computed(() => [\n 'or-filter-popover-v3',\n ...Styles.FilterPopover,\n ]);\n\n const headerStyles = computed(() => [\n ...Styles.FilterPopoverHeader,\n ]);\n\n const footerStyles = computed(() => [\n ...Styles.FilterPopoverFooter,\n ]);\n\n // State\n const { state, open, close, toggle } = usePopoverState(toRef(props, 'isOpen'), context.emit);\n\n // Methods\n function apply(): void {\n context.emit('apply');\n }\n\n function reset(): void {\n context.emit('reset');\n }\n\n // Helpers\n const { isDesktop, isMobile } = useResponsive();\n\n return {\n root,\n rootStyles,\n\n headerStyles,\n footerStyles,\n\n state,\n\n open,\n close,\n toggle,\n\n apply,\n reset,\n\n isDesktop,\n isMobile,\n };\n },\n});\n</script>\n"],"names":["FilterPopover","FilterPopoverHeader","FilterPopoverFooter","_sfc_main","defineComponent","OrButton","OrModal","OrPopover","PopoverPlacement","props","context","root","ref","rootStyles","computed","Styles.FilterPopover","headerStyles","Styles.FilterPopoverHeader","footerStyles","Styles.FilterPopoverFooter","state","open","close","toggle","usePopoverState","toRef","apply","reset","isDesktop","isMobile","useResponsive","_component_OrModal","_resolveComponent","_createElementBlock","_hoisted_1","_ctx","_openBlock","_createBlock","_component_OrPopover","_cache","$event","_withCtx","_createElementVNode","_mergeProps","_normalizeClass","_hoisted_2","_toDisplayString","_createVNode","_component_OrButton","_renderSlot","_normalizeProps","_guardReactiveProps","_createTextVNode"],"mappings":"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"}
1
+ {"version":3,"file":"OrFilterPopover-Co1jgWWI.mjs","sources":["../../../components/or-filter-popover-v3/src/styles.ts","../../../components/or-filter-popover-v3/src/OrFilterPopover.vue"],"sourcesContent":["export const FilterPopover: string[] = [\n // Layout\n 'layout-column',\n\n // Box\n 'w-auto md:w-[352px]',\n\n // Spacing\n 'px-0 md:px-md',\n 'py-0 md:py-md',\n\n 'gap-md',\n];\n\nexport const FilterPopoverHeader: string[] = [\n // Layout\n 'layout-row',\n\n // Spacing\n 'gap-md',\n\n // Typography\n 'typography-headline-3',\n];\n\nexport const FilterPopoverFooter: string[] = [\n // Layout\n 'layout-row-reverse',\n\n // Spacing\n 'gap-md',\n];\n","<template>\n <div :class=\"['contents']\">\n <template v-if=\"isDesktop\">\n <OrPopover\n :is-open=\"state === 'open'\"\n :variant=\"'popover'\"\n :trigger=\"trigger\"\n :placement=\"placement\"\n :fallback-placement=\"fallbackPlacement\"\n :offset=\"offset\"\n @update:state=\"$event === 'open' ? open() : close()\"\n >\n <div\n v-bind=\"$attrs\"\n :ref=\"'root'\"\n :class=\"rootStyles\"\n >\n <div :class=\"headerStyles\">\n <div :class=\"['grow', 'truncate']\">\n {{ title }}\n </div>\n\n <OrButton\n :variant=\"'link'\"\n @click=\"reset()\"\n >\n {{ resetLabel }}\n </OrButton>\n </div>\n\n <slot />\n\n <slot\n v-bind=\"{ apply, reset, isDesktop, isMobile }\"\n :name=\"'actions'\"\n >\n <div\n v-if=\"enableDesktopControls\"\n :class=\"footerStyles\"\n >\n <OrButton\n :class=\"['grow']\"\n :variant=\"'contained'\"\n @click=\"apply()\"\n >\n {{ applyLabel }}\n </OrButton>\n\n <OrButton\n :class=\"['grow']\"\n :variant=\"'outlined'\"\n @click=\"close()\"\n >\n {{ closeLabel }}\n </OrButton>\n </div>\n </slot>\n </div>\n </OrPopover>\n </template>\n\n <template v-if=\"isMobile\">\n <OrModal\n :is-open=\"state === 'open'\"\n @update:state=\"$event === 'open' ? open() : close()\"\n >\n <template v-slot:header>\n {{ title }}\n </template>\n\n <div\n v-bind=\"$attrs\"\n :ref=\"'root'\"\n :class=\"rootStyles\"\n >\n <slot />\n </div>\n\n <template v-slot:footer>\n <slot\n v-bind=\"{ apply, reset, isDesktop, isMobile }\"\n :name=\"'actions'\"\n >\n <div :class=\"footerStyles\">\n <OrButton\n :class=\"['grow']\"\n :variant=\"'contained'\"\n @click=\"apply()\"\n >\n {{ applyLabel }}\n </OrButton>\n\n <OrButton\n :class=\"['grow']\"\n :variant=\"'outlined'\"\n @click=\"reset()\"\n >\n {{ resetLabel }}\n </OrButton>\n </div>\n </slot>\n </template>\n </OrModal>\n </template>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { FlipOptions, ReferenceElement } from '@floating-ui/dom';\nimport { usePopoverState, useResponsive } from '@onereach/ui-components-common/hooks';\nimport { OrButtonV3 as OrButton } from '@onereach/ui-components.or-button-v3';\nimport { OrModalV3 as OrModal } from '@onereach/ui-components.or-modal-v3';\nimport { OrPopoverV3 as OrPopover, PopoverOffset, PopoverPlacement } from '@onereach/ui-components.or-popover-v3';\nimport { PropType, computed, defineComponent, ref, toRef } from 'vue';\n\nimport * as Styles from './styles';\n\nexport default defineComponent({\n name: 'OrFilterPopover',\n\n components: {\n OrButton,\n OrModal,\n OrPopover,\n },\n\n inheritAttrs: false,\n\n props: {\n isOpen: {\n type: Boolean,\n default: false,\n },\n\n title: {\n type: String,\n default: 'Filters',\n },\n\n applyLabel: {\n type: String,\n default: 'View Results',\n },\n\n resetLabel: {\n type: String,\n default: 'Reset All',\n },\n\n closeLabel: {\n type: String,\n default: 'Close',\n },\n\n trigger: {\n type: Object as PropType<ReferenceElement>,\n default: undefined,\n },\n\n placement: {\n type: String as PropType<`${PopoverPlacement}`>,\n default: () => PopoverPlacement.BottomStart,\n },\n\n fallbackPlacement: {\n type: String as PropType<FlipOptions['fallbackAxisSideDirection']>,\n default: undefined,\n },\n\n enableDesktopControls: {\n type: Boolean,\n default: false,\n },\n\n offset: {\n type: [Number, Object, Function] as PropType<PopoverOffset>,\n default: 8,\n },\n },\n\n emits: [\n 'update:state',\n\n 'open',\n 'close',\n\n 'apply',\n 'reset',\n ],\n\n expose: [\n 'root',\n\n 'state',\n\n 'open',\n 'close',\n 'toggle',\n ],\n\n setup(props, context) {\n // Refs & Styles\n const root = ref<HTMLElement>();\n\n const rootStyles = computed(() => [\n 'or-filter-popover-v3',\n ...Styles.FilterPopover,\n ]);\n\n const headerStyles = computed(() => [\n ...Styles.FilterPopoverHeader,\n ]);\n\n const footerStyles = computed(() => [\n ...Styles.FilterPopoverFooter,\n ]);\n\n // State\n const { state, open, close, toggle } = usePopoverState(toRef(props, 'isOpen'), context.emit);\n\n // Methods\n function apply(): void {\n context.emit('apply');\n }\n\n function reset(): void {\n context.emit('reset');\n }\n\n // Helpers\n const { isDesktop, isMobile } = useResponsive();\n\n return {\n root,\n rootStyles,\n\n headerStyles,\n footerStyles,\n\n state,\n\n open,\n close,\n toggle,\n\n apply,\n reset,\n\n isDesktop,\n isMobile,\n };\n },\n});\n</script>\n"],"names":["FilterPopover","FilterPopoverHeader","FilterPopoverFooter","_sfc_main","defineComponent","OrButton","OrModal","OrPopover","PopoverPlacement","props","context","root","ref","rootStyles","computed","Styles.FilterPopover","headerStyles","Styles.FilterPopoverHeader","footerStyles","Styles.FilterPopoverFooter","state","open","close","toggle","usePopoverState","toRef","apply","reset","isDesktop","isMobile","useResponsive","_component_OrModal","_resolveComponent","_createElementBlock","_hoisted_1","_ctx","_openBlock","_createBlock","_component_OrPopover","_cache","$event","_withCtx","_createElementVNode","_mergeProps","_normalizeClass","_hoisted_2","_toDisplayString","_createVNode","_component_OrButton","_renderSlot","_normalizeProps","_guardReactiveProps","_createTextVNode"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { usePopoverState as w } from "@onereach/ui-components-common/hooks";
2
2
  import { O as C } from "./OrOverlay-BzbAwvpo.mjs";
3
- import { defineComponent as i, ref as f, computed as $, openBlock as p, createElementBlock as M, normalizeClass as c, renderSlot as r, resolveComponent as d, createElementVNode as v, createVNode as O, withModifiers as x, toRef as b, createBlock as h, withCtx as u, mergeProps as B, createCommentVNode as g } from "vue";
3
+ import { defineComponent as f, ref as i, computed as $, openBlock as p, createElementBlock as M, normalizeClass as c, renderSlot as r, resolveComponent as d, createElementVNode as v, createVNode as O, withModifiers as x, toRef as b, createBlock as h, withCtx as u, mergeProps as B, createCommentVNode as g } from "vue";
4
4
  import { _ as y } from "./_plugin-vue_export-helper-CHgC5LLL.mjs";
5
5
  import { useResponsive as F } from "@onereach/ui-components-common";
6
6
  import { O as H } from "./OrIconButton-Ds8k8FmS.mjs";
@@ -8,14 +8,16 @@ const z = [
8
8
  // Overflow
9
9
  "overflow-auto",
10
10
  // Spacing
11
- "px-md md:px-lg"
12
- ], I = i({
11
+ "px-md md:px-lg",
12
+ // Layout
13
+ "flex"
14
+ ], I = f({
13
15
  name: "OrModalContent",
14
16
  expose: [
15
17
  "root"
16
18
  ],
17
19
  setup() {
18
- const o = f(), e = $(() => [
20
+ const o = i(), e = $(() => [
19
21
  "or-modal-content",
20
22
  ...z
21
23
  ]);
@@ -36,13 +38,13 @@ function N(o, e, t, s, n, a) {
36
38
  const V = /* @__PURE__ */ y(I, [["render", N]]), A = [
37
39
  // Spacing
38
40
  "px-md md:px-lg"
39
- ], E = i({
41
+ ], E = f({
40
42
  name: "OrModalFooter",
41
43
  expose: [
42
44
  "root"
43
45
  ],
44
46
  setup() {
45
- const o = f(), e = $(() => [
47
+ const o = i(), e = $(() => [
46
48
  "or-modal-footer",
47
49
  ...A
48
50
  ]);
@@ -67,7 +69,7 @@ const P = /* @__PURE__ */ y(E, [["render", L]]), R = [
67
69
  "px-md md:px-lg pb-sm md:pb-none",
68
70
  // Typography
69
71
  "typography-headline-2"
70
- ], j = i({
72
+ ], j = f({
71
73
  name: "OrModalHeader",
72
74
  components: {
73
75
  OrIconButton: H
@@ -79,7 +81,7 @@ const P = /* @__PURE__ */ y(E, [["render", L]]), R = [
79
81
  "root"
80
82
  ],
81
83
  setup() {
82
- const o = f(), { isMobile: e } = F(), t = $(() => [
84
+ const o = i(), { isMobile: e } = F(), t = $(() => [
83
85
  "or-modal-header",
84
86
  ...R
85
87
  ]);
@@ -144,7 +146,7 @@ const J = [
144
146
  // Box
145
147
  "md:w-[480px]"
146
148
  ]
147
- }, Q = i({
149
+ }, Q = f({
148
150
  name: "OrModal",
149
151
  components: {
150
152
  OrModalContent: V,
@@ -180,7 +182,7 @@ const J = [
180
182
  "close"
181
183
  ],
182
184
  setup(o, e) {
183
- const t = f(), s = $(() => [
185
+ const t = i(), s = $(() => [
184
186
  "or-modal-v3",
185
187
  ...J,
186
188
  ...K[o.size],
@@ -238,4 +240,4 @@ export {
238
240
  m as M,
239
241
  to as O
240
242
  };
241
- //# sourceMappingURL=OrModal-DiVA7_Ct.mjs.map
243
+ //# sourceMappingURL=OrModal-Cu2s5mfW.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OrModal-Cu2s5mfW.mjs","sources":["../../../components/or-modal-v3/src/partials/or-modal-content/styles.ts","../../../components/or-modal-v3/src/partials/or-modal-content/OrModalContent.vue","../../../components/or-modal-v3/src/partials/or-modal-footer/styles.ts","../../../components/or-modal-v3/src/partials/or-modal-footer/OrModalFooter.vue","../../../components/or-modal-v3/src/partials/or-modal-header/styles.ts","../../../components/or-modal-v3/src/partials/or-modal-header/OrModalHeader.vue","../../../components/or-modal-v3/src/props.ts","../../../components/or-modal-v3/src/styles.ts","../../../components/or-modal-v3/src/OrModal.vue"],"sourcesContent":["export const ModalContent: string[] = [\n // Overflow\n 'overflow-auto',\n\n // Spacing\n 'px-md md:px-lg',\n\n // Layout\n 'flex',\n];\n","<template>\n <div\n :ref=\"'root'\"\n :class=\"rootStyles\"\n >\n <slot />\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { computed, defineComponent, ref } from 'vue';\n\nimport { ModalContent } from './styles';\n\nexport default defineComponent({\n name: 'OrModalContent',\n\n expose: [\n 'root',\n ],\n\n setup() {\n // Refs\n const root = ref<HTMLElement>();\n\n // Styles\n const rootStyles = computed(() => [\n 'or-modal-content',\n ...ModalContent,\n ]);\n\n return {\n root,\n rootStyles,\n };\n },\n});\n</script>\n","export const ModalFooter: string[] = [\n // Spacing\n 'px-md md:px-lg',\n];\n","<template>\n <div\n :ref=\"'root'\"\n :class=\"rootStyles\"\n >\n <slot />\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { computed, defineComponent, ref } from 'vue';\n\nimport { ModalFooter } from './styles';\n\nexport default defineComponent({\n name: 'OrModalFooter',\n\n expose: [\n 'root',\n ],\n\n setup() {\n // Refs\n const root = ref<HTMLElement>();\n\n // Styles\n const rootStyles = computed(() => [\n 'or-modal-footer',\n ...ModalFooter,\n ]);\n\n return {\n root,\n rootStyles,\n };\n },\n});\n</script>\n","export const ModalHeader: string[] = [\n // Layout\n 'layout-row',\n\n // Spacing\n 'px-md md:px-lg pb-sm md:pb-none',\n\n // Typography\n 'typography-headline-2',\n];\n","<template>\n <div\n :ref=\"'root'\"\n :class=\"rootStyles\"\n >\n <div :class=\"['grow']\">\n <slot />\n </div>\n\n <OrIconButton\n :icon=\"'close'\"\n :size=\"isMobile ? 'l': 'xl'\"\n @click.stop=\"$emit('close')\"\n />\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { useResponsive } from '@onereach/ui-components-common';\nimport { OrIconButtonV3 as OrIconButton } from '@onereach/ui-components.or-icon-button-v3';\nimport { computed, defineComponent, ref } from 'vue';\n\nimport { ModalHeader } from './styles';\n\n\nexport default defineComponent({\n name: 'OrModalHeader',\n\n components: {\n OrIconButton,\n },\n\n emits: [\n 'close',\n ],\n\n expose: [\n 'root',\n ],\n\n setup() {\n // Refs\n const root = ref<HTMLElement>();\n\n const { isMobile } = useResponsive();\n\n // Styles\n const rootStyles = computed(() => [\n 'or-modal-header',\n ...ModalHeader,\n ]);\n\n return {\n root,\n rootStyles,\n isMobile,\n };\n },\n});\n</script>\n","export enum ModalSize {\n L = 'l',\n M = 'm',\n S = 's',\n}\n","import { ModalSize } from './props';\n\nexport const Modal: string[] = [\n // Layout\n 'layout-column',\n\n // Box\n 'xs:w-full sm:w-full',\n 'xs:h-full sm:h-full md:h-auto md:max-h-[min(calc(100%-(2*theme(spacing.3xl))),772px)]',\n\n // Spacing\n 'py-md md:py-lg',\n 'gap-md md:gap-lg',\n\n // Shape\n 'md:rounded-md',\n\n // Elevation\n 'shadow-modal',\n 'dark:shadow-modal-dark',\n\n // Typography\n 'typography-body-2-regular',\n\n // Theme\n 'theme-background-default',\n 'dark:theme-background-default-dark',\n\n 'theme-foreground-default',\n 'dark:theme-foreground-default-dark',\n];\n\nexport const ModalSizes: Record<ModalSize, string[]> = {\n [ModalSize.L]: [\n // Box\n 'md:w-[1050px]',\n ],\n\n [ModalSize.M]: [\n // Box\n 'md:w-[700px]',\n ],\n\n [ModalSize.S]: [\n // Box\n 'md:w-[480px]',\n ],\n};\n","<template>\n <OrOverlay\n v-if=\"state === 'open'\"\n :fullscreen=\"true\"\n >\n <div\n v-bind=\"$attrs\"\n :ref=\"'root'\"\n :class=\"rootStyles\"\n >\n <OrModalHeader @close=\"close()\">\n <slot name=\"header\" />\n </OrModalHeader>\n\n <OrModalContent :class=\"['grow']\">\n <slot />\n </OrModalContent>\n\n <OrModalFooter v-if=\"$slots.footer\">\n <slot name=\"footer\" />\n </OrModalFooter>\n </div>\n </OrOverlay>\n</template>\n\n<script lang=\"ts\">\nimport { usePopoverState } from '@onereach/ui-components-common/hooks';\nimport { OrOverlayV3 as OrOverlay } from '@onereach/ui-components.or-overlay-v3';\nimport { computed, defineComponent, PropType, ref, toRef } from 'vue';\n\nimport OrModalContent from './partials/or-modal-content/OrModalContent.vue';\nimport OrModalFooter from './partials/or-modal-footer/OrModalFooter.vue';\nimport OrModalHeader from './partials/or-modal-header/OrModalHeader.vue';\nimport { ModalSize } from './props';\nimport * as Styles from './styles';\n\nexport default defineComponent({\n name: 'OrModal',\n\n components: {\n OrModalContent,\n OrModalFooter,\n OrModalHeader,\n OrOverlay,\n },\n\n inheritAttrs: false,\n\n props: {\n isOpen: {\n type: Boolean,\n default: false,\n },\n\n size: {\n type: String as PropType<`${ModalSize}`>,\n default: () => ModalSize.M,\n },\n\n // TODO: Remove after migration to Vue 3\n additionalStyles: {\n type: Array as PropType<string[]>,\n default: () => [],\n },\n },\n\n emits: [\n 'update:state',\n\n 'open',\n 'close',\n ],\n\n expose: [\n 'root',\n\n 'state',\n\n 'open',\n 'close',\n ],\n\n setup(props, context) {\n // Refs & Styles\n const root = ref<HTMLElement>();\n\n const rootStyles = computed(() => [\n 'or-modal-v3',\n ...Styles.Modal,\n ...Styles.ModalSizes[props.size],\n ...props.additionalStyles,\n ]);\n\n // State\n const { state, open, close } = usePopoverState(toRef(props, 'isOpen'), context.emit);\n\n return {\n root,\n rootStyles,\n\n state,\n\n open,\n close,\n };\n },\n});\n</script>\n"],"names":["ModalContent","_sfc_main$3","defineComponent","root","ref","rootStyles","computed","_sfc_render","_ctx","_cache","$props","$setup","$data","$options","_openBlock","_createElementBlock","_normalizeClass","ModalFooter","_sfc_main$2","ModalHeader","_sfc_main$1","OrIconButton","isMobile","useResponsive","_resolveComponent","_renderSlot","_component_OrIconButton","ModalSize","Modal","ModalSizes","_sfc_main","OrModalContent","OrModalFooter","OrModalHeader","OrOverlay","props","context","Styles.Modal","Styles.ModalSizes","state","open","close","usePopoverState","toRef","_component_OrOverlay","_createBlock","_withCtx","_createElementVNode","_mergeProps","_createVNode","_component_OrModalHeader","$event","_component_OrModalFooter"],"mappings":"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"}
@@ -10,7 +10,7 @@ import { O as Ct } from "./OrInput-CxGhwo0q.mjs";
10
10
  import { O as wt } from "./OrLabel-K7_HgvcK.mjs";
11
11
  import { O as Ot } from "./OrMenuItem-VyCCXA7Z.mjs";
12
12
  import { O as St } from "./OrMenu-Cag_fBXC.mjs";
13
- import { O as Lt } from "./OrModal-DiVA7_Ct.mjs";
13
+ import { O as Lt } from "./OrModal-Cu2s5mfW.mjs";
14
14
  import { O as Bt } from "./OrPopover-GBPJ4IDN.mjs";
15
15
  import { Node as Mt, Editor as At, mergeAttributes as Pt } from "@tiptap/core";
16
16
  import qe from "@tiptap/extension-blockquote";
@@ -1054,4 +1054,4 @@ export {
1054
1054
  Ke as R,
1055
1055
  Qe as a
1056
1056
  };
1057
- //# sourceMappingURL=OrRichTextEditor-zb1kQ0es.mjs.map
1057
+ //# sourceMappingURL=OrRichTextEditor-BstyuaKN.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"OrRichTextEditor-zb1kQ0es.mjs","sources":["../../../components/or-rich-text-editor-v3/src/props.ts","../../../components/or-rich-text-editor-v3/src/styles.ts","../../../components/or-rich-text-editor-v3/src/utils/codemirror/theme.ts","../../../components/or-rich-text-editor-v3/src/utils/codemirror/codemirrorView.ts","../../../components/or-rich-text-editor-v3/src/utils/codemirror/codemirrorNode.ts","../../../components/or-rich-text-editor-v3/src/utils/markdown.ts","../../../components/or-rich-text-editor-v3/src/OrRichTextEditor.vue"],"sourcesContent":["export enum Formats {\n Markdown = 'markdown',\n Markup = 'markup',\n}\n\nexport type Tools = string[][]; // TODO: Improve this type\n\nexport enum RichTextEditorIcons {\n bold = 'format_bold',\n italic = 'format_italic',\n underline = 'format_underlined',\n strike = 'format_strikethrough',\n bulletList = 'format_list_bulleted',\n orderedList = 'format_list_numbered',\n link = 'link',\n highlight = 'highlight',\n redo = 'redo',\n undo = 'undo',\n codeBlock = 'code_blocks',\n blockquote = 'format_quote',\n file = 'attach_file',\n source = 'source_notes',\n}\n\nexport enum RichTextEditorTooltips {\n bold = 'Bold',\n italic = 'Italic',\n underline = 'Underline',\n strike = 'Strike',\n bulletList = 'Bulleted List',\n orderedList = 'Numbered List',\n link = 'Link',\n highlight = 'Highlight',\n redo = 'Redo',\n undo = 'Undo',\n codeBlock = 'Code Block',\n blockquote = 'Quote',\n file = 'File',\n source = 'Source',\n}\n","export const RichTextEditor: string[] = [\n // Layout\n 'layout-column',\n\n // Spacing\n 'gap-xs',\n\n // Box\n 'max-h-full',\n];\n\nexport const RichTextEditorToolbar: string[] = [\n // Layout\n 'layout-row',\n\n // Overflow\n 'overflow-x-scroll md:overflow-x-hidden',\n 'scrollbar-hidden',\n\n // Spacing\n 'px-0',\n 'py-sm',\n\n // Theme\n 'border-b-1',\n\n 'theme-border-outline',\n 'dark:theme-border-outline-dark',\n];\n\nexport const RichTextEditorToolbarGroup: string[] = [\n // Layout\n 'layout-row',\n\n // Spacing\n 'px-sm',\n 'py-0',\n\n 'gap-md',\n\n // Theme\n 'theme-foreground-outline',\n 'dark:theme-foreground-outline-dark',\n\n 'border-e-1 last:border-e-0',\n\n 'theme-border-outline',\n 'dark:theme-border-outline-dark',\n];\n\nexport const RichTextEditorControl: string[] = [\n // Typography\n 'typography-body-2-regular',\n\n // Size\n 'h-full',\n];\n","import { HighlightStyle, syntaxHighlighting } from '@codemirror/language';\nimport { EditorView } from '@codemirror/view';\nimport { tags as t } from '@lezer/highlight';\n\n// Using https://github.com/one-dark/vscode-one-dark-theme/ as reference for the colors\n\nimport { useTheme } from '@onereach/ui-components-common/hooks';\n\nconst themes = useTheme();\n\nconst chalky = themes?.backgroundColor['custom-colors-custom-6'],\n coral = themes?.backgroundColor['custom-colors-custom-1'],\n cyan = themes?.backgroundColor['custom-colors-custom-3'],\n invalid = themes?.backgroundColor?.white,\n ivory = themes?.backgroundColor['custom-colors-custom-6'],\n stone = themes?.backgroundColor['custom-colors-custom-5'], // Brightened compared to original to increase contrast\n malibu = themes?.backgroundColor['custom-colors-custom-3'],\n sage = themes?.backgroundColor.success,\n whiskey = themes?.backgroundColor.warning,\n violet = themes?.backgroundColor['custom-colors-custom-1'];\n // darkBackground = themes?.colors?.neutral?.[100],\n // highlightBackground = themes?.colors?.neutral?.[200],\n // background = themes?.colors?.neutral?.[100],\n // tooltipBackground = themes?.colors?.neutral?.[200],\n // selection = themes?.colors?.blue?.[100],\n // cursor = themes?.colors?.blue?.[700];\n\n/// The colors used in the theme, as CSS color strings.\nexport const color = {\n chalky,\n coral,\n cyan,\n invalid,\n ivory,\n stone,\n malibu,\n sage,\n whiskey,\n violet,\n // darkBackground,\n // highlightBackground,\n // background,\n // tooltipBackground,\n // selection,\n // cursor,\n};\n\n/// The editor theme styles for One Dark.\nexport const orCodeTheme = EditorView.theme({\n '&': {\n color: ivory,\n backgroundColor: themes?.backgroundColor?.['bg-primary-container'],\n },\n\n '.cm-editor': {\n border: 'none',\n borderRadius: themes?.spacing?.xs,\n },\n\n '&.cm-focused': {\n outline: 'none',\n },\n\n '.cm-scroller': {\n borderRadius: themes?.spacing?.xs,\n },\n\n '.cm-content': {\n // caretColor: cursor,\n },\n\n '.cm-button': {\n // background: highlightBackground,\n // color: themes?.colors?.neutral?.[600],\n border: 0,\n borderRadius: themes?.spacing?.xs,\n },\n\n '.cm-panel.cm-search input[type=checkbox]': {\n display: 'inline-block',\n verticalAlign: 'middle',\n },\n\n // '.cm-cursor, .cm-dropCursor': { borderLeftColor: cursor },\n '&.cm-focused .cm-selectionBackground, .cm-selectionBackground, .cm-content ::selection': {\n // backgroundColor: selection,\n },\n\n '.cm-panels': {\n // backgroundColor: darkBackground,\n color: ivory,\n },\n // '.cm-panels.cm-panels-top': { borderBottom: `2px solid ${themes?.colors?.neutral?.[200]}` },\n // '.cm-panels.cm-panels-bottom': { borderTop: `2px solid ${themes?.colors?.neutral?.[200]}` },\n\n '.cm-searchMatch': {\n // backgroundColor: themes?.colors?.neutral?.[100],\n // outline: `1px solid ${themes?.colors?.neutral?.[200]}`,\n },\n\n '.cm-searchMatch.cm-searchMatch-selected': {\n // backgroundColor: themes?.colors?.sky?.[100],\n },\n\n '.cm-activeLine': {\n backgroundColor: themes?.backgroundColor?.['bg-secondary-container'],\n },\n\n // '.cm-selectionMatch': { backgroundColor: themes?.colors?.lime?.[500] },\n\n '&.cm-focused .cm-matchingBracket, &.cm-focused .cm-nonmatchingBracket': {\n // backgroundColor: themes?.colors?.lime?.[600],\n },\n\n '.cm-gutters': {\n backgroundColor: themes?.backgroundColor?.['primary-opacity-0-12'],\n color: stone,\n border: 'none',\n },\n\n '.cm-lineNumbers .cm-gutterElement': {\n paddingLeft: themes?.spacing?.['sm+*'],\n paddingRight: themes?.spacing?.['sm+*'],\n },\n\n '.cm-activeLineGutter': {\n backgroundColor: themes?.backgroundColor?.['primary-opacity-0-16'],\n },\n\n '.cm-foldPlaceholder': {\n backgroundColor: 'transparent',\n border: 'none',\n // color: themes?.colors?.neutral?.[200],\n },\n\n '.cm-tooltip': {\n border: 'none',\n // backgroundColor: tooltipBackground,\n },\n '.cm-tooltip .cm-tooltip-arrow:before': {\n borderTopColor: 'transparent',\n borderBottomColor: 'transparent',\n },\n '.cm-tooltip .cm-tooltip-arrow:after': {\n // borderTopColor: tooltipBackground,\n // borderBottomColor: tooltipBackground,\n },\n '.cm-tooltip-autocomplete': {\n '& > ul > li[aria-selected]': {\n // backgroundColor: highlightBackground,\n color: ivory,\n },\n },\n '.cm-textfield': {\n outline: 'none',\n // background: background,\n // color: themes?.colors?.neutral?.[600],\n // backgroundColor: themes?.colors?.neutral?.[100],\n // border: `1px solid ${themes?.colors?.neutral?.[200]}`,\n borderRadius: themes?.spacing?.xs,\n },\n}, { dark: true });\n\n/// The highlighting style for code in the One Dark theme.\nexport const orCodeHighlightStyle = HighlightStyle.define([\n {\n tag: t.keyword,\n color: violet,\n },\n {\n tag: [t.name, t.deleted, t.character, t.propertyName, t.macroName],\n color: coral,\n },\n {\n tag: [t.function(t.variableName), t.labelName],\n color: malibu,\n },\n {\n tag: [t.color, t.constant(t.name), t.standard(t.name)],\n color: whiskey,\n },\n {\n tag: [t.definition(t.name), t.separator],\n color: ivory,\n },\n {\n tag: [t.typeName, t.className, t.number, t.changed, t.annotation, t.modifier, t.self, t.namespace],\n color: chalky,\n },\n {\n tag: [t.operator, t.operatorKeyword, t.url, t.escape, t.regexp, t.link, t.special(t.string)],\n color: cyan,\n },\n {\n tag: [t.meta, t.comment],\n color: stone,\n },\n {\n tag: t.strong,\n fontWeight: 'bold',\n },\n {\n tag: t.emphasis,\n fontStyle: 'italic',\n },\n {\n tag: t.strikethrough,\n textDecoration: 'line-through',\n },\n {\n tag: t.link,\n color: stone,\n textDecoration: 'underline',\n },\n {\n tag: t.heading,\n fontWeight: 'bold',\n color: coral,\n },\n {\n tag: [t.atom, t.bool, t.special(t.variableName)],\n color: whiskey,\n },\n {\n tag: [t.processingInstruction, t.string, t.inserted],\n color: sage,\n },\n {\n tag: t.invalid,\n color: invalid,\n },\n]);\n\n/// Extension to enable the One Dark theme (both the editor theme and\n/// the highlight style).\nconst theme = [orCodeTheme, syntaxHighlighting(orCodeHighlightStyle)];\n\nexport default theme;\n","import { EditorState as CMState, Transaction as CMTransaction, Extension } from '@codemirror/state';\nimport {\n Command,\n EditorView as CMView,\n keymap,\n highlightActiveLine,\n highlightActiveLineGutter,\n lineNumbers,\n} from '@codemirror/view';\nimport { exitCode } from 'prosemirror-commands';\nimport { Node as ProsemirrorNode } from 'prosemirror-model';\nimport { Selection, TextSelection } from 'prosemirror-state';\nimport { EditorView, NodeView } from 'prosemirror-view';\n\nimport orCodeTheme from './theme';\nimport { ComputeChange, CodeMirrorViewOptions } from './types';\n\nconst computeChange = (oldVal: string, newVal: string): ComputeChange | null => {\n if (oldVal === newVal) {\n return null;\n }\n\n let start = 0;\n let oldEnd = oldVal.length;\n let newEnd = newVal.length;\n\n while (start < oldEnd && oldVal.charCodeAt(start) === newVal.charCodeAt(start)) {\n start += 1;\n }\n\n while (oldEnd > start && newEnd > start && oldVal.charCodeAt(oldEnd - 1) === newVal.charCodeAt(newEnd - 1)) {\n oldEnd -= 1;\n newEnd -= 1;\n }\n\n return {\n from: start,\n to: oldEnd,\n text: newVal.slice(start, newEnd),\n };\n};\n\nclass CodeMirrorView implements NodeView {\n name: string;\n\n node: ProsemirrorNode;\n\n view: EditorView;\n\n dom: HTMLElement;\n\n cm: CMView;\n\n getPos: () => number;\n\n updating = false;\n\n constructor(options: CodeMirrorViewOptions) {\n // Store for later\n this.node = options.node;\n this.view = options.view;\n const cmExtensions = options.cmOptions?.extensions || [];\n this.name = 'codeBlock',\n\n this.getPos = options.getPos as () => number;\n\n const changeFilter = CMState.changeFilter.of((tr) => {\n if (!tr.docChanged && !this.updating) {\n this.forwardSelection();\n }\n return true;\n });\n\n // Create a CodeMirror instancew\n this.cm = new CMView({\n dispatch: this.dispatch.bind(this),\n });\n\n // The editor's outer node is our DOM representation\n this.dom = this.cm.dom;\n\n const cmState = CMState.create({\n doc: this.node.textContent,\n extensions: [\n orCodeTheme as Extension,\n changeFilter,\n highlightActiveLine(),\n highlightActiveLineGutter(),\n lineNumbers(),\n keymap.of([\n {\n key: 'ArrowUp',\n run: this.mayBeEscape('line', -1),\n },\n {\n key: 'ArrowLeft',\n run: this.mayBeEscape('char', -1),\n },\n {\n key: 'ArrowDown',\n run: this.mayBeEscape('line', 1),\n },\n {\n key: 'ArrowRight',\n run: this.mayBeEscape('char', 1),\n },\n {\n key: 'Ctrl-Enter',\n run: () => {\n if (exitCode(this.view.state, this.view.dispatch)) {\n this.view.focus();\n return true;\n }\n return false;\n },\n },\n ]),\n cmExtensions,\n ],\n });\n\n this.cm.setState(cmState);\n }\n\n forwardSelection() {\n if (!this.cm.hasFocus) {\n return;\n }\n\n const { state } = this.view;\n const selection = this.asProseMirrorSelection(state.doc);\n\n if (!selection.eq(state.selection)) {\n this.view.dispatch(state.tr.setSelection(selection));\n }\n }\n\n asProseMirrorSelection(doc: ProsemirrorNode) {\n const offset = this.getPos() + 1;\n const { anchor, head } = this.cm.state.selection.main;\n return TextSelection.create(doc, anchor + offset, head + offset);\n }\n\n dispatch(cmTr: CMTransaction) {\n this.cm.setState(cmTr.state);\n\n if (cmTr.docChanged && !this.updating) {\n const start = this.getPos() + 1;\n\n const cmValue = cmTr.state.doc.toString();\n const change = computeChange(this.node.textContent, cmValue);\n\n if (!change) {\n return;\n }\n\n const content = change.text ? this.view.state.schema.text(change.text) : null;\n\n const tr = this.view.state.tr.replaceWith(change.from + start, change.to + start, content as ProsemirrorNode);\n this.view.dispatch(tr);\n this.forwardSelection();\n }\n }\n\n mayBeEscape(unit: 'char' | 'line', dir: -1 | 1): Command {\n return (view) => {\n const { state } = view;\n const { selection } = state;\n\n const offsetToPos = () => {\n const offset = selection.main.from;\n const line = state.doc.lineAt(offset);\n return {\n line: line.number,\n ch: offset - line.from,\n };\n };\n\n const pos = offsetToPos();\n const hasSelection = state.selection.ranges.some((r) => !r.empty);\n\n const firstLine = 1;\n const lastLine = state.doc.lineAt(state.doc.length).number;\n\n if (\n hasSelection\n || pos.line !== (dir < 0 ? firstLine : lastLine)\n || (unit === 'char' && pos.ch !== (dir < 0 ? 0 : state.doc.line(pos.line).length))\n ) {\n return false;\n }\n\n const targetPos = this.getPos() + (dir < 0 ? 0 : this.node.nodeSize);\n const pmSelection = Selection.near(this.view.state.doc.resolve(targetPos), dir);\n this.view.dispatch(this.view.state.tr.setSelection(pmSelection).scrollIntoView());\n this.view.focus();\n return true;\n };\n }\n\n update(node: ProsemirrorNode) {\n if (node.type !== this.node.type) {\n return false;\n }\n\n this.node = node;\n const change = computeChange(this.cm.state.doc.toString(), node.textContent);\n\n if (change) {\n this.updating = true;\n this.cm.dispatch({\n changes: {\n from: change.from,\n to: change.to,\n insert: change.text,\n },\n });\n this.updating = false;\n }\n\n return true;\n }\n\n setSelection(anchor: number, head: number): void {\n this.focus();\n this.updating = true;\n this.cm.dispatch({\n selection: {\n anchor,\n head,\n },\n });\n this.updating = false;\n }\n\n focus() {\n this.cm.focus();\n this.forwardSelection();\n }\n\n selectNode() {\n this.focus();\n }\n\n stopEvent() {\n return true;\n }\n\n destroy() {\n this.cm.destroy();\n }\n}\n\nexport default CodeMirrorView;\n","import { javascript } from '@codemirror/lang-javascript';\nimport { Node } from '@tiptap/core';\nimport { minimalSetup } from 'codemirror';\n\nimport CodeBlockView from './codemirrorView';\n\nexport default Node.create({\n name: 'codeBlock',\n content: 'text*',\n marks: '',\n group: 'block',\n code: true,\n defining: true,\n isolating: true,\n\n parseHTML() {\n return [\n {\n tag: 'pre',\n preserveWhitespace: 'full',\n },\n ];\n },\n\n renderHTML() {\n return ['pre', ['code', 0]];\n },\n\n addNodeView() {\n return ({ node, editor, getPos }) => {\n return new CodeBlockView({\n node,\n view: editor.view,\n getPos: getPos as () => number,\n cmOptions: {\n extensions: [minimalSetup, javascript()],\n },\n });\n };\n },\n});\n","import Blockquote from '@tiptap/extension-blockquote';\nimport Bold from '@tiptap/extension-bold';\nimport BulletList from '@tiptap/extension-bullet-list';\nimport CodeBlock from '@tiptap/extension-code-block';\nimport HardBreak from '@tiptap/extension-hard-break';\nimport Highlight from '@tiptap/extension-highlight';\nimport HorizontalRule from '@tiptap/extension-horizontal-rule';\nimport Italic from '@tiptap/extension-italic';\nimport Link from '@tiptap/extension-link';\nimport ListItem from '@tiptap/extension-list-item';\nimport OrderedList from '@tiptap/extension-ordered-list';\nimport Paragraph from '@tiptap/extension-paragraph';\nimport Strike from '@tiptap/extension-strike';\nimport Underline from '@tiptap/extension-underline';\nimport { marked } from 'marked';\nimport {\n MarkdownSerializer as ProseMirrorMarkdownSerializer,\n defaultMarkdownSerializer,\n} from 'prosemirror-markdown';\nimport { DOMParser as ProseMirrorDOMParser, Node, Mark } from 'prosemirror-model';\n\nconst mdSerializerNodes = {\n ...defaultMarkdownSerializer.nodes,\n [Paragraph.name]: defaultMarkdownSerializer.nodes.paragraph,\n [BulletList.name]: defaultMarkdownSerializer.nodes.bullet_list,\n [ListItem.name]: defaultMarkdownSerializer.nodes.list_item,\n [OrderedList.name]: defaultMarkdownSerializer.nodes.ordered_list,\n [HardBreak.name]: defaultMarkdownSerializer.nodes.hard_break,\n [CodeBlock.name]: defaultMarkdownSerializer.nodes.code_block,\n [Blockquote.name]: defaultMarkdownSerializer.nodes.blockquote,\n [HorizontalRule.name]: defaultMarkdownSerializer.nodes.horizontal_rule,\n};\n\nconst mdSerializerMarks = {\n ...defaultMarkdownSerializer.marks,\n [Bold.name]: defaultMarkdownSerializer.marks.strong,\n [Strike.name]: {\n open: '~~',\n close: '~~',\n mixable: true,\n expelEnclosingWhitespace: true,\n },\n [Italic.name]: {\n open: ' _',\n close: '_ ',\n mixable: true,\n expelEnclosingWhitespace: true,\n },\n [Highlight.name]: {\n open: '==',\n close: '==',\n mixable: true,\n expelEnclosingWhitespace: true,\n },\n [Underline.name]: {\n open: '<u>',\n close: '</u>',\n mixable: true,\n expelEnclosingWhitespace: true,\n },\n [Link.name]: {\n open(state: any, mark: Mark, parent: Node, index: number) {\n return isPlainURL(mark, parent, index, 1) ? '<' : '[';\n },\n close(state: any, mark: Mark, parent: Node, index: number) {\n const href = mark.attrs.canonicalSrc || mark.attrs.href;\n\n return isPlainURL(mark, parent, index, -1)\n ? '>'\n : `](${state.esc(href)}${\n mark.attrs.title ? ` ${state.quote(mark.attrs.title)}` : ''\n })`;\n },\n },\n};\n\nfunction isPlainURL(link: Mark, parent: Node, index: number, side: number) {\n if (link.attrs.title || !/^\\w+:/.test(link.attrs.href)) return false;\n const content = parent.child(index + (side < 0 ? -1 : 0));\n if (\n !content.isText ||\n content.text !== link.attrs.href ||\n content.marks[content.marks.length - 1] !== link\n )\n return false;\n if (index === (side < 0 ? 1 : parent.childCount - 1)) return true;\n const next = parent.child(index + (side < 0 ? -2 : 1));\n return !link.isInSet(next.marks);\n}\n\nexport function serialize(schema: any, content: any) {\n const mdSerializer = new ProseMirrorMarkdownSerializer(\n mdSerializerNodes,\n mdSerializerMarks,\n );\n\n const proseMirrorDocument = schema.nodeFromJSON(content);\n\n return mdSerializer.serialize(proseMirrorDocument, { tightLists: true });\n}\n\nexport function deserialize(schema: any, content?: string) {\n if (!content) return null;\n const html = marked.parse(content);\n\n if (!html) return null;\n\n const parser = new DOMParser();\n const { body } = parser.parseFromString(html, 'text/html');\n\n // append original source as a comment that nodes can access\n body.append(document.createComment(content));\n\n const state = ProseMirrorDOMParser.fromSchema(schema).parse(body);\n return state.toJSON();\n}\n\n","<template>\n <div\n :ref=\"'root'\"\n :class=\"rootStyles\"\n >\n <template v-if=\"$slots.label || $slots.addon || label\">\n <OrLabel\n :variant=\"'input'\"\n :required=\"required\"\n :disabled=\"disabled\"\n >\n <slot name=\"label\">\n {{ label }}\n </slot>\n\n <template v-slot:addon>\n <slot name=\"addon\" />\n </template>\n </OrLabel>\n </template>\n\n <OrInputBox\n :ref=\"'containerRef'\"\n class=\"grow\"\n :direction=\"'column'\"\n :invalid=\"!!error\"\n :disabled=\"disabled\"\n @click=\"handleEditorClick()\"\n >\n <div\n :ref=\"'toolbarRef'\"\n :class=\"toolbarStyles\"\n :disabled=\"disabled || !isFocused\"\n >\n <div\n v-for=\"(tools, index) in toolbar\"\n :key=\"index\"\n :class=\"[...toolbarGroupStyles, { 'hidden': !isVisible(tools)}]\"\n :disabled=\"disabled || !isFocused\"\n >\n <div\n v-for=\"item in tools\"\n :key=\"item\"\n :class=\"['flex gap-md', { 'hidden': !isVisible(item)}]\"\n >\n <OrIconButton\n v-if=\"item === 'heading'\"\n :ref=\"'toolbarButtonRef'\"\n :icon=\"{ icon: headingIcon, variant: 'inherit' }\"\n :tooltip=\"{ content: item, placement: 'top' }\"\n :selected=\"isActive[item]\"\n :disabled=\"disabled || !isFocused\"\n @click=\"menuRef && menuRef.toggle()\"\n />\n\n <OrIconButton\n v-else-if=\"isVisible(item)\"\n :icon=\"{ icon: getRichTextEditorIcon(item), variant: 'inherit' }\"\n :tooltip=\"{ content: getRichTextEditorTooltipIcon(item), placement: 'top' }\"\n :selected=\"isActive[item]\"\n :disabled=\"disabled || !isFocused\"\n @click=\"handleToolbarClick(item)\"\n />\n </div>\n </div>\n\n <OrIconButton\n v-if=\"countOfNotVisibleTools > 0 && !isMobile\"\n :ref=\"'moreButtonRef'\"\n :class=\"['mx-sm']\"\n :icon=\"{ icon: 'more_horiz', variant: 'inherit' }\"\n :disabled=\"disabled || !isFocused\"\n :force-state=\"morePopoverRef && morePopoverRef.state === 'open' ? 'hover' : undefined\"\n @click=\"morePopoverRef && morePopoverRef.open()\"\n />\n </div>\n\n <div :class=\"['p-sm', 'overflow-auto', 'min-h-[88px]', 'h-full']\">\n <textarea\n v-show=\"disableMarkdown\"\n :ref=\"'textareaRef'\"\n v-model=\"sourceValue\"\n :activated=\"disableMarkdown\"\n class=\"block w-full h-full resize-none border-none outline-none bg-transparent typography-body-2-regular\"\n @input=\"handleInput\"\n />\n\n <div\n v-show=\"!disableMarkdown\"\n :ref=\"'controlRef'\"\n :class=\"controlStyles\"\n />\n\n <slot name=\"files\" />\n </div>\n </OrInputBox>\n\n <template v-if=\"$slots.hint || hint\">\n <OrHint\n v-show=\"!error\"\n :disabled=\"disabled\"\n >\n <slot name=\"hint\">\n {{ hint }}\n </slot>\n </OrHint>\n </template>\n\n <OrError\n v-show=\"typeof error === 'string' && error.length > 0\"\n :disabled=\"disabled\"\n >\n {{ error }}\n </OrError>\n\n <OrPopover\n v-if=\"moreButtonRef\"\n :ref=\"'morePopoverRef'\"\n :trigger=\"moreButtonRef && moreButtonRef.root\"\n :placement=\"'top-end'\"\n >\n <div class=\"flex p-sm gap-md\">\n <OrIconButton\n v-for=\"item in notVisibleTools\"\n :key=\"item\"\n :icon=\"{ icon: getRichTextEditorIcon(item), variant: 'inherit' }\"\n :tooltip=\"{ content: getRichTextEditorTooltipIcon(item), placement: 'top' }\"\n :selected=\"isActive[item]\"\n @click=\"handleToolbarClick(item)\"\n />\n </div>\n </OrPopover>\n\n <OrMenu\n v-if=\"toolbarButtonRef\"\n :ref=\"'menuRef'\"\n :trigger=\"toolbarButtonRef[getIndexOfHeading] && toolbarButtonRef[getIndexOfHeading].root\"\n :placement=\"'bottom-start'\"\n >\n <OrMenuItem\n v-for=\"heading in headingLevels\"\n :key=\"heading\"\n :selected=\"activeHeadingLevel === heading\"\n @click=\"handleToolbarClick('heading', heading)\"\n >\n Heading {{ heading }}\n </OrMenuItem>\n\n <OrMenuItem\n :selected=\"!activeHeadingLevel\"\n @click=\"handleToolbarClick('heading')\"\n >\n None\n </OrMenuItem>\n </OrMenu>\n\n <OrModal\n :is-open=\"isOpenLinkModal\"\n :size=\"'s'\"\n >\n <template v-slot:header>\n Add Link\n </template>\n\n <div :class=\"['layout-column', 'gap-md']\">\n <OrInput\n v-model=\"text\"\n :label=\"'Text'\"\n :placeholder=\"'Enter text'\"\n />\n\n <OrInput\n v-model=\"link\"\n :label=\"'Link'\"\n :placeholder=\"'Enter link'\"\n />\n </div>\n\n <template v-slot:footer>\n <div :class=\"['layout-row-reverse', 'gap-md']\">\n <OrButton\n :variant=\"'contained'\"\n @click=\"attachLink()\"\n >\n Save\n </OrButton>\n\n <OrButton\n :variant=\"'outlined'\"\n @click=\"discardLink()\"\n >\n Cancel\n </OrButton>\n </div>\n </template>\n </OrModal>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { useResponsive } from '@onereach/ui-components-common/hooks';\nimport { isArray } from '@onereach/ui-components-common/utils';\nimport { OrButtonV3 as OrButton } from '@onereach/ui-components.or-button-v3';\nimport { OrErrorV3 as OrError } from '@onereach/ui-components.or-error-v3';\nimport { OrHintV3 as OrHint } from '@onereach/ui-components.or-hint-v3';\nimport { OrIconButtonV3 as OrIconButton } from '@onereach/ui-components.or-icon-button-v3';\nimport { OrInputBoxV3 as OrInputBox } from '@onereach/ui-components.or-input-box-v3';\nimport { OrInputV3 as OrInput } from '@onereach/ui-components.or-input-v3';\nimport { OrLabelV3 as OrLabel } from '@onereach/ui-components.or-label-v3';\nimport { OrMenuItemV3 as OrMenuItem } from '@onereach/ui-components.or-menu-item-v3';\nimport { OrMenuV3 as OrMenu } from '@onereach/ui-components.or-menu-v3';\nimport { OrModalV3 as OrModal } from '@onereach/ui-components.or-modal-v3';\nimport { OrPopoverV3 as OrPopover } from '@onereach/ui-components.or-popover-v3';\nimport { Editor, mergeAttributes } from '@tiptap/core';\nimport Blockquote from '@tiptap/extension-blockquote';\nimport BulletList from '@tiptap/extension-bullet-list';\nimport Heading, { Level } from '@tiptap/extension-heading';\nimport Highlight from '@tiptap/extension-highlight';\nimport Link from '@tiptap/extension-link';\nimport OrderedList from '@tiptap/extension-ordered-list';\nimport Paragraph from '@tiptap/extension-paragraph';\nimport Placeholder from '@tiptap/extension-placeholder';\nimport Underline from '@tiptap/extension-underline';\nimport StarterKit from '@tiptap/starter-kit';\nimport { onClickOutside, useDebounceFn, useResizeObserver } from '@vueuse/core';\nimport { UseFocusTrapReturn, useFocusTrap } from '@vueuse/integrations/useFocusTrap';\nimport { ComponentPublicInstance, PropType, computed, defineComponent, nextTick, onBeforeUnmount, onMounted, ref, shallowRef, watch } from 'vue';\n\nimport { Formats, Tools, RichTextEditorIcons, RichTextEditorTooltips } from './props';\nimport * as Styles from './styles';\nimport codemirrorNode from './utils/codemirror/codemirrorNode';\nimport { deserialize, serialize } from './utils/markdown';\n\nexport default defineComponent({\n name: 'OrRichTextEditor',\n\n components: {\n OrButton,\n OrError,\n OrHint,\n OrIconButton,\n OrInput,\n OrInputBox,\n OrLabel,\n OrMenu,\n OrMenuItem,\n OrModal,\n OrPopover,\n },\n\n model: {\n prop: 'modelValue',\n event: 'update:modelValue',\n },\n\n props: {\n modelValue: {\n type: String,\n default: undefined,\n },\n\n toolbar: {\n type: Array as PropType<Tools>,\n default: () => [],\n },\n\n autofocus: {\n type: Boolean,\n default: false,\n },\n\n format: {\n type: String as PropType<`${Formats}`>,\n default: () => Formats.Markup,\n },\n\n label: {\n type: String,\n default: undefined,\n },\n\n placeholder: {\n type: String,\n default: undefined,\n },\n\n hint: {\n type: String,\n default: undefined,\n },\n\n error: {\n type: [String, Boolean],\n default: undefined,\n },\n\n required: {\n type: Boolean,\n default: false,\n },\n\n disabled: {\n type: Boolean,\n default: false,\n },\n },\n\n emits: [\n 'update:modelValue',\n\n 'input',\n 'file-upload',\n\n 'focus',\n 'blur',\n ],\n\n expose: [\n 'root',\n 'editor',\n ],\n\n setup(props, context) {\n let editor = shallowRef<Editor>();\n const controlRef = ref<HTMLDivElement>();\n const toolbarRef = ref<ComponentPublicInstance<HTMLInputElement>>();\n\n // Refs & Styles\n const root = ref<HTMLElement>();\n\n const textareaRef = ref<HTMLTextAreaElement>();\n const containerRef = ref<ComponentPublicInstance<HTMLInputElement>>();\n const moreButtonRef = ref<InstanceType<typeof OrIconButton>>();\n const morePopoverRef = ref<InstanceType<typeof OrPopover>>();\n const toolbarButtonRef = ref<InstanceType<typeof OrIconButton>>();\n const menuRef = ref<InstanceType<typeof OrMenu>>();\n\n // isActive should be set with default values for all toolbar buttons, otherwise it will not work in vue2\n const isActive = ref<{[key: string]: boolean;}>({\n bold: false,\n italic: false,\n underline: false,\n strike: false,\n bulletList: false,\n orderedList: false,\n link: false,\n highlight: false,\n redo: false,\n undo: false,\n codeBlock: false,\n blockquote: false,\n file: false,\n source: false,\n });\n\n const isFocused = ref<boolean>(props.autofocus);\n const headingLevels = [1, 2, 3, 4] as Level[];\n const activeHeadingLevel = ref<number>(0);\n const markdownOutput = ref<string>('');\n const disableMarkdown = ref<boolean>(false);\n\n // Attach link modal\n const isOpenLinkModal = ref<boolean>(false);\n const text = ref<string>('');\n const link = ref<string>('');\n\n const countOfNotVisibleTools = ref<number>(0);\n const sourceValue = ref<string>('');\n\n const { isMobile } = useResponsive();\n\n let trap: UseFocusTrapReturn = useFocusTrap(controlRef, {\n fallbackFocus: '.container',\n allowOutsideClick: true,\n });\n\n\n useResizeObserver(root, useDebounceFn((entries) => {\n const entry = entries[0];\n const { width } = entry.contentRect;\n if (containerRef.value && toolbarRef.value && toolbarLength.value) {\n let lengthOfItem = 0;\n lengthOfItem = (toolbarRef.value.firstElementChild?.firstElementChild as HTMLDivElement)?.offsetWidth + 16;\n\n const count = (width / lengthOfItem) - 2;\n countOfNotVisibleTools.value = Math.round(toolbarLength.value - count);\n }\n }, 10));\n\n onMounted(() => {\n editor.value = new Editor({\n onUpdate: ({ editor }) => {\n isFocused.value = true;\n setActiveFormats();\n const html = editor.getHTML();\n const text = editor.getText();\n if (props.format === 'markdown') {\n markdownOutput.value = serialize(editor.schema, editor.getJSON());\n model.value = markdownOutput.value;\n } else {\n model.value = text === '' ? text : html;\n }\n },\n onCreate: ({ editor }) => {\n if (props.format === 'markdown') {\n editor.commands.setContent(deserialize(editor.schema, model.value));\n } else {\n editor.commands.setContent(model.value as string);\n }\n },\n onFocus(props) {\n context.emit('focus', props);\n },\n onBlur(props) {\n context.emit('blur', props);\n },\n element: controlRef.value,\n autofocus: props.autofocus,\n enableInputRules: true,\n enablePasteRules: true,\n extensions: [\n codemirrorNode,\n StarterKit.configure({\n heading: false,\n codeBlock: false,\n paragraph: false,\n bulletList: false,\n orderedList: false,\n blockquote: false,\n }),\n Paragraph.configure({\n HTMLAttributes: {\n class: 'or-cm-paragraph my-xs',\n },\n }),\n BulletList.configure({\n HTMLAttributes: {\n class: 'or-cm-bulletList mx-lg my-xs list-disc',\n },\n }),\n OrderedList.configure({\n HTMLAttributes: {\n class: 'or-cm-orderedList mx-lg my-xs list-decimal',\n },\n }),\n Blockquote.configure({\n HTMLAttributes: {\n class: 'or-cm-blockquote my-sm mx-lg px-lg border-l-2 border-outline',\n },\n }),\n Heading.configure({ levels: headingLevels }).extend({\n levels: headingLevels,\n renderHTML({ node, HTMLAttributes }) {\n return [\n 'h' + node.attrs.level,\n mergeAttributes(HTMLAttributes, {\n class: `typography-headline-${node.attrs.level} my-xs`,\n }),\n 0,\n ];\n },\n }),\n Underline,\n Link.configure({\n openOnClick: true,\n linkOnPaste: true,\n autolink: false,\n protocols: ['ftp', 'mailto', 'http', 'https'],\n validate: href => /^https?:\\/\\//.test(href),\n HTMLAttributes: {\n class: 'or-cm-link text-primary cursor-pointer',\n },\n }),\n Highlight,\n Placeholder\n .configure({\n placeholder: props.placeholder,\n emptyEditorClass: 'or-cm-placeholder text-outline is-editor-empty',\n }),\n ],\n editorProps: {\n attributes: {\n class: 'or-cm-editorProps flex flex-col focus:outline-none gap-xs h-full',\n },\n },\n parseOptions: {\n preserveWhitespace: true,\n },\n });\n setActiveFormats();\n trap.activate();\n });\n\n onBeforeUnmount(() => {\n editor.value?.destroy();\n });\n\n onClickOutside(root, () => {\n isFocused.value = false;\n trap.deactivate();\n });\n\n // Computed\n const model = computed({\n get: () => {\n return props.modelValue;\n },\n\n set: (value) => {\n context.emit('input', value);\n context.emit('update:modelValue', value);\n },\n });\n\n const getIndexOfHeading = computed(() => {\n return props.toolbar.flat().indexOf('heading');\n });\n\n const getRichTextEditorIcon = computed(() => (item: string) => {\n return RichTextEditorIcons[item as keyof typeof RichTextEditorTooltips];\n });\n\n const getRichTextEditorTooltipIcon = computed(() => (item: string) => {\n return RichTextEditorTooltips[item as keyof typeof RichTextEditorTooltips];\n });\n\n const headingIcon = computed(() => {\n if (activeHeadingLevel.value && isActive.value.heading) {\n return `format_h${activeHeadingLevel.value}`;\n }\n return 'format_paragraph';\n });\n\n const toolbarLength = computed(() => {\n return props.toolbar.flat().length;\n });\n\n const notVisibleTools = computed((): Set<string> => {\n const count = countOfNotVisibleTools.value;\n const toolbar = props.toolbar.flat();\n let notVisible = new Set(toolbar.slice(toolbar.length - count, toolbar.length));\n props.toolbar.forEach(tools => {\n if (tools.some(item => notVisible.has(item))) {\n tools.forEach(item => notVisible.add(item));\n }\n });\n return notVisible;\n });\n\n //Methods\n const handleEditorClick = () => {\n setActiveFormats();\n isFocused.value = true;\n editor.value?.commands.focus();\n activeHeadingLevel.value = editor.value?.getAttributes('heading')?.level || 0;\n };\n\n const isVisible = (value: string | Array<string>) => {\n if (isMobile.value) return true;\n\n if (isArray(value)) {\n const isHaveNotVisibleTools = value.some(item => notVisibleTools.value.has(item));\n return !isHaveNotVisibleTools;\n }\n return !notVisibleTools.value.has(value);\n };\n\n const handleInput = (event: InputEvent) => {\n const target = event.target as HTMLTextAreaElement;\n const value = target.value;\n editor.value?.commands.setContent(deserialize(editor.value?.schema, value));\n markdownOutput.value = serialize(editor.value?.schema, editor.value?.getJSON());\n model.value = markdownOutput.value;\n };\n\n const handleToolbarClick = (item: string, level?: number) => {\n switch (item) {\n case 'source':\n disableMarkdown.value = !disableMarkdown.value;\n sourceValue.value = serialize(editor.value?.schema, editor.value?.getJSON());\n\n textareaRef.value?.style.setProperty('height', `${controlRef.value?.offsetHeight || 88}px`);\n\n nextTick(() => textareaRef.value?.focus());\n break;\n case 'bulletList':\n case 'orderedList':\n item === 'bulletList' ? editor.value?.commands.toggleBulletList() : editor.value?.commands.toggleOrderedList();\n break;\n case 'link':\n if (editor.value) {\n const cursorPosition = editor.value?.state.selection.$anchor.pos || 0;\n const { from, to, empty } = editor.value!.state.selection;\n const isLink = editor.value!.view.state.doc.nodeAt(cursorPosition)?.marks.filter((mark) => mark.type.name === 'link');\n const existedText = isLink?.length ? editor.value!.view.state.doc.nodeAt(cursorPosition)?.text || '' : '';\n\n text.value = empty ? existedText : editor.value!.state.doc.textBetween(from, to, ' ');\n link.value = editor.value!.getAttributes('link').href || '';\n }\n isOpenLinkModal.value = !isOpenLinkModal.value;\n break;\n case 'blockquote':\n editor.value?.chain().toggleBlockquote().run();\n break;\n case 'codeBlock':\n if (!isActive.value['codeBlock']) {\n editor.value?.commands.setNode(item, { language: 'javascript' });\n } else {\n editor.value?.commands.setNode('paragraph');\n }\n break;\n case 'heading':\n if (!level) {\n editor.value?.commands.setParagraph();\n activeHeadingLevel.value = 0;\n } else {\n activeHeadingLevel.value = level;\n editor.value?.commands.toggleHeading({ level: level as Level });\n }\n break;\n case 'undo':\n case 'redo':\n item === 'undo' ? editor.value?.commands.undo() : editor.value?.commands.redo();\n break;\n case 'file':\n context.emit('file-upload');\n break;\n default:\n editor.value?.chain().toggleMark(item).run();\n break;\n }\n };\n\n const attachLink = async () => {\n // empty\n if (link.value === '') {\n editor.value?.chain().focus().extendMarkRange('link').unsetLink().run();\n }\n\n const isEmptySelection = editor.value?.state.selection.empty;\n const cursorPosition = editor.value?.state.selection.$anchor.pos || 0;\n // Check if it's already link\n const isLink = editor.value?.view.state.doc.nodeAt(cursorPosition)?.marks.filter((mark) => mark.type.name === 'link');\n const existedText = isLink?.length ? editor.value?.view.state.doc.nodeAt(cursorPosition)?.text : '';\n\n if (link.value && isEmptySelection && !existedText) {\n editor.value?.chain()\n .focus()\n .setMark('link', {\n href: link.value,\n target: '__blank',\n })\n .command(({ tr }) => {\n const preparedValue = text.value[text.value.length - 1] === ' ' ? text.value : `${text.value} `;\n tr.insertText(preparedValue);\n return true;\n })\n .run();\n }\n\n if (link.value && existedText === text.value && isEmptySelection) {\n editor.value?.chain()\n .extendMarkRange('link')\n .updateAttributes('link', {\n href: link.value,\n })\n .run();\n }\n\n if (link.value && text.value !== existedText && !isEmptySelection) {\n editor.value?.chain()\n .focus()\n .insertContentAt({\n from: editor.value?.state.selection.from,\n to: editor.value?.state.selection.to,\n }, text.value)\n .setTextSelection({\n from: editor.value?.state.selection.from,\n to: editor.value?.state.selection.from + text.value.length,\n })\n .setMark('link', {\n href: link.value,\n target: '__blank',\n })\n .run();\n }\n\n if (link.value && !isEmptySelection) {\n editor.value?.chain()\n .focus()\n .setMark('link', {\n href: link.value,\n target: '__blank',\n })\n .run();\n }\n\n text.value = '';\n link.value = '';\n\n isOpenLinkModal.value = false;\n };\n\n const discardLink = () => {\n isOpenLinkModal.value = false;\n };\n\n const setActiveFormats = () => {\n const toolbarList = props.toolbar.flat() as string[];\n toolbarList.forEach((item) => {\n if (item === 'source') {\n isActive.value[item] = disableMarkdown.value;\n } else {\n isActive.value[item] = editor.value?.isActive(item) || false;\n }\n });\n };\n\n\n // Effects\n watch([\n editor,\n model,\n () => props.disabled,\n ], ([\n editor,\n model,\n disabled,\n ]) => {\n if (model !== editor?.getHTML() && props.format !== 'markdown') {\n editor?.commands.setContent(model as string);\n }\n\n if (model !== markdownOutput.value && props.format === 'markdown') {\n editor?.commands.setContent(deserialize(editor?.schema, model));\n }\n\n editor?.setEditable(!disabled);\n });\n\n // Styles\n const rootStyles = computed(() => [\n 'or-rich-text-editor-v3',\n ...Styles.RichTextEditor,\n ]);\n\n const toolbarStyles = computed(() => [\n ...Styles.RichTextEditorToolbar,\n ]);\n\n const toolbarGroupStyles = computed(() => [\n ...Styles.RichTextEditorToolbarGroup,\n ]);\n\n const controlStyles = computed(() => [\n 'tiptap-editor-v3',\n ...Styles.RichTextEditorControl,\n ]);\n\n return {\n root,\n rootStyles,\n\n toolbarRef,\n toolbarStyles,\n\n toolbarGroupStyles,\n\n controlRef,\n controlStyles,\n\n editor,\n containerRef,\n toolbarButtonRef,\n moreButtonRef,\n textareaRef,\n morePopoverRef,\n menuRef,\n handleToolbarClick,\n handleEditorClick,\n isActive,\n getRichTextEditorIcon,\n getRichTextEditorTooltipIcon,\n getIndexOfHeading,\n headingLevels,\n headingIcon,\n attachLink,\n discardLink,\n isOpenLinkModal,\n text,\n link,\n isFocused,\n isVisible,\n isMobile,\n countOfNotVisibleTools,\n notVisibleTools,\n handleInput,\n model,\n disableMarkdown,\n sourceValue,\n activeHeadingLevel,\n };\n },\n});\n</script>\n\n<style scoped lang=\"scss\">\n// Unavoidable hack for bundled (browser) build\n// Created by the fact that this is deep styles in editor\n// As far as we need scoping for browser builds, we can't rely on global existence of this classes\n:deep(.or-cm-paragraph) {\n @apply my-xs;\n}\n\n:deep(.or-cm-bulletList) {\n @apply mx-lg my-xs list-disc;\n}\n\n:deep(.or-cm-orderedList) {\n @apply mx-lg my-xs list-decimal;\n}\n\n:deep(.or-cm-blockquote) {\n @apply my-sm mx-lg px-lg border-l-2 border-outline;\n}\n\n:deep(.or-cm-link) {\n @apply text-primary cursor-pointer;\n}\n\n:deep(.or-cm-placeholder) {\n @apply text-outline;\n}\n\n:deep(.or-cm-editorProps) {\n @apply flex flex-col focus:outline-none gap-xs h-full;\n}\n</style>\n\n<style lang=\"scss\">\n.tiptap-editor-v3 {\n .is-editor-empty::before {\n float: left;\n height: 0;\n pointer-events: none;\n content: attr(data-placeholder);\n }\n}\n</style>\n"],"names":["Formats","RichTextEditorIcons","RichTextEditorTooltips","RichTextEditor","RichTextEditorToolbar","RichTextEditorToolbarGroup","RichTextEditorControl","themes","useTheme","chalky","coral","cyan","invalid","_a","ivory","stone","malibu","sage","whiskey","violet","orCodeTheme","EditorView","_b","_c","_d","_e","_f","_g","_h","_i","_j","orCodeHighlightStyle","HighlightStyle","t","theme","syntaxHighlighting","computeChange","oldVal","newVal","start","oldEnd","newEnd","CodeMirrorView","options","cmExtensions","changeFilter","CMState","tr","CMView","cmState","highlightActiveLine","highlightActiveLineGutter","lineNumbers","keymap","exitCode","state","selection","doc","offset","anchor","head","TextSelection","cmTr","cmValue","change","content","unit","dir","view","pos","line","hasSelection","r","firstLine","lastLine","targetPos","pmSelection","Selection","node","codemirrorNode","Node","editor","getPos","CodeBlockView","minimalSetup","javascript","mdSerializerNodes","defaultMarkdownSerializer","Paragraph","BulletList","ListItem","OrderedList","HardBreak","CodeBlock","Blockquote","HorizontalRule","mdSerializerMarks","Bold","Strike","Italic","Highlight","Underline","Link","mark","parent","index","isPlainURL","href","link","side","next","serialize","schema","mdSerializer","ProseMirrorMarkdownSerializer","proseMirrorDocument","deserialize","html","marked","parser","body","ProseMirrorDOMParser","_sfc_main","defineComponent","OrButton","OrError","OrHint","OrIconButton","OrInput","OrInputBox","OrLabel","OrMenu","OrMenuItem","OrModal","OrPopover","props","context","shallowRef","controlRef","ref","toolbarRef","root","textareaRef","containerRef","moreButtonRef","morePopoverRef","toolbarButtonRef","menuRef","isActive","isFocused","headingLevels","activeHeadingLevel","markdownOutput","disableMarkdown","isOpenLinkModal","text","countOfNotVisibleTools","sourceValue","isMobile","useResponsive","trap","useFocusTrap","useResizeObserver","useDebounceFn","entries","entry","width","toolbarLength","lengthOfItem","count","onMounted","Editor","setActiveFormats","model","StarterKit","Heading","HTMLAttributes","mergeAttributes","Placeholder","onBeforeUnmount","onClickOutside","computed","value","getIndexOfHeading","getRichTextEditorIcon","item","getRichTextEditorTooltipIcon","headingIcon","notVisibleTools","toolbar","notVisible","tools","handleEditorClick","isVisible","isArray","handleInput","event","handleToolbarClick","level","nextTick","cursorPosition","from","to","empty","isLink","existedText","_l","_k","_n","_m","_o","_p","_q","attachLink","isEmptySelection","preparedValue","discardLink","watch","disabled","rootStyles","Styles.RichTextEditor","toolbarStyles","Styles.RichTextEditorToolbar","toolbarGroupStyles","Styles.RichTextEditorToolbarGroup","controlStyles","Styles.RichTextEditorControl","_hoisted_2","_hoisted_5","_resolveComponent","_openBlock","_createElementBlock","_normalizeClass","_ctx","_createBlock","_component_OrLabel","_renderSlot","_createCommentVNode","_createVNode","_component_OrInputBox","_cache","$event","_withCtx","_createElementVNode","_Fragment","_renderList","_component_OrIconButton","_hoisted_1","_hoisted_3","_withDirectives","args","_hoisted_4","_vShow","_vModelText","_component_OrHint","_component_OrError","_component_OrPopover","_component_OrMenu","heading","_component_OrMenuItem","_component_OrModal","_createTextVNode","_hoisted_7","_component_OrButton","_hoisted_6","_component_OrInput"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAY,IAAAA,uBAAAA,OACVA,EAAA,WAAW,YACXA,EAAA,SAAS,UAFCA,IAAAA,MAAA,CAAA,CAAA,GAOAC,uBAAAA,OACVA,EAAA,OAAO,eACPA,EAAA,SAAS,iBACTA,EAAA,YAAY,qBACZA,EAAA,SAAS,wBACTA,EAAA,aAAa,wBACbA,EAAA,cAAc,wBACdA,EAAA,OAAO,QACPA,EAAA,YAAY,aACZA,EAAA,OAAO,QACPA,EAAA,OAAO,QACPA,EAAA,YAAY,eACZA,EAAA,aAAa,gBACbA,EAAA,OAAO,eACPA,EAAA,SAAS,gBAdCA,IAAAA,MAAA,CAAA,CAAA,GAiBAC,uBAAAA,OACVA,EAAA,OAAO,QACPA,EAAA,SAAS,UACTA,EAAA,YAAY,aACZA,EAAA,SAAS,UACTA,EAAA,aAAa,iBACbA,EAAA,cAAc,iBACdA,EAAA,OAAO,QACPA,EAAA,YAAY,aACZA,EAAA,OAAO,QACPA,EAAA,OAAO,QACPA,EAAA,YAAY,cACZA,EAAA,aAAa,SACbA,EAAA,OAAO,QACPA,EAAA,SAAS,UAdCA,IAAAA,MAAA,CAAA,CAAA;ACxBL,MAAMC,KAA2B;AAAA;AAAA,EAEtC;AAAA;AAAA,EAGA;AAAA;AAAA,EAGA;AACF,GAEaC,KAAkC;AAAA;AAAA,EAE7C;AAAA;AAAA,EAGA;AAAA,EACA;AAAA;AAAA,EAGA;AAAA,EACA;AAAA;AAAA,EAGA;AAAA,EAEA;AAAA,EACA;AACF,GAEaC,KAAuC;AAAA;AAAA,EAElD;AAAA;AAAA,EAGA;AAAA,EACA;AAAA,EAEA;AAAA;AAAA,EAGA;AAAA,EACA;AAAA,EAEA;AAAA,EAEA;AAAA,EACA;AACF,GAEaC,KAAkC;AAAA;AAAA,EAE7C;AAAA;AAAA,EAGA;AACF,GChDMC,IAASC,GAAS,GAElBC,KAASF,KAAA,gBAAAA,EAAQ,gBAAgB,2BACrCG,KAAQH,KAAA,gBAAAA,EAAQ,gBAAgB,2BAChCI,KAAOJ,KAAA,gBAAAA,EAAQ,gBAAgB;;AAFjC,MAGEK,MAAUC,KAAAN,KAAA,gBAAAA,EAAQ,oBAAR,gBAAAM,GAAyB,OACnCC,KAAQP,KAAA,gBAAAA,EAAQ,gBAAgB,2BAChCQ,KAAQR,KAAA,gBAAAA,EAAQ,gBAAgB,2BAChCS,KAAST,KAAA,gBAAAA,EAAQ,gBAAgB,2BACjCU,KAAOV,KAAA,gBAAAA,EAAQ,gBAAgB,SAC/BW,KAAUX,KAAA,gBAAAA,EAAQ,gBAAgB,SAClCY,KAASZ,KAAA,gBAAAA,EAAQ,gBAAgB;;AA6BtB,MAAAa,KAAcC,GAAW,MAAM;AAAA,EAC1C,KAAK;AAAA,IACH,OAAOP;AAAA,IACP,kBAAiBD,KAAAN,KAAA,gBAAAA,EAAQ,oBAAR,gBAAAM,GAA0B;AAAA,EAC7C;AAAA,EAEA,cAAc;AAAA,IACZ,QAAQ;AAAA,IACR,eAAcS,KAAAf,KAAA,gBAAAA,EAAQ,YAAR,gBAAAe,GAAiB;AAAA,EACjC;AAAA,EAEA,gBAAgB;AAAA,IACd,SAAS;AAAA,EACX;AAAA,EAEA,gBAAgB;AAAA,IACd,eAAcC,KAAAhB,KAAA,gBAAAA,EAAQ,YAAR,gBAAAgB,GAAiB;AAAA,EACjC;AAAA,EAEA,eAAe;AAAA;AAAA,EAEf;AAAA,EAEA,cAAc;AAAA;AAAA;AAAA,IAGZ,QAAQ;AAAA,IACR,eAAcC,KAAAjB,KAAA,gBAAAA,EAAQ,YAAR,gBAAAiB,GAAiB;AAAA,EACjC;AAAA,EAEA,4CAA4C;AAAA,IAC1C,SAAS;AAAA,IACT,eAAe;AAAA,EACjB;AAAA;AAAA,EAGA,0FAA0F;AAAA;AAAA,EAE1F;AAAA,EAEA,cAAc;AAAA;AAAA,IAEZ,OAAOV;AAAA,EACT;AAAA;AAAA;AAAA,EAIA,mBAAmB;AAAA;AAAA;AAAA,EAGnB;AAAA,EAEA,2CAA2C;AAAA;AAAA,EAE3C;AAAA,EAEA,kBAAkB;AAAA,IAChB,kBAAiBW,KAAAlB,KAAA,gBAAAA,EAAQ,oBAAR,gBAAAkB,GAA0B;AAAA,EAC7C;AAAA;AAAA,EAIA,yEAAyE;AAAA;AAAA,EAEzE;AAAA,EAEA,eAAe;AAAA,IACb,kBAAiBC,KAAAnB,KAAA,gBAAAA,EAAQ,oBAAR,gBAAAmB,GAA0B;AAAA,IAC3C,OAAOX;AAAA,IACP,QAAQ;AAAA,EACV;AAAA,EAEA,qCAAqC;AAAA,IACnC,cAAaY,KAAApB,KAAA,gBAAAA,EAAQ,YAAR,gBAAAoB,GAAkB;AAAA,IAC/B,eAAcC,KAAArB,KAAA,gBAAAA,EAAQ,YAAR,gBAAAqB,GAAkB;AAAA,EAClC;AAAA,EAEA,wBAAwB;AAAA,IACtB,kBAAiBC,KAAAtB,KAAA,gBAAAA,EAAQ,oBAAR,gBAAAsB,GAA0B;AAAA,EAC7C;AAAA,EAEA,uBAAuB;AAAA,IACrB,iBAAiB;AAAA,IACjB,QAAQ;AAAA;AAAA,EAEV;AAAA,EAEA,eAAe;AAAA,IACb,QAAQ;AAAA;AAAA,EAEV;AAAA,EACA,wCAAwC;AAAA,IACtC,gBAAgB;AAAA,IAChB,mBAAmB;AAAA,EACrB;AAAA,EACA,uCAAuC;AAAA;AAAA;AAAA,EAGvC;AAAA,EACA,4BAA4B;AAAA,IAC1B,8BAA8B;AAAA;AAAA,MAE5B,OAAOf;AAAA,IACT;AAAA,EACF;AAAA,EACA,iBAAiB;AAAA,IACf,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA,IAKT,eAAcgB,KAAAvB,KAAA,gBAAAA,EAAQ,YAAR,gBAAAuB,GAAiB;AAAA,EACjC;AACF,GAAG,EAAE,MAAM,GAAA,CAAM,GAGJC,KAAuBC,GAAe,OAAO;AAAA,EACxD;AAAA,IACE,KAAKC,EAAE;AAAA,IACP,OAAOd;AAAA,EACT;AAAA,EACA;AAAA,IACE,KAAK,CAACc,EAAE,MAAMA,EAAE,SAASA,EAAE,WAAWA,EAAE,cAAcA,EAAE,SAAS;AAAA,IACjE,OAAOvB;AAAA,EACT;AAAA,EACA;AAAA,IACE,KAAK,CAACuB,EAAE,SAASA,EAAE,YAAY,GAAGA,EAAE,SAAS;AAAA,IAC7C,OAAOjB;AAAA,EACT;AAAA,EACA;AAAA,IACE,KAAK,CAACiB,EAAE,OAAOA,EAAE,SAASA,EAAE,IAAI,GAAGA,EAAE,SAASA,EAAE,IAAI,CAAC;AAAA,IACrD,OAAOf;AAAA,EACT;AAAA,EACA;AAAA,IACE,KAAK,CAACe,EAAE,WAAWA,EAAE,IAAI,GAAGA,EAAE,SAAS;AAAA,IACvC,OAAOnB;AAAA,EACT;AAAA,EACA;AAAA,IACE,KAAK,CAACmB,EAAE,UAAUA,EAAE,WAAWA,EAAE,QAAQA,EAAE,SAASA,EAAE,YAAYA,EAAE,UAAUA,EAAE,MAAMA,EAAE,SAAS;AAAA,IACjG,OAAOxB;AAAA,EACT;AAAA,EACA;AAAA,IACE,KAAK,CAACwB,EAAE,UAAUA,EAAE,iBAAiBA,EAAE,KAAKA,EAAE,QAAQA,EAAE,QAAQA,EAAE,MAAMA,EAAE,QAAQA,EAAE,MAAM,CAAC;AAAA,IAC3F,OAAOtB;AAAA,EACT;AAAA,EACA;AAAA,IACE,KAAK,CAACsB,EAAE,MAAMA,EAAE,OAAO;AAAA,IACvB,OAAOlB;AAAA,EACT;AAAA,EACA;AAAA,IACE,KAAKkB,EAAE;AAAA,IACP,YAAY;AAAA,EACd;AAAA,EACA;AAAA,IACE,KAAKA,EAAE;AAAA,IACP,WAAW;AAAA,EACb;AAAA,EACA;AAAA,IACE,KAAKA,EAAE;AAAA,IACP,gBAAgB;AAAA,EAClB;AAAA,EACA;AAAA,IACE,KAAKA,EAAE;AAAA,IACP,OAAOlB;AAAA,IACP,gBAAgB;AAAA,EAClB;AAAA,EACA;AAAA,IACE,KAAKkB,EAAE;AAAA,IACP,YAAY;AAAA,IACZ,OAAOvB;AAAA,EACT;AAAA,EACA;AAAA,IACE,KAAK,CAACuB,EAAE,MAAMA,EAAE,MAAMA,EAAE,QAAQA,EAAE,YAAY,CAAC;AAAA,IAC/C,OAAOf;AAAA,EACT;AAAA,EACA;AAAA,IACE,KAAK,CAACe,EAAE,uBAAuBA,EAAE,QAAQA,EAAE,QAAQ;AAAA,IACnD,OAAOhB;AAAA,EACT;AAAA,EACA;AAAA,IACE,KAAKgB,EAAE;AAAA,IACP,OAAOrB;AAAA,EACT;AACF,CAAC,GAIKsB,KAAQ,CAACd,IAAae,GAAmBJ,EAAoB,CAAC,GC1N9DK,KAAgB,CAACC,GAAgBC,MAAyC;AAC9E,MAAID,MAAWC;AACN,WAAA;AAGT,MAAIC,IAAQ,GACRC,IAASH,EAAO,QAChBI,IAASH,EAAO;AAEb,SAAAC,IAAQC,KAAUH,EAAO,WAAWE,CAAK,MAAMD,EAAO,WAAWC,CAAK;AAClE,IAAAA,KAAA;AAGX,SAAOC,IAASD,KAASE,IAASF,KAASF,EAAO,WAAWG,IAAS,CAAC,MAAMF,EAAO,WAAWG,IAAS,CAAC;AAC7F,IAAAD,KAAA,GACAC,KAAA;AAGL,SAAA;AAAA,IACL,MAAMF;AAAA,IACN,IAAIC;AAAA,IACJ,MAAMF,EAAO,MAAMC,GAAOE,CAAM;AAAA,EAAA;AAEpC;AAEA,MAAMC,GAAmC;AAAA,EAevC,YAAYC,GAAgC;;AAFjC,SAAA,WAAA,IAIT,KAAK,OAAOA,EAAQ,MACpB,KAAK,OAAOA,EAAQ;AACpB,UAAMC,MAAe/B,IAAA8B,EAAQ,cAAR,gBAAA9B,EAAmB,eAAc,CAAA;AACtD,SAAK,OAAO,aAEZ,KAAK,SAAS8B,EAAQ;AAEtB,UAAME,IAAeC,GAAQ,aAAa,GAAG,CAACC,OACxC,CAACA,EAAG,cAAc,CAAC,KAAK,YAC1B,KAAK,iBAAiB,GAEjB,GACR;AAGI,SAAA,KAAK,IAAIC,GAAO;AAAA,MACnB,UAAU,KAAK,SAAS,KAAK,IAAI;AAAA,IAAA,CAClC,GAGI,KAAA,MAAM,KAAK,GAAG;AAEb,UAAAC,IAAUH,GAAQ,OAAO;AAAA,MAC7B,KAAK,KAAK,KAAK;AAAA,MACf,YAAY;AAAA,QACV1B;AAAAA,QACAyB;AAAA,QACAK,GAAoB;AAAA,QACpBC,GAA0B;AAAA,QAC1BC,GAAY;AAAA,QACZC,GAAO,GAAG;AAAA,UACR;AAAA,YACE,KAAK;AAAA,YACL,KAAK,KAAK,YAAY,QAAQ,EAAE;AAAA,UAClC;AAAA,UACA;AAAA,YACE,KAAK;AAAA,YACL,KAAK,KAAK,YAAY,QAAQ,EAAE;AAAA,UAClC;AAAA,UACA;AAAA,YACE,KAAK;AAAA,YACL,KAAK,KAAK,YAAY,QAAQ,CAAC;AAAA,UACjC;AAAA,UACA;AAAA,YACE,KAAK;AAAA,YACL,KAAK,KAAK,YAAY,QAAQ,CAAC;AAAA,UACjC;AAAA,UACA;AAAA,YACE,KAAK;AAAA,YACL,KAAK,MACCC,GAAS,KAAK,KAAK,OAAO,KAAK,KAAK,QAAQ,KAC9C,KAAK,KAAK,SACH,MAEF;AAAA,UAEX;AAAA,QAAA,CACD;AAAA,QACDV;AAAA,MACF;AAAA,IAAA,CACD;AAEI,SAAA,GAAG,SAASK,CAAO;AAAA,EAC1B;AAAA,EAEA,mBAAmB;AACb,QAAA,CAAC,KAAK,GAAG;AACX;AAGI,UAAA,EAAE,OAAAM,EAAM,IAAI,KAAK,MACjBC,IAAY,KAAK,uBAAuBD,EAAM,GAAG;AAEvD,IAAKC,EAAU,GAAGD,EAAM,SAAS,KAC/B,KAAK,KAAK,SAASA,EAAM,GAAG,aAAaC,CAAS,CAAC;AAAA,EAEvD;AAAA,EAEA,uBAAuBC,GAAsB;AACrC,UAAAC,IAAS,KAAK,OAAA,IAAW,GACzB,EAAE,QAAAC,GAAQ,MAAAC,MAAS,KAAK,GAAG,MAAM,UAAU;AACjD,WAAOC,GAAc,OAAOJ,GAAKE,IAASD,GAAQE,IAAOF,CAAM;AAAA,EACjE;AAAA,EAEA,SAASI,GAAqB;AAG5B,QAFK,KAAA,GAAG,SAASA,EAAK,KAAK,GAEvBA,EAAK,cAAc,CAAC,KAAK,UAAU;AAC/B,YAAAvB,IAAQ,KAAK,OAAA,IAAW,GAExBwB,IAAUD,EAAK,MAAM,IAAI,SAAS,GAClCE,IAAS5B,GAAc,KAAK,KAAK,aAAa2B,CAAO;AAE3D,UAAI,CAACC;AACH;AAGI,YAAAC,IAAUD,EAAO,OAAO,KAAK,KAAK,MAAM,OAAO,KAAKA,EAAO,IAAI,IAAI,MAEnEjB,IAAK,KAAK,KAAK,MAAM,GAAG,YAAYiB,EAAO,OAAOzB,GAAOyB,EAAO,KAAKzB,GAAO0B,CAA0B;AACvG,WAAA,KAAK,SAASlB,CAAE,GACrB,KAAK,iBAAiB;AAAA,IACxB;AAAA,EACF;AAAA,EAEA,YAAYmB,GAAuBC,GAAsB;AACvD,WAAO,CAACC,MAAS;AACT,YAAA,EAAE,OAAAb,EAAU,IAAAa,GACZ,EAAE,WAAAZ,EAAc,IAAAD,GAWhBc,KATc,MAAM;AAClB,cAAAX,IAASF,EAAU,KAAK,MACxBc,IAAOf,EAAM,IAAI,OAAOG,CAAM;AAC7B,eAAA;AAAA,UACL,MAAMY,EAAK;AAAA,UACX,IAAIZ,IAASY,EAAK;AAAA,QAAA;AAAA,MACpB,MAIIC,IAAehB,EAAM,UAAU,OAAO,KAAK,CAACiB,MAAM,CAACA,EAAE,KAAK,GAE1DC,IAAY,GACZC,IAAWnB,EAAM,IAAI,OAAOA,EAAM,IAAI,MAAM,EAAE;AAGlD,UAAAgB,KACGF,EAAI,UAAUF,IAAM,IAAIM,IAAYC,MACnCR,MAAS,UAAUG,EAAI,QAAQF,IAAM,IAAI,IAAIZ,EAAM,IAAI,KAAKc,EAAI,IAAI,EAAE;AAEnE,eAAA;AAGH,YAAAM,IAAY,KAAK,OAAO,KAAKR,IAAM,IAAI,IAAI,KAAK,KAAK,WACrDS,IAAcC,GAAU,KAAK,KAAK,KAAK,MAAM,IAAI,QAAQF,CAAS,GAAGR,CAAG;AACzE,kBAAA,KAAK,SAAS,KAAK,KAAK,MAAM,GAAG,aAAaS,CAAW,EAAE,eAAgB,CAAA,GAChF,KAAK,KAAK,SACH;AAAA,IAAA;AAAA,EAEX;AAAA,EAEA,OAAOE,GAAuB;AAC5B,QAAIA,EAAK,SAAS,KAAK,KAAK;AACnB,aAAA;AAGT,SAAK,OAAOA;AACN,UAAAd,IAAS5B,GAAc,KAAK,GAAG,MAAM,IAAI,SAAY,GAAA0C,EAAK,WAAW;AAE3E,WAAId,MACF,KAAK,WAAW,IAChB,KAAK,GAAG,SAAS;AAAA,MACf,SAAS;AAAA,QACP,MAAMA,EAAO;AAAA,QACb,IAAIA,EAAO;AAAA,QACX,QAAQA,EAAO;AAAA,MACjB;AAAA,IAAA,CACD,GACD,KAAK,WAAW,KAGX;AAAA,EACT;AAAA,EAEA,aAAaL,GAAgBC,GAAoB;AAC/C,SAAK,MAAM,GACX,KAAK,WAAW,IAChB,KAAK,GAAG,SAAS;AAAA,MACf,WAAW;AAAA,QACT,QAAAD;AAAA,QACA,MAAAC;AAAA,MACF;AAAA,IAAA,CACD,GACD,KAAK,WAAW;AAAA,EAClB;AAAA,EAEA,QAAQ;AACN,SAAK,GAAG,SACR,KAAK,iBAAiB;AAAA,EACxB;AAAA,EAEA,aAAa;AACX,SAAK,MAAM;AAAA,EACb;AAAA,EAEA,YAAY;AACH,WAAA;AAAA,EACT;AAAA,EAEA,UAAU;AACR,SAAK,GAAG;EACV;AACF;ACrPA,MAAemB,KAAAC,GAAK,OAAO;AAAA,EACzB,MAAM;AAAA,EACN,SAAS;AAAA,EACT,OAAO;AAAA,EACP,OAAO;AAAA,EACP,MAAM;AAAA,EACN,UAAU;AAAA,EACV,WAAW;AAAA,EAEX,YAAY;AACH,WAAA;AAAA,MACL;AAAA,QACE,KAAK;AAAA,QACL,oBAAoB;AAAA,MACtB;AAAA,IAAA;AAAA,EAEJ;AAAA,EAEA,aAAa;AACX,WAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;AAAA,EAC5B;AAAA,EAEA,cAAc;AACZ,WAAO,CAAC,EAAE,MAAAF,GAAM,QAAAG,GAAQ,QAAAC,QACf,IAAIC,GAAc;AAAA,MACvB,MAAAL;AAAA,MACA,MAAMG,EAAO;AAAA,MACb,QAAAC;AAAA,MACA,WAAW;AAAA,QACT,YAAY,CAACE,IAAcC,IAAY;AAAA,MACzC;AAAA,IAAA,CACD;AAAA,EAEL;AACF,CAAC,GCnBKC,KAAoB;AAAA,EACxB,GAAGC,EAA0B;AAAA,EAC7B,CAACC,GAAU,IAAI,GAAGD,EAA0B,MAAM;AAAA,EAClD,CAACE,GAAW,IAAI,GAAGF,EAA0B,MAAM;AAAA,EACnD,CAACG,GAAS,IAAI,GAAGH,EAA0B,MAAM;AAAA,EACjD,CAACI,GAAY,IAAI,GAAGJ,EAA0B,MAAM;AAAA,EACpD,CAACK,GAAU,IAAI,GAAGL,EAA0B,MAAM;AAAA,EAClD,CAACM,GAAU,IAAI,GAAGN,EAA0B,MAAM;AAAA,EAClD,CAACO,GAAW,IAAI,GAAGP,EAA0B,MAAM;AAAA,EACnD,CAACQ,GAAe,IAAI,GAAGR,EAA0B,MAAM;AACzD,GAEMS,KAAoB;AAAA,EACxB,GAAGT,EAA0B;AAAA,EAC7B,CAACU,GAAK,IAAI,GAAGV,EAA0B,MAAM;AAAA,EAC7C,CAACW,GAAO,IAAI,GAAG;AAAA,IACb,MAAM;AAAA,IACN,OAAO;AAAA,IACP,SAAS;AAAA,IACT,0BAA0B;AAAA,EAC5B;AAAA,EACA,CAACC,GAAO,IAAI,GAAG;AAAA,IACb,MAAM;AAAA,IACN,OAAO;AAAA,IACP,SAAS;AAAA,IACT,0BAA0B;AAAA,EAC5B;AAAA,EACA,CAACC,GAAU,IAAI,GAAG;AAAA,IAChB,MAAM;AAAA,IACN,OAAO;AAAA,IACP,SAAS;AAAA,IACT,0BAA0B;AAAA,EAC5B;AAAA,EACA,CAACC,GAAU,IAAI,GAAG;AAAA,IAChB,MAAM;AAAA,IACN,OAAO;AAAA,IACP,SAAS;AAAA,IACT,0BAA0B;AAAA,EAC5B;AAAA,EACA,CAACC,GAAK,IAAI,GAAG;AAAA,IACX,KAAK/C,GAAYgD,GAAYC,GAAcC,GAAe;AACxD,aAAOC,GAAWH,GAAMC,GAAQC,GAAO,CAAC,IAAI,MAAM;AAAA,IACpD;AAAA,IACA,MAAMlD,GAAYgD,GAAYC,GAAcC,GAAe;AACzD,YAAME,IAAOJ,EAAK,MAAM,gBAAgBA,EAAK,MAAM;AAE5C,aAAAG,GAAWH,GAAMC,GAAQC,GAAO,EAAE,IACrC,MACA,KAAKlD,EAAM,IAAIoD,CAAI,CAAC,GACpBJ,EAAK,MAAM,QAAQ,IAAIhD,EAAM,MAAMgD,EAAK,MAAM,KAAK,CAAC,KAAK,EAC3D;AAAA,IACJ;AAAA,EACF;AACF;AAEA,SAASG,GAAWE,GAAYJ,GAAcC,GAAeI,GAAc;AACrE,MAAAD,EAAK,MAAM,SAAS,CAAC,QAAQ,KAAKA,EAAK,MAAM,IAAI,EAAU,QAAA;AAC/D,QAAM3C,IAAUuC,EAAO,MAAMC,KAASI,IAAO,IAAI,KAAK,EAAE;AACxD,MACE,CAAC5C,EAAQ,UACXA,EAAQ,SAAS2C,EAAK,MAAM,QAC5B3C,EAAQ,MAAMA,EAAQ,MAAM,SAAS,CAAC,MAAM2C;AAEnC,WAAA;AACT,MAAIH,OAAWI,IAAO,IAAI,IAAIL,EAAO,aAAa,GAAW,QAAA;AAC7D,QAAMM,IAAON,EAAO,MAAMC,KAASI,IAAO,IAAI,KAAK,EAAE;AACrD,SAAO,CAACD,EAAK,QAAQE,EAAK,KAAK;AACjC;AAEgB,SAAAC,GAAUC,GAAa/C,GAAc;AACnD,QAAMgD,IAAe,IAAIC;AAAAA,IACvB5B;AAAA,IACAU;AAAA,EAAA,GAGImB,IAAsBH,EAAO,aAAa/C,CAAO;AAEvD,SAAOgD,EAAa,UAAUE,GAAqB,EAAE,YAAY,IAAM;AACzE;AAEgB,SAAAC,GAAYJ,GAAa/C,GAAkB;AACrD,MAAA,CAACA,EAAgB,QAAA;AACf,QAAAoD,IAAOC,GAAO,MAAMrD,CAAO;AAE7B,MAAA,CAACoD,EAAa,QAAA;AAEZ,QAAAE,IAAS,IAAI,aACb,EAAE,MAAAC,EAAK,IAAID,EAAO,gBAAgBF,GAAM,WAAW;AAGzD,SAAAG,EAAK,OAAO,SAAS,cAAcvD,CAAO,CAAC,GAE7BwD,GAAqB,WAAWT,CAAM,EAAE,MAAMQ,CAAI,EACnD;AACf;ACsHA,MAAAE,KAAeC,GAAgB;AAAA,EAC7B,MAAM;AAAA,EAEN,YAAY;AAAA,IACV,UAAAC;AAAA,IACA,SAAAC;AAAA,IACA,QAAAC;AAAA,IACA,cAAAC;AAAA,IACA,SAAAC;AAAA,IACA,YAAAC;AAAA,IACA,SAAAC;AAAA,IACA,QAAAC;AAAA,IACA,YAAAC;AAAA,IACA,SAAAC;AAAA,IACA,WAAAC;AAAA,EACF;AAAA,EAEA,OAAO;AAAA,IACL,MAAM;AAAA,IACN,OAAO;AAAA,EACT;AAAA,EAEA,OAAO;AAAA,IACL,YAAY;AAAA,MACV,MAAM;AAAA,MACN,SAAS;AAAA,IACX;AAAA,IAEA,SAAS;AAAA,MACP,MAAM;AAAA,MACN,SAAS,MAAM,CAAC;AAAA,IAClB;AAAA,IAEA,WAAW;AAAA,MACT,MAAM;AAAA,MACN,SAAS;AAAA,IACX;AAAA,IAEA,QAAQ;AAAA,MACN,MAAM;AAAA,MACN,SAAS,MAAMtI,GAAQ;AAAA,IACzB;AAAA,IAEA,OAAO;AAAA,MACL,MAAM;AAAA,MACN,SAAS;AAAA,IACX;AAAA,IAEA,aAAa;AAAA,MACX,MAAM;AAAA,MACN,SAAS;AAAA,IACX;AAAA,IAEA,MAAM;AAAA,MACJ,MAAM;AAAA,MACN,SAAS;AAAA,IACX;AAAA,IAEA,OAAO;AAAA,MACL,MAAM,CAAC,QAAQ,OAAO;AAAA,MACtB,SAAS;AAAA,IACX;AAAA,IAEA,UAAU;AAAA,MACR,MAAM;AAAA,MACN,SAAS;AAAA,IACX;AAAA,IAEA,UAAU;AAAA,MACR,MAAM;AAAA,MACN,SAAS;AAAA,IACX;AAAA,EACF;AAAA,EAEA,OAAO;AAAA,IACL;AAAA,IAEA;AAAA,IACA;AAAA,IAEA;AAAA,IACA;AAAA,EACF;AAAA,EAEA,QAAQ;AAAA,IACN;AAAA,IACA;AAAA,EACF;AAAA,EAEA,MAAMuI,GAAOC,GAAS;AACpB,QAAIvD,IAASwD;AACb,UAAMC,IAAaC,KACbC,IAAaD,KAGbE,IAAOF,KAEPG,IAAcH,KACdI,IAAeJ,KACfK,IAAgBL,KAChBM,IAAiBN,KACjBO,IAAmBP,KACnBQ,IAAUR,KAGVS,IAAWT,EAA+B;AAAA,MAC9C,MAAM;AAAA,MACN,QAAQ;AAAA,MACR,WAAW;AAAA,MACX,QAAQ;AAAA,MACR,YAAY;AAAA,MACZ,aAAa;AAAA,MACb,MAAM;AAAA,MACN,WAAW;AAAA,MACX,MAAM;AAAA,MACN,MAAM;AAAA,MACN,WAAW;AAAA,MACX,YAAY;AAAA,MACZ,MAAM;AAAA,MACN,QAAQ;AAAA,IAAA,CACT,GAEKU,IAAYV,EAAaJ,EAAM,SAAS,GACxCe,IAAgB,CAAC,GAAG,GAAG,GAAG,CAAC,GAC3BC,IAAqBZ,EAAY,CAAC,GAClCa,IAAiBb,EAAY,EAAE,GAC/Bc,IAAkBd,EAAa,EAAK,GAGpCe,IAAkBf,EAAa,EAAK,GACpCgB,IAAOhB,EAAY,EAAE,GACrB/B,IAAO+B,EAAY,EAAE,GAErBiB,KAAyBjB,EAAY,CAAC,GACtCkB,KAAclB,EAAY,EAAE,GAE5B,EAAE,UAAAmB,OAAaC;AAEjB,QAAAC,KAA2BC,GAAavB,GAAY;AAAA,MACtD,eAAe;AAAA,MACf,mBAAmB;AAAA,IAAA,CACpB;AAGiB,IAAAwB,GAAArB,GAAMsB,GAAc,CAACC,MAAY;;AAC3C,YAAAC,IAAQD,EAAQ,CAAC,GACjB,EAAE,OAAAE,EAAM,IAAID,EAAM;AACxB,UAAItB,EAAa,SAASH,EAAW,SAAS2B,GAAc,OAAO;AACjE,YAAIC,IAAe;AACnB,QAAAA,MAAgBlJ,KAAAT,IAAA+H,EAAW,MAAM,sBAAjB,gBAAA/H,EAAoC,sBAApC,gBAAAS,EAA0E,eAAc;AAElG,cAAAmJ,IAASH,IAAQE,IAAgB;AACvC,QAAAZ,GAAuB,QAAQ,KAAK,MAAMW,GAAc,QAAQE,CAAK;AAAA,MACvE;AAAA,IAAA,GACC,EAAE,CAAC,GAENC,GAAU,MAAM;AACP,MAAAzF,EAAA,QAAQ,IAAI0F,GAAO;AAAA,QACxB,UAAU,CAAC,EAAE,QAAA1F,QAAa;AACxB,UAAAoE,EAAU,QAAQ,IACDuB;AACX,gBAAAvD,IAAOpC,EAAO,WACd0E,IAAO1E,EAAO;AAChB,UAAAsD,EAAM,WAAW,cACnBiB,EAAe,QAAQzC,GAAU9B,EAAO,QAAQA,EAAO,SAAS,GAChE4F,EAAM,QAAQrB,EAAe,SAEvBqB,EAAA,QAAQlB,MAAS,KAAKA,IAAOtC;AAAA,QAEvC;AAAA,QACA,UAAU,CAAC,EAAE,QAAApC,QAAa;AACpB,UAAAsD,EAAM,WAAW,aACnBtD,EAAO,SAAS,WAAWmC,GAAYnC,EAAO,QAAQ4F,EAAM,KAAK,CAAC,IAElE5F,EAAO,SAAS,WAAW4F,EAAM,KAAe;AAAA,QAEpD;AAAA,QACA,QAAQtC,GAAO;AACL,UAAAC,EAAA,KAAK,SAASD,CAAK;AAAA,QAC7B;AAAA,QACA,OAAOA,GAAO;AACJ,UAAAC,EAAA,KAAK,QAAQD,CAAK;AAAA,QAC5B;AAAA,QACA,SAASG,EAAW;AAAA,QACpB,WAAWH,EAAM;AAAA,QACjB,kBAAkB;AAAA,QAClB,kBAAkB;AAAA,QAClB,YAAY;AAAA,UACVxD;AAAA,UACA+F,GAAW,UAAU;AAAA,YACnB,SAAS;AAAA,YACT,WAAW;AAAA,YACX,WAAW;AAAA,YACX,YAAY;AAAA,YACZ,aAAa;AAAA,YACb,YAAY;AAAA,UAAA,CACb;AAAA,UACDtF,GAAU,UAAU;AAAA,YAClB,gBAAgB;AAAA,cACd,OAAO;AAAA,YACT;AAAA,UAAA,CACD;AAAA,UACDC,GAAW,UAAU;AAAA,YACnB,gBAAgB;AAAA,cACd,OAAO;AAAA,YACT;AAAA,UAAA,CACD;AAAA,UACDE,GAAY,UAAU;AAAA,YACpB,gBAAgB;AAAA,cACd,OAAO;AAAA,YACT;AAAA,UAAA,CACD;AAAA,UACDG,GAAW,UAAU;AAAA,YACnB,gBAAgB;AAAA,cACd,OAAO;AAAA,YACT;AAAA,UAAA,CACD;AAAA,UACDiF,GAAQ,UAAU,EAAE,QAAQzB,EAAe,CAAA,EAAE,OAAO;AAAA,YAClD,QAAQA;AAAA,YACR,WAAW,EAAE,MAAAxE,GAAM,gBAAAkG,KAAkB;AAC5B,qBAAA;AAAA,gBACL,MAAMlG,EAAK,MAAM;AAAA,gBACjBmG,GAAgBD,GAAgB;AAAA,kBAC9B,OAAO,uBAAuBlG,EAAK,MAAM,KAAK;AAAA,gBAAA,CAC/C;AAAA,gBACD;AAAA,cAAA;AAAA,YAEJ;AAAA,UAAA,CACD;AAAA,UACDuB;AAAA,UACAC,GAAK,UAAU;AAAA,YACb,aAAa;AAAA,YACb,aAAa;AAAA,YACb,UAAU;AAAA,YACV,WAAW,CAAC,OAAO,UAAU,QAAQ,OAAO;AAAA,YAC5C,UAAU,CAAAK,MAAQ,eAAe,KAAKA,CAAI;AAAA,YAC1C,gBAAgB;AAAA,cACd,OAAO;AAAA,YACT;AAAA,UAAA,CACD;AAAA,UACDP;AAAA,UACA8E,GACG,UAAU;AAAA,YACT,aAAa3C,EAAM;AAAA,YACnB,kBAAkB;AAAA,UAAA,CACnB;AAAA,QACL;AAAA,QACA,aAAa;AAAA,UACX,YAAY;AAAA,YACV,OAAO;AAAA,UACT;AAAA,QACF;AAAA,QACA,cAAc;AAAA,UACZ,oBAAoB;AAAA,QACtB;AAAA,MAAA,CACD,GACgBqC,MACjBZ,GAAK,SAAS;AAAA,IAAA,CACf,GAEDmB,GAAgB,MAAM;;AACpB,OAAAtK,IAAAoE,EAAO,UAAP,QAAApE,EAAc;AAAA,IAAQ,CACvB,GAEDuK,GAAevC,GAAM,MAAM;AACzB,MAAAQ,EAAU,QAAQ,IAClBW,GAAK,WAAW;AAAA,IAAA,CACjB;AAGD,UAAMa,IAAQQ,EAAS;AAAA,MACrB,KAAK,MACI9C,EAAM;AAAA,MAGf,KAAK,CAAC+C,MAAU;AACN,QAAA9C,EAAA,KAAK,SAAS8C,CAAK,GACnB9C,EAAA,KAAK,qBAAqB8C,CAAK;AAAA,MACzC;AAAA,IAAA,CACD,GAEKC,KAAoBF,EAAS,MAC1B9C,EAAM,QAAQ,KAAK,EAAE,QAAQ,SAAS,CAC9C,GAEKiD,KAAwBH,EAAS,MAAM,CAACI,MACrCxL,GAAoBwL,CAA2C,CACvE,GAEKC,KAA+BL,EAAS,MAAM,CAACI,MAC5CvL,GAAuBuL,CAA2C,CAC1E,GAEKE,KAAcN,EAAS,MACvB9B,EAAmB,SAASH,EAAS,MAAM,UACtC,WAAWG,EAAmB,KAAK,KAErC,kBACR,GAEKgB,KAAgBc,EAAS,MACtB9C,EAAM,QAAQ,KAAA,EAAO,MAC7B,GAEKqD,KAAkBP,EAAS,MAAmB;AAClD,YAAMZ,IAAQb,GAAuB,OAC/BiC,IAAUtD,EAAM,QAAQ,KAAK;AAC/B,UAAAuD,IAAa,IAAI,IAAID,EAAQ,MAAMA,EAAQ,SAASpB,GAAOoB,EAAQ,MAAM,CAAC;AACxE,aAAAtD,EAAA,QAAQ,QAAQ,CAASwD,MAAA;AAC7B,QAAIA,EAAM,KAAK,CAAAN,MAAQK,EAAW,IAAIL,CAAI,CAAC,KACzCM,EAAM,QAAQ,CAAAN,MAAQK,EAAW,IAAIL,CAAI,CAAC;AAAA,MAC5C,CACD,GACMK;AAAA,IAAA,CACR,GAGKE,KAAoB,MAAM;;AACb,MAAApB,MACjBvB,EAAU,QAAQ,KACXxI,IAAAoE,EAAA,UAAA,QAAApE,EAAO,SAAS,SACvB0I,EAAmB,UAAQhI,KAAAD,IAAA2D,EAAO,UAAP,gBAAA3D,EAAc,cAAc,eAA5B,gBAAAC,EAAwC,UAAS;AAAA,IAAA,GAGxE0K,KAAY,CAACX,MACbxB,GAAS,QAAc,KAEvBoC,GAAQZ,CAAK,IAER,CADuBA,EAAM,KAAK,CAAAG,MAAQG,GAAgB,MAAM,IAAIH,CAAI,CAAC,IAG3E,CAACG,GAAgB,MAAM,IAAIN,CAAK,GAGnCa,KAAc,CAACC,MAAsB;;AAEzC,YAAMd,IADSc,EAAM,OACA;AACd,OAAA9K,IAAA2D,EAAA,UAAA,QAAA3D,EAAO,SAAS,WAAW8F,IAAYvG,IAAAoE,EAAO,UAAP,gBAAApE,EAAc,QAAQyK,CAAK,IAC1D9B,EAAA,QAAQzC,IAAUxF,IAAA0D,EAAO,UAAP,gBAAA1D,EAAc,SAAQC,IAAAyD,EAAO,UAAP,gBAAAzD,EAAc,SAAS,GAC9EqJ,EAAM,QAAQrB,EAAe;AAAA,IAAA,GAGzB6C,KAAqB,CAACZ,GAAca,MAAmB;;AAC3D,cAAQb,GAAM;AAAA,QACZ,KAAK;AACa,UAAAhC,EAAA,QAAQ,CAACA,EAAgB,OAC7BI,GAAA,QAAQ9C,IAAUlG,IAAAoE,EAAO,UAAP,gBAAApE,EAAc,SAAQS,IAAA2D,EAAO,UAAP,gBAAA3D,EAAc,SAAS,IAE/DE,IAAAsH,EAAA,UAAA,QAAAtH,EAAO,MAAM,YAAY,UAAU,KAAGD,IAAAmH,EAAW,UAAX,gBAAAnH,EAAkB,iBAAgB,EAAE,OAEtFgL,GAAS,MAAA;;AAAM,oBAAA1L,IAAAiI,EAAY,UAAZ,gBAAAjI,EAAmB;AAAA,WAAO;AACzC;AAAA,QACF,KAAK;AAAA,QACL,KAAK;AACM,UAAA4K,MAAA,gBAAehK,IAAAwD,EAAO,UAAP,QAAAxD,EAAc,SAAS,sBAAqBC,IAAAuD,EAAO,UAAP,QAAAvD,EAAc,SAAS;AAC3F;AAAA,QACF,KAAK;AACH,cAAIuD,EAAO,OAAO;AAChB,kBAAMuH,MAAiB7K,IAAAsD,EAAO,UAAP,gBAAAtD,EAAc,MAAM,UAAU,QAAQ,QAAO,GAC9D,EAAE,MAAA8K,IAAM,IAAAC,IAAI,OAAAC,OAAU1H,EAAO,MAAO,MAAM,WAC1C2H,MAAShL,IAAAqD,EAAO,MAAO,KAAK,MAAM,IAAI,OAAOuH,CAAc,MAAlD,gBAAA5K,EAAqD,MAAM,OAAO,CAAC2E,OAASA,GAAK,KAAK,SAAS,SACxGsG,KAAcD,MAAA,QAAAA,GAAQ,YAAS/K,IAAAoD,EAAO,MAAO,KAAK,MAAM,IAAI,OAAOuH,CAAc,MAAlD,gBAAA3K,EAAqD,SAAQ;AAE7F,YAAA8H,EAAA,QAAQgD,KAAQE,KAAc5H,EAAO,MAAO,MAAM,IAAI,YAAYwH,IAAMC,IAAI,GAAG,GACpF9F,EAAK,QAAQ3B,EAAO,MAAO,cAAc,MAAM,EAAE,QAAQ;AAAA,UAC3D;AACgB,UAAAyE,EAAA,QAAQ,CAACA,EAAgB;AACzC;AAAA,QACF,KAAK;AACH,WAAA5H,IAAAmD,EAAO,UAAP,QAAAnD,EAAc,QAAQ,mBAAmB;AACzC;AAAA,QACF,KAAK;AACH,UAAKsH,EAAS,MAAM,aAGX0D,IAAA7H,EAAA,UAAA,QAAA6H,EAAO,SAAS,QAAQ,gBAF/BC,IAAA9H,EAAO,UAAP,QAAA8H,EAAc,SAAS,QAAQtB,GAAM,EAAE,UAAU;AAInD;AAAA,QACF,KAAK;AACH,UAAKa,KAIH/C,EAAmB,QAAQ+C,IAC3BU,IAAA/H,EAAO,UAAP,QAAA+H,EAAc,SAAS,cAAc,EAAE,OAAAV,EAAuB,QAJvDW,IAAAhI,EAAA,UAAA,QAAAgI,EAAO,SAAS,gBACvB1D,EAAmB,QAAQ;AAK7B;AAAA,QACF,KAAK;AAAA,QACL,KAAK;AACM,UAAAkC,MAAA,UAASyB,KAAAjI,EAAO,UAAP,QAAAiI,GAAc,SAAS,UAASC,KAAAlI,EAAO,UAAP,QAAAkI,GAAc,SAAS;AACzE;AAAA,QACF,KAAK;AACH,UAAA3E,EAAQ,KAAK,aAAa;AAC1B;AAAA,QACF;AACE,WAAA4E,KAAAnI,EAAO,UAAP,QAAAmI,GAAc,QAAQ,WAAW3B,GAAM;AACvC;AAAA,MACJ;AAAA,IAAA,GAGI4B,KAAa,YAAY;;AAEzB,MAAAzG,EAAK,UAAU,QACV/F,IAAAoE,EAAA,UAAA,QAAApE,EAAO,QAAQ,QAAQ,gBAAgB,QAAQ,YAAY;AAGpE,YAAMyM,KAAmBhM,IAAA2D,EAAO,UAAP,gBAAA3D,EAAc,MAAM,UAAU,OACjDkL,MAAiBjL,IAAA0D,EAAO,UAAP,gBAAA1D,EAAc,MAAM,UAAU,QAAQ,QAAO,GAE9DqL,KAASnL,KAAAD,IAAAyD,EAAO,UAAP,gBAAAzD,EAAc,KAAK,MAAM,IAAI,OAAOgL,OAApC,gBAAA/K,EAAqD,MAAM,OAAO,CAAC8E,MAASA,EAAK,KAAK,SAAS,SACxGsG,IAAcD,KAAA,QAAAA,EAAQ,UAASjL,KAAAD,IAAAuD,EAAO,UAAP,gBAAAvD,EAAc,KAAK,MAAM,IAAI,OAAO8K,OAApC,gBAAA7K,EAAqD,OAAO;AAEjG,MAAIiF,EAAK,SAAS0G,KAAoB,CAACT,OACrCjL,IAAAqD,EAAO,UAAP,QAAArD,EAAc,QACX,QACA,QAAQ,QAAQ;AAAA,QACf,MAAMgF,EAAK;AAAA,QACX,QAAQ;AAAA,MACT,GACA,QAAQ,CAAC,EAAE,IAAA7D,QAAS;AACnB,cAAMwK,KAAgB5D,EAAK,MAAMA,EAAK,MAAM,SAAS,CAAC,MAAM,MAAMA,EAAK,QAAQ,GAAGA,EAAK,KAAK;AAC5F,eAAA5G,EAAG,WAAWwK,EAAa,GACpB;AAAA,MAAA,GAER,QAGD3G,EAAK,SAASiG,MAAgBlD,EAAK,SAAS2D,OAC9CzL,IAAAoD,EAAO,UAAP,QAAApD,EAAc,QACX,gBAAgB,QAChB,iBAAiB,QAAQ;AAAA,QACxB,MAAM+E,EAAK;AAAA,MAAA,GAEZ,QAGDA,EAAK,SAAS+C,EAAK,UAAUkD,KAAe,CAACS,OAC/CN,KAAA/H,EAAO,UAAP,QAAA+H,GAAc,QACX,QACA,gBAAgB;AAAA,QACf,OAAMlL,IAAAmD,EAAO,UAAP,gBAAAnD,EAAc,MAAM,UAAU;AAAA,QACpC,KAAIiL,IAAA9H,EAAO,UAAP,gBAAA8H,EAAc,MAAM,UAAU;AAAA,MAAA,GACjCpD,EAAK,OACP,iBAAiB;AAAA,QAChB,OAAMmD,IAAA7H,EAAO,UAAP,gBAAA6H,EAAc,MAAM,UAAU;AAAA,QACpC,MAAIG,KAAAhI,EAAO,UAAP,gBAAAgI,GAAc,MAAM,UAAU,QAAOtD,EAAK,MAAM;AAAA,MAAA,GAErD,QAAQ,QAAQ;AAAA,QACf,MAAM/C,EAAK;AAAA,QACX,QAAQ;AAAA,MAAA,GAET,QAGDA,EAAK,SAAS,CAAC0G,OACjBJ,KAAAjI,EAAO,UAAP,QAAAiI,GAAc,QACX,QACA,QAAQ,QAAQ;AAAA,QACf,MAAMtG,EAAK;AAAA,QACX,QAAQ;AAAA,MAAA,GAET,QAGL+C,EAAK,QAAQ,IACb/C,EAAK,QAAQ,IAEb8C,EAAgB,QAAQ;AAAA,IAAA,GAGpB8D,KAAc,MAAM;AACxB,MAAA9D,EAAgB,QAAQ;AAAA,IAAA,GAGpBkB,KAAmB,MAAM;AAEjB,MADQrC,EAAM,QAAQ,KAAK,EAC3B,QAAQ,CAACkD,MAAS;;AAC5B,QAAIA,MAAS,WACFrC,EAAA,MAAMqC,CAAI,IAAIhC,EAAgB,QAEvCL,EAAS,MAAMqC,CAAI,MAAI5K,IAAAoE,EAAO,UAAP,gBAAApE,EAAc,SAAS4K,OAAS;AAAA,MACzD,CACD;AAAA,IAAA;AAKG,IAAAgC,GAAA;AAAA,MACJxI;AAAA,MACA4F;AAAA,MACA,MAAMtC,EAAM;AAAA,IAAA,GACX,CAAC;AAAA,MACFtD;AAAAA,MACA4F;AAAAA,MACA6C;AAAA,IAAA,MACI;AACJ,MAAI7C,OAAU5F,KAAAA,gBAAAA,EAAQ,cAAasD,EAAM,WAAW,eAClDtD,KAAAA,QAAAA,EAAQ,SAAS,WAAW4F,KAG1BA,MAAUrB,EAAe,SAASjB,EAAM,WAAW,eACrDtD,KAAAA,QAAAA,EAAQ,SAAS,WAAWmC,GAAYnC,KAAAA,gBAAAA,EAAQ,QAAQ4F,CAAK,KAG/D5F,KAAAA,QAAAA,EAAQ,YAAY,CAACyI;AAAA,IAAQ,CAC9B;AAGK,UAAAC,KAAatC,EAAS,MAAM;AAAA,MAChC;AAAA,MACA,GAAGuC;AAAAA,IAAO,CACX,GAEKC,KAAgBxC,EAAS,MAAM;AAAA,MACnC,GAAGyC;AAAAA,IAAO,CACX,GAEKC,KAAqB1C,EAAS,MAAM;AAAA,MACxC,GAAG2C;AAAAA,IAAO,CACX,GAEKC,KAAgB5C,EAAS,MAAM;AAAA,MACnC;AAAA,MACA,GAAG6C;AAAAA,IAAO,CACX;AAEM,WAAA;AAAA,MACL,MAAArF;AAAA,MACA,YAAA8E;AAAA,MAEA,YAAA/E;AAAA,MACA,eAAAiF;AAAA,MAEA,oBAAAE;AAAA,MAEA,YAAArF;AAAA,MACA,eAAAuF;AAAA,MAEA,QAAAhJ;AAAA,MACA,cAAA8D;AAAA,MACA,kBAAAG;AAAA,MACA,eAAAF;AAAA,MACA,aAAAF;AAAA,MACA,gBAAAG;AAAA,MACA,SAAAE;AAAA,MACA,oBAAAkD;AAAA,MACA,mBAAAL;AAAA,MACA,UAAA5C;AAAA,MACA,uBAAAoC;AAAA,MACA,8BAAAE;AAAA,MACA,mBAAAH;AAAA,MACA,eAAAjC;AAAA,MACA,aAAAqC;AAAA,MACA,YAAA0B;AAAA,MACA,aAAAG;AAAA,MACA,iBAAA9D;AAAA,MACA,MAAAC;AAAA,MACA,MAAA/C;AAAA,MACA,WAAAyC;AAAA,MACA,WAAA4C;AAAA,MACA,UAAAnC;AAAA,MACA,wBAAAF;AAAA,MACA,iBAAAgC;AAAA,MACA,aAAAO;AAAA,MACA,OAAAtB;AAAA,MACA,iBAAApB;AAAA,MACA,aAAAI;AAAA,MACA,oBAAAN;AAAA,IAAA;AAAA,EAEJ;AACF,CAAC,sBAttBW4E,KAAK,CAAA,UAAA;;uBAuFLC,KAAK,EAAE,OAAA;;;;;;4MAnKjBC,EAmMM,SAAA;SAjMEC,EAAY,GAAAC,EAAA,OAAA;AAAA,IAAA,KAAA;AAAA,IAEF,OAAAC,EAAgBC,EAAO,UAAA;AAAA,EAAA,GAAA;AAAA,wDAElBC,EAAAC,GAAA;AAAA,MAChB,KAAA;AAAA,MACA,SAAQ;AAAA,MAAA,UAAAF,EAAA;AAAA,MAMQ,UAAKA,EAAA;AAAA,IAAA,GAAA;AAAA;QAFfG,GAAAH,EAAA,QAAA,SAAA,CAAA,GAAA,QAAA,EAAA;AAAA,MAAA,CAAA;AAAA;;;;;;IAQX,GAAA,GAAA,CAAA,YA0Ea,gBAzEVI,EAAmB,IAAA,EAAA;AAAA,IAAAC,EACdC,GAAM;AAAA,MACX,KAAA;AAAA,MACA,OAAO;AAAA,MACP,WAAU;AAAA,MACV,SAAK,CAAA,CAAAN,EAAA;AAAA,MAAA,UAAAA,EAAA;AAAA,MAgDA,SAAAO,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA,CAAAC,MAAAR,EAAA;IAAA,GAAA;AAAA,eA7CES,EAAY,MAAA;AAAA,QAAAC,EACZ,OAAE;AAAA,UACP,KAAA;AAAA,UAAA,OAAAX,EAAAC,EAAA,aAAA;AAAA,UAED,UAAAA,EAAA,YAAA,CAAAA,EAAA;AAAA,QAAA,GAAA;AAAA,aAEQ,EAAK,GAAAF,EAAAa,IAAA,MAAAC,GAAAZ,EAAA,SAAA,CAAA1C,GAAAtF,OACL6H,EAAM,GAAAC,EAAA,OAAA;AAAA,YACX,KAAA9H;AAAA,YAAA,OAAA+H,EAAA,CAAA,GAAAC,EAAA,oBAAA,EAAA,QAAA,CAAAA,EAAA,UAAA1C,CAAA,EAAA,CAAA,CAAA;AAAA,YAED,UAAA0C,EAAA,YAAA,CAAAA,EAAA;AAAA,UAAA,GAAA;AAAA,eAEQ,EAAI,GAAAF,EAAAa,IAAA,MAAAC,GAAAtD,GAAA,CAAAN,OACJ6C,EAAA,GAAAC,EAAA,OAAA;AAAA,cAAA,KAAA9C;AAAA,cAGM,OAAA+C,EAAA,CAAA,eAAA,EAAA,QAAA,CAAAC,EAAA,UAAAhD,CAAA,EAAA,CAAA,CAAA;AAAA,YAAA,GAAA;AAAA;gBACT,KAAK;AAAA,gBACL,SAAI;AAAA,gBACJ,KAAA;AAAA,gBACA,MAAA,EAAQ,MAAEgD,EAAa,aAAA,SAAA,UAAA;AAAA,gBACvB,SAAQ,EAAE,SAAQhD,GAAA,WAAK,MAAS;AAAA,gBAChC,UAAKgD,EAAA,SAAAhD,CAAA;AAAA,gBAAA,UAAAgD,EAAA,YAAA,CAAAA,EAAA;AAAA,gBAIK,SAAAO,EAAU,CAAI,MAAAA,EAAA,CAAA,IAAA,CAAAC,MAAAR,EAAA,WAAAA,EAAA,QAAA,OAAA;AAAA,cAAA,GAD3B,MAAA,GAAA,CAAA,QAAA,WAOE,YALK,UAAA,CAAA,KAAAA,EAAA,UAAAhD,CAAA,KAAA6C,EAAA,GAAAI,EAAUY,GAA0B;AAAA,gBACxC,KAAA;AAAA,gBACA,MAAA,EAAQ,MAAEb,EAAa,sBAAAhD,CAAA,GAAA,SAAA,UAAA;AAAA,gBACvB,SAAQ,EAAE,SAAAgD,EAAQ,6BAAchD,CAAA,GAAA,WAAA,MAAA;AAAA,gBAChC,UAAKgD,EAAE,SAAAhD,CAAA;AAAA,gBAAA,UAAAgD,EAAA,YAAA,CAAAA,EAAA;AAAA;;;UAMN,GAAA,IAAAN,EAAA,EAAA,GAAA,GAAA;AAAA,8DACeO,EAAAY,GAAA;AAAA,YACpB,KAAK;AAAA,YACL,KAAI;AAAA,YACJ,SAAkB,CAAK,OAAA,CAAA;AAAA,YACvB,MAAA,EAAA,MAAW,cAAE,SAAc,UAAI;AAAA,YAC/B,UAAKb,EAAA,YAAA,CAAAA,EAAA;AAAA,YAAA,eAAAA,EAAA,kBAAAA,EAAA,eAAA,UAAA,SAAA,UAAA;AAAA;UAIV,GAAA,MAAA,GAAA,CAAA,YAAA,aAAA,CAAA,KAAAI,EAiBM,IAjBN,EAAA;AAAA,QAAA,GAAA,IAAAU,EAAA;AAAA,UAGU,OAAaC,IAAA;AAAA,UAAAC,GAAAN,EAAA,YAAA;AAAA,YAElB,KAAA;AAAA,YACD,uBAAMH,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA,CAAAC,MAAAR,EAAA,cAAAQ;AAAA,YACL,WAAKR,EAAA;AAAA,YAAA,OAAA;AAAA,qBALEO,EAAe,CAAA,MAAAA,EAAA,CAAA,IAAA,IAAAU,MAAAjB,EAAA,eAAAA,EAAA,YAAA,GAAAiB,CAAA;AAAA,UAAA,GAEd,MAAA,IAAAC,EAAA,GAAA;AAAA,YAAA,CAAAC,IAAAnB,EAAA,eAAA;AAAA,YAMX,CAAAoB,IAAApB,EAAA,WAAA;AAAA,UAAA,CAAA;AAAA,UAGQgB,GAAAN,EAAE,OAAa;AAAA,YAAA,KAAA;AAAA,qBAFZV,EAAe,aAAA;AAAA,UAAA,GAAA,MAAA,CAAA,GAAA;AAAA,YAK1B,CAAqBmB,IAAA,CAAAnB,EAAA,eAAA;AAAA,UAAA,CAAA;AAAA;;;MAIT,GAAA;AAAA,IAAA,GAAA,GAAA,CAAA,WAAA,UAAA,CAAA;AAAA,kCAGDH,EAAQ,GAAAI,EAAAoB,GAAA;AAAA,MAAA,KAAA;AAAA;;;;;;;;;;IAYV,CAAA,IAAAjB,EAAA,IAAA,EAAA;AAAA,IAAHY,GAAAX,EAAAiB,GAAA,EAAA,UAAAtB,EAAA,YAAA;AAAA,MAAA,SAAAS,EAAA,MAAA;AAAA;;;;MAIF,CAAaU,IAAA,OAAAnB,EAAA,SAAA,YAAAA,EAAA,MAAA,SAAA,CAAA;AAAA,IAAA,CAAA;AAAA,4BACGC,EAAAsB,GAAA;AAAA,MACrB,KAAA;AAAA,MACA,KAAA;AAAA,MAAA,SAAAvB,EAAA,iBAAAA,EAAA,cAAA;AAAA;;MAGC,SAAAS,EAAA,MAAA;AAAA,QAOEC,EAAA,OAAAf,IAAA;AAAA,WAAAE,EALM,EAAI,GAAAC,EAAAa,IAAA,MAAAC,GAAAZ,EAAA,iBAAA,CAAAhD,OACL6C,EAAA,GAAoCI,EAAAY,GAAA;AAAA,YACxC,KAAA7D;AAAA,YACA,MAAA,EAAQ,MAAEgD,EAAa,sBAAAhD,CAAA,GAAA,SAAA,UAAA;AAAA,YACvB,SAAK,WAAEgD,EAAuB,6BAAAhD,CAAA,GAAA,WAAA,MAAA;AAAA,YAAA,UAAAgD,EAAA,SAAAhD,CAAA;AAAA;;;;;IAM7B,GAAA,GAAA,CAAA,SAAA,CAAA,KAAAoD,EADR,IAqBS,EAAA;AAAA,IAAAJ,EAAA,oBAAAH,KAnBQI,EAAAuB,GAAA;AAAA,MACd,KAAA;AAAA,MACA,KAAA;AAAA,MAAA,SAAAxB,EAAA,iBAAAA,EAAA,iBAAA,KAAAA,EAAA,iBAAAA,EAAA,iBAAA,EAAA;AAAA;;;WAIO,EAAO,GAAAF,EAAAa,IAAA,MAAAC,GAAAZ,EAAA,eAAA,CAAAyB,OACZ5B,EAAA,KAA4B6B,GAAY;AAAA,UACxC,KAAAD;AAAA,UAAA,UAAAzB,EAAA,uBAAAyB;AAAA,UAEO,SAAA,CAAAjB,MAAAR,EAAA,mBAAA,WAAAyB,CAAA;AAAA,QAAA,GAAA;AAAA;;;;QAQG,GAAA,MAAA,CAAA,YAAA,SAAA,CAAA,EAJV,GAAA,GAAA;AAAA,QACKpB,EAAAqB,GAAA;AAAA,UAAA,UAAA,CAAA1B,EAAA;AAAA,UAGR,SAAAO,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA,CAAAC,MAAAR,EAAA,mBAAA,SAAA;AAAA,QAAA,GAAA;AAAA;;;;;;;IAGF,GAAA,GAAA,CAAA,SAuCU,MAtCPI,EAAS,IAAA,EAAA;AAAA,IACAC,EAAAsB,GAAA;AAAA,MAAA,WAAA3B,EAAA;AAAA,MAEO,MAAM;AAAA,IAAA,GAAA;AAAA;QAkBN4B,EAeT,YAAA;AAAA,MAAA,CAAA;AAAA,cAbJnB,EAKW,MAAA;AAAA,QAAAC,EAJC,OAAWmB,IAAA;AAAA,UACfxB,EAAAyB,GAAA;AAAA,YAAA,SAAA;AAAA,YAGR,SAAAvB,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA,CAAAC,MAAAR,EAAA;UAAA,GAAA;AAAA;;;YAEA,GAAA;AAAA,UAAA,CAAA;AAAA,UAEQK,EAAAyB,GAAA;AAAA,YAAA,SAAA;AAAA,YAGR,SAAAvB,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA,CAAAC,MAAAR,EAAA;UAAA,GAAA;AAAA;;;;;;;eA3BFS,EAIE,MAAA;AAAA,QAAAC,EAHS,OAAIqB,IAAA;AAAA,UAAA1B,EAAA2B,GAAA;AAAA,YACZ,YAAOhC,EAAM;AAAA,YACb,uBAAaO,EAAY,CAAA,MAAAA,EAAA,CAAA,IAAA,CAAAC,MAAAR,EAAA,OAAAQ;AAAA,YAAA,OAAA;AAAA,YAG5B,aAIE;AAAA,UAHa,GAAA,MAAA,GAAA,CAAA,YAAA,CAAA;AAAA,UAAAH,EAAA2B,GAAA;AAAA,YACZ,YAAOhC,EAAM;AAAA,YACb,uBAAaO,EAAY,CAAA,MAAAA,EAAA,CAAA,IAAA,CAAAC,MAAAR,EAAA,OAAAQ;AAAA,YAAA,OAAA;AAAA;;;;;;;;;"}
1
+ {"version":3,"file":"OrRichTextEditor-BstyuaKN.mjs","sources":["../../../components/or-rich-text-editor-v3/src/props.ts","../../../components/or-rich-text-editor-v3/src/styles.ts","../../../components/or-rich-text-editor-v3/src/utils/codemirror/theme.ts","../../../components/or-rich-text-editor-v3/src/utils/codemirror/codemirrorView.ts","../../../components/or-rich-text-editor-v3/src/utils/codemirror/codemirrorNode.ts","../../../components/or-rich-text-editor-v3/src/utils/markdown.ts","../../../components/or-rich-text-editor-v3/src/OrRichTextEditor.vue"],"sourcesContent":["export enum Formats {\n Markdown = 'markdown',\n Markup = 'markup',\n}\n\nexport type Tools = string[][]; // TODO: Improve this type\n\nexport enum RichTextEditorIcons {\n bold = 'format_bold',\n italic = 'format_italic',\n underline = 'format_underlined',\n strike = 'format_strikethrough',\n bulletList = 'format_list_bulleted',\n orderedList = 'format_list_numbered',\n link = 'link',\n highlight = 'highlight',\n redo = 'redo',\n undo = 'undo',\n codeBlock = 'code_blocks',\n blockquote = 'format_quote',\n file = 'attach_file',\n source = 'source_notes',\n}\n\nexport enum RichTextEditorTooltips {\n bold = 'Bold',\n italic = 'Italic',\n underline = 'Underline',\n strike = 'Strike',\n bulletList = 'Bulleted List',\n orderedList = 'Numbered List',\n link = 'Link',\n highlight = 'Highlight',\n redo = 'Redo',\n undo = 'Undo',\n codeBlock = 'Code Block',\n blockquote = 'Quote',\n file = 'File',\n source = 'Source',\n}\n","export const RichTextEditor: string[] = [\n // Layout\n 'layout-column',\n\n // Spacing\n 'gap-xs',\n\n // Box\n 'max-h-full',\n];\n\nexport const RichTextEditorToolbar: string[] = [\n // Layout\n 'layout-row',\n\n // Overflow\n 'overflow-x-scroll md:overflow-x-hidden',\n 'scrollbar-hidden',\n\n // Spacing\n 'px-0',\n 'py-sm',\n\n // Theme\n 'border-b-1',\n\n 'theme-border-outline',\n 'dark:theme-border-outline-dark',\n];\n\nexport const RichTextEditorToolbarGroup: string[] = [\n // Layout\n 'layout-row',\n\n // Spacing\n 'px-sm',\n 'py-0',\n\n 'gap-md',\n\n // Theme\n 'theme-foreground-outline',\n 'dark:theme-foreground-outline-dark',\n\n 'border-e-1 last:border-e-0',\n\n 'theme-border-outline',\n 'dark:theme-border-outline-dark',\n];\n\nexport const RichTextEditorControl: string[] = [\n // Typography\n 'typography-body-2-regular',\n\n // Size\n 'h-full',\n];\n","import { HighlightStyle, syntaxHighlighting } from '@codemirror/language';\nimport { EditorView } from '@codemirror/view';\nimport { tags as t } from '@lezer/highlight';\n\n// Using https://github.com/one-dark/vscode-one-dark-theme/ as reference for the colors\n\nimport { useTheme } from '@onereach/ui-components-common/hooks';\n\nconst themes = useTheme();\n\nconst chalky = themes?.backgroundColor['custom-colors-custom-6'],\n coral = themes?.backgroundColor['custom-colors-custom-1'],\n cyan = themes?.backgroundColor['custom-colors-custom-3'],\n invalid = themes?.backgroundColor?.white,\n ivory = themes?.backgroundColor['custom-colors-custom-6'],\n stone = themes?.backgroundColor['custom-colors-custom-5'], // Brightened compared to original to increase contrast\n malibu = themes?.backgroundColor['custom-colors-custom-3'],\n sage = themes?.backgroundColor.success,\n whiskey = themes?.backgroundColor.warning,\n violet = themes?.backgroundColor['custom-colors-custom-1'];\n // darkBackground = themes?.colors?.neutral?.[100],\n // highlightBackground = themes?.colors?.neutral?.[200],\n // background = themes?.colors?.neutral?.[100],\n // tooltipBackground = themes?.colors?.neutral?.[200],\n // selection = themes?.colors?.blue?.[100],\n // cursor = themes?.colors?.blue?.[700];\n\n/// The colors used in the theme, as CSS color strings.\nexport const color = {\n chalky,\n coral,\n cyan,\n invalid,\n ivory,\n stone,\n malibu,\n sage,\n whiskey,\n violet,\n // darkBackground,\n // highlightBackground,\n // background,\n // tooltipBackground,\n // selection,\n // cursor,\n};\n\n/// The editor theme styles for One Dark.\nexport const orCodeTheme = EditorView.theme({\n '&': {\n color: ivory,\n backgroundColor: themes?.backgroundColor?.['bg-primary-container'],\n },\n\n '.cm-editor': {\n border: 'none',\n borderRadius: themes?.spacing?.xs,\n },\n\n '&.cm-focused': {\n outline: 'none',\n },\n\n '.cm-scroller': {\n borderRadius: themes?.spacing?.xs,\n },\n\n '.cm-content': {\n // caretColor: cursor,\n },\n\n '.cm-button': {\n // background: highlightBackground,\n // color: themes?.colors?.neutral?.[600],\n border: 0,\n borderRadius: themes?.spacing?.xs,\n },\n\n '.cm-panel.cm-search input[type=checkbox]': {\n display: 'inline-block',\n verticalAlign: 'middle',\n },\n\n // '.cm-cursor, .cm-dropCursor': { borderLeftColor: cursor },\n '&.cm-focused .cm-selectionBackground, .cm-selectionBackground, .cm-content ::selection': {\n // backgroundColor: selection,\n },\n\n '.cm-panels': {\n // backgroundColor: darkBackground,\n color: ivory,\n },\n // '.cm-panels.cm-panels-top': { borderBottom: `2px solid ${themes?.colors?.neutral?.[200]}` },\n // '.cm-panels.cm-panels-bottom': { borderTop: `2px solid ${themes?.colors?.neutral?.[200]}` },\n\n '.cm-searchMatch': {\n // backgroundColor: themes?.colors?.neutral?.[100],\n // outline: `1px solid ${themes?.colors?.neutral?.[200]}`,\n },\n\n '.cm-searchMatch.cm-searchMatch-selected': {\n // backgroundColor: themes?.colors?.sky?.[100],\n },\n\n '.cm-activeLine': {\n backgroundColor: themes?.backgroundColor?.['bg-secondary-container'],\n },\n\n // '.cm-selectionMatch': { backgroundColor: themes?.colors?.lime?.[500] },\n\n '&.cm-focused .cm-matchingBracket, &.cm-focused .cm-nonmatchingBracket': {\n // backgroundColor: themes?.colors?.lime?.[600],\n },\n\n '.cm-gutters': {\n backgroundColor: themes?.backgroundColor?.['primary-opacity-0-12'],\n color: stone,\n border: 'none',\n },\n\n '.cm-lineNumbers .cm-gutterElement': {\n paddingLeft: themes?.spacing?.['sm+*'],\n paddingRight: themes?.spacing?.['sm+*'],\n },\n\n '.cm-activeLineGutter': {\n backgroundColor: themes?.backgroundColor?.['primary-opacity-0-16'],\n },\n\n '.cm-foldPlaceholder': {\n backgroundColor: 'transparent',\n border: 'none',\n // color: themes?.colors?.neutral?.[200],\n },\n\n '.cm-tooltip': {\n border: 'none',\n // backgroundColor: tooltipBackground,\n },\n '.cm-tooltip .cm-tooltip-arrow:before': {\n borderTopColor: 'transparent',\n borderBottomColor: 'transparent',\n },\n '.cm-tooltip .cm-tooltip-arrow:after': {\n // borderTopColor: tooltipBackground,\n // borderBottomColor: tooltipBackground,\n },\n '.cm-tooltip-autocomplete': {\n '& > ul > li[aria-selected]': {\n // backgroundColor: highlightBackground,\n color: ivory,\n },\n },\n '.cm-textfield': {\n outline: 'none',\n // background: background,\n // color: themes?.colors?.neutral?.[600],\n // backgroundColor: themes?.colors?.neutral?.[100],\n // border: `1px solid ${themes?.colors?.neutral?.[200]}`,\n borderRadius: themes?.spacing?.xs,\n },\n}, { dark: true });\n\n/// The highlighting style for code in the One Dark theme.\nexport const orCodeHighlightStyle = HighlightStyle.define([\n {\n tag: t.keyword,\n color: violet,\n },\n {\n tag: [t.name, t.deleted, t.character, t.propertyName, t.macroName],\n color: coral,\n },\n {\n tag: [t.function(t.variableName), t.labelName],\n color: malibu,\n },\n {\n tag: [t.color, t.constant(t.name), t.standard(t.name)],\n color: whiskey,\n },\n {\n tag: [t.definition(t.name), t.separator],\n color: ivory,\n },\n {\n tag: [t.typeName, t.className, t.number, t.changed, t.annotation, t.modifier, t.self, t.namespace],\n color: chalky,\n },\n {\n tag: [t.operator, t.operatorKeyword, t.url, t.escape, t.regexp, t.link, t.special(t.string)],\n color: cyan,\n },\n {\n tag: [t.meta, t.comment],\n color: stone,\n },\n {\n tag: t.strong,\n fontWeight: 'bold',\n },\n {\n tag: t.emphasis,\n fontStyle: 'italic',\n },\n {\n tag: t.strikethrough,\n textDecoration: 'line-through',\n },\n {\n tag: t.link,\n color: stone,\n textDecoration: 'underline',\n },\n {\n tag: t.heading,\n fontWeight: 'bold',\n color: coral,\n },\n {\n tag: [t.atom, t.bool, t.special(t.variableName)],\n color: whiskey,\n },\n {\n tag: [t.processingInstruction, t.string, t.inserted],\n color: sage,\n },\n {\n tag: t.invalid,\n color: invalid,\n },\n]);\n\n/// Extension to enable the One Dark theme (both the editor theme and\n/// the highlight style).\nconst theme = [orCodeTheme, syntaxHighlighting(orCodeHighlightStyle)];\n\nexport default theme;\n","import { EditorState as CMState, Transaction as CMTransaction, Extension } from '@codemirror/state';\nimport {\n Command,\n EditorView as CMView,\n keymap,\n highlightActiveLine,\n highlightActiveLineGutter,\n lineNumbers,\n} from '@codemirror/view';\nimport { exitCode } from 'prosemirror-commands';\nimport { Node as ProsemirrorNode } from 'prosemirror-model';\nimport { Selection, TextSelection } from 'prosemirror-state';\nimport { EditorView, NodeView } from 'prosemirror-view';\n\nimport orCodeTheme from './theme';\nimport { ComputeChange, CodeMirrorViewOptions } from './types';\n\nconst computeChange = (oldVal: string, newVal: string): ComputeChange | null => {\n if (oldVal === newVal) {\n return null;\n }\n\n let start = 0;\n let oldEnd = oldVal.length;\n let newEnd = newVal.length;\n\n while (start < oldEnd && oldVal.charCodeAt(start) === newVal.charCodeAt(start)) {\n start += 1;\n }\n\n while (oldEnd > start && newEnd > start && oldVal.charCodeAt(oldEnd - 1) === newVal.charCodeAt(newEnd - 1)) {\n oldEnd -= 1;\n newEnd -= 1;\n }\n\n return {\n from: start,\n to: oldEnd,\n text: newVal.slice(start, newEnd),\n };\n};\n\nclass CodeMirrorView implements NodeView {\n name: string;\n\n node: ProsemirrorNode;\n\n view: EditorView;\n\n dom: HTMLElement;\n\n cm: CMView;\n\n getPos: () => number;\n\n updating = false;\n\n constructor(options: CodeMirrorViewOptions) {\n // Store for later\n this.node = options.node;\n this.view = options.view;\n const cmExtensions = options.cmOptions?.extensions || [];\n this.name = 'codeBlock',\n\n this.getPos = options.getPos as () => number;\n\n const changeFilter = CMState.changeFilter.of((tr) => {\n if (!tr.docChanged && !this.updating) {\n this.forwardSelection();\n }\n return true;\n });\n\n // Create a CodeMirror instancew\n this.cm = new CMView({\n dispatch: this.dispatch.bind(this),\n });\n\n // The editor's outer node is our DOM representation\n this.dom = this.cm.dom;\n\n const cmState = CMState.create({\n doc: this.node.textContent,\n extensions: [\n orCodeTheme as Extension,\n changeFilter,\n highlightActiveLine(),\n highlightActiveLineGutter(),\n lineNumbers(),\n keymap.of([\n {\n key: 'ArrowUp',\n run: this.mayBeEscape('line', -1),\n },\n {\n key: 'ArrowLeft',\n run: this.mayBeEscape('char', -1),\n },\n {\n key: 'ArrowDown',\n run: this.mayBeEscape('line', 1),\n },\n {\n key: 'ArrowRight',\n run: this.mayBeEscape('char', 1),\n },\n {\n key: 'Ctrl-Enter',\n run: () => {\n if (exitCode(this.view.state, this.view.dispatch)) {\n this.view.focus();\n return true;\n }\n return false;\n },\n },\n ]),\n cmExtensions,\n ],\n });\n\n this.cm.setState(cmState);\n }\n\n forwardSelection() {\n if (!this.cm.hasFocus) {\n return;\n }\n\n const { state } = this.view;\n const selection = this.asProseMirrorSelection(state.doc);\n\n if (!selection.eq(state.selection)) {\n this.view.dispatch(state.tr.setSelection(selection));\n }\n }\n\n asProseMirrorSelection(doc: ProsemirrorNode) {\n const offset = this.getPos() + 1;\n const { anchor, head } = this.cm.state.selection.main;\n return TextSelection.create(doc, anchor + offset, head + offset);\n }\n\n dispatch(cmTr: CMTransaction) {\n this.cm.setState(cmTr.state);\n\n if (cmTr.docChanged && !this.updating) {\n const start = this.getPos() + 1;\n\n const cmValue = cmTr.state.doc.toString();\n const change = computeChange(this.node.textContent, cmValue);\n\n if (!change) {\n return;\n }\n\n const content = change.text ? this.view.state.schema.text(change.text) : null;\n\n const tr = this.view.state.tr.replaceWith(change.from + start, change.to + start, content as ProsemirrorNode);\n this.view.dispatch(tr);\n this.forwardSelection();\n }\n }\n\n mayBeEscape(unit: 'char' | 'line', dir: -1 | 1): Command {\n return (view) => {\n const { state } = view;\n const { selection } = state;\n\n const offsetToPos = () => {\n const offset = selection.main.from;\n const line = state.doc.lineAt(offset);\n return {\n line: line.number,\n ch: offset - line.from,\n };\n };\n\n const pos = offsetToPos();\n const hasSelection = state.selection.ranges.some((r) => !r.empty);\n\n const firstLine = 1;\n const lastLine = state.doc.lineAt(state.doc.length).number;\n\n if (\n hasSelection\n || pos.line !== (dir < 0 ? firstLine : lastLine)\n || (unit === 'char' && pos.ch !== (dir < 0 ? 0 : state.doc.line(pos.line).length))\n ) {\n return false;\n }\n\n const targetPos = this.getPos() + (dir < 0 ? 0 : this.node.nodeSize);\n const pmSelection = Selection.near(this.view.state.doc.resolve(targetPos), dir);\n this.view.dispatch(this.view.state.tr.setSelection(pmSelection).scrollIntoView());\n this.view.focus();\n return true;\n };\n }\n\n update(node: ProsemirrorNode) {\n if (node.type !== this.node.type) {\n return false;\n }\n\n this.node = node;\n const change = computeChange(this.cm.state.doc.toString(), node.textContent);\n\n if (change) {\n this.updating = true;\n this.cm.dispatch({\n changes: {\n from: change.from,\n to: change.to,\n insert: change.text,\n },\n });\n this.updating = false;\n }\n\n return true;\n }\n\n setSelection(anchor: number, head: number): void {\n this.focus();\n this.updating = true;\n this.cm.dispatch({\n selection: {\n anchor,\n head,\n },\n });\n this.updating = false;\n }\n\n focus() {\n this.cm.focus();\n this.forwardSelection();\n }\n\n selectNode() {\n this.focus();\n }\n\n stopEvent() {\n return true;\n }\n\n destroy() {\n this.cm.destroy();\n }\n}\n\nexport default CodeMirrorView;\n","import { javascript } from '@codemirror/lang-javascript';\nimport { Node } from '@tiptap/core';\nimport { minimalSetup } from 'codemirror';\n\nimport CodeBlockView from './codemirrorView';\n\nexport default Node.create({\n name: 'codeBlock',\n content: 'text*',\n marks: '',\n group: 'block',\n code: true,\n defining: true,\n isolating: true,\n\n parseHTML() {\n return [\n {\n tag: 'pre',\n preserveWhitespace: 'full',\n },\n ];\n },\n\n renderHTML() {\n return ['pre', ['code', 0]];\n },\n\n addNodeView() {\n return ({ node, editor, getPos }) => {\n return new CodeBlockView({\n node,\n view: editor.view,\n getPos: getPos as () => number,\n cmOptions: {\n extensions: [minimalSetup, javascript()],\n },\n });\n };\n },\n});\n","import Blockquote from '@tiptap/extension-blockquote';\nimport Bold from '@tiptap/extension-bold';\nimport BulletList from '@tiptap/extension-bullet-list';\nimport CodeBlock from '@tiptap/extension-code-block';\nimport HardBreak from '@tiptap/extension-hard-break';\nimport Highlight from '@tiptap/extension-highlight';\nimport HorizontalRule from '@tiptap/extension-horizontal-rule';\nimport Italic from '@tiptap/extension-italic';\nimport Link from '@tiptap/extension-link';\nimport ListItem from '@tiptap/extension-list-item';\nimport OrderedList from '@tiptap/extension-ordered-list';\nimport Paragraph from '@tiptap/extension-paragraph';\nimport Strike from '@tiptap/extension-strike';\nimport Underline from '@tiptap/extension-underline';\nimport { marked } from 'marked';\nimport {\n MarkdownSerializer as ProseMirrorMarkdownSerializer,\n defaultMarkdownSerializer,\n} from 'prosemirror-markdown';\nimport { DOMParser as ProseMirrorDOMParser, Node, Mark } from 'prosemirror-model';\n\nconst mdSerializerNodes = {\n ...defaultMarkdownSerializer.nodes,\n [Paragraph.name]: defaultMarkdownSerializer.nodes.paragraph,\n [BulletList.name]: defaultMarkdownSerializer.nodes.bullet_list,\n [ListItem.name]: defaultMarkdownSerializer.nodes.list_item,\n [OrderedList.name]: defaultMarkdownSerializer.nodes.ordered_list,\n [HardBreak.name]: defaultMarkdownSerializer.nodes.hard_break,\n [CodeBlock.name]: defaultMarkdownSerializer.nodes.code_block,\n [Blockquote.name]: defaultMarkdownSerializer.nodes.blockquote,\n [HorizontalRule.name]: defaultMarkdownSerializer.nodes.horizontal_rule,\n};\n\nconst mdSerializerMarks = {\n ...defaultMarkdownSerializer.marks,\n [Bold.name]: defaultMarkdownSerializer.marks.strong,\n [Strike.name]: {\n open: '~~',\n close: '~~',\n mixable: true,\n expelEnclosingWhitespace: true,\n },\n [Italic.name]: {\n open: ' _',\n close: '_ ',\n mixable: true,\n expelEnclosingWhitespace: true,\n },\n [Highlight.name]: {\n open: '==',\n close: '==',\n mixable: true,\n expelEnclosingWhitespace: true,\n },\n [Underline.name]: {\n open: '<u>',\n close: '</u>',\n mixable: true,\n expelEnclosingWhitespace: true,\n },\n [Link.name]: {\n open(state: any, mark: Mark, parent: Node, index: number) {\n return isPlainURL(mark, parent, index, 1) ? '<' : '[';\n },\n close(state: any, mark: Mark, parent: Node, index: number) {\n const href = mark.attrs.canonicalSrc || mark.attrs.href;\n\n return isPlainURL(mark, parent, index, -1)\n ? '>'\n : `](${state.esc(href)}${\n mark.attrs.title ? ` ${state.quote(mark.attrs.title)}` : ''\n })`;\n },\n },\n};\n\nfunction isPlainURL(link: Mark, parent: Node, index: number, side: number) {\n if (link.attrs.title || !/^\\w+:/.test(link.attrs.href)) return false;\n const content = parent.child(index + (side < 0 ? -1 : 0));\n if (\n !content.isText ||\n content.text !== link.attrs.href ||\n content.marks[content.marks.length - 1] !== link\n )\n return false;\n if (index === (side < 0 ? 1 : parent.childCount - 1)) return true;\n const next = parent.child(index + (side < 0 ? -2 : 1));\n return !link.isInSet(next.marks);\n}\n\nexport function serialize(schema: any, content: any) {\n const mdSerializer = new ProseMirrorMarkdownSerializer(\n mdSerializerNodes,\n mdSerializerMarks,\n );\n\n const proseMirrorDocument = schema.nodeFromJSON(content);\n\n return mdSerializer.serialize(proseMirrorDocument, { tightLists: true });\n}\n\nexport function deserialize(schema: any, content?: string) {\n if (!content) return null;\n const html = marked.parse(content);\n\n if (!html) return null;\n\n const parser = new DOMParser();\n const { body } = parser.parseFromString(html, 'text/html');\n\n // append original source as a comment that nodes can access\n body.append(document.createComment(content));\n\n const state = ProseMirrorDOMParser.fromSchema(schema).parse(body);\n return state.toJSON();\n}\n\n","<template>\n <div\n :ref=\"'root'\"\n :class=\"rootStyles\"\n >\n <template v-if=\"$slots.label || $slots.addon || label\">\n <OrLabel\n :variant=\"'input'\"\n :required=\"required\"\n :disabled=\"disabled\"\n >\n <slot name=\"label\">\n {{ label }}\n </slot>\n\n <template v-slot:addon>\n <slot name=\"addon\" />\n </template>\n </OrLabel>\n </template>\n\n <OrInputBox\n :ref=\"'containerRef'\"\n class=\"grow\"\n :direction=\"'column'\"\n :invalid=\"!!error\"\n :disabled=\"disabled\"\n @click=\"handleEditorClick()\"\n >\n <div\n :ref=\"'toolbarRef'\"\n :class=\"toolbarStyles\"\n :disabled=\"disabled || !isFocused\"\n >\n <div\n v-for=\"(tools, index) in toolbar\"\n :key=\"index\"\n :class=\"[...toolbarGroupStyles, { 'hidden': !isVisible(tools)}]\"\n :disabled=\"disabled || !isFocused\"\n >\n <div\n v-for=\"item in tools\"\n :key=\"item\"\n :class=\"['flex gap-md', { 'hidden': !isVisible(item)}]\"\n >\n <OrIconButton\n v-if=\"item === 'heading'\"\n :ref=\"'toolbarButtonRef'\"\n :icon=\"{ icon: headingIcon, variant: 'inherit' }\"\n :tooltip=\"{ content: item, placement: 'top' }\"\n :selected=\"isActive[item]\"\n :disabled=\"disabled || !isFocused\"\n @click=\"menuRef && menuRef.toggle()\"\n />\n\n <OrIconButton\n v-else-if=\"isVisible(item)\"\n :icon=\"{ icon: getRichTextEditorIcon(item), variant: 'inherit' }\"\n :tooltip=\"{ content: getRichTextEditorTooltipIcon(item), placement: 'top' }\"\n :selected=\"isActive[item]\"\n :disabled=\"disabled || !isFocused\"\n @click=\"handleToolbarClick(item)\"\n />\n </div>\n </div>\n\n <OrIconButton\n v-if=\"countOfNotVisibleTools > 0 && !isMobile\"\n :ref=\"'moreButtonRef'\"\n :class=\"['mx-sm']\"\n :icon=\"{ icon: 'more_horiz', variant: 'inherit' }\"\n :disabled=\"disabled || !isFocused\"\n :force-state=\"morePopoverRef && morePopoverRef.state === 'open' ? 'hover' : undefined\"\n @click=\"morePopoverRef && morePopoverRef.open()\"\n />\n </div>\n\n <div :class=\"['p-sm', 'overflow-auto', 'min-h-[88px]', 'h-full']\">\n <textarea\n v-show=\"disableMarkdown\"\n :ref=\"'textareaRef'\"\n v-model=\"sourceValue\"\n :activated=\"disableMarkdown\"\n class=\"block w-full h-full resize-none border-none outline-none bg-transparent typography-body-2-regular\"\n @input=\"handleInput\"\n />\n\n <div\n v-show=\"!disableMarkdown\"\n :ref=\"'controlRef'\"\n :class=\"controlStyles\"\n />\n\n <slot name=\"files\" />\n </div>\n </OrInputBox>\n\n <template v-if=\"$slots.hint || hint\">\n <OrHint\n v-show=\"!error\"\n :disabled=\"disabled\"\n >\n <slot name=\"hint\">\n {{ hint }}\n </slot>\n </OrHint>\n </template>\n\n <OrError\n v-show=\"typeof error === 'string' && error.length > 0\"\n :disabled=\"disabled\"\n >\n {{ error }}\n </OrError>\n\n <OrPopover\n v-if=\"moreButtonRef\"\n :ref=\"'morePopoverRef'\"\n :trigger=\"moreButtonRef && moreButtonRef.root\"\n :placement=\"'top-end'\"\n >\n <div class=\"flex p-sm gap-md\">\n <OrIconButton\n v-for=\"item in notVisibleTools\"\n :key=\"item\"\n :icon=\"{ icon: getRichTextEditorIcon(item), variant: 'inherit' }\"\n :tooltip=\"{ content: getRichTextEditorTooltipIcon(item), placement: 'top' }\"\n :selected=\"isActive[item]\"\n @click=\"handleToolbarClick(item)\"\n />\n </div>\n </OrPopover>\n\n <OrMenu\n v-if=\"toolbarButtonRef\"\n :ref=\"'menuRef'\"\n :trigger=\"toolbarButtonRef[getIndexOfHeading] && toolbarButtonRef[getIndexOfHeading].root\"\n :placement=\"'bottom-start'\"\n >\n <OrMenuItem\n v-for=\"heading in headingLevels\"\n :key=\"heading\"\n :selected=\"activeHeadingLevel === heading\"\n @click=\"handleToolbarClick('heading', heading)\"\n >\n Heading {{ heading }}\n </OrMenuItem>\n\n <OrMenuItem\n :selected=\"!activeHeadingLevel\"\n @click=\"handleToolbarClick('heading')\"\n >\n None\n </OrMenuItem>\n </OrMenu>\n\n <OrModal\n :is-open=\"isOpenLinkModal\"\n :size=\"'s'\"\n >\n <template v-slot:header>\n Add Link\n </template>\n\n <div :class=\"['layout-column', 'gap-md']\">\n <OrInput\n v-model=\"text\"\n :label=\"'Text'\"\n :placeholder=\"'Enter text'\"\n />\n\n <OrInput\n v-model=\"link\"\n :label=\"'Link'\"\n :placeholder=\"'Enter link'\"\n />\n </div>\n\n <template v-slot:footer>\n <div :class=\"['layout-row-reverse', 'gap-md']\">\n <OrButton\n :variant=\"'contained'\"\n @click=\"attachLink()\"\n >\n Save\n </OrButton>\n\n <OrButton\n :variant=\"'outlined'\"\n @click=\"discardLink()\"\n >\n Cancel\n </OrButton>\n </div>\n </template>\n </OrModal>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { useResponsive } from '@onereach/ui-components-common/hooks';\nimport { isArray } from '@onereach/ui-components-common/utils';\nimport { OrButtonV3 as OrButton } from '@onereach/ui-components.or-button-v3';\nimport { OrErrorV3 as OrError } from '@onereach/ui-components.or-error-v3';\nimport { OrHintV3 as OrHint } from '@onereach/ui-components.or-hint-v3';\nimport { OrIconButtonV3 as OrIconButton } from '@onereach/ui-components.or-icon-button-v3';\nimport { OrInputBoxV3 as OrInputBox } from '@onereach/ui-components.or-input-box-v3';\nimport { OrInputV3 as OrInput } from '@onereach/ui-components.or-input-v3';\nimport { OrLabelV3 as OrLabel } from '@onereach/ui-components.or-label-v3';\nimport { OrMenuItemV3 as OrMenuItem } from '@onereach/ui-components.or-menu-item-v3';\nimport { OrMenuV3 as OrMenu } from '@onereach/ui-components.or-menu-v3';\nimport { OrModalV3 as OrModal } from '@onereach/ui-components.or-modal-v3';\nimport { OrPopoverV3 as OrPopover } from '@onereach/ui-components.or-popover-v3';\nimport { Editor, mergeAttributes } from '@tiptap/core';\nimport Blockquote from '@tiptap/extension-blockquote';\nimport BulletList from '@tiptap/extension-bullet-list';\nimport Heading, { Level } from '@tiptap/extension-heading';\nimport Highlight from '@tiptap/extension-highlight';\nimport Link from '@tiptap/extension-link';\nimport OrderedList from '@tiptap/extension-ordered-list';\nimport Paragraph from '@tiptap/extension-paragraph';\nimport Placeholder from '@tiptap/extension-placeholder';\nimport Underline from '@tiptap/extension-underline';\nimport StarterKit from '@tiptap/starter-kit';\nimport { onClickOutside, useDebounceFn, useResizeObserver } from '@vueuse/core';\nimport { UseFocusTrapReturn, useFocusTrap } from '@vueuse/integrations/useFocusTrap';\nimport { ComponentPublicInstance, PropType, computed, defineComponent, nextTick, onBeforeUnmount, onMounted, ref, shallowRef, watch } from 'vue';\n\nimport { Formats, Tools, RichTextEditorIcons, RichTextEditorTooltips } from './props';\nimport * as Styles from './styles';\nimport codemirrorNode from './utils/codemirror/codemirrorNode';\nimport { deserialize, serialize } from './utils/markdown';\n\nexport default defineComponent({\n name: 'OrRichTextEditor',\n\n components: {\n OrButton,\n OrError,\n OrHint,\n OrIconButton,\n OrInput,\n OrInputBox,\n OrLabel,\n OrMenu,\n OrMenuItem,\n OrModal,\n OrPopover,\n },\n\n model: {\n prop: 'modelValue',\n event: 'update:modelValue',\n },\n\n props: {\n modelValue: {\n type: String,\n default: undefined,\n },\n\n toolbar: {\n type: Array as PropType<Tools>,\n default: () => [],\n },\n\n autofocus: {\n type: Boolean,\n default: false,\n },\n\n format: {\n type: String as PropType<`${Formats}`>,\n default: () => Formats.Markup,\n },\n\n label: {\n type: String,\n default: undefined,\n },\n\n placeholder: {\n type: String,\n default: undefined,\n },\n\n hint: {\n type: String,\n default: undefined,\n },\n\n error: {\n type: [String, Boolean],\n default: undefined,\n },\n\n required: {\n type: Boolean,\n default: false,\n },\n\n disabled: {\n type: Boolean,\n default: false,\n },\n },\n\n emits: [\n 'update:modelValue',\n\n 'input',\n 'file-upload',\n\n 'focus',\n 'blur',\n ],\n\n expose: [\n 'root',\n 'editor',\n ],\n\n setup(props, context) {\n let editor = shallowRef<Editor>();\n const controlRef = ref<HTMLDivElement>();\n const toolbarRef = ref<ComponentPublicInstance<HTMLInputElement>>();\n\n // Refs & Styles\n const root = ref<HTMLElement>();\n\n const textareaRef = ref<HTMLTextAreaElement>();\n const containerRef = ref<ComponentPublicInstance<HTMLInputElement>>();\n const moreButtonRef = ref<InstanceType<typeof OrIconButton>>();\n const morePopoverRef = ref<InstanceType<typeof OrPopover>>();\n const toolbarButtonRef = ref<InstanceType<typeof OrIconButton>>();\n const menuRef = ref<InstanceType<typeof OrMenu>>();\n\n // isActive should be set with default values for all toolbar buttons, otherwise it will not work in vue2\n const isActive = ref<{[key: string]: boolean;}>({\n bold: false,\n italic: false,\n underline: false,\n strike: false,\n bulletList: false,\n orderedList: false,\n link: false,\n highlight: false,\n redo: false,\n undo: false,\n codeBlock: false,\n blockquote: false,\n file: false,\n source: false,\n });\n\n const isFocused = ref<boolean>(props.autofocus);\n const headingLevels = [1, 2, 3, 4] as Level[];\n const activeHeadingLevel = ref<number>(0);\n const markdownOutput = ref<string>('');\n const disableMarkdown = ref<boolean>(false);\n\n // Attach link modal\n const isOpenLinkModal = ref<boolean>(false);\n const text = ref<string>('');\n const link = ref<string>('');\n\n const countOfNotVisibleTools = ref<number>(0);\n const sourceValue = ref<string>('');\n\n const { isMobile } = useResponsive();\n\n let trap: UseFocusTrapReturn = useFocusTrap(controlRef, {\n fallbackFocus: '.container',\n allowOutsideClick: true,\n });\n\n\n useResizeObserver(root, useDebounceFn((entries) => {\n const entry = entries[0];\n const { width } = entry.contentRect;\n if (containerRef.value && toolbarRef.value && toolbarLength.value) {\n let lengthOfItem = 0;\n lengthOfItem = (toolbarRef.value.firstElementChild?.firstElementChild as HTMLDivElement)?.offsetWidth + 16;\n\n const count = (width / lengthOfItem) - 2;\n countOfNotVisibleTools.value = Math.round(toolbarLength.value - count);\n }\n }, 10));\n\n onMounted(() => {\n editor.value = new Editor({\n onUpdate: ({ editor }) => {\n isFocused.value = true;\n setActiveFormats();\n const html = editor.getHTML();\n const text = editor.getText();\n if (props.format === 'markdown') {\n markdownOutput.value = serialize(editor.schema, editor.getJSON());\n model.value = markdownOutput.value;\n } else {\n model.value = text === '' ? text : html;\n }\n },\n onCreate: ({ editor }) => {\n if (props.format === 'markdown') {\n editor.commands.setContent(deserialize(editor.schema, model.value));\n } else {\n editor.commands.setContent(model.value as string);\n }\n },\n onFocus(props) {\n context.emit('focus', props);\n },\n onBlur(props) {\n context.emit('blur', props);\n },\n element: controlRef.value,\n autofocus: props.autofocus,\n enableInputRules: true,\n enablePasteRules: true,\n extensions: [\n codemirrorNode,\n StarterKit.configure({\n heading: false,\n codeBlock: false,\n paragraph: false,\n bulletList: false,\n orderedList: false,\n blockquote: false,\n }),\n Paragraph.configure({\n HTMLAttributes: {\n class: 'or-cm-paragraph my-xs',\n },\n }),\n BulletList.configure({\n HTMLAttributes: {\n class: 'or-cm-bulletList mx-lg my-xs list-disc',\n },\n }),\n OrderedList.configure({\n HTMLAttributes: {\n class: 'or-cm-orderedList mx-lg my-xs list-decimal',\n },\n }),\n Blockquote.configure({\n HTMLAttributes: {\n class: 'or-cm-blockquote my-sm mx-lg px-lg border-l-2 border-outline',\n },\n }),\n Heading.configure({ levels: headingLevels }).extend({\n levels: headingLevels,\n renderHTML({ node, HTMLAttributes }) {\n return [\n 'h' + node.attrs.level,\n mergeAttributes(HTMLAttributes, {\n class: `typography-headline-${node.attrs.level} my-xs`,\n }),\n 0,\n ];\n },\n }),\n Underline,\n Link.configure({\n openOnClick: true,\n linkOnPaste: true,\n autolink: false,\n protocols: ['ftp', 'mailto', 'http', 'https'],\n validate: href => /^https?:\\/\\//.test(href),\n HTMLAttributes: {\n class: 'or-cm-link text-primary cursor-pointer',\n },\n }),\n Highlight,\n Placeholder\n .configure({\n placeholder: props.placeholder,\n emptyEditorClass: 'or-cm-placeholder text-outline is-editor-empty',\n }),\n ],\n editorProps: {\n attributes: {\n class: 'or-cm-editorProps flex flex-col focus:outline-none gap-xs h-full',\n },\n },\n parseOptions: {\n preserveWhitespace: true,\n },\n });\n setActiveFormats();\n trap.activate();\n });\n\n onBeforeUnmount(() => {\n editor.value?.destroy();\n });\n\n onClickOutside(root, () => {\n isFocused.value = false;\n trap.deactivate();\n });\n\n // Computed\n const model = computed({\n get: () => {\n return props.modelValue;\n },\n\n set: (value) => {\n context.emit('input', value);\n context.emit('update:modelValue', value);\n },\n });\n\n const getIndexOfHeading = computed(() => {\n return props.toolbar.flat().indexOf('heading');\n });\n\n const getRichTextEditorIcon = computed(() => (item: string) => {\n return RichTextEditorIcons[item as keyof typeof RichTextEditorTooltips];\n });\n\n const getRichTextEditorTooltipIcon = computed(() => (item: string) => {\n return RichTextEditorTooltips[item as keyof typeof RichTextEditorTooltips];\n });\n\n const headingIcon = computed(() => {\n if (activeHeadingLevel.value && isActive.value.heading) {\n return `format_h${activeHeadingLevel.value}`;\n }\n return 'format_paragraph';\n });\n\n const toolbarLength = computed(() => {\n return props.toolbar.flat().length;\n });\n\n const notVisibleTools = computed((): Set<string> => {\n const count = countOfNotVisibleTools.value;\n const toolbar = props.toolbar.flat();\n let notVisible = new Set(toolbar.slice(toolbar.length - count, toolbar.length));\n props.toolbar.forEach(tools => {\n if (tools.some(item => notVisible.has(item))) {\n tools.forEach(item => notVisible.add(item));\n }\n });\n return notVisible;\n });\n\n //Methods\n const handleEditorClick = () => {\n setActiveFormats();\n isFocused.value = true;\n editor.value?.commands.focus();\n activeHeadingLevel.value = editor.value?.getAttributes('heading')?.level || 0;\n };\n\n const isVisible = (value: string | Array<string>) => {\n if (isMobile.value) return true;\n\n if (isArray(value)) {\n const isHaveNotVisibleTools = value.some(item => notVisibleTools.value.has(item));\n return !isHaveNotVisibleTools;\n }\n return !notVisibleTools.value.has(value);\n };\n\n const handleInput = (event: InputEvent) => {\n const target = event.target as HTMLTextAreaElement;\n const value = target.value;\n editor.value?.commands.setContent(deserialize(editor.value?.schema, value));\n markdownOutput.value = serialize(editor.value?.schema, editor.value?.getJSON());\n model.value = markdownOutput.value;\n };\n\n const handleToolbarClick = (item: string, level?: number) => {\n switch (item) {\n case 'source':\n disableMarkdown.value = !disableMarkdown.value;\n sourceValue.value = serialize(editor.value?.schema, editor.value?.getJSON());\n\n textareaRef.value?.style.setProperty('height', `${controlRef.value?.offsetHeight || 88}px`);\n\n nextTick(() => textareaRef.value?.focus());\n break;\n case 'bulletList':\n case 'orderedList':\n item === 'bulletList' ? editor.value?.commands.toggleBulletList() : editor.value?.commands.toggleOrderedList();\n break;\n case 'link':\n if (editor.value) {\n const cursorPosition = editor.value?.state.selection.$anchor.pos || 0;\n const { from, to, empty } = editor.value!.state.selection;\n const isLink = editor.value!.view.state.doc.nodeAt(cursorPosition)?.marks.filter((mark) => mark.type.name === 'link');\n const existedText = isLink?.length ? editor.value!.view.state.doc.nodeAt(cursorPosition)?.text || '' : '';\n\n text.value = empty ? existedText : editor.value!.state.doc.textBetween(from, to, ' ');\n link.value = editor.value!.getAttributes('link').href || '';\n }\n isOpenLinkModal.value = !isOpenLinkModal.value;\n break;\n case 'blockquote':\n editor.value?.chain().toggleBlockquote().run();\n break;\n case 'codeBlock':\n if (!isActive.value['codeBlock']) {\n editor.value?.commands.setNode(item, { language: 'javascript' });\n } else {\n editor.value?.commands.setNode('paragraph');\n }\n break;\n case 'heading':\n if (!level) {\n editor.value?.commands.setParagraph();\n activeHeadingLevel.value = 0;\n } else {\n activeHeadingLevel.value = level;\n editor.value?.commands.toggleHeading({ level: level as Level });\n }\n break;\n case 'undo':\n case 'redo':\n item === 'undo' ? editor.value?.commands.undo() : editor.value?.commands.redo();\n break;\n case 'file':\n context.emit('file-upload');\n break;\n default:\n editor.value?.chain().toggleMark(item).run();\n break;\n }\n };\n\n const attachLink = async () => {\n // empty\n if (link.value === '') {\n editor.value?.chain().focus().extendMarkRange('link').unsetLink().run();\n }\n\n const isEmptySelection = editor.value?.state.selection.empty;\n const cursorPosition = editor.value?.state.selection.$anchor.pos || 0;\n // Check if it's already link\n const isLink = editor.value?.view.state.doc.nodeAt(cursorPosition)?.marks.filter((mark) => mark.type.name === 'link');\n const existedText = isLink?.length ? editor.value?.view.state.doc.nodeAt(cursorPosition)?.text : '';\n\n if (link.value && isEmptySelection && !existedText) {\n editor.value?.chain()\n .focus()\n .setMark('link', {\n href: link.value,\n target: '__blank',\n })\n .command(({ tr }) => {\n const preparedValue = text.value[text.value.length - 1] === ' ' ? text.value : `${text.value} `;\n tr.insertText(preparedValue);\n return true;\n })\n .run();\n }\n\n if (link.value && existedText === text.value && isEmptySelection) {\n editor.value?.chain()\n .extendMarkRange('link')\n .updateAttributes('link', {\n href: link.value,\n })\n .run();\n }\n\n if (link.value && text.value !== existedText && !isEmptySelection) {\n editor.value?.chain()\n .focus()\n .insertContentAt({\n from: editor.value?.state.selection.from,\n to: editor.value?.state.selection.to,\n }, text.value)\n .setTextSelection({\n from: editor.value?.state.selection.from,\n to: editor.value?.state.selection.from + text.value.length,\n })\n .setMark('link', {\n href: link.value,\n target: '__blank',\n })\n .run();\n }\n\n if (link.value && !isEmptySelection) {\n editor.value?.chain()\n .focus()\n .setMark('link', {\n href: link.value,\n target: '__blank',\n })\n .run();\n }\n\n text.value = '';\n link.value = '';\n\n isOpenLinkModal.value = false;\n };\n\n const discardLink = () => {\n isOpenLinkModal.value = false;\n };\n\n const setActiveFormats = () => {\n const toolbarList = props.toolbar.flat() as string[];\n toolbarList.forEach((item) => {\n if (item === 'source') {\n isActive.value[item] = disableMarkdown.value;\n } else {\n isActive.value[item] = editor.value?.isActive(item) || false;\n }\n });\n };\n\n\n // Effects\n watch([\n editor,\n model,\n () => props.disabled,\n ], ([\n editor,\n model,\n disabled,\n ]) => {\n if (model !== editor?.getHTML() && props.format !== 'markdown') {\n editor?.commands.setContent(model as string);\n }\n\n if (model !== markdownOutput.value && props.format === 'markdown') {\n editor?.commands.setContent(deserialize(editor?.schema, model));\n }\n\n editor?.setEditable(!disabled);\n });\n\n // Styles\n const rootStyles = computed(() => [\n 'or-rich-text-editor-v3',\n ...Styles.RichTextEditor,\n ]);\n\n const toolbarStyles = computed(() => [\n ...Styles.RichTextEditorToolbar,\n ]);\n\n const toolbarGroupStyles = computed(() => [\n ...Styles.RichTextEditorToolbarGroup,\n ]);\n\n const controlStyles = computed(() => [\n 'tiptap-editor-v3',\n ...Styles.RichTextEditorControl,\n ]);\n\n return {\n root,\n rootStyles,\n\n toolbarRef,\n toolbarStyles,\n\n toolbarGroupStyles,\n\n controlRef,\n controlStyles,\n\n editor,\n containerRef,\n toolbarButtonRef,\n moreButtonRef,\n textareaRef,\n morePopoverRef,\n menuRef,\n handleToolbarClick,\n handleEditorClick,\n isActive,\n getRichTextEditorIcon,\n getRichTextEditorTooltipIcon,\n getIndexOfHeading,\n headingLevels,\n headingIcon,\n attachLink,\n discardLink,\n isOpenLinkModal,\n text,\n link,\n isFocused,\n isVisible,\n isMobile,\n countOfNotVisibleTools,\n notVisibleTools,\n handleInput,\n model,\n disableMarkdown,\n sourceValue,\n activeHeadingLevel,\n };\n },\n});\n</script>\n\n<style scoped lang=\"scss\">\n// Unavoidable hack for bundled (browser) build\n// Created by the fact that this is deep styles in editor\n// As far as we need scoping for browser builds, we can't rely on global existence of this classes\n:deep(.or-cm-paragraph) {\n @apply my-xs;\n}\n\n:deep(.or-cm-bulletList) {\n @apply mx-lg my-xs list-disc;\n}\n\n:deep(.or-cm-orderedList) {\n @apply mx-lg my-xs list-decimal;\n}\n\n:deep(.or-cm-blockquote) {\n @apply my-sm mx-lg px-lg border-l-2 border-outline;\n}\n\n:deep(.or-cm-link) {\n @apply text-primary cursor-pointer;\n}\n\n:deep(.or-cm-placeholder) {\n @apply text-outline;\n}\n\n:deep(.or-cm-editorProps) {\n @apply flex flex-col focus:outline-none gap-xs h-full;\n}\n</style>\n\n<style lang=\"scss\">\n.tiptap-editor-v3 {\n .is-editor-empty::before {\n float: left;\n height: 0;\n pointer-events: none;\n content: attr(data-placeholder);\n }\n}\n</style>\n"],"names":["Formats","RichTextEditorIcons","RichTextEditorTooltips","RichTextEditor","RichTextEditorToolbar","RichTextEditorToolbarGroup","RichTextEditorControl","themes","useTheme","chalky","coral","cyan","invalid","_a","ivory","stone","malibu","sage","whiskey","violet","orCodeTheme","EditorView","_b","_c","_d","_e","_f","_g","_h","_i","_j","orCodeHighlightStyle","HighlightStyle","t","theme","syntaxHighlighting","computeChange","oldVal","newVal","start","oldEnd","newEnd","CodeMirrorView","options","cmExtensions","changeFilter","CMState","tr","CMView","cmState","highlightActiveLine","highlightActiveLineGutter","lineNumbers","keymap","exitCode","state","selection","doc","offset","anchor","head","TextSelection","cmTr","cmValue","change","content","unit","dir","view","pos","line","hasSelection","r","firstLine","lastLine","targetPos","pmSelection","Selection","node","codemirrorNode","Node","editor","getPos","CodeBlockView","minimalSetup","javascript","mdSerializerNodes","defaultMarkdownSerializer","Paragraph","BulletList","ListItem","OrderedList","HardBreak","CodeBlock","Blockquote","HorizontalRule","mdSerializerMarks","Bold","Strike","Italic","Highlight","Underline","Link","mark","parent","index","isPlainURL","href","link","side","next","serialize","schema","mdSerializer","ProseMirrorMarkdownSerializer","proseMirrorDocument","deserialize","html","marked","parser","body","ProseMirrorDOMParser","_sfc_main","defineComponent","OrButton","OrError","OrHint","OrIconButton","OrInput","OrInputBox","OrLabel","OrMenu","OrMenuItem","OrModal","OrPopover","props","context","shallowRef","controlRef","ref","toolbarRef","root","textareaRef","containerRef","moreButtonRef","morePopoverRef","toolbarButtonRef","menuRef","isActive","isFocused","headingLevels","activeHeadingLevel","markdownOutput","disableMarkdown","isOpenLinkModal","text","countOfNotVisibleTools","sourceValue","isMobile","useResponsive","trap","useFocusTrap","useResizeObserver","useDebounceFn","entries","entry","width","toolbarLength","lengthOfItem","count","onMounted","Editor","setActiveFormats","model","StarterKit","Heading","HTMLAttributes","mergeAttributes","Placeholder","onBeforeUnmount","onClickOutside","computed","value","getIndexOfHeading","getRichTextEditorIcon","item","getRichTextEditorTooltipIcon","headingIcon","notVisibleTools","toolbar","notVisible","tools","handleEditorClick","isVisible","isArray","handleInput","event","handleToolbarClick","level","nextTick","cursorPosition","from","to","empty","isLink","existedText","_l","_k","_n","_m","_o","_p","_q","attachLink","isEmptySelection","preparedValue","discardLink","watch","disabled","rootStyles","Styles.RichTextEditor","toolbarStyles","Styles.RichTextEditorToolbar","toolbarGroupStyles","Styles.RichTextEditorToolbarGroup","controlStyles","Styles.RichTextEditorControl","_hoisted_2","_hoisted_5","_resolveComponent","_openBlock","_createElementBlock","_normalizeClass","_ctx","_createBlock","_component_OrLabel","_renderSlot","_createCommentVNode","_createVNode","_component_OrInputBox","_cache","$event","_withCtx","_createElementVNode","_Fragment","_renderList","_component_OrIconButton","_hoisted_1","_hoisted_3","_withDirectives","args","_hoisted_4","_vShow","_vModelText","_component_OrHint","_component_OrError","_component_OrPopover","_component_OrMenu","heading","_component_OrMenuItem","_component_OrModal","_createTextVNode","_hoisted_7","_component_OrButton","_hoisted_6","_component_OrInput"],"mappings":"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"}
@@ -9,7 +9,7 @@ import { C as g, O as G } from "../OrCard-7awJu_df.mjs";
9
9
  import { O as k } from "../OrCheckboxGroup-C76zxQ10.mjs";
10
10
  import { O as F } from "../OrCheckboxTree-D5Ejbly0.mjs";
11
11
  import { O as B } from "../OrCheckbox-WPBzlvaV.mjs";
12
- import { C as M, O as v } from "../OrCode-BLHj3vA6.mjs";
12
+ import { C as M, O as v } from "../OrCode-DaM9I3Ks.mjs";
13
13
  import { lintGutter as w, linter as A } from "@codemirror/lint";
14
14
  import { javascript as y } from "@codemirror/lang-javascript";
15
15
  import { json as _, jsonParseLinter as j } from "@codemirror/lang-json";
@@ -35,9 +35,9 @@ import { O as Va } from "../OrErrorTag-B35sZEF9.mjs";
35
35
  import { O as la } from "../OrError-B5ihH6-3.mjs";
36
36
  import { b as da, a as ca, E as Da, O as Ca } from "../OrExpansionPanel-CrGf7B-b.mjs";
37
37
  import { F as ua, O as ba } from "../OrFab-B2oDFwgM.mjs";
38
- import { O as Pa } from "../OrFilterPopover-DXO-6y8a.mjs";
38
+ import { O as Pa } from "../OrFilterPopover-Co1jgWWI.mjs";
39
39
  import { O as Ga } from "../OrFilterTrigger-BNVaoHrT.mjs";
40
- import { O as ka } from "../OrFilter-CYD-gDsX.mjs";
40
+ import { O as ka } from "../OrFilter-BmWBFFA7.mjs";
41
41
  import { F as Fa, a as ha, O as Ba } from "../OrFormGroup-CUNdt7UL.mjs";
42
42
  import { O as Ma } from "../OrHint-NvbZyURY.mjs";
43
43
  import { I as za, O as wa } from "../OrIconButton-Ds8k8FmS.mjs";
@@ -55,7 +55,7 @@ import { a as Do, O as Co } from "../OrList-B2rj_Y5Z.mjs";
55
55
  import { a as uo, b as bo, L as Io, O as Po } from "../OrLoader-2SaTMxmZ.mjs";
56
56
  import { O as Go } from "../OrMenuItem-VyCCXA7Z.mjs";
57
57
  import { O as ko } from "../OrMenu-Cag_fBXC.mjs";
58
- import { M as Fo, O as ho } from "../OrModal-DiVA7_Ct.mjs";
58
+ import { M as Fo, O as ho } from "../OrModal-Cu2s5mfW.mjs";
59
59
  import { N as Lo, O as Mo, V as vo } from "../OrNotification-BkjmRseb.mjs";
60
60
  import { O as wo } from "../OrOverlay-BzbAwvpo.mjs";
61
61
  import { O as No } from "../OrPagination-BXzDa-Su.mjs";
@@ -66,7 +66,7 @@ import { O as Zo } from "../OrRadio-BZN3fBLW.mjs";
66
66
  import { O as re } from "../OrRangeSlider-Cxhafo9S.mjs";
67
67
  import { O as oe, R as ee } from "../OrRating-CAwz23JA.mjs";
68
68
  import { O as se, R as Oe, a as ie } from "../OrResizeablePanel-D62tzOxs.mjs";
69
- import { F as me, O as ne, R as xe, a as Ve } from "../OrRichTextEditor-zb1kQ0es.mjs";
69
+ import { F as me, O as ne, R as xe, a as Ve } from "../OrRichTextEditor-BstyuaKN.mjs";
70
70
  import { O as le, R as Te } from "../OrRichTooltip-8ybIdsqK.mjs";
71
71
  import { O as ce } from "../OrSearch-B_YGTJN8.mjs";
72
72
  import { O as Ce, S as Se } from "../OrSegmentedControl-DfPHDw7E.mjs";
@@ -1,4 +1,4 @@
1
- import { C as t, O as e } from "../../OrCode-BLHj3vA6.mjs";
1
+ import { C as t, O as e } from "../../OrCode-DaM9I3Ks.mjs";
2
2
  import { lintGutter as m, linter as p } from "@codemirror/lint";
3
3
  import { javascript as i } from "@codemirror/lang-javascript";
4
4
  import { json as n, jsonParseLinter as s } from "@codemirror/lang-json";
@@ -1,4 +1,4 @@
1
- import { O as e } from "../../OrFilterPopover-DXO-6y8a.mjs";
1
+ import { O as e } from "../../OrFilterPopover-Co1jgWWI.mjs";
2
2
  export {
3
3
  e as OrFilterPopoverV3
4
4
  };
@@ -1,4 +1,4 @@
1
- import { O as o } from "../../OrFilter-CYD-gDsX.mjs";
1
+ import { O as o } from "../../OrFilter-BmWBFFA7.mjs";
2
2
  export {
3
3
  o as OrFilterV3
4
4
  };
@@ -1,4 +1,4 @@
1
- import { M as r, O as M } from "../../OrModal-DiVA7_Ct.mjs";
1
+ import { M as r, O as M } from "../../OrModal-Cu2s5mfW.mjs";
2
2
  export {
3
3
  r as ModalSize,
4
4
  M as OrModalV3
@@ -1,4 +1,4 @@
1
- import { F as i, O as r, R as s, a } from "../../OrRichTextEditor-zb1kQ0es.mjs";
1
+ import { F as i, O as r, R as s, a } from "../../OrRichTextEditor-BstyuaKN.mjs";
2
2
  export {
3
3
  i as Formats,
4
4
  r as OrRichTextEditorV3,
@@ -9,7 +9,7 @@ import { C as g, O as G } from "./OrCard-7awJu_df.mjs";
9
9
  import { O as k } from "./OrCheckboxGroup-C76zxQ10.mjs";
10
10
  import { O as F } from "./OrCheckboxTree-D5Ejbly0.mjs";
11
11
  import { O as B } from "./OrCheckbox-WPBzlvaV.mjs";
12
- import { C as M, O as v } from "./OrCode-BLHj3vA6.mjs";
12
+ import { C as M, O as v } from "./OrCode-DaM9I3Ks.mjs";
13
13
  import { lintGutter as w, linter as A } from "@codemirror/lint";
14
14
  import { javascript as y } from "@codemirror/lang-javascript";
15
15
  import { json as _, jsonParseLinter as j } from "@codemirror/lang-json";
@@ -35,9 +35,9 @@ import { O as Va } from "./OrErrorTag-B35sZEF9.mjs";
35
35
  import { O as la } from "./OrError-B5ihH6-3.mjs";
36
36
  import { b as da, a as ca, E as Da, O as Ca } from "./OrExpansionPanel-CrGf7B-b.mjs";
37
37
  import { F as ua, O as ba } from "./OrFab-B2oDFwgM.mjs";
38
- import { O as Pa } from "./OrFilterPopover-DXO-6y8a.mjs";
38
+ import { O as Pa } from "./OrFilterPopover-Co1jgWWI.mjs";
39
39
  import { O as Ga } from "./OrFilterTrigger-BNVaoHrT.mjs";
40
- import { O as ka } from "./OrFilter-CYD-gDsX.mjs";
40
+ import { O as ka } from "./OrFilter-BmWBFFA7.mjs";
41
41
  import { F as Fa, a as ha, O as Ba } from "./OrFormGroup-CUNdt7UL.mjs";
42
42
  import { O as Ma } from "./OrHint-NvbZyURY.mjs";
43
43
  import { I as za, O as wa } from "./OrIconButton-Ds8k8FmS.mjs";
@@ -55,7 +55,7 @@ import { a as Do, O as Co } from "./OrList-B2rj_Y5Z.mjs";
55
55
  import { a as uo, b as bo, L as Io, O as Po } from "./OrLoader-2SaTMxmZ.mjs";
56
56
  import { O as Go } from "./OrMenuItem-VyCCXA7Z.mjs";
57
57
  import { O as ko } from "./OrMenu-Cag_fBXC.mjs";
58
- import { M as Fo, O as ho } from "./OrModal-DiVA7_Ct.mjs";
58
+ import { M as Fo, O as ho } from "./OrModal-Cu2s5mfW.mjs";
59
59
  import { N as Lo, O as Mo, V as vo } from "./OrNotification-BkjmRseb.mjs";
60
60
  import { O as wo } from "./OrOverlay-BzbAwvpo.mjs";
61
61
  import { O as No } from "./OrPagination-BXzDa-Su.mjs";
@@ -66,7 +66,7 @@ import { O as Zo } from "./OrRadio-BZN3fBLW.mjs";
66
66
  import { O as re } from "./OrRangeSlider-Cxhafo9S.mjs";
67
67
  import { O as oe, R as ee } from "./OrRating-CAwz23JA.mjs";
68
68
  import { O as se, R as Oe, a as ie } from "./OrResizeablePanel-D62tzOxs.mjs";
69
- import { F as me, O as ne, R as xe, a as Ve } from "./OrRichTextEditor-zb1kQ0es.mjs";
69
+ import { F as me, O as ne, R as xe, a as Ve } from "./OrRichTextEditor-BstyuaKN.mjs";
70
70
  import { O as le, R as Te } from "./OrRichTooltip-8ybIdsqK.mjs";
71
71
  import { O as ce } from "./OrSearch-B_YGTJN8.mjs";
72
72
  import { O as Ce, S as Se } from "./OrSegmentedControl-DfPHDw7E.mjs";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@onereach/ui-components",
3
- "version": "26.6.5",
3
+ "version": "26.6.6-beta.5952.0",
4
4
  "description": "Vue components library for v3",
5
5
  "license": "Apache-2.0",
6
6
  "sideEffects": false,
@@ -46,8 +46,8 @@
46
46
  "@codemirror/view": "^6",
47
47
  "@floating-ui/dom": "1.5.3",
48
48
  "@lezer/highlight": "*",
49
- "@onereach/styles": "^26.6.5",
50
- "@onereach/ui-components-common": "^26.6.5",
49
+ "@onereach/styles": "^26.6.6-beta.5952.0",
50
+ "@onereach/ui-components-common": "^26.6.6-beta.5952.0",
51
51
  "@splidejs/splide": "4.0.6",
52
52
  "@tiptap/core": "2.27.1",
53
53
  "@tiptap/extension-blockquote": "2.27.1",
@@ -102,6 +102,5 @@
102
102
  "publishConfig": {
103
103
  "access": "public"
104
104
  },
105
- "npmUnpacked": "4.15.2",
106
- "gitHead": "50beec0ea15a3cf5df244bcc32c88f42f865f6c8"
105
+ "npmUnpacked": "4.15.2"
107
106
  }
@@ -1 +0,0 @@
1
- {"version":3,"file":"OrModal-DiVA7_Ct.mjs","sources":["../../../components/or-modal-v3/src/partials/or-modal-content/styles.ts","../../../components/or-modal-v3/src/partials/or-modal-content/OrModalContent.vue","../../../components/or-modal-v3/src/partials/or-modal-footer/styles.ts","../../../components/or-modal-v3/src/partials/or-modal-footer/OrModalFooter.vue","../../../components/or-modal-v3/src/partials/or-modal-header/styles.ts","../../../components/or-modal-v3/src/partials/or-modal-header/OrModalHeader.vue","../../../components/or-modal-v3/src/props.ts","../../../components/or-modal-v3/src/styles.ts","../../../components/or-modal-v3/src/OrModal.vue"],"sourcesContent":["export const ModalContent: string[] = [\n // Overflow\n 'overflow-auto',\n\n // Spacing\n 'px-md md:px-lg',\n];\n","<template>\n <div\n :ref=\"'root'\"\n :class=\"rootStyles\"\n >\n <slot />\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { computed, defineComponent, ref } from 'vue';\n\nimport { ModalContent } from './styles';\n\nexport default defineComponent({\n name: 'OrModalContent',\n\n expose: [\n 'root',\n ],\n\n setup() {\n // Refs\n const root = ref<HTMLElement>();\n\n // Styles\n const rootStyles = computed(() => [\n 'or-modal-content',\n ...ModalContent,\n ]);\n\n return {\n root,\n rootStyles,\n };\n },\n});\n</script>\n","export const ModalFooter: string[] = [\n // Spacing\n 'px-md md:px-lg',\n];\n","<template>\n <div\n :ref=\"'root'\"\n :class=\"rootStyles\"\n >\n <slot />\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { computed, defineComponent, ref } from 'vue';\n\nimport { ModalFooter } from './styles';\n\nexport default defineComponent({\n name: 'OrModalFooter',\n\n expose: [\n 'root',\n ],\n\n setup() {\n // Refs\n const root = ref<HTMLElement>();\n\n // Styles\n const rootStyles = computed(() => [\n 'or-modal-footer',\n ...ModalFooter,\n ]);\n\n return {\n root,\n rootStyles,\n };\n },\n});\n</script>\n","export const ModalHeader: string[] = [\n // Layout\n 'layout-row',\n\n // Spacing\n 'px-md md:px-lg pb-sm md:pb-none',\n\n // Typography\n 'typography-headline-2',\n];\n","<template>\n <div\n :ref=\"'root'\"\n :class=\"rootStyles\"\n >\n <div :class=\"['grow']\">\n <slot />\n </div>\n\n <OrIconButton\n :icon=\"'close'\"\n :size=\"isMobile ? 'l': 'xl'\"\n @click.stop=\"$emit('close')\"\n />\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { useResponsive } from '@onereach/ui-components-common';\nimport { OrIconButtonV3 as OrIconButton } from '@onereach/ui-components.or-icon-button-v3';\nimport { computed, defineComponent, ref } from 'vue';\n\nimport { ModalHeader } from './styles';\n\n\nexport default defineComponent({\n name: 'OrModalHeader',\n\n components: {\n OrIconButton,\n },\n\n emits: [\n 'close',\n ],\n\n expose: [\n 'root',\n ],\n\n setup() {\n // Refs\n const root = ref<HTMLElement>();\n\n const { isMobile } = useResponsive();\n\n // Styles\n const rootStyles = computed(() => [\n 'or-modal-header',\n ...ModalHeader,\n ]);\n\n return {\n root,\n rootStyles,\n isMobile,\n };\n },\n});\n</script>\n","export enum ModalSize {\n L = 'l',\n M = 'm',\n S = 's',\n}\n","import { ModalSize } from './props';\n\nexport const Modal: string[] = [\n // Layout\n 'layout-column',\n\n // Box\n 'xs:w-full sm:w-full',\n 'xs:h-full sm:h-full md:h-auto md:max-h-[min(calc(100%-(2*theme(spacing.3xl))),772px)]',\n\n // Spacing\n 'py-md md:py-lg',\n 'gap-md md:gap-lg',\n\n // Shape\n 'md:rounded-md',\n\n // Elevation\n 'shadow-modal',\n 'dark:shadow-modal-dark',\n\n // Typography\n 'typography-body-2-regular',\n\n // Theme\n 'theme-background-default',\n 'dark:theme-background-default-dark',\n\n 'theme-foreground-default',\n 'dark:theme-foreground-default-dark',\n];\n\nexport const ModalSizes: Record<ModalSize, string[]> = {\n [ModalSize.L]: [\n // Box\n 'md:w-[1050px]',\n ],\n\n [ModalSize.M]: [\n // Box\n 'md:w-[700px]',\n ],\n\n [ModalSize.S]: [\n // Box\n 'md:w-[480px]',\n ],\n};\n","<template>\n <OrOverlay\n v-if=\"state === 'open'\"\n :fullscreen=\"true\"\n >\n <div\n v-bind=\"$attrs\"\n :ref=\"'root'\"\n :class=\"rootStyles\"\n >\n <OrModalHeader @close=\"close()\">\n <slot name=\"header\" />\n </OrModalHeader>\n\n <OrModalContent :class=\"['grow']\">\n <slot />\n </OrModalContent>\n\n <OrModalFooter v-if=\"$slots.footer\">\n <slot name=\"footer\" />\n </OrModalFooter>\n </div>\n </OrOverlay>\n</template>\n\n<script lang=\"ts\">\nimport { usePopoverState } from '@onereach/ui-components-common/hooks';\nimport { OrOverlayV3 as OrOverlay } from '@onereach/ui-components.or-overlay-v3';\nimport { computed, defineComponent, PropType, ref, toRef } from 'vue';\n\nimport OrModalContent from './partials/or-modal-content/OrModalContent.vue';\nimport OrModalFooter from './partials/or-modal-footer/OrModalFooter.vue';\nimport OrModalHeader from './partials/or-modal-header/OrModalHeader.vue';\nimport { ModalSize } from './props';\nimport * as Styles from './styles';\n\nexport default defineComponent({\n name: 'OrModal',\n\n components: {\n OrModalContent,\n OrModalFooter,\n OrModalHeader,\n OrOverlay,\n },\n\n inheritAttrs: false,\n\n props: {\n isOpen: {\n type: Boolean,\n default: false,\n },\n\n size: {\n type: String as PropType<`${ModalSize}`>,\n default: () => ModalSize.M,\n },\n\n // TODO: Remove after migration to Vue 3\n additionalStyles: {\n type: Array as PropType<string[]>,\n default: () => [],\n },\n },\n\n emits: [\n 'update:state',\n\n 'open',\n 'close',\n ],\n\n expose: [\n 'root',\n\n 'state',\n\n 'open',\n 'close',\n ],\n\n setup(props, context) {\n // Refs & Styles\n const root = ref<HTMLElement>();\n\n const rootStyles = computed(() => [\n 'or-modal-v3',\n ...Styles.Modal,\n ...Styles.ModalSizes[props.size],\n ...props.additionalStyles,\n ]);\n\n // State\n const { state, open, close } = usePopoverState(toRef(props, 'isOpen'), context.emit);\n\n return {\n root,\n rootStyles,\n\n state,\n\n open,\n close,\n };\n },\n});\n</script>\n"],"names":["ModalContent","_sfc_main$3","defineComponent","root","ref","rootStyles","computed","_sfc_render","_ctx","_cache","$props","$setup","$data","$options","_openBlock","_createElementBlock","_normalizeClass","ModalFooter","_sfc_main$2","ModalHeader","_sfc_main$1","OrIconButton","isMobile","useResponsive","_resolveComponent","_renderSlot","_component_OrIconButton","ModalSize","Modal","ModalSizes","_sfc_main","OrModalContent","OrModalFooter","OrModalHeader","OrOverlay","props","context","Styles.Modal","Styles.ModalSizes","state","open","close","usePopoverState","toRef","_component_OrOverlay","_createBlock","_withCtx","_createElementVNode","_mergeProps","_createVNode","_component_OrModalHeader","$event","_component_OrModalFooter"],"mappings":"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"}