@enos5/enos-vue-default 1.10.10 → 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 (29) hide show
  1. package/dist/{code-DUVB4tIV.js → code-BK8o2dAP.js} +2 -2
  2. package/dist/{code-DUVB4tIV.js.map → code-BK8o2dAP.js.map} +1 -1
  3. package/dist/components/InputGroup.vue.d.ts +2 -2
  4. package/dist/components/TableList.vue.d.ts +11 -0
  5. package/dist/components/TableSearch.vue.d.ts +11 -0
  6. package/dist/components/TinyEditor.vue.d.ts +1 -1
  7. package/dist/{default-1TOd8dTK.js → default-C4FT6dfa.js} +2 -2
  8. package/dist/{default-1TOd8dTK.js.map → default-C4FT6dfa.js.map} +1 -1
  9. package/dist/{dom-jAfhtA8C.js → dom-DWHiyR3v.js} +2 -2
  10. package/dist/{dom-jAfhtA8C.js.map → dom-DWHiyR3v.js.map} +1 -1
  11. package/dist/{image-BGRj_Ccg.js → image-BaKhUKgQ.js} +2 -2
  12. package/dist/{image-BGRj_Ccg.js.map → image-BaKhUKgQ.js.map} +1 -1
  13. package/dist/index.js +1 -1
  14. package/dist/index.node.js +1 -1
  15. package/dist/{link-BxDzytzM.js → link-BOMcpPKJ.js} +2 -2
  16. package/dist/{link-BxDzytzM.js.map → link-BOMcpPKJ.js.map} +1 -1
  17. package/dist/{lists-BATjTmGn.js → lists-CbzaQ5ui.js} +2 -2
  18. package/dist/{lists-BATjTmGn.js.map → lists-CbzaQ5ui.js.map} +1 -1
  19. package/dist/{plugin-DivPJd-4.js → plugin-DRrNUku-.js} +154 -67
  20. package/dist/plugin-DRrNUku-.js.map +1 -0
  21. package/dist/{silver-DkukrlK0.js → silver-d01FSbql.js} +2 -2
  22. package/dist/{silver-DkukrlK0.js.map → silver-d01FSbql.js.map} +1 -1
  23. package/dist/styles.css +21 -40
  24. package/dist/{table-BHzeP3X1.js → table-1U0Gbp89.js} +2 -2
  25. package/dist/{table-BHzeP3X1.js.map → table-1U0Gbp89.js.map} +1 -1
  26. package/dist/{tinymce-CkB_b7FZ.js → tinymce-CNM1pVpN.js} +2 -2
  27. package/dist/{tinymce-CkB_b7FZ.js.map → tinymce-CNM1pVpN.js.map} +1 -1
  28. package/package.json +1 -1
  29. package/dist/plugin-DivPJd-4.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"lists-BATjTmGn.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
  };
