@enos5/enos-vue-default 1.11.0 → 1.11.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (27) hide show
  1. package/dist/{code-3Xpqq54w.js → code-BK8o2dAP.js} +2 -2
  2. package/dist/{code-3Xpqq54w.js.map → code-BK8o2dAP.js.map} +1 -1
  3. package/dist/components/InputGroup.vue.d.ts +2 -2
  4. package/dist/components/TinyEditor.vue.d.ts +1 -1
  5. package/dist/{default-CZa89wEE.js → default-C4FT6dfa.js} +2 -2
  6. package/dist/{default-CZa89wEE.js.map → default-C4FT6dfa.js.map} +1 -1
  7. package/dist/{dom-BXn8qn2o.js → dom-DWHiyR3v.js} +2 -2
  8. package/dist/{dom-BXn8qn2o.js.map → dom-DWHiyR3v.js.map} +1 -1
  9. package/dist/{image--oDAPWpF.js → image-BaKhUKgQ.js} +2 -2
  10. package/dist/{image--oDAPWpF.js.map → image-BaKhUKgQ.js.map} +1 -1
  11. package/dist/index.js +1 -1
  12. package/dist/index.node.js +1 -1
  13. package/dist/{link-CHw8DHTU.js → link-BOMcpPKJ.js} +2 -2
  14. package/dist/{link-CHw8DHTU.js.map → link-BOMcpPKJ.js.map} +1 -1
  15. package/dist/{lists-BT5R_kh4.js → lists-CbzaQ5ui.js} +2 -2
  16. package/dist/{lists-BT5R_kh4.js.map → lists-CbzaQ5ui.js.map} +1 -1
  17. package/dist/{plugin-Bnh8KnIk.js → plugin-DRrNUku-.js} +120 -45
  18. package/dist/plugin-DRrNUku-.js.map +1 -0
  19. package/dist/{silver-BMTgS4Sf.js → silver-d01FSbql.js} +2 -2
  20. package/dist/{silver-BMTgS4Sf.js.map → silver-d01FSbql.js.map} +1 -1
  21. package/dist/styles.css +21 -40
  22. package/dist/{table-3K-TAswh.js → table-1U0Gbp89.js} +2 -2
  23. package/dist/{table-3K-TAswh.js.map → table-1U0Gbp89.js.map} +1 -1
  24. package/dist/{tinymce-C38hRTpx.js → tinymce-CNM1pVpN.js} +2 -2
  25. package/dist/{tinymce-C38hRTpx.js.map → tinymce-CNM1pVpN.js.map} +1 -1
  26. package/package.json +1 -1
  27. package/dist/plugin-Bnh8KnIk.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"lists-BT5R_kh4.js","names":[],"sources":["../../../node_modules/tinymce/plugins/lists/plugin.js","../../../node_modules/tinymce/plugins/lists/index.js"],"sourcesContent":["/**\n * TinyMCE version 8.6.0 (2026-06-03)\n */\n\n(function () {\n 'use strict';\n\n var global = tinymce.util.Tools.resolve('tinymce.PluginManager');\n\n const get = (editor) => ({\n backspaceDelete: (isForward) => {\n editor.execCommand('mceListBackspaceDelete', false, isForward);\n }\n });\n\n /* eslint-disable @typescript-eslint/no-wrapper-object-types */\n const isSimpleType = (type) => (value) => typeof value === type;\n const isNullable = (a) => a === null || a === undefined;\n const isNonNullable = (a) => !isNullable(a);\n const isFunction = isSimpleType('function');\n\n const constant = (value) => {\n return () => {\n return value;\n };\n };\n const tripleEquals = (a, b) => {\n return a === b;\n };\n const never = constant(false);\n\n /**\n * The `Optional` type represents a value (of any type) that potentially does\n * not exist. Any `Optional<T>` can either be a `Some<T>` (in which case the\n * value does exist) or a `None` (in which case the value does not exist). This\n * module defines a whole lot of FP-inspired utility functions for dealing with\n * `Optional` objects.\n *\n * Comparison with null or undefined:\n * - We don't get fancy null coalescing operators with `Optional`\n * - We do get fancy helper functions with `Optional`\n * - `Optional` support nesting, and allow for the type to still be nullable (or\n * another `Optional`)\n * - There is no option to turn off strict-optional-checks like there is for\n * strict-null-checks\n */\n class Optional {\n tag;\n value;\n // Sneaky optimisation: every instance of Optional.none is identical, so just\n // reuse the same object\n static singletonNone = new Optional(false);\n // The internal representation has a `tag` and a `value`, but both are\n // private: able to be console.logged, but not able to be accessed by code\n constructor(tag, value) {\n this.tag = tag;\n this.value = value;\n }\n // --- Identities ---\n /**\n * Creates a new `Optional<T>` that **does** contain a value.\n */\n static some(value) {\n return new Optional(true, value);\n }\n /**\n * Create a new `Optional<T>` that **does not** contain a value. `T` can be\n * any type because we don't actually have a `T`.\n */\n static none() {\n return Optional.singletonNone;\n }\n /**\n * Perform a transform on an `Optional` type. Regardless of whether this\n * `Optional` contains a value or not, `fold` will return a value of type `U`.\n * If this `Optional` does not contain a value, the `U` will be created by\n * calling `onNone`. If this `Optional` does contain a value, the `U` will be\n * created by calling `onSome`.\n *\n * For the FP enthusiasts in the room, this function:\n * 1. Could be used to implement all of the functions below\n * 2. Forms a catamorphism\n */\n fold(onNone, onSome) {\n if (this.tag) {\n return onSome(this.value);\n }\n else {\n return onNone();\n }\n }\n /**\n * Determine if this `Optional` object contains a value.\n */\n isSome() {\n return this.tag;\n }\n /**\n * Determine if this `Optional` object **does not** contain a value.\n */\n isNone() {\n return !this.tag;\n }\n // --- Functor (name stolen from Haskell / maths) ---\n /**\n * Perform a transform on an `Optional` object, **if** there is a value. If\n * you provide a function to turn a T into a U, this is the function you use\n * to turn an `Optional<T>` into an `Optional<U>`. If this **does** contain\n * a value then the output will also contain a value (that value being the\n * output of `mapper(this.value)`), and if this **does not** contain a value\n * then neither will the output.\n */\n map(mapper) {\n if (this.tag) {\n return Optional.some(mapper(this.value));\n }\n else {\n return Optional.none();\n }\n }\n // --- Monad (name stolen from Haskell / maths) ---\n /**\n * Perform a transform on an `Optional` object, **if** there is a value.\n * Unlike `map`, here the transform itself also returns an `Optional`.\n */\n bind(binder) {\n if (this.tag) {\n return binder(this.value);\n }\n else {\n return Optional.none();\n }\n }\n // --- Traversable (name stolen from Haskell / maths) ---\n /**\n * For a given predicate, this function finds out if there **exists** a value\n * inside this `Optional` object that meets the predicate. In practice, this\n * means that for `Optional`s that do not contain a value it returns false (as\n * no predicate-meeting value exists).\n */\n exists(predicate) {\n return this.tag && predicate(this.value);\n }\n /**\n * For a given predicate, this function finds out if **all** the values inside\n * this `Optional` object meet the predicate. In practice, this means that\n * for `Optional`s that do not contain a value it returns true (as all 0\n * objects do meet the predicate).\n */\n forall(predicate) {\n return !this.tag || predicate(this.value);\n }\n filter(predicate) {\n if (!this.tag || predicate(this.value)) {\n return this;\n }\n else {\n return Optional.none();\n }\n }\n // --- Getters ---\n /**\n * Get the value out of the inside of the `Optional` object, using a default\n * `replacement` value if the provided `Optional` object does not contain a\n * value.\n */\n getOr(replacement) {\n return this.tag ? this.value : replacement;\n }\n /**\n * Get the value out of the inside of the `Optional` object, using a default\n * `replacement` value if the provided `Optional` object does not contain a\n * value. Unlike `getOr`, in this method the `replacement` object is also\n * `Optional` - meaning that this method will always return an `Optional`.\n */\n or(replacement) {\n return this.tag ? this : replacement;\n }\n /**\n * Get the value out of the inside of the `Optional` object, using a default\n * `replacement` value if the provided `Optional` object does not contain a\n * value. Unlike `getOr`, in this method the `replacement` value is\n * \"thunked\" - that is to say that you don't pass a value to `getOrThunk`, you\n * pass a function which (if called) will **return** the `value` you want to\n * use.\n */\n getOrThunk(thunk) {\n return this.tag ? this.value : thunk();\n }\n /**\n * Get the value out of the inside of the `Optional` object, using a default\n * `replacement` value if the provided Optional object does not contain a\n * value.\n *\n * Unlike `or`, in this method the `replacement` value is \"thunked\" - that is\n * to say that you don't pass a value to `orThunk`, you pass a function which\n * (if called) will **return** the `value` you want to use.\n *\n * Unlike `getOrThunk`, in this method the `replacement` value is also\n * `Optional`, meaning that this method will always return an `Optional`.\n */\n orThunk(thunk) {\n return this.tag ? this : thunk();\n }\n /**\n * Get the value out of the inside of the `Optional` object, throwing an\n * exception if the provided `Optional` object does not contain a value.\n *\n * WARNING:\n * You should only be using this function if you know that the `Optional`\n * object **is not** empty (otherwise you're throwing exceptions in production\n * code, which is bad).\n *\n * In tests this is more acceptable.\n *\n * Prefer other methods to this, such as `.each`.\n */\n getOrDie(message) {\n if (!this.tag) {\n throw new Error(message ?? 'Called getOrDie on None');\n }\n else {\n return this.value;\n }\n }\n // --- Interop with null and undefined ---\n /**\n * Creates an `Optional` value from a nullable (or undefined-able) input.\n * Null, or undefined, is converted to `None`, and anything else is converted\n * to `Some`.\n */\n static from(value) {\n return isNonNullable(value) ? Optional.some(value) : Optional.none();\n }\n /**\n * Converts an `Optional` to a nullable type, by getting the value if it\n * exists, or returning `null` if it does not.\n */\n getOrNull() {\n return this.tag ? this.value : null;\n }\n /**\n * Converts an `Optional` to an undefined-able type, by getting the value if\n * it exists, or returning `undefined` if it does not.\n */\n getOrUndefined() {\n return this.value;\n }\n // --- Utilities ---\n /**\n * If the `Optional` contains a value, perform an action on that value.\n * Unlike the rest of the methods on this type, `.each` has side-effects. If\n * you want to transform an `Optional<T>` **into** something, then this is not\n * the method for you. If you want to use an `Optional<T>` to **do**\n * something, then this is the method for you - provided you're okay with not\n * doing anything in the case where the `Optional` doesn't have a value inside\n * it. If you're not sure whether your use-case fits into transforming\n * **into** something or **doing** something, check whether it has a return\n * value. If it does, you should be performing a transform.\n */\n each(worker) {\n if (this.tag) {\n worker(this.value);\n }\n }\n /**\n * Turn the `Optional` object into an array that contains all of the values\n * stored inside the `Optional`. In practice, this means the output will have\n * either 0 or 1 elements.\n */\n toArray() {\n return this.tag ? [this.value] : [];\n }\n /**\n * Turn the `Optional` object into a string for debugging or printing. Not\n * recommended for production code, but good for debugging. Also note that\n * these days an `Optional` object can be logged to the console directly, and\n * its inner value (if it exists) will be visible.\n */\n toString() {\n return this.tag ? `some(${this.value})` : 'none()';\n }\n }\n\n const nativeSlice = Array.prototype.slice;\n const exists = (xs, pred) => {\n for (let i = 0, len = xs.length; i < len; i++) {\n const x = xs[i];\n if (pred(x, i)) {\n return true;\n }\n }\n return false;\n };\n const map = (xs, f) => {\n // pre-allocating array size when it's guaranteed to be known\n // http://jsperf.com/push-allocated-vs-dynamic/22\n const len = xs.length;\n const r = new Array(len);\n for (let i = 0; i < len; i++) {\n const x = xs[i];\n r[i] = f(x, i);\n }\n return r;\n };\n // Unwound implementing other functions in terms of each.\n // The code size is roughly the same, and it should allow for better optimisation.\n // const each = function<T, U>(xs: T[], f: (x: T, i?: number, xs?: T[]) => void): void {\n const each = (xs, f) => {\n for (let i = 0, len = xs.length; i < len; i++) {\n const x = xs[i];\n f(x, i);\n }\n };\n const foldl = (xs, f, acc) => {\n each(xs, (x, i) => {\n acc = f(acc, x, i);\n });\n return acc;\n };\n const findUntil = (xs, pred, until) => {\n for (let i = 0, len = xs.length; i < len; i++) {\n const x = xs[i];\n if (pred(x, i)) {\n return Optional.some(x);\n }\n else if (until(x, i)) {\n break;\n }\n }\n return Optional.none();\n };\n const find = (xs, pred) => {\n return findUntil(xs, pred, never);\n };\n const reverse = (xs) => {\n const r = nativeSlice.call(xs, 0);\n r.reverse();\n return r;\n };\n isFunction(Array.from) ? Array.from : (x) => nativeSlice.call(x);\n\n /**\n * **Is** the value stored inside this Optional object equal to `rhs`?\n */\n const is = (lhs, rhs, comparator = tripleEquals) => lhs.exists((left) => comparator(left, rhs));\n\n const blank = (r) => (s) => s.replace(r, '');\n /** removes all leading and trailing spaces */\n const trim = blank(/^\\s+|\\s+$/g);\n const isNotEmpty = (s) => s.length > 0;\n const isEmpty = (s) => !isNotEmpty(s);\n\n // Example: 'AB' -> 28\n const parseAlphabeticBase26 = (str) => {\n const chars = reverse(trim(str).split(''));\n const values = map(chars, (char, i) => {\n const charValue = char.toUpperCase().charCodeAt(0) - 'A'.charCodeAt(0) + 1;\n return Math.pow(26, i) * charValue;\n });\n return foldl(values, (sum, v) => sum + v, 0);\n };\n // Example: 28 -> 'AB'\n const composeAlphabeticBase26 = (value) => {\n value--;\n if (value < 0) {\n return '';\n }\n else {\n const remainder = value % 26;\n const quotient = Math.floor(value / 26);\n const rest = composeAlphabeticBase26(quotient);\n const char = String.fromCharCode('A'.charCodeAt(0) + remainder);\n return rest + char;\n }\n };\n const isUppercase = (str) => /^[A-Z]+$/.test(str);\n const isLowercase = (str) => /^[a-z]+$/.test(str);\n const isNumeric = (str) => /^[0-9]+$/.test(str);\n const deduceListType = (start) => {\n if (isNumeric(start)) {\n return 2 /* ListType.Numeric */;\n }\n else if (isUppercase(start)) {\n return 0 /* ListType.UpperAlpha */;\n }\n else if (isLowercase(start)) {\n return 1 /* ListType.LowerAlpha */;\n }\n else if (isEmpty(start)) {\n return 3 /* ListType.None */;\n }\n else {\n return 4 /* ListType.Unknown */;\n }\n };\n const parseStartValue = (start) => {\n switch (deduceListType(start)) {\n case 2 /* ListType.Numeric */:\n return Optional.some({\n listStyleType: Optional.none(),\n start\n });\n case 0 /* ListType.UpperAlpha */:\n return Optional.some({\n listStyleType: Optional.some('upper-alpha'),\n start: parseAlphabeticBase26(start).toString()\n });\n case 1 /* ListType.LowerAlpha */:\n return Optional.some({\n listStyleType: Optional.some('lower-alpha'),\n start: parseAlphabeticBase26(start).toString()\n });\n case 3 /* ListType.None */:\n return Optional.some({\n listStyleType: Optional.none(),\n start: ''\n });\n case 4 /* ListType.Unknown */:\n return Optional.none();\n }\n };\n const parseDetail = (detail) => {\n const start = parseInt(detail.start, 10);\n if (is(detail.listStyleType, 'upper-alpha')) {\n return composeAlphabeticBase26(start);\n }\n else if (is(detail.listStyleType, 'lower-alpha')) {\n return composeAlphabeticBase26(start).toLowerCase();\n }\n else {\n return detail.start;\n }\n };\n\n const option = (name) => (editor) => editor.options.get(name);\n const getForcedRootBlock = option('forced_root_block');\n\n const isCustomList = (list) => /\\btox\\-/.test(list.className);\n const matchNodeNames = (regex) => (node) => isNonNullable(node) && regex.test(node.nodeName);\n const matchNodeName = (name) => (node) => isNonNullable(node) && node.nodeName.toLowerCase() === name;\n const isListNode = matchNodeNames(/^(OL|UL|DL)$/);\n const isTableCellNode = matchNodeNames(/^(TH|TD)$/);\n const isListItemNode = matchNodeNames(/^(LI|DT|DD)$/);\n const inList = (parents, listName) => findUntil(parents, isListNode, isTableCellNode)\n .exists((list) => list.nodeName === listName && !isCustomList(list));\n const setNodeChangeHandler = (editor, nodeChangeHandler) => {\n const initialNode = editor.selection.getNode();\n // Set the initial state\n nodeChangeHandler({\n parents: editor.dom.getParents(initialNode),\n element: initialNode\n });\n editor.on('NodeChange', nodeChangeHandler);\n return () => editor.off('NodeChange', nodeChangeHandler);\n };\n const isWithinNonEditable = (editor, element) => element !== null && !editor.dom.isEditable(element);\n const isWithinNonEditableList = (editor, element) => {\n const parentList = editor.dom.getParent(element, 'ol,ul,dl');\n return isWithinNonEditable(editor, parentList) || !editor.selection.isEditable();\n };\n const isOlNode = matchNodeName('ol');\n const listNames = ['OL', 'UL', 'DL'];\n const listSelector = listNames.join(',');\n const getParentList = (editor, node) => {\n const selectionStart = node || editor.selection.getStart(true);\n return editor.dom.getParent(selectionStart, listSelector, getClosestListHost(editor, selectionStart, editor.selection.isCollapsed()));\n };\n const getClosestListHost = (editor, elm, isCollapsed) => {\n const parentBlocks = editor.dom.getParents(elm, editor.dom.isBlock);\n const isNotForcedRootBlock = (elm) => elm.nodeName.toLowerCase() !== getForcedRootBlock(editor);\n const parentBlock = find(parentBlocks, (elm) => (!isCollapsed || isNotForcedRootBlock(elm)) && isListHost(editor.schema, elm));\n return parentBlock.getOr(editor.getBody());\n };\n const isListHost = (schema, node) => !isListNode(node) && !isListItemNode(node) && exists(listNames, (listName) => schema.isValidChild(node.nodeName, listName));\n\n const open = (editor) => {\n // Find the current list and skip opening if the selection isn't in an ordered list\n const currentList = getParentList(editor);\n if (!isOlNode(currentList) || isWithinNonEditableList(editor, currentList)) {\n return;\n }\n editor.windowManager.open({\n title: 'List Properties',\n body: {\n type: 'panel',\n items: [\n {\n type: 'input',\n name: 'start',\n label: 'Start list at number',\n inputMode: 'numeric'\n }\n ]\n },\n initialData: {\n start: parseDetail({\n start: editor.dom.getAttrib(currentList, 'start', '1'),\n listStyleType: Optional.from(editor.dom.getStyle(currentList, 'list-style-type'))\n })\n },\n buttons: [\n {\n type: 'cancel',\n name: 'cancel',\n text: 'Cancel'\n },\n {\n type: 'submit',\n name: 'save',\n text: 'Save',\n primary: true\n }\n ],\n onSubmit: (api) => {\n const data = api.getData();\n parseStartValue(data.start).each((detail) => {\n editor.execCommand('mceListUpdate', false, {\n attrs: {\n start: detail.start === '1' ? '' : detail.start\n },\n styles: {\n 'list-style-type': detail.listStyleType.getOr('')\n }\n });\n });\n api.close();\n }\n });\n };\n\n const register$2 = (editor) => {\n editor.addCommand('mceListProps', () => {\n open(editor);\n });\n };\n\n const setupToggleButtonHandler = (editor, listName) => (api) => {\n const toggleButtonHandler = (e) => {\n api.setActive(inList(e.parents, listName));\n api.setEnabled(!isWithinNonEditableList(editor, e.element) && editor.selection.isEditable());\n };\n api.setEnabled(editor.selection.isEditable());\n return setNodeChangeHandler(editor, toggleButtonHandler);\n };\n const register$1 = (editor) => {\n const exec = (command) => () => editor.execCommand(command);\n if (!editor.hasPlugin('advlist')) {\n editor.ui.registry.addToggleButton('numlist', {\n icon: 'ordered-list',\n active: false,\n tooltip: 'Numbered list',\n onAction: exec('InsertOrderedList'),\n onSetup: setupToggleButtonHandler(editor, 'OL')\n });\n editor.ui.registry.addToggleButton('bullist', {\n icon: 'unordered-list',\n active: false,\n tooltip: 'Bullet list',\n onAction: exec('InsertUnorderedList'),\n onSetup: setupToggleButtonHandler(editor, 'UL')\n });\n }\n };\n\n const setupMenuButtonHandler = (editor, listName) => (api) => {\n const menuButtonHandler = (e) => api.setEnabled(inList(e.parents, listName) && !isWithinNonEditableList(editor, e.element));\n return setNodeChangeHandler(editor, menuButtonHandler);\n };\n const register = (editor) => {\n const listProperties = {\n text: 'List properties...',\n icon: 'ordered-list',\n onAction: () => editor.execCommand('mceListProps'),\n onSetup: setupMenuButtonHandler(editor, 'OL')\n };\n editor.ui.registry.addMenuItem('listprops', listProperties);\n editor.ui.registry.addContextMenu('lists', {\n update: (node) => {\n const parentList = getParentList(editor, node);\n return isOlNode(parentList) ? ['listprops'] : [];\n }\n });\n };\n\n var Plugin = () => {\n global.add('lists', (editor) => {\n register$2(editor);\n register$1(editor);\n register(editor);\n return get(editor);\n });\n };\n\n Plugin();\n /** *****\n * DO NOT EXPORT ANYTHING\n *\n * IF YOU DO ROLLUP WILL LEAVE A GLOBAL ON THE PAGE\n *******/\n\n})();\n","// Exports the \"lists\" plugin for usage with module loaders\n// Usage:\n// CommonJS:\n// require('tinymce/plugins/lists')\n// ES2015:\n// import 'tinymce/plugins/lists'\nrequire('./plugin.js');"],"x_google_ignoreList":[0,1],"mappings":"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"}
