{ "version": 3, "sources": ["../../../node_modules/.pnpm/solid-heroicons@file+..+..+solid-heroicons_solid-js@1.9.3/node_modules/solid-heroicons/outline/browser/index.js", "../../../node_modules/.pnpm/@kobalte+core@0.13.7_solid-js@1.9.3/node_modules/@kobalte/core/dist/chunk/43XIKO67.js", "../../../node_modules/.pnpm/@solid-primitives+static-store@0.0.8_solid-js@1.9.3/node_modules/@solid-primitives/static-store/dist/index.js", "../../../node_modules/.pnpm/@kobalte+core@0.13.7_solid-js@1.9.3/node_modules/@kobalte/core/dist/chunk/7CVNMTYF.js", "../../../node_modules/.pnpm/@kobalte+core@0.13.7_solid-js@1.9.3/node_modules/@kobalte/core/dist/chunk/JMA2RWU6.js", "../../../node_modules/.pnpm/@kobalte+core@0.13.7_solid-js@1.9.3/node_modules/@kobalte/core/dist/chunk/H6DSIDEC.js", "../../../node_modules/.pnpm/@corvu+utils@0.4.0_solid-js@1.9.3/node_modules/@corvu/utils/dist/chunk/ZV6G25TT.js", "../../../node_modules/.pnpm/solid-presence@0.1.8_solid-js@1.9.3/node_modules/solid-presence/dist/index.js", "../../../node_modules/.pnpm/@solid-primitives+resize-observer@2.0.26_solid-js@1.9.3/node_modules/@solid-primitives/resize-observer/dist/index.js", "../../../node_modules/.pnpm/@kobalte+core@0.13.7_solid-js@1.9.3/node_modules/@kobalte/core/dist/chunk/UPL2ZV2Y.js", "../../../node_modules/.pnpm/@kobalte+core@0.13.7_solid-js@1.9.3/node_modules/@kobalte/core/dist/chunk/V7OQQISF.js", "../../../node_modules/.pnpm/@kobalte+core@0.13.7_solid-js@1.9.3/node_modules/@kobalte/core/dist/chunk/ZKYDDHM6.js", "../../../node_modules/.pnpm/solid-js@1.9.3/node_modules/solid-js/store/dist/store.js", "../../../node_modules/.pnpm/@kobalte+core@0.13.7_solid-js@1.9.3/node_modules/@kobalte/core/dist/chunk/OWKXKMWZ.js", "../../../node_modules/.pnpm/@floating-ui+utils@0.2.7/node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs", "../../../node_modules/.pnpm/@floating-ui+core@1.6.7/node_modules/@floating-ui/core/dist/floating-ui.core.mjs", "../../../node_modules/.pnpm/@floating-ui+utils@0.2.7/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.mjs", "../../../node_modules/.pnpm/@floating-ui+dom@1.6.10/node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs", "../../../node_modules/.pnpm/@kobalte+core@0.13.7_solid-js@1.9.3/node_modules/@kobalte/core/dist/chunk/4X2EKUJ3.js", "../../../node_modules/.pnpm/@kobalte+core@0.13.7_solid-js@1.9.3/node_modules/@kobalte/core/dist/chunk/ISKHZMHS.js", "../../../node_modules/.pnpm/@kobalte+core@0.13.7_solid-js@1.9.3/node_modules/@kobalte/core/dist/chunk/TZGE2AQH.js", "../../../node_modules/.pnpm/@kobalte+core@0.13.7_solid-js@1.9.3/node_modules/@kobalte/core/dist/chunk/QEMPLYZX.js", "../../../node_modules/.pnpm/@kobalte+core@0.13.7_solid-js@1.9.3/node_modules/@kobalte/core/dist/chunk/QGCMYLTA.js", "../../../node_modules/.pnpm/@kobalte+core@0.13.7_solid-js@1.9.3/node_modules/@kobalte/core/dist/chunk/G7G3PFRJ.js", "../../../node_modules/.pnpm/@kobalte+core@0.13.7_solid-js@1.9.3/node_modules/@kobalte/core/dist/chunk/7LCANGHD.js", "../../../node_modules/.pnpm/@corvu+utils@0.3.2_solid-js@1.9.3/node_modules/@corvu/utils/dist/chunk/ZV6G25TT.js", "../../../node_modules/.pnpm/@corvu+utils@0.3.2_solid-js@1.9.3/node_modules/@corvu/utils/dist/chunk/HD4B7J7A.js", "../../../node_modules/.pnpm/@corvu+utils@0.3.2_solid-js@1.9.3/node_modules/@corvu/utils/dist/scroll/index.js", "../../../node_modules/.pnpm/solid-prevent-scroll@0.1.9_solid-js@1.9.3/node_modules/solid-prevent-scroll/dist/index.js", "../../../node_modules/.pnpm/@kobalte+core@0.13.7_solid-js@1.9.3/node_modules/@kobalte/core/dist/chunk/4BY6HKXA.js", "../../../node_modules/.pnpm/@kobalte+core@0.13.7_solid-js@1.9.3/node_modules/@kobalte/core/dist/chunk/3QQCO6IA.js", "../../../node_modules/.pnpm/@kobalte+core@0.13.7_solid-js@1.9.3/node_modules/@kobalte/core/dist/chunk/IHL55PMF.js", "../../../node_modules/.pnpm/@kobalte+core@0.13.7_solid-js@1.9.3/node_modules/@kobalte/core/dist/chunk/GLKC2QFF.js", "../../../node_modules/.pnpm/@kobalte+core@0.13.7_solid-js@1.9.3/node_modules/@kobalte/core/dist/chunk/B2UT6A6R.js", "../../../node_modules/.pnpm/@kobalte+core@0.13.7_solid-js@1.9.3/node_modules/@kobalte/core/dist/chunk/YGDQXQ2B.js", "../../../node_modules/.pnpm/@kobalte+core@0.13.7_solid-js@1.9.3/node_modules/@kobalte/core/dist/chunk/7IVIWVHJ.js", "../../../node_modules/.pnpm/@kobalte+core@0.13.7_solid-js@1.9.3/node_modules/@kobalte/core/dist/chunk/DIKSCYO5.js", "../../../node_modules/.pnpm/@kobalte+core@0.13.7_solid-js@1.9.3/node_modules/@kobalte/core/dist/chunk/2X5XWQIS.js", "../../../node_modules/.pnpm/@kobalte+core@0.13.7_solid-js@1.9.3/node_modules/@kobalte/core/dist/chunk/5D4E5DKO.js", "../../../node_modules/.pnpm/@kobalte+core@0.13.7_solid-js@1.9.3/node_modules/@kobalte/core/dist/chunk/XIMWMCMT.js", "../../../node_modules/.pnpm/@kobalte+core@0.13.7_solid-js@1.9.3/node_modules/@kobalte/core/dist/chunk/L62YPECH.js", "../../../node_modules/.pnpm/@kobalte+core@0.13.7_solid-js@1.9.3/node_modules/@kobalte/core/dist/chunk/IHG3HEOY.js", "../../../node_modules/.pnpm/@kobalte+core@0.13.7_solid-js@1.9.3/node_modules/@kobalte/core/dist/chunk/STGRFJHZ.js", "../../../node_modules/.pnpm/@kobalte+core@0.13.7_solid-js@1.9.3/node_modules/@kobalte/core/dist/chunk/NITFI7ZU.js", "../../../node_modules/.pnpm/@kobalte+core@0.13.7_solid-js@1.9.3/node_modules/@kobalte/core/dist/chunk/GVHULZ44.js", "../../../node_modules/.pnpm/@kobalte+core@0.13.7_solid-js@1.9.3/node_modules/@kobalte/core/dist/chunk/EGZ2FAE6.js", "../../../node_modules/.pnpm/@kobalte+core@0.13.7_solid-js@1.9.3/node_modules/@kobalte/core/dist/chunk/XZPN5BPK.js", "../../../node_modules/.pnpm/@kobalte+core@0.13.7_solid-js@1.9.3/node_modules/@kobalte/core/dist/chunk/6SERUP5Z.js"], "sourcesContent": ["import { template } from 'solid-js/web';\n\nvar _tmpl$ = /*#__PURE__*/template(``, false, true),\n _tmpl$2 = /*#__PURE__*/template(``, false, true),\n _tmpl$3 = /*#__PURE__*/template(``, false, true),\n _tmpl$4 = /*#__PURE__*/template(``, false, true),\n _tmpl$5 = /*#__PURE__*/template(``, false, true),\n _tmpl$6 = /*#__PURE__*/template(``, false, true),\n _tmpl$7 = /*#__PURE__*/template(``, false, true),\n _tmpl$8 = /*#__PURE__*/template(``, false, true),\n _tmpl$9 = /*#__PURE__*/template(``, false, true),\n _tmpl$10 = /*#__PURE__*/template(``, false, true),\n _tmpl$11 = /*#__PURE__*/template(``, false, true),\n _tmpl$12 = /*#__PURE__*/template(``, false, true),\n _tmpl$13 = /*#__PURE__*/template(``, false, true),\n _tmpl$14 = /*#__PURE__*/template(``, false, true),\n _tmpl$15 = /*#__PURE__*/template(``, false, true),\n _tmpl$16 = /*#__PURE__*/template(``, false, true),\n _tmpl$17 = /*#__PURE__*/template(``, false, true),\n _tmpl$18 = /*#__PURE__*/template(``, false, true),\n _tmpl$19 = /*#__PURE__*/template(``, false, true),\n _tmpl$20 = /*#__PURE__*/template(``, false, true),\n _tmpl$21 = /*#__PURE__*/template(``, false, true),\n _tmpl$22 = /*#__PURE__*/template(``, false, true),\n _tmpl$23 = /*#__PURE__*/template(``, false, true),\n _tmpl$24 = /*#__PURE__*/template(``, false, true),\n _tmpl$25 = /*#__PURE__*/template(``, false, true),\n _tmpl$26 = /*#__PURE__*/template(``, false, true),\n _tmpl$27 = /*#__PURE__*/template(``, false, true),\n _tmpl$28 = /*#__PURE__*/template(``, false, true),\n _tmpl$29 = /*#__PURE__*/template(``, false, true),\n _tmpl$30 = /*#__PURE__*/template(``, false, true),\n _tmpl$31 = /*#__PURE__*/template(``, false, true),\n _tmpl$32 = /*#__PURE__*/template(``, false, true),\n _tmpl$33 = /*#__PURE__*/template(``, false, true),\n _tmpl$34 = /*#__PURE__*/template(``, false, true),\n _tmpl$35 = /*#__PURE__*/template(``, false, true),\n _tmpl$36 = /*#__PURE__*/template(``, false, true),\n _tmpl$37 = /*#__PURE__*/template(``, false, true),\n _tmpl$38 = /*#__PURE__*/template(``, false, true),\n _tmpl$39 = /*#__PURE__*/template(``, false, true),\n _tmpl$40 = /*#__PURE__*/template(``, false, true),\n _tmpl$41 = /*#__PURE__*/template(``, false, true),\n _tmpl$42 = /*#__PURE__*/template(``, false, true),\n _tmpl$43 = /*#__PURE__*/template(``, false, true),\n _tmpl$44 = /*#__PURE__*/template(``, false, true),\n _tmpl$45 = /*#__PURE__*/template(``, false, true),\n _tmpl$46 = /*#__PURE__*/template(``, false, true),\n _tmpl$47 = /*#__PURE__*/template(``, false, true),\n _tmpl$48 = /*#__PURE__*/template(``, false, true),\n _tmpl$49 = /*#__PURE__*/template(``, false, true),\n _tmpl$50 = /*#__PURE__*/template(``, false, true),\n _tmpl$51 = /*#__PURE__*/template(``, false, true),\n _tmpl$52 = /*#__PURE__*/template(``, false, true),\n _tmpl$53 = /*#__PURE__*/template(``, false, true),\n _tmpl$54 = /*#__PURE__*/template(``, false, true),\n _tmpl$55 = /*#__PURE__*/template(``, false, true),\n _tmpl$56 = /*#__PURE__*/template(``, false, true),\n _tmpl$57 = /*#__PURE__*/template(``, false, true),\n _tmpl$58 = /*#__PURE__*/template(``, false, true),\n _tmpl$59 = /*#__PURE__*/template(``, false, true),\n _tmpl$60 = /*#__PURE__*/template(``, false, true),\n _tmpl$61 = /*#__PURE__*/template(``, false, true),\n _tmpl$62 = /*#__PURE__*/template(``, false, true),\n _tmpl$63 = /*#__PURE__*/template(``, false, true),\n _tmpl$64 = /*#__PURE__*/template(``, false, true),\n _tmpl$65 = /*#__PURE__*/template(``, false, true),\n _tmpl$66 = /*#__PURE__*/template(``, false, true),\n _tmpl$67 = /*#__PURE__*/template(``, false, true),\n _tmpl$68 = /*#__PURE__*/template(``, false, true),\n _tmpl$69 = /*#__PURE__*/template(``, false, true),\n _tmpl$70 = /*#__PURE__*/template(``, false, true),\n _tmpl$71 = /*#__PURE__*/template(``, false, true),\n _tmpl$72 = /*#__PURE__*/template(``, false, true),\n _tmpl$73 = /*#__PURE__*/template(``, false, true),\n _tmpl$74 = /*#__PURE__*/template(``, false, true),\n _tmpl$75 = /*#__PURE__*/template(``, false, true),\n _tmpl$76 = /*#__PURE__*/template(``, false, true),\n _tmpl$77 = /*#__PURE__*/template(``, false, true),\n _tmpl$78 = /*#__PURE__*/template(``, false, true),\n _tmpl$79 = /*#__PURE__*/template(``, false, true),\n _tmpl$80 = /*#__PURE__*/template(``, false, true),\n _tmpl$81 = /*#__PURE__*/template(``, false, true),\n _tmpl$82 = /*#__PURE__*/template(``, false, true),\n _tmpl$83 = /*#__PURE__*/template(``, false, true),\n _tmpl$84 = /*#__PURE__*/template(``, false, true),\n _tmpl$85 = /*#__PURE__*/template(``, false, true),\n _tmpl$86 = /*#__PURE__*/template(``, false, true),\n _tmpl$87 = /*#__PURE__*/template(``, false, true),\n _tmpl$88 = /*#__PURE__*/template(``, false, true),\n _tmpl$89 = /*#__PURE__*/template(``, false, true),\n _tmpl$90 = /*#__PURE__*/template(``, false, true),\n _tmpl$91 = /*#__PURE__*/template(``, false, true),\n _tmpl$92 = /*#__PURE__*/template(``, false, true),\n _tmpl$93 = /*#__PURE__*/template(``, false, true),\n _tmpl$94 = /*#__PURE__*/template(``, false, true),\n _tmpl$95 = /*#__PURE__*/template(``, false, true),\n _tmpl$96 = /*#__PURE__*/template(``, false, true),\n _tmpl$97 = /*#__PURE__*/template(``, false, true),\n _tmpl$98 = /*#__PURE__*/template(``, false, true),\n _tmpl$99 = /*#__PURE__*/template(``, false, true),\n _tmpl$100 = /*#__PURE__*/template(``, false, true),\n _tmpl$101 = /*#__PURE__*/template(``, false, true),\n _tmpl$102 = /*#__PURE__*/template(``, false, true),\n _tmpl$103 = /*#__PURE__*/template(``, false, true),\n _tmpl$104 = /*#__PURE__*/template(``, false, true),\n _tmpl$105 = /*#__PURE__*/template(``, false, true),\n _tmpl$106 = /*#__PURE__*/template(``, false, true),\n _tmpl$107 = /*#__PURE__*/template(``, false, true),\n _tmpl$108 = /*#__PURE__*/template(``, false, true),\n _tmpl$109 = /*#__PURE__*/template(``, false, true),\n _tmpl$110 = /*#__PURE__*/template(``, false, true),\n _tmpl$111 = /*#__PURE__*/template(``, false, true),\n _tmpl$112 = /*#__PURE__*/template(``, false, true),\n _tmpl$113 = /*#__PURE__*/template(``, false, true),\n _tmpl$114 = /*#__PURE__*/template(``, false, true),\n _tmpl$115 = /*#__PURE__*/template(``, false, true),\n _tmpl$116 = /*#__PURE__*/template(``, false, true),\n _tmpl$117 = /*#__PURE__*/template(``, false, true),\n _tmpl$118 = /*#__PURE__*/template(``, false, true),\n _tmpl$119 = /*#__PURE__*/template(``, false, true),\n _tmpl$120 = /*#__PURE__*/template(``, false, true),\n _tmpl$121 = /*#__PURE__*/template(``, false, true),\n _tmpl$122 = /*#__PURE__*/template(``, false, true),\n _tmpl$123 = /*#__PURE__*/template(``, false, true),\n _tmpl$124 = /*#__PURE__*/template(``, false, true),\n _tmpl$125 = /*#__PURE__*/template(``, false, true),\n _tmpl$126 = /*#__PURE__*/template(``, false, true),\n _tmpl$127 = /*#__PURE__*/template(``, false, true),\n _tmpl$128 = /*#__PURE__*/template(``, false, true),\n _tmpl$129 = /*#__PURE__*/template(``, false, true),\n _tmpl$130 = /*#__PURE__*/template(``, false, true),\n _tmpl$131 = /*#__PURE__*/template(``, false, true),\n _tmpl$132 = /*#__PURE__*/template(``, false, true),\n _tmpl$133 = /*#__PURE__*/template(``, false, true),\n _tmpl$134 = /*#__PURE__*/template(``, false, true),\n _tmpl$135 = /*#__PURE__*/template(``, false, true),\n _tmpl$136 = /*#__PURE__*/template(``, false, true),\n _tmpl$137 = /*#__PURE__*/template(``, false, true),\n _tmpl$138 = /*#__PURE__*/template(``, false, true),\n _tmpl$139 = /*#__PURE__*/template(``, false, true),\n _tmpl$140 = /*#__PURE__*/template(``, false, true),\n _tmpl$141 = /*#__PURE__*/template(``, false, true),\n _tmpl$142 = /*#__PURE__*/template(``, false, true),\n _tmpl$143 = /*#__PURE__*/template(``, false, true),\n _tmpl$144 = /*#__PURE__*/template(``, false, true),\n _tmpl$145 = /*#__PURE__*/template(``, false, true),\n _tmpl$146 = /*#__PURE__*/template(``, false, true),\n _tmpl$147 = /*#__PURE__*/template(``, false, true),\n _tmpl$148 = /*#__PURE__*/template(``, false, true),\n _tmpl$149 = /*#__PURE__*/template(``, false, true),\n _tmpl$150 = /*#__PURE__*/template(``, false, true),\n _tmpl$151 = /*#__PURE__*/template(``, false, true),\n _tmpl$152 = /*#__PURE__*/template(``, false, true),\n _tmpl$153 = /*#__PURE__*/template(``, false, true),\n _tmpl$154 = /*#__PURE__*/template(``, false, true),\n _tmpl$155 = /*#__PURE__*/template(``, false, true),\n _tmpl$156 = /*#__PURE__*/template(``, false, true),\n _tmpl$157 = /*#__PURE__*/template(``, false, true),\n _tmpl$158 = /*#__PURE__*/template(``, false, true),\n _tmpl$159 = /*#__PURE__*/template(``, false, true),\n _tmpl$160 = /*#__PURE__*/template(``, false, true),\n _tmpl$161 = /*#__PURE__*/template(``, false, true),\n _tmpl$162 = /*#__PURE__*/template(``, false, true),\n _tmpl$163 = /*#__PURE__*/template(``, false, true),\n _tmpl$164 = /*#__PURE__*/template(``, false, true),\n _tmpl$165 = /*#__PURE__*/template(``, false, true),\n _tmpl$166 = /*#__PURE__*/template(``, false, true),\n _tmpl$167 = /*#__PURE__*/template(``, false, true),\n _tmpl$168 = /*#__PURE__*/template(``, false, true),\n _tmpl$169 = /*#__PURE__*/template(``, false, true),\n _tmpl$170 = /*#__PURE__*/template(``, false, true),\n _tmpl$171 = /*#__PURE__*/template(``, false, true),\n _tmpl$172 = /*#__PURE__*/template(``, false, true),\n _tmpl$173 = /*#__PURE__*/template(``, false, true),\n _tmpl$174 = /*#__PURE__*/template(``, false, true),\n _tmpl$175 = /*#__PURE__*/template(``, false, true),\n _tmpl$176 = /*#__PURE__*/template(``, false, true),\n _tmpl$177 = /*#__PURE__*/template(``, false, true),\n _tmpl$178 = /*#__PURE__*/template(``, false, true),\n _tmpl$179 = /*#__PURE__*/template(``, false, true),\n _tmpl$180 = /*#__PURE__*/template(``, false, true),\n _tmpl$181 = /*#__PURE__*/template(``, false, true),\n _tmpl$182 = /*#__PURE__*/template(``, false, true),\n _tmpl$183 = /*#__PURE__*/template(``, false, true),\n _tmpl$184 = /*#__PURE__*/template(``, false, true),\n _tmpl$185 = /*#__PURE__*/template(``, false, true),\n _tmpl$186 = /*#__PURE__*/template(``, false, true),\n _tmpl$187 = /*#__PURE__*/template(``, false, true),\n _tmpl$188 = /*#__PURE__*/template(``, false, true),\n _tmpl$189 = /*#__PURE__*/template(``, false, true),\n _tmpl$190 = /*#__PURE__*/template(``, false, true),\n _tmpl$191 = /*#__PURE__*/template(``, false, true),\n _tmpl$192 = /*#__PURE__*/template(``, false, true),\n _tmpl$193 = /*#__PURE__*/template(``, false, true),\n _tmpl$194 = /*#__PURE__*/template(``, false, true),\n _tmpl$195 = /*#__PURE__*/template(``, false, true),\n _tmpl$196 = /*#__PURE__*/template(``, false, true),\n _tmpl$197 = /*#__PURE__*/template(``, false, true),\n _tmpl$198 = /*#__PURE__*/template(``, false, true),\n _tmpl$199 = /*#__PURE__*/template(``, false, true),\n _tmpl$200 = /*#__PURE__*/template(``, false, true),\n _tmpl$201 = /*#__PURE__*/template(``, false, true),\n _tmpl$202 = /*#__PURE__*/template(``, false, true),\n _tmpl$203 = /*#__PURE__*/template(``, false, true),\n _tmpl$204 = /*#__PURE__*/template(``, false, true),\n _tmpl$205 = /*#__PURE__*/template(``, false, true),\n _tmpl$206 = /*#__PURE__*/template(``, false, true),\n _tmpl$207 = /*#__PURE__*/template(``, false, true),\n _tmpl$208 = /*#__PURE__*/template(``, false, true),\n _tmpl$209 = /*#__PURE__*/template(``, false, true),\n _tmpl$210 = /*#__PURE__*/template(``, false, true),\n _tmpl$211 = /*#__PURE__*/template(``, false, true),\n _tmpl$212 = /*#__PURE__*/template(``, false, true),\n _tmpl$213 = /*#__PURE__*/template(``, false, true),\n _tmpl$214 = /*#__PURE__*/template(``, false, true),\n _tmpl$215 = /*#__PURE__*/template(``, false, true),\n _tmpl$216 = /*#__PURE__*/template(``, false, true),\n _tmpl$217 = /*#__PURE__*/template(``, false, true),\n _tmpl$218 = /*#__PURE__*/template(``, false, true),\n _tmpl$219 = /*#__PURE__*/template(``, false, true),\n _tmpl$220 = /*#__PURE__*/template(``, false, true),\n _tmpl$221 = /*#__PURE__*/template(``, false, true),\n _tmpl$222 = /*#__PURE__*/template(``, false, true),\n _tmpl$223 = /*#__PURE__*/template(``, false, true),\n _tmpl$224 = /*#__PURE__*/template(``, false, true),\n _tmpl$225 = /*#__PURE__*/template(``, false, true),\n _tmpl$226 = /*#__PURE__*/template(``, false, true),\n _tmpl$227 = /*#__PURE__*/template(``, false, true),\n _tmpl$228 = /*#__PURE__*/template(``, false, true),\n _tmpl$229 = /*#__PURE__*/template(``, false, true),\n _tmpl$230 = /*#__PURE__*/template(``, false, true),\n _tmpl$231 = /*#__PURE__*/template(``, false, true),\n _tmpl$232 = /*#__PURE__*/template(``, false, true),\n _tmpl$233 = /*#__PURE__*/template(``, false, true),\n _tmpl$234 = /*#__PURE__*/template(``, false, true),\n _tmpl$235 = /*#__PURE__*/template(``, false, true),\n _tmpl$236 = /*#__PURE__*/template(``, false, true),\n _tmpl$237 = /*#__PURE__*/template(``, false, true),\n _tmpl$238 = /*#__PURE__*/template(``, false, true),\n _tmpl$239 = /*#__PURE__*/template(``, false, true),\n _tmpl$240 = /*#__PURE__*/template(``, false, true),\n _tmpl$241 = /*#__PURE__*/template(``, false, true),\n _tmpl$242 = /*#__PURE__*/template(``, false, true),\n _tmpl$243 = /*#__PURE__*/template(``, false, true),\n _tmpl$244 = /*#__PURE__*/template(``, false, true),\n _tmpl$245 = /*#__PURE__*/template(``, false, true),\n _tmpl$246 = /*#__PURE__*/template(``, false, true),\n _tmpl$247 = /*#__PURE__*/template(``, false, true),\n _tmpl$248 = /*#__PURE__*/template(``, false, true),\n _tmpl$249 = /*#__PURE__*/template(``, false, true),\n _tmpl$250 = /*#__PURE__*/template(``, false, true),\n _tmpl$251 = /*#__PURE__*/template(``, false, true),\n _tmpl$252 = /*#__PURE__*/template(``, false, true),\n _tmpl$253 = /*#__PURE__*/template(``, false, true),\n _tmpl$254 = /*#__PURE__*/template(``, false, true),\n _tmpl$255 = /*#__PURE__*/template(``, false, true),\n _tmpl$256 = /*#__PURE__*/template(``, false, true),\n _tmpl$257 = /*#__PURE__*/template(``, false, true),\n _tmpl$258 = /*#__PURE__*/template(``, false, true),\n _tmpl$259 = /*#__PURE__*/template(``, false, true),\n _tmpl$260 = /*#__PURE__*/template(``, false, true),\n _tmpl$261 = /*#__PURE__*/template(``, false, true),\n _tmpl$262 = /*#__PURE__*/template(``, false, true),\n _tmpl$263 = /*#__PURE__*/template(``, false, true),\n _tmpl$264 = /*#__PURE__*/template(``, false, true),\n _tmpl$265 = /*#__PURE__*/template(``, false, true),\n _tmpl$266 = /*#__PURE__*/template(``, false, true),\n _tmpl$267 = /*#__PURE__*/template(``, false, true),\n _tmpl$268 = /*#__PURE__*/template(``, false, true),\n _tmpl$269 = /*#__PURE__*/template(``, false, true),\n _tmpl$270 = /*#__PURE__*/template(``, false, true),\n _tmpl$271 = /*#__PURE__*/template(``, false, true),\n _tmpl$272 = /*#__PURE__*/template(``, false, true),\n _tmpl$273 = /*#__PURE__*/template(``, false, true),\n _tmpl$274 = /*#__PURE__*/template(``, false, true),\n _tmpl$275 = /*#__PURE__*/template(``, false, true),\n _tmpl$276 = /*#__PURE__*/template(``, false, true),\n _tmpl$277 = /*#__PURE__*/template(``, false, true),\n _tmpl$278 = /*#__PURE__*/template(``, false, true),\n _tmpl$279 = /*#__PURE__*/template(``, false, true),\n _tmpl$280 = /*#__PURE__*/template(``, false, true),\n _tmpl$281 = /*#__PURE__*/template(``, false, true),\n _tmpl$282 = /*#__PURE__*/template(``, false, true),\n _tmpl$283 = /*#__PURE__*/template(``, false, true),\n _tmpl$284 = /*#__PURE__*/template(``, false, true),\n _tmpl$285 = /*#__PURE__*/template(``, false, true),\n _tmpl$286 = /*#__PURE__*/template(``, false, true),\n _tmpl$287 = /*#__PURE__*/template(``, false, true),\n _tmpl$288 = /*#__PURE__*/template(``, false, true),\n _tmpl$289 = /*#__PURE__*/template(``, false, true),\n _tmpl$290 = /*#__PURE__*/template(``, false, true),\n _tmpl$291 = /*#__PURE__*/template(``, false, true),\n _tmpl$292 = /*#__PURE__*/template(``, false, true),\n _tmpl$293 = /*#__PURE__*/template(``, false, true),\n _tmpl$294 = /*#__PURE__*/template(``, false, true),\n _tmpl$295 = /*#__PURE__*/template(``, false, true),\n _tmpl$296 = /*#__PURE__*/template(``, false, true),\n _tmpl$297 = /*#__PURE__*/template(``, false, true),\n _tmpl$298 = /*#__PURE__*/template(``, false, true),\n _tmpl$299 = /*#__PURE__*/template(``, false, true),\n _tmpl$300 = /*#__PURE__*/template(``, false, true),\n _tmpl$301 = /*#__PURE__*/template(``, false, true),\n _tmpl$302 = /*#__PURE__*/template(``, false, true),\n _tmpl$303 = /*#__PURE__*/template(``, false, true),\n _tmpl$304 = /*#__PURE__*/template(``, false, true),\n _tmpl$305 = /*#__PURE__*/template(``, false, true),\n _tmpl$306 = /*#__PURE__*/template(``, false, true),\n _tmpl$307 = /*#__PURE__*/template(``, false, true),\n _tmpl$308 = /*#__PURE__*/template(``, false, true),\n _tmpl$309 = /*#__PURE__*/template(``, false, true),\n _tmpl$310 = /*#__PURE__*/template(``, false, true),\n _tmpl$311 = /*#__PURE__*/template(``, false, true),\n _tmpl$312 = /*#__PURE__*/template(``, false, true),\n _tmpl$313 = /*#__PURE__*/template(``, false, true),\n _tmpl$314 = /*#__PURE__*/template(``, false, true),\n _tmpl$315 = /*#__PURE__*/template(``, false, true),\n _tmpl$316 = /*#__PURE__*/template(``, false, true),\n _tmpl$317 = /*#__PURE__*/template(``, false, true),\n _tmpl$318 = /*#__PURE__*/template(``, false, true),\n _tmpl$319 = /*#__PURE__*/template(``, false, true),\n _tmpl$320 = /*#__PURE__*/template(``, false, true),\n _tmpl$321 = /*#__PURE__*/template(``, false, true),\n _tmpl$322 = /*#__PURE__*/template(``, false, true),\n _tmpl$323 = /*#__PURE__*/template(``, false, true),\n _tmpl$324 = /*#__PURE__*/template(``, false, true),\n _tmpl$325 = /*#__PURE__*/template(``, false, true),\n _tmpl$326 = /*#__PURE__*/template(``, false, true),\n _tmpl$327 = /*#__PURE__*/template(``, false, true),\n _tmpl$328 = /*#__PURE__*/template(``, false, true),\n _tmpl$329 = /*#__PURE__*/template(``, false, true),\n _tmpl$330 = /*#__PURE__*/template(``, false, true),\n _tmpl$331 = /*#__PURE__*/template(``, false, true),\n _tmpl$332 = /*#__PURE__*/template(``, false, true);\nconst academicCap = {\n path: () => _tmpl$(),\n outline: true,\n mini: false,\n micro: false\n};\nconst adjustmentsHorizontal = {\n path: () => _tmpl$2(),\n outline: true,\n mini: false,\n micro: false\n};\nconst adjustmentsVertical = {\n path: () => _tmpl$3(),\n outline: true,\n mini: false,\n micro: false\n};\nconst archiveBoxArrowDown = {\n path: () => _tmpl$4(),\n outline: true,\n mini: false,\n micro: false\n};\nconst archiveBoxXMark = {\n path: () => _tmpl$5(),\n outline: true,\n mini: false,\n micro: false\n};\nconst archiveBox = {\n path: () => _tmpl$6(),\n outline: true,\n mini: false,\n micro: false\n};\nconst arrowDownCircle = {\n path: () => _tmpl$7(),\n outline: true,\n mini: false,\n micro: false\n};\nconst arrowDownLeft = {\n path: () => _tmpl$8(),\n outline: true,\n mini: false,\n micro: false\n};\nconst arrowDownOnSquareStack = {\n path: () => _tmpl$9(),\n outline: true,\n mini: false,\n micro: false\n};\nconst arrowDownOnSquare = {\n path: () => _tmpl$10(),\n outline: true,\n mini: false,\n micro: false\n};\nconst arrowDownRight = {\n path: () => _tmpl$11(),\n outline: true,\n mini: false,\n micro: false\n};\nconst arrowDownTray = {\n path: () => _tmpl$12(),\n outline: true,\n mini: false,\n micro: false\n};\nconst arrowDown = {\n path: () => _tmpl$13(),\n outline: true,\n mini: false,\n micro: false\n};\nconst arrowLeftCircle = {\n path: () => _tmpl$14(),\n outline: true,\n mini: false,\n micro: false\n};\nconst arrowLeftEndOnRectangle = {\n path: () => _tmpl$15(),\n outline: true,\n mini: false,\n micro: false\n};\nconst arrowLeftOnRectangle = {\n path: () => _tmpl$15(),\n outline: true,\n mini: false,\n micro: false\n};\nconst arrowLeftStartOnRectangle = {\n path: () => _tmpl$16(),\n outline: true,\n mini: false,\n micro: false\n};\nconst arrowLeft = {\n path: () => _tmpl$17(),\n outline: true,\n mini: false,\n micro: false\n};\nconst arrowLongDown = {\n path: () => _tmpl$18(),\n outline: true,\n mini: false,\n micro: false\n};\nconst arrowLongLeft = {\n path: () => _tmpl$19(),\n outline: true,\n mini: false,\n micro: false\n};\nconst arrowLongRight = {\n path: () => _tmpl$20(),\n outline: true,\n mini: false,\n micro: false\n};\nconst arrowLongUp = {\n path: () => _tmpl$21(),\n outline: true,\n mini: false,\n micro: false\n};\nconst arrowPathRoundedSquare = {\n path: () => _tmpl$22(),\n outline: true,\n mini: false,\n micro: false\n};\nconst arrowPath = {\n path: () => _tmpl$23(),\n outline: true,\n mini: false,\n micro: false\n};\nconst arrowRightCircle = {\n path: () => _tmpl$24(),\n outline: true,\n mini: false,\n micro: false\n};\nconst arrowRightEndOnRectangle = {\n path: () => _tmpl$25(),\n outline: true,\n mini: false,\n micro: false\n};\nconst arrowRightOnRectangle = {\n path: () => _tmpl$26(),\n outline: true,\n mini: false,\n micro: false\n};\nconst arrowRightStartOnRectangle = {\n path: () => _tmpl$26(),\n outline: true,\n mini: false,\n micro: false\n};\nconst arrowRight = {\n path: () => _tmpl$27(),\n outline: true,\n mini: false,\n micro: false\n};\nconst arrowSmallDown = {\n path: () => _tmpl$28(),\n outline: true,\n mini: false,\n micro: false\n};\nconst arrowSmallLeft = {\n path: () => _tmpl$29(),\n outline: true,\n mini: false,\n micro: false\n};\nconst arrowSmallRight = {\n path: () => _tmpl$30(),\n outline: true,\n mini: false,\n micro: false\n};\nconst arrowSmallUp = {\n path: () => _tmpl$31(),\n outline: true,\n mini: false,\n micro: false\n};\nconst arrowTopRightOnSquare = {\n path: () => _tmpl$32(),\n outline: true,\n mini: false,\n micro: false\n};\nconst arrowTrendingDown = {\n path: () => _tmpl$33(),\n outline: true,\n mini: false,\n micro: false\n};\nconst arrowTrendingUp = {\n path: () => _tmpl$34(),\n outline: true,\n mini: false,\n micro: false\n};\nconst arrowTurnDownLeft = {\n path: () => _tmpl$35(),\n outline: true,\n mini: false,\n micro: false\n};\nconst arrowTurnDownRight = {\n path: () => _tmpl$36(),\n outline: true,\n mini: false,\n micro: false\n};\nconst arrowTurnLeftDown = {\n path: () => _tmpl$37(),\n outline: true,\n mini: false,\n micro: false\n};\nconst arrowTurnLeftUp = {\n path: () => _tmpl$38(),\n outline: true,\n mini: false,\n micro: false\n};\nconst arrowTurnRightDown = {\n path: () => _tmpl$39(),\n outline: true,\n mini: false,\n micro: false\n};\nconst arrowTurnRightUp = {\n path: () => _tmpl$40(),\n outline: true,\n mini: false,\n micro: false\n};\nconst arrowTurnUpLeft = {\n path: () => _tmpl$41(),\n outline: true,\n mini: false,\n micro: false\n};\nconst arrowTurnUpRight = {\n path: () => _tmpl$42(),\n outline: true,\n mini: false,\n micro: false\n};\nconst arrowUpCircle = {\n path: () => _tmpl$43(),\n outline: true,\n mini: false,\n micro: false\n};\nconst arrowUpLeft = {\n path: () => _tmpl$44(),\n outline: true,\n mini: false,\n micro: false\n};\nconst arrowUpOnSquareStack = {\n path: () => _tmpl$45(),\n outline: true,\n mini: false,\n micro: false\n};\nconst arrowUpOnSquare = {\n path: () => _tmpl$46(),\n outline: true,\n mini: false,\n micro: false\n};\nconst arrowUpRight = {\n path: () => _tmpl$47(),\n outline: true,\n mini: false,\n micro: false\n};\nconst arrowUpTray = {\n path: () => _tmpl$48(),\n outline: true,\n mini: false,\n micro: false\n};\nconst arrowUp = {\n path: () => _tmpl$49(),\n outline: true,\n mini: false,\n micro: false\n};\nconst arrowUturnDown = {\n path: () => _tmpl$50(),\n outline: true,\n mini: false,\n micro: false\n};\nconst arrowUturnLeft = {\n path: () => _tmpl$51(),\n outline: true,\n mini: false,\n micro: false\n};\nconst arrowUturnRight = {\n path: () => _tmpl$52(),\n outline: true,\n mini: false,\n micro: false\n};\nconst arrowUturnUp = {\n path: () => _tmpl$53(),\n outline: true,\n mini: false,\n micro: false\n};\nconst arrowsPointingIn = {\n path: () => _tmpl$54(),\n outline: true,\n mini: false,\n micro: false\n};\nconst arrowsPointingOut = {\n path: () => _tmpl$55(),\n outline: true,\n mini: false,\n micro: false\n};\nconst arrowsRightLeft = {\n path: () => _tmpl$56(),\n outline: true,\n mini: false,\n micro: false\n};\nconst arrowsUpDown = {\n path: () => _tmpl$57(),\n outline: true,\n mini: false,\n micro: false\n};\nconst atSymbol = {\n path: () => _tmpl$58(),\n outline: true,\n mini: false,\n micro: false\n};\nconst backspace = {\n path: () => _tmpl$59(),\n outline: true,\n mini: false,\n micro: false\n};\nconst backward = {\n path: () => _tmpl$60(),\n outline: true,\n mini: false,\n micro: false\n};\nconst banknotes = {\n path: () => _tmpl$61(),\n outline: true,\n mini: false,\n micro: false\n};\nconst bars_2 = {\n path: () => _tmpl$62(),\n outline: true,\n mini: false,\n micro: false\n};\nconst bars_3BottomLeft = {\n path: () => _tmpl$63(),\n outline: true,\n mini: false,\n micro: false\n};\nconst bars_3BottomRight = {\n path: () => _tmpl$64(),\n outline: true,\n mini: false,\n micro: false\n};\nconst bars_3CenterLeft = {\n path: () => _tmpl$65(),\n outline: true,\n mini: false,\n micro: false\n};\nconst bars_3 = {\n path: () => _tmpl$66(),\n outline: true,\n mini: false,\n micro: false\n};\nconst bars_4 = {\n path: () => _tmpl$67(),\n outline: true,\n mini: false,\n micro: false\n};\nconst barsArrowDown = {\n path: () => _tmpl$68(),\n outline: true,\n mini: false,\n micro: false\n};\nconst barsArrowUp = {\n path: () => _tmpl$69(),\n outline: true,\n mini: false,\n micro: false\n};\nconst battery_0 = {\n path: () => _tmpl$70(),\n outline: true,\n mini: false,\n micro: false\n};\nconst battery_100 = {\n path: () => _tmpl$71(),\n outline: true,\n mini: false,\n micro: false\n};\nconst battery_50 = {\n path: () => _tmpl$72(),\n outline: true,\n mini: false,\n micro: false\n};\nconst beaker = {\n path: () => _tmpl$73(),\n outline: true,\n mini: false,\n micro: false\n};\nconst bellAlert = {\n path: () => _tmpl$74(),\n outline: true,\n mini: false,\n micro: false\n};\nconst bellSlash = {\n path: () => _tmpl$75(),\n outline: true,\n mini: false,\n micro: false\n};\nconst bellSnooze = {\n path: () => _tmpl$76(),\n outline: true,\n mini: false,\n micro: false\n};\nconst bell = {\n path: () => _tmpl$77(),\n outline: true,\n mini: false,\n micro: false\n};\nconst bold = {\n path: () => _tmpl$78(),\n outline: true,\n mini: false,\n micro: false\n};\nconst boltSlash = {\n path: () => _tmpl$79(),\n outline: true,\n mini: false,\n micro: false\n};\nconst bolt = {\n path: () => _tmpl$80(),\n outline: true,\n mini: false,\n micro: false\n};\nconst bookOpen = {\n path: () => _tmpl$81(),\n outline: true,\n mini: false,\n micro: false\n};\nconst bookmarkSlash = {\n path: () => _tmpl$82(),\n outline: true,\n mini: false,\n micro: false\n};\nconst bookmarkSquare = {\n path: () => _tmpl$83(),\n outline: true,\n mini: false,\n micro: false\n};\nconst bookmark = {\n path: () => _tmpl$84(),\n outline: true,\n mini: false,\n micro: false\n};\nconst briefcase = {\n path: () => _tmpl$85(),\n outline: true,\n mini: false,\n micro: false\n};\nconst bugAnt = {\n path: () => _tmpl$86(),\n outline: true,\n mini: false,\n micro: false\n};\nconst buildingLibrary = {\n path: () => _tmpl$87(),\n outline: true,\n mini: false,\n micro: false\n};\nconst buildingOffice_2 = {\n path: () => _tmpl$88(),\n outline: true,\n mini: false,\n micro: false\n};\nconst buildingOffice = {\n path: () => _tmpl$89(),\n outline: true,\n mini: false,\n micro: false\n};\nconst buildingStorefront = {\n path: () => _tmpl$90(),\n outline: true,\n mini: false,\n micro: false\n};\nconst cake = {\n path: () => _tmpl$91(),\n outline: true,\n mini: false,\n micro: false\n};\nconst calculator = {\n path: () => _tmpl$92(),\n outline: true,\n mini: false,\n micro: false\n};\nconst calendarDateRange = {\n path: () => _tmpl$93(),\n outline: true,\n mini: false,\n micro: false\n};\nconst calendarDays = {\n path: () => _tmpl$94(),\n outline: true,\n mini: false,\n micro: false\n};\nconst calendar = {\n path: () => _tmpl$95(),\n outline: true,\n mini: false,\n micro: false\n};\nconst camera = {\n path: () => [_tmpl$96(), _tmpl$97()],\n outline: true,\n mini: false,\n micro: false\n};\nconst chartBarSquare = {\n path: () => _tmpl$98(),\n outline: true,\n mini: false,\n micro: false\n};\nconst chartBar = {\n path: () => _tmpl$99(),\n outline: true,\n mini: false,\n micro: false\n};\nconst chartPie = {\n path: () => [_tmpl$100(), _tmpl$101()],\n outline: true,\n mini: false,\n micro: false\n};\nconst chatBubbleBottomCenterText = {\n path: () => _tmpl$102(),\n outline: true,\n mini: false,\n micro: false\n};\nconst chatBubbleBottomCenter = {\n path: () => _tmpl$103(),\n outline: true,\n mini: false,\n micro: false\n};\nconst chatBubbleLeftEllipsis = {\n path: () => _tmpl$104(),\n outline: true,\n mini: false,\n micro: false\n};\nconst chatBubbleLeftRight = {\n path: () => _tmpl$105(),\n outline: true,\n mini: false,\n micro: false\n};\nconst chatBubbleLeft = {\n path: () => _tmpl$106(),\n outline: true,\n mini: false,\n micro: false\n};\nconst chatBubbleOvalLeftEllipsis = {\n path: () => _tmpl$107(),\n outline: true,\n mini: false,\n micro: false\n};\nconst chatBubbleOvalLeft = {\n path: () => _tmpl$108(),\n outline: true,\n mini: false,\n micro: false\n};\nconst checkBadge = {\n path: () => _tmpl$109(),\n outline: true,\n mini: false,\n micro: false\n};\nconst checkCircle = {\n path: () => _tmpl$110(),\n outline: true,\n mini: false,\n micro: false\n};\nconst check = {\n path: () => _tmpl$111(),\n outline: true,\n mini: false,\n micro: false\n};\nconst chevronDoubleDown = {\n path: () => _tmpl$112(),\n outline: true,\n mini: false,\n micro: false\n};\nconst chevronDoubleLeft = {\n path: () => _tmpl$113(),\n outline: true,\n mini: false,\n micro: false\n};\nconst chevronDoubleRight = {\n path: () => _tmpl$114(),\n outline: true,\n mini: false,\n micro: false\n};\nconst chevronDoubleUp = {\n path: () => [_tmpl$115(), _tmpl$116()],\n outline: true,\n mini: false,\n micro: false\n};\nconst chevronDown = {\n path: () => _tmpl$117(),\n outline: true,\n mini: false,\n micro: false\n};\nconst chevronLeft = {\n path: () => _tmpl$118(),\n outline: true,\n mini: false,\n micro: false\n};\nconst chevronRight = {\n path: () => _tmpl$119(),\n outline: true,\n mini: false,\n micro: false\n};\nconst chevronUpDown = {\n path: () => _tmpl$120(),\n outline: true,\n mini: false,\n micro: false\n};\nconst chevronUp = {\n path: () => _tmpl$121(),\n outline: true,\n mini: false,\n micro: false\n};\nconst circleStack = {\n path: () => _tmpl$122(),\n outline: true,\n mini: false,\n micro: false\n};\nconst clipboardDocumentCheck = {\n path: () => _tmpl$123(),\n outline: true,\n mini: false,\n micro: false\n};\nconst clipboardDocumentList = {\n path: () => _tmpl$124(),\n outline: true,\n mini: false,\n micro: false\n};\nconst clipboardDocument = {\n path: () => _tmpl$125(),\n outline: true,\n mini: false,\n micro: false\n};\nconst clipboard = {\n path: () => _tmpl$126(),\n outline: true,\n mini: false,\n micro: false\n};\nconst clock = {\n path: () => _tmpl$127(),\n outline: true,\n mini: false,\n micro: false\n};\nconst cloudArrowDown = {\n path: () => _tmpl$128(),\n outline: true,\n mini: false,\n micro: false\n};\nconst cloudArrowUp = {\n path: () => _tmpl$129(),\n outline: true,\n mini: false,\n micro: false\n};\nconst cloud = {\n path: () => _tmpl$130(),\n outline: true,\n mini: false,\n micro: false\n};\nconst codeBracketSquare = {\n path: () => _tmpl$131(),\n outline: true,\n mini: false,\n micro: false\n};\nconst codeBracket = {\n path: () => _tmpl$132(),\n outline: true,\n mini: false,\n micro: false\n};\nconst cog_6Tooth = {\n path: () => [_tmpl$133(), _tmpl$134()],\n outline: true,\n mini: false,\n micro: false\n};\nconst cog_8Tooth = {\n path: () => [_tmpl$135(), _tmpl$134()],\n outline: true,\n mini: false,\n micro: false\n};\nconst cog = {\n path: () => _tmpl$136(),\n outline: true,\n mini: false,\n micro: false\n};\nconst commandLine = {\n path: () => _tmpl$137(),\n outline: true,\n mini: false,\n micro: false\n};\nconst computerDesktop = {\n path: () => _tmpl$138(),\n outline: true,\n mini: false,\n micro: false\n};\nconst cpuChip = {\n path: () => _tmpl$139(),\n outline: true,\n mini: false,\n micro: false\n};\nconst creditCard = {\n path: () => _tmpl$140(),\n outline: true,\n mini: false,\n micro: false\n};\nconst cubeTransparent = {\n path: () => _tmpl$141(),\n outline: true,\n mini: false,\n micro: false\n};\nconst cube = {\n path: () => _tmpl$142(),\n outline: true,\n mini: false,\n micro: false\n};\nconst currencyBangladeshi = {\n path: () => _tmpl$143(),\n outline: true,\n mini: false,\n micro: false\n};\nconst currencyDollar = {\n path: () => _tmpl$144(),\n outline: true,\n mini: false,\n micro: false\n};\nconst currencyEuro = {\n path: () => _tmpl$145(),\n outline: true,\n mini: false,\n micro: false\n};\nconst currencyPound = {\n path: () => _tmpl$146(),\n outline: true,\n mini: false,\n micro: false\n};\nconst currencyRupee = {\n path: () => _tmpl$147(),\n outline: true,\n mini: false,\n micro: false\n};\nconst currencyYen = {\n path: () => _tmpl$148(),\n outline: true,\n mini: false,\n micro: false\n};\nconst cursorArrowRays = {\n path: () => _tmpl$149(),\n outline: true,\n mini: false,\n micro: false\n};\nconst cursorArrowRipple = {\n path: () => _tmpl$150(),\n outline: true,\n mini: false,\n micro: false\n};\nconst devicePhoneMobile = {\n path: () => _tmpl$151(),\n outline: true,\n mini: false,\n micro: false\n};\nconst deviceTablet = {\n path: () => _tmpl$152(),\n outline: true,\n mini: false,\n micro: false\n};\nconst divide = {\n path: () => _tmpl$153(),\n outline: true,\n mini: false,\n micro: false\n};\nconst documentArrowDown = {\n path: () => _tmpl$154(),\n outline: true,\n mini: false,\n micro: false\n};\nconst documentArrowUp = {\n path: () => _tmpl$155(),\n outline: true,\n mini: false,\n micro: false\n};\nconst documentChartBar = {\n path: () => _tmpl$156(),\n outline: true,\n mini: false,\n micro: false\n};\nconst documentCheck = {\n path: () => _tmpl$157(),\n outline: true,\n mini: false,\n micro: false\n};\nconst documentCurrencyBangladeshi = {\n path: () => _tmpl$158(),\n outline: true,\n mini: false,\n micro: false\n};\nconst documentCurrencyDollar = {\n path: () => _tmpl$159(),\n outline: true,\n mini: false,\n micro: false\n};\nconst documentCurrencyEuro = {\n path: () => _tmpl$160(),\n outline: true,\n mini: false,\n micro: false\n};\nconst documentCurrencyPound = {\n path: () => _tmpl$161(),\n outline: true,\n mini: false,\n micro: false\n};\nconst documentCurrencyRupee = {\n path: () => _tmpl$162(),\n outline: true,\n mini: false,\n micro: false\n};\nconst documentCurrencyYen = {\n path: () => _tmpl$163(),\n outline: true,\n mini: false,\n micro: false\n};\nconst documentDuplicate = {\n path: () => _tmpl$164(),\n outline: true,\n mini: false,\n micro: false\n};\nconst documentMagnifyingGlass = {\n path: () => _tmpl$165(),\n outline: true,\n mini: false,\n micro: false\n};\nconst documentMinus = {\n path: () => _tmpl$166(),\n outline: true,\n mini: false,\n micro: false\n};\nconst documentPlus = {\n path: () => _tmpl$167(),\n outline: true,\n mini: false,\n micro: false\n};\nconst documentText = {\n path: () => _tmpl$168(),\n outline: true,\n mini: false,\n micro: false\n};\nconst document = {\n path: () => _tmpl$169(),\n outline: true,\n mini: false,\n micro: false\n};\nconst ellipsisHorizontalCircle = {\n path: () => _tmpl$170(),\n outline: true,\n mini: false,\n micro: false\n};\nconst ellipsisHorizontal = {\n path: () => _tmpl$171(),\n outline: true,\n mini: false,\n micro: false\n};\nconst ellipsisVertical = {\n path: () => _tmpl$172(),\n outline: true,\n mini: false,\n micro: false\n};\nconst envelopeOpen = {\n path: () => _tmpl$173(),\n outline: true,\n mini: false,\n micro: false\n};\nconst envelope = {\n path: () => _tmpl$174(),\n outline: true,\n mini: false,\n micro: false\n};\nconst equals = {\n path: () => _tmpl$175(),\n outline: true,\n mini: false,\n micro: false\n};\nconst exclamationCircle = {\n path: () => _tmpl$176(),\n outline: true,\n mini: false,\n micro: false\n};\nconst exclamationTriangle = {\n path: () => _tmpl$177(),\n outline: true,\n mini: false,\n micro: false\n};\nconst eyeDropper = {\n path: () => _tmpl$178(),\n outline: true,\n mini: false,\n micro: false\n};\nconst eyeSlash = {\n path: () => _tmpl$179(),\n outline: true,\n mini: false,\n micro: false\n};\nconst eye = {\n path: () => [_tmpl$180(), _tmpl$134()],\n outline: true,\n mini: false,\n micro: false\n};\nconst faceFrown = {\n path: () => _tmpl$181(),\n outline: true,\n mini: false,\n micro: false\n};\nconst faceSmile = {\n path: () => _tmpl$182(),\n outline: true,\n mini: false,\n micro: false\n};\nconst film = {\n path: () => _tmpl$183(),\n outline: true,\n mini: false,\n micro: false\n};\nconst fingerPrint = {\n path: () => _tmpl$184(),\n outline: true,\n mini: false,\n micro: false\n};\nconst fire = {\n path: () => [_tmpl$185(), _tmpl$186()],\n outline: true,\n mini: false,\n micro: false\n};\nconst flag = {\n path: () => _tmpl$187(),\n outline: true,\n mini: false,\n micro: false\n};\nconst folderArrowDown = {\n path: () => _tmpl$188(),\n outline: true,\n mini: false,\n micro: false\n};\nconst folderMinus = {\n path: () => _tmpl$189(),\n outline: true,\n mini: false,\n micro: false\n};\nconst folderOpen = {\n path: () => _tmpl$190(),\n outline: true,\n mini: false,\n micro: false\n};\nconst folderPlus = {\n path: () => _tmpl$191(),\n outline: true,\n mini: false,\n micro: false\n};\nconst folder = {\n path: () => _tmpl$192(),\n outline: true,\n mini: false,\n micro: false\n};\nconst forward = {\n path: () => _tmpl$193(),\n outline: true,\n mini: false,\n micro: false\n};\nconst funnel = {\n path: () => _tmpl$194(),\n outline: true,\n mini: false,\n micro: false\n};\nconst gif = {\n path: () => _tmpl$195(),\n outline: true,\n mini: false,\n micro: false\n};\nconst giftTop = {\n path: () => _tmpl$196(),\n outline: true,\n mini: false,\n micro: false\n};\nconst gift = {\n path: () => _tmpl$197(),\n outline: true,\n mini: false,\n micro: false\n};\nconst globeAlt = {\n path: () => _tmpl$198(),\n outline: true,\n mini: false,\n micro: false\n};\nconst globeAmericas = {\n path: () => _tmpl$199(),\n outline: true,\n mini: false,\n micro: false\n};\nconst globeAsiaAustralia = {\n path: () => _tmpl$200(),\n outline: true,\n mini: false,\n micro: false\n};\nconst globeEuropeAfrica = {\n path: () => _tmpl$201(),\n outline: true,\n mini: false,\n micro: false\n};\nconst h1 = {\n path: () => _tmpl$202(),\n outline: true,\n mini: false,\n micro: false\n};\nconst h2 = {\n path: () => _tmpl$203(),\n outline: true,\n mini: false,\n micro: false\n};\nconst h3 = {\n path: () => _tmpl$204(),\n outline: true,\n mini: false,\n micro: false\n};\nconst handRaised = {\n path: () => _tmpl$205(),\n outline: true,\n mini: false,\n micro: false\n};\nconst handThumbDown = {\n path: () => _tmpl$206(),\n outline: true,\n mini: false,\n micro: false\n};\nconst handThumbUp = {\n path: () => _tmpl$207(),\n outline: true,\n mini: false,\n micro: false\n};\nconst hashtag = {\n path: () => _tmpl$208(),\n outline: true,\n mini: false,\n micro: false\n};\nconst heart = {\n path: () => _tmpl$209(),\n outline: true,\n mini: false,\n micro: false\n};\nconst homeModern = {\n path: () => _tmpl$210(),\n outline: true,\n mini: false,\n micro: false\n};\nconst home = {\n path: () => _tmpl$211(),\n outline: true,\n mini: false,\n micro: false\n};\nconst identification = {\n path: () => _tmpl$212(),\n outline: true,\n mini: false,\n micro: false\n};\nconst inboxArrowDown = {\n path: () => _tmpl$213(),\n outline: true,\n mini: false,\n micro: false\n};\nconst inboxStack = {\n path: () => _tmpl$214(),\n outline: true,\n mini: false,\n micro: false\n};\nconst inbox = {\n path: () => _tmpl$215(),\n outline: true,\n mini: false,\n micro: false\n};\nconst informationCircle = {\n path: () => _tmpl$216(),\n outline: true,\n mini: false,\n micro: false\n};\nconst italic = {\n path: () => _tmpl$217(),\n outline: true,\n mini: false,\n micro: false\n};\nconst key = {\n path: () => _tmpl$218(),\n outline: true,\n mini: false,\n micro: false\n};\nconst language = {\n path: () => _tmpl$219(),\n outline: true,\n mini: false,\n micro: false\n};\nconst lifebuoy = {\n path: () => _tmpl$220(),\n outline: true,\n mini: false,\n micro: false\n};\nconst lightBulb = {\n path: () => _tmpl$221(),\n outline: true,\n mini: false,\n micro: false\n};\nconst linkSlash = {\n path: () => _tmpl$222(),\n outline: true,\n mini: false,\n micro: false\n};\nconst link = {\n path: () => _tmpl$223(),\n outline: true,\n mini: false,\n micro: false\n};\nconst listBullet = {\n path: () => _tmpl$224(),\n outline: true,\n mini: false,\n micro: false\n};\nconst lockClosed = {\n path: () => _tmpl$225(),\n outline: true,\n mini: false,\n micro: false\n};\nconst lockOpen = {\n path: () => _tmpl$226(),\n outline: true,\n mini: false,\n micro: false\n};\nconst magnifyingGlassCircle = {\n path: () => _tmpl$227(),\n outline: true,\n mini: false,\n micro: false\n};\nconst magnifyingGlassMinus = {\n path: () => _tmpl$228(),\n outline: true,\n mini: false,\n micro: false\n};\nconst magnifyingGlassPlus = {\n path: () => _tmpl$229(),\n outline: true,\n mini: false,\n micro: false\n};\nconst magnifyingGlass = {\n path: () => _tmpl$230(),\n outline: true,\n mini: false,\n micro: false\n};\nconst mapPin = {\n path: () => [_tmpl$231(), _tmpl$232()],\n outline: true,\n mini: false,\n micro: false\n};\nconst map = {\n path: () => _tmpl$233(),\n outline: true,\n mini: false,\n micro: false\n};\nconst megaphone = {\n path: () => _tmpl$234(),\n outline: true,\n mini: false,\n micro: false\n};\nconst microphone = {\n path: () => _tmpl$235(),\n outline: true,\n mini: false,\n micro: false\n};\nconst minusCircle = {\n path: () => _tmpl$236(),\n outline: true,\n mini: false,\n micro: false\n};\nconst minusSmall = {\n path: () => _tmpl$237(),\n outline: true,\n mini: false,\n micro: false\n};\nconst minus = {\n path: () => _tmpl$238(),\n outline: true,\n mini: false,\n micro: false\n};\nconst moon = {\n path: () => _tmpl$239(),\n outline: true,\n mini: false,\n micro: false\n};\nconst musicalNote = {\n path: () => _tmpl$240(),\n outline: true,\n mini: false,\n micro: false\n};\nconst newspaper = {\n path: () => _tmpl$241(),\n outline: true,\n mini: false,\n micro: false\n};\nconst noSymbol = {\n path: () => _tmpl$242(),\n outline: true,\n mini: false,\n micro: false\n};\nconst numberedList = {\n path: () => _tmpl$243(),\n outline: true,\n mini: false,\n micro: false\n};\nconst paintBrush = {\n path: () => _tmpl$244(),\n outline: true,\n mini: false,\n micro: false\n};\nconst paperAirplane = {\n path: () => _tmpl$245(),\n outline: true,\n mini: false,\n micro: false\n};\nconst paperClip = {\n path: () => _tmpl$246(),\n outline: true,\n mini: false,\n micro: false\n};\nconst pauseCircle = {\n path: () => _tmpl$247(),\n outline: true,\n mini: false,\n micro: false\n};\nconst pause = {\n path: () => _tmpl$248(),\n outline: true,\n mini: false,\n micro: false\n};\nconst pencilSquare = {\n path: () => _tmpl$249(),\n outline: true,\n mini: false,\n micro: false\n};\nconst pencil = {\n path: () => _tmpl$250(),\n outline: true,\n mini: false,\n micro: false\n};\nconst percentBadge = {\n path: () => _tmpl$251(),\n outline: true,\n mini: false,\n micro: false\n};\nconst phoneArrowDownLeft = {\n path: () => _tmpl$252(),\n outline: true,\n mini: false,\n micro: false\n};\nconst phoneArrowUpRight = {\n path: () => _tmpl$253(),\n outline: true,\n mini: false,\n micro: false\n};\nconst phoneXMark = {\n path: () => _tmpl$254(),\n outline: true,\n mini: false,\n micro: false\n};\nconst phone = {\n path: () => _tmpl$255(),\n outline: true,\n mini: false,\n micro: false\n};\nconst photo = {\n path: () => _tmpl$256(),\n outline: true,\n mini: false,\n micro: false\n};\nconst playCircle = {\n path: () => [_tmpl$257(), _tmpl$258()],\n outline: true,\n mini: false,\n micro: false\n};\nconst playPause = {\n path: () => _tmpl$259(),\n outline: true,\n mini: false,\n micro: false\n};\nconst play = {\n path: () => _tmpl$260(),\n outline: true,\n mini: false,\n micro: false\n};\nconst plusCircle = {\n path: () => _tmpl$261(),\n outline: true,\n mini: false,\n micro: false\n};\nconst plusSmall = {\n path: () => _tmpl$262(),\n outline: true,\n mini: false,\n micro: false\n};\nconst plus = {\n path: () => _tmpl$263(),\n outline: true,\n mini: false,\n micro: false\n};\nconst power = {\n path: () => _tmpl$264(),\n outline: true,\n mini: false,\n micro: false\n};\nconst presentationChartBar = {\n path: () => _tmpl$265(),\n outline: true,\n mini: false,\n micro: false\n};\nconst presentationChartLine = {\n path: () => _tmpl$266(),\n outline: true,\n mini: false,\n micro: false\n};\nconst printer = {\n path: () => _tmpl$267(),\n outline: true,\n mini: false,\n micro: false\n};\nconst puzzlePiece = {\n path: () => _tmpl$268(),\n outline: true,\n mini: false,\n micro: false\n};\nconst qrCode = {\n path: () => [_tmpl$269(), _tmpl$270()],\n outline: true,\n mini: false,\n micro: false\n};\nconst questionMarkCircle = {\n path: () => _tmpl$271(),\n outline: true,\n mini: false,\n micro: false\n};\nconst queueList = {\n path: () => _tmpl$272(),\n outline: true,\n mini: false,\n micro: false\n};\nconst radio = {\n path: () => _tmpl$273(),\n outline: true,\n mini: false,\n micro: false\n};\nconst receiptPercent = {\n path: () => _tmpl$274(),\n outline: true,\n mini: false,\n micro: false\n};\nconst receiptRefund = {\n path: () => _tmpl$275(),\n outline: true,\n mini: false,\n micro: false\n};\nconst rectangleGroup = {\n path: () => _tmpl$276(),\n outline: true,\n mini: false,\n micro: false\n};\nconst rectangleStack = {\n path: () => _tmpl$277(),\n outline: true,\n mini: false,\n micro: false\n};\nconst rocketLaunch = {\n path: () => _tmpl$278(),\n outline: true,\n mini: false,\n micro: false\n};\nconst rss = {\n path: () => _tmpl$279(),\n outline: true,\n mini: false,\n micro: false\n};\nconst scale = {\n path: () => _tmpl$280(),\n outline: true,\n mini: false,\n micro: false\n};\nconst scissors = {\n path: () => _tmpl$281(),\n outline: true,\n mini: false,\n micro: false\n};\nconst serverStack = {\n path: () => _tmpl$282(),\n outline: true,\n mini: false,\n micro: false\n};\nconst server = {\n path: () => _tmpl$283(),\n outline: true,\n mini: false,\n micro: false\n};\nconst share = {\n path: () => _tmpl$284(),\n outline: true,\n mini: false,\n micro: false\n};\nconst shieldCheck = {\n path: () => _tmpl$285(),\n outline: true,\n mini: false,\n micro: false\n};\nconst shieldExclamation = {\n path: () => _tmpl$286(),\n outline: true,\n mini: false,\n micro: false\n};\nconst shoppingBag = {\n path: () => _tmpl$287(),\n outline: true,\n mini: false,\n micro: false\n};\nconst shoppingCart = {\n path: () => _tmpl$288(),\n outline: true,\n mini: false,\n micro: false\n};\nconst signalSlash = {\n path: () => _tmpl$289(),\n outline: true,\n mini: false,\n micro: false\n};\nconst signal = {\n path: () => _tmpl$290(),\n outline: true,\n mini: false,\n micro: false\n};\nconst slash = {\n path: () => _tmpl$291(),\n outline: true,\n mini: false,\n micro: false\n};\nconst sparkles = {\n path: () => _tmpl$292(),\n outline: true,\n mini: false,\n micro: false\n};\nconst speakerWave = {\n path: () => _tmpl$293(),\n outline: true,\n mini: false,\n micro: false\n};\nconst speakerXMark = {\n path: () => _tmpl$294(),\n outline: true,\n mini: false,\n micro: false\n};\nconst square_2Stack = {\n path: () => _tmpl$295(),\n outline: true,\n mini: false,\n micro: false\n};\nconst square_3Stack_3d = {\n path: () => _tmpl$296(),\n outline: true,\n mini: false,\n micro: false\n};\nconst squares_2x2 = {\n path: () => _tmpl$297(),\n outline: true,\n mini: false,\n micro: false\n};\nconst squaresPlus = {\n path: () => _tmpl$298(),\n outline: true,\n mini: false,\n micro: false\n};\nconst star = {\n path: () => _tmpl$299(),\n outline: true,\n mini: false,\n micro: false\n};\nconst stopCircle = {\n path: () => [_tmpl$257(), _tmpl$300()],\n outline: true,\n mini: false,\n micro: false\n};\nconst stop = {\n path: () => _tmpl$301(),\n outline: true,\n mini: false,\n micro: false\n};\nconst strikethrough = {\n path: () => _tmpl$302(),\n outline: true,\n mini: false,\n micro: false\n};\nconst sun = {\n path: () => _tmpl$303(),\n outline: true,\n mini: false,\n micro: false\n};\nconst swatch = {\n path: () => _tmpl$304(),\n outline: true,\n mini: false,\n micro: false\n};\nconst tableCells = {\n path: () => _tmpl$305(),\n outline: true,\n mini: false,\n micro: false\n};\nconst tag = {\n path: () => [_tmpl$306(), _tmpl$307()],\n outline: true,\n mini: false,\n micro: false\n};\nconst ticket = {\n path: () => _tmpl$308(),\n outline: true,\n mini: false,\n micro: false\n};\nconst trash = {\n path: () => _tmpl$309(),\n outline: true,\n mini: false,\n micro: false\n};\nconst trophy = {\n path: () => _tmpl$310(),\n outline: true,\n mini: false,\n micro: false\n};\nconst truck = {\n path: () => _tmpl$311(),\n outline: true,\n mini: false,\n micro: false\n};\nconst tv = {\n path: () => _tmpl$312(),\n outline: true,\n mini: false,\n micro: false\n};\nconst underline = {\n path: () => _tmpl$313(),\n outline: true,\n mini: false,\n micro: false\n};\nconst userCircle = {\n path: () => _tmpl$314(),\n outline: true,\n mini: false,\n micro: false\n};\nconst userGroup = {\n path: () => _tmpl$315(),\n outline: true,\n mini: false,\n micro: false\n};\nconst userMinus = {\n path: () => _tmpl$316(),\n outline: true,\n mini: false,\n micro: false\n};\nconst userPlus = {\n path: () => _tmpl$317(),\n outline: true,\n mini: false,\n micro: false\n};\nconst user = {\n path: () => _tmpl$318(),\n outline: true,\n mini: false,\n micro: false\n};\nconst users = {\n path: () => _tmpl$319(),\n outline: true,\n mini: false,\n micro: false\n};\nconst variable = {\n path: () => _tmpl$320(),\n outline: true,\n mini: false,\n micro: false\n};\nconst videoCameraSlash = {\n path: () => _tmpl$321(),\n outline: true,\n mini: false,\n micro: false\n};\nconst videoCamera = {\n path: () => _tmpl$322(),\n outline: true,\n mini: false,\n micro: false\n};\nconst viewColumns = {\n path: () => _tmpl$323(),\n outline: true,\n mini: false,\n micro: false\n};\nconst viewfinderCircle = {\n path: () => _tmpl$324(),\n outline: true,\n mini: false,\n micro: false\n};\nconst wallet = {\n path: () => _tmpl$325(),\n outline: true,\n mini: false,\n micro: false\n};\nconst wifi = {\n path: () => _tmpl$326(),\n outline: true,\n mini: false,\n micro: false\n};\nconst window = {\n path: () => _tmpl$327(),\n outline: true,\n mini: false,\n micro: false\n};\nconst wrenchScrewdriver = {\n path: () => _tmpl$328(),\n outline: true,\n mini: false,\n micro: false\n};\nconst wrench = {\n path: () => [_tmpl$329(), _tmpl$330()],\n outline: true,\n mini: false,\n micro: false\n};\nconst xCircle = {\n path: () => _tmpl$331(),\n outline: true,\n mini: false,\n micro: false\n};\nconst xMark = {\n path: () => _tmpl$332(),\n outline: true,\n mini: false,\n micro: false\n};\n\nexport { academicCap, adjustmentsHorizontal, adjustmentsVertical, archiveBox, archiveBoxArrowDown, archiveBoxXMark, arrowDown, arrowDownCircle, arrowDownLeft, arrowDownOnSquare, arrowDownOnSquareStack, arrowDownRight, arrowDownTray, arrowLeft, arrowLeftCircle, arrowLeftEndOnRectangle, arrowLeftOnRectangle, arrowLeftStartOnRectangle, arrowLongDown, arrowLongLeft, arrowLongRight, arrowLongUp, arrowPath, arrowPathRoundedSquare, arrowRight, arrowRightCircle, arrowRightEndOnRectangle, arrowRightOnRectangle, arrowRightStartOnRectangle, arrowSmallDown, arrowSmallLeft, arrowSmallRight, arrowSmallUp, arrowTopRightOnSquare, arrowTrendingDown, arrowTrendingUp, arrowTurnDownLeft, arrowTurnDownRight, arrowTurnLeftDown, arrowTurnLeftUp, arrowTurnRightDown, arrowTurnRightUp, arrowTurnUpLeft, arrowTurnUpRight, arrowUp, arrowUpCircle, arrowUpLeft, arrowUpOnSquare, arrowUpOnSquareStack, arrowUpRight, arrowUpTray, arrowUturnDown, arrowUturnLeft, arrowUturnRight, arrowUturnUp, arrowsPointingIn, arrowsPointingOut, arrowsRightLeft, arrowsUpDown, atSymbol, backspace, backward, banknotes, barsArrowDown, barsArrowUp, bars_2, bars_3, bars_3BottomLeft, bars_3BottomRight, bars_3CenterLeft, bars_4, battery_0, battery_100, battery_50, beaker, bell, bellAlert, bellSlash, bellSnooze, bold, bolt, boltSlash, bookOpen, bookmark, bookmarkSlash, bookmarkSquare, briefcase, bugAnt, buildingLibrary, buildingOffice, buildingOffice_2, buildingStorefront, cake, calculator, calendar, calendarDateRange, calendarDays, camera, chartBar, chartBarSquare, chartPie, chatBubbleBottomCenter, chatBubbleBottomCenterText, chatBubbleLeft, chatBubbleLeftEllipsis, chatBubbleLeftRight, chatBubbleOvalLeft, chatBubbleOvalLeftEllipsis, check, checkBadge, checkCircle, chevronDoubleDown, chevronDoubleLeft, chevronDoubleRight, chevronDoubleUp, chevronDown, chevronLeft, chevronRight, chevronUp, chevronUpDown, circleStack, clipboard, clipboardDocument, clipboardDocumentCheck, clipboardDocumentList, clock, cloud, cloudArrowDown, cloudArrowUp, codeBracket, codeBracketSquare, cog, cog_6Tooth, cog_8Tooth, commandLine, computerDesktop, cpuChip, creditCard, cube, cubeTransparent, currencyBangladeshi, currencyDollar, currencyEuro, currencyPound, currencyRupee, currencyYen, cursorArrowRays, cursorArrowRipple, devicePhoneMobile, deviceTablet, divide, document, documentArrowDown, documentArrowUp, documentChartBar, documentCheck, documentCurrencyBangladeshi, documentCurrencyDollar, documentCurrencyEuro, documentCurrencyPound, documentCurrencyRupee, documentCurrencyYen, documentDuplicate, documentMagnifyingGlass, documentMinus, documentPlus, documentText, ellipsisHorizontal, ellipsisHorizontalCircle, ellipsisVertical, envelope, envelopeOpen, equals, exclamationCircle, exclamationTriangle, eye, eyeDropper, eyeSlash, faceFrown, faceSmile, film, fingerPrint, fire, flag, folder, folderArrowDown, folderMinus, folderOpen, folderPlus, forward, funnel, gif, gift, giftTop, globeAlt, globeAmericas, globeAsiaAustralia, globeEuropeAfrica, h1, h2, h3, handRaised, handThumbDown, handThumbUp, hashtag, heart, home, homeModern, identification, inbox, inboxArrowDown, inboxStack, informationCircle, italic, key, language, lifebuoy, lightBulb, link, linkSlash, listBullet, lockClosed, lockOpen, magnifyingGlass, magnifyingGlassCircle, magnifyingGlassMinus, magnifyingGlassPlus, map, mapPin, megaphone, microphone, minus, minusCircle, minusSmall, moon, musicalNote, newspaper, noSymbol, numberedList, paintBrush, paperAirplane, paperClip, pause, pauseCircle, pencil, pencilSquare, percentBadge, phone, phoneArrowDownLeft, phoneArrowUpRight, phoneXMark, photo, play, playCircle, playPause, plus, plusCircle, plusSmall, power, presentationChartBar, presentationChartLine, printer, puzzlePiece, qrCode, questionMarkCircle, queueList, radio, receiptPercent, receiptRefund, rectangleGroup, rectangleStack, rocketLaunch, rss, scale, scissors, server, serverStack, share, shieldCheck, shieldExclamation, shoppingBag, shoppingCart, signal, signalSlash, slash, sparkles, speakerWave, speakerXMark, square_2Stack, square_3Stack_3d, squaresPlus, squares_2x2, star, stop, stopCircle, strikethrough, sun, swatch, tableCells, tag, ticket, trash, trophy, truck, tv, underline, user, userCircle, userGroup, userMinus, userPlus, users, variable, videoCamera, videoCameraSlash, viewColumns, viewfinderCircle, wallet, wifi, window, wrench, wrenchScrewdriver, xCircle, xMark };\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 { isObject, accessWith } from '@solid-primitives/utils';\nimport { untrack, batch, sharedConfig, onMount, getOwner, createMemo, getListener, runWithOwner, createSignal } from 'solid-js';\nimport { isServer } from 'solid-js/web';\n\n// src/index.ts\nfunction createStaticStore(init) {\n const copy = { ...init }, store = { ...init }, cache = {};\n const getValue = (key) => {\n let signal = cache[key];\n if (!signal) {\n if (!getListener())\n return copy[key];\n cache[key] = signal = createSignal(copy[key], { internal: true });\n delete copy[key];\n }\n return signal[0]();\n };\n for (const key in init) {\n Object.defineProperty(store, key, { get: () => getValue(key), enumerable: true });\n }\n const setValue = (key, value) => {\n const signal = cache[key];\n if (signal)\n return signal[1](value);\n if (key in copy)\n copy[key] = accessWith(value, [copy[key]]);\n };\n return [\n store,\n (a, b) => {\n if (isObject(a)) {\n const entries = untrack(\n () => Object.entries(accessWith(a, store))\n );\n batch(() => {\n for (const [key, value] of entries)\n setValue(key, () => value);\n });\n } else\n setValue(a, b);\n return store;\n }\n ];\n}\nfunction createHydratableStaticStore(serverValue, update) {\n if (isServer)\n return createStaticStore(serverValue);\n if (sharedConfig.context) {\n const [state, setState] = createStaticStore(serverValue);\n onMount(() => setState(update()));\n return [state, setState];\n }\n return createStaticStore(update());\n}\nfunction createDerivedStaticStore(fn, value, options) {\n const o = getOwner(), fnMemo = createMemo(fn, value, options), store = { ...untrack(fnMemo) }, cache = {};\n for (const key in store)\n Object.defineProperty(store, key, {\n get() {\n let keyMemo = cache[key];\n if (!keyMemo) {\n if (!getListener())\n return fnMemo()[key];\n runWithOwner(o, () => cache[key] = keyMemo = createMemo(() => fnMemo()[key]));\n }\n return keyMemo();\n },\n enumerable: true\n });\n return store;\n}\n\nexport { createDerivedStaticStore, createHydratableStaticStore, createStaticStore };\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 { 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 { 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", "// 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 { noop, filterNonNullable, asArray, access, handleDiffArray } from '@solid-primitives/utils';\nimport { onCleanup, createEffect, sharedConfig } from 'solid-js';\nimport { isServer } from 'solid-js/web';\n\n// src/index.ts\nfunction 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}\nfunction createResizeObserver(targets, onResize, options) {\n if (isServer)\n return;\n const previousMap = /* @__PURE__ */ 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}\nvar WINDOW_SIZE_FALLBACK = { width: 0, height: 0 };\nfunction getWindowSize() {\n if (isServer)\n return { ...WINDOW_SIZE_FALLBACK };\n return {\n width: window.innerWidth,\n height: window.innerHeight\n };\n}\nfunction 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}\nvar useWindowSize = /* @__PURE__ */ createHydratableSingletonRoot(createWindowSize);\nvar ELEMENT_SIZE_FALLBACK = { width: null, height: null };\nfunction getElementSize(target) {\n if (isServer || !target) {\n return { ...ELEMENT_SIZE_FALLBACK };\n }\n const { width, height } = target.getBoundingClientRect();\n return { width, height };\n}\nfunction createElementSize(target) {\n if (isServer) {\n return ELEMENT_SIZE_FALLBACK;\n }\n const isFn = typeof target === \"function\";\n const [size, setSize] = createStaticStore(\n sharedConfig.context || isFn ? ELEMENT_SIZE_FALLBACK : getElementSize(target)\n );\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 } else {\n ro.observe(target);\n onCleanup(() => ro.unobserve(target));\n }\n return size;\n}\n\nexport { createElementSize, createResizeObserver, createWindowSize, getElementSize, getWindowSize, makeResizeObserver, useWindowSize };\n", "import { TabsKeyboardDelegate } from './43XIKO67.js';\nimport { createDomCollection, createDomCollectionItem } from './7CVNMTYF.js';\nimport { createSelectableCollection, createSelectableItem, createListState } from './H6DSIDEC.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, createSignal, splitProps, createEffect, on, onCleanup, Show, onMount, createUniqueId, useContext, 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});\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 };\n", "import { FORM_CONTROL_FIELD_PROP_NAMES, createFormControlField } from './HLYNC3TZ.js';\nimport { FormControlDescription, FormControlErrorMessage, FormControlLabel, useFormControlContext, FORM_CONTROL_PROP_NAMES, createFormControl, FormControlContext } from './Q2DJLZQE.js';\nimport { createFormResetListener } from './ANN3A2QM.js';\nimport { createControllableSignal } from './BLN63FDC.js';\nimport { Polymorphic } from './6Y7B2NEO.js';\nimport { __export } from './5ZKAE4VZ.js';\nimport { createComponent, mergeProps } from 'solid-js/web';\nimport { mergeDefaultProps, composeEventHandlers, createGenerateId, access, mergeRefs } from '@kobalte/utils';\nimport { createContext, splitProps, createUniqueId, createEffect, on, useContext } from 'solid-js';\n\n// src/text-field/index.tsx\nvar text_field_exports = {};\n__export(text_field_exports, {\n Description: () => FormControlDescription,\n ErrorMessage: () => FormControlErrorMessage,\n Input: () => TextFieldInput,\n Label: () => FormControlLabel,\n Root: () => TextFieldRoot,\n TextArea: () => TextFieldTextArea,\n TextField: () => TextField\n});\nvar TextFieldContext = createContext();\nfunction useTextFieldContext() {\n const context = useContext(TextFieldContext);\n if (context === void 0) {\n throw new Error(\"[kobalte]: `useTextFieldContext` must be used within a `TextField` component\");\n }\n return context;\n}\n\n// src/text-field/text-field-input.tsx\nfunction TextFieldInput(props) {\n return createComponent(TextFieldInputBase, mergeProps({\n type: \"text\"\n }, props));\n}\nfunction TextFieldInputBase(props) {\n const formControlContext = useFormControlContext();\n const context = useTextFieldContext();\n const mergedProps = mergeDefaultProps({\n id: context.generateId(\"input\")\n }, props);\n const [local, formControlFieldProps, others] = splitProps(mergedProps, [\"onInput\"], FORM_CONTROL_FIELD_PROP_NAMES);\n const {\n fieldProps\n } = createFormControlField(formControlFieldProps);\n return createComponent(Polymorphic, mergeProps({\n as: \"input\",\n get id() {\n return fieldProps.id();\n },\n get name() {\n return formControlContext.name();\n },\n get value() {\n return context.value();\n },\n get required() {\n return formControlContext.isRequired();\n },\n get disabled() {\n return formControlContext.isDisabled();\n },\n get readonly() {\n return formControlContext.isReadOnly();\n },\n get [\"aria-label\"]() {\n return fieldProps.ariaLabel();\n },\n get [\"aria-labelledby\"]() {\n return fieldProps.ariaLabelledBy();\n },\n get [\"aria-describedby\"]() {\n return fieldProps.ariaDescribedBy();\n },\n get [\"aria-invalid\"]() {\n return formControlContext.validationState() === \"invalid\" || void 0;\n },\n get [\"aria-required\"]() {\n return formControlContext.isRequired() || void 0;\n },\n get [\"aria-disabled\"]() {\n return formControlContext.isDisabled() || void 0;\n },\n get [\"aria-readonly\"]() {\n return formControlContext.isReadOnly() || void 0;\n },\n get onInput() {\n return composeEventHandlers([local.onInput, context.onInput]);\n }\n }, () => formControlContext.dataset(), others));\n}\nfunction TextFieldRoot(props) {\n let ref;\n const defaultId = `textfield-${createUniqueId()}`;\n const mergedProps = mergeDefaultProps({\n id: defaultId\n }, props);\n const [local, formControlProps, others] = splitProps(mergedProps, [\"ref\", \"value\", \"defaultValue\", \"onChange\"], FORM_CONTROL_PROP_NAMES);\n const initialValue = local.value;\n const [value, setValue] = createControllableSignal({\n value: () => initialValue === void 0 ? void 0 : local.value ?? \"\",\n defaultValue: () => local.defaultValue,\n onChange: (value2) => local.onChange?.(value2)\n });\n const {\n formControlContext\n } = createFormControl(formControlProps);\n createFormResetListener(() => ref, () => setValue(local.defaultValue ?? \"\"));\n const onInput = (e) => {\n if (formControlContext.isReadOnly() || formControlContext.isDisabled()) {\n return;\n }\n const target = e.target;\n setValue(target.value);\n target.value = value() ?? \"\";\n };\n const context = {\n value,\n generateId: createGenerateId(() => access(formControlProps.id)),\n onInput\n };\n return createComponent(FormControlContext.Provider, {\n value: formControlContext,\n get children() {\n return createComponent(TextFieldContext.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 role: \"group\",\n get id() {\n return access(formControlProps.id);\n }\n }, () => formControlContext.dataset(), others));\n }\n });\n }\n });\n}\nfunction TextFieldTextArea(props) {\n let ref;\n const context = useTextFieldContext();\n const mergedProps = mergeDefaultProps({\n id: context.generateId(\"textarea\")\n }, props);\n const [local, others] = splitProps(mergedProps, [\"ref\", \"autoResize\", \"submitOnEnter\", \"onKeyPress\"]);\n createEffect(on([() => ref, () => local.autoResize, () => context.value()], ([ref2, autoResize]) => {\n if (!ref2 || !autoResize) {\n return;\n }\n adjustHeight(ref2);\n }));\n const onKeyPress = (event) => {\n if (ref && local.submitOnEnter && event.key === \"Enter\" && !event.shiftKey) {\n if (ref.form) {\n ref.form.requestSubmit();\n event.preventDefault();\n }\n }\n };\n return createComponent(TextFieldInputBase, mergeProps({\n as: \"textarea\",\n get [\"aria-multiline\"]() {\n return local.submitOnEnter ? \"false\" : void 0;\n },\n get onKeyPress() {\n return composeEventHandlers([local.onKeyPress, onKeyPress]);\n },\n ref(r$) {\n const _ref$ = mergeRefs((el) => ref = el, local.ref);\n typeof _ref$ === \"function\" && _ref$(r$);\n }\n }, others));\n}\nfunction adjustHeight(el) {\n const prevAlignment = el.style.alignSelf;\n const prevOverflow = el.style.overflow;\n const isFirefox = \"MozAppearance\" in el.style;\n if (!isFirefox) {\n el.style.overflow = \"hidden\";\n }\n el.style.alignSelf = \"start\";\n el.style.height = \"auto\";\n el.style.height = `${el.scrollHeight + (el.offsetHeight - el.clientHeight)}px`;\n el.style.overflow = prevOverflow;\n el.style.alignSelf = prevAlignment;\n}\n\n// src/text-field/index.tsx\nvar TextField = Object.assign(TextFieldRoot, {\n Description: FormControlDescription,\n ErrorMessage: FormControlErrorMessage,\n Input: TextFieldInput,\n Label: FormControlLabel,\n TextArea: TextFieldTextArea\n});\n\nexport { TextField, TextFieldInput, TextFieldRoot, TextFieldTextArea, text_field_exports };\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 { $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 (\n obj != null &&\n typeof obj === \"object\" &&\n (obj[$PROXY] ||\n !(proto = Object.getPrototypeOf(obj)) ||\n proto === Object.prototype ||\n Array.isArray(obj))\n );\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);\n 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);\n 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)\n 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)\n 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 (\n getListener() &&\n (typeof value !== \"function\" || target.hasOwnProperty(property)) &&\n !(desc && desc.get)\n )\n value = getNode(nodes, property, value)();\n }\n return isWrappable(value) ? wrap$1(value) : value;\n },\n has(target, property) {\n if (\n property === $RAW ||\n property === $PROXY ||\n property === $TRACK ||\n property === $NODE ||\n property === $HAS ||\n property === \"__proto__\"\n )\n 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 { from = 0, to = current.length - 1, by = 1 } = 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\n ? updateArray(unwrappedStore, args[0])\n : updatePath(unwrappedStore, args);\n });\n }\n return [wrappedStore, setStore];\n}\n\nfunction proxyDescriptor(target, property) {\n const desc = Reflect.getOwnPropertyDescriptor(target, property);\n if (\n !desc ||\n desc.get ||\n desc.set ||\n !desc.configurable ||\n property === $PROXY ||\n property === $NODE\n )\n 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))\n value = getNode(nodes, property, value)();\n 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 (\n property === $RAW ||\n property === $PROXY ||\n property === $TRACK ||\n property === $NODE ||\n property === $HAS ||\n property === \"__proto__\"\n )\n 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 =\n proto !== null &&\n value !== null &&\n typeof value === \"object\" &&\n !Array.isArray(value) &&\n proto !== Object.prototype;\n if (isClass) {\n const descriptors = Object.getOwnPropertyDescriptors(proto);\n keys.push(...Object.keys(descriptors));\n Object.assign(desc, descriptors);\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 (\n property !== $ROOT &&\n (!isWrappable(target) ||\n !isWrappable(previous) ||\n isArray !== Array.isArray(previous) ||\n (key && target[key] !== previous[key]))\n ) {\n setProperty(parent, property, target);\n return;\n }\n if (isArray) {\n if (\n target.length &&\n previous.length &&\n (!merge || (key && target[0] && target[0][key] != null))\n ) {\n let i, j, start, end, newEnd, item, newIndicesNext, keyVal;\n for (\n start = 0, end = Math.min(previous.length, target.length);\n start < end &&\n (previous[start] === target[start] ||\n (key && previous[start] && target[start] && previous[start][key] === target[start][key]));\n start++\n ) {\n applyState(target[start], previous, start, merge, key);\n }\n const temp = new Array(target.length),\n newIndices = new Map();\n for (\n end = previous.length - 1, newEnd = target.length - 1;\n end >= start &&\n newEnd >= start &&\n (previous[end] === target[newEnd] ||\n (key && previous[start] && target[start] && previous[end][key] === target[newEnd][key]));\n end--, newEnd--\n ) {\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 { merge, key = \"id\" } = options,\n v = unwrap(value);\n return state => {\n if (!isWrappable(state) || !isWrappable(v)) return v;\n const res = applyState(\n v,\n {\n [$ROOT]: state\n },\n $ROOT,\n merge,\n key\n );\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)\n ? producers.get(value) ||\n (producers.set(value, (proxy = new Proxy(value, setterTraps))), proxy)\n : 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 { DATA_TOP_LAYER_ATTR } from './ZKYDDHM6.js';\nimport { ButtonRoot } from './7OVKXYPU.js';\nimport { createRegisterId } from './E4R2EMM4.js';\nimport { Polymorphic } from './6Y7B2NEO.js';\nimport { __export } from './5ZKAE4VZ.js';\nimport { createComponent, mergeProps, isServer } from 'solid-js/web';\nimport { mergeDefaultProps, getDocument, getWindow, mergeRefs, createGenerateId, callHandler, contains, focusWithoutScrolling, isFunction } from '@kobalte/utils';\nimport { createContext, splitProps, createEffect, onCleanup, on, For, createSignal, createUniqueId, createMemo, onMount, Show, useContext } from 'solid-js';\nimport { combineStyle } from '@solid-primitives/props';\nimport { createStore } from 'solid-js/store';\nimport createPresence from 'solid-presence';\n\n// src/toast/index.tsx\nvar toast_exports = {};\n__export(toast_exports, {\n CloseButton: () => ToastCloseButton,\n Description: () => ToastDescription,\n List: () => ToastList,\n ProgressFill: () => ToastProgressFill,\n ProgressTrack: () => ToastProgressTrack,\n Region: () => ToastRegion,\n Root: () => ToastRoot,\n Title: () => ToastTitle,\n Toast: () => Toast,\n toaster: () => toaster\n});\nvar ToastContext = createContext();\nfunction useToastContext() {\n const context = useContext(ToastContext);\n if (context === void 0) {\n throw new Error(\"[kobalte]: `useToastContext` must be used within a `Toast.Root` component\");\n }\n return context;\n}\n\n// src/toast/toast-close-button.tsx\nfunction ToastCloseButton(props) {\n const context = useToastContext();\n const [local, others] = splitProps(props, [\"aria-label\", \"onClick\"]);\n const onClick = (e) => {\n callHandler(e, local.onClick);\n context.close();\n };\n return createComponent(ButtonRoot, mergeProps({\n get [\"aria-label\"]() {\n return local[\"aria-label\"] || context.translations().close;\n },\n onClick\n }, others));\n}\nfunction ToastDescription(props) {\n const context = useToastContext();\n const mergedProps = mergeDefaultProps({\n id: context.generateId(\"description\")\n }, props);\n const [local, others] = splitProps(mergedProps, [\"id\"]);\n createEffect(() => onCleanup(context.registerDescriptionId(local.id)));\n return createComponent(Polymorphic, mergeProps({\n as: \"div\",\n get id() {\n return local.id;\n }\n }, others));\n}\nvar ToastRegionContext = createContext();\nfunction useToastRegionContext() {\n const context = useContext(ToastRegionContext);\n if (context === void 0) {\n throw new Error(\"[kobalte]: `useToastRegionContext` must be used within a `Toast.Region` component\");\n }\n return context;\n}\n\n// src/toast/toast-list.tsx\nfunction ToastList(props) {\n let ref;\n const context = useToastRegionContext();\n const [local, others] = splitProps(props, [\"ref\", \"onFocusIn\", \"onFocusOut\", \"onPointerMove\", \"onPointerLeave\"]);\n const onFocusIn = (e) => {\n callHandler(e, local.onFocusIn);\n if (context.pauseOnInteraction() && !context.isPaused()) {\n context.pauseAllTimer();\n }\n };\n const onFocusOut = (e) => {\n callHandler(e, local.onFocusOut);\n if (!contains(ref, e.relatedTarget)) {\n context.resumeAllTimer();\n }\n };\n const onPointerMove = (e) => {\n callHandler(e, local.onPointerMove);\n if (context.pauseOnInteraction() && !context.isPaused()) {\n context.pauseAllTimer();\n }\n };\n const onPointerLeave = (e) => {\n callHandler(e, local.onPointerLeave);\n if (!contains(ref, getDocument(ref).activeElement)) {\n context.resumeAllTimer();\n }\n };\n createEffect(on([() => ref, () => context.hotkey()], ([ref2, hotkey]) => {\n if (isServer) {\n return;\n }\n if (!ref2) {\n return;\n }\n const doc = getDocument(ref2);\n const onKeyDown = (event) => {\n const isHotkeyPressed = hotkey.every((key) => event[key] || event.code === key);\n if (isHotkeyPressed) {\n focusWithoutScrolling(ref2);\n }\n };\n doc.addEventListener(\"keydown\", onKeyDown);\n onCleanup(() => doc.removeEventListener(\"keydown\", onKeyDown));\n }));\n createEffect(() => {\n if (!context.pauseOnPageIdle()) {\n return;\n }\n const win = getWindow(ref);\n win.addEventListener(\"blur\", context.pauseAllTimer);\n win.addEventListener(\"focus\", context.resumeAllTimer);\n onCleanup(() => {\n win.removeEventListener(\"blur\", context.pauseAllTimer);\n win.removeEventListener(\"focus\", context.resumeAllTimer);\n });\n });\n return createComponent(Polymorphic, mergeProps({\n as: \"ol\",\n ref(r$) {\n const _ref$ = mergeRefs((el) => ref = el, local.ref);\n typeof _ref$ === \"function\" && _ref$(r$);\n },\n tabIndex: -1,\n onFocusIn,\n onFocusOut,\n onPointerMove,\n onPointerLeave\n }, others, {\n get children() {\n return createComponent(For, {\n get each() {\n return context.toasts();\n },\n children: (toast) => toast.toastComponent({\n get toastId() {\n return toast.id;\n }\n })\n });\n }\n }));\n}\nfunction ToastProgressFill(props) {\n const rootContext = useToastRegionContext();\n const context = useToastContext();\n const [local, others] = splitProps(props, [\"style\"]);\n const [lifeTime, setLifeTime] = createSignal(100);\n let totalElapsedTime = 0;\n createEffect(() => {\n if (rootContext.isPaused() || context.isPersistent()) {\n return;\n }\n const intervalId = setInterval(() => {\n const elapsedTime = (/* @__PURE__ */ new Date()).getTime() - context.closeTimerStartTime() + totalElapsedTime;\n const life = Math.trunc(100 - elapsedTime / context.duration() * 100);\n setLifeTime(life < 0 ? 0 : life);\n });\n onCleanup(() => {\n totalElapsedTime += (/* @__PURE__ */ new Date()).getTime() - context.closeTimerStartTime();\n clearInterval(intervalId);\n });\n });\n return createComponent(Polymorphic, mergeProps({\n as: \"div\",\n get style() {\n return combineStyle({\n \"--kb-toast-progress-fill-width\": `${lifeTime()}%`\n }, local.style);\n }\n }, others));\n}\nfunction ToastProgressTrack(props) {\n return createComponent(Polymorphic, mergeProps({\n as: \"div\",\n \"aria-hidden\": \"true\",\n role: \"presentation\"\n }, props));\n}\nvar [state, setState] = createStore({\n toasts: []\n});\nfunction add(toast) {\n setState(\"toasts\", (prev) => [...prev, toast]);\n}\nfunction get(id) {\n return state.toasts.find((toast) => toast.id === id);\n}\nfunction update(id, toast) {\n const index = state.toasts.findIndex((toast2) => toast2.id === id);\n if (index !== -1) {\n setState(\"toasts\", (prev) => [\n ...prev.slice(0, index),\n toast,\n ...prev.slice(index + 1)\n ]);\n }\n}\nfunction dismiss(id) {\n setState(\"toasts\", (toast) => toast.id === id, \"dismiss\", true);\n}\nfunction remove(id) {\n setState(\"toasts\", (prev) => prev.filter((toast) => toast.id !== id));\n}\nfunction clear() {\n setState(\"toasts\", []);\n}\nvar toastStore = {\n toasts: () => state.toasts,\n add,\n get,\n update,\n dismiss,\n remove,\n clear\n};\n\n// src/toast/toast.intl.ts\nvar TOAST_HOTKEY_PLACEHOLDER = \"{hotkey}\";\nvar TOAST_INTL_TRANSLATIONS = {\n // `aria-label` of Toast.CloseButton.\n close: \"Close\"\n};\nvar TOAST_REGION_INTL_TRANSLATIONS = {\n // `aria-label` of Toast.Region with notification count.\n notifications: (hotkeyPlaceholder) => `Notifications (${hotkeyPlaceholder})`\n};\n\n// src/toast/toast-region.tsx\nfunction ToastRegion(props) {\n const mergedProps = mergeDefaultProps({\n id: `toast-region-${createUniqueId()}`,\n hotkey: [\"altKey\", \"KeyT\"],\n duration: 5e3,\n limit: 3,\n swipeDirection: \"right\",\n swipeThreshold: 50,\n pauseOnInteraction: true,\n pauseOnPageIdle: true,\n topLayer: true,\n translations: TOAST_REGION_INTL_TRANSLATIONS\n }, props);\n const [local, others] = splitProps(mergedProps, [\"translations\", \"style\", \"hotkey\", \"duration\", \"limit\", \"swipeDirection\", \"swipeThreshold\", \"pauseOnInteraction\", \"pauseOnPageIdle\", \"topLayer\", \"aria-label\", \"regionId\"]);\n const toasts = createMemo(() => toastStore.toasts().filter((toast) => toast.region === local.regionId && toast.dismiss === false).slice(0, local.limit));\n const [isPaused, setIsPaused] = createSignal(false);\n const hasToasts = () => toasts().length > 0;\n const hotkeyLabel = () => {\n return local.hotkey.join(\"+\").replace(/Key/g, \"\").replace(/Digit/g, \"\");\n };\n const ariaLabel = () => {\n const label = local[\"aria-label\"] || local.translations.notifications(TOAST_HOTKEY_PLACEHOLDER);\n return label.replace(TOAST_HOTKEY_PLACEHOLDER, hotkeyLabel());\n };\n const topLayerAttr = () => ({\n [DATA_TOP_LAYER_ATTR]: local.topLayer ? \"\" : void 0\n });\n const context = {\n isPaused,\n toasts,\n hotkey: () => local.hotkey,\n duration: () => local.duration,\n swipeDirection: () => local.swipeDirection,\n swipeThreshold: () => local.swipeThreshold,\n pauseOnInteraction: () => local.pauseOnInteraction,\n pauseOnPageIdle: () => local.pauseOnPageIdle,\n pauseAllTimer: () => setIsPaused(true),\n resumeAllTimer: () => setIsPaused(false),\n generateId: createGenerateId(() => others.id)\n };\n return createComponent(ToastRegionContext.Provider, {\n value: context,\n get children() {\n return createComponent(Polymorphic, mergeProps({\n as: \"div\",\n role: \"region\",\n tabIndex: -1,\n get [\"aria-label\"]() {\n return ariaLabel();\n },\n get style() {\n return combineStyle({\n \"pointer-events\": hasToasts() ? local.topLayer ? \"auto\" : void 0 : \"none\"\n }, local.style);\n }\n }, topLayerAttr, others));\n }\n });\n}\nvar TOAST_SWIPE_START_EVENT = \"toast.swipeStart\";\nvar TOAST_SWIPE_MOVE_EVENT = \"toast.swipeMove\";\nvar TOAST_SWIPE_CANCEL_EVENT = \"toast.swipeCancel\";\nvar TOAST_SWIPE_END_EVENT = \"toast.swipeEnd\";\nfunction ToastRoot(props) {\n const rootContext = useToastRegionContext();\n const mergedProps = mergeDefaultProps({\n id: `toast-${createUniqueId()}`,\n priority: \"high\",\n translations: TOAST_INTL_TRANSLATIONS\n }, props);\n const [local, others] = splitProps(mergedProps, [\"ref\", \"translations\", \"toastId\", \"style\", \"priority\", \"duration\", \"persistent\", \"onPause\", \"onResume\", \"onSwipeStart\", \"onSwipeMove\", \"onSwipeCancel\", \"onSwipeEnd\", \"onEscapeKeyDown\", \"onKeyDown\", \"onPointerDown\", \"onPointerMove\", \"onPointerUp\"]);\n const [isOpen, setIsOpen] = createSignal(true);\n const [titleId, setTitleId] = createSignal();\n const [descriptionId, setDescriptionId] = createSignal();\n const [isAnimationEnabled, setIsAnimationEnabled] = createSignal(true);\n const [ref, setRef] = createSignal();\n const {\n present\n } = createPresence({\n show: isOpen,\n element: () => ref() ?? null\n });\n const duration = createMemo(() => local.duration || rootContext.duration());\n let closeTimerId;\n let closeTimerStartTime = 0;\n let closeTimerRemainingTime = duration();\n let pointerStart = null;\n let swipeDelta = null;\n const close = () => {\n setIsOpen(false);\n setIsAnimationEnabled(true);\n };\n const deleteToast = () => {\n toastStore.remove(local.toastId);\n };\n const startTimer = (duration2) => {\n if (!duration2 || local.persistent) {\n return;\n }\n window.clearTimeout(closeTimerId);\n closeTimerStartTime = (/* @__PURE__ */ new Date()).getTime();\n closeTimerId = window.setTimeout(close, duration2);\n };\n const resumeTimer = () => {\n startTimer(closeTimerRemainingTime);\n local.onResume?.();\n };\n const pauseTimer = () => {\n const elapsedTime = (/* @__PURE__ */ new Date()).getTime() - closeTimerStartTime;\n closeTimerRemainingTime = closeTimerRemainingTime - elapsedTime;\n window.clearTimeout(closeTimerId);\n local.onPause?.();\n };\n const onKeyDown = (e) => {\n callHandler(e, local.onKeyDown);\n if (e.key !== \"Escape\") {\n return;\n }\n local.onEscapeKeyDown?.(e);\n if (!e.defaultPrevented) {\n close();\n }\n };\n const onPointerDown = (e) => {\n callHandler(e, local.onPointerDown);\n if (e.button !== 0) {\n return;\n }\n pointerStart = {\n x: e.clientX,\n y: e.clientY\n };\n };\n const onPointerMove = (e) => {\n callHandler(e, local.onPointerMove);\n if (!pointerStart) {\n return;\n }\n const x = e.clientX - pointerStart.x;\n const y = e.clientY - pointerStart.y;\n const hasSwipeMoveStarted = Boolean(swipeDelta);\n const isHorizontalSwipe = [\"left\", \"right\"].includes(rootContext.swipeDirection());\n const clamp = [\"left\", \"up\"].includes(rootContext.swipeDirection()) ? Math.min : Math.max;\n const clampedX = isHorizontalSwipe ? clamp(0, x) : 0;\n const clampedY = !isHorizontalSwipe ? clamp(0, y) : 0;\n const moveStartBuffer = e.pointerType === \"touch\" ? 10 : 2;\n const delta = {\n x: clampedX,\n y: clampedY\n };\n const eventDetail = {\n originalEvent: e,\n delta\n };\n if (hasSwipeMoveStarted) {\n swipeDelta = delta;\n handleAndDispatchCustomEvent(TOAST_SWIPE_MOVE_EVENT, local.onSwipeMove, eventDetail);\n const {\n x: x2,\n y: y2\n } = delta;\n e.currentTarget.setAttribute(\"data-swipe\", \"move\");\n e.currentTarget.style.setProperty(\"--kb-toast-swipe-move-x\", `${x2}px`);\n e.currentTarget.style.setProperty(\"--kb-toast-swipe-move-y\", `${y2}px`);\n } else if (isDeltaInDirection(delta, rootContext.swipeDirection(), moveStartBuffer)) {\n swipeDelta = delta;\n handleAndDispatchCustomEvent(TOAST_SWIPE_START_EVENT, local.onSwipeStart, eventDetail);\n e.currentTarget.setAttribute(\"data-swipe\", \"start\");\n e.target.setPointerCapture(e.pointerId);\n } else if (Math.abs(x) > moveStartBuffer || Math.abs(y) > moveStartBuffer) {\n pointerStart = null;\n }\n };\n const onPointerUp = (e) => {\n callHandler(e, local.onPointerUp);\n const delta = swipeDelta;\n const target = e.target;\n if (target.hasPointerCapture(e.pointerId)) {\n target.releasePointerCapture(e.pointerId);\n }\n swipeDelta = null;\n pointerStart = null;\n if (delta) {\n const toast = e.currentTarget;\n const eventDetail = {\n originalEvent: e,\n delta\n };\n if (isDeltaInDirection(delta, rootContext.swipeDirection(), rootContext.swipeThreshold())) {\n handleAndDispatchCustomEvent(TOAST_SWIPE_END_EVENT, local.onSwipeEnd, eventDetail);\n const {\n x,\n y\n } = delta;\n e.currentTarget.setAttribute(\"data-swipe\", \"end\");\n e.currentTarget.style.removeProperty(\"--kb-toast-swipe-move-x\");\n e.currentTarget.style.removeProperty(\"--kb-toast-swipe-move-y\");\n e.currentTarget.style.setProperty(\"--kb-toast-swipe-end-x\", `${x}px`);\n e.currentTarget.style.setProperty(\"--kb-toast-swipe-end-y\", `${y}px`);\n close();\n } else {\n handleAndDispatchCustomEvent(TOAST_SWIPE_CANCEL_EVENT, local.onSwipeCancel, eventDetail);\n e.currentTarget.setAttribute(\"data-swipe\", \"cancel\");\n e.currentTarget.style.removeProperty(\"--kb-toast-swipe-move-x\");\n e.currentTarget.style.removeProperty(\"--kb-toast-swipe-move-y\");\n e.currentTarget.style.removeProperty(\"--kb-toast-swipe-end-x\");\n e.currentTarget.style.removeProperty(\"--kb-toast-swipe-end-y\");\n }\n toast.addEventListener(\"click\", (event) => event.preventDefault(), {\n once: true\n });\n }\n };\n onMount(() => {\n if (rootContext.toasts().find((toast) => toast.id === local.toastId && toast.update)) {\n setIsAnimationEnabled(false);\n }\n });\n createEffect(on(() => rootContext.isPaused(), (isPaused) => {\n if (isPaused) {\n pauseTimer();\n } else {\n resumeTimer();\n }\n }, {\n defer: true\n }));\n createEffect(on([isOpen, duration], ([isOpen2, duration2]) => {\n if (isOpen2 && !rootContext.isPaused()) {\n startTimer(duration2);\n }\n }));\n createEffect(on(() => toastStore.get(local.toastId)?.dismiss, (dismiss3) => dismiss3 && close()));\n createEffect(on(() => present(), (isPresent) => !isPresent && deleteToast()));\n const context = {\n translations: () => local.translations,\n close,\n duration,\n isPersistent: () => local.persistent ?? false,\n closeTimerStartTime: () => closeTimerStartTime,\n generateId: createGenerateId(() => others.id),\n registerTitleId: createRegisterId(setTitleId),\n registerDescriptionId: createRegisterId(setDescriptionId)\n };\n return createComponent(Show, {\n get when() {\n return present();\n },\n get children() {\n return createComponent(ToastContext.Provider, {\n value: context,\n get children() {\n return createComponent(Polymorphic, mergeProps({\n as: \"li\",\n ref(r$) {\n const _ref$ = mergeRefs(setRef, local.ref);\n typeof _ref$ === \"function\" && _ref$(r$);\n },\n role: \"status\",\n tabIndex: 0,\n get style() {\n return combineStyle({\n animation: isAnimationEnabled() ? void 0 : \"none\",\n \"user-select\": \"none\",\n \"touch-action\": \"none\"\n }, local.style);\n },\n get [\"aria-live\"]() {\n return local.priority === \"high\" ? \"assertive\" : \"polite\";\n },\n \"aria-atomic\": \"true\",\n get [\"aria-labelledby\"]() {\n return titleId();\n },\n get [\"aria-describedby\"]() {\n return descriptionId();\n },\n get [\"data-opened\"]() {\n return isOpen() ? \"\" : void 0;\n },\n get [\"data-closed\"]() {\n return !isOpen() ? \"\" : void 0;\n },\n get [\"data-swipe-direction\"]() {\n return rootContext.swipeDirection();\n },\n onKeyDown,\n onPointerDown,\n onPointerMove,\n onPointerUp\n }, others));\n }\n });\n }\n });\n}\nfunction isDeltaInDirection(delta, direction, threshold = 0) {\n const deltaX = Math.abs(delta.x);\n const deltaY = Math.abs(delta.y);\n const isDeltaX = deltaX > deltaY;\n if (direction === \"left\" || direction === \"right\") {\n return isDeltaX && deltaX > threshold;\n }\n return !isDeltaX && deltaY > threshold;\n}\nfunction handleAndDispatchCustomEvent(name, handler, detail) {\n const currentTarget = detail.originalEvent.currentTarget;\n const event = new CustomEvent(name, {\n bubbles: true,\n cancelable: true,\n detail\n });\n if (handler) {\n currentTarget.addEventListener(name, handler, {\n once: true\n });\n }\n currentTarget.dispatchEvent(event);\n}\nfunction ToastTitle(props) {\n const context = useToastContext();\n const mergedProps = mergeDefaultProps({\n id: context.generateId(\"title\")\n }, props);\n const [local, others] = splitProps(mergedProps, [\"id\"]);\n createEffect(() => onCleanup(context.registerTitleId(local.id)));\n return createComponent(Polymorphic, mergeProps({\n as: \"div\",\n get id() {\n return local.id;\n }\n }, others));\n}\nvar toastsCounter = 0;\nfunction show(toastComponent, options) {\n const id = toastsCounter++;\n toastStore.add({\n id,\n toastComponent,\n dismiss: false,\n update: false,\n region: options?.region\n });\n return id;\n}\nfunction update2(id, toastComponent) {\n toastStore.update(id, { id, toastComponent, dismiss: false, update: true });\n}\nfunction promise(promise2, toastComponent, options) {\n const id = show((props) => {\n return toastComponent({\n get toastId() {\n return props.toastId;\n },\n state: \"pending\"\n });\n }, options);\n (isFunction(promise2) ? promise2() : promise2).then(\n (data) => update2(id, (props) => {\n return toastComponent({\n get toastId() {\n return props.toastId;\n },\n state: \"fulfilled\",\n data\n });\n })\n ).catch(\n (error) => update2(id, (props) => {\n return toastComponent({\n get toastId() {\n return props.toastId;\n },\n state: \"rejected\",\n error\n });\n })\n );\n return id;\n}\nfunction dismiss2(id) {\n toastStore.dismiss(id);\n return id;\n}\nfunction clear2() {\n toastStore.clear();\n}\nvar toaster = {\n show,\n update: update2,\n promise,\n dismiss: dismiss2,\n clear: clear2\n};\n\n// src/toast/index.tsx\nvar Toast = Object.assign(ToastRoot, {\n CloseButton: ToastCloseButton,\n Description: ToastDescription,\n List: ToastList,\n ProgressFill: ToastProgressFill,\n ProgressTrack: ToastProgressTrack,\n Region: ToastRegion,\n Title: ToastTitle,\n toaster\n});\n\nexport { Toast, ToastCloseButton, ToastDescription, ToastList, ToastProgressFill, ToastProgressTrack, ToastRegion, ToastRoot, ToastTitle, toast_exports, toaster };\n", "/**\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};\nconst oppositeAlignmentMap = {\n start: 'end',\n end: 'start'\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 return ['top', 'bottom'].includes(getSide(placement)) ? '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.replace(/start|end/g, alignment => oppositeAlignmentMap[alignment]);\n}\nfunction getSideList(side, isStart, rtl) {\n const lr = ['left', 'right'];\n const rl = ['right', 'left'];\n const tb = ['top', 'bottom'];\n const bt = ['bottom', 'top'];\n switch (side) {\n case 'top':\n case 'bottom':\n if (rtl) return isStart ? rl : lr;\n return isStart ? lr : rl;\n case 'left':\n case 'right':\n return isStart ? tb : bt;\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 return placement.replace(/left|right|bottom|top/g, side => oppositeSideMap[side]);\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 * 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 validMiddleware = middleware.filter(Boolean);\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 middlewareData = {};\n let resetCount = 0;\n for (let i = 0; i < validMiddleware.length; i++) {\n const {\n name,\n fn\n } = validMiddleware[i];\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,\n elements: {\n reference,\n floating\n }\n });\n x = nextX != null ? nextX : x;\n y = nextY != null ? nextY : y;\n middlewareData = {\n ...middlewareData,\n [name]: {\n ...middlewareData[name],\n ...data\n }\n };\n if (reset && resetCount <= 50) {\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 * 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/**\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 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 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 // 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 // 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 } = state;\n const {\n strategy = 'referenceHidden',\n ...detectOverflowOptions\n } = evaluate(options, state);\n switch (strategy) {\n case 'referenceHidden':\n {\n const overflow = await 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 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\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 = ['left', 'top'].includes(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: 0,\n crossAxis: 0,\n alignmentAxis: null,\n ...rawValue\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 } = 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 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 }\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 = ['top', 'left'].includes(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 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 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 (isYAxis) {\n availableWidth = alignment || noShift ? min(overflowAvailableWidth, maximumClippingWidth) : maximumClippingWidth;\n } else {\n availableHeight = alignment || noShift ? min(overflowAvailableHeight, maximumClippingHeight) : 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 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 return value instanceof Node || value instanceof getWindow(value).Node;\n}\nfunction isElement(value) {\n return value instanceof Element || value instanceof getWindow(value).Element;\n}\nfunction isHTMLElement(value) {\n return value instanceof HTMLElement || value instanceof getWindow(value).HTMLElement;\n}\nfunction isShadowRoot(value) {\n // Browsers without `ShadowRoot` support.\n if (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) && !['inline', 'contents'].includes(display);\n}\nfunction isTableElement(element) {\n return ['table', 'td', 'th'].includes(getNodeName(element));\n}\nfunction isTopLayer(element) {\n return [':popover-open', ':modal'].some(selector => {\n try {\n return element.matches(selector);\n } catch (e) {\n return false;\n }\n });\n}\nfunction isContainingBlock(elementOrCss) {\n const webkit = isWebKit();\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 return css.transform !== 'none' || css.perspective !== 'none' || (css.containerType ? css.containerType !== 'normal' : false) || !webkit && (css.backdropFilter ? css.backdropFilter !== 'none' : false) || !webkit && (css.filter ? css.filter !== 'none' : false) || ['transform', 'perspective', 'filter'].some(value => (css.willChange || '').includes(value)) || ['paint', 'layout', 'strict', 'content'].some(value => (css.contain || '').includes(value));\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 (typeof CSS === 'undefined' || !CSS.supports) return false;\n return CSS.supports('-webkit-backdrop-filter', 'none');\n}\nfunction isLastTraversableNode(node) {\n return ['html', 'body', '#document'].includes(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 }\n return list.concat(scrollableAncestor, getOverflowAncestors(scrollableAncestor, [], traverseIframes));\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, detectOverflow as detectOverflow$1, offset as offset$1, autoPlacement as autoPlacement$1, shift as shift$1, flip as flip$1, size as size$1, hide as hide$1, arrow as arrow$1, inline as inline$1, limitShift as limitShift$1, computePosition as computePosition$1 } from '@floating-ui/core';\nimport { round, createCoords, max, min, floor } from '@floating-ui/utils';\nimport { getComputedStyle, isHTMLElement, isElement, getWindow, isWebKit, getFrameElement, getDocumentElement, isTopLayer, getNodeName, isOverflowElement, getNodeScroll, 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(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(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\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 (isHTMLElement(offsetParent)) {\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 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,\n y: rect.y * scale.y - scroll.scrollTop * scale.y + offsets.y\n };\n}\n\nfunction getClientRects(element) {\n return Array.from(element.getClientRects());\n}\n\nfunction getWindowScrollBarX(element) {\n // If has a CSS width greater than the viewport, then this will be\n // incorrect for RTL.\n return getBoundingClientRect(getDocumentElement(element)).left + getNodeScroll(element).scrollLeft;\n}\n\n// Gets the entire size of the scrollable document area, even extending outside\n// of the `` and `