@@ -1930,7 +2005,7 @@ var _hoisted_3$11 = [
1930
2005
  var _hoisted_4$8 = { class: "flex items-center justify-between" };
1931
2006
  var _hoisted_5$6 = { key: 0 };
1932
2007
  var _hoisted_6$6 = { key: 1 };
1933
- var _hoisted_7$6 = { key: 2 };
2008
+ var _hoisted_7$5 = { key: 2 };
1934
2009
  var DateRangeInput_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__ */ Object.assign({ inheritAttrs: false }, {
1935
2010
  __name: "DateRangeInput",
1936
2011
  props: {
@@ -2285,7 +2360,7 @@ var DateRangeInput_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/*
2285
2360
  onMouseleave: handleDateLeave
2286
2361
  }, toDisplayString(day.date.getDate()), 43, _hoisted_3$11)]);
2287
2362
  }), 128))]),
2288
- createElementVNode("div", { class: normalizeClass(["mt-4 pt-4 border-t border-neutral-200 dark:border-neutral-800", props.ui.footer]) }, [createElementVNode("div", _hoisted_4$8, [createElementVNode("div", { class: normalizeClass(["text-xs text-neutral-500 dark:text-neutral-400", props.ui.footerText]) }, [startDate.value && endDate.value ? (openBlock(), createElementBlock("div", _hoisted_5$6, " Range: " + toDisplayString(daysBetween.value) + " days ", 1)) : startDate.value ? (openBlock(), createElementBlock("div", _hoisted_6$6, " Select end date ")) : (openBlock(), createElementBlock("div", _hoisted_7$6, " Select start date "))], 2), startDate.value || endDate.value ? (openBlock(), createElementBlock("button", {
2363
+ createElementVNode("div", { class: normalizeClass(["mt-4 pt-4 border-t border-neutral-200 dark:border-neutral-800", props.ui.footer]) }, [createElementVNode("div", _hoisted_4$8, [createElementVNode("div", { class: normalizeClass(["text-xs text-neutral-500 dark:text-neutral-400", props.ui.footerText]) }, [startDate.value && endDate.value ? (openBlock(), createElementBlock("div", _hoisted_5$6, " Range: " + toDisplayString(daysBetween.value) + " days ", 1)) : startDate.value ? (openBlock(), createElementBlock("div", _hoisted_6$6, " Select end date ")) : (openBlock(), createElementBlock("div", _hoisted_7$5, " Select start date "))], 2), startDate.value || endDate.value ? (openBlock(), createElementBlock("button", {
2289
2364
  key: 0,
2290
2365
  type: "button",
2291
2366
  class: normalizeClass(["text-xs text-red-600 hover:text-red-700 dark:text-red-400 dark:hover:text-red-300 transition-colors", props.ui.clearButton]),
@@ -2740,18 +2815,18 @@ var _sfc_main$18 = {
2740
2815
  });
2741
2816
  };
2742
2817
  const loadTinyMce = async () => {
2743
- const tinymceModule = await import("./tinymce-CkB_b7FZ.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-jAfhtA8C.js"),
2748
- import("./default-1TOd8dTK.js"),
2749
- import("./silver-DkukrlK0.js"),
2750
- import("./code-DUVB4tIV.js"),
2751
- import("./image-BGRj_Ccg.js"),
2752
- import("./link-BxDzytzM.js"),
2753
- import("./lists-BATjTmGn.js"),
2754
- import("./table-BHzeP3X1.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
  };
@@ -2873,8 +2948,8 @@ var _hoisted_3$9 = { class: "min-w-0 flex-1" };
2873
2948
  var _hoisted_4$7 = { class: "flex items-start gap-3" };
2874
2949
  var _hoisted_5$5 = { class: "min-w-0 flex-1" };
2875
2950
  var _hoisted_6$5 = ["disabled", "aria-label"];
2876
- var _hoisted_7$5 = { class: "mt-4 space-y-4" };
2877
- var _hoisted_8$3 = ["aria-label", "aria-valuenow"];
2951
+ var _hoisted_7$4 = { class: "mt-4 space-y-4" };
2952
+ var _hoisted_8$2 = ["aria-label", "aria-valuenow"];
2878
2953
  var _hoisted_9$1 = {
2879
2954
  key: 0,
2880
2955
  class: "absolute inset-0 bg-[linear-gradient(to_right,#fff,transparent)]"
@@ -3427,7 +3502,7 @@ var ColorPicker_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__
3427
3502
  "aria-label": unref(t)("Pick color from screen"),
3428
3503
  onClick: pickFromScreen
3429
3504
  }, [createVNode(unref(EyeDropperIcon), { class: "size-5" })], 10, _hoisted_6$5)) : createCommentVNode("", true)
3430
- ]), createElementVNode("div", _hoisted_7$5, [
3505
+ ]), createElementVNode("div", _hoisted_7$4, [
3431
3506
  createElementVNode("div", {
3432
3507
  ref_key: "saturationRef",
3433
3508
  ref: saturationRef,
@@ -3448,7 +3523,7 @@ var ColorPicker_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__
3448
3523
  class: normalizeClass(["pointer-events-none absolute size-4 -translate-x-1/2 -translate-y-1/2 rounded-full border-2 border-white shadow-[0_0_0_1px_rgba(0,0,0,0.3)]", props.ui.saturationHandle]),
3449
3524
  style: normalizeStyle(saturationHandleStyle.value)
3450
3525
  }, null, 6)
3451
- ], 46, _hoisted_8$3),
3526
+ ], 46, _hoisted_8$2),
3452
3527
  createElementVNode("div", _hoisted_11, [!isRainbowVariant.value ? (openBlock(), createElementBlock("div", _hoisted_12, [createElementVNode("div", { class: normalizeClass(["flex items-center justify-between text-xs font-medium text-neutral-500 dark:text-neutral-400", props.ui.sectionLabel]) }, [createElementVNode("label", { for: fieldId.value ? `${fieldId.value}-hue` : void 0 }, toDisplayString(unref(t)("Hue")), 9, _hoisted_13), createElementVNode("span", null, toDisplayString(Math.round(hue.value)) + "°", 1)], 2), createElementVNode("input", {
3453
3528
  id: fieldId.value ? `${fieldId.value}-hue` : void 0,
3454
3529
  type: "range",
@@ -4361,7 +4436,7 @@ var _hoisted_3$8 = { class: "mx-auto flex size-12 shrink-0 items-center justify-
4361
4436
  var _hoisted_4$6 = { class: "mt-3 text-center sm:mt-0 sm:ms-4 sm:text-start" };
4362
4437
  var _hoisted_5$4 = { class: "text-lg font-medium text-neutral-950 dark:text-neutral-50" };
4363
4438
  var _hoisted_6$4 = { class: "mt-4 text-sm text-neutral-600 dark:text-neutral-200" };
4364
- var _hoisted_7$4 = { class: "flex flex-col-reverse gap-4 border-t border-neutral-200 bg-neutral-50 px-6 py-4 text-end dark:border-neutral-800 dark:bg-neutral-900/60 lg:flex-row lg:justify-end lg:gap-0" };
4439
+ var _hoisted_7$3 = { class: "flex flex-col-reverse gap-4 border-t border-neutral-200 bg-neutral-50 px-6 py-4 text-end dark:border-neutral-800 dark:bg-neutral-900/60 lg:flex-row lg:justify-end lg:gap-0" };
4365
4440
  var _sfc_main$13 = {
4366
4441
  __name: "ConfirmationModal",
4367
4442
  props: {
@@ -4401,7 +4476,7 @@ var _sfc_main$13 = {
4401
4476
  position: __props.position,
4402
4477
  onClose: close
4403
4478
  }, {
4404
- default: withCtx(() => [createElementVNode("div", _hoisted_1$17, [createElementVNode("div", _hoisted_2$11, [createElementVNode("div", _hoisted_3$8, [createVNode(unref(ExclamationTriangleIcon), { class: "size-6 text-red-600 dark:text-neutral-100" })]), createElementVNode("div", _hoisted_4$6, [createElementVNode("h3", _hoisted_5$4, [renderSlot(_ctx.$slots, "title")]), createElementVNode("div", _hoisted_6$4, [renderSlot(_ctx.$slots, "content")])])])]), createElementVNode("div", _hoisted_7$4, [renderSlot(_ctx.$slots, "footer")])]),
4479
+ default: withCtx(() => [createElementVNode("div", _hoisted_1$17, [createElementVNode("div", _hoisted_2$11, [createElementVNode("div", _hoisted_3$8, [createVNode(unref(ExclamationTriangleIcon), { class: "size-6 text-red-600 dark:text-neutral-100" })]), createElementVNode("div", _hoisted_4$6, [createElementVNode("h3", _hoisted_5$4, [renderSlot(_ctx.$slots, "title")]), createElementVNode("div", _hoisted_6$4, [renderSlot(_ctx.$slots, "content")])])])]), createElementVNode("div", _hoisted_7$3, [renderSlot(_ctx.$slots, "footer")])]),
4405
4480
  _: 3
4406
4481
  }, 8, [
4407
4482
  "show",
@@ -5468,7 +5543,7 @@ var _hoisted_3$4 = { class: "flex items-center gap-3" };
5468
5543
  var _hoisted_4$3 = { class: "text-sm font-medium text-neutral-700 dark:text-neutral-100" };
5469
5544
  var _hoisted_5$3 = { class: "flex flex-wrap items-center gap-2" };
5470
5545
  var _hoisted_6$3 = ["onClick"];
5471
- var _hoisted_7$3 = { class: "text-xs text-neutral-500 dark:text-neutral-200" };
5546
+ var _hoisted_7$2 = { class: "text-xs text-neutral-500 dark:text-neutral-200" };
5472
5547
  var _sfc_main$4 = {
5473
5548
  __name: "SortControls",
5474
5549
  props: {
@@ -5524,7 +5599,7 @@ var _sfc_main$4 = {
5524
5599
  class: "w-3 h-3 ml-1 inline"
5525
5600
  })) : createCommentVNode("", true)
5526
5601
  ], 10, _hoisted_6$3);
5527
- }), 128))])]), createElementVNode("div", _hoisted_7$3, toDisplayString(__props.count) + " " + toDisplayString(__props.countLabel), 1)])]);
5602
+ }), 128))])]), createElementVNode("div", _hoisted_7$2, toDisplayString(__props.count) + " " + toDisplayString(__props.countLabel), 1)])]);
5528
5603
  };
5529
5604
  }
5530
5605
  };
@@ -5590,25 +5665,23 @@ var _sfc_main$3 = {
5590
5665
  //#endregion
5591
5666
  //#region src/components/TableSearch.vue
5592
5667
  var _hoisted_1$4 = { class: "flex flex-col items-start gap-4 lg:flex-row lg:flex-wrap lg:items-center lg:justify-between" };
5593
- var _hoisted_2$3 = { class: "flex w-full min-w-0 flex-1 flex-col gap-3 lg:flex-row lg:items-center" };
5594
- var _hoisted_3$3 = { class: "min-w-0 flex-1" };
5595
- var _hoisted_4$2 = {
5668
+ var _hoisted_2$3 = {
5596
5669
  key: 0,
5597
5670
  class: "flex shrink-0 flex-col items-start gap-3 sm:flex-row sm:items-center lg:w-auto"
5598
5671
  };
5599
- var _hoisted_5$2 = {
5672
+ var _hoisted_3$3 = {
5600
5673
  key: 0,
5601
5674
  class: "flex items-center"
5602
5675
  };
5603
- var _hoisted_6$2 = {
5676
+ var _hoisted_4$2 = {
5604
5677
  key: 1,
5605
5678
  class: "flex items-center text-xs text-neutral-500 dark:text-neutral-400 sm:w-auto sm:text-sm lg:w-auto"
5606
5679
  };
5607
- var _hoisted_7$2 = {
5680
+ var _hoisted_5$2 = {
5608
5681
  key: 0,
5609
5682
  class: "ml-2"
5610
5683
  };
5611
- var _hoisted_8$2 = { class: "font-medium text-neutral-700 dark:text-neutral-200" };
5684
+ var _hoisted_6$2 = { class: "font-medium text-neutral-700 dark:text-neutral-200" };
5612
5685
  var _sfc_main$2 = {
5613
5686
  __name: "TableSearch",
5614
5687
  props: {
@@ -5656,6 +5729,11 @@ var _sfc_main$2 = {
5656
5729
  type: String,
5657
5730
  default: "server",
5658
5731
  validator: (value) => ["client", "server"].includes(value)
5732
+ },
5733
+ searchFieldsLayout: {
5734
+ type: String,
5735
+ default: "inline",
5736
+ validator: (value) => ["inline", "stacked"].includes(value)
5659
5737
  }
5660
5738
  },
5661
5739
  emits: ["update:modelValue", "update:showDeleted"],
@@ -5670,8 +5748,10 @@ var _sfc_main$2 = {
5670
5748
  get: () => props.showDeleted,
5671
5749
  set: (value) => emit("update:showDeleted", value)
5672
5750
  });
5751
+ const searchContentClasses = computed(() => props.searchFieldsLayout === "stacked" ? "flex w-full min-w-0 flex-1 flex-col gap-3" : "flex w-full min-w-0 flex-1 flex-col gap-3 lg:flex-row lg:items-center");
5752
+ const searchFieldsClasses = computed(() => props.searchFieldsLayout === "stacked" ? "w-full min-w-0" : "min-w-0 flex-1");
5673
5753
  return (_ctx, _cache) => {
5674
- return openBlock(), createElementBlock("div", { class: normalizeClass(__props.cardClass) }, [createElementVNode("div", _hoisted_1$4, [createElementVNode("div", _hoisted_2$3, [__props.searchbar ? (openBlock(), createBlock(_sfc_main$16, {
5754
+ return openBlock(), createElementBlock("div", { class: normalizeClass(__props.cardClass) }, [createElementVNode("div", _hoisted_1$4, [createElementVNode("div", { class: normalizeClass(searchContentClasses.value) }, [__props.searchbar ? (openBlock(), createBlock(_sfc_main$16, {
5675
5755
  key: 0,
5676
5756
  modelValue: model.value,
5677
5757
  "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => model.value = $event),
@@ -5681,14 +5761,14 @@ var _sfc_main$2 = {
5681
5761
  }, {
5682
5762
  "leading-icon": withCtx(() => [createVNode(unref(Search), { class: "h-5 w-5" })]),
5683
5763
  _: 1
5684
- }, 8, ["modelValue", "placeholder"])) : createCommentVNode("", true), createElementVNode("div", _hoisted_3$3, [renderSlot(_ctx.$slots, "search-fields")])]), __props.showDeletedToggle || __props.count !== null || _ctx.$slots.controls ? (openBlock(), createElementBlock("div", _hoisted_4$2, [
5685
- __props.showDeletedToggle ? (openBlock(), createElementBlock("div", _hoisted_5$2, [createVNode(_sfc_main$20, {
5764
+ }, 8, ["modelValue", "placeholder"])) : createCommentVNode("", true), createElementVNode("div", { class: normalizeClass(searchFieldsClasses.value) }, [renderSlot(_ctx.$slots, "search-fields")], 2)], 2), __props.showDeletedToggle || __props.count !== null || _ctx.$slots.controls ? (openBlock(), createElementBlock("div", _hoisted_2$3, [
5765
+ __props.showDeletedToggle ? (openBlock(), createElementBlock("div", _hoisted_3$3, [createVNode(_sfc_main$20, {
5686
5766
  modelValue: showDeletedModel.value,
5687
5767
  "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => showDeletedModel.value = $event),
5688
5768
  label: __props.showDeletedLabel
5689
5769
  }, null, 8, ["modelValue", "label"])])) : createCommentVNode("", true),
5690
5770
  renderSlot(_ctx.$slots, "controls"),
5691
- __props.count !== null ? (openBlock(), createElementBlock("div", _hoisted_6$2, [createElementVNode("span", null, toDisplayString(__props.count) + " " + toDisplayString(__props.countLabel), 1), model.value ? (openBlock(), createElementBlock("span", _hoisted_7$2, [createTextVNode(toDisplayString(__props.queryLabel) + " ", 1), createElementVNode("span", _hoisted_8$2, " \"" + toDisplayString(model.value) + "\" ", 1)])) : createCommentVNode("", true)])) : createCommentVNode("", true)
5771
+ __props.count !== null ? (openBlock(), createElementBlock("div", _hoisted_4$2, [createElementVNode("span", null, toDisplayString(__props.count) + " " + toDisplayString(__props.countLabel), 1), model.value ? (openBlock(), createElementBlock("span", _hoisted_5$2, [createTextVNode(toDisplayString(__props.queryLabel) + " ", 1), createElementVNode("span", _hoisted_6$2, " \"" + toDisplayString(model.value) + "\" ", 1)])) : createCommentVNode("", true)])) : createCommentVNode("", true)
5692
5772
  ])) : createCommentVNode("", true)])], 2);
5693
5773
  };
5694
5774
  }
@@ -5818,6 +5898,11 @@ var _sfc_main$1 = {
5818
5898
  type: String,
5819
5899
  default: "server",
5820
5900
  validator: (value) => ["client", "server"].includes(value)
5901
+ },
5902
+ searchFieldsLayout: {
5903
+ type: String,
5904
+ default: "inline",
5905
+ validator: (value) => ["inline", "stacked"].includes(value)
5821
5906
  }
5822
5907
  },
5823
5908
  emits: [
@@ -5913,6 +5998,7 @@ var _sfc_main$1 = {
5913
5998
  "show-deleted-toggle": __props.searchShowDeletedToggle,
5914
5999
  "show-deleted-label": __props.searchShowDeletedLabel,
5915
6000
  "search-mode": __props.searchMode,
6001
+ "search-fields-layout": __props.searchFieldsLayout,
5916
6002
  "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => searchQuery.value = $event),
5917
6003
  "onUpdate:showDeleted": updateSearchShowDeleted
5918
6004
  }, createSlots({ _: 2 }, [_ctx.$slots["search-fields"] ? {
@@ -5932,7 +6018,8 @@ var _sfc_main$1 = {
5932
6018
  "show-deleted",
5933
6019
  "show-deleted-toggle",
5934
6020
  "show-deleted-label",
5935
- "search-mode"
6021
+ "search-mode",
6022
+ "search-fields-layout"
5936
6023
  ])) : createCommentVNode("", true), createElementVNode("div", { class: normalizeClass(["bg-white/90 backdrop-blur-sm dark:bg-neutral-950/90", __props.isCard ? "animate-fadeIn rounded-2xl border border-neutral-200 shadow-sm dark:border-neutral-800 md:mx-0 overflow-hidden" : ""]) }, [createElementVNode("div", { class: normalizeClass(["overflow-x-auto", __props.isCard ? "rounded-t-xl" : ""]) }, [createElementVNode("table", { class: normalizeClass(joinClasses("min-w-full divide-y divide-neutral-200 dark:divide-neutral-800", __props.tableClass)) }, [createElementVNode("thead", { class: normalizeClass(joinClasses("bg-neutral-50/80 dark:bg-neutral-900/80", __props.theadClass)) }, [createElementVNode("tr", { class: normalizeClass(__props.headerRowClass) }, [(openBlock(true), createElementBlock(Fragment, null, renderList(__props.columns, (column) => {
5937
6024
  return openBlock(), createElementBlock(Fragment, { key: column.key }, [column.sortable ? (openBlock(), createBlock(_sfc_main$3, {
5938
6025
  key: 0,
@@ -6725,4 +6812,4 @@ var plugin_default = { install(app) {
6725
6812
  //#endregion
6726
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 };
6727
6814
 
6728
- //# sourceMappingURL=plugin-DivPJd-4.js.map
6815
+ //# sourceMappingURL=plugin-DRrNUku-.js.map