@inkandswitch/patchwork-pkg-base 0.0.54 → 0.0.56

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (24) hide show
  1. package/package.json +1 -1
  2. package/packages/account/dist/{AccountPicker-HMEN6MEN.js → AccountPicker-HB6MDLKN.js} +390 -123
  3. package/packages/account/dist/AccountPicker-HB6MDLKN.js.map +7 -0
  4. package/packages/account/dist/{ContactAvatar-KCZOCABR.js → ContactAvatar-KM4BONY5.js} +7 -7
  5. package/packages/account/dist/ContactAvatar-KM4BONY5.js.map +7 -0
  6. package/packages/account/dist/{ContactCursor-RLXRAX65.js → ContactCursor-4FYCATG5.js} +6 -6
  7. package/packages/account/dist/ContactCursor-4FYCATG5.js.map +7 -0
  8. package/packages/account/dist/index.css +96 -15
  9. package/packages/account/dist/index.css.map +2 -2
  10. package/packages/account/dist/index.js +3 -3
  11. package/packages/codemirror-base/dist/{chunk-H5POLO74.js → chunk-AKNT5U37.js} +43 -28
  12. package/packages/codemirror-base/dist/chunk-AKNT5U37.js.map +7 -0
  13. package/packages/codemirror-base/dist/lib/codemirror.js +1 -1
  14. package/packages/codemirror-base/dist/tool.js +21 -3
  15. package/packages/codemirror-base/dist/tool.js.map +2 -2
  16. package/packages/comments-view/dist/assets/main-BPvgT7fH.js +1 -1
  17. package/packages/tldraw4/dist/tool.js +3 -23
  18. package/packages/tldraw4/dist/tool.js.map +2 -2
  19. package/packages/account/dist/AccountPicker-HMEN6MEN.js.map +0 -7
  20. package/packages/account/dist/ContactAvatar-KCZOCABR.js.map +0 -7
  21. package/packages/account/dist/ContactCursor-RLXRAX65.js.map +0 -7
  22. package/packages/account/dist/chunk-3YUNEZX6.js +0 -38
  23. package/packages/account/dist/chunk-3YUNEZX6.js.map +0 -7
  24. package/packages/codemirror-base/dist/chunk-H5POLO74.js.map +0 -7
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../node_modules/.pnpm/ms@2.1.3/node_modules/ms/index.js", "../node_modules/.pnpm/debug@4.4.3/node_modules/debug/src/common.js", "../node_modules/.pnpm/debug@4.4.3/node_modules/debug/src/browser.js", "../node_modules/.pnpm/solid-js@1.9.11/node_modules/solid-js/dist/solid.js", "../node_modules/.pnpm/solid-js@1.9.11/node_modules/solid-js/web/dist/web.js", "../node_modules/.pnpm/cabbages@0.2.10/node_modules/cabbages/output/cabbages.js", "../node_modules/.pnpm/solid-automerge@2.0.1_@automerge+automerge-repo@2.6.0-subduction.12_solid-js@1.9.11/node_modules/solid-automerge/src/autoproduce.ts", "../node_modules/.pnpm/solid-js@1.9.11/node_modules/solid-js/store/dist/store.js", "../node_modules/.pnpm/solid-automerge@2.0.1_@automerge+automerge-repo@2.6.0-subduction.12_solid-js@1.9.11/node_modules/solid-automerge/src/makeDocumentProjection.ts", "../node_modules/.pnpm/@solid-primitives+utils@6.4.1_solid-js@1.9.11/node_modules/@solid-primitives/utils/dist/index.js", "../node_modules/.pnpm/solid-automerge@2.0.1_@automerge+automerge-repo@2.6.0-subduction.12_solid-js@1.9.11/node_modules/solid-automerge/src/createDocumentProjection.ts", "../node_modules/.pnpm/solid-automerge@2.0.1_@automerge+automerge-repo@2.6.0-subduction.12_solid-js@1.9.11/node_modules/solid-automerge/src/context.ts", "../node_modules/.pnpm/solid-automerge@2.0.1_@automerge+automerge-repo@2.6.0-subduction.12_solid-js@1.9.11/node_modules/solid-automerge/src/useDocHandle.ts", "../node_modules/.pnpm/solid-automerge@2.0.1_@automerge+automerge-repo@2.6.0-subduction.12_solid-js@1.9.11/node_modules/solid-automerge/src/useDocument.ts", "../src/picker/tokens.ts", "../src/picker/ui/button.tsx", "../src/picker/ui/color-picker.tsx", "../src/picker/ui/input.tsx", "../src/picker/ui/label.tsx", "../node_modules/.pnpm/@kobalte+core@0.13.11_solid-js@1.9.11/node_modules/@kobalte/core/dist/chunk/43XIKO67.js", "../node_modules/.pnpm/@solid-primitives+utils@6.3.2_solid-js@1.9.11/node_modules/@solid-primitives/utils/dist/index.js", "../node_modules/.pnpm/@solid-primitives+event-listener@2.4.3_solid-js@1.9.11/node_modules/@solid-primitives/event-listener/dist/eventListener.js", "../node_modules/.pnpm/@solid-primitives+props@3.2.2_solid-js@1.9.11/node_modules/@solid-primitives/props/dist/combineProps.js", "../node_modules/.pnpm/@solid-primitives+refs@1.1.2_solid-js@1.9.11/node_modules/@solid-primitives/refs/dist/index.js", "../node_modules/.pnpm/@kobalte+utils@0.9.1_solid-js@1.9.11/node_modules/@kobalte/utils/src/array.ts", "../node_modules/.pnpm/@kobalte+utils@0.9.1_solid-js@1.9.11/node_modules/@kobalte/utils/src/assertion.ts", "../node_modules/.pnpm/@kobalte+utils@0.9.1_solid-js@1.9.11/node_modules/@kobalte/utils/src/create-generate-id.ts", "../node_modules/.pnpm/@kobalte+utils@0.9.1_solid-js@1.9.11/node_modules/@kobalte/utils/src/create-global-listeners.ts", "../node_modules/.pnpm/@kobalte+utils@0.9.1_solid-js@1.9.11/node_modules/@kobalte/utils/src/dom.ts", "../node_modules/.pnpm/@kobalte+utils@0.9.1_solid-js@1.9.11/node_modules/@kobalte/utils/src/enums.ts", "../node_modules/.pnpm/@kobalte+utils@0.9.1_solid-js@1.9.11/node_modules/@kobalte/utils/src/platform.ts", "../node_modules/.pnpm/@kobalte+utils@0.9.1_solid-js@1.9.11/node_modules/@kobalte/utils/src/events.ts", "../node_modules/.pnpm/@kobalte+utils@0.9.1_solid-js@1.9.11/node_modules/@kobalte/utils/src/external.ts", "../node_modules/.pnpm/@kobalte+utils@0.9.1_solid-js@1.9.11/node_modules/@kobalte/utils/src/focus-without-scrolling.ts", "../node_modules/.pnpm/@kobalte+utils@0.9.1_solid-js@1.9.11/node_modules/@kobalte/utils/src/tabbable.ts", "../node_modules/.pnpm/@kobalte+utils@0.9.1_solid-js@1.9.11/node_modules/@kobalte/utils/src/focus-manager.ts", "../node_modules/.pnpm/@kobalte+utils@0.9.1_solid-js@1.9.11/node_modules/@kobalte/utils/src/get-scroll-parent.ts", "../node_modules/.pnpm/@kobalte+utils@0.9.1_solid-js@1.9.11/node_modules/@kobalte/utils/src/is-virtual-event.ts", "../node_modules/.pnpm/@kobalte+utils@0.9.1_solid-js@1.9.11/node_modules/@kobalte/utils/src/noop.ts", "../node_modules/.pnpm/@kobalte+utils@0.9.1_solid-js@1.9.11/node_modules/@kobalte/utils/src/number.ts", "../node_modules/.pnpm/@kobalte+utils@0.9.1_solid-js@1.9.11/node_modules/@kobalte/utils/src/polygon.ts", "../node_modules/.pnpm/@kobalte+utils@0.9.1_solid-js@1.9.11/node_modules/@kobalte/utils/src/props.ts", "../node_modules/.pnpm/@kobalte+utils@0.9.1_solid-js@1.9.11/node_modules/@kobalte/utils/src/run-after-transition.ts", "../node_modules/.pnpm/@kobalte+utils@0.9.1_solid-js@1.9.11/node_modules/@kobalte/utils/src/scroll-into-view.ts", "../node_modules/.pnpm/@kobalte+utils@0.9.1_solid-js@1.9.11/node_modules/@kobalte/utils/src/styles.ts", "../node_modules/.pnpm/@kobalte+core@0.13.11_solid-js@1.9.11/node_modules/@kobalte/core/dist/chunk/JMA2RWU6.js", "../node_modules/.pnpm/@kobalte+core@0.13.11_solid-js@1.9.11/node_modules/@kobalte/core/dist/chunk/XHJPQEZP.js", "../node_modules/.pnpm/@kobalte+core@0.13.11_solid-js@1.9.11/node_modules/@kobalte/core/dist/chunk/BLN63FDC.js", "../node_modules/.pnpm/@kobalte+core@0.13.11_solid-js@1.9.11/node_modules/@kobalte/core/dist/chunk/H6DSIDEC.js", "../node_modules/.pnpm/@kobalte+core@0.13.11_solid-js@1.9.11/node_modules/@kobalte/core/dist/chunk/7CVNMTYF.js", "../node_modules/.pnpm/@kobalte+core@0.13.11_solid-js@1.9.11/node_modules/@kobalte/core/dist/chunk/6Y7B2NEO.js", "../node_modules/.pnpm/@kobalte+core@0.13.11_solid-js@1.9.11/node_modules/@kobalte/core/dist/chunk/5ZKAE4VZ.js", "../node_modules/.pnpm/@corvu+utils@0.4.2_solid-js@1.9.11/node_modules/@corvu/utils/dist/chunk/ZV6G25TT.js", "../node_modules/.pnpm/solid-presence@0.1.8_solid-js@1.9.11/node_modules/solid-presence/dist/index.js", "../node_modules/.pnpm/@solid-primitives+resize-observer@2.1.3_solid-js@1.9.11/node_modules/@solid-primitives/resize-observer/dist/index.js", "../node_modules/.pnpm/@kobalte+core@0.13.11_solid-js@1.9.11/node_modules/@kobalte/core/dist/chunk/4XGMYOCT.js", "../src/picker/ui/tabs.tsx", "../node_modules/.pnpm/@floating-ui+utils@0.2.11/node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs", "../node_modules/.pnpm/@floating-ui+core@1.7.5/node_modules/@floating-ui/core/dist/floating-ui.core.mjs", "../node_modules/.pnpm/@floating-ui+utils@0.2.11/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.mjs", "../node_modules/.pnpm/@floating-ui+dom@1.7.6/node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs", "../node_modules/.pnpm/@kobalte+core@0.13.11_solid-js@1.9.11/node_modules/@kobalte/core/dist/chunk/LMWVDFW6.js", "../node_modules/.pnpm/@kobalte+core@0.13.11_solid-js@1.9.11/node_modules/@kobalte/core/dist/chunk/ZKYDDHM6.js", "../node_modules/.pnpm/@kobalte+core@0.13.11_solid-js@1.9.11/node_modules/@kobalte/core/dist/chunk/KKN23NY7.js", "../node_modules/.pnpm/@kobalte+core@0.13.11_solid-js@1.9.11/node_modules/@kobalte/core/dist/chunk/QEMPLYZX.js", "../node_modules/.pnpm/@kobalte+core@0.13.11_solid-js@1.9.11/node_modules/@kobalte/core/dist/chunk/BASJUNIE.js", "../node_modules/.pnpm/@kobalte+core@0.13.11_solid-js@1.9.11/node_modules/@kobalte/core/dist/chunk/7LCANGHD.js", "../node_modules/.pnpm/@kobalte+core@0.13.11_solid-js@1.9.11/node_modules/@kobalte/core/dist/chunk/E4R2EMM4.js", "../node_modules/.pnpm/@kobalte+core@0.13.11_solid-js@1.9.11/node_modules/@kobalte/core/dist/chunk/JTUFZ2M6.js", "../src/picker/ui/tooltip.tsx", "../src/picker/AccountPicker.tsx"],
4
- "sourcesContent": ["/**\n * Helpers.\n */\n\nvar s = 1000;\nvar m = s * 60;\nvar h = m * 60;\nvar d = h * 24;\nvar w = d * 7;\nvar y = d * 365.25;\n\n/**\n * Parse or format the given `val`.\n *\n * Options:\n *\n * - `long` verbose formatting [false]\n *\n * @param {String|Number} val\n * @param {Object} [options]\n * @throws {Error} throw an error if val is not a non-empty string or a number\n * @return {String|Number}\n * @api public\n */\n\nmodule.exports = function (val, options) {\n options = options || {};\n var type = typeof val;\n if (type === 'string' && val.length > 0) {\n return parse(val);\n } else if (type === 'number' && isFinite(val)) {\n return options.long ? fmtLong(val) : fmtShort(val);\n }\n throw new Error(\n 'val is not a non-empty string or a valid number. val=' +\n JSON.stringify(val)\n );\n};\n\n/**\n * Parse the given `str` and return milliseconds.\n *\n * @param {String} str\n * @return {Number}\n * @api private\n */\n\nfunction parse(str) {\n str = String(str);\n if (str.length > 100) {\n return;\n }\n var match = /^(-?(?:\\d+)?\\.?\\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(\n str\n );\n if (!match) {\n return;\n }\n var n = parseFloat(match[1]);\n var type = (match[2] || 'ms').toLowerCase();\n switch (type) {\n case 'years':\n case 'year':\n case 'yrs':\n case 'yr':\n case 'y':\n return n * y;\n case 'weeks':\n case 'week':\n case 'w':\n return n * w;\n case 'days':\n case 'day':\n case 'd':\n return n * d;\n case 'hours':\n case 'hour':\n case 'hrs':\n case 'hr':\n case 'h':\n return n * h;\n case 'minutes':\n case 'minute':\n case 'mins':\n case 'min':\n case 'm':\n return n * m;\n case 'seconds':\n case 'second':\n case 'secs':\n case 'sec':\n case 's':\n return n * s;\n case 'milliseconds':\n case 'millisecond':\n case 'msecs':\n case 'msec':\n case 'ms':\n return n;\n default:\n return undefined;\n }\n}\n\n/**\n * Short format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtShort(ms) {\n var msAbs = Math.abs(ms);\n if (msAbs >= d) {\n return Math.round(ms / d) + 'd';\n }\n if (msAbs >= h) {\n return Math.round(ms / h) + 'h';\n }\n if (msAbs >= m) {\n return Math.round(ms / m) + 'm';\n }\n if (msAbs >= s) {\n return Math.round(ms / s) + 's';\n }\n return ms + 'ms';\n}\n\n/**\n * Long format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtLong(ms) {\n var msAbs = Math.abs(ms);\n if (msAbs >= d) {\n return plural(ms, msAbs, d, 'day');\n }\n if (msAbs >= h) {\n return plural(ms, msAbs, h, 'hour');\n }\n if (msAbs >= m) {\n return plural(ms, msAbs, m, 'minute');\n }\n if (msAbs >= s) {\n return plural(ms, msAbs, s, 'second');\n }\n return ms + ' ms';\n}\n\n/**\n * Pluralization helper.\n */\n\nfunction plural(ms, msAbs, n, name) {\n var isPlural = msAbs >= n * 1.5;\n return Math.round(ms / n) + ' ' + name + (isPlural ? 's' : '');\n}\n", "\n/**\n * This is the common logic for both the Node.js and web browser\n * implementations of `debug()`.\n */\n\nfunction setup(env) {\n\tcreateDebug.debug = createDebug;\n\tcreateDebug.default = createDebug;\n\tcreateDebug.coerce = coerce;\n\tcreateDebug.disable = disable;\n\tcreateDebug.enable = enable;\n\tcreateDebug.enabled = enabled;\n\tcreateDebug.humanize = require('ms');\n\tcreateDebug.destroy = destroy;\n\n\tObject.keys(env).forEach(key => {\n\t\tcreateDebug[key] = env[key];\n\t});\n\n\t/**\n\t* The currently active debug mode names, and names to skip.\n\t*/\n\n\tcreateDebug.names = [];\n\tcreateDebug.skips = [];\n\n\t/**\n\t* Map of special \"%n\" handling functions, for the debug \"format\" argument.\n\t*\n\t* Valid key names are a single, lower or upper-case letter, i.e. \"n\" and \"N\".\n\t*/\n\tcreateDebug.formatters = {};\n\n\t/**\n\t* Selects a color for a debug namespace\n\t* @param {String} namespace The namespace string for the debug instance to be colored\n\t* @return {Number|String} An ANSI color code for the given namespace\n\t* @api private\n\t*/\n\tfunction selectColor(namespace) {\n\t\tlet hash = 0;\n\n\t\tfor (let i = 0; i < namespace.length; i++) {\n\t\t\thash = ((hash << 5) - hash) + namespace.charCodeAt(i);\n\t\t\thash |= 0; // Convert to 32bit integer\n\t\t}\n\n\t\treturn createDebug.colors[Math.abs(hash) % createDebug.colors.length];\n\t}\n\tcreateDebug.selectColor = selectColor;\n\n\t/**\n\t* Create a debugger with the given `namespace`.\n\t*\n\t* @param {String} namespace\n\t* @return {Function}\n\t* @api public\n\t*/\n\tfunction createDebug(namespace) {\n\t\tlet prevTime;\n\t\tlet enableOverride = null;\n\t\tlet namespacesCache;\n\t\tlet enabledCache;\n\n\t\tfunction debug(...args) {\n\t\t\t// Disabled?\n\t\t\tif (!debug.enabled) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst self = debug;\n\n\t\t\t// Set `diff` timestamp\n\t\t\tconst curr = Number(new Date());\n\t\t\tconst ms = curr - (prevTime || curr);\n\t\t\tself.diff = ms;\n\t\t\tself.prev = prevTime;\n\t\t\tself.curr = curr;\n\t\t\tprevTime = curr;\n\n\t\t\targs[0] = createDebug.coerce(args[0]);\n\n\t\t\tif (typeof args[0] !== 'string') {\n\t\t\t\t// Anything else let's inspect with %O\n\t\t\t\targs.unshift('%O');\n\t\t\t}\n\n\t\t\t// Apply any `formatters` transformations\n\t\t\tlet index = 0;\n\t\t\targs[0] = args[0].replace(/%([a-zA-Z%])/g, (match, format) => {\n\t\t\t\t// If we encounter an escaped % then don't increase the array index\n\t\t\t\tif (match === '%%') {\n\t\t\t\t\treturn '%';\n\t\t\t\t}\n\t\t\t\tindex++;\n\t\t\t\tconst formatter = createDebug.formatters[format];\n\t\t\t\tif (typeof formatter === 'function') {\n\t\t\t\t\tconst val = args[index];\n\t\t\t\t\tmatch = formatter.call(self, val);\n\n\t\t\t\t\t// Now we need to remove `args[index]` since it's inlined in the `format`\n\t\t\t\t\targs.splice(index, 1);\n\t\t\t\t\tindex--;\n\t\t\t\t}\n\t\t\t\treturn match;\n\t\t\t});\n\n\t\t\t// Apply env-specific formatting (colors, etc.)\n\t\t\tcreateDebug.formatArgs.call(self, args);\n\n\t\t\tconst logFn = self.log || createDebug.log;\n\t\t\tlogFn.apply(self, args);\n\t\t}\n\n\t\tdebug.namespace = namespace;\n\t\tdebug.useColors = createDebug.useColors();\n\t\tdebug.color = createDebug.selectColor(namespace);\n\t\tdebug.extend = extend;\n\t\tdebug.destroy = createDebug.destroy; // XXX Temporary. Will be removed in the next major release.\n\n\t\tObject.defineProperty(debug, 'enabled', {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: false,\n\t\t\tget: () => {\n\t\t\t\tif (enableOverride !== null) {\n\t\t\t\t\treturn enableOverride;\n\t\t\t\t}\n\t\t\t\tif (namespacesCache !== createDebug.namespaces) {\n\t\t\t\t\tnamespacesCache = createDebug.namespaces;\n\t\t\t\t\tenabledCache = createDebug.enabled(namespace);\n\t\t\t\t}\n\n\t\t\t\treturn enabledCache;\n\t\t\t},\n\t\t\tset: v => {\n\t\t\t\tenableOverride = v;\n\t\t\t}\n\t\t});\n\n\t\t// Env-specific initialization logic for debug instances\n\t\tif (typeof createDebug.init === 'function') {\n\t\t\tcreateDebug.init(debug);\n\t\t}\n\n\t\treturn debug;\n\t}\n\n\tfunction extend(namespace, delimiter) {\n\t\tconst newDebug = createDebug(this.namespace + (typeof delimiter === 'undefined' ? ':' : delimiter) + namespace);\n\t\tnewDebug.log = this.log;\n\t\treturn newDebug;\n\t}\n\n\t/**\n\t* Enables a debug mode by namespaces. This can include modes\n\t* separated by a colon and wildcards.\n\t*\n\t* @param {String} namespaces\n\t* @api public\n\t*/\n\tfunction enable(namespaces) {\n\t\tcreateDebug.save(namespaces);\n\t\tcreateDebug.namespaces = namespaces;\n\n\t\tcreateDebug.names = [];\n\t\tcreateDebug.skips = [];\n\n\t\tconst split = (typeof namespaces === 'string' ? namespaces : '')\n\t\t\t.trim()\n\t\t\t.replace(/\\s+/g, ',')\n\t\t\t.split(',')\n\t\t\t.filter(Boolean);\n\n\t\tfor (const ns of split) {\n\t\t\tif (ns[0] === '-') {\n\t\t\t\tcreateDebug.skips.push(ns.slice(1));\n\t\t\t} else {\n\t\t\t\tcreateDebug.names.push(ns);\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Checks if the given string matches a namespace template, honoring\n\t * asterisks as wildcards.\n\t *\n\t * @param {String} search\n\t * @param {String} template\n\t * @return {Boolean}\n\t */\n\tfunction matchesTemplate(search, template) {\n\t\tlet searchIndex = 0;\n\t\tlet templateIndex = 0;\n\t\tlet starIndex = -1;\n\t\tlet matchIndex = 0;\n\n\t\twhile (searchIndex < search.length) {\n\t\t\tif (templateIndex < template.length && (template[templateIndex] === search[searchIndex] || template[templateIndex] === '*')) {\n\t\t\t\t// Match character or proceed with wildcard\n\t\t\t\tif (template[templateIndex] === '*') {\n\t\t\t\t\tstarIndex = templateIndex;\n\t\t\t\t\tmatchIndex = searchIndex;\n\t\t\t\t\ttemplateIndex++; // Skip the '*'\n\t\t\t\t} else {\n\t\t\t\t\tsearchIndex++;\n\t\t\t\t\ttemplateIndex++;\n\t\t\t\t}\n\t\t\t} else if (starIndex !== -1) { // eslint-disable-line no-negated-condition\n\t\t\t\t// Backtrack to the last '*' and try to match more characters\n\t\t\t\ttemplateIndex = starIndex + 1;\n\t\t\t\tmatchIndex++;\n\t\t\t\tsearchIndex = matchIndex;\n\t\t\t} else {\n\t\t\t\treturn false; // No match\n\t\t\t}\n\t\t}\n\n\t\t// Handle trailing '*' in template\n\t\twhile (templateIndex < template.length && template[templateIndex] === '*') {\n\t\t\ttemplateIndex++;\n\t\t}\n\n\t\treturn templateIndex === template.length;\n\t}\n\n\t/**\n\t* Disable debug output.\n\t*\n\t* @return {String} namespaces\n\t* @api public\n\t*/\n\tfunction disable() {\n\t\tconst namespaces = [\n\t\t\t...createDebug.names,\n\t\t\t...createDebug.skips.map(namespace => '-' + namespace)\n\t\t].join(',');\n\t\tcreateDebug.enable('');\n\t\treturn namespaces;\n\t}\n\n\t/**\n\t* Returns true if the given mode name is enabled, false otherwise.\n\t*\n\t* @param {String} name\n\t* @return {Boolean}\n\t* @api public\n\t*/\n\tfunction enabled(name) {\n\t\tfor (const skip of createDebug.skips) {\n\t\t\tif (matchesTemplate(name, skip)) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\tfor (const ns of createDebug.names) {\n\t\t\tif (matchesTemplate(name, ns)) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n\n\t/**\n\t* Coerce `val`.\n\t*\n\t* @param {Mixed} val\n\t* @return {Mixed}\n\t* @api private\n\t*/\n\tfunction coerce(val) {\n\t\tif (val instanceof Error) {\n\t\t\treturn val.stack || val.message;\n\t\t}\n\t\treturn val;\n\t}\n\n\t/**\n\t* XXX DO NOT USE. This is a temporary stub function.\n\t* XXX It WILL be removed in the next major release.\n\t*/\n\tfunction destroy() {\n\t\tconsole.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.');\n\t}\n\n\tcreateDebug.enable(createDebug.load());\n\n\treturn createDebug;\n}\n\nmodule.exports = setup;\n", "/* eslint-env browser */\n\n/**\n * This is the web browser implementation of `debug()`.\n */\n\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\nexports.storage = localstorage();\nexports.destroy = (() => {\n\tlet warned = false;\n\n\treturn () => {\n\t\tif (!warned) {\n\t\t\twarned = true;\n\t\t\tconsole.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.');\n\t\t}\n\t};\n})();\n\n/**\n * Colors.\n */\n\nexports.colors = [\n\t'#0000CC',\n\t'#0000FF',\n\t'#0033CC',\n\t'#0033FF',\n\t'#0066CC',\n\t'#0066FF',\n\t'#0099CC',\n\t'#0099FF',\n\t'#00CC00',\n\t'#00CC33',\n\t'#00CC66',\n\t'#00CC99',\n\t'#00CCCC',\n\t'#00CCFF',\n\t'#3300CC',\n\t'#3300FF',\n\t'#3333CC',\n\t'#3333FF',\n\t'#3366CC',\n\t'#3366FF',\n\t'#3399CC',\n\t'#3399FF',\n\t'#33CC00',\n\t'#33CC33',\n\t'#33CC66',\n\t'#33CC99',\n\t'#33CCCC',\n\t'#33CCFF',\n\t'#6600CC',\n\t'#6600FF',\n\t'#6633CC',\n\t'#6633FF',\n\t'#66CC00',\n\t'#66CC33',\n\t'#9900CC',\n\t'#9900FF',\n\t'#9933CC',\n\t'#9933FF',\n\t'#99CC00',\n\t'#99CC33',\n\t'#CC0000',\n\t'#CC0033',\n\t'#CC0066',\n\t'#CC0099',\n\t'#CC00CC',\n\t'#CC00FF',\n\t'#CC3300',\n\t'#CC3333',\n\t'#CC3366',\n\t'#CC3399',\n\t'#CC33CC',\n\t'#CC33FF',\n\t'#CC6600',\n\t'#CC6633',\n\t'#CC9900',\n\t'#CC9933',\n\t'#CCCC00',\n\t'#CCCC33',\n\t'#FF0000',\n\t'#FF0033',\n\t'#FF0066',\n\t'#FF0099',\n\t'#FF00CC',\n\t'#FF00FF',\n\t'#FF3300',\n\t'#FF3333',\n\t'#FF3366',\n\t'#FF3399',\n\t'#FF33CC',\n\t'#FF33FF',\n\t'#FF6600',\n\t'#FF6633',\n\t'#FF9900',\n\t'#FF9933',\n\t'#FFCC00',\n\t'#FFCC33'\n];\n\n/**\n * Currently only WebKit-based Web Inspectors, Firefox >= v31,\n * and the Firebug extension (any Firefox version) are known\n * to support \"%c\" CSS customizations.\n *\n * TODO: add a `localStorage` variable to explicitly enable/disable colors\n */\n\n// eslint-disable-next-line complexity\nfunction useColors() {\n\t// NB: In an Electron preload script, document will be defined but not fully\n\t// initialized. Since we know we're in Chrome, we'll just detect this case\n\t// explicitly\n\tif (typeof window !== 'undefined' && window.process && (window.process.type === 'renderer' || window.process.__nwjs)) {\n\t\treturn true;\n\t}\n\n\t// Internet Explorer and Edge do not support colors.\n\tif (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\\/(\\d+)/)) {\n\t\treturn false;\n\t}\n\n\tlet m;\n\n\t// Is webkit? http://stackoverflow.com/a/16459606/376773\n\t// document is undefined in react-native: https://github.com/facebook/react-native/pull/1632\n\t// eslint-disable-next-line no-return-assign\n\treturn (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) ||\n\t\t// Is firebug? http://stackoverflow.com/a/398120/376773\n\t\t(typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) ||\n\t\t// Is firefox >= v31?\n\t\t// https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages\n\t\t(typeof navigator !== 'undefined' && navigator.userAgent && (m = navigator.userAgent.toLowerCase().match(/firefox\\/(\\d+)/)) && parseInt(m[1], 10) >= 31) ||\n\t\t// Double check webkit in userAgent just in case we are in a worker\n\t\t(typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\\/(\\d+)/));\n}\n\n/**\n * Colorize log arguments if enabled.\n *\n * @api public\n */\n\nfunction formatArgs(args) {\n\targs[0] = (this.useColors ? '%c' : '') +\n\t\tthis.namespace +\n\t\t(this.useColors ? ' %c' : ' ') +\n\t\targs[0] +\n\t\t(this.useColors ? '%c ' : ' ') +\n\t\t'+' + module.exports.humanize(this.diff);\n\n\tif (!this.useColors) {\n\t\treturn;\n\t}\n\n\tconst c = 'color: ' + this.color;\n\targs.splice(1, 0, c, 'color: inherit');\n\n\t// The final \"%c\" is somewhat tricky, because there could be other\n\t// arguments passed either before or after the %c, so we need to\n\t// figure out the correct index to insert the CSS into\n\tlet index = 0;\n\tlet lastC = 0;\n\targs[0].replace(/%[a-zA-Z%]/g, match => {\n\t\tif (match === '%%') {\n\t\t\treturn;\n\t\t}\n\t\tindex++;\n\t\tif (match === '%c') {\n\t\t\t// We only are interested in the *last* %c\n\t\t\t// (the user may have provided their own)\n\t\t\tlastC = index;\n\t\t}\n\t});\n\n\targs.splice(lastC, 0, c);\n}\n\n/**\n * Invokes `console.debug()` when available.\n * No-op when `console.debug` is not a \"function\".\n * If `console.debug` is not available, falls back\n * to `console.log`.\n *\n * @api public\n */\nexports.log = console.debug || console.log || (() => {});\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\nfunction save(namespaces) {\n\ttry {\n\t\tif (namespaces) {\n\t\t\texports.storage.setItem('debug', namespaces);\n\t\t} else {\n\t\t\texports.storage.removeItem('debug');\n\t\t}\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\nfunction load() {\n\tlet r;\n\ttry {\n\t\tr = exports.storage.getItem('debug') || exports.storage.getItem('DEBUG') ;\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n\n\t// If debug isn't set in LS, and we're in Electron, try to load $DEBUG\n\tif (!r && typeof process !== 'undefined' && 'env' in process) {\n\t\tr = process.env.DEBUG;\n\t}\n\n\treturn r;\n}\n\n/**\n * Localstorage attempts to return the localstorage.\n *\n * This is necessary because safari throws\n * when a user disables cookies/localstorage\n * and you attempt to access it.\n *\n * @return {LocalStorage}\n * @api private\n */\n\nfunction localstorage() {\n\ttry {\n\t\t// TVMLKit (Apple TV JS Runtime) does not have a window object, just localStorage in the global context\n\t\t// The Browser also has localStorage in the global context.\n\t\treturn localStorage;\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n}\n\nmodule.exports = require('./common')(exports);\n\nconst {formatters} = module.exports;\n\n/**\n * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default.\n */\n\nformatters.j = function (v) {\n\ttry {\n\t\treturn JSON.stringify(v);\n\t} catch (error) {\n\t\treturn '[UnexpectedJSONParseError]: ' + error.message;\n\t}\n};\n", "let taskIdCounter = 1,\n isCallbackScheduled = false,\n isPerformingWork = false,\n taskQueue = [],\n currentTask = null,\n shouldYieldToHost = null,\n yieldInterval = 5,\n deadline = 0,\n maxYieldInterval = 300,\n maxDeadline = 0,\n scheduleCallback = null,\n scheduledCallback = null;\nconst maxSigned31BitInt = 1073741823;\nfunction setupScheduler() {\n const channel = new MessageChannel(),\n port = channel.port2;\n scheduleCallback = () => port.postMessage(null);\n channel.port1.onmessage = () => {\n if (scheduledCallback !== null) {\n const currentTime = performance.now();\n deadline = currentTime + yieldInterval;\n maxDeadline = currentTime + maxYieldInterval;\n try {\n const hasMoreWork = scheduledCallback(currentTime);\n if (!hasMoreWork) {\n scheduledCallback = null;\n } else port.postMessage(null);\n } catch (error) {\n port.postMessage(null);\n throw error;\n }\n }\n };\n if (navigator && navigator.scheduling && navigator.scheduling.isInputPending) {\n const scheduling = navigator.scheduling;\n shouldYieldToHost = () => {\n const currentTime = performance.now();\n if (currentTime >= deadline) {\n if (scheduling.isInputPending()) {\n return true;\n }\n return currentTime >= maxDeadline;\n } else {\n return false;\n }\n };\n } else {\n shouldYieldToHost = () => performance.now() >= deadline;\n }\n}\nfunction enqueue(taskQueue, task) {\n function findIndex() {\n let m = 0;\n let n = taskQueue.length - 1;\n while (m <= n) {\n const k = n + m >> 1;\n const cmp = task.expirationTime - taskQueue[k].expirationTime;\n if (cmp > 0) m = k + 1;else if (cmp < 0) n = k - 1;else return k;\n }\n return m;\n }\n taskQueue.splice(findIndex(), 0, task);\n}\nfunction requestCallback(fn, options) {\n if (!scheduleCallback) setupScheduler();\n let startTime = performance.now(),\n timeout = maxSigned31BitInt;\n if (options && options.timeout) timeout = options.timeout;\n const newTask = {\n id: taskIdCounter++,\n fn,\n startTime,\n expirationTime: startTime + timeout\n };\n enqueue(taskQueue, newTask);\n if (!isCallbackScheduled && !isPerformingWork) {\n isCallbackScheduled = true;\n scheduledCallback = flushWork;\n scheduleCallback();\n }\n return newTask;\n}\nfunction cancelCallback(task) {\n task.fn = null;\n}\nfunction flushWork(initialTime) {\n isCallbackScheduled = false;\n isPerformingWork = true;\n try {\n return workLoop(initialTime);\n } finally {\n currentTask = null;\n isPerformingWork = false;\n }\n}\nfunction workLoop(initialTime) {\n let currentTime = initialTime;\n currentTask = taskQueue[0] || null;\n while (currentTask !== null) {\n if (currentTask.expirationTime > currentTime && shouldYieldToHost()) {\n break;\n }\n const callback = currentTask.fn;\n if (callback !== null) {\n currentTask.fn = null;\n const didUserCallbackTimeout = currentTask.expirationTime <= currentTime;\n callback(didUserCallbackTimeout);\n currentTime = performance.now();\n if (currentTask === taskQueue[0]) {\n taskQueue.shift();\n }\n } else taskQueue.shift();\n currentTask = taskQueue[0] || null;\n }\n return currentTask !== null;\n}\n\nconst sharedConfig = {\n context: undefined,\n registry: undefined,\n effects: undefined,\n done: false,\n getContextId() {\n return getContextId(this.context.count);\n },\n getNextContextId() {\n return getContextId(this.context.count++);\n }\n};\nfunction getContextId(count) {\n const num = String(count),\n len = num.length - 1;\n return sharedConfig.context.id + (len ? String.fromCharCode(96 + len) : \"\") + num;\n}\nfunction setHydrateContext(context) {\n sharedConfig.context = context;\n}\nfunction nextHydrateContext() {\n return {\n ...sharedConfig.context,\n id: sharedConfig.getNextContextId(),\n count: 0\n };\n}\n\nconst IS_DEV = false;\nconst equalFn = (a, b) => a === b;\nconst $PROXY = Symbol(\"solid-proxy\");\nconst SUPPORTS_PROXY = typeof Proxy === \"function\";\nconst $TRACK = Symbol(\"solid-track\");\nconst $DEVCOMP = Symbol(\"solid-dev-component\");\nconst signalOptions = {\n equals: equalFn\n};\nlet ERROR = null;\nlet runEffects = runQueue;\nconst STALE = 1;\nconst PENDING = 2;\nconst UNOWNED = {\n owned: null,\n cleanups: null,\n context: null,\n owner: null\n};\nconst NO_INIT = {};\nvar Owner = null;\nlet Transition = null;\nlet Scheduler = null;\nlet ExternalSourceConfig = null;\nlet Listener = null;\nlet Updates = null;\nlet Effects = null;\nlet ExecCount = 0;\nfunction createRoot(fn, detachedOwner) {\n const listener = Listener,\n owner = Owner,\n unowned = fn.length === 0,\n current = detachedOwner === undefined ? owner : detachedOwner,\n root = unowned ? UNOWNED : {\n owned: null,\n cleanups: null,\n context: current ? current.context : null,\n owner: current\n },\n updateFn = unowned ? fn : () => fn(() => untrack(() => cleanNode(root)));\n Owner = root;\n Listener = null;\n try {\n return runUpdates(updateFn, true);\n } finally {\n Listener = listener;\n Owner = owner;\n }\n}\nfunction createSignal(value, options) {\n options = options ? Object.assign({}, signalOptions, options) : signalOptions;\n const s = {\n value,\n observers: null,\n observerSlots: null,\n comparator: options.equals || undefined\n };\n const setter = value => {\n if (typeof value === \"function\") {\n if (Transition && Transition.running && Transition.sources.has(s)) value = value(s.tValue);else value = value(s.value);\n }\n return writeSignal(s, value);\n };\n return [readSignal.bind(s), setter];\n}\nfunction createComputed(fn, value, options) {\n const c = createComputation(fn, value, true, STALE);\n if (Scheduler && Transition && Transition.running) Updates.push(c);else updateComputation(c);\n}\nfunction createRenderEffect(fn, value, options) {\n const c = createComputation(fn, value, false, STALE);\n if (Scheduler && Transition && Transition.running) Updates.push(c);else updateComputation(c);\n}\nfunction createEffect(fn, value, options) {\n runEffects = runUserEffects;\n const c = createComputation(fn, value, false, STALE),\n s = SuspenseContext && useContext(SuspenseContext);\n if (s) c.suspense = s;\n if (!options || !options.render) c.user = true;\n Effects ? Effects.push(c) : updateComputation(c);\n}\nfunction createReaction(onInvalidate, options) {\n let fn;\n const c = createComputation(() => {\n fn ? fn() : untrack(onInvalidate);\n fn = undefined;\n }, undefined, false, 0),\n s = SuspenseContext && useContext(SuspenseContext);\n if (s) c.suspense = s;\n c.user = true;\n return tracking => {\n fn = tracking;\n updateComputation(c);\n };\n}\nfunction createMemo(fn, value, options) {\n options = options ? Object.assign({}, signalOptions, options) : signalOptions;\n const c = createComputation(fn, value, true, 0);\n c.observers = null;\n c.observerSlots = null;\n c.comparator = options.equals || undefined;\n if (Scheduler && Transition && Transition.running) {\n c.tState = STALE;\n Updates.push(c);\n } else updateComputation(c);\n return readSignal.bind(c);\n}\nfunction isPromise(v) {\n return v && typeof v === \"object\" && \"then\" in v;\n}\nfunction createResource(pSource, pFetcher, pOptions) {\n let source;\n let fetcher;\n let options;\n if (typeof pFetcher === \"function\") {\n source = pSource;\n fetcher = pFetcher;\n options = pOptions || {};\n } else {\n source = true;\n fetcher = pSource;\n options = pFetcher || {};\n }\n let pr = null,\n initP = NO_INIT,\n id = null,\n loadedUnderTransition = false,\n scheduled = false,\n resolved = \"initialValue\" in options,\n dynamic = typeof source === \"function\" && createMemo(source);\n const contexts = new Set(),\n [value, setValue] = (options.storage || createSignal)(options.initialValue),\n [error, setError] = createSignal(undefined),\n [track, trigger] = createSignal(undefined, {\n equals: false\n }),\n [state, setState] = createSignal(resolved ? \"ready\" : \"unresolved\");\n if (sharedConfig.context) {\n id = sharedConfig.getNextContextId();\n if (options.ssrLoadFrom === \"initial\") initP = options.initialValue;else if (sharedConfig.load && sharedConfig.has(id)) initP = sharedConfig.load(id);\n }\n function loadEnd(p, v, error, key) {\n if (pr === p) {\n pr = null;\n key !== undefined && (resolved = true);\n if ((p === initP || v === initP) && options.onHydrated) queueMicrotask(() => options.onHydrated(key, {\n value: v\n }));\n initP = NO_INIT;\n if (Transition && p && loadedUnderTransition) {\n Transition.promises.delete(p);\n loadedUnderTransition = false;\n runUpdates(() => {\n Transition.running = true;\n completeLoad(v, error);\n }, false);\n } else completeLoad(v, error);\n }\n return v;\n }\n function completeLoad(v, err) {\n runUpdates(() => {\n if (err === undefined) setValue(() => v);\n setState(err !== undefined ? \"errored\" : resolved ? \"ready\" : \"unresolved\");\n setError(err);\n for (const c of contexts.keys()) c.decrement();\n contexts.clear();\n }, false);\n }\n function read() {\n const c = SuspenseContext && useContext(SuspenseContext),\n v = value(),\n err = error();\n if (err !== undefined && !pr) throw err;\n if (Listener && !Listener.user && c) {\n createComputed(() => {\n track();\n if (pr) {\n if (c.resolved && Transition && loadedUnderTransition) Transition.promises.add(pr);else if (!contexts.has(c)) {\n c.increment();\n contexts.add(c);\n }\n }\n });\n }\n return v;\n }\n function load(refetching = true) {\n if (refetching !== false && scheduled) return;\n scheduled = false;\n const lookup = dynamic ? dynamic() : source;\n loadedUnderTransition = Transition && Transition.running;\n if (lookup == null || lookup === false) {\n loadEnd(pr, untrack(value));\n return;\n }\n if (Transition && pr) Transition.promises.delete(pr);\n let error;\n const p = initP !== NO_INIT ? initP : untrack(() => {\n try {\n return fetcher(lookup, {\n value: value(),\n refetching\n });\n } catch (fetcherError) {\n error = fetcherError;\n }\n });\n if (error !== undefined) {\n loadEnd(pr, undefined, castError(error), lookup);\n return;\n } else if (!isPromise(p)) {\n loadEnd(pr, p, undefined, lookup);\n return p;\n }\n pr = p;\n if (\"v\" in p) {\n if (p.s === 1) loadEnd(pr, p.v, undefined, lookup);else loadEnd(pr, undefined, castError(p.v), lookup);\n return p;\n }\n scheduled = true;\n queueMicrotask(() => scheduled = false);\n runUpdates(() => {\n setState(resolved ? \"refreshing\" : \"pending\");\n trigger();\n }, false);\n return p.then(v => loadEnd(p, v, undefined, lookup), e => loadEnd(p, undefined, castError(e), lookup));\n }\n Object.defineProperties(read, {\n state: {\n get: () => state()\n },\n error: {\n get: () => error()\n },\n loading: {\n get() {\n const s = state();\n return s === \"pending\" || s === \"refreshing\";\n }\n },\n latest: {\n get() {\n if (!resolved) return read();\n const err = error();\n if (err && !pr) throw err;\n return value();\n }\n }\n });\n let owner = Owner;\n if (dynamic) createComputed(() => (owner = Owner, load(false)));else load(false);\n return [read, {\n refetch: info => runWithOwner(owner, () => load(info)),\n mutate: setValue\n }];\n}\nfunction createDeferred(source, options) {\n let t,\n timeout = options ? options.timeoutMs : undefined;\n const node = createComputation(() => {\n if (!t || !t.fn) t = requestCallback(() => setDeferred(() => node.value), timeout !== undefined ? {\n timeout\n } : undefined);\n return source();\n }, undefined, true);\n const [deferred, setDeferred] = createSignal(Transition && Transition.running && Transition.sources.has(node) ? node.tValue : node.value, options);\n updateComputation(node);\n setDeferred(() => Transition && Transition.running && Transition.sources.has(node) ? node.tValue : node.value);\n return deferred;\n}\nfunction createSelector(source, fn = equalFn, options) {\n const subs = new Map();\n const node = createComputation(p => {\n const v = source();\n for (const [key, val] of subs.entries()) if (fn(key, v) !== fn(key, p)) {\n for (const c of val.values()) {\n c.state = STALE;\n if (c.pure) Updates.push(c);else Effects.push(c);\n }\n }\n return v;\n }, undefined, true, STALE);\n updateComputation(node);\n return key => {\n const listener = Listener;\n if (listener) {\n let l;\n if (l = subs.get(key)) l.add(listener);else subs.set(key, l = new Set([listener]));\n onCleanup(() => {\n l.delete(listener);\n !l.size && subs.delete(key);\n });\n }\n return fn(key, Transition && Transition.running && Transition.sources.has(node) ? node.tValue : node.value);\n };\n}\nfunction batch(fn) {\n return runUpdates(fn, false);\n}\nfunction untrack(fn) {\n if (!ExternalSourceConfig && Listener === null) return fn();\n const listener = Listener;\n Listener = null;\n try {\n if (ExternalSourceConfig) return ExternalSourceConfig.untrack(fn);\n return fn();\n } finally {\n Listener = listener;\n }\n}\nfunction on(deps, fn, options) {\n const isArray = Array.isArray(deps);\n let prevInput;\n let defer = options && options.defer;\n return prevValue => {\n let input;\n if (isArray) {\n input = Array(deps.length);\n for (let i = 0; i < deps.length; i++) input[i] = deps[i]();\n } else input = deps();\n if (defer) {\n defer = false;\n return prevValue;\n }\n const result = untrack(() => fn(input, prevInput, prevValue));\n prevInput = input;\n return result;\n };\n}\nfunction onMount(fn) {\n createEffect(() => untrack(fn));\n}\nfunction onCleanup(fn) {\n if (Owner === null) ;else if (Owner.cleanups === null) Owner.cleanups = [fn];else Owner.cleanups.push(fn);\n return fn;\n}\nfunction catchError(fn, handler) {\n ERROR || (ERROR = Symbol(\"error\"));\n Owner = createComputation(undefined, undefined, true);\n Owner.context = {\n ...Owner.context,\n [ERROR]: [handler]\n };\n if (Transition && Transition.running) Transition.sources.add(Owner);\n try {\n return fn();\n } catch (err) {\n handleError(err);\n } finally {\n Owner = Owner.owner;\n }\n}\nfunction getListener() {\n return Listener;\n}\nfunction getOwner() {\n return Owner;\n}\nfunction runWithOwner(o, fn) {\n const prev = Owner;\n const prevListener = Listener;\n Owner = o;\n Listener = null;\n try {\n return runUpdates(fn, true);\n } catch (err) {\n handleError(err);\n } finally {\n Owner = prev;\n Listener = prevListener;\n }\n}\nfunction enableScheduling(scheduler = requestCallback) {\n Scheduler = scheduler;\n}\nfunction startTransition(fn) {\n if (Transition && Transition.running) {\n fn();\n return Transition.done;\n }\n const l = Listener;\n const o = Owner;\n return Promise.resolve().then(() => {\n Listener = l;\n Owner = o;\n let t;\n if (Scheduler || SuspenseContext) {\n t = Transition || (Transition = {\n sources: new Set(),\n effects: [],\n promises: new Set(),\n disposed: new Set(),\n queue: new Set(),\n running: true\n });\n t.done || (t.done = new Promise(res => t.resolve = res));\n t.running = true;\n }\n runUpdates(fn, false);\n Listener = Owner = null;\n return t ? t.done : undefined;\n });\n}\nconst [transPending, setTransPending] = /*@__PURE__*/createSignal(false);\nfunction useTransition() {\n return [transPending, startTransition];\n}\nfunction resumeEffects(e) {\n Effects.push.apply(Effects, e);\n e.length = 0;\n}\nfunction createContext(defaultValue, options) {\n const id = Symbol(\"context\");\n return {\n id,\n Provider: createProvider(id),\n defaultValue\n };\n}\nfunction useContext(context) {\n let value;\n return Owner && Owner.context && (value = Owner.context[context.id]) !== undefined ? value : context.defaultValue;\n}\nfunction children(fn) {\n const children = createMemo(fn);\n const memo = createMemo(() => resolveChildren(children()));\n memo.toArray = () => {\n const c = memo();\n return Array.isArray(c) ? c : c != null ? [c] : [];\n };\n return memo;\n}\nlet SuspenseContext;\nfunction getSuspenseContext() {\n return SuspenseContext || (SuspenseContext = createContext());\n}\nfunction enableExternalSource(factory, untrack = fn => fn()) {\n if (ExternalSourceConfig) {\n const {\n factory: oldFactory,\n untrack: oldUntrack\n } = ExternalSourceConfig;\n ExternalSourceConfig = {\n factory: (fn, trigger) => {\n const oldSource = oldFactory(fn, trigger);\n const source = factory(x => oldSource.track(x), trigger);\n return {\n track: x => source.track(x),\n dispose() {\n source.dispose();\n oldSource.dispose();\n }\n };\n },\n untrack: fn => oldUntrack(() => untrack(fn))\n };\n } else {\n ExternalSourceConfig = {\n factory,\n untrack\n };\n }\n}\nfunction readSignal() {\n const runningTransition = Transition && Transition.running;\n if (this.sources && (runningTransition ? this.tState : this.state)) {\n if ((runningTransition ? this.tState : this.state) === STALE) updateComputation(this);else {\n const updates = Updates;\n Updates = null;\n runUpdates(() => lookUpstream(this), false);\n Updates = updates;\n }\n }\n if (Listener) {\n const sSlot = this.observers ? this.observers.length : 0;\n if (!Listener.sources) {\n Listener.sources = [this];\n Listener.sourceSlots = [sSlot];\n } else {\n Listener.sources.push(this);\n Listener.sourceSlots.push(sSlot);\n }\n if (!this.observers) {\n this.observers = [Listener];\n this.observerSlots = [Listener.sources.length - 1];\n } else {\n this.observers.push(Listener);\n this.observerSlots.push(Listener.sources.length - 1);\n }\n }\n if (runningTransition && Transition.sources.has(this)) return this.tValue;\n return this.value;\n}\nfunction writeSignal(node, value, isComp) {\n let current = Transition && Transition.running && Transition.sources.has(node) ? node.tValue : node.value;\n if (!node.comparator || !node.comparator(current, value)) {\n if (Transition) {\n const TransitionRunning = Transition.running;\n if (TransitionRunning || !isComp && Transition.sources.has(node)) {\n Transition.sources.add(node);\n node.tValue = value;\n }\n if (!TransitionRunning) node.value = value;\n } else node.value = value;\n if (node.observers && node.observers.length) {\n runUpdates(() => {\n for (let i = 0; i < node.observers.length; i += 1) {\n const o = node.observers[i];\n const TransitionRunning = Transition && Transition.running;\n if (TransitionRunning && Transition.disposed.has(o)) continue;\n if (TransitionRunning ? !o.tState : !o.state) {\n if (o.pure) Updates.push(o);else Effects.push(o);\n if (o.observers) markDownstream(o);\n }\n if (!TransitionRunning) o.state = STALE;else o.tState = STALE;\n }\n if (Updates.length > 10e5) {\n Updates = [];\n if (IS_DEV) ;\n throw new Error();\n }\n }, false);\n }\n }\n return value;\n}\nfunction updateComputation(node) {\n if (!node.fn) return;\n cleanNode(node);\n const time = ExecCount;\n runComputation(node, Transition && Transition.running && Transition.sources.has(node) ? node.tValue : node.value, time);\n if (Transition && !Transition.running && Transition.sources.has(node)) {\n queueMicrotask(() => {\n runUpdates(() => {\n Transition && (Transition.running = true);\n Listener = Owner = node;\n runComputation(node, node.tValue, time);\n Listener = Owner = null;\n }, false);\n });\n }\n}\nfunction runComputation(node, value, time) {\n let nextValue;\n const owner = Owner,\n listener = Listener;\n Listener = Owner = node;\n try {\n nextValue = node.fn(value);\n } catch (err) {\n if (node.pure) {\n if (Transition && Transition.running) {\n node.tState = STALE;\n node.tOwned && node.tOwned.forEach(cleanNode);\n node.tOwned = undefined;\n } else {\n node.state = STALE;\n node.owned && node.owned.forEach(cleanNode);\n node.owned = null;\n }\n }\n node.updatedAt = time + 1;\n return handleError(err);\n } finally {\n Listener = listener;\n Owner = owner;\n }\n if (!node.updatedAt || node.updatedAt <= time) {\n if (node.updatedAt != null && \"observers\" in node) {\n writeSignal(node, nextValue, true);\n } else if (Transition && Transition.running && node.pure) {\n Transition.sources.add(node);\n node.tValue = nextValue;\n } else node.value = nextValue;\n node.updatedAt = time;\n }\n}\nfunction createComputation(fn, init, pure, state = STALE, options) {\n const c = {\n fn,\n state: state,\n updatedAt: null,\n owned: null,\n sources: null,\n sourceSlots: null,\n cleanups: null,\n value: init,\n owner: Owner,\n context: Owner ? Owner.context : null,\n pure\n };\n if (Transition && Transition.running) {\n c.state = 0;\n c.tState = state;\n }\n if (Owner === null) ;else if (Owner !== UNOWNED) {\n if (Transition && Transition.running && Owner.pure) {\n if (!Owner.tOwned) Owner.tOwned = [c];else Owner.tOwned.push(c);\n } else {\n if (!Owner.owned) Owner.owned = [c];else Owner.owned.push(c);\n }\n }\n if (ExternalSourceConfig && c.fn) {\n const [track, trigger] = createSignal(undefined, {\n equals: false\n });\n const ordinary = ExternalSourceConfig.factory(c.fn, trigger);\n onCleanup(() => ordinary.dispose());\n const triggerInTransition = () => startTransition(trigger).then(() => inTransition.dispose());\n const inTransition = ExternalSourceConfig.factory(c.fn, triggerInTransition);\n c.fn = x => {\n track();\n return Transition && Transition.running ? inTransition.track(x) : ordinary.track(x);\n };\n }\n return c;\n}\nfunction runTop(node) {\n const runningTransition = Transition && Transition.running;\n if ((runningTransition ? node.tState : node.state) === 0) return;\n if ((runningTransition ? node.tState : node.state) === PENDING) return lookUpstream(node);\n if (node.suspense && untrack(node.suspense.inFallback)) return node.suspense.effects.push(node);\n const ancestors = [node];\n while ((node = node.owner) && (!node.updatedAt || node.updatedAt < ExecCount)) {\n if (runningTransition && Transition.disposed.has(node)) return;\n if (runningTransition ? node.tState : node.state) ancestors.push(node);\n }\n for (let i = ancestors.length - 1; i >= 0; i--) {\n node = ancestors[i];\n if (runningTransition) {\n let top = node,\n prev = ancestors[i + 1];\n while ((top = top.owner) && top !== prev) {\n if (Transition.disposed.has(top)) return;\n }\n }\n if ((runningTransition ? node.tState : node.state) === STALE) {\n updateComputation(node);\n } else if ((runningTransition ? node.tState : node.state) === PENDING) {\n const updates = Updates;\n Updates = null;\n runUpdates(() => lookUpstream(node, ancestors[0]), false);\n Updates = updates;\n }\n }\n}\nfunction runUpdates(fn, init) {\n if (Updates) return fn();\n let wait = false;\n if (!init) Updates = [];\n if (Effects) wait = true;else Effects = [];\n ExecCount++;\n try {\n const res = fn();\n completeUpdates(wait);\n return res;\n } catch (err) {\n if (!wait) Effects = null;\n Updates = null;\n handleError(err);\n }\n}\nfunction completeUpdates(wait) {\n if (Updates) {\n if (Scheduler && Transition && Transition.running) scheduleQueue(Updates);else runQueue(Updates);\n Updates = null;\n }\n if (wait) return;\n let res;\n if (Transition) {\n if (!Transition.promises.size && !Transition.queue.size) {\n const sources = Transition.sources;\n const disposed = Transition.disposed;\n Effects.push.apply(Effects, Transition.effects);\n res = Transition.resolve;\n for (const e of Effects) {\n \"tState\" in e && (e.state = e.tState);\n delete e.tState;\n }\n Transition = null;\n runUpdates(() => {\n for (const d of disposed) cleanNode(d);\n for (const v of sources) {\n v.value = v.tValue;\n if (v.owned) {\n for (let i = 0, len = v.owned.length; i < len; i++) cleanNode(v.owned[i]);\n }\n if (v.tOwned) v.owned = v.tOwned;\n delete v.tValue;\n delete v.tOwned;\n v.tState = 0;\n }\n setTransPending(false);\n }, false);\n } else if (Transition.running) {\n Transition.running = false;\n Transition.effects.push.apply(Transition.effects, Effects);\n Effects = null;\n setTransPending(true);\n return;\n }\n }\n const e = Effects;\n Effects = null;\n if (e.length) runUpdates(() => runEffects(e), false);\n if (res) res();\n}\nfunction runQueue(queue) {\n for (let i = 0; i < queue.length; i++) runTop(queue[i]);\n}\nfunction scheduleQueue(queue) {\n for (let i = 0; i < queue.length; i++) {\n const item = queue[i];\n const tasks = Transition.queue;\n if (!tasks.has(item)) {\n tasks.add(item);\n Scheduler(() => {\n tasks.delete(item);\n runUpdates(() => {\n Transition.running = true;\n runTop(item);\n }, false);\n Transition && (Transition.running = false);\n });\n }\n }\n}\nfunction runUserEffects(queue) {\n let i,\n userLength = 0;\n for (i = 0; i < queue.length; i++) {\n const e = queue[i];\n if (!e.user) runTop(e);else queue[userLength++] = e;\n }\n if (sharedConfig.context) {\n if (sharedConfig.count) {\n sharedConfig.effects || (sharedConfig.effects = []);\n sharedConfig.effects.push(...queue.slice(0, userLength));\n return;\n }\n setHydrateContext();\n }\n if (sharedConfig.effects && (sharedConfig.done || !sharedConfig.count)) {\n queue = [...sharedConfig.effects, ...queue];\n userLength += sharedConfig.effects.length;\n delete sharedConfig.effects;\n }\n for (i = 0; i < userLength; i++) runTop(queue[i]);\n}\nfunction lookUpstream(node, ignore) {\n const runningTransition = Transition && Transition.running;\n if (runningTransition) node.tState = 0;else node.state = 0;\n for (let i = 0; i < node.sources.length; i += 1) {\n const source = node.sources[i];\n if (source.sources) {\n const state = runningTransition ? source.tState : source.state;\n if (state === STALE) {\n if (source !== ignore && (!source.updatedAt || source.updatedAt < ExecCount)) runTop(source);\n } else if (state === PENDING) lookUpstream(source, ignore);\n }\n }\n}\nfunction markDownstream(node) {\n const runningTransition = Transition && Transition.running;\n for (let i = 0; i < node.observers.length; i += 1) {\n const o = node.observers[i];\n if (runningTransition ? !o.tState : !o.state) {\n if (runningTransition) o.tState = PENDING;else o.state = PENDING;\n if (o.pure) Updates.push(o);else Effects.push(o);\n o.observers && markDownstream(o);\n }\n }\n}\nfunction cleanNode(node) {\n let i;\n if (node.sources) {\n while (node.sources.length) {\n const source = node.sources.pop(),\n index = node.sourceSlots.pop(),\n obs = source.observers;\n if (obs && obs.length) {\n const n = obs.pop(),\n s = source.observerSlots.pop();\n if (index < obs.length) {\n n.sourceSlots[s] = index;\n obs[index] = n;\n source.observerSlots[index] = s;\n }\n }\n }\n }\n if (node.tOwned) {\n for (i = node.tOwned.length - 1; i >= 0; i--) cleanNode(node.tOwned[i]);\n delete node.tOwned;\n }\n if (Transition && Transition.running && node.pure) {\n reset(node, true);\n } else if (node.owned) {\n for (i = node.owned.length - 1; i >= 0; i--) cleanNode(node.owned[i]);\n node.owned = null;\n }\n if (node.cleanups) {\n for (i = node.cleanups.length - 1; i >= 0; i--) node.cleanups[i]();\n node.cleanups = null;\n }\n if (Transition && Transition.running) node.tState = 0;else node.state = 0;\n}\nfunction reset(node, top) {\n if (!top) {\n node.tState = 0;\n Transition.disposed.add(node);\n }\n if (node.owned) {\n for (let i = 0; i < node.owned.length; i++) reset(node.owned[i]);\n }\n}\nfunction castError(err) {\n if (err instanceof Error) return err;\n return new Error(typeof err === \"string\" ? err : \"Unknown error\", {\n cause: err\n });\n}\nfunction runErrors(err, fns, owner) {\n try {\n for (const f of fns) f(err);\n } catch (e) {\n handleError(e, owner && owner.owner || null);\n }\n}\nfunction handleError(err, owner = Owner) {\n const fns = ERROR && owner && owner.context && owner.context[ERROR];\n const error = castError(err);\n if (!fns) throw error;\n if (Effects) Effects.push({\n fn() {\n runErrors(error, fns, owner);\n },\n state: STALE\n });else runErrors(error, fns, owner);\n}\nfunction resolveChildren(children) {\n if (typeof children === \"function\" && !children.length) return resolveChildren(children());\n if (Array.isArray(children)) {\n const results = [];\n for (let i = 0; i < children.length; i++) {\n const result = resolveChildren(children[i]);\n Array.isArray(result) ? results.push.apply(results, result) : results.push(result);\n }\n return results;\n }\n return children;\n}\nfunction createProvider(id, options) {\n return function provider(props) {\n let res;\n createRenderEffect(() => res = untrack(() => {\n Owner.context = {\n ...Owner.context,\n [id]: props.value\n };\n return children(() => props.children);\n }), undefined);\n return res;\n };\n}\nfunction onError(fn) {\n ERROR || (ERROR = Symbol(\"error\"));\n if (Owner === null) ;else if (Owner.context === null || !Owner.context[ERROR]) {\n Owner.context = {\n ...Owner.context,\n [ERROR]: [fn]\n };\n mutateContext(Owner, ERROR, [fn]);\n } else Owner.context[ERROR].push(fn);\n}\nfunction mutateContext(o, key, value) {\n if (o.owned) {\n for (let i = 0; i < o.owned.length; i++) {\n if (o.owned[i].context === o.context) mutateContext(o.owned[i], key, value);\n if (!o.owned[i].context) {\n o.owned[i].context = o.context;\n mutateContext(o.owned[i], key, value);\n } else if (!o.owned[i].context[key]) {\n o.owned[i].context[key] = value;\n mutateContext(o.owned[i], key, value);\n }\n }\n }\n}\n\nfunction observable(input) {\n return {\n subscribe(observer) {\n if (!(observer instanceof Object) || observer == null) {\n throw new TypeError(\"Expected the observer to be an object.\");\n }\n const handler = typeof observer === \"function\" ? observer : observer.next && observer.next.bind(observer);\n if (!handler) {\n return {\n unsubscribe() {}\n };\n }\n const dispose = createRoot(disposer => {\n createEffect(() => {\n const v = input();\n untrack(() => handler(v));\n });\n return disposer;\n });\n if (getOwner()) onCleanup(dispose);\n return {\n unsubscribe() {\n dispose();\n }\n };\n },\n [Symbol.observable || \"@@observable\"]() {\n return this;\n }\n };\n}\nfunction from(producer, initalValue = undefined) {\n const [s, set] = createSignal(initalValue, {\n equals: false\n });\n if (\"subscribe\" in producer) {\n const unsub = producer.subscribe(v => set(() => v));\n onCleanup(() => \"unsubscribe\" in unsub ? unsub.unsubscribe() : unsub());\n } else {\n const clean = producer(set);\n onCleanup(clean);\n }\n return s;\n}\n\nconst FALLBACK = Symbol(\"fallback\");\nfunction dispose(d) {\n for (let i = 0; i < d.length; i++) d[i]();\n}\nfunction mapArray(list, mapFn, options = {}) {\n let items = [],\n mapped = [],\n disposers = [],\n len = 0,\n indexes = mapFn.length > 1 ? [] : null;\n onCleanup(() => dispose(disposers));\n return () => {\n let newItems = list() || [],\n newLen = newItems.length,\n i,\n j;\n newItems[$TRACK];\n return untrack(() => {\n let newIndices, newIndicesNext, temp, tempdisposers, tempIndexes, start, end, newEnd, item;\n if (newLen === 0) {\n if (len !== 0) {\n dispose(disposers);\n disposers = [];\n items = [];\n mapped = [];\n len = 0;\n indexes && (indexes = []);\n }\n if (options.fallback) {\n items = [FALLBACK];\n mapped[0] = createRoot(disposer => {\n disposers[0] = disposer;\n return options.fallback();\n });\n len = 1;\n }\n }\n else if (len === 0) {\n mapped = new Array(newLen);\n for (j = 0; j < newLen; j++) {\n items[j] = newItems[j];\n mapped[j] = createRoot(mapper);\n }\n len = newLen;\n } else {\n temp = new Array(newLen);\n tempdisposers = new Array(newLen);\n indexes && (tempIndexes = new Array(newLen));\n for (start = 0, end = Math.min(len, newLen); start < end && items[start] === newItems[start]; start++);\n for (end = len - 1, newEnd = newLen - 1; end >= start && newEnd >= start && items[end] === newItems[newEnd]; end--, newEnd--) {\n temp[newEnd] = mapped[end];\n tempdisposers[newEnd] = disposers[end];\n indexes && (tempIndexes[newEnd] = indexes[end]);\n }\n newIndices = new Map();\n newIndicesNext = new Array(newEnd + 1);\n for (j = newEnd; j >= start; j--) {\n item = newItems[j];\n i = newIndices.get(item);\n newIndicesNext[j] = i === undefined ? -1 : i;\n newIndices.set(item, j);\n }\n for (i = start; i <= end; i++) {\n item = items[i];\n j = newIndices.get(item);\n if (j !== undefined && j !== -1) {\n temp[j] = mapped[i];\n tempdisposers[j] = disposers[i];\n indexes && (tempIndexes[j] = indexes[i]);\n j = newIndicesNext[j];\n newIndices.set(item, j);\n } else disposers[i]();\n }\n for (j = start; j < newLen; j++) {\n if (j in temp) {\n mapped[j] = temp[j];\n disposers[j] = tempdisposers[j];\n if (indexes) {\n indexes[j] = tempIndexes[j];\n indexes[j](j);\n }\n } else mapped[j] = createRoot(mapper);\n }\n mapped = mapped.slice(0, len = newLen);\n items = newItems.slice(0);\n }\n return mapped;\n });\n function mapper(disposer) {\n disposers[j] = disposer;\n if (indexes) {\n const [s, set] = createSignal(j);\n indexes[j] = set;\n return mapFn(newItems[j], s);\n }\n return mapFn(newItems[j]);\n }\n };\n}\nfunction indexArray(list, mapFn, options = {}) {\n let items = [],\n mapped = [],\n disposers = [],\n signals = [],\n len = 0,\n i;\n onCleanup(() => dispose(disposers));\n return () => {\n const newItems = list() || [],\n newLen = newItems.length;\n newItems[$TRACK];\n return untrack(() => {\n if (newLen === 0) {\n if (len !== 0) {\n dispose(disposers);\n disposers = [];\n items = [];\n mapped = [];\n len = 0;\n signals = [];\n }\n if (options.fallback) {\n items = [FALLBACK];\n mapped[0] = createRoot(disposer => {\n disposers[0] = disposer;\n return options.fallback();\n });\n len = 1;\n }\n return mapped;\n }\n if (items[0] === FALLBACK) {\n disposers[0]();\n disposers = [];\n items = [];\n mapped = [];\n len = 0;\n }\n for (i = 0; i < newLen; i++) {\n if (i < items.length && items[i] !== newItems[i]) {\n signals[i](() => newItems[i]);\n } else if (i >= items.length) {\n mapped[i] = createRoot(mapper);\n }\n }\n for (; i < items.length; i++) {\n disposers[i]();\n }\n len = signals.length = disposers.length = newLen;\n items = newItems.slice(0);\n return mapped = mapped.slice(0, len);\n });\n function mapper(disposer) {\n disposers[i] = disposer;\n const [s, set] = createSignal(newItems[i]);\n signals[i] = set;\n return mapFn(s, i);\n }\n };\n}\n\nlet hydrationEnabled = false;\nfunction enableHydration() {\n hydrationEnabled = true;\n}\nfunction createComponent(Comp, props) {\n if (hydrationEnabled) {\n if (sharedConfig.context) {\n const c = sharedConfig.context;\n setHydrateContext(nextHydrateContext());\n const r = untrack(() => Comp(props || {}));\n setHydrateContext(c);\n return r;\n }\n }\n return untrack(() => Comp(props || {}));\n}\nfunction trueFn() {\n return true;\n}\nconst propTraps = {\n get(_, property, receiver) {\n if (property === $PROXY) return receiver;\n return _.get(property);\n },\n has(_, property) {\n if (property === $PROXY) return true;\n return _.has(property);\n },\n set: trueFn,\n deleteProperty: trueFn,\n getOwnPropertyDescriptor(_, property) {\n return {\n configurable: true,\n enumerable: true,\n get() {\n return _.get(property);\n },\n set: trueFn,\n deleteProperty: trueFn\n };\n },\n ownKeys(_) {\n return _.keys();\n }\n};\nfunction resolveSource(s) {\n return !(s = typeof s === \"function\" ? s() : s) ? {} : s;\n}\nfunction resolveSources() {\n for (let i = 0, length = this.length; i < length; ++i) {\n const v = this[i]();\n if (v !== undefined) return v;\n }\n}\nfunction mergeProps(...sources) {\n let proxy = false;\n for (let i = 0; i < sources.length; i++) {\n const s = sources[i];\n proxy = proxy || !!s && $PROXY in s;\n sources[i] = typeof s === \"function\" ? (proxy = true, createMemo(s)) : s;\n }\n if (SUPPORTS_PROXY && proxy) {\n return new Proxy({\n get(property) {\n for (let i = sources.length - 1; i >= 0; i--) {\n const v = resolveSource(sources[i])[property];\n if (v !== undefined) return v;\n }\n },\n has(property) {\n for (let i = sources.length - 1; i >= 0; i--) {\n if (property in resolveSource(sources[i])) return true;\n }\n return false;\n },\n keys() {\n const keys = [];\n for (let i = 0; i < sources.length; i++) keys.push(...Object.keys(resolveSource(sources[i])));\n return [...new Set(keys)];\n }\n }, propTraps);\n }\n const sourcesMap = {};\n const defined = Object.create(null);\n for (let i = sources.length - 1; i >= 0; i--) {\n const source = sources[i];\n if (!source) continue;\n const sourceKeys = Object.getOwnPropertyNames(source);\n for (let i = sourceKeys.length - 1; i >= 0; i--) {\n const key = sourceKeys[i];\n if (key === \"__proto__\" || key === \"constructor\") continue;\n const desc = Object.getOwnPropertyDescriptor(source, key);\n if (!defined[key]) {\n defined[key] = desc.get ? {\n enumerable: true,\n configurable: true,\n get: resolveSources.bind(sourcesMap[key] = [desc.get.bind(source)])\n } : desc.value !== undefined ? desc : undefined;\n } else {\n const sources = sourcesMap[key];\n if (sources) {\n if (desc.get) sources.push(desc.get.bind(source));else if (desc.value !== undefined) sources.push(() => desc.value);\n }\n }\n }\n }\n const target = {};\n const definedKeys = Object.keys(defined);\n for (let i = definedKeys.length - 1; i >= 0; i--) {\n const key = definedKeys[i],\n desc = defined[key];\n if (desc && desc.get) Object.defineProperty(target, key, desc);else target[key] = desc ? desc.value : undefined;\n }\n return target;\n}\nfunction splitProps(props, ...keys) {\n const len = keys.length;\n if (SUPPORTS_PROXY && $PROXY in props) {\n const blocked = len > 1 ? keys.flat() : keys[0];\n const res = keys.map(k => {\n return new Proxy({\n get(property) {\n return k.includes(property) ? props[property] : undefined;\n },\n has(property) {\n return k.includes(property) && property in props;\n },\n keys() {\n return k.filter(property => property in props);\n }\n }, propTraps);\n });\n res.push(new Proxy({\n get(property) {\n return blocked.includes(property) ? undefined : props[property];\n },\n has(property) {\n return blocked.includes(property) ? false : property in props;\n },\n keys() {\n return Object.keys(props).filter(k => !blocked.includes(k));\n }\n }, propTraps));\n return res;\n }\n const objects = [];\n for (let i = 0; i <= len; i++) {\n objects[i] = {};\n }\n for (const propName of Object.getOwnPropertyNames(props)) {\n let keyIndex = len;\n for (let i = 0; i < keys.length; i++) {\n if (keys[i].includes(propName)) {\n keyIndex = i;\n break;\n }\n }\n const desc = Object.getOwnPropertyDescriptor(props, propName);\n const isDefaultDesc = !desc.get && !desc.set && desc.enumerable && desc.writable && desc.configurable;\n isDefaultDesc ? objects[keyIndex][propName] = desc.value : Object.defineProperty(objects[keyIndex], propName, desc);\n }\n return objects;\n}\nfunction lazy(fn) {\n let comp;\n let p;\n const wrap = props => {\n const ctx = sharedConfig.context;\n if (ctx) {\n const [s, set] = createSignal();\n sharedConfig.count || (sharedConfig.count = 0);\n sharedConfig.count++;\n (p || (p = fn())).then(mod => {\n !sharedConfig.done && setHydrateContext(ctx);\n sharedConfig.count--;\n set(() => mod.default);\n setHydrateContext();\n });\n comp = s;\n } else if (!comp) {\n const [s] = createResource(() => (p || (p = fn())).then(mod => mod.default));\n comp = s;\n }\n let Comp;\n return createMemo(() => (Comp = comp()) ? untrack(() => {\n if (IS_DEV) ;\n if (!ctx || sharedConfig.done) return Comp(props);\n const c = sharedConfig.context;\n setHydrateContext(ctx);\n const r = Comp(props);\n setHydrateContext(c);\n return r;\n }) : \"\");\n };\n wrap.preload = () => p || ((p = fn()).then(mod => comp = () => mod.default), p);\n return wrap;\n}\nlet counter = 0;\nfunction createUniqueId() {\n const ctx = sharedConfig.context;\n return ctx ? sharedConfig.getNextContextId() : `cl-${counter++}`;\n}\n\nconst narrowedError = name => `Stale read from <${name}>.`;\nfunction For(props) {\n const fallback = \"fallback\" in props && {\n fallback: () => props.fallback\n };\n return createMemo(mapArray(() => props.each, props.children, fallback || undefined));\n}\nfunction Index(props) {\n const fallback = \"fallback\" in props && {\n fallback: () => props.fallback\n };\n return createMemo(indexArray(() => props.each, props.children, fallback || undefined));\n}\nfunction Show(props) {\n const keyed = props.keyed;\n const conditionValue = createMemo(() => props.when, undefined, undefined);\n const condition = keyed ? conditionValue : createMemo(conditionValue, undefined, {\n equals: (a, b) => !a === !b\n });\n return createMemo(() => {\n const c = condition();\n if (c) {\n const child = props.children;\n const fn = typeof child === \"function\" && child.length > 0;\n return fn ? untrack(() => child(keyed ? c : () => {\n if (!untrack(condition)) throw narrowedError(\"Show\");\n return conditionValue();\n })) : child;\n }\n return props.fallback;\n }, undefined, undefined);\n}\nfunction Switch(props) {\n const chs = children(() => props.children);\n const switchFunc = createMemo(() => {\n const ch = chs();\n const mps = Array.isArray(ch) ? ch : [ch];\n let func = () => undefined;\n for (let i = 0; i < mps.length; i++) {\n const index = i;\n const mp = mps[i];\n const prevFunc = func;\n const conditionValue = createMemo(() => prevFunc() ? undefined : mp.when, undefined, undefined);\n const condition = mp.keyed ? conditionValue : createMemo(conditionValue, undefined, {\n equals: (a, b) => !a === !b\n });\n func = () => prevFunc() || (condition() ? [index, conditionValue, mp] : undefined);\n }\n return func;\n });\n return createMemo(() => {\n const sel = switchFunc()();\n if (!sel) return props.fallback;\n const [index, conditionValue, mp] = sel;\n const child = mp.children;\n const fn = typeof child === \"function\" && child.length > 0;\n return fn ? untrack(() => child(mp.keyed ? conditionValue() : () => {\n if (untrack(switchFunc)()?.[0] !== index) throw narrowedError(\"Match\");\n return conditionValue();\n })) : child;\n }, undefined, undefined);\n}\nfunction Match(props) {\n return props;\n}\nlet Errors;\nfunction resetErrorBoundaries() {\n Errors && [...Errors].forEach(fn => fn());\n}\nfunction ErrorBoundary(props) {\n let err;\n if (sharedConfig.context && sharedConfig.load) err = sharedConfig.load(sharedConfig.getContextId());\n const [errored, setErrored] = createSignal(err, undefined);\n Errors || (Errors = new Set());\n Errors.add(setErrored);\n onCleanup(() => Errors.delete(setErrored));\n return createMemo(() => {\n let e;\n if (e = errored()) {\n const f = props.fallback;\n return typeof f === \"function\" && f.length ? untrack(() => f(e, () => setErrored())) : f;\n }\n return catchError(() => props.children, setErrored);\n }, undefined, undefined);\n}\n\nconst suspenseListEquals = (a, b) => a.showContent === b.showContent && a.showFallback === b.showFallback;\nconst SuspenseListContext = /* #__PURE__ */createContext();\nfunction SuspenseList(props) {\n let [wrapper, setWrapper] = createSignal(() => ({\n inFallback: false\n })),\n show;\n const listContext = useContext(SuspenseListContext);\n const [registry, setRegistry] = createSignal([]);\n if (listContext) {\n show = listContext.register(createMemo(() => wrapper()().inFallback));\n }\n const resolved = createMemo(prev => {\n const reveal = props.revealOrder,\n tail = props.tail,\n {\n showContent = true,\n showFallback = true\n } = show ? show() : {},\n reg = registry(),\n reverse = reveal === \"backwards\";\n if (reveal === \"together\") {\n const all = reg.every(inFallback => !inFallback());\n const res = reg.map(() => ({\n showContent: all && showContent,\n showFallback\n }));\n res.inFallback = !all;\n return res;\n }\n let stop = false;\n let inFallback = prev.inFallback;\n const res = [];\n for (let i = 0, len = reg.length; i < len; i++) {\n const n = reverse ? len - i - 1 : i,\n s = reg[n]();\n if (!stop && !s) {\n res[n] = {\n showContent,\n showFallback\n };\n } else {\n const next = !stop;\n if (next) inFallback = true;\n res[n] = {\n showContent: next,\n showFallback: !tail || next && tail === \"collapsed\" ? showFallback : false\n };\n stop = true;\n }\n }\n if (!stop) inFallback = false;\n res.inFallback = inFallback;\n return res;\n }, {\n inFallback: false\n });\n setWrapper(() => resolved);\n return createComponent(SuspenseListContext.Provider, {\n value: {\n register: inFallback => {\n let index;\n setRegistry(registry => {\n index = registry.length;\n return [...registry, inFallback];\n });\n return createMemo(() => resolved()[index], undefined, {\n equals: suspenseListEquals\n });\n }\n },\n get children() {\n return props.children;\n }\n });\n}\nfunction Suspense(props) {\n let counter = 0,\n show,\n ctx,\n p,\n flicker,\n error;\n const [inFallback, setFallback] = createSignal(false),\n SuspenseContext = getSuspenseContext(),\n store = {\n increment: () => {\n if (++counter === 1) setFallback(true);\n },\n decrement: () => {\n if (--counter === 0) setFallback(false);\n },\n inFallback,\n effects: [],\n resolved: false\n },\n owner = getOwner();\n if (sharedConfig.context && sharedConfig.load) {\n const key = sharedConfig.getContextId();\n let ref = sharedConfig.load(key);\n if (ref) {\n if (typeof ref !== \"object\" || ref.s !== 1) p = ref;else sharedConfig.gather(key);\n }\n if (p && p !== \"$$f\") {\n const [s, set] = createSignal(undefined, {\n equals: false\n });\n flicker = s;\n p.then(() => {\n if (sharedConfig.done) return set();\n sharedConfig.gather(key);\n setHydrateContext(ctx);\n set();\n setHydrateContext();\n }, err => {\n error = err;\n set();\n });\n }\n }\n const listContext = useContext(SuspenseListContext);\n if (listContext) show = listContext.register(store.inFallback);\n let dispose;\n onCleanup(() => dispose && dispose());\n return createComponent(SuspenseContext.Provider, {\n value: store,\n get children() {\n return createMemo(() => {\n if (error) throw error;\n ctx = sharedConfig.context;\n if (flicker) {\n flicker();\n return flicker = undefined;\n }\n if (ctx && p === \"$$f\") setHydrateContext();\n const rendered = createMemo(() => props.children);\n return createMemo(prev => {\n const inFallback = store.inFallback(),\n {\n showContent = true,\n showFallback = true\n } = show ? show() : {};\n if ((!inFallback || p && p !== \"$$f\") && showContent) {\n store.resolved = true;\n dispose && dispose();\n dispose = ctx = p = undefined;\n resumeEffects(store.effects);\n return rendered();\n }\n if (!showFallback) return;\n if (dispose) return prev;\n return createRoot(disposer => {\n dispose = disposer;\n if (ctx) {\n setHydrateContext({\n id: ctx.id + \"F\",\n count: 0\n });\n ctx = undefined;\n }\n return props.fallback;\n }, owner);\n });\n });\n }\n });\n}\n\nconst DEV = undefined;\n\nexport { $DEVCOMP, $PROXY, $TRACK, DEV, ErrorBoundary, For, Index, Match, Show, Suspense, SuspenseList, Switch, batch, cancelCallback, catchError, children, createComponent, createComputed, createContext, createDeferred, createEffect, createMemo, createReaction, createRenderEffect, createResource, createRoot, createSelector, createSignal, createUniqueId, enableExternalSource, enableHydration, enableScheduling, equalFn, from, getListener, getOwner, indexArray, lazy, mapArray, mergeProps, observable, on, onCleanup, onError, onMount, requestCallback, resetErrorBoundaries, runWithOwner, sharedConfig, splitProps, startTransition, untrack, useContext, useTransition };\n", "import { createMemo, createRoot, createRenderEffect, untrack, sharedConfig, enableHydration, getOwner, createEffect, runWithOwner, createSignal, onCleanup, splitProps } from 'solid-js';\nexport { ErrorBoundary, For, Index, Match, Show, Suspense, SuspenseList, Switch, createComponent, createRenderEffect as effect, getOwner, mergeProps, untrack } from 'solid-js';\n\nconst booleans = [\"allowfullscreen\", \"async\", \"alpha\",\n\"autofocus\",\n\"autoplay\", \"checked\", \"controls\", \"default\", \"disabled\", \"formnovalidate\", \"hidden\",\n\"indeterminate\", \"inert\",\n\"ismap\", \"loop\", \"multiple\", \"muted\", \"nomodule\", \"novalidate\", \"open\", \"playsinline\", \"readonly\", \"required\", \"reversed\", \"seamless\",\n\"selected\", \"adauctionheaders\",\n\"browsingtopics\",\n\"credentialless\",\n\"defaultchecked\", \"defaultmuted\", \"defaultselected\", \"defer\", \"disablepictureinpicture\", \"disableremoteplayback\", \"preservespitch\",\n\"shadowrootclonable\", \"shadowrootcustomelementregistry\",\n\"shadowrootdelegatesfocus\", \"shadowrootserializable\",\n\"sharedstoragewritable\"\n];\nconst Properties = /*#__PURE__*/new Set([\n\"className\", \"value\",\n\"readOnly\", \"noValidate\", \"formNoValidate\", \"isMap\", \"noModule\", \"playsInline\", \"adAuctionHeaders\",\n\"allowFullscreen\", \"browsingTopics\",\n\"defaultChecked\", \"defaultMuted\", \"defaultSelected\", \"disablePictureInPicture\", \"disableRemotePlayback\", \"preservesPitch\", \"shadowRootClonable\", \"shadowRootCustomElementRegistry\",\n\"shadowRootDelegatesFocus\", \"shadowRootSerializable\",\n\"sharedStorageWritable\",\n...booleans]);\nconst ChildProperties = /*#__PURE__*/new Set([\"innerHTML\", \"textContent\", \"innerText\", \"children\"]);\nconst Aliases = /*#__PURE__*/Object.assign(Object.create(null), {\n className: \"class\",\n htmlFor: \"for\"\n});\nconst PropAliases = /*#__PURE__*/Object.assign(Object.create(null), {\n class: \"className\",\n novalidate: {\n $: \"noValidate\",\n FORM: 1\n },\n formnovalidate: {\n $: \"formNoValidate\",\n BUTTON: 1,\n INPUT: 1\n },\n ismap: {\n $: \"isMap\",\n IMG: 1\n },\n nomodule: {\n $: \"noModule\",\n SCRIPT: 1\n },\n playsinline: {\n $: \"playsInline\",\n VIDEO: 1\n },\n readonly: {\n $: \"readOnly\",\n INPUT: 1,\n TEXTAREA: 1\n },\n adauctionheaders: {\n $: \"adAuctionHeaders\",\n IFRAME: 1\n },\n allowfullscreen: {\n $: \"allowFullscreen\",\n IFRAME: 1\n },\n browsingtopics: {\n $: \"browsingTopics\",\n IMG: 1\n },\n defaultchecked: {\n $: \"defaultChecked\",\n INPUT: 1\n },\n defaultmuted: {\n $: \"defaultMuted\",\n AUDIO: 1,\n VIDEO: 1\n },\n defaultselected: {\n $: \"defaultSelected\",\n OPTION: 1\n },\n disablepictureinpicture: {\n $: \"disablePictureInPicture\",\n VIDEO: 1\n },\n disableremoteplayback: {\n $: \"disableRemotePlayback\",\n AUDIO: 1,\n VIDEO: 1\n },\n preservespitch: {\n $: \"preservesPitch\",\n AUDIO: 1,\n VIDEO: 1\n },\n shadowrootclonable: {\n $: \"shadowRootClonable\",\n TEMPLATE: 1\n },\n shadowrootdelegatesfocus: {\n $: \"shadowRootDelegatesFocus\",\n TEMPLATE: 1\n },\n shadowrootserializable: {\n $: \"shadowRootSerializable\",\n TEMPLATE: 1\n },\n sharedstoragewritable: {\n $: \"sharedStorageWritable\",\n IFRAME: 1,\n IMG: 1\n }\n});\nfunction getPropAlias(prop, tagName) {\n const a = PropAliases[prop];\n return typeof a === \"object\" ? a[tagName] ? a[\"$\"] : undefined : a;\n}\nconst DelegatedEvents = /*#__PURE__*/new Set([\"beforeinput\", \"click\", \"dblclick\", \"contextmenu\", \"focusin\", \"focusout\", \"input\", \"keydown\", \"keyup\", \"mousedown\", \"mousemove\", \"mouseout\", \"mouseover\", \"mouseup\", \"pointerdown\", \"pointermove\", \"pointerout\", \"pointerover\", \"pointerup\", \"touchend\", \"touchmove\", \"touchstart\"]);\nconst SVGElements = /*#__PURE__*/new Set([\n\"altGlyph\", \"altGlyphDef\", \"altGlyphItem\", \"animate\", \"animateColor\", \"animateMotion\", \"animateTransform\", \"circle\", \"clipPath\", \"color-profile\", \"cursor\", \"defs\", \"desc\", \"ellipse\", \"feBlend\", \"feColorMatrix\", \"feComponentTransfer\", \"feComposite\", \"feConvolveMatrix\", \"feDiffuseLighting\", \"feDisplacementMap\", \"feDistantLight\", \"feDropShadow\", \"feFlood\", \"feFuncA\", \"feFuncB\", \"feFuncG\", \"feFuncR\", \"feGaussianBlur\", \"feImage\", \"feMerge\", \"feMergeNode\", \"feMorphology\", \"feOffset\", \"fePointLight\", \"feSpecularLighting\", \"feSpotLight\", \"feTile\", \"feTurbulence\", \"filter\", \"font\", \"font-face\", \"font-face-format\", \"font-face-name\", \"font-face-src\", \"font-face-uri\", \"foreignObject\", \"g\", \"glyph\", \"glyphRef\", \"hkern\", \"image\", \"line\", \"linearGradient\", \"marker\", \"mask\", \"metadata\", \"missing-glyph\", \"mpath\", \"path\", \"pattern\", \"polygon\", \"polyline\", \"radialGradient\", \"rect\",\n\"set\", \"stop\",\n\"svg\", \"switch\", \"symbol\", \"text\", \"textPath\",\n\"tref\", \"tspan\", \"use\", \"view\", \"vkern\"]);\nconst SVGNamespace = {\n xlink: \"http://www.w3.org/1999/xlink\",\n xml: \"http://www.w3.org/XML/1998/namespace\"\n};\nconst DOMElements = /*#__PURE__*/new Set([\"html\", \"base\", \"head\", \"link\", \"meta\", \"style\", \"title\", \"body\", \"address\", \"article\", \"aside\", \"footer\", \"header\", \"main\", \"nav\", \"section\", \"body\", \"blockquote\", \"dd\", \"div\", \"dl\", \"dt\", \"figcaption\", \"figure\", \"hr\", \"li\", \"ol\", \"p\", \"pre\", \"ul\", \"a\", \"abbr\", \"b\", \"bdi\", \"bdo\", \"br\", \"cite\", \"code\", \"data\", \"dfn\", \"em\", \"i\", \"kbd\", \"mark\", \"q\", \"rp\", \"rt\", \"ruby\", \"s\", \"samp\", \"small\", \"span\", \"strong\", \"sub\", \"sup\", \"time\", \"u\", \"var\", \"wbr\", \"area\", \"audio\", \"img\", \"map\", \"track\", \"video\", \"embed\", \"iframe\", \"object\", \"param\", \"picture\", \"portal\", \"source\", \"svg\", \"math\", \"canvas\", \"noscript\", \"script\", \"del\", \"ins\", \"caption\", \"col\", \"colgroup\", \"table\", \"tbody\", \"td\", \"tfoot\", \"th\", \"thead\", \"tr\", \"button\", \"datalist\", \"fieldset\", \"form\", \"input\", \"label\", \"legend\", \"meter\", \"optgroup\", \"option\", \"output\", \"progress\", \"select\", \"textarea\", \"details\", \"dialog\", \"menu\", \"summary\", \"details\", \"slot\", \"template\", \"acronym\", \"applet\", \"basefont\", \"bgsound\", \"big\", \"blink\", \"center\", \"content\", \"dir\", \"font\", \"frame\", \"frameset\", \"hgroup\", \"image\", \"keygen\", \"marquee\", \"menuitem\", \"nobr\", \"noembed\", \"noframes\", \"plaintext\", \"rb\", \"rtc\", \"shadow\", \"spacer\", \"strike\", \"tt\", \"xmp\", \"a\", \"abbr\", \"acronym\", \"address\", \"applet\", \"area\", \"article\", \"aside\", \"audio\", \"b\", \"base\", \"basefont\", \"bdi\", \"bdo\", \"bgsound\", \"big\", \"blink\", \"blockquote\", \"body\", \"br\", \"button\", \"canvas\", \"caption\", \"center\", \"cite\", \"code\", \"col\", \"colgroup\", \"content\", \"data\", \"datalist\", \"dd\", \"del\", \"details\", \"dfn\", \"dialog\", \"dir\", \"div\", \"dl\", \"dt\", \"em\", \"embed\", \"fieldset\", \"figcaption\", \"figure\", \"font\", \"footer\", \"form\", \"frame\", \"frameset\", \"head\", \"header\", \"hgroup\", \"hr\", \"html\", \"i\", \"iframe\", \"image\", \"img\", \"input\", \"ins\", \"kbd\", \"keygen\", \"label\", \"legend\", \"li\", \"link\", \"main\", \"map\", \"mark\", \"marquee\", \"menu\", \"menuitem\", \"meta\", \"meter\", \"nav\", \"nobr\", \"noembed\", \"noframes\", \"noscript\", \"object\", \"ol\", \"optgroup\", \"option\", \"output\", \"p\", \"param\", \"picture\", \"plaintext\", \"portal\", \"pre\", \"progress\", \"q\", \"rb\", \"rp\", \"rt\", \"rtc\", \"ruby\", \"s\", \"samp\", \"script\", \"section\", \"select\", \"shadow\", \"slot\", \"small\", \"source\", \"spacer\", \"span\", \"strike\", \"strong\", \"style\", \"sub\", \"summary\", \"sup\", \"table\", \"tbody\", \"td\", \"template\", \"textarea\", \"tfoot\", \"th\", \"thead\", \"time\", \"title\", \"tr\", \"track\", \"tt\", \"u\", \"ul\", \"var\", \"video\", \"wbr\", \"xmp\", \"input\", \"h1\", \"h2\", \"h3\", \"h4\", \"h5\", \"h6\",\n\"webview\",\n\"isindex\", \"listing\", \"multicol\", \"nextid\", \"noindex\", \"search\"]);\n\nconst memo = fn => createMemo(() => fn());\n\nfunction reconcileArrays(parentNode, a, b) {\n let bLength = b.length,\n aEnd = a.length,\n bEnd = bLength,\n aStart = 0,\n bStart = 0,\n after = a[aEnd - 1].nextSibling,\n map = null;\n while (aStart < aEnd || bStart < bEnd) {\n if (a[aStart] === b[bStart]) {\n aStart++;\n bStart++;\n continue;\n }\n while (a[aEnd - 1] === b[bEnd - 1]) {\n aEnd--;\n bEnd--;\n }\n if (aEnd === aStart) {\n const node = bEnd < bLength ? bStart ? b[bStart - 1].nextSibling : b[bEnd - bStart] : after;\n while (bStart < bEnd) parentNode.insertBefore(b[bStart++], node);\n } else if (bEnd === bStart) {\n while (aStart < aEnd) {\n if (!map || !map.has(a[aStart])) a[aStart].remove();\n aStart++;\n }\n } else if (a[aStart] === b[bEnd - 1] && b[bStart] === a[aEnd - 1]) {\n const node = a[--aEnd].nextSibling;\n parentNode.insertBefore(b[bStart++], a[aStart++].nextSibling);\n parentNode.insertBefore(b[--bEnd], node);\n a[aEnd] = b[bEnd];\n } else {\n if (!map) {\n map = new Map();\n let i = bStart;\n while (i < bEnd) map.set(b[i], i++);\n }\n const index = map.get(a[aStart]);\n if (index != null) {\n if (bStart < index && index < bEnd) {\n let i = aStart,\n sequence = 1,\n t;\n while (++i < aEnd && i < bEnd) {\n if ((t = map.get(a[i])) == null || t !== index + sequence) break;\n sequence++;\n }\n if (sequence > index - bStart) {\n const node = a[aStart];\n while (bStart < index) parentNode.insertBefore(b[bStart++], node);\n } else parentNode.replaceChild(b[bStart++], a[aStart++]);\n } else aStart++;\n } else a[aStart++].remove();\n }\n }\n}\n\nconst $$EVENTS = \"_$DX_DELEGATE\";\nfunction render(code, element, init, options = {}) {\n let disposer;\n createRoot(dispose => {\n disposer = dispose;\n element === document ? code() : insert(element, code(), element.firstChild ? null : undefined, init);\n }, options.owner);\n return () => {\n disposer();\n element.textContent = \"\";\n };\n}\nfunction template(html, isImportNode, isSVG, isMathML) {\n let node;\n const create = () => {\n const t = isMathML ? document.createElementNS(\"http://www.w3.org/1998/Math/MathML\", \"template\") : document.createElement(\"template\");\n t.innerHTML = html;\n return isSVG ? t.content.firstChild.firstChild : isMathML ? t.firstChild : t.content.firstChild;\n };\n const fn = isImportNode ? () => untrack(() => document.importNode(node || (node = create()), true)) : () => (node || (node = create())).cloneNode(true);\n fn.cloneNode = fn;\n return fn;\n}\nfunction delegateEvents(eventNames, document = window.document) {\n const e = document[$$EVENTS] || (document[$$EVENTS] = new Set());\n for (let i = 0, l = eventNames.length; i < l; i++) {\n const name = eventNames[i];\n if (!e.has(name)) {\n e.add(name);\n document.addEventListener(name, eventHandler);\n }\n }\n}\nfunction clearDelegatedEvents(document = window.document) {\n if (document[$$EVENTS]) {\n for (let name of document[$$EVENTS].keys()) document.removeEventListener(name, eventHandler);\n delete document[$$EVENTS];\n }\n}\nfunction setProperty(node, name, value) {\n if (isHydrating(node)) return;\n node[name] = value;\n}\nfunction setAttribute(node, name, value) {\n if (isHydrating(node)) return;\n if (value == null) node.removeAttribute(name);else node.setAttribute(name, value);\n}\nfunction setAttributeNS(node, namespace, name, value) {\n if (isHydrating(node)) return;\n if (value == null) node.removeAttributeNS(namespace, name);else node.setAttributeNS(namespace, name, value);\n}\nfunction setBoolAttribute(node, name, value) {\n if (isHydrating(node)) return;\n value ? node.setAttribute(name, \"\") : node.removeAttribute(name);\n}\nfunction className(node, value) {\n if (isHydrating(node)) return;\n if (value == null) node.removeAttribute(\"class\");else node.className = value;\n}\nfunction addEventListener(node, name, handler, delegate) {\n if (delegate) {\n if (Array.isArray(handler)) {\n node[`$$${name}`] = handler[0];\n node[`$$${name}Data`] = handler[1];\n } else node[`$$${name}`] = handler;\n } else if (Array.isArray(handler)) {\n const handlerFn = handler[0];\n node.addEventListener(name, handler[0] = e => handlerFn.call(node, handler[1], e));\n } else node.addEventListener(name, handler, typeof handler !== \"function\" && handler);\n}\nfunction classList(node, value, prev = {}) {\n const classKeys = Object.keys(value || {}),\n prevKeys = Object.keys(prev);\n let i, len;\n for (i = 0, len = prevKeys.length; i < len; i++) {\n const key = prevKeys[i];\n if (!key || key === \"undefined\" || value[key]) continue;\n toggleClassKey(node, key, false);\n delete prev[key];\n }\n for (i = 0, len = classKeys.length; i < len; i++) {\n const key = classKeys[i],\n classValue = !!value[key];\n if (!key || key === \"undefined\" || prev[key] === classValue || !classValue) continue;\n toggleClassKey(node, key, true);\n prev[key] = classValue;\n }\n return prev;\n}\nfunction style(node, value, prev) {\n if (!value) return prev ? setAttribute(node, \"style\") : value;\n const nodeStyle = node.style;\n if (typeof value === \"string\") return nodeStyle.cssText = value;\n typeof prev === \"string\" && (nodeStyle.cssText = prev = undefined);\n prev || (prev = {});\n value || (value = {});\n let v, s;\n for (s in prev) {\n value[s] == null && nodeStyle.removeProperty(s);\n delete prev[s];\n }\n for (s in value) {\n v = value[s];\n if (v !== prev[s]) {\n nodeStyle.setProperty(s, v);\n prev[s] = v;\n }\n }\n return prev;\n}\nfunction setStyleProperty(node, name, value) {\n value != null ? node.style.setProperty(name, value) : node.style.removeProperty(name);\n}\nfunction spread(node, props = {}, isSVG, skipChildren) {\n const prevProps = {};\n if (!skipChildren) {\n createRenderEffect(() => prevProps.children = insertExpression(node, props.children, prevProps.children));\n }\n createRenderEffect(() => typeof props.ref === \"function\" && use(props.ref, node));\n createRenderEffect(() => assign(node, props, isSVG, true, prevProps, true));\n return prevProps;\n}\nfunction dynamicProperty(props, key) {\n const src = props[key];\n Object.defineProperty(props, key, {\n get() {\n return src();\n },\n enumerable: true\n });\n return props;\n}\nfunction use(fn, element, arg) {\n return untrack(() => fn(element, arg));\n}\nfunction insert(parent, accessor, marker, initial) {\n if (marker !== undefined && !initial) initial = [];\n if (typeof accessor !== \"function\") return insertExpression(parent, accessor, initial, marker);\n createRenderEffect(current => insertExpression(parent, accessor(), current, marker), initial);\n}\nfunction assign(node, props, isSVG, skipChildren, prevProps = {}, skipRef = false) {\n props || (props = {});\n for (const prop in prevProps) {\n if (!(prop in props)) {\n if (prop === \"children\") continue;\n prevProps[prop] = assignProp(node, prop, null, prevProps[prop], isSVG, skipRef, props);\n }\n }\n for (const prop in props) {\n if (prop === \"children\") {\n if (!skipChildren) insertExpression(node, props.children);\n continue;\n }\n const value = props[prop];\n prevProps[prop] = assignProp(node, prop, value, prevProps[prop], isSVG, skipRef, props);\n }\n}\nfunction hydrate$1(code, element, options = {}) {\n if (globalThis._$HY.done) return render(code, element, [...element.childNodes], options);\n sharedConfig.completed = globalThis._$HY.completed;\n sharedConfig.events = globalThis._$HY.events;\n sharedConfig.load = id => globalThis._$HY.r[id];\n sharedConfig.has = id => id in globalThis._$HY.r;\n sharedConfig.gather = root => gatherHydratable(element, root);\n sharedConfig.registry = new Map();\n sharedConfig.context = {\n id: options.renderId || \"\",\n count: 0\n };\n try {\n gatherHydratable(element, options.renderId);\n return render(code, element, [...element.childNodes], options);\n } finally {\n sharedConfig.context = null;\n }\n}\nfunction getNextElement(template) {\n let node,\n key,\n hydrating = isHydrating();\n if (!hydrating || !(node = sharedConfig.registry.get(key = getHydrationKey()))) {\n return template();\n }\n if (sharedConfig.completed) sharedConfig.completed.add(node);\n sharedConfig.registry.delete(key);\n return node;\n}\nfunction getNextMatch(el, nodeName) {\n while (el && el.localName !== nodeName) el = el.nextSibling;\n return el;\n}\nfunction getNextMarker(start) {\n let end = start,\n count = 0,\n current = [];\n if (isHydrating(start)) {\n while (end) {\n if (end.nodeType === 8) {\n const v = end.nodeValue;\n if (v === \"$\") count++;else if (v === \"/\") {\n if (count === 0) return [end, current];\n count--;\n }\n }\n current.push(end);\n end = end.nextSibling;\n }\n }\n return [end, current];\n}\nfunction runHydrationEvents() {\n if (sharedConfig.events && !sharedConfig.events.queued) {\n queueMicrotask(() => {\n const {\n completed,\n events\n } = sharedConfig;\n if (!events) return;\n events.queued = false;\n while (events.length) {\n const [el, e] = events[0];\n if (!completed.has(el)) return;\n events.shift();\n eventHandler(e);\n }\n if (sharedConfig.done) {\n sharedConfig.events = _$HY.events = null;\n sharedConfig.completed = _$HY.completed = null;\n }\n });\n sharedConfig.events.queued = true;\n }\n}\nfunction isHydrating(node) {\n return !!sharedConfig.context && !sharedConfig.done && (!node || node.isConnected);\n}\nfunction toPropertyName(name) {\n return name.toLowerCase().replace(/-([a-z])/g, (_, w) => w.toUpperCase());\n}\nfunction toggleClassKey(node, key, value) {\n const classNames = key.trim().split(/\\s+/);\n for (let i = 0, nameLen = classNames.length; i < nameLen; i++) node.classList.toggle(classNames[i], value);\n}\nfunction assignProp(node, prop, value, prev, isSVG, skipRef, props) {\n let isCE, isProp, isChildProp, propAlias, forceProp;\n if (prop === \"style\") return style(node, value, prev);\n if (prop === \"classList\") return classList(node, value, prev);\n if (value === prev) return prev;\n if (prop === \"ref\") {\n if (!skipRef) value(node);\n } else if (prop.slice(0, 3) === \"on:\") {\n const e = prop.slice(3);\n prev && node.removeEventListener(e, prev, typeof prev !== \"function\" && prev);\n value && node.addEventListener(e, value, typeof value !== \"function\" && value);\n } else if (prop.slice(0, 10) === \"oncapture:\") {\n const e = prop.slice(10);\n prev && node.removeEventListener(e, prev, true);\n value && node.addEventListener(e, value, true);\n } else if (prop.slice(0, 2) === \"on\") {\n const name = prop.slice(2).toLowerCase();\n const delegate = DelegatedEvents.has(name);\n if (!delegate && prev) {\n const h = Array.isArray(prev) ? prev[0] : prev;\n node.removeEventListener(name, h);\n }\n if (delegate || value) {\n addEventListener(node, name, value, delegate);\n delegate && delegateEvents([name]);\n }\n } else if (prop.slice(0, 5) === \"attr:\") {\n setAttribute(node, prop.slice(5), value);\n } else if (prop.slice(0, 5) === \"bool:\") {\n setBoolAttribute(node, prop.slice(5), value);\n } else if ((forceProp = prop.slice(0, 5) === \"prop:\") || (isChildProp = ChildProperties.has(prop)) || !isSVG && ((propAlias = getPropAlias(prop, node.tagName)) || (isProp = Properties.has(prop))) || (isCE = node.nodeName.includes(\"-\") || \"is\" in props)) {\n if (forceProp) {\n prop = prop.slice(5);\n isProp = true;\n } else if (isHydrating(node)) return value;\n if (prop === \"class\" || prop === \"className\") className(node, value);else if (isCE && !isProp && !isChildProp) node[toPropertyName(prop)] = value;else node[propAlias || prop] = value;\n } else {\n const ns = isSVG && prop.indexOf(\":\") > -1 && SVGNamespace[prop.split(\":\")[0]];\n if (ns) setAttributeNS(node, ns, prop, value);else setAttribute(node, Aliases[prop] || prop, value);\n }\n return value;\n}\nfunction eventHandler(e) {\n if (sharedConfig.registry && sharedConfig.events) {\n if (sharedConfig.events.find(([el, ev]) => ev === e)) return;\n }\n let node = e.target;\n const key = `$$${e.type}`;\n const oriTarget = e.target;\n const oriCurrentTarget = e.currentTarget;\n const retarget = value => Object.defineProperty(e, \"target\", {\n configurable: true,\n value\n });\n const handleNode = () => {\n const handler = node[key];\n if (handler && !node.disabled) {\n const data = node[`${key}Data`];\n data !== undefined ? handler.call(node, data, e) : handler.call(node, e);\n if (e.cancelBubble) return;\n }\n node.host && typeof node.host !== \"string\" && !node.host._$host && node.contains(e.target) && retarget(node.host);\n return true;\n };\n const walkUpTree = () => {\n while (handleNode() && (node = node._$host || node.parentNode || node.host));\n };\n Object.defineProperty(e, \"currentTarget\", {\n configurable: true,\n get() {\n return node || document;\n }\n });\n if (sharedConfig.registry && !sharedConfig.done) sharedConfig.done = _$HY.done = true;\n if (e.composedPath) {\n const path = e.composedPath();\n retarget(path[0]);\n for (let i = 0; i < path.length - 2; i++) {\n node = path[i];\n if (!handleNode()) break;\n if (node._$host) {\n node = node._$host;\n walkUpTree();\n break;\n }\n if (node.parentNode === oriCurrentTarget) {\n break;\n }\n }\n }\n else walkUpTree();\n retarget(oriTarget);\n}\nfunction insertExpression(parent, value, current, marker, unwrapArray) {\n const hydrating = isHydrating(parent);\n if (hydrating) {\n !current && (current = [...parent.childNodes]);\n let cleaned = [];\n for (let i = 0; i < current.length; i++) {\n const node = current[i];\n if (node.nodeType === 8 && node.data.slice(0, 2) === \"!$\") node.remove();else cleaned.push(node);\n }\n current = cleaned;\n }\n while (typeof current === \"function\") current = current();\n if (value === current) return current;\n const t = typeof value,\n multi = marker !== undefined;\n parent = multi && current[0] && current[0].parentNode || parent;\n if (t === \"string\" || t === \"number\") {\n if (hydrating) return current;\n if (t === \"number\") {\n value = value.toString();\n if (value === current) return current;\n }\n if (multi) {\n let node = current[0];\n if (node && node.nodeType === 3) {\n node.data !== value && (node.data = value);\n } else node = document.createTextNode(value);\n current = cleanChildren(parent, current, marker, node);\n } else {\n if (current !== \"\" && typeof current === \"string\") {\n current = parent.firstChild.data = value;\n } else current = parent.textContent = value;\n }\n } else if (value == null || t === \"boolean\") {\n if (hydrating) return current;\n current = cleanChildren(parent, current, marker);\n } else if (t === \"function\") {\n createRenderEffect(() => {\n let v = value();\n while (typeof v === \"function\") v = v();\n current = insertExpression(parent, v, current, marker);\n });\n return () => current;\n } else if (Array.isArray(value)) {\n const array = [];\n const currentArray = current && Array.isArray(current);\n if (normalizeIncomingArray(array, value, current, unwrapArray)) {\n createRenderEffect(() => current = insertExpression(parent, array, current, marker, true));\n return () => current;\n }\n if (hydrating) {\n if (!array.length) return current;\n if (marker === undefined) return current = [...parent.childNodes];\n let node = array[0];\n if (node.parentNode !== parent) return current;\n const nodes = [node];\n while ((node = node.nextSibling) !== marker) nodes.push(node);\n return current = nodes;\n }\n if (array.length === 0) {\n current = cleanChildren(parent, current, marker);\n if (multi) return current;\n } else if (currentArray) {\n if (current.length === 0) {\n appendNodes(parent, array, marker);\n } else reconcileArrays(parent, current, array);\n } else {\n current && cleanChildren(parent);\n appendNodes(parent, array);\n }\n current = array;\n } else if (value.nodeType) {\n if (hydrating && value.parentNode) return current = multi ? [value] : value;\n if (Array.isArray(current)) {\n if (multi) return current = cleanChildren(parent, current, marker, value);\n cleanChildren(parent, current, null, value);\n } else if (current == null || current === \"\" || !parent.firstChild) {\n parent.appendChild(value);\n } else parent.replaceChild(value, parent.firstChild);\n current = value;\n } else ;\n return current;\n}\nfunction normalizeIncomingArray(normalized, array, current, unwrap) {\n let dynamic = false;\n for (let i = 0, len = array.length; i < len; i++) {\n let item = array[i],\n prev = current && current[normalized.length],\n t;\n if (item == null || item === true || item === false) ; else if ((t = typeof item) === \"object\" && item.nodeType) {\n normalized.push(item);\n } else if (Array.isArray(item)) {\n dynamic = normalizeIncomingArray(normalized, item, prev) || dynamic;\n } else if (t === \"function\") {\n if (unwrap) {\n while (typeof item === \"function\") item = item();\n dynamic = normalizeIncomingArray(normalized, Array.isArray(item) ? item : [item], Array.isArray(prev) ? prev : [prev]) || dynamic;\n } else {\n normalized.push(item);\n dynamic = true;\n }\n } else {\n const value = String(item);\n if (prev && prev.nodeType === 3 && prev.data === value) normalized.push(prev);else normalized.push(document.createTextNode(value));\n }\n }\n return dynamic;\n}\nfunction appendNodes(parent, array, marker = null) {\n for (let i = 0, len = array.length; i < len; i++) parent.insertBefore(array[i], marker);\n}\nfunction cleanChildren(parent, current, marker, replacement) {\n if (marker === undefined) return parent.textContent = \"\";\n const node = replacement || document.createTextNode(\"\");\n if (current.length) {\n let inserted = false;\n for (let i = current.length - 1; i >= 0; i--) {\n const el = current[i];\n if (node !== el) {\n const isParent = el.parentNode === parent;\n if (!inserted && !i) isParent ? parent.replaceChild(node, el) : parent.insertBefore(node, marker);else isParent && el.remove();\n } else inserted = true;\n }\n } else parent.insertBefore(node, marker);\n return [node];\n}\nfunction gatherHydratable(element, root) {\n const templates = element.querySelectorAll(`*[data-hk]`);\n for (let i = 0; i < templates.length; i++) {\n const node = templates[i];\n const key = node.getAttribute(\"data-hk\");\n if ((!root || key.startsWith(root)) && !sharedConfig.registry.has(key)) sharedConfig.registry.set(key, node);\n }\n}\nfunction getHydrationKey() {\n return sharedConfig.getNextContextId();\n}\nfunction NoHydration(props) {\n return sharedConfig.context ? undefined : props.children;\n}\nfunction Hydration(props) {\n return props.children;\n}\nconst voidFn = () => undefined;\nconst RequestContext = Symbol();\nfunction innerHTML(parent, content) {\n !sharedConfig.context && (parent.innerHTML = content);\n}\n\nfunction throwInBrowser(func) {\n const err = new Error(`${func.name} is not supported in the browser, returning undefined`);\n console.error(err);\n}\nfunction renderToString(fn, options) {\n throwInBrowser(renderToString);\n}\nfunction renderToStringAsync(fn, options) {\n throwInBrowser(renderToStringAsync);\n}\nfunction renderToStream(fn, options) {\n throwInBrowser(renderToStream);\n}\nfunction ssr(template, ...nodes) {}\nfunction ssrElement(name, props, children, needsId) {}\nfunction ssrClassList(value) {}\nfunction ssrStyle(value) {}\nfunction ssrAttribute(key, value) {}\nfunction ssrHydrationKey() {}\nfunction resolveSSRNode(node) {}\nfunction escape(html) {}\nfunction ssrSpread(props, isSVG, skipChildren) {}\n\nconst isServer = false;\nconst isDev = false;\nconst SVG_NAMESPACE = \"http://www.w3.org/2000/svg\";\nfunction createElement(tagName, isSVG = false, is = undefined) {\n return isSVG ? document.createElementNS(SVG_NAMESPACE, tagName) : document.createElement(tagName, {\n is\n });\n}\nconst hydrate = (...args) => {\n enableHydration();\n return hydrate$1(...args);\n};\nfunction Portal(props) {\n const {\n useShadow\n } = props,\n marker = document.createTextNode(\"\"),\n mount = () => props.mount || document.body,\n owner = getOwner();\n let content;\n let hydrating = !!sharedConfig.context;\n createEffect(() => {\n if (hydrating) getOwner().user = hydrating = false;\n content || (content = runWithOwner(owner, () => createMemo(() => props.children)));\n const el = mount();\n if (el instanceof HTMLHeadElement) {\n const [clean, setClean] = createSignal(false);\n const cleanup = () => setClean(true);\n createRoot(dispose => insert(el, () => !clean() ? content() : dispose(), null));\n onCleanup(cleanup);\n } else {\n const container = createElement(props.isSVG ? \"g\" : \"div\", props.isSVG),\n renderRoot = useShadow && container.attachShadow ? container.attachShadow({\n mode: \"open\"\n }) : container;\n Object.defineProperty(container, \"_$host\", {\n get() {\n return marker.parentNode;\n },\n configurable: true\n });\n insert(renderRoot, content);\n el.appendChild(container);\n props.ref && props.ref(container);\n onCleanup(() => el.removeChild(container));\n }\n }, undefined, {\n render: !hydrating\n });\n return marker;\n}\nfunction createDynamic(component, props) {\n const cached = createMemo(component);\n return createMemo(() => {\n const component = cached();\n switch (typeof component) {\n case \"function\":\n return untrack(() => component(props));\n case \"string\":\n const isSvg = SVGElements.has(component);\n const el = sharedConfig.context ? getNextElement() : createElement(component, isSvg, untrack(() => props.is));\n spread(el, props, isSvg);\n return el;\n }\n });\n}\nfunction Dynamic(props) {\n const [, others] = splitProps(props, [\"component\"]);\n return createDynamic(() => props.component, others);\n}\n\nexport { Aliases, voidFn as Assets, ChildProperties, DOMElements, DelegatedEvents, Dynamic, Hydration, voidFn as HydrationScript, NoHydration, Portal, Properties, RequestContext, SVGElements, SVGNamespace, addEventListener, assign, classList, className, clearDelegatedEvents, createDynamic, delegateEvents, dynamicProperty, escape, voidFn as generateHydrationScript, voidFn as getAssets, getHydrationKey, getNextElement, getNextMarker, getNextMatch, getPropAlias, voidFn as getRequestEvent, hydrate, innerHTML, insert, isDev, isServer, memo, render, renderToStream, renderToString, renderToStringAsync, resolveSSRNode, runHydrationEvents, setAttribute, setAttributeNS, setBoolAttribute, setProperty, setStyleProperty, spread, ssr, ssrAttribute, ssrClassList, ssrElement, ssrHydrationKey, ssrSpread, ssrStyle, style, template, use, voidFn as useAssets };\n", "// cabbages.ts\nimport debug from \"debug\";\nvar log = debug(\"cabbages\");\nfunction pojo(target) {\n return typeof target == \"object\" && typeof target != null && Object.getPrototypeOf(target) == Object.prototype;\n}\nvar BLOCK_MARKER = \"\\uFFFC\";\nfunction apply(target, ...rest) {\n if (rest.length == 0) {\n log(\"empty patch\");\n return;\n }\n const [path, range, val] = rest;\n let p = [...path];\n while (true) {\n let key = p.shift();\n if (!p.length) {\n const RANGE_ARRAY = Array.isArray(range);\n if (pojo(target) && RANGE_ARRAY && typeof key == \"undefined\" && typeof range[0] == \"string\") {\n delete target[range[0]];\n return;\n }\n if (RANGE_ARRAY || typeof range == \"number\") {\n if (typeof key == \"undefined\") {\n throw new Error(\"cant treat top level as a seq\");\n }\n key = key;\n let [start, end] = Array.isArray(range) ? range : [range, range + 1];\n const ZERO_LENGTH = Array.isArray(range) && range.length == 0;\n if (!ZERO_LENGTH && (start == null || end == null)) {\n throw new RangeError(\"it's all or nothing, no half measures\");\n }\n const DELETE = typeof val == \"undefined\";\n const INSERT = start === end && !DELETE;\n const APPEND = ZERO_LENGTH && !DELETE;\n const REPLACE = !INSERT && !DELETE && !APPEND;\n if (typeof target[key] == \"undefined\") {\n if (typeof target == \"string\") {\n return;\n } else if (typeof val == \"string\") {\n target[key] = \"\";\n } else {\n target[key] = [];\n }\n }\n let seq = target[key];\n if (Array.isArray(seq)) {\n if (APPEND) {\n Array.isArray(val) ? seq.push(...val) : seq.push(val);\n return;\n }\n if (INSERT || REPLACE) {\n Array.isArray(val) ? seq.splice(start, end - start, ...val) : seq.splice(start, end - start, val);\n return;\n }\n if (DELETE) {\n seq.splice(start, end - start);\n return;\n }\n throw new Error(\"i don't know what happened\");\n }\n if (typeof seq == \"string\") {\n if (APPEND) {\n target[key] = seq + val;\n return;\n }\n if (REPLACE || INSERT) {\n target[key] = seq.slice(0, start) + (typeof val == \"string\" ? val : val.map(\n (n) => typeof n == \"string\" ? n : BLOCK_MARKER\n ).join(\"\")) + seq.slice(end);\n return;\n }\n if (DELETE) {\n target[key] = seq.slice(0, start) + seq.slice(end);\n return;\n }\n throw new Error(\"i don't know what happened\");\n }\n if (pojo(seq) && RANGE_ARRAY && typeof range[0] == \"string\") {\n delete seq[range[0]];\n return;\n }\n throw new Error(\"not implemented\");\n }\n if (typeof key == \"undefined\") {\n if (typeof range != \"string\") {\n throw new Error(`can't index top-level map with ${range}`);\n }\n if (typeof val == \"undefined\") {\n delete target[range];\n } else {\n target[range] = val;\n }\n return;\n }\n if (typeof target[key] == \"undefined\") {\n target[key] = {};\n }\n if (RANGE_ARRAY) {\n let [a, b] = range;\n if (a != null && b != null) {\n if (typeof val == \"undefined\" && a != null && b != null) {\n delete target[key][a || b];\n } else {\n target[key][a || b] = val;\n }\n }\n } else {\n if (typeof val == \"undefined\") {\n delete target[key][range];\n } else if (typeof target[key] == \"string\") {\n return;\n } else {\n target[key][range] = val;\n }\n }\n return;\n }\n if (typeof key == \"undefined\") {\n throw new Error(\"cant treat top level as a seq\");\n }\n key = key;\n let nextkey = p[0];\n if (typeof target[key] == \"undefined\") {\n if (typeof nextkey == \"string\") {\n target[key] = {};\n } else if (typeof nextkey == \"number\") {\n target[key] = [];\n } else {\n throw new Error(`can't go down this road ${target}.${key}.${nextkey}`);\n }\n }\n target = target[key];\n }\n}\nvar patch = apply;\nfunction get(obj, key) {\n for (let p = 0; p < key.length; p++) {\n obj = obj ? obj[key[p]] : void 0;\n }\n return obj;\n}\nfunction fromAutomerge(autopatch, payload) {\n const path = autopatch.path.slice(0, -1);\n const key = autopatch.path[autopatch.path.length - 1];\n switch (autopatch.action) {\n case \"mark\":\n case \"unmark\":\n log(\n `skipping ${autopatch.action} because it doesn't affect material reality`\n );\n return [];\n case \"inc\":\n if (payload) {\n return [path, key, get(payload.patchInfo.after, autopatch.path)];\n } else {\n throw new Error(\n `can't apply ${autopatch.action} without payload argument`\n );\n }\n case \"conflict\":\n if (payload) {\n return [path, key, get(payload.patchInfo.after, autopatch.path)];\n } else {\n throw new Error(\n `can't apply ${autopatch.action} without payload argument`\n );\n }\n case \"del\": {\n return typeof key == \"string\" ? [path, key] : [path, [key, key + (autopatch.length || 1)]];\n }\n case \"insert\": {\n return [\n path,\n [key, key],\n structuredClone(autopatch.values)\n ];\n }\n case \"splice\": {\n return [path, [key, key], [autopatch.value]];\n }\n case \"put\": {\n return [path, key, structuredClone(autopatch.value)];\n }\n }\n}\nexport {\n apply,\n fromAutomerge,\n patch,\n pojo\n};\n", "import type {DocHandleChangePayload} from \"@automerge/automerge-repo/slim\"\nimport {apply, fromAutomerge} from \"cabbages\"\n\n/**\n * convert automerge patches to solid producer operations\n * @param payload the\n * [DocHandleChangePayload](https://automerge.org/automerge-repo/interfaces/_automerge_automerge_repo.DocHandleChangePayload.html)\n * from the handle.on(\"change\n * @returns a callback for an immer-like function. e.g.\n * [produce](https://docs.solidjs.com/reference/store-utilities/produce) for\n * [Solid\n * Stores](https://docs.solidjs.com/reference/store-utilities/create-store)\n */\nexport default function autoproduce<T>(\n\tpayload: DocHandleChangePayload<T>\n): (doc: T) => void {\n\treturn (doc: T) => {\n\t\tfor (let patch of payload.patches) {\n\t\t\tapply(doc, ...fromAutomerge(patch, payload))\n\t\t}\n\t}\n}\n", "import { $PROXY, $TRACK, getListener, batch, createSignal } from 'solid-js';\n\nconst $RAW = Symbol(\"store-raw\"),\n $NODE = Symbol(\"store-node\"),\n $HAS = Symbol(\"store-has\"),\n $SELF = Symbol(\"store-self\");\nfunction wrap$1(value) {\n let p = value[$PROXY];\n if (!p) {\n Object.defineProperty(value, $PROXY, {\n value: p = new Proxy(value, proxyTraps$1)\n });\n if (!Array.isArray(value)) {\n const keys = Object.keys(value),\n desc = Object.getOwnPropertyDescriptors(value);\n for (let i = 0, l = keys.length; i < l; i++) {\n const prop = keys[i];\n if (desc[prop].get) {\n Object.defineProperty(value, prop, {\n enumerable: desc[prop].enumerable,\n get: desc[prop].get.bind(p)\n });\n }\n }\n }\n }\n return p;\n}\nfunction isWrappable(obj) {\n let proto;\n return obj != null && typeof obj === \"object\" && (obj[$PROXY] || !(proto = Object.getPrototypeOf(obj)) || proto === Object.prototype || Array.isArray(obj));\n}\nfunction unwrap(item, set = new Set()) {\n let result, unwrapped, v, prop;\n if (result = item != null && item[$RAW]) return result;\n if (!isWrappable(item) || set.has(item)) return item;\n if (Array.isArray(item)) {\n if (Object.isFrozen(item)) item = item.slice(0);else set.add(item);\n for (let i = 0, l = item.length; i < l; i++) {\n v = item[i];\n if ((unwrapped = unwrap(v, set)) !== v) item[i] = unwrapped;\n }\n } else {\n if (Object.isFrozen(item)) item = Object.assign({}, item);else set.add(item);\n const keys = Object.keys(item),\n desc = Object.getOwnPropertyDescriptors(item);\n for (let i = 0, l = keys.length; i < l; i++) {\n prop = keys[i];\n if (desc[prop].get) continue;\n v = item[prop];\n if ((unwrapped = unwrap(v, set)) !== v) item[prop] = unwrapped;\n }\n }\n return item;\n}\nfunction getNodes(target, symbol) {\n let nodes = target[symbol];\n if (!nodes) Object.defineProperty(target, symbol, {\n value: nodes = Object.create(null)\n });\n return nodes;\n}\nfunction getNode(nodes, property, value) {\n if (nodes[property]) return nodes[property];\n const [s, set] = createSignal(value, {\n equals: false,\n internal: true\n });\n s.$ = set;\n return nodes[property] = s;\n}\nfunction proxyDescriptor$1(target, property) {\n const desc = Reflect.getOwnPropertyDescriptor(target, property);\n if (!desc || desc.get || !desc.configurable || property === $PROXY || property === $NODE) return desc;\n delete desc.value;\n delete desc.writable;\n desc.get = () => target[$PROXY][property];\n return desc;\n}\nfunction trackSelf(target) {\n getListener() && getNode(getNodes(target, $NODE), $SELF)();\n}\nfunction ownKeys(target) {\n trackSelf(target);\n return Reflect.ownKeys(target);\n}\nconst proxyTraps$1 = {\n get(target, property, receiver) {\n if (property === $RAW) return target;\n if (property === $PROXY) return receiver;\n if (property === $TRACK) {\n trackSelf(target);\n return receiver;\n }\n const nodes = getNodes(target, $NODE);\n const tracked = nodes[property];\n let value = tracked ? tracked() : target[property];\n if (property === $NODE || property === $HAS || property === \"__proto__\") return value;\n if (!tracked) {\n const desc = Object.getOwnPropertyDescriptor(target, property);\n if (getListener() && (typeof value !== \"function\" || target.hasOwnProperty(property)) && !(desc && desc.get)) value = getNode(nodes, property, value)();\n }\n return isWrappable(value) ? wrap$1(value) : value;\n },\n has(target, property) {\n if (property === $RAW || property === $PROXY || property === $TRACK || property === $NODE || property === $HAS || property === \"__proto__\") return true;\n getListener() && getNode(getNodes(target, $HAS), property)();\n return property in target;\n },\n set() {\n return true;\n },\n deleteProperty() {\n return true;\n },\n ownKeys: ownKeys,\n getOwnPropertyDescriptor: proxyDescriptor$1\n};\nfunction setProperty(state, property, value, deleting = false) {\n if (!deleting && state[property] === value) return;\n const prev = state[property],\n len = state.length;\n if (value === undefined) {\n delete state[property];\n if (state[$HAS] && state[$HAS][property] && prev !== undefined) state[$HAS][property].$();\n } else {\n state[property] = value;\n if (state[$HAS] && state[$HAS][property] && prev === undefined) state[$HAS][property].$();\n }\n let nodes = getNodes(state, $NODE),\n node;\n if (node = getNode(nodes, property, prev)) node.$(() => value);\n if (Array.isArray(state) && state.length !== len) {\n for (let i = state.length; i < len; i++) (node = nodes[i]) && node.$();\n (node = getNode(nodes, \"length\", len)) && node.$(state.length);\n }\n (node = nodes[$SELF]) && node.$();\n}\nfunction mergeStoreNode(state, value) {\n const keys = Object.keys(value);\n for (let i = 0; i < keys.length; i += 1) {\n const key = keys[i];\n setProperty(state, key, value[key]);\n }\n}\nfunction updateArray(current, next) {\n if (typeof next === \"function\") next = next(current);\n next = unwrap(next);\n if (Array.isArray(next)) {\n if (current === next) return;\n let i = 0,\n len = next.length;\n for (; i < len; i++) {\n const value = next[i];\n if (current[i] !== value) setProperty(current, i, value);\n }\n setProperty(current, \"length\", len);\n } else mergeStoreNode(current, next);\n}\nfunction updatePath(current, path, traversed = []) {\n let part,\n prev = current;\n if (path.length > 1) {\n part = path.shift();\n const partType = typeof part,\n isArray = Array.isArray(current);\n if (Array.isArray(part)) {\n for (let i = 0; i < part.length; i++) {\n updatePath(current, [part[i]].concat(path), traversed);\n }\n return;\n } else if (isArray && partType === \"function\") {\n for (let i = 0; i < current.length; i++) {\n if (part(current[i], i)) updatePath(current, [i].concat(path), traversed);\n }\n return;\n } else if (isArray && partType === \"object\") {\n const {\n from = 0,\n to = current.length - 1,\n by = 1\n } = part;\n for (let i = from; i <= to; i += by) {\n updatePath(current, [i].concat(path), traversed);\n }\n return;\n } else if (path.length > 1) {\n updatePath(current[part], path, [part].concat(traversed));\n return;\n }\n prev = current[part];\n traversed = [part].concat(traversed);\n }\n let value = path[0];\n if (typeof value === \"function\") {\n value = value(prev, traversed);\n if (value === prev) return;\n }\n if (part === undefined && value == undefined) return;\n value = unwrap(value);\n if (part === undefined || isWrappable(prev) && isWrappable(value) && !Array.isArray(value)) {\n mergeStoreNode(prev, value);\n } else setProperty(current, part, value);\n}\nfunction createStore(...[store, options]) {\n const unwrappedStore = unwrap(store || {});\n const isArray = Array.isArray(unwrappedStore);\n const wrappedStore = wrap$1(unwrappedStore);\n function setStore(...args) {\n batch(() => {\n isArray && args.length === 1 ? updateArray(unwrappedStore, args[0]) : updatePath(unwrappedStore, args);\n });\n }\n return [wrappedStore, setStore];\n}\n\nfunction proxyDescriptor(target, property) {\n const desc = Reflect.getOwnPropertyDescriptor(target, property);\n if (!desc || desc.get || desc.set || !desc.configurable || property === $PROXY || property === $NODE) return desc;\n delete desc.value;\n delete desc.writable;\n desc.get = () => target[$PROXY][property];\n desc.set = v => target[$PROXY][property] = v;\n return desc;\n}\nconst proxyTraps = {\n get(target, property, receiver) {\n if (property === $RAW) return target;\n if (property === $PROXY) return receiver;\n if (property === $TRACK) {\n trackSelf(target);\n return receiver;\n }\n const nodes = getNodes(target, $NODE);\n const tracked = nodes[property];\n let value = tracked ? tracked() : target[property];\n if (property === $NODE || property === $HAS || property === \"__proto__\") return value;\n if (!tracked) {\n const desc = Object.getOwnPropertyDescriptor(target, property);\n const isFunction = typeof value === \"function\";\n if (getListener() && (!isFunction || target.hasOwnProperty(property)) && !(desc && desc.get)) value = getNode(nodes, property, value)();else if (value != null && isFunction && value === Array.prototype[property]) {\n return (...args) => batch(() => Array.prototype[property].apply(receiver, args));\n }\n }\n return isWrappable(value) ? wrap(value) : value;\n },\n has(target, property) {\n if (property === $RAW || property === $PROXY || property === $TRACK || property === $NODE || property === $HAS || property === \"__proto__\") return true;\n getListener() && getNode(getNodes(target, $HAS), property)();\n return property in target;\n },\n set(target, property, value) {\n batch(() => setProperty(target, property, unwrap(value)));\n return true;\n },\n deleteProperty(target, property) {\n batch(() => setProperty(target, property, undefined, true));\n return true;\n },\n ownKeys: ownKeys,\n getOwnPropertyDescriptor: proxyDescriptor\n};\nfunction wrap(value) {\n let p = value[$PROXY];\n if (!p) {\n Object.defineProperty(value, $PROXY, {\n value: p = new Proxy(value, proxyTraps)\n });\n const keys = Object.keys(value),\n desc = Object.getOwnPropertyDescriptors(value);\n const proto = Object.getPrototypeOf(value);\n const isClass = proto !== null && value !== null && typeof value === \"object\" && !Array.isArray(value) && proto !== Object.prototype;\n if (isClass) {\n let curProto = proto;\n while (curProto != null) {\n const descriptors = Object.getOwnPropertyDescriptors(curProto);\n keys.push(...Object.keys(descriptors));\n Object.assign(desc, descriptors);\n curProto = Object.getPrototypeOf(curProto);\n }\n }\n for (let i = 0, l = keys.length; i < l; i++) {\n const prop = keys[i];\n if (isClass && prop === \"constructor\") continue;\n if (desc[prop].get) {\n const get = desc[prop].get.bind(p);\n Object.defineProperty(value, prop, {\n get,\n configurable: true\n });\n }\n if (desc[prop].set) {\n const og = desc[prop].set,\n set = v => batch(() => og.call(p, v));\n Object.defineProperty(value, prop, {\n set,\n configurable: true\n });\n }\n }\n }\n return p;\n}\nfunction createMutable(state, options) {\n const unwrappedStore = unwrap(state || {});\n const wrappedStore = wrap(unwrappedStore);\n return wrappedStore;\n}\nfunction modifyMutable(state, modifier) {\n batch(() => modifier(unwrap(state)));\n}\n\nconst $ROOT = Symbol(\"store-root\");\nfunction applyState(target, parent, property, merge, key) {\n const previous = parent[property];\n if (target === previous) return;\n const isArray = Array.isArray(target);\n if (property !== $ROOT && (!isWrappable(target) || !isWrappable(previous) || isArray !== Array.isArray(previous) || key && target[key] !== previous[key])) {\n setProperty(parent, property, target);\n return;\n }\n if (isArray) {\n if (target.length && previous.length && (!merge || key && target[0] && target[0][key] != null)) {\n let i, j, start, end, newEnd, item, newIndicesNext, keyVal;\n for (start = 0, end = Math.min(previous.length, target.length); start < end && (previous[start] === target[start] || key && previous[start] && target[start] && previous[start][key] && previous[start][key] === target[start][key]); start++) {\n applyState(target[start], previous, start, merge, key);\n }\n const temp = new Array(target.length),\n newIndices = new Map();\n for (end = previous.length - 1, newEnd = target.length - 1; end >= start && newEnd >= start && (previous[end] === target[newEnd] || key && previous[end] && target[newEnd] && previous[end][key] && previous[end][key] === target[newEnd][key]); end--, newEnd--) {\n temp[newEnd] = previous[end];\n }\n if (start > newEnd || start > end) {\n for (j = start; j <= newEnd; j++) setProperty(previous, j, target[j]);\n for (; j < target.length; j++) {\n setProperty(previous, j, temp[j]);\n applyState(target[j], previous, j, merge, key);\n }\n if (previous.length > target.length) setProperty(previous, \"length\", target.length);\n return;\n }\n newIndicesNext = new Array(newEnd + 1);\n for (j = newEnd; j >= start; j--) {\n item = target[j];\n keyVal = key && item ? item[key] : item;\n i = newIndices.get(keyVal);\n newIndicesNext[j] = i === undefined ? -1 : i;\n newIndices.set(keyVal, j);\n }\n for (i = start; i <= end; i++) {\n item = previous[i];\n keyVal = key && item ? item[key] : item;\n j = newIndices.get(keyVal);\n if (j !== undefined && j !== -1) {\n temp[j] = previous[i];\n j = newIndicesNext[j];\n newIndices.set(keyVal, j);\n }\n }\n for (j = start; j < target.length; j++) {\n if (j in temp) {\n setProperty(previous, j, temp[j]);\n applyState(target[j], previous, j, merge, key);\n } else setProperty(previous, j, target[j]);\n }\n } else {\n for (let i = 0, len = target.length; i < len; i++) {\n applyState(target[i], previous, i, merge, key);\n }\n }\n if (previous.length > target.length) setProperty(previous, \"length\", target.length);\n return;\n }\n const targetKeys = Object.keys(target);\n for (let i = 0, len = targetKeys.length; i < len; i++) {\n applyState(target[targetKeys[i]], previous, targetKeys[i], merge, key);\n }\n const previousKeys = Object.keys(previous);\n for (let i = 0, len = previousKeys.length; i < len; i++) {\n if (target[previousKeys[i]] === undefined) setProperty(previous, previousKeys[i], undefined);\n }\n}\nfunction reconcile(value, options = {}) {\n const {\n merge,\n key = \"id\"\n } = options,\n v = unwrap(value);\n return state => {\n if (!isWrappable(state) || !isWrappable(v)) return v;\n const res = applyState(v, {\n [$ROOT]: state\n }, $ROOT, merge, key);\n return res === undefined ? state : res;\n };\n}\nconst producers = new WeakMap();\nconst setterTraps = {\n get(target, property) {\n if (property === $RAW) return target;\n const value = target[property];\n let proxy;\n return isWrappable(value) ? producers.get(value) || (producers.set(value, proxy = new Proxy(value, setterTraps)), proxy) : value;\n },\n set(target, property, value) {\n setProperty(target, property, unwrap(value));\n return true;\n },\n deleteProperty(target, property) {\n setProperty(target, property, undefined, true);\n return true;\n }\n};\nfunction produce(fn) {\n return state => {\n if (isWrappable(state)) {\n let proxy;\n if (!(proxy = producers.get(state))) {\n producers.set(state, proxy = new Proxy(state, setterTraps));\n }\n fn(proxy);\n }\n return state;\n };\n}\n\nconst DEV = undefined;\n\nexport { $RAW, DEV, createMutable, createStore, modifyMutable, produce, reconcile, unwrap };\n", "import {onCleanup} from \"solid-js\"\nimport type {\n\tDoc,\n\tDocHandle,\n\tDocHandleChangePayload,\n} from \"@automerge/automerge-repo/slim\"\nimport autoproduce from \"./autoproduce.ts\"\nimport {createStore, produce, reconcile, type Store} from \"solid-js/store\"\n\nconst cache = new WeakMap<\n\tDocHandle<unknown>,\n\t{\n\t\trefs: number\n\t\tstore: Store<Doc<unknown>>\n\t\tcleanup(): void\n\t}\n>()\n\n/**\n * make a fine-grained live view of a document from its handle.\n * @param handle an Automerge\n * [DocHandle](https://automerge.org/automerge-repo/classes/_automerge_automerge_repo.DocHandle.html)\n */\nexport default function makeDocumentProjection<T extends object>(\n\thandle: DocHandle<T>\n): Doc<T> {\n\tonCleanup(() => {\n\t\tconst item = cache.get(handle)!\n\t\tif (!item) return\n\t\tif (!item.refs--) {\n\t\t\titem.cleanup()\n\t\t}\n\t})\n\n\tif (cache.has(handle)) {\n\t\tconst item = cache.get(handle)!\n\t\titem.refs++\n\t\treturn item.store as Doc<T>\n\t}\n\n\tconst [doc, set] = createStore<Doc<T>>(handle.doc()!)\n\n\tcache.set(handle, {\n\t\trefs: 0,\n\t\tstore: doc,\n\t\tcleanup() {\n\t\t\thandle.off(\"change\", patch)\n\t\t\thandle.off(\"delete\", ondelete)\n\t\t\tcache.delete(handle)\n\t\t},\n\t})\n\n\tfunction patch(payload: DocHandleChangePayload<T>) {\n\t\t// `scopeReplaced` means the change landed at or above this (sub-)handle's\n\t\t// scope boundary, so it can't be expressed as in-scope patches. The\n\t\t// payload still carries `doc` \u2014 the new value at the handle's path (the\n\t\t// part of the store this scope points at) \u2014 so we reconcile against that\n\t\t// instead of applying patches. `reconcile` structurally diffs it against\n\t\t// the current store, so unchanged subtrees keep their identity and only\n\t\t// the parts that actually changed notify. `doc` is undefined when the\n\t\t// scope was removed entirely.\n\t\tif (payload.scopeReplaced) {\n\t\t\tset(reconcile((payload.doc ?? {}) as Doc<T>))\n\t\t\treturn\n\t\t}\n\t\tset(produce(autoproduce(payload)))\n\t}\n\n\tfunction ondelete() {\n\t\tset(reconcile({} as Doc<T>))\n\t}\n\n\thandle.on(\"change\", patch)\n\thandle.on(\"delete\", ondelete)\n\n\thandle.whenReady().then(() => {\n\t\tset(handle.doc()!)\n\t})\n\n\treturn doc\n}\n", "import { getOwner, onCleanup, createSignal, untrack, sharedConfig, onMount, DEV, equalFn, } from \"solid-js\";\nimport { isServer } from \"solid-js/web\";\nexport * from \"./types.js\";\n//\n// GENERAL HELPERS:\n//\nexport { isServer };\nexport const isClient = !isServer;\nexport const isDev = isClient && !!DEV;\nexport const isProd = !isDev;\n/** no operation */\nexport const noop = (() => void 0);\nexport const trueFn = () => true;\nexport const falseFn = () => false;\n/** @deprecated use {@link equalFn} from \"solid-js\" */\nexport const defaultEquals = equalFn;\nexport const EQUALS_FALSE_OPTIONS = { equals: false };\nexport const INTERNAL_OPTIONS = { internal: true };\n/**\n * Check if the value is an instance of ___\n */\nexport const ofClass = (v, c) => v instanceof c || (v && v.constructor === c);\n/** Check if value is typeof \"object\" or \"function\" */\nexport function isObject(value) {\n return value !== null && (typeof value === \"object\" || typeof value === \"function\");\n}\nexport const isNonNullable = (i) => i != null;\nexport const filterNonNullable = (arr) => arr.filter(isNonNullable);\nexport const compare = (a, b) => (a < b ? -1 : a > b ? 1 : 0);\n/**\n * Check shallow array equality\n */\nexport const arrayEquals = (a, b) => a === b || (a.length === b.length && a.every((e, i) => e === b[i]));\n/**\n * Returns a function that will call all functions in the order they were chained with the same arguments.\n */\nexport function chain(callbacks) {\n return (...args) => {\n for (const callback of callbacks)\n callback && callback(...args);\n };\n}\n/**\n * Returns a function that will call all functions in the reversed order with the same arguments.\n */\nexport function reverseChain(callbacks) {\n return (...args) => {\n for (let i = callbacks.length - 1; i >= 0; i--) {\n const callback = callbacks[i];\n callback && callback(...args);\n }\n };\n}\nexport const clamp = (n, min, max) => Math.min(Math.max(n, min), max);\n/**\n * Accesses the value of a MaybeAccessor\n * @example\n * ```ts\n * access(\"foo\") // => \"foo\"\n * access(() => \"foo\") // => \"foo\"\n * ```\n */\nexport const access = (v) => typeof v === \"function\" && !v.length ? v() : v;\nexport const asArray = (value) => Array.isArray(value) ? value : value ? [value] : [];\n/**\n * Access an array of MaybeAccessors\n * @example\n * const list = [1, 2, () => 3)] // T: MaybeAccessor<number>[]\n * const newList = accessArray(list) // T: number[]\n */\nexport const accessArray = (list) => list.map(v => access(v));\n/**\n * Run the function if the accessed value is not `undefined` nor `null`\n * @param value\n * @param fn\n */\nexport const withAccess = (value, fn) => {\n const _value = access(value);\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n typeof _value != null && fn(_value);\n};\nexport const asAccessor = (v) => (typeof v === \"function\" ? v : () => v);\n/** If value is a function \u2013 call it with a given arguments \u2013 otherwise get the value as is */\nexport function accessWith(valueOrFn, ...args) {\n return typeof valueOrFn === \"function\" ? valueOrFn(...args) : valueOrFn;\n}\nexport function defer(deps, fn, initialValue) {\n const isArray = Array.isArray(deps);\n let prevInput;\n let shouldDefer = true;\n return prevValue => {\n let input;\n if (isArray) {\n input = Array(deps.length);\n for (let i = 0; i < deps.length; i++)\n input[i] = deps[i]();\n }\n else\n input = deps();\n if (shouldDefer) {\n shouldDefer = false;\n prevInput = input;\n return initialValue;\n }\n const result = untrack(() => fn(input, prevInput, prevValue));\n prevInput = input;\n return result;\n };\n}\n/**\n * Get entries of an object\n */\nexport const entries = Object.entries;\n/**\n * Get keys of an object\n */\nexport const keys = Object.keys;\n/**\n * Solid's `onCleanup` that doesn't warn in development if used outside of a component.\n */\nexport const tryOnCleanup = isDev\n ? fn => (getOwner() ? onCleanup(fn) : fn)\n : onCleanup;\nexport const createCallbackStack = () => {\n let stack = [];\n const clear = () => (stack = []);\n return {\n push: (...callbacks) => stack.push(...callbacks),\n execute(arg0, arg1, arg2, arg3) {\n stack.forEach(cb => cb(arg0, arg1, arg2, arg3));\n clear();\n },\n clear,\n };\n};\n/**\n * Group synchronous function calls.\n * @param fn\n * @returns `fn`\n */\nexport function createMicrotask(fn) {\n let calls = 0;\n let args;\n onCleanup(() => (calls = 0));\n return (...a) => {\n (args = a), calls++;\n queueMicrotask(() => --calls === 0 && fn(...args));\n };\n}\n/**\n * A hydratable version of the {@link createSignal}. It will use the serverValue on the server and the update function on the client. If initialized during hydration it will use serverValue as the initial value and update it once hydration is complete.\n *\n * @param serverValue initial value of the state on the server\n * @param update called once on the client or on hydration to initialize the value\n * @param options {@link SignalOptions}\n * @returns\n * ```ts\n * [state: Accessor<T>, setState: Setter<T>]\n * ```\n * @see {@link createSignal}\n */\nexport function createHydratableSignal(serverValue, update, options) {\n if (isServer) {\n return createSignal(serverValue, options);\n }\n if (sharedConfig.context) {\n const [state, setState] = createSignal(serverValue, options);\n onMount(() => setState(() => update()));\n return [state, setState];\n }\n return createSignal(update(), options);\n}\n/** @deprecated use {@link createHydratableSignal} instead */\nexport const createHydrateSignal = createHydratableSignal;\n/**\n * Handle items removed and added to the array by diffing it by refference.\n *\n * @param current new array instance\n * @param prev previous array copy\n * @param handleAdded called once for every added item to array\n * @param handleRemoved called once for every removed from array\n */\nexport function handleDiffArray(current, prev, handleAdded, handleRemoved) {\n const currLength = current.length;\n const prevLength = prev.length;\n let i = 0;\n if (!prevLength) {\n for (; i < currLength; i++)\n handleAdded(current[i]);\n return;\n }\n if (!currLength) {\n for (; i < prevLength; i++)\n handleRemoved(prev[i]);\n return;\n }\n for (; i < prevLength; i++) {\n if (prev[i] !== current[i])\n break;\n }\n let prevEl;\n let currEl;\n prev = prev.slice(i);\n current = current.slice(i);\n for (prevEl of prev) {\n if (!current.includes(prevEl))\n handleRemoved(prevEl);\n }\n for (currEl of current) {\n if (!prev.includes(currEl))\n handleAdded(currEl);\n }\n}\n// \u2500\u2500\u2500 String transforms \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n/**\n * Parse a string as a single JSON value.\n *\n * ```ts\n * const { data } = createSSE<{ status: string }>(url, { transform: json });\n * ```\n */\nexport const json = (raw) => JSON.parse(raw);\n/**\n * Parse a string as newline-delimited JSON (NDJSON / JSON Lines).\n *\n * Each non-empty line is parsed as a separate JSON value and returned as an array.\n *\n * ```ts\n * const { data } = createSSE<TickEvent[]>(url, { transform: ndjson });\n * // data() === [{ id: 1, type: \"tick\" }, { id: 2, type: \"tick\" }]\n * ```\n */\nexport const ndjson = (raw) => raw\n .split(\"\\n\")\n .filter(line => line !== \"\")\n .map(line => JSON.parse(line));\n/**\n * Split a string into individual lines, returning a `string[]`. Empty lines are filtered out.\n *\n * ```ts\n * const { data } = createSSE<string[]>(url, { transform: lines });\n * // data() === [\"line one\", \"line two\"]\n * ```\n */\nexport const lines = (raw) => raw.split(\"\\n\").filter(line => line !== \"\");\n/**\n * Parse a string as a number using `Number()` semantics.\n *\n * Note: `\"\"` \u2192 `0`, non-numeric strings \u2192 `NaN`.\n *\n * ```ts\n * const { data } = createSSE<number>(url, { transform: number });\n * // data() === 42\n * ```\n */\nexport const number = (raw) => Number(raw);\nexport function safe(transform, fallback) {\n return (raw) => {\n try {\n return transform(raw);\n }\n catch {\n return fallback;\n }\n };\n}\n/**\n * Compose two transforms into one: the output of `a` is passed as the input of `b`.\n *\n * ```ts\n * const { data } = createSSE<RawEvent[]>(url, {\n * transform: pipe(ndjson<RawEvent>, rows => rows.filter(r => r.type === \"tick\")),\n * });\n * ```\n */\nexport function pipe(a, b) {\n return (raw) => b(a(raw));\n}\n", "import {createMemo, type Accessor} from \"solid-js\"\nimport {type DocHandle, type Doc} from \"@automerge/automerge-repo/slim\"\nimport makeDocumentProjection from \"./makeDocumentProjection.ts\"\nimport {access} from \"@solid-primitives/utils\"\n\n/**\n * get a fine-grained live view of a document from a handle. works with\n * {@link useDocHandle}.\n * @param handle an accessor (signal/resource) of a\n * [DocHandle](https://automerge.org/automerge-repo/classes/_automerge_automerge_repo.DocHandle.html)\n */\nexport default function createDocumentProjection<T extends object>(\n\thandle: Accessor<DocHandle<T> | undefined>\n): Accessor<Doc<T> | undefined> {\n\tconst projection = createMemo<Doc<T> | undefined>(\n\t\t() => access(handle) && makeDocumentProjection<T>(access(handle)!)\n\t)\n\treturn projection\n}\n", "import type {Repo} from \"@automerge/automerge-repo/slim\"\nimport {createContext, type Context} from \"solid-js\"\n\n/**\n * a [context](https://docs.solidjs.com/concepts/context) that provides access\n * to an Automerge Repo. you don't need this, you can pass the repo in the\n * second arg to the functions that need it.\n */\nexport const RepoContext: Context<Repo | null> = createContext<Repo | null>(\n\tnull\n)\n", "import type {AutomergeUrl, DocHandle} from \"@automerge/automerge-repo/slim\"\nimport {createEffect, createResource, useContext, type Resource} from \"solid-js\"\nimport {access, type MaybeAccessor} from \"@solid-primitives/utils\"\nimport {RepoContext} from \"./context.ts\"\nimport type {UseDocHandleOptions} from \"./types.ts\"\n\n/**\n * get a\n * [DocHandle](https://automerge.org/automerge-repo/classes/_automerge_automerge_repo.DocHandle.html)\n * from an\n * [AutomergeUrl](https://automerge.org/automerge-repo/types/_automerge_automerge_repo.AutomergeUrl.html)\n * as a\n * [Resource](https://docs.solidjs.com/reference/basic-reactivity/create-resource).\n * Waits for the handle to be ready.\n */\nexport default function useDocHandle<T>(\n\turl: MaybeAccessor<AutomergeUrl | undefined>,\n\toptions?: UseDocHandleOptions\n): Resource<DocHandle<T> | undefined> {\n\tconst contextRepo = useContext(RepoContext)\n\n\tif (!options?.repo && !contextRepo) {\n\t\tthrow new Error(\"use outside <RepoContext> requires options.repo\")\n\t}\n\n\tconst repo = (options?.repo || contextRepo)!\n\n\tfunction getExistingHandle() {\n\t\tif (options?.[\"~skipInitialValue\"]) return undefined\n\t\tconst unwrappedURL = access(url)\n\t\tif (!unwrappedURL) return undefined\n\t\tconst state = repo.findWithProgress<T>(unwrappedURL).peek()\n\t\treturn state.state === \"ready\" ? state.handle : undefined\n\t}\n\n\tconst [handle, {mutate}] = createResource(\n\t\turl,\n\t\turl => repo.findWithProgress<T>(url).whenReady(),\n\t\t{\n\t\t\tinitialValue: getExistingHandle(),\n\t\t}\n\t)\n\n\tcreateEffect(() => {\n\t\tif (!access(url)) {\n\t\t\tmutate()\n\t\t}\n\t})\n\n\treturn handle\n}\n", "import type {AutomergeUrl, Doc, DocHandle} from \"@automerge/automerge-repo/slim\"\nimport createDocumentProjection from \"./createDocumentProjection.ts\"\nimport type {MaybeAccessor} from \"@solid-primitives/utils\"\nimport useDocHandle from \"./useDocHandle.ts\"\nimport type {UseDocHandleOptions} from \"./types.ts\"\nimport type {Accessor, Resource} from \"solid-js\"\n\n/**\n * get a fine-grained live view of a document, and its handle, from a URL.\n * @param url a function that returns a url\n */\nexport default function useDocument<T extends object>(\n\turl: MaybeAccessor<AutomergeUrl | undefined>,\n\toptions?: UseDocHandleOptions\n): [Accessor<Doc<T> | undefined>, Resource<DocHandle<T> | undefined>] {\n\tconst handle = useDocHandle<T>(url, options)\n\treturn [createDocumentProjection<T>(handle), handle] as const\n}\n", "import {\n AutomergeUrl,\n isValidAutomergeUrl,\n parseAutomergeUrl,\n} from \"@automerge/automerge-repo/slim\";\n\n/**\n * Convert an automerge URL to an Account Token that the user can\n * paste in to login on another device.\n * The doc ID is the only part of the URL actually used by the system,\n * the rest is just for humans to understand what this string is for.\n */\nexport function automergeUrlToAccountToken(\n url: AutomergeUrl,\n name: string\n): string {\n const { documentId } = parseAutomergeUrl(url);\n return `account:${encodeURIComponent(name)}/${documentId}`;\n}\n\n/**\n * Parse an account token back to an automerge URL.\n * Returns undefined if the token can't be parsed as an automerge URL.\n */\nexport function accountTokenToAutomergeUrl(\n token: string\n): AutomergeUrl | undefined {\n const match = token.match(/^account:([^/]+)\\/(.+)$/);\n if (!match || !match[2]) {\n return undefined;\n }\n const documentId = match[2];\n const url = `automerge:${documentId}`;\n if (!isValidAutomergeUrl(url)) {\n return undefined;\n }\n return url as AutomergeUrl;\n}\n", "import { template as _$template } from \"solid-js/web\";\nimport { insert as _$insert } from \"solid-js/web\";\nimport { spread as _$spread } from \"solid-js/web\";\nimport { mergeProps as _$mergeProps } from \"solid-js/web\";\nvar _tmpl$ = /*#__PURE__*/_$template(`<button>`);\nimport { splitProps } from \"solid-js\";\nexport function Button(props) {\n const [local, rest] = splitProps(props, [\"class\", \"variant\", \"children\"]);\n const variant = () => local.variant ?? \"default\";\n return (() => {\n var _el$ = _tmpl$();\n _$spread(_el$, _$mergeProps({\n get [\"class\"]() {\n return `btn ${variant()}${local.class ? \" \" + local.class : \"\"}`;\n }\n }, rest), false, true);\n _$insert(_el$, () => local.children);\n return _el$;\n })();\n}", "import { template as _$template } from \"solid-js/web\";\nimport { delegateEvents as _$delegateEvents } from \"solid-js/web\";\nimport { setAttribute as _$setAttribute } from \"solid-js/web\";\nimport { className as _$className } from \"solid-js/web\";\nimport { insert as _$insert } from \"solid-js/web\";\nimport { createComponent as _$createComponent } from \"solid-js/web\";\nimport { setStyleProperty as _$setStyleProperty } from \"solid-js/web\";\nimport { effect as _$effect } from \"solid-js/web\";\nvar _tmpl$ = /*#__PURE__*/_$template(`<button type=button class=color-trigger>`),\n _tmpl$2 = /*#__PURE__*/_$template(`<div class=color-popup><div class=color-grid><label class=\"color-swatch color-swatch-custom\"title=\"Custom color\"><input type=color>`),\n _tmpl$3 = /*#__PURE__*/_$template(`<svg class=icon-check viewBox=\"0 0 24 24\"fill=none stroke=currentColor stroke-width=3 stroke-linecap=round stroke-linejoin=round><polyline points=\"20 6 9 17 4 12\">`),\n _tmpl$4 = /*#__PURE__*/_$template(`<button type=button>`);\nimport { createSignal, For, Show } from \"solid-js\";\nimport { USER_COLOR_PALETTE, parseHslColor } from \"../../user-colors\";\nfunction hslToHex(hsl) {\n const parsed = parseHslColor(hsl);\n if (!parsed) return \"#3b82f6\";\n const {\n h,\n s,\n l\n } = parsed;\n const hN = h / 360;\n const sN = s / 100;\n const lN = l / 100;\n const hue2rgb = (p, q, t) => {\n if (t < 0) t += 1;\n if (t > 1) t -= 1;\n if (t < 1 / 6) return p + (q - p) * 6 * t;\n if (t < 1 / 2) return q;\n if (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6;\n return p;\n };\n let r, g, b;\n if (sN === 0) {\n r = g = b = lN;\n } else {\n const q = lN < 0.5 ? lN * (1 + sN) : lN + sN - lN * sN;\n const p = 2 * lN - q;\n r = hue2rgb(p, q, hN + 1 / 3);\n g = hue2rgb(p, q, hN);\n b = hue2rgb(p, q, hN - 1 / 3);\n }\n const hex = c => Math.round(c * 255).toString(16).padStart(2, \"0\");\n return `#${hex(r)}${hex(g)}${hex(b)}`;\n}\nexport function ColorPicker(props) {\n const [open, setOpen] = createSignal(false);\n const currentColor = () => props.value || USER_COLOR_PALETTE[0].value;\n const inputValue = () => {\n const v = currentColor();\n return v.startsWith(\"#\") ? v : hslToHex(v);\n };\n return [(() => {\n var _el$ = _tmpl$();\n _el$.$$click = e => {\n e.stopPropagation();\n setOpen(!open());\n };\n _$effect(_$p => _$setStyleProperty(_el$, \"background-color\", currentColor()));\n return _el$;\n })(), _$createComponent(Show, {\n get when() {\n return open();\n },\n get children() {\n var _el$2 = _tmpl$2(),\n _el$3 = _el$2.firstChild,\n _el$4 = _el$3.firstChild,\n _el$5 = _el$4.firstChild;\n _$insert(_el$3, _$createComponent(For, {\n get each() {\n return [...USER_COLOR_PALETTE];\n },\n children: color => (() => {\n var _el$6 = _tmpl$4();\n _el$6.$$click = () => {\n props.onChange(color.value);\n setOpen(false);\n };\n _$insert(_el$6, _$createComponent(Show, {\n get when() {\n return props.value === color.value;\n },\n get children() {\n return _tmpl$3();\n }\n }));\n _$effect(_p$ => {\n var _v$ = `color-swatch${props.value === color.value ? \" selected\" : \"\"}`,\n _v$2 = color.value,\n _v$3 = color.name;\n _v$ !== _p$.e && _$className(_el$6, _p$.e = _v$);\n _v$2 !== _p$.t && _$setStyleProperty(_el$6, \"background-color\", _p$.t = _v$2);\n _v$3 !== _p$.a && _$setAttribute(_el$6, \"title\", _p$.a = _v$3);\n return _p$;\n }, {\n e: undefined,\n t: undefined,\n a: undefined\n });\n return _el$6;\n })()\n }), _el$4);\n _el$5.$$input = e => props.onChange(e.currentTarget.value);\n _$effect(() => _el$5.value = inputValue());\n return _el$2;\n }\n })];\n}\n_$delegateEvents([\"click\", \"input\"]);", "import { template as _$template } from \"solid-js/web\";\nimport { spread as _$spread } from \"solid-js/web\";\nimport { mergeProps as _$mergeProps } from \"solid-js/web\";\nvar _tmpl$ = /*#__PURE__*/_$template(`<input>`);\nimport { splitProps } from \"solid-js\";\nexport function Input(props) {\n const [local, rest] = splitProps(props, [\"class\", \"type\"]);\n return (() => {\n var _el$ = _tmpl$();\n _$spread(_el$, _$mergeProps({\n get type() {\n return local.type;\n },\n get [\"class\"]() {\n return `input${local.class ? \" \" + local.class : \"\"}`;\n }\n }, rest), false, false);\n return _el$;\n })();\n}", "import { template as _$template } from \"solid-js/web\";\nimport { insert as _$insert } from \"solid-js/web\";\nimport { spread as _$spread } from \"solid-js/web\";\nimport { mergeProps as _$mergeProps } from \"solid-js/web\";\nvar _tmpl$ = /*#__PURE__*/_$template(`<label>`);\nimport { splitProps } from \"solid-js\";\nexport function Label(props) {\n const [local, rest] = splitProps(props, [\"class\", \"children\"]);\n return (() => {\n var _el$ = _tmpl$();\n _$spread(_el$, _$mergeProps({\n get [\"class\"]() {\n return `label${local.class ? \" \" + local.class : \"\"}`;\n }\n }, rest), false, true);\n _$insert(_el$, () => local.children);\n return _el$;\n })();\n}", "// src/tabs/tabs-keyboard-delegate.ts\nvar TabsKeyboardDelegate = class {\n collection;\n direction;\n orientation;\n constructor(collection, direction, orientation) {\n this.collection = collection;\n this.direction = direction;\n this.orientation = orientation;\n }\n flipDirection() {\n return this.direction() === \"rtl\" && this.orientation() === \"horizontal\";\n }\n getKeyLeftOf(key) {\n if (this.flipDirection()) {\n return this.getNextKey(key);\n }\n if (this.orientation() === \"horizontal\") {\n return this.getPreviousKey(key);\n }\n return void 0;\n }\n getKeyRightOf(key) {\n if (this.flipDirection()) {\n return this.getPreviousKey(key);\n }\n if (this.orientation() === \"horizontal\") {\n return this.getNextKey(key);\n }\n return void 0;\n }\n getKeyAbove(key) {\n if (this.orientation() === \"vertical\") {\n return this.getPreviousKey(key);\n }\n return void 0;\n }\n getKeyBelow(key) {\n if (this.orientation() === \"vertical\") {\n return this.getNextKey(key);\n }\n return void 0;\n }\n getFirstKey() {\n let key = this.collection().getFirstKey();\n if (key == null) {\n return;\n }\n const item = this.collection().getItem(key);\n if (item?.disabled) {\n key = this.getNextKey(key);\n }\n return key;\n }\n getLastKey() {\n let key = this.collection().getLastKey();\n if (key == null) {\n return;\n }\n const item = this.collection().getItem(key);\n if (item?.disabled) {\n key = this.getPreviousKey(key);\n }\n return key;\n }\n getNextKey(key) {\n let nextKey = key;\n let nextItem;\n do {\n nextKey = this.collection().getKeyAfter(nextKey) ?? this.collection().getFirstKey();\n if (nextKey == null) {\n return;\n }\n nextItem = this.collection().getItem(nextKey);\n if (nextItem == null) {\n return;\n }\n } while (nextItem.disabled);\n return nextKey;\n }\n getPreviousKey(key) {\n let previousKey = key;\n let previousItem;\n do {\n previousKey = this.collection().getKeyBefore(previousKey) ?? this.collection().getLastKey();\n if (previousKey == null) {\n return;\n }\n previousItem = this.collection().getItem(previousKey);\n if (previousItem == null) {\n return;\n }\n } while (previousItem.disabled);\n return previousKey;\n }\n};\n\nexport { TabsKeyboardDelegate };\n", "import { getOwner, onCleanup, createSignal, untrack, sharedConfig, onMount, DEV, equalFn, } from \"solid-js\";\nimport { isServer } from \"solid-js/web\";\nexport * from \"./types.js\";\n//\n// GENERAL HELPERS:\n//\nexport { isServer };\nexport const isClient = !isServer;\nexport const isDev = isClient && !!DEV;\nexport const isProd = !isDev;\n/** no operation */\nexport const noop = (() => void 0);\nexport const trueFn = () => true;\nexport const falseFn = () => false;\n/** @deprecated use {@link equalFn} from \"solid-js\" */\nexport const defaultEquals = equalFn;\nexport const EQUALS_FALSE_OPTIONS = { equals: false };\nexport const INTERNAL_OPTIONS = { internal: true };\n/**\n * Check if the value is an instance of ___\n */\nexport const ofClass = (v, c) => v instanceof c || (v && v.constructor === c);\n/** Check if value is typeof \"object\" or \"function\" */\nexport function isObject(value) {\n return value !== null && (typeof value === \"object\" || typeof value === \"function\");\n}\nexport const isNonNullable = (i) => i != null;\nexport const filterNonNullable = (arr) => arr.filter(isNonNullable);\nexport const compare = (a, b) => (a < b ? -1 : a > b ? 1 : 0);\n/**\n * Check shallow array equality\n */\nexport const arrayEquals = (a, b) => a === b || (a.length === b.length && a.every((e, i) => e === b[i]));\n/**\n * Returns a function that will call all functions in the order they were chained with the same arguments.\n */\nexport function chain(callbacks) {\n return (...args) => {\n for (const callback of callbacks)\n callback && callback(...args);\n };\n}\n/**\n * Returns a function that will call all functions in the reversed order with the same arguments.\n */\nexport function reverseChain(callbacks) {\n return (...args) => {\n for (let i = callbacks.length - 1; i >= 0; i--) {\n const callback = callbacks[i];\n callback && callback(...args);\n }\n };\n}\nexport const clamp = (n, min, max) => Math.min(Math.max(n, min), max);\n/**\n * Accesses the value of a MaybeAccessor\n * @example\n * ```ts\n * access(\"foo\") // => \"foo\"\n * access(() => \"foo\") // => \"foo\"\n * ```\n */\nexport const access = (v) => typeof v === \"function\" && !v.length ? v() : v;\nexport const asArray = (value) => Array.isArray(value) ? value : value ? [value] : [];\n/**\n * Access an array of MaybeAccessors\n * @example\n * const list = [1, 2, () => 3)] // T: MaybeAccessor<number>[]\n * const newList = accessArray(list) // T: number[]\n */\nexport const accessArray = (list) => list.map(v => access(v));\n/**\n * Run the function if the accessed value is not `undefined` nor `null`\n * @param value\n * @param fn\n */\nexport const withAccess = (value, fn) => {\n const _value = access(value);\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n typeof _value != null && fn(_value);\n};\nexport const asAccessor = (v) => (typeof v === \"function\" ? v : () => v);\n/** If value is a function \u2013 call it with a given arguments \u2013 otherwise get the value as is */\nexport function accessWith(valueOrFn, ...args) {\n return typeof valueOrFn === \"function\" ? valueOrFn(...args) : valueOrFn;\n}\nexport function defer(deps, fn, initialValue) {\n const isArray = Array.isArray(deps);\n let prevInput;\n let shouldDefer = true;\n return prevValue => {\n let input;\n if (isArray) {\n input = Array(deps.length);\n for (let i = 0; i < deps.length; i++)\n input[i] = deps[i]();\n }\n else\n input = deps();\n if (shouldDefer) {\n shouldDefer = false;\n prevInput = input;\n return initialValue;\n }\n const result = untrack(() => fn(input, prevInput, prevValue));\n prevInput = input;\n return result;\n };\n}\n/**\n * Get entries of an object\n */\nexport const entries = Object.entries;\n/**\n * Get keys of an object\n */\nexport const keys = Object.keys;\n/**\n * Solid's `onCleanup` that doesn't warn in development if used outside of a component.\n */\nexport const tryOnCleanup = isDev\n ? fn => (getOwner() ? onCleanup(fn) : fn)\n : onCleanup;\nexport const createCallbackStack = () => {\n let stack = [];\n const clear = () => (stack = []);\n return {\n push: (...callbacks) => stack.push(...callbacks),\n execute(arg0, arg1, arg2, arg3) {\n stack.forEach(cb => cb(arg0, arg1, arg2, arg3));\n clear();\n },\n clear,\n };\n};\n/**\n * Group synchronous function calls.\n * @param fn\n * @returns `fn`\n */\nexport function createMicrotask(fn) {\n let calls = 0;\n let args;\n onCleanup(() => (calls = 0));\n return (...a) => {\n (args = a), calls++;\n queueMicrotask(() => --calls === 0 && fn(...args));\n };\n}\n/**\n * A hydratable version of the {@link createSignal}. It will use the serverValue on the server and the update function on the client. If initialized during hydration it will use serverValue as the initial value and update it once hydration is complete.\n *\n * @param serverValue initial value of the state on the server\n * @param update called once on the client or on hydration to initialize the value\n * @param options {@link SignalOptions}\n * @returns\n * ```ts\n * [state: Accessor<T>, setState: Setter<T>]\n * ```\n * @see {@link createSignal}\n */\nexport function createHydratableSignal(serverValue, update, options) {\n if (isServer) {\n return createSignal(serverValue, options);\n }\n if (sharedConfig.context) {\n const [state, setState] = createSignal(serverValue, options);\n onMount(() => setState(() => update()));\n return [state, setState];\n }\n return createSignal(update(), options);\n}\n/** @deprecated use {@link createHydratableSignal} instead */\nexport const createHydrateSignal = createHydratableSignal;\n/**\n * Handle items removed and added to the array by diffing it by refference.\n *\n * @param current new array instance\n * @param prev previous array copy\n * @param handleAdded called once for every added item to array\n * @param handleRemoved called once for every removed from array\n */\nexport function handleDiffArray(current, prev, handleAdded, handleRemoved) {\n const currLength = current.length;\n const prevLength = prev.length;\n let i = 0;\n if (!prevLength) {\n for (; i < currLength; i++)\n handleAdded(current[i]);\n return;\n }\n if (!currLength) {\n for (; i < prevLength; i++)\n handleRemoved(prev[i]);\n return;\n }\n for (; i < prevLength; i++) {\n if (prev[i] !== current[i])\n break;\n }\n let prevEl;\n let currEl;\n prev = prev.slice(i);\n current = current.slice(i);\n for (prevEl of prev) {\n if (!current.includes(prevEl))\n handleRemoved(prevEl);\n }\n for (currEl of current) {\n if (!prev.includes(currEl))\n handleAdded(currEl);\n }\n}\n", "import { access, asArray, tryOnCleanup, } from \"@solid-primitives/utils\";\nimport { createEffect, createRenderEffect, createSignal } from \"solid-js\";\nimport { isServer } from \"solid-js/web\";\nexport function makeEventListener(target, type, handler, options) {\n target.addEventListener(type, handler, options);\n return tryOnCleanup(target.removeEventListener.bind(target, type, handler, options));\n}\nexport function createEventListener(targets, type, handler, options) {\n if (isServer)\n return;\n const attachListeners = () => {\n asArray(access(targets)).forEach(el => {\n if (el)\n asArray(access(type)).forEach(type => makeEventListener(el, type, handler, options));\n });\n };\n // if the target is an accessor the listeners will be added on the first effect (onMount)\n // so that when passed a jsx ref it will be availabe\n if (typeof targets === \"function\")\n createEffect(attachListeners);\n // if the target prop is NOT an accessor, the event listeners can be added right away\n else\n createRenderEffect(attachListeners);\n}\nexport function createEventSignal(target, type, options) {\n if (isServer) {\n return () => undefined;\n }\n const [lastEvent, setLastEvent] = createSignal();\n createEventListener(target, type, setLastEvent, options);\n return lastEvent;\n}\n/**\n * Directive Usage. Creates an event listener, that will be automatically disposed on cleanup.\n *\n * @param props [eventType, handler, options]\n *\n * @example\n * <button use:eventListener={[\"click\", () => {...}]}>Click me!</button>\n */\nexport const eventListener = (target, props) => {\n createEffect(() => {\n const [type, handler, options] = props();\n makeEventListener(target, type, handler, options);\n });\n};\n// // /* TypeCheck */\n// const mouseHandler = (e: MouseEvent) => {};\n// const touchHandler = (e: TouchEvent) => {};\n// const el = document.createElement(\"div\");\n// // dom events\n// createEventListener(window as Window | undefined, \"mousemove\", mouseHandler);\n// createEventListener(document, \"touchstart\", touchHandler);\n// createEventListener(el, \"mousemove\", mouseHandler);\n// createEventListener(() => el, \"touchstart\", touchHandler);\n// const mouseSignal = createEventSignal(window, \"mousemove\");\n// const touchSignal = createEventSignal(() => document, \"touchstart\");\n// // custom events\n// createEventListener<{ test: MouseEvent }>(window, \"test\", mouseHandler);\n// createEventListener<{ test: Event; custom: MouseEvent }, \"custom\">(\n// () => el,\n// \"custom\",\n// mouseHandler\n// );\n// createEventListener<{ test: Event }>(new EventTarget(), \"test\", () => console.log(\"test\"));\n// const testSignal = createEventSignal<{ test: MouseEvent }>(window, \"test\");\n// const customSignal = createEventSignal<{ test: Event; custom: MouseEvent }, \"custom\">(\n// () => document,\n// \"custom\"\n// );\n// // directive\n// eventListener(el, () => [\"mousemove\", mouseHandler, { passive: true }]);\n// eventListener(el, () => [\"custom\", e => {}]);\n", "import { mergeProps } from \"solid-js\";\nimport { access, chain, reverseChain } from \"@solid-primitives/utils\";\nimport { propTraps } from \"./propTraps.js\";\nconst extractCSSregex = /((?:--)?(?:\\w+-?)+)\\s*:\\s*([^;]*)/g;\n/**\n * converts inline string styles to object form\n * @example\n * const styles = stringStyleToObject(\"margin: 24px; border: 1px solid #121212\");\n * styles; // { margin: \"24px\", border: \"1px solid #121212\" }\n * */\nexport function stringStyleToObject(style) {\n const object = {};\n let match;\n while ((match = extractCSSregex.exec(style))) {\n object[match[1]] = match[2];\n }\n return object;\n}\nexport function combineStyle(a, b) {\n if (typeof a === \"string\") {\n if (typeof b === \"string\")\n return `${a};${b}`;\n a = stringStyleToObject(a);\n }\n else if (typeof b === \"string\") {\n b = stringStyleToObject(b);\n }\n return { ...a, ...b };\n}\nconst reduce = (sources, key, calc) => {\n let v = undefined;\n for (const props of sources) {\n const propV = access(props)[key];\n if (!v)\n v = propV;\n else if (propV)\n v = calc(v, propV);\n }\n return v;\n};\nexport function combineProps(...args) {\n const restArgs = Array.isArray(args[0]);\n const sources = (restArgs ? args[0] : args);\n if (sources.length === 1)\n return sources[0];\n const chainFn = restArgs && args[1]?.reverseEventHandlers\n ? reverseChain\n : chain;\n // create a map of event listeners to be chained\n const listeners = {};\n for (const props of sources) {\n const propsObj = access(props);\n for (const key in propsObj) {\n // skip non event listeners\n if (key[0] === \"o\" && key[1] === \"n\" && key[2]) {\n const v = propsObj[key];\n const name = key.toLowerCase();\n const callback = typeof v === \"function\"\n ? v\n : // jsx event handlers can be tuples of [callback, arg]\n Array.isArray(v)\n ? v.length === 1\n ? v[0]\n : v[0].bind(void 0, v[1])\n : void 0;\n if (callback)\n listeners[name] ? listeners[name].push(callback) : (listeners[name] = [callback]);\n else\n delete listeners[name];\n }\n }\n }\n const merge = mergeProps(...sources);\n return new Proxy({\n get(key) {\n if (typeof key !== \"string\")\n return Reflect.get(merge, key);\n // Combine style prop\n if (key === \"style\")\n return reduce(sources, \"style\", combineStyle);\n // chain props.ref assignments\n if (key === \"ref\") {\n const callbacks = [];\n for (const props of sources) {\n const cb = access(props)[key];\n if (typeof cb === \"function\")\n callbacks.push(cb);\n }\n return chainFn(callbacks);\n }\n // Chain event listeners\n if (key[0] === \"o\" && key[1] === \"n\" && key[2]) {\n const callbacks = listeners[key.toLowerCase()];\n return callbacks ? chainFn(callbacks) : Reflect.get(merge, key);\n }\n // Merge classes or classNames\n if (key === \"class\" || key === \"className\")\n return reduce(sources, key, (a, b) => `${a} ${b}`);\n // Merge classList objects, keys in the last object overrides all previous ones.\n if (key === \"classList\")\n return reduce(sources, key, (a, b) => ({ ...a, ...b }));\n return Reflect.get(merge, key);\n },\n has(key) {\n return Reflect.has(merge, key);\n },\n keys() {\n return Object.keys(merge);\n },\n }, propTraps);\n}\n// type check\n// const com = combineProps(\n// {\n// onSomething: 123,\n// onWheel: (e: WheelEvent) => 213,\n// something: \"foo\",\n// style: { margin: \"24px\" },\n// once: true,\n// onMount: (fn: VoidFunction) => undefined\n// },\n// {\n// onSomething: [(n: number, s: string) => \"fo\", 123],\n// once: \"ovv\"\n// },\n// {\n// onWheel: false,\n// onMount: (n: number) => void 0\n// }\n// );\n// com.onSomething; // (s: string) => void;\n// com.once; // string;\n// com.onWheel; // false;\n// com.onMount; // ((fn: VoidFunction) => undefined) & ((n: number) => undefined);\n// com.something; // string;\n// com.style; // string | JSX.CSSProperties;\n", "import { chain, arrayEquals } from \"@solid-primitives/utils\";\nimport { children, createComputed, createMemo, onCleanup, untrack, } from \"solid-js\";\nimport { isServer } from \"solid-js/web\";\n/**\n * Utility for chaining multiple `ref` assignments with `props.ref` forwarding.\n * @param refs list of ref setters. Can be a `props.ref` prop for ref forwarding or a setter to a local variable (`el => ref = el`).\n * @example\n * ```tsx\n * interface ButtonProps {\n * ref?: Ref<HTMLButtonElement>\n * }\n * function Button (props: ButtonProps) {\n * let ref: HTMLButtonElement | undefined\n * onMount(() => {\n * // use the local ref\n * })\n * return <button ref={mergeRefs(props.ref, el => ref = el)} />\n * }\n *\n * // in consumer's component:\n * let ref: HTMLButtonElement | undefined\n * <Button ref={ref} />\n * ```\n */\nexport function mergeRefs(...refs) {\n return chain(refs);\n}\n/**\n * Default predicate used in `resolveElements()` and `resolveFirst()` to filter Elements.\n *\n * On the client it uses `instanceof Element` check, on the server it checks for the object with `t` property. (generated by compiling JSX)\n */\nexport const defaultElementPredicate = isServer\n ? (item) => item != null && typeof item === \"object\" && \"t\" in item\n : (item) => item instanceof Element;\n/**\n * Utility for resolving recursively nested JSX children to a single element or an array of elements using a predicate.\n *\n * It does **not** create a computation - should be wrapped in one to repeat the resolution on changes.\n *\n * @param value JSX children\n * @param predicate predicate to filter elements\n * @returns single element or an array of elements or `null` if no elements were found\n */\nexport function getResolvedElements(value, predicate) {\n if (predicate(value))\n return value;\n if (typeof value === \"function\" && !value.length)\n return getResolvedElements(value(), predicate);\n if (Array.isArray(value)) {\n const results = [];\n for (const item of value) {\n const result = getResolvedElements(item, predicate);\n if (result)\n Array.isArray(result) ? results.push.apply(results, result) : results.push(result);\n }\n return results.length ? results : null;\n }\n return null;\n}\nexport function resolveElements(fn, predicate = defaultElementPredicate, serverPredicate = defaultElementPredicate) {\n const children = createMemo(fn);\n const memo = createMemo(() => getResolvedElements(children(), isServer ? serverPredicate : predicate));\n memo.toArray = () => {\n const value = memo();\n return Array.isArray(value) ? value : value ? [value] : [];\n };\n return memo;\n}\n/**\n * Utility for resolving recursively nested JSX children in search of the first element that matches a predicate.\n *\n * It does **not** create a computation - should be wrapped in one to repeat the resolution on changes.\n *\n * @param value JSX children\n * @param predicate predicate to filter elements\n * @returns single found element or `null` if no elements were found\n */\nexport function getFirstChild(value, predicate) {\n if (predicate(value))\n return value;\n if (typeof value === \"function\" && !value.length)\n return getFirstChild(value(), predicate);\n if (Array.isArray(value)) {\n for (const item of value) {\n const result = getFirstChild(item, predicate);\n if (result)\n return result;\n }\n }\n return null;\n}\nexport function resolveFirst(fn, predicate = defaultElementPredicate, serverPredicate = defaultElementPredicate) {\n const children = createMemo(fn);\n return createMemo(() => getFirstChild(children(), isServer ? serverPredicate : predicate));\n}\n/**\n * Get up-to-date references of the multiple children elements.\n * @param ref Getter of current array of elements\n * @see https://github.com/solidjs-community/solid-primitives/tree/main/packages/refs#Refs\n * @example\n * ```tsx\n * const [refs, setRefs] = createSignal<Element[]>([]);\n * <Refs ref={setRefs}>\n * {props.children}\n * </Refs>\n * ```\n */\nexport function Refs(props) {\n if (isServer) {\n return props.children;\n }\n const cb = props.ref, resolved = children(() => props.children);\n let prev = [];\n createComputed(() => {\n const els = resolved.toArray().filter(defaultElementPredicate);\n if (!arrayEquals(prev, els))\n untrack(() => cb(els));\n prev = els;\n }, []);\n onCleanup(() => prev.length && cb([]));\n return resolved;\n}\n/**\n * Get up-to-date reference to a single child element.\n * @param ref Getter of current element *(or `undefined` if not mounted)*\n * @see https://github.com/solidjs-community/solid-primitives/tree/main/packages/refs#Ref\n * @example\n * ```tsx\n * const [ref, setRef] = createSignal<Element | undefined>();\n * <Ref ref={setRef}>\n * {props.children}\n * </Ref>\n * ```\n */\nexport function Ref(props) {\n if (isServer) {\n return props.children;\n }\n const cb = props.ref, resolved = children(() => props.children);\n let prev;\n createComputed(() => {\n const el = resolved.toArray().find(defaultElementPredicate);\n if (el !== prev)\n untrack(() => cb(el));\n prev = el;\n });\n onCleanup(() => prev && cb(undefined));\n return resolved;\n}\n", "/*\n * Portions of this file are based on code from ariakit.\n * MIT Licensed, Copyright (c) Diego Haz.\n *\n * Credits to the Ariakit team:\n * https://github.com/ariakit/ariakit/blob/da142672eddefa99365773ced72171facc06fdcb/packages/ariakit-utils/src/array.ts\n */\n\n/**\n * Immutably adds an item at the given index to an array.\n */\nexport function addItemToArray<T extends any[]>(\n\tarray: T,\n\titem: T[number],\n\tindex = -1,\n) {\n\tif (!(index in array)) {\n\t\treturn [...array, item] as T;\n\t}\n\treturn [...array.slice(0, index), item, ...array.slice(index)] as T;\n}\n\n/**\n * Immutably removes an item from an array.\n */\nexport function removeItemFromArray<T>(array: T[], item: T) {\n\tconst updatedArray = [...array];\n\tconst index = updatedArray.indexOf(item);\n\n\tif (index !== -1) {\n\t\tupdatedArray.splice(index, 1);\n\t}\n\n\treturn updatedArray;\n}\n", "/*\n * Original code by Chakra UI\n * MIT Licensed, Copyright (c) 2019 Segun Adebayo.\n *\n * Credits to the Chakra UI team:\n * https://github.com/chakra-ui/chakra-ui/blob/main/packages/utils/src/assertion.ts\n */\n\n// Number assertions\nexport function isNumber(value: unknown): value is number {\n\treturn typeof value === \"number\";\n}\n\n// Array assertions\nexport function isArray<T>(value: unknown): value is Array<T> {\n\treturn Array.isArray(value);\n}\n\n// String assertions\nexport function isString(value: unknown): value is string {\n\treturn Object.prototype.toString.call(value) === \"[object String]\";\n}\n\n// Function assertions\nexport function isFunction<T extends Function = Function>(\n\tvalue: unknown,\n): value is T {\n\treturn typeof value === \"function\";\n}\n", "import type { Accessor } from \"solid-js\";\n\n/**\n * Create a function that generate an id from a `baseId` and `suffix`.\n */\nexport function createGenerateId(baseId: Accessor<string>) {\n\treturn (suffix: string) => `${baseId()}-${suffix}`;\n}\n", "/*\n * Portions of this file are based on code from react-spectrum.\n * Apache License Version 2.0, Copyright 2020 Adobe.\n *\n * Credits to the React Spectrum team:\n * https://github.com/solidjs-community/solid-aria/blob/2c5f54feb5cfea514b1ee0a52d0416878f882351/packages/utils/src/createGlobalListeners.ts\n */\n\nimport { onCleanup } from \"solid-js\";\n\ninterface GlobalListeners {\n\taddGlobalListener<K extends keyof DocumentEventMap>(\n\t\tel: EventTarget,\n\t\ttype: K,\n\t\tlistener: (this: Document, ev: DocumentEventMap[K]) => any,\n\t\toptions?: boolean | AddEventListenerOptions,\n\t): void;\n\n\taddGlobalListener(\n\t\tel: EventTarget,\n\t\ttype: string,\n\t\tlistener: EventListenerOrEventListenerObject,\n\t\toptions?: boolean | AddEventListenerOptions,\n\t): void;\n\n\tremoveGlobalListener<K extends keyof DocumentEventMap>(\n\t\tel: EventTarget,\n\t\ttype: K,\n\t\tlistener: (this: Document, ev: DocumentEventMap[K]) => any,\n\t\toptions?: boolean | EventListenerOptions,\n\t): void;\n\n\tremoveGlobalListener(\n\t\tel: EventTarget,\n\t\ttype: string,\n\t\tlistener: EventListenerOrEventListenerObject,\n\t\toptions?: boolean | EventListenerOptions,\n\t): void;\n\n\tremoveAllGlobalListeners(): void;\n}\n\nexport function createGlobalListeners(): GlobalListeners {\n\tconst globalListeners = new Map();\n\n\tconst addGlobalListener = (\n\t\teventTarget: any,\n\t\ttype: any,\n\t\tlistener: any,\n\t\toptions: any,\n\t) => {\n\t\t// Make sure we remove the listener after it is called with the `once` option.\n\t\tconst fn = options?.once\n\t\t\t? (...args: any) => {\n\t\t\t\t\tglobalListeners.delete(listener);\n\t\t\t\t\tlistener(...args);\n\t\t\t\t}\n\t\t\t: listener;\n\t\tglobalListeners.set(listener, { type, eventTarget, fn, options });\n\t\teventTarget.addEventListener(type, listener, options);\n\t};\n\n\tconst removeGlobalListener = (\n\t\teventTarget: any,\n\t\ttype: any,\n\t\tlistener: any,\n\t\toptions: any,\n\t) => {\n\t\tconst fn = globalListeners.get(listener)?.fn || listener;\n\t\teventTarget.removeEventListener(type, fn, options);\n\t\tglobalListeners.delete(listener);\n\t};\n\n\tconst removeAllGlobalListeners = () => {\n\t\tglobalListeners.forEach((value, key) => {\n\t\t\tremoveGlobalListener(value.eventTarget, value.type, key, value.options);\n\t\t});\n\t};\n\n\tonCleanup(() => {\n\t\tremoveAllGlobalListeners();\n\t});\n\n\treturn { addGlobalListener, removeGlobalListener, removeAllGlobalListeners };\n}\n", "/*\n * Portions of this file are based on code from ariakit.\n * MIT Licensed, Copyright (c) Diego Haz.\n *\n * Credits to the Ariakit team:\n * https://github.com/ariakit/ariakit/blob/232bc79018ec20967fec1e097a9474aba3bb5be7/packages/ariakit-utils/src/dom.ts\n */\n\n/**\n * Similar to `Element.prototype.contains`, but a little faster when `element` is the same as `child`.\n */\nexport function contains(parent: Node | undefined, child: Node | null) {\n\tif (!parent) {\n\t\treturn false;\n\t}\n\n\treturn parent === child || parent.contains(child);\n}\n\n/**\n * Returns `element.ownerDocument.activeElement`.\n */\nexport function getActiveElement(\n\tnode?: Node | null,\n\tactiveDescendant = false,\n): HTMLElement | null {\n\tconst { activeElement } = getDocument(node);\n\n\tif (!activeElement?.nodeName) {\n\t\t// In IE11, activeElement might be an empty object if we're interacting\n\t\t// with elements inside an iframe.\n\t\treturn null;\n\t}\n\n\tif (isFrame(activeElement) && activeElement.contentDocument) {\n\t\treturn getActiveElement(\n\t\t\tactiveElement.contentDocument.body,\n\t\t\tactiveDescendant,\n\t\t);\n\t}\n\n\tif (activeDescendant) {\n\t\tconst id = activeElement.getAttribute(\"aria-activedescendant\");\n\n\t\tif (id) {\n\t\t\tconst element = getDocument(activeElement).getElementById(id);\n\n\t\t\tif (element) {\n\t\t\t\treturn element;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn activeElement as HTMLElement | null;\n}\n\n/**\n * Returns `element.ownerDocument.defaultView || window`.\n */\nexport function getWindow(node?: Node | null): Window {\n\treturn getDocument(node).defaultView || window;\n}\n\n/**\n * Returns `element.ownerDocument || document`.\n */\nexport function getDocument(node?: Node | null): Document {\n\treturn node ? node.ownerDocument || (node as Document) : document;\n}\n\n/**\n * Checks whether `element` is a frame element.\n */\nexport function isFrame(element: Element): element is HTMLIFrameElement {\n\treturn element.tagName === \"IFRAME\";\n}\n", "export enum EventKey {\n\tEscape = \"Escape\",\n\tEnter = \"Enter\",\n\tTab = \"Tab\",\n\tSpace = \" \",\n\tArrowDown = \"ArrowDown\",\n\tArrowLeft = \"ArrowLeft\",\n\tArrowRight = \"ArrowRight\",\n\tArrowUp = \"ArrowUp\",\n\tEnd = \"End\",\n\tHome = \"Home\",\n\tPageDown = \"PageDown\",\n\tPageUp = \"PageUp\",\n}\n", "/*\n * Portions of this file are based on code from react-spectrum.\n * Apache License Version 2.0, Copyright 2020 Adobe.\n *\n * Credits to the React Spectrum team:\n * https://github.com/adobe/react-spectrum/blob/cf9ab24f3255be1530d0f584061a01aa1e8180e6/packages/@react-aria/utils/src/platform.ts\n */\n\nfunction testUserAgent(re: RegExp) {\n\tif (typeof window === \"undefined\" || window.navigator == null) {\n\t\treturn false;\n\t}\n\treturn (\n\t\t// @ts-ignore\n\t\twindow.navigator.userAgentData?.brands.some(\n\t\t\t(brand: { brand: string; version: string }) => re.test(brand.brand),\n\t\t) || re.test(window.navigator.userAgent)\n\t);\n}\n\nfunction testPlatform(re: RegExp) {\n\treturn typeof window !== \"undefined\" && window.navigator != null\n\t\t? re.test(\n\t\t\t\t// @ts-ignore\n\t\t\t\twindow.navigator.userAgentData?.platform || window.navigator.platform,\n\t\t\t)\n\t\t: false;\n}\n\nexport function isMac() {\n\treturn testPlatform(/^Mac/i);\n}\n\nexport function isIPhone() {\n\treturn testPlatform(/^iPhone/i);\n}\n\nexport function isIPad() {\n\treturn (\n\t\ttestPlatform(/^iPad/i) ||\n\t\t// iPadOS 13 lies and says it's a Mac, but we can distinguish by detecting touch support.\n\t\t(isMac() && navigator.maxTouchPoints > 1)\n\t);\n}\n\nexport function isIOS() {\n\treturn isIPhone() || isIPad();\n}\n\nexport function isAppleDevice() {\n\treturn isMac() || isIOS();\n}\n\nexport function isWebKit() {\n\treturn testUserAgent(/AppleWebKit/i) && !isChrome();\n}\n\nexport function isChrome() {\n\treturn testUserAgent(/Chrome/i);\n}\n\nexport function isAndroid() {\n\treturn testUserAgent(/Android/i);\n}\n", "import type { JSX } from \"solid-js\";\n\nimport { isFunction } from \"./assertion\";\nimport { isMac } from \"./platform\";\n\n/** Call a JSX.EventHandlerUnion with the event. */\nexport function callHandler<T, E extends Event>(\n\tevent: E & { currentTarget: T; target: Element },\n\thandler: JSX.EventHandlerUnion<T, E> | undefined,\n) {\n\tif (handler) {\n\t\tif (isFunction(handler)) {\n\t\t\thandler(event);\n\t\t} else {\n\t\t\thandler[0](handler[1], event);\n\t\t}\n\t}\n\n\treturn event?.defaultPrevented;\n}\n\n/** Create a new event handler which calls all given handlers in the order they were chained with the same event. */\nexport function composeEventHandlers<T>(\n\thandlers: Array<JSX.EventHandlerUnion<T, any> | undefined>,\n) {\n\treturn (event: any) => {\n\t\tfor (const handler of handlers) {\n\t\t\tcallHandler(event, handler);\n\t\t}\n\t};\n}\n\nexport function isCtrlKey(e: Pick<KeyboardEvent, \"ctrlKey\" | \"metaKey\">) {\n\tif (isMac()) {\n\t\treturn e.metaKey && !e.ctrlKey;\n\t}\n\n\treturn e.ctrlKey && !e.metaKey;\n}\n", "// External libs re-exports\nexport { createEventListener } from \"@solid-primitives/event-listener\";\nexport { Key } from \"@solid-primitives/keyed\";\nexport { ReactiveMap } from \"@solid-primitives/map\";\nexport { createMediaQuery } from \"@solid-primitives/media\";\nexport { combineProps } from \"@solid-primitives/props\";\nexport { mergeRefs } from \"@solid-primitives/refs\";\nexport type { MaybeAccessor } from \"@solid-primitives/utils\";\nexport { access, accessWith, chain } from \"@solid-primitives/utils\";\n", "/*\n * Portions of this file are based on code from react-spectrum.\n * Apache License Version 2.0, Copyright 2020 Adobe.\n *\n * Credits to the React Spectrum team:\n * https://github.com/adobe/react-spectrum/blob/a9dea8a3672179e6c38aafd1429daf44c7ea2ff6/packages/@react-aria/utils/src/focusWithoutScrolling.ts\n */\n\n// This is a polyfill for element.focus({preventScroll: true});\n// Currently necessary for Safari and old Edge:\n// https://caniuse.com/#feat=mdn-api_htmlelement_focus_preventscroll_option\n// See https://bugs.webkit.org/show_bug.cgi?id=178583\n\n// Original licensing for the following methods can be found in the\n// NOTICE file in the root directory of this source tree.\n// See https://github.com/calvellido/focus-options-polyfill\n\ninterface ScrollableElement {\n\telement: HTMLElement;\n\tscrollTop: number;\n\tscrollLeft: number;\n}\n\nexport function focusWithoutScrolling(element: HTMLElement | null | undefined) {\n\tif (!element) {\n\t\treturn;\n\t}\n\n\tif (supportsPreventScroll()) {\n\t\telement.focus({ preventScroll: true });\n\t} else {\n\t\tconst scrollableElements = getScrollableElements(element);\n\t\telement.focus();\n\t\trestoreScrollPosition(scrollableElements);\n\t}\n}\n\nlet supportsPreventScrollCached: boolean | null = null;\n\nfunction supportsPreventScroll() {\n\tif (supportsPreventScrollCached == null) {\n\t\tsupportsPreventScrollCached = false;\n\t\ttry {\n\t\t\tconst focusElem = document.createElement(\"div\");\n\t\t\tfocusElem.focus({\n\t\t\t\tget preventScroll() {\n\t\t\t\t\tsupportsPreventScrollCached = true;\n\t\t\t\t\treturn true;\n\t\t\t\t},\n\t\t\t});\n\t\t} catch (e) {\n\t\t\t// Ignore\n\t\t}\n\t}\n\n\treturn supportsPreventScrollCached;\n}\n\nfunction getScrollableElements(element: HTMLElement): ScrollableElement[] {\n\tlet parent = element.parentNode;\n\tconst scrollableElements: ScrollableElement[] = [];\n\tconst rootScrollingElement =\n\t\tdocument.scrollingElement || document.documentElement;\n\n\twhile (parent instanceof HTMLElement && parent !== rootScrollingElement) {\n\t\tif (\n\t\t\tparent.offsetHeight < parent.scrollHeight ||\n\t\t\tparent.offsetWidth < parent.scrollWidth\n\t\t) {\n\t\t\tscrollableElements.push({\n\t\t\t\telement: parent,\n\t\t\t\tscrollTop: parent.scrollTop,\n\t\t\t\tscrollLeft: parent.scrollLeft,\n\t\t\t});\n\t\t}\n\t\tparent = parent.parentNode;\n\t}\n\n\tif (rootScrollingElement instanceof HTMLElement) {\n\t\tscrollableElements.push({\n\t\t\telement: rootScrollingElement,\n\t\t\tscrollTop: rootScrollingElement.scrollTop,\n\t\t\tscrollLeft: rootScrollingElement.scrollLeft,\n\t\t});\n\t}\n\n\treturn scrollableElements;\n}\n\nfunction restoreScrollPosition(scrollableElements: ScrollableElement[]) {\n\tfor (const { element, scrollTop, scrollLeft } of scrollableElements) {\n\t\telement.scrollTop = scrollTop;\n\t\telement.scrollLeft = scrollLeft;\n\t}\n}\n", "/*\n * Portions of this file are based on code from ariakit.\n * MIT Licensed, Copyright (c) Diego Haz.\n *\n * Credits to the Ariakit team:\n * https://github.com/ariakit/ariakit/blob/main/packages/ariakit-utils/src/focus.ts\n *\n * Portions of this file are based on code from react-spectrum.\n * Apache License Version 2.0, Copyright 2020 Adobe.\n *\n * Credits to the React Spectrum team:\n * https://github.com/adobe/react-spectrum/blob/main/packages/%40react-aria/focus/src/isElementVisible.ts\n * https://github.com/adobe/react-spectrum/blob/8f2f2acb3d5850382ebe631f055f88c704aa7d17/packages/@react-aria/focus/src/FocusScope.tsx\n */\n\nimport { contains, getActiveElement, isFrame } from \"./dom\";\n\nconst focusableElements = [\n\t\"input:not([type='hidden']):not([disabled])\",\n\t\"select:not([disabled])\",\n\t\"textarea:not([disabled])\",\n\t\"button:not([disabled])\",\n\t\"a[href]\",\n\t\"area[href]\",\n\t\"[tabindex]\",\n\t\"iframe\",\n\t\"object\",\n\t\"embed\",\n\t\"audio[controls]\",\n\t\"video[controls]\",\n\t\"[contenteditable]:not([contenteditable='false'])\",\n];\n\nconst tabbableElements = [\n\t...focusableElements,\n\t'[tabindex]:not([tabindex=\"-1\"]):not([disabled])',\n];\n\nexport const FOCUSABLE_ELEMENT_SELECTOR = `${focusableElements.join(\n\t\":not([hidden]),\",\n)},[tabindex]:not([disabled]):not([hidden])`;\n\nexport const TABBABLE_ELEMENT_SELECTOR = tabbableElements.join(\n\t':not([hidden]):not([tabindex=\"-1\"]),',\n);\n\n/**\n * Returns all the tabbable elements in `container`.\n */\nexport function getAllTabbableIn(\n\tcontainer: HTMLElement,\n\tincludeContainer?: boolean,\n) {\n\tconst elements = Array.from(\n\t\tcontainer.querySelectorAll<HTMLElement>(FOCUSABLE_ELEMENT_SELECTOR),\n\t);\n\n\tconst tabbableElements = elements.filter(isTabbable);\n\n\tif (includeContainer && isTabbable(container)) {\n\t\ttabbableElements.unshift(container);\n\t}\n\n\ttabbableElements.forEach((element, i) => {\n\t\tif (isFrame(element) && element.contentDocument) {\n\t\t\tconst frameBody = element.contentDocument.body;\n\t\t\tconst allFrameTabbable = getAllTabbableIn(frameBody, false);\n\t\t\ttabbableElements.splice(i, 1, ...allFrameTabbable);\n\t\t}\n\t});\n\n\treturn tabbableElements;\n}\n\n/**\n * Checks whether `element` is tabbable or not.\n * @example\n * isTabbable(document.querySelector(\"input\")); // true\n * isTabbable(document.querySelector(\"input[tabindex='-1']\")); // false\n * isTabbable(document.querySelector(\"input[hidden]\")); // false\n * isTabbable(document.querySelector(\"input:disabled\")); // false\n */\nexport function isTabbable(element: Element): element is HTMLElement {\n\treturn isFocusable(element) && !hasNegativeTabIndex(element);\n}\n\n/**\n * Checks whether `element` is focusable or not.\n * @example\n * isFocusable(document.querySelector(\"input\")); // true\n * isFocusable(document.querySelector(\"input[tabindex='-1']\")); // true\n * isFocusable(document.querySelector(\"input[hidden]\")); // false\n * isFocusable(document.querySelector(\"input:disabled\")); // false\n */\nexport function isFocusable(element: Element): element is HTMLElement {\n\treturn (\n\t\telement.matches(FOCUSABLE_ELEMENT_SELECTOR) && isElementVisible(element)\n\t);\n}\n\nfunction hasNegativeTabIndex(element: Element) {\n\tconst tabIndex = Number.parseInt(element.getAttribute(\"tabindex\") || \"0\", 10);\n\treturn tabIndex < 0;\n}\n\n/**\n * Adapted from https://github.com/testing-library/jest-dom and\n * https://github.com/vuejs/vue-test-utils-next/.\n * Licensed under the MIT License.\n * @param element - Element to evaluate for display or visibility.\n */\nexport function isElementVisible(\n\telement: Element,\n\tchildElement?: Element,\n): boolean {\n\treturn (\n\t\telement.nodeName !== \"#comment\" &&\n\t\tisStyleVisible(element) &&\n\t\tisAttributeVisible(element, childElement) &&\n\t\t(!element.parentElement || isElementVisible(element.parentElement, element))\n\t);\n}\n\nfunction isStyleVisible(element: Element) {\n\tif (!(element instanceof HTMLElement) && !(element instanceof SVGElement)) {\n\t\treturn false;\n\t}\n\n\tconst { display, visibility } = element.style;\n\n\tlet isVisible =\n\t\tdisplay !== \"none\" && visibility !== \"hidden\" && visibility !== \"collapse\";\n\n\tif (isVisible) {\n\t\tif (!element.ownerDocument.defaultView) {\n\t\t\treturn isVisible;\n\t\t}\n\n\t\tconst { getComputedStyle } = element.ownerDocument.defaultView;\n\t\tconst { display: computedDisplay, visibility: computedVisibility } =\n\t\t\tgetComputedStyle(element);\n\n\t\tisVisible =\n\t\t\tcomputedDisplay !== \"none\" &&\n\t\t\tcomputedVisibility !== \"hidden\" &&\n\t\t\tcomputedVisibility !== \"collapse\";\n\t}\n\n\treturn isVisible;\n}\n\nfunction isAttributeVisible(element: Element, childElement?: Element) {\n\treturn (\n\t\t!element.hasAttribute(\"hidden\") &&\n\t\t(element.nodeName === \"DETAILS\" &&\n\t\tchildElement &&\n\t\tchildElement.nodeName !== \"SUMMARY\"\n\t\t\t? element.hasAttribute(\"open\")\n\t\t\t: true)\n\t);\n}\n\n/**\n * Checks if `element` has focus within.\n * Elements that are referenced by `aria-activedescendant` are also considered.\n * @example\n * hasFocusWithin(document.getElementById(\"id\"));\n */\nexport function hasFocusWithin(element: Node | Element) {\n\tconst activeElement = getActiveElement(element);\n\n\tif (!activeElement) {\n\t\treturn false;\n\t}\n\n\tif (!contains(element, activeElement)) {\n\t\tconst activeDescendant = activeElement.getAttribute(\n\t\t\t\"aria-activedescendant\",\n\t\t);\n\t\tif (!activeDescendant) {\n\t\t\treturn false;\n\t\t}\n\t\tif (!(\"id\" in element)) {\n\t\t\treturn false;\n\t\t}\n\t\tif (activeDescendant === element.id) {\n\t\t\treturn true;\n\t\t}\n\t\treturn !!element.querySelector(`#${CSS.escape(activeDescendant)}`);\n\t}\n\treturn true;\n}\n", "/*\n * Portions of this file are based on code from react-spectrum.\n * Apache License Version 2.0, Copyright 2020 Adobe.\n *\n * Credits to the React Spectrum team:\n * https://github.com/adobe/react-spectrum/blob/f6e686fe9d3b983d48650980c1ecfdde320bc62f/packages/@react-aria/focus/src/FocusScope.tsx\n */\n\nimport type { Accessor } from \"solid-js\";\n\nimport { focusWithoutScrolling } from \"./focus-without-scrolling\";\nimport {\n\tFOCUSABLE_ELEMENT_SELECTOR,\n\tTABBABLE_ELEMENT_SELECTOR,\n\tisElementVisible,\n} from \"./tabbable\";\n\nexport interface FocusManager {\n\t/** Moves focus to the next focusable or tabbable element in the focus scope. */\n\tfocusNext(opts?: FocusManagerOptions): HTMLElement | undefined;\n\n\t/** Moves focus to the previous focusable or tabbable element in the focus scope. */\n\tfocusPrevious(opts?: FocusManagerOptions): HTMLElement | undefined;\n\n\t/** Moves focus to the first focusable or tabbable element in the focus scope. */\n\tfocusFirst(opts?: FocusManagerOptions): HTMLElement | undefined;\n\n\t/** Moves focus to the last focusable or tabbable element in the focus scope. */\n\tfocusLast(opts?: FocusManagerOptions): HTMLElement | undefined;\n}\n\nexport interface FocusManagerOptions {\n\t/** The element to start searching from. The currently focused element by default. */\n\tfrom?: Element;\n\n\t/** Whether to only include tabbable elements, or all focusable elements. */\n\ttabbable?: boolean;\n\n\t/** Whether focus should wrap around when it reaches the end of the scope. */\n\twrap?: boolean;\n\n\t/** A callback that determines whether the given element is focused. */\n\taccept?: (node: Element) => boolean;\n}\n\n/**\n * Creates a FocusManager object that can be used to move focus within an element.\n */\nexport function createFocusManager(\n\tref: Accessor<HTMLElement | undefined>,\n\tdefaultOptions: Accessor<FocusManagerOptions> = () => ({}),\n): FocusManager {\n\tconst focusNext = (opts: FocusManagerOptions = {}) => {\n\t\tconst root = ref();\n\n\t\tif (!root) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst {\n\t\t\tfrom = defaultOptions().from || document.activeElement,\n\t\t\ttabbable = defaultOptions().tabbable,\n\t\t\twrap = defaultOptions().wrap,\n\t\t\taccept = defaultOptions().accept,\n\t\t} = opts;\n\n\t\tconst walker = getFocusableTreeWalker(root, { tabbable, accept });\n\n\t\tif (from && root.contains(from)) {\n\t\t\twalker.currentNode = from;\n\t\t}\n\n\t\tlet nextNode = walker.nextNode() as HTMLElement | undefined;\n\n\t\tif (!nextNode && wrap) {\n\t\t\twalker.currentNode = root;\n\t\t\tnextNode = walker.nextNode() as HTMLElement | undefined;\n\t\t}\n\n\t\tif (nextNode) {\n\t\t\tfocusElement(nextNode, true);\n\t\t}\n\n\t\treturn nextNode;\n\t};\n\n\tconst focusPrevious = (opts: FocusManagerOptions = {}) => {\n\t\tconst root = ref();\n\n\t\tif (!root) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst {\n\t\t\tfrom = defaultOptions().from || document.activeElement,\n\t\t\ttabbable = defaultOptions().tabbable,\n\t\t\twrap = defaultOptions().wrap,\n\t\t\taccept = defaultOptions().accept,\n\t\t} = opts;\n\n\t\tconst walker = getFocusableTreeWalker(root, { tabbable, accept });\n\n\t\tif (from && root.contains(from)) {\n\t\t\twalker.currentNode = from;\n\t\t} else {\n\t\t\tconst next = last(walker);\n\t\t\tif (next) {\n\t\t\t\tfocusElement(next, true);\n\t\t\t}\n\t\t\treturn next;\n\t\t}\n\n\t\tlet previousNode = walker.previousNode() as HTMLElement | undefined;\n\n\t\tif (!previousNode && wrap) {\n\t\t\twalker.currentNode = root;\n\t\t\tpreviousNode = last(walker);\n\t\t}\n\n\t\tif (previousNode) {\n\t\t\tfocusElement(previousNode, true);\n\t\t}\n\n\t\treturn previousNode;\n\t};\n\n\tconst focusFirst = (opts: FocusManagerOptions = {}) => {\n\t\tconst root = ref();\n\n\t\tif (!root) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst {\n\t\t\ttabbable = defaultOptions().tabbable,\n\t\t\taccept = defaultOptions().accept,\n\t\t} = opts;\n\n\t\tconst walker = getFocusableTreeWalker(root, { tabbable, accept });\n\t\tconst nextNode = walker.nextNode() as HTMLElement | undefined;\n\n\t\tif (nextNode) {\n\t\t\tfocusElement(nextNode, true);\n\t\t}\n\n\t\treturn nextNode;\n\t};\n\n\tconst focusLast = (opts: FocusManagerOptions = {}) => {\n\t\tconst root = ref();\n\n\t\tif (!root) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst {\n\t\t\ttabbable = defaultOptions().tabbable,\n\t\t\taccept = defaultOptions().accept,\n\t\t} = opts;\n\n\t\tconst walker = getFocusableTreeWalker(root, { tabbable, accept });\n\t\tconst next = last(walker);\n\n\t\tif (next) {\n\t\t\tfocusElement(next, true);\n\t\t}\n\n\t\treturn next;\n\t};\n\n\treturn { focusNext, focusPrevious, focusFirst, focusLast };\n}\n\nfunction focusElement(element: HTMLElement | null, scroll = false) {\n\tif (element != null && !scroll) {\n\t\ttry {\n\t\t\tfocusWithoutScrolling(element);\n\t\t} catch (err) {\n\t\t\t// ignore\n\t\t}\n\t} else if (element != null) {\n\t\ttry {\n\t\t\telement.focus();\n\t\t} catch (err) {\n\t\t\t// ignore\n\t\t}\n\t}\n}\n\nfunction last(walker: TreeWalker) {\n\tlet next: HTMLElement | undefined;\n\tlet last: HTMLElement | undefined;\n\n\tdo {\n\t\tlast = walker.lastChild() as HTMLElement;\n\t\tif (last) {\n\t\t\tnext = last;\n\t\t}\n\t} while (last);\n\n\treturn next;\n}\n\nfunction isElementInScope(element: Element | null, scope: HTMLElement[]) {\n\treturn scope.some((node) => node.contains(element));\n}\n\n/**\n * Create a [TreeWalker]{@link https://developer.mozilla.org/en-US/docs/Web/API/TreeWalker}\n * that matches all focusable/tabbable elements.\n */\nexport function getFocusableTreeWalker(\n\troot: HTMLElement,\n\topts?: FocusManagerOptions,\n\tscope?: HTMLElement[],\n) {\n\tconst selector = opts?.tabbable\n\t\t? TABBABLE_ELEMENT_SELECTOR\n\t\t: FOCUSABLE_ELEMENT_SELECTOR;\n\tconst walker = document.createTreeWalker(root, NodeFilter.SHOW_ELEMENT, {\n\t\tacceptNode(node) {\n\t\t\t// Skip nodes inside the starting node.\n\t\t\tif (opts?.from?.contains(node)) {\n\t\t\t\treturn NodeFilter.FILTER_REJECT;\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\t(node as HTMLElement).matches(selector) &&\n\t\t\t\tisElementVisible(node as HTMLElement) &&\n\t\t\t\t(!scope || isElementInScope(node as HTMLElement, scope)) &&\n\t\t\t\t(!opts?.accept || opts.accept(node as Element))\n\t\t\t) {\n\t\t\t\treturn NodeFilter.FILTER_ACCEPT;\n\t\t\t}\n\n\t\t\treturn NodeFilter.FILTER_SKIP;\n\t\t},\n\t});\n\n\tif (opts?.from) {\n\t\twalker.currentNode = opts.from;\n\t}\n\n\treturn walker;\n}\n", "/*\n * Portions of this file are based on code from react-spectrum.\n * Apache License Version 2.0, Copyright 2020 Adobe.\n *\n * Credits to the React Spectrum team:\n * https://github.com/adobe/react-spectrum/blob/a9dea8a3672179e6c38aafd1429daf44c7ea2ff6/packages/@react-aria/utils/src/getScrollParent.ts\n */\n\nexport function getScrollParent(node: Element | null): Element {\n\tlet parentNode = node;\n\twhile (parentNode && !isScrollable(parentNode)) {\n\t\tparentNode = parentNode.parentElement;\n\t}\n\n\treturn parentNode || document.scrollingElement || document.documentElement;\n}\n\nfunction isScrollable(node: Element): boolean {\n\tconst style = window.getComputedStyle(node);\n\treturn /(auto|scroll)/.test(\n\t\tstyle.overflow + style.overflowX + style.overflowY,\n\t);\n}\n", "/*\n * Portions of this file are based on code from react-spectrum.\n * Apache License Version 2.0, Copyright 2020 Adobe.\n *\n * Credits to the React Spectrum team:\n * https://github.com/adobe/react-spectrum/blob/a9dea8a3672179e6c38aafd1429daf44c7ea2ff6/packages/@react-aria/utils/src/isVirtualEvent.ts\n */\n\n// Original licensing for the following method can be found in the\n// NOTICE file in the root directory of this source tree.\n// See https://github.com/facebook/react/blob/3c713d513195a53788b3f8bb4b70279d68b15bcc/packages/react-interactions/events/src/dom/shared/index.js#L74-L87\n\nimport { isAndroid } from \"./platform\";\n\n// Keyboards, Assistive Technologies, and element.click() all produce a \"virtual\"\n// click event. This is a method of inferring such clicks. Every browser except\n// IE 11 only sets a zero value of \"detail\" for click events that are \"virtual\".\n// However, IE 11 uses a zero value for all click events. For IE 11 we rely on\n// the quirk that it produces click events that are of type PointerEvent, and\n// where only the \"virtual\" click lacks a pointerType field.\n\nexport function isVirtualClick(event: MouseEvent | PointerEvent): boolean {\n\t// JAWS/NVDA with Firefox.\n\tif ((event as any).mozInputSource === 0 && event.isTrusted) {\n\t\treturn true;\n\t}\n\n\t// Android TalkBack's detail value varies depending on the event listener providing the event so we have specific logic here instead\n\t// If pointerType is defined, event is from a click listener. For events from mousedown listener, detail === 0 is a sufficient check\n\t// to detect TalkBack virtual clicks.\n\tif (isAndroid() && (event as PointerEvent).pointerType) {\n\t\treturn event.type === \"click\" && event.buttons === 1;\n\t}\n\n\treturn event.detail === 0 && !(event as PointerEvent).pointerType;\n}\n\nexport function isVirtualPointerEvent(event: PointerEvent) {\n\t// If the pointer size is zero, then we assume it's from a screen reader.\n\t// Android TalkBack double tap will sometimes return a event with width and height of 1\n\t// and pointerType === 'mouse' so we need to check for a specific combination of event attributes.\n\t// Cannot use \"event.pressure === 0\" as the sole check due to Safari pointer events always returning pressure === 0\n\t// instead of .5, see https://bugs.webkit.org/show_bug.cgi?id=206216. event.pointerType === 'mouse' is to distingush\n\t// Talkback double tap from Windows Firefox touch screen press\n\treturn (\n\t\t(event.width === 0 && event.height === 0) ||\n\t\t(event.width === 1 &&\n\t\t\tevent.height === 1 &&\n\t\t\tevent.pressure === 0 &&\n\t\t\tevent.detail === 0 &&\n\t\t\tevent.pointerType === \"mouse\")\n\t);\n}\n", "/** A function that does nothing. */\nexport function noop() {\n\treturn;\n}\n", "/*\n * Portions of this file are based on code from react-spectrum.\n * Apache License Version 2.0, Copyright 2020 Adobe.\n *\n * Credits to the React Spectrum team:\n * https://github.com/adobe/react-spectrum/blob/ff3e690fffc6c54367b8057e28a0e5b9211f37b5/packages/@react-stately/utils/src/number.ts\n */\n\n/**\n * Takes a value and forces it to the closest min/max if it's outside. Also forces it to the closest valid step.\n */\nexport function clamp(\n\tvalue: number,\n\tmin = Number.NEGATIVE_INFINITY,\n\tmax = Number.POSITIVE_INFINITY,\n): number {\n\treturn Math.min(Math.max(value, min), max);\n}\n\nexport function snapValueToStep(\n\tvalue: number,\n\tmin: number,\n\tmax: number,\n\tstep: number,\n): number {\n\tconst remainder = (value - (Number.isNaN(min) ? 0 : min)) % step;\n\tlet snappedValue =\n\t\tMath.abs(remainder) * 2 >= step\n\t\t\t? value + Math.sign(remainder) * (step - Math.abs(remainder))\n\t\t\t: value - remainder;\n\n\tif (!Number.isNaN(min)) {\n\t\tif (snappedValue < min) {\n\t\t\tsnappedValue = min;\n\t\t} else if (!Number.isNaN(max) && snappedValue > max) {\n\t\t\tsnappedValue = min + Math.floor((max - min) / step) * step;\n\t\t}\n\t} else if (!Number.isNaN(max) && snappedValue > max) {\n\t\tsnappedValue = Math.floor(max / step) * step;\n\t}\n\n\t// correct floating point behavior by rounding to step precision\n\tconst string = step.toString();\n\tconst index = string.indexOf(\".\");\n\tconst precision = index >= 0 ? string.length - index : 0;\n\n\tif (precision > 0) {\n\t\tconst pow = 10 ** precision;\n\t\tsnappedValue = Math.round(snappedValue * pow) / pow;\n\t}\n\n\treturn snappedValue;\n}\n\nexport const getPrecision = (n: number) => {\n\tlet e = 1;\n\tlet precision = 0;\n\twhile (Math.round(n * e) / e !== n) {\n\t\te *= 10;\n\t\tprecision++;\n\t}\n\n\treturn precision;\n};\n", "/*\n * Portions of this file are based on code from ariakit.\n * MIT Licensed, Copyright (c) Diego Haz.\n *\n * Credits to the Ariakit team:\n * https://github.com/ariakit/ariakit/blob/84e97943ad637a582c01c9b56d880cd95f595737/packages/ariakit/src/hovercard/__utils/polygon.ts\n * https://github.com/ariakit/ariakit/blob/f2a96973de523d67e41eec983263936c489ef3e2/packages/ariakit/src/hovercard/__utils/debug-polygon.ts\n */\n\nexport type Point = [number, number];\nexport type Polygon = Point[];\n\nexport function getEventPoint(event: MouseEvent): Point {\n\treturn [event.clientX, event.clientY];\n}\n\n// Based on https://github.com/metafloor/pointinpoly\nexport function isPointInPolygon(point: Point, polygon: Polygon) {\n\tconst [x, y] = point;\n\tlet inside = false;\n\tconst length = polygon.length;\n\tfor (let l = length, i = 0, j = l - 1; i < l; j = i++) {\n\t\tconst [xi, yi] = polygon[i] as Point;\n\t\tconst [xj, yj] = polygon[j] as Point;\n\t\tconst [, vy] = polygon[j === 0 ? l - 1 : j - 1] || [0, 0];\n\t\tconst where = (yi - yj) * (x - xi) - (xi - xj) * (y - yi);\n\t\tif (yj < yi) {\n\t\t\tif (y >= yj && y < yi) {\n\t\t\t\t// point on the line\n\t\t\t\tif (where === 0) return true;\n\t\t\t\tif (where > 0) {\n\t\t\t\t\tif (y === yj) {\n\t\t\t\t\t\t// ray intersects vertex\n\t\t\t\t\t\tif (y > vy) {\n\t\t\t\t\t\t\tinside = !inside;\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tinside = !inside;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (yi < yj) {\n\t\t\tif (y > yi && y <= yj) {\n\t\t\t\t// point on the line\n\t\t\t\tif (where === 0) return true;\n\t\t\t\tif (where < 0) {\n\t\t\t\t\tif (y === yj) {\n\t\t\t\t\t\t// ray intersects vertex\n\t\t\t\t\t\tif (y < vy) {\n\t\t\t\t\t\t\tinside = !inside;\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tinside = !inside;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (y === yi && ((x >= xj && x <= xi) || (x >= xi && x <= xj))) {\n\t\t\t// point on horizontal edge\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn inside;\n}\n\n/* -------------------------------------------------------------------------------------------------\n * Debug polygon\n * -----------------------------------------------------------------------------------------------*/\n\nfunction getPolygon() {\n\tconst id = \"debug-polygon\";\n\tconst existingPolygon = document.getElementById(id);\n\tif (existingPolygon) {\n\t\treturn existingPolygon;\n\t}\n\tconst svg = document.createElementNS(\"http://www.w3.org/2000/svg\", \"svg\");\n\tsvg.style.top = \"0\";\n\tsvg.style.left = \"0\";\n\tsvg.style.width = \"100%\";\n\tsvg.style.height = \"100%\";\n\tsvg.style.fill = \"green\";\n\tsvg.style.opacity = \"0.2\";\n\tsvg.style.position = \"fixed\";\n\tsvg.style.pointerEvents = \"none\";\n\tsvg.style.zIndex = \"999999\";\n\tconst polygon = document.createElementNS(\n\t\t\"http://www.w3.org/2000/svg\",\n\t\t\"polygon\",\n\t);\n\tpolygon.setAttribute(\"id\", id);\n\tpolygon.setAttribute(\"points\", \"0,0 0,0\");\n\tsvg.appendChild(polygon);\n\tdocument.body.appendChild(svg);\n\treturn polygon;\n}\n\nexport function debugPolygon(polygon: Polygon) {\n\tconst polygonElement = getPolygon();\n\tconst points = polygon.map((point) => point.join(\",\")).join(\" \");\n\tpolygonElement.setAttribute(\"points\", points);\n\t// Return SVG element\n\treturn polygonElement.parentElement;\n}\n", "import { type ComponentProps, type ValidComponent, mergeProps } from \"solid-js\";\n\n/**\n * Allows for extending a set of props (`Source`) by an overriding set of props (`Override`),\n * ensuring that any duplicates are overridden by the overriding set of props.\n */\nexport type OverrideProps<Source = {}, Override = {}> = Omit<\n\tSource,\n\tkeyof Override\n> &\n\tOverride;\n\n/**\n * Allows for extending a set of `ComponentProps` by an overriding set of props,\n * ensuring that any duplicates are overridden by the overriding set of props.\n */\nexport type OverrideComponentProps<T extends ValidComponent, P> = OverrideProps<\n\tComponentProps<T>,\n\tP\n>;\n\nexport function mergeDefaultProps<T extends {}, D extends Partial<T>>(\n\tdefaultProps: D,\n\tprops: T,\n): OverrideProps<T, D> {\n\treturn mergeProps(defaultProps, props) as OverrideProps<T, D>;\n}\n", "/*\n * Portions of this file are based on code from react-spectrum.\n * Apache License Version 2.0, Copyright 2020 Adobe.\n *\n * Credits to the React Spectrum team:\n * https://github.com/adobe/react-spectrum/blob/a9dea8a3672179e6c38aafd1429daf44c7ea2ff6/packages/@react-aria/utils/src/runAfterTransition.ts\n */\n\n// We store a global list of elements that are currently transitioning,\n// mapped to a set of CSS properties that are transitioning for that element.\n// This is necessary rather than a simple count of transitions because of browser\n// bugs, e.g. Chrome sometimes fires both transitionend and transitioncancel rather\n// than one or the other. So we need to track what's actually transitioning so that\n// we can ignore these duplicate events.\nconst transitionsByElement = new Map<EventTarget, Set<string>>();\n\n// A list of callbacks to call once there are no transitioning elements.\nconst transitionCallbacks = new Set<() => void>();\n\nfunction setupGlobalEvents() {\n\tif (typeof window === \"undefined\") {\n\t\treturn;\n\t}\n\n\tconst onTransitionStart = (e: TransitionEvent) => {\n\t\tif (!e.target) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Add the transitioning property to the list for this element.\n\t\tlet transitions = transitionsByElement.get(e.target);\n\t\tif (!transitions) {\n\t\t\ttransitions = new Set();\n\t\t\ttransitionsByElement.set(e.target, transitions);\n\n\t\t\t// The transitioncancel event must be registered on the element itself, rather than as a global\n\t\t\t// event. This enables us to handle when the node is deleted from the document while it is transitioning.\n\t\t\t// In that case, the cancel event would have nowhere to bubble to, so we need to handle it directly.\n\t\t\te.target.addEventListener(\n\t\t\t\t\"transitioncancel\",\n\t\t\t\tonTransitionEnd as EventListener,\n\t\t\t);\n\t\t}\n\n\t\ttransitions.add(e.propertyName);\n\t};\n\n\tconst onTransitionEnd = (e: TransitionEvent) => {\n\t\tif (!e.target) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Remove property from list of transitioning properties.\n\t\tconst properties = transitionsByElement.get(e.target);\n\t\tif (!properties) {\n\t\t\treturn;\n\t\t}\n\n\t\tproperties.delete(e.propertyName);\n\n\t\t// If empty, remove transitioncancel event, and remove the element from the list of transitioning elements.\n\t\tif (properties.size === 0) {\n\t\t\te.target.removeEventListener(\n\t\t\t\t\"transitioncancel\",\n\t\t\t\tonTransitionEnd as EventListener,\n\t\t\t);\n\t\t\ttransitionsByElement.delete(e.target);\n\t\t}\n\n\t\t// If no transitioning elements, call all the queued callbacks.\n\t\tif (transitionsByElement.size === 0) {\n\t\t\tfor (const cb of transitionCallbacks) {\n\t\t\t\tcb();\n\t\t\t}\n\n\t\t\ttransitionCallbacks.clear();\n\t\t}\n\t};\n\n\tdocument.body.addEventListener(\"transitionrun\", onTransitionStart);\n\tdocument.body.addEventListener(\"transitionend\", onTransitionEnd);\n}\n\nif (typeof document !== \"undefined\") {\n\tif (document.readyState !== \"loading\") {\n\t\tsetupGlobalEvents();\n\t} else {\n\t\tdocument.addEventListener(\"DOMContentLoaded\", setupGlobalEvents);\n\t}\n}\n\nexport function runAfterTransition(fn: () => void) {\n\t// Wait one frame to see if an animation starts, e.g. a transition on mount.\n\trequestAnimationFrame(() => {\n\t\t// If no transitions are running, call the function immediately.\n\t\t// Otherwise, add it to a list of callbacks to run at the end of the animation.\n\t\tif (transitionsByElement.size === 0) {\n\t\t\tfn();\n\t\t} else {\n\t\t\ttransitionCallbacks.add(fn);\n\t\t}\n\t});\n}\n", "/*\n * Portions of this file are based on code from react-spectrum.\n * Apache License Version 2.0, Copyright 2020 Adobe.\n *\n * Credits to the React Spectrum team:\n * https://github.com/adobe/react-spectrum/blob/8f2f2acb3d5850382ebe631f055f88c704aa7d17/packages/@react-aria/utils/src/scrollIntoView.ts\n */\n\nimport { getScrollParent } from \"./get-scroll-parent\";\n\ninterface ScrollIntoViewportOpts {\n\t/** The optional containing element of the target to be centered in the viewport. */\n\tcontainingElement?: Element;\n}\n\n/**\n * Scrolls `scrollView` so that `element` is visible.\n * Similar to `element.scrollIntoView({block: 'nearest'})` (not supported in Edge),\n * but doesn't affect parents above `scrollView`.\n */\nexport function scrollIntoView(scrollView: HTMLElement, element: HTMLElement) {\n\tconst offsetX = relativeOffset(scrollView, element, \"left\");\n\tconst offsetY = relativeOffset(scrollView, element, \"top\");\n\tconst width = element.offsetWidth;\n\tconst height = element.offsetHeight;\n\tlet x = scrollView.scrollLeft;\n\tlet y = scrollView.scrollTop;\n\tconst maxX = x + scrollView.offsetWidth;\n\tconst maxY = y + scrollView.offsetHeight;\n\n\tif (offsetX <= x) {\n\t\tx = offsetX;\n\t} else if (offsetX + width > maxX) {\n\t\tx += offsetX + width - maxX;\n\t}\n\tif (offsetY <= y) {\n\t\ty = offsetY;\n\t} else if (offsetY + height > maxY) {\n\t\ty += offsetY + height - maxY;\n\t}\n\n\tscrollView.scrollLeft = x;\n\tscrollView.scrollTop = y;\n}\n\n/**\n * Computes the offset left or top from child to ancestor by accumulating\n * offsetLeft or offsetTop through intervening offsetParents.\n */\nfunction relativeOffset(\n\tancestor: HTMLElement,\n\tchild: HTMLElement,\n\taxis: \"left\" | \"top\",\n) {\n\tconst prop = axis === \"left\" ? \"offsetLeft\" : \"offsetTop\";\n\tlet sum = 0;\n\twhile (child.offsetParent) {\n\t\tsum += child[prop];\n\t\tif (child.offsetParent === ancestor) {\n\t\t\t// Stop once we have found the ancestor we are interested in.\n\t\t\tbreak;\n\t\t}\n\t\tif (child.offsetParent.contains(ancestor)) {\n\t\t\t// If the ancestor is not `position:relative`, then we stop at\n\t\t\t// _its_ offset parent, and we subtract off _its_ offset, so that\n\t\t\t// we end up with the proper offset from child to ancestor.\n\t\t\tsum -= ancestor[prop];\n\t\t\tbreak;\n\t\t}\n\t\t// biome-ignore lint/style/noParameterAssign: used in loop\n\t\tchild = child.offsetParent as HTMLElement;\n\t}\n\treturn sum;\n}\n\n/**\n * Scrolls the `targetElement` so it is visible in the viewport. Accepts an optional `opts.containingElement`\n * that will be centered in the viewport prior to scrolling the targetElement into view. If scrolling is prevented on\n * the body (e.g. targetElement is in a popover), this will only scroll the scroll parents of the targetElement up to but not including the body itself.\n */\nexport function scrollIntoViewport(\n\ttargetElement: Element,\n\topts?: ScrollIntoViewportOpts,\n) {\n\tif (document.contains(targetElement)) {\n\t\tconst root = document.scrollingElement || document.documentElement;\n\t\tconst isScrollPrevented =\n\t\t\twindow.getComputedStyle(root).overflow === \"hidden\";\n\t\t// If scrolling is not currently prevented then we aren’t in a overlay nor is a overlay open, just use element.scrollIntoView to bring the element into view\n\t\tif (!isScrollPrevented) {\n\t\t\tconst { left: originalLeft, top: originalTop } =\n\t\t\t\ttargetElement.getBoundingClientRect();\n\n\t\t\t// use scrollIntoView({block: 'nearest'}) instead of .focus to check if the element is fully in view or not since .focus()\n\t\t\t// won't cause a scroll if the element is already focused and doesn't behave consistently when an element is partially out of view horizontally vs vertically\n\t\t\ttargetElement?.scrollIntoView?.({ block: \"nearest\" });\n\t\t\tconst { left: newLeft, top: newTop } =\n\t\t\t\ttargetElement.getBoundingClientRect();\n\t\t\t// Account for sub pixel differences from rounding\n\t\t\tif (\n\t\t\t\tMath.abs(originalLeft - newLeft) > 1 ||\n\t\t\t\tMath.abs(originalTop - newTop) > 1\n\t\t\t) {\n\t\t\t\topts?.containingElement?.scrollIntoView?.({\n\t\t\t\t\tblock: \"center\",\n\t\t\t\t\tinline: \"center\",\n\t\t\t\t});\n\t\t\t\ttargetElement.scrollIntoView?.({ block: \"nearest\" });\n\t\t\t}\n\t\t} else {\n\t\t\tlet scrollParent = getScrollParent(targetElement);\n\t\t\t// If scrolling is prevented, we don't want to scroll the body since it might move the overlay partially offscreen and the user can't scroll it back into view.\n\t\t\twhile (\n\t\t\t\ttargetElement &&\n\t\t\t\tscrollParent &&\n\t\t\t\ttargetElement !== root &&\n\t\t\t\tscrollParent !== root\n\t\t\t) {\n\t\t\t\tscrollIntoView(\n\t\t\t\t\tscrollParent as HTMLElement,\n\t\t\t\t\ttargetElement as HTMLElement,\n\t\t\t\t);\n\t\t\t\t// biome-ignore lint/style/noParameterAssign: used in loop\n\t\t\t\ttargetElement = scrollParent;\n\t\t\t\tscrollParent = getScrollParent(targetElement);\n\t\t\t}\n\t\t}\n\t}\n}\n", "import type { JSX } from \"solid-js\";\n\nexport const visuallyHiddenStyles: JSX.CSSProperties = {\n\tborder: \"0\",\n\tclip: \"rect(0 0 0 0)\",\n\t\"clip-path\": \"inset(50%)\",\n\theight: \"1px\",\n\tmargin: \"0 -1px -1px 0\",\n\toverflow: \"hidden\",\n\tpadding: \"0\",\n\tposition: \"absolute\",\n\twidth: \"1px\",\n\t\"white-space\": \"nowrap\",\n};\n", "import { access, isString, isNumber } from '@kobalte/utils';\nimport { createMemo } from 'solid-js';\n\n// src/primitives/create-collection/create-collection.ts\nfunction buildNodes(params) {\n let index = params.startIndex ?? 0;\n const level = params.startLevel ?? 0;\n const nodes = [];\n const getKey = (data) => {\n if (data == null) {\n return \"\";\n }\n const _getKey = params.getKey ?? \"key\";\n const dataKey = isString(_getKey) ? data[_getKey] : _getKey(data);\n return dataKey != null ? String(dataKey) : \"\";\n };\n const getTextValue = (data) => {\n if (data == null) {\n return \"\";\n }\n const _getTextValue = params.getTextValue ?? \"textValue\";\n const dataTextValue = isString(_getTextValue) ? data[_getTextValue] : _getTextValue(data);\n return dataTextValue != null ? String(dataTextValue) : \"\";\n };\n const getDisabled = (data) => {\n if (data == null) {\n return false;\n }\n const _getDisabled = params.getDisabled ?? \"disabled\";\n return (isString(_getDisabled) ? data[_getDisabled] : _getDisabled(data)) ?? false;\n };\n const getSectionChildren = (data) => {\n if (data == null) {\n return void 0;\n }\n if (isString(params.getSectionChildren)) {\n return data[params.getSectionChildren];\n }\n return params.getSectionChildren?.(data);\n };\n for (const data of params.dataSource) {\n if (isString(data) || isNumber(data)) {\n nodes.push({\n type: \"item\",\n rawValue: data,\n key: String(data),\n textValue: String(data),\n disabled: getDisabled(data),\n level,\n index\n });\n index++;\n continue;\n }\n if (getSectionChildren(data) != null) {\n nodes.push({\n type: \"section\",\n rawValue: data,\n key: \"\",\n // not applicable here\n textValue: \"\",\n // not applicable here\n disabled: false,\n // not applicable here\n level,\n index\n });\n index++;\n const sectionChildren = getSectionChildren(data) ?? [];\n if (sectionChildren.length > 0) {\n const childNodes = buildNodes({\n dataSource: sectionChildren,\n getKey: params.getKey,\n getTextValue: params.getTextValue,\n getDisabled: params.getDisabled,\n getSectionChildren: params.getSectionChildren,\n startIndex: index,\n startLevel: level + 1\n });\n nodes.push(...childNodes);\n index += childNodes.length;\n }\n } else {\n nodes.push({\n type: \"item\",\n rawValue: data,\n key: getKey(data),\n textValue: getTextValue(data),\n disabled: getDisabled(data),\n level,\n index\n });\n index++;\n }\n }\n return nodes;\n}\n\n// src/primitives/create-collection/create-collection.ts\nfunction createCollection(props, deps = []) {\n return createMemo(() => {\n const nodes = buildNodes({\n dataSource: access(props.dataSource),\n getKey: access(props.getKey),\n getTextValue: access(props.getTextValue),\n getDisabled: access(props.getDisabled),\n getSectionChildren: access(props.getSectionChildren)\n });\n for (let i = 0; i < deps.length; i++)\n deps[i]();\n return props.factory(nodes);\n });\n}\n\nexport { createCollection };\n", "import { createContext, createSignal, createMemo, onMount, onCleanup, useContext } from 'solid-js';\nimport { isServer, createComponent } from 'solid-js/web';\nimport { DateFormatter } from '@internationalized/date';\nimport { access } from '@kobalte/utils';\nimport { NumberFormatter } from '@internationalized/number';\n\n// src/i18n/create-collator.ts\n\n// src/i18n/utils.ts\nvar RTL_SCRIPTS = /* @__PURE__ */ new Set([\n \"Avst\",\n \"Arab\",\n \"Armi\",\n \"Syrc\",\n \"Samr\",\n \"Mand\",\n \"Thaa\",\n \"Mend\",\n \"Nkoo\",\n \"Adlm\",\n \"Rohg\",\n \"Hebr\"\n]);\nvar RTL_LANGS = /* @__PURE__ */ new Set([\n \"ae\",\n \"ar\",\n \"arc\",\n \"bcc\",\n \"bqi\",\n \"ckb\",\n \"dv\",\n \"fa\",\n \"glk\",\n \"he\",\n \"ku\",\n \"mzn\",\n \"nqo\",\n \"pnb\",\n \"ps\",\n \"sd\",\n \"ug\",\n \"ur\",\n \"yi\"\n]);\nfunction isRTL(locale) {\n if (Intl.Locale) {\n const script = new Intl.Locale(locale).maximize().script ?? \"\";\n return RTL_SCRIPTS.has(script);\n }\n const lang = locale.split(\"-\")[0];\n return RTL_LANGS.has(lang);\n}\nfunction getReadingDirection(locale) {\n return isRTL(locale) ? \"rtl\" : \"ltr\";\n}\n\n// src/i18n/create-default-locale.ts\nfunction getDefaultLocale() {\n let locale = typeof navigator !== \"undefined\" && // @ts-ignore\n (navigator.language || navigator.userLanguage) || \"en-US\";\n return {\n locale,\n direction: getReadingDirection(locale)\n };\n}\nvar currentLocale = getDefaultLocale();\nvar listeners = /* @__PURE__ */ new Set();\nfunction updateLocale() {\n currentLocale = getDefaultLocale();\n for (const listener of listeners) {\n listener(currentLocale);\n }\n}\nfunction createDefaultLocale() {\n const defaultSSRLocale = {\n locale: \"en-US\",\n direction: \"ltr\"\n };\n const [defaultClientLocale, setDefaultClientLocale] = createSignal(currentLocale);\n const defaultLocale = createMemo(\n () => isServer ? defaultSSRLocale : defaultClientLocale()\n );\n onMount(() => {\n if (listeners.size === 0) {\n window.addEventListener(\"languagechange\", updateLocale);\n }\n listeners.add(setDefaultClientLocale);\n onCleanup(() => {\n listeners.delete(setDefaultClientLocale);\n if (listeners.size === 0) {\n window.removeEventListener(\"languagechange\", updateLocale);\n }\n });\n });\n return {\n locale: () => defaultLocale().locale,\n direction: () => defaultLocale().direction\n };\n}\n\n// src/i18n/i18n-provider.tsx\nvar I18nContext = createContext();\nfunction I18nProvider(props) {\n const defaultLocale = createDefaultLocale();\n const context = {\n locale: () => props.locale ?? defaultLocale.locale(),\n direction: () => props.locale ? getReadingDirection(props.locale) : defaultLocale.direction()\n };\n return createComponent(I18nContext.Provider, {\n value: context,\n get children() {\n return props.children;\n }\n });\n}\nfunction useLocale() {\n const defaultLocale = createDefaultLocale();\n const context = useContext(I18nContext);\n return context || defaultLocale;\n}\n\n// src/i18n/create-collator.ts\nvar cache = /* @__PURE__ */ new Map();\nfunction createCollator(options) {\n const { locale } = useLocale();\n const cacheKey = createMemo(() => {\n return locale() + (options ? Object.entries(options).sort((a, b) => a[0] < b[0] ? -1 : 1).join() : \"\");\n });\n return createMemo(() => {\n const key = cacheKey();\n let collator;\n if (cache.has(key)) {\n collator = cache.get(key);\n }\n if (!collator) {\n collator = new Intl.Collator(locale(), options);\n cache.set(key, collator);\n }\n return collator;\n });\n}\nfunction createDateFormatter(options) {\n const { locale } = useLocale();\n return createMemo(() => new DateFormatter(locale(), access(options)));\n}\n\n// src/i18n/create-filter.ts\nfunction createFilter(options) {\n const collator = createCollator({\n usage: \"search\",\n ...options\n });\n const startsWith = (str, substr) => {\n if (substr.length === 0) {\n return true;\n }\n const normalizedStr = str.normalize(\"NFC\");\n const normalizedSubstr = substr.normalize(\"NFC\");\n return collator().compare(\n normalizedStr.slice(0, normalizedSubstr.length),\n normalizedSubstr\n ) === 0;\n };\n const endsWith = (str, substr) => {\n if (substr.length === 0) {\n return true;\n }\n const normalizedStr = str.normalize(\"NFC\");\n const normalizedSubstr = substr.normalize(\"NFC\");\n return collator().compare(\n normalizedStr.slice(-normalizedSubstr.length),\n normalizedSubstr\n ) === 0;\n };\n const contains = (str, substr) => {\n if (substr.length === 0) {\n return true;\n }\n const normalizedStr = str.normalize(\"NFC\");\n const normalizedSubstr = substr.normalize(\"NFC\");\n let scan = 0;\n const sliceLen = substr.length;\n for (; scan + sliceLen <= normalizedStr.length; scan++) {\n const slice = normalizedStr.slice(scan, scan + sliceLen);\n if (collator().compare(normalizedSubstr, slice) === 0) {\n return true;\n }\n }\n return false;\n };\n return {\n startsWith,\n endsWith,\n contains\n };\n}\nfunction createNumberFormatter(options) {\n const { locale } = useLocale();\n return createMemo(() => new NumberFormatter(locale(), access(options)));\n}\n\nexport { I18nProvider, RTL_LANGS, createCollator, createDateFormatter, createDefaultLocale, createFilter, createNumberFormatter, getDefaultLocale, getReadingDirection, isRTL, useLocale };\n", "import { accessWith } from '@kobalte/utils';\nimport { createSignal, createMemo, untrack } from 'solid-js';\n\n// src/primitives/create-controllable-signal/create-controllable-signal.ts\nfunction createControllableSignal(props) {\n const [_value, _setValue] = createSignal(props.defaultValue?.());\n const isControlled = createMemo(() => props.value?.() !== void 0);\n const value = createMemo(() => isControlled() ? props.value?.() : _value());\n const setValue = (next) => {\n untrack(() => {\n const nextValue = accessWith(next, value());\n if (!Object.is(nextValue, value())) {\n if (!isControlled()) {\n _setValue(nextValue);\n }\n props.onChange?.(nextValue);\n }\n return nextValue;\n });\n };\n return [value, setValue];\n}\nfunction createControllableBooleanSignal(props) {\n const [_value, setValue] = createControllableSignal(props);\n const value = () => _value() ?? false;\n return [value, setValue];\n}\nfunction createControllableArraySignal(props) {\n const [_value, setValue] = createControllableSignal(props);\n const value = () => _value() ?? [];\n return [value, setValue];\n}\nfunction createControllableSetSignal(props) {\n const [_value, setValue] = createControllableSignal(props);\n const value = () => _value() ?? /* @__PURE__ */ new Set();\n return [value, setValue];\n}\n\nexport { createControllableArraySignal, createControllableBooleanSignal, createControllableSetSignal, createControllableSignal };\n", "import { createCollection } from './JMA2RWU6.js';\nimport { useLocale } from './XHJPQEZP.js';\nimport { createControllableSignal } from './BLN63FDC.js';\nimport { mergeDefaultProps, access, createEventListener, scrollIntoView, focusWithoutScrolling, callHandler, getFocusableTreeWalker, isAppleDevice, isMac } from '@kobalte/utils';\nimport { createSignal, createMemo, createEffect, mergeProps, onMount, on, createComputed } from 'solid-js';\n\n// src/selection/types.ts\nvar Selection = class _Selection extends Set {\n anchorKey;\n currentKey;\n constructor(keys, anchorKey, currentKey) {\n super(keys);\n if (keys instanceof _Selection) {\n this.anchorKey = anchorKey || keys.anchorKey;\n this.currentKey = currentKey || keys.currentKey;\n } else {\n this.anchorKey = anchorKey;\n this.currentKey = currentKey;\n }\n }\n};\n\n// src/selection/create-controllable-selection-signal.ts\nfunction createControllableSelectionSignal(props) {\n const [_value, setValue] = createControllableSignal(props);\n const value = () => _value() ?? new Selection();\n return [value, setValue];\n}\nfunction isNonContiguousSelectionModifier(e) {\n return isAppleDevice() ? e.altKey : e.ctrlKey;\n}\nfunction isCtrlKeyPressed(e) {\n if (isMac()) {\n return e.metaKey;\n }\n return e.ctrlKey;\n}\nfunction convertSelection(selection) {\n return new Selection(selection);\n}\nfunction isSameSelection(setA, setB) {\n if (setA.size !== setB.size) {\n return false;\n }\n for (const item of setA) {\n if (!setB.has(item)) {\n return false;\n }\n }\n return true;\n}\n\n// src/selection/create-multiple-selection-state.ts\nfunction createMultipleSelectionState(props) {\n const mergedProps = mergeDefaultProps(\n {\n selectionMode: \"none\",\n selectionBehavior: \"toggle\"\n },\n props\n );\n const [isFocused, setFocused] = createSignal(false);\n const [focusedKey, setFocusedKey] = createSignal();\n const selectedKeysProp = createMemo(() => {\n const selection = access(mergedProps.selectedKeys);\n if (selection != null) {\n return convertSelection(selection);\n }\n return selection;\n });\n const defaultSelectedKeys = createMemo(() => {\n const defaultSelection = access(mergedProps.defaultSelectedKeys);\n if (defaultSelection != null) {\n return convertSelection(defaultSelection);\n }\n return new Selection();\n });\n const [selectedKeys, _setSelectedKeys] = createControllableSelectionSignal({\n value: selectedKeysProp,\n defaultValue: defaultSelectedKeys,\n onChange: (value) => mergedProps.onSelectionChange?.(value)\n });\n const [selectionBehavior, setSelectionBehavior] = createSignal(access(mergedProps.selectionBehavior));\n const selectionMode = () => access(mergedProps.selectionMode);\n const disallowEmptySelection = () => access(mergedProps.disallowEmptySelection) ?? false;\n const setSelectedKeys = (keys) => {\n if (access(mergedProps.allowDuplicateSelectionEvents) || !isSameSelection(keys, selectedKeys())) {\n _setSelectedKeys(keys);\n }\n };\n createEffect(() => {\n const selection = selectedKeys();\n if (access(mergedProps.selectionBehavior) === \"replace\" && selectionBehavior() === \"toggle\" && typeof selection === \"object\" && selection.size === 0) {\n setSelectionBehavior(\"replace\");\n }\n });\n createEffect(() => {\n setSelectionBehavior(access(mergedProps.selectionBehavior) ?? \"toggle\");\n });\n return {\n selectionMode,\n disallowEmptySelection,\n selectionBehavior,\n setSelectionBehavior,\n isFocused,\n setFocused,\n focusedKey,\n setFocusedKey,\n selectedKeys,\n setSelectedKeys\n };\n}\nfunction createTypeSelect(props) {\n const [search, setSearch] = createSignal(\"\");\n const [timeoutId, setTimeoutId] = createSignal(-1);\n const onKeyDown = (e) => {\n if (access(props.isDisabled)) {\n return;\n }\n const delegate = access(props.keyboardDelegate);\n const manager = access(props.selectionManager);\n if (!delegate.getKeyForSearch) {\n return;\n }\n const character = getStringForKey(e.key);\n if (!character || e.ctrlKey || e.metaKey) {\n return;\n }\n if (character === \" \" && search().trim().length > 0) {\n e.preventDefault();\n e.stopPropagation();\n }\n let newSearch = setSearch((prev) => prev + character);\n let key = delegate.getKeyForSearch(newSearch, manager.focusedKey()) ?? delegate.getKeyForSearch(newSearch);\n if (key == null && isAllSameLetter(newSearch)) {\n newSearch = newSearch[0];\n key = delegate.getKeyForSearch(newSearch, manager.focusedKey()) ?? delegate.getKeyForSearch(newSearch);\n }\n if (key != null) {\n manager.setFocusedKey(key);\n props.onTypeSelect?.(key);\n }\n clearTimeout(timeoutId());\n setTimeoutId(window.setTimeout(() => setSearch(\"\"), 500));\n };\n return {\n typeSelectHandlers: {\n onKeyDown\n }\n };\n}\nfunction getStringForKey(key) {\n if (key.length === 1 || !/^[A-Z]/i.test(key)) {\n return key;\n }\n return \"\";\n}\nfunction isAllSameLetter(search) {\n return search.split(\"\").every((letter) => letter === search[0]);\n}\nfunction createSelectableCollection(props, ref, scrollRef) {\n const defaultProps = {\n selectOnFocus: () => access(props.selectionManager).selectionBehavior() === \"replace\"\n };\n const mergedProps = mergeProps(defaultProps, props);\n const finalScrollRef = () => scrollRef?.() ?? ref();\n const { direction } = useLocale();\n let scrollPos = { top: 0, left: 0 };\n createEventListener(\n () => !access(mergedProps.isVirtualized) ? finalScrollRef() : void 0,\n \"scroll\",\n () => {\n const scrollEl = finalScrollRef();\n if (!scrollEl) {\n return;\n }\n scrollPos = {\n top: scrollEl.scrollTop,\n left: scrollEl.scrollLeft\n };\n }\n );\n const { typeSelectHandlers } = createTypeSelect({\n isDisabled: () => access(mergedProps.disallowTypeAhead),\n keyboardDelegate: () => access(mergedProps.keyboardDelegate),\n selectionManager: () => access(mergedProps.selectionManager)\n });\n const orientation = () => access(mergedProps.orientation) ?? \"vertical\";\n const onKeyDown = (e) => {\n callHandler(e, typeSelectHandlers.onKeyDown);\n if (e.altKey && e.key === \"Tab\") {\n e.preventDefault();\n }\n const refEl = ref();\n if (!refEl?.contains(e.target)) {\n return;\n }\n const manager = access(mergedProps.selectionManager);\n const selectOnFocus = access(mergedProps.selectOnFocus);\n const navigateToKey = (key) => {\n if (key != null) {\n manager.setFocusedKey(key);\n if (e.shiftKey && manager.selectionMode() === \"multiple\") {\n manager.extendSelection(key);\n } else if (selectOnFocus && !isNonContiguousSelectionModifier(e)) {\n manager.replaceSelection(key);\n }\n }\n };\n const delegate = access(mergedProps.keyboardDelegate);\n const shouldFocusWrap = access(mergedProps.shouldFocusWrap);\n const focusedKey = manager.focusedKey();\n switch (e.key) {\n case (orientation() === \"vertical\" ? \"ArrowDown\" : \"ArrowRight\"): {\n if (delegate.getKeyBelow) {\n e.preventDefault();\n let nextKey;\n if (focusedKey != null) {\n nextKey = delegate.getKeyBelow(focusedKey);\n } else {\n nextKey = delegate.getFirstKey?.();\n }\n if (nextKey == null && shouldFocusWrap) {\n nextKey = delegate.getFirstKey?.(focusedKey);\n }\n navigateToKey(nextKey);\n }\n break;\n }\n case (orientation() === \"vertical\" ? \"ArrowUp\" : \"ArrowLeft\"): {\n if (delegate.getKeyAbove) {\n e.preventDefault();\n let nextKey;\n if (focusedKey != null) {\n nextKey = delegate.getKeyAbove(focusedKey);\n } else {\n nextKey = delegate.getLastKey?.();\n }\n if (nextKey == null && shouldFocusWrap) {\n nextKey = delegate.getLastKey?.(focusedKey);\n }\n navigateToKey(nextKey);\n }\n break;\n }\n case (orientation() === \"vertical\" ? \"ArrowLeft\" : \"ArrowUp\"): {\n if (delegate.getKeyLeftOf) {\n e.preventDefault();\n const isRTL = direction() === \"rtl\";\n let nextKey;\n if (focusedKey != null) {\n nextKey = delegate.getKeyLeftOf(focusedKey);\n } else {\n nextKey = isRTL ? delegate.getFirstKey?.() : delegate.getLastKey?.();\n }\n navigateToKey(nextKey);\n }\n break;\n }\n case (orientation() === \"vertical\" ? \"ArrowRight\" : \"ArrowDown\"): {\n if (delegate.getKeyRightOf) {\n e.preventDefault();\n const isRTL = direction() === \"rtl\";\n let nextKey;\n if (focusedKey != null) {\n nextKey = delegate.getKeyRightOf(focusedKey);\n } else {\n nextKey = isRTL ? delegate.getLastKey?.() : delegate.getFirstKey?.();\n }\n navigateToKey(nextKey);\n }\n break;\n }\n case \"Home\":\n if (delegate.getFirstKey) {\n e.preventDefault();\n const firstKey = delegate.getFirstKey(\n focusedKey,\n isCtrlKeyPressed(e)\n );\n if (firstKey != null) {\n manager.setFocusedKey(firstKey);\n if (isCtrlKeyPressed(e) && e.shiftKey && manager.selectionMode() === \"multiple\") {\n manager.extendSelection(firstKey);\n } else if (selectOnFocus) {\n manager.replaceSelection(firstKey);\n }\n }\n }\n break;\n case \"End\":\n if (delegate.getLastKey) {\n e.preventDefault();\n const lastKey = delegate.getLastKey(focusedKey, isCtrlKeyPressed(e));\n if (lastKey != null) {\n manager.setFocusedKey(lastKey);\n if (isCtrlKeyPressed(e) && e.shiftKey && manager.selectionMode() === \"multiple\") {\n manager.extendSelection(lastKey);\n } else if (selectOnFocus) {\n manager.replaceSelection(lastKey);\n }\n }\n }\n break;\n case \"PageDown\":\n if (delegate.getKeyPageBelow && focusedKey != null) {\n e.preventDefault();\n const nextKey = delegate.getKeyPageBelow(focusedKey);\n navigateToKey(nextKey);\n }\n break;\n case \"PageUp\":\n if (delegate.getKeyPageAbove && focusedKey != null) {\n e.preventDefault();\n const nextKey = delegate.getKeyPageAbove(focusedKey);\n navigateToKey(nextKey);\n }\n break;\n case \"a\":\n if (isCtrlKeyPressed(e) && manager.selectionMode() === \"multiple\" && access(mergedProps.disallowSelectAll) !== true) {\n e.preventDefault();\n manager.selectAll();\n }\n break;\n case \"Escape\":\n if (!e.defaultPrevented) {\n e.preventDefault();\n if (!access(mergedProps.disallowEmptySelection)) {\n manager.clearSelection();\n }\n }\n break;\n case \"Tab\": {\n if (!access(mergedProps.allowsTabNavigation)) {\n if (e.shiftKey) {\n refEl.focus();\n } else {\n const walker = getFocusableTreeWalker(refEl, { tabbable: true });\n let next;\n let last;\n do {\n last = walker.lastChild();\n if (last) {\n next = last;\n }\n } while (last);\n if (next && !next.contains(document.activeElement)) {\n focusWithoutScrolling(next);\n }\n }\n break;\n }\n }\n }\n };\n const onFocusIn = (e) => {\n const manager = access(mergedProps.selectionManager);\n const delegate = access(mergedProps.keyboardDelegate);\n const selectOnFocus = access(mergedProps.selectOnFocus);\n if (manager.isFocused()) {\n if (!e.currentTarget.contains(e.target)) {\n manager.setFocused(false);\n }\n return;\n }\n if (!e.currentTarget.contains(e.target)) {\n return;\n }\n manager.setFocused(true);\n if (manager.focusedKey() == null) {\n const navigateToFirstKey = (key) => {\n if (key == null) {\n return;\n }\n manager.setFocusedKey(key);\n if (selectOnFocus) {\n manager.replaceSelection(key);\n }\n };\n const relatedTarget = e.relatedTarget;\n if (relatedTarget && e.currentTarget.compareDocumentPosition(relatedTarget) & Node.DOCUMENT_POSITION_FOLLOWING) {\n navigateToFirstKey(\n manager.lastSelectedKey() ?? delegate.getLastKey?.()\n );\n } else {\n navigateToFirstKey(\n manager.firstSelectedKey() ?? delegate.getFirstKey?.()\n );\n }\n } else if (!access(mergedProps.isVirtualized)) {\n const scrollEl = finalScrollRef();\n if (scrollEl) {\n scrollEl.scrollTop = scrollPos.top;\n scrollEl.scrollLeft = scrollPos.left;\n const element = scrollEl.querySelector(\n `[data-key=\"${manager.focusedKey()}\"]`\n );\n if (element) {\n focusWithoutScrolling(element);\n scrollIntoView(scrollEl, element);\n }\n }\n }\n };\n const onFocusOut = (e) => {\n const manager = access(mergedProps.selectionManager);\n if (!e.currentTarget.contains(e.relatedTarget)) {\n manager.setFocused(false);\n }\n };\n const onMouseDown = (e) => {\n if (finalScrollRef() === e.target) {\n e.preventDefault();\n }\n };\n const tryAutoFocus = () => {\n const autoFocus = access(mergedProps.autoFocus);\n if (!autoFocus) {\n return;\n }\n const manager = access(mergedProps.selectionManager);\n const delegate = access(mergedProps.keyboardDelegate);\n let focusedKey;\n if (autoFocus === \"first\") {\n focusedKey = delegate.getFirstKey?.();\n }\n if (autoFocus === \"last\") {\n focusedKey = delegate.getLastKey?.();\n }\n const selectedKeys = manager.selectedKeys();\n if (selectedKeys.size) {\n focusedKey = selectedKeys.values().next().value;\n }\n manager.setFocused(true);\n manager.setFocusedKey(focusedKey);\n const refEl = ref();\n if (refEl && focusedKey == null && !access(mergedProps.shouldUseVirtualFocus)) {\n focusWithoutScrolling(refEl);\n }\n };\n onMount(() => {\n if (mergedProps.deferAutoFocus) {\n setTimeout(tryAutoFocus, 0);\n } else {\n tryAutoFocus();\n }\n });\n createEffect(\n on(\n [\n finalScrollRef,\n () => access(mergedProps.isVirtualized),\n () => access(mergedProps.selectionManager).focusedKey()\n ],\n (newValue) => {\n const [scrollEl, isVirtualized, focusedKey] = newValue;\n if (isVirtualized) {\n focusedKey && mergedProps.scrollToKey?.(focusedKey);\n } else {\n if (focusedKey && scrollEl) {\n const element = scrollEl.querySelector(\n `[data-key=\"${focusedKey}\"]`\n );\n if (element) {\n scrollIntoView(scrollEl, element);\n }\n }\n }\n }\n )\n );\n const tabIndex = createMemo(() => {\n if (access(mergedProps.shouldUseVirtualFocus)) {\n return void 0;\n }\n return access(mergedProps.selectionManager).focusedKey() == null ? 0 : -1;\n });\n return {\n tabIndex,\n onKeyDown,\n onMouseDown,\n onFocusIn,\n onFocusOut\n };\n}\nfunction createSelectableItem(props, ref) {\n const manager = () => access(props.selectionManager);\n const key = () => access(props.key);\n const shouldUseVirtualFocus = () => access(props.shouldUseVirtualFocus);\n const onSelect = (e) => {\n if (manager().selectionMode() === \"none\") {\n return;\n }\n if (manager().selectionMode() === \"single\") {\n if (manager().isSelected(key()) && !manager().disallowEmptySelection()) {\n manager().toggleSelection(key());\n } else {\n manager().replaceSelection(key());\n }\n } else if (e?.shiftKey) {\n manager().extendSelection(key());\n } else if (manager().selectionBehavior() === \"toggle\" || isCtrlKeyPressed(e) || \"pointerType\" in e && e.pointerType === \"touch\") {\n manager().toggleSelection(key());\n } else {\n manager().replaceSelection(key());\n }\n };\n const isSelected = () => manager().isSelected(key());\n const isDisabled = () => access(props.disabled) || manager().isDisabled(key());\n const allowsSelection = () => !isDisabled() && manager().canSelectItem(key());\n let pointerDownType = null;\n const onPointerDown = (e) => {\n if (!allowsSelection()) {\n return;\n }\n pointerDownType = e.pointerType;\n if (e.pointerType === \"mouse\" && e.button === 0 && !access(props.shouldSelectOnPressUp)) {\n onSelect(e);\n }\n };\n const onPointerUp = (e) => {\n if (!allowsSelection()) {\n return;\n }\n if (e.pointerType === \"mouse\" && e.button === 0 && access(props.shouldSelectOnPressUp) && access(props.allowsDifferentPressOrigin)) {\n onSelect(e);\n }\n };\n const onClick = (e) => {\n if (!allowsSelection()) {\n return;\n }\n if (access(props.shouldSelectOnPressUp) && !access(props.allowsDifferentPressOrigin) || pointerDownType !== \"mouse\") {\n onSelect(e);\n }\n };\n const onKeyDown = (e) => {\n if (!allowsSelection() || ![\"Enter\", \" \"].includes(e.key)) {\n return;\n }\n if (isNonContiguousSelectionModifier(e)) {\n manager().toggleSelection(key());\n } else {\n onSelect(e);\n }\n };\n const onMouseDown = (e) => {\n if (isDisabled()) {\n e.preventDefault();\n }\n };\n const onFocus = (e) => {\n const refEl = ref();\n if (shouldUseVirtualFocus() || isDisabled() || !refEl) {\n return;\n }\n if (e.target === refEl) {\n manager().setFocusedKey(key());\n }\n };\n const tabIndex = createMemo(() => {\n if (shouldUseVirtualFocus() || isDisabled()) {\n return void 0;\n }\n return key() === manager().focusedKey() ? 0 : -1;\n });\n const dataKey = createMemo(() => {\n return access(props.virtualized) ? void 0 : key();\n });\n createEffect(\n on(\n [\n ref,\n key,\n shouldUseVirtualFocus,\n () => manager().focusedKey(),\n () => manager().isFocused()\n ],\n ([refEl, key2, shouldUseVirtualFocus2, focusedKey, isFocused]) => {\n if (refEl && key2 === focusedKey && isFocused && !shouldUseVirtualFocus2 && document.activeElement !== refEl) {\n if (props.focus) {\n props.focus();\n } else {\n focusWithoutScrolling(refEl);\n }\n }\n }\n )\n );\n return {\n isSelected,\n isDisabled,\n allowsSelection,\n tabIndex,\n dataKey,\n onPointerDown,\n onPointerUp,\n onClick,\n onKeyDown,\n onMouseDown,\n onFocus\n };\n}\n\n// src/selection/selection-manager.ts\nvar SelectionManager = class {\n collection;\n state;\n constructor(collection, state) {\n this.collection = collection;\n this.state = state;\n }\n /** The type of selection that is allowed in the collection. */\n selectionMode() {\n return this.state.selectionMode();\n }\n /** Whether the collection allows empty selection. */\n disallowEmptySelection() {\n return this.state.disallowEmptySelection();\n }\n /** The selection behavior for the collection. */\n selectionBehavior() {\n return this.state.selectionBehavior();\n }\n /** Sets the selection behavior for the collection. */\n setSelectionBehavior(selectionBehavior) {\n this.state.setSelectionBehavior(selectionBehavior);\n }\n /** Whether the collection is currently focused. */\n isFocused() {\n return this.state.isFocused();\n }\n /** Sets whether the collection is focused. */\n setFocused(isFocused) {\n this.state.setFocused(isFocused);\n }\n /** The current focused key in the collection. */\n focusedKey() {\n return this.state.focusedKey();\n }\n /** Sets the focused key. */\n setFocusedKey(key) {\n if (key == null || this.collection().getItem(key)) {\n this.state.setFocusedKey(key);\n }\n }\n /** The currently selected keys in the collection. */\n selectedKeys() {\n return this.state.selectedKeys();\n }\n /** Returns whether a key is selected. */\n isSelected(key) {\n if (this.state.selectionMode() === \"none\") {\n return false;\n }\n const retrievedKey = this.getKey(key);\n if (retrievedKey == null) {\n return false;\n }\n return this.state.selectedKeys().has(retrievedKey);\n }\n /** Whether the selection is empty. */\n isEmpty() {\n return this.state.selectedKeys().size === 0;\n }\n /** Whether all items in the collection are selected. */\n isSelectAll() {\n if (this.isEmpty()) {\n return false;\n }\n const selectedKeys = this.state.selectedKeys();\n return this.getAllSelectableKeys().every((k) => selectedKeys.has(k));\n }\n firstSelectedKey() {\n let first;\n for (const key of this.state.selectedKeys()) {\n const item = this.collection().getItem(key);\n const isItemBeforeFirst = item?.index != null && first?.index != null && item.index < first.index;\n if (!first || isItemBeforeFirst) {\n first = item;\n }\n }\n return first?.key;\n }\n lastSelectedKey() {\n let last;\n for (const key of this.state.selectedKeys()) {\n const item = this.collection().getItem(key);\n const isItemAfterLast = item?.index != null && last?.index != null && item.index > last.index;\n if (!last || isItemAfterLast) {\n last = item;\n }\n }\n return last?.key;\n }\n /** Extends the selection to the given key. */\n extendSelection(toKey) {\n if (this.selectionMode() === \"none\") {\n return;\n }\n if (this.selectionMode() === \"single\") {\n this.replaceSelection(toKey);\n return;\n }\n const retrievedToKey = this.getKey(toKey);\n if (retrievedToKey == null) {\n return;\n }\n const selectedKeys = this.state.selectedKeys();\n const anchorKey = selectedKeys.anchorKey || retrievedToKey;\n const selection = new Selection(selectedKeys, anchorKey, retrievedToKey);\n for (const key of this.getKeyRange(\n anchorKey,\n selectedKeys.currentKey || retrievedToKey\n )) {\n selection.delete(key);\n }\n for (const key of this.getKeyRange(retrievedToKey, anchorKey)) {\n if (this.canSelectItem(key)) {\n selection.add(key);\n }\n }\n this.state.setSelectedKeys(selection);\n }\n getKeyRange(from, to) {\n const fromItem = this.collection().getItem(from);\n const toItem = this.collection().getItem(to);\n if (fromItem && toItem) {\n if (fromItem.index != null && toItem.index != null && fromItem.index <= toItem.index) {\n return this.getKeyRangeInternal(from, to);\n }\n return this.getKeyRangeInternal(to, from);\n }\n return [];\n }\n getKeyRangeInternal(from, to) {\n const keys = [];\n let key = from;\n while (key != null) {\n const item = this.collection().getItem(key);\n if (item && item.type === \"item\") {\n keys.push(key);\n }\n if (key === to) {\n return keys;\n }\n key = this.collection().getKeyAfter(key);\n }\n return [];\n }\n getKey(key) {\n const item = this.collection().getItem(key);\n if (!item) {\n return key;\n }\n if (!item || item.type !== \"item\") {\n return null;\n }\n return item.key;\n }\n /** Toggles whether the given key is selected. */\n toggleSelection(key) {\n if (this.selectionMode() === \"none\") {\n return;\n }\n if (this.selectionMode() === \"single\" && !this.isSelected(key)) {\n this.replaceSelection(key);\n return;\n }\n const retrievedKey = this.getKey(key);\n if (retrievedKey == null) {\n return;\n }\n const keys = new Selection(this.state.selectedKeys());\n if (keys.has(retrievedKey)) {\n keys.delete(retrievedKey);\n } else if (this.canSelectItem(retrievedKey)) {\n keys.add(retrievedKey);\n keys.anchorKey = retrievedKey;\n keys.currentKey = retrievedKey;\n }\n if (this.disallowEmptySelection() && keys.size === 0) {\n return;\n }\n this.state.setSelectedKeys(keys);\n }\n /** Replaces the selection with only the given key. */\n replaceSelection(key) {\n if (this.selectionMode() === \"none\") {\n return;\n }\n const retrievedKey = this.getKey(key);\n if (retrievedKey == null) {\n return;\n }\n const selection = this.canSelectItem(retrievedKey) ? new Selection([retrievedKey], retrievedKey, retrievedKey) : new Selection();\n this.state.setSelectedKeys(selection);\n }\n /** Replaces the selection with the given keys. */\n setSelectedKeys(keys) {\n if (this.selectionMode() === \"none\") {\n return;\n }\n const selection = new Selection();\n for (const key of keys) {\n const retrievedKey = this.getKey(key);\n if (retrievedKey != null) {\n selection.add(retrievedKey);\n if (this.selectionMode() === \"single\") {\n break;\n }\n }\n }\n this.state.setSelectedKeys(selection);\n }\n /** Selects all items in the collection. */\n selectAll() {\n if (this.selectionMode() === \"multiple\") {\n this.state.setSelectedKeys(new Set(this.getAllSelectableKeys()));\n }\n }\n /**\n * Removes all keys from the selection.\n */\n clearSelection() {\n const selectedKeys = this.state.selectedKeys();\n if (!this.disallowEmptySelection() && selectedKeys.size > 0) {\n this.state.setSelectedKeys(new Selection());\n }\n }\n /**\n * Toggles between select all and an empty selection.\n */\n toggleSelectAll() {\n if (this.isSelectAll()) {\n this.clearSelection();\n } else {\n this.selectAll();\n }\n }\n select(key, e) {\n if (this.selectionMode() === \"none\") {\n return;\n }\n if (this.selectionMode() === \"single\") {\n if (this.isSelected(key) && !this.disallowEmptySelection()) {\n this.toggleSelection(key);\n } else {\n this.replaceSelection(key);\n }\n } else if (this.selectionBehavior() === \"toggle\" || e && e.pointerType === \"touch\") {\n this.toggleSelection(key);\n } else {\n this.replaceSelection(key);\n }\n }\n /** Returns whether the current selection is equal to the given selection. */\n isSelectionEqual(selection) {\n if (selection === this.state.selectedKeys()) {\n return true;\n }\n const selectedKeys = this.selectedKeys();\n if (selection.size !== selectedKeys.size) {\n return false;\n }\n for (const key of selection) {\n if (!selectedKeys.has(key)) {\n return false;\n }\n }\n for (const key of selectedKeys) {\n if (!selection.has(key)) {\n return false;\n }\n }\n return true;\n }\n canSelectItem(key) {\n if (this.state.selectionMode() === \"none\") {\n return false;\n }\n const item = this.collection().getItem(key);\n return item != null && !item.disabled;\n }\n isDisabled(key) {\n const item = this.collection().getItem(key);\n return !item || item.disabled;\n }\n getAllSelectableKeys() {\n const keys = [];\n const addKeys = (key) => {\n while (key != null) {\n if (this.canSelectItem(key)) {\n const item = this.collection().getItem(key);\n if (!item) {\n continue;\n }\n if (item.type === \"item\") {\n keys.push(key);\n }\n }\n key = this.collection().getKeyAfter(key);\n }\n };\n addKeys(this.collection().getFirstKey());\n return keys;\n }\n};\n\n// src/list/list-collection.ts\nvar ListCollection = class {\n keyMap = /* @__PURE__ */ new Map();\n iterable;\n firstKey;\n lastKey;\n constructor(nodes) {\n this.iterable = nodes;\n for (const node of nodes) {\n this.keyMap.set(node.key, node);\n }\n if (this.keyMap.size === 0) {\n return;\n }\n let last;\n let index = 0;\n for (const [key, node] of this.keyMap) {\n if (last) {\n last.nextKey = key;\n node.prevKey = last.key;\n } else {\n this.firstKey = key;\n node.prevKey = void 0;\n }\n if (node.type === \"item\") {\n node.index = index++;\n }\n last = node;\n last.nextKey = void 0;\n }\n this.lastKey = last.key;\n }\n *[Symbol.iterator]() {\n yield* this.iterable;\n }\n getSize() {\n return this.keyMap.size;\n }\n getKeys() {\n return this.keyMap.keys();\n }\n getKeyBefore(key) {\n return this.keyMap.get(key)?.prevKey;\n }\n getKeyAfter(key) {\n return this.keyMap.get(key)?.nextKey;\n }\n getFirstKey() {\n return this.firstKey;\n }\n getLastKey() {\n return this.lastKey;\n }\n getItem(key) {\n return this.keyMap.get(key);\n }\n at(idx) {\n const keys = [...this.getKeys()];\n return this.getItem(keys[idx]);\n }\n};\nfunction createListState(props) {\n const selectionState = createMultipleSelectionState(props);\n const factory = (nodes) => {\n return props.filter ? new ListCollection(props.filter(nodes)) : new ListCollection(nodes);\n };\n const collection = createCollection(\n {\n dataSource: () => access(props.dataSource),\n getKey: () => access(props.getKey),\n getTextValue: () => access(props.getTextValue),\n getDisabled: () => access(props.getDisabled),\n getSectionChildren: () => access(props.getSectionChildren),\n factory\n },\n [() => props.filter]\n );\n const selectionManager = new SelectionManager(collection, selectionState);\n createComputed(() => {\n const focusedKey = selectionState.focusedKey();\n if (focusedKey != null && !collection().getItem(focusedKey)) {\n selectionState.setFocusedKey(void 0);\n }\n });\n return {\n collection,\n selectionManager: () => selectionManager\n };\n}\n\nexport { ListCollection, Selection, SelectionManager, createListState, createMultipleSelectionState, createSelectableCollection, createSelectableItem, createTypeSelect, isSameSelection };\n", "import { createControllableArraySignal } from './BLN63FDC.js';\nimport { access, mergeDefaultProps, getDocument, addItemToArray } from '@kobalte/utils';\nimport { createContext, useContext, createEffect, onCleanup, createComponent } from 'solid-js';\n\nvar DomCollectionContext = createContext();\nfunction useOptionalDomCollectionContext() {\n return useContext(DomCollectionContext);\n}\nfunction useDomCollectionContext() {\n const context = useOptionalDomCollectionContext();\n if (context === void 0) {\n throw new Error(\n \"[kobalte]: `useDomCollectionContext` must be used within a `DomCollectionProvider` component\"\n );\n }\n return context;\n}\nfunction isElementPreceding(a, b) {\n return Boolean(\n b.compareDocumentPosition(a) & Node.DOCUMENT_POSITION_PRECEDING\n );\n}\nfunction findDOMIndex(items, item) {\n const itemEl = item.ref();\n if (!itemEl) {\n return -1;\n }\n let length = items.length;\n if (!length) {\n return -1;\n }\n while (length--) {\n const currentItemEl = items[length]?.ref();\n if (!currentItemEl) {\n continue;\n }\n if (isElementPreceding(currentItemEl, itemEl)) {\n return length + 1;\n }\n }\n return 0;\n}\nfunction sortBasedOnDOMPosition(items) {\n const pairs = items.map((item, index) => [index, item]);\n let isOrderDifferent = false;\n pairs.sort(([indexA, a], [indexB, b]) => {\n const elementA = a.ref();\n const elementB = b.ref();\n if (elementA === elementB) {\n return 0;\n }\n if (!elementA || !elementB) {\n return 0;\n }\n if (isElementPreceding(elementA, elementB)) {\n if (indexA > indexB) {\n isOrderDifferent = true;\n }\n return -1;\n }\n if (indexA < indexB) {\n isOrderDifferent = true;\n }\n return 1;\n });\n if (isOrderDifferent) {\n return pairs.map(([_, item]) => item);\n }\n return items;\n}\nfunction setItemsBasedOnDOMPosition(items, setItems) {\n const sortedItems = sortBasedOnDOMPosition(items);\n if (items !== sortedItems) {\n setItems(sortedItems);\n }\n}\nfunction getCommonParent(items) {\n const firstItem = items[0];\n const lastItemEl = items[items.length - 1]?.ref();\n let parentEl = firstItem?.ref()?.parentElement;\n while (parentEl) {\n if (lastItemEl && parentEl.contains(lastItemEl)) {\n return parentEl;\n }\n parentEl = parentEl.parentElement;\n }\n return getDocument(parentEl).body;\n}\nfunction createTimeoutObserver(items, setItems) {\n createEffect(() => {\n const timeout = setTimeout(() => {\n setItemsBasedOnDOMPosition(items(), setItems);\n });\n onCleanup(() => clearTimeout(timeout));\n });\n}\nfunction createSortBasedOnDOMPosition(items, setItems) {\n if (typeof IntersectionObserver !== \"function\") {\n createTimeoutObserver(items, setItems);\n return;\n }\n let previousItems = [];\n createEffect(() => {\n const callback = () => {\n const hasPreviousItems = !!previousItems.length;\n previousItems = items();\n if (!hasPreviousItems) {\n return;\n }\n setItemsBasedOnDOMPosition(items(), setItems);\n };\n const root = getCommonParent(items());\n const observer = new IntersectionObserver(callback, { root });\n for (const item of items()) {\n const itemEl = item.ref();\n if (itemEl) {\n observer.observe(itemEl);\n }\n }\n onCleanup(() => observer.disconnect());\n });\n}\n\n// src/primitives/create-dom-collection/create-dom-collection.ts\nfunction createDomCollection(props = {}) {\n const [items, setItems] = createControllableArraySignal({\n value: () => access(props.items),\n onChange: (value) => props.onItemsChange?.(value)\n });\n createSortBasedOnDOMPosition(items, setItems);\n const registerItem = (item) => {\n setItems((prevItems) => {\n const index = findDOMIndex(prevItems, item);\n return addItemToArray(prevItems, item, index);\n });\n return () => {\n setItems((prevItems) => {\n const nextItems = prevItems.filter(\n (prevItem) => prevItem.ref() !== item.ref()\n );\n if (prevItems.length === nextItems.length) {\n return prevItems;\n }\n return nextItems;\n });\n };\n };\n const DomCollectionProvider = (props2) => {\n return createComponent(DomCollectionContext.Provider, {\n value: { registerItem },\n get children() {\n return props2.children;\n }\n });\n };\n return { DomCollectionProvider };\n}\nfunction createDomCollectionItem(props) {\n const context = useDomCollectionContext();\n const mergedProps = mergeDefaultProps({ shouldRegisterItem: true }, props);\n createEffect(() => {\n if (!mergedProps.shouldRegisterItem) {\n return;\n }\n const unregister = context.registerItem(mergedProps.getItem());\n onCleanup(unregister);\n });\n}\n\nexport { DomCollectionContext, createDomCollection, createDomCollectionItem, useDomCollectionContext, useOptionalDomCollectionContext };\n", "import { createComponent, Dynamic, mergeProps } from 'solid-js/web';\nimport { splitProps } from 'solid-js';\n\n// src/polymorphic/polymorphic.tsx\nfunction Polymorphic(props) {\n const [local, others] = splitProps(props, [\"as\"]);\n if (!local.as) {\n throw new Error(\"[kobalte]: Polymorphic is missing the required `as` prop.\");\n }\n return (\n // @ts-ignore: Props are valid but not worth calculating\n createComponent(Dynamic, mergeProps(others, {\n get component() {\n return local.as;\n }\n }))\n );\n}\n\nexport { Polymorphic };\n", "var __defProp = Object.defineProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\n\nexport { __export };\n", "// src/reactivity/lib.ts\nvar access = (v) => typeof v === \"function\" ? v() : v;\nvar chain = (callbacks) => {\n return (...args) => {\n for (const callback of callbacks) callback && callback(...args);\n };\n};\nvar mergeRefs = (...refs) => {\n return chain(refs);\n};\nvar some = (...signals) => {\n return signals.some((signal) => !!signal());\n};\n\nexport { access, chain, mergeRefs, some };\n", "import { access } from '@corvu/utils/reactivity';\nimport { createMemo, createSignal, createEffect, untrack, onCleanup } from 'solid-js';\n\n// src/presence.ts\nvar createPresence = (props) => {\n const refStyles = createMemo(() => {\n const element = access(props.element);\n if (!element) return;\n return getComputedStyle(element);\n });\n const getAnimationName = () => {\n return refStyles()?.animationName ?? \"none\";\n };\n const [presentState, setPresentState] = createSignal(access(props.show) ? \"present\" : \"hidden\");\n let animationName = \"none\";\n createEffect((prevShow) => {\n const show = access(props.show);\n untrack(() => {\n if (prevShow === show) return show;\n const prevAnimationName = animationName;\n const currentAnimationName = getAnimationName();\n if (show) {\n setPresentState(\"present\");\n } else if (currentAnimationName === \"none\" || refStyles()?.display === \"none\") {\n setPresentState(\"hidden\");\n } else {\n const isAnimating = prevAnimationName !== currentAnimationName;\n if (prevShow === true && isAnimating) {\n setPresentState(\"hiding\");\n } else {\n setPresentState(\"hidden\");\n }\n }\n });\n return show;\n });\n createEffect(() => {\n const element = access(props.element);\n if (!element) return;\n const handleAnimationStart = (event) => {\n if (event.target === element) {\n animationName = getAnimationName();\n }\n };\n const handleAnimationEnd = (event) => {\n const currentAnimationName = getAnimationName();\n const isCurrentAnimation = currentAnimationName.includes(\n event.animationName\n );\n if (event.target === element && isCurrentAnimation && presentState() === \"hiding\") {\n setPresentState(\"hidden\");\n }\n };\n element.addEventListener(\"animationstart\", handleAnimationStart);\n element.addEventListener(\"animationcancel\", handleAnimationEnd);\n element.addEventListener(\"animationend\", handleAnimationEnd);\n onCleanup(() => {\n element.removeEventListener(\"animationstart\", handleAnimationStart);\n element.removeEventListener(\"animationcancel\", handleAnimationEnd);\n element.removeEventListener(\"animationend\", handleAnimationEnd);\n });\n });\n return {\n present: () => presentState() === \"present\" || presentState() === \"hiding\",\n state: presentState,\n setState: setPresentState\n };\n};\nvar presence_default = createPresence;\n\n// src/index.ts\nvar src_default = presence_default;\n\nexport { src_default as default };\n", "import { makeEventListener } from \"@solid-primitives/event-listener\";\nimport { createHydratableSingletonRoot } from \"@solid-primitives/rootless\";\nimport { createHydratableStaticStore, createStaticStore } from \"@solid-primitives/static-store\";\nimport { access, asArray, handleDiffArray, noop, filterNonNullable, } from \"@solid-primitives/utils\";\nimport { createEffect, onCleanup, sharedConfig } from \"solid-js\";\nimport { isServer } from \"solid-js/web\";\n/**\n * Instantiate a new ResizeObserver that automatically get's disposed on cleanup.\n *\n * @param callback handler called once element size changes\n * @param options ResizeObserver options\n * @returns `observe` and `unobserve` functions\n */\nexport function makeResizeObserver(callback, options) {\n if (isServer) {\n return { observe: noop, unobserve: noop };\n }\n const observer = new ResizeObserver(callback);\n onCleanup(observer.disconnect.bind(observer));\n return {\n observe: ref => observer.observe(ref, options),\n unobserve: observer.unobserve.bind(observer),\n };\n}\n/**\n * Create resize observer instance, listening for changes to size of the reactive {@link targets} array.\n *\n * @param targets Elements to be observed. Can be a reactive signal or store top-level array.\n * @param onResize - Function handler to trigger on element resize\n *\n * @example\n * ```tsx\n * let ref\n * createResizeObserver(() => ref, ({ width, height }, el) => {\n * if (el === ref) console.log(width, height)\n * });\n * <div ref={ref}/>\n * ```\n */\nexport function createResizeObserver(targets, onResize, options) {\n if (isServer)\n return;\n const previousMap = new WeakMap(), { observe, unobserve } = makeResizeObserver(entries => {\n for (const entry of entries) {\n const { contentRect, target } = entry, width = Math.round(contentRect.width), height = Math.round(contentRect.height), previous = previousMap.get(target);\n if (!previous || previous.width !== width || previous.height !== height) {\n onResize(contentRect, target, entry);\n previousMap.set(target, { width, height });\n }\n }\n }, options);\n createEffect((prev) => {\n const refs = filterNonNullable(asArray(access(targets)));\n handleDiffArray(refs, prev, observe, unobserve);\n return refs;\n }, []);\n}\nconst WINDOW_SIZE_FALLBACK = { width: 0, height: 0 };\n/**\n * @returns object with width and height dimensions of window, page and screen.\n */\nexport function getWindowSize() {\n if (isServer)\n return { ...WINDOW_SIZE_FALLBACK };\n return {\n width: window.innerWidth,\n height: window.innerHeight,\n };\n}\n/**\n * Creates a reactive store-like object of current width and height dimensions of window, page and screen.\n * @example\n * const size = createWindowSize();\n * createEffect(() => {\n * console.log(size.width, size.height)\n * })\n */\nexport function createWindowSize() {\n if (isServer) {\n return WINDOW_SIZE_FALLBACK;\n }\n const [size, setSize] = createHydratableStaticStore(WINDOW_SIZE_FALLBACK, getWindowSize);\n makeEventListener(window, \"resize\", () => setSize(getWindowSize()));\n return size;\n}\n/**\n * Returns a reactive store-like object of current width and height dimensions of window, page and screen.\n *\n * This is a [singleton root](https://github.com/solidjs-community/solid-primitives/tree/main/packages/rootless#createSingletonRoot) primitive.\n *\n * @example\n * const size = useWindowSize();\n * createEffect(() => {\n * console.log(size.width, size.height)\n * })\n */\nexport const useWindowSize = \n/*#__PURE__*/ createHydratableSingletonRoot(createWindowSize);\nconst ELEMENT_SIZE_FALLBACK = { width: null, height: null };\n/**\n * @param target html element\n * @returns object with width and height dimensions of provided {@link target} element.\n */\nexport function getElementSize(target) {\n if (isServer || !target) {\n return { ...ELEMENT_SIZE_FALLBACK };\n }\n const { width, height } = target.getBoundingClientRect();\n return { width, height };\n}\nexport function createElementSize(target) {\n if (isServer) {\n return ELEMENT_SIZE_FALLBACK;\n }\n const isFn = typeof target === \"function\";\n const [size, setSize] = createStaticStore(sharedConfig.context || isFn ? ELEMENT_SIZE_FALLBACK : getElementSize(target));\n const ro = new ResizeObserver(([e]) => setSize(getElementSize(e.target)));\n onCleanup(() => ro.disconnect());\n if (isFn) {\n createEffect(() => {\n const el = target();\n if (el) {\n setSize(getElementSize(el));\n ro.observe(el);\n onCleanup(() => ro.unobserve(el));\n }\n });\n }\n else {\n ro.observe(target);\n onCleanup(() => ro.unobserve(target));\n }\n return size;\n}\n", "import { TabsKeyboardDelegate } from './43XIKO67.js';\nimport { createSelectableCollection, createSelectableItem, createListState } from './H6DSIDEC.js';\nimport { createDomCollection, createDomCollectionItem } from './7CVNMTYF.js';\nimport { useLocale } from './XHJPQEZP.js';\nimport { createControllableSignal } from './BLN63FDC.js';\nimport { Polymorphic } from './6Y7B2NEO.js';\nimport { __export } from './5ZKAE4VZ.js';\nimport { createComponent, mergeProps, memo } from 'solid-js/web';\nimport { mergeRefs, composeEventHandlers, mergeDefaultProps, getFocusableTreeWalker, access, isWebKit, focusWithoutScrolling } from '@kobalte/utils';\nimport { createContext, useContext, createSignal, splitProps, createEffect, on, onCleanup, Show, onMount, createUniqueId, createMemo, mergeProps as mergeProps$1 } from 'solid-js';\nimport createPresence from 'solid-presence';\nimport { combineStyle } from '@solid-primitives/props';\nimport { createResizeObserver } from '@solid-primitives/resize-observer';\n\n// src/tabs/index.tsx\nvar tabs_exports = {};\n__export(tabs_exports, {\n Content: () => TabsContent,\n Indicator: () => TabsIndicator,\n List: () => TabsList,\n Root: () => TabsRoot,\n Tabs: () => Tabs,\n Trigger: () => TabsTrigger,\n useTabsContext: () => useTabsContext\n});\nvar TabsContext = createContext();\nfunction useTabsContext() {\n const context = useContext(TabsContext);\n if (context === void 0) {\n throw new Error(\"[kobalte]: `useTabsContext` must be used within a `Tabs` component\");\n }\n return context;\n}\n\n// src/tabs/tabs-content.tsx\nfunction TabsContent(props) {\n const [ref, setRef] = createSignal();\n const context = useTabsContext();\n const [local, others] = splitProps(props, [\"ref\", \"id\", \"value\", \"forceMount\"]);\n const [tabIndex, setTabIndex] = createSignal(0);\n const id = () => local.id ?? context.generateContentId(local.value);\n const isSelected = () => context.listState().selectedKey() === local.value;\n const {\n present\n } = createPresence({\n show: () => local.forceMount || isSelected(),\n element: () => ref() ?? null\n });\n createEffect(on([() => ref(), () => present()], ([ref2, isPresent]) => {\n if (ref2 == null || !isPresent) {\n return;\n }\n const updateTabIndex = () => {\n const walker = getFocusableTreeWalker(ref2, {\n tabbable: true\n });\n setTabIndex(walker.nextNode() ? void 0 : 0);\n };\n updateTabIndex();\n const observer = new MutationObserver(updateTabIndex);\n observer.observe(ref2, {\n subtree: true,\n childList: true,\n attributes: true,\n attributeFilter: [\"tabindex\", \"disabled\"]\n });\n onCleanup(() => {\n observer.disconnect();\n });\n }));\n createEffect(on([() => local.value, id], ([value, id2]) => {\n context.contentIdsMap().set(value, id2);\n }));\n return createComponent(Show, {\n get when() {\n return present();\n },\n get children() {\n return createComponent(Polymorphic, mergeProps({\n as: \"div\",\n ref(r$) {\n const _ref$ = mergeRefs(setRef, local.ref);\n typeof _ref$ === \"function\" && _ref$(r$);\n },\n get id() {\n return id();\n },\n role: \"tabpanel\",\n get tabIndex() {\n return tabIndex();\n },\n get [\"aria-labelledby\"]() {\n return context.triggerIdsMap().get(local.value);\n },\n get [\"data-orientation\"]() {\n return context.orientation();\n },\n get [\"data-selected\"]() {\n return isSelected() ? \"\" : void 0;\n }\n }, others));\n }\n });\n}\nfunction TabsIndicator(props) {\n const context = useTabsContext();\n const [local, others] = splitProps(props, [\"style\"]);\n const [style, setStyle] = createSignal({\n width: void 0,\n height: void 0\n });\n const {\n direction\n } = useLocale();\n const computeStyle = () => {\n const selectedTab = context.selectedTab();\n if (selectedTab == null) {\n return;\n }\n const styleObj = {\n transform: void 0,\n width: void 0,\n height: void 0\n };\n const offset = direction() === \"rtl\" ? -1 * (selectedTab.offsetParent?.offsetWidth - selectedTab.offsetWidth - selectedTab.offsetLeft) : selectedTab.offsetLeft;\n styleObj.transform = context.orientation() === \"vertical\" ? `translateY(${selectedTab.offsetTop}px)` : `translateX(${offset}px)`;\n if (context.orientation() === \"horizontal\") {\n styleObj.width = `${selectedTab.offsetWidth}px`;\n } else {\n styleObj.height = `${selectedTab.offsetHeight}px`;\n }\n setStyle(styleObj);\n };\n onMount(() => {\n queueMicrotask(() => {\n computeStyle();\n });\n });\n createEffect(on([context.selectedTab, context.orientation, direction], () => {\n computeStyle();\n }, {\n defer: true\n }));\n const [resizing, setResizing] = createSignal(false);\n let timeout = null;\n let prevTarget = null;\n createResizeObserver(context.selectedTab, (_, t) => {\n if (prevTarget !== t) {\n prevTarget = t;\n return;\n }\n setResizing(true);\n if (timeout)\n clearTimeout(timeout);\n timeout = setTimeout(() => {\n timeout = null;\n setResizing(false);\n }, 1);\n computeStyle();\n });\n return createComponent(Polymorphic, mergeProps({\n as: \"div\",\n role: \"presentation\",\n get style() {\n return combineStyle(style(), local.style);\n },\n get [\"data-orientation\"]() {\n return context.orientation();\n },\n get [\"data-resizing\"]() {\n return resizing();\n }\n }, others));\n}\nfunction TabsList(props) {\n let ref;\n const context = useTabsContext();\n const [local, others] = splitProps(props, [\"ref\", \"onKeyDown\", \"onMouseDown\", \"onFocusIn\", \"onFocusOut\"]);\n const {\n direction\n } = useLocale();\n const delegate = new TabsKeyboardDelegate(() => context.listState().collection(), direction, context.orientation);\n const selectableCollection = createSelectableCollection({\n selectionManager: () => context.listState().selectionManager(),\n keyboardDelegate: () => delegate,\n selectOnFocus: () => context.activationMode() === \"automatic\",\n shouldFocusWrap: false,\n // handled by the keyboard delegate\n disallowEmptySelection: true\n }, () => ref);\n createEffect(() => {\n if (ref == null) {\n return;\n }\n const selectedTab = ref.querySelector(`[data-key=\"${context.listState().selectedKey()}\"]`);\n if (selectedTab != null) {\n context.setSelectedTab(selectedTab);\n }\n });\n return createComponent(Polymorphic, mergeProps({\n as: \"div\",\n ref(r$) {\n const _ref$ = mergeRefs((el) => ref = el, local.ref);\n typeof _ref$ === \"function\" && _ref$(r$);\n },\n role: \"tablist\",\n get [\"aria-orientation\"]() {\n return context.orientation();\n },\n get [\"data-orientation\"]() {\n return context.orientation();\n },\n get onKeyDown() {\n return composeEventHandlers([local.onKeyDown, selectableCollection.onKeyDown]);\n },\n get onMouseDown() {\n return composeEventHandlers([local.onMouseDown, selectableCollection.onMouseDown]);\n },\n get onFocusIn() {\n return composeEventHandlers([local.onFocusIn, selectableCollection.onFocusIn]);\n },\n get onFocusOut() {\n return composeEventHandlers([local.onFocusOut, selectableCollection.onFocusOut]);\n }\n }, others));\n}\nfunction createSingleSelectListState(props) {\n const [selectedKey, setSelectedKey] = createControllableSignal({\n value: () => access(props.selectedKey),\n defaultValue: () => access(props.defaultSelectedKey),\n onChange: (value) => props.onSelectionChange?.(value)\n });\n const selectedKeys = createMemo(() => {\n const selection = selectedKey();\n return selection != null ? [selection] : [];\n });\n const [, defaultCreateListStateProps] = splitProps(props, [\n \"onSelectionChange\"\n ]);\n const createListStateProps = mergeProps$1(defaultCreateListStateProps, {\n selectionMode: \"single\",\n disallowEmptySelection: true,\n allowDuplicateSelectionEvents: true,\n selectedKeys,\n onSelectionChange: (keys) => {\n const key = keys.values().next().value;\n if (key === selectedKey()) {\n props.onSelectionChange?.(key);\n }\n setSelectedKey(key);\n }\n });\n const { collection, selectionManager } = createListState(createListStateProps);\n const selectedItem = createMemo(() => {\n const selection = selectedKey();\n return selection != null ? collection().getItem(selection) : void 0;\n });\n return {\n collection,\n selectionManager,\n selectedKey,\n setSelectedKey,\n selectedItem\n };\n}\n\n// src/tabs/tabs-root.tsx\nfunction TabsRoot(props) {\n const defaultId = `tabs-${createUniqueId()}`;\n const mergedProps = mergeDefaultProps({\n id: defaultId,\n orientation: \"horizontal\",\n activationMode: \"automatic\"\n }, props);\n const [local, others] = splitProps(mergedProps, [\"value\", \"defaultValue\", \"onChange\", \"orientation\", \"activationMode\", \"disabled\"]);\n const [items, setItems] = createSignal([]);\n const [selectedTab, setSelectedTab] = createSignal();\n const {\n DomCollectionProvider\n } = createDomCollection({\n items,\n onItemsChange: setItems\n });\n const listState = createSingleSelectListState({\n selectedKey: () => local.value,\n defaultSelectedKey: () => local.defaultValue,\n onSelectionChange: (key) => local.onChange?.(String(key)),\n dataSource: items\n });\n let lastSelectedKey = listState.selectedKey();\n createEffect(on([() => listState.selectionManager(), () => listState.collection(), () => listState.selectedKey()], ([selectionManager, collection, currentSelectedKey]) => {\n let selectedKey = currentSelectedKey;\n if (selectionManager.isEmpty() || selectedKey == null || !collection.getItem(selectedKey)) {\n selectedKey = collection.getFirstKey();\n let selectedItem = selectedKey != null ? collection.getItem(selectedKey) : void 0;\n while (selectedItem?.disabled && selectedItem.key !== collection.getLastKey()) {\n selectedKey = collection.getKeyAfter(selectedItem.key);\n selectedItem = selectedKey != null ? collection.getItem(selectedKey) : void 0;\n }\n if (selectedItem?.disabled && selectedKey === collection.getLastKey()) {\n selectedKey = collection.getFirstKey();\n }\n if (selectedKey != null) {\n selectionManager.setSelectedKeys([selectedKey]);\n }\n }\n if (selectionManager.focusedKey() == null || !selectionManager.isFocused() && selectedKey !== lastSelectedKey) {\n selectionManager.setFocusedKey(selectedKey);\n }\n lastSelectedKey = selectedKey;\n }));\n const triggerIdsMap = /* @__PURE__ */ new Map();\n const contentIdsMap = /* @__PURE__ */ new Map();\n const context = {\n isDisabled: () => local.disabled ?? false,\n orientation: () => local.orientation,\n activationMode: () => local.activationMode,\n triggerIdsMap: () => triggerIdsMap,\n contentIdsMap: () => contentIdsMap,\n listState: () => listState,\n selectedTab,\n setSelectedTab,\n generateTriggerId: (value) => `${others.id}-trigger-${value}`,\n generateContentId: (value) => `${others.id}-content-${value}`\n };\n return createComponent(DomCollectionProvider, {\n get children() {\n return createComponent(TabsContext.Provider, {\n value: context,\n get children() {\n return createComponent(Polymorphic, mergeProps({\n as: \"div\",\n get [\"data-orientation\"]() {\n return context.orientation();\n }\n }, others));\n }\n });\n }\n });\n}\nfunction TabsTrigger(props) {\n let ref;\n const context = useTabsContext();\n const mergedProps = mergeDefaultProps({\n type: \"button\"\n }, props);\n const [local, others] = splitProps(mergedProps, [\"ref\", \"id\", \"value\", \"disabled\", \"onPointerDown\", \"onPointerUp\", \"onClick\", \"onKeyDown\", \"onMouseDown\", \"onFocus\"]);\n const id = () => local.id ?? context.generateTriggerId(local.value);\n const isHighlighted = () => context.listState().selectionManager().focusedKey() === local.value;\n const isDisabled = () => local.disabled || context.isDisabled();\n const contentId = () => context.contentIdsMap().get(local.value);\n createDomCollectionItem({\n getItem: () => ({\n ref: () => ref,\n type: \"item\",\n key: local.value,\n textValue: \"\",\n // not applicable here\n disabled: isDisabled()\n })\n });\n const selectableItem = createSelectableItem({\n key: () => local.value,\n selectionManager: () => context.listState().selectionManager(),\n disabled: isDisabled\n }, () => ref);\n const onClick = (e) => {\n if (isWebKit()) {\n focusWithoutScrolling(e.currentTarget);\n }\n };\n createEffect(on([() => local.value, id], ([value, id2]) => {\n context.triggerIdsMap().set(value, id2);\n }));\n return createComponent(Polymorphic, mergeProps({\n as: \"button\",\n ref(r$) {\n const _ref$ = mergeRefs((el) => ref = el, local.ref);\n typeof _ref$ === \"function\" && _ref$(r$);\n },\n get id() {\n return id();\n },\n role: \"tab\",\n get tabIndex() {\n return memo(() => !!!isDisabled())() ? selectableItem.tabIndex() : void 0;\n },\n get disabled() {\n return isDisabled();\n },\n get [\"aria-selected\"]() {\n return selectableItem.isSelected();\n },\n get [\"aria-disabled\"]() {\n return isDisabled() || void 0;\n },\n get [\"aria-controls\"]() {\n return memo(() => !!selectableItem.isSelected())() ? contentId() : void 0;\n },\n get [\"data-key\"]() {\n return selectableItem.dataKey();\n },\n get [\"data-orientation\"]() {\n return context.orientation();\n },\n get [\"data-selected\"]() {\n return selectableItem.isSelected() ? \"\" : void 0;\n },\n get [\"data-highlighted\"]() {\n return isHighlighted() ? \"\" : void 0;\n },\n get [\"data-disabled\"]() {\n return isDisabled() ? \"\" : void 0;\n },\n get onPointerDown() {\n return composeEventHandlers([local.onPointerDown, selectableItem.onPointerDown]);\n },\n get onPointerUp() {\n return composeEventHandlers([local.onPointerUp, selectableItem.onPointerUp]);\n },\n get onClick() {\n return composeEventHandlers([local.onClick, selectableItem.onClick, onClick]);\n },\n get onKeyDown() {\n return composeEventHandlers([local.onKeyDown, selectableItem.onKeyDown]);\n },\n get onMouseDown() {\n return composeEventHandlers([local.onMouseDown, selectableItem.onMouseDown]);\n },\n get onFocus() {\n return composeEventHandlers([local.onFocus, selectableItem.onFocus]);\n }\n }, others));\n}\n\n// src/tabs/index.tsx\nvar Tabs = Object.assign(TabsRoot, {\n Content: TabsContent,\n Indicator: TabsIndicator,\n List: TabsList,\n Trigger: TabsTrigger\n});\n\nexport { Tabs, TabsContent, TabsIndicator, TabsList, TabsRoot, TabsTrigger, createSingleSelectListState, tabs_exports, useTabsContext };\n", "import { Tabs as KobalteTabs } from \"@kobalte/core/tabs\";\nexport const Tabs = KobalteTabs;\nexport const TabsList = KobalteTabs.List;\nexport const TabsTrigger = KobalteTabs.Trigger;\nexport const TabsContent = KobalteTabs.Content;", "/**\n * Custom positioning reference element.\n * @see https://floating-ui.com/docs/virtual-elements\n */\n\nconst sides = ['top', 'right', 'bottom', 'left'];\nconst alignments = ['start', 'end'];\nconst placements = /*#__PURE__*/sides.reduce((acc, side) => acc.concat(side, side + \"-\" + alignments[0], side + \"-\" + alignments[1]), []);\nconst min = Math.min;\nconst max = Math.max;\nconst round = Math.round;\nconst floor = Math.floor;\nconst createCoords = v => ({\n x: v,\n y: v\n});\nconst oppositeSideMap = {\n left: 'right',\n right: 'left',\n bottom: 'top',\n top: 'bottom'\n};\nfunction clamp(start, value, end) {\n return max(start, min(value, end));\n}\nfunction evaluate(value, param) {\n return typeof value === 'function' ? value(param) : value;\n}\nfunction getSide(placement) {\n return placement.split('-')[0];\n}\nfunction getAlignment(placement) {\n return placement.split('-')[1];\n}\nfunction getOppositeAxis(axis) {\n return axis === 'x' ? 'y' : 'x';\n}\nfunction getAxisLength(axis) {\n return axis === 'y' ? 'height' : 'width';\n}\nfunction getSideAxis(placement) {\n const firstChar = placement[0];\n return firstChar === 't' || firstChar === 'b' ? 'y' : 'x';\n}\nfunction getAlignmentAxis(placement) {\n return getOppositeAxis(getSideAxis(placement));\n}\nfunction getAlignmentSides(placement, rects, rtl) {\n if (rtl === void 0) {\n rtl = false;\n }\n const alignment = getAlignment(placement);\n const alignmentAxis = getAlignmentAxis(placement);\n const length = getAxisLength(alignmentAxis);\n let mainAlignmentSide = alignmentAxis === 'x' ? alignment === (rtl ? 'end' : 'start') ? 'right' : 'left' : alignment === 'start' ? 'bottom' : 'top';\n if (rects.reference[length] > rects.floating[length]) {\n mainAlignmentSide = getOppositePlacement(mainAlignmentSide);\n }\n return [mainAlignmentSide, getOppositePlacement(mainAlignmentSide)];\n}\nfunction getExpandedPlacements(placement) {\n const oppositePlacement = getOppositePlacement(placement);\n return [getOppositeAlignmentPlacement(placement), oppositePlacement, getOppositeAlignmentPlacement(oppositePlacement)];\n}\nfunction getOppositeAlignmentPlacement(placement) {\n return placement.includes('start') ? placement.replace('start', 'end') : placement.replace('end', 'start');\n}\nconst lrPlacement = ['left', 'right'];\nconst rlPlacement = ['right', 'left'];\nconst tbPlacement = ['top', 'bottom'];\nconst btPlacement = ['bottom', 'top'];\nfunction getSideList(side, isStart, rtl) {\n switch (side) {\n case 'top':\n case 'bottom':\n if (rtl) return isStart ? rlPlacement : lrPlacement;\n return isStart ? lrPlacement : rlPlacement;\n case 'left':\n case 'right':\n return isStart ? tbPlacement : btPlacement;\n default:\n return [];\n }\n}\nfunction getOppositeAxisPlacements(placement, flipAlignment, direction, rtl) {\n const alignment = getAlignment(placement);\n let list = getSideList(getSide(placement), direction === 'start', rtl);\n if (alignment) {\n list = list.map(side => side + \"-\" + alignment);\n if (flipAlignment) {\n list = list.concat(list.map(getOppositeAlignmentPlacement));\n }\n }\n return list;\n}\nfunction getOppositePlacement(placement) {\n const side = getSide(placement);\n return oppositeSideMap[side] + placement.slice(side.length);\n}\nfunction expandPaddingObject(padding) {\n return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n ...padding\n };\n}\nfunction getPaddingObject(padding) {\n return typeof padding !== 'number' ? expandPaddingObject(padding) : {\n top: padding,\n right: padding,\n bottom: padding,\n left: padding\n };\n}\nfunction rectToClientRect(rect) {\n const {\n x,\n y,\n width,\n height\n } = rect;\n return {\n width,\n height,\n top: y,\n left: x,\n right: x + width,\n bottom: y + height,\n x,\n y\n };\n}\n\nexport { alignments, clamp, createCoords, evaluate, expandPaddingObject, floor, getAlignment, getAlignmentAxis, getAlignmentSides, getAxisLength, getExpandedPlacements, getOppositeAlignmentPlacement, getOppositeAxis, getOppositeAxisPlacements, getOppositePlacement, getPaddingObject, getSide, getSideAxis, max, min, placements, rectToClientRect, round, sides };\n", "import { getSideAxis, getAlignmentAxis, getAxisLength, getSide, getAlignment, evaluate, getPaddingObject, rectToClientRect, min, clamp, placements, getAlignmentSides, getOppositeAlignmentPlacement, getOppositePlacement, getExpandedPlacements, getOppositeAxisPlacements, sides, max, getOppositeAxis } from '@floating-ui/utils';\nexport { rectToClientRect } from '@floating-ui/utils';\n\nfunction computeCoordsFromPlacement(_ref, placement, rtl) {\n let {\n reference,\n floating\n } = _ref;\n const sideAxis = getSideAxis(placement);\n const alignmentAxis = getAlignmentAxis(placement);\n const alignLength = getAxisLength(alignmentAxis);\n const side = getSide(placement);\n const isVertical = sideAxis === 'y';\n const commonX = reference.x + reference.width / 2 - floating.width / 2;\n const commonY = reference.y + reference.height / 2 - floating.height / 2;\n const commonAlign = reference[alignLength] / 2 - floating[alignLength] / 2;\n let coords;\n switch (side) {\n case 'top':\n coords = {\n x: commonX,\n y: reference.y - floating.height\n };\n break;\n case 'bottom':\n coords = {\n x: commonX,\n y: reference.y + reference.height\n };\n break;\n case 'right':\n coords = {\n x: reference.x + reference.width,\n y: commonY\n };\n break;\n case 'left':\n coords = {\n x: reference.x - floating.width,\n y: commonY\n };\n break;\n default:\n coords = {\n x: reference.x,\n y: reference.y\n };\n }\n switch (getAlignment(placement)) {\n case 'start':\n coords[alignmentAxis] -= commonAlign * (rtl && isVertical ? -1 : 1);\n break;\n case 'end':\n coords[alignmentAxis] += commonAlign * (rtl && isVertical ? -1 : 1);\n break;\n }\n return coords;\n}\n\n/**\n * Resolves with an object of overflow side offsets that determine how much the\n * element is overflowing a given clipping boundary on each side.\n * - positive = overflowing the boundary by that number of pixels\n * - negative = how many pixels left before it will overflow\n * - 0 = lies flush with the boundary\n * @see https://floating-ui.com/docs/detectOverflow\n */\nasync function detectOverflow(state, options) {\n var _await$platform$isEle;\n if (options === void 0) {\n options = {};\n }\n const {\n x,\n y,\n platform,\n rects,\n elements,\n strategy\n } = state;\n const {\n boundary = 'clippingAncestors',\n rootBoundary = 'viewport',\n elementContext = 'floating',\n altBoundary = false,\n padding = 0\n } = evaluate(options, state);\n const paddingObject = getPaddingObject(padding);\n const altContext = elementContext === 'floating' ? 'reference' : 'floating';\n const element = elements[altBoundary ? altContext : elementContext];\n const clippingClientRect = rectToClientRect(await platform.getClippingRect({\n element: ((_await$platform$isEle = await (platform.isElement == null ? void 0 : platform.isElement(element))) != null ? _await$platform$isEle : true) ? element : element.contextElement || (await (platform.getDocumentElement == null ? void 0 : platform.getDocumentElement(elements.floating))),\n boundary,\n rootBoundary,\n strategy\n }));\n const rect = elementContext === 'floating' ? {\n x,\n y,\n width: rects.floating.width,\n height: rects.floating.height\n } : rects.reference;\n const offsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(elements.floating));\n const offsetScale = (await (platform.isElement == null ? void 0 : platform.isElement(offsetParent))) ? (await (platform.getScale == null ? void 0 : platform.getScale(offsetParent))) || {\n x: 1,\n y: 1\n } : {\n x: 1,\n y: 1\n };\n const elementClientRect = rectToClientRect(platform.convertOffsetParentRelativeRectToViewportRelativeRect ? await platform.convertOffsetParentRelativeRectToViewportRelativeRect({\n elements,\n rect,\n offsetParent,\n strategy\n }) : rect);\n return {\n top: (clippingClientRect.top - elementClientRect.top + paddingObject.top) / offsetScale.y,\n bottom: (elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom) / offsetScale.y,\n left: (clippingClientRect.left - elementClientRect.left + paddingObject.left) / offsetScale.x,\n right: (elementClientRect.right - clippingClientRect.right + paddingObject.right) / offsetScale.x\n };\n}\n\n// Maximum number of resets that can occur before bailing to avoid infinite reset loops.\nconst MAX_RESET_COUNT = 50;\n\n/**\n * Computes the `x` and `y` coordinates that will place the floating element\n * next to a given reference element.\n *\n * This export does not have any `platform` interface logic. You will need to\n * write one for the platform you are using Floating UI with.\n */\nconst computePosition = async (reference, floating, config) => {\n const {\n placement = 'bottom',\n strategy = 'absolute',\n middleware = [],\n platform\n } = config;\n const platformWithDetectOverflow = platform.detectOverflow ? platform : {\n ...platform,\n detectOverflow\n };\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(floating));\n let rects = await platform.getElementRects({\n reference,\n floating,\n strategy\n });\n let {\n x,\n y\n } = computeCoordsFromPlacement(rects, placement, rtl);\n let statefulPlacement = placement;\n let resetCount = 0;\n const middlewareData = {};\n for (let i = 0; i < middleware.length; i++) {\n const currentMiddleware = middleware[i];\n if (!currentMiddleware) {\n continue;\n }\n const {\n name,\n fn\n } = currentMiddleware;\n const {\n x: nextX,\n y: nextY,\n data,\n reset\n } = await fn({\n x,\n y,\n initialPlacement: placement,\n placement: statefulPlacement,\n strategy,\n middlewareData,\n rects,\n platform: platformWithDetectOverflow,\n elements: {\n reference,\n floating\n }\n });\n x = nextX != null ? nextX : x;\n y = nextY != null ? nextY : y;\n middlewareData[name] = {\n ...middlewareData[name],\n ...data\n };\n if (reset && resetCount < MAX_RESET_COUNT) {\n resetCount++;\n if (typeof reset === 'object') {\n if (reset.placement) {\n statefulPlacement = reset.placement;\n }\n if (reset.rects) {\n rects = reset.rects === true ? await platform.getElementRects({\n reference,\n floating,\n strategy\n }) : reset.rects;\n }\n ({\n x,\n y\n } = computeCoordsFromPlacement(rects, statefulPlacement, rtl));\n }\n i = -1;\n }\n }\n return {\n x,\n y,\n placement: statefulPlacement,\n strategy,\n middlewareData\n };\n};\n\n/**\n * Provides data to position an inner element of the floating element so that it\n * appears centered to the reference element.\n * @see https://floating-ui.com/docs/arrow\n */\nconst arrow = options => ({\n name: 'arrow',\n options,\n async fn(state) {\n const {\n x,\n y,\n placement,\n rects,\n platform,\n elements,\n middlewareData\n } = state;\n // Since `element` is required, we don't Partial<> the type.\n const {\n element,\n padding = 0\n } = evaluate(options, state) || {};\n if (element == null) {\n return {};\n }\n const paddingObject = getPaddingObject(padding);\n const coords = {\n x,\n y\n };\n const axis = getAlignmentAxis(placement);\n const length = getAxisLength(axis);\n const arrowDimensions = await platform.getDimensions(element);\n const isYAxis = axis === 'y';\n const minProp = isYAxis ? 'top' : 'left';\n const maxProp = isYAxis ? 'bottom' : 'right';\n const clientProp = isYAxis ? 'clientHeight' : 'clientWidth';\n const endDiff = rects.reference[length] + rects.reference[axis] - coords[axis] - rects.floating[length];\n const startDiff = coords[axis] - rects.reference[axis];\n const arrowOffsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(element));\n let clientSize = arrowOffsetParent ? arrowOffsetParent[clientProp] : 0;\n\n // DOM platform can return `window` as the `offsetParent`.\n if (!clientSize || !(await (platform.isElement == null ? void 0 : platform.isElement(arrowOffsetParent)))) {\n clientSize = elements.floating[clientProp] || rects.floating[length];\n }\n const centerToReference = endDiff / 2 - startDiff / 2;\n\n // If the padding is large enough that it causes the arrow to no longer be\n // centered, modify the padding so that it is centered.\n const largestPossiblePadding = clientSize / 2 - arrowDimensions[length] / 2 - 1;\n const minPadding = min(paddingObject[minProp], largestPossiblePadding);\n const maxPadding = min(paddingObject[maxProp], largestPossiblePadding);\n\n // Make sure the arrow doesn't overflow the floating element if the center\n // point is outside the floating element's bounds.\n const min$1 = minPadding;\n const max = clientSize - arrowDimensions[length] - maxPadding;\n const center = clientSize / 2 - arrowDimensions[length] / 2 + centerToReference;\n const offset = clamp(min$1, center, max);\n\n // If the reference is small enough that the arrow's padding causes it to\n // to point to nothing for an aligned placement, adjust the offset of the\n // floating element itself. To ensure `shift()` continues to take action,\n // a single reset is performed when this is true.\n const shouldAddOffset = !middlewareData.arrow && getAlignment(placement) != null && center !== offset && rects.reference[length] / 2 - (center < min$1 ? minPadding : maxPadding) - arrowDimensions[length] / 2 < 0;\n const alignmentOffset = shouldAddOffset ? center < min$1 ? center - min$1 : center - max : 0;\n return {\n [axis]: coords[axis] + alignmentOffset,\n data: {\n [axis]: offset,\n centerOffset: center - offset - alignmentOffset,\n ...(shouldAddOffset && {\n alignmentOffset\n })\n },\n reset: shouldAddOffset\n };\n }\n});\n\nfunction getPlacementList(alignment, autoAlignment, allowedPlacements) {\n const allowedPlacementsSortedByAlignment = alignment ? [...allowedPlacements.filter(placement => getAlignment(placement) === alignment), ...allowedPlacements.filter(placement => getAlignment(placement) !== alignment)] : allowedPlacements.filter(placement => getSide(placement) === placement);\n return allowedPlacementsSortedByAlignment.filter(placement => {\n if (alignment) {\n return getAlignment(placement) === alignment || (autoAlignment ? getOppositeAlignmentPlacement(placement) !== placement : false);\n }\n return true;\n });\n}\n/**\n * Optimizes the visibility of the floating element by choosing the placement\n * that has the most space available automatically, without needing to specify a\n * preferred placement. Alternative to `flip`.\n * @see https://floating-ui.com/docs/autoPlacement\n */\nconst autoPlacement = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'autoPlacement',\n options,\n async fn(state) {\n var _middlewareData$autoP, _middlewareData$autoP2, _placementsThatFitOnE;\n const {\n rects,\n middlewareData,\n placement,\n platform,\n elements\n } = state;\n const {\n crossAxis = false,\n alignment,\n allowedPlacements = placements,\n autoAlignment = true,\n ...detectOverflowOptions\n } = evaluate(options, state);\n const placements$1 = alignment !== undefined || allowedPlacements === placements ? getPlacementList(alignment || null, autoAlignment, allowedPlacements) : allowedPlacements;\n const overflow = await platform.detectOverflow(state, detectOverflowOptions);\n const currentIndex = ((_middlewareData$autoP = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP.index) || 0;\n const currentPlacement = placements$1[currentIndex];\n if (currentPlacement == null) {\n return {};\n }\n const alignmentSides = getAlignmentSides(currentPlacement, rects, await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating)));\n\n // Make `computeCoords` start from the right place.\n if (placement !== currentPlacement) {\n return {\n reset: {\n placement: placements$1[0]\n }\n };\n }\n const currentOverflows = [overflow[getSide(currentPlacement)], overflow[alignmentSides[0]], overflow[alignmentSides[1]]];\n const allOverflows = [...(((_middlewareData$autoP2 = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP2.overflows) || []), {\n placement: currentPlacement,\n overflows: currentOverflows\n }];\n const nextPlacement = placements$1[currentIndex + 1];\n\n // There are more placements to check.\n if (nextPlacement) {\n return {\n data: {\n index: currentIndex + 1,\n overflows: allOverflows\n },\n reset: {\n placement: nextPlacement\n }\n };\n }\n const placementsSortedByMostSpace = allOverflows.map(d => {\n const alignment = getAlignment(d.placement);\n return [d.placement, alignment && crossAxis ?\n // Check along the mainAxis and main crossAxis side.\n d.overflows.slice(0, 2).reduce((acc, v) => acc + v, 0) :\n // Check only the mainAxis.\n d.overflows[0], d.overflows];\n }).sort((a, b) => a[1] - b[1]);\n const placementsThatFitOnEachSide = placementsSortedByMostSpace.filter(d => d[2].slice(0,\n // Aligned placements should not check their opposite crossAxis\n // side.\n getAlignment(d[0]) ? 2 : 3).every(v => v <= 0));\n const resetPlacement = ((_placementsThatFitOnE = placementsThatFitOnEachSide[0]) == null ? void 0 : _placementsThatFitOnE[0]) || placementsSortedByMostSpace[0][0];\n if (resetPlacement !== placement) {\n return {\n data: {\n index: currentIndex + 1,\n overflows: allOverflows\n },\n reset: {\n placement: resetPlacement\n }\n };\n }\n return {};\n }\n };\n};\n\n/**\n * Optimizes the visibility of the floating element by flipping the `placement`\n * in order to keep it in view when the preferred placement(s) will overflow the\n * clipping boundary. Alternative to `autoPlacement`.\n * @see https://floating-ui.com/docs/flip\n */\nconst flip = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'flip',\n options,\n async fn(state) {\n var _middlewareData$arrow, _middlewareData$flip;\n const {\n placement,\n middlewareData,\n rects,\n initialPlacement,\n platform,\n elements\n } = state;\n const {\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = true,\n fallbackPlacements: specifiedFallbackPlacements,\n fallbackStrategy = 'bestFit',\n fallbackAxisSideDirection = 'none',\n flipAlignment = true,\n ...detectOverflowOptions\n } = evaluate(options, state);\n\n // If a reset by the arrow was caused due to an alignment offset being\n // added, we should skip any logic now since `flip()` has already done its\n // work.\n // https://github.com/floating-ui/floating-ui/issues/2549#issuecomment-1719601643\n if ((_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) {\n return {};\n }\n const side = getSide(placement);\n const initialSideAxis = getSideAxis(initialPlacement);\n const isBasePlacement = getSide(initialPlacement) === initialPlacement;\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating));\n const fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipAlignment ? [getOppositePlacement(initialPlacement)] : getExpandedPlacements(initialPlacement));\n const hasFallbackAxisSideDirection = fallbackAxisSideDirection !== 'none';\n if (!specifiedFallbackPlacements && hasFallbackAxisSideDirection) {\n fallbackPlacements.push(...getOppositeAxisPlacements(initialPlacement, flipAlignment, fallbackAxisSideDirection, rtl));\n }\n const placements = [initialPlacement, ...fallbackPlacements];\n const overflow = await platform.detectOverflow(state, detectOverflowOptions);\n const overflows = [];\n let overflowsData = ((_middlewareData$flip = middlewareData.flip) == null ? void 0 : _middlewareData$flip.overflows) || [];\n if (checkMainAxis) {\n overflows.push(overflow[side]);\n }\n if (checkCrossAxis) {\n const sides = getAlignmentSides(placement, rects, rtl);\n overflows.push(overflow[sides[0]], overflow[sides[1]]);\n }\n overflowsData = [...overflowsData, {\n placement,\n overflows\n }];\n\n // One or more sides is overflowing.\n if (!overflows.every(side => side <= 0)) {\n var _middlewareData$flip2, _overflowsData$filter;\n const nextIndex = (((_middlewareData$flip2 = middlewareData.flip) == null ? void 0 : _middlewareData$flip2.index) || 0) + 1;\n const nextPlacement = placements[nextIndex];\n if (nextPlacement) {\n const ignoreCrossAxisOverflow = checkCrossAxis === 'alignment' ? initialSideAxis !== getSideAxis(nextPlacement) : false;\n if (!ignoreCrossAxisOverflow ||\n // We leave the current main axis only if every placement on that axis\n // overflows the main axis.\n overflowsData.every(d => getSideAxis(d.placement) === initialSideAxis ? d.overflows[0] > 0 : true)) {\n // Try next placement and re-run the lifecycle.\n return {\n data: {\n index: nextIndex,\n overflows: overflowsData\n },\n reset: {\n placement: nextPlacement\n }\n };\n }\n }\n\n // First, find the candidates that fit on the mainAxis side of overflow,\n // then find the placement that fits the best on the main crossAxis side.\n let resetPlacement = (_overflowsData$filter = overflowsData.filter(d => d.overflows[0] <= 0).sort((a, b) => a.overflows[1] - b.overflows[1])[0]) == null ? void 0 : _overflowsData$filter.placement;\n\n // Otherwise fallback.\n if (!resetPlacement) {\n switch (fallbackStrategy) {\n case 'bestFit':\n {\n var _overflowsData$filter2;\n const placement = (_overflowsData$filter2 = overflowsData.filter(d => {\n if (hasFallbackAxisSideDirection) {\n const currentSideAxis = getSideAxis(d.placement);\n return currentSideAxis === initialSideAxis ||\n // Create a bias to the `y` side axis due to horizontal\n // reading directions favoring greater width.\n currentSideAxis === 'y';\n }\n return true;\n }).map(d => [d.placement, d.overflows.filter(overflow => overflow > 0).reduce((acc, overflow) => acc + overflow, 0)]).sort((a, b) => a[1] - b[1])[0]) == null ? void 0 : _overflowsData$filter2[0];\n if (placement) {\n resetPlacement = placement;\n }\n break;\n }\n case 'initialPlacement':\n resetPlacement = initialPlacement;\n break;\n }\n }\n if (placement !== resetPlacement) {\n return {\n reset: {\n placement: resetPlacement\n }\n };\n }\n }\n return {};\n }\n };\n};\n\nfunction getSideOffsets(overflow, rect) {\n return {\n top: overflow.top - rect.height,\n right: overflow.right - rect.width,\n bottom: overflow.bottom - rect.height,\n left: overflow.left - rect.width\n };\n}\nfunction isAnySideFullyClipped(overflow) {\n return sides.some(side => overflow[side] >= 0);\n}\n/**\n * Provides data to hide the floating element in applicable situations, such as\n * when it is not in the same clipping context as the reference element.\n * @see https://floating-ui.com/docs/hide\n */\nconst hide = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'hide',\n options,\n async fn(state) {\n const {\n rects,\n platform\n } = state;\n const {\n strategy = 'referenceHidden',\n ...detectOverflowOptions\n } = evaluate(options, state);\n switch (strategy) {\n case 'referenceHidden':\n {\n const overflow = await platform.detectOverflow(state, {\n ...detectOverflowOptions,\n elementContext: 'reference'\n });\n const offsets = getSideOffsets(overflow, rects.reference);\n return {\n data: {\n referenceHiddenOffsets: offsets,\n referenceHidden: isAnySideFullyClipped(offsets)\n }\n };\n }\n case 'escaped':\n {\n const overflow = await platform.detectOverflow(state, {\n ...detectOverflowOptions,\n altBoundary: true\n });\n const offsets = getSideOffsets(overflow, rects.floating);\n return {\n data: {\n escapedOffsets: offsets,\n escaped: isAnySideFullyClipped(offsets)\n }\n };\n }\n default:\n {\n return {};\n }\n }\n }\n };\n};\n\nfunction getBoundingRect(rects) {\n const minX = min(...rects.map(rect => rect.left));\n const minY = min(...rects.map(rect => rect.top));\n const maxX = max(...rects.map(rect => rect.right));\n const maxY = max(...rects.map(rect => rect.bottom));\n return {\n x: minX,\n y: minY,\n width: maxX - minX,\n height: maxY - minY\n };\n}\nfunction getRectsByLine(rects) {\n const sortedRects = rects.slice().sort((a, b) => a.y - b.y);\n const groups = [];\n let prevRect = null;\n for (let i = 0; i < sortedRects.length; i++) {\n const rect = sortedRects[i];\n if (!prevRect || rect.y - prevRect.y > prevRect.height / 2) {\n groups.push([rect]);\n } else {\n groups[groups.length - 1].push(rect);\n }\n prevRect = rect;\n }\n return groups.map(rect => rectToClientRect(getBoundingRect(rect)));\n}\n/**\n * Provides improved positioning for inline reference elements that can span\n * over multiple lines, such as hyperlinks or range selections.\n * @see https://floating-ui.com/docs/inline\n */\nconst inline = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'inline',\n options,\n async fn(state) {\n const {\n placement,\n elements,\n rects,\n platform,\n strategy\n } = state;\n // A MouseEvent's client{X,Y} coords can be up to 2 pixels off a\n // ClientRect's bounds, despite the event listener being triggered. A\n // padding of 2 seems to handle this issue.\n const {\n padding = 2,\n x,\n y\n } = evaluate(options, state);\n const nativeClientRects = Array.from((await (platform.getClientRects == null ? void 0 : platform.getClientRects(elements.reference))) || []);\n const clientRects = getRectsByLine(nativeClientRects);\n const fallback = rectToClientRect(getBoundingRect(nativeClientRects));\n const paddingObject = getPaddingObject(padding);\n function getBoundingClientRect() {\n // There are two rects and they are disjoined.\n if (clientRects.length === 2 && clientRects[0].left > clientRects[1].right && x != null && y != null) {\n // Find the first rect in which the point is fully inside.\n return clientRects.find(rect => x > rect.left - paddingObject.left && x < rect.right + paddingObject.right && y > rect.top - paddingObject.top && y < rect.bottom + paddingObject.bottom) || fallback;\n }\n\n // There are 2 or more connected rects.\n if (clientRects.length >= 2) {\n if (getSideAxis(placement) === 'y') {\n const firstRect = clientRects[0];\n const lastRect = clientRects[clientRects.length - 1];\n const isTop = getSide(placement) === 'top';\n const top = firstRect.top;\n const bottom = lastRect.bottom;\n const left = isTop ? firstRect.left : lastRect.left;\n const right = isTop ? firstRect.right : lastRect.right;\n const width = right - left;\n const height = bottom - top;\n return {\n top,\n bottom,\n left,\n right,\n width,\n height,\n x: left,\n y: top\n };\n }\n const isLeftSide = getSide(placement) === 'left';\n const maxRight = max(...clientRects.map(rect => rect.right));\n const minLeft = min(...clientRects.map(rect => rect.left));\n const measureRects = clientRects.filter(rect => isLeftSide ? rect.left === minLeft : rect.right === maxRight);\n const top = measureRects[0].top;\n const bottom = measureRects[measureRects.length - 1].bottom;\n const left = minLeft;\n const right = maxRight;\n const width = right - left;\n const height = bottom - top;\n return {\n top,\n bottom,\n left,\n right,\n width,\n height,\n x: left,\n y: top\n };\n }\n return fallback;\n }\n const resetRects = await platform.getElementRects({\n reference: {\n getBoundingClientRect\n },\n floating: elements.floating,\n strategy\n });\n if (rects.reference.x !== resetRects.reference.x || rects.reference.y !== resetRects.reference.y || rects.reference.width !== resetRects.reference.width || rects.reference.height !== resetRects.reference.height) {\n return {\n reset: {\n rects: resetRects\n }\n };\n }\n return {};\n }\n };\n};\n\nconst originSides = /*#__PURE__*/new Set(['left', 'top']);\n\n// For type backwards-compatibility, the `OffsetOptions` type was also\n// Derivable.\n\nasync function convertValueToCoords(state, options) {\n const {\n placement,\n platform,\n elements\n } = state;\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating));\n const side = getSide(placement);\n const alignment = getAlignment(placement);\n const isVertical = getSideAxis(placement) === 'y';\n const mainAxisMulti = originSides.has(side) ? -1 : 1;\n const crossAxisMulti = rtl && isVertical ? -1 : 1;\n const rawValue = evaluate(options, state);\n\n // eslint-disable-next-line prefer-const\n let {\n mainAxis,\n crossAxis,\n alignmentAxis\n } = typeof rawValue === 'number' ? {\n mainAxis: rawValue,\n crossAxis: 0,\n alignmentAxis: null\n } : {\n mainAxis: rawValue.mainAxis || 0,\n crossAxis: rawValue.crossAxis || 0,\n alignmentAxis: rawValue.alignmentAxis\n };\n if (alignment && typeof alignmentAxis === 'number') {\n crossAxis = alignment === 'end' ? alignmentAxis * -1 : alignmentAxis;\n }\n return isVertical ? {\n x: crossAxis * crossAxisMulti,\n y: mainAxis * mainAxisMulti\n } : {\n x: mainAxis * mainAxisMulti,\n y: crossAxis * crossAxisMulti\n };\n}\n\n/**\n * Modifies the placement by translating the floating element along the\n * specified axes.\n * A number (shorthand for `mainAxis` or distance), or an axes configuration\n * object may be passed.\n * @see https://floating-ui.com/docs/offset\n */\nconst offset = function (options) {\n if (options === void 0) {\n options = 0;\n }\n return {\n name: 'offset',\n options,\n async fn(state) {\n var _middlewareData$offse, _middlewareData$arrow;\n const {\n x,\n y,\n placement,\n middlewareData\n } = state;\n const diffCoords = await convertValueToCoords(state, options);\n\n // If the placement is the same and the arrow caused an alignment offset\n // then we don't need to change the positioning coordinates.\n if (placement === ((_middlewareData$offse = middlewareData.offset) == null ? void 0 : _middlewareData$offse.placement) && (_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) {\n return {};\n }\n return {\n x: x + diffCoords.x,\n y: y + diffCoords.y,\n data: {\n ...diffCoords,\n placement\n }\n };\n }\n };\n};\n\n/**\n * Optimizes the visibility of the floating element by shifting it in order to\n * keep it in view when it will overflow the clipping boundary.\n * @see https://floating-ui.com/docs/shift\n */\nconst shift = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'shift',\n options,\n async fn(state) {\n const {\n x,\n y,\n placement,\n platform\n } = state;\n const {\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = false,\n limiter = {\n fn: _ref => {\n let {\n x,\n y\n } = _ref;\n return {\n x,\n y\n };\n }\n },\n ...detectOverflowOptions\n } = evaluate(options, state);\n const coords = {\n x,\n y\n };\n const overflow = await platform.detectOverflow(state, detectOverflowOptions);\n const crossAxis = getSideAxis(getSide(placement));\n const mainAxis = getOppositeAxis(crossAxis);\n let mainAxisCoord = coords[mainAxis];\n let crossAxisCoord = coords[crossAxis];\n if (checkMainAxis) {\n const minSide = mainAxis === 'y' ? 'top' : 'left';\n const maxSide = mainAxis === 'y' ? 'bottom' : 'right';\n const min = mainAxisCoord + overflow[minSide];\n const max = mainAxisCoord - overflow[maxSide];\n mainAxisCoord = clamp(min, mainAxisCoord, max);\n }\n if (checkCrossAxis) {\n const minSide = crossAxis === 'y' ? 'top' : 'left';\n const maxSide = crossAxis === 'y' ? 'bottom' : 'right';\n const min = crossAxisCoord + overflow[minSide];\n const max = crossAxisCoord - overflow[maxSide];\n crossAxisCoord = clamp(min, crossAxisCoord, max);\n }\n const limitedCoords = limiter.fn({\n ...state,\n [mainAxis]: mainAxisCoord,\n [crossAxis]: crossAxisCoord\n });\n return {\n ...limitedCoords,\n data: {\n x: limitedCoords.x - x,\n y: limitedCoords.y - y,\n enabled: {\n [mainAxis]: checkMainAxis,\n [crossAxis]: checkCrossAxis\n }\n }\n };\n }\n };\n};\n/**\n * Built-in `limiter` that will stop `shift()` at a certain point.\n */\nconst limitShift = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n options,\n fn(state) {\n const {\n x,\n y,\n placement,\n rects,\n middlewareData\n } = state;\n const {\n offset = 0,\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = true\n } = evaluate(options, state);\n const coords = {\n x,\n y\n };\n const crossAxis = getSideAxis(placement);\n const mainAxis = getOppositeAxis(crossAxis);\n let mainAxisCoord = coords[mainAxis];\n let crossAxisCoord = coords[crossAxis];\n const rawOffset = evaluate(offset, state);\n const computedOffset = typeof rawOffset === 'number' ? {\n mainAxis: rawOffset,\n crossAxis: 0\n } : {\n mainAxis: 0,\n crossAxis: 0,\n ...rawOffset\n };\n if (checkMainAxis) {\n const len = mainAxis === 'y' ? 'height' : 'width';\n const limitMin = rects.reference[mainAxis] - rects.floating[len] + computedOffset.mainAxis;\n const limitMax = rects.reference[mainAxis] + rects.reference[len] - computedOffset.mainAxis;\n if (mainAxisCoord < limitMin) {\n mainAxisCoord = limitMin;\n } else if (mainAxisCoord > limitMax) {\n mainAxisCoord = limitMax;\n }\n }\n if (checkCrossAxis) {\n var _middlewareData$offse, _middlewareData$offse2;\n const len = mainAxis === 'y' ? 'width' : 'height';\n const isOriginSide = originSides.has(getSide(placement));\n const limitMin = rects.reference[crossAxis] - rects.floating[len] + (isOriginSide ? ((_middlewareData$offse = middlewareData.offset) == null ? void 0 : _middlewareData$offse[crossAxis]) || 0 : 0) + (isOriginSide ? 0 : computedOffset.crossAxis);\n const limitMax = rects.reference[crossAxis] + rects.reference[len] + (isOriginSide ? 0 : ((_middlewareData$offse2 = middlewareData.offset) == null ? void 0 : _middlewareData$offse2[crossAxis]) || 0) - (isOriginSide ? computedOffset.crossAxis : 0);\n if (crossAxisCoord < limitMin) {\n crossAxisCoord = limitMin;\n } else if (crossAxisCoord > limitMax) {\n crossAxisCoord = limitMax;\n }\n }\n return {\n [mainAxis]: mainAxisCoord,\n [crossAxis]: crossAxisCoord\n };\n }\n };\n};\n\n/**\n * Provides data that allows you to change the size of the floating element \u2014\n * for instance, prevent it from overflowing the clipping boundary or match the\n * width of the reference element.\n * @see https://floating-ui.com/docs/size\n */\nconst size = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'size',\n options,\n async fn(state) {\n var _state$middlewareData, _state$middlewareData2;\n const {\n placement,\n rects,\n platform,\n elements\n } = state;\n const {\n apply = () => {},\n ...detectOverflowOptions\n } = evaluate(options, state);\n const overflow = await platform.detectOverflow(state, detectOverflowOptions);\n const side = getSide(placement);\n const alignment = getAlignment(placement);\n const isYAxis = getSideAxis(placement) === 'y';\n const {\n width,\n height\n } = rects.floating;\n let heightSide;\n let widthSide;\n if (side === 'top' || side === 'bottom') {\n heightSide = side;\n widthSide = alignment === ((await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating))) ? 'start' : 'end') ? 'left' : 'right';\n } else {\n widthSide = side;\n heightSide = alignment === 'end' ? 'top' : 'bottom';\n }\n const maximumClippingHeight = height - overflow.top - overflow.bottom;\n const maximumClippingWidth = width - overflow.left - overflow.right;\n const overflowAvailableHeight = min(height - overflow[heightSide], maximumClippingHeight);\n const overflowAvailableWidth = min(width - overflow[widthSide], maximumClippingWidth);\n const noShift = !state.middlewareData.shift;\n let availableHeight = overflowAvailableHeight;\n let availableWidth = overflowAvailableWidth;\n if ((_state$middlewareData = state.middlewareData.shift) != null && _state$middlewareData.enabled.x) {\n availableWidth = maximumClippingWidth;\n }\n if ((_state$middlewareData2 = state.middlewareData.shift) != null && _state$middlewareData2.enabled.y) {\n availableHeight = maximumClippingHeight;\n }\n if (noShift && !alignment) {\n const xMin = max(overflow.left, 0);\n const xMax = max(overflow.right, 0);\n const yMin = max(overflow.top, 0);\n const yMax = max(overflow.bottom, 0);\n if (isYAxis) {\n availableWidth = width - 2 * (xMin !== 0 || xMax !== 0 ? xMin + xMax : max(overflow.left, overflow.right));\n } else {\n availableHeight = height - 2 * (yMin !== 0 || yMax !== 0 ? yMin + yMax : max(overflow.top, overflow.bottom));\n }\n }\n await apply({\n ...state,\n availableWidth,\n availableHeight\n });\n const nextDimensions = await platform.getDimensions(elements.floating);\n if (width !== nextDimensions.width || height !== nextDimensions.height) {\n return {\n reset: {\n rects: true\n }\n };\n }\n return {};\n }\n };\n};\n\nexport { arrow, autoPlacement, computePosition, detectOverflow, flip, hide, inline, limitShift, offset, shift, size };\n", "function hasWindow() {\n return typeof window !== 'undefined';\n}\nfunction getNodeName(node) {\n if (isNode(node)) {\n return (node.nodeName || '').toLowerCase();\n }\n // Mocked nodes in testing environments may not be instances of Node. By\n // returning `#document` an infinite loop won't occur.\n // https://github.com/floating-ui/floating-ui/issues/2317\n return '#document';\n}\nfunction getWindow(node) {\n var _node$ownerDocument;\n return (node == null || (_node$ownerDocument = node.ownerDocument) == null ? void 0 : _node$ownerDocument.defaultView) || window;\n}\nfunction getDocumentElement(node) {\n var _ref;\n return (_ref = (isNode(node) ? node.ownerDocument : node.document) || window.document) == null ? void 0 : _ref.documentElement;\n}\nfunction isNode(value) {\n if (!hasWindow()) {\n return false;\n }\n return value instanceof Node || value instanceof getWindow(value).Node;\n}\nfunction isElement(value) {\n if (!hasWindow()) {\n return false;\n }\n return value instanceof Element || value instanceof getWindow(value).Element;\n}\nfunction isHTMLElement(value) {\n if (!hasWindow()) {\n return false;\n }\n return value instanceof HTMLElement || value instanceof getWindow(value).HTMLElement;\n}\nfunction isShadowRoot(value) {\n if (!hasWindow() || typeof ShadowRoot === 'undefined') {\n return false;\n }\n return value instanceof ShadowRoot || value instanceof getWindow(value).ShadowRoot;\n}\nfunction isOverflowElement(element) {\n const {\n overflow,\n overflowX,\n overflowY,\n display\n } = getComputedStyle(element);\n return /auto|scroll|overlay|hidden|clip/.test(overflow + overflowY + overflowX) && display !== 'inline' && display !== 'contents';\n}\nfunction isTableElement(element) {\n return /^(table|td|th)$/.test(getNodeName(element));\n}\nfunction isTopLayer(element) {\n try {\n if (element.matches(':popover-open')) {\n return true;\n }\n } catch (_e) {\n // no-op\n }\n try {\n return element.matches(':modal');\n } catch (_e) {\n return false;\n }\n}\nconst willChangeRe = /transform|translate|scale|rotate|perspective|filter/;\nconst containRe = /paint|layout|strict|content/;\nconst isNotNone = value => !!value && value !== 'none';\nlet isWebKitValue;\nfunction isContainingBlock(elementOrCss) {\n const css = isElement(elementOrCss) ? getComputedStyle(elementOrCss) : elementOrCss;\n\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n // https://drafts.csswg.org/css-transforms-2/#individual-transforms\n return isNotNone(css.transform) || isNotNone(css.translate) || isNotNone(css.scale) || isNotNone(css.rotate) || isNotNone(css.perspective) || !isWebKit() && (isNotNone(css.backdropFilter) || isNotNone(css.filter)) || willChangeRe.test(css.willChange || '') || containRe.test(css.contain || '');\n}\nfunction getContainingBlock(element) {\n let currentNode = getParentNode(element);\n while (isHTMLElement(currentNode) && !isLastTraversableNode(currentNode)) {\n if (isContainingBlock(currentNode)) {\n return currentNode;\n } else if (isTopLayer(currentNode)) {\n return null;\n }\n currentNode = getParentNode(currentNode);\n }\n return null;\n}\nfunction isWebKit() {\n if (isWebKitValue == null) {\n isWebKitValue = typeof CSS !== 'undefined' && CSS.supports && CSS.supports('-webkit-backdrop-filter', 'none');\n }\n return isWebKitValue;\n}\nfunction isLastTraversableNode(node) {\n return /^(html|body|#document)$/.test(getNodeName(node));\n}\nfunction getComputedStyle(element) {\n return getWindow(element).getComputedStyle(element);\n}\nfunction getNodeScroll(element) {\n if (isElement(element)) {\n return {\n scrollLeft: element.scrollLeft,\n scrollTop: element.scrollTop\n };\n }\n return {\n scrollLeft: element.scrollX,\n scrollTop: element.scrollY\n };\n}\nfunction getParentNode(node) {\n if (getNodeName(node) === 'html') {\n return node;\n }\n const result =\n // Step into the shadow DOM of the parent of a slotted node.\n node.assignedSlot ||\n // DOM Element detected.\n node.parentNode ||\n // ShadowRoot detected.\n isShadowRoot(node) && node.host ||\n // Fallback.\n getDocumentElement(node);\n return isShadowRoot(result) ? result.host : result;\n}\nfunction getNearestOverflowAncestor(node) {\n const parentNode = getParentNode(node);\n if (isLastTraversableNode(parentNode)) {\n return node.ownerDocument ? node.ownerDocument.body : node.body;\n }\n if (isHTMLElement(parentNode) && isOverflowElement(parentNode)) {\n return parentNode;\n }\n return getNearestOverflowAncestor(parentNode);\n}\nfunction getOverflowAncestors(node, list, traverseIframes) {\n var _node$ownerDocument2;\n if (list === void 0) {\n list = [];\n }\n if (traverseIframes === void 0) {\n traverseIframes = true;\n }\n const scrollableAncestor = getNearestOverflowAncestor(node);\n const isBody = scrollableAncestor === ((_node$ownerDocument2 = node.ownerDocument) == null ? void 0 : _node$ownerDocument2.body);\n const win = getWindow(scrollableAncestor);\n if (isBody) {\n const frameElement = getFrameElement(win);\n return list.concat(win, win.visualViewport || [], isOverflowElement(scrollableAncestor) ? scrollableAncestor : [], frameElement && traverseIframes ? getOverflowAncestors(frameElement) : []);\n } else {\n return list.concat(scrollableAncestor, getOverflowAncestors(scrollableAncestor, [], traverseIframes));\n }\n}\nfunction getFrameElement(win) {\n return win.parent && Object.getPrototypeOf(win.parent) ? win.frameElement : null;\n}\n\nexport { getComputedStyle, getContainingBlock, getDocumentElement, getFrameElement, getNearestOverflowAncestor, getNodeName, getNodeScroll, getOverflowAncestors, getParentNode, getWindow, isContainingBlock, isElement, isHTMLElement, isLastTraversableNode, isNode, isOverflowElement, isShadowRoot, isTableElement, isTopLayer, isWebKit };\n", "import { rectToClientRect, arrow as arrow$1, autoPlacement as autoPlacement$1, detectOverflow as detectOverflow$1, flip as flip$1, hide as hide$1, inline as inline$1, limitShift as limitShift$1, offset as offset$1, shift as shift$1, size as size$1, computePosition as computePosition$1 } from '@floating-ui/core';\nimport { round, createCoords, max, min, floor } from '@floating-ui/utils';\nimport { getComputedStyle as getComputedStyle$1, isHTMLElement, isElement, getWindow, isWebKit, getFrameElement, getNodeScroll, getDocumentElement, isTopLayer, getNodeName, isOverflowElement, getOverflowAncestors, getParentNode, isLastTraversableNode, isContainingBlock, isTableElement, getContainingBlock } from '@floating-ui/utils/dom';\nexport { getOverflowAncestors } from '@floating-ui/utils/dom';\n\nfunction getCssDimensions(element) {\n const css = getComputedStyle$1(element);\n // In testing environments, the `width` and `height` properties are empty\n // strings for SVG elements, returning NaN. Fallback to `0` in this case.\n let width = parseFloat(css.width) || 0;\n let height = parseFloat(css.height) || 0;\n const hasOffset = isHTMLElement(element);\n const offsetWidth = hasOffset ? element.offsetWidth : width;\n const offsetHeight = hasOffset ? element.offsetHeight : height;\n const shouldFallback = round(width) !== offsetWidth || round(height) !== offsetHeight;\n if (shouldFallback) {\n width = offsetWidth;\n height = offsetHeight;\n }\n return {\n width,\n height,\n $: shouldFallback\n };\n}\n\nfunction unwrapElement(element) {\n return !isElement(element) ? element.contextElement : element;\n}\n\nfunction getScale(element) {\n const domElement = unwrapElement(element);\n if (!isHTMLElement(domElement)) {\n return createCoords(1);\n }\n const rect = domElement.getBoundingClientRect();\n const {\n width,\n height,\n $\n } = getCssDimensions(domElement);\n let x = ($ ? round(rect.width) : rect.width) / width;\n let y = ($ ? round(rect.height) : rect.height) / height;\n\n // 0, NaN, or Infinity should always fallback to 1.\n\n if (!x || !Number.isFinite(x)) {\n x = 1;\n }\n if (!y || !Number.isFinite(y)) {\n y = 1;\n }\n return {\n x,\n y\n };\n}\n\nconst noOffsets = /*#__PURE__*/createCoords(0);\nfunction getVisualOffsets(element) {\n const win = getWindow(element);\n if (!isWebKit() || !win.visualViewport) {\n return noOffsets;\n }\n return {\n x: win.visualViewport.offsetLeft,\n y: win.visualViewport.offsetTop\n };\n}\nfunction shouldAddVisualOffsets(element, isFixed, floatingOffsetParent) {\n if (isFixed === void 0) {\n isFixed = false;\n }\n if (!floatingOffsetParent || isFixed && floatingOffsetParent !== getWindow(element)) {\n return false;\n }\n return isFixed;\n}\n\nfunction getBoundingClientRect(element, includeScale, isFixedStrategy, offsetParent) {\n if (includeScale === void 0) {\n includeScale = false;\n }\n if (isFixedStrategy === void 0) {\n isFixedStrategy = false;\n }\n const clientRect = element.getBoundingClientRect();\n const domElement = unwrapElement(element);\n let scale = createCoords(1);\n if (includeScale) {\n if (offsetParent) {\n if (isElement(offsetParent)) {\n scale = getScale(offsetParent);\n }\n } else {\n scale = getScale(element);\n }\n }\n const visualOffsets = shouldAddVisualOffsets(domElement, isFixedStrategy, offsetParent) ? getVisualOffsets(domElement) : createCoords(0);\n let x = (clientRect.left + visualOffsets.x) / scale.x;\n let y = (clientRect.top + visualOffsets.y) / scale.y;\n let width = clientRect.width / scale.x;\n let height = clientRect.height / scale.y;\n if (domElement) {\n const win = getWindow(domElement);\n const offsetWin = offsetParent && isElement(offsetParent) ? getWindow(offsetParent) : offsetParent;\n let currentWin = win;\n let currentIFrame = getFrameElement(currentWin);\n while (currentIFrame && offsetParent && offsetWin !== currentWin) {\n const iframeScale = getScale(currentIFrame);\n const iframeRect = currentIFrame.getBoundingClientRect();\n const css = getComputedStyle$1(currentIFrame);\n const left = iframeRect.left + (currentIFrame.clientLeft + parseFloat(css.paddingLeft)) * iframeScale.x;\n const top = iframeRect.top + (currentIFrame.clientTop + parseFloat(css.paddingTop)) * iframeScale.y;\n x *= iframeScale.x;\n y *= iframeScale.y;\n width *= iframeScale.x;\n height *= iframeScale.y;\n x += left;\n y += top;\n currentWin = getWindow(currentIFrame);\n currentIFrame = getFrameElement(currentWin);\n }\n }\n return rectToClientRect({\n width,\n height,\n x,\n y\n });\n}\n\n// If <html> has a CSS width greater than the viewport, then this will be\n// incorrect for RTL.\nfunction getWindowScrollBarX(element, rect) {\n const leftScroll = getNodeScroll(element).scrollLeft;\n if (!rect) {\n return getBoundingClientRect(getDocumentElement(element)).left + leftScroll;\n }\n return rect.left + leftScroll;\n}\n\nfunction getHTMLOffset(documentElement, scroll) {\n const htmlRect = documentElement.getBoundingClientRect();\n const x = htmlRect.left + scroll.scrollLeft - getWindowScrollBarX(documentElement, htmlRect);\n const y = htmlRect.top + scroll.scrollTop;\n return {\n x,\n y\n };\n}\n\nfunction convertOffsetParentRelativeRectToViewportRelativeRect(_ref) {\n let {\n elements,\n rect,\n offsetParent,\n strategy\n } = _ref;\n const isFixed = strategy === 'fixed';\n const documentElement = getDocumentElement(offsetParent);\n const topLayer = elements ? isTopLayer(elements.floating) : false;\n if (offsetParent === documentElement || topLayer && isFixed) {\n return rect;\n }\n let scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n let scale = createCoords(1);\n const offsets = createCoords(0);\n const isOffsetParentAnElement = isHTMLElement(offsetParent);\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || isOverflowElement(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n if (isOffsetParentAnElement) {\n const offsetRect = getBoundingClientRect(offsetParent);\n scale = getScale(offsetParent);\n offsets.x = offsetRect.x + offsetParent.clientLeft;\n offsets.y = offsetRect.y + offsetParent.clientTop;\n }\n }\n const htmlOffset = documentElement && !isOffsetParentAnElement && !isFixed ? getHTMLOffset(documentElement, scroll) : createCoords(0);\n return {\n width: rect.width * scale.x,\n height: rect.height * scale.y,\n x: rect.x * scale.x - scroll.scrollLeft * scale.x + offsets.x + htmlOffset.x,\n y: rect.y * scale.y - scroll.scrollTop * scale.y + offsets.y + htmlOffset.y\n };\n}\n\nfunction getClientRects(element) {\n return Array.from(element.getClientRects());\n}\n\n// Gets the entire size of the scrollable document area, even extending outside\n// of the `<html>` and `<body>` rect bounds if horizontally scrollable.\nfunction getDocumentRect(element) {\n const html = getDocumentElement(element);\n const scroll = getNodeScroll(element);\n const body = element.ownerDocument.body;\n const width = max(html.scrollWidth, html.clientWidth, body.scrollWidth, body.clientWidth);\n const height = max(html.scrollHeight, html.clientHeight, body.scrollHeight, body.clientHeight);\n let x = -scroll.scrollLeft + getWindowScrollBarX(element);\n const y = -scroll.scrollTop;\n if (getComputedStyle$1(body).direction === 'rtl') {\n x += max(html.clientWidth, body.clientWidth) - width;\n }\n return {\n width,\n height,\n x,\n y\n };\n}\n\n// Safety check: ensure the scrollbar space is reasonable in case this\n// calculation is affected by unusual styles.\n// Most scrollbars leave 15-18px of space.\nconst SCROLLBAR_MAX = 25;\nfunction getViewportRect(element, strategy) {\n const win = getWindow(element);\n const html = getDocumentElement(element);\n const visualViewport = win.visualViewport;\n let width = html.clientWidth;\n let height = html.clientHeight;\n let x = 0;\n let y = 0;\n if (visualViewport) {\n width = visualViewport.width;\n height = visualViewport.height;\n const visualViewportBased = isWebKit();\n if (!visualViewportBased || visualViewportBased && strategy === 'fixed') {\n x = visualViewport.offsetLeft;\n y = visualViewport.offsetTop;\n }\n }\n const windowScrollbarX = getWindowScrollBarX(html);\n // <html> `overflow: hidden` + `scrollbar-gutter: stable` reduces the\n // visual width of the <html> but this is not considered in the size\n // of `html.clientWidth`.\n if (windowScrollbarX <= 0) {\n const doc = html.ownerDocument;\n const body = doc.body;\n const bodyStyles = getComputedStyle(body);\n const bodyMarginInline = doc.compatMode === 'CSS1Compat' ? parseFloat(bodyStyles.marginLeft) + parseFloat(bodyStyles.marginRight) || 0 : 0;\n const clippingStableScrollbarWidth = Math.abs(html.clientWidth - body.clientWidth - bodyMarginInline);\n if (clippingStableScrollbarWidth <= SCROLLBAR_MAX) {\n width -= clippingStableScrollbarWidth;\n }\n } else if (windowScrollbarX <= SCROLLBAR_MAX) {\n // If the <body> scrollbar is on the left, the width needs to be extended\n // by the scrollbar amount so there isn't extra space on the right.\n width += windowScrollbarX;\n }\n return {\n width,\n height,\n x,\n y\n };\n}\n\n// Returns the inner client rect, subtracting scrollbars if present.\nfunction getInnerBoundingClientRect(element, strategy) {\n const clientRect = getBoundingClientRect(element, true, strategy === 'fixed');\n const top = clientRect.top + element.clientTop;\n const left = clientRect.left + element.clientLeft;\n const scale = isHTMLElement(element) ? getScale(element) : createCoords(1);\n const width = element.clientWidth * scale.x;\n const height = element.clientHeight * scale.y;\n const x = left * scale.x;\n const y = top * scale.y;\n return {\n width,\n height,\n x,\n y\n };\n}\nfunction getClientRectFromClippingAncestor(element, clippingAncestor, strategy) {\n let rect;\n if (clippingAncestor === 'viewport') {\n rect = getViewportRect(element, strategy);\n } else if (clippingAncestor === 'document') {\n rect = getDocumentRect(getDocumentElement(element));\n } else if (isElement(clippingAncestor)) {\n rect = getInnerBoundingClientRect(clippingAncestor, strategy);\n } else {\n const visualOffsets = getVisualOffsets(element);\n rect = {\n x: clippingAncestor.x - visualOffsets.x,\n y: clippingAncestor.y - visualOffsets.y,\n width: clippingAncestor.width,\n height: clippingAncestor.height\n };\n }\n return rectToClientRect(rect);\n}\nfunction hasFixedPositionAncestor(element, stopNode) {\n const parentNode = getParentNode(element);\n if (parentNode === stopNode || !isElement(parentNode) || isLastTraversableNode(parentNode)) {\n return false;\n }\n return getComputedStyle$1(parentNode).position === 'fixed' || hasFixedPositionAncestor(parentNode, stopNode);\n}\n\n// A \"clipping ancestor\" is an `overflow` element with the characteristic of\n// clipping (or hiding) child elements. This returns all clipping ancestors\n// of the given element up the tree.\nfunction getClippingElementAncestors(element, cache) {\n const cachedResult = cache.get(element);\n if (cachedResult) {\n return cachedResult;\n }\n let result = getOverflowAncestors(element, [], false).filter(el => isElement(el) && getNodeName(el) !== 'body');\n let currentContainingBlockComputedStyle = null;\n const elementIsFixed = getComputedStyle$1(element).position === 'fixed';\n let currentNode = elementIsFixed ? getParentNode(element) : element;\n\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n while (isElement(currentNode) && !isLastTraversableNode(currentNode)) {\n const computedStyle = getComputedStyle$1(currentNode);\n const currentNodeIsContaining = isContainingBlock(currentNode);\n if (!currentNodeIsContaining && computedStyle.position === 'fixed') {\n currentContainingBlockComputedStyle = null;\n }\n const shouldDropCurrentNode = elementIsFixed ? !currentNodeIsContaining && !currentContainingBlockComputedStyle : !currentNodeIsContaining && computedStyle.position === 'static' && !!currentContainingBlockComputedStyle && (currentContainingBlockComputedStyle.position === 'absolute' || currentContainingBlockComputedStyle.position === 'fixed') || isOverflowElement(currentNode) && !currentNodeIsContaining && hasFixedPositionAncestor(element, currentNode);\n if (shouldDropCurrentNode) {\n // Drop non-containing blocks.\n result = result.filter(ancestor => ancestor !== currentNode);\n } else {\n // Record last containing block for next iteration.\n currentContainingBlockComputedStyle = computedStyle;\n }\n currentNode = getParentNode(currentNode);\n }\n cache.set(element, result);\n return result;\n}\n\n// Gets the maximum area that the element is visible in due to any number of\n// clipping ancestors.\nfunction getClippingRect(_ref) {\n let {\n element,\n boundary,\n rootBoundary,\n strategy\n } = _ref;\n const elementClippingAncestors = boundary === 'clippingAncestors' ? isTopLayer(element) ? [] : getClippingElementAncestors(element, this._c) : [].concat(boundary);\n const clippingAncestors = [...elementClippingAncestors, rootBoundary];\n const firstRect = getClientRectFromClippingAncestor(element, clippingAncestors[0], strategy);\n let top = firstRect.top;\n let right = firstRect.right;\n let bottom = firstRect.bottom;\n let left = firstRect.left;\n for (let i = 1; i < clippingAncestors.length; i++) {\n const rect = getClientRectFromClippingAncestor(element, clippingAncestors[i], strategy);\n top = max(rect.top, top);\n right = min(rect.right, right);\n bottom = min(rect.bottom, bottom);\n left = max(rect.left, left);\n }\n return {\n width: right - left,\n height: bottom - top,\n x: left,\n y: top\n };\n}\n\nfunction getDimensions(element) {\n const {\n width,\n height\n } = getCssDimensions(element);\n return {\n width,\n height\n };\n}\n\nfunction getRectRelativeToOffsetParent(element, offsetParent, strategy) {\n const isOffsetParentAnElement = isHTMLElement(offsetParent);\n const documentElement = getDocumentElement(offsetParent);\n const isFixed = strategy === 'fixed';\n const rect = getBoundingClientRect(element, true, isFixed, offsetParent);\n let scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n const offsets = createCoords(0);\n\n // If the <body> scrollbar appears on the left (e.g. RTL systems). Use\n // Firefox with layout.scrollbar.side = 3 in about:config to test this.\n function setLeftRTLScrollbarOffset() {\n offsets.x = getWindowScrollBarX(documentElement);\n }\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || isOverflowElement(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n if (isOffsetParentAnElement) {\n const offsetRect = getBoundingClientRect(offsetParent, true, isFixed, offsetParent);\n offsets.x = offsetRect.x + offsetParent.clientLeft;\n offsets.y = offsetRect.y + offsetParent.clientTop;\n } else if (documentElement) {\n setLeftRTLScrollbarOffset();\n }\n }\n if (isFixed && !isOffsetParentAnElement && documentElement) {\n setLeftRTLScrollbarOffset();\n }\n const htmlOffset = documentElement && !isOffsetParentAnElement && !isFixed ? getHTMLOffset(documentElement, scroll) : createCoords(0);\n const x = rect.left + scroll.scrollLeft - offsets.x - htmlOffset.x;\n const y = rect.top + scroll.scrollTop - offsets.y - htmlOffset.y;\n return {\n x,\n y,\n width: rect.width,\n height: rect.height\n };\n}\n\nfunction isStaticPositioned(element) {\n return getComputedStyle$1(element).position === 'static';\n}\n\nfunction getTrueOffsetParent(element, polyfill) {\n if (!isHTMLElement(element) || getComputedStyle$1(element).position === 'fixed') {\n return null;\n }\n if (polyfill) {\n return polyfill(element);\n }\n let rawOffsetParent = element.offsetParent;\n\n // Firefox returns the <html> element as the offsetParent if it's non-static,\n // while Chrome and Safari return the <body> element. The <body> element must\n // be used to perform the correct calculations even if the <html> element is\n // non-static.\n if (getDocumentElement(element) === rawOffsetParent) {\n rawOffsetParent = rawOffsetParent.ownerDocument.body;\n }\n return rawOffsetParent;\n}\n\n// Gets the closest ancestor positioned element. Handles some edge cases,\n// such as table ancestors and cross browser bugs.\nfunction getOffsetParent(element, polyfill) {\n const win = getWindow(element);\n if (isTopLayer(element)) {\n return win;\n }\n if (!isHTMLElement(element)) {\n let svgOffsetParent = getParentNode(element);\n while (svgOffsetParent && !isLastTraversableNode(svgOffsetParent)) {\n if (isElement(svgOffsetParent) && !isStaticPositioned(svgOffsetParent)) {\n return svgOffsetParent;\n }\n svgOffsetParent = getParentNode(svgOffsetParent);\n }\n return win;\n }\n let offsetParent = getTrueOffsetParent(element, polyfill);\n while (offsetParent && isTableElement(offsetParent) && isStaticPositioned(offsetParent)) {\n offsetParent = getTrueOffsetParent(offsetParent, polyfill);\n }\n if (offsetParent && isLastTraversableNode(offsetParent) && isStaticPositioned(offsetParent) && !isContainingBlock(offsetParent)) {\n return win;\n }\n return offsetParent || getContainingBlock(element) || win;\n}\n\nconst getElementRects = async function (data) {\n const getOffsetParentFn = this.getOffsetParent || getOffsetParent;\n const getDimensionsFn = this.getDimensions;\n const floatingDimensions = await getDimensionsFn(data.floating);\n return {\n reference: getRectRelativeToOffsetParent(data.reference, await getOffsetParentFn(data.floating), data.strategy),\n floating: {\n x: 0,\n y: 0,\n width: floatingDimensions.width,\n height: floatingDimensions.height\n }\n };\n};\n\nfunction isRTL(element) {\n return getComputedStyle$1(element).direction === 'rtl';\n}\n\nconst platform = {\n convertOffsetParentRelativeRectToViewportRelativeRect,\n getDocumentElement,\n getClippingRect,\n getOffsetParent,\n getElementRects,\n getClientRects,\n getDimensions,\n getScale,\n isElement,\n isRTL\n};\n\nfunction rectsAreEqual(a, b) {\n return a.x === b.x && a.y === b.y && a.width === b.width && a.height === b.height;\n}\n\n// https://samthor.au/2021/observing-dom/\nfunction observeMove(element, onMove) {\n let io = null;\n let timeoutId;\n const root = getDocumentElement(element);\n function cleanup() {\n var _io;\n clearTimeout(timeoutId);\n (_io = io) == null || _io.disconnect();\n io = null;\n }\n function refresh(skip, threshold) {\n if (skip === void 0) {\n skip = false;\n }\n if (threshold === void 0) {\n threshold = 1;\n }\n cleanup();\n const elementRectForRootMargin = element.getBoundingClientRect();\n const {\n left,\n top,\n width,\n height\n } = elementRectForRootMargin;\n if (!skip) {\n onMove();\n }\n if (!width || !height) {\n return;\n }\n const insetTop = floor(top);\n const insetRight = floor(root.clientWidth - (left + width));\n const insetBottom = floor(root.clientHeight - (top + height));\n const insetLeft = floor(left);\n const rootMargin = -insetTop + \"px \" + -insetRight + \"px \" + -insetBottom + \"px \" + -insetLeft + \"px\";\n const options = {\n rootMargin,\n threshold: max(0, min(1, threshold)) || 1\n };\n let isFirstUpdate = true;\n function handleObserve(entries) {\n const ratio = entries[0].intersectionRatio;\n if (ratio !== threshold) {\n if (!isFirstUpdate) {\n return refresh();\n }\n if (!ratio) {\n // If the reference is clipped, the ratio is 0. Throttle the refresh\n // to prevent an infinite loop of updates.\n timeoutId = setTimeout(() => {\n refresh(false, 1e-7);\n }, 1000);\n } else {\n refresh(false, ratio);\n }\n }\n if (ratio === 1 && !rectsAreEqual(elementRectForRootMargin, element.getBoundingClientRect())) {\n // It's possible that even though the ratio is reported as 1, the\n // element is not actually fully within the IntersectionObserver's root\n // area anymore. This can happen under performance constraints. This may\n // be a bug in the browser's IntersectionObserver implementation. To\n // work around this, we compare the element's bounding rect now with\n // what it was at the time we created the IntersectionObserver. If they\n // are not equal then the element moved, so we refresh.\n refresh();\n }\n isFirstUpdate = false;\n }\n\n // Older browsers don't support a `document` as the root and will throw an\n // error.\n try {\n io = new IntersectionObserver(handleObserve, {\n ...options,\n // Handle <iframe>s\n root: root.ownerDocument\n });\n } catch (_e) {\n io = new IntersectionObserver(handleObserve, options);\n }\n io.observe(element);\n }\n refresh(true);\n return cleanup;\n}\n\n/**\n * Automatically updates the position of the floating element when necessary.\n * Should only be called when the floating element is mounted on the DOM or\n * visible on the screen.\n * @returns cleanup function that should be invoked when the floating element is\n * removed from the DOM or hidden from the screen.\n * @see https://floating-ui.com/docs/autoUpdate\n */\nfunction autoUpdate(reference, floating, update, options) {\n if (options === void 0) {\n options = {};\n }\n const {\n ancestorScroll = true,\n ancestorResize = true,\n elementResize = typeof ResizeObserver === 'function',\n layoutShift = typeof IntersectionObserver === 'function',\n animationFrame = false\n } = options;\n const referenceEl = unwrapElement(reference);\n const ancestors = ancestorScroll || ancestorResize ? [...(referenceEl ? getOverflowAncestors(referenceEl) : []), ...(floating ? getOverflowAncestors(floating) : [])] : [];\n ancestors.forEach(ancestor => {\n ancestorScroll && ancestor.addEventListener('scroll', update, {\n passive: true\n });\n ancestorResize && ancestor.addEventListener('resize', update);\n });\n const cleanupIo = referenceEl && layoutShift ? observeMove(referenceEl, update) : null;\n let reobserveFrame = -1;\n let resizeObserver = null;\n if (elementResize) {\n resizeObserver = new ResizeObserver(_ref => {\n let [firstEntry] = _ref;\n if (firstEntry && firstEntry.target === referenceEl && resizeObserver && floating) {\n // Prevent update loops when using the `size` middleware.\n // https://github.com/floating-ui/floating-ui/issues/1740\n resizeObserver.unobserve(floating);\n cancelAnimationFrame(reobserveFrame);\n reobserveFrame = requestAnimationFrame(() => {\n var _resizeObserver;\n (_resizeObserver = resizeObserver) == null || _resizeObserver.observe(floating);\n });\n }\n update();\n });\n if (referenceEl && !animationFrame) {\n resizeObserver.observe(referenceEl);\n }\n if (floating) {\n resizeObserver.observe(floating);\n }\n }\n let frameId;\n let prevRefRect = animationFrame ? getBoundingClientRect(reference) : null;\n if (animationFrame) {\n frameLoop();\n }\n function frameLoop() {\n const nextRefRect = getBoundingClientRect(reference);\n if (prevRefRect && !rectsAreEqual(prevRefRect, nextRefRect)) {\n update();\n }\n prevRefRect = nextRefRect;\n frameId = requestAnimationFrame(frameLoop);\n }\n update();\n return () => {\n var _resizeObserver2;\n ancestors.forEach(ancestor => {\n ancestorScroll && ancestor.removeEventListener('scroll', update);\n ancestorResize && ancestor.removeEventListener('resize', update);\n });\n cleanupIo == null || cleanupIo();\n (_resizeObserver2 = resizeObserver) == null || _resizeObserver2.disconnect();\n resizeObserver = null;\n if (animationFrame) {\n cancelAnimationFrame(frameId);\n }\n };\n}\n\n/**\n * Resolves with an object of overflow side offsets that determine how much the\n * element is overflowing a given clipping boundary on each side.\n * - positive = overflowing the boundary by that number of pixels\n * - negative = how many pixels left before it will overflow\n * - 0 = lies flush with the boundary\n * @see https://floating-ui.com/docs/detectOverflow\n */\nconst detectOverflow = detectOverflow$1;\n\n/**\n * Modifies the placement by translating the floating element along the\n * specified axes.\n * A number (shorthand for `mainAxis` or distance), or an axes configuration\n * object may be passed.\n * @see https://floating-ui.com/docs/offset\n */\nconst offset = offset$1;\n\n/**\n * Optimizes the visibility of the floating element by choosing the placement\n * that has the most space available automatically, without needing to specify a\n * preferred placement. Alternative to `flip`.\n * @see https://floating-ui.com/docs/autoPlacement\n */\nconst autoPlacement = autoPlacement$1;\n\n/**\n * Optimizes the visibility of the floating element by shifting it in order to\n * keep it in view when it will overflow the clipping boundary.\n * @see https://floating-ui.com/docs/shift\n */\nconst shift = shift$1;\n\n/**\n * Optimizes the visibility of the floating element by flipping the `placement`\n * in order to keep it in view when the preferred placement(s) will overflow the\n * clipping boundary. Alternative to `autoPlacement`.\n * @see https://floating-ui.com/docs/flip\n */\nconst flip = flip$1;\n\n/**\n * Provides data that allows you to change the size of the floating element \u2014\n * for instance, prevent it from overflowing the clipping boundary or match the\n * width of the reference element.\n * @see https://floating-ui.com/docs/size\n */\nconst size = size$1;\n\n/**\n * Provides data to hide the floating element in applicable situations, such as\n * when it is not in the same clipping context as the reference element.\n * @see https://floating-ui.com/docs/hide\n */\nconst hide = hide$1;\n\n/**\n * Provides data to position an inner element of the floating element so that it\n * appears centered to the reference element.\n * @see https://floating-ui.com/docs/arrow\n */\nconst arrow = arrow$1;\n\n/**\n * Provides improved positioning for inline reference elements that can span\n * over multiple lines, such as hyperlinks or range selections.\n * @see https://floating-ui.com/docs/inline\n */\nconst inline = inline$1;\n\n/**\n * Built-in `limiter` that will stop `shift()` at a certain point.\n */\nconst limitShift = limitShift$1;\n\n/**\n * Computes the `x` and `y` coordinates that will place the floating element\n * next to a given reference element.\n */\nconst computePosition = (reference, floating, options) => {\n // This caches the expensive `getClippingElementAncestors` function so that\n // multiple lifecycle resets re-use the same result. It only lives for a\n // single call. If other functions become expensive, we can add them as well.\n const cache = new Map();\n const mergedOptions = {\n platform,\n ...options\n };\n const platformWithCache = {\n ...mergedOptions.platform,\n _c: cache\n };\n return computePosition$1(reference, floating, {\n ...mergedOptions,\n platform: platformWithCache\n });\n};\n\nexport { arrow, autoPlacement, autoUpdate, computePosition, detectOverflow, flip, hide, inline, limitShift, offset, platform, shift, size };\n", "import { useLocale } from './XHJPQEZP.js';\nimport { Polymorphic } from './6Y7B2NEO.js';\nimport { createComponent, mergeProps, effect, setAttribute, template } from 'solid-js/web';\nimport { mergeDefaultProps, mergeRefs, getWindow } from '@kobalte/utils';\nimport { createContext, useContext, splitProps, createSignal, createEffect, onCleanup } from 'solid-js';\nimport { combineStyle } from '@solid-primitives/props';\nimport { autoUpdate, offset, flip, shift, size, hide, arrow, computePosition, platform } from '@floating-ui/dom';\n\nvar PopperContext = createContext();\nfunction usePopperContext() {\n const context = useContext(PopperContext);\n if (context === void 0) {\n throw new Error(\"[kobalte]: `usePopperContext` must be used within a `Popper` component\");\n }\n return context;\n}\n\n// src/popper/popper-arrow.tsx\nvar _tmpl$ = /* @__PURE__ */ template(`<svg display=\"block\" viewBox=\"0 0 30 30\" style=\"transform:scale(1.02)\"><g><path fill=\"none\" d=\"M23,27.8c1.1,1.2,3.4,2.2,5,2.2h2H0h2c1.7,0,3.9-1,5-2.2l6.6-7.2c0.7-0.8,2-0.8,2.7,0L23,27.8L23,27.8z\"></path><path stroke=\"none\" d=\"M23,27.8c1.1,1.2,3.4,2.2,5,2.2h2H0h2c1.7,0,3.9-1,5-2.2l6.6-7.2c0.7-0.8,2-0.8,2.7,0L23,27.8L23,27.8z\">`);\nvar DEFAULT_SIZE = 30;\nvar HALF_DEFAULT_SIZE = DEFAULT_SIZE / 2;\nvar ROTATION_DEG = {\n top: 180,\n right: -90,\n bottom: 0,\n left: 90\n};\nfunction PopperArrow(props) {\n const context = usePopperContext();\n const mergedProps = mergeDefaultProps({\n size: DEFAULT_SIZE\n }, props);\n const [local, others] = splitProps(mergedProps, [\"ref\", \"style\", \"size\"]);\n const dir = () => context.currentPlacement().split(\"-\")[0];\n const contentStyle = createComputedStyle(context.contentRef);\n const fill = () => contentStyle()?.getPropertyValue(\"background-color\") || \"none\";\n const stroke = () => contentStyle()?.getPropertyValue(`border-${dir()}-color`) || \"none\";\n const borderWidth = () => contentStyle()?.getPropertyValue(`border-${dir()}-width`) || \"0px\";\n const strokeWidth = () => {\n return Number.parseInt(borderWidth()) * 2 * (DEFAULT_SIZE / local.size);\n };\n const rotate = () => {\n return `rotate(${ROTATION_DEG[dir()]} ${HALF_DEFAULT_SIZE} ${HALF_DEFAULT_SIZE}) translate(0 2)`;\n };\n return createComponent(Polymorphic, mergeProps({\n as: \"div\",\n ref(r$) {\n const _ref$ = mergeRefs(context.setArrowRef, local.ref);\n typeof _ref$ === \"function\" && _ref$(r$);\n },\n \"aria-hidden\": \"true\",\n get style() {\n return combineStyle({\n // server side rendering\n position: \"absolute\",\n \"font-size\": `${local.size}px`,\n width: \"1em\",\n height: \"1em\",\n \"pointer-events\": \"none\",\n fill: fill(),\n stroke: stroke(),\n \"stroke-width\": strokeWidth()\n }, local.style);\n }\n }, others, {\n get children() {\n const _el$ = _tmpl$(), _el$2 = _el$.firstChild;\n effect(() => setAttribute(_el$2, \"transform\", rotate()));\n return _el$;\n }\n }));\n}\nfunction createComputedStyle(element) {\n const [style, setStyle] = createSignal();\n createEffect(() => {\n const el = element();\n el && setStyle(getWindow(el).getComputedStyle(el));\n });\n return style;\n}\nfunction PopperPositioner(props) {\n const context = usePopperContext();\n const [local, others] = splitProps(props, [\"ref\", \"style\"]);\n return createComponent(Polymorphic, mergeProps({\n as: \"div\",\n ref(r$) {\n const _ref$ = mergeRefs(context.setPositionerRef, local.ref);\n typeof _ref$ === \"function\" && _ref$(r$);\n },\n \"data-popper-positioner\": \"\",\n get style() {\n return combineStyle({\n position: \"absolute\",\n top: 0,\n left: 0,\n \"min-width\": \"max-content\"\n }, local.style);\n }\n }, others));\n}\n\n// src/popper/utils.ts\nfunction createDOMRect(anchorRect) {\n const { x = 0, y = 0, width = 0, height = 0 } = anchorRect ?? {};\n if (typeof DOMRect === \"function\") {\n return new DOMRect(x, y, width, height);\n }\n const rect = {\n x,\n y,\n width,\n height,\n top: y,\n right: x + width,\n bottom: y + height,\n left: x\n };\n return { ...rect, toJSON: () => rect };\n}\nfunction getAnchorElement(anchor, getAnchorRect) {\n const contextElement = anchor;\n return {\n contextElement,\n getBoundingClientRect: () => {\n const anchorRect = getAnchorRect(anchor);\n if (anchorRect) {\n return createDOMRect(anchorRect);\n }\n if (anchor) {\n return anchor.getBoundingClientRect();\n }\n return createDOMRect();\n }\n };\n}\nfunction isValidPlacement(flip2) {\n return /^(?:top|bottom|left|right)(?:-(?:start|end))?$/.test(flip2);\n}\nvar REVERSE_BASE_PLACEMENT = {\n top: \"bottom\",\n right: \"left\",\n bottom: \"top\",\n left: \"right\"\n};\nfunction getTransformOrigin(placement, readingDirection) {\n const [basePlacement, alignment] = placement.split(\"-\");\n const reversePlacement = REVERSE_BASE_PLACEMENT[basePlacement];\n if (!alignment) {\n return `${reversePlacement} center`;\n }\n if (basePlacement === \"left\" || basePlacement === \"right\") {\n return `${reversePlacement} ${alignment === \"start\" ? \"top\" : \"bottom\"}`;\n }\n if (alignment === \"start\") {\n return `${reversePlacement} ${readingDirection === \"rtl\" ? \"right\" : \"left\"}`;\n }\n return `${reversePlacement} ${readingDirection === \"rtl\" ? \"left\" : \"right\"}`;\n}\n\n// src/popper/popper-root.tsx\nfunction PopperRoot(props) {\n const mergedProps = mergeDefaultProps({\n getAnchorRect: (anchor) => anchor?.getBoundingClientRect(),\n placement: \"bottom\",\n gutter: 0,\n shift: 0,\n flip: true,\n slide: true,\n overlap: false,\n sameWidth: false,\n fitViewport: false,\n hideWhenDetached: false,\n detachedPadding: 0,\n arrowPadding: 4,\n overflowPadding: 8\n }, props);\n const [positionerRef, setPositionerRef] = createSignal();\n const [arrowRef, setArrowRef] = createSignal();\n const [currentPlacement, setCurrentPlacement] = createSignal(mergedProps.placement);\n const anchorRef = () => getAnchorElement(mergedProps.anchorRef?.(), mergedProps.getAnchorRect);\n const {\n direction\n } = useLocale();\n async function updatePosition() {\n const referenceEl = anchorRef();\n const floatingEl = positionerRef();\n const arrowEl = arrowRef();\n if (!referenceEl || !floatingEl) {\n return;\n }\n const arrowOffset = (arrowEl?.clientHeight || 0) / 2;\n const finalGutter = typeof mergedProps.gutter === \"number\" ? mergedProps.gutter + arrowOffset : mergedProps.gutter ?? arrowOffset;\n floatingEl.style.setProperty(\"--kb-popper-content-overflow-padding\", `${mergedProps.overflowPadding}px`);\n referenceEl.getBoundingClientRect();\n const middleware = [\n // https://floating-ui.com/docs/offset\n offset(({\n placement\n }) => {\n const hasAlignment = !!placement.split(\"-\")[1];\n return {\n mainAxis: finalGutter,\n crossAxis: !hasAlignment ? mergedProps.shift : void 0,\n alignmentAxis: mergedProps.shift\n };\n })\n ];\n if (mergedProps.flip !== false) {\n const fallbackPlacements = typeof mergedProps.flip === \"string\" ? mergedProps.flip.split(\" \") : void 0;\n if (fallbackPlacements !== void 0 && !fallbackPlacements.every(isValidPlacement)) {\n throw new Error(\"`flip` expects a spaced-delimited list of placements\");\n }\n middleware.push(flip({\n padding: mergedProps.overflowPadding,\n fallbackPlacements\n }));\n }\n if (mergedProps.slide || mergedProps.overlap) {\n middleware.push(shift({\n mainAxis: mergedProps.slide,\n crossAxis: mergedProps.overlap,\n padding: mergedProps.overflowPadding\n }));\n }\n middleware.push(size({\n padding: mergedProps.overflowPadding,\n apply({\n availableWidth,\n availableHeight,\n rects\n }) {\n const referenceWidth = Math.round(rects.reference.width);\n availableWidth = Math.floor(availableWidth);\n availableHeight = Math.floor(availableHeight);\n floatingEl.style.setProperty(\"--kb-popper-anchor-width\", `${referenceWidth}px`);\n floatingEl.style.setProperty(\"--kb-popper-content-available-width\", `${availableWidth}px`);\n floatingEl.style.setProperty(\"--kb-popper-content-available-height\", `${availableHeight}px`);\n if (mergedProps.sameWidth) {\n floatingEl.style.width = `${referenceWidth}px`;\n }\n if (mergedProps.fitViewport) {\n floatingEl.style.maxWidth = `${availableWidth}px`;\n floatingEl.style.maxHeight = `${availableHeight}px`;\n }\n }\n }));\n if (mergedProps.hideWhenDetached) {\n middleware.push(hide({\n padding: mergedProps.detachedPadding\n }));\n }\n if (arrowEl) {\n middleware.push(arrow({\n element: arrowEl,\n padding: mergedProps.arrowPadding\n }));\n }\n const pos = await computePosition(referenceEl, floatingEl, {\n placement: mergedProps.placement,\n strategy: \"absolute\",\n middleware,\n platform: {\n ...platform,\n isRTL: () => direction() === \"rtl\"\n }\n });\n setCurrentPlacement(pos.placement);\n mergedProps.onCurrentPlacementChange?.(pos.placement);\n if (!floatingEl) {\n return;\n }\n floatingEl.style.setProperty(\"--kb-popper-content-transform-origin\", getTransformOrigin(pos.placement, direction()));\n const x = Math.round(pos.x);\n const y = Math.round(pos.y);\n let visibility;\n if (mergedProps.hideWhenDetached) {\n visibility = pos.middlewareData.hide?.referenceHidden ? \"hidden\" : \"visible\";\n }\n Object.assign(floatingEl.style, {\n top: \"0\",\n left: \"0\",\n transform: `translate3d(${x}px, ${y}px, 0)`,\n visibility\n });\n if (arrowEl && pos.middlewareData.arrow) {\n const {\n x: arrowX,\n y: arrowY\n } = pos.middlewareData.arrow;\n const dir = pos.placement.split(\"-\")[0];\n Object.assign(arrowEl.style, {\n left: arrowX != null ? `${arrowX}px` : \"\",\n top: arrowY != null ? `${arrowY}px` : \"\",\n [dir]: \"100%\"\n });\n }\n }\n createEffect(() => {\n const referenceEl = anchorRef();\n const floatingEl = positionerRef();\n if (!referenceEl || !floatingEl) {\n return;\n }\n const cleanupAutoUpdate = autoUpdate(referenceEl, floatingEl, updatePosition, {\n // JSDOM doesn't support ResizeObserver\n elementResize: typeof ResizeObserver === \"function\"\n });\n onCleanup(cleanupAutoUpdate);\n });\n createEffect(() => {\n const positioner = positionerRef();\n const content = mergedProps.contentRef?.();\n if (!positioner || !content) {\n return;\n }\n queueMicrotask(() => {\n positioner.style.zIndex = getComputedStyle(content).zIndex;\n });\n });\n const context = {\n currentPlacement,\n contentRef: () => mergedProps.contentRef?.(),\n setPositionerRef,\n setArrowRef\n };\n return createComponent(PopperContext.Provider, {\n value: context,\n get children() {\n return mergedProps.children;\n }\n });\n}\n\n// src/popper/index.tsx\nvar Popper = Object.assign(PopperRoot, {\n Arrow: PopperArrow,\n Context: PopperContext,\n usePopperContext,\n Positioner: PopperPositioner\n});\n\nexport { Popper, PopperArrow, PopperContext, PopperPositioner, PopperRoot, usePopperContext };\n", "import { getDocument } from '@kobalte/utils';\n\n// src/dismissable-layer/layer-stack.tsx\nvar DATA_TOP_LAYER_ATTR = \"data-kb-top-layer\";\nvar originalBodyPointerEvents;\nvar hasDisabledBodyPointerEvents = false;\nvar layers = [];\nfunction indexOf(node) {\n return layers.findIndex((layer) => layer.node === node);\n}\nfunction find(node) {\n return layers[indexOf(node)];\n}\nfunction isTopMostLayer(node) {\n return layers[layers.length - 1].node === node;\n}\nfunction getPointerBlockingLayers() {\n return layers.filter((layer) => layer.isPointerBlocking);\n}\nfunction getTopMostPointerBlockingLayer() {\n return [...getPointerBlockingLayers()].slice(-1)[0];\n}\nfunction hasPointerBlockingLayer() {\n return getPointerBlockingLayers().length > 0;\n}\nfunction isBelowPointerBlockingLayer(node) {\n const highestBlockingIndex = indexOf(getTopMostPointerBlockingLayer()?.node);\n return indexOf(node) < highestBlockingIndex;\n}\nfunction addLayer(layer) {\n layers.push(layer);\n}\nfunction removeLayer(node) {\n const index = indexOf(node);\n if (index < 0) {\n return;\n }\n layers.splice(index, 1);\n}\nfunction assignPointerEventToLayers() {\n for (const {\n node\n } of layers) {\n node.style.pointerEvents = isBelowPointerBlockingLayer(node) ? \"none\" : \"auto\";\n }\n}\nfunction disableBodyPointerEvents(node) {\n if (hasPointerBlockingLayer() && !hasDisabledBodyPointerEvents) {\n const ownerDocument = getDocument(node);\n originalBodyPointerEvents = document.body.style.pointerEvents;\n ownerDocument.body.style.pointerEvents = \"none\";\n hasDisabledBodyPointerEvents = true;\n }\n}\nfunction restoreBodyPointerEvents(node) {\n if (hasPointerBlockingLayer()) {\n return;\n }\n const ownerDocument = getDocument(node);\n ownerDocument.body.style.pointerEvents = originalBodyPointerEvents;\n if (ownerDocument.body.style.length === 0) {\n ownerDocument.body.removeAttribute(\"style\");\n }\n hasDisabledBodyPointerEvents = false;\n}\nvar layerStack = {\n layers,\n isTopMostLayer,\n hasPointerBlockingLayer,\n isBelowPointerBlockingLayer,\n addLayer,\n removeLayer,\n indexOf,\n find,\n assignPointerEventToLayers,\n disableBodyPointerEvents,\n restoreBodyPointerEvents\n};\n\nexport { DATA_TOP_LAYER_ATTR, layerStack };\n", "import { DATA_TOP_LAYER_ATTR } from './ZKYDDHM6.js';\nimport { access, noop, getDocument, composeEventHandlers, contains, isCtrlKey } from '@kobalte/utils';\nimport { createEffect, onCleanup } from 'solid-js';\nimport { isServer } from 'solid-js/web';\n\nvar POINTER_DOWN_OUTSIDE_EVENT = \"interactOutside.pointerDownOutside\";\nvar FOCUS_OUTSIDE_EVENT = \"interactOutside.focusOutside\";\nfunction createInteractOutside(props, ref) {\n let pointerDownTimeoutId;\n let clickHandler = noop;\n const ownerDocument = () => getDocument(ref());\n const onPointerDownOutside = (e) => props.onPointerDownOutside?.(e);\n const onFocusOutside = (e) => props.onFocusOutside?.(e);\n const onInteractOutside = (e) => props.onInteractOutside?.(e);\n const isEventOutside = (e) => {\n const target = e.target;\n if (!(target instanceof Element)) {\n return false;\n }\n if (target.closest(`[${DATA_TOP_LAYER_ATTR}]`)) {\n return false;\n }\n if (!contains(ownerDocument(), target)) {\n return false;\n }\n if (contains(ref(), target)) {\n return false;\n }\n return !props.shouldExcludeElement?.(target);\n };\n const onPointerDown = (e) => {\n function handler() {\n const container = ref();\n const target = e.target;\n if (!container || !target || !isEventOutside(e)) {\n return;\n }\n const handler2 = composeEventHandlers([\n onPointerDownOutside,\n onInteractOutside\n ]);\n target.addEventListener(POINTER_DOWN_OUTSIDE_EVENT, handler2, {\n once: true\n });\n const pointerDownOutsideEvent = new CustomEvent(\n POINTER_DOWN_OUTSIDE_EVENT,\n {\n bubbles: false,\n cancelable: true,\n detail: {\n originalEvent: e,\n isContextMenu: e.button === 2 || isCtrlKey(e) && e.button === 0\n }\n }\n );\n target.dispatchEvent(pointerDownOutsideEvent);\n }\n if (e.pointerType === \"touch\") {\n ownerDocument().removeEventListener(\"click\", handler);\n clickHandler = handler;\n ownerDocument().addEventListener(\"click\", handler, { once: true });\n } else {\n handler();\n }\n };\n const onFocusIn = (e) => {\n const container = ref();\n const target = e.target;\n if (!container || !target || !isEventOutside(e)) {\n return;\n }\n const handler = composeEventHandlers([\n onFocusOutside,\n onInteractOutside\n ]);\n target.addEventListener(FOCUS_OUTSIDE_EVENT, handler, { once: true });\n const focusOutsideEvent = new CustomEvent(FOCUS_OUTSIDE_EVENT, {\n bubbles: false,\n cancelable: true,\n detail: {\n originalEvent: e,\n isContextMenu: false\n }\n });\n target.dispatchEvent(focusOutsideEvent);\n };\n createEffect(() => {\n if (isServer) {\n return;\n }\n if (access(props.isDisabled)) {\n return;\n }\n pointerDownTimeoutId = window.setTimeout(() => {\n ownerDocument().addEventListener(\"pointerdown\", onPointerDown, true);\n }, 0);\n ownerDocument().addEventListener(\"focusin\", onFocusIn, true);\n onCleanup(() => {\n window.clearTimeout(pointerDownTimeoutId);\n ownerDocument().removeEventListener(\"click\", clickHandler);\n ownerDocument().removeEventListener(\"pointerdown\", onPointerDown, true);\n ownerDocument().removeEventListener(\"focusin\", onFocusIn, true);\n });\n });\n}\n\nexport { createInteractOutside };\n", "import { access, getDocument, EventKey } from '@kobalte/utils';\nimport { createEffect, onCleanup } from 'solid-js';\nimport { isServer } from 'solid-js/web';\n\n// src/primitives/create-escape-key-down/create-escape-key-down.ts\nfunction createEscapeKeyDown(props) {\n const handleKeyDown = (event) => {\n if (event.key === EventKey.Escape) {\n props.onEscapeKeyDown?.(event);\n }\n };\n createEffect(() => {\n if (isServer) {\n return;\n }\n if (access(props.isDisabled)) {\n return;\n }\n const document = props.ownerDocument?.() ?? getDocument();\n document.addEventListener(\"keydown\", handleKeyDown);\n onCleanup(() => {\n document.removeEventListener(\"keydown\", handleKeyDown);\n });\n });\n}\n\nexport { createEscapeKeyDown };\n", "import { createInteractOutside } from './KKN23NY7.js';\nimport { createEscapeKeyDown } from './QEMPLYZX.js';\nimport { layerStack } from './ZKYDDHM6.js';\nimport { Polymorphic } from './6Y7B2NEO.js';\nimport { createComponent, mergeProps } from 'solid-js/web';\nimport { getDocument, mergeRefs, contains } from '@kobalte/utils';\nimport { createContext, splitProps, onMount, createEffect, on, onCleanup, useContext } from 'solid-js';\n\nvar DismissableLayerContext = createContext();\nfunction useOptionalDismissableLayerContext() {\n return useContext(DismissableLayerContext);\n}\n\n// src/dismissable-layer/dismissable-layer.tsx\nfunction DismissableLayer(props) {\n let ref;\n const parentContext = useOptionalDismissableLayerContext();\n const [local, others] = splitProps(props, [\"ref\", \"disableOutsidePointerEvents\", \"excludedElements\", \"onEscapeKeyDown\", \"onPointerDownOutside\", \"onFocusOutside\", \"onInteractOutside\", \"onDismiss\", \"bypassTopMostLayerCheck\"]);\n const nestedLayers = /* @__PURE__ */ new Set([]);\n const registerNestedLayer = (element) => {\n nestedLayers.add(element);\n const parentUnregister = parentContext?.registerNestedLayer(element);\n return () => {\n nestedLayers.delete(element);\n parentUnregister?.();\n };\n };\n const shouldExcludeElement = (element) => {\n if (!ref) {\n return false;\n }\n return local.excludedElements?.some((node) => contains(node(), element)) || [...nestedLayers].some((layer) => contains(layer, element));\n };\n const onPointerDownOutside = (e) => {\n if (!ref || layerStack.isBelowPointerBlockingLayer(ref)) {\n return;\n }\n if (!local.bypassTopMostLayerCheck && !layerStack.isTopMostLayer(ref)) {\n return;\n }\n local.onPointerDownOutside?.(e);\n local.onInteractOutside?.(e);\n if (!e.defaultPrevented) {\n local.onDismiss?.();\n }\n };\n const onFocusOutside = (e) => {\n local.onFocusOutside?.(e);\n local.onInteractOutside?.(e);\n if (!e.defaultPrevented) {\n local.onDismiss?.();\n }\n };\n createInteractOutside({\n shouldExcludeElement,\n onPointerDownOutside,\n onFocusOutside\n }, () => ref);\n createEscapeKeyDown({\n ownerDocument: () => getDocument(ref),\n onEscapeKeyDown: (e) => {\n if (!ref || !layerStack.isTopMostLayer(ref)) {\n return;\n }\n local.onEscapeKeyDown?.(e);\n if (!e.defaultPrevented && local.onDismiss) {\n e.preventDefault();\n local.onDismiss();\n }\n }\n });\n onMount(() => {\n if (!ref) {\n return;\n }\n layerStack.addLayer({\n node: ref,\n isPointerBlocking: local.disableOutsidePointerEvents,\n dismiss: local.onDismiss\n });\n const unregisterFromParentLayer = parentContext?.registerNestedLayer(ref);\n layerStack.assignPointerEventToLayers();\n layerStack.disableBodyPointerEvents(ref);\n onCleanup(() => {\n if (!ref) {\n return;\n }\n layerStack.removeLayer(ref);\n unregisterFromParentLayer?.();\n layerStack.assignPointerEventToLayers();\n layerStack.restoreBodyPointerEvents(ref);\n });\n });\n createEffect(on([() => ref, () => local.disableOutsidePointerEvents], ([ref2, disableOutsidePointerEvents]) => {\n if (!ref2) {\n return;\n }\n const layer = layerStack.find(ref2);\n if (layer && layer.isPointerBlocking !== disableOutsidePointerEvents) {\n layer.isPointerBlocking = disableOutsidePointerEvents;\n layerStack.assignPointerEventToLayers();\n }\n if (disableOutsidePointerEvents) {\n layerStack.disableBodyPointerEvents(ref2);\n }\n onCleanup(() => {\n layerStack.restoreBodyPointerEvents(ref2);\n });\n }, {\n defer: true\n }));\n const context = {\n registerNestedLayer\n };\n return createComponent(DismissableLayerContext.Provider, {\n value: context,\n get children() {\n return createComponent(Polymorphic, mergeProps({\n as: \"div\",\n ref(r$) {\n const _ref$ = mergeRefs((el) => ref = el, local.ref);\n typeof _ref$ === \"function\" && _ref$(r$);\n }\n }, others));\n }\n });\n}\n\nexport { DismissableLayer };\n", "import { createControllableBooleanSignal } from './BLN63FDC.js';\nimport { access } from '@kobalte/utils';\n\nfunction createDisclosureState(props = {}) {\n const [isOpen, setIsOpen] = createControllableBooleanSignal({\n value: () => access(props.open),\n defaultValue: () => !!access(props.defaultOpen),\n onChange: (value) => props.onOpenChange?.(value)\n });\n const open = () => {\n setIsOpen(true);\n };\n const close = () => {\n setIsOpen(false);\n };\n const toggle = () => {\n isOpen() ? close() : open();\n };\n return {\n isOpen,\n setIsOpen,\n open,\n close,\n toggle\n };\n}\n\nexport { createDisclosureState };\n", "// src/primitives/create-register-id/create-register-id.ts\nfunction createRegisterId(setter) {\n return (id) => {\n setter(id);\n return () => setter(void 0);\n };\n}\n\nexport { createRegisterId };\n", "import { PopperArrow, Popper } from './LMWVDFW6.js';\nimport { DismissableLayer } from './BASJUNIE.js';\nimport { createDisclosureState } from './7LCANGHD.js';\nimport { createRegisterId } from './E4R2EMM4.js';\nimport { Polymorphic } from './6Y7B2NEO.js';\nimport { __export } from './5ZKAE4VZ.js';\nimport { createComponent, mergeProps, Portal, isServer, memo } from 'solid-js/web';\nimport { mergeDefaultProps, mergeRefs, getDocument, getWindow, createGenerateId, contains, isPointInPolygon, getEventPoint, callHandler } from '@kobalte/utils';\nimport { createContext, useContext, splitProps, createEffect, onCleanup, Show, createUniqueId, createSignal, createMemo } from 'solid-js';\nimport { combineStyle } from '@solid-primitives/props';\nimport createPresence from 'solid-presence';\n\n// src/tooltip/index.tsx\nvar tooltip_exports = {};\n__export(tooltip_exports, {\n Arrow: () => PopperArrow,\n Content: () => TooltipContent,\n Portal: () => TooltipPortal,\n Root: () => TooltipRoot,\n Tooltip: () => Tooltip,\n Trigger: () => TooltipTrigger,\n useTooltipContext: () => useTooltipContext\n});\nvar TooltipContext = createContext();\nfunction useTooltipContext() {\n const context = useContext(TooltipContext);\n if (context === void 0) {\n throw new Error(\"[kobalte]: `useTooltipContext` must be used within a `Tooltip` component\");\n }\n return context;\n}\n\n// src/tooltip/tooltip-content.tsx\nfunction TooltipContent(props) {\n const context = useTooltipContext();\n const mergedProps = mergeDefaultProps({\n id: context.generateId(\"content\")\n }, props);\n const [local, others] = splitProps(mergedProps, [\"ref\", \"style\"]);\n createEffect(() => onCleanup(context.registerContentId(others.id)));\n return createComponent(Show, {\n get when() {\n return context.contentPresent();\n },\n get children() {\n return createComponent(Popper.Positioner, {\n get children() {\n return createComponent(DismissableLayer, mergeProps({\n ref(r$) {\n const _ref$ = mergeRefs((el) => {\n context.setContentRef(el);\n }, local.ref);\n typeof _ref$ === \"function\" && _ref$(r$);\n },\n role: \"tooltip\",\n disableOutsidePointerEvents: false,\n get style() {\n return combineStyle({\n \"--kb-tooltip-content-transform-origin\": \"var(--kb-popper-content-transform-origin)\",\n position: \"relative\"\n }, local.style);\n },\n onFocusOutside: (e) => e.preventDefault(),\n onDismiss: () => context.hideTooltip(true)\n }, () => context.dataset(), others));\n }\n });\n }\n });\n}\nfunction TooltipPortal(props) {\n const context = useTooltipContext();\n return createComponent(Show, {\n get when() {\n return context.contentPresent();\n },\n get children() {\n return createComponent(Portal, props);\n }\n });\n}\n\n// src/tooltip/utils.ts\nfunction getTooltipSafeArea(placement, anchorEl, floatingEl) {\n const basePlacement = placement.split(\"-\")[0];\n const anchorRect = anchorEl.getBoundingClientRect();\n const floatingRect = floatingEl.getBoundingClientRect();\n const polygon = [];\n const anchorCenterX = anchorRect.left + anchorRect.width / 2;\n const anchorCenterY = anchorRect.top + anchorRect.height / 2;\n switch (basePlacement) {\n case \"top\":\n polygon.push([anchorRect.left, anchorCenterY]);\n polygon.push([floatingRect.left, floatingRect.bottom]);\n polygon.push([floatingRect.left, floatingRect.top]);\n polygon.push([floatingRect.right, floatingRect.top]);\n polygon.push([floatingRect.right, floatingRect.bottom]);\n polygon.push([anchorRect.right, anchorCenterY]);\n break;\n case \"right\":\n polygon.push([anchorCenterX, anchorRect.top]);\n polygon.push([floatingRect.left, floatingRect.top]);\n polygon.push([floatingRect.right, floatingRect.top]);\n polygon.push([floatingRect.right, floatingRect.bottom]);\n polygon.push([floatingRect.left, floatingRect.bottom]);\n polygon.push([anchorCenterX, anchorRect.bottom]);\n break;\n case \"bottom\":\n polygon.push([anchorRect.left, anchorCenterY]);\n polygon.push([floatingRect.left, floatingRect.top]);\n polygon.push([floatingRect.left, floatingRect.bottom]);\n polygon.push([floatingRect.right, floatingRect.bottom]);\n polygon.push([floatingRect.right, floatingRect.top]);\n polygon.push([anchorRect.right, anchorCenterY]);\n break;\n case \"left\":\n polygon.push([anchorCenterX, anchorRect.top]);\n polygon.push([floatingRect.right, floatingRect.top]);\n polygon.push([floatingRect.left, floatingRect.top]);\n polygon.push([floatingRect.left, floatingRect.bottom]);\n polygon.push([floatingRect.right, floatingRect.bottom]);\n polygon.push([anchorCenterX, anchorRect.bottom]);\n break;\n }\n return polygon;\n}\n\n// src/tooltip/tooltip-root.tsx\nvar tooltips = {};\nvar tooltipsCounter = 0;\nvar globalWarmedUp = false;\nvar globalWarmUpTimeout;\nvar globalCoolDownTimeout;\nvar globalSkipDelayTimeout;\nfunction TooltipRoot(props) {\n const defaultId = `tooltip-${createUniqueId()}`;\n const tooltipId = `${++tooltipsCounter}`;\n const mergedProps = mergeDefaultProps({\n id: defaultId,\n openDelay: 700,\n closeDelay: 300,\n skipDelayDuration: 300\n }, props);\n const [local, others] = splitProps(mergedProps, [\"id\", \"open\", \"defaultOpen\", \"onOpenChange\", \"disabled\", \"triggerOnFocusOnly\", \"openDelay\", \"closeDelay\", \"skipDelayDuration\", \"ignoreSafeArea\", \"forceMount\"]);\n let closeTimeoutId;\n const [contentId, setContentId] = createSignal();\n const [triggerRef, setTriggerRef] = createSignal();\n const [contentRef, setContentRef] = createSignal();\n const [currentPlacement, setCurrentPlacement] = createSignal(others.placement);\n const disclosureState = createDisclosureState({\n open: () => local.open,\n defaultOpen: () => local.defaultOpen,\n onOpenChange: (isOpen) => local.onOpenChange?.(isOpen)\n });\n const {\n present: contentPresent\n } = createPresence({\n show: () => local.forceMount || disclosureState.isOpen(),\n element: () => contentRef() ?? null\n });\n const ensureTooltipEntry = () => {\n tooltips[tooltipId] = hideTooltip;\n };\n const closeOpenTooltips = () => {\n for (const hideTooltipId in tooltips) {\n if (hideTooltipId !== tooltipId) {\n tooltips[hideTooltipId](true);\n delete tooltips[hideTooltipId];\n }\n }\n };\n const hideTooltip = (immediate = false) => {\n if (isServer) {\n return;\n }\n if (immediate || local.closeDelay && local.closeDelay <= 0) {\n window.clearTimeout(closeTimeoutId);\n closeTimeoutId = void 0;\n disclosureState.close();\n } else if (!closeTimeoutId) {\n closeTimeoutId = window.setTimeout(() => {\n closeTimeoutId = void 0;\n disclosureState.close();\n }, local.closeDelay);\n }\n window.clearTimeout(globalWarmUpTimeout);\n globalWarmUpTimeout = void 0;\n if (local.skipDelayDuration && local.skipDelayDuration >= 0) {\n globalSkipDelayTimeout = window.setTimeout(() => {\n window.clearTimeout(globalSkipDelayTimeout);\n globalSkipDelayTimeout = void 0;\n }, local.skipDelayDuration);\n }\n if (globalWarmedUp) {\n window.clearTimeout(globalCoolDownTimeout);\n globalCoolDownTimeout = window.setTimeout(() => {\n delete tooltips[tooltipId];\n globalCoolDownTimeout = void 0;\n globalWarmedUp = false;\n }, local.closeDelay);\n }\n };\n const showTooltip = () => {\n if (isServer) {\n return;\n }\n clearTimeout(closeTimeoutId);\n closeTimeoutId = void 0;\n closeOpenTooltips();\n ensureTooltipEntry();\n globalWarmedUp = true;\n disclosureState.open();\n window.clearTimeout(globalWarmUpTimeout);\n globalWarmUpTimeout = void 0;\n window.clearTimeout(globalCoolDownTimeout);\n globalCoolDownTimeout = void 0;\n window.clearTimeout(globalSkipDelayTimeout);\n globalSkipDelayTimeout = void 0;\n };\n const warmupTooltip = () => {\n if (isServer) {\n return;\n }\n closeOpenTooltips();\n ensureTooltipEntry();\n if (!disclosureState.isOpen() && !globalWarmUpTimeout && !globalWarmedUp) {\n globalWarmUpTimeout = window.setTimeout(() => {\n globalWarmUpTimeout = void 0;\n globalWarmedUp = true;\n showTooltip();\n }, local.openDelay);\n } else if (!disclosureState.isOpen()) {\n showTooltip();\n }\n };\n const openTooltip = (immediate = false) => {\n if (isServer) {\n return;\n }\n if (!immediate && local.openDelay && local.openDelay > 0 && !closeTimeoutId && !globalSkipDelayTimeout) {\n warmupTooltip();\n } else {\n showTooltip();\n }\n };\n const cancelOpening = () => {\n if (isServer) {\n return;\n }\n window.clearTimeout(globalWarmUpTimeout);\n globalWarmUpTimeout = void 0;\n globalWarmedUp = false;\n };\n const cancelClosing = () => {\n if (isServer) {\n return;\n }\n window.clearTimeout(closeTimeoutId);\n closeTimeoutId = void 0;\n };\n const isTargetOnTooltip = (target) => {\n return contains(triggerRef(), target) || contains(contentRef(), target);\n };\n const getPolygonSafeArea = (placement) => {\n const triggerEl = triggerRef();\n const contentEl = contentRef();\n if (!triggerEl || !contentEl) {\n return;\n }\n return getTooltipSafeArea(placement, triggerEl, contentEl);\n };\n const onHoverOutside = (event) => {\n const target = event.target;\n if (isTargetOnTooltip(target)) {\n cancelClosing();\n return;\n }\n if (!local.ignoreSafeArea) {\n const polygon = getPolygonSafeArea(currentPlacement());\n if (polygon && isPointInPolygon(getEventPoint(event), polygon)) {\n cancelClosing();\n return;\n }\n }\n if (closeTimeoutId) {\n return;\n }\n hideTooltip();\n };\n createEffect(() => {\n if (isServer) {\n return;\n }\n if (!disclosureState.isOpen()) {\n return;\n }\n const doc = getDocument();\n doc.addEventListener(\"pointermove\", onHoverOutside, true);\n onCleanup(() => {\n doc.removeEventListener(\"pointermove\", onHoverOutside, true);\n });\n });\n createEffect(() => {\n const trigger = triggerRef();\n if (!trigger || !disclosureState.isOpen()) {\n return;\n }\n const handleScroll = (event) => {\n const target = event.target;\n if (contains(target, trigger)) {\n hideTooltip(true);\n }\n };\n const win = getWindow();\n win.addEventListener(\"scroll\", handleScroll, {\n capture: true\n });\n onCleanup(() => {\n win.removeEventListener(\"scroll\", handleScroll, {\n capture: true\n });\n });\n });\n onCleanup(() => {\n clearTimeout(closeTimeoutId);\n const tooltip = tooltips[tooltipId];\n if (tooltip) {\n delete tooltips[tooltipId];\n }\n });\n const dataset = createMemo(() => ({\n \"data-expanded\": disclosureState.isOpen() ? \"\" : void 0,\n \"data-closed\": !disclosureState.isOpen() ? \"\" : void 0\n }));\n const context = {\n dataset,\n isOpen: disclosureState.isOpen,\n isDisabled: () => local.disabled ?? false,\n triggerOnFocusOnly: () => local.triggerOnFocusOnly ?? false,\n contentId,\n contentPresent,\n openTooltip,\n hideTooltip,\n cancelOpening,\n generateId: createGenerateId(() => mergedProps.id),\n registerContentId: createRegisterId(setContentId),\n isTargetOnTooltip,\n setTriggerRef,\n setContentRef\n };\n return createComponent(TooltipContext.Provider, {\n value: context,\n get children() {\n return createComponent(Popper, mergeProps({\n anchorRef: triggerRef,\n contentRef,\n onCurrentPlacementChange: setCurrentPlacement\n }, others));\n }\n });\n}\nfunction TooltipTrigger(props) {\n let ref;\n const context = useTooltipContext();\n const [local, others] = splitProps(props, [\"ref\", \"onPointerEnter\", \"onPointerLeave\", \"onPointerDown\", \"onClick\", \"onFocus\", \"onBlur\"]);\n let isPointerDown = false;\n let isHovered = false;\n let isFocused = false;\n const handlePointerUp = () => {\n isPointerDown = false;\n };\n const handleShow = () => {\n if (!context.isOpen() && (isHovered || isFocused)) {\n context.openTooltip(isFocused);\n }\n };\n const handleHide = (immediate) => {\n if (context.isOpen() && !isHovered && !isFocused) {\n context.hideTooltip(immediate);\n }\n };\n const onPointerEnter = (e) => {\n callHandler(e, local.onPointerEnter);\n if (e.pointerType === \"touch\" || context.triggerOnFocusOnly() || context.isDisabled() || e.defaultPrevented) {\n return;\n }\n isHovered = true;\n handleShow();\n };\n const onPointerLeave = (e) => {\n callHandler(e, local.onPointerLeave);\n if (e.pointerType === \"touch\") {\n return;\n }\n isHovered = false;\n isFocused = false;\n if (context.isOpen()) {\n handleHide();\n } else {\n context.cancelOpening();\n }\n };\n const onPointerDown = (e) => {\n callHandler(e, local.onPointerDown);\n isPointerDown = true;\n getDocument(ref).addEventListener(\"pointerup\", handlePointerUp, {\n once: true\n });\n };\n const onClick = (e) => {\n callHandler(e, local.onClick);\n isHovered = false;\n isFocused = false;\n handleHide(true);\n };\n const onFocus = (e) => {\n callHandler(e, local.onFocus);\n if (context.isDisabled() || e.defaultPrevented || isPointerDown) {\n return;\n }\n isFocused = true;\n handleShow();\n };\n const onBlur = (e) => {\n callHandler(e, local.onBlur);\n const relatedTarget = e.relatedTarget;\n if (context.isTargetOnTooltip(relatedTarget)) {\n return;\n }\n isHovered = false;\n isFocused = false;\n handleHide(true);\n };\n onCleanup(() => {\n if (isServer) {\n return;\n }\n getDocument(ref).removeEventListener(\"pointerup\", handlePointerUp);\n });\n return createComponent(Polymorphic, mergeProps({\n as: \"button\",\n ref(r$) {\n const _ref$ = mergeRefs((el) => {\n context.setTriggerRef(el);\n ref = el;\n }, local.ref);\n typeof _ref$ === \"function\" && _ref$(r$);\n },\n get [\"aria-describedby\"]() {\n return memo(() => !!context.isOpen())() ? context.contentId() : void 0;\n },\n onPointerEnter,\n onPointerLeave,\n onPointerDown,\n onClick,\n onFocus,\n onBlur\n }, () => context.dataset(), others));\n}\n\n// src/tooltip/index.tsx\nvar Tooltip = Object.assign(TooltipRoot, {\n Arrow: PopperArrow,\n Content: TooltipContent,\n Portal: TooltipPortal,\n Trigger: TooltipTrigger\n});\n\nexport { Tooltip, TooltipContent, TooltipPortal, TooltipRoot, TooltipTrigger, tooltip_exports, useTooltipContext };\n", "import { Tooltip as KobalteTooltip } from \"@kobalte/core/tooltip\";\nexport const Tooltip = KobalteTooltip;\nexport const TooltipTrigger = KobalteTooltip.Trigger;\nexport const TooltipContent = KobalteTooltip.Content;", "import { template as _$template } from \"solid-js/web\";\nimport { delegateEvents as _$delegateEvents } from \"solid-js/web\";\nimport { setAttribute as _$setAttribute } from \"solid-js/web\";\nimport { effect as _$effect } from \"solid-js/web\";\nimport { getOwner as _$getOwner } from \"solid-js/web\";\nimport { use as _$use } from \"solid-js/web\";\nimport { insert as _$insert } from \"solid-js/web\";\nimport { createComponent as _$createComponent } from \"solid-js/web\";\nimport { memo as _$memo } from \"solid-js/web\";\nvar _tmpl$ = /*#__PURE__*/_$template(`<div class=field-group>`),\n _tmpl$2 = /*#__PURE__*/_$template(`<div>Not a valid account token, try copy-pasting again.`),\n _tmpl$3 = /*#__PURE__*/_$template(`<div class=loading-text>Looking up account...`),\n _tmpl$4 = /*#__PURE__*/_$template(`<div>Account not found`),\n _tmpl$5 = /*#__PURE__*/_$template(`<form class=field-group><p class=hint>Paste your account token to log in. You can find it in account settings on any device where you're signed in.</p><div class=input-row></div><div class=error-text>`),\n _tmpl$6 = /*#__PURE__*/_$template(`<input type=file accept=image/* class=sr-only>`),\n _tmpl$7 = /*#__PURE__*/_$template(`<button type=button class=avatar-button title=\"Click to change avatar\"><patchwork-view tool-id=contact>`, true, false, false),\n _tmpl$8 = /*#__PURE__*/_$template(`<div class=profile-header><div class=avatar-area>`),\n _tmpl$9 = /*#__PURE__*/_$template(`<p>Copied`),\n _tmpl$0 = /*#__PURE__*/_$template(`<div class=actions>`),\n _tmpl$1 = /*#__PURE__*/_$template(`<div class=modal-backdrop>`),\n _tmpl$10 = /*#__PURE__*/_$template(`<div class=modal><p class=modal-title>Sign out?</p><p class=hint>Make sure you've saved your account token first.</p><div class=input-row></div><div class=modal-actions>`),\n _tmpl$11 = /*#__PURE__*/_$template(`<div class=account-picker>`),\n _tmpl$12 = /*#__PURE__*/_$template(`<svg class=icon viewBox=\"0 0 24 24\"fill=none stroke=currentColor stroke-width=2 stroke-linecap=round stroke-linejoin=round><path d=\"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0\"></path><circle cx=12 cy=12 r=3>`),\n _tmpl$13 = /*#__PURE__*/_$template(`<svg class=icon viewBox=\"0 0 24 24\"fill=none stroke=currentColor stroke-width=2 stroke-linecap=round stroke-linejoin=round><path d=\"M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49\"></path><path d=\"M14.084 14.158a3 3 0 0 1-4.242-4.242\"></path><path d=\"M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151 1 1 0 0 1 0-.696 10.75 10.75 0 0 1 4.446-5.143\"></path><path d=\"m2 2 20 20\">`),\n _tmpl$14 = /*#__PURE__*/_$template(`<svg viewBox=\"0 0 24 24\"fill=none stroke=currentColor stroke-width=2 stroke-linecap=round stroke-linejoin=round><rect width=14 height=14 x=8 y=8 rx=2 ry=2></rect><path d=\"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2\">`);\nimport { createSignal, createMemo, Show } from \"solid-js\";\nimport { render } from \"solid-js/web\";\nimport { useDocument, makeDocumentProjection, RepoContext } from \"solid-automerge\";\nimport { automergeUrlToAccountToken, accountTokenToAutomergeUrl } from \"./tokens\";\nimport { Button, ColorPicker, Input, Label, Tabs, TabsContent, TabsList, TabsTrigger, Tooltip, TooltipContent, TooltipTrigger } from \"./ui/index\";\nconst ACCOUNT_URL_STORAGE_KEY = \"tinyPatchworkAccountUrl\";\nvar AccountPickerTab = /* @__PURE__ */(AccountPickerTab2 => {\n AccountPickerTab2[\"LogIn\"] = \"logIn\";\n AccountPickerTab2[\"SignUp\"] = \"signUp\";\n return AccountPickerTab2;\n})(AccountPickerTab || {});\nexport const AccountPicker = props => {\n const currentAccount = makeDocumentProjection(props.handle);\n const [self, selfHandle] = useDocument(() => currentAccount.contactUrl, props.element);\n let avatarInputRef;\n const [signupName, setSignupName] = createSignal(\"\");\n const [activeTab, setActiveTab] = createSignal(\"signUp\" /* SignUp */);\n const [showAccountUrl, setShowAccountUrl] = createSignal(false);\n const [isCopyTooltipOpen, setIsCopyTooltipOpen] = createSignal(false);\n const [isContactCardCopyTooltipOpen, setIsContactCardCopyTooltipOpen] = createSignal(false);\n const [showSignOutConfirm, setShowSignOutConfirm] = createSignal(false);\n const [accountTokenToLogin, setAccountTokenToLogin] = createSignal(\"\");\n const accountAutomergeUrlToLogin = createMemo(() => accountTokenToAutomergeUrl(accountTokenToLogin()));\n const [accountToLogin, accountToLoginHandle] = useDocument(accountAutomergeUrlToLogin);\n const [contactToLogin, contactToLoginHandle] = useDocument(() => accountToLogin()?.contactUrl);\n const accountTokenToLoginStatus = createMemo(() => {\n const token = accountTokenToLogin();\n if (!token || token === \"\") return null;\n if (!accountAutomergeUrlToLogin()) return \"malformed\";\n if (!accountToLogin()) {\n return accountToLoginHandle.loading ? \"loading\" : \"not-found\";\n }\n if (!contactToLogin()) {\n return contactToLoginHandle.loading ? \"loading\" : \"not-found\";\n }\n return \"valid\";\n });\n const name = () => {\n const s = self();\n return s?.type === \"registered\" ? s.name : \"\";\n };\n const currentAccountToken = createMemo(() => {\n return currentAccount ? automergeUrlToAccountToken(props.handle.url, name()) : null;\n });\n const onNameChange = newName => {\n const s = self();\n if (!currentAccount || !s || s.type !== \"registered\") return;\n selfHandle()?.change(contact => {\n if (contact.type === \"registered\") {\n contact.name = newName;\n }\n });\n };\n const onColorChange = newColor => {\n const s = self();\n if (!currentAccount || !s) return;\n selfHandle()?.change(contact => {\n contact.color = newColor;\n });\n };\n const onAvatarChange = async e => {\n const target = e.target;\n const s = self();\n if (!currentAccount || !s || s.type !== \"registered\") return;\n const avatarFile = !target.files ? void 0 : target.files[0];\n if (!avatarFile) return;\n const compressed = await compressAvatar(avatarFile);\n if (!compressed) return;\n const repo = props.element.repo;\n const imageHandle = await repo.create2();\n imageHandle.change(doc => {\n doc.content = compressed.content;\n doc.mimeType = compressed.mimeType;\n doc.name = avatarFile.name;\n doc.extension = \"webp\";\n });\n selfHandle()?.change(contact => {\n if (contact.type === \"registered\") {\n contact.avatarUrl = imageHandle.url;\n }\n });\n };\n const onSignUp = async () => {\n if (!currentAccount || !signupName()) return;\n if (!currentAccount.contactUrl) {\n const repo = props.element.repo;\n const contactHandle = await repo.create2({\n [\"@patchwork\"]: {\n type: \"patchwork:contact\"\n },\n type: \"anonymous\"\n });\n props.handle.change(account => {\n account.contactUrl = contactHandle.url;\n });\n }\n selfHandle()?.change(contact => {\n contact.type = \"registered\";\n contact.name = signupName();\n });\n };\n const onLogIn = async () => {\n const url = accountAutomergeUrlToLogin();\n if (!currentAccount || !url) return;\n localStorage.setItem(ACCOUNT_URL_STORAGE_KEY, url);\n window.location.replace(\"/\");\n };\n const onLogout = async () => {\n localStorage.removeItem(ACCOUNT_URL_STORAGE_KEY);\n window.location.replace(\"/\");\n };\n const onToggleShowAccountUrl = () => {\n setShowAccountUrl(prev => !prev);\n };\n const onCopy = () => {\n const token = currentAccountToken();\n if (!token) return;\n navigator.clipboard.writeText(token);\n setIsCopyTooltipOpen(true);\n setTimeout(() => setIsCopyTooltipOpen(false), 1e3);\n };\n const onCopyContactCard = () => {\n const hive = props.element.hive;\n if (!hive?.active?.contactCard) return;\n const contactCardJson = hive.active.contactCard.toJson();\n navigator.clipboard.writeText(contactCardJson);\n setIsContactCardCopyTooltipOpen(true);\n setTimeout(() => setIsContactCardCopyTooltipOpen(false), 1e3);\n };\n const isLoggedIn = () => self()?.type === \"registered\";\n const canSignUp = () => !isLoggedIn() && activeTab() === \"signUp\" /* SignUp */ && signupName();\n const canLogIn = () => !isLoggedIn() && activeTab() === \"logIn\" /* LogIn */ && accountTokenToLogin() && accountToLogin()?.contactUrl && contactToLogin()?.type === \"registered\";\n return (() => {\n var _el$ = _tmpl$11();\n _$insert(_el$, _$createComponent(Show, {\n get when() {\n return !currentAccount?.contactUrl || self() !== void 0;\n },\n get children() {\n return [_$createComponent(Show, {\n get when() {\n return !isLoggedIn();\n },\n get children() {\n return _$createComponent(Tabs, {\n defaultValue: \"signUp\" /* SignUp */,\n onChange: tab => setActiveTab(tab),\n get value() {\n return activeTab();\n },\n get children() {\n return [_$createComponent(TabsList, {\n \"class\": \"tabs-list\",\n get children() {\n return [_$createComponent(TabsTrigger, {\n value: \"signUp\" /* SignUp */,\n \"class\": \"tabs-trigger\",\n children: \"Sign up\"\n }), _$createComponent(TabsTrigger, {\n value: \"logIn\" /* LogIn */,\n \"class\": \"tabs-trigger\",\n children: \"Log in\"\n })];\n }\n }), _$createComponent(TabsContent, {\n value: \"signUp\" /* SignUp */,\n \"class\": \"tabs-content\",\n get children() {\n var _el$2 = _tmpl$();\n _$insert(_el$2, _$createComponent(Label, {\n \"for\": \"name\",\n children: \"Name\"\n }), null);\n _$insert(_el$2, _$createComponent(Input, {\n id: \"name\",\n get value() {\n return signupName();\n },\n onInput: e => setSignupName(e.currentTarget.value),\n placeholder: \"Enter your name\"\n }), null);\n _$insert(_el$2, _$createComponent(Button, {\n type: \"submit\",\n onClick: onSignUp,\n get disabled() {\n return !canSignUp();\n },\n children: \"Sign up\"\n }), null);\n return _el$2;\n }\n }), _$createComponent(TabsContent, {\n value: \"logIn\" /* LogIn */,\n \"class\": \"tabs-content\",\n get children() {\n var _el$3 = _tmpl$5(),\n _el$4 = _el$3.firstChild,\n _el$5 = _el$4.nextSibling,\n _el$6 = _el$5.nextSibling;\n _el$3.addEventListener(\"submit\", e => {\n e.preventDefault();\n if (canLogIn()) onLogIn();\n });\n _$insert(_el$3, _$createComponent(Label, {\n \"for\": \"accountUrl\",\n children: \"Account token\"\n }), _el$5);\n _$insert(_el$5, _$createComponent(Input, {\n get [\"class\"]() {\n return accountTokenToLoginStatus() === \"valid\" ? \"valid\" : \"\";\n },\n id: \"accountUrl\",\n get value() {\n return accountTokenToLogin();\n },\n onInput: e => setAccountTokenToLogin(e.currentTarget.value),\n get type() {\n return showAccountUrl() ? \"text\" : \"password\";\n },\n autocomplete: \"current-password\"\n }), null);\n _$insert(_el$5, _$createComponent(Button, {\n variant: \"ghost\",\n onClick: onToggleShowAccountUrl,\n get children() {\n return _$createComponent(Show, {\n get when() {\n return showAccountUrl();\n },\n get fallback() {\n return _$createComponent(EyeOffIcon, {});\n },\n get children() {\n return _$createComponent(EyeIcon, {});\n }\n });\n }\n }), null);\n _$insert(_el$6, _$createComponent(Show, {\n get when() {\n return accountTokenToLoginStatus() === \"malformed\";\n },\n get children() {\n return _tmpl$2();\n }\n }), null);\n _$insert(_el$6, _$createComponent(Show, {\n get when() {\n return accountTokenToLoginStatus() === \"loading\";\n },\n get children() {\n return _tmpl$3();\n }\n }), null);\n _$insert(_el$6, _$createComponent(Show, {\n get when() {\n return accountTokenToLoginStatus() === \"not-found\";\n },\n get children() {\n return _tmpl$4();\n }\n }), null);\n _$insert(_el$3, _$createComponent(Button, {\n type: \"submit\",\n onClick: onLogIn,\n get disabled() {\n return !canLogIn();\n },\n get children() {\n return `Log in${contactToLogin()?.type === \"registered\" ? ` as ${contactToLogin().name}` : \"\"}`;\n }\n }), null);\n return _el$3;\n }\n })];\n }\n });\n }\n }), _$createComponent(Show, {\n get when() {\n return isLoggedIn();\n },\n get children() {\n return [(() => {\n var _el$0 = _tmpl$6();\n _el$0.addEventListener(\"change\", onAvatarChange);\n _$use(el => avatarInputRef = el, _el$0);\n return _el$0;\n })(), (() => {\n var _el$1 = _tmpl$8(),\n _el$10 = _el$1.firstChild;\n _$insert(_el$10, _$createComponent(Show, {\n get when() {\n return currentAccount?.contactUrl;\n },\n get children() {\n var _el$11 = _tmpl$7(),\n _el$12 = _el$11.firstChild;\n _el$11.$$click = () => avatarInputRef?.click();\n _el$12._$owner = _$getOwner();\n _$effect(() => _el$12.docUrl = currentAccount.contactUrl);\n return _el$11;\n }\n }), null);\n _$insert(_el$10, _$createComponent(ColorPicker, {\n get value() {\n return self()?.color;\n },\n onChange: onColorChange\n }), null);\n _$insert(_el$1, _$createComponent(Input, {\n id: \"name\",\n \"class\": \"profile-name-input\",\n get value() {\n return name();\n },\n onInput: e => onNameChange(e.currentTarget.value),\n placeholder: \"Your name\"\n }), null);\n return _el$1;\n })(), (() => {\n var _el$13 = _tmpl$0();\n _$insert(_el$13, _$createComponent(Tooltip, {\n get open() {\n return isCopyTooltipOpen();\n },\n get children() {\n return [_$createComponent(TooltipTrigger, {\n as: \"div\",\n onClick: onCopy,\n onBlur: () => setIsCopyTooltipOpen(false),\n get children() {\n return _$createComponent(Button, {\n variant: \"outline\",\n type: \"button\",\n get children() {\n return [_$createComponent(CopyIcon, {\n \"class\": \"icon-inline\"\n }), \"Copy account token\"];\n }\n });\n }\n }), _$createComponent(TooltipContent, {\n \"class\": \"tooltip-content\",\n get children() {\n return _tmpl$9();\n }\n })];\n }\n }), null);\n _$insert(_el$13, _$createComponent(Show, {\n get when() {\n return props.element.hive?.active?.contactCard;\n },\n get children() {\n return _$createComponent(Tooltip, {\n get open() {\n return isContactCardCopyTooltipOpen();\n },\n get children() {\n return [_$createComponent(TooltipTrigger, {\n as: \"div\",\n onClick: onCopyContactCard,\n onBlur: () => setIsContactCardCopyTooltipOpen(false),\n get children() {\n return _$createComponent(Button, {\n variant: \"outline\",\n type: \"button\",\n get children() {\n return [_$createComponent(CopyIcon, {\n \"class\": \"icon-inline\"\n }), \"Copy contact card\"];\n }\n });\n }\n }), _$createComponent(TooltipContent, {\n \"class\": \"tooltip-content\",\n get children() {\n return _tmpl$9();\n }\n })];\n }\n });\n }\n }), null);\n _$insert(_el$13, _$createComponent(Button, {\n onClick: () => setShowSignOutConfirm(true),\n variant: \"ghost\",\n \"class\": \"sign-out\",\n children: \"Sign out\"\n }), null);\n return _el$13;\n })(), _$createComponent(Show, {\n get when() {\n return showSignOutConfirm();\n },\n get children() {\n return [(() => {\n var _el$16 = _tmpl$1();\n _el$16.$$click = () => setShowSignOutConfirm(false);\n return _el$16;\n })(), (() => {\n var _el$17 = _tmpl$10(),\n _el$18 = _el$17.firstChild,\n _el$19 = _el$18.nextSibling,\n _el$20 = _el$19.nextSibling,\n _el$22 = _el$20.nextSibling;\n _$insert(_el$17, _$createComponent(Label, {\n \"for\": \"signOutAccountUrl\",\n children: \"Account token\"\n }), _el$20);\n _$insert(_el$20, _$createComponent(Input, {\n onFocus: e => e.currentTarget.select(),\n get value() {\n return currentAccountToken() || \"\";\n },\n id: \"signOutAccountUrl\",\n get type() {\n return showAccountUrl() ? \"text\" : \"password\";\n },\n readOnly: true,\n autocomplete: \"off\"\n }), null);\n _$insert(_el$20, _$createComponent(Button, {\n variant: \"ghost\",\n onClick: onToggleShowAccountUrl,\n type: \"button\",\n get children() {\n return _$createComponent(Show, {\n get when() {\n return showAccountUrl();\n },\n get fallback() {\n return _$createComponent(EyeOffIcon, {});\n },\n get children() {\n return _$createComponent(EyeIcon, {});\n }\n });\n }\n }), null);\n _$insert(_el$17, _$createComponent(Tooltip, {\n get open() {\n return isCopyTooltipOpen();\n },\n get children() {\n return [_$createComponent(TooltipTrigger, {\n as: \"div\",\n onClick: () => {\n onCopy();\n },\n onBlur: () => setIsCopyTooltipOpen(false),\n get children() {\n return _$createComponent(Button, {\n variant: \"outline\",\n \"class\": \"wide\",\n type: \"button\",\n get children() {\n return [_$createComponent(CopyIcon, {\n \"class\": \"icon-inline\"\n }), \"Copy token\"];\n }\n });\n }\n }), _$createComponent(TooltipContent, {\n \"class\": \"tooltip-content\",\n get children() {\n return _tmpl$9();\n }\n })];\n }\n }), _el$22);\n _$insert(_el$22, _$createComponent(Button, {\n variant: \"secondary\",\n onClick: () => setShowSignOutConfirm(false),\n children: \"Cancel\"\n }), null);\n _$insert(_el$22, _$createComponent(Button, {\n onClick: onLogout,\n \"class\": \"sign-out-confirm\",\n children: \"Sign out\"\n }), null);\n return _el$17;\n })()];\n }\n })];\n }\n })];\n }\n }));\n return _el$;\n })();\n};\nconst AVATAR_MAX_SIZE = 512;\nasync function compressAvatar(file) {\n const bitmap = await createImageBitmap(file);\n const scale = Math.min(1, AVATAR_MAX_SIZE / Math.max(bitmap.width, bitmap.height));\n const width = Math.round(bitmap.width * scale);\n const height = Math.round(bitmap.height * scale);\n const canvas = new OffscreenCanvas(width, height);\n const ctx = canvas.getContext(\"2d\");\n ctx.drawImage(bitmap, 0, 0, width, height);\n bitmap.close();\n const blob = await canvas.convertToBlob({\n type: \"image/webp\",\n quality: 0.8\n });\n const buffer = await blob.arrayBuffer();\n return {\n content: new Uint8Array(buffer),\n mimeType: \"image/webp\"\n };\n}\nfunction EyeIcon() {\n return _tmpl$12();\n}\nfunction EyeOffIcon() {\n return _tmpl$13();\n}\nfunction CopyIcon(props) {\n return (() => {\n var _el$25 = _tmpl$14();\n _$effect(() => _$setAttribute(_el$25, \"class\", props.class ?? \"icon\"));\n return _el$25;\n })();\n}\nexport const AccountPickerTool = (handle, element) => {\n const dispose = render(() => _$createComponent(RepoContext.Provider, {\n get value() {\n return element.repo;\n },\n get children() {\n return _$createComponent(AccountPicker, {\n handle: handle,\n element: element\n });\n }\n }), element);\n return () => dispose();\n};\n_$delegateEvents([\"click\"]);"],
5
- "mappings": "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",
6
- "names": ["debug", "template", "value", "error", "children", "memo", "e", "children", "i", "sources", "dispose", "document", "template", "unwrap", "dispose", "component", "debug", "url", "_tmpl$", "_tmpl$2", "_tmpl$", "_tmpl$", "access", "access", "type", "style", "EventKey", "getComputedStyle", "last", "noop", "access", "access", "isRTL", "access", "access", "access", "access", "style", "offset", "access", "Tabs", "TabsList", "TabsTrigger", "TabsContent", "platform", "reset", "max", "offset", "platform", "placements", "sides", "side", "placement", "overflow", "platform", "x", "y", "min", "max", "platform", "apply", "getWindow", "getComputedStyle", "isWebKit", "getComputedStyle", "getWindow", "isWebKit", "cache", "isRTL", "offset", "shift", "flip", "size", "hide", "arrow", "computePosition", "cache", "_tmpl$", "style", "flip2", "offset", "flip", "shift", "size", "hide", "arrow", "computePosition", "noop", "access", "access", "document", "access", "Tooltip", "TooltipTrigger", "TooltipContent", "_tmpl$", "_tmpl$2", "_tmpl$3", "_tmpl$4", "_tmpl$5", "_tmpl$6", "_tmpl$7", "_tmpl$8", "Tabs", "TabsList", "TabsTrigger", "TabsContent", "_tmpl$", "_tmpl$5", "_tmpl$2", "_tmpl$3", "_tmpl$4", "_tmpl$6", "_tmpl$8", "_tmpl$7", "Tooltip", "TooltipTrigger", "TooltipContent", "dispose"]
7
- }