hyperfloat 0.0.0-stage → 1.0.45
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/dist/hyperfloat.css +9 -0
- package/dist/hyperfloat.css.map +1 -0
- package/dist/hyperfloat.d.ts +297 -0
- package/dist/hyperfloat.js +6466 -0
- package/dist/hyperfloat.js.map +1 -0
- package/dist/hyperfloat.min.js +9 -0
- package/dist/hyperfloat.min.js.map +1 -0
- package/dist/hyperfloat.mjs +9 -0
- package/dist/hyperfloat.mjs.map +1 -0
- package/dist/styles.d.ts +3 -0
- package/package.json +51 -3
- package/README.md +0 -3
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hyperfloat.js","sources":["../../packages/core/src/constants/hooks.js","../../packages/core/src/constants/placementOptions.js","../../packages/core/src/constants/allowedValues.js","../../packages/core/src/utils/resolveRenderOutput.js","../../packages/core/src/utils/customRendering.js","../../packages/core/src/utils/createElement.js","../../packages/core/src/utils/toArray.js","../../packages/core/src/utils/generateUUID.js","../../packages/core/src/utils/getValueType.js","../../packages/core/src/utils/resolveCssLength.js","../../packages/core/src/utils/getComputedCssLength.js","../../packages/core/src/utils/resolveCssBox.js","../../packages/core/src/utils/resolveCssSize.js","../../packages/core/src/utils/isOutsideViewport.js","../../packages/core/src/utils/normalizeDelay.js","../../packages/core/src/manager/validate.js","../../packages/core/src/manager/mount.js","../../packages/core/src/manager/hooks.js","../../packages/core/src/manager/actions.js","../../packages/core/src/manager/raf.js","../../packages/core/src/manager/pointer.js","../../packages/core/src/manager/sync.js","../../packages/core/src/manager/options.js","../../packages/core/src/helpers/normalizers.js","../../packages/core/src/helpers/validators.js","../../packages/core/src/helpers/parsers.js","../../packages/core/src/manager.js","../../packages/core/src/helpers/getManager.js","../../packages/core/src/instance/hooks.js","../../packages/core/src/helpers/listener.js","../../packages/core/src/instance/dismiss.js","../../packages/core/src/helpers/calcOffsetMargin.js","../../packages/core/src/helpers/applicators.js","../../packages/core/src/instance/setters.js","../../packages/core/src/constants/baseOptions.js","../../packages/core/src/constants/breakpointOptions.js","../../packages/core/src/instance/breakpoints.js","../../packages/core/src/helpers/computePosition/calcPosition.js","../../packages/core/src/helpers/computePosition/calcOffset.js","../../packages/core/src/helpers/computePosition/calcShift.js","../../packages/core/src/helpers/computePosition/calcFlip.js","../../packages/core/src/helpers/computePosition.js","../../packages/core/src/instance/registry.js","../../packages/core/src/helpers/interpolate.js","../../packages/core/src/manager/prioritize.js","../../packages/core/src/instance/draggable.js","../../packages/core/src/instance/sync.js","../../packages/core/src/instance/actions.js","../../packages/core/src/helpers/console.js","../../packages/core/src/instance/mount.js","../../packages/core/src/instance/initializer.js","../../packages/core/src/instance.js","../../packages/core/browser.js"],"sourcesContent":["// src/constants/hooks.js\n\nexport default [\n \n 'onBeforeInit',\n\n 'onInit',\n\n 'onAfterInit',\n\n 'onReady',\n\n 'onSync',\n\n 'onDestroy',\n\n 'onBeforeOpen',\n\n 'onOpen',\n\n 'onAfterOpen',\n\n 'onBeforeClose',\n\n 'onClose',\n\n 'onAfterClose',\n\n 'onRefresh',\n\n 'onUpdate',\n\n /*'onBeforeUpdate',\n\n 'onUpdate',\n\n 'onAfterUpdate',*/\n\n 'onMove',\n];","// src/constants/placementOptions.js\n\nexport default [\n 'center',\n\n 'top',\n 'top-start',\n 'top-end',\n\n 'right',\n 'right-start',\n 'right-end',\n\n 'bottom',\n 'bottom-start',\n 'bottom-end',\n\n 'left',\n 'left-start',\n 'left-end',\n]; ","// src/constants/allowedValues.js\n\nimport hookList from \"./hooks.js\";\nimport placementOptions from \"./placementOptions.js\";\n\n//------------------------------------------------------\n// Hooks\n\nconst hookValues = {};\n\nhookList.forEach(hook => {\n\n hookValues[hook] = {\n\n type: [\n 'null',\n 'function'\n ],\n default: null\n };\n});\n\nexport default {\n\n id: {\n type: 'string',\n default: ''\n },\n\n meta: {\n type: ['null', 'object'],\n default: {\n type: 'default',\n variant: 'default',\n role: 'dialog',\n }\n },\n\n accessibility: {\n type: ['null', 'object'],\n default: {\n role: 'dialog',\n label: 'dialog',\n modal: false,\n },\n },\n\n anchor: {\n type: ['string'],\n values: [\n 'viewport',\n 'element',\n 'pointer'\n ],\n default: 'viewport'\n },\n\n open: {\n type: [\n 'null',\n 'string',\n 'element',\n 'node',\n 'nodeList',\n 'array',\n 'object'\n ],\n default: null\n },\n\n close: {\n type: [\n 'null',\n 'string',\n 'element',\n 'node',\n 'nodeList',\n 'array'\n ],\n default: null\n },\n\n ignoreCloseAll: {\n type: 'boolean',\n default: false\n },\n\n autoOpen: {\n type: 'boolean',\n default: false\n },\n\n destroyAfterClose: {\n type: 'boolean',\n default: false\n },\n\n overlay: {\n type: ['boolean', 'object'],\n default: null,\n /*\n {\n color: 'black',\n blur: true,\n }\n */\n },\n\n placement: {\n type: 'string',\n values: placementOptions,\n default: 'center'\n },\n\n boundaryPadding: {\n type: ['string', 'number', 'object', 'null'],\n default: 0,\n },\n\n draggable: {\n type: ['boolean', 'object'],\n default: null,\n /*\n {\n bounds: false,\n }\n */\n },\n\n offset: {\n type: ['string', 'number', 'object', 'null'],\n default: null,\n /*\n {\n mainAxis: 0,\n crossAxis: 0,\n alignmentAxis: null\n }\n */\n },\n\n flip: {\n type: ['object', 'boolean', 'null'],\n default: null,\n /*\n {\n mainAxis: true,\n crossAxis: true\n }\n */\n },\n\n shift: {\n type: ['object', 'boolean', 'null'],\n default: null,\n /*\n {\n mainAxis: true,\n crossAxis: false,\n padding: 0\n }\n */\n },\n\n dismiss: {\n type: 'object',\n default: {\n outsideClick: false,\n outsideWheel: false,\n escapeKey: false,\n pointerLeave: false,\n closeWithParent: false,\n timeout: null,\n idleTimeout: null,\n }\n },\n\n size: {\n type: ['string', 'number', 'object'],\n default: 'small',\n },\n\n breakpoints: {\n type: 'object',\n default: {}\n },\n\n content: {\n type: [\n 'null',\n 'string',\n 'function',\n 'node'\n ],\n default: null\n },\n\n header: {\n type: [\n 'null',\n 'string',\n 'function',\n 'node'\n ],\n default: null\n },\n\n footer: {\n type: [\n 'null',\n 'string',\n 'function',\n 'node'\n ],\n default: null\n },\n\n vars: {\n type: [\n 'null',\n 'object',\n ],\n default: {}\n },\n\n interpolate: {\n type: ['null', 'function'],\n default: null\n },\n\n debug: {\n type: 'boolean',\n default: false\n },\n\n\n ...hookValues,\n};","export function resolveRenderOutput(renderItem, context = {}) {\n\n if (typeof renderItem === 'function') {\n\n let result = renderItem.call(context);\n\n /*if (result instanceof Promise) {\n result = await result;\n }*/\n\n // No suported promises\n\n return resolveRenderOutput(result, context);\n }\n\n // Promise direta\n if (renderItem instanceof Promise) {\n\n // No suported promises\n\n return resolveRenderOutput(renderItem, context);\n\n //return resolveRenderOutput(await renderItem, context);\n }\n\n // Se for um Node (elemento DOM), retorna direto\n if (renderItem instanceof Node) {\n\n return renderItem;\n }\n\n // Se for string\n if (typeof renderItem === 'string') {\n const trimmed = renderItem.trim();\n\n // Detecta se é HTML com uma tag no início\n const isHTML = /^<.+?>/.test(trimmed);\n\n if (isHTML) {\n\n const tempContainer = document.createElement('div');\n tempContainer.innerHTML = trimmed;\n\n const fragment = document.createDocumentFragment();\n\n while (tempContainer.firstChild) {\n fragment.appendChild(tempContainer.firstChild);\n }\n\n return fragment;\n\n } else {\n\n // Texto puro\n return document.createTextNode(trimmed);\n }\n }\n\n // Fallback\n return renderItem;\n};","import {\n resolveRenderOutput,\n} from './resolveRenderOutput.js';\n\nexport function customRendering(rawRender, context = {}, insertIn = null) {\n\n if (!rawRender) return null;\n\n //if (!key || !insertIn) return null;\n //if (!this.customRenderList[key] || typeof key !== 'string') return null;\n //const rawRender = this.customRenderList[key];\n\n const customRender = resolveRenderOutput(rawRender, context);\n // await resolveRenderOutput(rawRender, context);\n\n if (!customRender) return null;\n\n if (!insertIn) {\n\n const hyperfloatRoot = document.querySelector('._trivon-ui-hyperfloat');\n\n let sandbox = hyperfloatRoot.querySelector('[data-hyperfloat-sandbox]');\n\n if (!sandbox) {\n\n sandbox = document.createElement('div');\n sandbox.dataset.hyperfloatSandbox = \"\";\n hyperfloatRoot.appendChild(sandbox);\n }\n\n insertIn = sandbox;\n }\n\n let inserted;\n\n if (customRender instanceof DocumentFragment) {\n\n inserted = Array.from(customRender.childNodes);\n insertIn.appendChild(customRender);\n\n } else if (Array.isArray(customRender)) {\n\n inserted = customRender;\n insertIn.append(...customRender);\n\n } else if (customRender instanceof Node) {\n\n inserted = [customRender];\n insertIn.appendChild(customRender);\n }\n\n return inserted?.[0] || null;\n};","\nimport {\n customRendering,\n} from './customRendering.js';\n\nexport function createElement(tag, options = {}) {\n\n const element = document.createElement(tag);\n\n // Adiciona classes, atributos e texto, se fornecidos\n if (options.class) {\n\n const classList = Array.isArray(options.class)\n ? options.class\n : options.class.trim().split(/\\s+/);\n element.classList.add(...classList);\n }\n\n if (options.attrs) {\n\n Object.entries(options.attrs).forEach(([key, value]) => element.setAttribute(key, value));\n }\n\n if (options.text) element.textContent = options.text;\n\n const innerHtml = options.html ?? options.innerHTML ?? options.innerHtml ?? options.content ?? null;\n\n if (innerHtml) {\n //await customRendering(innerHtml, {}, element);\n customRendering(innerHtml, {}, element);\n }\n\n if (options.style) this.applyStyle(element, options.style);\n\n if (!options.appendTo && !options.prependTo) {\n\n const hyperfloatRoot = document.querySelector('._trivon-ui-hyperfloat');\n\n let sandbox = hyperfloatRoot.querySelector('[data-hyperfloat-sandbox]');\n\n if (!sandbox) {\n\n sandbox = document.createElement('div');\n sandbox.dataset.hyperfloatSandbox = \"\";\n hyperfloatRoot.appendChild(sandbox);\n }\n \n sandbox.appendChild(element);\n }\n\n if (options.appendTo) {\n options.appendTo.appendChild(element);\n }\n\n if (options.prependTo) {\n options.prependTo.prepend(element);\n }\n\n return element;\n};","// src/utils/toArray.js\n\n/**\n * Converte qualquer entrada (seletor, elemento, array misto, NodeList)\n * em um Array de elementos DOM reais, sem duplicações.\n *\n * @param {any} value - Alvo(s) a resolver\n * @param {Element|Document|string|null} [scope=document] - Contexto de busca\n * @param {boolean} [leaveStrings=false] - Se true, preserva strings em vez de consultar no DOM\n * @returns {Array<Element|string>}\n */\n\nexport function toArray(\n value,\n scope = typeof document !== 'undefined' ? document : null,\n leaveStrings = false\n) {\n if (!value) return [];\n\n const hasElement = typeof Element !== 'undefined';\n const isElement = (val) => hasElement && val instanceof Element;\n\n // Retorno rápido se já for um elemento DOM isolado\n if (isElement(value)) return [value];\n\n // Resolve o escopo se ele tiver sido passado como um seletor em string\n const resolvedScope =\n typeof scope === 'string' && typeof document !== 'undefined'\n ? document.querySelector(scope)\n : scope;\n\n const uniqueSet = new Set();\n\n const collect = (val) => {\n\n if (!val) return;\n\n // 1. Elemento físico do DOM válido\n if (isElement(val)) {\n uniqueSet.add(val);\n return;\n }\n\n // 2. Seletor CSS em String\n if (typeof val === 'string') {\n\n if (leaveStrings) {\n uniqueSet.add(val);\n return;\n }\n\n if (resolvedScope && typeof resolvedScope.querySelectorAll === 'function') {\n\n try {\n const nodes = resolvedScope.querySelectorAll(val);\n\n for (let i = 0; i < nodes.length; i++) {\n\n uniqueSet.add(nodes[i]);\n }\n\n } catch {\n // Seletores CSS inválidos são ignorados silenciosamente\n }\n }\n return;\n }\n\n // Arrays, NodeLists, HTMLCollections e Array-likes\n if (\n Array.isArray(val) ||\n (\n typeof val === 'object' &&\n typeof val.length === 'number' &&\n typeof val !== 'function'\n )\n ) {\n for (let i = 0; i < val.length; i++) {\n\n collect(val[i]);\n }\n }\n };\n\n collect(value);\n\n return Array.from(uniqueSet);\n}\n\n// Deprecated\n\n/*export function toArray(value, scope = document, leaveStrings = false) {\n\n if (value instanceof HTMLElement) return [value];\n\n // Helpers internos\n const isString = val => typeof val === 'string';\n const isArray = Array.isArray;\n const isArrayLike = val =>\n\n val && typeof val.length === 'number' && typeof val !== 'function';\n\n const flatten = (arr, keepStrings = false) => {\n\n return arr.reduce((acc, val) => {\n //arr.reduce((acc, val) => {\n\n if (isArray(val)) {\n\n acc.push(...flatten(val, keepStrings));\n\n } else if (!keepStrings && isString(val)) {\n\n acc.push(...toArray(val, scope, keepStrings));\n\n } else {\n\n acc.push(val);\n }\n return acc;\n\n }, []);\n };\n\n // Lógica principal\n\n if (\n isString(value) &&\n !leaveStrings\n ) {\n\n try {\n return Array.from(scope.querySelectorAll(value));\n\n } catch (e) {\n\n return [];\n }\n }\n\n if (isArray(value)) {\n\n return flatten(value, leaveStrings);\n }\n\n if (isArrayLike(value)) {\n\n return Array.from(value);\n }\n\n return value\n ? [value]\n : [];\n};*/","/*export function generateUUID({\n prefix = 'uuid',\n blacklist = []\n} = {}) {\n\n const uuid = `${prefix}-${crypto.randomUUID()}`;\n\n if (blacklist.includes(uuid)) {\n\n return generateUUID({\n prefix,\n blacklist\n });\n }\n\n return uuid;\n\n};*/\n\nexport function generateUUID({\n prefix = 'uuid',\n blacklist = []\n} = {}) {\n\n let result = '';\n\n // API nativa do Web Crypto (Navegador HTTPS / Vercel Edge / Cloudflare)\n if (typeof crypto !== 'undefined' && typeof crypto.randomUUID === 'function') {\n\n result = `${prefix}-${crypto.randomUUID()}`;\n }\n else {\n\n result = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c) => {\n const r = (Math.random() * 16) | 0;\n const v = c === 'x' ? r : (r & 0x3) | 0x8;\n return v.toString(16);\n });\n }\n\n if (blacklist.includes(result)) {\n\n return generateUUID({\n prefix,\n blacklist\n });\n }\n\n return result;\n};","export function getValueType(value) {\n\n if (value === null) {\n return 'null';\n }\n\n if (Array.isArray(value)) {\n return 'array';\n }\n\n if (\n typeof Node !== 'undefined' &&\n value instanceof Node\n ) {\n return 'node';\n }\n\n if (typeof value === 'object') {\n return 'object';\n }\n\n return typeof value;\n}","export function resolveCssLength(value) {\n\n if (typeof value === 'string') {\n\n const trimmed = value.trim();\n\n /*if (/^-?[\\d.]+(px|%|em|rem|vh|vw)$/.test(trimmed)) {\n return trimmed; // mantém valores negativos também\n }*/\n\n if (\n /^-?[\\d.]+(px|%|em|rem|vh|vw)$/.test(trimmed) ||\n /^(var|calc|min|max|clamp)\\(.+\\)$/.test(trimmed)\n ) {\n return trimmed;\n }\n\n /*\n\n '10px'\n\n '1.5rem'\n\n '-20%'\n\n 'var(--space)'\n\n var(--space)\n\n calc(var(--space) * 2)\n\n calc(100% - 24px)\n\n min(20px, 5vw)\n\n max(12px, 1rem)\n\n clamp(8px, 2vw, 24px)\n */\n\n const parsed = parseHyperfloat(trimmed);\n return isNaN(parsed) ? null : `${parsed}px`; // trata como px\n }\n\n if (typeof value === 'number') {\n return `${value}px`; // número -> px\n }\n\n return '0px'; // fallback\n};","export function getComputedCssLength(value) {\n\n if (typeof value === 'number') {\n value = `${value}px`;\n }\n\n const temp = document.createElement('div');\n temp.style.all = 'initial';\n temp.style.position = 'absolute';\n temp.style.visibility = 'hidden';\n temp.style.pointerEvents = 'none';\n temp.style.width = value;\n document.body.appendChild(temp);\n\n const computed = getComputedStyle(temp).width;\n document.body.removeChild(temp);\n\n const numeric = parseHyperfloat(computed);\n\n return isNaN(numeric)\n ? 0\n : numeric;\n}","\nimport {\n resolveCssLength,\n} from './resolveCssLength.js';\n\nimport {\n getComputedCssLength,\n} from './getComputedCssLength.js';\n\nexport function resolveCssBox(rawSize) {\n\n //------------------------------------------------------\n // String\n\n if (typeof rawSize === 'string') {\n\n const value = rawSize.trim();\n\n const parts = value.split(/\\s+/);\n\n if (parts.length === 1) {\n\n const size = getComputedCssLength(resolveCssLength(parts[0]));\n\n return {\n top: size,\n right: size,\n bottom: size,\n left: size,\n };\n }\n\n else if (parts.length === 2) {\n\n const topBottom = getComputedCssLength(resolveCssLength(parts[0]));\n const leftRight = getComputedCssLength(resolveCssLength(parts[1]));\n\n return {\n top: topBottom,\n right: leftRight,\n bottom: topBottom,\n left: leftRight\n };\n }\n\n else if (parts.length === 3) {\n\n const top = getComputedCssLength(resolveCssLength(parts[0]));\n const leftRight = getComputedCssLength(resolveCssLength(parts[1]));\n const bottom = getComputedCssLength(resolveCssLength(parts[2]));\n\n return {\n top: top,\n right: leftRight,\n bottom: bottom,\n left: leftRight,\n };\n }\n\n else if (parts.length === 4) {\n\n const top = getComputedCssLength(resolveCssLength(parts[0]));\n const left = getComputedCssLength(resolveCssLength(parts[1]));\n const bottom = getComputedCssLength(resolveCssLength(parts[2]));\n const right = getComputedCssLength(resolveCssLength(parts[3]));\n\n return {\n top,\n right,\n bottom,\n left,\n };\n }\n }\n\n //------------------------------------------------------\n // Number\n\n if (typeof rawSize === 'number') {\n\n // const size = `${rawSize}px`;\n const size = getComputedCssLength(resolveCssLength(rawSize));\n\n return {\n top: size,\n right: size,\n bottom: size,\n left: size,\n };\n }\n\n //------------------------------------------------------\n // Object\n\n if (\n typeof rawSize === 'object'\n && rawSize !== null\n ) {\n return {\n top: getComputedCssLength(resolveCssLength(rawSize?.top)),\n right: getComputedCssLength(resolveCssLength(rawSize?.right)),\n bottom: getComputedCssLength(resolveCssLength(rawSize?.bottom)),\n left: getComputedCssLength(resolveCssLength(rawSize?.left)),\n };\n }\n\n // Fallback\n return {\n top: 0,\n bottom: 0,\n left: 0,\n right: 0,\n };\n};","\nimport {\n resolveCssLength,\n} from './resolveCssLength.js';\n\nexport function resolveCssSize(rawSize) {\n\n //------------------------------------------------------\n // String\n\n if (typeof rawSize === 'string') {\n\n const value = rawSize.trim();\n\n const parts = value.split(/\\s+/);\n\n if (parts.length === 1) {\n\n const size = resolveCssLength(parts[0]);\n return {\n width: size,\n height: size,\n };\n }\n\n else if (parts.length === 2) {\n\n return {\n width: resolveCssLength(parts[0]),\n height: resolveCssLength(parts[1]),\n };\n }\n }\n\n //------------------------------------------------------\n // Number\n\n if (typeof rawSize === 'number') {\n\n // const size = `${rawSize}px`;\n const size = resolveCssLength(rawSize);\n\n return {\n width: size,\n height: size,\n };\n }\n\n //------------------------------------------------------\n // Object\n\n if (\n typeof rawSize === 'object'\n && rawSize !== null\n ) {\n return {\n width: resolveCssLength(rawSize?.width),\n height: resolveCssLength(rawSize?.height),\n };\n }\n\n // Fallback seguro\n return {\n width: 'auto',\n height: 'auto',\n };\n};","export function isOutsideViewport(element) {\n\n let rect = null;\n\n if (\n typeof element === 'object'\n && element !== null\n ) {\n\n // Quando já recebe o rect\n rect = element;\n }\n else {\n rect = element.getBoundingClientRect();\n }\n\n const isOutsite =\n rect.bottom <= 0 ||\n rect.top >= window.innerHeight ||\n rect.right <= 0 ||\n rect.left >= window.innerWidth;\n\n /*const isVisible =\n rect.bottom > 0 &&\n rect.top < window.innerHeight &&\n rect.right > 0 &&\n rect.left < window.innerWidth;*/\n\n return isOutsite;\n}","export function normalizeDelay(value, fallback = 4000) {\n\n return Math.max(\n 0,\n Math.trunc(\n Number(value ?? fallback)\n )\n );\n}","// src/manager/validate.js\n\nimport allowedValues from '../constants/allowedValues.js';\n\nimport {\n getValueType,\n} from '../utils/index.js';\n\nexport function validate(m, data = {}) {\n\n const schema = allowedValues;\n\n const output = {};\n\n for (const [key, rules] of Object.entries(schema)) {\n\n let value = data[key];\n\n //--------------------------------------------------\n // Not provided\n\n // New (Commented)\n /*if (\n value === undefined ||\n value === null\n ) {\n\n if (rules.default !== null) {\n\n output[key] = structuredClone(\n rules.default\n );\n\n }\n continue;\n }*/\n\n //--------------------------------------------------\n // Type validation\n\n const allowedTypes = Array.isArray(rules.type)\n ? rules.type\n : [rules.type];\n\n // New (add)\n allowedTypes.push('undefined');\n\n const currentType = getValueType(value);\n\n if (!allowedTypes.includes(currentType)) {\n\n console.warn(\n `[Trivon Ui - Hyperfloat] Invalid type for \"${key}\".`,\n `Expected: ${allowedTypes.join(', ')}`,\n `Received: ${currentType}`\n );\n\n output[key] = structuredClone(\n rules.default\n );\n\n continue;\n }\n\n //--------------------------------------------------\n // Normalize array\n\n if (\n rules.normalizeArray === true\n && currentType === 'string'\n ) {\n\n value = [value];\n }\n\n //--------------------------------------------------\n // Array item type validation\n\n if (\n rules.itemType\n && Array.isArray(value)\n ) {\n\n const invalidItems = value.filter(item => {\n\n return (\n getValueType(item)\n !== rules.itemType\n );\n\n });\n\n if (invalidItems.length) {\n\n console.warn(\n `[Trivon Ui - Hyperfloat] Invalid item type for \"${key}\".`,\n `Expected items of type: ${rules.itemType}`\n );\n\n output[key] = structuredClone(\n rules.default\n );\n\n continue;\n }\n }\n\n //--------------------------------------------------\n // Enum validation\n\n if (rules.values) {\n\n if (Array.isArray(value)) {\n\n const invalidValues = value.filter(\n\n item => !rules.values.includes(item)\n\n );\n\n if (invalidValues.length) {\n\n console.warn(\n\n `[Trivon Ui - Hyperfloat] Invalid values for \"${key}\".`,\n\n `Expected only: ${rules.values.join(', ')}`,\n\n `Received invalid: ${invalidValues.join(', ')}`\n\n );\n\n output[key] = structuredClone(\n\n rules.default\n\n );\n\n continue;\n\n }\n\n }\n\n else {\n\n if (!rules.values.includes(value)) {\n\n console.warn(\n `[Trivon Ui - Hyperfloat] Invalid value for \"${key}\".`,\n `Expected one of: ${rules.values.join(', ')}`,\n `Received: ${value}`\n );\n\n output[key] = structuredClone(\n rules.default\n );\n\n continue;\n }\n\n }\n }\n\n // output[key] = value;\n\n // New (add)\n if (value !== undefined) {\n\n output[key] = value;\n }\n }\n\n return output;\n}","// src/manager/mount.js\n\nexport function mount(m) {\n\n m._root = document.createElement('div');\n\n m._root.classList.add('_trivon-ui-hyperfloat');\n\n //console.log('Manager');\n\n m._root.style.setProperty('--trivon-ui-hyperfloat-z-index', m._config.zIndex);\n\n document.body.prepend(m._root); \n\n document.addEventListener('keydown', m._handlers.keydown); \n}","// src/manager/hooks.js\n\nexport function on(m, stage, callback, priority = 1000) {\n\n if (\n typeof callback === 'function'\n && m._listeners[stage]\n ) { \n \n m._listeners[stage].push({\n callback,\n priority\n });\n }\n}\n\nexport function off(m, stage, callback) {\n\n if (typeof callback === 'function' && m._listeners[stage]) {\n\n m._listeners[stage] = m._listeners[stage].filter(\n listener => listener.callback !== callback\n );\n }\n}\n\nexport async function callHook(m, stage) {\n\n if (!m._listeners[stage].length) return;\n\n // Ordena por prioridade antes de executar\n m._listeners[stage].sort((a, b) => a.priority - b.priority);\n\n for (const { callback, priority } of m._listeners[stage]) {\n\n try {\n await callback();\n\n } catch (e) {\n\n }\n }\n}","// src/manager/actions.js\n\nexport async function open(m, id, data = {}) {\n\n const hyperfloatInstance = m._instancesMap.get(id);\n\n if (hyperfloatInstance) {\n\n await hyperfloatInstance.open(data);\n }\n}\n\n//------------------------------------------------------\n// Close\n\nexport async function close(m, id, data = {}) {\n\n const hyperfloatInstance = m._instancesMap.get(id);\n\n if (hyperfloatInstance) {\n\n await hyperfloatInstance.close(data);\n }\n}\n\nexport async function closeAll(m, data = {}) {\n\n const { force = false, ...closeData } = data;\n\n for (const [id, instance] of m._instancesMap) {\n\n if (instance.ignoreCloseAll && !force) {\n continue;\n }\n\n await instance.close(closeData);\n }\n}\n\n//------------------------------------------------------\n// Destroy\n\nexport async function destroy(m, id, data = {}) {\n\n const hyperfloatInstance = m._instancesMap.get(id);\n\n if (hyperfloatInstance) {\n\n await hyperfloatInstance.destroy(data);\n //m._instancesMap.delete(id);\n }\n} \n\nexport async function destroyAll(m, data = {}) {\n\n for (const [id, hyperfloatInstance] of m._instancesMap) {\n\n await hyperfloatInstance.destroy(data);\n }\n\n m._instancesMap.clear();\n}","// src/manager/raf.js\n\nexport function autoRaf(m, state = true) {\n\n if (m._state.autoRafStarted) {\n\n if (m._config.autoRaf) {\n console.warn(\n 'Auto RAF has already been started. m setting can no longer be changed.'\n );\n } else {\n console.warn(\n 'The RAF mode has already been defined and is currently managed externally. m setting can no longer be changed.'\n );\n }\n return;\n }\n\n m._config.autoRaf = state;\n}\n\nexport function startAutoRaf(m) {\n\n if (\n !m._config.autoRaf ||\n m._state.autoRafStarted\n ) {\n return;\n }\n\n //console.log('startAutoRaf');\n\n m._state.autoRafStarted = true;\n\n const loop = (time) => {\n\n if (\n !m._config.autoRaf ||\n !m._state.autoRafStarted\n ) {\n return;\n }\n\n m._raf(time);\n\n requestAnimationFrame(loop);\n };\n\n requestAnimationFrame(loop);\n}\n\nexport function stopAutoRaf(m) {\n\n if (\n !m._config.autoRaf ||\n !m._state.autoRafStarted\n ) {\n return;\n }\n\n //console.log('stopAutoRaf');\n\n m._state.autoRafStarted = false;\n}\n\n/*export async function raf(m, time) {\n\n await m._callHook('raf', m);\n\n //console.log('raf'); \n}*/\n\n\nexport async function raf(m, time) {\n\n // Se o tempo não for informado (ex: chamada manual sem parâmetros), pega o tempo atual\n const currentTime = time ?? (typeof performance !== 'undefined'\n ? performance.now()\n : Date.now());\n\n //------------------------------------------------------\n // Delta Time Calculation\n\n if (!m._cache.lastRafTime) {\n\n m._cache.lastRafTime = currentTime;\n }\n\n const deltaTime = currentTime - m._cache.lastRafTime;\n m._cache.lastRafTime = currentTime;\n\n // Guarda informações úteis de tempo na instância do Manager\n m._cache.raf = {\n time: currentTime,\n deltaTime: deltaTime,\n };\n\n await m._callHook('raf', m);\n}","// src/manager/pointer.js\n\nexport function pointermove(m, e) {\n\n //console.log('pointermove');\n\n // await m._callHook('pointermove', m);\n\n m._cache.pointer.x = e.clientX;\n m._cache.pointer.y = e.clientY;\n\n /*const element = document.elementFromPoint(\n e.clientX,\n e.clientY\n );\n\n m._cache.pointer.target = element;*/\n} \n\n//------------------------------------------------------\n// Pointer Tracking\n\nexport function startPointerTracking(m) {\n\n //console.log('startPointerTracking');\n\n if (m._state.pointerTrackingStarted) return;\n\n m._state.pointerTrackingStarted = true;\n\n //------------------------------------------------------\n // Add\n\n window.addEventListener(\n 'pointermove',\n m._handlers.pointermove,\n {\n passive: true\n }\n );\n}\n\nexport function stopPointerTracking(m) {\n\n if (!m._state.pointerTrackingStarted) return;\n\n m._state.pointerTrackingStarted = false;\n\n //console.log('stopPointerTracking');\n\n window.removeEventListener(\n 'pointermove',\n m._handlers.pointermove\n );\n}","// src/manager/sync.js\n\nimport {\n startAutoRaf,\n stopAutoRaf,\n} from './raf.js';\n\nimport {\n startPointerTracking,\n stopPointerTracking\n} from './pointer.js';\n\nexport async function refresh(m) {\n\n await m._callHook('refresh', m);\n\n // Refresh version\n m._cache.refreshVersion++;\n\n //console.log('refresh');\n}\n\nexport async function update(m) {\n\n await m._callHook('update', m);\n\n // Refresh version\n m._cache.updateVersion++;\n\n //console.log('update');\n}\n\n\n// Acionado manualmente\n\nexport async function sync(m, args) {\n\n //console.log('Global Sync');\n\n await m._callHook('sync', m);\n}\n\nexport function syncPointerEngine(m, force = false) {\n\n //console.log('syncPointerEngine');\n\n let required = false;\n\n if (!force) {\n\n for (const [id, instance] of m._instancesMap) {\n\n if (\n /*(\n instance.anchor === 'pointer' ||\n instance.draggable?.enabled\n )*/\n instance.anchor === 'pointer' &&\n instance.opened\n ) {\n\n required = true;\n break;\n }\n }\n }\n\n if (\n force ||\n required\n ) {\n\n startAutoRaf(m);\n startPointerTracking(m);\n }\n else {\n\n stopAutoRaf(m);\n stopPointerTracking(m);\n }\n}","// src/manager/options.js\n\nexport function zIndex(m, value) {\n\n value = Number(value);\n\n m._config.zIndex = value;\n\n m._root.style.setProperty('--trivon-ui-hyperfloat-z-index', value);\n}","// src/helpers/resolvers.js\n\nimport placementOptions from '../constants/placementOptions.js';\n\nimport {\n resolveCssSize,\n resolveCssLength,\n getComputedCssLength,\n resolveCssBox,\n normalizeDelay,\n toArray\n} from '../utils/index.js';\n\nexport function normalizeSizeOptions(value) {\n\n // Presets válidos\n const presets = [\n 'auto',\n 'small',\n 'medium',\n 'large',\n 'full'\n ];\n\n if (\n typeof value === 'object'\n && value !== null\n ) {\n\n return {\n type: value.type ?? 'custom',\n width: value.width ?? '100%',\n height: value.height ?? '100%'\n }\n }\n\n else if (typeof value === 'string') {\n\n const _value = value.trim();\n\n if (presets.includes(_value)) {\n\n return {\n type: 'preset',\n width: _value,\n height: _value,\n };\n }\n }\n\n return {\n type: 'custom',\n ...resolveCssSize(value),\n };\n}\n\n//------------------------------------------------------\n// Placement\n\nexport function normalizePlacement(rawPlacement, anchor) {\n\n if (typeof rawPlacement === 'string') {\n\n const value = rawPlacement.trim();\n\n if (placementOptions.includes(value)) {\n return value;\n }\n }\n\n return anchor === 'viewport'\n ? 'center'\n : 'bottom';\n}\n\n//------------------------------------------------------\n// Overlay\n\nexport function normalizeOverlayOptions(value) {\n\n if (\n typeof value === 'boolean'\n && value !== null\n ) {\n return {\n enabled: value,\n color: 'black',\n blur: true,\n };\n }\n\n else if (\n typeof value === 'object'\n && value !== null\n ) {\n\n return {\n enabled: true,\n color: value.color || 'black',\n blur: value.blur === false\n ? false\n : true,\n };\n }\n\n return {\n enabled: false,\n color: 'black',\n blur: true,\n };\n};\n\n//------------------------------------------------------\n// Dismiss\n\nexport function normalizeDismissOptions(value) {\n\n if (\n typeof value === 'object'\n && value !== null\n ) {\n return {\n // Converte diretamente para boolean (true/false)\n outsideClick: !!value.outsideClick,\n\n outsideWheel: !!value.outsideWheel,\n\n escapeKey: !!value.escapeKey,\n\n // DX: 'mouseLeave' funciona como um alias para o moderno 'pointerLeave'\n pointerLeave: !!(value.pointerLeave || value.mouseLeave),\n\n closeWithParent: !!value.closeWithParent,\n\n timeout: value.timeout\n ? normalizeDelay(value.timeout)\n : null,\n\n idleTimeout: value.idleTimeout && value.timeout === undefined\n ? normalizeDelay(value.idleTimeout)\n : null,\n };\n }\n\n return {\n outsideClick: false,\n outsideWheel: false,\n escapeKey: false,\n pointerLeave: false,\n closeWithParent: false,\n timeout: null,\n idleTimeout: null,\n };\n}\n\n//------------------------------------------------------\n// Register Options\n\n/**\n * Normaliza opções de registro (strings, elementos, listas, objetos de config)\n * Retorna sempre um array no formato: [{ el: HTMLElement, event: string }, ...]\n *\n * @param {any} value\n * @returns {Array<{ el: Element, event: string }>}\n */\n\nexport function normalizeRegisterOptions(value) {\n\n if (!value) return [];\n\n let rawTargets = value;\n let resolvedEvent = 'click';\n\n // Suporte a objeto de configuração: { el: ..., event: ... }\n const isDomNode = (val) =>\n typeof Element !== 'undefined' && val instanceof Element;\n\n const isDomList = (val) =>\n (typeof NodeList !== 'undefined' && val instanceof NodeList) ||\n (typeof HTMLCollection !== 'undefined' && val instanceof HTMLCollection);\n\n if (\n typeof value === 'object' &&\n !Array.isArray(value) &&\n !isDomNode(value) &&\n !isDomList(value) &&\n 'el' in value\n ) {\n rawTargets = value.el;\n\n if (\n typeof value.event === 'string' &&\n value.event.trim()\n ) {\n resolvedEvent = value.event.trim();\n }\n }\n\n // Normaliza aliases de mouse para pointer\n const EVENT_ALIASES = {\n mouseenter: 'pointerenter',\n mousemove: 'pointermove'\n };\n resolvedEvent = EVENT_ALIASES[resolvedEvent] || resolvedEvent;\n\n if (!['click', 'pointerenter', 'pointermove'].includes(resolvedEvent)) {\n resolvedEvent = 'click';\n } \n\n // toArray entrega diretamente um Array de Elements únicos e válidos\n return toArray(rawTargets).map(el => ({\n el,\n event: resolvedEvent\n }));\n}\n\nexport function resolveHostHyperfloat(el) {\n\n const hostContainer = el.closest('[data-hyperfloat-id]');\n\n const hostHyperfloat = hostContainer\n ? hostContainer.dataset.hyperfloatId ?? null\n : null;\n\n return hostHyperfloat;\n};\n\n//------------------------------------------------------\n// Offset\n\n/*\n\nmainAxis:\nO eixo que percorre a lateral do elemento flutuante. Representa a distância (espaço ou margem) entre o elemento flutuante e o elemento de referência.\n\ncrossAxis:\nO eixo que percorre o alinhamento do elemento flutuante. Representa o deslizamento entre o elemento flutuante e o elemento de referência.\n\nalignmentAxis:\nThe same axis as crossAxis but applies only to aligned placements and inverts the end alignment. When set to a number, it overrides the crossAxis value.\n\nA positive number will move the hyperfloat element in the direction of the opposite edge to the one that is aligned, while a negative number the reverse.\n\n*/\n\nexport function normalizeOffsetOptions(value) {\n\n if (typeof value === 'number') {\n\n return {\n mainAxis: value,\n crossAxis: value,\n alignmentAxis: null,\n };\n }\n\n else if (typeof value === 'string') {\n\n const _value = getComputedCssLength(resolveCssLength(value));\n\n return {\n mainAxis: _value,\n crossAxis: 0,\n alignmentAxis: null,\n };\n }\n\n else if (\n typeof value === 'object'\n && value !== null\n ) {\n\n let mainAxis = getComputedCssLength(resolveCssLength(value.mainAxis ?? 0));\n let crossAxis = getComputedCssLength(resolveCssLength(value.crossAxis ?? 0));\n let alignmentAxis = value.alignmentAxis\n ? getComputedCssLength(resolveCssLength(value.alignmentAxis ?? 0))\n : null;\n\n if (alignmentAxis !== null) {\n crossAxis = 0;\n }\n\n return {\n mainAxis,\n crossAxis,\n alignmentAxis,\n };\n }\n\n return null;\n}\n\n//------------------------------------------------------\n// Main Cross Axis\n\nexport function normalizeMainCrossAxis(value) {\n\n if (typeof value === 'boolean') {\n\n return {\n mainAxis: value,\n crossAxis: value,\n };\n }\n else if (\n typeof value === 'object'\n && value !== null\n ) {\n return {\n mainAxis: value.mainAxis === true,\n crossAxis: value.crossAxis === true,\n };\n }\n\n return null;\n}\n\n\n//------------------------------------------------------\n// Flip & Shift\n\n/*\n\nmainAxis: \nEste é o eixo principal no qual o deslocamento é aplicado.\n\ncrossAxis:\nEste é o eixo transversal no qual o deslocamento é aplicado, o eixo oposto ao eixo principal (mainAxis).\n\nHabilitar esta opção pode fazer com que o elemento flutuante se sobreponha ao elemento de referência, o que pode não ser desejável e geralmente é substituído pelo middleware flip.\n\n*/\n\nexport function normalizeFlipOptions(value) {\n\n return normalizeMainCrossAxis(value);\n}\n\nexport function normalizeShiftOptions(value) {\n\n return normalizeMainCrossAxis(value);\n\n}\n\n//------------------------------------------------------\n// Boundary Padding\n\nexport function normalizeBoundaryPaddingOptions(value) {\n\n if (value == null) {\n return 0;\n }\n\n return resolveCssBox(value);\n}\n\n//------------------------------------------------------\n// Accessibility\n\nexport function normalizeAccessibilityOptions(value) {\n\n if (\n typeof value === 'object' &&\n value !== null &&\n Object.entries(value).length\n ) {\n return {\n role: value.role ?? 'dialog',\n label: value.label ?? 'dialog',\n modal: value.modal ?? false,\n };\n }\n\n return {\n role: 'dialog',\n label: 'dialog',\n modal: false,\n };\n}\n\n//------------------------------------------------------\n// Meta\n\nexport function normalizeMetaOptions(rawMeta) {\n\n if (\n typeof rawMeta === 'object'\n && rawMeta !== null\n ) {\n return {\n ...rawMeta,\n\n type: rawMeta.type ?? 'default',\n variant: rawMeta.variant ?? 'default',\n role: rawMeta.role ?? 'default',\n };\n }\n\n return {\n type: 'default',\n variant: 'default',\n role: 'dialog',\n };\n}\n\n\n//------------------------------------------------------\n// Draggable\n\nexport function normalizeDraggableOptions(value, anchor) {\n\n if (anchor !== 'viewport') {\n\n return {\n enabled: false,\n bounds: false,\n handle: null,\n };\n }\n\n else if (\n typeof value === 'boolean'\n && value !== null\n ) {\n\n return {\n enabled: value,\n bounds: false,\n handle: null,\n };\n }\n\n else if (\n typeof value === 'object'\n && value !== null\n ) {\n\n return {\n enabled: true,\n bounds: value.bounds === true,\n handle: null,\n };\n }\n\n return {\n enabled: false,\n bounds: false,\n handle: null,\n };\n};","// src/helpers/validators.js\n\n//------------------------------------------------------\n// Custom Rendering\n\nexport function validateCustomRendering(value) {\n\n if (\n typeof value === 'function' ||\n typeof value === 'string' ||\n value instanceof Node\n ) {\n return value;\n }\n\n return null;\n}\n\n","// src/helpers/parsers.js\n\nimport {\n normalizeDelay\n} from '../utils/normalizeDelay.js';\n\nimport {\n normalizeAccessibilityOptions,\n normalizeBoundaryPaddingOptions,\n normalizeDismissOptions,\n normalizeDraggableOptions,\n normalizeFlipOptions,\n normalizeMetaOptions,\n normalizeOffsetOptions,\n normalizeOverlayOptions,\n normalizePlacement,\n normalizeShiftOptions,\n normalizeSizeOptions,\n} from './normalizers.js';\n\nimport {\n validateCustomRendering\n} from './validators.js';\n\nexport function parseOptions(i, data = {}, prevent = []) {\n\n return {\n\n ...((data.meta !== undefined && !prevent.includes('meta')) && {\n meta: normalizeMetaOptions(data.meta ?? allowedValues.meta.default)\n }),\n\n ...((data.accessibility !== undefined && !prevent.includes('accessibility')) && {\n accessibility: normalizeAccessibilityOptions(data.accessibility ?? allowedValues.accessibility.default)\n }),\n\n ...((data.dismiss !== undefined && !prevent.includes('dismiss')) && {\n dismiss: normalizeDismissOptions(data.dismiss ?? allowedValues.dismiss.default)\n }),\n\n ...((data.destroyAfterClose !== undefined && !prevent.includes('destroyAfterClose')) && {\n destroyAfterClose: data.destroyAfterClose === true,\n }),\n\n ...((data.autoOpen !== undefined && !prevent.includes('autoOpen')) && {\n autoOpen: data.autoOpen === true,\n }),\n\n ...((data.ignoreCloseAll !== undefined && !prevent.includes('ignoreCloseAll')) && {\n ignoreCloseAll: data.ignoreCloseAll === true,\n }),\n\n ...((data.overlay !== undefined && !prevent.includes('overlay')) && {\n overlay: normalizeOverlayOptions(data.overlay ?? allowedValues.overlay.default)\n }),\n\n ...((data.placement !== undefined && !prevent.includes('placement')) && {\n placement: normalizePlacement(data.placement ?? allowedValues.placement.default,\n i.anchor\n )\n }), \n \n ...((data.boundaryPadding !== undefined && !prevent.includes('boundaryPadding')) && {\n boundaryPadding: normalizeBoundaryPaddingOptions(data.boundaryPadding ?? allowedValues.boundaryPadding.default)\n }),\n\n ...((data.draggable !== undefined && !prevent.includes('draggable')) && {\n\n draggable: normalizeDraggableOptions(data.draggable ?? allowedValues.draggable.default,\n i.anchor\n )\n }),\n\n ...((data.offset !== undefined && !prevent.includes('offset')) && {\n offset: normalizeOffsetOptions(data.offset ?? allowedValues.offset.default)\n }),\n\n ...((data.flip !== undefined && !prevent.includes('flip')) && {\n flip: normalizeFlipOptions(data.flip ?? allowedValues.flip.default)\n }),\n\n ...((data.shift !== undefined && !prevent.includes('shift')) && {\n shift: normalizeShiftOptions(data.shift ?? allowedValues.shift.default)\n }),\n\n ...((data.size !== undefined && !prevent.includes('size')) && {\n size: normalizeSizeOptions(data.size ?? allowedValues.size.default)\n }), \n \n ...((data.header !== undefined && !prevent.includes('header')) && {\n header: validateCustomRendering(data.header ?? allowedValues.header.default)\n }),\n\n ...((data.footer !== undefined && !prevent.includes('footer')) && {\n footer: validateCustomRendering(data.footer ?? allowedValues.footer.default)\n }),\n\n ...((data.breakpoints !== undefined && !prevent.includes('breakpoints')) && {\n breakpoints: data.breakpoints ?? {}\n }),\n\n ...((data.debug !== undefined && !prevent.includes('debug')) && {\n debug: data.debug === true,\n }),\n };\n}","// src/manager.js\n\nimport {\n validate\n} from './manager/validate.js';\n\nimport {\n mount\n} from './manager/mount.js';\n\nimport {\n on,\n off,\n callHook\n} from './manager/hooks.js';\n\nimport {\n open,\n close,\n closeAll,\n destroy,\n destroyAll,\n} from './manager/actions.js';\n\nimport {\n update,\n refresh,\n sync,\n syncPointerEngine,\n} from './manager/sync.js';\n\nimport {\n raf,\n autoRaf\n} from './manager/raf.js';\n\nimport {\n zIndex,\n} from './manager/options.js';\n\nimport {\n pointermove,\n} from './manager/pointer.js';\n\n//------------------------------------------------------\n// Helpers\n\nimport {\n generateUUID,\n} from './utils/index.js';\n\nimport {\n parseOptions\n} from './helpers/parsers.js';\n\nexport default class Manager {\n\n constructor() {\n\n this._instancesMap = new Map();\n\n this._root = null;\n\n this._openedInstances = {\n viewport: [],\n element: [],\n pointer: []\n };\n\n this._defaults = {};\n\n //------------------------------------------------------\n // Config\n\n this._config = {\n\n zIndex: 9999,\n\n autoRaf: true,\n // Poderá alternar antes de abrir o primeiro hyperfloat anchor pointer\n };\n\n //------------------------------------------------------\n // Listeners\n\n this._listeners = {\n\n update: [],\n refresh: [],\n raf: [],\n sync: []\n };\n\n //------------------------------------------------------\n // State\n\n this._state = {\n\n pointerTrackingStarted: false,\n\n autoRafStarted: false,\n };\n\n //------------------------------------------------------\n // Cache\n\n this._cache = {\n\n refreshVersion: 0,\n\n updateVersion: 0,\n\n pointer: {\n x: 0,\n y: 0,\n target: null\n },\n\n raf: {\n time: 0,\n deltaTime: 0,\n },\n\n lastRafTime: null,\n };\n\n //------------------------------------------------------\n // Handlers\n\n this._handlers = {\n\n keydown: this._onKeydown.bind(this),\n\n update: () => update(this),\n\n pointermove: (e) => pointermove(this, e),\n\n refresh: () => {\n\n if (this._refreshRaf) return;\n\n this._refreshRaf = requestAnimationFrame(() => {\n\n this._refreshRaf = null;\n\n refresh(this);\n });\n },\n };\n\n // Update\n this._update = this._handlers.update;\n\n window.addEventListener(\n 'scroll',\n this._handlers.update,\n {\n passive: true\n }\n );\n\n // Refresh\n this._refresh = this._handlers.refresh;\n\n window.addEventListener(\n 'resize',\n this._handlers.refresh\n );\n\n //------------------------------------------------------\n // Functions\n\n this._syncPointerEngine = (...args) => syncPointerEngine(this, ...args);\n this._sync = (...args) => sync(this, ...args);\n\n this._on = (...args) => on(this, ...args);\n this._off = (...args) => off(this, ...args);\n this._callHook = (...args) => callHook(this, ...args);\n\n this._open = async (id, data = {}) => await open(this, id, data);\n this._close = async (id, data = {}) => await close(this, id, data);\n this._closeAll = async (data = {}) => await closeAll(this, data);\n this._destroy = async (id, data = {}) => await destroy(this, id, data);\n this._destroyAll = async (data = {}) => await destroyAll(this, data);\n\n //------------------------------------------------------\n // Finaly\n\n mount(this);\n\n return this;\n }\n\n _onKeydown(event) {\n\n if (event.key === 'Escape') {\n\n this._closeFirstPriority({\n event: 'escape'\n });\n }\n }\n\n _setHyperfloatOpened(instance, status) {\n\n const id = instance.id;\n const anchor = instance.anchor;\n\n if (!status) { // Close\n\n if (this._openedInstances[anchor].includes(id)) {\n\n this._openedInstances[anchor] = this._openedInstances[anchor].filter(item => item !== id);\n }\n }\n else // Open\n {\n if (!this._openedInstances[anchor].includes(id)) {\n\n this._openedInstances[anchor].push(id);\n }\n }\n }\n\n _raf(time = null) {\n\n raf(this, time);\n }\n\n _getAll() {\n\n const instances = [];\n\n for (const [id, hyperfloatInstance] of this._instancesMap) {\n\n instances.push(hyperfloatInstance);\n }\n\n return instances;\n }\n\n _getOpened(anchor = null, allowOpening = false) {\n\n const instances = [];\n\n for (const [id, hyperfloatInstance] of this._instancesMap) {\n\n //------------------------------------------------------\n // Anchor filter\n\n if (\n anchor !== null &&\n hyperfloatInstance.anchor !== anchor\n ) {\n continue;\n }\n\n //------------------------------------------------------\n // State filter\n\n if (allowOpening) {\n\n if (\n !hyperfloatInstance.state.opened &&\n !hyperfloatInstance.state.opening\n ) {\n continue;\n }\n\n } else {\n\n if (!hyperfloatInstance.state.opened) {\n continue;\n }\n }\n\n instances.push(hyperfloatInstance);\n };\n\n return instances;\n }\n\n _getByPriority(operator = '>', priorityRef = 1000) {\n\n const instances = [];\n\n for (const [, hyperfloatInstance] of this._instancesMap) {\n\n if (!hyperfloatInstance.opened) {\n continue;\n }\n\n const priority = hyperfloatInstance._state.priority;\n\n const matches =\n operator === '>' ? priority > priorityRef :\n\n operator === '>=' ? priority >= priorityRef :\n\n operator === '<' ? priority < priorityRef :\n\n operator === '<=' ? priority <= priorityRef :\n\n operator === '==' ? priority === priorityRef :\n\n false;\n\n if (matches) {\n instances.push(hyperfloatInstance);\n }\n }\n\n instances.sort((a, b) => a._state.priority - b._state.priority);\n\n return instances;\n }\n\n _getElementsAbovePriority(priorityRef = 1000) {\n\n const boxes = [];\n\n for (const [id, hyperfloatInstance] of this._instancesMap) {\n\n const opened = hyperfloatInstance.opened;\n const priority = hyperfloatInstance._state.priority;\n const box = hyperfloatInstance.elements.box;\n const overlay = hyperfloatInstance.elements.overlay;\n\n if (\n opened &&\n priority > priorityRef\n ) {\n boxes.push(box);\n\n if (overlay) {\n boxes.push(overlay);\n }\n }\n }\n\n //console.log(boxes);\n\n return boxes;\n }\n\n //------------------------------------------------------\n // Config\n\n _setConfig(data = {}) {\n\n if (data.zIndex) {\n zIndex(this, data.zIndex);\n }\n\n if (data.autoRaf) {\n autoRaf(this, data.autoRaf);\n }\n }\n\n //------------------------------------------------------\n // Defaults\n\n _setDefaults(data) {\n\n if (data) {\n\n const newData = validate(this, data);\n\n this._defaults = parseOptions(this, newData, [\n 'ignoreCloseAll'\n ]);\n }\n }\n\n //------------------------------------------------------\n // Create\n\n _normalizeData(data) {\n\n const newData = validate(this, {\n\n ...data,\n\n id: data.id ?? generateUUID({\n //prefix: anchor,\n blacklist: Array.from(this._instancesMap.keys()),\n }),\n });\n\n if (newData.anchor === undefined) {\n newData.anchor = 'viewport';\n }\n\n newData.root = this._root;\n\n return newData;\n }\n\n //------------------------------------------------------\n // \n\n async _closeFirstPriority(data = {}) {\n\n //console.log(this._openedInstances);\n\n const openedInstances = Object.values(this._openedInstances).flat();\n\n let highestPriorityHyperfloat = null;\n\n if (openedInstances.length === 1) {\n\n const uniqueInstanceOpened = this._instancesMap.get(openedInstances[0]);\n\n if (uniqueInstanceOpened.dismiss.escapeKey) {\n highestPriorityHyperfloat = uniqueInstanceOpened;\n }\n }\n else {\n\n for (const [hyperfloatId, hyperfloatInstance] of this._instancesMap) {\n\n if (\n !openedInstances.includes(hyperfloatId)\n || !hyperfloatInstance.dismiss.escapeKey\n ) {\n continue;\n }\n\n if (\n !highestPriorityHyperfloat\n || hyperfloatInstance._state.priority > highestPriorityHyperfloat._state.priority\n ) {\n\n highestPriorityHyperfloat = hyperfloatInstance;\n\n }\n }\n }\n\n //console.log(openedInstances);\n\n //console.log(highestPriorityHyperfloat); \n\n if (highestPriorityHyperfloat) {\n\n await highestPriorityHyperfloat.close(data);\n }\n }\n};","// src/helpers/getManager.js\n\nimport Manager from \"../manager.js\";\n\nlet managerInstance = null;\n\n/*const ssrManager = new Proxy({}, {\n get: () => () => { }\n});*/\n\nconst ssrManager = new Proxy({}, {\n get: (target, prop) => {\n \n // Evita que o Node ache que é uma Promise\n if (prop === 'then') return undefined; \n \n return () => { };\n }\n});\n\nexport function getManager() {\n\n if (typeof window === \"undefined\") {\n return ssrManager;\n }\n\n managerInstance ??= new Manager();\n\n return managerInstance;\n}","// src/instance/hooks.js\n\nexport async function callHook(stage, i, data = {}, mustAwait = true) {\n\n const hooks = [\n i._data[stage],\n i[stage],\n ].filter(hook => typeof hook === 'function'); \n \n if (!hooks.length) {\n return;\n }\n\n for (const hook of hooks) {\n\n let result = hook.call(i, data);\n\n const isPromise = result && typeof result.then === 'function';\n\n if (isPromise) {\n\n if (!mustAwait) {\n console.error(\n `[Trivon Ui / Hyperfloat]: the hook \"${stage}\" must be synchronous. It cannot return a Promise.`\n );\n continue;\n }\n\n // Aguarda a Promise e reatribui o valor resolvido para 'result'\n result = await result;\n }\n\n // A mágica acontece aqui: avaliamos a resposta deste hook específico.\n // Se ele pediu prevent, nós paramos tudo e devolvemos esse resultado.\n if (\n result === false ||\n result?.prevent\n ) {\n\n // O 'return' dentro do for encerra o loop imediatamente\n // e devolve o valor para quem chamou 'await callHook(...)'\n return result;\n }\n }\n\n // Se o loop terminou sem nenhum hook bloquear a ação, \n // retornamos algo neutro (como true ou undefined) para permitir o fluxo.\n return true;\n}","// src/helpers/listener.js\n\nexport function addListener(i, target, event, handler, options = {}) {\n\n if (!target || typeof handler !== 'function') {\n return;\n }\n\n // Target Map\n let targetEvents = i._listenersMap.get(target);\n\n if (!targetEvents) {\n\n targetEvents = new Map();\n i._listenersMap.set(\n target,\n targetEvents\n );\n }\n\n // Events Map ('click', 'scroll', etc.)\n let handlersMap = targetEvents.get(event);\n\n if (!handlersMap) {\n\n handlersMap = new Map();\n targetEvents.set(\n event,\n handlersMap\n );\n }\n\n // Se o handler já existe para este evento, não duplica\n if (handlersMap.has(handler)) {\n return;\n }\n\n //console.log('addListener: ', target, event, handler);\n\n target.addEventListener(event, handler, options);\n\n // Salva a relação direta handler -> options (Busca instantânea)\n handlersMap.set(\n handler,\n options\n );\n}\n\n\nexport function removeListener(i, target, event, handler) {\n\n if (!target) return;\n\n const targetEvents = i._listenersMap.get(target);\n if (!targetEvents) return;\n\n const handlersMap = targetEvents.get(event);\n if (\n !handlersMap ||\n !handlersMap.has(handler)\n ) return;\n\n // Recupera as options originais (necessário caso use capture: true)\n const options = handlersMap.get(handler);\n\n // Remove do DOM\n target.removeEventListener(event, handler, options);\n\n //console.log('removeListener: ', target, event, handler);\n\n // Remove do mapa\n handlersMap.delete(handler);\n\n // Limpa nós vazios da árvore\n if (handlersMap.size === 0) {\n targetEvents.delete(event);\n }\n if (targetEvents.size === 0) {\n i._listenersMap.delete(target);\n }\n}\n\n\nexport function destroyListeners(i) {\n\n for (const [target, targetEvents] of i._listenersMap) {\n\n for (const [event, handlersMap] of targetEvents) {\n\n for (const [handler, options] of handlersMap) {\n\n target.removeEventListener(event, handler, options);\n }\n }\n }\n\n //console.log('destroyListeners: ', i);\n\n i._listenersMap.clear();\n}\n\n\nexport function removeTargetListeners(i, target) {\n\n if (!target) return;\n\n const targetEvents = i._listenersMap.get(target);\n if (!targetEvents) return;\n\n // Remove do DOM todos os eventos vinculados a este alvo por esta instância\n for (const [event, handlersMap] of targetEvents) {\n\n for (const [handler, options] of handlersMap) {\n \n target.removeEventListener(event, handler, options);\n }\n }\n\n // Remove do mapa de memória\n i._listenersMap.delete(target);\n\n // Limpa as flags para que, caso o elemento volte a ser Target no futuro,\n // ele permita ser vinculado novamente\n delete target.dataset.hyperfloatBound;\n delete target.dataset.hyperfloatOpened;\n}","// src/instance/dismiss.js\n\nimport { getManager } from '../helpers/getManager.js';\n\nimport {\n addListener\n} from '../helpers/listener.js';\n\nexport function syncDismiss(i) {\n\n if (i.dismiss.pointerLeave) {\n\n preparePointerLeave(i);\n }\n\n if (i.dismiss.outsideClick) {\n\n prepareOutsideEvent(i,\n 'pointerdown'\n );\n }\n\n if (i.dismiss.outsideWheel) {\n\n prepareOutsideEvent(i,\n 'wheel'\n );\n }\n}\n\nexport function preparePointerLeave(i) {\n\n if (i._config.anchor !== 'pointer') {\n\n addListener(\n i,\n i._elements.box,\n 'pointerleave',\n i._handlers.pointerLeave\n );\n }\n\n // O ícone de abertura por exemplo\n [...i._registry.open.keys()].forEach(element => {\n\n addListener(\n i,\n element,\n 'pointerleave',\n i._handlers.pointerLeave\n );\n });\n}\n\nexport function prepareOutsideEvent(i, event, options) {\n\n const handlerKey = `outside_${event}`;\n\n if (!i._handlers[handlerKey]) {\n\n i._handlers[handlerKey] = (e) => {\n\n if (!i.opened) return;\n\n const protectedBoxes = [\n i._elements.box,\n //i._elements.overlayEl,\n ...getManager()._getElementsAbovePriority(i._state.priority)\n ];\n\n const clickedInsideProtectedBox = protectedBoxes.some(box =>\n box?.contains(e.target)\n );\n\n if (clickedInsideProtectedBox) {\n return;\n }\n\n const isTarget = [...i._registry.open.keys()].some(element =>\n element.contains(e.target)\n );\n\n //console.log('_registry.open: ', [...i._registry.open.keys()]);\n\n //console.log('target: ', e.target);\n\n if (isTarget) {\n return;\n }\n\n i.close({\n event: event === 'pointerdown'\n ? 'outside-click'\n : 'outside-wheel'\n });\n };\n }\n\n addListener(\n i,\n window,\n event,\n i._handlers[handlerKey],\n options\n );\n}","// src/helpers/calcOffsetMargin.js\n\nexport function calcOffsetMargin(offset, placement) {\n\n const {\n mainAxis = 0,\n crossAxis = 0,\n alignmentAxis = null\n } = offset;\n\n //--------------------------------------------------\n // Placement\n\n const [side, alignment] = placement.split('-');\n\n //--------------------------------------------------\n // Axis\n\n const isVertical = (\n side === 'top' ||\n side === 'bottom'\n );\n\n //--------------------------------------------------\n // Main Axis\n\n let marginTop = 0;\n let marginRight = 0;\n let marginBottom = 0;\n let marginLeft = 0;\n\n if (isVertical) {\n\n marginTop += side === 'top'\n ? -mainAxis\n : mainAxis;\n\n } else {\n\n marginLeft += side === 'left'\n ? -mainAxis\n : mainAxis;\n }\n\n //--------------------------------------------------\n // Cross Axis\n\n let cross = crossAxis;\n\n //--------------------------------------------------\n // Alignment Axis\n\n if (\n alignment &&\n alignmentAxis !== null\n ) {\n\n cross = alignmentAxis;\n\n if (alignment === 'end') {\n cross *= -1;\n }\n }\n\n //--------------------------------------------------\n // Apply Cross Axis\n\n if (isVertical) {\n\n marginLeft += cross;\n\n } else {\n\n marginTop += cross;\n }\n\n return {\n top: marginTop + 'px',\n right: marginRight + 'px',\n bottom: marginBottom + 'px',\n left: marginLeft + 'px'\n };\n}","// src/helpers/applicators.js\n\nimport {\n calcOffsetMargin\n} from './calcOffsetMargin.js';\n\n//------------------------------------------------------\n// Boundary Padding\n\nexport function applyBoundaryPadding(i) {\n\n if (i.anchor !== 'viewport') return;\n\n if (\n i.boundaryPadding === null ||\n i.boundaryPadding === 0\n ) return;\n\n const boundary = i._elements.boundary;\n\n const padding = i.boundaryPadding;\n\n boundary.style.paddingTop = padding.top + 'px';\n boundary.style.paddingRight = padding.right + 'px';\n boundary.style.paddingBottom = padding.bottom + 'px';\n boundary.style.paddingLeft = padding.left + 'px';\n}\n\n//------------------------------------------------------\n// Box Offset\n\nexport function applyBoxOffset(i) {\n\n if (i.anchor !== 'viewport') return;\n\n if (i.offset === null) return;\n\n const margin = calcOffsetMargin(\n i.offset,\n i.placement\n );\n\n const box = i._elements.box;\n\n box.style.marginTop = margin.top;\n box.style.marginRight = margin.right;\n box.style.marginBottom = margin.bottom;\n box.style.marginLeft = margin.left;\n}\n\n//------------------------------------------------------\n// Size\n\nexport function applySize(i) {\n\n i._elements.boundary.dataset.hyperfloatSize = i.size.type == 'preset'\n ? i.size.width\n : 'custom';\n\n if (i.size.type == 'custom') {\n\n i._elements.box.style.width = i.size.width ?? '100%';\n i._elements.box.style.height = i.size.height ?? '100%';\n }\n}\n\n//------------------------------------------------------\n// Overlay\n\nexport function applyOverlay(i) {\n\n if (i.overlay === null) return;\n\n i._elements.boundary.dataset.hyperfloatOverlayEnabled = i.overlay.enabled;\n i._elements.boundary.dataset.hyperfloatOverlayColor = i.overlay.color;\n i._elements.boundary.dataset.hyperfloatOverlayBlur = i.overlay.blur;\n}\n\n//------------------------------------------------------\n// Placement\n\nexport function applyPlacement(i) {\n\n i._elements.boundary.dataset.hyperfloatPlacement = i.placement;\n}","// src/instance/setters.js\n\nimport allowedValues from '../constants/allowedValues.js';\n\nimport {\n toArray\n} from '../utils/index.js'; \n\nimport {\n normalizeAccessibilityOptions,\n normalizeBoundaryPaddingOptions,\n normalizeDismissOptions,\n normalizeDraggableOptions,\n normalizeFlipOptions,\n normalizeMetaOptions,\n normalizeOffsetOptions,\n normalizeOverlayOptions,\n normalizePlacement,\n normalizeShiftOptions,\n normalizeSizeOptions,\n} from '../helpers/normalizers.js';\n\nimport {\n syncDismiss\n} from './dismiss.js';\n\nimport {\n applyBoundaryPadding,\n applyBoxOffset,\n applyOverlay,\n applyPlacement,\n applySize\n} from '../helpers/applicators.js';\n\n/*import {\n syncPosition\n} from './sync.js';*/\n\n//------------------------------------------------------\n// Meta\n\nexport function setMeta(i, value) {\n\n i._config.meta = normalizeMetaOptions(value ?? allowedValues.meta.default)\n\n // Get Old\n const oldAttrs = i._cache.lastApplyMeta;\n\n // Get New\n const newAttrs = i._helpers.createMetaDataset();\n\n // Remove lasted\n for (const key of Object.keys(oldAttrs)) {\n\n i._elements.boundary.removeAttribute(key);\n }\n\n // Apply New\n for (const [key, val] of Object.entries(newAttrs)) {\n\n i._elements.boundary.setAttribute(key, val);\n }\n}\n\n//------------------------------------------------------\n// Accessibility\n\nexport function setAccessibility(i, value) {\n\n i._config.accessibility = normalizeAccessibilityOptions(value ?? allowedValues.accessibility.default)\n\n // Get Old\n const oldAttrs = i._cache.lastApplyAccessibility;\n\n // Get New\n const newAttrs = i._helpers.createAccessibilityDataset();\n\n // Remove lasted\n for (const key of Object.keys(oldAttrs)) {\n\n i._elements.boundary.removeAttribute(key);\n }\n\n // Apply New\n for (const [key, val] of Object.entries(newAttrs)) {\n\n i._elements.boundary.setAttribute(key, val);\n }\n}\n\n//------------------------------------------------------\n// Dismiss\n\nexport function setDismiss(i, value) {\n\n i._config.dismiss = normalizeDismissOptions(value ?? allowedValues.dismiss.default)\n\n syncDismiss(i);\n}\n\n//------------------------------------------------------\n// Overlay\n\nexport function setOverlay(i, value) {\n\n i._config.overlay = normalizeOverlayOptions(value ?? allowedValues.overlay.default)\n\n applyOverlay(i);\n}\n\n//------------------------------------------------------\n// Placement\n\nexport function setPlacement(i, value) {\n\n const normalizedValue = normalizePlacement(value ?? allowedValues.placement.default,\n i.anchor\n );\n\n i._config.placement = normalizedValue;\n i._state.resolvedPlacement = normalizedValue;\n\n applyPlacement(i);\n}\n\n//------------------------------------------------------\n// Boundary Padding\n\nexport function setBoundaryPadding(i, value) {\n\n i._config.boundaryPadding = normalizeBoundaryPaddingOptions(value ?? allowedValues.placement.default);\n\n applyBoundaryPadding(i);\n}\n\n//------------------------------------------------------\n// Offset\n\nexport function setOffset(i, value) {\n\n i._config.offset = normalizeOffsetOptions(value ?? allowedValues.offset.default);\n\n applyBoxOffset(i);\n}\n\n//------------------------------------------------------\n// Flip\n\nexport function setFlip(i, value) {\n\n i._config.flip = normalizeFlipOptions(value ?? allowedValues.flip.default);\n\n if (\n typeof syncPosition === 'function' &&\n i.opened &&\n i.anchor == 'element' &&\n i.lastTarget\n ) {\n syncPosition(i);\n }\n}\n\n//------------------------------------------------------\n// Shift\n\nexport function setShift(i, value) {\n\n i._config.shift = normalizeShiftOptions(value ?? allowedValues.shift.default);\n\n if (\n typeof syncPosition === 'function' &&\n i.opened &&\n i.anchor == 'element' &&\n i.lastTarget\n ) {\n syncPosition(i);\n }\n}\n\n//------------------------------------------------------\n// Size\n\nexport function setSize(i, value) {\n\n i._config.size = normalizeSizeOptions(value ?? allowedValues.size.default);\n\n applySize(i);\n}\n\n//------------------------------------------------------\n// Draggable\n\nexport function setDraggable(i, value) {\n\n i._config.draggable = normalizeDraggableOptions(value ?? allowedValues.draggable.default,\n i.anchor\n );\n\n const handle = toArray(\n value?.handle,\n i._elements.boundary\n ); \n\n if (handle[0]) {\n i._config.draggable.handle = handle[0];\n }\n\n //console.log('setDraggable', i.draggable);\n}\n","// src/constants/baseOptions.js\n\nexport default [\n\n 'meta',\n\n 'accessibility',\n\n 'dismiss',\n\n 'destroyAfterClose',\n\n 'autoOpen',\n\n 'overlay',\n\n 'placement', \n\n 'boundaryPadding',\n\n 'draggable',\n\n 'offset',\n\n 'flip',\n\n 'shift',\n\n 'ignoreCloseAll',\n\n 'header',\n\n 'footer',\n\n 'size',\n\n 'breakpoints',\n\n 'debug',\n];","// src/constants/breakpointOptions.js\n\nimport baseOptions from '../constants/baseOptions.js';\n\nexport const preventBreakpointOptions = [\n 'breakpoints',\n 'destroyAfterClose',\n 'ignoreCloseAll',\n 'draggable',\n 'autoOpen',\n 'header',\n 'footer',\n 'debug'\n];\n\nexport const allowedBreakpointOptions = baseOptions.filter(\n option => !preventBreakpointOptions.includes(option)\n);","// src/instance/breakpoints.js\n\nimport {\n getManager\n} from '../helpers/getManager.js';\n\nimport {\n setAccessibility,\n setBoundaryPadding,\n setDismiss,\n setFlip,\n setMeta,\n setOffset,\n setOverlay,\n setPlacement,\n setShift,\n setSize\n} from './setters.js';\n \nimport {\n allowedBreakpointOptions,\n preventBreakpointOptions\n} from '../constants/breakpointOptions.js';\n\nimport {\n parseOptions\n} from '../helpers/parsers.js';\n\n//------------------------------------------------------\n// Setup\n\nexport function setupBreakpoints(i) {\n\n const rawBreakpoints = i.breakpoints || {};\n const breakpointKeys = Object.keys(rawBreakpoints);\n\n // Inicializa a matriz vazia com segurança se não houver breakpoints\n if (!breakpointKeys.length) {\n i._breakpoints = [];\n return;\n }\n\n const deepMerge = (parent, child) => {\n\n const result = { ...parent };\n for (const key in child) {\n\n if (\n typeof child[key] === 'object' &&\n !Array.isArray(child[key]) &&\n child[key] !== null &&\n typeof parent[key] === 'object'\n ) {\n result[key] = deepMerge(parent[key], child[key]);\n } else if (child[key] !== undefined && child[key] !== null) {\n result[key] = child[key];\n }\n }\n return result;\n };\n\n // Cria o Fallback (O \"Maior\" Breakpoint)\n const max = Math.max(...breakpointKeys.map(Number));\n const fallbackBp = max + 1;\n const fallbackConfig = {};\n\n for (const key of allowedBreakpointOptions) {\n\n if (i[key] !== undefined) {\n\n fallbackConfig[key] = i[key];\n }\n }\n\n // Ordena os breakpoints do usuário (Maior → Menor)\n const breakpoints = breakpointKeys.map(Number).sort((a, b) => b - a);\n\n // Insere o Fallback no INÍCIO da lista para ele ser o PAI de todos\n breakpoints.unshift(fallbackBp);\n\n const merged = {};\n\n // Já injeta o fallback no objeto merged\n merged[fallbackBp] = fallbackConfig;\n\n // Inicia o loop a partir do índice 1 (já que o 0 é o fallback)\n for (let i_ = 1; i_ < breakpoints.length; i_++) {\n\n const bp = breakpoints[i_];\n\n // Pega o breakpoint cru e filtra as propriedades permitidas\n const rawBase = rawBreakpoints[bp];\n let base = {};\n\n for (const key of Object.keys(rawBase)) {\n\n if (allowedBreakpointOptions.includes(key)) {\n\n base[key] = rawBase[key];\n }\n }\n\n // Normaliza os dados antes de fazer o merge com o Fallback/Pai\n base = parseOptions(i, base, preventBreakpointOptions);\n\n // Herda do pai (que no primeiro ciclo será o Fallback)\n const parentBp = breakpoints[i_ - 1];\n const parent = merged[parentBp];\n base = deepMerge(parent, base);\n\n merged[bp] = base;\n }\n\n // 5. Organiza em ordem crescente para uso no refresh\n // Retorna: [ [768, {...}], [1024, {...}], [1025, { FALLBACK }] ]\n i._breakpoints = Object.entries(merged)\n .map(([bp, val]) => [Number(bp), val])\n .sort((a, b) => a[0] - b[0]);\n\n //console.log(i._breakpoints);\n}\n\n//------------------------------------------------------\n// Update\n\nexport function resolveBreakpoints(i) {\n\n //console.log('resolveBreakpoints');\n\n if (!i._breakpoints || !i._breakpoints.length) return;\n\n const globalRefreshVersion = getManager()._cache.refreshVersion;\n\n if (\n i._state.firstresolveBreakpointsDone && // Apenas se o primeiro já estiver sido feito\n globalRefreshVersion === i._cache.resolveBreakpointsVersion\n ) {\n //console.log('Using breakpoints cache. refreshVersion: ', globalRefreshVersion);\n return;\n }\n\n let matched = false;\n const windowWidth = window.innerWidth;\n\n const breakpoints = i._breakpoints;\n\n for (const [breakpoint, values] of breakpoints) {\n\n if (windowWidth <= breakpoint) {\n\n matched = true;\n\n if (i._cache.lastBreakpoint !== breakpoint) {\n\n i._cache.lastBreakpoint = breakpoint;\n applyBreakpoints(i, values, breakpoint);\n }\n\n break;\n }\n }\n\n // Se nenhum breakpoint for aplicado, use o último (fallback)\n if (!matched) {\n\n const [fallbackBreakpoint, fallbackValues] = i._breakpoints[i._breakpoints.length - 1];\n\n if (i._cache.lastBreakpoint !== fallbackBreakpoint) {\n\n i._cache.lastBreakpoint = fallbackBreakpoint;\n\n applyBreakpoints(i, fallbackValues, fallbackBreakpoint);\n }\n }\n\n // Timestamp\n i._cache.resolveBreakpointsVersion = globalRefreshVersion;\n\n // Done\n i._state.firstresolveBreakpointsDone = true;\n\n /*console.log('resolveBreakpoints', {\n\n positioner: i.positionerRect,\n boundary: i.boundaryRect,\n targetRects: i._cache.targetRects\n });*/\n}\n\n//------------------------------------------------------\n// Apply\n\nexport function applyBreakpoints(i, values, breakpoint) {\n\n //console.log('applyBreakpoints');\n\n for (const [key, value] of Object.entries(values)) {\n\n if (key == 'meta') {\n\n setMeta(i, value);\n }\n\n if (key == 'accessibility') {\n\n setAccessibility(i, value);\n }\n\n if (key == 'dismiss') {\n\n setDismiss(i, value);\n }\n\n if (key == 'overlay') {\n\n setOverlay(i, value);\n }\n\n if (key == 'placement') {\n\n setPlacement(i, value);\n }\n\n if (key == 'boundaryPadding') {\n\n setBoundaryPadding(i, value);\n }\n\n if (key == 'offset') {\n\n setOffset(i, value);\n }\n\n if (key == 'flip') {\n\n setFlip(i, value);\n }\n\n if (key == 'shift') {\n\n setShift(i, value);\n }\n\n if (key == 'size') {\n\n setSize(i, value);\n }\n\n i._console.log(`Breakpoint: ${breakpoint} -> ${key}:`, value);\n\n //console.log(`Breakpoint: ${breakpoint} -> ${key}:`, value);\n }\n}","// src/helpers/computePosition/calcPosition.js\n\nexport function calcPosition(\n placement,\n anchor,\n element\n) {\n\n const {\n left: aLeft,\n top: aTop,\n right: aRight,\n bottom: aBottom,\n width: aWidth,\n height: aHeight\n } = anchor;\n\n const {\n width: eWidth,\n height: eHeight\n } = element;\n\n const centerX = aLeft + (aWidth / 2);\n const centerY = aTop + (aHeight / 2);\n\n switch (placement) {\n\n //------------------------------------------------------\n // Center\n\n case 'center':\n return {\n left: centerX - (eWidth / 2),\n top: centerY - (eHeight / 2)\n };\n\n //------------------------------------------------------\n // Top\n\n case 'top':\n return {\n left: centerX - (eWidth / 2),\n top: aTop - eHeight\n };\n\n case 'top-start':\n return {\n left: aLeft,\n top: aTop - eHeight\n };\n\n case 'top-end':\n return {\n left: aRight - eWidth,\n top: aTop - eHeight\n };\n\n //------------------------------------------------------\n // Right\n\n case 'right':\n return {\n left: aRight,\n top: centerY - (eHeight / 2)\n };\n\n case 'right-start':\n return {\n left: aRight,\n top: aTop\n };\n\n case 'right-end':\n return {\n left: aRight,\n top: aBottom - eHeight\n };\n\n //------------------------------------------------------\n // Bottom\n\n case 'bottom':\n return {\n left: centerX - (eWidth / 2),\n top: aBottom\n };\n\n case 'bottom-start':\n return {\n left: aLeft,\n top: aBottom\n };\n\n case 'bottom-end':\n return {\n left: aRight - eWidth,\n top: aBottom\n };\n\n //------------------------------------------------------\n // Left\n\n case 'left':\n return {\n left: aLeft - eWidth,\n top: centerY - (eHeight / 2)\n };\n\n case 'left-start':\n return {\n left: aLeft - eWidth,\n top: aTop\n };\n\n case 'left-end':\n return {\n left: aLeft - eWidth,\n top: aBottom - eHeight\n };\n\n default:\n return {\n left: centerX - (eWidth / 2),\n top: centerY - (eHeight / 2)\n };\n }\n}","// src/helpers/computePosition/calcOffset.js\n\nexport function calcOffset(\n offset,\n placement,\n left,\n top\n) {\n\n const {\n mainAxis = 0,\n crossAxis = 0,\n alignmentAxis = null\n } = offset;\n\n //--------------------------------------------------\n // Placement\n\n const [side, alignment] = placement.split('-');\n\n //--------------------------------------------------\n // Axis\n\n const isVertical = (\n side === 'top' ||\n side === 'bottom'\n );\n\n //--------------------------------------------------\n // Main Axis\n //\n // top → -Y\n // bottom → +Y\n // left → -X\n // right → +X\n\n if (isVertical) {\n\n top += side === 'top'\n ? -mainAxis\n : mainAxis;\n\n } else {\n\n left += side === 'left'\n ? -mainAxis\n : mainAxis;\n }\n\n //--------------------------------------------------\n // Cross Axis\n //\n // vertical placement → X\n // horizontal placement → Y\n\n let cross = crossAxis;\n\n //--------------------------------------------------\n // Alignment Axis\n //\n // Só se aplica a placements alinhados.\n //\n // start → direção normal\n // end → direção invertida\n\n if (\n alignment &&\n alignmentAxis !== null\n ) {\n cross = alignmentAxis;\n\n if (alignment === 'end') {\n cross *= -1;\n }\n }\n\n //--------------------------------------------------\n // Apply Cross Axis\n\n if (isVertical) {\n left += cross;\n } else {\n top += cross;\n }\n\n return {\n left,\n top\n };\n}","// src/helpers/computePosition/calcShift.js\n\nexport function calcShift(\n shift,\n placement,\n boundaryRect,\n anchorRect,\n elementRect,\n left,\n top,\n flip = null\n) {\n\n const {\n mainAxis = false,\n crossAxis = false\n } = shift;\n\n const clamp = (value, min, max) =>\n Math.max(min, Math.min(value, max));\n\n const [side, alignment] = placement.split('-');\n\n const isVertical = (\n side === 'top' ||\n side === 'bottom'\n );\n\n //------------------------------------------------------\n // Original\n\n const originalLeft = left;\n const originalTop = top;\n\n //------------------------------------------------------\n // Horizontal\n\n const minLeft = boundaryRect.left;\n const maxLeft = boundaryRect.right - elementRect.width;\n\n //------------------------------------------------------\n // Vertical\n\n const minTop = boundaryRect.top;\n const maxTop = boundaryRect.bottom - elementRect.height;\n\n //------------------------------------------------------\n // Shift\n\n if (isVertical) {\n\n // crossAxis → horizontal\n if (crossAxis) {\n left = clamp(left, minLeft, maxLeft);\n }\n\n // mainAxis → vertical\n if (mainAxis) {\n top = clamp(top, minTop, maxTop);\n }\n\n } else {\n\n // mainAxis → horizontal\n if (mainAxis) {\n left = clamp(left, minLeft, maxLeft);\n }\n\n // crossAxis → vertical\n if (crossAxis) {\n top = clamp(top, minTop, maxTop);\n }\n }\n\n //------------------------------------------------------\n // Validate placement\n //\n // Só invalida o placement atual quando:\n // 1. O shift atravessou o anchor no eixo principal;\n // 2. Flip está habilitado;\n // 3. Flip possui o eixo necessário para corrigir o problema.\n //------------------------------------------------------\n\n if (flip !== null) {\n\n const {\n mainAxis = false,\n crossAxis = false\n } = flip;\n\n let placementInvalid = false;\n\n //--------------------------------------------------\n // Main Axis\n //\n // O problema aqui só pode ser corrigido por\n // flip no mainAxis.\n //--------------------------------------------------\n\n if (mainAxis) {\n\n if (\n side === 'right' &&\n left < anchorRect.right\n ) {\n placementInvalid = true;\n }\n\n if (\n side === 'left' &&\n left + elementRect.width > anchorRect.left\n ) {\n placementInvalid = true;\n }\n\n if (\n side === 'top' &&\n top + elementRect.height > anchorRect.top\n ) {\n placementInvalid = true;\n }\n\n if (\n side === 'bottom' &&\n top < anchorRect.bottom\n ) {\n placementInvalid = true;\n }\n }\n\n //--------------------------------------------------\n // Cross Axis\n //\n // CrossAxis não troca o side do placement.\n // Portanto, não deve ser usado para decidir se\n // o placement principal pode sofrer flip.\n //--------------------------------------------------\n\n if (placementInvalid) {\n return null;\n }\n }\n\n //------------------------------------------------------\n // Result\n\n return {\n left,\n top\n };\n}","// src/helpers/computePosition/calcFlip.js\n\nimport {\n calcPosition\n} from './calcPosition.js';\n\nexport function calcFlip({\n flip,\n placement,\n boundaryRect,\n anchorRect,\n elementRect\n}) {\n\n if (flip === null) {\n return null;\n }\n\n const {\n mainAxis = true,\n crossAxis = false\n } = flip;\n\n const [side, alignment] = placement.split('-');\n\n //------------------------------------------------------\n // Helpers\n\n const fits = (left, top) => {\n\n return (\n left >= boundaryRect.left &&\n left + elementRect.width <= boundaryRect.right &&\n top >= boundaryRect.top &&\n top + elementRect.height <= boundaryRect.bottom\n );\n };\n\n const getOppositeSide = side => {\n\n switch (side) {\n\n case 'top':\n return 'bottom';\n\n case 'bottom':\n return 'top';\n\n case 'left':\n return 'right';\n\n case 'right':\n return 'left';\n\n default:\n return side;\n }\n };\n\n\n const getOppositeAlignment = alignment => {\n\n if (alignment === 'start') {\n return 'end';\n }\n\n if (alignment === 'end') {\n return 'start';\n }\n\n return null;\n };\n\n\n const getPlacement = (\n newSide,\n newAlignment = alignment\n ) => {\n\n if (!newAlignment) {\n return newSide;\n }\n\n return `${newSide}-${newAlignment}`;\n };\n\n\n //------------------------------------------------------\n // Main Axis\n //\n // right ↔ left\n // top ↔ bottom\n\n if (mainAxis) {\n\n const oppositeSide = getOppositeSide(side);\n\n const oppositePlacement = getPlacement(\n oppositeSide\n );\n\n const {\n left,\n top\n } = calcPosition(\n oppositePlacement,\n anchorRect,\n elementRect\n );\n\n if (fits(left, top)) {\n return oppositePlacement;\n }\n }\n\n\n //------------------------------------------------------\n // Cross Axis\n //\n // start ↔ end\n //\n // O side permanece o mesmo.\n\n if (\n crossAxis &&\n alignment\n ) {\n\n const oppositeAlignment =\n getOppositeAlignment(alignment);\n\n if (oppositeAlignment) {\n\n const oppositePlacement = getPlacement(\n side,\n oppositeAlignment\n );\n\n const {\n left,\n top\n } = calcPosition(\n oppositePlacement,\n anchorRect,\n elementRect\n );\n\n if (fits(left, top)) {\n return oppositePlacement;\n }\n }\n }\n\n\n //------------------------------------------------------\n // Nenhum flip disponível\n\n return null;\n}","// src/helpers/computePosition.js\n\nimport {\n calcPosition\n} from './computePosition/calcPosition.js';\n\nimport {\n calcOffset\n} from './computePosition/calcOffset.js';\n\nimport {\n calcShift\n} from './computePosition/calcShift.js';\n\nimport {\n calcFlip\n} from './computePosition/calcFlip.js';\n\n\nexport function computePosition({\n boundaryRect = window,\n elementRect = null,\n anchorRect = null,\n\n placement = 'bottom',\n\n offset = null,\n flip = null,\n shift = null\n\n} = {}) {\n\n let resolvedPlacement = placement;\n\n let left;\n let top;\n\n //------------------------------------------------------\n // Calculate\n //\n // Executa o pipeline de posicionamento para um\n // determinado placement.\n\n const calculate = () => {\n\n //--------------------------------------------------\n // Position\n\n ({\n left,\n top\n } = calcPosition(\n resolvedPlacement,\n anchorRect,\n elementRect\n ));\n\n //--------------------------------------------------\n // Offset\n\n if (offset !== null) {\n\n ({\n left,\n top\n } = calcOffset(\n offset,\n resolvedPlacement,\n left,\n top\n ));\n }\n\n //--------------------------------------------------\n // Shift\n\n if (shift !== null) {\n\n const calculatedShift = calcShift(\n shift,\n resolvedPlacement,\n boundaryRect,\n anchorRect,\n elementRect,\n left,\n top,\n flip\n );\n\n //------------------------------------------------\n // Shift conseguiu resolver\n\n if (calculatedShift !== null) {\n\n ({\n left,\n top\n } = calculatedShift);\n\n return true;\n }\n\n //------------------------------------------------\n // Shift não conseguiu resolver\n\n return false;\n }\n\n return true;\n };\n\n\n //------------------------------------------------------\n // Initial\n //\n // Primeiro tenta resolver o placement original.\n\n const shiftResolved = calculate();\n\n\n //------------------------------------------------------\n // Flip\n //\n // Só entra se:\n //\n // 1. flip está habilitado;\n // 2. o placement original não pôde ser resolvido\n // pelo shift.\n\n if (\n flip !== null &&\n !shiftResolved\n ) {\n\n const flippedPlacement = calcFlip({\n flip,\n placement: resolvedPlacement,\n boundaryRect,\n anchorRect,\n elementRect,\n offset\n });\n\n if (flippedPlacement) {\n\n resolvedPlacement = flippedPlacement;\n\n //------------------------------------------------\n // Recalcula tudo para o novo placement.\n //\n // position → offset → shift\n\n calculate();\n }\n }\n\n //------------------------------------------------------\n // Return\n\n return {\n\n position: {\n left,\n top\n },\n\n coordinates: {\n left,\n top\n },\n\n placement: resolvedPlacement,\n\n resolvedPlacement\n };\n}","// src/instance/registry.js\n\nimport {\n toArray\n} from '../utils/index.js';\n\nimport {\n addListener,\n removeTargetListeners\n} from '../helpers/listener.js';\n\nimport {\n syncDismiss\n} from './dismiss.js';\n\nimport {\n normalizeRegisterOptions,\n resolveHostHyperfloat\n} from '../helpers/normalizers.js';\n\n//------------------------------------------------------\n// Register\n\nexport function registerAction(i, action, params) {\n\n const entries = normalizeRegisterOptions(\n params ?? null\n );\n\n // No-op segura\n if (!entries.length) return () => { };\n\n const registeredElements = [];\n\n entries.forEach(entry => {\n\n const entryProps = {\n hostHyperfloat: resolveHostHyperfloat(entry.el),\n event: entry.event\n };\n\n i._registry[action].set(entry.el, entryProps);\n\n registeredElements.push(entry.el);\n });\n\n if (action === 'open') {\n\n syncOpenTargets(i);\n //console.log(i._registry.open);\n\n } else {\n\n syncCloseTargets(i);\n //console.log(i._registry.close);\n }\n\n syncDismiss(i);\n\n // Teardown\n return () => {\n unregisterAction(i, action, registeredElements);\n };\n}\n\n//------------------------------------------------------\n// Unregister\n\nexport function unregisterAction(i, action, target) {\n\n const targets = toArray(target);\n //let removedCount = 0;\n\n targets.forEach(el => {\n\n if (\n (el instanceof Element) &&\n i._registry[action]?.has(el)\n ) { \n\n // Remove os event listeners atrelados ao nó físico\n removeTargetListeners(i, el);\n\n // Remove do mapa de registro\n i._registry[action].delete(el);\n\n // 3. Limpa referências ativas no ponteiro para evitar dangling pointers\n if (i._state.pointer.target.el == el) {\n\n i._state.pointer.target = {\n el: null,\n action: null\n };\n }\n\n //removedCount++;\n }\n });\n\n // Deprecated\n // Se houve alterações reais, recalcula o estado e os listeners globais\n /*if (removedCount > 0) {\n\n if (action === 'open') {\n\n syncOpenTargets(i);\n } else {\n\n syncCloseTargets(i);\n }\n\n syncDismiss(i);\n }*/\n}\n\n//------------------------------------------------------\n// Sync Targets\n\nexport function syncTargets(i) {\n\n syncOpenTargets(i);\n\n syncCloseTargets(i);\n}\n\n//------------------------------------------------------\n// Sync Open\n\nexport function syncOpenTargets(i) {\n\n for (const [el, props] of i._registry.open) {\n\n // Se o elements antigos não está mais válido deve limpar listeners\n if (!(el instanceof Element)) {\n\n removeTargetListeners(i, el);\n\n i._registry.open.delete(el);\n continue;\n }\n\n // É um novo elemento?\n\n if (el.dataset.hyperfloatBound === 'true') continue;\n\n registerOpenElement(i, el, props);\n\n el.dataset.hyperfloatOpened = String(i.opened);\n\n el.dataset.hyperfloatBound = 'true';\n\n addListener(\n i,\n el,\n 'pointerenter',\n () => {\n i._state.pointer.target = {\n el,\n action: 'open',\n }\n }\n );\n };\n}\n\n//------------------------------------------------------\n// Register Open Element\n\nexport function registerOpenElement(i, el, props) {\n\n const event = props.event;\n\n if (event == 'click') {\n\n addListener(\n i,\n el,\n 'click',\n //() => i.open({ target: el})\n () => {\n\n if (i.opened) {\n\n i.close({\n target: el\n });\n\n } else {\n\n i.open({\n target: el\n });\n }\n }\n );\n\n return;\n }\n else if (\n [\n 'pointerenter',\n 'pointermove',\n ].includes(event)\n ) {\n\n addListener(\n i,\n el,\n i.anchor === 'pointer'\n ? 'pointermove'\n : 'pointerenter',\n\n () => i.open({\n target: el\n })\n );\n }\n}\n\n//------------------------------------------------------\n// Sync Default Close \n\nexport function syncDefaultCloseEntries(i) {\n\n const defaultEntries = toArray(i._defaultCloseSelector,\n i._elements.boundary\n );\n\n if (i._elements.overlayEl) {\n defaultEntries.push(i._elements.overlayEl);\n }\n\n defaultEntries.forEach(el => {\n\n const entryProps = {\n hostHyperfloat: resolveHostHyperfloat(el),\n event: 'click'\n };\n\n if (!i._registry.close.has(el)) {\n\n i._registry.close.set(el, entryProps);\n }\n });\n}\n\n//------------------------------------------------------\n// Sync Close Register\n\nexport function syncCloseTargets(i) {\n\n for (const [el, props] of i._registry.close) {\n\n // Se o elements antigos não está mais válido deve limpar listeners\n if (!(el instanceof Element)) {\n\n removeTargetListeners(i, el);\n\n i._registry.close.delete(el);\n continue;\n }\n\n if (el.dataset.hyperfloatBound === 'true') continue;\n\n addListener(i, el, 'click', () => {\n i.close({ target: el });\n });\n\n el.dataset.hyperfloatOpened = String(i.opened);\n\n el.dataset.hyperfloatBound = 'true';\n\n addListener(\n i,\n el,\n 'pointerenter',\n () => {\n i._state.pointer.target = {\n el,\n action: 'close'\n };\n }\n );\n }\n}","//\n\nexport async function interpolation(i, x, y) {\n\n const _interpolate = i._data?.interpolate ?? i.interpolate ?? null;\n\n if (typeof _interpolate === 'function') {\n\n const interpolateX = await _interpolate.call(i, {\n\n axis: 'x',\n\n current: i._state.interpolation.lastX ?? x,\n\n target: x,\n\n pointer: i._state.pointer,\n\n });\n\n if (typeof interpolateX == 'number') {\n x = interpolateX;\n }\n\n const interpolateY = await _interpolate.call(i, {\n\n axis: 'y',\n\n current: i._state.interpolation.lastY ?? y,\n\n target: y,\n\n pointer: i._state.pointer,\n\n });\n\n if (typeof interpolateY == 'number') {\n y = interpolateY;\n }\n }\n\n i._state.interpolation.lastX = x;\n\n i._state.interpolation.lastY = y;\n\n //------------------------------------------------------\n // \n return {\n x,\n y\n };\n}","// src/manager/prioritize.js\n\nimport {\n getManager\n} from '../helpers/getManager.js';\n\nexport function prioritize(instance) {\n\n const m = getManager();\n\n let maxPriority = 0;\n\n m._instancesMap.forEach((currentInstance) => {\n\n if (\n !currentInstance ||\n !currentInstance._state.ready\n ) {\n return;\n }\n\n maxPriority = Math.max(\n maxPriority,\n currentInstance._state.priority ?? 0\n );\n });\n const priority = maxPriority + 1;\n\n instance._state.priority = priority;\n\n const zIndex = instance.anchor === 'pointer'\n ? priority + 1000\n : priority;\n\n const boundary = instance.elements?.boundary;\n\n if (boundary) {\n boundary.style.zIndex = String(zIndex);\n }\n}","// src/instance/draggable.js\n\nimport {\n addListener,\n removeListener\n} from '../helpers/listener.js';\n\nimport {\n interpolation\n} from '../helpers/interpolate.js';\n\nimport {\n prioritize\n} from '../manager/prioritize.js';\n\nimport {\n callHook\n} from './hooks.js';\n\nexport function setupDraggable(i) {\n\n if (!i.draggable?.enabled) return;\n\n\n\n // Ativa ancoragem pra evitar \"pulo\"\n i._state.anchored = true;\n i._elements.boundary.dataset.hyperfloatAnchored = 'true';\n\n\n\n\n // 2. Escuta o movimento\n i._handlers.pointerMove = (e) => {\n\n if (!i._state.drag) return;\n\n // Filtro 3: O \"Threshold\" (Limiar de Intenção)\n if (!i._state.dragging) {\n\n const moveX = Math.abs(e.clientX - i._state.drag.startX);\n const moveY = Math.abs(e.clientY - i._state.drag.startY);\n\n // Se moveu mais de 3px, o usuário REALMENTE quer arrastar\n if (moveX > 3 || moveY > 3) {\n\n i._state.dragging = true;\n\n //console.log('arrastando');\n\n // Trava a seleção de texto para não borrar a tela durante o arraste\n document.body.style.userSelect = 'none';\n i._elements.box.style.touchAction = 'none'; // Evita scroll no mobile\n }\n }\n\n // Se a intenção foi confirmada, roda a sua engine de drag\n if (i._state.dragging) {\n\n syncDrag(i, e);\n }\n }\n\n // 3. Finaliza o arraste\n i._handlers.pointerUp = (e) => {\n\n if (i._state.drag) {\n\n if (i._state.dragging) {\n\n // Limpa os travamentos visuais\n document.body.style.userSelect = '';\n i._elements.box.style.touchAction = '';\n }\n\n i._state.drag = null; // Destrói o estado de drag\n }\n\n //console.log('soltou');\n\n i._state.dragging = false;\n\n // Remove os listeners de movimento para poupar memória\n removeListener(\n i,\n document,\n 'pointermove',\n i._handlers.pointerMove\n );\n\n removeListener(\n i,\n document,\n 'pointerup',\n i._handlers.pointerUp\n );\n }\n\n // 1. Escuta o clique inicial no Box \n\n i._handlers.pointerDown = (e) => {\n\n // Ignorar se o clique não for com o botão principal (esquerdo do mouse)\n if (e.button !== 0) return;\n\n if (!i.opened) return;\n\n // Ignorar se o usuário clicou em algo interativo dentro do hyperfloat\n const interactiveElements = ['BUTTON', 'INPUT', 'TEXTAREA', 'SELECT', 'A'];\n if (\n interactiveElements.includes(e.target.tagName) ||\n e.target.closest('[data-no-drag]')\n ) {\n return;\n } \n\n // Filtro do \"Handle\" (Alça de Arraste)\n if (i.draggable.handle) {\n\n const handle = i.draggable.handle;\n\n if (typeof handle === 'string') {\n\n // Se for string (seletor CSS), usamos o closest\n if (!e.target.closest(handle)) {\n return; // Ignora o clique\n }\n }\n else if (\n handle instanceof Node ||\n handle instanceof Element\n ) {\n\n // Se for um elemento físico do DOM, checamos se o clique ocorreu DENTRO dele\n if (!handle.contains(e.target)) {\n return; // Ignora o clique\n }\n }\n }\n\n // Salva o estado inicial (Ainda NÃO é um drag, é apenas um clique potencial)\n const posRect = i.positionerRect;\n\n // Pegue o boundary do cache (onde o padding já está aplicado)\n const boundRect = i.boundaryRect;\n\n // Resgata os valores atuais de translate (se for o primeiro clique, é 0)\n const currentX = i._state.position.x || 0;\n const currentY = i._state.position.y || 0;\n\n i._state.drag = {\n startX: e.clientX,\n startY: e.clientY,\n initialX: currentX,\n initialY: currentY,\n\n // Calcula os limites máximos de movimento (Delta Bounds)\n // \"Onde estou agora\" MINUS \"A distância até a borda\"\n minX: boundRect ? currentX - (posRect.left - boundRect.left) : -Infinity,\n maxX: boundRect ? currentX + (boundRect.right - posRect.right) : Infinity,\n minY: boundRect ? currentY - (posRect.top - boundRect.top) : -Infinity,\n maxY: boundRect ? currentY + (boundRect.bottom - posRect.bottom) : Infinity,\n };\n\n i._state.dragging = false;\n\n prioritize(i);\n\n //console.log('apertou');\n\n // Adiciona os listeners\n\n addListener(\n i,\n document,\n 'pointermove',\n i._handlers.pointerMove\n );\n\n addListener(\n i,\n document,\n 'pointerup',\n i._handlers.pointerUp\n );\n };\n\n addListener(\n i,\n i._elements.box,\n 'pointerdown',\n i._handlers.pointerDown\n );\n}\n\nexport async function syncDrag(i, event) {\n\n if (!event || !i._state.drag) return;\n\n // Delta\n const deltaX = event.clientX - i._state.drag.startX;\n const deltaY = event.clientY - i._state.drag.startY;\n\n // A nova posição de transform (Posição anterior + Delta)\n let x = i._state.drag.initialX + deltaX;\n let y = i._state.drag.initialY + deltaY;\n\n // Lógica de Colisão (Boundary Clamping com os deltas)\n if (i.draggable.bounds) {\n\n x = Math.max(i._state.drag.minX, Math.min(x, i._state.drag.maxX));\n y = Math.max(i._state.drag.minY, Math.min(y, i._state.drag.maxY));\n }\n\n // 4. Salva o estado para o próximo clique não dar pulo!\n i._state.position.x = x;\n i._state.position.y = y;\n\n //------------------------------------------------------\n // Interpolation\n\n const {\n x: newX,\n y: newY\n } = await interpolation(i,\n x,\n y\n );\n\n //------------------------------------------------------\n // \n\n i._elements.positioner.style.transform = `translate3d(${newX}px, ${newY}px, 0)`;\n\n //------------------------------------------------------\n // \n await callHook('onMove', i, {\n x: newX,\n y: newY\n });\n}","// src/instance/sync.js\n\nimport {\n getManager\n} from '../helpers/getManager.js';\n\nimport {\n callHook\n} from './hooks.js';\n\nimport {\n isOutsideViewport\n} from '../utils/index.js';\n\nimport {\n resolveBreakpoints\n} from './breakpoints.js';\n\nimport {\n computePosition\n} from '../helpers/computePosition.js';\n\nimport {\n syncTargets,\n} from './registry.js';\n\nimport {\n syncDismiss,\n} from './dismiss.js';\n\nimport {\n interpolation\n} from '../helpers/interpolate.js';\nimport { syncDrag } from './draggable.js';\n\nexport function sync(i, {\n force = false\n} = {}) {\n\n //console.log('syncInstance');\n\n //------------------------------------------------------\n // Entries\n\n syncTargets(i);\n\n //------------------------------------------------------\n // Dismiss\n\n syncDismiss(i);\n\n //------------------------------------------------------\n // \n\n callHook('onSync', i, {});\n}\n\nexport function refresh(i, {\n force = false\n} = {}) {\n\n //console.log('refresh instance', i);\n //console.log('force: ', force);\n\n if (i.opened) {\n\n //------------------------------------------------------\n // Update Rects\n\n if ([\n 'pointer',\n 'element'\n ].includes(i.anchor)\n ) {\n computeRects(i, {\n force\n });\n }\n\n if (i.draggable?.enabled) {\n\n computeRects(i, {\n force\n });\n }\n\n //------------------------------------------------------\n // Breakpoints\n\n if (\n i._breakpoints &&\n !i._breakpoints.length\n ) {\n\n resolveBreakpoints(i);\n }\n\n //------------------------------------------------------\n // Update Rects\n\n if (\n [\n 'pointer',\n 'element'\n ].includes(i.anchor) &&\n\n i.lastTarget\n ) {\n syncPosition(i);\n }\n\n if (i.draggable?.enabled) {\n\n syncDrag(i);\n }\n }\n\n callHook('onRefresh', i, {});\n}\n\nexport function update(i, {\n force = false\n} = {}) {\n\n //------------------------------------------------------\n // Update Rects \n\n if (\n i.opened &&\n i.anchor == 'element' &&\n i.lastTarget\n ) {\n //console.log('Update instance');\n\n syncPosition(i);\n\n callHook('onUpdate', i, {});\n }\n\n /*if (i.draggable?.enabled) {\n\n syncDrag(i);\n }*/\n}\n\nexport function raf(i) {\n\n if (i.opened) {\n\n if (i.anchor == 'pointer') {\n\n syncPosition(i);\n }\n }\n}\n\nexport function computeRects(i, {\n force = false\n} = {}) {\n\n if (\n !i._elements.boundary ||\n !i._elements.box ||\n (\n i.anchor == 'element' &&\n !i._registry.open.size\n // elements precisam existir para serem calculados\n )\n ) {\n return;\n }\n\n const globalRefreshVersion = getManager()._cache.refreshVersion;\n\n if (!force) {\n\n if (\n i._state.firstcomputeRectsDone && // Apenas se o primeiro já estiver sido feito\n globalRefreshVersion === i._cache.computeRectsVersion\n ) {\n\n //console.log('Using rects cache. refreshVersion: ', globalRefreshVersion);\n return;\n }\n }\n\n //------------------------------------------------------\n // Positioner\n\n if (\n [\n 'pointer',\n 'element'\n ].includes(i.anchor) ||\n i.draggable?.enabled\n ) {\n\n i._cache.positionerRect = i._elements.positioner.getBoundingClientRect();\n }\n\n //------------------------------------------------------\n // Boundary\n\n const boundaryRect = i._elements.boundary.getBoundingClientRect();\n\n if (\n i.boundaryPadding === null ||\n i.boundaryPadding === 0\n ) {\n\n i._cache.boundaryRect = boundaryRect;\n }\n else {\n\n const boundaryPadding = i.boundaryPadding;\n\n i._cache.boundaryRect = {\n x: boundaryRect.x,\n y: boundaryRect.y,\n left: boundaryRect.left + boundaryPadding.left,\n top: boundaryRect.top + boundaryPadding.top,\n right: boundaryRect.right - boundaryPadding.right,\n bottom: boundaryRect.bottom - boundaryPadding.bottom,\n\n width: (boundaryRect.right - boundaryPadding.right) - (boundaryRect.left + boundaryPadding.left),\n height: (boundaryRect.bottom - boundaryPadding.bottom) - (boundaryRect.top + boundaryPadding.top),\n };\n\n //console.log(i.boundaryRect);\n }\n\n //------------------------------------------------------\n // \n\n /*i._cache.targetRects.clear();\n\n for (const [element, data] of i._registry.open) {\n\n i._cache.targetRects.set(\n element,\n element.getBoundingClientRect()\n );\n }*/\n\n //------------------------------------------------------\n // \n\n // Timestamp\n i._cache.computeRectsVersion = globalRefreshVersion;\n\n // Done\n i._state.firstcomputeRectsDone = true;\n\n /*console.log('computeRects', {\n boundary: i.boundaryRect,\n positioner: i.positionerRect,\n targetRects: i._cache.targetRects\n });*/\n};\n\nexport async function syncPosition(i) {\n\n const invalid =\n !i._registry.open.size ||\n !i.positionerRect ||\n !i.boundaryRect ||\n (\n i.anchor === 'element' &&\n (\n !i.lastTarget\n //|| !i._cache.targetRects.length\n )\n );\n\n if (invalid) {\n\n i._elements.positioner.style.transform = '';\n i._state.anchored = false;\n i._elements.boundary.dataset.hyperfloatAnchored = 'false';\n return;\n }\n\n //------------------------------------------------------\n // Update Anchor Rects\n\n let anchorRect;\n\n if (i.anchor === 'pointer') {\n\n const globalPointer = getManager()._cache.pointer;\n \n if (\n globalPointer.x === 0\n && globalPointer.y === 0\n ) {\n i._elements.positioner.style.opacity = 0;\n\n } else {\n\n if (i._elements.positioner.style.opacity == '0') {\n i._elements.positioner.style.opacity = '';\n }\n }\n\n i._state.pointer.x = globalPointer.x;\n i._state.pointer.y = globalPointer.y;\n //i._state.pointer.target = globalPointer.target;\n\n anchorRect = {\n left: i._state.pointer.x - 5,\n top: i._state.pointer.y - 5,\n right: i._state.pointer.x + 5,\n bottom: i._state.pointer.y + 5,\n width: 10,\n height: 10,\n x: i._state.pointer.x - 5,\n y: i._state.pointer.y - 5,\n };\n\n } else {\n\n anchorRect = i.lastTarget.getBoundingClientRect(); //i._cache.targetRects.get(i.lastTarget);\n\n //console.log(anchorRect);\n }\n\n //------------------------------------------------------\n // Check outside\n\n const outside = isOutsideViewport(anchorRect);\n\n if (outside) {\n\n if (!i._timers.outside) {\n\n //console.log('iniciou a contagem');\n\n i._timers.outside = setTimeout(() => {\n\n i.close({\n event: 'target-outside'\n });\n\n //console.log('fechou');\n\n i._timers.outside = null;\n\n }, i._outsideCloseDelay);\n }\n\n } else {\n\n //console.log('cancelou a contagem');\n\n clearTimeout(i._timers.outside);\n i._timers.outside = null;\n }\n\n //------------------------------------------------------\n // Before Update\n\n //await callHook('onBeforeUpdate', i, {});\n\n //------------------------------------------------------\n // Compute Position\n\n i._state.anchored = true;\n i._elements.boundary.dataset.hyperfloatAnchored = 'true';\n\n i._state.resolvedPlacement = i.placement;\n\n const computedPosition = computePosition({\n\n elementRect: i.positionerRect,\n anchorRect: anchorRect,\n boundaryRect: i.boundaryRect,\n\n placement: i.placement,\n\n offset: i.offset,\n\n flip: i.flip,\n\n shift: i.shift\n });\n\n i._state.resolvedPlacement = computedPosition.resolvedPlacement;\n\n\n //------------------------------------------------------\n // Before Update\n\n //await callHook('onUpdate', i, {});\n\n //------------------------------------------------------\n // Interpolation\n\n const {\n x,\n y\n } = await interpolation(i,\n computedPosition.position.left,\n computedPosition.position.top\n );\n\n //------------------------------------------------------\n // \n\n const left = x + 'px';\n const top = y + 'px';\n\n i._elements.positioner.style.transform = `translate3d(${left}, ${top}, 0)`;\n\n //------------------------------------------------------\n // After Update\n\n //await callHook('onAfterUpdate', i, {});\n\n await callHook('onMove', i, {\n x: left,\n y: top\n });\n}\n","// src/instance/actions.js\n\nimport {\n callHook\n} from './hooks.js';\n\nimport {\n computeRects,\n syncPosition\n} from './sync.js';\n\nimport {\n resolveBreakpoints\n} from './breakpoints.js';\n\nimport {\n getManager\n} from '../helpers/getManager.js';\n\nimport {\n prioritize\n} from '../manager/prioritize.js';\n\nimport {\n addListener,\n removeListener,\n destroyListeners\n} from '../helpers/listener.js';\n\nimport { syncDrag } from './draggable.js';\n\n//------------------------------------------------------\n// Open\n\nexport async function open(i, {\n target = null, \n event = null,\n source = 'user',\n} = {}) {\n\n if (!i._state.ready) return;\n\n /*if (i._initializePromise) {\n await i._initializePromise;\n }*/\n\n //------------------------------------------------------\n // State\n\n if (\n i._state.opened\n || i._state.locked\n ) return;\n\n i._state.locked = true;\n\n i._state.opening = true;\n\n i._console.log('Opening:', i.id);\n\n //------------------------------------------------------\n // \n\n i._cache.parentHyperfloat = null;\n\n if (target) {\n\n let dataElement = i._registry.open.get(target);\n\n // Adiciona de forma inteligente novos elements que não estão listados\n /*if (!dataElement) {\n\n i.registerOpen(element);\n\n dataElement = i._registry.open.get(target);\n }*/\n\n if (\n dataElement &&\n dataElement.hostHyperfloat !== i.id\n ) {\n i._cache.parentHyperfloat = dataElement.hostHyperfloat;\n }\n }\n\n //------------------------------------------------------\n // Hook -> Before Open\n\n let resultHook = await callHook('onBeforeOpen', i, {\n target,\n event,\n source,\n });\n\n if (\n resultHook === false ||\n resultHook?.prevent\n ) {\n\n i._state.locked = false;\n i._state.opened = false;\n i._state.opening = false;\n return;\n }\n\n //------------------------------------------------------\n // Prioritize\n\n prioritize(i);\n\n //------------------------------------------------------\n // Anchoring\n\n i._cache.lastTarget = target;\n \n i._state.pointer.target = {\n el: target,\n action: 'open'\n };\n\n if (\n i.anchor === 'pointer' //||\n //i.draggable?.enabled\n ) {\n getManager()._syncPointerEngine(true); // Force\n }\n\n if ([\n 'pointer',\n 'element'\n ].includes(i.anchor)) {\n\n // Remover repetição\n if (!i._state.firstcomputeRectsDone) {\n\n await new Promise(requestAnimationFrame);\n await new Promise(requestAnimationFrame);\n }\n\n computeRects(i);\n syncPosition(i);\n }\n\n if (i.draggable?.enabled) {\n\n // Remover repetição\n if (!i._state.firstcomputeRectsDone) {\n\n await new Promise(requestAnimationFrame);\n await new Promise(requestAnimationFrame);\n }\n\n computeRects(i);\n syncDrag(i);\n }\n\n resolveBreakpoints(i);\n\n //------------------------------------------------------\n // Setup Inactive Close Delay\n\n if (\n i.dismiss.timeout &&\n i.dismiss.timeout !== null\n ) {\n i._handlers.startTimeoutTimer();\n }\n else if (\n i.dismiss.idleTimeout &&\n i.dismiss.idleTimeout !== null\n ) {\n\n addListener(i, i.elements.box, 'pointerenter', i._handlers.stopIdleTimer);\n addListener(i, i.elements.box, 'pointerleave', i._handlers.startIdleTimer);\n\n addListener(i, i.elements.box, 'pointerdown', i._handlers.stopIdleTimer);\n addListener(i, i.elements.box, 'wheel', i._handlers.stopIdleTimer, { passive: true });\n addListener(i, i.elements.box, 'touchstart', i._handlers.stopIdleTimer, { passive: true });\n addListener(i, i.elements.box, 'keydown', i._handlers.stopIdleTimer);\n addListener(i, i.elements.box, 'focusin', i._handlers.stopIdleTimer);\n\n i._handlers.startIdleTimer();\n }\n\n //------------------------------------------------------\n // Open\n\n await callHook('onOpen', i, {\n target,\n event,\n source\n });\n\n //------------------------------------------------------\n // Open\n\n i._state.opened = true;\n i._state.opening = false;\n\n i._elements.boundary.dataset.hyperfloatOpened = 'true';\n\n getManager()._setHyperfloatOpened(i, true);\n\n i._console.log('Open:', i.id);\n\n //------------------------------------------------------\n // Update Bound Status\n\n for (const [_element, _props] of i._registry.open) {\n\n _element.dataset.hyperfloatOpened = 'true';\n };\n\n for (const [_element, _props] of i._registry.close) {\n\n _element.dataset.hyperfloatOpened = 'true';\n };\n\n //------------------------------------------------------\n // After Open\n\n await callHook('onAfterOpen', i, {\n target,\n event,\n source\n });\n\n //------------------------------------------------------\n // Ready\n\n i._state.locked = false;\n}\n\nexport async function close(i, {\n target = null,\n event = null,\n source = 'user',\n} = {}) {\n\n if (!i._state.ready) return;\n\n /*if (i._initializePromise) {\n await i._initializePromise;\n }*/\n\n //------------------------------------------------------\n // State\n\n if (\n !i._state.opened\n || i._state.locked\n ) return;\n\n i._state.locked = true;\n\n i._state.opening = false;\n\n i._console.log('Closing:', i.id);\n\n //------------------------------------------------------\n // \n\n if (target) {\n\n /*let dataElement = i._registry.close.get(target);\n\n // Adiciona de forma inteligente novos elements que não estão listados\n if (!dataElement) {\n\n i.registerClose(element);\n\n dataElement = i._registry.open.get(target);\n }*/\n }\n\n //------------------------------------------------------\n // \n\n for (const [id, hyperfloatInstance] of getManager()._instancesMap) {\n\n if (\n hyperfloatInstance.parentHyperfloat === i.id &&\n hyperfloatInstance.dismiss.closeWithParent\n ) {\n\n await hyperfloatInstance.close({\n el,\n event,\n source\n });\n }\n };\n\n //------------------------------------------------------\n // Before Close\n\n let resultHook = await callHook('onBeforeClose', i, {\n target,\n event,\n source\n });\n\n if (\n resultHook === false ||\n resultHook?.prevent\n ) {\n i._state.locked = false;\n i._state.opened = true;\n i._state.opening = false;\n return;\n }\n\n //------------------------------------------------------\n // \n\n i._cache.lastcloseTarget = target;\n\n i._state.pointer.target = {\n el: target,\n action: 'close'\n };\n\n //------------------------------------------------------\n // Remove Inactive Close Delay\n\n if (\n i.dismiss.timeout &&\n i.dismiss.timeout !== null\n ) {\n i._handlers.stopTimeoutTimer();\n }\n else if (\n i.dismiss.idleTimeout &&\n i.dismiss.idleTimeout !== null\n ) {\n\n i._handlers.stopIdleTimer();\n\n removeListener(i, i.elements.box, 'pointerenter', i._handlers.stopIdleTimer);\n removeListener(i, i.elements.box, 'pointerleave', i._handlers.startIdleTimer);\n\n removeListener(i, i.elements.box, 'pointerdown', i._handlers.stopIdleTimer);\n removeListener(i, i.elements.box, 'wheel', i._handlers.stopIdleTimer);\n removeListener(i, i.elements.box, 'touchstart', i._handlers.stopIdleTimer);\n removeListener(i, i.elements.box, 'keydown', i._handlers.stopIdleTimer);\n removeListener(i, i.elements.box, 'focusin', i._handlers.stopIdleTimer);\n }\n\n //------------------------------------------------------\n // Close\n\n await callHook('onClose', i, {\n target,\n event,\n source\n });\n\n //------------------------------------------------------\n // Close\n\n i._state.opened = false;\n i._state.opening = false;\n\n i._elements.boundary.dataset.hyperfloatOpened = 'false';\n\n getManager()._setHyperfloatOpened(i, false);\n\n i._console.log('Close:', i.id);\n\n //------------------------------------------------------\n // Update Status\n\n for (const [_element, _props] of i._registry.open) {\n\n _element.dataset.hyperfloatOpened = 'false';\n };\n\n for (const [_element, _props] of i._registry.close) {\n\n _element.dataset.hyperfloatOpened = 'false';\n };\n\n //------------------------------------------------------\n // After Close\n\n await callHook('onAfterClose', i, {\n target,\n event,\n source\n });\n\n //------------------------------------------------------\n // Clear\n\n i._cache.lastTarget = null;\n\n i._cache.parentHyperfloat = null;\n\n i._state.pointer.target = {\n el: null,\n action: null\n }; \n\n //------------------------------------------------------\n // \n\n if (\n i.anchor === 'pointer' //||\n //i.draggable?.enabled\n ) {\n getManager()._syncPointerEngine();\n }\n\n //------------------------------------------------------\n // Ready\n\n i._state.locked = false;\n\n //------------------------------------------------------\n // Destroy After Close\n\n if (i.destroyAfterClose) {\n\n //console.log('destroyAfterClose');\n\n await destroy(i);\n }\n}\n\nexport async function destroy(i, {\n target = null,\n event = null,\n source = 'user'\n} = {}) {\n\n if (i.opened) {\n\n await close(i, {\n event: 'destroy',\n source,\n });\n }\n\n await callHook('onDestroy', i, {\n target,\n event,\n source\n });\n\n destroyListeners(i);\n\n if (i._elements.boundary) {\n i._elements.boundary.remove();\n }\n\n // Deletar a própria instancia\n\n getManager()._off('sync', i._handlers.sync);\n getManager()._off('update', i._handlers.update);\n getManager()._off('refresh', i._handlers.refresh);\n getManager()._off('raf', i._handlers.raf);\n\n getManager()._instancesMap.delete(i.id);\n} ","// src/helpers/console.js\n\nexport function _console(i, prefix = '') {\n\n const debug = i.debug;\n\n if (!debug) {\n\n return {\n log: () => { },\n info: () => { },\n warn: () => { },\n error: () => { },\n table: () => { },\n };\n }\n\n return {\n log: (...args) => console.log(prefix, ...args),\n info: (...args) => console.info(prefix, ...args),\n warn: (...args) => console.warn(prefix, ...args),\n error: (...args) => console.error(prefix, ...args),\n table: (...args) => {\n const data = args.pop();\n console.log(prefix, ...args);\n console.table(data);\n },\n };\n};","// src/instance/mount.js\n\nimport {\n createElement,\n customRendering,\n} from '../utils/index.js';\n\nimport {\n applyBoundaryPadding,\n applyBoxOffset,\n applyOverlay,\n applyPlacement,\n applySize,\n} from '../helpers/applicators.js';\n\nimport {\n setDraggable\n} from './setters.js';\n\n//------------------------------------------------------\n// Mount\nexport function mount(i) {\n\n //------------------------------------------------------\n // Boundary\n\n i._elements.boundary = createElement('div', {\n\n attrs: {\n\n ...i._helpers.createMetaDataset(),\n\n ...i._helpers.createAccessibilityDataset(),\n\n 'data-hyperfloat-boundary': '',\n\n id: `${i.id}`,\n\n 'data-hyperfloat-id': `${i.id}`,\n\n 'data-hyperfloat-opened': 'false',\n\n //'role': 'dialog',\n\n //'aria-dialog': 'true',\n\n 'data-hyperfloat-anchor': i.anchor,\n\n 'data-hyperfloat-anchored': i._state.anchored,\n\n 'data-hyperfloat-draggable': i.draggable?.enabled === true,\n },\n\n appendTo: i._elements.root,\n\n });\n\n //------------------------------------------------------\n // Overlay\n\n i._elements.overlayEl = createElement('div', {\n\n class: 'hyperfloat-overlay',\n attrs: {\n 'data-hyperfloat-overlay': ''\n },\n appendTo: i._elements.boundary,\n });\n\n applyOverlay(i);\n\n //------------------------------------------------------\n // Positioner\n\n const hasPositioner = (\n [\n 'pointer',\n 'element'\n ].includes(i.anchor) ||\n i.draggable?.enabled\n );\n\n if (hasPositioner) {\n\n i._elements.positioner = createElement('div', {\n\n attrs: {\n 'data-hyperfloat-positioner': '',\n },\n appendTo: i._elements.boundary,\n\n });\n }\n\n //------------------------------------------------------\n // Box\n\n const appendToBox = hasPositioner\n ? i._elements.positioner\n : i._elements.boundary;\n\n i._elements.box = createElement('div', {\n\n class: 'hyperfloat-box',\n\n attrs: {\n 'data-hyperfloat-box': '',\n },\n\n appendTo: appendToBox,\n });\n\n //------------------------------------------------------\n // Header\n\n i._elements.headerInner = customRendering(i.header, i);\n\n if (i._elements.headerInner) {\n\n i._elements.header = createElement('div', {\n\n class: 'hyperfloat-header',\n\n attrs: {\n 'data-hyperfloat-header': ''\n },\n\n html: i._elements.headerInner,\n appendTo: i._elements.box,\n });\n\n i._elements.header.style.order = 1;\n }\n\n //------------------------------------------------------\n // Content\n\n i._elements.content = createElement('div', {\n\n attrs: {\n 'data-hyperfloat-content': ''\n },\n\n appendTo: i._elements.box,\n\n });\n\n i._elements.content.style.order = 2;\n\n // Content Inner\n i._elements.contentInner = createElement('div', {\n\n\n attrs: {\n 'data-hyperfloat-content-inner': ''\n },\n\n appendTo: i._elements.content,\n\n });\n\n // Content\n if (i.content) {\n\n customRendering(i.content, {}, i._elements.contentInner);\n }\n else {\n\n i._elements.loading = createElement('div', {\n\n class: 'hyperfloat-loading',\n\n attrs: {\n 'data-hyperfloat-loading': ''\n },\n\n html: '<span class=\"hyperfloat-loading-bar\" data-hyperfloat-loading-bar></span>',\n\n appendTo: i._elements.content,\n\n });\n }\n\n //------------------------------------------------------\n // Footer\n\n i._elements.footerInner = customRendering(i.footer, i);\n\n if (i._elements.footerInner) {\n\n i._elements.footer = createElement('div', {\n\n class: 'hyperfloat-footer',\n\n attrs: {\n 'data-hyperfloat-footer': ''\n },\n\n html: i._elements.footerInner,\n appendTo: i._elements.box,\n });\n\n i._elements.footer.style.order = 3;\n }\n\n // Padding \n applyBoundaryPadding(i);\n\n // Offset\n applyBoxOffset(i);\n\n // Placement\n applyPlacement(i);\n\n // Size\n applySize(i);\n\n //------------------------------------------------------\n // \n\n if (\n i.draggable?.enabled &&\n i._data?.draggable?.handle\n ) { \n setDraggable(i, {\n bounds: i.draggable.bounds,\n handle: i._data?.draggable?.handle\n });\n }\n}","// src/instance/initializer.js\n\nimport {\n mount\n} from './mount.js';\n\nimport {\n sync\n} from './sync.js';\n\nimport {\n setupBreakpoints\n} from './breakpoints.js';\n\nimport {\n callHook\n} from './hooks.js';\n\nimport {\n syncDefaultCloseEntries\n} from './registry.js';\n\nimport {\n setupDraggable\n} from './draggable.js';\n\nexport async function initialize(i) {\n\n //console.log('initialize');\n\n await callHook('onBeforeInit', i, {});\n\n mount(i);\n\n syncDefaultCloseEntries(i);\n\n sync(i);\n\n setupBreakpoints(i);\n\n setupDraggable(i);\n\n //callHook('onInit', i, {}, false);\n await callHook('onInit', i, {});\n\n //callHook('onAfterInit', i, {}, false);\n await callHook('onAfterInit', i, {});\n\n ready(i);\n\n i._state.ready = true;\n};\n\nexport function ready(i) {\n\n i._console.log('Ready:', i.id);\n\n callHook('onReady', i, {});\n\n //console.log('Created:', i.id);\n};","// src/instance.js \n\nimport {\n getManager\n} from './helpers/getManager.js';\n\nimport {\n sync,\n refresh,\n update,\n raf\n} from './instance/sync.js';\n\nimport {\n open,\n close,\n destroy\n} from './instance/actions.js';\n\nimport {\n setAccessibility,\n setBoundaryPadding,\n setDismiss,\n setDraggable,\n setFlip,\n setMeta,\n setOffset,\n setOverlay,\n setPlacement,\n setShift,\n setSize\n} from './instance/setters.js';\n\nimport {\n registerAction\n} from './instance/registry.js';\n\nimport {\n _console\n} from './helpers/console.js';\n\nimport {\n initialize\n} from './instance/initializer.js';\n\nimport {\n normalizeRegisterOptions,\n resolveHostHyperfloat,\n} from './helpers/normalizers.js';\n\nimport {\n parseOptions\n} from './helpers/parsers.js';\n\nimport pkg from '../../../package.json';\nimport baseOptions from './constants/baseOptions.js';\nimport allowedValues from './constants/allowedValues.js';\n\nconst VERSION = pkg.version;\n\nexport default class Hyperfloat {\n\n constructor(dataRaw) {\n\n // Trava para evitar execução no Node.js/SSR\n if (typeof window === 'undefined') {\n return;\n }\n\n const data = getManager()._normalizeData(dataRaw);\n\n this._data = data;\n\n this._id = data.id;\n\n this._listenersMap = new Map();\n\n //------------------------------------------------------\n // Options \n\n this._config = {\n anchor: data.anchor ?? 'viewport', // element | viewport | pointer\n };\n\n this._config = {\n ...this._config,\n ...parseOptions(this, data),\n };\n\n // Content\n\n this.content = data.content ?? null;\n\n //------------------------------------------------------\n // Functions\n\n this._console = _console(\n this,\n '[Trivon Ui - Hyperfloat]',\n );\n\n //------------------------------------------------------\n // Timers\n\n this._timers = {\n\n pointerLeave: null,\n idle: null,\n timeout: null,\n outside: null,\n };\n\n this._outsideCloseDelay = 4000;\n\n //------------------------------------------------------\n // Elements\n\n this._elements = {\n\n root: data.root,\n\n boundary: null,\n\n positioner: null,\n\n box: null,\n\n content: null,\n\n contentInner: null,\n\n overlayEl: null,\n\n header: null,\n\n headerInner: null,\n\n footer: null,\n\n footerInner: null,\n\n loading: null,\n };\n\n //------------------------------------------------------\n // State\n\n this._state = {\n\n ready: false,\n\n opened: false,\n\n opening: false,\n\n locked: false,\n\n dragging: false,\n\n anchored: [\n 'element',\n 'pointer'\n ].includes(this.anchor),\n\n priority: 0,\n\n pointer: {\n x: 0,\n y: 0,\n target: {\n el: null,\n action: null\n },\n },\n\n drag: null,\n /*\n {\n startX: 0,\n startY: 0,\n offsetX: 0,\n offsetY: 0\n }\n */\n\n position: {\n x: 0,\n y: 0\n },\n\n interpolation: {\n lastX: 0,\n lastY: 0\n },\n\n resolvedPlacement: this._config.placement,\n\n firstresolveBreakpointsDone: false,\n\n firstcomputeRectsDone: false,\n };\n\n //------------------------------------------------------\n // \n\n this._breakpoints = [];\n\n //------------------------------------------------------\n // Handlers\n\n this._handlers = {\n\n startIdleTimer: () => {\n\n clearTimeout(this._timers.idle);\n\n if (!this.dismiss.idleTimeout || this.dismiss.idleTimeout <= 0) return;\n\n this._timers.idle = setTimeout(() => {\n\n close(this, {\n event: 'no-interaction'\n });\n\n }, this.dismiss.idleTimeout);\n },\n\n stopIdleTimer: () => {\n\n clearTimeout(this._timers.idle);\n },\n\n startTimeoutTimer: () => {\n\n clearTimeout(this._timers.timeout);\n\n if (!this.dismiss.timeout || this.dismiss.timeout <= 0) return;\n\n this._timers.timeout = setTimeout(() => {\n\n close(this, {\n event: 'timeout'\n });\n\n }, this.dismiss.timeout);\n },\n\n stopTimeoutTimer: () => {\n\n clearTimeout(this._timers.timeout);\n },\n\n sync: (...args) => sync(this, ...args),\n\n update: (...args) => update(this, ...args),\n\n refresh: (...args) => refresh(this, ...args),\n\n raf: () => raf(this),\n\n pointerLeave: (e) => {\n\n if (\n !this._state.opened &&\n !this._state.opening\n ) return;\n\n const el = e.currentTarget || e.target;\n\n const related = e.relatedTarget;\n\n if (\n related &&\n (\n this._elements.box.contains(related) ||\n [...this._registry.open.keys()].some(element =>\n element.contains(related)\n )\n )\n ) {\n return;\n }\n\n //------------------------------------------------------\n // Candidate to close\n\n if (this.anchor === 'pointer') {\n\n clearTimeout(this._timers.pointerLeave);\n\n this._timers.pointerLeave = setTimeout(() => {\n\n // O ponteiro realmente saiu?\n\n const hovered =\n this._elements.box.matches(':hover') ||\n [...this._registry.open.keys()].some(element => element.matches(':hover'));\n\n if (hovered) {\n return;\n }\n \n this.close({\n target: el,\n event: 'pointerleave'\n });\n\n }, 100);\n }\n else {\n\n this.close({\n target: el,\n event: 'pointerleave'\n });\n } \n },\n\n pointerMove: () => { },\n\n pointerDown: () => { },\n\n pointerUp: () => { }\n };\n\n this.sync = this._handlers.sync;\n this.update = this._handlers.update;\n this.refresh = this._handlers.refresh;\n getManager()._on('sync', this._handlers.sync);\n getManager()._on('update', this._handlers.update);\n getManager()._on('refresh', this._handlers.refresh);\n getManager()._on('raf', this._handlers.raf);\n\n //------------------------------------------------------\n // Actions\n\n this.open = async (...args) => await open(this, ...args);\n this.close = async (...args) => await close(this, ...args);\n this.destroy = async (...args) => await destroy(this, ...args);\n\n //------------------------------------------------------\n // Cache\n\n this._cache = {\n\n boundaryRect: null,\n positionerRect: null,\n targetRects: new Map(),\n\n parentHyperfloat: null,\n lastTarget: null,\n lastcloseTarget: null,\n lastBreakpoint: 9999999999999,\n\n computeRectsVersion: 0,\n\n resolveBreakpointsVersion: 0,\n\n syncPositionVersion: 0,\n\n lastApplyMeta: {},\n lastApplyAccessibility: {},\n };\n\n //------------------------------------------------------\n // Entries\n\n this._registry = {\n open: new Map(),\n close: new Map(),\n };\n\n for (const action of Object.keys(this._registry)) {\n\n const entries = normalizeRegisterOptions(\n data[action] ?? null\n );\n\n entries.forEach(entry => {\n\n this._registry[action].set(entry.el, {\n hostHyperfloat: resolveHostHyperfloat(entry.el),\n event: entry.event\n });\n });\n\n }\n\n // Functions\n this.registerOpen = (params) => registerAction(this, 'open', params);\n this.registerClose = (params) => registerAction(this, 'close', params);\n\n this.unregisterOpen = (target) => unregisterAction(this, 'open', target);\n this.unregisterClose = (target) => unregisterAction(this, 'close', target);\n\n //------------------------------------------------------\n // Vars\n\n this.vars = data.vars ?? {};\n\n //------------------------------------------------------\n // Finaly\n\n getManager()._instancesMap.set(this.id, this);\n\n return this;\n }\n\n //------------------------------------------------------\n // Create \n\n static async create(data = {}) {\n\n // Trava para evitar execução no Node.js/SSR\n if (typeof window === 'undefined') {\n return null;\n }\n\n if (\n data.id &&\n getManager()._instancesMap.has(data.id)\n ) {\n\n const existentInstance = getManager()._instancesMap.get(data.id);\n const overwrite = data.overwrite === true;\n\n //console.log('Já existe Lib:', data.id, 'overwrite', overwrite);\n\n if (overwrite) {\n\n existentInstance.destroy();\n }\n else {\n\n existentInstance.sync();\n return existentInstance;\n }\n }\n\n //------------------------------------------------------\n // New\n\n const instance = new this(data);\n\n await initialize(instance);\n\n if (data.autoOpen === true) {\n\n //console.log('autoOpen');\n\n await open(instance, {\n event: 'initialize',\n source: 'auto',\n });\n }\n\n return instance;\n }\n\n //------------------------------------------------------\n // Gets\n\n get id() {\n return this._id;\n }\n\n get anchor() {\n return this._config.anchor;\n }\n\n get opened() {\n return this._state.opened;\n }\n\n get resolvedPlacement() {\n return this._state.resolvedPlacement;\n }\n\n get state() {\n return {\n ready: this._state.ready,\n priority: this._state.priority,\n anchored: this._state.anchored,\n pointer: this._state.pointer,\n locked: this._state.locked,\n opened: this._state.opened,\n opening: this._state.opening,\n dragging: this._state.dragging,\n }\n }\n\n get elements() {\n\n return {\n //root: this._elements.root,\n boundary: this._elements.boundary,\n overlay: this._elements.overlayEl,\n positioner: this._elements.positioner,\n box: this._elements.box,\n content: this._elements.content,\n contentInner: this._elements.contentInner,\n loading: this._elements.loading,\n header: this._elements.header,\n headerInner: this._elements.headerInner,\n footer: this._elements.footer,\n footerInner: this._elements.footerInner,\n };\n }\n\n get lastTarget() {\n return this._cache.lastTarget;\n }\n\n get parentHyperfloat() {\n return this._cache.parentHyperfloat;\n }\n\n get boundaryRect() {\n return this._cache.boundaryRect;\n }\n\n get positionerRect() {\n return this._cache.positionerRect;\n }\n\n get lastBreakpoint() {\n return this._cache.lastBreakpoint;\n }\n\n _helpers = {\n\n createAccessibilityDataset: () => {\n\n const values = Object.fromEntries(\n\n Object.entries(this.accessibility)\n .map(([key, value]) => {\n\n let attr = '';\n\n switch (key) {\n case 'role':\n attr = key;\n break;\n\n case 'label':\n attr = 'aria-label';\n break;\n\n case 'modal':\n default:\n attr = `data-${key}`;\n break;\n }\n\n return [\n attr,\n String(value)\n ];\n })\n );\n\n this._cache.lastApplyAccessibility = values;\n\n return values;\n },\n\n createMetaDataset: () => {\n\n const values = Object.fromEntries(\n\n Object.entries(this.meta).map(([key, value]) => [\n\n `data-${key}`,\n\n String(value)\n ])\n );\n\n this._cache.lastApplyMeta = values;\n\n return values;\n },\n }\n\n //------------------------------------------------------\n // Statics\n\n static get version() {\n\n return VERSION;\n }\n\n static get _manager() {\n\n return getManager();\n }\n\n static config(data = {}) {\n\n getManager()._setConfig(data);\n }\n\n static defaults(data = {}) {\n\n getManager()._setDefaults(data);\n }\n\n static async open(id, data = {}) {\n\n await getManager()._open(id, data);\n }\n\n static async close(id, data = {}) {\n\n await getManager()._close(id, data);\n }\n\n static async closeAll(data = {}) {\n\n await getManager()._closeAll(data);\n }\n\n static async destroy(id, data = {}) {\n\n await getManager()._destroy(id, data);\n }\n\n static async destroyAll(data = {}) {\n\n await getManager()._destroyAll(data);\n }\n\n static sync() {\n\n getManager()._sync();\n }\n\n static update() {\n\n getManager()._update();\n }\n\n static refresh() {\n\n getManager()._refresh();\n }\n\n static raf(time) {\n\n getManager()._raf(time);\n }\n\n static getAll() {\n\n return getManager()._getAll();\n }\n\n static getOpened(...args) {\n\n return getManager()._getOpened(...args);\n }\n\n static getByPriority(...args) {\n\n return getManager()._getByPriority(...args);\n }\n};\n\n//------------------------------------------------------\n// Getters\n\nbaseOptions.forEach(opt => {\n\n Object.defineProperty(Hyperfloat.prototype, opt, {\n\n get() {\n return this._config[opt] ?? getManager()._defaults[opt] ?? allowedValues[opt].default;\n },\n\n set(value) {\n\n if (opt == 'meta') {\n\n setMeta(this, value);\n }\n else if (opt == 'accessibility') {\n\n setAccessibility(this, value);\n }\n else if (opt == 'dismiss') {\n\n setDismiss(this, value);\n }\n else if (opt == 'overlay') {\n\n setOverlay(this, value);\n }\n else if (opt == 'placement') {\n\n setPlacement(this, value);\n }\n else if (opt == 'boundaryPadding') {\n\n setBoundaryPadding(this, value);\n }\n else if (opt == 'offset') {\n\n setOffset(this, value);\n }\n else if (opt == 'flip') {\n\n setFlip(this, value);\n }\n else if (opt == 'shift') {\n\n setShift(this, value);\n }\n else if (opt == 'size') {\n\n setSize(this, value);\n }\n else if (opt == 'draggable') {\n\n setDraggable(this, value);\n }\n // Booleans\n else if ([\n 'destroyAfterClose',\n 'ignoreCloseAll',\n 'debug'\n ].includes(opt)) {\n\n this._config[opt] = value === true;\n }\n else {\n /* \n draggable,\n autoOpen,\n header,\n footer,\n breakpoints,\n */\n // Not allowed\n }\n },\n\n configurable: true, // Permite que seja redefinido depois se necessário\n enumerable: true // Faz a propriedade aparecer em Object.keys()\n });\n\n});\n","// browser.js \n\nimport Hyperfloat from \"./src/instance.js\"; \n\nexport default Hyperfloat; "],"names":["allowedValues","mount","callHook","open","close","destroy","raf","refresh","update","sync","unregisterAction","syncPosition"],"mappings":"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"}
|