@beamimpact/web-sdk 1.51.1 → 1.52.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (186) hide show
  1. package/dist/chunks/{_share-dialog-dependencies-CHbTSPha.esm.js → _share-dialog-dependencies-BwdvNwrJ.esm.js} +2 -2
  2. package/dist/chunks/{_share-dialog-dependencies-CHbTSPha.esm.js.map → _share-dialog-dependencies-BwdvNwrJ.esm.js.map} +1 -1
  3. package/dist/chunks/{_share-dialog-dependencies-B3N69ml2.esm.js → _share-dialog-dependencies-QaTONkKb.esm.js} +2 -2
  4. package/dist/chunks/{_share-dialog-dependencies-B3N69ml2.esm.js.map → _share-dialog-dependencies-QaTONkKb.esm.js.map} +1 -1
  5. package/dist/chunks/{css-card-grid-B6IEaTiP.esm.js → css-card-grid-CvoGpsJH.esm.js} +2 -2
  6. package/dist/chunks/{css-card-grid-B6IEaTiP.esm.js.map → css-card-grid-CvoGpsJH.esm.js.map} +1 -1
  7. package/dist/chunks/{enforce-config-CQb5MiAV.esm.js → enforce-config-Ba1JkOHs.esm.js} +2 -2
  8. package/dist/chunks/{enforce-config-CQb5MiAV.esm.js.map → enforce-config-Ba1JkOHs.esm.js.map} +1 -1
  9. package/dist/chunks/{enforce-config-Cw52SuAc.esm.js → enforce-config-CZ3ToOgr.esm.js} +2 -2
  10. package/dist/chunks/{enforce-config-Cw52SuAc.esm.js.map → enforce-config-CZ3ToOgr.esm.js.map} +1 -1
  11. package/dist/chunks/index-B5vRxWI3.esm.js +2 -0
  12. package/dist/chunks/index-B5vRxWI3.esm.js.map +1 -0
  13. package/dist/chunks/{index-BQ4Nr7Ux.esm.js → index-BNjsFEGn.esm.js} +2 -2
  14. package/dist/chunks/{index-BQ4Nr7Ux.esm.js.map → index-BNjsFEGn.esm.js.map} +1 -1
  15. package/dist/chunks/index-BsuCVFh-.esm.js +2 -0
  16. package/dist/chunks/index-BsuCVFh-.esm.js.map +1 -0
  17. package/dist/chunks/index-C9SnlT_2.esm.js +2 -0
  18. package/dist/chunks/index-C9SnlT_2.esm.js.map +1 -0
  19. package/dist/chunks/index-CFZqe2Wn.esm.js +2 -0
  20. package/dist/chunks/index-CFZqe2Wn.esm.js.map +1 -0
  21. package/dist/chunks/index-CTt5RnKY.esm.js +2 -0
  22. package/dist/chunks/index-CTt5RnKY.esm.js.map +1 -0
  23. package/dist/chunks/{index-kDoWfjd5.esm.js → index-DElVAjg2.esm.js} +2 -2
  24. package/dist/chunks/{index-kDoWfjd5.esm.js.map → index-DElVAjg2.esm.js.map} +1 -1
  25. package/dist/chunks/{index-CFYWEffm.esm.js → index-DTGB86pM.esm.js} +2 -2
  26. package/dist/chunks/{index-CFYWEffm.esm.js.map → index-DTGB86pM.esm.js.map} +1 -1
  27. package/dist/chunks/index-DZt3Lbb4.esm.js +2 -0
  28. package/dist/chunks/index-DZt3Lbb4.esm.js.map +1 -0
  29. package/dist/chunks/{index-C_ZNnJIS.esm.js → index-IKiJwo5v.esm.js} +2 -2
  30. package/dist/chunks/{index-C_ZNnJIS.esm.js.map → index-IKiJwo5v.esm.js.map} +1 -1
  31. package/dist/chunks/{index-v0tUXySN.esm.d.ts → index-TAxKoTC1.esm.d.ts} +3 -2
  32. package/dist/chunks/{index-MS8_Vije.esm.d.ts → index-ki8pLX6n.esm.d.ts} +1 -1
  33. package/dist/chunks/{lit-5uUWs2aX.esm.js → lit-WqMxC_PA.esm.js} +3 -3
  34. package/dist/chunks/{lit-5uUWs2aX.esm.js.map → lit-WqMxC_PA.esm.js.map} +1 -1
  35. package/dist/chunks/loading-template-DG4lkIIc.esm.js +2 -0
  36. package/dist/chunks/{loading-template-DXNS89Th.esm.js.map → loading-template-DG4lkIIc.esm.js.map} +1 -1
  37. package/dist/chunks/{localize-cDQFOecn.esm.js → localize-Btu9xYcE.esm.js} +2 -2
  38. package/dist/chunks/{localize-cDQFOecn.esm.js.map → localize-Btu9xYcE.esm.js.map} +1 -1
  39. package/dist/chunks/{localize-CQCRjY9s.esm.js → localize-C25pEGnx.esm.js} +2 -2
  40. package/dist/chunks/{localize-CQCRjY9s.esm.js.map → localize-C25pEGnx.esm.js.map} +1 -1
  41. package/dist/chunks/{order-page-FzVtMkga.esm.js → order-page-BbrDKYmJ.esm.js} +2 -2
  42. package/dist/chunks/{order-page-CMGPM57D.esm.js.map → order-page-BbrDKYmJ.esm.js.map} +1 -1
  43. package/dist/chunks/{order-page-tSPKLQ24.esm.d.ts → order-page-Cerye00Q.esm.d.ts} +12 -1
  44. package/dist/chunks/{order-page-CMGPM57D.esm.js → order-page-stMlaqKK.esm.js} +2 -2
  45. package/dist/chunks/{order-page-FzVtMkga.esm.js.map → order-page-stMlaqKK.esm.js.map} +1 -1
  46. package/dist/chunks/{progress-bar-oJB_t7od.esm.js → progress-bar-DF7UuuHb.esm.js} +2 -2
  47. package/dist/chunks/{progress-bar-oJB_t7od.esm.js.map → progress-bar-DF7UuuHb.esm.js.map} +1 -1
  48. package/dist/chunks/{promo-pill-label-D9ptiGak.esm.js → promo-pill-label-CbW_Vcru.esm.js} +2 -2
  49. package/dist/chunks/{promo-pill-label-D9ptiGak.esm.js.map → promo-pill-label-CbW_Vcru.esm.js.map} +1 -1
  50. package/dist/chunks/{responsive-9jAzOYoE.esm.js → responsive-BR8qUfBa.esm.js} +2 -2
  51. package/dist/chunks/{responsive-9jAzOYoE.esm.js.map → responsive-BR8qUfBa.esm.js.map} +1 -1
  52. package/dist/chunks/{routes-KHEaM_40.esm.js → routes-CAhDCFDX.esm.js} +2 -2
  53. package/dist/chunks/{routes-KHEaM_40.esm.js.map → routes-CAhDCFDX.esm.js.map} +1 -1
  54. package/dist/chunks/{routes-CaSRr919.esm.js → routes-pcL-CUiQ.esm.js} +2 -2
  55. package/dist/chunks/{routes-CaSRr919.esm.js.map → routes-pcL-CUiQ.esm.js.map} +1 -1
  56. package/dist/chunks/{share-button-DBVhw4qa.esm.d.ts → share-button-B9hpxBVr.esm.d.ts} +5 -0
  57. package/dist/chunks/share-button-BYVId0-U.esm.js +2 -0
  58. package/dist/chunks/share-button-BYVId0-U.esm.js.map +1 -0
  59. package/dist/chunks/share-button-BvUcpOcx.esm.js +167 -0
  60. package/dist/chunks/share-button-BvUcpOcx.esm.js.map +1 -0
  61. package/dist/chunks/share-button-C-DXj68Z.esm.js +2 -0
  62. package/dist/chunks/share-button-C-DXj68Z.esm.js.map +1 -0
  63. package/dist/chunks/share-button-CtklpZOO.esm.js +167 -0
  64. package/dist/chunks/share-button-CtklpZOO.esm.js.map +1 -0
  65. package/dist/chunks/{update-cart-DNfl9QP2.esm.js → update-cart-BLsw_Faz.esm.js} +2 -2
  66. package/dist/chunks/{update-cart-DNfl9QP2.esm.js.map → update-cart-BLsw_Faz.esm.js.map} +1 -1
  67. package/dist/chunks/{update-cart-3JFUCJLD.esm.js → update-cart-ciJaz8li.esm.js} +2 -2
  68. package/dist/chunks/{update-cart-3JFUCJLD.esm.js.map → update-cart-ciJaz8li.esm.js.map} +1 -1
  69. package/dist/chunks/{vendor-DRA8u-S7.esm.js → vendor-KKSARHWL.esm.js} +2 -2
  70. package/dist/chunks/{vendor-DRA8u-S7.esm.js.map → vendor-KKSARHWL.esm.js.map} +1 -1
  71. package/dist/components/beam-partner-logos.esm.js +1 -1
  72. package/dist/components/beam-partner-logos.js +1 -1
  73. package/dist/components/community-impact.esm.js +3 -3
  74. package/dist/components/community-impact.esm.js.map +1 -1
  75. package/dist/components/community-impact.js +3 -3
  76. package/dist/components/community-impact.js.map +1 -1
  77. package/dist/components/cumulative-impact.esm.js +1 -1
  78. package/dist/components/cumulative-impact.js +1 -1
  79. package/dist/components/impact-overview.d.ts +1 -1
  80. package/dist/components/impact-overview.esm.js +18 -13
  81. package/dist/components/impact-overview.esm.js.map +1 -1
  82. package/dist/components/impact-overview.js +18 -13
  83. package/dist/components/impact-overview.js.map +1 -1
  84. package/dist/components/index.d.ts +1 -1
  85. package/dist/components/index.esm.js +1 -1
  86. package/dist/components/index.js +1 -1
  87. package/dist/components/post-purchase.d.ts +1 -1
  88. package/dist/components/post-purchase.esm.js +1 -1
  89. package/dist/components/post-purchase.js +1 -1
  90. package/dist/components/product-details-page.esm.js +1 -1
  91. package/dist/components/product-details-page.js +1 -1
  92. package/dist/components/redeem-transaction.esm.js +1 -1
  93. package/dist/components/redeem-transaction.js +1 -1
  94. package/dist/components/select-nonprofit.esm.js +88 -88
  95. package/dist/components/select-nonprofit.esm.js.map +1 -1
  96. package/dist/components/select-nonprofit.js +88 -88
  97. package/dist/components/select-nonprofit.js.map +1 -1
  98. package/dist/components/select-subscription-nonprofit.esm.js +1 -1
  99. package/dist/components/select-subscription-nonprofit.js +1 -1
  100. package/dist/components/shopify.d.ts +2 -2
  101. package/dist/components/shopify.esm.js +1 -1
  102. package/dist/components/shopify.esm.js.map +1 -1
  103. package/dist/components/shopify.js +1 -1
  104. package/dist/components/shopify.js.map +1 -1
  105. package/dist/components/social-share.esm.js +3 -3
  106. package/dist/components/social-share.esm.js.map +1 -1
  107. package/dist/components/social-share.js +3 -3
  108. package/dist/components/social-share.js.map +1 -1
  109. package/dist/components/subscription-impact.d.ts +1 -1
  110. package/dist/components/subscription-impact.esm.js +26 -24
  111. package/dist/components/subscription-impact.esm.js.map +1 -1
  112. package/dist/components/subscription-impact.js +26 -24
  113. package/dist/components/subscription-impact.js.map +1 -1
  114. package/dist/components/subscription-management.d.ts +1 -1
  115. package/dist/components/subscription-management.esm.js +1 -1
  116. package/dist/components/subscription-management.js +1 -1
  117. package/dist/index.d.ts +4 -4
  118. package/dist/index.esm.js +1 -1
  119. package/dist/index.js +1 -1
  120. package/dist/integrations/beam.esm.js +1 -1
  121. package/dist/integrations/beam.js +1 -1
  122. package/dist/integrations/cart.esm.js +1 -1
  123. package/dist/integrations/cart.js +1 -1
  124. package/dist/integrations/index.d.ts +3 -3
  125. package/dist/integrations/index.esm.js +1 -1
  126. package/dist/integrations/index.js +1 -1
  127. package/dist/integrations/logs.esm.js +1 -1
  128. package/dist/integrations/logs.js +1 -1
  129. package/dist/integrations/session.esm.js +1 -1
  130. package/dist/integrations/session.js +1 -1
  131. package/dist/integrations/shopify.d.ts +2 -2
  132. package/dist/integrations/shopify.esm.js +1 -1
  133. package/dist/integrations/shopify.js +1 -1
  134. package/dist/integrations/statsig.esm.js +1 -1
  135. package/dist/integrations/statsig.js +1 -1
  136. package/dist/react/beam-partner-logos.esm.js +1 -1
  137. package/dist/react/beam-partner-logos.js +1 -1
  138. package/dist/react/community-impact.esm.js +1 -1
  139. package/dist/react/community-impact.js +1 -1
  140. package/dist/react/cumulative-impact.esm.js +1 -1
  141. package/dist/react/cumulative-impact.js +1 -1
  142. package/dist/react/impact-overview.d.ts +1 -1
  143. package/dist/react/impact-overview.esm.js +1 -1
  144. package/dist/react/impact-overview.js +1 -1
  145. package/dist/react/index.d.ts +1 -1
  146. package/dist/react/index.esm.js +1 -1
  147. package/dist/react/index.js +1 -1
  148. package/dist/react/post-purchase.d.ts +1 -1
  149. package/dist/react/post-purchase.esm.js +1 -1
  150. package/dist/react/post-purchase.js +1 -1
  151. package/dist/react/product-details-page.esm.js +1 -1
  152. package/dist/react/product-details-page.js +1 -1
  153. package/dist/react/redeem-transaction.esm.js +1 -1
  154. package/dist/react/redeem-transaction.js +1 -1
  155. package/dist/react/select-nonprofit.esm.js +1 -1
  156. package/dist/react/select-nonprofit.js +1 -1
  157. package/dist/react/select-subscription-nonprofit.esm.js +1 -1
  158. package/dist/react/select-subscription-nonprofit.js +1 -1
  159. package/dist/react/social-share.esm.js +1 -1
  160. package/dist/react/social-share.js +1 -1
  161. package/dist/react/subscription-impact.d.ts +1 -1
  162. package/dist/react/subscription-impact.esm.js +1 -1
  163. package/dist/react/subscription-impact.js +1 -1
  164. package/dist/react/subscription-management.d.ts +1 -1
  165. package/dist/react/subscription-management.esm.js +1 -1
  166. package/dist/react/subscription-management.js +1 -1
  167. package/package.json +1 -1
  168. package/dist/chunks/index-B_8DexDX.esm.js +0 -2
  169. package/dist/chunks/index-B_8DexDX.esm.js.map +0 -1
  170. package/dist/chunks/index-CpPbNdWA.esm.js +0 -2
  171. package/dist/chunks/index-CpPbNdWA.esm.js.map +0 -1
  172. package/dist/chunks/index-CyiXyHi8.esm.js +0 -2
  173. package/dist/chunks/index-CyiXyHi8.esm.js.map +0 -1
  174. package/dist/chunks/index-JSoHc6g1.esm.js +0 -2
  175. package/dist/chunks/index-JSoHc6g1.esm.js.map +0 -1
  176. package/dist/chunks/index-XZRQN4Rs.esm.js +0 -2
  177. package/dist/chunks/index-XZRQN4Rs.esm.js.map +0 -1
  178. package/dist/chunks/index-n7pxZENA.esm.js +0 -2
  179. package/dist/chunks/index-n7pxZENA.esm.js.map +0 -1
  180. package/dist/chunks/loading-template-DXNS89Th.esm.js +0 -2
  181. package/dist/chunks/share-button-BbG-gnwj.esm.js +0 -163
  182. package/dist/chunks/share-button-BbG-gnwj.esm.js.map +0 -1
  183. package/dist/chunks/share-button-CvTUluNq.esm.js +0 -163
  184. package/dist/chunks/share-button-CvTUluNq.esm.js.map +0 -1
  185. package/dist/chunks/share-button-R7jgVCPv.esm.js +0 -2
  186. package/dist/chunks/share-button-R7jgVCPv.esm.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"vendor-DRA8u-S7.esm.js","sources":["../../node_modules/@shoelace-style/shoelace/dist/chunks/chunk.3Y6SB6QS.js","../../node_modules/@shoelace-style/shoelace/dist/chunks/chunk.IFDWM6P4.js","../../node_modules/@shoelace-style/shoelace/dist/chunks/chunk.P7ZG6EMR.js","../../node_modules/@shoelace-style/shoelace/dist/chunks/chunk.3TFKS637.js","../../node_modules/@shoelace-style/shoelace/dist/chunks/chunk.ZL53POKZ.js","../../node_modules/@shoelace-style/shoelace/dist/chunks/chunk.QLXRCYS4.js","../../node_modules/@shoelace-style/shoelace/dist/chunks/chunk.2FB5TK5H.js","../../node_modules/@shoelace-style/shoelace/dist/chunks/chunk.TUVJKY7S.js","../../node_modules/@shoelace-style/shoelace/dist/chunks/chunk.SFSTXCXC.js","../../node_modules/@shoelace-style/shoelace/dist/chunks/chunk.H33C3MRM.js","../../node_modules/@shoelace-style/shoelace/dist/chunks/chunk.22M42QYS.js","../../node_modules/@shoelace-style/shoelace/dist/chunks/chunk.WQC6OWUE.js","../../node_modules/@shoelace-style/shoelace/dist/chunks/chunk.AQLP63PT.js","../../node_modules/@shoelace-style/shoelace/dist/chunks/chunk.3LQGVQFJ.js","../../node_modules/@shoelace-style/shoelace/dist/chunks/chunk.BCNEWSXW.js","../../node_modules/@shoelace-style/shoelace/dist/chunks/chunk.3KSWVBQ5.js","../../node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs","../../node_modules/@floating-ui/core/dist/floating-ui.core.mjs","../../node_modules/@floating-ui/utils/dom/dist/floating-ui.utils.dom.mjs","../../node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs","../../node_modules/composed-offset-position/dist/composed-offset-position.browser.min.mjs","../../node_modules/@shoelace-style/shoelace/dist/chunks/chunk.SUWKRDXP.js","../../node_modules/@shoelace-style/shoelace/dist/chunks/chunk.DHU6MIVB.js","../../node_modules/@shoelace-style/shoelace/dist/chunks/chunk.B4BZKR24.js","../../node_modules/@shoelace-style/shoelace/dist/chunks/chunk.LHI6QEL2.js","../../node_modules/@shoelace-style/localize/dist/index.js","../../node_modules/@shoelace-style/shoelace/dist/chunks/chunk.MAS2SHYD.js","../../node_modules/@shoelace-style/shoelace/dist/chunks/chunk.WLV3FVBR.js","../../node_modules/@shoelace-style/shoelace/dist/chunks/chunk.5UHNODB4.js","../../node_modules/@shoelace-style/shoelace/dist/chunks/chunk.VC2C3DLQ.js","../../node_modules/@shoelace-style/shoelace/dist/chunks/chunk.7DUCI5S4.js","../../node_modules/@shoelace-style/shoelace/dist/chunks/chunk.RADK4UXU.js","../../node_modules/@shoelace-style/shoelace/dist/chunks/chunk.KWPBDQ6I.js","../../node_modules/@shoelace-style/shoelace/dist/chunks/chunk.HLDU3ZPH.js","../../node_modules/@shoelace-style/shoelace/dist/chunks/chunk.NYIIDP5N.js","../../node_modules/@shoelace-style/shoelace/dist/chunks/chunk.5SUGJ4EB.js","../../node_modules/@shoelace-style/shoelace/dist/chunks/chunk.7XIC3PQE.js","../../node_modules/@shoelace-style/shoelace/dist/chunks/chunk.LXDTFLWU.js","../../node_modules/@shoelace-style/shoelace/dist/chunks/chunk.ODFLWOL6.js","../../node_modules/@shoelace-style/shoelace/dist/chunks/chunk.BTENR4BI.js","../../node_modules/@shoelace-style/shoelace/dist/chunks/chunk.G5RKA5HF.js","../../node_modules/@shoelace-style/shoelace/dist/chunks/chunk.6I2T3DLI.js","../../node_modules/@shoelace-style/shoelace/dist/chunks/chunk.WQ4LAAP4.js","../../node_modules/@shoelace-style/shoelace/dist/chunks/chunk.UE77SM53.js","../../node_modules/@shoelace-style/shoelace/dist/chunks/chunk.545BWSIV.js","../../node_modules/@shoelace-style/shoelace/dist/chunks/chunk.VFX5UTJA.js","../../node_modules/@lukeed/csprng/browser/index.mjs","../../node_modules/@lukeed/uuid/secure/index.mjs"],"sourcesContent":["// src/utilities/base-path.ts\nvar basePath = \"\";\nfunction setBasePath(path) {\n basePath = path;\n}\nfunction getBasePath(subpath = \"\") {\n if (!basePath) {\n const scripts = [...document.getElementsByTagName(\"script\")];\n const configScript = scripts.find((script) => script.hasAttribute(\"data-shoelace\"));\n if (configScript) {\n setBasePath(configScript.getAttribute(\"data-shoelace\"));\n } else {\n const fallbackScript = scripts.find((s) => {\n return /shoelace(\\.min)?\\.js($|\\?)/.test(s.src) || /shoelace-autoloader(\\.min)?\\.js($|\\?)/.test(s.src);\n });\n let path = \"\";\n if (fallbackScript) {\n path = fallbackScript.getAttribute(\"src\");\n }\n setBasePath(path.split(\"/\").slice(0, -1).join(\"/\"));\n }\n }\n return basePath.replace(/\\/$/, \"\") + (subpath ? `/${subpath.replace(/^\\//, \"\")}` : ``);\n}\n\nexport {\n setBasePath,\n getBasePath\n};\n","var __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __knownSymbol = (name, symbol) => {\n return (symbol = Symbol[name]) ? symbol : Symbol.for(\"Symbol.\" + name);\n};\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nvar __decorateClass = (decorators, target, key, kind) => {\n var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;\n for (var i = decorators.length - 1, decorator; i >= 0; i--)\n if (decorator = decorators[i])\n result = (kind ? decorator(target, key, result) : decorator(result)) || result;\n if (kind && result)\n __defProp(target, key, result);\n return result;\n};\nvar __await = function(promise, isYieldStar) {\n this[0] = promise;\n this[1] = isYieldStar;\n};\nvar __yieldStar = (value) => {\n var obj = value[__knownSymbol(\"asyncIterator\")];\n var isAwait = false;\n var method;\n var it = {};\n if (obj == null) {\n obj = value[__knownSymbol(\"iterator\")]();\n method = (k) => it[k] = (x) => obj[k](x);\n } else {\n obj = obj.call(value);\n method = (k) => it[k] = (v) => {\n if (isAwait) {\n isAwait = false;\n if (k === \"throw\")\n throw v;\n return v;\n }\n isAwait = true;\n return {\n done: false,\n value: new __await(new Promise((resolve) => {\n var x = obj[k](v);\n if (!(x instanceof Object))\n throw TypeError(\"Object expected\");\n resolve(x);\n }), 1)\n };\n };\n }\n return it[__knownSymbol(\"iterator\")] = () => it, method(\"next\"), \"throw\" in obj ? method(\"throw\") : it.throw = (x) => {\n throw x;\n }, \"return\" in obj && method(\"return\"), it;\n};\n\nexport {\n __spreadValues,\n __spreadProps,\n __decorateClass,\n __yieldStar\n};\n","import {\n getBasePath\n} from \"./chunk.3Y6SB6QS.js\";\n\n// src/components/icon/library.default.ts\nvar library = {\n name: \"default\",\n resolver: (name) => getBasePath(`assets/icons/${name}.svg`)\n};\nvar library_default_default = library;\n\nexport {\n library_default_default\n};\n","// src/components/icon/library.system.ts\nvar icons = {\n caret: `\n <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n <polyline points=\"6 9 12 15 18 9\"></polyline>\n </svg>\n `,\n check: `\n <svg part=\"checked-icon\" class=\"checkbox__icon\" viewBox=\"0 0 16 16\">\n <g stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\" stroke-linecap=\"round\">\n <g stroke=\"currentColor\">\n <g transform=\"translate(3.428571, 3.428571)\">\n <path d=\"M0,5.71428571 L3.42857143,9.14285714\"></path>\n <path d=\"M9.14285714,0 L3.42857143,9.14285714\"></path>\n </g>\n </g>\n </g>\n </svg>\n `,\n \"chevron-down\": `\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"currentColor\" class=\"bi bi-chevron-down\" viewBox=\"0 0 16 16\">\n <path fill-rule=\"evenodd\" d=\"M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z\"/>\n </svg>\n `,\n \"chevron-left\": `\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"currentColor\" class=\"bi bi-chevron-left\" viewBox=\"0 0 16 16\">\n <path fill-rule=\"evenodd\" d=\"M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0z\"/>\n </svg>\n `,\n \"chevron-right\": `\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"currentColor\" class=\"bi bi-chevron-right\" viewBox=\"0 0 16 16\">\n <path fill-rule=\"evenodd\" d=\"M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z\"/>\n </svg>\n `,\n copy: `\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"currentColor\" class=\"bi bi-copy\" viewBox=\"0 0 16 16\">\n <path fill-rule=\"evenodd\" d=\"M4 2a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V2Zm2-1a1 1 0 0 0-1 1v8a1 1 0 0 0 1 1h8a1 1 0 0 0 1-1V2a1 1 0 0 0-1-1H6ZM2 5a1 1 0 0 0-1 1v8a1 1 0 0 0 1 1h8a1 1 0 0 0 1-1v-1h1v1a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h1v1H2Z\"/>\n </svg>\n `,\n eye: `\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"currentColor\" class=\"bi bi-eye\" viewBox=\"0 0 16 16\">\n <path d=\"M16 8s-3-5.5-8-5.5S0 8 0 8s3 5.5 8 5.5S16 8 16 8zM1.173 8a13.133 13.133 0 0 1 1.66-2.043C4.12 4.668 5.88 3.5 8 3.5c2.12 0 3.879 1.168 5.168 2.457A13.133 13.133 0 0 1 14.828 8c-.058.087-.122.183-.195.288-.335.48-.83 1.12-1.465 1.755C11.879 11.332 10.119 12.5 8 12.5c-2.12 0-3.879-1.168-5.168-2.457A13.134 13.134 0 0 1 1.172 8z\"/>\n <path d=\"M8 5.5a2.5 2.5 0 1 0 0 5 2.5 2.5 0 0 0 0-5zM4.5 8a3.5 3.5 0 1 1 7 0 3.5 3.5 0 0 1-7 0z\"/>\n </svg>\n `,\n \"eye-slash\": `\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"currentColor\" class=\"bi bi-eye-slash\" viewBox=\"0 0 16 16\">\n <path d=\"M13.359 11.238C15.06 9.72 16 8 16 8s-3-5.5-8-5.5a7.028 7.028 0 0 0-2.79.588l.77.771A5.944 5.944 0 0 1 8 3.5c2.12 0 3.879 1.168 5.168 2.457A13.134 13.134 0 0 1 14.828 8c-.058.087-.122.183-.195.288-.335.48-.83 1.12-1.465 1.755-.165.165-.337.328-.517.486l.708.709z\"/>\n <path d=\"M11.297 9.176a3.5 3.5 0 0 0-4.474-4.474l.823.823a2.5 2.5 0 0 1 2.829 2.829l.822.822zm-2.943 1.299.822.822a3.5 3.5 0 0 1-4.474-4.474l.823.823a2.5 2.5 0 0 0 2.829 2.829z\"/>\n <path d=\"M3.35 5.47c-.18.16-.353.322-.518.487A13.134 13.134 0 0 0 1.172 8l.195.288c.335.48.83 1.12 1.465 1.755C4.121 11.332 5.881 12.5 8 12.5c.716 0 1.39-.133 2.02-.36l.77.772A7.029 7.029 0 0 1 8 13.5C3 13.5 0 8 0 8s.939-1.721 2.641-3.238l.708.709zm10.296 8.884-12-12 .708-.708 12 12-.708.708z\"/>\n </svg>\n `,\n eyedropper: `\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"currentColor\" class=\"bi bi-eyedropper\" viewBox=\"0 0 16 16\">\n <path d=\"M13.354.646a1.207 1.207 0 0 0-1.708 0L8.5 3.793l-.646-.647a.5.5 0 1 0-.708.708L8.293 5l-7.147 7.146A.5.5 0 0 0 1 12.5v1.793l-.854.853a.5.5 0 1 0 .708.707L1.707 15H3.5a.5.5 0 0 0 .354-.146L11 7.707l1.146 1.147a.5.5 0 0 0 .708-.708l-.647-.646 3.147-3.146a1.207 1.207 0 0 0 0-1.708l-2-2zM2 12.707l7-7L10.293 7l-7 7H2v-1.293z\"></path>\n </svg>\n `,\n \"grip-vertical\": `\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"currentColor\" class=\"bi bi-grip-vertical\" viewBox=\"0 0 16 16\">\n <path d=\"M7 2a1 1 0 1 1-2 0 1 1 0 0 1 2 0zm3 0a1 1 0 1 1-2 0 1 1 0 0 1 2 0zM7 5a1 1 0 1 1-2 0 1 1 0 0 1 2 0zm3 0a1 1 0 1 1-2 0 1 1 0 0 1 2 0zM7 8a1 1 0 1 1-2 0 1 1 0 0 1 2 0zm3 0a1 1 0 1 1-2 0 1 1 0 0 1 2 0zm-3 3a1 1 0 1 1-2 0 1 1 0 0 1 2 0zm3 0a1 1 0 1 1-2 0 1 1 0 0 1 2 0zm-3 3a1 1 0 1 1-2 0 1 1 0 0 1 2 0zm3 0a1 1 0 1 1-2 0 1 1 0 0 1 2 0z\"></path>\n </svg>\n `,\n indeterminate: `\n <svg part=\"indeterminate-icon\" class=\"checkbox__icon\" viewBox=\"0 0 16 16\">\n <g stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\" stroke-linecap=\"round\">\n <g stroke=\"currentColor\" stroke-width=\"2\">\n <g transform=\"translate(2.285714, 6.857143)\">\n <path d=\"M10.2857143,1.14285714 L1.14285714,1.14285714\"></path>\n </g>\n </g>\n </g>\n </svg>\n `,\n \"person-fill\": `\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"currentColor\" class=\"bi bi-person-fill\" viewBox=\"0 0 16 16\">\n <path d=\"M3 14s-1 0-1-1 1-4 6-4 6 3 6 4-1 1-1 1H3zm5-6a3 3 0 1 0 0-6 3 3 0 0 0 0 6z\"/>\n </svg>\n `,\n \"play-fill\": `\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"currentColor\" class=\"bi bi-play-fill\" viewBox=\"0 0 16 16\">\n <path d=\"m11.596 8.697-6.363 3.692c-.54.313-1.233-.066-1.233-.697V4.308c0-.63.692-1.01 1.233-.696l6.363 3.692a.802.802 0 0 1 0 1.393z\"></path>\n </svg>\n `,\n \"pause-fill\": `\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"currentColor\" class=\"bi bi-pause-fill\" viewBox=\"0 0 16 16\">\n <path d=\"M5.5 3.5A1.5 1.5 0 0 1 7 5v6a1.5 1.5 0 0 1-3 0V5a1.5 1.5 0 0 1 1.5-1.5zm5 0A1.5 1.5 0 0 1 12 5v6a1.5 1.5 0 0 1-3 0V5a1.5 1.5 0 0 1 1.5-1.5z\"></path>\n </svg>\n `,\n radio: `\n <svg part=\"checked-icon\" class=\"radio__icon\" viewBox=\"0 0 16 16\">\n <g stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\n <g fill=\"currentColor\">\n <circle cx=\"8\" cy=\"8\" r=\"3.42857143\"></circle>\n </g>\n </g>\n </svg>\n `,\n \"star-fill\": `\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"currentColor\" class=\"bi bi-star-fill\" viewBox=\"0 0 16 16\">\n <path d=\"M3.612 15.443c-.386.198-.824-.149-.746-.592l.83-4.73L.173 6.765c-.329-.314-.158-.888.283-.95l4.898-.696L7.538.792c.197-.39.73-.39.927 0l2.184 4.327 4.898.696c.441.062.612.636.282.95l-3.522 3.356.83 4.73c.078.443-.36.79-.746.592L8 13.187l-4.389 2.256z\"/>\n </svg>\n `,\n \"x-lg\": `\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"currentColor\" class=\"bi bi-x-lg\" viewBox=\"0 0 16 16\">\n <path d=\"M2.146 2.854a.5.5 0 1 1 .708-.708L8 7.293l5.146-5.147a.5.5 0 0 1 .708.708L8.707 8l5.147 5.146a.5.5 0 0 1-.708.708L8 8.707l-5.146 5.147a.5.5 0 0 1-.708-.708L7.293 8 2.146 2.854Z\"/>\n </svg>\n `,\n \"x-circle-fill\": `\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"currentColor\" class=\"bi bi-x-circle-fill\" viewBox=\"0 0 16 16\">\n <path d=\"M16 8A8 8 0 1 1 0 8a8 8 0 0 1 16 0zM5.354 4.646a.5.5 0 1 0-.708.708L7.293 8l-2.647 2.646a.5.5 0 0 0 .708.708L8 8.707l2.646 2.647a.5.5 0 0 0 .708-.708L8.707 8l2.647-2.646a.5.5 0 0 0-.708-.708L8 7.293 5.354 4.646z\"></path>\n </svg>\n `\n};\nvar systemLibrary = {\n name: \"system\",\n resolver: (name) => {\n if (name in icons) {\n return `data:image/svg+xml,${encodeURIComponent(icons[name])}`;\n }\n return \"\";\n }\n};\nvar library_system_default = systemLibrary;\n\nexport {\n library_system_default\n};\n","import {\n library_default_default\n} from \"./chunk.P7ZG6EMR.js\";\nimport {\n library_system_default\n} from \"./chunk.3TFKS637.js\";\n\n// src/components/icon/library.ts\nvar registry = [library_default_default, library_system_default];\nvar watchedIcons = [];\nfunction watchIcon(icon) {\n watchedIcons.push(icon);\n}\nfunction unwatchIcon(icon) {\n watchedIcons = watchedIcons.filter((el) => el !== icon);\n}\nfunction getIconLibrary(name) {\n return registry.find((lib) => lib.name === name);\n}\nfunction registerIconLibrary(name, options) {\n unregisterIconLibrary(name);\n registry.push({\n name,\n resolver: options.resolver,\n mutator: options.mutator,\n spriteSheet: options.spriteSheet\n });\n watchedIcons.forEach((icon) => {\n if (icon.library === name) {\n icon.setIcon();\n }\n });\n}\nfunction unregisterIconLibrary(name) {\n registry = registry.filter((lib) => lib.name !== name);\n}\n\nexport {\n watchIcon,\n unwatchIcon,\n getIconLibrary,\n registerIconLibrary,\n unregisterIconLibrary\n};\n","// src/components/icon/icon.styles.ts\nimport { css } from \"lit\";\nvar icon_styles_default = css`\n :host {\n display: inline-block;\n width: 1em;\n height: 1em;\n box-sizing: content-box !important;\n }\n\n svg {\n display: block;\n height: 100%;\n width: 100%;\n }\n`;\n\nexport {\n icon_styles_default\n};\n","import {\n __spreadValues\n} from \"./chunk.IFDWM6P4.js\";\n\n// src/internal/watch.ts\nfunction watch(propertyName, options) {\n const resolvedOptions = __spreadValues({\n waitUntilFirstUpdate: false\n }, options);\n return (proto, decoratedFnName) => {\n const { update } = proto;\n const watchedProperties = Array.isArray(propertyName) ? propertyName : [propertyName];\n proto.update = function(changedProps) {\n watchedProperties.forEach((property) => {\n const key = property;\n if (changedProps.has(key)) {\n const oldValue = changedProps.get(key);\n const newValue = this[key];\n if (oldValue !== newValue) {\n if (!resolvedOptions.waitUntilFirstUpdate || this.hasUpdated) {\n this[decoratedFnName](oldValue, newValue);\n }\n }\n }\n });\n update.call(this, changedProps);\n };\n };\n}\n\nexport {\n watch\n};\n","// src/styles/component.styles.ts\nimport { css } from \"lit\";\nvar component_styles_default = css`\n :host {\n box-sizing: border-box;\n }\n\n :host *,\n :host *::before,\n :host *::after {\n box-sizing: inherit;\n }\n\n [hidden] {\n display: none !important;\n }\n`;\n\nexport {\n component_styles_default\n};\n","import {\n __decorateClass,\n __spreadValues\n} from \"./chunk.IFDWM6P4.js\";\n\n// src/internal/shoelace-element.ts\nimport { LitElement } from \"lit\";\nimport { property } from \"lit/decorators.js\";\nvar ShoelaceElement = class extends LitElement {\n constructor() {\n super();\n Object.entries(this.constructor.dependencies).forEach(([name, component]) => {\n this.constructor.define(name, component);\n });\n }\n emit(name, options) {\n const event = new CustomEvent(name, __spreadValues({\n bubbles: true,\n cancelable: false,\n composed: true,\n detail: {}\n }, options));\n this.dispatchEvent(event);\n return event;\n }\n /* eslint-enable */\n static define(name, elementConstructor = this, options = {}) {\n const currentlyRegisteredConstructor = customElements.get(name);\n if (!currentlyRegisteredConstructor) {\n customElements.define(name, class extends elementConstructor {\n }, options);\n return;\n }\n let newVersion = \" (unknown version)\";\n let existingVersion = newVersion;\n if (\"version\" in elementConstructor && elementConstructor.version) {\n newVersion = \" v\" + elementConstructor.version;\n }\n if (\"version\" in currentlyRegisteredConstructor && currentlyRegisteredConstructor.version) {\n existingVersion = \" v\" + currentlyRegisteredConstructor.version;\n }\n if (newVersion && existingVersion && newVersion === existingVersion) {\n return;\n }\n console.warn(\n `Attempted to register <${name}>${newVersion}, but <${name}>${existingVersion} has already been registered.`\n );\n }\n};\n/* eslint-disable */\n// @ts-expect-error This is auto-injected at build time.\nShoelaceElement.version = \"2.15.0\";\nShoelaceElement.dependencies = {};\n__decorateClass([\n property()\n], ShoelaceElement.prototype, \"dir\", 2);\n__decorateClass([\n property()\n], ShoelaceElement.prototype, \"lang\", 2);\n\nexport {\n ShoelaceElement\n};\n","import {\n getIconLibrary,\n unwatchIcon,\n watchIcon\n} from \"./chunk.ZL53POKZ.js\";\nimport {\n icon_styles_default\n} from \"./chunk.QLXRCYS4.js\";\nimport {\n watch\n} from \"./chunk.2FB5TK5H.js\";\nimport {\n component_styles_default\n} from \"./chunk.TUVJKY7S.js\";\nimport {\n ShoelaceElement\n} from \"./chunk.SFSTXCXC.js\";\nimport {\n __decorateClass\n} from \"./chunk.IFDWM6P4.js\";\n\n// src/components/icon/icon.component.ts\nimport { html } from \"lit\";\nimport { isTemplateResult } from \"lit/directive-helpers.js\";\nimport { property, state } from \"lit/decorators.js\";\nvar CACHEABLE_ERROR = Symbol();\nvar RETRYABLE_ERROR = Symbol();\nvar parser;\nvar iconCache = /* @__PURE__ */ new Map();\nvar SlIcon = class extends ShoelaceElement {\n constructor() {\n super(...arguments);\n this.initialRender = false;\n this.svg = null;\n this.label = \"\";\n this.library = \"default\";\n }\n /** Given a URL, this function returns the resulting SVG element or an appropriate error symbol. */\n async resolveIcon(url, library) {\n var _a;\n let fileData;\n if (library == null ? void 0 : library.spriteSheet) {\n this.svg = html`<svg part=\"svg\">\n <use part=\"use\" href=\"${url}\"></use>\n </svg>`;\n await this.updateComplete;\n const svg = this.shadowRoot.querySelector(\"[part='svg']\");\n if (typeof library.mutator === \"function\") {\n library.mutator(svg);\n }\n return this.svg;\n }\n try {\n fileData = await fetch(url, { mode: \"cors\" });\n if (!fileData.ok)\n return fileData.status === 410 ? CACHEABLE_ERROR : RETRYABLE_ERROR;\n } catch (e) {\n return RETRYABLE_ERROR;\n }\n try {\n const div = document.createElement(\"div\");\n div.innerHTML = await fileData.text();\n const svg = div.firstElementChild;\n if (((_a = svg == null ? void 0 : svg.tagName) == null ? void 0 : _a.toLowerCase()) !== \"svg\")\n return CACHEABLE_ERROR;\n if (!parser)\n parser = new DOMParser();\n const doc = parser.parseFromString(svg.outerHTML, \"text/html\");\n const svgEl = doc.body.querySelector(\"svg\");\n if (!svgEl)\n return CACHEABLE_ERROR;\n svgEl.part.add(\"svg\");\n return document.adoptNode(svgEl);\n } catch (e) {\n return CACHEABLE_ERROR;\n }\n }\n connectedCallback() {\n super.connectedCallback();\n watchIcon(this);\n }\n firstUpdated() {\n this.initialRender = true;\n this.setIcon();\n }\n disconnectedCallback() {\n super.disconnectedCallback();\n unwatchIcon(this);\n }\n getIconSource() {\n const library = getIconLibrary(this.library);\n if (this.name && library) {\n return {\n url: library.resolver(this.name),\n fromLibrary: true\n };\n }\n return {\n url: this.src,\n fromLibrary: false\n };\n }\n handleLabelChange() {\n const hasLabel = typeof this.label === \"string\" && this.label.length > 0;\n if (hasLabel) {\n this.setAttribute(\"role\", \"img\");\n this.setAttribute(\"aria-label\", this.label);\n this.removeAttribute(\"aria-hidden\");\n } else {\n this.removeAttribute(\"role\");\n this.removeAttribute(\"aria-label\");\n this.setAttribute(\"aria-hidden\", \"true\");\n }\n }\n async setIcon() {\n var _a;\n const { url, fromLibrary } = this.getIconSource();\n const library = fromLibrary ? getIconLibrary(this.library) : void 0;\n if (!url) {\n this.svg = null;\n return;\n }\n let iconResolver = iconCache.get(url);\n if (!iconResolver) {\n iconResolver = this.resolveIcon(url, library);\n iconCache.set(url, iconResolver);\n }\n if (!this.initialRender) {\n return;\n }\n const svg = await iconResolver;\n if (svg === RETRYABLE_ERROR) {\n iconCache.delete(url);\n }\n if (url !== this.getIconSource().url) {\n return;\n }\n if (isTemplateResult(svg)) {\n this.svg = svg;\n return;\n }\n switch (svg) {\n case RETRYABLE_ERROR:\n case CACHEABLE_ERROR:\n this.svg = null;\n this.emit(\"sl-error\");\n break;\n default:\n this.svg = svg.cloneNode(true);\n (_a = library == null ? void 0 : library.mutator) == null ? void 0 : _a.call(library, this.svg);\n this.emit(\"sl-load\");\n }\n }\n render() {\n return this.svg;\n }\n};\nSlIcon.styles = [component_styles_default, icon_styles_default];\n__decorateClass([\n state()\n], SlIcon.prototype, \"svg\", 2);\n__decorateClass([\n property({ reflect: true })\n], SlIcon.prototype, \"name\", 2);\n__decorateClass([\n property()\n], SlIcon.prototype, \"src\", 2);\n__decorateClass([\n property()\n], SlIcon.prototype, \"label\", 2);\n__decorateClass([\n property({ reflect: true })\n], SlIcon.prototype, \"library\", 2);\n__decorateClass([\n watch(\"label\")\n], SlIcon.prototype, \"handleLabelChange\", 1);\n__decorateClass([\n watch([\"name\", \"src\", \"library\"])\n], SlIcon.prototype, \"setIcon\", 1);\n\nexport {\n SlIcon\n};\n","import {\n SlIcon\n} from \"./chunk.H33C3MRM.js\";\n\n// src/components/icon/icon.ts\nvar icon_default = SlIcon;\nSlIcon.define(\"sl-icon\");\n\nexport {\n icon_default\n};\n","// src/components/badge/badge.styles.ts\nimport { css } from \"lit\";\nvar badge_styles_default = css`\n :host {\n display: inline-flex;\n }\n\n .badge {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n font-size: max(12px, 0.75em);\n font-weight: var(--sl-font-weight-semibold);\n letter-spacing: var(--sl-letter-spacing-normal);\n line-height: 1;\n border-radius: var(--sl-border-radius-small);\n border: solid 1px var(--sl-color-neutral-0);\n white-space: nowrap;\n padding: 0.35em 0.6em;\n user-select: none;\n -webkit-user-select: none;\n cursor: inherit;\n }\n\n /* Variant modifiers */\n .badge--primary {\n background-color: var(--sl-color-primary-600);\n color: var(--sl-color-neutral-0);\n }\n\n .badge--success {\n background-color: var(--sl-color-success-600);\n color: var(--sl-color-neutral-0);\n }\n\n .badge--neutral {\n background-color: var(--sl-color-neutral-600);\n color: var(--sl-color-neutral-0);\n }\n\n .badge--warning {\n background-color: var(--sl-color-warning-600);\n color: var(--sl-color-neutral-0);\n }\n\n .badge--danger {\n background-color: var(--sl-color-danger-600);\n color: var(--sl-color-neutral-0);\n }\n\n /* Pill modifier */\n .badge--pill {\n border-radius: var(--sl-border-radius-pill);\n }\n\n /* Pulse modifier */\n .badge--pulse {\n animation: pulse 1.5s infinite;\n }\n\n .badge--pulse.badge--primary {\n --pulse-color: var(--sl-color-primary-600);\n }\n\n .badge--pulse.badge--success {\n --pulse-color: var(--sl-color-success-600);\n }\n\n .badge--pulse.badge--neutral {\n --pulse-color: var(--sl-color-neutral-600);\n }\n\n .badge--pulse.badge--warning {\n --pulse-color: var(--sl-color-warning-600);\n }\n\n .badge--pulse.badge--danger {\n --pulse-color: var(--sl-color-danger-600);\n }\n\n @keyframes pulse {\n 0% {\n box-shadow: 0 0 0 0 var(--pulse-color);\n }\n 70% {\n box-shadow: 0 0 0 0.5rem transparent;\n }\n 100% {\n box-shadow: 0 0 0 0 transparent;\n }\n }\n`;\n\nexport {\n badge_styles_default\n};\n","import {\n badge_styles_default\n} from \"./chunk.WQC6OWUE.js\";\nimport {\n component_styles_default\n} from \"./chunk.TUVJKY7S.js\";\nimport {\n ShoelaceElement\n} from \"./chunk.SFSTXCXC.js\";\nimport {\n __decorateClass\n} from \"./chunk.IFDWM6P4.js\";\n\n// src/components/badge/badge.component.ts\nimport { classMap } from \"lit/directives/class-map.js\";\nimport { html } from \"lit\";\nimport { property } from \"lit/decorators.js\";\nvar SlBadge = class extends ShoelaceElement {\n constructor() {\n super(...arguments);\n this.variant = \"primary\";\n this.pill = false;\n this.pulse = false;\n }\n render() {\n return html`\n <span\n part=\"base\"\n class=${classMap({\n badge: true,\n \"badge--primary\": this.variant === \"primary\",\n \"badge--success\": this.variant === \"success\",\n \"badge--neutral\": this.variant === \"neutral\",\n \"badge--warning\": this.variant === \"warning\",\n \"badge--danger\": this.variant === \"danger\",\n \"badge--pill\": this.pill,\n \"badge--pulse\": this.pulse\n })}\n role=\"status\"\n >\n <slot></slot>\n </span>\n `;\n }\n};\nSlBadge.styles = [component_styles_default, badge_styles_default];\n__decorateClass([\n property({ reflect: true })\n], SlBadge.prototype, \"variant\", 2);\n__decorateClass([\n property({ type: Boolean, reflect: true })\n], SlBadge.prototype, \"pill\", 2);\n__decorateClass([\n property({ type: Boolean, reflect: true })\n], SlBadge.prototype, \"pulse\", 2);\n\nexport {\n SlBadge\n};\n","import {\n SlBadge\n} from \"./chunk.AQLP63PT.js\";\n\n// src/components/badge/badge.ts\nvar badge_default = SlBadge;\nSlBadge.define(\"sl-badge\");\n\nexport {\n badge_default\n};\n","// src/components/tooltip/tooltip.styles.ts\nimport { css } from \"lit\";\nvar tooltip_styles_default = css`\n :host {\n --max-width: 20rem;\n --hide-delay: 0ms;\n --show-delay: 150ms;\n\n display: contents;\n }\n\n .tooltip {\n --arrow-size: var(--sl-tooltip-arrow-size);\n --arrow-color: var(--sl-tooltip-background-color);\n }\n\n .tooltip::part(popup) {\n z-index: var(--sl-z-index-tooltip);\n }\n\n .tooltip[placement^='top']::part(popup) {\n transform-origin: bottom;\n }\n\n .tooltip[placement^='bottom']::part(popup) {\n transform-origin: top;\n }\n\n .tooltip[placement^='left']::part(popup) {\n transform-origin: right;\n }\n\n .tooltip[placement^='right']::part(popup) {\n transform-origin: left;\n }\n\n .tooltip__body {\n display: block;\n width: max-content;\n max-width: var(--max-width);\n border-radius: var(--sl-tooltip-border-radius);\n background-color: var(--sl-tooltip-background-color);\n font-family: var(--sl-tooltip-font-family);\n font-size: var(--sl-tooltip-font-size);\n font-weight: var(--sl-tooltip-font-weight);\n line-height: var(--sl-tooltip-line-height);\n color: var(--sl-tooltip-color);\n padding: var(--sl-tooltip-padding);\n pointer-events: none;\n user-select: none;\n -webkit-user-select: none;\n }\n`;\n\nexport {\n tooltip_styles_default\n};\n","// src/components/popup/popup.styles.ts\nimport { css } from \"lit\";\nvar popup_styles_default = css`\n :host {\n --arrow-color: var(--sl-color-neutral-1000);\n --arrow-size: 6px;\n\n /*\n * These properties are computed to account for the arrow's dimensions after being rotated 45º. The constant\n * 0.7071 is derived from sin(45), which is the diagonal size of the arrow's container after rotating.\n */\n --arrow-size-diagonal: calc(var(--arrow-size) * 0.7071);\n --arrow-padding-offset: calc(var(--arrow-size-diagonal) - var(--arrow-size));\n\n display: contents;\n }\n\n .popup {\n position: absolute;\n isolation: isolate;\n max-width: var(--auto-size-available-width, none);\n max-height: var(--auto-size-available-height, none);\n }\n\n .popup--fixed {\n position: fixed;\n }\n\n .popup:not(.popup--active) {\n display: none;\n }\n\n .popup__arrow {\n position: absolute;\n width: calc(var(--arrow-size-diagonal) * 2);\n height: calc(var(--arrow-size-diagonal) * 2);\n rotate: 45deg;\n background: var(--arrow-color);\n z-index: -1;\n }\n\n /* Hover bridge */\n .popup-hover-bridge:not(.popup-hover-bridge--visible) {\n display: none;\n }\n\n .popup-hover-bridge {\n position: fixed;\n z-index: calc(var(--sl-z-index-dropdown) - 1);\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n clip-path: polygon(\n var(--hover-bridge-top-left-x, 0) var(--hover-bridge-top-left-y, 0),\n var(--hover-bridge-top-right-x, 0) var(--hover-bridge-top-right-y, 0),\n var(--hover-bridge-bottom-right-x, 0) var(--hover-bridge-bottom-right-y, 0),\n var(--hover-bridge-bottom-left-x, 0) var(--hover-bridge-bottom-left-y, 0)\n );\n }\n`;\n\nexport {\n popup_styles_default\n};\n","const 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 return {\n ...rect,\n top: rect.y,\n left: rect.x,\n right: rect.x + rect.width,\n bottom: rect.y + rect.height\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 reference element when it is given a certain positioning strategy.\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 continue;\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 ...rects.floating,\n x,\n y\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 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 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 if (!specifiedFallbackPlacements && fallbackAxisSideDirection !== 'none') {\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$map$so;\n const placement = (_overflowsData$map$so = overflowsData.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$map$so[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.\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 const {\n x,\n y\n } = state;\n const diffCoords = await convertValueToCoords(state, options);\n return {\n x: x + diffCoords.x,\n y: y + diffCoords.y,\n data: diffCoords\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 —\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 overflowAvailableHeight = height - overflow[heightSide];\n const overflowAvailableWidth = width - overflow[widthSide];\n const noShift = !state.middlewareData.shift;\n let availableHeight = overflowAvailableHeight;\n let availableWidth = overflowAvailableWidth;\n if (isYAxis) {\n const maximumClippingWidth = width - overflow.left - overflow.right;\n availableWidth = alignment || noShift ? min(overflowAvailableWidth, maximumClippingWidth) : maximumClippingWidth;\n } else {\n const maximumClippingHeight = height - overflow.top - overflow.bottom;\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 ? void 0 : (_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 isContainingBlock(element) {\n const webkit = isWebKit();\n const css = getComputedStyle(element);\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 {\n currentNode = getParentNode(currentNode);\n }\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.pageXOffset,\n scrollTop: element.pageYOffset\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 return list.concat(win, win.visualViewport || [], isOverflowElement(scrollableAncestor) ? scrollableAncestor : [], win.frameElement && traverseIframes ? getOverflowAncestors(win.frameElement) : []);\n }\n return list.concat(scrollableAncestor, getOverflowAncestors(scrollableAncestor, [], traverseIframes));\n}\n\nexport { getComputedStyle, getContainingBlock, getDocumentElement, getNearestOverflowAncestor, getNodeName, getNodeScroll, getOverflowAncestors, getParentNode, getWindow, isContainingBlock, isElement, isHTMLElement, isLastTraversableNode, isNode, isOverflowElement, isShadowRoot, isTableElement, isWebKit };\n","import { rectToClientRect, computePosition as computePosition$1 } from '@floating-ui/core';\nexport { arrow, autoPlacement, detectOverflow, flip, hide, inline, limitShift, offset, shift, size } from '@floating-ui/core';\nimport { round, createCoords, max, min, floor } from '@floating-ui/utils';\nimport { getComputedStyle, isHTMLElement, isElement, getWindow, isWebKit, getDocumentElement, 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 currentIFrame = win.frameElement;\n while (currentIFrame && offsetParent && offsetWin !== win) {\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 currentIFrame = getWindow(currentIFrame).frameElement;\n }\n }\n return rectToClientRect({\n width,\n height,\n x,\n y\n });\n}\n\nfunction convertOffsetParentRelativeRectToViewportRelativeRect(_ref) {\n let {\n rect,\n offsetParent,\n strategy\n } = _ref;\n const isOffsetParentAnElement = isHTMLElement(offsetParent);\n const documentElement = getDocumentElement(offsetParent);\n if (offsetParent === documentElement) {\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 if (isOffsetParentAnElement || !isOffsetParentAnElement && strategy !== 'fixed') {\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 <html> 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 `<html>` and `<body>` rect bounds if horizontally scrollable.\nfunction getDocumentRect(element) {\n const html = getDocumentElement(element);\n const scroll = getNodeScroll(element);\n const body = element.ownerDocument.body;\n const width = max(html.scrollWidth, html.clientWidth, body.scrollWidth, body.clientWidth);\n const height = max(html.scrollHeight, html.clientHeight, body.scrollHeight, body.clientHeight);\n let x = -scroll.scrollLeft + getWindowScrollBarX(element);\n const y = -scroll.scrollTop;\n if (getComputedStyle(body).direction === 'rtl') {\n x += max(html.clientWidth, body.clientWidth) - width;\n }\n return {\n width,\n height,\n x,\n y\n };\n}\n\nfunction getViewportRect(element, strategy) {\n const win = getWindow(element);\n const html = getDocumentElement(element);\n const visualViewport = win.visualViewport;\n let width = html.clientWidth;\n let height = html.clientHeight;\n let x = 0;\n let y = 0;\n if (visualViewport) {\n width = visualViewport.width;\n height = visualViewport.height;\n const visualViewportBased = isWebKit();\n if (!visualViewportBased || visualViewportBased && strategy === 'fixed') {\n x = visualViewport.offsetLeft;\n y = visualViewport.offsetTop;\n }\n }\n return {\n width,\n height,\n x,\n y\n };\n}\n\n// Returns the inner client rect, subtracting scrollbars if present.\nfunction getInnerBoundingClientRect(element, strategy) {\n const clientRect = getBoundingClientRect(element, true, strategy === 'fixed');\n const top = clientRect.top + element.clientTop;\n const left = clientRect.left + element.clientLeft;\n const scale = isHTMLElement(element) ? getScale(element) : createCoords(1);\n const width = element.clientWidth * scale.x;\n const height = element.clientHeight * scale.y;\n const x = left * scale.x;\n const y = top * scale.y;\n return {\n width,\n height,\n x,\n y\n };\n}\nfunction getClientRectFromClippingAncestor(element, clippingAncestor, strategy) {\n let rect;\n if (clippingAncestor === 'viewport') {\n rect = getViewportRect(element, strategy);\n } else if (clippingAncestor === 'document') {\n rect = getDocumentRect(getDocumentElement(element));\n } else if (isElement(clippingAncestor)) {\n rect = getInnerBoundingClientRect(clippingAncestor, strategy);\n } else {\n const visualOffsets = getVisualOffsets(element);\n rect = {\n ...clippingAncestor,\n x: clippingAncestor.x - visualOffsets.x,\n y: clippingAncestor.y - visualOffsets.y\n };\n }\n return rectToClientRect(rect);\n}\nfunction hasFixedPositionAncestor(element, stopNode) {\n const parentNode = getParentNode(element);\n if (parentNode === stopNode || !isElement(parentNode) || isLastTraversableNode(parentNode)) {\n return false;\n }\n return getComputedStyle(parentNode).position === 'fixed' || hasFixedPositionAncestor(parentNode, stopNode);\n}\n\n// A \"clipping ancestor\" is an `overflow` element with the characteristic of\n// clipping (or hiding) child elements. This returns all clipping ancestors\n// of the given element up the tree.\nfunction getClippingElementAncestors(element, cache) {\n const cachedResult = cache.get(element);\n if (cachedResult) {\n return cachedResult;\n }\n let result = getOverflowAncestors(element, [], false).filter(el => isElement(el) && getNodeName(el) !== 'body');\n let currentContainingBlockComputedStyle = null;\n const elementIsFixed = getComputedStyle(element).position === 'fixed';\n let currentNode = elementIsFixed ? getParentNode(element) : element;\n\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n while (isElement(currentNode) && !isLastTraversableNode(currentNode)) {\n const computedStyle = getComputedStyle(currentNode);\n const currentNodeIsContaining = isContainingBlock(currentNode);\n if (!currentNodeIsContaining && computedStyle.position === 'fixed') {\n currentContainingBlockComputedStyle = null;\n }\n const shouldDropCurrentNode = elementIsFixed ? !currentNodeIsContaining && !currentContainingBlockComputedStyle : !currentNodeIsContaining && computedStyle.position === 'static' && !!currentContainingBlockComputedStyle && ['absolute', 'fixed'].includes(currentContainingBlockComputedStyle.position) || isOverflowElement(currentNode) && !currentNodeIsContaining && hasFixedPositionAncestor(element, currentNode);\n if (shouldDropCurrentNode) {\n // Drop non-containing blocks.\n result = result.filter(ancestor => ancestor !== currentNode);\n } else {\n // Record last containing block for next iteration.\n currentContainingBlockComputedStyle = computedStyle;\n }\n currentNode = getParentNode(currentNode);\n }\n cache.set(element, result);\n return result;\n}\n\n// Gets the maximum area that the element is visible in due to any number of\n// clipping ancestors.\nfunction getClippingRect(_ref) {\n let {\n element,\n boundary,\n rootBoundary,\n strategy\n } = _ref;\n const elementClippingAncestors = boundary === 'clippingAncestors' ? getClippingElementAncestors(element, this._c) : [].concat(boundary);\n const clippingAncestors = [...elementClippingAncestors, rootBoundary];\n const firstClippingAncestor = clippingAncestors[0];\n const clippingRect = clippingAncestors.reduce((accRect, clippingAncestor) => {\n const rect = getClientRectFromClippingAncestor(element, clippingAncestor, strategy);\n accRect.top = max(rect.top, accRect.top);\n accRect.right = min(rect.right, accRect.right);\n accRect.bottom = min(rect.bottom, accRect.bottom);\n accRect.left = max(rect.left, accRect.left);\n return accRect;\n }, getClientRectFromClippingAncestor(element, firstClippingAncestor, strategy));\n return {\n width: clippingRect.right - clippingRect.left,\n height: clippingRect.bottom - clippingRect.top,\n x: clippingRect.left,\n y: clippingRect.top\n };\n}\n\nfunction getDimensions(element) {\n return getCssDimensions(element);\n}\n\nfunction getRectRelativeToOffsetParent(element, offsetParent, strategy) {\n const isOffsetParentAnElement = isHTMLElement(offsetParent);\n const documentElement = getDocumentElement(offsetParent);\n const isFixed = strategy === 'fixed';\n const rect = getBoundingClientRect(element, true, isFixed, offsetParent);\n let scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n const offsets = createCoords(0);\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || isOverflowElement(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n if (isOffsetParentAnElement) {\n const offsetRect = getBoundingClientRect(offsetParent, true, isFixed, offsetParent);\n offsets.x = offsetRect.x + offsetParent.clientLeft;\n offsets.y = offsetRect.y + offsetParent.clientTop;\n } else if (documentElement) {\n offsets.x = getWindowScrollBarX(documentElement);\n }\n }\n return {\n x: rect.left + scroll.scrollLeft - offsets.x,\n y: rect.top + scroll.scrollTop - offsets.y,\n width: rect.width,\n height: rect.height\n };\n}\n\nfunction getTrueOffsetParent(element, polyfill) {\n if (!isHTMLElement(element) || getComputedStyle(element).position === 'fixed') {\n return null;\n }\n if (polyfill) {\n return polyfill(element);\n }\n return element.offsetParent;\n}\n\n// Gets the closest ancestor positioned element. Handles some edge cases,\n// such as table ancestors and cross browser bugs.\nfunction getOffsetParent(element, polyfill) {\n const window = getWindow(element);\n if (!isHTMLElement(element)) {\n return window;\n }\n let offsetParent = getTrueOffsetParent(element, polyfill);\n while (offsetParent && isTableElement(offsetParent) && getComputedStyle(offsetParent).position === 'static') {\n offsetParent = getTrueOffsetParent(offsetParent, polyfill);\n }\n if (offsetParent && (getNodeName(offsetParent) === 'html' || getNodeName(offsetParent) === 'body' && getComputedStyle(offsetParent).position === 'static' && !isContainingBlock(offsetParent))) {\n return window;\n }\n return offsetParent || getContainingBlock(element) || window;\n}\n\nconst getElementRects = async function (_ref) {\n let {\n reference,\n floating,\n strategy\n } = _ref;\n const getOffsetParentFn = this.getOffsetParent || getOffsetParent;\n const getDimensionsFn = this.getDimensions;\n return {\n reference: getRectRelativeToOffsetParent(reference, await getOffsetParentFn(floating), strategy),\n floating: {\n x: 0,\n y: 0,\n ...(await getDimensionsFn(floating))\n }\n };\n};\n\nfunction isRTL(element) {\n return getComputedStyle(element).direction === 'rtl';\n}\n\nconst platform = {\n convertOffsetParentRelativeRectToViewportRelativeRect,\n getDocumentElement,\n getClippingRect,\n getOffsetParent,\n getElementRects,\n getClientRects,\n getDimensions,\n getScale,\n isElement,\n isRTL\n};\n\n// https://samthor.au/2021/observing-dom/\nfunction observeMove(element, onMove) {\n let io = null;\n let timeoutId;\n const root = getDocumentElement(element);\n function cleanup() {\n clearTimeout(timeoutId);\n io && io.disconnect();\n io = null;\n }\n function refresh(skip, threshold) {\n if (skip === void 0) {\n skip = false;\n }\n if (threshold === void 0) {\n threshold = 1;\n }\n cleanup();\n const {\n left,\n top,\n width,\n height\n } = element.getBoundingClientRect();\n if (!skip) {\n onMove();\n }\n if (!width || !height) {\n return;\n }\n const insetTop = floor(top);\n const insetRight = floor(root.clientWidth - (left + width));\n const insetBottom = floor(root.clientHeight - (top + height));\n const insetLeft = floor(left);\n const rootMargin = -insetTop + \"px \" + -insetRight + \"px \" + -insetBottom + \"px \" + -insetLeft + \"px\";\n const options = {\n rootMargin,\n threshold: max(0, min(1, threshold)) || 1\n };\n let isFirstUpdate = true;\n function handleObserve(entries) {\n const ratio = entries[0].intersectionRatio;\n if (ratio !== threshold) {\n if (!isFirstUpdate) {\n return refresh();\n }\n if (!ratio) {\n timeoutId = setTimeout(() => {\n refresh(false, 1e-7);\n }, 100);\n } else {\n refresh(false, ratio);\n }\n }\n isFirstUpdate = false;\n }\n\n // Older browsers don't support a `document` as the root and will throw an\n // error.\n try {\n io = new IntersectionObserver(handleObserve, {\n ...options,\n // Handle <iframe>s\n root: root.ownerDocument\n });\n } catch (e) {\n io = new IntersectionObserver(handleObserve, options);\n }\n io.observe(element);\n }\n refresh(true);\n return cleanup;\n}\n\n/**\n * Automatically updates the position of the floating element when necessary.\n * Should only be called when the floating element is mounted on the DOM or\n * visible on the screen.\n * @returns cleanup function that should be invoked when the floating element is\n * removed from the DOM or hidden from the screen.\n * @see https://floating-ui.com/docs/autoUpdate\n */\nfunction autoUpdate(reference, floating, update, options) {\n if (options === void 0) {\n options = {};\n }\n const {\n ancestorScroll = true,\n ancestorResize = true,\n elementResize = typeof ResizeObserver === 'function',\n layoutShift = typeof IntersectionObserver === 'function',\n animationFrame = false\n } = options;\n const referenceEl = unwrapElement(reference);\n const ancestors = ancestorScroll || ancestorResize ? [...(referenceEl ? getOverflowAncestors(referenceEl) : []), ...getOverflowAncestors(floating)] : [];\n ancestors.forEach(ancestor => {\n ancestorScroll && ancestor.addEventListener('scroll', update, {\n passive: true\n });\n ancestorResize && ancestor.addEventListener('resize', update);\n });\n const cleanupIo = referenceEl && layoutShift ? observeMove(referenceEl, update) : null;\n let reobserveFrame = -1;\n let resizeObserver = null;\n if (elementResize) {\n resizeObserver = new ResizeObserver(_ref => {\n let [firstEntry] = _ref;\n if (firstEntry && firstEntry.target === referenceEl && resizeObserver) {\n // Prevent update loops when using the `size` middleware.\n // https://github.com/floating-ui/floating-ui/issues/1740\n resizeObserver.unobserve(floating);\n cancelAnimationFrame(reobserveFrame);\n reobserveFrame = requestAnimationFrame(() => {\n resizeObserver && resizeObserver.observe(floating);\n });\n }\n update();\n });\n if (referenceEl && !animationFrame) {\n resizeObserver.observe(referenceEl);\n }\n resizeObserver.observe(floating);\n }\n let frameId;\n let prevRefRect = animationFrame ? getBoundingClientRect(reference) : null;\n if (animationFrame) {\n frameLoop();\n }\n function frameLoop() {\n const nextRefRect = getBoundingClientRect(reference);\n if (prevRefRect && (nextRefRect.x !== prevRefRect.x || nextRefRect.y !== prevRefRect.y || nextRefRect.width !== prevRefRect.width || nextRefRect.height !== prevRefRect.height)) {\n update();\n }\n prevRefRect = nextRefRect;\n frameId = requestAnimationFrame(frameLoop);\n }\n update();\n return () => {\n ancestors.forEach(ancestor => {\n ancestorScroll && ancestor.removeEventListener('scroll', update);\n ancestorResize && ancestor.removeEventListener('resize', update);\n });\n cleanupIo && cleanupIo();\n resizeObserver && resizeObserver.disconnect();\n resizeObserver = null;\n if (animationFrame) {\n cancelAnimationFrame(frameId);\n }\n };\n}\n\n/**\n * Computes the `x` and `y` coordinates that will place the floating element\n * next to a reference element when it is given a certain CSS positioning\n * strategy.\n */\nconst computePosition = (reference, floating, options) => {\n // This caches the expensive `getClippingElementAncestors` function so that\n // multiple lifecycle resets re-use the same result. It only lives for a\n // single call. If other functions become expensive, we can add them as well.\n const cache = new Map();\n const mergedOptions = {\n platform,\n ...options\n };\n const platformWithCache = {\n ...mergedOptions.platform,\n _c: cache\n };\n return computePosition$1(reference, floating, {\n ...mergedOptions,\n platform: platformWithCache\n });\n};\n\nexport { autoUpdate, computePosition, platform };\n","function t(t){return r(t)}function e(t){return f(t,\"offsetTop\")}function n(t){return f(t,\"offsetLeft\")}function o(t){return t.assignedSlot?t.assignedSlot:t.parentNode instanceof ShadowRoot?t.parentNode.host:t.parentNode}function r(t){for(let e=t;e;e=o(e))if(e instanceof Element&&\"none\"===getComputedStyle(e).display)return null;for(let e=o(t);e;e=o(e)){if(!(e instanceof Element))continue;const t=getComputedStyle(e);if(\"contents\"!==t.display){if(\"static\"!==t.position||\"none\"!==t.filter)return e;if(\"BODY\"===e.tagName)return e}}return null}function f(t,e){let n=t[e],o=r(t);const f=function(t){const e=new Set;let n=t.getRootNode();for(;n;)e.add(n),n=n.parentNode?n.parentNode.getRootNode():null;return e}(t);for(;o&&!f.has(o.getRootNode());)n-=o[e],o=r(o);return n}export{n as offsetLeft,t as offsetParent,e as offsetTop};\n","import {\n popup_styles_default\n} from \"./chunk.3KSWVBQ5.js\";\nimport {\n component_styles_default\n} from \"./chunk.TUVJKY7S.js\";\nimport {\n ShoelaceElement\n} from \"./chunk.SFSTXCXC.js\";\nimport {\n __decorateClass,\n __spreadProps,\n __spreadValues\n} from \"./chunk.IFDWM6P4.js\";\n\n// src/components/popup/popup.component.ts\nimport { arrow, autoUpdate, computePosition, flip, offset, platform, shift, size } from \"@floating-ui/dom\";\nimport { classMap } from \"lit/directives/class-map.js\";\nimport { html } from \"lit\";\nimport { offsetParent } from \"composed-offset-position\";\nimport { property, query } from \"lit/decorators.js\";\nfunction isVirtualElement(e) {\n return e !== null && typeof e === \"object\" && \"getBoundingClientRect\" in e && (\"contextElement\" in e ? e instanceof Element : true);\n}\nvar SlPopup = class extends ShoelaceElement {\n constructor() {\n super(...arguments);\n this.active = false;\n this.placement = \"top\";\n this.strategy = \"absolute\";\n this.distance = 0;\n this.skidding = 0;\n this.arrow = false;\n this.arrowPlacement = \"anchor\";\n this.arrowPadding = 10;\n this.flip = false;\n this.flipFallbackPlacements = \"\";\n this.flipFallbackStrategy = \"best-fit\";\n this.flipPadding = 0;\n this.shift = false;\n this.shiftPadding = 0;\n this.autoSizePadding = 0;\n this.hoverBridge = false;\n this.updateHoverBridge = () => {\n if (this.hoverBridge && this.anchorEl) {\n const anchorRect = this.anchorEl.getBoundingClientRect();\n const popupRect = this.popup.getBoundingClientRect();\n const isVertical = this.placement.includes(\"top\") || this.placement.includes(\"bottom\");\n let topLeftX = 0;\n let topLeftY = 0;\n let topRightX = 0;\n let topRightY = 0;\n let bottomLeftX = 0;\n let bottomLeftY = 0;\n let bottomRightX = 0;\n let bottomRightY = 0;\n if (isVertical) {\n if (anchorRect.top < popupRect.top) {\n topLeftX = anchorRect.left;\n topLeftY = anchorRect.bottom;\n topRightX = anchorRect.right;\n topRightY = anchorRect.bottom;\n bottomLeftX = popupRect.left;\n bottomLeftY = popupRect.top;\n bottomRightX = popupRect.right;\n bottomRightY = popupRect.top;\n } else {\n topLeftX = popupRect.left;\n topLeftY = popupRect.bottom;\n topRightX = popupRect.right;\n topRightY = popupRect.bottom;\n bottomLeftX = anchorRect.left;\n bottomLeftY = anchorRect.top;\n bottomRightX = anchorRect.right;\n bottomRightY = anchorRect.top;\n }\n } else {\n if (anchorRect.left < popupRect.left) {\n topLeftX = anchorRect.right;\n topLeftY = anchorRect.top;\n topRightX = popupRect.left;\n topRightY = popupRect.top;\n bottomLeftX = anchorRect.right;\n bottomLeftY = anchorRect.bottom;\n bottomRightX = popupRect.left;\n bottomRightY = popupRect.bottom;\n } else {\n topLeftX = popupRect.right;\n topLeftY = popupRect.top;\n topRightX = anchorRect.left;\n topRightY = anchorRect.top;\n bottomLeftX = popupRect.right;\n bottomLeftY = popupRect.bottom;\n bottomRightX = anchorRect.left;\n bottomRightY = anchorRect.bottom;\n }\n }\n this.style.setProperty(\"--hover-bridge-top-left-x\", `${topLeftX}px`);\n this.style.setProperty(\"--hover-bridge-top-left-y\", `${topLeftY}px`);\n this.style.setProperty(\"--hover-bridge-top-right-x\", `${topRightX}px`);\n this.style.setProperty(\"--hover-bridge-top-right-y\", `${topRightY}px`);\n this.style.setProperty(\"--hover-bridge-bottom-left-x\", `${bottomLeftX}px`);\n this.style.setProperty(\"--hover-bridge-bottom-left-y\", `${bottomLeftY}px`);\n this.style.setProperty(\"--hover-bridge-bottom-right-x\", `${bottomRightX}px`);\n this.style.setProperty(\"--hover-bridge-bottom-right-y\", `${bottomRightY}px`);\n }\n };\n }\n async connectedCallback() {\n super.connectedCallback();\n await this.updateComplete;\n this.start();\n }\n disconnectedCallback() {\n super.disconnectedCallback();\n this.stop();\n }\n async updated(changedProps) {\n super.updated(changedProps);\n if (changedProps.has(\"active\")) {\n if (this.active) {\n this.start();\n } else {\n this.stop();\n }\n }\n if (changedProps.has(\"anchor\")) {\n this.handleAnchorChange();\n }\n if (this.active) {\n await this.updateComplete;\n this.reposition();\n }\n }\n async handleAnchorChange() {\n await this.stop();\n if (this.anchor && typeof this.anchor === \"string\") {\n const root = this.getRootNode();\n this.anchorEl = root.getElementById(this.anchor);\n } else if (this.anchor instanceof Element || isVirtualElement(this.anchor)) {\n this.anchorEl = this.anchor;\n } else {\n this.anchorEl = this.querySelector('[slot=\"anchor\"]');\n }\n if (this.anchorEl instanceof HTMLSlotElement) {\n this.anchorEl = this.anchorEl.assignedElements({ flatten: true })[0];\n }\n if (this.anchorEl) {\n this.start();\n }\n }\n start() {\n if (!this.anchorEl) {\n return;\n }\n this.cleanup = autoUpdate(this.anchorEl, this.popup, () => {\n this.reposition();\n });\n }\n async stop() {\n return new Promise((resolve) => {\n if (this.cleanup) {\n this.cleanup();\n this.cleanup = void 0;\n this.removeAttribute(\"data-current-placement\");\n this.style.removeProperty(\"--auto-size-available-width\");\n this.style.removeProperty(\"--auto-size-available-height\");\n requestAnimationFrame(() => resolve());\n } else {\n resolve();\n }\n });\n }\n /** Forces the popup to recalculate and reposition itself. */\n reposition() {\n if (!this.active || !this.anchorEl) {\n return;\n }\n const middleware = [\n // The offset middleware goes first\n offset({ mainAxis: this.distance, crossAxis: this.skidding })\n ];\n if (this.sync) {\n middleware.push(\n size({\n apply: ({ rects }) => {\n const syncWidth = this.sync === \"width\" || this.sync === \"both\";\n const syncHeight = this.sync === \"height\" || this.sync === \"both\";\n this.popup.style.width = syncWidth ? `${rects.reference.width}px` : \"\";\n this.popup.style.height = syncHeight ? `${rects.reference.height}px` : \"\";\n }\n })\n );\n } else {\n this.popup.style.width = \"\";\n this.popup.style.height = \"\";\n }\n if (this.flip) {\n middleware.push(\n flip({\n boundary: this.flipBoundary,\n // @ts-expect-error - We're converting a string attribute to an array here\n fallbackPlacements: this.flipFallbackPlacements,\n fallbackStrategy: this.flipFallbackStrategy === \"best-fit\" ? \"bestFit\" : \"initialPlacement\",\n padding: this.flipPadding\n })\n );\n }\n if (this.shift) {\n middleware.push(\n shift({\n boundary: this.shiftBoundary,\n padding: this.shiftPadding\n })\n );\n }\n if (this.autoSize) {\n middleware.push(\n size({\n boundary: this.autoSizeBoundary,\n padding: this.autoSizePadding,\n apply: ({ availableWidth, availableHeight }) => {\n if (this.autoSize === \"vertical\" || this.autoSize === \"both\") {\n this.style.setProperty(\"--auto-size-available-height\", `${availableHeight}px`);\n } else {\n this.style.removeProperty(\"--auto-size-available-height\");\n }\n if (this.autoSize === \"horizontal\" || this.autoSize === \"both\") {\n this.style.setProperty(\"--auto-size-available-width\", `${availableWidth}px`);\n } else {\n this.style.removeProperty(\"--auto-size-available-width\");\n }\n }\n })\n );\n } else {\n this.style.removeProperty(\"--auto-size-available-width\");\n this.style.removeProperty(\"--auto-size-available-height\");\n }\n if (this.arrow) {\n middleware.push(\n arrow({\n element: this.arrowEl,\n padding: this.arrowPadding\n })\n );\n }\n const getOffsetParent = this.strategy === \"absolute\" ? (element) => platform.getOffsetParent(element, offsetParent) : platform.getOffsetParent;\n computePosition(this.anchorEl, this.popup, {\n placement: this.placement,\n middleware,\n strategy: this.strategy,\n platform: __spreadProps(__spreadValues({}, platform), {\n getOffsetParent\n })\n }).then(({ x, y, middlewareData, placement }) => {\n const isRtl = getComputedStyle(this).direction === \"rtl\";\n const staticSide = { top: \"bottom\", right: \"left\", bottom: \"top\", left: \"right\" }[placement.split(\"-\")[0]];\n this.setAttribute(\"data-current-placement\", placement);\n Object.assign(this.popup.style, {\n left: `${x}px`,\n top: `${y}px`\n });\n if (this.arrow) {\n const arrowX = middlewareData.arrow.x;\n const arrowY = middlewareData.arrow.y;\n let top = \"\";\n let right = \"\";\n let bottom = \"\";\n let left = \"\";\n if (this.arrowPlacement === \"start\") {\n const value = typeof arrowX === \"number\" ? `calc(${this.arrowPadding}px - var(--arrow-padding-offset))` : \"\";\n top = typeof arrowY === \"number\" ? `calc(${this.arrowPadding}px - var(--arrow-padding-offset))` : \"\";\n right = isRtl ? value : \"\";\n left = isRtl ? \"\" : value;\n } else if (this.arrowPlacement === \"end\") {\n const value = typeof arrowX === \"number\" ? `calc(${this.arrowPadding}px - var(--arrow-padding-offset))` : \"\";\n right = isRtl ? \"\" : value;\n left = isRtl ? value : \"\";\n bottom = typeof arrowY === \"number\" ? `calc(${this.arrowPadding}px - var(--arrow-padding-offset))` : \"\";\n } else if (this.arrowPlacement === \"center\") {\n left = typeof arrowX === \"number\" ? `calc(50% - var(--arrow-size-diagonal))` : \"\";\n top = typeof arrowY === \"number\" ? `calc(50% - var(--arrow-size-diagonal))` : \"\";\n } else {\n left = typeof arrowX === \"number\" ? `${arrowX}px` : \"\";\n top = typeof arrowY === \"number\" ? `${arrowY}px` : \"\";\n }\n Object.assign(this.arrowEl.style, {\n top,\n right,\n bottom,\n left,\n [staticSide]: \"calc(var(--arrow-size-diagonal) * -1)\"\n });\n }\n });\n requestAnimationFrame(() => this.updateHoverBridge());\n this.emit(\"sl-reposition\");\n }\n render() {\n return html`\n <slot name=\"anchor\" @slotchange=${this.handleAnchorChange}></slot>\n\n <span\n part=\"hover-bridge\"\n class=${classMap({\n \"popup-hover-bridge\": true,\n \"popup-hover-bridge--visible\": this.hoverBridge && this.active\n })}\n ></span>\n\n <div\n part=\"popup\"\n class=${classMap({\n popup: true,\n \"popup--active\": this.active,\n \"popup--fixed\": this.strategy === \"fixed\",\n \"popup--has-arrow\": this.arrow\n })}\n >\n <slot></slot>\n ${this.arrow ? html`<div part=\"arrow\" class=\"popup__arrow\" role=\"presentation\"></div>` : \"\"}\n </div>\n `;\n }\n};\nSlPopup.styles = [component_styles_default, popup_styles_default];\n__decorateClass([\n query(\".popup\")\n], SlPopup.prototype, \"popup\", 2);\n__decorateClass([\n query(\".popup__arrow\")\n], SlPopup.prototype, \"arrowEl\", 2);\n__decorateClass([\n property()\n], SlPopup.prototype, \"anchor\", 2);\n__decorateClass([\n property({ type: Boolean, reflect: true })\n], SlPopup.prototype, \"active\", 2);\n__decorateClass([\n property({ reflect: true })\n], SlPopup.prototype, \"placement\", 2);\n__decorateClass([\n property({ reflect: true })\n], SlPopup.prototype, \"strategy\", 2);\n__decorateClass([\n property({ type: Number })\n], SlPopup.prototype, \"distance\", 2);\n__decorateClass([\n property({ type: Number })\n], SlPopup.prototype, \"skidding\", 2);\n__decorateClass([\n property({ type: Boolean })\n], SlPopup.prototype, \"arrow\", 2);\n__decorateClass([\n property({ attribute: \"arrow-placement\" })\n], SlPopup.prototype, \"arrowPlacement\", 2);\n__decorateClass([\n property({ attribute: \"arrow-padding\", type: Number })\n], SlPopup.prototype, \"arrowPadding\", 2);\n__decorateClass([\n property({ type: Boolean })\n], SlPopup.prototype, \"flip\", 2);\n__decorateClass([\n property({\n attribute: \"flip-fallback-placements\",\n converter: {\n fromAttribute: (value) => {\n return value.split(\" \").map((p) => p.trim()).filter((p) => p !== \"\");\n },\n toAttribute: (value) => {\n return value.join(\" \");\n }\n }\n })\n], SlPopup.prototype, \"flipFallbackPlacements\", 2);\n__decorateClass([\n property({ attribute: \"flip-fallback-strategy\" })\n], SlPopup.prototype, \"flipFallbackStrategy\", 2);\n__decorateClass([\n property({ type: Object })\n], SlPopup.prototype, \"flipBoundary\", 2);\n__decorateClass([\n property({ attribute: \"flip-padding\", type: Number })\n], SlPopup.prototype, \"flipPadding\", 2);\n__decorateClass([\n property({ type: Boolean })\n], SlPopup.prototype, \"shift\", 2);\n__decorateClass([\n property({ type: Object })\n], SlPopup.prototype, \"shiftBoundary\", 2);\n__decorateClass([\n property({ attribute: \"shift-padding\", type: Number })\n], SlPopup.prototype, \"shiftPadding\", 2);\n__decorateClass([\n property({ attribute: \"auto-size\" })\n], SlPopup.prototype, \"autoSize\", 2);\n__decorateClass([\n property()\n], SlPopup.prototype, \"sync\", 2);\n__decorateClass([\n property({ type: Object })\n], SlPopup.prototype, \"autoSizeBoundary\", 2);\n__decorateClass([\n property({ attribute: \"auto-size-padding\", type: Number })\n], SlPopup.prototype, \"autoSizePadding\", 2);\n__decorateClass([\n property({ attribute: \"hover-bridge\", type: Boolean })\n], SlPopup.prototype, \"hoverBridge\", 2);\n\nexport {\n SlPopup\n};\n","import {\n __spreadProps,\n __spreadValues\n} from \"./chunk.IFDWM6P4.js\";\n\n// src/utilities/animation-registry.ts\nvar defaultAnimationRegistry = /* @__PURE__ */ new Map();\nvar customAnimationRegistry = /* @__PURE__ */ new WeakMap();\nfunction ensureAnimation(animation) {\n return animation != null ? animation : { keyframes: [], options: { duration: 0 } };\n}\nfunction getLogicalAnimation(animation, dir) {\n if (dir.toLowerCase() === \"rtl\") {\n return {\n keyframes: animation.rtlKeyframes || animation.keyframes,\n options: animation.options\n };\n }\n return animation;\n}\nfunction setDefaultAnimation(animationName, animation) {\n defaultAnimationRegistry.set(animationName, ensureAnimation(animation));\n}\nfunction setAnimation(el, animationName, animation) {\n customAnimationRegistry.set(el, __spreadProps(__spreadValues({}, customAnimationRegistry.get(el)), { [animationName]: ensureAnimation(animation) }));\n}\nfunction getAnimation(el, animationName, options) {\n const customAnimation = customAnimationRegistry.get(el);\n if (customAnimation == null ? void 0 : customAnimation[animationName]) {\n return getLogicalAnimation(customAnimation[animationName], options.dir);\n }\n const defaultAnimation = defaultAnimationRegistry.get(animationName);\n if (defaultAnimation) {\n return getLogicalAnimation(defaultAnimation, options.dir);\n }\n return {\n keyframes: [],\n options: { duration: 0 }\n };\n}\n\nexport {\n setDefaultAnimation,\n setAnimation,\n getAnimation\n};\n","// src/internal/event.ts\nfunction waitForEvent(el, eventName) {\n return new Promise((resolve) => {\n function done(event) {\n if (event.target === el) {\n el.removeEventListener(eventName, done);\n resolve();\n }\n }\n el.addEventListener(eventName, done);\n });\n}\n\nexport {\n waitForEvent\n};\n","import {\n __spreadProps,\n __spreadValues\n} from \"./chunk.IFDWM6P4.js\";\n\n// src/internal/animate.ts\nfunction animateTo(el, keyframes, options) {\n return new Promise((resolve) => {\n if ((options == null ? void 0 : options.duration) === Infinity) {\n throw new Error(\"Promise-based animations must be finite.\");\n }\n const animation = el.animate(keyframes, __spreadProps(__spreadValues({}, options), {\n duration: prefersReducedMotion() ? 0 : options.duration\n }));\n animation.addEventListener(\"cancel\", resolve, { once: true });\n animation.addEventListener(\"finish\", resolve, { once: true });\n });\n}\nfunction parseDuration(delay) {\n delay = delay.toString().toLowerCase();\n if (delay.indexOf(\"ms\") > -1) {\n return parseFloat(delay);\n }\n if (delay.indexOf(\"s\") > -1) {\n return parseFloat(delay) * 1e3;\n }\n return parseFloat(delay);\n}\nfunction prefersReducedMotion() {\n const query = window.matchMedia(\"(prefers-reduced-motion: reduce)\");\n return query.matches;\n}\nfunction stopAnimations(el) {\n return Promise.all(\n el.getAnimations().map((animation) => {\n return new Promise((resolve) => {\n animation.cancel();\n requestAnimationFrame(resolve);\n });\n })\n );\n}\nfunction shimKeyframesHeightAuto(keyframes, calculatedHeight) {\n return keyframes.map((keyframe) => __spreadProps(__spreadValues({}, keyframe), {\n height: keyframe.height === \"auto\" ? `${calculatedHeight}px` : keyframe.height\n }));\n}\n\nexport {\n animateTo,\n parseDuration,\n prefersReducedMotion,\n stopAnimations,\n shimKeyframesHeightAuto\n};\n","const connectedElements = new Set();\nconst documentElementObserver = new MutationObserver(update);\nconst translations = new Map();\nlet documentDirection = document.documentElement.dir || 'ltr';\nlet documentLanguage = document.documentElement.lang || navigator.language;\nlet fallback;\ndocumentElementObserver.observe(document.documentElement, {\n attributes: true,\n attributeFilter: ['dir', 'lang']\n});\nexport function registerTranslation(...translation) {\n translation.map(t => {\n const code = t.$code.toLowerCase();\n if (translations.has(code)) {\n translations.set(code, Object.assign(Object.assign({}, translations.get(code)), t));\n }\n else {\n translations.set(code, t);\n }\n if (!fallback) {\n fallback = t;\n }\n });\n update();\n}\nexport function update() {\n documentDirection = document.documentElement.dir || 'ltr';\n documentLanguage = document.documentElement.lang || navigator.language;\n [...connectedElements.keys()].map((el) => {\n if (typeof el.requestUpdate === 'function') {\n el.requestUpdate();\n }\n });\n}\nexport class LocalizeController {\n constructor(host) {\n this.host = host;\n this.host.addController(this);\n }\n hostConnected() {\n connectedElements.add(this.host);\n }\n hostDisconnected() {\n connectedElements.delete(this.host);\n }\n dir() {\n return `${this.host.dir || documentDirection}`.toLowerCase();\n }\n lang() {\n return `${this.host.lang || documentLanguage}`.toLowerCase();\n }\n getTranslationData(lang) {\n var _a, _b;\n const locale = new Intl.Locale(lang.replace(/_/g, '-'));\n const language = locale === null || locale === void 0 ? void 0 : locale.language.toLowerCase();\n const region = (_b = (_a = locale === null || locale === void 0 ? void 0 : locale.region) === null || _a === void 0 ? void 0 : _a.toLowerCase()) !== null && _b !== void 0 ? _b : '';\n const primary = translations.get(`${language}-${region}`);\n const secondary = translations.get(language);\n return { locale, language, region, primary, secondary };\n }\n exists(key, options) {\n var _a;\n const { primary, secondary } = this.getTranslationData((_a = options.lang) !== null && _a !== void 0 ? _a : this.lang());\n options = Object.assign({ includeFallback: false }, options);\n if ((primary && primary[key]) ||\n (secondary && secondary[key]) ||\n (options.includeFallback && fallback && fallback[key])) {\n return true;\n }\n return false;\n }\n term(key, ...args) {\n const { primary, secondary } = this.getTranslationData(this.lang());\n let term;\n if (primary && primary[key]) {\n term = primary[key];\n }\n else if (secondary && secondary[key]) {\n term = secondary[key];\n }\n else if (fallback && fallback[key]) {\n term = fallback[key];\n }\n else {\n console.error(`No translation found for: ${String(key)}`);\n return String(key);\n }\n if (typeof term === 'function') {\n return term(...args);\n }\n return term;\n }\n date(dateToFormat, options) {\n dateToFormat = new Date(dateToFormat);\n return new Intl.DateTimeFormat(this.lang(), options).format(dateToFormat);\n }\n number(numberToFormat, options) {\n numberToFormat = Number(numberToFormat);\n return isNaN(numberToFormat) ? '' : new Intl.NumberFormat(this.lang(), options).format(numberToFormat);\n }\n relativeTime(value, unit, options) {\n return new Intl.RelativeTimeFormat(this.lang(), options).format(value, unit);\n }\n}\n","// src/translations/en.ts\nimport { registerTranslation } from \"@shoelace-style/localize\";\nvar translation = {\n $code: \"en\",\n $name: \"English\",\n $dir: \"ltr\",\n carousel: \"Carousel\",\n clearEntry: \"Clear entry\",\n close: \"Close\",\n copied: \"Copied\",\n copy: \"Copy\",\n currentValue: \"Current value\",\n error: \"Error\",\n goToSlide: (slide, count) => `Go to slide ${slide} of ${count}`,\n hidePassword: \"Hide password\",\n loading: \"Loading\",\n nextSlide: \"Next slide\",\n numOptionsSelected: (num) => {\n if (num === 0)\n return \"No options selected\";\n if (num === 1)\n return \"1 option selected\";\n return `${num} options selected`;\n },\n previousSlide: \"Previous slide\",\n progress: \"Progress\",\n remove: \"Remove\",\n resize: \"Resize\",\n scrollToEnd: \"Scroll to end\",\n scrollToStart: \"Scroll to start\",\n selectAColorFromTheScreen: \"Select a color from the screen\",\n showPassword: \"Show password\",\n slideNum: (slide) => `Slide ${slide}`,\n toggleColorFormat: \"Toggle color format\"\n};\nregisterTranslation(translation);\nvar en_default = translation;\n\nexport {\n en_default\n};\n","import {\n en_default\n} from \"./chunk.MAS2SHYD.js\";\n\n// src/utilities/localize.ts\nimport { LocalizeController as DefaultLocalizationController, registerTranslation } from \"@shoelace-style/localize\";\nimport { registerTranslation as registerTranslation2 } from \"@shoelace-style/localize\";\nvar LocalizeController = class extends DefaultLocalizationController {\n};\nregisterTranslation(en_default);\n\nexport {\n LocalizeController,\n registerTranslation2 as registerTranslation\n};\n","import {\n tooltip_styles_default\n} from \"./chunk.BCNEWSXW.js\";\nimport {\n SlPopup\n} from \"./chunk.SUWKRDXP.js\";\nimport {\n getAnimation,\n setDefaultAnimation\n} from \"./chunk.DHU6MIVB.js\";\nimport {\n waitForEvent\n} from \"./chunk.B4BZKR24.js\";\nimport {\n animateTo,\n parseDuration,\n stopAnimations\n} from \"./chunk.LHI6QEL2.js\";\nimport {\n LocalizeController\n} from \"./chunk.WLV3FVBR.js\";\nimport {\n watch\n} from \"./chunk.2FB5TK5H.js\";\nimport {\n component_styles_default\n} from \"./chunk.TUVJKY7S.js\";\nimport {\n ShoelaceElement\n} from \"./chunk.SFSTXCXC.js\";\nimport {\n __decorateClass\n} from \"./chunk.IFDWM6P4.js\";\n\n// src/components/tooltip/tooltip.component.ts\nimport { classMap } from \"lit/directives/class-map.js\";\nimport { html } from \"lit\";\nimport { property, query } from \"lit/decorators.js\";\nvar SlTooltip = class extends ShoelaceElement {\n constructor() {\n super();\n this.localize = new LocalizeController(this);\n this.content = \"\";\n this.placement = \"top\";\n this.disabled = false;\n this.distance = 8;\n this.open = false;\n this.skidding = 0;\n this.trigger = \"hover focus\";\n this.hoist = false;\n this.handleBlur = () => {\n if (this.hasTrigger(\"focus\")) {\n this.hide();\n }\n };\n this.handleClick = () => {\n if (this.hasTrigger(\"click\")) {\n if (this.open) {\n this.hide();\n } else {\n this.show();\n }\n }\n };\n this.handleFocus = () => {\n if (this.hasTrigger(\"focus\")) {\n this.show();\n }\n };\n this.handleDocumentKeyDown = (event) => {\n if (event.key === \"Escape\") {\n event.stopPropagation();\n this.hide();\n }\n };\n this.handleMouseOver = () => {\n if (this.hasTrigger(\"hover\")) {\n const delay = parseDuration(getComputedStyle(this).getPropertyValue(\"--show-delay\"));\n clearTimeout(this.hoverTimeout);\n this.hoverTimeout = window.setTimeout(() => this.show(), delay);\n }\n };\n this.handleMouseOut = () => {\n if (this.hasTrigger(\"hover\")) {\n const delay = parseDuration(getComputedStyle(this).getPropertyValue(\"--hide-delay\"));\n clearTimeout(this.hoverTimeout);\n this.hoverTimeout = window.setTimeout(() => this.hide(), delay);\n }\n };\n this.addEventListener(\"blur\", this.handleBlur, true);\n this.addEventListener(\"focus\", this.handleFocus, true);\n this.addEventListener(\"click\", this.handleClick);\n this.addEventListener(\"mouseover\", this.handleMouseOver);\n this.addEventListener(\"mouseout\", this.handleMouseOut);\n }\n disconnectedCallback() {\n var _a;\n (_a = this.closeWatcher) == null ? void 0 : _a.destroy();\n document.removeEventListener(\"keydown\", this.handleDocumentKeyDown);\n }\n firstUpdated() {\n this.body.hidden = !this.open;\n if (this.open) {\n this.popup.active = true;\n this.popup.reposition();\n }\n }\n hasTrigger(triggerType) {\n const triggers = this.trigger.split(\" \");\n return triggers.includes(triggerType);\n }\n async handleOpenChange() {\n var _a, _b;\n if (this.open) {\n if (this.disabled) {\n return;\n }\n this.emit(\"sl-show\");\n if (\"CloseWatcher\" in window) {\n (_a = this.closeWatcher) == null ? void 0 : _a.destroy();\n this.closeWatcher = new CloseWatcher();\n this.closeWatcher.onclose = () => {\n this.hide();\n };\n } else {\n document.addEventListener(\"keydown\", this.handleDocumentKeyDown);\n }\n await stopAnimations(this.body);\n this.body.hidden = false;\n this.popup.active = true;\n const { keyframes, options } = getAnimation(this, \"tooltip.show\", { dir: this.localize.dir() });\n await animateTo(this.popup.popup, keyframes, options);\n this.popup.reposition();\n this.emit(\"sl-after-show\");\n } else {\n this.emit(\"sl-hide\");\n (_b = this.closeWatcher) == null ? void 0 : _b.destroy();\n document.removeEventListener(\"keydown\", this.handleDocumentKeyDown);\n await stopAnimations(this.body);\n const { keyframes, options } = getAnimation(this, \"tooltip.hide\", { dir: this.localize.dir() });\n await animateTo(this.popup.popup, keyframes, options);\n this.popup.active = false;\n this.body.hidden = true;\n this.emit(\"sl-after-hide\");\n }\n }\n async handleOptionsChange() {\n if (this.hasUpdated) {\n await this.updateComplete;\n this.popup.reposition();\n }\n }\n handleDisabledChange() {\n if (this.disabled && this.open) {\n this.hide();\n }\n }\n /** Shows the tooltip. */\n async show() {\n if (this.open) {\n return void 0;\n }\n this.open = true;\n return waitForEvent(this, \"sl-after-show\");\n }\n /** Hides the tooltip */\n async hide() {\n if (!this.open) {\n return void 0;\n }\n this.open = false;\n return waitForEvent(this, \"sl-after-hide\");\n }\n //\n // NOTE: Tooltip is a bit unique in that we're using aria-live instead of aria-labelledby to trick screen readers into\n // announcing the content. It works really well, but it violates an accessibility rule. We're also adding the\n // aria-describedby attribute to a slot, which is required by <sl-popup> to correctly locate the first assigned\n // element, otherwise positioning is incorrect.\n //\n render() {\n return html`\n <sl-popup\n part=\"base\"\n exportparts=\"\n popup:base__popup,\n arrow:base__arrow\n \"\n class=${classMap({\n tooltip: true,\n \"tooltip--open\": this.open\n })}\n placement=${this.placement}\n distance=${this.distance}\n skidding=${this.skidding}\n strategy=${this.hoist ? \"fixed\" : \"absolute\"}\n flip\n shift\n arrow\n hover-bridge\n >\n ${\"\"}\n <slot slot=\"anchor\" aria-describedby=\"tooltip\"></slot>\n\n ${\"\"}\n <div part=\"body\" id=\"tooltip\" class=\"tooltip__body\" role=\"tooltip\" aria-live=${this.open ? \"polite\" : \"off\"}>\n <slot name=\"content\">${this.content}</slot>\n </div>\n </sl-popup>\n `;\n }\n};\nSlTooltip.styles = [component_styles_default, tooltip_styles_default];\nSlTooltip.dependencies = { \"sl-popup\": SlPopup };\n__decorateClass([\n query(\"slot:not([name])\")\n], SlTooltip.prototype, \"defaultSlot\", 2);\n__decorateClass([\n query(\".tooltip__body\")\n], SlTooltip.prototype, \"body\", 2);\n__decorateClass([\n query(\"sl-popup\")\n], SlTooltip.prototype, \"popup\", 2);\n__decorateClass([\n property()\n], SlTooltip.prototype, \"content\", 2);\n__decorateClass([\n property()\n], SlTooltip.prototype, \"placement\", 2);\n__decorateClass([\n property({ type: Boolean, reflect: true })\n], SlTooltip.prototype, \"disabled\", 2);\n__decorateClass([\n property({ type: Number })\n], SlTooltip.prototype, \"distance\", 2);\n__decorateClass([\n property({ type: Boolean, reflect: true })\n], SlTooltip.prototype, \"open\", 2);\n__decorateClass([\n property({ type: Number })\n], SlTooltip.prototype, \"skidding\", 2);\n__decorateClass([\n property()\n], SlTooltip.prototype, \"trigger\", 2);\n__decorateClass([\n property({ type: Boolean })\n], SlTooltip.prototype, \"hoist\", 2);\n__decorateClass([\n watch(\"open\", { waitUntilFirstUpdate: true })\n], SlTooltip.prototype, \"handleOpenChange\", 1);\n__decorateClass([\n watch([\"content\", \"distance\", \"hoist\", \"placement\", \"skidding\"])\n], SlTooltip.prototype, \"handleOptionsChange\", 1);\n__decorateClass([\n watch(\"disabled\")\n], SlTooltip.prototype, \"handleDisabledChange\", 1);\nsetDefaultAnimation(\"tooltip.show\", {\n keyframes: [\n { opacity: 0, scale: 0.8 },\n { opacity: 1, scale: 1 }\n ],\n options: { duration: 150, easing: \"ease\" }\n});\nsetDefaultAnimation(\"tooltip.hide\", {\n keyframes: [\n { opacity: 1, scale: 1 },\n { opacity: 0, scale: 0.8 }\n ],\n options: { duration: 150, easing: \"ease\" }\n});\n\nexport {\n SlTooltip\n};\n","import {\n SlTooltip\n} from \"./chunk.5UHNODB4.js\";\n\n// src/components/tooltip/tooltip.ts\nvar tooltip_default = SlTooltip;\nSlTooltip.define(\"sl-tooltip\");\n\nexport {\n tooltip_default\n};\n","// src/components/spinner/spinner.styles.ts\nimport { css } from \"lit\";\nvar spinner_styles_default = css`\n :host {\n --track-width: 2px;\n --track-color: rgb(128 128 128 / 25%);\n --indicator-color: var(--sl-color-primary-600);\n --speed: 2s;\n\n display: inline-flex;\n width: 1em;\n height: 1em;\n flex: none;\n }\n\n .spinner {\n flex: 1 1 auto;\n height: 100%;\n width: 100%;\n }\n\n .spinner__track,\n .spinner__indicator {\n fill: none;\n stroke-width: var(--track-width);\n r: calc(0.5em - var(--track-width) / 2);\n cx: 0.5em;\n cy: 0.5em;\n transform-origin: 50% 50%;\n }\n\n .spinner__track {\n stroke: var(--track-color);\n transform-origin: 0% 0%;\n }\n\n .spinner__indicator {\n stroke: var(--indicator-color);\n stroke-linecap: round;\n stroke-dasharray: 150% 75%;\n animation: spin var(--speed) linear infinite;\n }\n\n @keyframes spin {\n 0% {\n transform: rotate(0deg);\n stroke-dasharray: 0.05em, 3em;\n }\n\n 50% {\n transform: rotate(450deg);\n stroke-dasharray: 1.375em, 1.375em;\n }\n\n 100% {\n transform: rotate(1080deg);\n stroke-dasharray: 0.05em, 3em;\n }\n }\n`;\n\nexport {\n spinner_styles_default\n};\n","import {\n spinner_styles_default\n} from \"./chunk.7DUCI5S4.js\";\nimport {\n LocalizeController\n} from \"./chunk.WLV3FVBR.js\";\nimport {\n component_styles_default\n} from \"./chunk.TUVJKY7S.js\";\nimport {\n ShoelaceElement\n} from \"./chunk.SFSTXCXC.js\";\n\n// src/components/spinner/spinner.component.ts\nimport { html } from \"lit\";\nvar SlSpinner = class extends ShoelaceElement {\n constructor() {\n super(...arguments);\n this.localize = new LocalizeController(this);\n }\n render() {\n return html`\n <svg part=\"base\" class=\"spinner\" role=\"progressbar\" aria-label=${this.localize.term(\"loading\")}>\n <circle class=\"spinner__track\"></circle>\n <circle class=\"spinner__indicator\"></circle>\n </svg>\n `;\n }\n};\nSlSpinner.styles = [component_styles_default, spinner_styles_default];\n\nexport {\n SlSpinner\n};\n","import {\n __spreadProps,\n __spreadValues\n} from \"./chunk.IFDWM6P4.js\";\n\n// src/internal/form.ts\nvar formCollections = /* @__PURE__ */ new WeakMap();\nvar reportValidityOverloads = /* @__PURE__ */ new WeakMap();\nvar checkValidityOverloads = /* @__PURE__ */ new WeakMap();\nvar userInteractedControls = /* @__PURE__ */ new WeakSet();\nvar interactions = /* @__PURE__ */ new WeakMap();\nvar FormControlController = class {\n constructor(host, options) {\n this.handleFormData = (event) => {\n const disabled = this.options.disabled(this.host);\n const name = this.options.name(this.host);\n const value = this.options.value(this.host);\n const isButton = this.host.tagName.toLowerCase() === \"sl-button\";\n if (this.host.isConnected && !disabled && !isButton && typeof name === \"string\" && name.length > 0 && typeof value !== \"undefined\") {\n if (Array.isArray(value)) {\n value.forEach((val) => {\n event.formData.append(name, val.toString());\n });\n } else {\n event.formData.append(name, value.toString());\n }\n }\n };\n this.handleFormSubmit = (event) => {\n var _a;\n const disabled = this.options.disabled(this.host);\n const reportValidity = this.options.reportValidity;\n if (this.form && !this.form.noValidate) {\n (_a = formCollections.get(this.form)) == null ? void 0 : _a.forEach((control) => {\n this.setUserInteracted(control, true);\n });\n }\n if (this.form && !this.form.noValidate && !disabled && !reportValidity(this.host)) {\n event.preventDefault();\n event.stopImmediatePropagation();\n }\n };\n this.handleFormReset = () => {\n this.options.setValue(this.host, this.options.defaultValue(this.host));\n this.setUserInteracted(this.host, false);\n interactions.set(this.host, []);\n };\n this.handleInteraction = (event) => {\n const emittedEvents = interactions.get(this.host);\n if (!emittedEvents.includes(event.type)) {\n emittedEvents.push(event.type);\n }\n if (emittedEvents.length === this.options.assumeInteractionOn.length) {\n this.setUserInteracted(this.host, true);\n }\n };\n this.checkFormValidity = () => {\n if (this.form && !this.form.noValidate) {\n const elements = this.form.querySelectorAll(\"*\");\n for (const element of elements) {\n if (typeof element.checkValidity === \"function\") {\n if (!element.checkValidity()) {\n return false;\n }\n }\n }\n }\n return true;\n };\n this.reportFormValidity = () => {\n if (this.form && !this.form.noValidate) {\n const elements = this.form.querySelectorAll(\"*\");\n for (const element of elements) {\n if (typeof element.reportValidity === \"function\") {\n if (!element.reportValidity()) {\n return false;\n }\n }\n }\n }\n return true;\n };\n (this.host = host).addController(this);\n this.options = __spreadValues({\n form: (input) => {\n const formId = input.form;\n if (formId) {\n const root = input.getRootNode();\n const form = root.querySelector(`#${formId}`);\n if (form) {\n return form;\n }\n }\n return input.closest(\"form\");\n },\n name: (input) => input.name,\n value: (input) => input.value,\n defaultValue: (input) => input.defaultValue,\n disabled: (input) => {\n var _a;\n return (_a = input.disabled) != null ? _a : false;\n },\n reportValidity: (input) => typeof input.reportValidity === \"function\" ? input.reportValidity() : true,\n checkValidity: (input) => typeof input.checkValidity === \"function\" ? input.checkValidity() : true,\n setValue: (input, value) => input.value = value,\n assumeInteractionOn: [\"sl-input\"]\n }, options);\n }\n hostConnected() {\n const form = this.options.form(this.host);\n if (form) {\n this.attachForm(form);\n }\n interactions.set(this.host, []);\n this.options.assumeInteractionOn.forEach((event) => {\n this.host.addEventListener(event, this.handleInteraction);\n });\n }\n hostDisconnected() {\n this.detachForm();\n interactions.delete(this.host);\n this.options.assumeInteractionOn.forEach((event) => {\n this.host.removeEventListener(event, this.handleInteraction);\n });\n }\n hostUpdated() {\n const form = this.options.form(this.host);\n if (!form) {\n this.detachForm();\n }\n if (form && this.form !== form) {\n this.detachForm();\n this.attachForm(form);\n }\n if (this.host.hasUpdated) {\n this.setValidity(this.host.validity.valid);\n }\n }\n attachForm(form) {\n if (form) {\n this.form = form;\n if (formCollections.has(this.form)) {\n formCollections.get(this.form).add(this.host);\n } else {\n formCollections.set(this.form, /* @__PURE__ */ new Set([this.host]));\n }\n this.form.addEventListener(\"formdata\", this.handleFormData);\n this.form.addEventListener(\"submit\", this.handleFormSubmit);\n this.form.addEventListener(\"reset\", this.handleFormReset);\n if (!reportValidityOverloads.has(this.form)) {\n reportValidityOverloads.set(this.form, this.form.reportValidity);\n this.form.reportValidity = () => this.reportFormValidity();\n }\n if (!checkValidityOverloads.has(this.form)) {\n checkValidityOverloads.set(this.form, this.form.checkValidity);\n this.form.checkValidity = () => this.checkFormValidity();\n }\n } else {\n this.form = void 0;\n }\n }\n detachForm() {\n if (!this.form)\n return;\n const formCollection = formCollections.get(this.form);\n if (!formCollection) {\n return;\n }\n formCollection.delete(this.host);\n if (formCollection.size <= 0) {\n this.form.removeEventListener(\"formdata\", this.handleFormData);\n this.form.removeEventListener(\"submit\", this.handleFormSubmit);\n this.form.removeEventListener(\"reset\", this.handleFormReset);\n if (reportValidityOverloads.has(this.form)) {\n this.form.reportValidity = reportValidityOverloads.get(this.form);\n reportValidityOverloads.delete(this.form);\n }\n if (checkValidityOverloads.has(this.form)) {\n this.form.checkValidity = checkValidityOverloads.get(this.form);\n checkValidityOverloads.delete(this.form);\n }\n this.form = void 0;\n }\n }\n setUserInteracted(el, hasInteracted) {\n if (hasInteracted) {\n userInteractedControls.add(el);\n } else {\n userInteractedControls.delete(el);\n }\n el.requestUpdate();\n }\n doAction(type, submitter) {\n if (this.form) {\n const button = document.createElement(\"button\");\n button.type = type;\n button.style.position = \"absolute\";\n button.style.width = \"0\";\n button.style.height = \"0\";\n button.style.clipPath = \"inset(50%)\";\n button.style.overflow = \"hidden\";\n button.style.whiteSpace = \"nowrap\";\n if (submitter) {\n button.name = submitter.name;\n button.value = submitter.value;\n [\"formaction\", \"formenctype\", \"formmethod\", \"formnovalidate\", \"formtarget\"].forEach((attr) => {\n if (submitter.hasAttribute(attr)) {\n button.setAttribute(attr, submitter.getAttribute(attr));\n }\n });\n }\n this.form.append(button);\n button.click();\n button.remove();\n }\n }\n /** Returns the associated `<form>` element, if one exists. */\n getForm() {\n var _a;\n return (_a = this.form) != null ? _a : null;\n }\n /** Resets the form, restoring all the control to their default value */\n reset(submitter) {\n this.doAction(\"reset\", submitter);\n }\n /** Submits the form, triggering validation and form data injection. */\n submit(submitter) {\n this.doAction(\"submit\", submitter);\n }\n /**\n * Synchronously sets the form control's validity. Call this when you know the future validity but need to update\n * the host element immediately, i.e. before Lit updates the component in the next update.\n */\n setValidity(isValid) {\n const host = this.host;\n const hasInteracted = Boolean(userInteractedControls.has(host));\n const required = Boolean(host.required);\n host.toggleAttribute(\"data-required\", required);\n host.toggleAttribute(\"data-optional\", !required);\n host.toggleAttribute(\"data-invalid\", !isValid);\n host.toggleAttribute(\"data-valid\", isValid);\n host.toggleAttribute(\"data-user-invalid\", !isValid && hasInteracted);\n host.toggleAttribute(\"data-user-valid\", isValid && hasInteracted);\n }\n /**\n * Updates the form control's validity based on the current value of `host.validity.valid`. Call this when anything\n * that affects constraint validation changes so the component receives the correct validity states.\n */\n updateValidity() {\n const host = this.host;\n this.setValidity(host.validity.valid);\n }\n /**\n * Dispatches a non-bubbling, cancelable custom event of type `sl-invalid`.\n * If the `sl-invalid` event will be cancelled then the original `invalid`\n * event (which may have been passed as argument) will also be cancelled.\n * If no original `invalid` event has been passed then the `sl-invalid`\n * event will be cancelled before being dispatched.\n */\n emitInvalidEvent(originalInvalidEvent) {\n const slInvalidEvent = new CustomEvent(\"sl-invalid\", {\n bubbles: false,\n composed: false,\n cancelable: true,\n detail: {}\n });\n if (!originalInvalidEvent) {\n slInvalidEvent.preventDefault();\n }\n if (!this.host.dispatchEvent(slInvalidEvent)) {\n originalInvalidEvent == null ? void 0 : originalInvalidEvent.preventDefault();\n }\n }\n};\nvar validValidityState = Object.freeze({\n badInput: false,\n customError: false,\n patternMismatch: false,\n rangeOverflow: false,\n rangeUnderflow: false,\n stepMismatch: false,\n tooLong: false,\n tooShort: false,\n typeMismatch: false,\n valid: true,\n valueMissing: false\n});\nvar valueMissingValidityState = Object.freeze(__spreadProps(__spreadValues({}, validValidityState), {\n valid: false,\n valueMissing: true\n}));\nvar customErrorValidityState = Object.freeze(__spreadProps(__spreadValues({}, validValidityState), {\n valid: false,\n customError: true\n}));\n\nexport {\n formCollections,\n FormControlController,\n validValidityState,\n valueMissingValidityState,\n customErrorValidityState\n};\n","// src/components/button/button.styles.ts\nimport { css } from \"lit\";\nvar button_styles_default = css`\n :host {\n display: inline-block;\n position: relative;\n width: auto;\n cursor: pointer;\n }\n\n .button {\n display: inline-flex;\n align-items: stretch;\n justify-content: center;\n width: 100%;\n border-style: solid;\n border-width: var(--sl-input-border-width);\n font-family: var(--sl-input-font-family);\n font-weight: var(--sl-font-weight-semibold);\n text-decoration: none;\n user-select: none;\n -webkit-user-select: none;\n white-space: nowrap;\n vertical-align: middle;\n padding: 0;\n transition:\n var(--sl-transition-x-fast) background-color,\n var(--sl-transition-x-fast) color,\n var(--sl-transition-x-fast) border,\n var(--sl-transition-x-fast) box-shadow;\n cursor: inherit;\n }\n\n .button::-moz-focus-inner {\n border: 0;\n }\n\n .button:focus {\n outline: none;\n }\n\n .button:focus-visible {\n outline: var(--sl-focus-ring);\n outline-offset: var(--sl-focus-ring-offset);\n }\n\n .button--disabled {\n opacity: 0.5;\n cursor: not-allowed;\n }\n\n /* When disabled, prevent mouse events from bubbling up from children */\n .button--disabled * {\n pointer-events: none;\n }\n\n .button__prefix,\n .button__suffix {\n flex: 0 0 auto;\n display: flex;\n align-items: center;\n pointer-events: none;\n }\n\n .button__label {\n display: inline-block;\n }\n\n .button__label::slotted(sl-icon) {\n vertical-align: -2px;\n }\n\n /*\n * Standard buttons\n */\n\n /* Default */\n .button--standard.button--default {\n background-color: var(--sl-color-neutral-0);\n border-color: var(--sl-color-neutral-300);\n color: var(--sl-color-neutral-700);\n }\n\n .button--standard.button--default:hover:not(.button--disabled) {\n background-color: var(--sl-color-primary-50);\n border-color: var(--sl-color-primary-300);\n color: var(--sl-color-primary-700);\n }\n\n .button--standard.button--default:active:not(.button--disabled) {\n background-color: var(--sl-color-primary-100);\n border-color: var(--sl-color-primary-400);\n color: var(--sl-color-primary-700);\n }\n\n /* Primary */\n .button--standard.button--primary {\n background-color: var(--sl-color-primary-600);\n border-color: var(--sl-color-primary-600);\n color: var(--sl-color-neutral-0);\n }\n\n .button--standard.button--primary:hover:not(.button--disabled) {\n background-color: var(--sl-color-primary-500);\n border-color: var(--sl-color-primary-500);\n color: var(--sl-color-neutral-0);\n }\n\n .button--standard.button--primary:active:not(.button--disabled) {\n background-color: var(--sl-color-primary-600);\n border-color: var(--sl-color-primary-600);\n color: var(--sl-color-neutral-0);\n }\n\n /* Success */\n .button--standard.button--success {\n background-color: var(--sl-color-success-600);\n border-color: var(--sl-color-success-600);\n color: var(--sl-color-neutral-0);\n }\n\n .button--standard.button--success:hover:not(.button--disabled) {\n background-color: var(--sl-color-success-500);\n border-color: var(--sl-color-success-500);\n color: var(--sl-color-neutral-0);\n }\n\n .button--standard.button--success:active:not(.button--disabled) {\n background-color: var(--sl-color-success-600);\n border-color: var(--sl-color-success-600);\n color: var(--sl-color-neutral-0);\n }\n\n /* Neutral */\n .button--standard.button--neutral {\n background-color: var(--sl-color-neutral-600);\n border-color: var(--sl-color-neutral-600);\n color: var(--sl-color-neutral-0);\n }\n\n .button--standard.button--neutral:hover:not(.button--disabled) {\n background-color: var(--sl-color-neutral-500);\n border-color: var(--sl-color-neutral-500);\n color: var(--sl-color-neutral-0);\n }\n\n .button--standard.button--neutral:active:not(.button--disabled) {\n background-color: var(--sl-color-neutral-600);\n border-color: var(--sl-color-neutral-600);\n color: var(--sl-color-neutral-0);\n }\n\n /* Warning */\n .button--standard.button--warning {\n background-color: var(--sl-color-warning-600);\n border-color: var(--sl-color-warning-600);\n color: var(--sl-color-neutral-0);\n }\n .button--standard.button--warning:hover:not(.button--disabled) {\n background-color: var(--sl-color-warning-500);\n border-color: var(--sl-color-warning-500);\n color: var(--sl-color-neutral-0);\n }\n\n .button--standard.button--warning:active:not(.button--disabled) {\n background-color: var(--sl-color-warning-600);\n border-color: var(--sl-color-warning-600);\n color: var(--sl-color-neutral-0);\n }\n\n /* Danger */\n .button--standard.button--danger {\n background-color: var(--sl-color-danger-600);\n border-color: var(--sl-color-danger-600);\n color: var(--sl-color-neutral-0);\n }\n\n .button--standard.button--danger:hover:not(.button--disabled) {\n background-color: var(--sl-color-danger-500);\n border-color: var(--sl-color-danger-500);\n color: var(--sl-color-neutral-0);\n }\n\n .button--standard.button--danger:active:not(.button--disabled) {\n background-color: var(--sl-color-danger-600);\n border-color: var(--sl-color-danger-600);\n color: var(--sl-color-neutral-0);\n }\n\n /*\n * Outline buttons\n */\n\n .button--outline {\n background: none;\n border: solid 1px;\n }\n\n /* Default */\n .button--outline.button--default {\n border-color: var(--sl-color-neutral-300);\n color: var(--sl-color-neutral-700);\n }\n\n .button--outline.button--default:hover:not(.button--disabled),\n .button--outline.button--default.button--checked:not(.button--disabled) {\n border-color: var(--sl-color-primary-600);\n background-color: var(--sl-color-primary-600);\n color: var(--sl-color-neutral-0);\n }\n\n .button--outline.button--default:active:not(.button--disabled) {\n border-color: var(--sl-color-primary-700);\n background-color: var(--sl-color-primary-700);\n color: var(--sl-color-neutral-0);\n }\n\n /* Primary */\n .button--outline.button--primary {\n border-color: var(--sl-color-primary-600);\n color: var(--sl-color-primary-600);\n }\n\n .button--outline.button--primary:hover:not(.button--disabled),\n .button--outline.button--primary.button--checked:not(.button--disabled) {\n background-color: var(--sl-color-primary-600);\n color: var(--sl-color-neutral-0);\n }\n\n .button--outline.button--primary:active:not(.button--disabled) {\n border-color: var(--sl-color-primary-700);\n background-color: var(--sl-color-primary-700);\n color: var(--sl-color-neutral-0);\n }\n\n /* Success */\n .button--outline.button--success {\n border-color: var(--sl-color-success-600);\n color: var(--sl-color-success-600);\n }\n\n .button--outline.button--success:hover:not(.button--disabled),\n .button--outline.button--success.button--checked:not(.button--disabled) {\n background-color: var(--sl-color-success-600);\n color: var(--sl-color-neutral-0);\n }\n\n .button--outline.button--success:active:not(.button--disabled) {\n border-color: var(--sl-color-success-700);\n background-color: var(--sl-color-success-700);\n color: var(--sl-color-neutral-0);\n }\n\n /* Neutral */\n .button--outline.button--neutral {\n border-color: var(--sl-color-neutral-600);\n color: var(--sl-color-neutral-600);\n }\n\n .button--outline.button--neutral:hover:not(.button--disabled),\n .button--outline.button--neutral.button--checked:not(.button--disabled) {\n background-color: var(--sl-color-neutral-600);\n color: var(--sl-color-neutral-0);\n }\n\n .button--outline.button--neutral:active:not(.button--disabled) {\n border-color: var(--sl-color-neutral-700);\n background-color: var(--sl-color-neutral-700);\n color: var(--sl-color-neutral-0);\n }\n\n /* Warning */\n .button--outline.button--warning {\n border-color: var(--sl-color-warning-600);\n color: var(--sl-color-warning-600);\n }\n\n .button--outline.button--warning:hover:not(.button--disabled),\n .button--outline.button--warning.button--checked:not(.button--disabled) {\n background-color: var(--sl-color-warning-600);\n color: var(--sl-color-neutral-0);\n }\n\n .button--outline.button--warning:active:not(.button--disabled) {\n border-color: var(--sl-color-warning-700);\n background-color: var(--sl-color-warning-700);\n color: var(--sl-color-neutral-0);\n }\n\n /* Danger */\n .button--outline.button--danger {\n border-color: var(--sl-color-danger-600);\n color: var(--sl-color-danger-600);\n }\n\n .button--outline.button--danger:hover:not(.button--disabled),\n .button--outline.button--danger.button--checked:not(.button--disabled) {\n background-color: var(--sl-color-danger-600);\n color: var(--sl-color-neutral-0);\n }\n\n .button--outline.button--danger:active:not(.button--disabled) {\n border-color: var(--sl-color-danger-700);\n background-color: var(--sl-color-danger-700);\n color: var(--sl-color-neutral-0);\n }\n\n @media (forced-colors: active) {\n .button.button--outline.button--checked:not(.button--disabled) {\n outline: solid 2px transparent;\n }\n }\n\n /*\n * Text buttons\n */\n\n .button--text {\n background-color: transparent;\n border-color: transparent;\n color: var(--sl-color-primary-600);\n }\n\n .button--text:hover:not(.button--disabled) {\n background-color: transparent;\n border-color: transparent;\n color: var(--sl-color-primary-500);\n }\n\n .button--text:focus-visible:not(.button--disabled) {\n background-color: transparent;\n border-color: transparent;\n color: var(--sl-color-primary-500);\n }\n\n .button--text:active:not(.button--disabled) {\n background-color: transparent;\n border-color: transparent;\n color: var(--sl-color-primary-700);\n }\n\n /*\n * Size modifiers\n */\n\n .button--small {\n height: auto;\n min-height: var(--sl-input-height-small);\n font-size: var(--sl-button-font-size-small);\n line-height: calc(var(--sl-input-height-small) - var(--sl-input-border-width) * 2);\n border-radius: var(--sl-input-border-radius-small);\n }\n\n .button--medium {\n height: auto;\n min-height: var(--sl-input-height-medium);\n font-size: var(--sl-button-font-size-medium);\n line-height: calc(var(--sl-input-height-medium) - var(--sl-input-border-width) * 2);\n border-radius: var(--sl-input-border-radius-medium);\n }\n\n .button--large {\n height: auto;\n min-height: var(--sl-input-height-large);\n font-size: var(--sl-button-font-size-large);\n line-height: calc(var(--sl-input-height-large) - var(--sl-input-border-width) * 2);\n border-radius: var(--sl-input-border-radius-large);\n }\n\n /*\n * Pill modifier\n */\n\n .button--pill.button--small {\n border-radius: var(--sl-input-height-small);\n }\n\n .button--pill.button--medium {\n border-radius: var(--sl-input-height-medium);\n }\n\n .button--pill.button--large {\n border-radius: var(--sl-input-height-large);\n }\n\n /*\n * Circle modifier\n */\n\n .button--circle {\n padding-left: 0;\n padding-right: 0;\n }\n\n .button--circle.button--small {\n width: var(--sl-input-height-small);\n border-radius: 50%;\n }\n\n .button--circle.button--medium {\n width: var(--sl-input-height-medium);\n border-radius: 50%;\n }\n\n .button--circle.button--large {\n width: var(--sl-input-height-large);\n border-radius: 50%;\n }\n\n .button--circle .button__prefix,\n .button--circle .button__suffix,\n .button--circle .button__caret {\n display: none;\n }\n\n /*\n * Caret modifier\n */\n\n .button--caret .button__suffix {\n display: none;\n }\n\n .button--caret .button__caret {\n height: auto;\n }\n\n /*\n * Loading modifier\n */\n\n .button--loading {\n position: relative;\n cursor: wait;\n }\n\n .button--loading .button__prefix,\n .button--loading .button__label,\n .button--loading .button__suffix,\n .button--loading .button__caret {\n visibility: hidden;\n }\n\n .button--loading sl-spinner {\n --indicator-color: currentColor;\n position: absolute;\n font-size: 1em;\n height: 1em;\n width: 1em;\n top: calc(50% - 0.5em);\n left: calc(50% - 0.5em);\n }\n\n /*\n * Badges\n */\n\n .button ::slotted(sl-badge) {\n position: absolute;\n top: 0;\n right: 0;\n translate: 50% -50%;\n pointer-events: none;\n }\n\n .button--rtl ::slotted(sl-badge) {\n right: auto;\n left: 0;\n translate: -50% -50%;\n }\n\n /*\n * Button spacing\n */\n\n .button--has-label.button--small .button__label {\n padding: 0 var(--sl-spacing-small);\n }\n\n .button--has-label.button--medium .button__label {\n padding: 0 var(--sl-spacing-medium);\n }\n\n .button--has-label.button--large .button__label {\n padding: 0 var(--sl-spacing-large);\n }\n\n .button--has-prefix.button--small {\n padding-inline-start: var(--sl-spacing-x-small);\n }\n\n .button--has-prefix.button--small .button__label {\n padding-inline-start: var(--sl-spacing-x-small);\n }\n\n .button--has-prefix.button--medium {\n padding-inline-start: var(--sl-spacing-small);\n }\n\n .button--has-prefix.button--medium .button__label {\n padding-inline-start: var(--sl-spacing-small);\n }\n\n .button--has-prefix.button--large {\n padding-inline-start: var(--sl-spacing-small);\n }\n\n .button--has-prefix.button--large .button__label {\n padding-inline-start: var(--sl-spacing-small);\n }\n\n .button--has-suffix.button--small,\n .button--caret.button--small {\n padding-inline-end: var(--sl-spacing-x-small);\n }\n\n .button--has-suffix.button--small .button__label,\n .button--caret.button--small .button__label {\n padding-inline-end: var(--sl-spacing-x-small);\n }\n\n .button--has-suffix.button--medium,\n .button--caret.button--medium {\n padding-inline-end: var(--sl-spacing-small);\n }\n\n .button--has-suffix.button--medium .button__label,\n .button--caret.button--medium .button__label {\n padding-inline-end: var(--sl-spacing-small);\n }\n\n .button--has-suffix.button--large,\n .button--caret.button--large {\n padding-inline-end: var(--sl-spacing-small);\n }\n\n .button--has-suffix.button--large .button__label,\n .button--caret.button--large .button__label {\n padding-inline-end: var(--sl-spacing-small);\n }\n\n /*\n * Button groups support a variety of button types (e.g. buttons with tooltips, buttons as dropdown triggers, etc.).\n * This means buttons aren't always direct descendants of the button group, thus we can't target them with the\n * ::slotted selector. To work around this, the button group component does some magic to add these special classes to\n * buttons and we style them here instead.\n */\n\n :host([data-sl-button-group__button--first]:not([data-sl-button-group__button--last])) .button {\n border-start-end-radius: 0;\n border-end-end-radius: 0;\n }\n\n :host([data-sl-button-group__button--inner]) .button {\n border-radius: 0;\n }\n\n :host([data-sl-button-group__button--last]:not([data-sl-button-group__button--first])) .button {\n border-start-start-radius: 0;\n border-end-start-radius: 0;\n }\n\n /* All except the first */\n :host([data-sl-button-group__button]:not([data-sl-button-group__button--first])) {\n margin-inline-start: calc(-1 * var(--sl-input-border-width));\n }\n\n /* Add a visual separator between solid buttons */\n :host(\n [data-sl-button-group__button]:not(\n [data-sl-button-group__button--first],\n [data-sl-button-group__button--radio],\n [variant='default']\n ):not(:hover)\n )\n .button:after {\n content: '';\n position: absolute;\n top: 0;\n inset-inline-start: 0;\n bottom: 0;\n border-left: solid 1px rgb(128 128 128 / 33%);\n mix-blend-mode: multiply;\n }\n\n /* Bump hovered, focused, and checked buttons up so their focus ring isn't clipped */\n :host([data-sl-button-group__button--hover]) {\n z-index: 1;\n }\n\n /* Focus and checked are always on top */\n :host([data-sl-button-group__button--focus]),\n :host([data-sl-button-group__button[checked]]) {\n z-index: 2;\n }\n`;\n\nexport {\n button_styles_default\n};\n","// src/internal/slot.ts\nvar HasSlotController = class {\n constructor(host, ...slotNames) {\n this.slotNames = [];\n this.handleSlotChange = (event) => {\n const slot = event.target;\n if (this.slotNames.includes(\"[default]\") && !slot.name || slot.name && this.slotNames.includes(slot.name)) {\n this.host.requestUpdate();\n }\n };\n (this.host = host).addController(this);\n this.slotNames = slotNames;\n }\n hasDefaultSlot() {\n return [...this.host.childNodes].some((node) => {\n if (node.nodeType === node.TEXT_NODE && node.textContent.trim() !== \"\") {\n return true;\n }\n if (node.nodeType === node.ELEMENT_NODE) {\n const el = node;\n const tagName = el.tagName.toLowerCase();\n if (tagName === \"sl-visually-hidden\") {\n return false;\n }\n if (!el.hasAttribute(\"slot\")) {\n return true;\n }\n }\n return false;\n });\n }\n hasNamedSlot(name) {\n return this.host.querySelector(`:scope > [slot=\"${name}\"]`) !== null;\n }\n test(slotName) {\n return slotName === \"[default]\" ? this.hasDefaultSlot() : this.hasNamedSlot(slotName);\n }\n hostConnected() {\n this.host.shadowRoot.addEventListener(\"slotchange\", this.handleSlotChange);\n }\n hostDisconnected() {\n this.host.shadowRoot.removeEventListener(\"slotchange\", this.handleSlotChange);\n }\n};\nfunction getTextContent(slot) {\n if (!slot) {\n return \"\";\n }\n const nodes = slot.assignedNodes({ flatten: true });\n let text = \"\";\n [...nodes].forEach((node) => {\n if (node.nodeType === Node.TEXT_NODE) {\n text += node.textContent;\n }\n });\n return text;\n}\n\nexport {\n HasSlotController,\n getTextContent\n};\n","import {\n SlSpinner\n} from \"./chunk.RADK4UXU.js\";\nimport {\n FormControlController,\n validValidityState\n} from \"./chunk.KWPBDQ6I.js\";\nimport {\n button_styles_default\n} from \"./chunk.HLDU3ZPH.js\";\nimport {\n LocalizeController\n} from \"./chunk.WLV3FVBR.js\";\nimport {\n HasSlotController\n} from \"./chunk.NYIIDP5N.js\";\nimport {\n SlIcon\n} from \"./chunk.H33C3MRM.js\";\nimport {\n watch\n} from \"./chunk.2FB5TK5H.js\";\nimport {\n component_styles_default\n} from \"./chunk.TUVJKY7S.js\";\nimport {\n ShoelaceElement\n} from \"./chunk.SFSTXCXC.js\";\nimport {\n __decorateClass\n} from \"./chunk.IFDWM6P4.js\";\n\n// src/components/button/button.component.ts\nimport { classMap } from \"lit/directives/class-map.js\";\nimport { html, literal } from \"lit/static-html.js\";\nimport { ifDefined } from \"lit/directives/if-defined.js\";\nimport { property, query, state } from \"lit/decorators.js\";\nvar SlButton = class extends ShoelaceElement {\n constructor() {\n super(...arguments);\n this.formControlController = new FormControlController(this, {\n assumeInteractionOn: [\"click\"]\n });\n this.hasSlotController = new HasSlotController(this, \"[default]\", \"prefix\", \"suffix\");\n this.localize = new LocalizeController(this);\n this.hasFocus = false;\n this.invalid = false;\n this.title = \"\";\n this.variant = \"default\";\n this.size = \"medium\";\n this.caret = false;\n this.disabled = false;\n this.loading = false;\n this.outline = false;\n this.pill = false;\n this.circle = false;\n this.type = \"button\";\n this.name = \"\";\n this.value = \"\";\n this.href = \"\";\n this.rel = \"noreferrer noopener\";\n }\n /** Gets the validity state object */\n get validity() {\n if (this.isButton()) {\n return this.button.validity;\n }\n return validValidityState;\n }\n /** Gets the validation message */\n get validationMessage() {\n if (this.isButton()) {\n return this.button.validationMessage;\n }\n return \"\";\n }\n firstUpdated() {\n if (this.isButton()) {\n this.formControlController.updateValidity();\n }\n }\n handleBlur() {\n this.hasFocus = false;\n this.emit(\"sl-blur\");\n }\n handleFocus() {\n this.hasFocus = true;\n this.emit(\"sl-focus\");\n }\n handleClick() {\n if (this.type === \"submit\") {\n this.formControlController.submit(this);\n }\n if (this.type === \"reset\") {\n this.formControlController.reset(this);\n }\n }\n handleInvalid(event) {\n this.formControlController.setValidity(false);\n this.formControlController.emitInvalidEvent(event);\n }\n isButton() {\n return this.href ? false : true;\n }\n isLink() {\n return this.href ? true : false;\n }\n handleDisabledChange() {\n if (this.isButton()) {\n this.formControlController.setValidity(this.disabled);\n }\n }\n /** Simulates a click on the button. */\n click() {\n this.button.click();\n }\n /** Sets focus on the button. */\n focus(options) {\n this.button.focus(options);\n }\n /** Removes focus from the button. */\n blur() {\n this.button.blur();\n }\n /** Checks for validity but does not show a validation message. Returns `true` when valid and `false` when invalid. */\n checkValidity() {\n if (this.isButton()) {\n return this.button.checkValidity();\n }\n return true;\n }\n /** Gets the associated form, if one exists. */\n getForm() {\n return this.formControlController.getForm();\n }\n /** Checks for validity and shows the browser's validation message if the control is invalid. */\n reportValidity() {\n if (this.isButton()) {\n return this.button.reportValidity();\n }\n return true;\n }\n /** Sets a custom validation message. Pass an empty string to restore validity. */\n setCustomValidity(message) {\n if (this.isButton()) {\n this.button.setCustomValidity(message);\n this.formControlController.updateValidity();\n }\n }\n render() {\n const isLink = this.isLink();\n const tag = isLink ? literal`a` : literal`button`;\n return html`\n <${tag}\n part=\"base\"\n class=${classMap({\n button: true,\n \"button--default\": this.variant === \"default\",\n \"button--primary\": this.variant === \"primary\",\n \"button--success\": this.variant === \"success\",\n \"button--neutral\": this.variant === \"neutral\",\n \"button--warning\": this.variant === \"warning\",\n \"button--danger\": this.variant === \"danger\",\n \"button--text\": this.variant === \"text\",\n \"button--small\": this.size === \"small\",\n \"button--medium\": this.size === \"medium\",\n \"button--large\": this.size === \"large\",\n \"button--caret\": this.caret,\n \"button--circle\": this.circle,\n \"button--disabled\": this.disabled,\n \"button--focused\": this.hasFocus,\n \"button--loading\": this.loading,\n \"button--standard\": !this.outline,\n \"button--outline\": this.outline,\n \"button--pill\": this.pill,\n \"button--rtl\": this.localize.dir() === \"rtl\",\n \"button--has-label\": this.hasSlotController.test(\"[default]\"),\n \"button--has-prefix\": this.hasSlotController.test(\"prefix\"),\n \"button--has-suffix\": this.hasSlotController.test(\"suffix\")\n })}\n ?disabled=${ifDefined(isLink ? void 0 : this.disabled)}\n type=${ifDefined(isLink ? void 0 : this.type)}\n title=${this.title}\n name=${ifDefined(isLink ? void 0 : this.name)}\n value=${ifDefined(isLink ? void 0 : this.value)}\n href=${ifDefined(isLink ? this.href : void 0)}\n target=${ifDefined(isLink ? this.target : void 0)}\n download=${ifDefined(isLink ? this.download : void 0)}\n rel=${ifDefined(isLink ? this.rel : void 0)}\n role=${ifDefined(isLink ? void 0 : \"button\")}\n aria-disabled=${this.disabled ? \"true\" : \"false\"}\n tabindex=${this.disabled ? \"-1\" : \"0\"}\n @blur=${this.handleBlur}\n @focus=${this.handleFocus}\n @invalid=${this.isButton() ? this.handleInvalid : null}\n @click=${this.handleClick}\n >\n <slot name=\"prefix\" part=\"prefix\" class=\"button__prefix\"></slot>\n <slot part=\"label\" class=\"button__label\"></slot>\n <slot name=\"suffix\" part=\"suffix\" class=\"button__suffix\"></slot>\n ${this.caret ? html` <sl-icon part=\"caret\" class=\"button__caret\" library=\"system\" name=\"caret\"></sl-icon> ` : \"\"}\n ${this.loading ? html`<sl-spinner part=\"spinner\"></sl-spinner>` : \"\"}\n </${tag}>\n `;\n }\n};\nSlButton.styles = [component_styles_default, button_styles_default];\nSlButton.dependencies = {\n \"sl-icon\": SlIcon,\n \"sl-spinner\": SlSpinner\n};\n__decorateClass([\n query(\".button\")\n], SlButton.prototype, \"button\", 2);\n__decorateClass([\n state()\n], SlButton.prototype, \"hasFocus\", 2);\n__decorateClass([\n state()\n], SlButton.prototype, \"invalid\", 2);\n__decorateClass([\n property()\n], SlButton.prototype, \"title\", 2);\n__decorateClass([\n property({ reflect: true })\n], SlButton.prototype, \"variant\", 2);\n__decorateClass([\n property({ reflect: true })\n], SlButton.prototype, \"size\", 2);\n__decorateClass([\n property({ type: Boolean, reflect: true })\n], SlButton.prototype, \"caret\", 2);\n__decorateClass([\n property({ type: Boolean, reflect: true })\n], SlButton.prototype, \"disabled\", 2);\n__decorateClass([\n property({ type: Boolean, reflect: true })\n], SlButton.prototype, \"loading\", 2);\n__decorateClass([\n property({ type: Boolean, reflect: true })\n], SlButton.prototype, \"outline\", 2);\n__decorateClass([\n property({ type: Boolean, reflect: true })\n], SlButton.prototype, \"pill\", 2);\n__decorateClass([\n property({ type: Boolean, reflect: true })\n], SlButton.prototype, \"circle\", 2);\n__decorateClass([\n property()\n], SlButton.prototype, \"type\", 2);\n__decorateClass([\n property()\n], SlButton.prototype, \"name\", 2);\n__decorateClass([\n property()\n], SlButton.prototype, \"value\", 2);\n__decorateClass([\n property()\n], SlButton.prototype, \"href\", 2);\n__decorateClass([\n property()\n], SlButton.prototype, \"target\", 2);\n__decorateClass([\n property()\n], SlButton.prototype, \"rel\", 2);\n__decorateClass([\n property()\n], SlButton.prototype, \"download\", 2);\n__decorateClass([\n property()\n], SlButton.prototype, \"form\", 2);\n__decorateClass([\n property({ attribute: \"formaction\" })\n], SlButton.prototype, \"formAction\", 2);\n__decorateClass([\n property({ attribute: \"formenctype\" })\n], SlButton.prototype, \"formEnctype\", 2);\n__decorateClass([\n property({ attribute: \"formmethod\" })\n], SlButton.prototype, \"formMethod\", 2);\n__decorateClass([\n property({ attribute: \"formnovalidate\", type: Boolean })\n], SlButton.prototype, \"formNoValidate\", 2);\n__decorateClass([\n property({ attribute: \"formtarget\" })\n], SlButton.prototype, \"formTarget\", 2);\n__decorateClass([\n watch(\"disabled\", { waitUntilFirstUpdate: true })\n], SlButton.prototype, \"handleDisabledChange\", 1);\n\nexport {\n SlButton\n};\n","import {\n SlButton\n} from \"./chunk.5SUGJ4EB.js\";\n\n// src/components/button/button.ts\nvar button_default = SlButton;\nSlButton.define(\"sl-button\");\n\nexport {\n button_default\n};\n","// src/internal/tabbable.ts\nvar computedStyleMap = /* @__PURE__ */ new WeakMap();\nfunction getCachedComputedStyle(el) {\n let computedStyle = computedStyleMap.get(el);\n if (!computedStyle) {\n computedStyle = window.getComputedStyle(el, null);\n computedStyleMap.set(el, computedStyle);\n }\n return computedStyle;\n}\nfunction isVisible(el) {\n if (typeof el.checkVisibility === \"function\") {\n return el.checkVisibility({ checkOpacity: false, checkVisibilityCSS: true });\n }\n const computedStyle = getCachedComputedStyle(el);\n return computedStyle.visibility !== \"hidden\" && computedStyle.display !== \"none\";\n}\nfunction isOverflowingAndTabbable(el) {\n const computedStyle = getCachedComputedStyle(el);\n const { overflowY, overflowX } = computedStyle;\n if (overflowY === \"scroll\" || overflowX === \"scroll\") {\n return true;\n }\n if (overflowY !== \"auto\" || overflowX !== \"auto\") {\n return false;\n }\n const isOverflowingY = el.scrollHeight > el.clientHeight;\n if (isOverflowingY && overflowY === \"auto\") {\n return true;\n }\n const isOverflowingX = el.scrollWidth > el.clientWidth;\n if (isOverflowingX && overflowX === \"auto\") {\n return true;\n }\n return false;\n}\nfunction isTabbable(el) {\n const tag = el.tagName.toLowerCase();\n const tabindex = Number(el.getAttribute(\"tabindex\"));\n const hasTabindex = el.hasAttribute(\"tabindex\");\n if (hasTabindex && (isNaN(tabindex) || tabindex <= -1)) {\n return false;\n }\n if (el.hasAttribute(\"disabled\")) {\n return false;\n }\n if (el.closest(\"[inert]\")) {\n return false;\n }\n if (tag === \"input\" && el.getAttribute(\"type\") === \"radio\" && !el.hasAttribute(\"checked\")) {\n return false;\n }\n if (!isVisible(el)) {\n return false;\n }\n if ((tag === \"audio\" || tag === \"video\") && el.hasAttribute(\"controls\")) {\n return true;\n }\n if (el.hasAttribute(\"tabindex\")) {\n return true;\n }\n if (el.hasAttribute(\"contenteditable\") && el.getAttribute(\"contenteditable\") !== \"false\") {\n return true;\n }\n const isNativelyTabbable = [\n \"button\",\n \"input\",\n \"select\",\n \"textarea\",\n \"a\",\n \"audio\",\n \"video\",\n \"summary\",\n \"iframe\"\n ].includes(tag);\n if (isNativelyTabbable) {\n return true;\n }\n return isOverflowingAndTabbable(el);\n}\nfunction getTabbableBoundary(root) {\n var _a, _b;\n const tabbableElements = getTabbableElements(root);\n const start = (_a = tabbableElements[0]) != null ? _a : null;\n const end = (_b = tabbableElements[tabbableElements.length - 1]) != null ? _b : null;\n return { start, end };\n}\nfunction getSlottedChildrenOutsideRootElement(slotElement, root) {\n var _a;\n return ((_a = slotElement.getRootNode({ composed: true })) == null ? void 0 : _a.host) !== root;\n}\nfunction getTabbableElements(root) {\n const walkedEls = /* @__PURE__ */ new WeakMap();\n const tabbableElements = [];\n function walk(el) {\n if (el instanceof Element) {\n if (el.hasAttribute(\"inert\") || el.closest(\"[inert]\")) {\n return;\n }\n if (walkedEls.has(el)) {\n return;\n }\n walkedEls.set(el, true);\n if (!tabbableElements.includes(el) && isTabbable(el)) {\n tabbableElements.push(el);\n }\n if (el instanceof HTMLSlotElement && getSlottedChildrenOutsideRootElement(el, root)) {\n el.assignedElements({ flatten: true }).forEach((assignedEl) => {\n walk(assignedEl);\n });\n }\n if (el.shadowRoot !== null && el.shadowRoot.mode === \"open\") {\n walk(el.shadowRoot);\n }\n }\n for (const e of el.children) {\n walk(e);\n }\n }\n walk(root);\n return tabbableElements.sort((a, b) => {\n const aTabindex = Number(a.getAttribute(\"tabindex\")) || 0;\n const bTabindex = Number(b.getAttribute(\"tabindex\")) || 0;\n return bTabindex - aTabindex;\n });\n}\n\nexport {\n getTabbableBoundary,\n getTabbableElements\n};\n","import {\n getTabbableElements\n} from \"./chunk.LXDTFLWU.js\";\nimport {\n __yieldStar\n} from \"./chunk.IFDWM6P4.js\";\n\n// src/internal/active-elements.ts\nfunction* activeElements(activeElement = document.activeElement) {\n if (activeElement === null || activeElement === void 0)\n return;\n yield activeElement;\n if (\"shadowRoot\" in activeElement && activeElement.shadowRoot && activeElement.shadowRoot.mode !== \"closed\") {\n yield* __yieldStar(activeElements(activeElement.shadowRoot.activeElement));\n }\n}\nfunction getDeepestActiveElement() {\n return [...activeElements()].pop();\n}\n\n// src/internal/modal.ts\nvar activeModals = [];\nvar Modal = class {\n constructor(element) {\n this.tabDirection = \"forward\";\n this.handleFocusIn = () => {\n if (!this.isActive())\n return;\n this.checkFocus();\n };\n this.handleKeyDown = (event) => {\n var _a;\n if (event.key !== \"Tab\" || this.isExternalActivated)\n return;\n if (!this.isActive())\n return;\n const currentActiveElement = getDeepestActiveElement();\n this.previousFocus = currentActiveElement;\n if (this.previousFocus && this.possiblyHasTabbableChildren(this.previousFocus)) {\n return;\n }\n if (event.shiftKey) {\n this.tabDirection = \"backward\";\n } else {\n this.tabDirection = \"forward\";\n }\n const tabbableElements = getTabbableElements(this.element);\n let currentFocusIndex = tabbableElements.findIndex((el) => el === currentActiveElement);\n this.previousFocus = this.currentFocus;\n const addition = this.tabDirection === \"forward\" ? 1 : -1;\n while (true) {\n if (currentFocusIndex + addition >= tabbableElements.length) {\n currentFocusIndex = 0;\n } else if (currentFocusIndex + addition < 0) {\n currentFocusIndex = tabbableElements.length - 1;\n } else {\n currentFocusIndex += addition;\n }\n this.previousFocus = this.currentFocus;\n const nextFocus = (\n /** @type {HTMLElement} */\n tabbableElements[currentFocusIndex]\n );\n if (this.tabDirection === \"backward\") {\n if (this.previousFocus && this.possiblyHasTabbableChildren(this.previousFocus)) {\n return;\n }\n }\n if (nextFocus && this.possiblyHasTabbableChildren(nextFocus)) {\n return;\n }\n event.preventDefault();\n this.currentFocus = nextFocus;\n (_a = this.currentFocus) == null ? void 0 : _a.focus({ preventScroll: false });\n const allActiveElements = [...activeElements()];\n if (allActiveElements.includes(this.currentFocus) || !allActiveElements.includes(this.previousFocus)) {\n break;\n }\n }\n setTimeout(() => this.checkFocus());\n };\n this.handleKeyUp = () => {\n this.tabDirection = \"forward\";\n };\n this.element = element;\n this.elementsWithTabbableControls = [\"iframe\"];\n }\n /** Activates focus trapping. */\n activate() {\n activeModals.push(this.element);\n document.addEventListener(\"focusin\", this.handleFocusIn);\n document.addEventListener(\"keydown\", this.handleKeyDown);\n document.addEventListener(\"keyup\", this.handleKeyUp);\n }\n /** Deactivates focus trapping. */\n deactivate() {\n activeModals = activeModals.filter((modal) => modal !== this.element);\n this.currentFocus = null;\n document.removeEventListener(\"focusin\", this.handleFocusIn);\n document.removeEventListener(\"keydown\", this.handleKeyDown);\n document.removeEventListener(\"keyup\", this.handleKeyUp);\n }\n /** Determines if this modal element is currently active or not. */\n isActive() {\n return activeModals[activeModals.length - 1] === this.element;\n }\n /** Activates external modal behavior and temporarily disables focus trapping. */\n activateExternal() {\n this.isExternalActivated = true;\n }\n /** Deactivates external modal behavior and re-enables focus trapping. */\n deactivateExternal() {\n this.isExternalActivated = false;\n }\n checkFocus() {\n if (this.isActive() && !this.isExternalActivated) {\n const tabbableElements = getTabbableElements(this.element);\n if (!this.element.matches(\":focus-within\")) {\n const start = tabbableElements[0];\n const end = tabbableElements[tabbableElements.length - 1];\n const target = this.tabDirection === \"forward\" ? start : end;\n if (typeof (target == null ? void 0 : target.focus) === \"function\") {\n this.currentFocus = target;\n target.focus({ preventScroll: false });\n }\n }\n }\n }\n possiblyHasTabbableChildren(element) {\n return this.elementsWithTabbableControls.includes(element.tagName.toLowerCase()) || element.hasAttribute(\"controls\");\n }\n};\n\nexport {\n Modal\n};\n","// src/internal/offset.ts\nfunction getOffset(element, parent) {\n return {\n top: Math.round(element.getBoundingClientRect().top - parent.getBoundingClientRect().top),\n left: Math.round(element.getBoundingClientRect().left - parent.getBoundingClientRect().left)\n };\n}\n\n// src/internal/scroll.ts\nvar locks = /* @__PURE__ */ new Set();\nfunction getScrollbarWidth() {\n const documentWidth = document.documentElement.clientWidth;\n return Math.abs(window.innerWidth - documentWidth);\n}\nfunction getExistingBodyPadding() {\n const padding = Number(getComputedStyle(document.body).paddingRight.replace(/px/, \"\"));\n if (isNaN(padding) || !padding) {\n return 0;\n }\n return padding;\n}\nfunction lockBodyScrolling(lockingEl) {\n locks.add(lockingEl);\n if (!document.documentElement.classList.contains(\"sl-scroll-lock\")) {\n const scrollbarWidth = getScrollbarWidth() + getExistingBodyPadding();\n document.documentElement.classList.add(\"sl-scroll-lock\");\n document.documentElement.style.setProperty(\"--sl-scroll-lock-size\", `${scrollbarWidth}px`);\n }\n}\nfunction unlockBodyScrolling(lockingEl) {\n locks.delete(lockingEl);\n if (locks.size === 0) {\n document.documentElement.classList.remove(\"sl-scroll-lock\");\n document.documentElement.style.removeProperty(\"--sl-scroll-lock-size\");\n }\n}\nfunction scrollIntoView(element, container, direction = \"vertical\", behavior = \"smooth\") {\n const offset = getOffset(element, container);\n const offsetTop = offset.top + container.scrollTop;\n const offsetLeft = offset.left + container.scrollLeft;\n const minX = container.scrollLeft;\n const maxX = container.scrollLeft + container.offsetWidth;\n const minY = container.scrollTop;\n const maxY = container.scrollTop + container.offsetHeight;\n if (direction === \"horizontal\" || direction === \"both\") {\n if (offsetLeft < minX) {\n container.scrollTo({ left: offsetLeft, behavior });\n } else if (offsetLeft + element.clientWidth > maxX) {\n container.scrollTo({ left: offsetLeft - container.offsetWidth + element.clientWidth, behavior });\n }\n }\n if (direction === \"vertical\" || direction === \"both\") {\n if (offsetTop < minY) {\n container.scrollTo({ top: offsetTop, behavior });\n } else if (offsetTop + element.clientHeight > maxY) {\n container.scrollTo({ top: offsetTop - container.offsetHeight + element.clientHeight, behavior });\n }\n }\n}\n\nexport {\n lockBodyScrolling,\n unlockBodyScrolling,\n scrollIntoView\n};\n","// src/components/dialog/dialog.styles.ts\nimport { css } from \"lit\";\nvar dialog_styles_default = css`\n :host {\n --width: 31rem;\n --header-spacing: var(--sl-spacing-large);\n --body-spacing: var(--sl-spacing-large);\n --footer-spacing: var(--sl-spacing-large);\n\n display: contents;\n }\n\n .dialog {\n display: flex;\n align-items: center;\n justify-content: center;\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: var(--sl-z-index-dialog);\n }\n\n .dialog__panel {\n display: flex;\n flex-direction: column;\n z-index: 2;\n width: var(--width);\n max-width: calc(100% - var(--sl-spacing-2x-large));\n max-height: calc(100% - var(--sl-spacing-2x-large));\n background-color: var(--sl-panel-background-color);\n border-radius: var(--sl-border-radius-medium);\n box-shadow: var(--sl-shadow-x-large);\n }\n\n .dialog__panel:focus {\n outline: none;\n }\n\n /* Ensure there's enough vertical padding for phones that don't update vh when chrome appears (e.g. iPhone) */\n @media screen and (max-width: 420px) {\n .dialog__panel {\n max-height: 80vh;\n }\n }\n\n .dialog--open .dialog__panel {\n display: flex;\n opacity: 1;\n }\n\n .dialog__header {\n flex: 0 0 auto;\n display: flex;\n }\n\n .dialog__title {\n flex: 1 1 auto;\n font: inherit;\n font-size: var(--sl-font-size-large);\n line-height: var(--sl-line-height-dense);\n padding: var(--header-spacing);\n margin: 0;\n }\n\n .dialog__header-actions {\n flex-shrink: 0;\n display: flex;\n flex-wrap: wrap;\n justify-content: end;\n gap: var(--sl-spacing-2x-small);\n padding: 0 var(--header-spacing);\n }\n\n .dialog__header-actions sl-icon-button,\n .dialog__header-actions ::slotted(sl-icon-button) {\n flex: 0 0 auto;\n display: flex;\n align-items: center;\n font-size: var(--sl-font-size-medium);\n }\n\n .dialog__body {\n flex: 1 1 auto;\n display: block;\n padding: var(--body-spacing);\n overflow: auto;\n -webkit-overflow-scrolling: touch;\n }\n\n .dialog__footer {\n flex: 0 0 auto;\n text-align: right;\n padding: var(--footer-spacing);\n }\n\n .dialog__footer ::slotted(sl-button:not(:first-of-type)) {\n margin-inline-start: var(--sl-spacing-x-small);\n }\n\n .dialog:not(.dialog--has-footer) .dialog__footer {\n display: none;\n }\n\n .dialog__overlay {\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background-color: var(--sl-overlay-background-color);\n }\n\n @media (forced-colors: active) {\n .dialog__panel {\n border: solid 1px var(--sl-color-neutral-0);\n }\n }\n`;\n\nexport {\n dialog_styles_default\n};\n","// src/components/icon-button/icon-button.styles.ts\nimport { css } from \"lit\";\nvar icon_button_styles_default = css`\n :host {\n display: inline-block;\n color: var(--sl-color-neutral-600);\n }\n\n .icon-button {\n flex: 0 0 auto;\n display: flex;\n align-items: center;\n background: none;\n border: none;\n border-radius: var(--sl-border-radius-medium);\n font-size: inherit;\n color: inherit;\n padding: var(--sl-spacing-x-small);\n cursor: pointer;\n transition: var(--sl-transition-x-fast) color;\n -webkit-appearance: none;\n }\n\n .icon-button:hover:not(.icon-button--disabled),\n .icon-button:focus-visible:not(.icon-button--disabled) {\n color: var(--sl-color-primary-600);\n }\n\n .icon-button:active:not(.icon-button--disabled) {\n color: var(--sl-color-primary-700);\n }\n\n .icon-button:focus {\n outline: none;\n }\n\n .icon-button--disabled {\n opacity: 0.5;\n cursor: not-allowed;\n }\n\n .icon-button:focus-visible {\n outline: var(--sl-focus-ring);\n outline-offset: var(--sl-focus-ring-offset);\n }\n\n .icon-button__icon {\n pointer-events: none;\n }\n`;\n\nexport {\n icon_button_styles_default\n};\n","import {\n icon_button_styles_default\n} from \"./chunk.6I2T3DLI.js\";\nimport {\n SlIcon\n} from \"./chunk.H33C3MRM.js\";\nimport {\n component_styles_default\n} from \"./chunk.TUVJKY7S.js\";\nimport {\n ShoelaceElement\n} from \"./chunk.SFSTXCXC.js\";\nimport {\n __decorateClass\n} from \"./chunk.IFDWM6P4.js\";\n\n// src/components/icon-button/icon-button.component.ts\nimport { classMap } from \"lit/directives/class-map.js\";\nimport { html, literal } from \"lit/static-html.js\";\nimport { ifDefined } from \"lit/directives/if-defined.js\";\nimport { property, query, state } from \"lit/decorators.js\";\nvar SlIconButton = class extends ShoelaceElement {\n constructor() {\n super(...arguments);\n this.hasFocus = false;\n this.label = \"\";\n this.disabled = false;\n }\n handleBlur() {\n this.hasFocus = false;\n this.emit(\"sl-blur\");\n }\n handleFocus() {\n this.hasFocus = true;\n this.emit(\"sl-focus\");\n }\n handleClick(event) {\n if (this.disabled) {\n event.preventDefault();\n event.stopPropagation();\n }\n }\n /** Simulates a click on the icon button. */\n click() {\n this.button.click();\n }\n /** Sets focus on the icon button. */\n focus(options) {\n this.button.focus(options);\n }\n /** Removes focus from the icon button. */\n blur() {\n this.button.blur();\n }\n render() {\n const isLink = this.href ? true : false;\n const tag = isLink ? literal`a` : literal`button`;\n return html`\n <${tag}\n part=\"base\"\n class=${classMap({\n \"icon-button\": true,\n \"icon-button--disabled\": !isLink && this.disabled,\n \"icon-button--focused\": this.hasFocus\n })}\n ?disabled=${ifDefined(isLink ? void 0 : this.disabled)}\n type=${ifDefined(isLink ? void 0 : \"button\")}\n href=${ifDefined(isLink ? this.href : void 0)}\n target=${ifDefined(isLink ? this.target : void 0)}\n download=${ifDefined(isLink ? this.download : void 0)}\n rel=${ifDefined(isLink && this.target ? \"noreferrer noopener\" : void 0)}\n role=${ifDefined(isLink ? void 0 : \"button\")}\n aria-disabled=${this.disabled ? \"true\" : \"false\"}\n aria-label=\"${this.label}\"\n tabindex=${this.disabled ? \"-1\" : \"0\"}\n @blur=${this.handleBlur}\n @focus=${this.handleFocus}\n @click=${this.handleClick}\n >\n <sl-icon\n class=\"icon-button__icon\"\n name=${ifDefined(this.name)}\n library=${ifDefined(this.library)}\n src=${ifDefined(this.src)}\n aria-hidden=\"true\"\n ></sl-icon>\n </${tag}>\n `;\n }\n};\nSlIconButton.styles = [component_styles_default, icon_button_styles_default];\nSlIconButton.dependencies = { \"sl-icon\": SlIcon };\n__decorateClass([\n query(\".icon-button\")\n], SlIconButton.prototype, \"button\", 2);\n__decorateClass([\n state()\n], SlIconButton.prototype, \"hasFocus\", 2);\n__decorateClass([\n property()\n], SlIconButton.prototype, \"name\", 2);\n__decorateClass([\n property()\n], SlIconButton.prototype, \"library\", 2);\n__decorateClass([\n property()\n], SlIconButton.prototype, \"src\", 2);\n__decorateClass([\n property()\n], SlIconButton.prototype, \"href\", 2);\n__decorateClass([\n property()\n], SlIconButton.prototype, \"target\", 2);\n__decorateClass([\n property()\n], SlIconButton.prototype, \"download\", 2);\n__decorateClass([\n property()\n], SlIconButton.prototype, \"label\", 2);\n__decorateClass([\n property({ type: Boolean, reflect: true })\n], SlIconButton.prototype, \"disabled\", 2);\n\nexport {\n SlIconButton\n};\n","import {\n Modal\n} from \"./chunk.ODFLWOL6.js\";\nimport {\n lockBodyScrolling,\n unlockBodyScrolling\n} from \"./chunk.BTENR4BI.js\";\nimport {\n dialog_styles_default\n} from \"./chunk.G5RKA5HF.js\";\nimport {\n SlIconButton\n} from \"./chunk.WQ4LAAP4.js\";\nimport {\n getAnimation,\n setDefaultAnimation\n} from \"./chunk.DHU6MIVB.js\";\nimport {\n waitForEvent\n} from \"./chunk.B4BZKR24.js\";\nimport {\n animateTo,\n stopAnimations\n} from \"./chunk.LHI6QEL2.js\";\nimport {\n LocalizeController\n} from \"./chunk.WLV3FVBR.js\";\nimport {\n HasSlotController\n} from \"./chunk.NYIIDP5N.js\";\nimport {\n watch\n} from \"./chunk.2FB5TK5H.js\";\nimport {\n component_styles_default\n} from \"./chunk.TUVJKY7S.js\";\nimport {\n ShoelaceElement\n} from \"./chunk.SFSTXCXC.js\";\nimport {\n __decorateClass\n} from \"./chunk.IFDWM6P4.js\";\n\n// src/components/dialog/dialog.component.ts\nimport { classMap } from \"lit/directives/class-map.js\";\nimport { html } from \"lit\";\nimport { ifDefined } from \"lit/directives/if-defined.js\";\nimport { property, query } from \"lit/decorators.js\";\nvar SlDialog = class extends ShoelaceElement {\n constructor() {\n super(...arguments);\n this.hasSlotController = new HasSlotController(this, \"footer\");\n this.localize = new LocalizeController(this);\n this.modal = new Modal(this);\n this.open = false;\n this.label = \"\";\n this.noHeader = false;\n this.handleDocumentKeyDown = (event) => {\n if (event.key === \"Escape\" && this.modal.isActive() && this.open) {\n event.stopPropagation();\n this.requestClose(\"keyboard\");\n }\n };\n }\n firstUpdated() {\n this.dialog.hidden = !this.open;\n if (this.open) {\n this.addOpenListeners();\n this.modal.activate();\n lockBodyScrolling(this);\n }\n }\n disconnectedCallback() {\n var _a;\n super.disconnectedCallback();\n this.modal.deactivate();\n unlockBodyScrolling(this);\n (_a = this.closeWatcher) == null ? void 0 : _a.destroy();\n }\n requestClose(source) {\n const slRequestClose = this.emit(\"sl-request-close\", {\n cancelable: true,\n detail: { source }\n });\n if (slRequestClose.defaultPrevented) {\n const animation = getAnimation(this, \"dialog.denyClose\", { dir: this.localize.dir() });\n animateTo(this.panel, animation.keyframes, animation.options);\n return;\n }\n this.hide();\n }\n addOpenListeners() {\n var _a;\n if (\"CloseWatcher\" in window) {\n (_a = this.closeWatcher) == null ? void 0 : _a.destroy();\n this.closeWatcher = new CloseWatcher();\n this.closeWatcher.onclose = () => this.requestClose(\"keyboard\");\n } else {\n document.addEventListener(\"keydown\", this.handleDocumentKeyDown);\n }\n }\n removeOpenListeners() {\n var _a;\n (_a = this.closeWatcher) == null ? void 0 : _a.destroy();\n document.removeEventListener(\"keydown\", this.handleDocumentKeyDown);\n }\n async handleOpenChange() {\n if (this.open) {\n this.emit(\"sl-show\");\n this.addOpenListeners();\n this.originalTrigger = document.activeElement;\n this.modal.activate();\n lockBodyScrolling(this);\n const autoFocusTarget = this.querySelector(\"[autofocus]\");\n if (autoFocusTarget) {\n autoFocusTarget.removeAttribute(\"autofocus\");\n }\n await Promise.all([stopAnimations(this.dialog), stopAnimations(this.overlay)]);\n this.dialog.hidden = false;\n requestAnimationFrame(() => {\n const slInitialFocus = this.emit(\"sl-initial-focus\", { cancelable: true });\n if (!slInitialFocus.defaultPrevented) {\n if (autoFocusTarget) {\n autoFocusTarget.focus({ preventScroll: true });\n } else {\n this.panel.focus({ preventScroll: true });\n }\n }\n if (autoFocusTarget) {\n autoFocusTarget.setAttribute(\"autofocus\", \"\");\n }\n });\n const panelAnimation = getAnimation(this, \"dialog.show\", { dir: this.localize.dir() });\n const overlayAnimation = getAnimation(this, \"dialog.overlay.show\", { dir: this.localize.dir() });\n await Promise.all([\n animateTo(this.panel, panelAnimation.keyframes, panelAnimation.options),\n animateTo(this.overlay, overlayAnimation.keyframes, overlayAnimation.options)\n ]);\n this.emit(\"sl-after-show\");\n } else {\n this.emit(\"sl-hide\");\n this.removeOpenListeners();\n this.modal.deactivate();\n await Promise.all([stopAnimations(this.dialog), stopAnimations(this.overlay)]);\n const panelAnimation = getAnimation(this, \"dialog.hide\", { dir: this.localize.dir() });\n const overlayAnimation = getAnimation(this, \"dialog.overlay.hide\", { dir: this.localize.dir() });\n await Promise.all([\n animateTo(this.overlay, overlayAnimation.keyframes, overlayAnimation.options).then(() => {\n this.overlay.hidden = true;\n }),\n animateTo(this.panel, panelAnimation.keyframes, panelAnimation.options).then(() => {\n this.panel.hidden = true;\n })\n ]);\n this.dialog.hidden = true;\n this.overlay.hidden = false;\n this.panel.hidden = false;\n unlockBodyScrolling(this);\n const trigger = this.originalTrigger;\n if (typeof (trigger == null ? void 0 : trigger.focus) === \"function\") {\n setTimeout(() => trigger.focus());\n }\n this.emit(\"sl-after-hide\");\n }\n }\n /** Shows the dialog. */\n async show() {\n if (this.open) {\n return void 0;\n }\n this.open = true;\n return waitForEvent(this, \"sl-after-show\");\n }\n /** Hides the dialog */\n async hide() {\n if (!this.open) {\n return void 0;\n }\n this.open = false;\n return waitForEvent(this, \"sl-after-hide\");\n }\n render() {\n return html`\n <div\n part=\"base\"\n class=${classMap({\n dialog: true,\n \"dialog--open\": this.open,\n \"dialog--has-footer\": this.hasSlotController.test(\"footer\")\n })}\n >\n <div part=\"overlay\" class=\"dialog__overlay\" @click=${() => this.requestClose(\"overlay\")} tabindex=\"-1\"></div>\n\n <div\n part=\"panel\"\n class=\"dialog__panel\"\n role=\"dialog\"\n aria-modal=\"true\"\n aria-hidden=${this.open ? \"false\" : \"true\"}\n aria-label=${ifDefined(this.noHeader ? this.label : void 0)}\n aria-labelledby=${ifDefined(!this.noHeader ? \"title\" : void 0)}\n tabindex=\"-1\"\n >\n ${!this.noHeader ? html`\n <header part=\"header\" class=\"dialog__header\">\n <h2 part=\"title\" class=\"dialog__title\" id=\"title\">\n <slot name=\"label\"> ${this.label.length > 0 ? this.label : String.fromCharCode(65279)} </slot>\n </h2>\n <div part=\"header-actions\" class=\"dialog__header-actions\">\n <slot name=\"header-actions\"></slot>\n <sl-icon-button\n part=\"close-button\"\n exportparts=\"base:close-button__base\"\n class=\"dialog__close\"\n name=\"x-lg\"\n label=${this.localize.term(\"close\")}\n library=\"system\"\n @click=\"${() => this.requestClose(\"close-button\")}\"\n ></sl-icon-button>\n </div>\n </header>\n ` : \"\"}\n ${\"\"}\n <div part=\"body\" class=\"dialog__body\" tabindex=\"-1\"><slot></slot></div>\n\n <footer part=\"footer\" class=\"dialog__footer\">\n <slot name=\"footer\"></slot>\n </footer>\n </div>\n </div>\n `;\n }\n};\nSlDialog.styles = [component_styles_default, dialog_styles_default];\nSlDialog.dependencies = {\n \"sl-icon-button\": SlIconButton\n};\n__decorateClass([\n query(\".dialog\")\n], SlDialog.prototype, \"dialog\", 2);\n__decorateClass([\n query(\".dialog__panel\")\n], SlDialog.prototype, \"panel\", 2);\n__decorateClass([\n query(\".dialog__overlay\")\n], SlDialog.prototype, \"overlay\", 2);\n__decorateClass([\n property({ type: Boolean, reflect: true })\n], SlDialog.prototype, \"open\", 2);\n__decorateClass([\n property({ reflect: true })\n], SlDialog.prototype, \"label\", 2);\n__decorateClass([\n property({ attribute: \"no-header\", type: Boolean, reflect: true })\n], SlDialog.prototype, \"noHeader\", 2);\n__decorateClass([\n watch(\"open\", { waitUntilFirstUpdate: true })\n], SlDialog.prototype, \"handleOpenChange\", 1);\nsetDefaultAnimation(\"dialog.show\", {\n keyframes: [\n { opacity: 0, scale: 0.8 },\n { opacity: 1, scale: 1 }\n ],\n options: { duration: 250, easing: \"ease\" }\n});\nsetDefaultAnimation(\"dialog.hide\", {\n keyframes: [\n { opacity: 1, scale: 1 },\n { opacity: 0, scale: 0.8 }\n ],\n options: { duration: 250, easing: \"ease\" }\n});\nsetDefaultAnimation(\"dialog.denyClose\", {\n keyframes: [{ scale: 1 }, { scale: 1.02 }, { scale: 1 }],\n options: { duration: 250 }\n});\nsetDefaultAnimation(\"dialog.overlay.show\", {\n keyframes: [{ opacity: 0 }, { opacity: 1 }],\n options: { duration: 250 }\n});\nsetDefaultAnimation(\"dialog.overlay.hide\", {\n keyframes: [{ opacity: 1 }, { opacity: 0 }],\n options: { duration: 250 }\n});\n\nexport {\n SlDialog\n};\n","import {\n SlDialog\n} from \"./chunk.UE77SM53.js\";\n\n// src/components/dialog/dialog.ts\nvar dialog_default = SlDialog;\nSlDialog.define(\"sl-dialog\");\n\nexport {\n dialog_default\n};\n","import {\n SlIconButton\n} from \"./chunk.WQ4LAAP4.js\";\n\n// src/components/icon-button/icon-button.ts\nvar icon_button_default = SlIconButton;\nSlIconButton.define(\"sl-icon-button\");\n\nexport {\n icon_button_default\n};\n","export function random(len) {\n\treturn crypto.getRandomValues(new Uint8Array(len));\n}\n","import { random } from '@lukeed/csprng';\n\nvar SIZE=4096, HEX=[], IDX=0, BUFFER;\n\nfor (; IDX < 256; IDX++) {\n\tHEX[IDX] = (IDX + 256).toString(16).substring(1);\n}\n\nexport function v4() {\n\tif (!BUFFER || ((IDX + 16) > SIZE)) {\n\t\tBUFFER = random(SIZE);\n\t\tIDX = 0;\n\t}\n\n\tvar i=0, tmp, out='';\n\tfor (; i < 16; i++) {\n\t\ttmp = BUFFER[IDX + i];\n\t\tif (i==6) out += HEX[tmp & 15 | 64];\n\t\telse if (i==8) out += HEX[tmp & 63 | 128];\n\t\telse out += HEX[tmp];\n\n\t\tif (i & 1 && i > 1 && i < 11) out += '-';\n\t}\n\n\tIDX += 16;\n\treturn out;\n}\n"],"names":["basePath","setBasePath","path","getBasePath","subpath","scripts","configScript","script","fallbackScript","s","__defProp","__defProps","__getOwnPropDesc","__getOwnPropDescs","__getOwnPropSymbols","__hasOwnProp","__propIsEnum","__knownSymbol","name","symbol","__defNormalProp","obj","key","value","__spreadValues","a","b","prop","__spreadProps","__decorateClass","decorators","target","kind","result","i","decorator","__await","promise","isYieldStar","__yieldStar","isAwait","method","it","k","x","v","resolve","library","library_default_default","icons","systemLibrary","library_system_default","registry","watchedIcons","watchIcon","icon","unwatchIcon","el","getIconLibrary","lib","registerIconLibrary","options","unregisterIconLibrary","icon_styles_default","css","watch","propertyName","resolvedOptions","proto","decoratedFnName","update","watchedProperties","changedProps","property","oldValue","newValue","component_styles_default","ShoelaceElement","LitElement","component","event","elementConstructor","currentlyRegisteredConstructor","newVersion","existingVersion","CACHEABLE_ERROR","RETRYABLE_ERROR","parser","iconCache","SlIcon","url","_a","fileData","html","svg","div","svgEl","fromLibrary","iconResolver","isTemplateResult","state","badge_styles_default","SlBadge","classMap","tooltip_styles_default","popup_styles_default","min","max","round","floor","createCoords","oppositeSideMap","oppositeAlignmentMap","clamp","start","end","evaluate","param","getSide","placement","getAlignment","getOppositeAxis","axis","getAxisLength","getSideAxis","getAlignmentAxis","getAlignmentSides","rects","rtl","alignment","alignmentAxis","length","mainAlignmentSide","getOppositePlacement","getExpandedPlacements","oppositePlacement","getOppositeAlignmentPlacement","getSideList","side","isStart","lr","rl","tb","bt","getOppositeAxisPlacements","flipAlignment","direction","list","expandPaddingObject","padding","getPaddingObject","rectToClientRect","rect","computeCoordsFromPlacement","_ref","reference","floating","sideAxis","alignLength","isVertical","commonX","commonY","commonAlign","coords","computePosition","config","strategy","middleware","platform","validMiddleware","y","statefulPlacement","middlewareData","resetCount","fn","nextX","nextY","data","reset","detectOverflow","_await$platform$isEle","elements","boundary","rootBoundary","elementContext","altBoundary","paddingObject","element","clippingClientRect","offsetParent","offsetScale","elementClientRect","arrow","arrowDimensions","isYAxis","minProp","maxProp","clientProp","endDiff","startDiff","arrowOffsetParent","clientSize","centerToReference","largestPossiblePadding","minPadding","maxPadding","min$1","center","offset","shouldAddOffset","alignmentOffset","flip","_middlewareData$arrow","_middlewareData$flip","initialPlacement","checkMainAxis","checkCrossAxis","specifiedFallbackPlacements","fallbackStrategy","fallbackAxisSideDirection","detectOverflowOptions","isBasePlacement","fallbackPlacements","placements","overflow","overflows","overflowsData","sides","_middlewareData$flip2","_overflowsData$filter","nextIndex","nextPlacement","resetPlacement","d","_overflowsData$map$so","acc","convertValueToCoords","mainAxisMulti","crossAxisMulti","rawValue","mainAxis","crossAxis","diffCoords","shift","limiter","mainAxisCoord","crossAxisCoord","minSide","maxSide","limitedCoords","size","apply","width","height","heightSide","widthSide","overflowAvailableHeight","overflowAvailableWidth","noShift","availableHeight","availableWidth","maximumClippingWidth","maximumClippingHeight","xMin","xMax","yMin","yMax","nextDimensions","getNodeName","node","isNode","getWindow","_node$ownerDocument","getDocumentElement","isElement","isHTMLElement","isShadowRoot","isOverflowElement","overflowX","overflowY","display","getComputedStyle","isTableElement","isContainingBlock","webkit","isWebKit","getContainingBlock","currentNode","getParentNode","isLastTraversableNode","getNodeScroll","getNearestOverflowAncestor","parentNode","getOverflowAncestors","traverseIframes","_node$ownerDocument2","scrollableAncestor","isBody","win","getCssDimensions","hasOffset","offsetWidth","offsetHeight","shouldFallback","unwrapElement","getScale","domElement","$","noOffsets","getVisualOffsets","shouldAddVisualOffsets","isFixed","floatingOffsetParent","getBoundingClientRect","includeScale","isFixedStrategy","clientRect","scale","visualOffsets","offsetWin","currentIFrame","iframeScale","iframeRect","left","top","convertOffsetParentRelativeRectToViewportRelativeRect","isOffsetParentAnElement","documentElement","scroll","offsets","offsetRect","getClientRects","getWindowScrollBarX","getDocumentRect","body","getViewportRect","visualViewport","visualViewportBased","getInnerBoundingClientRect","getClientRectFromClippingAncestor","clippingAncestor","hasFixedPositionAncestor","stopNode","getClippingElementAncestors","cache","cachedResult","currentContainingBlockComputedStyle","elementIsFixed","computedStyle","currentNodeIsContaining","ancestor","getClippingRect","clippingAncestors","firstClippingAncestor","clippingRect","accRect","getDimensions","getRectRelativeToOffsetParent","getTrueOffsetParent","polyfill","getOffsetParent","window","getElementRects","getOffsetParentFn","getDimensionsFn","isRTL","observeMove","onMove","io","timeoutId","root","cleanup","refresh","skip","threshold","insetTop","insetRight","insetBottom","insetLeft","isFirstUpdate","handleObserve","entries","ratio","autoUpdate","ancestorScroll","ancestorResize","elementResize","layoutShift","animationFrame","referenceEl","ancestors","cleanupIo","reobserveFrame","resizeObserver","firstEntry","frameId","prevRefRect","frameLoop","nextRefRect","mergedOptions","platformWithCache","computePosition$1","t","r","o","isVirtualElement","e","SlPopup","anchorRect","popupRect","topLeftX","topLeftY","topRightX","topRightY","bottomLeftX","bottomLeftY","bottomRightX","bottomRightY","syncWidth","syncHeight","isRtl","staticSide","arrowX","arrowY","right","bottom","query","p","defaultAnimationRegistry","customAnimationRegistry","ensureAnimation","animation","getLogicalAnimation","dir","setDefaultAnimation","animationName","getAnimation","customAnimation","defaultAnimation","waitForEvent","eventName","done","animateTo","keyframes","prefersReducedMotion","parseDuration","delay","stopAnimations","connectedElements","documentElementObserver","translations","documentDirection","documentLanguage","fallback","registerTranslation","translation","code","LocalizeController$1","host","lang","_b","locale","language","region","primary","secondary","args","term","dateToFormat","numberToFormat","unit","slide","count","num","en_default","LocalizeController","DefaultLocalizationController","SlTooltip","triggerType","spinner_styles_default","SlSpinner","formCollections","reportValidityOverloads","checkValidityOverloads","userInteractedControls","interactions","FormControlController","disabled","isButton","val","reportValidity","control","emittedEvents","input","formId","form","formCollection","hasInteracted","type","submitter","button","attr","isValid","required","originalInvalidEvent","slInvalidEvent","validValidityState","button_styles_default","HasSlotController","slotNames","slot","slotName","SlButton","message","isLink","tag","literal","ifDefined","computedStyleMap","getCachedComputedStyle","isVisible","isOverflowingAndTabbable","isTabbable","tabindex","getSlottedChildrenOutsideRootElement","slotElement","getTabbableElements","walkedEls","tabbableElements","walk","assignedEl","aTabindex","activeElements","activeElement","getDeepestActiveElement","activeModals","Modal","currentActiveElement","currentFocusIndex","addition","nextFocus","allActiveElements","modal","locks","getScrollbarWidth","documentWidth","getExistingBodyPadding","lockBodyScrolling","lockingEl","scrollbarWidth","unlockBodyScrolling","dialog_styles_default","icon_button_styles_default","SlIconButton","SlDialog","source","autoFocusTarget","panelAnimation","overlayAnimation","trigger","random","len","SIZE","HEX","IDX","BUFFER","v4","tmp","out"],"mappings":"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AA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAA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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47]}
1
+ {"version":3,"file":"vendor-KKSARHWL.esm.js","sources":["../../node_modules/@shoelace-style/shoelace/dist/chunks/chunk.3Y6SB6QS.js","../../node_modules/@shoelace-style/shoelace/dist/chunks/chunk.IFDWM6P4.js","../../node_modules/@shoelace-style/shoelace/dist/chunks/chunk.P7ZG6EMR.js","../../node_modules/@shoelace-style/shoelace/dist/chunks/chunk.3TFKS637.js","../../node_modules/@shoelace-style/shoelace/dist/chunks/chunk.ZL53POKZ.js","../../node_modules/@shoelace-style/shoelace/dist/chunks/chunk.QLXRCYS4.js","../../node_modules/@shoelace-style/shoelace/dist/chunks/chunk.2FB5TK5H.js","../../node_modules/@shoelace-style/shoelace/dist/chunks/chunk.TUVJKY7S.js","../../node_modules/@shoelace-style/shoelace/dist/chunks/chunk.SFSTXCXC.js","../../node_modules/@shoelace-style/shoelace/dist/chunks/chunk.H33C3MRM.js","../../node_modules/@shoelace-style/shoelace/dist/chunks/chunk.22M42QYS.js","../../node_modules/@shoelace-style/shoelace/dist/chunks/chunk.WQC6OWUE.js","../../node_modules/@shoelace-style/shoelace/dist/chunks/chunk.AQLP63PT.js","../../node_modules/@shoelace-style/shoelace/dist/chunks/chunk.3LQGVQFJ.js","../../node_modules/@shoelace-style/shoelace/dist/chunks/chunk.BCNEWSXW.js","../../node_modules/@shoelace-style/shoelace/dist/chunks/chunk.3KSWVBQ5.js","../../node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs","../../node_modules/@floating-ui/core/dist/floating-ui.core.mjs","../../node_modules/@floating-ui/utils/dom/dist/floating-ui.utils.dom.mjs","../../node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs","../../node_modules/composed-offset-position/dist/composed-offset-position.browser.min.mjs","../../node_modules/@shoelace-style/shoelace/dist/chunks/chunk.SUWKRDXP.js","../../node_modules/@shoelace-style/shoelace/dist/chunks/chunk.DHU6MIVB.js","../../node_modules/@shoelace-style/shoelace/dist/chunks/chunk.B4BZKR24.js","../../node_modules/@shoelace-style/shoelace/dist/chunks/chunk.LHI6QEL2.js","../../node_modules/@shoelace-style/localize/dist/index.js","../../node_modules/@shoelace-style/shoelace/dist/chunks/chunk.MAS2SHYD.js","../../node_modules/@shoelace-style/shoelace/dist/chunks/chunk.WLV3FVBR.js","../../node_modules/@shoelace-style/shoelace/dist/chunks/chunk.5UHNODB4.js","../../node_modules/@shoelace-style/shoelace/dist/chunks/chunk.VC2C3DLQ.js","../../node_modules/@shoelace-style/shoelace/dist/chunks/chunk.7DUCI5S4.js","../../node_modules/@shoelace-style/shoelace/dist/chunks/chunk.RADK4UXU.js","../../node_modules/@shoelace-style/shoelace/dist/chunks/chunk.KWPBDQ6I.js","../../node_modules/@shoelace-style/shoelace/dist/chunks/chunk.HLDU3ZPH.js","../../node_modules/@shoelace-style/shoelace/dist/chunks/chunk.NYIIDP5N.js","../../node_modules/@shoelace-style/shoelace/dist/chunks/chunk.5SUGJ4EB.js","../../node_modules/@shoelace-style/shoelace/dist/chunks/chunk.7XIC3PQE.js","../../node_modules/@shoelace-style/shoelace/dist/chunks/chunk.LXDTFLWU.js","../../node_modules/@shoelace-style/shoelace/dist/chunks/chunk.ODFLWOL6.js","../../node_modules/@shoelace-style/shoelace/dist/chunks/chunk.BTENR4BI.js","../../node_modules/@shoelace-style/shoelace/dist/chunks/chunk.G5RKA5HF.js","../../node_modules/@shoelace-style/shoelace/dist/chunks/chunk.6I2T3DLI.js","../../node_modules/@shoelace-style/shoelace/dist/chunks/chunk.WQ4LAAP4.js","../../node_modules/@shoelace-style/shoelace/dist/chunks/chunk.UE77SM53.js","../../node_modules/@shoelace-style/shoelace/dist/chunks/chunk.545BWSIV.js","../../node_modules/@shoelace-style/shoelace/dist/chunks/chunk.VFX5UTJA.js","../../node_modules/@lukeed/csprng/browser/index.mjs","../../node_modules/@lukeed/uuid/secure/index.mjs"],"sourcesContent":["// src/utilities/base-path.ts\nvar basePath = \"\";\nfunction setBasePath(path) {\n basePath = path;\n}\nfunction getBasePath(subpath = \"\") {\n if (!basePath) {\n const scripts = [...document.getElementsByTagName(\"script\")];\n const configScript = scripts.find((script) => script.hasAttribute(\"data-shoelace\"));\n if (configScript) {\n setBasePath(configScript.getAttribute(\"data-shoelace\"));\n } else {\n const fallbackScript = scripts.find((s) => {\n return /shoelace(\\.min)?\\.js($|\\?)/.test(s.src) || /shoelace-autoloader(\\.min)?\\.js($|\\?)/.test(s.src);\n });\n let path = \"\";\n if (fallbackScript) {\n path = fallbackScript.getAttribute(\"src\");\n }\n setBasePath(path.split(\"/\").slice(0, -1).join(\"/\"));\n }\n }\n return basePath.replace(/\\/$/, \"\") + (subpath ? `/${subpath.replace(/^\\//, \"\")}` : ``);\n}\n\nexport {\n setBasePath,\n getBasePath\n};\n","var __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __knownSymbol = (name, symbol) => {\n return (symbol = Symbol[name]) ? symbol : Symbol.for(\"Symbol.\" + name);\n};\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nvar __decorateClass = (decorators, target, key, kind) => {\n var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;\n for (var i = decorators.length - 1, decorator; i >= 0; i--)\n if (decorator = decorators[i])\n result = (kind ? decorator(target, key, result) : decorator(result)) || result;\n if (kind && result)\n __defProp(target, key, result);\n return result;\n};\nvar __await = function(promise, isYieldStar) {\n this[0] = promise;\n this[1] = isYieldStar;\n};\nvar __yieldStar = (value) => {\n var obj = value[__knownSymbol(\"asyncIterator\")];\n var isAwait = false;\n var method;\n var it = {};\n if (obj == null) {\n obj = value[__knownSymbol(\"iterator\")]();\n method = (k) => it[k] = (x) => obj[k](x);\n } else {\n obj = obj.call(value);\n method = (k) => it[k] = (v) => {\n if (isAwait) {\n isAwait = false;\n if (k === \"throw\")\n throw v;\n return v;\n }\n isAwait = true;\n return {\n done: false,\n value: new __await(new Promise((resolve) => {\n var x = obj[k](v);\n if (!(x instanceof Object))\n throw TypeError(\"Object expected\");\n resolve(x);\n }), 1)\n };\n };\n }\n return it[__knownSymbol(\"iterator\")] = () => it, method(\"next\"), \"throw\" in obj ? method(\"throw\") : it.throw = (x) => {\n throw x;\n }, \"return\" in obj && method(\"return\"), it;\n};\n\nexport {\n __spreadValues,\n __spreadProps,\n __decorateClass,\n __yieldStar\n};\n","import {\n getBasePath\n} from \"./chunk.3Y6SB6QS.js\";\n\n// src/components/icon/library.default.ts\nvar library = {\n name: \"default\",\n resolver: (name) => getBasePath(`assets/icons/${name}.svg`)\n};\nvar library_default_default = library;\n\nexport {\n library_default_default\n};\n","// src/components/icon/library.system.ts\nvar icons = {\n caret: `\n <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n <polyline points=\"6 9 12 15 18 9\"></polyline>\n </svg>\n `,\n check: `\n <svg part=\"checked-icon\" class=\"checkbox__icon\" viewBox=\"0 0 16 16\">\n <g stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\" stroke-linecap=\"round\">\n <g stroke=\"currentColor\">\n <g transform=\"translate(3.428571, 3.428571)\">\n <path d=\"M0,5.71428571 L3.42857143,9.14285714\"></path>\n <path d=\"M9.14285714,0 L3.42857143,9.14285714\"></path>\n </g>\n </g>\n </g>\n </svg>\n `,\n \"chevron-down\": `\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"currentColor\" class=\"bi bi-chevron-down\" viewBox=\"0 0 16 16\">\n <path fill-rule=\"evenodd\" d=\"M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z\"/>\n </svg>\n `,\n \"chevron-left\": `\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"currentColor\" class=\"bi bi-chevron-left\" viewBox=\"0 0 16 16\">\n <path fill-rule=\"evenodd\" d=\"M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0z\"/>\n </svg>\n `,\n \"chevron-right\": `\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"currentColor\" class=\"bi bi-chevron-right\" viewBox=\"0 0 16 16\">\n <path fill-rule=\"evenodd\" d=\"M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z\"/>\n </svg>\n `,\n copy: `\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"currentColor\" class=\"bi bi-copy\" viewBox=\"0 0 16 16\">\n <path fill-rule=\"evenodd\" d=\"M4 2a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V2Zm2-1a1 1 0 0 0-1 1v8a1 1 0 0 0 1 1h8a1 1 0 0 0 1-1V2a1 1 0 0 0-1-1H6ZM2 5a1 1 0 0 0-1 1v8a1 1 0 0 0 1 1h8a1 1 0 0 0 1-1v-1h1v1a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h1v1H2Z\"/>\n </svg>\n `,\n eye: `\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"currentColor\" class=\"bi bi-eye\" viewBox=\"0 0 16 16\">\n <path d=\"M16 8s-3-5.5-8-5.5S0 8 0 8s3 5.5 8 5.5S16 8 16 8zM1.173 8a13.133 13.133 0 0 1 1.66-2.043C4.12 4.668 5.88 3.5 8 3.5c2.12 0 3.879 1.168 5.168 2.457A13.133 13.133 0 0 1 14.828 8c-.058.087-.122.183-.195.288-.335.48-.83 1.12-1.465 1.755C11.879 11.332 10.119 12.5 8 12.5c-2.12 0-3.879-1.168-5.168-2.457A13.134 13.134 0 0 1 1.172 8z\"/>\n <path d=\"M8 5.5a2.5 2.5 0 1 0 0 5 2.5 2.5 0 0 0 0-5zM4.5 8a3.5 3.5 0 1 1 7 0 3.5 3.5 0 0 1-7 0z\"/>\n </svg>\n `,\n \"eye-slash\": `\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"currentColor\" class=\"bi bi-eye-slash\" viewBox=\"0 0 16 16\">\n <path d=\"M13.359 11.238C15.06 9.72 16 8 16 8s-3-5.5-8-5.5a7.028 7.028 0 0 0-2.79.588l.77.771A5.944 5.944 0 0 1 8 3.5c2.12 0 3.879 1.168 5.168 2.457A13.134 13.134 0 0 1 14.828 8c-.058.087-.122.183-.195.288-.335.48-.83 1.12-1.465 1.755-.165.165-.337.328-.517.486l.708.709z\"/>\n <path d=\"M11.297 9.176a3.5 3.5 0 0 0-4.474-4.474l.823.823a2.5 2.5 0 0 1 2.829 2.829l.822.822zm-2.943 1.299.822.822a3.5 3.5 0 0 1-4.474-4.474l.823.823a2.5 2.5 0 0 0 2.829 2.829z\"/>\n <path d=\"M3.35 5.47c-.18.16-.353.322-.518.487A13.134 13.134 0 0 0 1.172 8l.195.288c.335.48.83 1.12 1.465 1.755C4.121 11.332 5.881 12.5 8 12.5c.716 0 1.39-.133 2.02-.36l.77.772A7.029 7.029 0 0 1 8 13.5C3 13.5 0 8 0 8s.939-1.721 2.641-3.238l.708.709zm10.296 8.884-12-12 .708-.708 12 12-.708.708z\"/>\n </svg>\n `,\n eyedropper: `\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"currentColor\" class=\"bi bi-eyedropper\" viewBox=\"0 0 16 16\">\n <path d=\"M13.354.646a1.207 1.207 0 0 0-1.708 0L8.5 3.793l-.646-.647a.5.5 0 1 0-.708.708L8.293 5l-7.147 7.146A.5.5 0 0 0 1 12.5v1.793l-.854.853a.5.5 0 1 0 .708.707L1.707 15H3.5a.5.5 0 0 0 .354-.146L11 7.707l1.146 1.147a.5.5 0 0 0 .708-.708l-.647-.646 3.147-3.146a1.207 1.207 0 0 0 0-1.708l-2-2zM2 12.707l7-7L10.293 7l-7 7H2v-1.293z\"></path>\n </svg>\n `,\n \"grip-vertical\": `\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"currentColor\" class=\"bi bi-grip-vertical\" viewBox=\"0 0 16 16\">\n <path d=\"M7 2a1 1 0 1 1-2 0 1 1 0 0 1 2 0zm3 0a1 1 0 1 1-2 0 1 1 0 0 1 2 0zM7 5a1 1 0 1 1-2 0 1 1 0 0 1 2 0zm3 0a1 1 0 1 1-2 0 1 1 0 0 1 2 0zM7 8a1 1 0 1 1-2 0 1 1 0 0 1 2 0zm3 0a1 1 0 1 1-2 0 1 1 0 0 1 2 0zm-3 3a1 1 0 1 1-2 0 1 1 0 0 1 2 0zm3 0a1 1 0 1 1-2 0 1 1 0 0 1 2 0zm-3 3a1 1 0 1 1-2 0 1 1 0 0 1 2 0zm3 0a1 1 0 1 1-2 0 1 1 0 0 1 2 0z\"></path>\n </svg>\n `,\n indeterminate: `\n <svg part=\"indeterminate-icon\" class=\"checkbox__icon\" viewBox=\"0 0 16 16\">\n <g stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\" stroke-linecap=\"round\">\n <g stroke=\"currentColor\" stroke-width=\"2\">\n <g transform=\"translate(2.285714, 6.857143)\">\n <path d=\"M10.2857143,1.14285714 L1.14285714,1.14285714\"></path>\n </g>\n </g>\n </g>\n </svg>\n `,\n \"person-fill\": `\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"currentColor\" class=\"bi bi-person-fill\" viewBox=\"0 0 16 16\">\n <path d=\"M3 14s-1 0-1-1 1-4 6-4 6 3 6 4-1 1-1 1H3zm5-6a3 3 0 1 0 0-6 3 3 0 0 0 0 6z\"/>\n </svg>\n `,\n \"play-fill\": `\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"currentColor\" class=\"bi bi-play-fill\" viewBox=\"0 0 16 16\">\n <path d=\"m11.596 8.697-6.363 3.692c-.54.313-1.233-.066-1.233-.697V4.308c0-.63.692-1.01 1.233-.696l6.363 3.692a.802.802 0 0 1 0 1.393z\"></path>\n </svg>\n `,\n \"pause-fill\": `\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"currentColor\" class=\"bi bi-pause-fill\" viewBox=\"0 0 16 16\">\n <path d=\"M5.5 3.5A1.5 1.5 0 0 1 7 5v6a1.5 1.5 0 0 1-3 0V5a1.5 1.5 0 0 1 1.5-1.5zm5 0A1.5 1.5 0 0 1 12 5v6a1.5 1.5 0 0 1-3 0V5a1.5 1.5 0 0 1 1.5-1.5z\"></path>\n </svg>\n `,\n radio: `\n <svg part=\"checked-icon\" class=\"radio__icon\" viewBox=\"0 0 16 16\">\n <g stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\n <g fill=\"currentColor\">\n <circle cx=\"8\" cy=\"8\" r=\"3.42857143\"></circle>\n </g>\n </g>\n </svg>\n `,\n \"star-fill\": `\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"currentColor\" class=\"bi bi-star-fill\" viewBox=\"0 0 16 16\">\n <path d=\"M3.612 15.443c-.386.198-.824-.149-.746-.592l.83-4.73L.173 6.765c-.329-.314-.158-.888.283-.95l4.898-.696L7.538.792c.197-.39.73-.39.927 0l2.184 4.327 4.898.696c.441.062.612.636.282.95l-3.522 3.356.83 4.73c.078.443-.36.79-.746.592L8 13.187l-4.389 2.256z\"/>\n </svg>\n `,\n \"x-lg\": `\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"currentColor\" class=\"bi bi-x-lg\" viewBox=\"0 0 16 16\">\n <path d=\"M2.146 2.854a.5.5 0 1 1 .708-.708L8 7.293l5.146-5.147a.5.5 0 0 1 .708.708L8.707 8l5.147 5.146a.5.5 0 0 1-.708.708L8 8.707l-5.146 5.147a.5.5 0 0 1-.708-.708L7.293 8 2.146 2.854Z\"/>\n </svg>\n `,\n \"x-circle-fill\": `\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"currentColor\" class=\"bi bi-x-circle-fill\" viewBox=\"0 0 16 16\">\n <path d=\"M16 8A8 8 0 1 1 0 8a8 8 0 0 1 16 0zM5.354 4.646a.5.5 0 1 0-.708.708L7.293 8l-2.647 2.646a.5.5 0 0 0 .708.708L8 8.707l2.646 2.647a.5.5 0 0 0 .708-.708L8.707 8l2.647-2.646a.5.5 0 0 0-.708-.708L8 7.293 5.354 4.646z\"></path>\n </svg>\n `\n};\nvar systemLibrary = {\n name: \"system\",\n resolver: (name) => {\n if (name in icons) {\n return `data:image/svg+xml,${encodeURIComponent(icons[name])}`;\n }\n return \"\";\n }\n};\nvar library_system_default = systemLibrary;\n\nexport {\n library_system_default\n};\n","import {\n library_default_default\n} from \"./chunk.P7ZG6EMR.js\";\nimport {\n library_system_default\n} from \"./chunk.3TFKS637.js\";\n\n// src/components/icon/library.ts\nvar registry = [library_default_default, library_system_default];\nvar watchedIcons = [];\nfunction watchIcon(icon) {\n watchedIcons.push(icon);\n}\nfunction unwatchIcon(icon) {\n watchedIcons = watchedIcons.filter((el) => el !== icon);\n}\nfunction getIconLibrary(name) {\n return registry.find((lib) => lib.name === name);\n}\nfunction registerIconLibrary(name, options) {\n unregisterIconLibrary(name);\n registry.push({\n name,\n resolver: options.resolver,\n mutator: options.mutator,\n spriteSheet: options.spriteSheet\n });\n watchedIcons.forEach((icon) => {\n if (icon.library === name) {\n icon.setIcon();\n }\n });\n}\nfunction unregisterIconLibrary(name) {\n registry = registry.filter((lib) => lib.name !== name);\n}\n\nexport {\n watchIcon,\n unwatchIcon,\n getIconLibrary,\n registerIconLibrary,\n unregisterIconLibrary\n};\n","// src/components/icon/icon.styles.ts\nimport { css } from \"lit\";\nvar icon_styles_default = css`\n :host {\n display: inline-block;\n width: 1em;\n height: 1em;\n box-sizing: content-box !important;\n }\n\n svg {\n display: block;\n height: 100%;\n width: 100%;\n }\n`;\n\nexport {\n icon_styles_default\n};\n","import {\n __spreadValues\n} from \"./chunk.IFDWM6P4.js\";\n\n// src/internal/watch.ts\nfunction watch(propertyName, options) {\n const resolvedOptions = __spreadValues({\n waitUntilFirstUpdate: false\n }, options);\n return (proto, decoratedFnName) => {\n const { update } = proto;\n const watchedProperties = Array.isArray(propertyName) ? propertyName : [propertyName];\n proto.update = function(changedProps) {\n watchedProperties.forEach((property) => {\n const key = property;\n if (changedProps.has(key)) {\n const oldValue = changedProps.get(key);\n const newValue = this[key];\n if (oldValue !== newValue) {\n if (!resolvedOptions.waitUntilFirstUpdate || this.hasUpdated) {\n this[decoratedFnName](oldValue, newValue);\n }\n }\n }\n });\n update.call(this, changedProps);\n };\n };\n}\n\nexport {\n watch\n};\n","// src/styles/component.styles.ts\nimport { css } from \"lit\";\nvar component_styles_default = css`\n :host {\n box-sizing: border-box;\n }\n\n :host *,\n :host *::before,\n :host *::after {\n box-sizing: inherit;\n }\n\n [hidden] {\n display: none !important;\n }\n`;\n\nexport {\n component_styles_default\n};\n","import {\n __decorateClass,\n __spreadValues\n} from \"./chunk.IFDWM6P4.js\";\n\n// src/internal/shoelace-element.ts\nimport { LitElement } from \"lit\";\nimport { property } from \"lit/decorators.js\";\nvar ShoelaceElement = class extends LitElement {\n constructor() {\n super();\n Object.entries(this.constructor.dependencies).forEach(([name, component]) => {\n this.constructor.define(name, component);\n });\n }\n emit(name, options) {\n const event = new CustomEvent(name, __spreadValues({\n bubbles: true,\n cancelable: false,\n composed: true,\n detail: {}\n }, options));\n this.dispatchEvent(event);\n return event;\n }\n /* eslint-enable */\n static define(name, elementConstructor = this, options = {}) {\n const currentlyRegisteredConstructor = customElements.get(name);\n if (!currentlyRegisteredConstructor) {\n customElements.define(name, class extends elementConstructor {\n }, options);\n return;\n }\n let newVersion = \" (unknown version)\";\n let existingVersion = newVersion;\n if (\"version\" in elementConstructor && elementConstructor.version) {\n newVersion = \" v\" + elementConstructor.version;\n }\n if (\"version\" in currentlyRegisteredConstructor && currentlyRegisteredConstructor.version) {\n existingVersion = \" v\" + currentlyRegisteredConstructor.version;\n }\n if (newVersion && existingVersion && newVersion === existingVersion) {\n return;\n }\n console.warn(\n `Attempted to register <${name}>${newVersion}, but <${name}>${existingVersion} has already been registered.`\n );\n }\n};\n/* eslint-disable */\n// @ts-expect-error This is auto-injected at build time.\nShoelaceElement.version = \"2.15.0\";\nShoelaceElement.dependencies = {};\n__decorateClass([\n property()\n], ShoelaceElement.prototype, \"dir\", 2);\n__decorateClass([\n property()\n], ShoelaceElement.prototype, \"lang\", 2);\n\nexport {\n ShoelaceElement\n};\n","import {\n getIconLibrary,\n unwatchIcon,\n watchIcon\n} from \"./chunk.ZL53POKZ.js\";\nimport {\n icon_styles_default\n} from \"./chunk.QLXRCYS4.js\";\nimport {\n watch\n} from \"./chunk.2FB5TK5H.js\";\nimport {\n component_styles_default\n} from \"./chunk.TUVJKY7S.js\";\nimport {\n ShoelaceElement\n} from \"./chunk.SFSTXCXC.js\";\nimport {\n __decorateClass\n} from \"./chunk.IFDWM6P4.js\";\n\n// src/components/icon/icon.component.ts\nimport { html } from \"lit\";\nimport { isTemplateResult } from \"lit/directive-helpers.js\";\nimport { property, state } from \"lit/decorators.js\";\nvar CACHEABLE_ERROR = Symbol();\nvar RETRYABLE_ERROR = Symbol();\nvar parser;\nvar iconCache = /* @__PURE__ */ new Map();\nvar SlIcon = class extends ShoelaceElement {\n constructor() {\n super(...arguments);\n this.initialRender = false;\n this.svg = null;\n this.label = \"\";\n this.library = \"default\";\n }\n /** Given a URL, this function returns the resulting SVG element or an appropriate error symbol. */\n async resolveIcon(url, library) {\n var _a;\n let fileData;\n if (library == null ? void 0 : library.spriteSheet) {\n this.svg = html`<svg part=\"svg\">\n <use part=\"use\" href=\"${url}\"></use>\n </svg>`;\n await this.updateComplete;\n const svg = this.shadowRoot.querySelector(\"[part='svg']\");\n if (typeof library.mutator === \"function\") {\n library.mutator(svg);\n }\n return this.svg;\n }\n try {\n fileData = await fetch(url, { mode: \"cors\" });\n if (!fileData.ok)\n return fileData.status === 410 ? CACHEABLE_ERROR : RETRYABLE_ERROR;\n } catch (e) {\n return RETRYABLE_ERROR;\n }\n try {\n const div = document.createElement(\"div\");\n div.innerHTML = await fileData.text();\n const svg = div.firstElementChild;\n if (((_a = svg == null ? void 0 : svg.tagName) == null ? void 0 : _a.toLowerCase()) !== \"svg\")\n return CACHEABLE_ERROR;\n if (!parser)\n parser = new DOMParser();\n const doc = parser.parseFromString(svg.outerHTML, \"text/html\");\n const svgEl = doc.body.querySelector(\"svg\");\n if (!svgEl)\n return CACHEABLE_ERROR;\n svgEl.part.add(\"svg\");\n return document.adoptNode(svgEl);\n } catch (e) {\n return CACHEABLE_ERROR;\n }\n }\n connectedCallback() {\n super.connectedCallback();\n watchIcon(this);\n }\n firstUpdated() {\n this.initialRender = true;\n this.setIcon();\n }\n disconnectedCallback() {\n super.disconnectedCallback();\n unwatchIcon(this);\n }\n getIconSource() {\n const library = getIconLibrary(this.library);\n if (this.name && library) {\n return {\n url: library.resolver(this.name),\n fromLibrary: true\n };\n }\n return {\n url: this.src,\n fromLibrary: false\n };\n }\n handleLabelChange() {\n const hasLabel = typeof this.label === \"string\" && this.label.length > 0;\n if (hasLabel) {\n this.setAttribute(\"role\", \"img\");\n this.setAttribute(\"aria-label\", this.label);\n this.removeAttribute(\"aria-hidden\");\n } else {\n this.removeAttribute(\"role\");\n this.removeAttribute(\"aria-label\");\n this.setAttribute(\"aria-hidden\", \"true\");\n }\n }\n async setIcon() {\n var _a;\n const { url, fromLibrary } = this.getIconSource();\n const library = fromLibrary ? getIconLibrary(this.library) : void 0;\n if (!url) {\n this.svg = null;\n return;\n }\n let iconResolver = iconCache.get(url);\n if (!iconResolver) {\n iconResolver = this.resolveIcon(url, library);\n iconCache.set(url, iconResolver);\n }\n if (!this.initialRender) {\n return;\n }\n const svg = await iconResolver;\n if (svg === RETRYABLE_ERROR) {\n iconCache.delete(url);\n }\n if (url !== this.getIconSource().url) {\n return;\n }\n if (isTemplateResult(svg)) {\n this.svg = svg;\n return;\n }\n switch (svg) {\n case RETRYABLE_ERROR:\n case CACHEABLE_ERROR:\n this.svg = null;\n this.emit(\"sl-error\");\n break;\n default:\n this.svg = svg.cloneNode(true);\n (_a = library == null ? void 0 : library.mutator) == null ? void 0 : _a.call(library, this.svg);\n this.emit(\"sl-load\");\n }\n }\n render() {\n return this.svg;\n }\n};\nSlIcon.styles = [component_styles_default, icon_styles_default];\n__decorateClass([\n state()\n], SlIcon.prototype, \"svg\", 2);\n__decorateClass([\n property({ reflect: true })\n], SlIcon.prototype, \"name\", 2);\n__decorateClass([\n property()\n], SlIcon.prototype, \"src\", 2);\n__decorateClass([\n property()\n], SlIcon.prototype, \"label\", 2);\n__decorateClass([\n property({ reflect: true })\n], SlIcon.prototype, \"library\", 2);\n__decorateClass([\n watch(\"label\")\n], SlIcon.prototype, \"handleLabelChange\", 1);\n__decorateClass([\n watch([\"name\", \"src\", \"library\"])\n], SlIcon.prototype, \"setIcon\", 1);\n\nexport {\n SlIcon\n};\n","import {\n SlIcon\n} from \"./chunk.H33C3MRM.js\";\n\n// src/components/icon/icon.ts\nvar icon_default = SlIcon;\nSlIcon.define(\"sl-icon\");\n\nexport {\n icon_default\n};\n","// src/components/badge/badge.styles.ts\nimport { css } from \"lit\";\nvar badge_styles_default = css`\n :host {\n display: inline-flex;\n }\n\n .badge {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n font-size: max(12px, 0.75em);\n font-weight: var(--sl-font-weight-semibold);\n letter-spacing: var(--sl-letter-spacing-normal);\n line-height: 1;\n border-radius: var(--sl-border-radius-small);\n border: solid 1px var(--sl-color-neutral-0);\n white-space: nowrap;\n padding: 0.35em 0.6em;\n user-select: none;\n -webkit-user-select: none;\n cursor: inherit;\n }\n\n /* Variant modifiers */\n .badge--primary {\n background-color: var(--sl-color-primary-600);\n color: var(--sl-color-neutral-0);\n }\n\n .badge--success {\n background-color: var(--sl-color-success-600);\n color: var(--sl-color-neutral-0);\n }\n\n .badge--neutral {\n background-color: var(--sl-color-neutral-600);\n color: var(--sl-color-neutral-0);\n }\n\n .badge--warning {\n background-color: var(--sl-color-warning-600);\n color: var(--sl-color-neutral-0);\n }\n\n .badge--danger {\n background-color: var(--sl-color-danger-600);\n color: var(--sl-color-neutral-0);\n }\n\n /* Pill modifier */\n .badge--pill {\n border-radius: var(--sl-border-radius-pill);\n }\n\n /* Pulse modifier */\n .badge--pulse {\n animation: pulse 1.5s infinite;\n }\n\n .badge--pulse.badge--primary {\n --pulse-color: var(--sl-color-primary-600);\n }\n\n .badge--pulse.badge--success {\n --pulse-color: var(--sl-color-success-600);\n }\n\n .badge--pulse.badge--neutral {\n --pulse-color: var(--sl-color-neutral-600);\n }\n\n .badge--pulse.badge--warning {\n --pulse-color: var(--sl-color-warning-600);\n }\n\n .badge--pulse.badge--danger {\n --pulse-color: var(--sl-color-danger-600);\n }\n\n @keyframes pulse {\n 0% {\n box-shadow: 0 0 0 0 var(--pulse-color);\n }\n 70% {\n box-shadow: 0 0 0 0.5rem transparent;\n }\n 100% {\n box-shadow: 0 0 0 0 transparent;\n }\n }\n`;\n\nexport {\n badge_styles_default\n};\n","import {\n badge_styles_default\n} from \"./chunk.WQC6OWUE.js\";\nimport {\n component_styles_default\n} from \"./chunk.TUVJKY7S.js\";\nimport {\n ShoelaceElement\n} from \"./chunk.SFSTXCXC.js\";\nimport {\n __decorateClass\n} from \"./chunk.IFDWM6P4.js\";\n\n// src/components/badge/badge.component.ts\nimport { classMap } from \"lit/directives/class-map.js\";\nimport { html } from \"lit\";\nimport { property } from \"lit/decorators.js\";\nvar SlBadge = class extends ShoelaceElement {\n constructor() {\n super(...arguments);\n this.variant = \"primary\";\n this.pill = false;\n this.pulse = false;\n }\n render() {\n return html`\n <span\n part=\"base\"\n class=${classMap({\n badge: true,\n \"badge--primary\": this.variant === \"primary\",\n \"badge--success\": this.variant === \"success\",\n \"badge--neutral\": this.variant === \"neutral\",\n \"badge--warning\": this.variant === \"warning\",\n \"badge--danger\": this.variant === \"danger\",\n \"badge--pill\": this.pill,\n \"badge--pulse\": this.pulse\n })}\n role=\"status\"\n >\n <slot></slot>\n </span>\n `;\n }\n};\nSlBadge.styles = [component_styles_default, badge_styles_default];\n__decorateClass([\n property({ reflect: true })\n], SlBadge.prototype, \"variant\", 2);\n__decorateClass([\n property({ type: Boolean, reflect: true })\n], SlBadge.prototype, \"pill\", 2);\n__decorateClass([\n property({ type: Boolean, reflect: true })\n], SlBadge.prototype, \"pulse\", 2);\n\nexport {\n SlBadge\n};\n","import {\n SlBadge\n} from \"./chunk.AQLP63PT.js\";\n\n// src/components/badge/badge.ts\nvar badge_default = SlBadge;\nSlBadge.define(\"sl-badge\");\n\nexport {\n badge_default\n};\n","// src/components/tooltip/tooltip.styles.ts\nimport { css } from \"lit\";\nvar tooltip_styles_default = css`\n :host {\n --max-width: 20rem;\n --hide-delay: 0ms;\n --show-delay: 150ms;\n\n display: contents;\n }\n\n .tooltip {\n --arrow-size: var(--sl-tooltip-arrow-size);\n --arrow-color: var(--sl-tooltip-background-color);\n }\n\n .tooltip::part(popup) {\n z-index: var(--sl-z-index-tooltip);\n }\n\n .tooltip[placement^='top']::part(popup) {\n transform-origin: bottom;\n }\n\n .tooltip[placement^='bottom']::part(popup) {\n transform-origin: top;\n }\n\n .tooltip[placement^='left']::part(popup) {\n transform-origin: right;\n }\n\n .tooltip[placement^='right']::part(popup) {\n transform-origin: left;\n }\n\n .tooltip__body {\n display: block;\n width: max-content;\n max-width: var(--max-width);\n border-radius: var(--sl-tooltip-border-radius);\n background-color: var(--sl-tooltip-background-color);\n font-family: var(--sl-tooltip-font-family);\n font-size: var(--sl-tooltip-font-size);\n font-weight: var(--sl-tooltip-font-weight);\n line-height: var(--sl-tooltip-line-height);\n color: var(--sl-tooltip-color);\n padding: var(--sl-tooltip-padding);\n pointer-events: none;\n user-select: none;\n -webkit-user-select: none;\n }\n`;\n\nexport {\n tooltip_styles_default\n};\n","// src/components/popup/popup.styles.ts\nimport { css } from \"lit\";\nvar popup_styles_default = css`\n :host {\n --arrow-color: var(--sl-color-neutral-1000);\n --arrow-size: 6px;\n\n /*\n * These properties are computed to account for the arrow's dimensions after being rotated 45º. The constant\n * 0.7071 is derived from sin(45), which is the diagonal size of the arrow's container after rotating.\n */\n --arrow-size-diagonal: calc(var(--arrow-size) * 0.7071);\n --arrow-padding-offset: calc(var(--arrow-size-diagonal) - var(--arrow-size));\n\n display: contents;\n }\n\n .popup {\n position: absolute;\n isolation: isolate;\n max-width: var(--auto-size-available-width, none);\n max-height: var(--auto-size-available-height, none);\n }\n\n .popup--fixed {\n position: fixed;\n }\n\n .popup:not(.popup--active) {\n display: none;\n }\n\n .popup__arrow {\n position: absolute;\n width: calc(var(--arrow-size-diagonal) * 2);\n height: calc(var(--arrow-size-diagonal) * 2);\n rotate: 45deg;\n background: var(--arrow-color);\n z-index: -1;\n }\n\n /* Hover bridge */\n .popup-hover-bridge:not(.popup-hover-bridge--visible) {\n display: none;\n }\n\n .popup-hover-bridge {\n position: fixed;\n z-index: calc(var(--sl-z-index-dropdown) - 1);\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n clip-path: polygon(\n var(--hover-bridge-top-left-x, 0) var(--hover-bridge-top-left-y, 0),\n var(--hover-bridge-top-right-x, 0) var(--hover-bridge-top-right-y, 0),\n var(--hover-bridge-bottom-right-x, 0) var(--hover-bridge-bottom-right-y, 0),\n var(--hover-bridge-bottom-left-x, 0) var(--hover-bridge-bottom-left-y, 0)\n );\n }\n`;\n\nexport {\n popup_styles_default\n};\n","const 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 return {\n ...rect,\n top: rect.y,\n left: rect.x,\n right: rect.x + rect.width,\n bottom: rect.y + rect.height\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 reference element when it is given a certain positioning strategy.\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 continue;\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 ...rects.floating,\n x,\n y\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 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 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 if (!specifiedFallbackPlacements && fallbackAxisSideDirection !== 'none') {\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$map$so;\n const placement = (_overflowsData$map$so = overflowsData.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$map$so[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.\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 const {\n x,\n y\n } = state;\n const diffCoords = await convertValueToCoords(state, options);\n return {\n x: x + diffCoords.x,\n y: y + diffCoords.y,\n data: diffCoords\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 —\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 overflowAvailableHeight = height - overflow[heightSide];\n const overflowAvailableWidth = width - overflow[widthSide];\n const noShift = !state.middlewareData.shift;\n let availableHeight = overflowAvailableHeight;\n let availableWidth = overflowAvailableWidth;\n if (isYAxis) {\n const maximumClippingWidth = width - overflow.left - overflow.right;\n availableWidth = alignment || noShift ? min(overflowAvailableWidth, maximumClippingWidth) : maximumClippingWidth;\n } else {\n const maximumClippingHeight = height - overflow.top - overflow.bottom;\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 ? void 0 : (_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 isContainingBlock(element) {\n const webkit = isWebKit();\n const css = getComputedStyle(element);\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 {\n currentNode = getParentNode(currentNode);\n }\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.pageXOffset,\n scrollTop: element.pageYOffset\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 return list.concat(win, win.visualViewport || [], isOverflowElement(scrollableAncestor) ? scrollableAncestor : [], win.frameElement && traverseIframes ? getOverflowAncestors(win.frameElement) : []);\n }\n return list.concat(scrollableAncestor, getOverflowAncestors(scrollableAncestor, [], traverseIframes));\n}\n\nexport { getComputedStyle, getContainingBlock, getDocumentElement, getNearestOverflowAncestor, getNodeName, getNodeScroll, getOverflowAncestors, getParentNode, getWindow, isContainingBlock, isElement, isHTMLElement, isLastTraversableNode, isNode, isOverflowElement, isShadowRoot, isTableElement, isWebKit };\n","import { rectToClientRect, computePosition as computePosition$1 } from '@floating-ui/core';\nexport { arrow, autoPlacement, detectOverflow, flip, hide, inline, limitShift, offset, shift, size } from '@floating-ui/core';\nimport { round, createCoords, max, min, floor } from '@floating-ui/utils';\nimport { getComputedStyle, isHTMLElement, isElement, getWindow, isWebKit, getDocumentElement, 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 currentIFrame = win.frameElement;\n while (currentIFrame && offsetParent && offsetWin !== win) {\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 currentIFrame = getWindow(currentIFrame).frameElement;\n }\n }\n return rectToClientRect({\n width,\n height,\n x,\n y\n });\n}\n\nfunction convertOffsetParentRelativeRectToViewportRelativeRect(_ref) {\n let {\n rect,\n offsetParent,\n strategy\n } = _ref;\n const isOffsetParentAnElement = isHTMLElement(offsetParent);\n const documentElement = getDocumentElement(offsetParent);\n if (offsetParent === documentElement) {\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 if (isOffsetParentAnElement || !isOffsetParentAnElement && strategy !== 'fixed') {\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 <html> 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 `<html>` and `<body>` rect bounds if horizontally scrollable.\nfunction getDocumentRect(element) {\n const html = getDocumentElement(element);\n const scroll = getNodeScroll(element);\n const body = element.ownerDocument.body;\n const width = max(html.scrollWidth, html.clientWidth, body.scrollWidth, body.clientWidth);\n const height = max(html.scrollHeight, html.clientHeight, body.scrollHeight, body.clientHeight);\n let x = -scroll.scrollLeft + getWindowScrollBarX(element);\n const y = -scroll.scrollTop;\n if (getComputedStyle(body).direction === 'rtl') {\n x += max(html.clientWidth, body.clientWidth) - width;\n }\n return {\n width,\n height,\n x,\n y\n };\n}\n\nfunction getViewportRect(element, strategy) {\n const win = getWindow(element);\n const html = getDocumentElement(element);\n const visualViewport = win.visualViewport;\n let width = html.clientWidth;\n let height = html.clientHeight;\n let x = 0;\n let y = 0;\n if (visualViewport) {\n width = visualViewport.width;\n height = visualViewport.height;\n const visualViewportBased = isWebKit();\n if (!visualViewportBased || visualViewportBased && strategy === 'fixed') {\n x = visualViewport.offsetLeft;\n y = visualViewport.offsetTop;\n }\n }\n return {\n width,\n height,\n x,\n y\n };\n}\n\n// Returns the inner client rect, subtracting scrollbars if present.\nfunction getInnerBoundingClientRect(element, strategy) {\n const clientRect = getBoundingClientRect(element, true, strategy === 'fixed');\n const top = clientRect.top + element.clientTop;\n const left = clientRect.left + element.clientLeft;\n const scale = isHTMLElement(element) ? getScale(element) : createCoords(1);\n const width = element.clientWidth * scale.x;\n const height = element.clientHeight * scale.y;\n const x = left * scale.x;\n const y = top * scale.y;\n return {\n width,\n height,\n x,\n y\n };\n}\nfunction getClientRectFromClippingAncestor(element, clippingAncestor, strategy) {\n let rect;\n if (clippingAncestor === 'viewport') {\n rect = getViewportRect(element, strategy);\n } else if (clippingAncestor === 'document') {\n rect = getDocumentRect(getDocumentElement(element));\n } else if (isElement(clippingAncestor)) {\n rect = getInnerBoundingClientRect(clippingAncestor, strategy);\n } else {\n const visualOffsets = getVisualOffsets(element);\n rect = {\n ...clippingAncestor,\n x: clippingAncestor.x - visualOffsets.x,\n y: clippingAncestor.y - visualOffsets.y\n };\n }\n return rectToClientRect(rect);\n}\nfunction hasFixedPositionAncestor(element, stopNode) {\n const parentNode = getParentNode(element);\n if (parentNode === stopNode || !isElement(parentNode) || isLastTraversableNode(parentNode)) {\n return false;\n }\n return getComputedStyle(parentNode).position === 'fixed' || hasFixedPositionAncestor(parentNode, stopNode);\n}\n\n// A \"clipping ancestor\" is an `overflow` element with the characteristic of\n// clipping (or hiding) child elements. This returns all clipping ancestors\n// of the given element up the tree.\nfunction getClippingElementAncestors(element, cache) {\n const cachedResult = cache.get(element);\n if (cachedResult) {\n return cachedResult;\n }\n let result = getOverflowAncestors(element, [], false).filter(el => isElement(el) && getNodeName(el) !== 'body');\n let currentContainingBlockComputedStyle = null;\n const elementIsFixed = getComputedStyle(element).position === 'fixed';\n let currentNode = elementIsFixed ? getParentNode(element) : element;\n\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n while (isElement(currentNode) && !isLastTraversableNode(currentNode)) {\n const computedStyle = getComputedStyle(currentNode);\n const currentNodeIsContaining = isContainingBlock(currentNode);\n if (!currentNodeIsContaining && computedStyle.position === 'fixed') {\n currentContainingBlockComputedStyle = null;\n }\n const shouldDropCurrentNode = elementIsFixed ? !currentNodeIsContaining && !currentContainingBlockComputedStyle : !currentNodeIsContaining && computedStyle.position === 'static' && !!currentContainingBlockComputedStyle && ['absolute', 'fixed'].includes(currentContainingBlockComputedStyle.position) || isOverflowElement(currentNode) && !currentNodeIsContaining && hasFixedPositionAncestor(element, currentNode);\n if (shouldDropCurrentNode) {\n // Drop non-containing blocks.\n result = result.filter(ancestor => ancestor !== currentNode);\n } else {\n // Record last containing block for next iteration.\n currentContainingBlockComputedStyle = computedStyle;\n }\n currentNode = getParentNode(currentNode);\n }\n cache.set(element, result);\n return result;\n}\n\n// Gets the maximum area that the element is visible in due to any number of\n// clipping ancestors.\nfunction getClippingRect(_ref) {\n let {\n element,\n boundary,\n rootBoundary,\n strategy\n } = _ref;\n const elementClippingAncestors = boundary === 'clippingAncestors' ? getClippingElementAncestors(element, this._c) : [].concat(boundary);\n const clippingAncestors = [...elementClippingAncestors, rootBoundary];\n const firstClippingAncestor = clippingAncestors[0];\n const clippingRect = clippingAncestors.reduce((accRect, clippingAncestor) => {\n const rect = getClientRectFromClippingAncestor(element, clippingAncestor, strategy);\n accRect.top = max(rect.top, accRect.top);\n accRect.right = min(rect.right, accRect.right);\n accRect.bottom = min(rect.bottom, accRect.bottom);\n accRect.left = max(rect.left, accRect.left);\n return accRect;\n }, getClientRectFromClippingAncestor(element, firstClippingAncestor, strategy));\n return {\n width: clippingRect.right - clippingRect.left,\n height: clippingRect.bottom - clippingRect.top,\n x: clippingRect.left,\n y: clippingRect.top\n };\n}\n\nfunction getDimensions(element) {\n return getCssDimensions(element);\n}\n\nfunction getRectRelativeToOffsetParent(element, offsetParent, strategy) {\n const isOffsetParentAnElement = isHTMLElement(offsetParent);\n const documentElement = getDocumentElement(offsetParent);\n const isFixed = strategy === 'fixed';\n const rect = getBoundingClientRect(element, true, isFixed, offsetParent);\n let scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n const offsets = createCoords(0);\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || isOverflowElement(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n if (isOffsetParentAnElement) {\n const offsetRect = getBoundingClientRect(offsetParent, true, isFixed, offsetParent);\n offsets.x = offsetRect.x + offsetParent.clientLeft;\n offsets.y = offsetRect.y + offsetParent.clientTop;\n } else if (documentElement) {\n offsets.x = getWindowScrollBarX(documentElement);\n }\n }\n return {\n x: rect.left + scroll.scrollLeft - offsets.x,\n y: rect.top + scroll.scrollTop - offsets.y,\n width: rect.width,\n height: rect.height\n };\n}\n\nfunction getTrueOffsetParent(element, polyfill) {\n if (!isHTMLElement(element) || getComputedStyle(element).position === 'fixed') {\n return null;\n }\n if (polyfill) {\n return polyfill(element);\n }\n return element.offsetParent;\n}\n\n// Gets the closest ancestor positioned element. Handles some edge cases,\n// such as table ancestors and cross browser bugs.\nfunction getOffsetParent(element, polyfill) {\n const window = getWindow(element);\n if (!isHTMLElement(element)) {\n return window;\n }\n let offsetParent = getTrueOffsetParent(element, polyfill);\n while (offsetParent && isTableElement(offsetParent) && getComputedStyle(offsetParent).position === 'static') {\n offsetParent = getTrueOffsetParent(offsetParent, polyfill);\n }\n if (offsetParent && (getNodeName(offsetParent) === 'html' || getNodeName(offsetParent) === 'body' && getComputedStyle(offsetParent).position === 'static' && !isContainingBlock(offsetParent))) {\n return window;\n }\n return offsetParent || getContainingBlock(element) || window;\n}\n\nconst getElementRects = async function (_ref) {\n let {\n reference,\n floating,\n strategy\n } = _ref;\n const getOffsetParentFn = this.getOffsetParent || getOffsetParent;\n const getDimensionsFn = this.getDimensions;\n return {\n reference: getRectRelativeToOffsetParent(reference, await getOffsetParentFn(floating), strategy),\n floating: {\n x: 0,\n y: 0,\n ...(await getDimensionsFn(floating))\n }\n };\n};\n\nfunction isRTL(element) {\n return getComputedStyle(element).direction === 'rtl';\n}\n\nconst platform = {\n convertOffsetParentRelativeRectToViewportRelativeRect,\n getDocumentElement,\n getClippingRect,\n getOffsetParent,\n getElementRects,\n getClientRects,\n getDimensions,\n getScale,\n isElement,\n isRTL\n};\n\n// https://samthor.au/2021/observing-dom/\nfunction observeMove(element, onMove) {\n let io = null;\n let timeoutId;\n const root = getDocumentElement(element);\n function cleanup() {\n clearTimeout(timeoutId);\n io && io.disconnect();\n io = null;\n }\n function refresh(skip, threshold) {\n if (skip === void 0) {\n skip = false;\n }\n if (threshold === void 0) {\n threshold = 1;\n }\n cleanup();\n const {\n left,\n top,\n width,\n height\n } = element.getBoundingClientRect();\n if (!skip) {\n onMove();\n }\n if (!width || !height) {\n return;\n }\n const insetTop = floor(top);\n const insetRight = floor(root.clientWidth - (left + width));\n const insetBottom = floor(root.clientHeight - (top + height));\n const insetLeft = floor(left);\n const rootMargin = -insetTop + \"px \" + -insetRight + \"px \" + -insetBottom + \"px \" + -insetLeft + \"px\";\n const options = {\n rootMargin,\n threshold: max(0, min(1, threshold)) || 1\n };\n let isFirstUpdate = true;\n function handleObserve(entries) {\n const ratio = entries[0].intersectionRatio;\n if (ratio !== threshold) {\n if (!isFirstUpdate) {\n return refresh();\n }\n if (!ratio) {\n timeoutId = setTimeout(() => {\n refresh(false, 1e-7);\n }, 100);\n } else {\n refresh(false, ratio);\n }\n }\n isFirstUpdate = false;\n }\n\n // Older browsers don't support a `document` as the root and will throw an\n // error.\n try {\n io = new IntersectionObserver(handleObserve, {\n ...options,\n // Handle <iframe>s\n root: root.ownerDocument\n });\n } catch (e) {\n io = new IntersectionObserver(handleObserve, options);\n }\n io.observe(element);\n }\n refresh(true);\n return cleanup;\n}\n\n/**\n * Automatically updates the position of the floating element when necessary.\n * Should only be called when the floating element is mounted on the DOM or\n * visible on the screen.\n * @returns cleanup function that should be invoked when the floating element is\n * removed from the DOM or hidden from the screen.\n * @see https://floating-ui.com/docs/autoUpdate\n */\nfunction autoUpdate(reference, floating, update, options) {\n if (options === void 0) {\n options = {};\n }\n const {\n ancestorScroll = true,\n ancestorResize = true,\n elementResize = typeof ResizeObserver === 'function',\n layoutShift = typeof IntersectionObserver === 'function',\n animationFrame = false\n } = options;\n const referenceEl = unwrapElement(reference);\n const ancestors = ancestorScroll || ancestorResize ? [...(referenceEl ? getOverflowAncestors(referenceEl) : []), ...getOverflowAncestors(floating)] : [];\n ancestors.forEach(ancestor => {\n ancestorScroll && ancestor.addEventListener('scroll', update, {\n passive: true\n });\n ancestorResize && ancestor.addEventListener('resize', update);\n });\n const cleanupIo = referenceEl && layoutShift ? observeMove(referenceEl, update) : null;\n let reobserveFrame = -1;\n let resizeObserver = null;\n if (elementResize) {\n resizeObserver = new ResizeObserver(_ref => {\n let [firstEntry] = _ref;\n if (firstEntry && firstEntry.target === referenceEl && resizeObserver) {\n // Prevent update loops when using the `size` middleware.\n // https://github.com/floating-ui/floating-ui/issues/1740\n resizeObserver.unobserve(floating);\n cancelAnimationFrame(reobserveFrame);\n reobserveFrame = requestAnimationFrame(() => {\n resizeObserver && resizeObserver.observe(floating);\n });\n }\n update();\n });\n if (referenceEl && !animationFrame) {\n resizeObserver.observe(referenceEl);\n }\n resizeObserver.observe(floating);\n }\n let frameId;\n let prevRefRect = animationFrame ? getBoundingClientRect(reference) : null;\n if (animationFrame) {\n frameLoop();\n }\n function frameLoop() {\n const nextRefRect = getBoundingClientRect(reference);\n if (prevRefRect && (nextRefRect.x !== prevRefRect.x || nextRefRect.y !== prevRefRect.y || nextRefRect.width !== prevRefRect.width || nextRefRect.height !== prevRefRect.height)) {\n update();\n }\n prevRefRect = nextRefRect;\n frameId = requestAnimationFrame(frameLoop);\n }\n update();\n return () => {\n ancestors.forEach(ancestor => {\n ancestorScroll && ancestor.removeEventListener('scroll', update);\n ancestorResize && ancestor.removeEventListener('resize', update);\n });\n cleanupIo && cleanupIo();\n resizeObserver && resizeObserver.disconnect();\n resizeObserver = null;\n if (animationFrame) {\n cancelAnimationFrame(frameId);\n }\n };\n}\n\n/**\n * Computes the `x` and `y` coordinates that will place the floating element\n * next to a reference element when it is given a certain CSS positioning\n * strategy.\n */\nconst computePosition = (reference, floating, options) => {\n // This caches the expensive `getClippingElementAncestors` function so that\n // multiple lifecycle resets re-use the same result. It only lives for a\n // single call. If other functions become expensive, we can add them as well.\n const cache = new Map();\n const mergedOptions = {\n platform,\n ...options\n };\n const platformWithCache = {\n ...mergedOptions.platform,\n _c: cache\n };\n return computePosition$1(reference, floating, {\n ...mergedOptions,\n platform: platformWithCache\n });\n};\n\nexport { autoUpdate, computePosition, platform };\n","function t(t){return r(t)}function e(t){return f(t,\"offsetTop\")}function n(t){return f(t,\"offsetLeft\")}function o(t){return t.assignedSlot?t.assignedSlot:t.parentNode instanceof ShadowRoot?t.parentNode.host:t.parentNode}function r(t){for(let e=t;e;e=o(e))if(e instanceof Element&&\"none\"===getComputedStyle(e).display)return null;for(let e=o(t);e;e=o(e)){if(!(e instanceof Element))continue;const t=getComputedStyle(e);if(\"contents\"!==t.display){if(\"static\"!==t.position||\"none\"!==t.filter)return e;if(\"BODY\"===e.tagName)return e}}return null}function f(t,e){let n=t[e],o=r(t);const f=function(t){const e=new Set;let n=t.getRootNode();for(;n;)e.add(n),n=n.parentNode?n.parentNode.getRootNode():null;return e}(t);for(;o&&!f.has(o.getRootNode());)n-=o[e],o=r(o);return n}export{n as offsetLeft,t as offsetParent,e as offsetTop};\n","import {\n popup_styles_default\n} from \"./chunk.3KSWVBQ5.js\";\nimport {\n component_styles_default\n} from \"./chunk.TUVJKY7S.js\";\nimport {\n ShoelaceElement\n} from \"./chunk.SFSTXCXC.js\";\nimport {\n __decorateClass,\n __spreadProps,\n __spreadValues\n} from \"./chunk.IFDWM6P4.js\";\n\n// src/components/popup/popup.component.ts\nimport { arrow, autoUpdate, computePosition, flip, offset, platform, shift, size } from \"@floating-ui/dom\";\nimport { classMap } from \"lit/directives/class-map.js\";\nimport { html } from \"lit\";\nimport { offsetParent } from \"composed-offset-position\";\nimport { property, query } from \"lit/decorators.js\";\nfunction isVirtualElement(e) {\n return e !== null && typeof e === \"object\" && \"getBoundingClientRect\" in e && (\"contextElement\" in e ? e instanceof Element : true);\n}\nvar SlPopup = class extends ShoelaceElement {\n constructor() {\n super(...arguments);\n this.active = false;\n this.placement = \"top\";\n this.strategy = \"absolute\";\n this.distance = 0;\n this.skidding = 0;\n this.arrow = false;\n this.arrowPlacement = \"anchor\";\n this.arrowPadding = 10;\n this.flip = false;\n this.flipFallbackPlacements = \"\";\n this.flipFallbackStrategy = \"best-fit\";\n this.flipPadding = 0;\n this.shift = false;\n this.shiftPadding = 0;\n this.autoSizePadding = 0;\n this.hoverBridge = false;\n this.updateHoverBridge = () => {\n if (this.hoverBridge && this.anchorEl) {\n const anchorRect = this.anchorEl.getBoundingClientRect();\n const popupRect = this.popup.getBoundingClientRect();\n const isVertical = this.placement.includes(\"top\") || this.placement.includes(\"bottom\");\n let topLeftX = 0;\n let topLeftY = 0;\n let topRightX = 0;\n let topRightY = 0;\n let bottomLeftX = 0;\n let bottomLeftY = 0;\n let bottomRightX = 0;\n let bottomRightY = 0;\n if (isVertical) {\n if (anchorRect.top < popupRect.top) {\n topLeftX = anchorRect.left;\n topLeftY = anchorRect.bottom;\n topRightX = anchorRect.right;\n topRightY = anchorRect.bottom;\n bottomLeftX = popupRect.left;\n bottomLeftY = popupRect.top;\n bottomRightX = popupRect.right;\n bottomRightY = popupRect.top;\n } else {\n topLeftX = popupRect.left;\n topLeftY = popupRect.bottom;\n topRightX = popupRect.right;\n topRightY = popupRect.bottom;\n bottomLeftX = anchorRect.left;\n bottomLeftY = anchorRect.top;\n bottomRightX = anchorRect.right;\n bottomRightY = anchorRect.top;\n }\n } else {\n if (anchorRect.left < popupRect.left) {\n topLeftX = anchorRect.right;\n topLeftY = anchorRect.top;\n topRightX = popupRect.left;\n topRightY = popupRect.top;\n bottomLeftX = anchorRect.right;\n bottomLeftY = anchorRect.bottom;\n bottomRightX = popupRect.left;\n bottomRightY = popupRect.bottom;\n } else {\n topLeftX = popupRect.right;\n topLeftY = popupRect.top;\n topRightX = anchorRect.left;\n topRightY = anchorRect.top;\n bottomLeftX = popupRect.right;\n bottomLeftY = popupRect.bottom;\n bottomRightX = anchorRect.left;\n bottomRightY = anchorRect.bottom;\n }\n }\n this.style.setProperty(\"--hover-bridge-top-left-x\", `${topLeftX}px`);\n this.style.setProperty(\"--hover-bridge-top-left-y\", `${topLeftY}px`);\n this.style.setProperty(\"--hover-bridge-top-right-x\", `${topRightX}px`);\n this.style.setProperty(\"--hover-bridge-top-right-y\", `${topRightY}px`);\n this.style.setProperty(\"--hover-bridge-bottom-left-x\", `${bottomLeftX}px`);\n this.style.setProperty(\"--hover-bridge-bottom-left-y\", `${bottomLeftY}px`);\n this.style.setProperty(\"--hover-bridge-bottom-right-x\", `${bottomRightX}px`);\n this.style.setProperty(\"--hover-bridge-bottom-right-y\", `${bottomRightY}px`);\n }\n };\n }\n async connectedCallback() {\n super.connectedCallback();\n await this.updateComplete;\n this.start();\n }\n disconnectedCallback() {\n super.disconnectedCallback();\n this.stop();\n }\n async updated(changedProps) {\n super.updated(changedProps);\n if (changedProps.has(\"active\")) {\n if (this.active) {\n this.start();\n } else {\n this.stop();\n }\n }\n if (changedProps.has(\"anchor\")) {\n this.handleAnchorChange();\n }\n if (this.active) {\n await this.updateComplete;\n this.reposition();\n }\n }\n async handleAnchorChange() {\n await this.stop();\n if (this.anchor && typeof this.anchor === \"string\") {\n const root = this.getRootNode();\n this.anchorEl = root.getElementById(this.anchor);\n } else if (this.anchor instanceof Element || isVirtualElement(this.anchor)) {\n this.anchorEl = this.anchor;\n } else {\n this.anchorEl = this.querySelector('[slot=\"anchor\"]');\n }\n if (this.anchorEl instanceof HTMLSlotElement) {\n this.anchorEl = this.anchorEl.assignedElements({ flatten: true })[0];\n }\n if (this.anchorEl) {\n this.start();\n }\n }\n start() {\n if (!this.anchorEl) {\n return;\n }\n this.cleanup = autoUpdate(this.anchorEl, this.popup, () => {\n this.reposition();\n });\n }\n async stop() {\n return new Promise((resolve) => {\n if (this.cleanup) {\n this.cleanup();\n this.cleanup = void 0;\n this.removeAttribute(\"data-current-placement\");\n this.style.removeProperty(\"--auto-size-available-width\");\n this.style.removeProperty(\"--auto-size-available-height\");\n requestAnimationFrame(() => resolve());\n } else {\n resolve();\n }\n });\n }\n /** Forces the popup to recalculate and reposition itself. */\n reposition() {\n if (!this.active || !this.anchorEl) {\n return;\n }\n const middleware = [\n // The offset middleware goes first\n offset({ mainAxis: this.distance, crossAxis: this.skidding })\n ];\n if (this.sync) {\n middleware.push(\n size({\n apply: ({ rects }) => {\n const syncWidth = this.sync === \"width\" || this.sync === \"both\";\n const syncHeight = this.sync === \"height\" || this.sync === \"both\";\n this.popup.style.width = syncWidth ? `${rects.reference.width}px` : \"\";\n this.popup.style.height = syncHeight ? `${rects.reference.height}px` : \"\";\n }\n })\n );\n } else {\n this.popup.style.width = \"\";\n this.popup.style.height = \"\";\n }\n if (this.flip) {\n middleware.push(\n flip({\n boundary: this.flipBoundary,\n // @ts-expect-error - We're converting a string attribute to an array here\n fallbackPlacements: this.flipFallbackPlacements,\n fallbackStrategy: this.flipFallbackStrategy === \"best-fit\" ? \"bestFit\" : \"initialPlacement\",\n padding: this.flipPadding\n })\n );\n }\n if (this.shift) {\n middleware.push(\n shift({\n boundary: this.shiftBoundary,\n padding: this.shiftPadding\n })\n );\n }\n if (this.autoSize) {\n middleware.push(\n size({\n boundary: this.autoSizeBoundary,\n padding: this.autoSizePadding,\n apply: ({ availableWidth, availableHeight }) => {\n if (this.autoSize === \"vertical\" || this.autoSize === \"both\") {\n this.style.setProperty(\"--auto-size-available-height\", `${availableHeight}px`);\n } else {\n this.style.removeProperty(\"--auto-size-available-height\");\n }\n if (this.autoSize === \"horizontal\" || this.autoSize === \"both\") {\n this.style.setProperty(\"--auto-size-available-width\", `${availableWidth}px`);\n } else {\n this.style.removeProperty(\"--auto-size-available-width\");\n }\n }\n })\n );\n } else {\n this.style.removeProperty(\"--auto-size-available-width\");\n this.style.removeProperty(\"--auto-size-available-height\");\n }\n if (this.arrow) {\n middleware.push(\n arrow({\n element: this.arrowEl,\n padding: this.arrowPadding\n })\n );\n }\n const getOffsetParent = this.strategy === \"absolute\" ? (element) => platform.getOffsetParent(element, offsetParent) : platform.getOffsetParent;\n computePosition(this.anchorEl, this.popup, {\n placement: this.placement,\n middleware,\n strategy: this.strategy,\n platform: __spreadProps(__spreadValues({}, platform), {\n getOffsetParent\n })\n }).then(({ x, y, middlewareData, placement }) => {\n const isRtl = getComputedStyle(this).direction === \"rtl\";\n const staticSide = { top: \"bottom\", right: \"left\", bottom: \"top\", left: \"right\" }[placement.split(\"-\")[0]];\n this.setAttribute(\"data-current-placement\", placement);\n Object.assign(this.popup.style, {\n left: `${x}px`,\n top: `${y}px`\n });\n if (this.arrow) {\n const arrowX = middlewareData.arrow.x;\n const arrowY = middlewareData.arrow.y;\n let top = \"\";\n let right = \"\";\n let bottom = \"\";\n let left = \"\";\n if (this.arrowPlacement === \"start\") {\n const value = typeof arrowX === \"number\" ? `calc(${this.arrowPadding}px - var(--arrow-padding-offset))` : \"\";\n top = typeof arrowY === \"number\" ? `calc(${this.arrowPadding}px - var(--arrow-padding-offset))` : \"\";\n right = isRtl ? value : \"\";\n left = isRtl ? \"\" : value;\n } else if (this.arrowPlacement === \"end\") {\n const value = typeof arrowX === \"number\" ? `calc(${this.arrowPadding}px - var(--arrow-padding-offset))` : \"\";\n right = isRtl ? \"\" : value;\n left = isRtl ? value : \"\";\n bottom = typeof arrowY === \"number\" ? `calc(${this.arrowPadding}px - var(--arrow-padding-offset))` : \"\";\n } else if (this.arrowPlacement === \"center\") {\n left = typeof arrowX === \"number\" ? `calc(50% - var(--arrow-size-diagonal))` : \"\";\n top = typeof arrowY === \"number\" ? `calc(50% - var(--arrow-size-diagonal))` : \"\";\n } else {\n left = typeof arrowX === \"number\" ? `${arrowX}px` : \"\";\n top = typeof arrowY === \"number\" ? `${arrowY}px` : \"\";\n }\n Object.assign(this.arrowEl.style, {\n top,\n right,\n bottom,\n left,\n [staticSide]: \"calc(var(--arrow-size-diagonal) * -1)\"\n });\n }\n });\n requestAnimationFrame(() => this.updateHoverBridge());\n this.emit(\"sl-reposition\");\n }\n render() {\n return html`\n <slot name=\"anchor\" @slotchange=${this.handleAnchorChange}></slot>\n\n <span\n part=\"hover-bridge\"\n class=${classMap({\n \"popup-hover-bridge\": true,\n \"popup-hover-bridge--visible\": this.hoverBridge && this.active\n })}\n ></span>\n\n <div\n part=\"popup\"\n class=${classMap({\n popup: true,\n \"popup--active\": this.active,\n \"popup--fixed\": this.strategy === \"fixed\",\n \"popup--has-arrow\": this.arrow\n })}\n >\n <slot></slot>\n ${this.arrow ? html`<div part=\"arrow\" class=\"popup__arrow\" role=\"presentation\"></div>` : \"\"}\n </div>\n `;\n }\n};\nSlPopup.styles = [component_styles_default, popup_styles_default];\n__decorateClass([\n query(\".popup\")\n], SlPopup.prototype, \"popup\", 2);\n__decorateClass([\n query(\".popup__arrow\")\n], SlPopup.prototype, \"arrowEl\", 2);\n__decorateClass([\n property()\n], SlPopup.prototype, \"anchor\", 2);\n__decorateClass([\n property({ type: Boolean, reflect: true })\n], SlPopup.prototype, \"active\", 2);\n__decorateClass([\n property({ reflect: true })\n], SlPopup.prototype, \"placement\", 2);\n__decorateClass([\n property({ reflect: true })\n], SlPopup.prototype, \"strategy\", 2);\n__decorateClass([\n property({ type: Number })\n], SlPopup.prototype, \"distance\", 2);\n__decorateClass([\n property({ type: Number })\n], SlPopup.prototype, \"skidding\", 2);\n__decorateClass([\n property({ type: Boolean })\n], SlPopup.prototype, \"arrow\", 2);\n__decorateClass([\n property({ attribute: \"arrow-placement\" })\n], SlPopup.prototype, \"arrowPlacement\", 2);\n__decorateClass([\n property({ attribute: \"arrow-padding\", type: Number })\n], SlPopup.prototype, \"arrowPadding\", 2);\n__decorateClass([\n property({ type: Boolean })\n], SlPopup.prototype, \"flip\", 2);\n__decorateClass([\n property({\n attribute: \"flip-fallback-placements\",\n converter: {\n fromAttribute: (value) => {\n return value.split(\" \").map((p) => p.trim()).filter((p) => p !== \"\");\n },\n toAttribute: (value) => {\n return value.join(\" \");\n }\n }\n })\n], SlPopup.prototype, \"flipFallbackPlacements\", 2);\n__decorateClass([\n property({ attribute: \"flip-fallback-strategy\" })\n], SlPopup.prototype, \"flipFallbackStrategy\", 2);\n__decorateClass([\n property({ type: Object })\n], SlPopup.prototype, \"flipBoundary\", 2);\n__decorateClass([\n property({ attribute: \"flip-padding\", type: Number })\n], SlPopup.prototype, \"flipPadding\", 2);\n__decorateClass([\n property({ type: Boolean })\n], SlPopup.prototype, \"shift\", 2);\n__decorateClass([\n property({ type: Object })\n], SlPopup.prototype, \"shiftBoundary\", 2);\n__decorateClass([\n property({ attribute: \"shift-padding\", type: Number })\n], SlPopup.prototype, \"shiftPadding\", 2);\n__decorateClass([\n property({ attribute: \"auto-size\" })\n], SlPopup.prototype, \"autoSize\", 2);\n__decorateClass([\n property()\n], SlPopup.prototype, \"sync\", 2);\n__decorateClass([\n property({ type: Object })\n], SlPopup.prototype, \"autoSizeBoundary\", 2);\n__decorateClass([\n property({ attribute: \"auto-size-padding\", type: Number })\n], SlPopup.prototype, \"autoSizePadding\", 2);\n__decorateClass([\n property({ attribute: \"hover-bridge\", type: Boolean })\n], SlPopup.prototype, \"hoverBridge\", 2);\n\nexport {\n SlPopup\n};\n","import {\n __spreadProps,\n __spreadValues\n} from \"./chunk.IFDWM6P4.js\";\n\n// src/utilities/animation-registry.ts\nvar defaultAnimationRegistry = /* @__PURE__ */ new Map();\nvar customAnimationRegistry = /* @__PURE__ */ new WeakMap();\nfunction ensureAnimation(animation) {\n return animation != null ? animation : { keyframes: [], options: { duration: 0 } };\n}\nfunction getLogicalAnimation(animation, dir) {\n if (dir.toLowerCase() === \"rtl\") {\n return {\n keyframes: animation.rtlKeyframes || animation.keyframes,\n options: animation.options\n };\n }\n return animation;\n}\nfunction setDefaultAnimation(animationName, animation) {\n defaultAnimationRegistry.set(animationName, ensureAnimation(animation));\n}\nfunction setAnimation(el, animationName, animation) {\n customAnimationRegistry.set(el, __spreadProps(__spreadValues({}, customAnimationRegistry.get(el)), { [animationName]: ensureAnimation(animation) }));\n}\nfunction getAnimation(el, animationName, options) {\n const customAnimation = customAnimationRegistry.get(el);\n if (customAnimation == null ? void 0 : customAnimation[animationName]) {\n return getLogicalAnimation(customAnimation[animationName], options.dir);\n }\n const defaultAnimation = defaultAnimationRegistry.get(animationName);\n if (defaultAnimation) {\n return getLogicalAnimation(defaultAnimation, options.dir);\n }\n return {\n keyframes: [],\n options: { duration: 0 }\n };\n}\n\nexport {\n setDefaultAnimation,\n setAnimation,\n getAnimation\n};\n","// src/internal/event.ts\nfunction waitForEvent(el, eventName) {\n return new Promise((resolve) => {\n function done(event) {\n if (event.target === el) {\n el.removeEventListener(eventName, done);\n resolve();\n }\n }\n el.addEventListener(eventName, done);\n });\n}\n\nexport {\n waitForEvent\n};\n","import {\n __spreadProps,\n __spreadValues\n} from \"./chunk.IFDWM6P4.js\";\n\n// src/internal/animate.ts\nfunction animateTo(el, keyframes, options) {\n return new Promise((resolve) => {\n if ((options == null ? void 0 : options.duration) === Infinity) {\n throw new Error(\"Promise-based animations must be finite.\");\n }\n const animation = el.animate(keyframes, __spreadProps(__spreadValues({}, options), {\n duration: prefersReducedMotion() ? 0 : options.duration\n }));\n animation.addEventListener(\"cancel\", resolve, { once: true });\n animation.addEventListener(\"finish\", resolve, { once: true });\n });\n}\nfunction parseDuration(delay) {\n delay = delay.toString().toLowerCase();\n if (delay.indexOf(\"ms\") > -1) {\n return parseFloat(delay);\n }\n if (delay.indexOf(\"s\") > -1) {\n return parseFloat(delay) * 1e3;\n }\n return parseFloat(delay);\n}\nfunction prefersReducedMotion() {\n const query = window.matchMedia(\"(prefers-reduced-motion: reduce)\");\n return query.matches;\n}\nfunction stopAnimations(el) {\n return Promise.all(\n el.getAnimations().map((animation) => {\n return new Promise((resolve) => {\n animation.cancel();\n requestAnimationFrame(resolve);\n });\n })\n );\n}\nfunction shimKeyframesHeightAuto(keyframes, calculatedHeight) {\n return keyframes.map((keyframe) => __spreadProps(__spreadValues({}, keyframe), {\n height: keyframe.height === \"auto\" ? `${calculatedHeight}px` : keyframe.height\n }));\n}\n\nexport {\n animateTo,\n parseDuration,\n prefersReducedMotion,\n stopAnimations,\n shimKeyframesHeightAuto\n};\n","const connectedElements = new Set();\nconst documentElementObserver = new MutationObserver(update);\nconst translations = new Map();\nlet documentDirection = document.documentElement.dir || 'ltr';\nlet documentLanguage = document.documentElement.lang || navigator.language;\nlet fallback;\ndocumentElementObserver.observe(document.documentElement, {\n attributes: true,\n attributeFilter: ['dir', 'lang']\n});\nexport function registerTranslation(...translation) {\n translation.map(t => {\n const code = t.$code.toLowerCase();\n if (translations.has(code)) {\n translations.set(code, Object.assign(Object.assign({}, translations.get(code)), t));\n }\n else {\n translations.set(code, t);\n }\n if (!fallback) {\n fallback = t;\n }\n });\n update();\n}\nexport function update() {\n documentDirection = document.documentElement.dir || 'ltr';\n documentLanguage = document.documentElement.lang || navigator.language;\n [...connectedElements.keys()].map((el) => {\n if (typeof el.requestUpdate === 'function') {\n el.requestUpdate();\n }\n });\n}\nexport class LocalizeController {\n constructor(host) {\n this.host = host;\n this.host.addController(this);\n }\n hostConnected() {\n connectedElements.add(this.host);\n }\n hostDisconnected() {\n connectedElements.delete(this.host);\n }\n dir() {\n return `${this.host.dir || documentDirection}`.toLowerCase();\n }\n lang() {\n return `${this.host.lang || documentLanguage}`.toLowerCase();\n }\n getTranslationData(lang) {\n var _a, _b;\n const locale = new Intl.Locale(lang.replace(/_/g, '-'));\n const language = locale === null || locale === void 0 ? void 0 : locale.language.toLowerCase();\n const region = (_b = (_a = locale === null || locale === void 0 ? void 0 : locale.region) === null || _a === void 0 ? void 0 : _a.toLowerCase()) !== null && _b !== void 0 ? _b : '';\n const primary = translations.get(`${language}-${region}`);\n const secondary = translations.get(language);\n return { locale, language, region, primary, secondary };\n }\n exists(key, options) {\n var _a;\n const { primary, secondary } = this.getTranslationData((_a = options.lang) !== null && _a !== void 0 ? _a : this.lang());\n options = Object.assign({ includeFallback: false }, options);\n if ((primary && primary[key]) ||\n (secondary && secondary[key]) ||\n (options.includeFallback && fallback && fallback[key])) {\n return true;\n }\n return false;\n }\n term(key, ...args) {\n const { primary, secondary } = this.getTranslationData(this.lang());\n let term;\n if (primary && primary[key]) {\n term = primary[key];\n }\n else if (secondary && secondary[key]) {\n term = secondary[key];\n }\n else if (fallback && fallback[key]) {\n term = fallback[key];\n }\n else {\n console.error(`No translation found for: ${String(key)}`);\n return String(key);\n }\n if (typeof term === 'function') {\n return term(...args);\n }\n return term;\n }\n date(dateToFormat, options) {\n dateToFormat = new Date(dateToFormat);\n return new Intl.DateTimeFormat(this.lang(), options).format(dateToFormat);\n }\n number(numberToFormat, options) {\n numberToFormat = Number(numberToFormat);\n return isNaN(numberToFormat) ? '' : new Intl.NumberFormat(this.lang(), options).format(numberToFormat);\n }\n relativeTime(value, unit, options) {\n return new Intl.RelativeTimeFormat(this.lang(), options).format(value, unit);\n }\n}\n","// src/translations/en.ts\nimport { registerTranslation } from \"@shoelace-style/localize\";\nvar translation = {\n $code: \"en\",\n $name: \"English\",\n $dir: \"ltr\",\n carousel: \"Carousel\",\n clearEntry: \"Clear entry\",\n close: \"Close\",\n copied: \"Copied\",\n copy: \"Copy\",\n currentValue: \"Current value\",\n error: \"Error\",\n goToSlide: (slide, count) => `Go to slide ${slide} of ${count}`,\n hidePassword: \"Hide password\",\n loading: \"Loading\",\n nextSlide: \"Next slide\",\n numOptionsSelected: (num) => {\n if (num === 0)\n return \"No options selected\";\n if (num === 1)\n return \"1 option selected\";\n return `${num} options selected`;\n },\n previousSlide: \"Previous slide\",\n progress: \"Progress\",\n remove: \"Remove\",\n resize: \"Resize\",\n scrollToEnd: \"Scroll to end\",\n scrollToStart: \"Scroll to start\",\n selectAColorFromTheScreen: \"Select a color from the screen\",\n showPassword: \"Show password\",\n slideNum: (slide) => `Slide ${slide}`,\n toggleColorFormat: \"Toggle color format\"\n};\nregisterTranslation(translation);\nvar en_default = translation;\n\nexport {\n en_default\n};\n","import {\n en_default\n} from \"./chunk.MAS2SHYD.js\";\n\n// src/utilities/localize.ts\nimport { LocalizeController as DefaultLocalizationController, registerTranslation } from \"@shoelace-style/localize\";\nimport { registerTranslation as registerTranslation2 } from \"@shoelace-style/localize\";\nvar LocalizeController = class extends DefaultLocalizationController {\n};\nregisterTranslation(en_default);\n\nexport {\n LocalizeController,\n registerTranslation2 as registerTranslation\n};\n","import {\n tooltip_styles_default\n} from \"./chunk.BCNEWSXW.js\";\nimport {\n SlPopup\n} from \"./chunk.SUWKRDXP.js\";\nimport {\n getAnimation,\n setDefaultAnimation\n} from \"./chunk.DHU6MIVB.js\";\nimport {\n waitForEvent\n} from \"./chunk.B4BZKR24.js\";\nimport {\n animateTo,\n parseDuration,\n stopAnimations\n} from \"./chunk.LHI6QEL2.js\";\nimport {\n LocalizeController\n} from \"./chunk.WLV3FVBR.js\";\nimport {\n watch\n} from \"./chunk.2FB5TK5H.js\";\nimport {\n component_styles_default\n} from \"./chunk.TUVJKY7S.js\";\nimport {\n ShoelaceElement\n} from \"./chunk.SFSTXCXC.js\";\nimport {\n __decorateClass\n} from \"./chunk.IFDWM6P4.js\";\n\n// src/components/tooltip/tooltip.component.ts\nimport { classMap } from \"lit/directives/class-map.js\";\nimport { html } from \"lit\";\nimport { property, query } from \"lit/decorators.js\";\nvar SlTooltip = class extends ShoelaceElement {\n constructor() {\n super();\n this.localize = new LocalizeController(this);\n this.content = \"\";\n this.placement = \"top\";\n this.disabled = false;\n this.distance = 8;\n this.open = false;\n this.skidding = 0;\n this.trigger = \"hover focus\";\n this.hoist = false;\n this.handleBlur = () => {\n if (this.hasTrigger(\"focus\")) {\n this.hide();\n }\n };\n this.handleClick = () => {\n if (this.hasTrigger(\"click\")) {\n if (this.open) {\n this.hide();\n } else {\n this.show();\n }\n }\n };\n this.handleFocus = () => {\n if (this.hasTrigger(\"focus\")) {\n this.show();\n }\n };\n this.handleDocumentKeyDown = (event) => {\n if (event.key === \"Escape\") {\n event.stopPropagation();\n this.hide();\n }\n };\n this.handleMouseOver = () => {\n if (this.hasTrigger(\"hover\")) {\n const delay = parseDuration(getComputedStyle(this).getPropertyValue(\"--show-delay\"));\n clearTimeout(this.hoverTimeout);\n this.hoverTimeout = window.setTimeout(() => this.show(), delay);\n }\n };\n this.handleMouseOut = () => {\n if (this.hasTrigger(\"hover\")) {\n const delay = parseDuration(getComputedStyle(this).getPropertyValue(\"--hide-delay\"));\n clearTimeout(this.hoverTimeout);\n this.hoverTimeout = window.setTimeout(() => this.hide(), delay);\n }\n };\n this.addEventListener(\"blur\", this.handleBlur, true);\n this.addEventListener(\"focus\", this.handleFocus, true);\n this.addEventListener(\"click\", this.handleClick);\n this.addEventListener(\"mouseover\", this.handleMouseOver);\n this.addEventListener(\"mouseout\", this.handleMouseOut);\n }\n disconnectedCallback() {\n var _a;\n (_a = this.closeWatcher) == null ? void 0 : _a.destroy();\n document.removeEventListener(\"keydown\", this.handleDocumentKeyDown);\n }\n firstUpdated() {\n this.body.hidden = !this.open;\n if (this.open) {\n this.popup.active = true;\n this.popup.reposition();\n }\n }\n hasTrigger(triggerType) {\n const triggers = this.trigger.split(\" \");\n return triggers.includes(triggerType);\n }\n async handleOpenChange() {\n var _a, _b;\n if (this.open) {\n if (this.disabled) {\n return;\n }\n this.emit(\"sl-show\");\n if (\"CloseWatcher\" in window) {\n (_a = this.closeWatcher) == null ? void 0 : _a.destroy();\n this.closeWatcher = new CloseWatcher();\n this.closeWatcher.onclose = () => {\n this.hide();\n };\n } else {\n document.addEventListener(\"keydown\", this.handleDocumentKeyDown);\n }\n await stopAnimations(this.body);\n this.body.hidden = false;\n this.popup.active = true;\n const { keyframes, options } = getAnimation(this, \"tooltip.show\", { dir: this.localize.dir() });\n await animateTo(this.popup.popup, keyframes, options);\n this.popup.reposition();\n this.emit(\"sl-after-show\");\n } else {\n this.emit(\"sl-hide\");\n (_b = this.closeWatcher) == null ? void 0 : _b.destroy();\n document.removeEventListener(\"keydown\", this.handleDocumentKeyDown);\n await stopAnimations(this.body);\n const { keyframes, options } = getAnimation(this, \"tooltip.hide\", { dir: this.localize.dir() });\n await animateTo(this.popup.popup, keyframes, options);\n this.popup.active = false;\n this.body.hidden = true;\n this.emit(\"sl-after-hide\");\n }\n }\n async handleOptionsChange() {\n if (this.hasUpdated) {\n await this.updateComplete;\n this.popup.reposition();\n }\n }\n handleDisabledChange() {\n if (this.disabled && this.open) {\n this.hide();\n }\n }\n /** Shows the tooltip. */\n async show() {\n if (this.open) {\n return void 0;\n }\n this.open = true;\n return waitForEvent(this, \"sl-after-show\");\n }\n /** Hides the tooltip */\n async hide() {\n if (!this.open) {\n return void 0;\n }\n this.open = false;\n return waitForEvent(this, \"sl-after-hide\");\n }\n //\n // NOTE: Tooltip is a bit unique in that we're using aria-live instead of aria-labelledby to trick screen readers into\n // announcing the content. It works really well, but it violates an accessibility rule. We're also adding the\n // aria-describedby attribute to a slot, which is required by <sl-popup> to correctly locate the first assigned\n // element, otherwise positioning is incorrect.\n //\n render() {\n return html`\n <sl-popup\n part=\"base\"\n exportparts=\"\n popup:base__popup,\n arrow:base__arrow\n \"\n class=${classMap({\n tooltip: true,\n \"tooltip--open\": this.open\n })}\n placement=${this.placement}\n distance=${this.distance}\n skidding=${this.skidding}\n strategy=${this.hoist ? \"fixed\" : \"absolute\"}\n flip\n shift\n arrow\n hover-bridge\n >\n ${\"\"}\n <slot slot=\"anchor\" aria-describedby=\"tooltip\"></slot>\n\n ${\"\"}\n <div part=\"body\" id=\"tooltip\" class=\"tooltip__body\" role=\"tooltip\" aria-live=${this.open ? \"polite\" : \"off\"}>\n <slot name=\"content\">${this.content}</slot>\n </div>\n </sl-popup>\n `;\n }\n};\nSlTooltip.styles = [component_styles_default, tooltip_styles_default];\nSlTooltip.dependencies = { \"sl-popup\": SlPopup };\n__decorateClass([\n query(\"slot:not([name])\")\n], SlTooltip.prototype, \"defaultSlot\", 2);\n__decorateClass([\n query(\".tooltip__body\")\n], SlTooltip.prototype, \"body\", 2);\n__decorateClass([\n query(\"sl-popup\")\n], SlTooltip.prototype, \"popup\", 2);\n__decorateClass([\n property()\n], SlTooltip.prototype, \"content\", 2);\n__decorateClass([\n property()\n], SlTooltip.prototype, \"placement\", 2);\n__decorateClass([\n property({ type: Boolean, reflect: true })\n], SlTooltip.prototype, \"disabled\", 2);\n__decorateClass([\n property({ type: Number })\n], SlTooltip.prototype, \"distance\", 2);\n__decorateClass([\n property({ type: Boolean, reflect: true })\n], SlTooltip.prototype, \"open\", 2);\n__decorateClass([\n property({ type: Number })\n], SlTooltip.prototype, \"skidding\", 2);\n__decorateClass([\n property()\n], SlTooltip.prototype, \"trigger\", 2);\n__decorateClass([\n property({ type: Boolean })\n], SlTooltip.prototype, \"hoist\", 2);\n__decorateClass([\n watch(\"open\", { waitUntilFirstUpdate: true })\n], SlTooltip.prototype, \"handleOpenChange\", 1);\n__decorateClass([\n watch([\"content\", \"distance\", \"hoist\", \"placement\", \"skidding\"])\n], SlTooltip.prototype, \"handleOptionsChange\", 1);\n__decorateClass([\n watch(\"disabled\")\n], SlTooltip.prototype, \"handleDisabledChange\", 1);\nsetDefaultAnimation(\"tooltip.show\", {\n keyframes: [\n { opacity: 0, scale: 0.8 },\n { opacity: 1, scale: 1 }\n ],\n options: { duration: 150, easing: \"ease\" }\n});\nsetDefaultAnimation(\"tooltip.hide\", {\n keyframes: [\n { opacity: 1, scale: 1 },\n { opacity: 0, scale: 0.8 }\n ],\n options: { duration: 150, easing: \"ease\" }\n});\n\nexport {\n SlTooltip\n};\n","import {\n SlTooltip\n} from \"./chunk.5UHNODB4.js\";\n\n// src/components/tooltip/tooltip.ts\nvar tooltip_default = SlTooltip;\nSlTooltip.define(\"sl-tooltip\");\n\nexport {\n tooltip_default\n};\n","// src/components/spinner/spinner.styles.ts\nimport { css } from \"lit\";\nvar spinner_styles_default = css`\n :host {\n --track-width: 2px;\n --track-color: rgb(128 128 128 / 25%);\n --indicator-color: var(--sl-color-primary-600);\n --speed: 2s;\n\n display: inline-flex;\n width: 1em;\n height: 1em;\n flex: none;\n }\n\n .spinner {\n flex: 1 1 auto;\n height: 100%;\n width: 100%;\n }\n\n .spinner__track,\n .spinner__indicator {\n fill: none;\n stroke-width: var(--track-width);\n r: calc(0.5em - var(--track-width) / 2);\n cx: 0.5em;\n cy: 0.5em;\n transform-origin: 50% 50%;\n }\n\n .spinner__track {\n stroke: var(--track-color);\n transform-origin: 0% 0%;\n }\n\n .spinner__indicator {\n stroke: var(--indicator-color);\n stroke-linecap: round;\n stroke-dasharray: 150% 75%;\n animation: spin var(--speed) linear infinite;\n }\n\n @keyframes spin {\n 0% {\n transform: rotate(0deg);\n stroke-dasharray: 0.05em, 3em;\n }\n\n 50% {\n transform: rotate(450deg);\n stroke-dasharray: 1.375em, 1.375em;\n }\n\n 100% {\n transform: rotate(1080deg);\n stroke-dasharray: 0.05em, 3em;\n }\n }\n`;\n\nexport {\n spinner_styles_default\n};\n","import {\n spinner_styles_default\n} from \"./chunk.7DUCI5S4.js\";\nimport {\n LocalizeController\n} from \"./chunk.WLV3FVBR.js\";\nimport {\n component_styles_default\n} from \"./chunk.TUVJKY7S.js\";\nimport {\n ShoelaceElement\n} from \"./chunk.SFSTXCXC.js\";\n\n// src/components/spinner/spinner.component.ts\nimport { html } from \"lit\";\nvar SlSpinner = class extends ShoelaceElement {\n constructor() {\n super(...arguments);\n this.localize = new LocalizeController(this);\n }\n render() {\n return html`\n <svg part=\"base\" class=\"spinner\" role=\"progressbar\" aria-label=${this.localize.term(\"loading\")}>\n <circle class=\"spinner__track\"></circle>\n <circle class=\"spinner__indicator\"></circle>\n </svg>\n `;\n }\n};\nSlSpinner.styles = [component_styles_default, spinner_styles_default];\n\nexport {\n SlSpinner\n};\n","import {\n __spreadProps,\n __spreadValues\n} from \"./chunk.IFDWM6P4.js\";\n\n// src/internal/form.ts\nvar formCollections = /* @__PURE__ */ new WeakMap();\nvar reportValidityOverloads = /* @__PURE__ */ new WeakMap();\nvar checkValidityOverloads = /* @__PURE__ */ new WeakMap();\nvar userInteractedControls = /* @__PURE__ */ new WeakSet();\nvar interactions = /* @__PURE__ */ new WeakMap();\nvar FormControlController = class {\n constructor(host, options) {\n this.handleFormData = (event) => {\n const disabled = this.options.disabled(this.host);\n const name = this.options.name(this.host);\n const value = this.options.value(this.host);\n const isButton = this.host.tagName.toLowerCase() === \"sl-button\";\n if (this.host.isConnected && !disabled && !isButton && typeof name === \"string\" && name.length > 0 && typeof value !== \"undefined\") {\n if (Array.isArray(value)) {\n value.forEach((val) => {\n event.formData.append(name, val.toString());\n });\n } else {\n event.formData.append(name, value.toString());\n }\n }\n };\n this.handleFormSubmit = (event) => {\n var _a;\n const disabled = this.options.disabled(this.host);\n const reportValidity = this.options.reportValidity;\n if (this.form && !this.form.noValidate) {\n (_a = formCollections.get(this.form)) == null ? void 0 : _a.forEach((control) => {\n this.setUserInteracted(control, true);\n });\n }\n if (this.form && !this.form.noValidate && !disabled && !reportValidity(this.host)) {\n event.preventDefault();\n event.stopImmediatePropagation();\n }\n };\n this.handleFormReset = () => {\n this.options.setValue(this.host, this.options.defaultValue(this.host));\n this.setUserInteracted(this.host, false);\n interactions.set(this.host, []);\n };\n this.handleInteraction = (event) => {\n const emittedEvents = interactions.get(this.host);\n if (!emittedEvents.includes(event.type)) {\n emittedEvents.push(event.type);\n }\n if (emittedEvents.length === this.options.assumeInteractionOn.length) {\n this.setUserInteracted(this.host, true);\n }\n };\n this.checkFormValidity = () => {\n if (this.form && !this.form.noValidate) {\n const elements = this.form.querySelectorAll(\"*\");\n for (const element of elements) {\n if (typeof element.checkValidity === \"function\") {\n if (!element.checkValidity()) {\n return false;\n }\n }\n }\n }\n return true;\n };\n this.reportFormValidity = () => {\n if (this.form && !this.form.noValidate) {\n const elements = this.form.querySelectorAll(\"*\");\n for (const element of elements) {\n if (typeof element.reportValidity === \"function\") {\n if (!element.reportValidity()) {\n return false;\n }\n }\n }\n }\n return true;\n };\n (this.host = host).addController(this);\n this.options = __spreadValues({\n form: (input) => {\n const formId = input.form;\n if (formId) {\n const root = input.getRootNode();\n const form = root.querySelector(`#${formId}`);\n if (form) {\n return form;\n }\n }\n return input.closest(\"form\");\n },\n name: (input) => input.name,\n value: (input) => input.value,\n defaultValue: (input) => input.defaultValue,\n disabled: (input) => {\n var _a;\n return (_a = input.disabled) != null ? _a : false;\n },\n reportValidity: (input) => typeof input.reportValidity === \"function\" ? input.reportValidity() : true,\n checkValidity: (input) => typeof input.checkValidity === \"function\" ? input.checkValidity() : true,\n setValue: (input, value) => input.value = value,\n assumeInteractionOn: [\"sl-input\"]\n }, options);\n }\n hostConnected() {\n const form = this.options.form(this.host);\n if (form) {\n this.attachForm(form);\n }\n interactions.set(this.host, []);\n this.options.assumeInteractionOn.forEach((event) => {\n this.host.addEventListener(event, this.handleInteraction);\n });\n }\n hostDisconnected() {\n this.detachForm();\n interactions.delete(this.host);\n this.options.assumeInteractionOn.forEach((event) => {\n this.host.removeEventListener(event, this.handleInteraction);\n });\n }\n hostUpdated() {\n const form = this.options.form(this.host);\n if (!form) {\n this.detachForm();\n }\n if (form && this.form !== form) {\n this.detachForm();\n this.attachForm(form);\n }\n if (this.host.hasUpdated) {\n this.setValidity(this.host.validity.valid);\n }\n }\n attachForm(form) {\n if (form) {\n this.form = form;\n if (formCollections.has(this.form)) {\n formCollections.get(this.form).add(this.host);\n } else {\n formCollections.set(this.form, /* @__PURE__ */ new Set([this.host]));\n }\n this.form.addEventListener(\"formdata\", this.handleFormData);\n this.form.addEventListener(\"submit\", this.handleFormSubmit);\n this.form.addEventListener(\"reset\", this.handleFormReset);\n if (!reportValidityOverloads.has(this.form)) {\n reportValidityOverloads.set(this.form, this.form.reportValidity);\n this.form.reportValidity = () => this.reportFormValidity();\n }\n if (!checkValidityOverloads.has(this.form)) {\n checkValidityOverloads.set(this.form, this.form.checkValidity);\n this.form.checkValidity = () => this.checkFormValidity();\n }\n } else {\n this.form = void 0;\n }\n }\n detachForm() {\n if (!this.form)\n return;\n const formCollection = formCollections.get(this.form);\n if (!formCollection) {\n return;\n }\n formCollection.delete(this.host);\n if (formCollection.size <= 0) {\n this.form.removeEventListener(\"formdata\", this.handleFormData);\n this.form.removeEventListener(\"submit\", this.handleFormSubmit);\n this.form.removeEventListener(\"reset\", this.handleFormReset);\n if (reportValidityOverloads.has(this.form)) {\n this.form.reportValidity = reportValidityOverloads.get(this.form);\n reportValidityOverloads.delete(this.form);\n }\n if (checkValidityOverloads.has(this.form)) {\n this.form.checkValidity = checkValidityOverloads.get(this.form);\n checkValidityOverloads.delete(this.form);\n }\n this.form = void 0;\n }\n }\n setUserInteracted(el, hasInteracted) {\n if (hasInteracted) {\n userInteractedControls.add(el);\n } else {\n userInteractedControls.delete(el);\n }\n el.requestUpdate();\n }\n doAction(type, submitter) {\n if (this.form) {\n const button = document.createElement(\"button\");\n button.type = type;\n button.style.position = \"absolute\";\n button.style.width = \"0\";\n button.style.height = \"0\";\n button.style.clipPath = \"inset(50%)\";\n button.style.overflow = \"hidden\";\n button.style.whiteSpace = \"nowrap\";\n if (submitter) {\n button.name = submitter.name;\n button.value = submitter.value;\n [\"formaction\", \"formenctype\", \"formmethod\", \"formnovalidate\", \"formtarget\"].forEach((attr) => {\n if (submitter.hasAttribute(attr)) {\n button.setAttribute(attr, submitter.getAttribute(attr));\n }\n });\n }\n this.form.append(button);\n button.click();\n button.remove();\n }\n }\n /** Returns the associated `<form>` element, if one exists. */\n getForm() {\n var _a;\n return (_a = this.form) != null ? _a : null;\n }\n /** Resets the form, restoring all the control to their default value */\n reset(submitter) {\n this.doAction(\"reset\", submitter);\n }\n /** Submits the form, triggering validation and form data injection. */\n submit(submitter) {\n this.doAction(\"submit\", submitter);\n }\n /**\n * Synchronously sets the form control's validity. Call this when you know the future validity but need to update\n * the host element immediately, i.e. before Lit updates the component in the next update.\n */\n setValidity(isValid) {\n const host = this.host;\n const hasInteracted = Boolean(userInteractedControls.has(host));\n const required = Boolean(host.required);\n host.toggleAttribute(\"data-required\", required);\n host.toggleAttribute(\"data-optional\", !required);\n host.toggleAttribute(\"data-invalid\", !isValid);\n host.toggleAttribute(\"data-valid\", isValid);\n host.toggleAttribute(\"data-user-invalid\", !isValid && hasInteracted);\n host.toggleAttribute(\"data-user-valid\", isValid && hasInteracted);\n }\n /**\n * Updates the form control's validity based on the current value of `host.validity.valid`. Call this when anything\n * that affects constraint validation changes so the component receives the correct validity states.\n */\n updateValidity() {\n const host = this.host;\n this.setValidity(host.validity.valid);\n }\n /**\n * Dispatches a non-bubbling, cancelable custom event of type `sl-invalid`.\n * If the `sl-invalid` event will be cancelled then the original `invalid`\n * event (which may have been passed as argument) will also be cancelled.\n * If no original `invalid` event has been passed then the `sl-invalid`\n * event will be cancelled before being dispatched.\n */\n emitInvalidEvent(originalInvalidEvent) {\n const slInvalidEvent = new CustomEvent(\"sl-invalid\", {\n bubbles: false,\n composed: false,\n cancelable: true,\n detail: {}\n });\n if (!originalInvalidEvent) {\n slInvalidEvent.preventDefault();\n }\n if (!this.host.dispatchEvent(slInvalidEvent)) {\n originalInvalidEvent == null ? void 0 : originalInvalidEvent.preventDefault();\n }\n }\n};\nvar validValidityState = Object.freeze({\n badInput: false,\n customError: false,\n patternMismatch: false,\n rangeOverflow: false,\n rangeUnderflow: false,\n stepMismatch: false,\n tooLong: false,\n tooShort: false,\n typeMismatch: false,\n valid: true,\n valueMissing: false\n});\nvar valueMissingValidityState = Object.freeze(__spreadProps(__spreadValues({}, validValidityState), {\n valid: false,\n valueMissing: true\n}));\nvar customErrorValidityState = Object.freeze(__spreadProps(__spreadValues({}, validValidityState), {\n valid: false,\n customError: true\n}));\n\nexport {\n formCollections,\n FormControlController,\n validValidityState,\n valueMissingValidityState,\n customErrorValidityState\n};\n","// src/components/button/button.styles.ts\nimport { css } from \"lit\";\nvar button_styles_default = css`\n :host {\n display: inline-block;\n position: relative;\n width: auto;\n cursor: pointer;\n }\n\n .button {\n display: inline-flex;\n align-items: stretch;\n justify-content: center;\n width: 100%;\n border-style: solid;\n border-width: var(--sl-input-border-width);\n font-family: var(--sl-input-font-family);\n font-weight: var(--sl-font-weight-semibold);\n text-decoration: none;\n user-select: none;\n -webkit-user-select: none;\n white-space: nowrap;\n vertical-align: middle;\n padding: 0;\n transition:\n var(--sl-transition-x-fast) background-color,\n var(--sl-transition-x-fast) color,\n var(--sl-transition-x-fast) border,\n var(--sl-transition-x-fast) box-shadow;\n cursor: inherit;\n }\n\n .button::-moz-focus-inner {\n border: 0;\n }\n\n .button:focus {\n outline: none;\n }\n\n .button:focus-visible {\n outline: var(--sl-focus-ring);\n outline-offset: var(--sl-focus-ring-offset);\n }\n\n .button--disabled {\n opacity: 0.5;\n cursor: not-allowed;\n }\n\n /* When disabled, prevent mouse events from bubbling up from children */\n .button--disabled * {\n pointer-events: none;\n }\n\n .button__prefix,\n .button__suffix {\n flex: 0 0 auto;\n display: flex;\n align-items: center;\n pointer-events: none;\n }\n\n .button__label {\n display: inline-block;\n }\n\n .button__label::slotted(sl-icon) {\n vertical-align: -2px;\n }\n\n /*\n * Standard buttons\n */\n\n /* Default */\n .button--standard.button--default {\n background-color: var(--sl-color-neutral-0);\n border-color: var(--sl-color-neutral-300);\n color: var(--sl-color-neutral-700);\n }\n\n .button--standard.button--default:hover:not(.button--disabled) {\n background-color: var(--sl-color-primary-50);\n border-color: var(--sl-color-primary-300);\n color: var(--sl-color-primary-700);\n }\n\n .button--standard.button--default:active:not(.button--disabled) {\n background-color: var(--sl-color-primary-100);\n border-color: var(--sl-color-primary-400);\n color: var(--sl-color-primary-700);\n }\n\n /* Primary */\n .button--standard.button--primary {\n background-color: var(--sl-color-primary-600);\n border-color: var(--sl-color-primary-600);\n color: var(--sl-color-neutral-0);\n }\n\n .button--standard.button--primary:hover:not(.button--disabled) {\n background-color: var(--sl-color-primary-500);\n border-color: var(--sl-color-primary-500);\n color: var(--sl-color-neutral-0);\n }\n\n .button--standard.button--primary:active:not(.button--disabled) {\n background-color: var(--sl-color-primary-600);\n border-color: var(--sl-color-primary-600);\n color: var(--sl-color-neutral-0);\n }\n\n /* Success */\n .button--standard.button--success {\n background-color: var(--sl-color-success-600);\n border-color: var(--sl-color-success-600);\n color: var(--sl-color-neutral-0);\n }\n\n .button--standard.button--success:hover:not(.button--disabled) {\n background-color: var(--sl-color-success-500);\n border-color: var(--sl-color-success-500);\n color: var(--sl-color-neutral-0);\n }\n\n .button--standard.button--success:active:not(.button--disabled) {\n background-color: var(--sl-color-success-600);\n border-color: var(--sl-color-success-600);\n color: var(--sl-color-neutral-0);\n }\n\n /* Neutral */\n .button--standard.button--neutral {\n background-color: var(--sl-color-neutral-600);\n border-color: var(--sl-color-neutral-600);\n color: var(--sl-color-neutral-0);\n }\n\n .button--standard.button--neutral:hover:not(.button--disabled) {\n background-color: var(--sl-color-neutral-500);\n border-color: var(--sl-color-neutral-500);\n color: var(--sl-color-neutral-0);\n }\n\n .button--standard.button--neutral:active:not(.button--disabled) {\n background-color: var(--sl-color-neutral-600);\n border-color: var(--sl-color-neutral-600);\n color: var(--sl-color-neutral-0);\n }\n\n /* Warning */\n .button--standard.button--warning {\n background-color: var(--sl-color-warning-600);\n border-color: var(--sl-color-warning-600);\n color: var(--sl-color-neutral-0);\n }\n .button--standard.button--warning:hover:not(.button--disabled) {\n background-color: var(--sl-color-warning-500);\n border-color: var(--sl-color-warning-500);\n color: var(--sl-color-neutral-0);\n }\n\n .button--standard.button--warning:active:not(.button--disabled) {\n background-color: var(--sl-color-warning-600);\n border-color: var(--sl-color-warning-600);\n color: var(--sl-color-neutral-0);\n }\n\n /* Danger */\n .button--standard.button--danger {\n background-color: var(--sl-color-danger-600);\n border-color: var(--sl-color-danger-600);\n color: var(--sl-color-neutral-0);\n }\n\n .button--standard.button--danger:hover:not(.button--disabled) {\n background-color: var(--sl-color-danger-500);\n border-color: var(--sl-color-danger-500);\n color: var(--sl-color-neutral-0);\n }\n\n .button--standard.button--danger:active:not(.button--disabled) {\n background-color: var(--sl-color-danger-600);\n border-color: var(--sl-color-danger-600);\n color: var(--sl-color-neutral-0);\n }\n\n /*\n * Outline buttons\n */\n\n .button--outline {\n background: none;\n border: solid 1px;\n }\n\n /* Default */\n .button--outline.button--default {\n border-color: var(--sl-color-neutral-300);\n color: var(--sl-color-neutral-700);\n }\n\n .button--outline.button--default:hover:not(.button--disabled),\n .button--outline.button--default.button--checked:not(.button--disabled) {\n border-color: var(--sl-color-primary-600);\n background-color: var(--sl-color-primary-600);\n color: var(--sl-color-neutral-0);\n }\n\n .button--outline.button--default:active:not(.button--disabled) {\n border-color: var(--sl-color-primary-700);\n background-color: var(--sl-color-primary-700);\n color: var(--sl-color-neutral-0);\n }\n\n /* Primary */\n .button--outline.button--primary {\n border-color: var(--sl-color-primary-600);\n color: var(--sl-color-primary-600);\n }\n\n .button--outline.button--primary:hover:not(.button--disabled),\n .button--outline.button--primary.button--checked:not(.button--disabled) {\n background-color: var(--sl-color-primary-600);\n color: var(--sl-color-neutral-0);\n }\n\n .button--outline.button--primary:active:not(.button--disabled) {\n border-color: var(--sl-color-primary-700);\n background-color: var(--sl-color-primary-700);\n color: var(--sl-color-neutral-0);\n }\n\n /* Success */\n .button--outline.button--success {\n border-color: var(--sl-color-success-600);\n color: var(--sl-color-success-600);\n }\n\n .button--outline.button--success:hover:not(.button--disabled),\n .button--outline.button--success.button--checked:not(.button--disabled) {\n background-color: var(--sl-color-success-600);\n color: var(--sl-color-neutral-0);\n }\n\n .button--outline.button--success:active:not(.button--disabled) {\n border-color: var(--sl-color-success-700);\n background-color: var(--sl-color-success-700);\n color: var(--sl-color-neutral-0);\n }\n\n /* Neutral */\n .button--outline.button--neutral {\n border-color: var(--sl-color-neutral-600);\n color: var(--sl-color-neutral-600);\n }\n\n .button--outline.button--neutral:hover:not(.button--disabled),\n .button--outline.button--neutral.button--checked:not(.button--disabled) {\n background-color: var(--sl-color-neutral-600);\n color: var(--sl-color-neutral-0);\n }\n\n .button--outline.button--neutral:active:not(.button--disabled) {\n border-color: var(--sl-color-neutral-700);\n background-color: var(--sl-color-neutral-700);\n color: var(--sl-color-neutral-0);\n }\n\n /* Warning */\n .button--outline.button--warning {\n border-color: var(--sl-color-warning-600);\n color: var(--sl-color-warning-600);\n }\n\n .button--outline.button--warning:hover:not(.button--disabled),\n .button--outline.button--warning.button--checked:not(.button--disabled) {\n background-color: var(--sl-color-warning-600);\n color: var(--sl-color-neutral-0);\n }\n\n .button--outline.button--warning:active:not(.button--disabled) {\n border-color: var(--sl-color-warning-700);\n background-color: var(--sl-color-warning-700);\n color: var(--sl-color-neutral-0);\n }\n\n /* Danger */\n .button--outline.button--danger {\n border-color: var(--sl-color-danger-600);\n color: var(--sl-color-danger-600);\n }\n\n .button--outline.button--danger:hover:not(.button--disabled),\n .button--outline.button--danger.button--checked:not(.button--disabled) {\n background-color: var(--sl-color-danger-600);\n color: var(--sl-color-neutral-0);\n }\n\n .button--outline.button--danger:active:not(.button--disabled) {\n border-color: var(--sl-color-danger-700);\n background-color: var(--sl-color-danger-700);\n color: var(--sl-color-neutral-0);\n }\n\n @media (forced-colors: active) {\n .button.button--outline.button--checked:not(.button--disabled) {\n outline: solid 2px transparent;\n }\n }\n\n /*\n * Text buttons\n */\n\n .button--text {\n background-color: transparent;\n border-color: transparent;\n color: var(--sl-color-primary-600);\n }\n\n .button--text:hover:not(.button--disabled) {\n background-color: transparent;\n border-color: transparent;\n color: var(--sl-color-primary-500);\n }\n\n .button--text:focus-visible:not(.button--disabled) {\n background-color: transparent;\n border-color: transparent;\n color: var(--sl-color-primary-500);\n }\n\n .button--text:active:not(.button--disabled) {\n background-color: transparent;\n border-color: transparent;\n color: var(--sl-color-primary-700);\n }\n\n /*\n * Size modifiers\n */\n\n .button--small {\n height: auto;\n min-height: var(--sl-input-height-small);\n font-size: var(--sl-button-font-size-small);\n line-height: calc(var(--sl-input-height-small) - var(--sl-input-border-width) * 2);\n border-radius: var(--sl-input-border-radius-small);\n }\n\n .button--medium {\n height: auto;\n min-height: var(--sl-input-height-medium);\n font-size: var(--sl-button-font-size-medium);\n line-height: calc(var(--sl-input-height-medium) - var(--sl-input-border-width) * 2);\n border-radius: var(--sl-input-border-radius-medium);\n }\n\n .button--large {\n height: auto;\n min-height: var(--sl-input-height-large);\n font-size: var(--sl-button-font-size-large);\n line-height: calc(var(--sl-input-height-large) - var(--sl-input-border-width) * 2);\n border-radius: var(--sl-input-border-radius-large);\n }\n\n /*\n * Pill modifier\n */\n\n .button--pill.button--small {\n border-radius: var(--sl-input-height-small);\n }\n\n .button--pill.button--medium {\n border-radius: var(--sl-input-height-medium);\n }\n\n .button--pill.button--large {\n border-radius: var(--sl-input-height-large);\n }\n\n /*\n * Circle modifier\n */\n\n .button--circle {\n padding-left: 0;\n padding-right: 0;\n }\n\n .button--circle.button--small {\n width: var(--sl-input-height-small);\n border-radius: 50%;\n }\n\n .button--circle.button--medium {\n width: var(--sl-input-height-medium);\n border-radius: 50%;\n }\n\n .button--circle.button--large {\n width: var(--sl-input-height-large);\n border-radius: 50%;\n }\n\n .button--circle .button__prefix,\n .button--circle .button__suffix,\n .button--circle .button__caret {\n display: none;\n }\n\n /*\n * Caret modifier\n */\n\n .button--caret .button__suffix {\n display: none;\n }\n\n .button--caret .button__caret {\n height: auto;\n }\n\n /*\n * Loading modifier\n */\n\n .button--loading {\n position: relative;\n cursor: wait;\n }\n\n .button--loading .button__prefix,\n .button--loading .button__label,\n .button--loading .button__suffix,\n .button--loading .button__caret {\n visibility: hidden;\n }\n\n .button--loading sl-spinner {\n --indicator-color: currentColor;\n position: absolute;\n font-size: 1em;\n height: 1em;\n width: 1em;\n top: calc(50% - 0.5em);\n left: calc(50% - 0.5em);\n }\n\n /*\n * Badges\n */\n\n .button ::slotted(sl-badge) {\n position: absolute;\n top: 0;\n right: 0;\n translate: 50% -50%;\n pointer-events: none;\n }\n\n .button--rtl ::slotted(sl-badge) {\n right: auto;\n left: 0;\n translate: -50% -50%;\n }\n\n /*\n * Button spacing\n */\n\n .button--has-label.button--small .button__label {\n padding: 0 var(--sl-spacing-small);\n }\n\n .button--has-label.button--medium .button__label {\n padding: 0 var(--sl-spacing-medium);\n }\n\n .button--has-label.button--large .button__label {\n padding: 0 var(--sl-spacing-large);\n }\n\n .button--has-prefix.button--small {\n padding-inline-start: var(--sl-spacing-x-small);\n }\n\n .button--has-prefix.button--small .button__label {\n padding-inline-start: var(--sl-spacing-x-small);\n }\n\n .button--has-prefix.button--medium {\n padding-inline-start: var(--sl-spacing-small);\n }\n\n .button--has-prefix.button--medium .button__label {\n padding-inline-start: var(--sl-spacing-small);\n }\n\n .button--has-prefix.button--large {\n padding-inline-start: var(--sl-spacing-small);\n }\n\n .button--has-prefix.button--large .button__label {\n padding-inline-start: var(--sl-spacing-small);\n }\n\n .button--has-suffix.button--small,\n .button--caret.button--small {\n padding-inline-end: var(--sl-spacing-x-small);\n }\n\n .button--has-suffix.button--small .button__label,\n .button--caret.button--small .button__label {\n padding-inline-end: var(--sl-spacing-x-small);\n }\n\n .button--has-suffix.button--medium,\n .button--caret.button--medium {\n padding-inline-end: var(--sl-spacing-small);\n }\n\n .button--has-suffix.button--medium .button__label,\n .button--caret.button--medium .button__label {\n padding-inline-end: var(--sl-spacing-small);\n }\n\n .button--has-suffix.button--large,\n .button--caret.button--large {\n padding-inline-end: var(--sl-spacing-small);\n }\n\n .button--has-suffix.button--large .button__label,\n .button--caret.button--large .button__label {\n padding-inline-end: var(--sl-spacing-small);\n }\n\n /*\n * Button groups support a variety of button types (e.g. buttons with tooltips, buttons as dropdown triggers, etc.).\n * This means buttons aren't always direct descendants of the button group, thus we can't target them with the\n * ::slotted selector. To work around this, the button group component does some magic to add these special classes to\n * buttons and we style them here instead.\n */\n\n :host([data-sl-button-group__button--first]:not([data-sl-button-group__button--last])) .button {\n border-start-end-radius: 0;\n border-end-end-radius: 0;\n }\n\n :host([data-sl-button-group__button--inner]) .button {\n border-radius: 0;\n }\n\n :host([data-sl-button-group__button--last]:not([data-sl-button-group__button--first])) .button {\n border-start-start-radius: 0;\n border-end-start-radius: 0;\n }\n\n /* All except the first */\n :host([data-sl-button-group__button]:not([data-sl-button-group__button--first])) {\n margin-inline-start: calc(-1 * var(--sl-input-border-width));\n }\n\n /* Add a visual separator between solid buttons */\n :host(\n [data-sl-button-group__button]:not(\n [data-sl-button-group__button--first],\n [data-sl-button-group__button--radio],\n [variant='default']\n ):not(:hover)\n )\n .button:after {\n content: '';\n position: absolute;\n top: 0;\n inset-inline-start: 0;\n bottom: 0;\n border-left: solid 1px rgb(128 128 128 / 33%);\n mix-blend-mode: multiply;\n }\n\n /* Bump hovered, focused, and checked buttons up so their focus ring isn't clipped */\n :host([data-sl-button-group__button--hover]) {\n z-index: 1;\n }\n\n /* Focus and checked are always on top */\n :host([data-sl-button-group__button--focus]),\n :host([data-sl-button-group__button[checked]]) {\n z-index: 2;\n }\n`;\n\nexport {\n button_styles_default\n};\n","// src/internal/slot.ts\nvar HasSlotController = class {\n constructor(host, ...slotNames) {\n this.slotNames = [];\n this.handleSlotChange = (event) => {\n const slot = event.target;\n if (this.slotNames.includes(\"[default]\") && !slot.name || slot.name && this.slotNames.includes(slot.name)) {\n this.host.requestUpdate();\n }\n };\n (this.host = host).addController(this);\n this.slotNames = slotNames;\n }\n hasDefaultSlot() {\n return [...this.host.childNodes].some((node) => {\n if (node.nodeType === node.TEXT_NODE && node.textContent.trim() !== \"\") {\n return true;\n }\n if (node.nodeType === node.ELEMENT_NODE) {\n const el = node;\n const tagName = el.tagName.toLowerCase();\n if (tagName === \"sl-visually-hidden\") {\n return false;\n }\n if (!el.hasAttribute(\"slot\")) {\n return true;\n }\n }\n return false;\n });\n }\n hasNamedSlot(name) {\n return this.host.querySelector(`:scope > [slot=\"${name}\"]`) !== null;\n }\n test(slotName) {\n return slotName === \"[default]\" ? this.hasDefaultSlot() : this.hasNamedSlot(slotName);\n }\n hostConnected() {\n this.host.shadowRoot.addEventListener(\"slotchange\", this.handleSlotChange);\n }\n hostDisconnected() {\n this.host.shadowRoot.removeEventListener(\"slotchange\", this.handleSlotChange);\n }\n};\nfunction getTextContent(slot) {\n if (!slot) {\n return \"\";\n }\n const nodes = slot.assignedNodes({ flatten: true });\n let text = \"\";\n [...nodes].forEach((node) => {\n if (node.nodeType === Node.TEXT_NODE) {\n text += node.textContent;\n }\n });\n return text;\n}\n\nexport {\n HasSlotController,\n getTextContent\n};\n","import {\n SlSpinner\n} from \"./chunk.RADK4UXU.js\";\nimport {\n FormControlController,\n validValidityState\n} from \"./chunk.KWPBDQ6I.js\";\nimport {\n button_styles_default\n} from \"./chunk.HLDU3ZPH.js\";\nimport {\n LocalizeController\n} from \"./chunk.WLV3FVBR.js\";\nimport {\n HasSlotController\n} from \"./chunk.NYIIDP5N.js\";\nimport {\n SlIcon\n} from \"./chunk.H33C3MRM.js\";\nimport {\n watch\n} from \"./chunk.2FB5TK5H.js\";\nimport {\n component_styles_default\n} from \"./chunk.TUVJKY7S.js\";\nimport {\n ShoelaceElement\n} from \"./chunk.SFSTXCXC.js\";\nimport {\n __decorateClass\n} from \"./chunk.IFDWM6P4.js\";\n\n// src/components/button/button.component.ts\nimport { classMap } from \"lit/directives/class-map.js\";\nimport { html, literal } from \"lit/static-html.js\";\nimport { ifDefined } from \"lit/directives/if-defined.js\";\nimport { property, query, state } from \"lit/decorators.js\";\nvar SlButton = class extends ShoelaceElement {\n constructor() {\n super(...arguments);\n this.formControlController = new FormControlController(this, {\n assumeInteractionOn: [\"click\"]\n });\n this.hasSlotController = new HasSlotController(this, \"[default]\", \"prefix\", \"suffix\");\n this.localize = new LocalizeController(this);\n this.hasFocus = false;\n this.invalid = false;\n this.title = \"\";\n this.variant = \"default\";\n this.size = \"medium\";\n this.caret = false;\n this.disabled = false;\n this.loading = false;\n this.outline = false;\n this.pill = false;\n this.circle = false;\n this.type = \"button\";\n this.name = \"\";\n this.value = \"\";\n this.href = \"\";\n this.rel = \"noreferrer noopener\";\n }\n /** Gets the validity state object */\n get validity() {\n if (this.isButton()) {\n return this.button.validity;\n }\n return validValidityState;\n }\n /** Gets the validation message */\n get validationMessage() {\n if (this.isButton()) {\n return this.button.validationMessage;\n }\n return \"\";\n }\n firstUpdated() {\n if (this.isButton()) {\n this.formControlController.updateValidity();\n }\n }\n handleBlur() {\n this.hasFocus = false;\n this.emit(\"sl-blur\");\n }\n handleFocus() {\n this.hasFocus = true;\n this.emit(\"sl-focus\");\n }\n handleClick() {\n if (this.type === \"submit\") {\n this.formControlController.submit(this);\n }\n if (this.type === \"reset\") {\n this.formControlController.reset(this);\n }\n }\n handleInvalid(event) {\n this.formControlController.setValidity(false);\n this.formControlController.emitInvalidEvent(event);\n }\n isButton() {\n return this.href ? false : true;\n }\n isLink() {\n return this.href ? true : false;\n }\n handleDisabledChange() {\n if (this.isButton()) {\n this.formControlController.setValidity(this.disabled);\n }\n }\n /** Simulates a click on the button. */\n click() {\n this.button.click();\n }\n /** Sets focus on the button. */\n focus(options) {\n this.button.focus(options);\n }\n /** Removes focus from the button. */\n blur() {\n this.button.blur();\n }\n /** Checks for validity but does not show a validation message. Returns `true` when valid and `false` when invalid. */\n checkValidity() {\n if (this.isButton()) {\n return this.button.checkValidity();\n }\n return true;\n }\n /** Gets the associated form, if one exists. */\n getForm() {\n return this.formControlController.getForm();\n }\n /** Checks for validity and shows the browser's validation message if the control is invalid. */\n reportValidity() {\n if (this.isButton()) {\n return this.button.reportValidity();\n }\n return true;\n }\n /** Sets a custom validation message. Pass an empty string to restore validity. */\n setCustomValidity(message) {\n if (this.isButton()) {\n this.button.setCustomValidity(message);\n this.formControlController.updateValidity();\n }\n }\n render() {\n const isLink = this.isLink();\n const tag = isLink ? literal`a` : literal`button`;\n return html`\n <${tag}\n part=\"base\"\n class=${classMap({\n button: true,\n \"button--default\": this.variant === \"default\",\n \"button--primary\": this.variant === \"primary\",\n \"button--success\": this.variant === \"success\",\n \"button--neutral\": this.variant === \"neutral\",\n \"button--warning\": this.variant === \"warning\",\n \"button--danger\": this.variant === \"danger\",\n \"button--text\": this.variant === \"text\",\n \"button--small\": this.size === \"small\",\n \"button--medium\": this.size === \"medium\",\n \"button--large\": this.size === \"large\",\n \"button--caret\": this.caret,\n \"button--circle\": this.circle,\n \"button--disabled\": this.disabled,\n \"button--focused\": this.hasFocus,\n \"button--loading\": this.loading,\n \"button--standard\": !this.outline,\n \"button--outline\": this.outline,\n \"button--pill\": this.pill,\n \"button--rtl\": this.localize.dir() === \"rtl\",\n \"button--has-label\": this.hasSlotController.test(\"[default]\"),\n \"button--has-prefix\": this.hasSlotController.test(\"prefix\"),\n \"button--has-suffix\": this.hasSlotController.test(\"suffix\")\n })}\n ?disabled=${ifDefined(isLink ? void 0 : this.disabled)}\n type=${ifDefined(isLink ? void 0 : this.type)}\n title=${this.title}\n name=${ifDefined(isLink ? void 0 : this.name)}\n value=${ifDefined(isLink ? void 0 : this.value)}\n href=${ifDefined(isLink ? this.href : void 0)}\n target=${ifDefined(isLink ? this.target : void 0)}\n download=${ifDefined(isLink ? this.download : void 0)}\n rel=${ifDefined(isLink ? this.rel : void 0)}\n role=${ifDefined(isLink ? void 0 : \"button\")}\n aria-disabled=${this.disabled ? \"true\" : \"false\"}\n tabindex=${this.disabled ? \"-1\" : \"0\"}\n @blur=${this.handleBlur}\n @focus=${this.handleFocus}\n @invalid=${this.isButton() ? this.handleInvalid : null}\n @click=${this.handleClick}\n >\n <slot name=\"prefix\" part=\"prefix\" class=\"button__prefix\"></slot>\n <slot part=\"label\" class=\"button__label\"></slot>\n <slot name=\"suffix\" part=\"suffix\" class=\"button__suffix\"></slot>\n ${this.caret ? html` <sl-icon part=\"caret\" class=\"button__caret\" library=\"system\" name=\"caret\"></sl-icon> ` : \"\"}\n ${this.loading ? html`<sl-spinner part=\"spinner\"></sl-spinner>` : \"\"}\n </${tag}>\n `;\n }\n};\nSlButton.styles = [component_styles_default, button_styles_default];\nSlButton.dependencies = {\n \"sl-icon\": SlIcon,\n \"sl-spinner\": SlSpinner\n};\n__decorateClass([\n query(\".button\")\n], SlButton.prototype, \"button\", 2);\n__decorateClass([\n state()\n], SlButton.prototype, \"hasFocus\", 2);\n__decorateClass([\n state()\n], SlButton.prototype, \"invalid\", 2);\n__decorateClass([\n property()\n], SlButton.prototype, \"title\", 2);\n__decorateClass([\n property({ reflect: true })\n], SlButton.prototype, \"variant\", 2);\n__decorateClass([\n property({ reflect: true })\n], SlButton.prototype, \"size\", 2);\n__decorateClass([\n property({ type: Boolean, reflect: true })\n], SlButton.prototype, \"caret\", 2);\n__decorateClass([\n property({ type: Boolean, reflect: true })\n], SlButton.prototype, \"disabled\", 2);\n__decorateClass([\n property({ type: Boolean, reflect: true })\n], SlButton.prototype, \"loading\", 2);\n__decorateClass([\n property({ type: Boolean, reflect: true })\n], SlButton.prototype, \"outline\", 2);\n__decorateClass([\n property({ type: Boolean, reflect: true })\n], SlButton.prototype, \"pill\", 2);\n__decorateClass([\n property({ type: Boolean, reflect: true })\n], SlButton.prototype, \"circle\", 2);\n__decorateClass([\n property()\n], SlButton.prototype, \"type\", 2);\n__decorateClass([\n property()\n], SlButton.prototype, \"name\", 2);\n__decorateClass([\n property()\n], SlButton.prototype, \"value\", 2);\n__decorateClass([\n property()\n], SlButton.prototype, \"href\", 2);\n__decorateClass([\n property()\n], SlButton.prototype, \"target\", 2);\n__decorateClass([\n property()\n], SlButton.prototype, \"rel\", 2);\n__decorateClass([\n property()\n], SlButton.prototype, \"download\", 2);\n__decorateClass([\n property()\n], SlButton.prototype, \"form\", 2);\n__decorateClass([\n property({ attribute: \"formaction\" })\n], SlButton.prototype, \"formAction\", 2);\n__decorateClass([\n property({ attribute: \"formenctype\" })\n], SlButton.prototype, \"formEnctype\", 2);\n__decorateClass([\n property({ attribute: \"formmethod\" })\n], SlButton.prototype, \"formMethod\", 2);\n__decorateClass([\n property({ attribute: \"formnovalidate\", type: Boolean })\n], SlButton.prototype, \"formNoValidate\", 2);\n__decorateClass([\n property({ attribute: \"formtarget\" })\n], SlButton.prototype, \"formTarget\", 2);\n__decorateClass([\n watch(\"disabled\", { waitUntilFirstUpdate: true })\n], SlButton.prototype, \"handleDisabledChange\", 1);\n\nexport {\n SlButton\n};\n","import {\n SlButton\n} from \"./chunk.5SUGJ4EB.js\";\n\n// src/components/button/button.ts\nvar button_default = SlButton;\nSlButton.define(\"sl-button\");\n\nexport {\n button_default\n};\n","// src/internal/tabbable.ts\nvar computedStyleMap = /* @__PURE__ */ new WeakMap();\nfunction getCachedComputedStyle(el) {\n let computedStyle = computedStyleMap.get(el);\n if (!computedStyle) {\n computedStyle = window.getComputedStyle(el, null);\n computedStyleMap.set(el, computedStyle);\n }\n return computedStyle;\n}\nfunction isVisible(el) {\n if (typeof el.checkVisibility === \"function\") {\n return el.checkVisibility({ checkOpacity: false, checkVisibilityCSS: true });\n }\n const computedStyle = getCachedComputedStyle(el);\n return computedStyle.visibility !== \"hidden\" && computedStyle.display !== \"none\";\n}\nfunction isOverflowingAndTabbable(el) {\n const computedStyle = getCachedComputedStyle(el);\n const { overflowY, overflowX } = computedStyle;\n if (overflowY === \"scroll\" || overflowX === \"scroll\") {\n return true;\n }\n if (overflowY !== \"auto\" || overflowX !== \"auto\") {\n return false;\n }\n const isOverflowingY = el.scrollHeight > el.clientHeight;\n if (isOverflowingY && overflowY === \"auto\") {\n return true;\n }\n const isOverflowingX = el.scrollWidth > el.clientWidth;\n if (isOverflowingX && overflowX === \"auto\") {\n return true;\n }\n return false;\n}\nfunction isTabbable(el) {\n const tag = el.tagName.toLowerCase();\n const tabindex = Number(el.getAttribute(\"tabindex\"));\n const hasTabindex = el.hasAttribute(\"tabindex\");\n if (hasTabindex && (isNaN(tabindex) || tabindex <= -1)) {\n return false;\n }\n if (el.hasAttribute(\"disabled\")) {\n return false;\n }\n if (el.closest(\"[inert]\")) {\n return false;\n }\n if (tag === \"input\" && el.getAttribute(\"type\") === \"radio\" && !el.hasAttribute(\"checked\")) {\n return false;\n }\n if (!isVisible(el)) {\n return false;\n }\n if ((tag === \"audio\" || tag === \"video\") && el.hasAttribute(\"controls\")) {\n return true;\n }\n if (el.hasAttribute(\"tabindex\")) {\n return true;\n }\n if (el.hasAttribute(\"contenteditable\") && el.getAttribute(\"contenteditable\") !== \"false\") {\n return true;\n }\n const isNativelyTabbable = [\n \"button\",\n \"input\",\n \"select\",\n \"textarea\",\n \"a\",\n \"audio\",\n \"video\",\n \"summary\",\n \"iframe\"\n ].includes(tag);\n if (isNativelyTabbable) {\n return true;\n }\n return isOverflowingAndTabbable(el);\n}\nfunction getTabbableBoundary(root) {\n var _a, _b;\n const tabbableElements = getTabbableElements(root);\n const start = (_a = tabbableElements[0]) != null ? _a : null;\n const end = (_b = tabbableElements[tabbableElements.length - 1]) != null ? _b : null;\n return { start, end };\n}\nfunction getSlottedChildrenOutsideRootElement(slotElement, root) {\n var _a;\n return ((_a = slotElement.getRootNode({ composed: true })) == null ? void 0 : _a.host) !== root;\n}\nfunction getTabbableElements(root) {\n const walkedEls = /* @__PURE__ */ new WeakMap();\n const tabbableElements = [];\n function walk(el) {\n if (el instanceof Element) {\n if (el.hasAttribute(\"inert\") || el.closest(\"[inert]\")) {\n return;\n }\n if (walkedEls.has(el)) {\n return;\n }\n walkedEls.set(el, true);\n if (!tabbableElements.includes(el) && isTabbable(el)) {\n tabbableElements.push(el);\n }\n if (el instanceof HTMLSlotElement && getSlottedChildrenOutsideRootElement(el, root)) {\n el.assignedElements({ flatten: true }).forEach((assignedEl) => {\n walk(assignedEl);\n });\n }\n if (el.shadowRoot !== null && el.shadowRoot.mode === \"open\") {\n walk(el.shadowRoot);\n }\n }\n for (const e of el.children) {\n walk(e);\n }\n }\n walk(root);\n return tabbableElements.sort((a, b) => {\n const aTabindex = Number(a.getAttribute(\"tabindex\")) || 0;\n const bTabindex = Number(b.getAttribute(\"tabindex\")) || 0;\n return bTabindex - aTabindex;\n });\n}\n\nexport {\n getTabbableBoundary,\n getTabbableElements\n};\n","import {\n getTabbableElements\n} from \"./chunk.LXDTFLWU.js\";\nimport {\n __yieldStar\n} from \"./chunk.IFDWM6P4.js\";\n\n// src/internal/active-elements.ts\nfunction* activeElements(activeElement = document.activeElement) {\n if (activeElement === null || activeElement === void 0)\n return;\n yield activeElement;\n if (\"shadowRoot\" in activeElement && activeElement.shadowRoot && activeElement.shadowRoot.mode !== \"closed\") {\n yield* __yieldStar(activeElements(activeElement.shadowRoot.activeElement));\n }\n}\nfunction getDeepestActiveElement() {\n return [...activeElements()].pop();\n}\n\n// src/internal/modal.ts\nvar activeModals = [];\nvar Modal = class {\n constructor(element) {\n this.tabDirection = \"forward\";\n this.handleFocusIn = () => {\n if (!this.isActive())\n return;\n this.checkFocus();\n };\n this.handleKeyDown = (event) => {\n var _a;\n if (event.key !== \"Tab\" || this.isExternalActivated)\n return;\n if (!this.isActive())\n return;\n const currentActiveElement = getDeepestActiveElement();\n this.previousFocus = currentActiveElement;\n if (this.previousFocus && this.possiblyHasTabbableChildren(this.previousFocus)) {\n return;\n }\n if (event.shiftKey) {\n this.tabDirection = \"backward\";\n } else {\n this.tabDirection = \"forward\";\n }\n const tabbableElements = getTabbableElements(this.element);\n let currentFocusIndex = tabbableElements.findIndex((el) => el === currentActiveElement);\n this.previousFocus = this.currentFocus;\n const addition = this.tabDirection === \"forward\" ? 1 : -1;\n while (true) {\n if (currentFocusIndex + addition >= tabbableElements.length) {\n currentFocusIndex = 0;\n } else if (currentFocusIndex + addition < 0) {\n currentFocusIndex = tabbableElements.length - 1;\n } else {\n currentFocusIndex += addition;\n }\n this.previousFocus = this.currentFocus;\n const nextFocus = (\n /** @type {HTMLElement} */\n tabbableElements[currentFocusIndex]\n );\n if (this.tabDirection === \"backward\") {\n if (this.previousFocus && this.possiblyHasTabbableChildren(this.previousFocus)) {\n return;\n }\n }\n if (nextFocus && this.possiblyHasTabbableChildren(nextFocus)) {\n return;\n }\n event.preventDefault();\n this.currentFocus = nextFocus;\n (_a = this.currentFocus) == null ? void 0 : _a.focus({ preventScroll: false });\n const allActiveElements = [...activeElements()];\n if (allActiveElements.includes(this.currentFocus) || !allActiveElements.includes(this.previousFocus)) {\n break;\n }\n }\n setTimeout(() => this.checkFocus());\n };\n this.handleKeyUp = () => {\n this.tabDirection = \"forward\";\n };\n this.element = element;\n this.elementsWithTabbableControls = [\"iframe\"];\n }\n /** Activates focus trapping. */\n activate() {\n activeModals.push(this.element);\n document.addEventListener(\"focusin\", this.handleFocusIn);\n document.addEventListener(\"keydown\", this.handleKeyDown);\n document.addEventListener(\"keyup\", this.handleKeyUp);\n }\n /** Deactivates focus trapping. */\n deactivate() {\n activeModals = activeModals.filter((modal) => modal !== this.element);\n this.currentFocus = null;\n document.removeEventListener(\"focusin\", this.handleFocusIn);\n document.removeEventListener(\"keydown\", this.handleKeyDown);\n document.removeEventListener(\"keyup\", this.handleKeyUp);\n }\n /** Determines if this modal element is currently active or not. */\n isActive() {\n return activeModals[activeModals.length - 1] === this.element;\n }\n /** Activates external modal behavior and temporarily disables focus trapping. */\n activateExternal() {\n this.isExternalActivated = true;\n }\n /** Deactivates external modal behavior and re-enables focus trapping. */\n deactivateExternal() {\n this.isExternalActivated = false;\n }\n checkFocus() {\n if (this.isActive() && !this.isExternalActivated) {\n const tabbableElements = getTabbableElements(this.element);\n if (!this.element.matches(\":focus-within\")) {\n const start = tabbableElements[0];\n const end = tabbableElements[tabbableElements.length - 1];\n const target = this.tabDirection === \"forward\" ? start : end;\n if (typeof (target == null ? void 0 : target.focus) === \"function\") {\n this.currentFocus = target;\n target.focus({ preventScroll: false });\n }\n }\n }\n }\n possiblyHasTabbableChildren(element) {\n return this.elementsWithTabbableControls.includes(element.tagName.toLowerCase()) || element.hasAttribute(\"controls\");\n }\n};\n\nexport {\n Modal\n};\n","// src/internal/offset.ts\nfunction getOffset(element, parent) {\n return {\n top: Math.round(element.getBoundingClientRect().top - parent.getBoundingClientRect().top),\n left: Math.round(element.getBoundingClientRect().left - parent.getBoundingClientRect().left)\n };\n}\n\n// src/internal/scroll.ts\nvar locks = /* @__PURE__ */ new Set();\nfunction getScrollbarWidth() {\n const documentWidth = document.documentElement.clientWidth;\n return Math.abs(window.innerWidth - documentWidth);\n}\nfunction getExistingBodyPadding() {\n const padding = Number(getComputedStyle(document.body).paddingRight.replace(/px/, \"\"));\n if (isNaN(padding) || !padding) {\n return 0;\n }\n return padding;\n}\nfunction lockBodyScrolling(lockingEl) {\n locks.add(lockingEl);\n if (!document.documentElement.classList.contains(\"sl-scroll-lock\")) {\n const scrollbarWidth = getScrollbarWidth() + getExistingBodyPadding();\n document.documentElement.classList.add(\"sl-scroll-lock\");\n document.documentElement.style.setProperty(\"--sl-scroll-lock-size\", `${scrollbarWidth}px`);\n }\n}\nfunction unlockBodyScrolling(lockingEl) {\n locks.delete(lockingEl);\n if (locks.size === 0) {\n document.documentElement.classList.remove(\"sl-scroll-lock\");\n document.documentElement.style.removeProperty(\"--sl-scroll-lock-size\");\n }\n}\nfunction scrollIntoView(element, container, direction = \"vertical\", behavior = \"smooth\") {\n const offset = getOffset(element, container);\n const offsetTop = offset.top + container.scrollTop;\n const offsetLeft = offset.left + container.scrollLeft;\n const minX = container.scrollLeft;\n const maxX = container.scrollLeft + container.offsetWidth;\n const minY = container.scrollTop;\n const maxY = container.scrollTop + container.offsetHeight;\n if (direction === \"horizontal\" || direction === \"both\") {\n if (offsetLeft < minX) {\n container.scrollTo({ left: offsetLeft, behavior });\n } else if (offsetLeft + element.clientWidth > maxX) {\n container.scrollTo({ left: offsetLeft - container.offsetWidth + element.clientWidth, behavior });\n }\n }\n if (direction === \"vertical\" || direction === \"both\") {\n if (offsetTop < minY) {\n container.scrollTo({ top: offsetTop, behavior });\n } else if (offsetTop + element.clientHeight > maxY) {\n container.scrollTo({ top: offsetTop - container.offsetHeight + element.clientHeight, behavior });\n }\n }\n}\n\nexport {\n lockBodyScrolling,\n unlockBodyScrolling,\n scrollIntoView\n};\n","// src/components/dialog/dialog.styles.ts\nimport { css } from \"lit\";\nvar dialog_styles_default = css`\n :host {\n --width: 31rem;\n --header-spacing: var(--sl-spacing-large);\n --body-spacing: var(--sl-spacing-large);\n --footer-spacing: var(--sl-spacing-large);\n\n display: contents;\n }\n\n .dialog {\n display: flex;\n align-items: center;\n justify-content: center;\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: var(--sl-z-index-dialog);\n }\n\n .dialog__panel {\n display: flex;\n flex-direction: column;\n z-index: 2;\n width: var(--width);\n max-width: calc(100% - var(--sl-spacing-2x-large));\n max-height: calc(100% - var(--sl-spacing-2x-large));\n background-color: var(--sl-panel-background-color);\n border-radius: var(--sl-border-radius-medium);\n box-shadow: var(--sl-shadow-x-large);\n }\n\n .dialog__panel:focus {\n outline: none;\n }\n\n /* Ensure there's enough vertical padding for phones that don't update vh when chrome appears (e.g. iPhone) */\n @media screen and (max-width: 420px) {\n .dialog__panel {\n max-height: 80vh;\n }\n }\n\n .dialog--open .dialog__panel {\n display: flex;\n opacity: 1;\n }\n\n .dialog__header {\n flex: 0 0 auto;\n display: flex;\n }\n\n .dialog__title {\n flex: 1 1 auto;\n font: inherit;\n font-size: var(--sl-font-size-large);\n line-height: var(--sl-line-height-dense);\n padding: var(--header-spacing);\n margin: 0;\n }\n\n .dialog__header-actions {\n flex-shrink: 0;\n display: flex;\n flex-wrap: wrap;\n justify-content: end;\n gap: var(--sl-spacing-2x-small);\n padding: 0 var(--header-spacing);\n }\n\n .dialog__header-actions sl-icon-button,\n .dialog__header-actions ::slotted(sl-icon-button) {\n flex: 0 0 auto;\n display: flex;\n align-items: center;\n font-size: var(--sl-font-size-medium);\n }\n\n .dialog__body {\n flex: 1 1 auto;\n display: block;\n padding: var(--body-spacing);\n overflow: auto;\n -webkit-overflow-scrolling: touch;\n }\n\n .dialog__footer {\n flex: 0 0 auto;\n text-align: right;\n padding: var(--footer-spacing);\n }\n\n .dialog__footer ::slotted(sl-button:not(:first-of-type)) {\n margin-inline-start: var(--sl-spacing-x-small);\n }\n\n .dialog:not(.dialog--has-footer) .dialog__footer {\n display: none;\n }\n\n .dialog__overlay {\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background-color: var(--sl-overlay-background-color);\n }\n\n @media (forced-colors: active) {\n .dialog__panel {\n border: solid 1px var(--sl-color-neutral-0);\n }\n }\n`;\n\nexport {\n dialog_styles_default\n};\n","// src/components/icon-button/icon-button.styles.ts\nimport { css } from \"lit\";\nvar icon_button_styles_default = css`\n :host {\n display: inline-block;\n color: var(--sl-color-neutral-600);\n }\n\n .icon-button {\n flex: 0 0 auto;\n display: flex;\n align-items: center;\n background: none;\n border: none;\n border-radius: var(--sl-border-radius-medium);\n font-size: inherit;\n color: inherit;\n padding: var(--sl-spacing-x-small);\n cursor: pointer;\n transition: var(--sl-transition-x-fast) color;\n -webkit-appearance: none;\n }\n\n .icon-button:hover:not(.icon-button--disabled),\n .icon-button:focus-visible:not(.icon-button--disabled) {\n color: var(--sl-color-primary-600);\n }\n\n .icon-button:active:not(.icon-button--disabled) {\n color: var(--sl-color-primary-700);\n }\n\n .icon-button:focus {\n outline: none;\n }\n\n .icon-button--disabled {\n opacity: 0.5;\n cursor: not-allowed;\n }\n\n .icon-button:focus-visible {\n outline: var(--sl-focus-ring);\n outline-offset: var(--sl-focus-ring-offset);\n }\n\n .icon-button__icon {\n pointer-events: none;\n }\n`;\n\nexport {\n icon_button_styles_default\n};\n","import {\n icon_button_styles_default\n} from \"./chunk.6I2T3DLI.js\";\nimport {\n SlIcon\n} from \"./chunk.H33C3MRM.js\";\nimport {\n component_styles_default\n} from \"./chunk.TUVJKY7S.js\";\nimport {\n ShoelaceElement\n} from \"./chunk.SFSTXCXC.js\";\nimport {\n __decorateClass\n} from \"./chunk.IFDWM6P4.js\";\n\n// src/components/icon-button/icon-button.component.ts\nimport { classMap } from \"lit/directives/class-map.js\";\nimport { html, literal } from \"lit/static-html.js\";\nimport { ifDefined } from \"lit/directives/if-defined.js\";\nimport { property, query, state } from \"lit/decorators.js\";\nvar SlIconButton = class extends ShoelaceElement {\n constructor() {\n super(...arguments);\n this.hasFocus = false;\n this.label = \"\";\n this.disabled = false;\n }\n handleBlur() {\n this.hasFocus = false;\n this.emit(\"sl-blur\");\n }\n handleFocus() {\n this.hasFocus = true;\n this.emit(\"sl-focus\");\n }\n handleClick(event) {\n if (this.disabled) {\n event.preventDefault();\n event.stopPropagation();\n }\n }\n /** Simulates a click on the icon button. */\n click() {\n this.button.click();\n }\n /** Sets focus on the icon button. */\n focus(options) {\n this.button.focus(options);\n }\n /** Removes focus from the icon button. */\n blur() {\n this.button.blur();\n }\n render() {\n const isLink = this.href ? true : false;\n const tag = isLink ? literal`a` : literal`button`;\n return html`\n <${tag}\n part=\"base\"\n class=${classMap({\n \"icon-button\": true,\n \"icon-button--disabled\": !isLink && this.disabled,\n \"icon-button--focused\": this.hasFocus\n })}\n ?disabled=${ifDefined(isLink ? void 0 : this.disabled)}\n type=${ifDefined(isLink ? void 0 : \"button\")}\n href=${ifDefined(isLink ? this.href : void 0)}\n target=${ifDefined(isLink ? this.target : void 0)}\n download=${ifDefined(isLink ? this.download : void 0)}\n rel=${ifDefined(isLink && this.target ? \"noreferrer noopener\" : void 0)}\n role=${ifDefined(isLink ? void 0 : \"button\")}\n aria-disabled=${this.disabled ? \"true\" : \"false\"}\n aria-label=\"${this.label}\"\n tabindex=${this.disabled ? \"-1\" : \"0\"}\n @blur=${this.handleBlur}\n @focus=${this.handleFocus}\n @click=${this.handleClick}\n >\n <sl-icon\n class=\"icon-button__icon\"\n name=${ifDefined(this.name)}\n library=${ifDefined(this.library)}\n src=${ifDefined(this.src)}\n aria-hidden=\"true\"\n ></sl-icon>\n </${tag}>\n `;\n }\n};\nSlIconButton.styles = [component_styles_default, icon_button_styles_default];\nSlIconButton.dependencies = { \"sl-icon\": SlIcon };\n__decorateClass([\n query(\".icon-button\")\n], SlIconButton.prototype, \"button\", 2);\n__decorateClass([\n state()\n], SlIconButton.prototype, \"hasFocus\", 2);\n__decorateClass([\n property()\n], SlIconButton.prototype, \"name\", 2);\n__decorateClass([\n property()\n], SlIconButton.prototype, \"library\", 2);\n__decorateClass([\n property()\n], SlIconButton.prototype, \"src\", 2);\n__decorateClass([\n property()\n], SlIconButton.prototype, \"href\", 2);\n__decorateClass([\n property()\n], SlIconButton.prototype, \"target\", 2);\n__decorateClass([\n property()\n], SlIconButton.prototype, \"download\", 2);\n__decorateClass([\n property()\n], SlIconButton.prototype, \"label\", 2);\n__decorateClass([\n property({ type: Boolean, reflect: true })\n], SlIconButton.prototype, \"disabled\", 2);\n\nexport {\n SlIconButton\n};\n","import {\n Modal\n} from \"./chunk.ODFLWOL6.js\";\nimport {\n lockBodyScrolling,\n unlockBodyScrolling\n} from \"./chunk.BTENR4BI.js\";\nimport {\n dialog_styles_default\n} from \"./chunk.G5RKA5HF.js\";\nimport {\n SlIconButton\n} from \"./chunk.WQ4LAAP4.js\";\nimport {\n getAnimation,\n setDefaultAnimation\n} from \"./chunk.DHU6MIVB.js\";\nimport {\n waitForEvent\n} from \"./chunk.B4BZKR24.js\";\nimport {\n animateTo,\n stopAnimations\n} from \"./chunk.LHI6QEL2.js\";\nimport {\n LocalizeController\n} from \"./chunk.WLV3FVBR.js\";\nimport {\n HasSlotController\n} from \"./chunk.NYIIDP5N.js\";\nimport {\n watch\n} from \"./chunk.2FB5TK5H.js\";\nimport {\n component_styles_default\n} from \"./chunk.TUVJKY7S.js\";\nimport {\n ShoelaceElement\n} from \"./chunk.SFSTXCXC.js\";\nimport {\n __decorateClass\n} from \"./chunk.IFDWM6P4.js\";\n\n// src/components/dialog/dialog.component.ts\nimport { classMap } from \"lit/directives/class-map.js\";\nimport { html } from \"lit\";\nimport { ifDefined } from \"lit/directives/if-defined.js\";\nimport { property, query } from \"lit/decorators.js\";\nvar SlDialog = class extends ShoelaceElement {\n constructor() {\n super(...arguments);\n this.hasSlotController = new HasSlotController(this, \"footer\");\n this.localize = new LocalizeController(this);\n this.modal = new Modal(this);\n this.open = false;\n this.label = \"\";\n this.noHeader = false;\n this.handleDocumentKeyDown = (event) => {\n if (event.key === \"Escape\" && this.modal.isActive() && this.open) {\n event.stopPropagation();\n this.requestClose(\"keyboard\");\n }\n };\n }\n firstUpdated() {\n this.dialog.hidden = !this.open;\n if (this.open) {\n this.addOpenListeners();\n this.modal.activate();\n lockBodyScrolling(this);\n }\n }\n disconnectedCallback() {\n var _a;\n super.disconnectedCallback();\n this.modal.deactivate();\n unlockBodyScrolling(this);\n (_a = this.closeWatcher) == null ? void 0 : _a.destroy();\n }\n requestClose(source) {\n const slRequestClose = this.emit(\"sl-request-close\", {\n cancelable: true,\n detail: { source }\n });\n if (slRequestClose.defaultPrevented) {\n const animation = getAnimation(this, \"dialog.denyClose\", { dir: this.localize.dir() });\n animateTo(this.panel, animation.keyframes, animation.options);\n return;\n }\n this.hide();\n }\n addOpenListeners() {\n var _a;\n if (\"CloseWatcher\" in window) {\n (_a = this.closeWatcher) == null ? void 0 : _a.destroy();\n this.closeWatcher = new CloseWatcher();\n this.closeWatcher.onclose = () => this.requestClose(\"keyboard\");\n } else {\n document.addEventListener(\"keydown\", this.handleDocumentKeyDown);\n }\n }\n removeOpenListeners() {\n var _a;\n (_a = this.closeWatcher) == null ? void 0 : _a.destroy();\n document.removeEventListener(\"keydown\", this.handleDocumentKeyDown);\n }\n async handleOpenChange() {\n if (this.open) {\n this.emit(\"sl-show\");\n this.addOpenListeners();\n this.originalTrigger = document.activeElement;\n this.modal.activate();\n lockBodyScrolling(this);\n const autoFocusTarget = this.querySelector(\"[autofocus]\");\n if (autoFocusTarget) {\n autoFocusTarget.removeAttribute(\"autofocus\");\n }\n await Promise.all([stopAnimations(this.dialog), stopAnimations(this.overlay)]);\n this.dialog.hidden = false;\n requestAnimationFrame(() => {\n const slInitialFocus = this.emit(\"sl-initial-focus\", { cancelable: true });\n if (!slInitialFocus.defaultPrevented) {\n if (autoFocusTarget) {\n autoFocusTarget.focus({ preventScroll: true });\n } else {\n this.panel.focus({ preventScroll: true });\n }\n }\n if (autoFocusTarget) {\n autoFocusTarget.setAttribute(\"autofocus\", \"\");\n }\n });\n const panelAnimation = getAnimation(this, \"dialog.show\", { dir: this.localize.dir() });\n const overlayAnimation = getAnimation(this, \"dialog.overlay.show\", { dir: this.localize.dir() });\n await Promise.all([\n animateTo(this.panel, panelAnimation.keyframes, panelAnimation.options),\n animateTo(this.overlay, overlayAnimation.keyframes, overlayAnimation.options)\n ]);\n this.emit(\"sl-after-show\");\n } else {\n this.emit(\"sl-hide\");\n this.removeOpenListeners();\n this.modal.deactivate();\n await Promise.all([stopAnimations(this.dialog), stopAnimations(this.overlay)]);\n const panelAnimation = getAnimation(this, \"dialog.hide\", { dir: this.localize.dir() });\n const overlayAnimation = getAnimation(this, \"dialog.overlay.hide\", { dir: this.localize.dir() });\n await Promise.all([\n animateTo(this.overlay, overlayAnimation.keyframes, overlayAnimation.options).then(() => {\n this.overlay.hidden = true;\n }),\n animateTo(this.panel, panelAnimation.keyframes, panelAnimation.options).then(() => {\n this.panel.hidden = true;\n })\n ]);\n this.dialog.hidden = true;\n this.overlay.hidden = false;\n this.panel.hidden = false;\n unlockBodyScrolling(this);\n const trigger = this.originalTrigger;\n if (typeof (trigger == null ? void 0 : trigger.focus) === \"function\") {\n setTimeout(() => trigger.focus());\n }\n this.emit(\"sl-after-hide\");\n }\n }\n /** Shows the dialog. */\n async show() {\n if (this.open) {\n return void 0;\n }\n this.open = true;\n return waitForEvent(this, \"sl-after-show\");\n }\n /** Hides the dialog */\n async hide() {\n if (!this.open) {\n return void 0;\n }\n this.open = false;\n return waitForEvent(this, \"sl-after-hide\");\n }\n render() {\n return html`\n <div\n part=\"base\"\n class=${classMap({\n dialog: true,\n \"dialog--open\": this.open,\n \"dialog--has-footer\": this.hasSlotController.test(\"footer\")\n })}\n >\n <div part=\"overlay\" class=\"dialog__overlay\" @click=${() => this.requestClose(\"overlay\")} tabindex=\"-1\"></div>\n\n <div\n part=\"panel\"\n class=\"dialog__panel\"\n role=\"dialog\"\n aria-modal=\"true\"\n aria-hidden=${this.open ? \"false\" : \"true\"}\n aria-label=${ifDefined(this.noHeader ? this.label : void 0)}\n aria-labelledby=${ifDefined(!this.noHeader ? \"title\" : void 0)}\n tabindex=\"-1\"\n >\n ${!this.noHeader ? html`\n <header part=\"header\" class=\"dialog__header\">\n <h2 part=\"title\" class=\"dialog__title\" id=\"title\">\n <slot name=\"label\"> ${this.label.length > 0 ? this.label : String.fromCharCode(65279)} </slot>\n </h2>\n <div part=\"header-actions\" class=\"dialog__header-actions\">\n <slot name=\"header-actions\"></slot>\n <sl-icon-button\n part=\"close-button\"\n exportparts=\"base:close-button__base\"\n class=\"dialog__close\"\n name=\"x-lg\"\n label=${this.localize.term(\"close\")}\n library=\"system\"\n @click=\"${() => this.requestClose(\"close-button\")}\"\n ></sl-icon-button>\n </div>\n </header>\n ` : \"\"}\n ${\"\"}\n <div part=\"body\" class=\"dialog__body\" tabindex=\"-1\"><slot></slot></div>\n\n <footer part=\"footer\" class=\"dialog__footer\">\n <slot name=\"footer\"></slot>\n </footer>\n </div>\n </div>\n `;\n }\n};\nSlDialog.styles = [component_styles_default, dialog_styles_default];\nSlDialog.dependencies = {\n \"sl-icon-button\": SlIconButton\n};\n__decorateClass([\n query(\".dialog\")\n], SlDialog.prototype, \"dialog\", 2);\n__decorateClass([\n query(\".dialog__panel\")\n], SlDialog.prototype, \"panel\", 2);\n__decorateClass([\n query(\".dialog__overlay\")\n], SlDialog.prototype, \"overlay\", 2);\n__decorateClass([\n property({ type: Boolean, reflect: true })\n], SlDialog.prototype, \"open\", 2);\n__decorateClass([\n property({ reflect: true })\n], SlDialog.prototype, \"label\", 2);\n__decorateClass([\n property({ attribute: \"no-header\", type: Boolean, reflect: true })\n], SlDialog.prototype, \"noHeader\", 2);\n__decorateClass([\n watch(\"open\", { waitUntilFirstUpdate: true })\n], SlDialog.prototype, \"handleOpenChange\", 1);\nsetDefaultAnimation(\"dialog.show\", {\n keyframes: [\n { opacity: 0, scale: 0.8 },\n { opacity: 1, scale: 1 }\n ],\n options: { duration: 250, easing: \"ease\" }\n});\nsetDefaultAnimation(\"dialog.hide\", {\n keyframes: [\n { opacity: 1, scale: 1 },\n { opacity: 0, scale: 0.8 }\n ],\n options: { duration: 250, easing: \"ease\" }\n});\nsetDefaultAnimation(\"dialog.denyClose\", {\n keyframes: [{ scale: 1 }, { scale: 1.02 }, { scale: 1 }],\n options: { duration: 250 }\n});\nsetDefaultAnimation(\"dialog.overlay.show\", {\n keyframes: [{ opacity: 0 }, { opacity: 1 }],\n options: { duration: 250 }\n});\nsetDefaultAnimation(\"dialog.overlay.hide\", {\n keyframes: [{ opacity: 1 }, { opacity: 0 }],\n options: { duration: 250 }\n});\n\nexport {\n SlDialog\n};\n","import {\n SlDialog\n} from \"./chunk.UE77SM53.js\";\n\n// src/components/dialog/dialog.ts\nvar dialog_default = SlDialog;\nSlDialog.define(\"sl-dialog\");\n\nexport {\n dialog_default\n};\n","import {\n SlIconButton\n} from \"./chunk.WQ4LAAP4.js\";\n\n// src/components/icon-button/icon-button.ts\nvar icon_button_default = SlIconButton;\nSlIconButton.define(\"sl-icon-button\");\n\nexport {\n icon_button_default\n};\n","export function random(len) {\n\treturn crypto.getRandomValues(new Uint8Array(len));\n}\n","import { random } from '@lukeed/csprng';\n\nvar SIZE=4096, HEX=[], IDX=0, BUFFER;\n\nfor (; IDX < 256; IDX++) {\n\tHEX[IDX] = (IDX + 256).toString(16).substring(1);\n}\n\nexport function v4() {\n\tif (!BUFFER || ((IDX + 16) > SIZE)) {\n\t\tBUFFER = random(SIZE);\n\t\tIDX = 0;\n\t}\n\n\tvar i=0, tmp, out='';\n\tfor (; i < 16; i++) {\n\t\ttmp = BUFFER[IDX + i];\n\t\tif (i==6) out += HEX[tmp & 15 | 64];\n\t\telse if (i==8) out += HEX[tmp & 63 | 128];\n\t\telse out += HEX[tmp];\n\n\t\tif (i & 1 && i > 1 && i < 11) out += '-';\n\t}\n\n\tIDX += 16;\n\treturn out;\n}\n"],"names":["basePath","setBasePath","path","getBasePath","subpath","scripts","configScript","script","fallbackScript","s","__defProp","__defProps","__getOwnPropDesc","__getOwnPropDescs","__getOwnPropSymbols","__hasOwnProp","__propIsEnum","__knownSymbol","name","symbol","__defNormalProp","obj","key","value","__spreadValues","a","b","prop","__spreadProps","__decorateClass","decorators","target","kind","result","i","decorator","__await","promise","isYieldStar","__yieldStar","isAwait","method","it","k","x","v","resolve","library","library_default_default","icons","systemLibrary","library_system_default","registry","watchedIcons","watchIcon","icon","unwatchIcon","el","getIconLibrary","lib","registerIconLibrary","options","unregisterIconLibrary","icon_styles_default","css","watch","propertyName","resolvedOptions","proto","decoratedFnName","update","watchedProperties","changedProps","property","oldValue","newValue","component_styles_default","ShoelaceElement","LitElement","component","event","elementConstructor","currentlyRegisteredConstructor","newVersion","existingVersion","CACHEABLE_ERROR","RETRYABLE_ERROR","parser","iconCache","SlIcon","url","_a","fileData","html","svg","div","svgEl","fromLibrary","iconResolver","isTemplateResult","state","badge_styles_default","SlBadge","classMap","tooltip_styles_default","popup_styles_default","min","max","round","floor","createCoords","oppositeSideMap","oppositeAlignmentMap","clamp","start","end","evaluate","param","getSide","placement","getAlignment","getOppositeAxis","axis","getAxisLength","getSideAxis","getAlignmentAxis","getAlignmentSides","rects","rtl","alignment","alignmentAxis","length","mainAlignmentSide","getOppositePlacement","getExpandedPlacements","oppositePlacement","getOppositeAlignmentPlacement","getSideList","side","isStart","lr","rl","tb","bt","getOppositeAxisPlacements","flipAlignment","direction","list","expandPaddingObject","padding","getPaddingObject","rectToClientRect","rect","computeCoordsFromPlacement","_ref","reference","floating","sideAxis","alignLength","isVertical","commonX","commonY","commonAlign","coords","computePosition","config","strategy","middleware","platform","validMiddleware","y","statefulPlacement","middlewareData","resetCount","fn","nextX","nextY","data","reset","detectOverflow","_await$platform$isEle","elements","boundary","rootBoundary","elementContext","altBoundary","paddingObject","element","clippingClientRect","offsetParent","offsetScale","elementClientRect","arrow","arrowDimensions","isYAxis","minProp","maxProp","clientProp","endDiff","startDiff","arrowOffsetParent","clientSize","centerToReference","largestPossiblePadding","minPadding","maxPadding","min$1","center","offset","shouldAddOffset","alignmentOffset","flip","_middlewareData$arrow","_middlewareData$flip","initialPlacement","checkMainAxis","checkCrossAxis","specifiedFallbackPlacements","fallbackStrategy","fallbackAxisSideDirection","detectOverflowOptions","isBasePlacement","fallbackPlacements","placements","overflow","overflows","overflowsData","sides","_middlewareData$flip2","_overflowsData$filter","nextIndex","nextPlacement","resetPlacement","d","_overflowsData$map$so","acc","convertValueToCoords","mainAxisMulti","crossAxisMulti","rawValue","mainAxis","crossAxis","diffCoords","shift","limiter","mainAxisCoord","crossAxisCoord","minSide","maxSide","limitedCoords","size","apply","width","height","heightSide","widthSide","overflowAvailableHeight","overflowAvailableWidth","noShift","availableHeight","availableWidth","maximumClippingWidth","maximumClippingHeight","xMin","xMax","yMin","yMax","nextDimensions","getNodeName","node","isNode","getWindow","_node$ownerDocument","getDocumentElement","isElement","isHTMLElement","isShadowRoot","isOverflowElement","overflowX","overflowY","display","getComputedStyle","isTableElement","isContainingBlock","webkit","isWebKit","getContainingBlock","currentNode","getParentNode","isLastTraversableNode","getNodeScroll","getNearestOverflowAncestor","parentNode","getOverflowAncestors","traverseIframes","_node$ownerDocument2","scrollableAncestor","isBody","win","getCssDimensions","hasOffset","offsetWidth","offsetHeight","shouldFallback","unwrapElement","getScale","domElement","$","noOffsets","getVisualOffsets","shouldAddVisualOffsets","isFixed","floatingOffsetParent","getBoundingClientRect","includeScale","isFixedStrategy","clientRect","scale","visualOffsets","offsetWin","currentIFrame","iframeScale","iframeRect","left","top","convertOffsetParentRelativeRectToViewportRelativeRect","isOffsetParentAnElement","documentElement","scroll","offsets","offsetRect","getClientRects","getWindowScrollBarX","getDocumentRect","body","getViewportRect","visualViewport","visualViewportBased","getInnerBoundingClientRect","getClientRectFromClippingAncestor","clippingAncestor","hasFixedPositionAncestor","stopNode","getClippingElementAncestors","cache","cachedResult","currentContainingBlockComputedStyle","elementIsFixed","computedStyle","currentNodeIsContaining","ancestor","getClippingRect","clippingAncestors","firstClippingAncestor","clippingRect","accRect","getDimensions","getRectRelativeToOffsetParent","getTrueOffsetParent","polyfill","getOffsetParent","window","getElementRects","getOffsetParentFn","getDimensionsFn","isRTL","observeMove","onMove","io","timeoutId","root","cleanup","refresh","skip","threshold","insetTop","insetRight","insetBottom","insetLeft","isFirstUpdate","handleObserve","entries","ratio","autoUpdate","ancestorScroll","ancestorResize","elementResize","layoutShift","animationFrame","referenceEl","ancestors","cleanupIo","reobserveFrame","resizeObserver","firstEntry","frameId","prevRefRect","frameLoop","nextRefRect","mergedOptions","platformWithCache","computePosition$1","t","r","o","isVirtualElement","e","SlPopup","anchorRect","popupRect","topLeftX","topLeftY","topRightX","topRightY","bottomLeftX","bottomLeftY","bottomRightX","bottomRightY","syncWidth","syncHeight","isRtl","staticSide","arrowX","arrowY","right","bottom","query","p","defaultAnimationRegistry","customAnimationRegistry","ensureAnimation","animation","getLogicalAnimation","dir","setDefaultAnimation","animationName","getAnimation","customAnimation","defaultAnimation","waitForEvent","eventName","done","animateTo","keyframes","prefersReducedMotion","parseDuration","delay","stopAnimations","connectedElements","documentElementObserver","translations","documentDirection","documentLanguage","fallback","registerTranslation","translation","code","LocalizeController$1","host","lang","_b","locale","language","region","primary","secondary","args","term","dateToFormat","numberToFormat","unit","slide","count","num","en_default","LocalizeController","DefaultLocalizationController","SlTooltip","triggerType","spinner_styles_default","SlSpinner","formCollections","reportValidityOverloads","checkValidityOverloads","userInteractedControls","interactions","FormControlController","disabled","isButton","val","reportValidity","control","emittedEvents","input","formId","form","formCollection","hasInteracted","type","submitter","button","attr","isValid","required","originalInvalidEvent","slInvalidEvent","validValidityState","button_styles_default","HasSlotController","slotNames","slot","slotName","SlButton","message","isLink","tag","literal","ifDefined","computedStyleMap","getCachedComputedStyle","isVisible","isOverflowingAndTabbable","isTabbable","tabindex","getSlottedChildrenOutsideRootElement","slotElement","getTabbableElements","walkedEls","tabbableElements","walk","assignedEl","aTabindex","activeElements","activeElement","getDeepestActiveElement","activeModals","Modal","currentActiveElement","currentFocusIndex","addition","nextFocus","allActiveElements","modal","locks","getScrollbarWidth","documentWidth","getExistingBodyPadding","lockBodyScrolling","lockingEl","scrollbarWidth","unlockBodyScrolling","dialog_styles_default","icon_button_styles_default","SlIconButton","SlDialog","source","autoFocusTarget","panelAnimation","overlayAnimation","trigger","random","len","SIZE","HEX","IDX","BUFFER","v4","tmp","out"],"mappings":"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AA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAA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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47]}