1
+ {"version":3,"file":"lists-CbzaQ5ui.js","names":[],"sources":["../../../node_modules/tinymce/plugins/lists/plugin.js","../../../node_modules/tinymce/plugins/lists/index.js"],"sourcesContent":["/**\n * TinyMCE version 8.6.0 (2026-06-03)\n */\n\n(function () {\n 'use strict';\n\n var global = tinymce.util.Tools.resolve('tinymce.PluginManager');\n\n const get = (editor) => ({\n backspaceDelete: (isForward) => {\n editor.execCommand('mceListBackspaceDelete', false, isForward);\n }\n });\n\n /* eslint-disable @typescript-eslint/no-wrapper-object-types */\n const isSimpleType = (type) => (value) => typeof value === type;\n const isNullable = (a) => a === null || a === undefined;\n const isNonNullable = (a) => !isNullable(a);\n const isFunction = isSimpleType('function');\n\n const constant = (value) => {\n return () => {\n return value;\n };\n };\n const tripleEquals = (a, b) => {\n return a === b;\n };\n const never = constant(false);\n\n /**\n * The `Optional` type represents a value (of any type) that potentially does\n * not exist. Any `Optional<T>` can either be a `Some<T>` (in which case the\n * value does exist) or a `None` (in which case the value does not exist). This\n * module defines a whole lot of FP-inspired utility functions for dealing with\n * `Optional` objects.\n *\n * Comparison with null or undefined:\n * - We don't get fancy null coalescing operators with `Optional`\n * - We do get fancy helper functions with `Optional`\n * - `Optional` support nesting, and allow for the type to still be nullable (or\n * another `Optional`)\n * - There is no option to turn off strict-optional-checks like there is for\n * strict-null-checks\n */\n class Optional {\n tag;\n value;\n // Sneaky optimisation: every instance of Optional.none is identical, so just\n // reuse the same object\n static singletonNone = new Optional(false);\n // The internal representation has a `tag` and a `value`, but both are\n // private: able to be console.logged, but not able to be accessed by code\n constructor(tag, value) {\n this.tag = tag;\n this.value = value;\n }\n // --- Identities ---\n /**\n * Creates a new `Optional<T>` that **does** contain a value.\n */\n static some(value) {\n return new Optional(true, value);\n }\n /**\n * Create a new `Optional<T>` that **does not** contain a value. `T` can be\n * any type because we don't actually have a `T`.\n */\n static none() {\n return Optional.singletonNone;\n }\n /**\n * Perform a transform on an `Optional` type. Regardless of whether this\n * `Optional` contains a value or not, `fold` will return a value of type `U`.\n * If this `Optional` does not contain a value, the `U` will be created by\n * calling `onNone`. If this `Optional` does contain a value, the `U` will be\n * created by calling `onSome`.\n *\n * For the FP enthusiasts in the room, this function:\n * 1. Could be used to implement all of the functions below\n * 2. Forms a catamorphism\n */\n fold(onNone, onSome) {\n if (this.tag) {\n return onSome(this.value);\n }\n else {\n return onNone();\n }\n }\n /**\n * Determine if this `Optional` object contains a value.\n */\n isSome() {\n return this.tag;\n }\n /**\n * Determine if this `Optional` object **does not** contain a value.\n */\n isNone() {\n return !this.tag;\n }\n // --- Functor (name stolen from Haskell / maths) ---\n /**\n * Perform a transform on an `Optional` object, **if** there is a value. If\n * you provide a function to turn a T into a U, this is the function you use\n * to turn an `Optional<T>` into an `Optional<U>`. If this **does** contain\n * a value then the output will also contain a value (that value being the\n * output of `mapper(this.value)`), and if this **does not** contain a value\n * then neither will the output.\n */\n map(mapper) {\n if (this.tag) {\n return Optional.some(mapper(this.value));\n }\n else {\n return Optional.none();\n }\n }\n // --- Monad (name stolen from Haskell / maths) ---\n /**\n * Perform a transform on an `Optional` object, **if** there is a value.\n * Unlike `map`, here the transform itself also returns an `Optional`.\n */\n bind(binder) {\n if (this.tag) {\n return binder(this.value);\n }\n else {\n return Optional.none();\n }\n }\n // --- Traversable (name stolen from Haskell / maths) ---\n /**\n * For a given predicate, this function finds out if there **exists** a value\n * inside this `Optional` object that meets the predicate. In practice, this\n * means that for `Optional`s that do not contain a value it returns false (as\n * no predicate-meeting value exists).\n */\n exists(predicate) {\n return this.tag && predicate(this.value);\n }\n /**\n * For a given predicate, this function finds out if **all** the values inside\n * this `Optional` object meet the predicate. In practice, this means that\n * for `Optional`s that do not contain a value it returns true (as all 0\n * objects do meet the predicate).\n */\n forall(predicate) {\n return !this.tag || predicate(this.value);\n }\n filter(predicate) {\n if (!this.tag || predicate(this.value)) {\n return this;\n }\n else {\n return Optional.none();\n }\n }\n // --- Getters ---\n /**\n * Get the value out of the inside of the `Optional` object, using a default\n * `replacement` value if the provided `Optional` object does not contain a\n * value.\n */\n getOr(replacement) {\n return this.tag ? this.value : replacement;\n }\n /**\n * Get the value out of the inside of the `Optional` object, using a default\n * `replacement` value if the provided `Optional` object does not contain a\n * value. Unlike `getOr`, in this method the `replacement` object is also\n * `Optional` - meaning that this method will always return an `Optional`.\n */\n or(replacement) {\n return this.tag ? this : replacement;\n }\n /**\n * Get the value out of the inside of the `Optional` object, using a default\n * `replacement` value if the provided `Optional` object does not contain a\n * value. Unlike `getOr`, in this method the `replacement` value is\n * \"thunked\" - that is to say that you don't pass a value to `getOrThunk`, you\n * pass a function which (if called) will **return** the `value` you want to\n * use.\n */\n getOrThunk(thunk) {\n return this.tag ? this.value : thunk();\n }\n /**\n * Get the value out of the inside of the `Optional` object, using a default\n * `replacement` value if the provided Optional object does not contain a\n * value.\n *\n * Unlike `or`, in this method the `replacement` value is \"thunked\" - that is\n * to say that you don't pass a value to `orThunk`, you pass a function which\n * (if called) will **return** the `value` you want to use.\n *\n * Unlike `getOrThunk`, in this method the `replacement` value is also\n * `Optional`, meaning that this method will always return an `Optional`.\n */\n orThunk(thunk) {\n return this.tag ? this : thunk();\n }\n /**\n * Get the value out of the inside of the `Optional` object, throwing an\n * exception if the provided `Optional` object does not contain a value.\n *\n * WARNING:\n * You should only be using this function if you know that the `Optional`\n * object **is not** empty (otherwise you're throwing exceptions in production\n * code, which is bad).\n *\n * In tests this is more acceptable.\n *\n * Prefer other methods to this, such as `.each`.\n */\n getOrDie(message) {\n if (!this.tag) {\n throw new Error(message ?? 'Called getOrDie on None');\n }\n else {\n return this.value;\n }\n }\n // --- Interop with null and undefined ---\n /**\n * Creates an `Optional` value from a nullable (or undefined-able) input.\n * Null, or undefined, is converted to `None`, and anything else is converted\n * to `Some`.\n */\n static from(value) {\n return isNonNullable(value) ? Optional.some(value) : Optional.none();\n }\n /**\n * Converts an `Optional` to a nullable type, by getting the value if it\n * exists, or returning `null` if it does not.\n */\n getOrNull() {\n return this.tag ? this.value : null;\n }\n /**\n * Converts an `Optional` to an undefined-able type, by getting the value if\n * it exists, or returning `undefined` if it does not.\n */\n getOrUndefined() {\n return this.value;\n }\n // --- Utilities ---\n /**\n * If the `Optional` contains a value, perform an action on that value.\n * Unlike the rest of the methods on this type, `.each` has side-effects. If\n * you want to transform an `Optional<T>` **into** something, then this is not\n * the method for you. If you want to use an `Optional<T>` to **do**\n * something, then this is the method for you - provided you're okay with not\n * doing anything in the case where the `Optional` doesn't have a value inside\n * it. If you're not sure whether your use-case fits into transforming\n * **into** something or **doing** something, check whether it has a return\n * value. If it does, you should be performing a transform.\n */\n each(worker) {\n if (this.tag) {\n worker(this.value);\n }\n }\n /**\n * Turn the `Optional` object into an array that contains all of the values\n * stored inside the `Optional`. In practice, this means the output will have\n * either 0 or 1 elements.\n */\n toArray() {\n return this.tag ? [this.value] : [];\n }\n /**\n * Turn the `Optional` object into a string for debugging or printing. Not\n * recommended for production code, but good for debugging. Also note that\n * these days an `Optional` object can be logged to the console directly, and\n * its inner value (if it exists) will be visible.\n */\n toString() {\n return this.tag ? `some(${this.value})` : 'none()';\n }\n }\n\n const nativeSlice = Array.prototype.slice;\n const exists = (xs, pred) => {\n for (let i = 0, len = xs.length; i < len; i++) {\n const x = xs[i];\n if (pred(x, i)) {\n return true;\n }\n }\n return false;\n };\n const map = (xs, f) => {\n // pre-allocating array size when it's guaranteed to be known\n // http://jsperf.com/push-allocated-vs-dynamic/22\n const len = xs.length;\n const r = new Array(len);\n for (let i = 0; i < len; i++) {\n const x = xs[i];\n r[i] = f(x, i);\n }\n return r;\n };\n // Unwound implementing other functions in terms of each.\n // The code size is roughly the same, and it should allow for better optimisation.\n // const each = function<T, U>(xs: T[], f: (x: T, i?: number, xs?: T[]) => void): void {\n const each = (xs, f) => {\n for (let i = 0, len = xs.length; i < len; i++) {\n const x = xs[i];\n f(x, i);\n }\n };\n const foldl = (xs, f, acc) => {\n each(xs, (x, i) => {\n acc = f(acc, x, i);\n });\n return acc;\n };\n const findUntil = (xs, pred, until) => {\n for (let i = 0, len = xs.length; i < len; i++) {\n const x = xs[i];\n if (pred(x, i)) {\n return Optional.some(x);\n }\n else if (until(x, i)) {\n break;\n }\n }\n return Optional.none();\n };\n const find = (xs, pred) => {\n return findUntil(xs, pred, never);\n };\n const reverse = (xs) => {\n const r = nativeSlice.call(xs, 0);\n r.reverse();\n return r;\n };\n isFunction(Array.from) ? Array.from : (x) => nativeSlice.call(x);\n\n /**\n * **Is** the value stored inside this Optional object equal to `rhs`?\n */\n const is = (lhs, rhs, comparator = tripleEquals) => lhs.exists((left) => comparator(left, rhs));\n\n const blank = (r) => (s) => s.replace(r, '');\n /** removes all leading and trailing spaces */\n const trim = blank(/^\\s+|\\s+$/g);\n const isNotEmpty = (s) => s.length > 0;\n const isEmpty = (s) => !isNotEmpty(s);\n\n // Example: 'AB' -> 28\n const parseAlphabeticBase26 = (str) => {\n const chars = reverse(trim(str).split(''));\n const values = map(chars, (char, i) => {\n const charValue = char.toUpperCase().charCodeAt(0) - 'A'.charCodeAt(0) + 1;\n return Math.pow(26, i) * charValue;\n });\n return foldl(values, (sum, v) => sum + v, 0);\n };\n // Example: 28 -> 'AB'\n const composeAlphabeticBase26 = (value) => {\n value--;\n if (value < 0) {\n return '';\n }\n else {\n const remainder = value % 26;\n const quotient = Math.floor(value / 26);\n const rest = composeAlphabeticBase26(quotient);\n const char = String.fromCharCode('A'.charCodeAt(0) + remainder);\n return rest + char;\n }\n };\n const isUppercase = (str) => /^[A-Z]+$/.test(str);\n const isLowercase = (str) => /^[a-z]+$/.test(str);\n const isNumeric = (str) => /^[0-9]+$/.test(str);\n const deduceListType = (start) => {\n if (isNumeric(start)) {\n return 2 /* ListType.Numeric */;\n }\n else if (isUppercase(start)) {\n return 0 /* ListType.UpperAlpha */;\n }\n else if (isLowercase(start)) {\n return 1 /* ListType.LowerAlpha */;\n }\n else if (isEmpty(start)) {\n return 3 /* ListType.None */;\n }\n else {\n return 4 /* ListType.Unknown */;\n }\n };\n const parseStartValue = (start) => {\n switch (deduceListType(start)) {\n case 2 /* ListType.Numeric */:\n return Optional.some({\n listStyleType: Optional.none(),\n start\n });\n case 0 /* ListType.UpperAlpha */:\n return Optional.some({\n listStyleType: Optional.some('upper-alpha'),\n start: parseAlphabeticBase26(start).toString()\n });\n case 1 /* ListType.LowerAlpha */:\n return Optional.some({\n listStyleType: Optional.some('lower-alpha'),\n start: parseAlphabeticBase26(start).toString()\n });\n case 3 /* ListType.None */:\n return Optional.some({\n listStyleType: Optional.none(),\n start: ''\n });\n case 4 /* ListType.Unknown */:\n return Optional.none();\n }\n };\n const parseDetail = (detail) => {\n const start = parseInt(detail.start, 10);\n if (is(detail.listStyleType, 'upper-alpha')) {\n return composeAlphabeticBase26(start);\n }\n else if (is(detail.listStyleType, 'lower-alpha')) {\n return composeAlphabeticBase26(start).toLowerCase();\n }\n else {\n return detail.start;\n }\n };\n\n const option = (name) => (editor) => editor.options.get(name);\n const getForcedRootBlock = option('forced_root_block');\n\n const isCustomList = (list) => /\\btox\\-/.test(list.className);\n const matchNodeNames = (regex) => (node) => isNonNullable(node) && regex.test(node.nodeName);\n const matchNodeName = (name) => (node) => isNonNullable(node) && node.nodeName.toLowerCase() === name;\n const isListNode = matchNodeNames(/^(OL|UL|DL)$/);\n const isTableCellNode = matchNodeNames(/^(TH|TD)$/);\n const isListItemNode = matchNodeNames(/^(LI|DT|DD)$/);\n const inList = (parents, listName) => findUntil(parents, isListNode, isTableCellNode)\n .exists((list) => list.nodeName === listName && !isCustomList(list));\n const setNodeChangeHandler = (editor, nodeChangeHandler) => {\n const initialNode = editor.selection.getNode();\n // Set the initial state\n nodeChangeHandler({\n parents: editor.dom.getParents(initialNode),\n element: initialNode\n });\n editor.on('NodeChange', nodeChangeHandler);\n return () => editor.off('NodeChange', nodeChangeHandler);\n };\n const isWithinNonEditable = (editor, element) => element !== null && !editor.dom.isEditable(element);\n const isWithinNonEditableList = (editor, element) => {\n const parentList = editor.dom.getParent(element, 'ol,ul,dl');\n return isWithinNonEditable(editor, parentList) || !editor.selection.isEditable();\n };\n const isOlNode = matchNodeName('ol');\n const listNames = ['OL', 'UL', 'DL'];\n const listSelector = listNames.join(',');\n const getParentList = (editor, node) => {\n const selectionStart = node || editor.selection.getStart(true);\n return editor.dom.getParent(selectionStart, listSelector, getClosestListHost(editor, selectionStart, editor.selection.isCollapsed()));\n };\n const getClosestListHost = (editor, elm, isCollapsed) => {\n const parentBlocks = editor.dom.getParents(elm, editor.dom.isBlock);\n const isNotForcedRootBlock = (elm) => elm.nodeName.toLowerCase() !== getForcedRootBlock(editor);\n const parentBlock = find(parentBlocks, (elm) => (!isCollapsed || isNotForcedRootBlock(elm)) && isListHost(editor.schema, elm));\n return parentBlock.getOr(editor.getBody());\n };\n const isListHost = (schema, node) => !isListNode(node) && !isListItemNode(node) && exists(listNames, (listName) => schema.isValidChild(node.nodeName, listName));\n\n const open = (editor) => {\n // Find the current list and skip opening if the selection isn't in an ordered list\n const currentList = getParentList(editor);\n if (!isOlNode(currentList) || isWithinNonEditableList(editor, currentList)) {\n return;\n }\n editor.windowManager.open({\n title: 'List Properties',\n body: {\n type: 'panel',\n items: [\n {\n type: 'input',\n name: 'start',\n label: 'Start list at number',\n inputMode: 'numeric'\n }\n ]\n },\n initialData: {\n start: parseDetail({\n start: editor.dom.getAttrib(currentList, 'start', '1'),\n listStyleType: Optional.from(editor.dom.getStyle(currentList, 'list-style-type'))\n })\n },\n buttons: [\n {\n type: 'cancel',\n name: 'cancel',\n text: 'Cancel'\n },\n {\n type: 'submit',\n name: 'save',\n text: 'Save',\n primary: true\n }\n ],\n onSubmit: (api) => {\n const data = api.getData();\n parseStartValue(data.start).each((detail) => {\n editor.execCommand('mceListUpdate', false, {\n attrs: {\n start: detail.start === '1' ? '' : detail.start\n },\n styles: {\n 'list-style-type': detail.listStyleType.getOr('')\n }\n });\n });\n api.close();\n }\n });\n };\n\n const register$2 = (editor) => {\n editor.addCommand('mceListProps', () => {\n open(editor);\n });\n };\n\n const setupToggleButtonHandler = (editor, listName) => (api) => {\n const toggleButtonHandler = (e) => {\n api.setActive(inList(e.parents, listName));\n api.setEnabled(!isWithinNonEditableList(editor, e.element) && editor.selection.isEditable());\n };\n api.setEnabled(editor.selection.isEditable());\n return setNodeChangeHandler(editor, toggleButtonHandler);\n };\n const register$1 = (editor) => {\n const exec = (command) => () => editor.execCommand(command);\n if (!editor.hasPlugin('advlist')) {\n editor.ui.registry.addToggleButton('numlist', {\n icon: 'ordered-list',\n active: false,\n tooltip: 'Numbered list',\n onAction: exec('InsertOrderedList'),\n onSetup: setupToggleButtonHandler(editor, 'OL')\n });\n editor.ui.registry.addToggleButton('bullist', {\n icon: 'unordered-list',\n active: false,\n tooltip: 'Bullet list',\n onAction: exec('InsertUnorderedList'),\n onSetup: setupToggleButtonHandler(editor, 'UL')\n });\n }\n };\n\n const setupMenuButtonHandler = (editor, listName) => (api) => {\n const menuButtonHandler = (e) => api.setEnabled(inList(e.parents, listName) && !isWithinNonEditableList(editor, e.element));\n return setNodeChangeHandler(editor, menuButtonHandler);\n };\n const register = (editor) => {\n const listProperties = {\n text: 'List properties...',\n icon: 'ordered-list',\n onAction: () => editor.execCommand('mceListProps'),\n onSetup: setupMenuButtonHandler(editor, 'OL')\n };\n editor.ui.registry.addMenuItem('listprops', listProperties);\n editor.ui.registry.addContextMenu('lists', {\n update: (node) => {\n const parentList = getParentList(editor, node);\n return isOlNode(parentList) ? ['listprops'] : [];\n }\n });\n };\n\n var Plugin = () => {\n global.add('lists', (editor) => {\n register$2(editor);\n register$1(editor);\n register(editor);\n return get(editor);\n });\n };\n\n Plugin();\n /** *****\n * DO NOT EXPORT ANYTHING\n *\n * IF YOU DO ROLLUP WILL LEAVE A GLOBAL ON THE PAGE\n *******/\n\n})();\n","// Exports the \"lists\" plugin for usage with module loaders\n// Usage:\n// CommonJS:\n// require('tinymce/plugins/lists')\n// ES2015:\n// import 'tinymce/plugins/lists'\nrequire('./plugin.js');"],"x_google_ignoreList":[0,1],"mappings":"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"}
@@ -1045,10 +1045,16 @@ var _sfc_main$27 = /*@__PURE__*/ Object.assign({ inheritAttrs: false }, {
1045
1045
  const triggerRef = ref(null);
1046
1046
  const triggerValueRef = ref(null);
1047
1047
  const dropdownMenuRef = ref(null);
1048
- const dropdownStyle = ref({});
1048
+ const dropdownStyle = ref({
1049
+ position: "absolute",
1050
+ left: "0px",
1051
+ top: "0px",
1052
+ visibility: "hidden"
1053
+ });
1049
1054
  const teleportTarget = ref("body");
1050
1055
  const isDarkMode = ref(false);
1051
1056
  const isMounted = ref(false);
1057
+ const isDropdownReady = ref(false);
1052
1058
  const searchQuery = ref("");
1053
1059
  const searchInputRef = ref(null);
1054
1060
  const highlightedOptionValue = ref(null);
@@ -1058,6 +1064,9 @@ var _sfc_main$27 = /*@__PURE__*/ Object.assign({ inheritAttrs: false }, {
1058
1064
  const triggerValuePointerStartX = ref(0);
1059
1065
  const shouldSuppressTriggerClick = ref(false);
1060
1066
  let typeaheadResetTimeout = null;
1067
+ let positionFrame = null;
1068
+ let revealFrame = null;
1069
+ let resizeObserver = null;
1061
1070
  const isObjectOption = (option) => typeof option === "object" && option !== null;
1062
1071
  const optionValue = (option) => {
1063
1072
  if (isObjectOption(option)) return option[props.valueKey];
@@ -1241,7 +1250,7 @@ var _sfc_main$27 = /*@__PURE__*/ Object.assign({ inheritAttrs: false }, {
1241
1250
  if (!props.disabled) isOpen.value = !isOpen.value;
1242
1251
  };
1243
1252
  const syncTeleportTarget = () => {
1244
- teleportTarget.value = rootRef.value?.closest("[data-slot=\"dialog-content\"], [data-dismissable-layer], [role=\"dialog\"], dialog") ?? document.body;
1253
+ teleportTarget.value = rootRef.value?.closest("dialog") ?? document.body;
1245
1254
  };
1246
1255
  const selectOption = (option) => {
1247
1256
  emit("update:modelValue", normalizeEmittedValue(optionValue(option)));
@@ -1262,39 +1271,97 @@ var _sfc_main$27 = /*@__PURE__*/ Object.assign({ inheritAttrs: false }, {
1262
1271
  emit("update:modelValue", normalizeEmittedValues(currentValues));
1263
1272
  };
1264
1273
  const updateDropdownPosition = () => {
1265
- if (!triggerRef.value) return;
1274
+ if (!isOpen.value || !triggerRef.value || !dropdownMenuRef.value) return;
1266
1275
  const rect = triggerRef.value.getBoundingClientRect();
1267
- const teleportElement = teleportTarget.value instanceof HTMLElement ? teleportTarget.value : null;
1268
1276
  const viewportWidth = window.innerWidth;
1269
1277
  const viewportHeight = window.innerHeight;
1270
- const spaceBelow = viewportHeight - rect.bottom - 8;
1271
- const spaceAbove = rect.top - 8;
1272
- const shouldOpenUpward = spaceBelow < 240 && spaceAbove > spaceBelow;
1273
- const width = Math.min(rect.width, Math.max(viewportWidth - rect.left - 16, 160));
1274
- const maxHeight = Math.max(Math.min(240, shouldOpenUpward ? spaceAbove : spaceBelow), 120);
1275
- if (teleportElement && teleportElement !== document.body) {
1276
- const containerRect = teleportElement.getBoundingClientRect();
1278
+ const gap = 8;
1279
+ const portalElement = teleportTarget.value instanceof HTMLElement ? teleportTarget.value : null;
1280
+ const isBodyPortal = !portalElement || portalElement === document.body;
1281
+ const portalRect = isBodyPortal ? null : portalElement.getBoundingClientRect();
1282
+ const portalScrollLeft = isBodyPortal ? window.scrollX : portalElement.scrollLeft;
1283
+ const portalScrollTop = isBodyPortal ? window.scrollY : portalElement.scrollTop;
1284
+ if (!(rect.bottom > 0 && rect.top < viewportHeight && rect.right > 0 && rect.left < viewportWidth)) {
1277
1285
  dropdownStyle.value = {
1278
- position: "absolute",
1279
- left: `${rect.left - containerRect.left}px`,
1280
- width: `${width}px`,
1281
- maxHeight: `${maxHeight}px`,
1282
- pointerEvents: "auto",
1283
- zIndex: "9999",
1284
- ...shouldOpenUpward ? { bottom: `${containerRect.bottom - rect.top + 1}px` } : { top: `${rect.bottom - containerRect.top - 1}px` }
1286
+ ...dropdownStyle.value,
1287
+ visibility: "hidden"
1285
1288
  };
1286
1289
  return;
1287
1290
  }
1291
+ const spaceBelow = Math.max(viewportHeight - rect.bottom - gap, 0);
1292
+ const spaceAbove = Math.max(rect.top - gap, 0);
1293
+ const measuredHeight = dropdownMenuRef.value.offsetHeight;
1294
+ const shouldOpenUpward = measuredHeight > spaceBelow && spaceAbove > spaceBelow;
1295
+ const maxHeight = Math.min(240, shouldOpenUpward ? spaceAbove : spaceBelow);
1296
+ const menuHeight = Math.min(measuredHeight || maxHeight, maxHeight);
1297
+ const maxWidth = Math.max(viewportWidth - gap * 2, 0);
1298
+ const width = Math.min(Math.max(rect.width, 160), maxWidth);
1299
+ const leftInViewport = Math.max(gap, Math.min(rect.left, viewportWidth - width - gap));
1300
+ const left = isBodyPortal ? leftInViewport + window.scrollX : leftInViewport - portalRect.left + portalScrollLeft;
1301
+ const triggerTop = isBodyPortal ? rect.top + window.scrollY : rect.top - portalRect.top + portalScrollTop;
1302
+ const triggerBottom = isBodyPortal ? rect.bottom + window.scrollY : rect.bottom - portalRect.top + portalScrollTop;
1303
+ const top = shouldOpenUpward ? triggerTop - menuHeight - 1 : triggerBottom - 1;
1288
1304
  dropdownStyle.value = {
1289
- position: "fixed",
1290
- left: `${Math.max(rect.left, 8)}px`,
1305
+ position: "absolute",
1306
+ left: `${left}px`,
1307
+ top: `${Math.max(portalScrollTop + gap, top)}px`,
1291
1308
  width: `${width}px`,
1292
1309
  maxHeight: `${maxHeight}px`,
1293
1310
  pointerEvents: "auto",
1294
1311
  zIndex: "9999",
1295
- ...shouldOpenUpward ? { bottom: `${viewportHeight - rect.top + 1}px` } : { top: `${rect.bottom - 1}px` }
1312
+ visibility: isDropdownReady.value ? "visible" : "hidden"
1296
1313
  };
1297
1314
  };
1315
+ const scheduleDropdownPositionUpdate = () => {
1316
+ if (!isOpen.value || positionFrame !== null) return;
1317
+ positionFrame = window.requestAnimationFrame(() => {
1318
+ positionFrame = null;
1319
+ updateDropdownPosition();
1320
+ });
1321
+ };
1322
+ const handleDropdownScroll = (event) => {
1323
+ if (!isOpen.value) return;
1324
+ const scrollTarget = event.target;
1325
+ const portalElement = teleportTarget.value instanceof HTMLElement ? teleportTarget.value : null;
1326
+ if (!(!portalElement || portalElement === document.body ? scrollTarget === document || scrollTarget === document.documentElement || scrollTarget === document.body : scrollTarget === portalElement)) isOpen.value = false;
1327
+ };
1328
+ const cancelDropdownFrames = () => {
1329
+ if (positionFrame !== null) {
1330
+ window.cancelAnimationFrame(positionFrame);
1331
+ positionFrame = null;
1332
+ }
1333
+ if (revealFrame !== null) {
1334
+ window.cancelAnimationFrame(revealFrame);
1335
+ revealFrame = null;
1336
+ }
1337
+ };
1338
+ const disconnectResizeObserver = () => {
1339
+ resizeObserver?.disconnect();
1340
+ resizeObserver = null;
1341
+ };
1342
+ const refreshDropdownPosition = async () => {
1343
+ if (!isOpen.value) return;
1344
+ cancelDropdownFrames();
1345
+ isDropdownReady.value = false;
1346
+ dropdownStyle.value = {
1347
+ ...dropdownStyle.value,
1348
+ visibility: "hidden"
1349
+ };
1350
+ await nextTick();
1351
+ updateDropdownPosition();
1352
+ if (typeof ResizeObserver !== "undefined") {
1353
+ disconnectResizeObserver();
1354
+ resizeObserver = new ResizeObserver(scheduleDropdownPositionUpdate);
1355
+ resizeObserver.observe(triggerRef.value);
1356
+ resizeObserver.observe(dropdownMenuRef.value);
1357
+ }
1358
+ revealFrame = window.requestAnimationFrame(() => {
1359
+ revealFrame = null;
1360
+ if (!isOpen.value) return;
1361
+ isDropdownReady.value = true;
1362
+ updateDropdownPosition();
1363
+ });
1364
+ };
1298
1365
  const closeDropdown = (event) => {
1299
1366
  const clickedInsideTrigger = rootRef.value?.contains(event.target);
1300
1367
  const clickedInsideMenu = dropdownMenuRef.value?.contains(event.target);
@@ -1451,10 +1518,12 @@ var _sfc_main$27 = /*@__PURE__*/ Object.assign({ inheritAttrs: false }, {
1451
1518
  document.addEventListener("selectionchange", syncTriggerValueSelection);
1452
1519
  document.addEventListener("keydown", handleDropdownKeydown, true);
1453
1520
  document.addEventListener("keydown", handleTypeaheadKeydown, true);
1454
- window.addEventListener("resize", updateDropdownPosition);
1455
- window.addEventListener("scroll", updateDropdownPosition, true);
1521
+ window.addEventListener("resize", scheduleDropdownPositionUpdate);
1522
+ window.addEventListener("scroll", handleDropdownScroll, true);
1456
1523
  });
1457
1524
  onBeforeUnmount(() => {
1525
+ cancelDropdownFrames();
1526
+ disconnectResizeObserver();
1458
1527
  clearTypeaheadQuery();
1459
1528
  document.removeEventListener("click", closeDropdown);
1460
1529
  document.removeEventListener("pointermove", handleTriggerValuePointerMove);
@@ -1462,11 +1531,14 @@ var _sfc_main$27 = /*@__PURE__*/ Object.assign({ inheritAttrs: false }, {
1462
1531
  document.removeEventListener("selectionchange", syncTriggerValueSelection);
1463
1532
  document.removeEventListener("keydown", handleDropdownKeydown, true);
1464
1533
  document.removeEventListener("keydown", handleTypeaheadKeydown, true);
1465
- window.removeEventListener("resize", updateDropdownPosition);
1466
- window.removeEventListener("scroll", updateDropdownPosition, true);
1534
+ window.removeEventListener("resize", scheduleDropdownPositionUpdate);
1535
+ window.removeEventListener("scroll", handleDropdownScroll, true);
1467
1536
  });
1468
1537
  watch(isOpen, async (open) => {
1469
1538
  if (!open) {
1539
+ cancelDropdownFrames();
1540
+ disconnectResizeObserver();
1541
+ isDropdownReady.value = false;
1470
1542
  resetTriggerValueSelectionState();
1471
1543
  searchQuery.value = "";
1472
1544
  highlightedOptionValue.value = null;
@@ -1476,8 +1548,7 @@ var _sfc_main$27 = /*@__PURE__*/ Object.assign({ inheritAttrs: false }, {
1476
1548
  clearTypeaheadQuery();
1477
1549
  syncTeleportTarget();
1478
1550
  syncDarkMode();
1479
- await nextTick();
1480
- updateDropdownPosition();
1551
+ await refreshDropdownPosition();
1481
1552
  if (props.searchable) {
1482
1553
  await nextTick();
1483
1554
  await syncHighlightedOption();
@@ -1490,6 +1561,7 @@ var _sfc_main$27 = /*@__PURE__*/ Object.assign({ inheritAttrs: false }, {
1490
1561
  watch(filteredOptions, async () => {
1491
1562
  if (!isOpen.value || !props.searchable) return;
1492
1563
  await syncHighlightedOption();
1564
+ scheduleDropdownPositionUpdate();
1493
1565
  });
1494
1566
  watch(() => props.modelValue, () => {
1495
1567
  if (!isSelectingTriggerValue.value && triggerValueRef.value) triggerValueRef.value.scrollLeft = 0;
@@ -1521,12 +1593,12 @@ var _sfc_main$27 = /*@__PURE__*/ Object.assign({ inheritAttrs: false }, {
1521
1593
  key: 0,
1522
1594
  to: teleportTarget.value
1523
1595
  }, [createVNode(Transition, {
1524
- "enter-active-class": "transition-all duration-200 ease-out",
1525
- "enter-from-class": "opacity-0 transform scale-95 -translate-y-2",
1526
- "enter-to-class": "opacity-100 transform scale-100 translate-y-0",
1527
- "leave-active-class": "transition-all duration-150 ease-in",
1528
- "leave-from-class": "opacity-100 transform scale-100 translate-y-0",
1529
- "leave-to-class": "opacity-0 transform scale-95 -translate-y-2"
1596
+ "enter-active-class": "transition-opacity duration-150 ease-out",
1597
+ "enter-from-class": "opacity-0",
1598
+ "enter-to-class": "opacity-100",
1599
+ "leave-active-class": "transition-opacity duration-100 ease-in",
1600
+ "leave-from-class": "opacity-100",
1601
+ "leave-to-class": "opacity-0"
1530
1602
  }, {
1531
1603
  default: withCtx(() => [isOpen.value ? (openBlock(), createElementBlock("div", {
1532
1604
  key: 0,
@@ -1534,7 +1606,10 @@ var _sfc_main$27 = /*@__PURE__*/ Object.assign({ inheritAttrs: false }, {
1534
1606
  ref: dropdownMenuRef,
1535
1607
  class: normalizeClass([{ dark: isDarkMode.value }, props.ui.dropdownRoot]),
1536
1608
  style: normalizeStyle(dropdownStyle.value)
1537
- }, [createElementVNode("div", { class: normalizeClass(dropdownClasses.value) }, [
1609
+ }, [createElementVNode("div", {
1610
+ class: normalizeClass(dropdownClasses.value),
1611
+ style: normalizeStyle({ maxHeight: dropdownStyle.value.maxHeight })
1612
+ }, [
1538
1613
  __props.searchable ? withDirectives((openBlock(), createElementBlock("input", {
1539
1614
  key: 0,
1540
1615
  ref_key: "searchInputRef",
@@ -1582,7 +1657,7 @@ var _sfc_main$27 = /*@__PURE__*/ Object.assign({ inheritAttrs: false }, {
1582
1657
  style: normalizeStyle(darkTextStyle.value)
1583
1658
  }, toDisplayString(optionText(option)), 5))], 42, _hoisted_3$12);
1584
1659
  }), 128))
1585
- ], 2)], 6)) : createCommentVNode("", true)]),
1660
+ ], 6)], 6)) : createCommentVNode("", true)]),
1586
1661
  _: 1
1587
1662
  })], 8, ["to"])) : createCommentVNode("", true)], 2);
1588
1663
  };
@@ -2740,18 +2815,18 @@ var _sfc_main$18 = {
2740
2815
  });
2741
2816
  };
2742
2817
  const loadTinyMce = async () => {
2743
- const tinymceModule = await import("./tinymce-C38hRTpx.js").then((m) => /* @__PURE__ */ __toESM(m.default));
2818
+ const tinymceModule = await import("./tinymce-CNM1pVpN.js").then((m) => /* @__PURE__ */ __toESM(m.default));
2744
2819
  const tinymce = tinymceModule.default ?? tinymceModule;
2745
2820
  if (typeof globalThis !== "undefined" && !globalThis.tinymce) globalThis.tinymce = tinymce;
2746
2821
  await Promise.all([
2747
- import("./dom-BXn8qn2o.js"),
2748
- import("./default-CZa89wEE.js"),
2749
- import("./silver-BMTgS4Sf.js"),
2750
- import("./code-3Xpqq54w.js"),
2751
- import("./image--oDAPWpF.js"),
2752
- import("./link-CHw8DHTU.js"),
2753
- import("./lists-BT5R_kh4.js"),
2754
- import("./table-3K-TAswh.js")
2822
+ import("./dom-DWHiyR3v.js"),
2823
+ import("./default-C4FT6dfa.js"),
2824
+ import("./silver-d01FSbql.js"),
2825
+ import("./code-BK8o2dAP.js"),
2826
+ import("./image-BaKhUKgQ.js"),
2827
+ import("./link-BOMcpPKJ.js"),
2828
+ import("./lists-CbzaQ5ui.js"),
2829
+ import("./table-1U0Gbp89.js")
2755
2830
  ]);
2756
2831
  isEditorReady.value = true;
2757
2832
  };
@@ -6737,4 +6812,4 @@ var plugin_default = { install(app) {
6737
6812
  //#endregion
6738
6813
  export { SectionTitle_default as $, _sfc_main$12 as A, _sfc_main$22 as B, _sfc_main$5 as C, _sfc_main$9 as D, _sfc_main$8 as E, ColorPicker_default as F, _sfc_main$27 as G, DateRangeInput_default as H, _sfc_main$18 as I, _sfc_main$30 as J, _sfc_main$28 as K, _sfc_main$19 as L, _sfc_main$14 as M, _sfc_main$15 as N, _sfc_main$10 as O, _sfc_main$16 as P, _sfc_main$34 as Q, _sfc_main$20 as R, useSidebar as S, _sfc_main$7 as T, DateInput_default as U, _sfc_main$23 as V, _sfc_main$26 as W, _sfc_main$32 as X, _sfc_main$31 as Y, _sfc_main$33 as Z, SidebarGroupContent_default as _, _sfc_main$1 as a, __commonJSMin as at, SidebarContent_default as b, _sfc_main$4 as c, SidebarMenuItem_default as d, _sfc_main$36 as et, SidebarMenuButton_default as f, SidebarGroupLabel_default as g, SidebarHeader_default as h, _sfc_main as i, _sfc_main$40 as it, _sfc_main$13 as j, _sfc_main$11 as k, SidebarTrigger_default as l, SidebarInset_default as m, ToastContainer_default as n, _sfc_main$38 as nt, _sfc_main$2 as o, SidebarMenu_default as p, _sfc_main$29 as q, Toast_default as r, _sfc_main$39 as rt, _sfc_main$3 as s, plugin_default as t, _sfc_main$37 as tt, SidebarProvider_default as u, SidebarGroup_default as v, _sfc_main$6 as w, Sidebar_default as x, SidebarFooter_default as y, _sfc_main$21 as z };
6739
6814
 
6740
- //# sourceMappingURL=plugin-Bnh8KnIk.js.map
6815
+ //# sourceMappingURL=plugin-DRrNUku-.js.map