@kumori/aurora-wui-components 0.0.265 → 0.0.266

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 (35) hide show
  1. package/dist/components/axebow-channel-config-panel/axebow-channel-config-panel.d.ts +3 -0
  2. package/dist/components/axebow-channel-config-panel/axebow-channel-config-panel.d.ts.map +1 -1
  3. package/dist/components/axebow-expandable-card/axebow-expandable-card.d.ts +6 -0
  4. package/dist/components/axebow-expandable-card/axebow-expandable-card.d.ts.map +1 -0
  5. package/dist/components/axebow-instances-table/axebow-instances-table.d.ts +56 -0
  6. package/dist/components/axebow-instances-table/axebow-instances-table.d.ts.map +1 -0
  7. package/dist/components/axebow-observability-container/axebow-observability-container.d.ts +51 -0
  8. package/dist/components/axebow-observability-container/axebow-observability-container.d.ts.map +1 -0
  9. package/dist/components/axebow-progress-bar/axebow-progress-bar.d.ts +11 -0
  10. package/dist/components/axebow-progress-bar/axebow-progress-bar.d.ts.map +1 -0
  11. package/dist/components/axebow-refresh-period-panel/axebow-refresh-period-panel.d.ts +20 -0
  12. package/dist/components/axebow-refresh-period-panel/axebow-refresh-period-panel.d.ts.map +1 -0
  13. package/dist/components/axebow-role-card/axebow-role-card.d.ts +18 -0
  14. package/dist/components/axebow-role-card/axebow-role-card.d.ts.map +1 -0
  15. package/dist/components/axebow-role-container-dropdown/axebow-role-container-dropdown.d.ts +41 -0
  16. package/dist/components/axebow-role-container-dropdown/axebow-role-container-dropdown.d.ts.map +1 -0
  17. package/dist/components/axebow-service-detail-header/axebow-service-detail-header.d.ts +49 -0
  18. package/dist/components/axebow-service-detail-header/axebow-service-detail-header.d.ts.map +1 -0
  19. package/dist/components/axebow-tenants-table/axebow-tenants-table.d.ts +34 -0
  20. package/dist/components/axebow-tenants-table/axebow-tenants-table.d.ts.map +1 -0
  21. package/dist/components/axebow-time-range-panel/axebow-time-range-panel.d.ts +29 -0
  22. package/dist/components/axebow-time-range-panel/axebow-time-range-panel.d.ts.map +1 -0
  23. package/dist/components/axebow-undeploy-card/axebow-undeploy-card.d.ts +23 -0
  24. package/dist/components/axebow-undeploy-card/axebow-undeploy-card.d.ts.map +1 -0
  25. package/dist/components/axebow-underline-tab-selector/axebow-underline-tab-selector.d.ts +18 -0
  26. package/dist/components/axebow-underline-tab-selector/axebow-underline-tab-selector.d.ts.map +1 -0
  27. package/dist/components/axebow-usage-tooltip/axebow-usage-tooltip.d.ts +13 -0
  28. package/dist/components/axebow-usage-tooltip/axebow-usage-tooltip.d.ts.map +1 -0
  29. package/dist/components/cards/parts/axebow-card-version-selector.d.ts +4 -1
  30. package/dist/components/cards/parts/axebow-card-version-selector.d.ts.map +1 -1
  31. package/dist/index.d.ts +13 -0
  32. package/dist/index.d.ts.map +1 -1
  33. package/dist/index.js +2258 -543
  34. package/dist/index.js.map +1 -1
  35. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -26,6 +26,7 @@ import { Chart } from "chart.js/auto";
26
26
  import { unsafeHTML } from "lit/directives/unsafe-html.js";
27
27
  import "@shoelace-style/shoelace/dist/components/icon-button/icon-button.js";
28
28
  import "@shoelace-style/shoelace/dist/components/card/card.js";
29
+ import "@shoelace-style/shoelace/dist/components/progress-bar/progress-bar.js";
29
30
  //#region src/styles/axebow-theme.ts
30
31
  var axebowTheme = css`
31
32
  :host, .theme {
@@ -125,7 +126,7 @@ var STATUS_COLORS = {
125
126
  };
126
127
  //#endregion
127
128
  //#region src/styles/tailwind.css?inline
128
- var tailwind_default = "/*! tailwindcss v4.3.2 | MIT License | https://tailwindcss.com */\n@layer properties {\n @supports (((-webkit-hyphens: none)) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color: rgb(from red r g b)))) {\n *, :before, :after, ::backdrop {\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-translate-z: 0;\n --tw-rotate-x: initial;\n --tw-rotate-y: initial;\n --tw-rotate-z: initial;\n --tw-skew-x: initial;\n --tw-skew-y: initial;\n --tw-space-y-reverse: 0;\n --tw-border-style: solid;\n --tw-leading: initial;\n --tw-font-weight: initial;\n --tw-tracking: initial;\n --tw-shadow: 0 0 #0000;\n --tw-shadow-color: initial;\n --tw-shadow-alpha: 100%;\n --tw-inset-shadow: 0 0 #0000;\n --tw-inset-shadow-color: initial;\n --tw-inset-shadow-alpha: 100%;\n --tw-ring-color: initial;\n --tw-ring-shadow: 0 0 #0000;\n --tw-inset-ring-color: initial;\n --tw-inset-ring-shadow: 0 0 #0000;\n --tw-ring-inset: initial;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-outline-style: solid;\n --tw-blur: initial;\n --tw-brightness: initial;\n --tw-contrast: initial;\n --tw-grayscale: initial;\n --tw-hue-rotate: initial;\n --tw-invert: initial;\n --tw-opacity: initial;\n --tw-saturate: initial;\n --tw-sepia: initial;\n --tw-drop-shadow: initial;\n --tw-drop-shadow-color: initial;\n --tw-drop-shadow-alpha: 100%;\n --tw-drop-shadow-size: initial;\n --tw-duration: initial;\n --tw-ease: initial;\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n --tw-scale-z: 1;\n }\n }\n}\n\n@layer theme {\n :root, :host {\n --font-sans: \"Open Sans\", sans-serif;\n --font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\",\n \"Courier New\", monospace;\n --color-red-50: oklch(97.1% .013 17.38);\n --color-red-200: oklch(88.5% .062 18.334);\n --color-red-300: oklch(80.8% .114 19.571);\n --color-red-500: oklch(63.7% .237 25.331);\n --color-red-600: oklch(57.7% .245 27.325);\n --color-yellow-50: oklch(98.7% .026 102.212);\n --color-yellow-200: oklch(94.5% .129 101.54);\n --color-yellow-600: oklch(68.1% .162 75.834);\n --color-yellow-800: oklch(47.6% .114 61.907);\n --color-green-50: oklch(98.2% .018 155.826);\n --color-green-200: oklch(92.5% .084 155.995);\n --color-green-600: oklch(62.7% .194 149.214);\n --color-green-800: oklch(44.8% .119 151.328);\n --color-sky-50: oklch(97.7% .013 236.62);\n --color-sky-100: oklch(95.1% .026 236.824);\n --color-blue-50: oklch(97% .014 254.604);\n --color-blue-100: oklch(93.2% .032 255.585);\n --color-blue-200: oklch(88.2% .059 254.128);\n --color-blue-500: oklch(62.3% .214 259.815);\n --color-blue-600: oklch(54.6% .245 262.881);\n --color-blue-800: oklch(42.4% .199 265.638);\n --color-gray-50: oklch(98.5% .002 247.839);\n --color-gray-100: oklch(96.7% .003 264.542);\n --color-gray-200: oklch(92.8% .006 264.531);\n --color-gray-300: oklch(87.2% .01 258.338);\n --color-gray-400: oklch(70.7% .022 261.325);\n --color-gray-500: oklch(55.1% .027 264.364);\n --color-gray-600: oklch(44.6% .03 256.802);\n --color-gray-700: oklch(37.3% .034 259.733);\n --color-gray-900: oklch(21% .034 264.665);\n --color-black: #000;\n --color-white: #fff;\n --spacing: .25rem;\n --text-xs: .625rem;\n --text-xs--line-height: .875rem;\n --text-sm: .75rem;\n --text-sm--line-height: 1rem;\n --text-base: .875rem;\n --text-base--line-height: 1.25rem;\n --text-lg: 1.125rem;\n --text-lg--line-height: 1.75rem;\n --text-xl: 1.25rem;\n --text-xl--line-height: 1.75rem;\n --text-3xl: 1.875rem;\n --text-5xl: 3rem;\n --font-weight-normal: 400;\n --font-weight-medium: 500;\n --font-weight-semibold: 600;\n --font-weight-bold: 700;\n --font-weight-black: 900;\n --tracking-wider: .05em;\n --leading-tight: 1.25;\n --leading-snug: 1.375;\n --leading-relaxed: 1.625;\n --radius-sm: .25rem;\n --radius-md: .375rem;\n --radius-lg: .5rem;\n --radius-xl: .75rem;\n --radius-2xl: 1rem;\n --ease-out: cubic-bezier(0, 0, .2, 1);\n --ease-in-out: cubic-bezier(.4, 0, .2, 1);\n --default-transition-duration: .15s;\n --default-transition-timing-function: cubic-bezier(.4, 0, .2, 1);\n --default-font-family: var(--font-sans);\n --default-mono-font-family: var(--font-mono);\n --text-md: 1rem;\n --text-md--line-height: 1.5rem;\n --spacing-30: 7.5rem;\n --spacing-38: 9.5rem;\n --spacing-43: 10.75rem;\n --spacing-50: 12.5rem;\n --spacing-75: 18.75rem;\n --spacing-117: 29.25rem;\n --spacing-120: 30rem;\n }\n}\n\n@layer base {\n *, :after, :before, ::backdrop {\n box-sizing: border-box;\n border: 0 solid;\n margin: 0;\n padding: 0;\n }\n\n ::file-selector-button {\n box-sizing: border-box;\n border: 0 solid;\n margin: 0;\n padding: 0;\n }\n\n html, :host {\n -webkit-text-size-adjust: 100%;\n tab-size: 4;\n line-height: 1.5;\n font-family: var(--default-font-family, ui-sans-serif, system-ui, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\");\n font-feature-settings: var(--default-font-feature-settings, normal);\n font-variation-settings: var(--default-font-variation-settings, normal);\n -webkit-tap-highlight-color: transparent;\n }\n\n hr {\n height: 0;\n color: inherit;\n border-top-width: 1px;\n }\n\n abbr:where([title]) {\n -webkit-text-decoration: underline dotted;\n text-decoration: underline dotted;\n }\n\n h1, h2, h3, h4, h5, h6 {\n font-size: inherit;\n font-weight: inherit;\n }\n\n a {\n color: inherit;\n -webkit-text-decoration: inherit;\n -webkit-text-decoration: inherit;\n -webkit-text-decoration: inherit;\n text-decoration: inherit;\n }\n\n b, strong {\n font-weight: bolder;\n }\n\n code, kbd, samp, pre {\n font-family: var(--default-mono-font-family, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace);\n font-feature-settings: var(--default-mono-font-feature-settings, normal);\n font-variation-settings: var(--default-mono-font-variation-settings, normal);\n font-size: 1em;\n }\n\n small {\n font-size: 80%;\n }\n\n sub, sup {\n vertical-align: baseline;\n font-size: 75%;\n line-height: 0;\n position: relative;\n }\n\n sub {\n bottom: -.25em;\n }\n\n sup {\n top: -.5em;\n }\n\n table {\n text-indent: 0;\n border-color: inherit;\n border-collapse: collapse;\n }\n\n :-moz-focusring {\n outline: auto;\n }\n\n progress {\n vertical-align: baseline;\n }\n\n summary {\n display: list-item;\n }\n\n ol, ul, menu {\n list-style: none;\n }\n\n img, svg, video, canvas, audio, iframe, embed, object {\n vertical-align: middle;\n display: block;\n }\n\n img, video {\n max-width: 100%;\n height: auto;\n }\n\n button, input, select, optgroup, textarea {\n font: inherit;\n font-feature-settings: inherit;\n font-variation-settings: inherit;\n letter-spacing: inherit;\n color: inherit;\n opacity: 1;\n background-color: #0000;\n border-radius: 0;\n }\n\n ::file-selector-button {\n font: inherit;\n font-feature-settings: inherit;\n font-variation-settings: inherit;\n letter-spacing: inherit;\n color: inherit;\n opacity: 1;\n background-color: #0000;\n border-radius: 0;\n }\n\n :where(select:is([multiple], [size])) optgroup {\n font-weight: bolder;\n }\n\n :where(select:is([multiple], [size])) optgroup option {\n padding-inline-start: 20px;\n }\n\n ::file-selector-button {\n margin-inline-end: 4px;\n }\n\n ::placeholder {\n opacity: 1;\n }\n\n @supports (not ((-webkit-appearance: -apple-pay-button))) or (contain-intrinsic-size: 1px) {\n ::placeholder {\n color: currentColor;\n }\n\n @supports (color: color-mix(in lab, red, red)) {\n ::placeholder {\n color: color-mix(in oklab, currentcolor 50%, transparent);\n }\n }\n }\n\n textarea {\n resize: vertical;\n }\n\n ::-webkit-search-decoration {\n -webkit-appearance: none;\n }\n\n ::-webkit-date-and-time-value {\n min-height: 1lh;\n text-align: inherit;\n }\n\n ::-webkit-datetime-edit {\n display: inline-flex;\n }\n\n ::-webkit-datetime-edit-fields-wrapper {\n padding: 0;\n }\n\n ::-webkit-datetime-edit {\n padding-block: 0;\n }\n\n ::-webkit-datetime-edit-year-field {\n padding-block: 0;\n }\n\n ::-webkit-datetime-edit-month-field {\n padding-block: 0;\n }\n\n ::-webkit-datetime-edit-day-field {\n padding-block: 0;\n }\n\n ::-webkit-datetime-edit-hour-field {\n padding-block: 0;\n }\n\n ::-webkit-datetime-edit-minute-field {\n padding-block: 0;\n }\n\n ::-webkit-datetime-edit-second-field {\n padding-block: 0;\n }\n\n ::-webkit-datetime-edit-millisecond-field {\n padding-block: 0;\n }\n\n ::-webkit-datetime-edit-meridiem-field {\n padding-block: 0;\n }\n\n ::-webkit-calendar-picker-indicator {\n line-height: 1;\n }\n\n :-moz-ui-invalid {\n box-shadow: none;\n }\n\n button, input:where([type=\"button\"], [type=\"reset\"], [type=\"submit\"]) {\n appearance: button;\n }\n\n ::file-selector-button {\n appearance: button;\n }\n\n ::-webkit-inner-spin-button {\n height: auto;\n }\n\n ::-webkit-outer-spin-button {\n height: auto;\n }\n\n [hidden]:where(:not([hidden=\"until-found\"])) {\n display: none !important;\n }\n}\n\n@layer components;\n\n@layer utilities {\n .pointer-events-none {\n pointer-events: none;\n }\n\n .visible {\n visibility: visible;\n }\n\n .absolute {\n position: absolute;\n }\n\n .fixed {\n position: fixed;\n }\n\n .relative {\n position: relative;\n }\n\n .static {\n position: static;\n }\n\n .top-0 {\n top: 0;\n }\n\n .top-1 {\n top: var(--spacing);\n }\n\n .top-1\\/2 {\n top: 50%;\n }\n\n .top-3 {\n top: calc(var(--spacing) * 3);\n }\n\n .top-25 {\n top: calc(var(--spacing) * 25);\n }\n\n .top-\\[-7px\\] {\n top: -7px;\n }\n\n .top-full {\n top: 100%;\n }\n\n .right-0 {\n right: 0;\n }\n\n .right-0\\.5 {\n right: calc(var(--spacing) * .5);\n }\n\n .right-1 {\n right: var(--spacing);\n }\n\n .right-1\\.5 {\n right: calc(var(--spacing) * 1.5);\n }\n\n .right-3 {\n right: calc(var(--spacing) * 3);\n }\n\n .right-\\[calc\\(100\\%\\+10px\\)\\] {\n right: calc(100% + 10px);\n }\n\n .bottom-0 {\n bottom: 0;\n }\n\n .bottom-0\\.5 {\n bottom: calc(var(--spacing) * .5);\n }\n\n .bottom-full {\n bottom: 100%;\n }\n\n .left-0 {\n left: 0;\n }\n\n .left-1\\/2 {\n left: 50%;\n }\n\n .left-\\[-7px\\] {\n left: -7px;\n }\n\n .left-\\[calc\\(100\\%\\+10px\\)\\] {\n left: calc(100% + 10px);\n }\n\n .left-full {\n left: 100%;\n }\n\n .z-5 {\n z-index: 5;\n }\n\n .z-10 {\n z-index: 10;\n }\n\n .z-50 {\n z-index: 50;\n }\n\n .z-2000 {\n z-index: 2000;\n }\n\n .z-2001 {\n z-index: 2001;\n }\n\n .z-9999 {\n z-index: 9999;\n }\n\n .row-1 {\n grid-row: 1;\n }\n\n .container {\n width: 100%;\n }\n\n @media (min-width: 40rem) {\n .container {\n max-width: 40rem;\n }\n }\n\n @media (min-width: 48rem) {\n .container {\n max-width: 48rem;\n }\n }\n\n @media (min-width: 64rem) {\n .container {\n max-width: 64rem;\n }\n }\n\n @media (min-width: 80rem) {\n .container {\n max-width: 80rem;\n }\n }\n\n @media (min-width: 96rem) {\n .container {\n max-width: 96rem;\n }\n }\n\n .m-0 {\n margin: 0;\n }\n\n .mx-2 {\n margin-inline: calc(var(--spacing) * 2);\n }\n\n .mx-6 {\n margin-inline: calc(var(--spacing) * 6);\n }\n\n .mx-12 {\n margin-inline: calc(var(--spacing) * 12);\n }\n\n .mx-auto {\n margin-inline: auto;\n }\n\n .my-0\\.5 {\n margin-block: calc(var(--spacing) * .5);\n }\n\n .my-1\\.5 {\n margin-block: calc(var(--spacing) * 1.5);\n }\n\n .my-2 {\n margin-block: calc(var(--spacing) * 2);\n }\n\n .my-4 {\n margin-block: calc(var(--spacing) * 4);\n }\n\n .ms-auto {\n margin-inline-start: auto;\n }\n\n .mt-0 {\n margin-top: 0;\n }\n\n .mt-1 {\n margin-top: var(--spacing);\n }\n\n .mt-1\\.5 {\n margin-top: calc(var(--spacing) * 1.5);\n }\n\n .mt-1\\.75 {\n margin-top: calc(var(--spacing) * 1.75);\n }\n\n .mt-2 {\n margin-top: calc(var(--spacing) * 2);\n }\n\n .mt-2\\.25 {\n margin-top: calc(var(--spacing) * 2.25);\n }\n\n .mt-4 {\n margin-top: calc(var(--spacing) * 4);\n }\n\n .mt-4\\.5 {\n margin-top: calc(var(--spacing) * 4.5);\n }\n\n .mt-5 {\n margin-top: calc(var(--spacing) * 5);\n }\n\n .mt-6 {\n margin-top: calc(var(--spacing) * 6);\n }\n\n .mt-8 {\n margin-top: calc(var(--spacing) * 8);\n }\n\n .mr-0\\.5 {\n margin-right: calc(var(--spacing) * .5);\n }\n\n .mr-2 {\n margin-right: calc(var(--spacing) * 2);\n }\n\n .mr-4 {\n margin-right: calc(var(--spacing) * 4);\n }\n\n .mb-1 {\n margin-bottom: var(--spacing);\n }\n\n .mb-1\\.5 {\n margin-bottom: calc(var(--spacing) * 1.5);\n }\n\n .mb-2 {\n margin-bottom: calc(var(--spacing) * 2);\n }\n\n .mb-3 {\n margin-bottom: calc(var(--spacing) * 3);\n }\n\n .mb-4 {\n margin-bottom: calc(var(--spacing) * 4);\n }\n\n .mb-6 {\n margin-bottom: calc(var(--spacing) * 6);\n }\n\n .mb-6\\.5 {\n margin-bottom: calc(var(--spacing) * 6.5);\n }\n\n .mb-8 {\n margin-bottom: calc(var(--spacing) * 8);\n }\n\n .ml-1 {\n margin-left: var(--spacing);\n }\n\n .ml-2 {\n margin-left: calc(var(--spacing) * 2);\n }\n\n .ml-4 {\n margin-left: calc(var(--spacing) * 4);\n }\n\n .ml-12 {\n margin-left: calc(var(--spacing) * 12);\n }\n\n .ml-auto {\n margin-left: auto;\n }\n\n .box-border {\n box-sizing: border-box;\n }\n\n .box-content {\n box-sizing: content-box;\n }\n\n .line-clamp-1 {\n -webkit-line-clamp: 1;\n -webkit-box-orient: vertical;\n display: -webkit-box;\n overflow: hidden;\n }\n\n .line-clamp-2 {\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n display: -webkit-box;\n overflow: hidden;\n }\n\n .line-clamp-11 {\n -webkit-line-clamp: 11;\n -webkit-box-orient: vertical;\n display: -webkit-box;\n overflow: hidden;\n }\n\n .\\!hidden {\n display: none !important;\n }\n\n .block {\n display: block;\n }\n\n .contents {\n display: contents;\n }\n\n .flex {\n display: flex;\n }\n\n .grid {\n display: grid;\n }\n\n .hidden {\n display: none;\n }\n\n .inline {\n display: inline;\n }\n\n .inline-block {\n display: inline-block;\n }\n\n .inline-flex {\n display: inline-flex;\n }\n\n .table {\n display: table;\n }\n\n .aspect-square {\n aspect-ratio: 1;\n }\n\n .h-2 {\n height: calc(var(--spacing) * 2);\n }\n\n .h-2\\.25 {\n height: calc(var(--spacing) * 2.25);\n }\n\n .h-2\\.75 {\n height: calc(var(--spacing) * 2.75);\n }\n\n .h-3 {\n height: calc(var(--spacing) * 3);\n }\n\n .h-3\\.5 {\n height: calc(var(--spacing) * 3.5);\n }\n\n .h-4 {\n height: calc(var(--spacing) * 4);\n }\n\n .h-4\\.5 {\n height: calc(var(--spacing) * 4.5);\n }\n\n .h-4\\.25 {\n height: calc(var(--spacing) * 4.25);\n }\n\n .h-5 {\n height: calc(var(--spacing) * 5);\n }\n\n .h-5\\.5 {\n height: calc(var(--spacing) * 5.5);\n }\n\n .h-5\\.25 {\n height: calc(var(--spacing) * 5.25);\n }\n\n .h-6 {\n height: calc(var(--spacing) * 6);\n }\n\n .h-7 {\n height: calc(var(--spacing) * 7);\n }\n\n .h-7\\.5 {\n height: calc(var(--spacing) * 7.5);\n }\n\n .h-8 {\n height: calc(var(--spacing) * 8);\n }\n\n .h-8\\.5 {\n height: calc(var(--spacing) * 8.5);\n }\n\n .h-8\\.75 {\n height: calc(var(--spacing) * 8.75);\n }\n\n .h-9 {\n height: calc(var(--spacing) * 9);\n }\n\n .h-9\\.5 {\n height: calc(var(--spacing) * 9.5);\n }\n\n .h-9\\.75 {\n height: calc(var(--spacing) * 9.75);\n }\n\n .h-10 {\n height: calc(var(--spacing) * 10);\n }\n\n .h-10\\.5 {\n height: calc(var(--spacing) * 10.5);\n }\n\n .h-11 {\n height: calc(var(--spacing) * 11);\n }\n\n .h-11\\.5 {\n height: calc(var(--spacing) * 11.5);\n }\n\n .h-11\\.25 {\n height: calc(var(--spacing) * 11.25);\n }\n\n .h-12 {\n height: calc(var(--spacing) * 12);\n }\n\n .h-12\\.5 {\n height: calc(var(--spacing) * 12.5);\n }\n\n .h-12\\.25 {\n height: calc(var(--spacing) * 12.25);\n }\n\n .h-12\\.75 {\n height: calc(var(--spacing) * 12.75);\n }\n\n .h-14\\.25 {\n height: calc(var(--spacing) * 14.25);\n }\n\n .h-16 {\n height: calc(var(--spacing) * 16);\n }\n\n .h-17\\.75 {\n height: calc(var(--spacing) * 17.75);\n }\n\n .h-20 {\n height: calc(var(--spacing) * 20);\n }\n\n .h-21\\.25 {\n height: calc(var(--spacing) * 21.25);\n }\n\n .h-49\\.5 {\n height: calc(var(--spacing) * 49.5);\n }\n\n .h-52\\.75 {\n height: calc(var(--spacing) * 52.75);\n }\n\n .h-57\\.5 {\n height: calc(var(--spacing) * 57.5);\n }\n\n .h-77\\.25 {\n height: calc(var(--spacing) * 77.25);\n }\n\n .h-\\[8\\.26375rem\\] {\n height: 8.26375rem;\n }\n\n .h-auto {\n height: auto;\n }\n\n .h-fit {\n height: fit-content;\n }\n\n .h-full {\n height: 100%;\n }\n\n .h-px {\n height: 1px;\n }\n\n .max-h-10 {\n max-height: calc(var(--spacing) * 10);\n }\n\n .max-h-40 {\n max-height: calc(var(--spacing) * 40);\n }\n\n .max-h-48 {\n max-height: calc(var(--spacing) * 48);\n }\n\n .max-h-75 {\n max-height: var(--spacing-75);\n }\n\n .max-h-\\[40vh\\] {\n max-height: 40vh;\n }\n\n .max-h-full {\n max-height: 100%;\n }\n\n .min-h-0 {\n min-height: 0;\n }\n\n .min-h-5 {\n min-height: calc(var(--spacing) * 5);\n }\n\n .min-h-9 {\n min-height: calc(var(--spacing) * 9);\n }\n\n .min-h-10 {\n min-height: calc(var(--spacing) * 10);\n }\n\n .min-h-12 {\n min-height: calc(var(--spacing) * 12);\n }\n\n .min-h-35 {\n min-height: calc(var(--spacing) * 35);\n }\n\n .min-h-102\\.5 {\n min-height: calc(var(--spacing) * 102.5);\n }\n\n .min-h-107\\.5 {\n min-height: calc(var(--spacing) * 107.5);\n }\n\n .min-h-113\\.25 {\n min-height: calc(var(--spacing) * 113.25);\n }\n\n .w-1\\/3 {\n width: 33.3333%;\n }\n\n .w-2 {\n width: calc(var(--spacing) * 2);\n }\n\n .w-2\\.5 {\n width: calc(var(--spacing) * 2.5);\n }\n\n .w-3\\.5 {\n width: calc(var(--spacing) * 3.5);\n }\n\n .w-4 {\n width: calc(var(--spacing) * 4);\n }\n\n .w-4\\.5 {\n width: calc(var(--spacing) * 4.5);\n }\n\n .w-4\\.25 {\n width: calc(var(--spacing) * 4.25);\n }\n\n .w-5 {\n width: calc(var(--spacing) * 5);\n }\n\n .w-6 {\n width: calc(var(--spacing) * 6);\n }\n\n .w-7 {\n width: calc(var(--spacing) * 7);\n }\n\n .w-8 {\n width: calc(var(--spacing) * 8);\n }\n\n .w-9 {\n width: calc(var(--spacing) * 9);\n }\n\n .w-9\\.5 {\n width: calc(var(--spacing) * 9.5);\n }\n\n .w-10 {\n width: calc(var(--spacing) * 10);\n }\n\n .w-10\\.5 {\n width: calc(var(--spacing) * 10.5);\n }\n\n .w-11\\.5 {\n width: calc(var(--spacing) * 11.5);\n }\n\n .w-11\\.25 {\n width: calc(var(--spacing) * 11.25);\n }\n\n .w-12 {\n width: calc(var(--spacing) * 12);\n }\n\n .w-12\\.5 {\n width: calc(var(--spacing) * 12.5);\n }\n\n .w-15\\.25 {\n width: calc(var(--spacing) * 15.25);\n }\n\n .w-16 {\n width: calc(var(--spacing) * 16);\n }\n\n .w-17 {\n width: calc(var(--spacing) * 17);\n }\n\n .w-18\\.5 {\n width: calc(var(--spacing) * 18.5);\n }\n\n .w-18\\.75 {\n width: calc(var(--spacing) * 18.75);\n }\n\n .w-20 {\n width: calc(var(--spacing) * 20);\n }\n\n .w-20\\.5 {\n width: calc(var(--spacing) * 20.5);\n }\n\n .w-21\\.5 {\n width: calc(var(--spacing) * 21.5);\n }\n\n .w-24 {\n width: calc(var(--spacing) * 24);\n }\n\n .w-24\\.75 {\n width: calc(var(--spacing) * 24.75);\n }\n\n .w-26\\.25 {\n width: calc(var(--spacing) * 26.25);\n }\n\n .w-27 {\n width: calc(var(--spacing) * 27);\n }\n\n .w-27\\.5 {\n width: calc(var(--spacing) * 27.5);\n }\n\n .w-30 {\n width: var(--spacing-30);\n }\n\n .w-30\\.75 {\n width: calc(var(--spacing) * 30.75);\n }\n\n .w-33\\.25 {\n width: calc(var(--spacing) * 33.25);\n }\n\n .w-35 {\n width: calc(var(--spacing) * 35);\n }\n\n .w-36 {\n width: calc(var(--spacing) * 36);\n }\n\n .w-40\\.25 {\n width: calc(var(--spacing) * 40.25);\n }\n\n .w-41 {\n width: calc(var(--spacing) * 41);\n }\n\n .w-47\\.75 {\n width: calc(var(--spacing) * 47.75);\n }\n\n .w-56\\.5 {\n width: calc(var(--spacing) * 56.5);\n }\n\n .w-57\\.5 {\n width: calc(var(--spacing) * 57.5);\n }\n\n .w-60\\.5 {\n width: calc(var(--spacing) * 60.5);\n }\n\n .w-62\\.5 {\n width: calc(var(--spacing) * 62.5);\n }\n\n .w-70\\.5 {\n width: calc(var(--spacing) * 70.5);\n }\n\n .w-71 {\n width: calc(var(--spacing) * 71);\n }\n\n .w-87 {\n width: calc(var(--spacing) * 87);\n }\n\n .w-88\\.5 {\n width: calc(var(--spacing) * 88.5);\n }\n\n .w-91 {\n width: calc(var(--spacing) * 91);\n }\n\n .w-95 {\n width: calc(var(--spacing) * 95);\n }\n\n .w-100\\.5 {\n width: calc(var(--spacing) * 100.5);\n }\n\n .w-117 {\n width: var(--spacing-117);\n }\n\n .w-120 {\n width: var(--spacing-120);\n }\n\n .w-120\\.75 {\n width: calc(var(--spacing) * 120.75);\n }\n\n .w-121 {\n width: calc(var(--spacing) * 121);\n }\n\n .w-130\\.25 {\n width: calc(var(--spacing) * 130.25);\n }\n\n .w-131 {\n width: calc(var(--spacing) * 131);\n }\n\n .w-139 {\n width: calc(var(--spacing) * 139);\n }\n\n .w-194\\.25 {\n width: calc(var(--spacing) * 194.25);\n }\n\n .w-270 {\n width: calc(var(--spacing) * 270);\n }\n\n .w-282 {\n width: calc(var(--spacing) * 282);\n }\n\n .w-294 {\n width: calc(var(--spacing) * 294);\n }\n\n .w-\\[10\\.5rem\\] {\n width: 10.5rem;\n }\n\n .w-\\[calc\\(100\\%-10px\\)\\] {\n width: calc(100% - 10px);\n }\n\n .w-auto {\n width: auto;\n }\n\n .w-full {\n width: 100%;\n }\n\n .w-px {\n width: 1px;\n }\n\n .max-w-36 {\n max-width: calc(var(--spacing) * 36);\n }\n\n .max-w-38 {\n max-width: var(--spacing-38);\n }\n\n .max-w-43 {\n max-width: var(--spacing-43);\n }\n\n .max-w-44 {\n max-width: calc(var(--spacing) * 44);\n }\n\n .max-w-51\\.5 {\n max-width: calc(var(--spacing) * 51.5);\n }\n\n .max-w-194\\.25 {\n max-width: calc(var(--spacing) * 194.25);\n }\n\n .max-w-\\[23\\.75rem\\] {\n max-width: 23.75rem;\n }\n\n .max-w-full {\n max-width: 100%;\n }\n\n .min-w-0 {\n min-width: 0;\n }\n\n .min-w-4 {\n min-width: calc(var(--spacing) * 4);\n }\n\n .min-w-20 {\n min-width: calc(var(--spacing) * 20);\n }\n\n .min-w-30 {\n min-width: var(--spacing-30);\n }\n\n .min-w-32 {\n min-width: calc(var(--spacing) * 32);\n }\n\n .min-w-36 {\n min-width: calc(var(--spacing) * 36);\n }\n\n .min-w-44 {\n min-width: calc(var(--spacing) * 44);\n }\n\n .min-w-50 {\n min-width: var(--spacing-50);\n }\n\n .min-w-55 {\n min-width: calc(var(--spacing) * 55);\n }\n\n .min-w-56 {\n min-width: calc(var(--spacing) * 56);\n }\n\n .min-w-160 {\n min-width: calc(var(--spacing) * 160);\n }\n\n .min-w-\\[8\\.2rem\\] {\n min-width: 8.2rem;\n }\n\n .min-w-fit {\n min-width: fit-content;\n }\n\n .flex-1 {\n flex: 1;\n }\n\n .flex-shrink {\n flex-shrink: 1;\n }\n\n .shrink-0 {\n flex-shrink: 0;\n }\n\n .-translate-x-1 {\n --tw-translate-x: calc(var(--spacing) * -1);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n\n .-translate-x-1\\/2 {\n --tw-translate-x: calc(calc(1 / 2 * 100%) * -1);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n\n .translate-x-1 {\n --tw-translate-x: var(--spacing);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n\n .-translate-y-1\\/2 {\n --tw-translate-y: calc(calc(1 / 2 * 100%) * -1);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n\n .scale-\\[1\\.02\\] {\n scale: 1.02;\n }\n\n .rotate-180 {\n rotate: 180deg;\n }\n\n .transform {\n transform: var(--tw-rotate-x, ) var(--tw-rotate-y, ) var(--tw-rotate-z, ) var(--tw-skew-x, ) var(--tw-skew-y, );\n }\n\n .cursor-default {\n cursor: default;\n }\n\n .cursor-grab {\n cursor: grab;\n }\n\n .cursor-not-allowed {\n cursor: not-allowed;\n }\n\n .cursor-pointer {\n cursor: pointer;\n }\n\n .cursor-text {\n cursor: text;\n }\n\n .touch-none {\n touch-action: none;\n }\n\n .resize {\n resize: both;\n }\n\n .appearance-none {\n appearance: none;\n }\n\n .grid-cols-\\[7\\.5rem_7\\.5rem_7\\.5rem\\] {\n grid-template-columns: 7.5rem 7.5rem 7.5rem;\n }\n\n .grid-cols-\\[auto_auto_1fr_auto\\] {\n grid-template-columns: auto auto 1fr auto;\n }\n\n .flex-col {\n flex-direction: column;\n }\n\n .flex-row {\n flex-direction: row;\n }\n\n .flex-wrap {\n flex-wrap: wrap;\n }\n\n .items-baseline {\n align-items: baseline;\n }\n\n .items-center {\n align-items: center;\n }\n\n .items-end {\n align-items: flex-end;\n }\n\n .items-start {\n align-items: flex-start;\n }\n\n .justify-between {\n justify-content: space-between;\n }\n\n .justify-center {\n justify-content: center;\n }\n\n .justify-end {\n justify-content: flex-end;\n }\n\n .gap-0 {\n gap: 0;\n }\n\n .gap-0\\.5 {\n gap: calc(var(--spacing) * .5);\n }\n\n .gap-1 {\n gap: var(--spacing);\n }\n\n .gap-1\\.5 {\n gap: calc(var(--spacing) * 1.5);\n }\n\n .gap-1\\.25 {\n gap: calc(var(--spacing) * 1.25);\n }\n\n .gap-2 {\n gap: calc(var(--spacing) * 2);\n }\n\n .gap-2\\.5 {\n gap: calc(var(--spacing) * 2.5);\n }\n\n .gap-3 {\n gap: calc(var(--spacing) * 3);\n }\n\n .gap-4 {\n gap: calc(var(--spacing) * 4);\n }\n\n .gap-5 {\n gap: calc(var(--spacing) * 5);\n }\n\n .gap-6 {\n gap: calc(var(--spacing) * 6);\n }\n\n .gap-8 {\n gap: calc(var(--spacing) * 8);\n }\n\n .gap-8\\.75 {\n gap: calc(var(--spacing) * 8.75);\n }\n\n .gap-12 {\n gap: calc(var(--spacing) * 12);\n }\n\n .gap-19 {\n gap: calc(var(--spacing) * 19);\n }\n\n .gap-\\[2\\%\\] {\n gap: 2%;\n }\n\n :where(.space-y-1 > :not(:last-child)) {\n --tw-space-y-reverse: 0;\n margin-block-start: calc(var(--spacing) * var(--tw-space-y-reverse));\n margin-block-end: calc(var(--spacing) * calc(1 - var(--tw-space-y-reverse)));\n }\n\n :where(.space-y-2 > :not(:last-child)) {\n --tw-space-y-reverse: 0;\n margin-block-start: calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));\n margin-block-end: calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)));\n }\n\n :where(.space-y-3 > :not(:last-child)) {\n --tw-space-y-reverse: 0;\n margin-block-start: calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));\n margin-block-end: calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)));\n }\n\n .gap-x-1 {\n column-gap: var(--spacing);\n }\n\n .gap-x-2 {\n column-gap: calc(var(--spacing) * 2);\n }\n\n .gap-x-4 {\n column-gap: calc(var(--spacing) * 4);\n }\n\n .gap-x-6 {\n column-gap: calc(var(--spacing) * 6);\n }\n\n .gap-y-0\\.75 {\n row-gap: calc(var(--spacing) * .75);\n }\n\n .gap-y-1 {\n row-gap: var(--spacing);\n }\n\n .self-end {\n align-self: flex-end;\n }\n\n .truncate {\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n }\n\n .overflow-auto {\n overflow: auto;\n }\n\n .overflow-hidden {\n overflow: hidden;\n }\n\n .overflow-visible {\n overflow: visible;\n }\n\n .overflow-x-auto {\n overflow-x: auto;\n }\n\n .overflow-x-hidden {\n overflow-x: hidden;\n }\n\n .overflow-y-auto {\n overflow-y: auto;\n }\n\n .overflow-y-hidden {\n overflow-y: hidden;\n }\n\n .rounded {\n border-radius: .25rem;\n }\n\n .rounded-2xl {\n border-radius: var(--radius-2xl);\n }\n\n .rounded-full {\n border-radius: 3.40282e38px;\n }\n\n .rounded-lg {\n border-radius: var(--radius-lg);\n }\n\n .rounded-md {\n border-radius: var(--radius-md);\n }\n\n .rounded-none {\n border-radius: 0;\n }\n\n .rounded-sm {\n border-radius: var(--radius-sm);\n }\n\n .rounded-xl {\n border-radius: var(--radius-xl);\n }\n\n .rounded-t-lg {\n border-top-left-radius: var(--radius-lg);\n border-top-right-radius: var(--radius-lg);\n }\n\n .rounded-t-md {\n border-top-left-radius: var(--radius-md);\n border-top-right-radius: var(--radius-md);\n }\n\n .rounded-t-xl {\n border-top-left-radius: var(--radius-xl);\n border-top-right-radius: var(--radius-xl);\n }\n\n .rounded-l-xl {\n border-top-left-radius: var(--radius-xl);\n border-bottom-left-radius: var(--radius-xl);\n }\n\n .rounded-tl-xl {\n border-top-left-radius: var(--radius-xl);\n }\n\n .rounded-r-md {\n border-top-right-radius: var(--radius-md);\n border-bottom-right-radius: var(--radius-md);\n }\n\n .rounded-tr-xl {\n border-top-right-radius: var(--radius-xl);\n }\n\n .rounded-b-lg {\n border-bottom-right-radius: var(--radius-lg);\n border-bottom-left-radius: var(--radius-lg);\n }\n\n .rounded-b-md {\n border-bottom-right-radius: var(--radius-md);\n border-bottom-left-radius: var(--radius-md);\n }\n\n .rounded-b-xl {\n border-bottom-right-radius: var(--radius-xl);\n border-bottom-left-radius: var(--radius-xl);\n }\n\n .border {\n border-style: var(--tw-border-style);\n border-width: 1px;\n }\n\n .border-0 {\n border-style: var(--tw-border-style);\n border-width: 0;\n }\n\n .border-2 {\n border-style: var(--tw-border-style);\n border-width: 2px;\n }\n\n .border-x {\n border-inline-style: var(--tw-border-style);\n border-inline-width: 1px;\n }\n\n .border-t {\n border-top-style: var(--tw-border-style);\n border-top-width: 1px;\n }\n\n .border-t-0 {\n border-top-style: var(--tw-border-style);\n border-top-width: 0;\n }\n\n .border-t-4 {\n border-top-style: var(--tw-border-style);\n border-top-width: 4px;\n }\n\n .border-r {\n border-right-style: var(--tw-border-style);\n border-right-width: 1px;\n }\n\n .border-r-0 {\n border-right-style: var(--tw-border-style);\n border-right-width: 0;\n }\n\n .border-b {\n border-bottom-style: var(--tw-border-style);\n border-bottom-width: 1px;\n }\n\n .border-b-0 {\n border-bottom-style: var(--tw-border-style);\n border-bottom-width: 0;\n }\n\n .border-b-2 {\n border-bottom-style: var(--tw-border-style);\n border-bottom-width: 2px;\n }\n\n .border-l {\n border-left-style: var(--tw-border-style);\n border-left-width: 1px;\n }\n\n .border-l-0 {\n border-left-style: var(--tw-border-style);\n border-left-width: 0;\n }\n\n .border-l-4 {\n border-left-style: var(--tw-border-style);\n border-left-width: 4px;\n }\n\n .border-dashed {\n --tw-border-style: dashed;\n border-style: dashed;\n }\n\n .border-none {\n --tw-border-style: none;\n border-style: none;\n }\n\n .border-solid {\n --tw-border-style: solid;\n border-style: solid;\n }\n\n .border-\\(--axebow-border-gray\\) {\n border-color: var(--axebow-border-gray);\n }\n\n .border-\\(--axebow-gray\\) {\n border-color: var(--axebow-gray);\n }\n\n .border-\\(--axebow-light-gray\\) {\n border-color: var(--axebow-light-gray);\n }\n\n .border-\\(--axebow-premium-text\\) {\n border-color: var(--axebow-premium-text);\n }\n\n .border-\\(--axebow-primary\\) {\n border-color: var(--axebow-primary);\n }\n\n .border-\\(--axebow-secondary\\) {\n border-color: var(--axebow-secondary);\n }\n\n .border-\\(--axebow-table-border\\) {\n border-color: var(--axebow-table-border);\n }\n\n .border-\\(--axebow-table-header-border\\) {\n border-color: var(--axebow-table-header-border);\n }\n\n .border-\\(--axebow-tertiary\\) {\n border-color: var(--axebow-tertiary);\n }\n\n .border-\\[\\#344966\\] {\n border-color: #344966;\n }\n\n .border-\\[\\#DBDDE4\\] {\n border-color: #dbdde4;\n }\n\n .border-\\[var\\(--axebow-error\\)\\] {\n border-color: var(--axebow-error);\n }\n\n .border-\\[var\\(--axebow-gray\\)\\] {\n border-color: var(--axebow-gray);\n }\n\n .border-\\[var\\(--axebow-tertiary\\)\\] {\n border-color: var(--axebow-tertiary);\n }\n\n .border-blue-200 {\n border-color: var(--color-blue-200);\n }\n\n .border-gray-200 {\n border-color: var(--color-gray-200);\n }\n\n .border-gray-300 {\n border-color: var(--color-gray-300);\n }\n\n .border-gray-400 {\n border-color: var(--color-gray-400);\n }\n\n .border-gray-500 {\n border-color: var(--color-gray-500);\n }\n\n .border-green-200 {\n border-color: var(--color-green-200);\n }\n\n .border-red-200 {\n border-color: var(--color-red-200);\n }\n\n .border-transparent {\n border-color: #0000;\n }\n\n .border-white {\n border-color: var(--color-white);\n }\n\n .border-yellow-200 {\n border-color: var(--color-yellow-200);\n }\n\n .bg-\\(--axebow-anti-flash-white\\) {\n background-color: var(--axebow-anti-flash-white);\n }\n\n .bg-\\(--axebow-base\\) {\n background-color: var(--axebow-base);\n }\n\n .bg-\\(--axebow-error\\) {\n background-color: var(--axebow-error);\n }\n\n .bg-\\(--axebow-gray\\) {\n background-color: var(--axebow-gray);\n }\n\n .bg-\\(--axebow-light-gray\\), .bg-\\(--axebow-light-gray\\)\\/80 {\n background-color: var(--axebow-light-gray);\n }\n\n @supports (color: color-mix(in lab, red, red)) {\n .bg-\\(--axebow-light-gray\\)\\/80 {\n background-color: color-mix(in oklab, var(--axebow-light-gray) 80%, transparent);\n }\n }\n\n .bg-\\(--axebow-primary\\) {\n background-color: var(--axebow-primary);\n }\n\n .bg-\\(--axebow-primary-light\\) {\n background-color: var(--axebow-primary-light);\n }\n\n .bg-\\(--axebow-success\\) {\n background-color: var(--axebow-success);\n }\n\n .bg-\\(--axebow-tertiary\\), .bg-\\(--axebow-tertiary\\)\\/15 {\n background-color: var(--axebow-tertiary);\n }\n\n @supports (color: color-mix(in lab, red, red)) {\n .bg-\\(--axebow-tertiary\\)\\/15 {\n background-color: color-mix(in oklab, var(--axebow-tertiary) 15%, transparent);\n }\n }\n\n .bg-\\(--axebow-warning\\) {\n background-color: var(--axebow-warning);\n }\n\n .bg-\\(--axebow-white\\) {\n background-color: var(--axebow-white);\n }\n\n .bg-\\[\\#006BFF\\] {\n background-color: #006bff;\n }\n\n .bg-\\[\\#C7DCFA\\] {\n background-color: #c7dcfa;\n }\n\n .bg-\\[\\#F0F1F5\\] {\n background-color: #f0f1f5;\n }\n\n .bg-\\[var\\(--axebow-gray\\)\\] {\n background-color: var(--axebow-gray);\n }\n\n .bg-\\[var\\(--axebow-tertiary\\)\\] {\n background-color: var(--axebow-tertiary);\n }\n\n .bg-blue-50 {\n background-color: var(--color-blue-50);\n }\n\n .bg-gray-50 {\n background-color: var(--color-gray-50);\n }\n\n .bg-gray-50\\/50 {\n background-color: #f9fafb80;\n }\n\n @supports (color: color-mix(in lab, red, red)) {\n .bg-gray-50\\/50 {\n background-color: color-mix(in oklab, var(--color-gray-50) 50%, transparent);\n }\n }\n\n .bg-gray-100 {\n background-color: var(--color-gray-100);\n }\n\n .bg-gray-200 {\n background-color: var(--color-gray-200);\n }\n\n .bg-gray-300 {\n background-color: var(--color-gray-300);\n }\n\n .bg-green-50 {\n background-color: var(--color-green-50);\n }\n\n .bg-red-50 {\n background-color: var(--color-red-50);\n }\n\n .bg-sky-50 {\n background-color: var(--color-sky-50);\n }\n\n .bg-sky-100 {\n background-color: var(--color-sky-100);\n }\n\n .bg-transparent {\n background-color: #0000;\n }\n\n .bg-white {\n background-color: var(--color-white);\n }\n\n .bg-yellow-50 {\n background-color: var(--color-yellow-50);\n }\n\n .object-contain {\n object-fit: contain;\n }\n\n .p-0 {\n padding: 0;\n }\n\n .p-1 {\n padding: var(--spacing);\n }\n\n .p-2 {\n padding: calc(var(--spacing) * 2);\n }\n\n .p-3 {\n padding: calc(var(--spacing) * 3);\n }\n\n .p-3\\.25 {\n padding: calc(var(--spacing) * 3.25);\n }\n\n .p-4 {\n padding: calc(var(--spacing) * 4);\n }\n\n .p-5 {\n padding: calc(var(--spacing) * 5);\n }\n\n .p-6 {\n padding: calc(var(--spacing) * 6);\n }\n\n .px-0\\.5 {\n padding-inline: calc(var(--spacing) * .5);\n }\n\n .px-1 {\n padding-inline: var(--spacing);\n }\n\n .px-1\\.5 {\n padding-inline: calc(var(--spacing) * 1.5);\n }\n\n .px-2 {\n padding-inline: calc(var(--spacing) * 2);\n }\n\n .px-3 {\n padding-inline: calc(var(--spacing) * 3);\n }\n\n .px-3\\.5 {\n padding-inline: calc(var(--spacing) * 3.5);\n }\n\n .px-4 {\n padding-inline: calc(var(--spacing) * 4);\n }\n\n .px-5 {\n padding-inline: calc(var(--spacing) * 5);\n }\n\n .px-6 {\n padding-inline: calc(var(--spacing) * 6);\n }\n\n .py-0\\.5 {\n padding-block: calc(var(--spacing) * .5);\n }\n\n .py-1 {\n padding-block: var(--spacing);\n }\n\n .py-1\\.5 {\n padding-block: calc(var(--spacing) * 1.5);\n }\n\n .py-1\\.25 {\n padding-block: calc(var(--spacing) * 1.25);\n }\n\n .py-2 {\n padding-block: calc(var(--spacing) * 2);\n }\n\n .py-2\\.5 {\n padding-block: calc(var(--spacing) * 2.5);\n }\n\n .py-2\\.75 {\n padding-block: calc(var(--spacing) * 2.75);\n }\n\n .py-3 {\n padding-block: calc(var(--spacing) * 3);\n }\n\n .py-4 {\n padding-block: calc(var(--spacing) * 4);\n }\n\n .py-8 {\n padding-block: calc(var(--spacing) * 8);\n }\n\n .ps-4 {\n padding-inline-start: calc(var(--spacing) * 4);\n }\n\n .ps-8 {\n padding-inline-start: calc(var(--spacing) * 8);\n }\n\n .pe-4 {\n padding-inline-end: calc(var(--spacing) * 4);\n }\n\n .pt-0\\.5 {\n padding-top: calc(var(--spacing) * .5);\n }\n\n .pt-1 {\n padding-top: var(--spacing);\n }\n\n .pt-2 {\n padding-top: calc(var(--spacing) * 2);\n }\n\n .pt-3 {\n padding-top: calc(var(--spacing) * 3);\n }\n\n .pt-4 {\n padding-top: calc(var(--spacing) * 4);\n }\n\n .pt-6 {\n padding-top: calc(var(--spacing) * 6);\n }\n\n .pt-8 {\n padding-top: calc(var(--spacing) * 8);\n }\n\n .pt-px {\n padding-top: 1px;\n }\n\n .pr-1 {\n padding-right: var(--spacing);\n }\n\n .pr-2 {\n padding-right: calc(var(--spacing) * 2);\n }\n\n .pr-4 {\n padding-right: calc(var(--spacing) * 4);\n }\n\n .pr-4\\.5 {\n padding-right: calc(var(--spacing) * 4.5);\n }\n\n .pr-5 {\n padding-right: calc(var(--spacing) * 5);\n }\n\n .pb-0 {\n padding-bottom: 0;\n }\n\n .pb-1 {\n padding-bottom: var(--spacing);\n }\n\n .pb-2 {\n padding-bottom: calc(var(--spacing) * 2);\n }\n\n .pb-3 {\n padding-bottom: calc(var(--spacing) * 3);\n }\n\n .pb-3\\.5 {\n padding-bottom: calc(var(--spacing) * 3.5);\n }\n\n .pb-4 {\n padding-bottom: calc(var(--spacing) * 4);\n }\n\n .pb-6 {\n padding-bottom: calc(var(--spacing) * 6);\n }\n\n .pl-1 {\n padding-left: var(--spacing);\n }\n\n .pl-1\\.5 {\n padding-left: calc(var(--spacing) * 1.5);\n }\n\n .pl-2 {\n padding-left: calc(var(--spacing) * 2);\n }\n\n .pl-4 {\n padding-left: calc(var(--spacing) * 4);\n }\n\n .pl-5 {\n padding-left: calc(var(--spacing) * 5);\n }\n\n .pl-6 {\n padding-left: calc(var(--spacing) * 6);\n }\n\n .pl-11\\.75 {\n padding-left: calc(var(--spacing) * 11.75);\n }\n\n .pl-px {\n padding-left: 1px;\n }\n\n .text-center {\n text-align: center;\n }\n\n .text-left {\n text-align: left;\n }\n\n .text-right {\n text-align: right;\n }\n\n .text-start {\n text-align: start;\n }\n\n .align-middle {\n vertical-align: middle;\n }\n\n .font-\\[Material_Symbols_Outlined\\] {\n font-family: Material Symbols Outlined;\n }\n\n .font-\\[inherit\\] {\n font-family: inherit;\n }\n\n .text-base {\n font-size: var(--text-base);\n line-height: var(--tw-leading, var(--text-base--line-height));\n }\n\n .text-lg {\n font-size: var(--text-lg);\n line-height: var(--tw-leading, var(--text-lg--line-height));\n }\n\n .text-md {\n font-size: var(--text-md);\n line-height: var(--tw-leading, var(--text-md--line-height));\n }\n\n .text-sm {\n font-size: var(--text-sm);\n line-height: var(--tw-leading, var(--text-sm--line-height));\n }\n\n .text-xl {\n font-size: var(--text-xl);\n line-height: var(--tw-leading, var(--text-xl--line-height));\n }\n\n .text-xs {\n font-size: var(--text-xs);\n line-height: var(--tw-leading, var(--text-xs--line-height));\n }\n\n .text-\\[0\\.9375rem\\] {\n font-size: .9375rem;\n }\n\n .text-\\[18px\\] {\n font-size: 18px;\n }\n\n .leading-3\\.5 {\n --tw-leading: calc(var(--spacing) * 3.5);\n line-height: calc(var(--spacing) * 3.5);\n }\n\n .leading-4\\.25 {\n --tw-leading: calc(var(--spacing) * 4.25);\n line-height: calc(var(--spacing) * 4.25);\n }\n\n .leading-\\[1\\.125rem\\] {\n --tw-leading: 1.125rem;\n line-height: 1.125rem;\n }\n\n .leading-\\[1\\.0625rem\\] {\n --tw-leading: 1.0625rem;\n line-height: 1.0625rem;\n }\n\n .leading-\\[1\\.21875rem\\] {\n --tw-leading: 1.21875rem;\n line-height: 1.21875rem;\n }\n\n .leading-none {\n --tw-leading: 1;\n line-height: 1;\n }\n\n .leading-relaxed {\n --tw-leading: var(--leading-relaxed);\n line-height: var(--leading-relaxed);\n }\n\n .leading-snug {\n --tw-leading: var(--leading-snug);\n line-height: var(--leading-snug);\n }\n\n .leading-tight {\n --tw-leading: var(--leading-tight);\n line-height: var(--leading-tight);\n }\n\n .font-black {\n --tw-font-weight: var(--font-weight-black);\n font-weight: var(--font-weight-black);\n }\n\n .font-bold {\n --tw-font-weight: var(--font-weight-bold);\n font-weight: var(--font-weight-bold);\n }\n\n .font-medium {\n --tw-font-weight: var(--font-weight-medium);\n font-weight: var(--font-weight-medium);\n }\n\n .font-normal {\n --tw-font-weight: var(--font-weight-normal);\n font-weight: var(--font-weight-normal);\n }\n\n .font-semibold {\n --tw-font-weight: var(--font-weight-semibold);\n font-weight: var(--font-weight-semibold);\n }\n\n .tracking-wider {\n --tw-tracking: var(--tracking-wider);\n letter-spacing: var(--tracking-wider);\n }\n\n .wrap-break-word {\n overflow-wrap: break-word;\n }\n\n .break-all {\n word-break: break-all;\n }\n\n .text-ellipsis {\n text-overflow: ellipsis;\n }\n\n .whitespace-nowrap {\n white-space: nowrap;\n }\n\n .text-\\(--axebow-anti-flash-white\\) {\n color: var(--axebow-anti-flash-white);\n }\n\n .text-\\(--axebow-black\\) {\n color: var(--axebow-black);\n }\n\n .text-\\(--axebow-error\\) {\n color: var(--axebow-error);\n }\n\n .text-\\(--axebow-gray\\) {\n color: var(--axebow-gray);\n }\n\n .text-\\(--axebow-primary\\) {\n color: var(--axebow-primary);\n }\n\n .text-\\(--axebow-rich-black\\) {\n color: var(--axebow-rich-black);\n }\n\n .text-\\(--axebow-secondary\\) {\n color: var(--axebow-secondary);\n }\n\n .text-\\(--axebow-strong-gray\\) {\n color: var(--axebow-strong-gray);\n }\n\n .text-\\(--axebow-tertiary\\) {\n color: var(--axebow-tertiary);\n }\n\n .text-\\[\\#006BFF\\] {\n color: #006bff;\n }\n\n .text-\\[\\#78787A\\] {\n color: #78787a;\n }\n\n .text-\\[\\#344966\\] {\n color: #344966;\n }\n\n .text-\\[\\#E93A3A\\] {\n color: #e93a3a;\n }\n\n .text-\\[var\\(--axebow-error\\)\\] {\n color: var(--axebow-error);\n }\n\n .text-\\[var\\(--axebow-gray\\)\\] {\n color: var(--axebow-gray);\n }\n\n .text-black {\n color: var(--color-black);\n }\n\n .text-blue-600 {\n color: var(--color-blue-600);\n }\n\n .text-blue-800 {\n color: var(--color-blue-800);\n }\n\n .text-gray-300 {\n color: var(--color-gray-300);\n }\n\n .text-gray-400 {\n color: var(--color-gray-400);\n }\n\n .text-gray-500 {\n color: var(--color-gray-500);\n }\n\n .text-gray-600 {\n color: var(--color-gray-600);\n }\n\n .text-gray-700 {\n color: var(--color-gray-700);\n }\n\n .text-gray-900 {\n color: var(--color-gray-900);\n }\n\n .text-green-600 {\n color: var(--color-green-600);\n }\n\n .text-green-800 {\n color: var(--color-green-800);\n }\n\n .text-inherit {\n color: inherit;\n }\n\n .text-red-500 {\n color: var(--color-red-500);\n }\n\n .text-white {\n color: var(--color-white);\n }\n\n .text-yellow-600 {\n color: var(--color-yellow-600);\n }\n\n .text-yellow-800 {\n color: var(--color-yellow-800);\n }\n\n .capitalize {\n text-transform: capitalize;\n }\n\n .uppercase {\n text-transform: uppercase;\n }\n\n .italic {\n font-style: italic;\n }\n\n .no-underline {\n text-decoration-line: none;\n }\n\n .underline {\n text-decoration-line: underline;\n }\n\n .decoration-\\(--axebow-error\\) {\n -webkit-text-decoration-color: var(--axebow-error);\n -webkit-text-decoration-color: var(--axebow-error);\n text-decoration-color: var(--axebow-error);\n }\n\n .placeholder-gray-400::placeholder {\n color: var(--color-gray-400);\n }\n\n .opacity-0 {\n opacity: 0;\n }\n\n .opacity-40 {\n opacity: .4;\n }\n\n .opacity-50 {\n opacity: .5;\n }\n\n .opacity-60 {\n opacity: .6;\n }\n\n .opacity-70 {\n opacity: .7;\n }\n\n .opacity-100 {\n opacity: 1;\n }\n\n .shadow-\\[0_-8px_8px_-8px_rgba\\(13\\,24\\,33\\,0\\.15\\)\\] {\n --tw-shadow: 0 -8px 8px -8px var(--tw-shadow-color, #0d182126);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n\n .shadow-\\[0_2px_6px_rgba\\(0\\,0\\,0\\,0\\.2\\)\\] {\n --tw-shadow: 0 2px 6px var(--tw-shadow-color, #0003);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n\n .shadow-\\[0_4px_12px_rgba\\(0\\,0\\,0\\,0\\.1\\)\\] {\n --tw-shadow: 0 4px 12px var(--tw-shadow-color, #0000001a);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n\n .shadow-\\[0_6px_16px_rgba\\(13\\,24\\,33\\,0\\.18\\)\\] {\n --tw-shadow: 0 6px 16px var(--tw-shadow-color, #0d18212e);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n\n .shadow-\\[2px_2px_25px_0px_rgba\\(0\\,0\\,0\\,0\\.1\\)\\] {\n --tw-shadow: 2px 2px 25px 0px var(--tw-shadow-color, #0000001a);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n\n .shadow-lg {\n --tw-shadow: 0 10px 15px -3px var(--tw-shadow-color, #0000001a), 0 4px 6px -4px var(--tw-shadow-color, #0000001a);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n\n .shadow-md {\n --tw-shadow: 0 4px 6px -1px var(--tw-shadow-color, #0000001a), 0 2px 4px -2px var(--tw-shadow-color, #0000001a);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n\n .shadow-none {\n --tw-shadow: 0 0 #0000;\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n\n .shadow-sm {\n --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, #0000001a), 0 1px 2px -1px var(--tw-shadow-color, #0000001a);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n\n .axebow-shadow-hover {\n transition: box-shadow .2s ease-in-out;\n }\n\n .axebow-shadow-hover:hover {\n box-shadow: 0 4px 12px #0d182114;\n }\n\n .outline {\n outline-style: var(--tw-outline-style);\n outline-width: 1px;\n }\n\n .blur {\n --tw-blur: blur(8px);\n filter: var(--tw-blur, ) var(--tw-brightness, ) var(--tw-contrast, ) var(--tw-grayscale, ) var(--tw-hue-rotate, ) var(--tw-invert, ) var(--tw-saturate, ) var(--tw-sepia, ) var(--tw-drop-shadow, );\n }\n\n .grayscale {\n --tw-grayscale: grayscale(100%);\n filter: var(--tw-blur, ) var(--tw-brightness, ) var(--tw-contrast, ) var(--tw-grayscale, ) var(--tw-hue-rotate, ) var(--tw-invert, ) var(--tw-saturate, ) var(--tw-sepia, ) var(--tw-drop-shadow, );\n }\n\n .filter {\n filter: var(--tw-blur, ) var(--tw-brightness, ) var(--tw-contrast, ) var(--tw-grayscale, ) var(--tw-hue-rotate, ) var(--tw-invert, ) var(--tw-saturate, ) var(--tw-sepia, ) var(--tw-drop-shadow, );\n }\n\n .transition {\n transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to, opacity, box-shadow, transform, translate, scale, rotate, filter, -webkit-backdrop-filter, backdrop-filter, display, content-visibility, overlay, pointer-events;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n\n .transition-\\[filter\\] {\n transition-property: filter;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n\n .transition-all {\n transition-property: all;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n\n .transition-colors {\n transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n\n .transition-opacity {\n transition-property: opacity;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n\n .transition-shadow {\n transition-property: box-shadow;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n\n .transition-transform {\n transition-property: transform, translate, scale, rotate;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n\n .delay-100 {\n transition-delay: .1s;\n }\n\n .duration-120 {\n --tw-duration: .12s;\n transition-duration: .12s;\n }\n\n .duration-150 {\n --tw-duration: .15s;\n transition-duration: .15s;\n }\n\n .duration-200 {\n --tw-duration: .2s;\n transition-duration: .2s;\n }\n\n .duration-300 {\n --tw-duration: .3s;\n transition-duration: .3s;\n }\n\n .ease-in-out {\n --tw-ease: var(--ease-in-out);\n transition-timing-function: var(--ease-in-out);\n }\n\n .ease-out {\n --tw-ease: var(--ease-out);\n transition-timing-function: var(--ease-out);\n }\n\n .outline-none {\n --tw-outline-style: none;\n outline-style: none;\n }\n\n .select-none {\n -webkit-user-select: none;\n user-select: none;\n }\n\n .\\[font-variation-settings\\:\\'FILL\\'_0\\,\\'wght\\'_400\\,\\'GRAD\\'_0\\,\\'opsz\\'_24\\] {\n font-variation-settings: \"FILL\" 0,\"wght\" 400,\"GRAD\" 0,\"opsz\" 24;\n }\n\n .\\[font-variation-settings\\:\\'FILL\\'_1\\,\\'wght\\'_400\\,\\'GRAD\\'_0\\,\\'opsz\\'_24\\] {\n font-variation-settings: \"FILL\" 1,\"wght\" 400,\"GRAD\" 0,\"opsz\" 24;\n }\n\n @media (hover: hover) {\n .group-hover\\:translate-x-0:is(:where(.group):hover *) {\n --tw-translate-x: 0;\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n\n .group-hover\\:rotate-15:is(:where(.group):hover *) {\n rotate: 15deg;\n }\n\n .group-hover\\:font-semibold:is(:where(.group):hover *) {\n --tw-font-weight: var(--font-weight-semibold);\n font-weight: var(--font-weight-semibold);\n }\n\n .group-hover\\:text-\\(--axebow-primary\\):is(:where(.group):hover *) {\n color: var(--axebow-primary);\n }\n\n .group-hover\\:text-red-500:is(:where(.group):hover *) {\n color: var(--color-red-500);\n }\n\n .group-hover\\:opacity-100:is(:where(.group):hover *) {\n opacity: 1;\n }\n\n .group-hover\\:invert:is(:where(.group):hover *) {\n --tw-invert: invert(100%);\n filter: var(--tw-blur, ) var(--tw-brightness, ) var(--tw-contrast, ) var(--tw-grayscale, ) var(--tw-hue-rotate, ) var(--tw-invert, ) var(--tw-saturate, ) var(--tw-sepia, ) var(--tw-drop-shadow, );\n }\n }\n\n .last\\:border-b-0:last-child {\n border-bottom-style: var(--tw-border-style);\n border-bottom-width: 0;\n }\n\n .focus-within\\:border-\\(--axebow-tertiary\\):focus-within {\n border-color: var(--axebow-tertiary);\n }\n\n .focus-within\\:border-blue-500:focus-within {\n border-color: var(--color-blue-500);\n }\n\n .focus-within\\:ring-2:focus-within {\n --tw-ring-shadow: var(--tw-ring-inset, ) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n\n .focus-within\\:ring-blue-100:focus-within {\n --tw-ring-color: var(--color-blue-100);\n }\n\n @media (hover: hover) {\n .hover\\:scale-105:hover {\n --tw-scale-x: 105%;\n --tw-scale-y: 105%;\n --tw-scale-z: 105%;\n scale: var(--tw-scale-x) var(--tw-scale-y);\n }\n\n .hover\\:rounded-md:hover {\n border-radius: var(--radius-md);\n }\n\n .hover\\:border-2:hover {\n border-style: var(--tw-border-style);\n border-width: 2px;\n }\n\n .hover\\:border-solid:hover {\n --tw-border-style: solid;\n border-style: solid;\n }\n\n .hover\\:border-\\(--axebow-gray\\):hover {\n border-color: var(--axebow-gray);\n }\n\n .hover\\:border-\\(--axebow-primary\\):hover {\n border-color: var(--axebow-primary);\n }\n\n .hover\\:border-\\(--axebow-tertiary\\):hover, .hover\\:border-\\[var\\(--axebow-tertiary\\)\\]:hover {\n border-color: var(--axebow-tertiary);\n }\n\n .hover\\:border-red-300:hover {\n border-color: var(--color-red-300);\n }\n\n .hover\\:bg-\\(--axebow-anti-flash-white\\):hover {\n background-color: var(--axebow-anti-flash-white);\n }\n\n .hover\\:bg-\\(--axebow-base\\):hover {\n background-color: var(--axebow-base);\n }\n\n .hover\\:bg-\\(--axebow-gray\\):hover {\n background-color: var(--axebow-gray);\n }\n\n .hover\\:bg-\\(--axebow-light-gray\\):hover {\n background-color: var(--axebow-light-gray);\n }\n\n .hover\\:bg-\\(--axebow-primary\\):hover {\n background-color: var(--axebow-primary);\n }\n\n .hover\\:bg-\\[var\\(--axebow-anti-flash-white\\)\\]:hover {\n background-color: var(--axebow-anti-flash-white);\n }\n\n .hover\\:bg-gray-50:hover {\n background-color: var(--color-gray-50);\n }\n\n .hover\\:bg-gray-100:hover {\n background-color: var(--color-gray-100);\n }\n\n .hover\\:bg-gray-200:hover {\n background-color: var(--color-gray-200);\n }\n\n .hover\\:bg-red-50:hover {\n background-color: var(--color-red-50);\n }\n\n .hover\\:bg-white:hover {\n background-color: var(--color-white);\n }\n\n .hover\\:px-\\[1\\.375rem\\]:hover {\n padding-inline: 1.375rem;\n }\n\n .hover\\:text-\\(--axebow-gray\\):hover {\n color: var(--axebow-gray);\n }\n\n .hover\\:text-\\(--axebow-primary\\):hover {\n color: var(--axebow-primary);\n }\n\n .hover\\:text-\\(--axebow-tertiary\\):hover {\n color: var(--axebow-tertiary);\n }\n\n .hover\\:text-\\[var\\(--axebow-gray\\)\\]:hover {\n color: var(--axebow-gray);\n }\n\n .hover\\:text-black:hover {\n color: var(--color-black);\n }\n\n .hover\\:text-gray-700:hover {\n color: var(--color-gray-700);\n }\n\n .hover\\:text-red-600:hover {\n color: var(--color-red-600);\n }\n\n .hover\\:underline:hover {\n text-decoration-line: underline;\n }\n\n .hover\\:opacity-80:hover {\n opacity: .8;\n }\n\n .hover\\:opacity-100:hover {\n opacity: 1;\n }\n\n .hover\\:shadow-\\[0_2px_6px_rgba\\(13\\,24\\,33\\,0\\.14\\)\\]:hover {\n --tw-shadow: 0 2px 6px var(--tw-shadow-color, #0d182124);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n\n .hover\\:shadow-\\[0_4px_12px_0_rgba\\(13\\,24\\,33\\,0\\.08\\)\\]:hover {\n --tw-shadow: 0 4px 12px 0 var(--tw-shadow-color, #0d182114);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n\n .hover\\:shadow-lg:hover {\n --tw-shadow: 0 10px 15px -3px var(--tw-shadow-color, #0000001a), 0 4px 6px -4px var(--tw-shadow-color, #0000001a);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n }\n\n .focus\\:outline-2:focus {\n outline-style: var(--tw-outline-style);\n outline-width: 2px;\n }\n\n .focus\\:outline-offset-1:focus {\n outline-offset: 1px;\n }\n\n .focus\\:outline-blue-500:focus {\n outline-color: var(--color-blue-500);\n }\n\n .focus\\:outline-none:focus {\n --tw-outline-style: none;\n outline-style: none;\n }\n\n .focus-visible\\:ring-2:focus-visible {\n --tw-ring-shadow: var(--tw-ring-inset, ) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n\n .focus-visible\\:ring-\\[\\#006BFF\\]:focus-visible {\n --tw-ring-color: #006bff;\n }\n\n .focus-visible\\:outline-2:focus-visible {\n outline-style: var(--tw-outline-style);\n outline-width: 2px;\n }\n\n .focus-visible\\:outline-\\(--axebow-tertiary\\):focus-visible {\n outline-color: var(--axebow-tertiary);\n }\n\n .active\\:cursor-grabbing:active {\n cursor: grabbing;\n }\n\n .disabled\\:pointer-events-none:disabled {\n pointer-events: none;\n }\n\n .disabled\\:cursor-not-allowed:disabled {\n cursor: not-allowed;\n }\n\n .disabled\\:opacity-50:disabled {\n opacity: .5;\n }\n\n @media (min-width: 48rem) {\n .md\\:gap-8 {\n gap: calc(var(--spacing) * 8);\n }\n }\n\n @media (min-width: 64rem) {\n .lg\\:sticky {\n position: sticky;\n }\n\n .lg\\:block {\n display: block;\n }\n\n .lg\\:flex {\n display: flex;\n }\n\n .lg\\:hidden {\n display: none;\n }\n\n .lg\\:inline {\n display: inline;\n }\n\n .lg\\:min-h-\\(--card-height\\) {\n min-height: var(--card-height);\n }\n\n .lg\\:min-h-\\[calc\\(100vh-6\\.25rem\\)\\] {\n min-height: calc(100vh - 6.25rem);\n }\n\n .lg\\:w-\\(--card-width\\) {\n width: var(--card-width);\n }\n\n .lg\\:cursor-default {\n cursor: default;\n }\n\n .lg\\:rounded-xl {\n border-radius: var(--radius-xl);\n }\n\n .lg\\:border {\n border-style: var(--tw-border-style);\n border-width: 1px;\n }\n\n .lg\\:text-base {\n font-size: var(--text-base);\n line-height: var(--tw-leading, var(--text-base--line-height));\n }\n\n .lg\\:text-lg {\n font-size: var(--text-lg);\n line-height: var(--tw-leading, var(--text-lg--line-height));\n }\n\n .lg\\:shadow {\n --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, #0000001a), 0 1px 2px -1px var(--tw-shadow-color, #0000001a);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n }\n}\n\n:host {\n font-family: var(--font-sans);\n font-size: var(--text-base);\n line-height: var(--text-base--line-height);\n --font-sans: \"Open Sans\", sans-serif;\n --text-xs: .625rem;\n --text-xs--line-height: .875rem;\n --text-sm: .75rem;\n --text-sm--line-height: 1rem;\n --text-base: .875rem;\n --text-base--line-height: 1.25rem;\n --text-md: 1rem;\n --text-md--line-height: 1.5rem;\n --text-lg: 1.125rem;\n --text-lg--line-height: 1.75rem;\n --text-xl: 1.25rem;\n --text-xl--line-height: 1.75rem;\n --text-2xl: 1.5rem;\n --text-2xl--line-height: 2rem;\n --text-3xl: 1.875rem;\n --text-3xl--line-height: 2.25rem;\n --text-4xl: 2.25rem;\n --text-4xl--line-height: 2.5rem;\n --text-5xl: 3rem;\n --text-5xl--line-height: 1;\n --text-6xl: 3.75rem;\n --text-6xl--line-height: 1;\n --text-7xl: 4.5rem;\n --text-7xl--line-height: 1;\n --text-8xl: 4.625rem;\n --text-8xl--line-height: 1;\n --text-9xl: 6.125rem;\n --text-9xl--line-height: 1;\n}\n\n:root {\n --sl-font-sans: \"Open Sans\", sans-serif;\n --sl-font-size-2x-small: var(--text-xs);\n --sl-font-size-x-small: var(--text-xs);\n --sl-font-size-small: var(--text-sm);\n --sl-font-size-medium: var(--text-base);\n --sl-font-size-large: var(--text-md);\n --sl-font-size-x-large: var(--text-lg);\n --sl-font-size-2x-large: var(--text-xl);\n --sl-font-size-3x-large: var(--text-3xl);\n --sl-font-size-4x-large: var(--text-5xl);\n --sl-input-font-size-small: var(--text-sm);\n --sl-input-font-size-medium: var(--text-base);\n --sl-input-font-size-large: var(--text-md);\n --sl-button-font-size-small: var(--text-sm);\n --sl-button-font-size-medium: var(--text-base);\n --sl-button-font-size-large: var(--text-md);\n --sl-tooltip-font-size: var(--text-base);\n}\n\nbutton, input, select, textarea {\n font-family: inherit;\n font-size: inherit;\n}\n\ninput, select, textarea, sl-menu-item::part(label), sl-option::part(label) {\n font-size: var(--text-base);\n}\n\n.axebow-blue-button::part(base) {\n background-color: var(--axebow-tertiary);\n}\n\n.info-container-page {\n flex-wrap: wrap;\n gap: 2rem;\n display: flex;\n}\n\nsl-divider {\n background: var(--axebow-light-gray);\n height: 1px;\n margin-top: .5rem;\n margin-bottom: .5rem;\n}\n\n.axebow-shadow {\n box-shadow: 2px 2px 25px #0000001a;\n}\n\n@property --tw-translate-x {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n\n@property --tw-translate-y {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n\n@property --tw-translate-z {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n\n@property --tw-rotate-x {\n syntax: \"*\";\n inherits: false\n}\n\n@property --tw-rotate-y {\n syntax: \"*\";\n inherits: false\n}\n\n@property --tw-rotate-z {\n syntax: \"*\";\n inherits: false\n}\n\n@property --tw-skew-x {\n syntax: \"*\";\n inherits: false\n}\n\n@property --tw-skew-y {\n syntax: \"*\";\n inherits: false\n}\n\n@property --tw-space-y-reverse {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n\n@property --tw-border-style {\n syntax: \"*\";\n inherits: false;\n initial-value: solid;\n}\n\n@property --tw-leading {\n syntax: \"*\";\n inherits: false\n}\n\n@property --tw-font-weight {\n syntax: \"*\";\n inherits: false\n}\n\n@property --tw-tracking {\n syntax: \"*\";\n inherits: false\n}\n\n@property --tw-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n\n@property --tw-shadow-color {\n syntax: \"*\";\n inherits: false\n}\n\n@property --tw-shadow-alpha {\n syntax: \"<percentage>\";\n inherits: false;\n initial-value: 100%;\n}\n\n@property --tw-inset-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n\n@property --tw-inset-shadow-color {\n syntax: \"*\";\n inherits: false\n}\n\n@property --tw-inset-shadow-alpha {\n syntax: \"<percentage>\";\n inherits: false;\n initial-value: 100%;\n}\n\n@property --tw-ring-color {\n syntax: \"*\";\n inherits: false\n}\n\n@property --tw-ring-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n\n@property --tw-inset-ring-color {\n syntax: \"*\";\n inherits: false\n}\n\n@property --tw-inset-ring-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n\n@property --tw-ring-inset {\n syntax: \"*\";\n inherits: false\n}\n\n@property --tw-ring-offset-width {\n syntax: \"<length>\";\n inherits: false;\n initial-value: 0;\n}\n\n@property --tw-ring-offset-color {\n syntax: \"*\";\n inherits: false;\n initial-value: #fff;\n}\n\n@property --tw-ring-offset-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n\n@property --tw-outline-style {\n syntax: \"*\";\n inherits: false;\n initial-value: solid;\n}\n\n@property --tw-blur {\n syntax: \"*\";\n inherits: false\n}\n\n@property --tw-brightness {\n syntax: \"*\";\n inherits: false\n}\n\n@property --tw-contrast {\n syntax: \"*\";\n inherits: false\n}\n\n@property --tw-grayscale {\n syntax: \"*\";\n inherits: false\n}\n\n@property --tw-hue-rotate {\n syntax: \"*\";\n inherits: false\n}\n\n@property --tw-invert {\n syntax: \"*\";\n inherits: false\n}\n\n@property --tw-opacity {\n syntax: \"*\";\n inherits: false\n}\n\n@property --tw-saturate {\n syntax: \"*\";\n inherits: false\n}\n\n@property --tw-sepia {\n syntax: \"*\";\n inherits: false\n}\n\n@property --tw-drop-shadow {\n syntax: \"*\";\n inherits: false\n}\n\n@property --tw-drop-shadow-color {\n syntax: \"*\";\n inherits: false\n}\n\n@property --tw-drop-shadow-alpha {\n syntax: \"<percentage>\";\n inherits: false;\n initial-value: 100%;\n}\n\n@property --tw-drop-shadow-size {\n syntax: \"*\";\n inherits: false\n}\n\n@property --tw-duration {\n syntax: \"*\";\n inherits: false\n}\n\n@property --tw-ease {\n syntax: \"*\";\n inherits: false\n}\n\n@property --tw-scale-x {\n syntax: \"*\";\n inherits: false;\n initial-value: 1;\n}\n\n@property --tw-scale-y {\n syntax: \"*\";\n inherits: false;\n initial-value: 1;\n}\n\n@property --tw-scale-z {\n syntax: \"*\";\n inherits: false;\n initial-value: 1;\n}\n";
129
+ var tailwind_default = "/*! tailwindcss v4.3.2 | MIT License | https://tailwindcss.com */\n@layer properties {\n @supports (((-webkit-hyphens: none)) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color: rgb(from red r g b)))) {\n *, :before, :after, ::backdrop {\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-translate-z: 0;\n --tw-rotate-x: initial;\n --tw-rotate-y: initial;\n --tw-rotate-z: initial;\n --tw-skew-x: initial;\n --tw-skew-y: initial;\n --tw-space-y-reverse: 0;\n --tw-border-style: solid;\n --tw-leading: initial;\n --tw-font-weight: initial;\n --tw-tracking: initial;\n --tw-shadow: 0 0 #0000;\n --tw-shadow-color: initial;\n --tw-shadow-alpha: 100%;\n --tw-inset-shadow: 0 0 #0000;\n --tw-inset-shadow-color: initial;\n --tw-inset-shadow-alpha: 100%;\n --tw-ring-color: initial;\n --tw-ring-shadow: 0 0 #0000;\n --tw-inset-ring-color: initial;\n --tw-inset-ring-shadow: 0 0 #0000;\n --tw-ring-inset: initial;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-outline-style: solid;\n --tw-blur: initial;\n --tw-brightness: initial;\n --tw-contrast: initial;\n --tw-grayscale: initial;\n --tw-hue-rotate: initial;\n --tw-invert: initial;\n --tw-opacity: initial;\n --tw-saturate: initial;\n --tw-sepia: initial;\n --tw-drop-shadow: initial;\n --tw-drop-shadow-color: initial;\n --tw-drop-shadow-alpha: 100%;\n --tw-drop-shadow-size: initial;\n --tw-duration: initial;\n --tw-ease: initial;\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n --tw-scale-z: 1;\n }\n }\n}\n\n@layer theme {\n :root, :host {\n --font-sans: \"Open Sans\", sans-serif;\n --font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\",\n \"Courier New\", monospace;\n --color-red-50: oklch(97.1% .013 17.38);\n --color-red-100: oklch(93.6% .032 17.717);\n --color-red-200: oklch(88.5% .062 18.334);\n --color-red-300: oklch(80.8% .114 19.571);\n --color-red-500: oklch(63.7% .237 25.331);\n --color-red-600: oklch(57.7% .245 27.325);\n --color-red-800: oklch(44.4% .177 26.899);\n --color-yellow-50: oklch(98.7% .026 102.212);\n --color-yellow-200: oklch(94.5% .129 101.54);\n --color-yellow-600: oklch(68.1% .162 75.834);\n --color-yellow-800: oklch(47.6% .114 61.907);\n --color-green-50: oklch(98.2% .018 155.826);\n --color-green-200: oklch(92.5% .084 155.995);\n --color-green-600: oklch(62.7% .194 149.214);\n --color-green-800: oklch(44.8% .119 151.328);\n --color-sky-50: oklch(97.7% .013 236.62);\n --color-sky-100: oklch(95.1% .026 236.824);\n --color-blue-50: oklch(97% .014 254.604);\n --color-blue-100: oklch(93.2% .032 255.585);\n --color-blue-200: oklch(88.2% .059 254.128);\n --color-blue-500: oklch(62.3% .214 259.815);\n --color-blue-600: oklch(54.6% .245 262.881);\n --color-blue-800: oklch(42.4% .199 265.638);\n --color-gray-50: oklch(98.5% .002 247.839);\n --color-gray-100: oklch(96.7% .003 264.542);\n --color-gray-200: oklch(92.8% .006 264.531);\n --color-gray-300: oklch(87.2% .01 258.338);\n --color-gray-400: oklch(70.7% .022 261.325);\n --color-gray-500: oklch(55.1% .027 264.364);\n --color-gray-600: oklch(44.6% .03 256.802);\n --color-gray-700: oklch(37.3% .034 259.733);\n --color-gray-900: oklch(21% .034 264.665);\n --color-black: #000;\n --color-white: #fff;\n --spacing: .25rem;\n --text-xs: .625rem;\n --text-xs--line-height: .875rem;\n --text-sm: .75rem;\n --text-sm--line-height: 1rem;\n --text-base: .875rem;\n --text-base--line-height: 1.25rem;\n --text-lg: 1.125rem;\n --text-lg--line-height: 1.75rem;\n --text-xl: 1.25rem;\n --text-xl--line-height: 1.75rem;\n --text-3xl: 1.875rem;\n --text-5xl: 3rem;\n --font-weight-light: 300;\n --font-weight-normal: 400;\n --font-weight-medium: 500;\n --font-weight-semibold: 600;\n --font-weight-bold: 700;\n --font-weight-black: 900;\n --tracking-wider: .05em;\n --leading-tight: 1.25;\n --leading-snug: 1.375;\n --leading-relaxed: 1.625;\n --radius-sm: .25rem;\n --radius-md: .375rem;\n --radius-lg: .5rem;\n --radius-xl: .75rem;\n --radius-2xl: 1rem;\n --ease-out: cubic-bezier(0, 0, .2, 1);\n --ease-in-out: cubic-bezier(.4, 0, .2, 1);\n --default-transition-duration: .15s;\n --default-transition-timing-function: cubic-bezier(.4, 0, .2, 1);\n --default-font-family: var(--font-sans);\n --default-mono-font-family: var(--font-mono);\n --text-md: 1rem;\n --text-md--line-height: 1.5rem;\n --spacing-30: 7.5rem;\n --spacing-38: 9.5rem;\n --spacing-43: 10.75rem;\n --spacing-50: 12.5rem;\n --spacing-75: 18.75rem;\n --spacing-117: 29.25rem;\n --spacing-120: 30rem;\n }\n}\n\n@layer base {\n *, :after, :before, ::backdrop {\n box-sizing: border-box;\n border: 0 solid;\n margin: 0;\n padding: 0;\n }\n\n ::file-selector-button {\n box-sizing: border-box;\n border: 0 solid;\n margin: 0;\n padding: 0;\n }\n\n html, :host {\n -webkit-text-size-adjust: 100%;\n tab-size: 4;\n line-height: 1.5;\n font-family: var(--default-font-family, ui-sans-serif, system-ui, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\");\n font-feature-settings: var(--default-font-feature-settings, normal);\n font-variation-settings: var(--default-font-variation-settings, normal);\n -webkit-tap-highlight-color: transparent;\n }\n\n hr {\n height: 0;\n color: inherit;\n border-top-width: 1px;\n }\n\n abbr:where([title]) {\n -webkit-text-decoration: underline dotted;\n text-decoration: underline dotted;\n }\n\n h1, h2, h3, h4, h5, h6 {\n font-size: inherit;\n font-weight: inherit;\n }\n\n a {\n color: inherit;\n -webkit-text-decoration: inherit;\n -webkit-text-decoration: inherit;\n -webkit-text-decoration: inherit;\n text-decoration: inherit;\n }\n\n b, strong {\n font-weight: bolder;\n }\n\n code, kbd, samp, pre {\n font-family: var(--default-mono-font-family, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace);\n font-feature-settings: var(--default-mono-font-feature-settings, normal);\n font-variation-settings: var(--default-mono-font-variation-settings, normal);\n font-size: 1em;\n }\n\n small {\n font-size: 80%;\n }\n\n sub, sup {\n vertical-align: baseline;\n font-size: 75%;\n line-height: 0;\n position: relative;\n }\n\n sub {\n bottom: -.25em;\n }\n\n sup {\n top: -.5em;\n }\n\n table {\n text-indent: 0;\n border-color: inherit;\n border-collapse: collapse;\n }\n\n :-moz-focusring {\n outline: auto;\n }\n\n progress {\n vertical-align: baseline;\n }\n\n summary {\n display: list-item;\n }\n\n ol, ul, menu {\n list-style: none;\n }\n\n img, svg, video, canvas, audio, iframe, embed, object {\n vertical-align: middle;\n display: block;\n }\n\n img, video {\n max-width: 100%;\n height: auto;\n }\n\n button, input, select, optgroup, textarea {\n font: inherit;\n font-feature-settings: inherit;\n font-variation-settings: inherit;\n letter-spacing: inherit;\n color: inherit;\n opacity: 1;\n background-color: #0000;\n border-radius: 0;\n }\n\n ::file-selector-button {\n font: inherit;\n font-feature-settings: inherit;\n font-variation-settings: inherit;\n letter-spacing: inherit;\n color: inherit;\n opacity: 1;\n background-color: #0000;\n border-radius: 0;\n }\n\n :where(select:is([multiple], [size])) optgroup {\n font-weight: bolder;\n }\n\n :where(select:is([multiple], [size])) optgroup option {\n padding-inline-start: 20px;\n }\n\n ::file-selector-button {\n margin-inline-end: 4px;\n }\n\n ::placeholder {\n opacity: 1;\n }\n\n @supports (not ((-webkit-appearance: -apple-pay-button))) or (contain-intrinsic-size: 1px) {\n ::placeholder {\n color: currentColor;\n }\n\n @supports (color: color-mix(in lab, red, red)) {\n ::placeholder {\n color: color-mix(in oklab, currentcolor 50%, transparent);\n }\n }\n }\n\n textarea {\n resize: vertical;\n }\n\n ::-webkit-search-decoration {\n -webkit-appearance: none;\n }\n\n ::-webkit-date-and-time-value {\n min-height: 1lh;\n text-align: inherit;\n }\n\n ::-webkit-datetime-edit {\n display: inline-flex;\n }\n\n ::-webkit-datetime-edit-fields-wrapper {\n padding: 0;\n }\n\n ::-webkit-datetime-edit {\n padding-block: 0;\n }\n\n ::-webkit-datetime-edit-year-field {\n padding-block: 0;\n }\n\n ::-webkit-datetime-edit-month-field {\n padding-block: 0;\n }\n\n ::-webkit-datetime-edit-day-field {\n padding-block: 0;\n }\n\n ::-webkit-datetime-edit-hour-field {\n padding-block: 0;\n }\n\n ::-webkit-datetime-edit-minute-field {\n padding-block: 0;\n }\n\n ::-webkit-datetime-edit-second-field {\n padding-block: 0;\n }\n\n ::-webkit-datetime-edit-millisecond-field {\n padding-block: 0;\n }\n\n ::-webkit-datetime-edit-meridiem-field {\n padding-block: 0;\n }\n\n ::-webkit-calendar-picker-indicator {\n line-height: 1;\n }\n\n :-moz-ui-invalid {\n box-shadow: none;\n }\n\n button, input:where([type=\"button\"], [type=\"reset\"], [type=\"submit\"]) {\n appearance: button;\n }\n\n ::file-selector-button {\n appearance: button;\n }\n\n ::-webkit-inner-spin-button {\n height: auto;\n }\n\n ::-webkit-outer-spin-button {\n height: auto;\n }\n\n [hidden]:where(:not([hidden=\"until-found\"])) {\n display: none !important;\n }\n}\n\n@layer components;\n\n@layer utilities {\n .pointer-events-auto {\n pointer-events: auto;\n }\n\n .pointer-events-none {\n pointer-events: none;\n }\n\n .visible {\n visibility: visible;\n }\n\n .absolute {\n position: absolute;\n }\n\n .fixed {\n position: fixed;\n }\n\n .relative {\n position: relative;\n }\n\n .static {\n position: static;\n }\n\n .top-0 {\n top: 0;\n }\n\n .top-1 {\n top: var(--spacing);\n }\n\n .top-1\\/2 {\n top: 50%;\n }\n\n .top-3 {\n top: calc(var(--spacing) * 3);\n }\n\n .top-25 {\n top: calc(var(--spacing) * 25);\n }\n\n .top-\\[-7px\\] {\n top: -7px;\n }\n\n .top-full {\n top: 100%;\n }\n\n .right-0 {\n right: 0;\n }\n\n .right-0\\.5 {\n right: calc(var(--spacing) * .5);\n }\n\n .right-1 {\n right: var(--spacing);\n }\n\n .right-1\\.5 {\n right: calc(var(--spacing) * 1.5);\n }\n\n .right-3 {\n right: calc(var(--spacing) * 3);\n }\n\n .right-\\[calc\\(100\\%\\+10px\\)\\] {\n right: calc(100% + 10px);\n }\n\n .bottom-0 {\n bottom: 0;\n }\n\n .bottom-0\\.5 {\n bottom: calc(var(--spacing) * .5);\n }\n\n .bottom-full {\n bottom: 100%;\n }\n\n .left-0 {\n left: 0;\n }\n\n .left-1\\/2 {\n left: 50%;\n }\n\n .left-\\[-7px\\] {\n left: -7px;\n }\n\n .left-\\[calc\\(100\\%\\+10px\\)\\] {\n left: calc(100% + 10px);\n }\n\n .left-full {\n left: 100%;\n }\n\n .z-5 {\n z-index: 5;\n }\n\n .z-10 {\n z-index: 10;\n }\n\n .z-50 {\n z-index: 50;\n }\n\n .z-2000 {\n z-index: 2000;\n }\n\n .z-2001 {\n z-index: 2001;\n }\n\n .z-9999 {\n z-index: 9999;\n }\n\n .row-1 {\n grid-row: 1;\n }\n\n .container {\n width: 100%;\n }\n\n @media (min-width: 40rem) {\n .container {\n max-width: 40rem;\n }\n }\n\n @media (min-width: 48rem) {\n .container {\n max-width: 48rem;\n }\n }\n\n @media (min-width: 64rem) {\n .container {\n max-width: 64rem;\n }\n }\n\n @media (min-width: 80rem) {\n .container {\n max-width: 80rem;\n }\n }\n\n @media (min-width: 96rem) {\n .container {\n max-width: 96rem;\n }\n }\n\n .m-0 {\n margin: 0;\n }\n\n .mx-2 {\n margin-inline: calc(var(--spacing) * 2);\n }\n\n .mx-6 {\n margin-inline: calc(var(--spacing) * 6);\n }\n\n .mx-12 {\n margin-inline: calc(var(--spacing) * 12);\n }\n\n .mx-auto {\n margin-inline: auto;\n }\n\n .my-0\\.5 {\n margin-block: calc(var(--spacing) * .5);\n }\n\n .my-1\\.5 {\n margin-block: calc(var(--spacing) * 1.5);\n }\n\n .my-2 {\n margin-block: calc(var(--spacing) * 2);\n }\n\n .my-4 {\n margin-block: calc(var(--spacing) * 4);\n }\n\n .ms-auto {\n margin-inline-start: auto;\n }\n\n .mt-0 {\n margin-top: 0;\n }\n\n .mt-1 {\n margin-top: var(--spacing);\n }\n\n .mt-1\\.5 {\n margin-top: calc(var(--spacing) * 1.5);\n }\n\n .mt-1\\.75 {\n margin-top: calc(var(--spacing) * 1.75);\n }\n\n .mt-2 {\n margin-top: calc(var(--spacing) * 2);\n }\n\n .mt-2\\.25 {\n margin-top: calc(var(--spacing) * 2.25);\n }\n\n .mt-3 {\n margin-top: calc(var(--spacing) * 3);\n }\n\n .mt-4 {\n margin-top: calc(var(--spacing) * 4);\n }\n\n .mt-4\\.5 {\n margin-top: calc(var(--spacing) * 4.5);\n }\n\n .mt-5 {\n margin-top: calc(var(--spacing) * 5);\n }\n\n .mt-6 {\n margin-top: calc(var(--spacing) * 6);\n }\n\n .mt-6\\.75 {\n margin-top: calc(var(--spacing) * 6.75);\n }\n\n .mt-8 {\n margin-top: calc(var(--spacing) * 8);\n }\n\n .mr-0\\.5 {\n margin-right: calc(var(--spacing) * .5);\n }\n\n .mr-1 {\n margin-right: var(--spacing);\n }\n\n .mr-2 {\n margin-right: calc(var(--spacing) * 2);\n }\n\n .mr-4 {\n margin-right: calc(var(--spacing) * 4);\n }\n\n .mb-1 {\n margin-bottom: var(--spacing);\n }\n\n .mb-1\\.5 {\n margin-bottom: calc(var(--spacing) * 1.5);\n }\n\n .mb-2 {\n margin-bottom: calc(var(--spacing) * 2);\n }\n\n .mb-3 {\n margin-bottom: calc(var(--spacing) * 3);\n }\n\n .mb-4 {\n margin-bottom: calc(var(--spacing) * 4);\n }\n\n .mb-6 {\n margin-bottom: calc(var(--spacing) * 6);\n }\n\n .mb-6\\.5 {\n margin-bottom: calc(var(--spacing) * 6.5);\n }\n\n .mb-8 {\n margin-bottom: calc(var(--spacing) * 8);\n }\n\n .ml-1 {\n margin-left: var(--spacing);\n }\n\n .ml-2 {\n margin-left: calc(var(--spacing) * 2);\n }\n\n .ml-4 {\n margin-left: calc(var(--spacing) * 4);\n }\n\n .ml-12 {\n margin-left: calc(var(--spacing) * 12);\n }\n\n .ml-auto {\n margin-left: auto;\n }\n\n .box-border {\n box-sizing: border-box;\n }\n\n .box-content {\n box-sizing: content-box;\n }\n\n .line-clamp-1 {\n -webkit-line-clamp: 1;\n -webkit-box-orient: vertical;\n display: -webkit-box;\n overflow: hidden;\n }\n\n .line-clamp-2 {\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n display: -webkit-box;\n overflow: hidden;\n }\n\n .line-clamp-11 {\n -webkit-line-clamp: 11;\n -webkit-box-orient: vertical;\n display: -webkit-box;\n overflow: hidden;\n }\n\n .\\!hidden {\n display: none !important;\n }\n\n .block {\n display: block;\n }\n\n .contents {\n display: contents;\n }\n\n .flex {\n display: flex;\n }\n\n .grid {\n display: grid;\n }\n\n .hidden {\n display: none;\n }\n\n .inline {\n display: inline;\n }\n\n .inline-block {\n display: inline-block;\n }\n\n .inline-flex {\n display: inline-flex;\n }\n\n .table {\n display: table;\n }\n\n .aspect-square {\n aspect-ratio: 1;\n }\n\n .h-2 {\n height: calc(var(--spacing) * 2);\n }\n\n .h-2\\.25 {\n height: calc(var(--spacing) * 2.25);\n }\n\n .h-2\\.75 {\n height: calc(var(--spacing) * 2.75);\n }\n\n .h-3 {\n height: calc(var(--spacing) * 3);\n }\n\n .h-3\\.5 {\n height: calc(var(--spacing) * 3.5);\n }\n\n .h-4 {\n height: calc(var(--spacing) * 4);\n }\n\n .h-4\\.5 {\n height: calc(var(--spacing) * 4.5);\n }\n\n .h-4\\.25 {\n height: calc(var(--spacing) * 4.25);\n }\n\n .h-4\\.75 {\n height: calc(var(--spacing) * 4.75);\n }\n\n .h-5 {\n height: calc(var(--spacing) * 5);\n }\n\n .h-5\\.5 {\n height: calc(var(--spacing) * 5.5);\n }\n\n .h-5\\.25 {\n height: calc(var(--spacing) * 5.25);\n }\n\n .h-6 {\n height: calc(var(--spacing) * 6);\n }\n\n .h-7 {\n height: calc(var(--spacing) * 7);\n }\n\n .h-7\\.5 {\n height: calc(var(--spacing) * 7.5);\n }\n\n .h-7\\.25 {\n height: calc(var(--spacing) * 7.25);\n }\n\n .h-8 {\n height: calc(var(--spacing) * 8);\n }\n\n .h-8\\.5 {\n height: calc(var(--spacing) * 8.5);\n }\n\n .h-8\\.75 {\n height: calc(var(--spacing) * 8.75);\n }\n\n .h-9 {\n height: calc(var(--spacing) * 9);\n }\n\n .h-9\\.5 {\n height: calc(var(--spacing) * 9.5);\n }\n\n .h-9\\.75 {\n height: calc(var(--spacing) * 9.75);\n }\n\n .h-10 {\n height: calc(var(--spacing) * 10);\n }\n\n .h-10\\.5 {\n height: calc(var(--spacing) * 10.5);\n }\n\n .h-10\\.25 {\n height: calc(var(--spacing) * 10.25);\n }\n\n .h-11 {\n height: calc(var(--spacing) * 11);\n }\n\n .h-11\\.5 {\n height: calc(var(--spacing) * 11.5);\n }\n\n .h-11\\.25 {\n height: calc(var(--spacing) * 11.25);\n }\n\n .h-12 {\n height: calc(var(--spacing) * 12);\n }\n\n .h-12\\.5 {\n height: calc(var(--spacing) * 12.5);\n }\n\n .h-12\\.25 {\n height: calc(var(--spacing) * 12.25);\n }\n\n .h-12\\.75 {\n height: calc(var(--spacing) * 12.75);\n }\n\n .h-14 {\n height: calc(var(--spacing) * 14);\n }\n\n .h-14\\.25 {\n height: calc(var(--spacing) * 14.25);\n }\n\n .h-16 {\n height: calc(var(--spacing) * 16);\n }\n\n .h-17\\.75 {\n height: calc(var(--spacing) * 17.75);\n }\n\n .h-19\\.75 {\n height: calc(var(--spacing) * 19.75);\n }\n\n .h-20 {\n height: calc(var(--spacing) * 20);\n }\n\n .h-20\\.75 {\n height: calc(var(--spacing) * 20.75);\n }\n\n .h-21\\.25 {\n height: calc(var(--spacing) * 21.25);\n }\n\n .h-22\\.75 {\n height: calc(var(--spacing) * 22.75);\n }\n\n .h-24\\.75 {\n height: calc(var(--spacing) * 24.75);\n }\n\n .h-32\\.75 {\n height: calc(var(--spacing) * 32.75);\n }\n\n .h-49\\.5 {\n height: calc(var(--spacing) * 49.5);\n }\n\n .h-52\\.75 {\n height: calc(var(--spacing) * 52.75);\n }\n\n .h-57\\.5 {\n height: calc(var(--spacing) * 57.5);\n }\n\n .h-77\\.25 {\n height: calc(var(--spacing) * 77.25);\n }\n\n .h-79 {\n height: calc(var(--spacing) * 79);\n }\n\n .h-83\\.25 {\n height: calc(var(--spacing) * 83.25);\n }\n\n .h-89\\.25 {\n height: calc(var(--spacing) * 89.25);\n }\n\n .h-112 {\n height: calc(var(--spacing) * 112);\n }\n\n .h-\\[8\\.26375rem\\] {\n height: 8.26375rem;\n }\n\n .h-auto {\n height: auto;\n }\n\n .h-fit {\n height: fit-content;\n }\n\n .h-full {\n height: 100%;\n }\n\n .h-px {\n height: 1px;\n }\n\n .h-screen {\n height: 100vh;\n }\n\n .max-h-10 {\n max-height: calc(var(--spacing) * 10);\n }\n\n .max-h-40 {\n max-height: calc(var(--spacing) * 40);\n }\n\n .max-h-48 {\n max-height: calc(var(--spacing) * 48);\n }\n\n .max-h-75 {\n max-height: var(--spacing-75);\n }\n\n .max-h-\\[40vh\\] {\n max-height: 40vh;\n }\n\n .max-h-full {\n max-height: 100%;\n }\n\n .min-h-0 {\n min-height: 0;\n }\n\n .min-h-5 {\n min-height: calc(var(--spacing) * 5);\n }\n\n .min-h-9 {\n min-height: calc(var(--spacing) * 9);\n }\n\n .min-h-10 {\n min-height: calc(var(--spacing) * 10);\n }\n\n .min-h-12 {\n min-height: calc(var(--spacing) * 12);\n }\n\n .min-h-35 {\n min-height: calc(var(--spacing) * 35);\n }\n\n .min-h-102\\.5 {\n min-height: calc(var(--spacing) * 102.5);\n }\n\n .min-h-107\\.5 {\n min-height: calc(var(--spacing) * 107.5);\n }\n\n .min-h-113\\.25 {\n min-height: calc(var(--spacing) * 113.25);\n }\n\n .w-1\\/3 {\n width: 33.3333%;\n }\n\n .w-2 {\n width: calc(var(--spacing) * 2);\n }\n\n .w-2\\.5 {\n width: calc(var(--spacing) * 2.5);\n }\n\n .w-3\\.5 {\n width: calc(var(--spacing) * 3.5);\n }\n\n .w-4 {\n width: calc(var(--spacing) * 4);\n }\n\n .w-4\\.5 {\n width: calc(var(--spacing) * 4.5);\n }\n\n .w-4\\.25 {\n width: calc(var(--spacing) * 4.25);\n }\n\n .w-5 {\n width: calc(var(--spacing) * 5);\n }\n\n .w-6 {\n width: calc(var(--spacing) * 6);\n }\n\n .w-7 {\n width: calc(var(--spacing) * 7);\n }\n\n .w-8 {\n width: calc(var(--spacing) * 8);\n }\n\n .w-9 {\n width: calc(var(--spacing) * 9);\n }\n\n .w-9\\.5 {\n width: calc(var(--spacing) * 9.5);\n }\n\n .w-10 {\n width: calc(var(--spacing) * 10);\n }\n\n .w-10\\.5 {\n width: calc(var(--spacing) * 10.5);\n }\n\n .w-11\\.5 {\n width: calc(var(--spacing) * 11.5);\n }\n\n .w-11\\.25 {\n width: calc(var(--spacing) * 11.25);\n }\n\n .w-12 {\n width: calc(var(--spacing) * 12);\n }\n\n .w-12\\.5 {\n width: calc(var(--spacing) * 12.5);\n }\n\n .w-12\\.75 {\n width: calc(var(--spacing) * 12.75);\n }\n\n .w-15\\.25 {\n width: calc(var(--spacing) * 15.25);\n }\n\n .w-16 {\n width: calc(var(--spacing) * 16);\n }\n\n .w-16\\.5 {\n width: calc(var(--spacing) * 16.5);\n }\n\n .w-17 {\n width: calc(var(--spacing) * 17);\n }\n\n .w-18\\.5 {\n width: calc(var(--spacing) * 18.5);\n }\n\n .w-18\\.75 {\n width: calc(var(--spacing) * 18.75);\n }\n\n .w-20 {\n width: calc(var(--spacing) * 20);\n }\n\n .w-20\\.5 {\n width: calc(var(--spacing) * 20.5);\n }\n\n .w-21\\.5 {\n width: calc(var(--spacing) * 21.5);\n }\n\n .w-24 {\n width: calc(var(--spacing) * 24);\n }\n\n .w-24\\.75 {\n width: calc(var(--spacing) * 24.75);\n }\n\n .w-25\\.5 {\n width: calc(var(--spacing) * 25.5);\n }\n\n .w-25\\.25 {\n width: calc(var(--spacing) * 25.25);\n }\n\n .w-26\\.25 {\n width: calc(var(--spacing) * 26.25);\n }\n\n .w-27 {\n width: calc(var(--spacing) * 27);\n }\n\n .w-27\\.5 {\n width: calc(var(--spacing) * 27.5);\n }\n\n .w-30 {\n width: var(--spacing-30);\n }\n\n .w-30\\.75 {\n width: calc(var(--spacing) * 30.75);\n }\n\n .w-32 {\n width: calc(var(--spacing) * 32);\n }\n\n .w-33\\.25 {\n width: calc(var(--spacing) * 33.25);\n }\n\n .w-34\\.25 {\n width: calc(var(--spacing) * 34.25);\n }\n\n .w-35 {\n width: calc(var(--spacing) * 35);\n }\n\n .w-36 {\n width: calc(var(--spacing) * 36);\n }\n\n .w-38\\.5 {\n width: calc(var(--spacing) * 38.5);\n }\n\n .w-39\\.5 {\n width: calc(var(--spacing) * 39.5);\n }\n\n .w-40\\.25 {\n width: calc(var(--spacing) * 40.25);\n }\n\n .w-41 {\n width: calc(var(--spacing) * 41);\n }\n\n .w-41\\.75 {\n width: calc(var(--spacing) * 41.75);\n }\n\n .w-45 {\n width: calc(var(--spacing) * 45);\n }\n\n .w-47\\.75 {\n width: calc(var(--spacing) * 47.75);\n }\n\n .w-48 {\n width: calc(var(--spacing) * 48);\n }\n\n .w-48\\.5 {\n width: calc(var(--spacing) * 48.5);\n }\n\n .w-53 {\n width: calc(var(--spacing) * 53);\n }\n\n .w-56\\.5 {\n width: calc(var(--spacing) * 56.5);\n }\n\n .w-57\\.5 {\n width: calc(var(--spacing) * 57.5);\n }\n\n .w-60\\.5 {\n width: calc(var(--spacing) * 60.5);\n }\n\n .w-62\\.5 {\n width: calc(var(--spacing) * 62.5);\n }\n\n .w-63\\.75 {\n width: calc(var(--spacing) * 63.75);\n }\n\n .w-66 {\n width: calc(var(--spacing) * 66);\n }\n\n .w-68 {\n width: calc(var(--spacing) * 68);\n }\n\n .w-70\\.5 {\n width: calc(var(--spacing) * 70.5);\n }\n\n .w-71 {\n width: calc(var(--spacing) * 71);\n }\n\n .w-74\\.75 {\n width: calc(var(--spacing) * 74.75);\n }\n\n .w-87 {\n width: calc(var(--spacing) * 87);\n }\n\n .w-88\\.5 {\n width: calc(var(--spacing) * 88.5);\n }\n\n .w-91 {\n width: calc(var(--spacing) * 91);\n }\n\n .w-95 {\n width: calc(var(--spacing) * 95);\n }\n\n .w-99\\.75 {\n width: calc(var(--spacing) * 99.75);\n }\n\n .w-100\\.5 {\n width: calc(var(--spacing) * 100.5);\n }\n\n .w-102 {\n width: calc(var(--spacing) * 102);\n }\n\n .w-117 {\n width: var(--spacing-117);\n }\n\n .w-120 {\n width: var(--spacing-120);\n }\n\n .w-120\\.75 {\n width: calc(var(--spacing) * 120.75);\n }\n\n .w-121 {\n width: calc(var(--spacing) * 121);\n }\n\n .w-127\\.75 {\n width: calc(var(--spacing) * 127.75);\n }\n\n .w-130\\.25 {\n width: calc(var(--spacing) * 130.25);\n }\n\n .w-131 {\n width: calc(var(--spacing) * 131);\n }\n\n .w-139 {\n width: calc(var(--spacing) * 139);\n }\n\n .w-140\\.75 {\n width: calc(var(--spacing) * 140.75);\n }\n\n .w-148\\.75 {\n width: calc(var(--spacing) * 148.75);\n }\n\n .w-186\\.5 {\n width: calc(var(--spacing) * 186.5);\n }\n\n .w-186\\.25 {\n width: calc(var(--spacing) * 186.25);\n }\n\n .w-194\\.25 {\n width: calc(var(--spacing) * 194.25);\n }\n\n .w-198\\.25 {\n width: calc(var(--spacing) * 198.25);\n }\n\n .w-270 {\n width: calc(var(--spacing) * 270);\n }\n\n .w-282 {\n width: calc(var(--spacing) * 282);\n }\n\n .w-293\\.5 {\n width: calc(var(--spacing) * 293.5);\n }\n\n .w-294 {\n width: calc(var(--spacing) * 294);\n }\n\n .w-\\[10\\.5rem\\] {\n width: 10.5rem;\n }\n\n .w-\\[calc\\(100\\%-10px\\)\\] {\n width: calc(100% - 10px);\n }\n\n .w-auto {\n width: auto;\n }\n\n .w-full {\n width: 100%;\n }\n\n .w-px {\n width: 1px;\n }\n\n .max-w-36 {\n max-width: calc(var(--spacing) * 36);\n }\n\n .max-w-38 {\n max-width: var(--spacing-38);\n }\n\n .max-w-43 {\n max-width: var(--spacing-43);\n }\n\n .max-w-44 {\n max-width: calc(var(--spacing) * 44);\n }\n\n .max-w-51\\.5 {\n max-width: calc(var(--spacing) * 51.5);\n }\n\n .max-w-65 {\n max-width: calc(var(--spacing) * 65);\n }\n\n .max-w-194\\.25 {\n max-width: calc(var(--spacing) * 194.25);\n }\n\n .max-w-\\[23\\.75rem\\] {\n max-width: 23.75rem;\n }\n\n .max-w-full {\n max-width: 100%;\n }\n\n .min-w-0 {\n min-width: 0;\n }\n\n .min-w-4 {\n min-width: calc(var(--spacing) * 4);\n }\n\n .min-w-10 {\n min-width: calc(var(--spacing) * 10);\n }\n\n .min-w-20 {\n min-width: calc(var(--spacing) * 20);\n }\n\n .min-w-30 {\n min-width: var(--spacing-30);\n }\n\n .min-w-32 {\n min-width: calc(var(--spacing) * 32);\n }\n\n .min-w-36 {\n min-width: calc(var(--spacing) * 36);\n }\n\n .min-w-44 {\n min-width: calc(var(--spacing) * 44);\n }\n\n .min-w-50 {\n min-width: var(--spacing-50);\n }\n\n .min-w-55 {\n min-width: calc(var(--spacing) * 55);\n }\n\n .min-w-56 {\n min-width: calc(var(--spacing) * 56);\n }\n\n .min-w-160 {\n min-width: calc(var(--spacing) * 160);\n }\n\n .min-w-\\[8\\.2rem\\] {\n min-width: 8.2rem;\n }\n\n .min-w-fit {\n min-width: fit-content;\n }\n\n .flex-1 {\n flex: 1;\n }\n\n .flex-shrink {\n flex-shrink: 1;\n }\n\n .shrink-0 {\n flex-shrink: 0;\n }\n\n .border-collapse {\n border-collapse: collapse;\n }\n\n .-translate-x-1 {\n --tw-translate-x: calc(var(--spacing) * -1);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n\n .-translate-x-1\\/2 {\n --tw-translate-x: calc(calc(1 / 2 * 100%) * -1);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n\n .translate-x-1 {\n --tw-translate-x: var(--spacing);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n\n .-translate-y-1\\/2 {\n --tw-translate-y: calc(calc(1 / 2 * 100%) * -1);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n\n .scale-\\[1\\.02\\] {\n scale: 1.02;\n }\n\n .rotate-180 {\n rotate: 180deg;\n }\n\n .transform {\n transform: var(--tw-rotate-x, ) var(--tw-rotate-y, ) var(--tw-rotate-z, ) var(--tw-skew-x, ) var(--tw-skew-y, );\n }\n\n .cursor-default {\n cursor: default;\n }\n\n .cursor-grab {\n cursor: grab;\n }\n\n .cursor-not-allowed {\n cursor: not-allowed;\n }\n\n .cursor-pointer {\n cursor: pointer;\n }\n\n .cursor-text {\n cursor: text;\n }\n\n .touch-none {\n touch-action: none;\n }\n\n .resize {\n resize: both;\n }\n\n .appearance-none {\n appearance: none;\n }\n\n .grid-cols-\\[7\\.5rem_7\\.5rem_7\\.5rem\\] {\n grid-template-columns: 7.5rem 7.5rem 7.5rem;\n }\n\n .grid-cols-\\[auto_auto_1fr_auto\\] {\n grid-template-columns: auto auto 1fr auto;\n }\n\n .flex-col {\n flex-direction: column;\n }\n\n .flex-row {\n flex-direction: row;\n }\n\n .flex-wrap {\n flex-wrap: wrap;\n }\n\n .items-baseline {\n align-items: baseline;\n }\n\n .items-center {\n align-items: center;\n }\n\n .items-end {\n align-items: flex-end;\n }\n\n .items-start {\n align-items: flex-start;\n }\n\n .justify-between {\n justify-content: space-between;\n }\n\n .justify-center {\n justify-content: center;\n }\n\n .justify-end {\n justify-content: flex-end;\n }\n\n .gap-0 {\n gap: 0;\n }\n\n .gap-0\\.5 {\n gap: calc(var(--spacing) * .5);\n }\n\n .gap-1 {\n gap: var(--spacing);\n }\n\n .gap-1\\.5 {\n gap: calc(var(--spacing) * 1.5);\n }\n\n .gap-1\\.25 {\n gap: calc(var(--spacing) * 1.25);\n }\n\n .gap-2 {\n gap: calc(var(--spacing) * 2);\n }\n\n .gap-2\\.5 {\n gap: calc(var(--spacing) * 2.5);\n }\n\n .gap-2\\.25 {\n gap: calc(var(--spacing) * 2.25);\n }\n\n .gap-3 {\n gap: calc(var(--spacing) * 3);\n }\n\n .gap-4 {\n gap: calc(var(--spacing) * 4);\n }\n\n .gap-5 {\n gap: calc(var(--spacing) * 5);\n }\n\n .gap-6 {\n gap: calc(var(--spacing) * 6);\n }\n\n .gap-8 {\n gap: calc(var(--spacing) * 8);\n }\n\n .gap-8\\.75 {\n gap: calc(var(--spacing) * 8.75);\n }\n\n .gap-12 {\n gap: calc(var(--spacing) * 12);\n }\n\n .gap-19 {\n gap: calc(var(--spacing) * 19);\n }\n\n .gap-\\[2\\%\\] {\n gap: 2%;\n }\n\n :where(.space-y-1 > :not(:last-child)) {\n --tw-space-y-reverse: 0;\n margin-block-start: calc(var(--spacing) * var(--tw-space-y-reverse));\n margin-block-end: calc(var(--spacing) * calc(1 - var(--tw-space-y-reverse)));\n }\n\n :where(.space-y-2 > :not(:last-child)) {\n --tw-space-y-reverse: 0;\n margin-block-start: calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));\n margin-block-end: calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)));\n }\n\n :where(.space-y-3 > :not(:last-child)) {\n --tw-space-y-reverse: 0;\n margin-block-start: calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));\n margin-block-end: calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)));\n }\n\n .gap-x-1 {\n column-gap: var(--spacing);\n }\n\n .gap-x-2 {\n column-gap: calc(var(--spacing) * 2);\n }\n\n .gap-x-4 {\n column-gap: calc(var(--spacing) * 4);\n }\n\n .gap-x-6 {\n column-gap: calc(var(--spacing) * 6);\n }\n\n .gap-y-0\\.75 {\n row-gap: calc(var(--spacing) * .75);\n }\n\n .gap-y-1 {\n row-gap: var(--spacing);\n }\n\n .self-end {\n align-self: flex-end;\n }\n\n .self-start {\n align-self: flex-start;\n }\n\n .truncate {\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n }\n\n .overflow-auto {\n overflow: auto;\n }\n\n .overflow-hidden {\n overflow: hidden;\n }\n\n .overflow-visible {\n overflow: visible;\n }\n\n .overflow-x-auto {\n overflow-x: auto;\n }\n\n .overflow-x-hidden {\n overflow-x: hidden;\n }\n\n .overflow-y-auto {\n overflow-y: auto;\n }\n\n .overflow-y-hidden {\n overflow-y: hidden;\n }\n\n .rounded {\n border-radius: .25rem;\n }\n\n .rounded-2xl {\n border-radius: var(--radius-2xl);\n }\n\n .rounded-\\[0\\.375rem\\] {\n border-radius: .375rem;\n }\n\n .rounded-\\[0\\.3125rem\\] {\n border-radius: .3125rem;\n }\n\n .rounded-full {\n border-radius: 3.40282e38px;\n }\n\n .rounded-lg {\n border-radius: var(--radius-lg);\n }\n\n .rounded-md {\n border-radius: var(--radius-md);\n }\n\n .rounded-none {\n border-radius: 0;\n }\n\n .rounded-none\\! {\n border-radius: 0 !important;\n }\n\n .rounded-sm {\n border-radius: var(--radius-sm);\n }\n\n .rounded-xl {\n border-radius: var(--radius-xl);\n }\n\n .rounded-t-lg {\n border-top-left-radius: var(--radius-lg);\n border-top-right-radius: var(--radius-lg);\n }\n\n .rounded-t-md {\n border-top-left-radius: var(--radius-md);\n border-top-right-radius: var(--radius-md);\n }\n\n .rounded-t-xl {\n border-top-left-radius: var(--radius-xl);\n border-top-right-radius: var(--radius-xl);\n }\n\n .rounded-l-xl {\n border-top-left-radius: var(--radius-xl);\n border-bottom-left-radius: var(--radius-xl);\n }\n\n .rounded-tl-xl {\n border-top-left-radius: var(--radius-xl);\n }\n\n .rounded-r-md {\n border-top-right-radius: var(--radius-md);\n border-bottom-right-radius: var(--radius-md);\n }\n\n .rounded-tr-xl {\n border-top-right-radius: var(--radius-xl);\n }\n\n .rounded-b-lg {\n border-bottom-right-radius: var(--radius-lg);\n border-bottom-left-radius: var(--radius-lg);\n }\n\n .rounded-b-md {\n border-bottom-right-radius: var(--radius-md);\n border-bottom-left-radius: var(--radius-md);\n }\n\n .rounded-b-xl {\n border-bottom-right-radius: var(--radius-xl);\n border-bottom-left-radius: var(--radius-xl);\n }\n\n .border {\n border-style: var(--tw-border-style);\n border-width: 1px;\n }\n\n .border-0 {\n border-style: var(--tw-border-style);\n border-width: 0;\n }\n\n .border-2 {\n border-style: var(--tw-border-style);\n border-width: 2px;\n }\n\n .border-x {\n border-inline-style: var(--tw-border-style);\n border-inline-width: 1px;\n }\n\n .border-t {\n border-top-style: var(--tw-border-style);\n border-top-width: 1px;\n }\n\n .border-t-0 {\n border-top-style: var(--tw-border-style);\n border-top-width: 0;\n }\n\n .border-t-4 {\n border-top-style: var(--tw-border-style);\n border-top-width: 4px;\n }\n\n .border-r {\n border-right-style: var(--tw-border-style);\n border-right-width: 1px;\n }\n\n .border-r-0 {\n border-right-style: var(--tw-border-style);\n border-right-width: 0;\n }\n\n .border-b {\n border-bottom-style: var(--tw-border-style);\n border-bottom-width: 1px;\n }\n\n .border-b-0 {\n border-bottom-style: var(--tw-border-style);\n border-bottom-width: 0;\n }\n\n .border-b-2 {\n border-bottom-style: var(--tw-border-style);\n border-bottom-width: 2px;\n }\n\n .border-l {\n border-left-style: var(--tw-border-style);\n border-left-width: 1px;\n }\n\n .border-l-0 {\n border-left-style: var(--tw-border-style);\n border-left-width: 0;\n }\n\n .border-l-4 {\n border-left-style: var(--tw-border-style);\n border-left-width: 4px;\n }\n\n .border-dashed {\n --tw-border-style: dashed;\n border-style: dashed;\n }\n\n .border-none {\n --tw-border-style: none;\n border-style: none;\n }\n\n .border-solid {\n --tw-border-style: solid;\n border-style: solid;\n }\n\n .border-\\(--axebow-border-gray\\) {\n border-color: var(--axebow-border-gray);\n }\n\n .border-\\(--axebow-gray\\) {\n border-color: var(--axebow-gray);\n }\n\n .border-\\(--axebow-light-gray\\) {\n border-color: var(--axebow-light-gray);\n }\n\n .border-\\(--axebow-premium-text\\) {\n border-color: var(--axebow-premium-text);\n }\n\n .border-\\(--axebow-primary\\) {\n border-color: var(--axebow-primary);\n }\n\n .border-\\(--axebow-secondary\\) {\n border-color: var(--axebow-secondary);\n }\n\n .border-\\(--axebow-table-border\\) {\n border-color: var(--axebow-table-border);\n }\n\n .border-\\(--axebow-table-header-border\\) {\n border-color: var(--axebow-table-header-border);\n }\n\n .border-\\(--axebow-tertiary\\) {\n border-color: var(--axebow-tertiary);\n }\n\n .border-\\[\\#344966\\] {\n border-color: #344966;\n }\n\n .border-\\[\\#DBDDE4\\] {\n border-color: #dbdde4;\n }\n\n .border-\\[var\\(--axebow-error\\)\\] {\n border-color: var(--axebow-error);\n }\n\n .border-\\[var\\(--axebow-gray\\)\\] {\n border-color: var(--axebow-gray);\n }\n\n .border-\\[var\\(--axebow-tertiary\\)\\] {\n border-color: var(--axebow-tertiary);\n }\n\n .border-black\\/10 {\n border-color: #0000001a;\n }\n\n @supports (color: color-mix(in lab, red, red)) {\n .border-black\\/10 {\n border-color: color-mix(in oklab, var(--color-black) 10%, transparent);\n }\n }\n\n .border-blue-200 {\n border-color: var(--color-blue-200);\n }\n\n .border-gray-100 {\n border-color: var(--color-gray-100);\n }\n\n .border-gray-200 {\n border-color: var(--color-gray-200);\n }\n\n .border-gray-300 {\n border-color: var(--color-gray-300);\n }\n\n .border-gray-400 {\n border-color: var(--color-gray-400);\n }\n\n .border-gray-500 {\n border-color: var(--color-gray-500);\n }\n\n .border-green-200 {\n border-color: var(--color-green-200);\n }\n\n .border-red-200 {\n border-color: var(--color-red-200);\n }\n\n .border-transparent {\n border-color: #0000;\n }\n\n .border-white {\n border-color: var(--color-white);\n }\n\n .border-yellow-200 {\n border-color: var(--color-yellow-200);\n }\n\n .bg-\\(--axebow-anti-flash-white\\) {\n background-color: var(--axebow-anti-flash-white);\n }\n\n .bg-\\(--axebow-base\\) {\n background-color: var(--axebow-base);\n }\n\n .bg-\\(--axebow-error\\) {\n background-color: var(--axebow-error);\n }\n\n .bg-\\(--axebow-gray\\) {\n background-color: var(--axebow-gray);\n }\n\n .bg-\\(--axebow-light-gray\\), .bg-\\(--axebow-light-gray\\)\\/80 {\n background-color: var(--axebow-light-gray);\n }\n\n @supports (color: color-mix(in lab, red, red)) {\n .bg-\\(--axebow-light-gray\\)\\/80 {\n background-color: color-mix(in oklab, var(--axebow-light-gray) 80%, transparent);\n }\n }\n\n .bg-\\(--axebow-primary\\) {\n background-color: var(--axebow-primary);\n }\n\n .bg-\\(--axebow-primary-light\\) {\n background-color: var(--axebow-primary-light);\n }\n\n .bg-\\(--axebow-success\\) {\n background-color: var(--axebow-success);\n }\n\n .bg-\\(--axebow-tertiary\\), .bg-\\(--axebow-tertiary\\)\\/15 {\n background-color: var(--axebow-tertiary);\n }\n\n @supports (color: color-mix(in lab, red, red)) {\n .bg-\\(--axebow-tertiary\\)\\/15 {\n background-color: color-mix(in oklab, var(--axebow-tertiary) 15%, transparent);\n }\n }\n\n .bg-\\(--axebow-warning\\) {\n background-color: var(--axebow-warning);\n }\n\n .bg-\\(--axebow-white\\) {\n background-color: var(--axebow-white);\n }\n\n .bg-\\[\\#006BFF\\] {\n background-color: #006bff;\n }\n\n .bg-\\[\\#C7DCFA\\] {\n background-color: #c7dcfa;\n }\n\n .bg-\\[\\#F0F1F5\\] {\n background-color: #f0f1f5;\n }\n\n .bg-\\[var\\(--axebow-gray\\)\\] {\n background-color: var(--axebow-gray);\n }\n\n .bg-\\[var\\(--axebow-tertiary\\)\\] {\n background-color: var(--axebow-tertiary);\n }\n\n .bg-blue-50 {\n background-color: var(--color-blue-50);\n }\n\n .bg-gray-50 {\n background-color: var(--color-gray-50);\n }\n\n .bg-gray-50\\/50 {\n background-color: #f9fafb80;\n }\n\n @supports (color: color-mix(in lab, red, red)) {\n .bg-gray-50\\/50 {\n background-color: color-mix(in oklab, var(--color-gray-50) 50%, transparent);\n }\n }\n\n .bg-gray-100 {\n background-color: var(--color-gray-100);\n }\n\n .bg-gray-200 {\n background-color: var(--color-gray-200);\n }\n\n .bg-gray-300 {\n background-color: var(--color-gray-300);\n }\n\n .bg-green-50 {\n background-color: var(--color-green-50);\n }\n\n .bg-red-50 {\n background-color: var(--color-red-50);\n }\n\n .bg-red-100 {\n background-color: var(--color-red-100);\n }\n\n .bg-sky-50 {\n background-color: var(--color-sky-50);\n }\n\n .bg-sky-100 {\n background-color: var(--color-sky-100);\n }\n\n .bg-transparent {\n background-color: #0000;\n }\n\n .bg-white {\n background-color: var(--color-white);\n }\n\n .bg-yellow-50 {\n background-color: var(--color-yellow-50);\n }\n\n .object-contain {\n object-fit: contain;\n }\n\n .p-0 {\n padding: 0;\n }\n\n .p-1 {\n padding: var(--spacing);\n }\n\n .p-1\\.5 {\n padding: calc(var(--spacing) * 1.5);\n }\n\n .p-2 {\n padding: calc(var(--spacing) * 2);\n }\n\n .p-3 {\n padding: calc(var(--spacing) * 3);\n }\n\n .p-3\\.25 {\n padding: calc(var(--spacing) * 3.25);\n }\n\n .p-4 {\n padding: calc(var(--spacing) * 4);\n }\n\n .p-5 {\n padding: calc(var(--spacing) * 5);\n }\n\n .p-6 {\n padding: calc(var(--spacing) * 6);\n }\n\n .px-0\\.5 {\n padding-inline: calc(var(--spacing) * .5);\n }\n\n .px-1 {\n padding-inline: var(--spacing);\n }\n\n .px-1\\.5 {\n padding-inline: calc(var(--spacing) * 1.5);\n }\n\n .px-2 {\n padding-inline: calc(var(--spacing) * 2);\n }\n\n .px-3 {\n padding-inline: calc(var(--spacing) * 3);\n }\n\n .px-3\\.5 {\n padding-inline: calc(var(--spacing) * 3.5);\n }\n\n .px-4 {\n padding-inline: calc(var(--spacing) * 4);\n }\n\n .px-5 {\n padding-inline: calc(var(--spacing) * 5);\n }\n\n .px-6 {\n padding-inline: calc(var(--spacing) * 6);\n }\n\n .px-8 {\n padding-inline: calc(var(--spacing) * 8);\n }\n\n .py-0\\.5 {\n padding-block: calc(var(--spacing) * .5);\n }\n\n .py-1 {\n padding-block: var(--spacing);\n }\n\n .py-1\\.5 {\n padding-block: calc(var(--spacing) * 1.5);\n }\n\n .py-1\\.25 {\n padding-block: calc(var(--spacing) * 1.25);\n }\n\n .py-2 {\n padding-block: calc(var(--spacing) * 2);\n }\n\n .py-2\\.5 {\n padding-block: calc(var(--spacing) * 2.5);\n }\n\n .py-2\\.75 {\n padding-block: calc(var(--spacing) * 2.75);\n }\n\n .py-3 {\n padding-block: calc(var(--spacing) * 3);\n }\n\n .py-4 {\n padding-block: calc(var(--spacing) * 4);\n }\n\n .py-4\\.75 {\n padding-block: calc(var(--spacing) * 4.75);\n }\n\n .py-8 {\n padding-block: calc(var(--spacing) * 8);\n }\n\n .ps-4 {\n padding-inline-start: calc(var(--spacing) * 4);\n }\n\n .ps-8 {\n padding-inline-start: calc(var(--spacing) * 8);\n }\n\n .pe-4 {\n padding-inline-end: calc(var(--spacing) * 4);\n }\n\n .pt-0\\.5 {\n padding-top: calc(var(--spacing) * .5);\n }\n\n .pt-1 {\n padding-top: var(--spacing);\n }\n\n .pt-2 {\n padding-top: calc(var(--spacing) * 2);\n }\n\n .pt-3 {\n padding-top: calc(var(--spacing) * 3);\n }\n\n .pt-4 {\n padding-top: calc(var(--spacing) * 4);\n }\n\n .pt-6 {\n padding-top: calc(var(--spacing) * 6);\n }\n\n .pt-8 {\n padding-top: calc(var(--spacing) * 8);\n }\n\n .pt-px {\n padding-top: 1px;\n }\n\n .pr-1 {\n padding-right: var(--spacing);\n }\n\n .pr-2 {\n padding-right: calc(var(--spacing) * 2);\n }\n\n .pr-3\\.25 {\n padding-right: calc(var(--spacing) * 3.25);\n }\n\n .pr-4 {\n padding-right: calc(var(--spacing) * 4);\n }\n\n .pr-4\\.5 {\n padding-right: calc(var(--spacing) * 4.5);\n }\n\n .pr-5 {\n padding-right: calc(var(--spacing) * 5);\n }\n\n .pb-0 {\n padding-bottom: 0;\n }\n\n .pb-1 {\n padding-bottom: var(--spacing);\n }\n\n .pb-2 {\n padding-bottom: calc(var(--spacing) * 2);\n }\n\n .pb-3 {\n padding-bottom: calc(var(--spacing) * 3);\n }\n\n .pb-3\\.5 {\n padding-bottom: calc(var(--spacing) * 3.5);\n }\n\n .pb-4 {\n padding-bottom: calc(var(--spacing) * 4);\n }\n\n .pb-6 {\n padding-bottom: calc(var(--spacing) * 6);\n }\n\n .pl-1 {\n padding-left: var(--spacing);\n }\n\n .pl-1\\.5 {\n padding-left: calc(var(--spacing) * 1.5);\n }\n\n .pl-2 {\n padding-left: calc(var(--spacing) * 2);\n }\n\n .pl-4 {\n padding-left: calc(var(--spacing) * 4);\n }\n\n .pl-4\\.25 {\n padding-left: calc(var(--spacing) * 4.25);\n }\n\n .pl-5 {\n padding-left: calc(var(--spacing) * 5);\n }\n\n .pl-6 {\n padding-left: calc(var(--spacing) * 6);\n }\n\n .pl-11\\.75 {\n padding-left: calc(var(--spacing) * 11.75);\n }\n\n .pl-px {\n padding-left: 1px;\n }\n\n .text-center {\n text-align: center;\n }\n\n .text-left {\n text-align: left;\n }\n\n .text-right {\n text-align: right;\n }\n\n .text-start {\n text-align: start;\n }\n\n .align-middle {\n vertical-align: middle;\n }\n\n .font-\\[Material_Symbols_Outlined\\] {\n font-family: Material Symbols Outlined;\n }\n\n .font-\\[inherit\\] {\n font-family: inherit;\n }\n\n .text-base {\n font-size: var(--text-base);\n line-height: var(--tw-leading, var(--text-base--line-height));\n }\n\n .text-lg {\n font-size: var(--text-lg);\n line-height: var(--tw-leading, var(--text-lg--line-height));\n }\n\n .text-md {\n font-size: var(--text-md);\n line-height: var(--tw-leading, var(--text-md--line-height));\n }\n\n .text-sm {\n font-size: var(--text-sm);\n line-height: var(--tw-leading, var(--text-sm--line-height));\n }\n\n .text-xl {\n font-size: var(--text-xl);\n line-height: var(--tw-leading, var(--text-xl--line-height));\n }\n\n .text-xs {\n font-size: var(--text-xs);\n line-height: var(--tw-leading, var(--text-xs--line-height));\n }\n\n .text-\\[0\\.9375rem\\] {\n font-size: .9375rem;\n }\n\n .text-\\[1\\.25rem\\] {\n font-size: 1.25rem;\n }\n\n .text-\\[18px\\] {\n font-size: 18px;\n }\n\n .leading-3\\.5 {\n --tw-leading: calc(var(--spacing) * 3.5);\n line-height: calc(var(--spacing) * 3.5);\n }\n\n .leading-4\\.25 {\n --tw-leading: calc(var(--spacing) * 4.25);\n line-height: calc(var(--spacing) * 4.25);\n }\n\n .leading-\\[1\\.125rem\\] {\n --tw-leading: 1.125rem;\n line-height: 1.125rem;\n }\n\n .leading-\\[1\\.0625rem\\] {\n --tw-leading: 1.0625rem;\n line-height: 1.0625rem;\n }\n\n .leading-\\[1\\.21875rem\\] {\n --tw-leading: 1.21875rem;\n line-height: 1.21875rem;\n }\n\n .leading-none {\n --tw-leading: 1;\n line-height: 1;\n }\n\n .leading-relaxed {\n --tw-leading: var(--leading-relaxed);\n line-height: var(--leading-relaxed);\n }\n\n .leading-snug {\n --tw-leading: var(--leading-snug);\n line-height: var(--leading-snug);\n }\n\n .leading-tight {\n --tw-leading: var(--leading-tight);\n line-height: var(--leading-tight);\n }\n\n .font-black {\n --tw-font-weight: var(--font-weight-black);\n font-weight: var(--font-weight-black);\n }\n\n .font-bold {\n --tw-font-weight: var(--font-weight-bold);\n font-weight: var(--font-weight-bold);\n }\n\n .font-light {\n --tw-font-weight: var(--font-weight-light);\n font-weight: var(--font-weight-light);\n }\n\n .font-medium {\n --tw-font-weight: var(--font-weight-medium);\n font-weight: var(--font-weight-medium);\n }\n\n .font-normal {\n --tw-font-weight: var(--font-weight-normal);\n font-weight: var(--font-weight-normal);\n }\n\n .font-semibold {\n --tw-font-weight: var(--font-weight-semibold);\n font-weight: var(--font-weight-semibold);\n }\n\n .tracking-wider {\n --tw-tracking: var(--tracking-wider);\n letter-spacing: var(--tracking-wider);\n }\n\n .wrap-break-word {\n overflow-wrap: break-word;\n }\n\n .break-all {\n word-break: break-all;\n }\n\n .text-ellipsis {\n text-overflow: ellipsis;\n }\n\n .whitespace-normal {\n white-space: normal;\n }\n\n .whitespace-nowrap {\n white-space: nowrap;\n }\n\n .text-\\(--axebow-anti-flash-white\\) {\n color: var(--axebow-anti-flash-white);\n }\n\n .text-\\(--axebow-black\\) {\n color: var(--axebow-black);\n }\n\n .text-\\(--axebow-error\\) {\n color: var(--axebow-error);\n }\n\n .text-\\(--axebow-gray\\) {\n color: var(--axebow-gray);\n }\n\n .text-\\(--axebow-primary\\) {\n color: var(--axebow-primary);\n }\n\n .text-\\(--axebow-rich-black\\) {\n color: var(--axebow-rich-black);\n }\n\n .text-\\(--axebow-secondary\\) {\n color: var(--axebow-secondary);\n }\n\n .text-\\(--axebow-strong-gray\\) {\n color: var(--axebow-strong-gray);\n }\n\n .text-\\(--axebow-tertiary\\) {\n color: var(--axebow-tertiary);\n }\n\n .text-\\[\\#006BFF\\] {\n color: #006bff;\n }\n\n .text-\\[\\#8A94AE\\] {\n color: #8a94ae;\n }\n\n .text-\\[\\#78787A\\] {\n color: #78787a;\n }\n\n .text-\\[\\#344966\\] {\n color: #344966;\n }\n\n .text-\\[\\#E93A3A\\] {\n color: #e93a3a;\n }\n\n .text-\\[var\\(--axebow-error\\)\\] {\n color: var(--axebow-error);\n }\n\n .text-\\[var\\(--axebow-gray\\)\\] {\n color: var(--axebow-gray);\n }\n\n .text-\\[var\\(--axebow-tertiary\\)\\] {\n color: var(--axebow-tertiary);\n }\n\n .text-black {\n color: var(--color-black);\n }\n\n .text-blue-600 {\n color: var(--color-blue-600);\n }\n\n .text-blue-800 {\n color: var(--color-blue-800);\n }\n\n .text-gray-300 {\n color: var(--color-gray-300);\n }\n\n .text-gray-400 {\n color: var(--color-gray-400);\n }\n\n .text-gray-500 {\n color: var(--color-gray-500);\n }\n\n .text-gray-600 {\n color: var(--color-gray-600);\n }\n\n .text-gray-700 {\n color: var(--color-gray-700);\n }\n\n .text-gray-900 {\n color: var(--color-gray-900);\n }\n\n .text-green-600 {\n color: var(--color-green-600);\n }\n\n .text-green-800 {\n color: var(--color-green-800);\n }\n\n .text-inherit {\n color: inherit;\n }\n\n .text-red-500 {\n color: var(--color-red-500);\n }\n\n .text-red-800 {\n color: var(--color-red-800);\n }\n\n .text-white {\n color: var(--color-white);\n }\n\n .text-yellow-600 {\n color: var(--color-yellow-600);\n }\n\n .text-yellow-800 {\n color: var(--color-yellow-800);\n }\n\n .capitalize {\n text-transform: capitalize;\n }\n\n .uppercase {\n text-transform: uppercase;\n }\n\n .italic {\n font-style: italic;\n }\n\n .no-underline {\n text-decoration-line: none;\n }\n\n .underline {\n text-decoration-line: underline;\n }\n\n .decoration-\\(--axebow-error\\) {\n -webkit-text-decoration-color: var(--axebow-error);\n -webkit-text-decoration-color: var(--axebow-error);\n text-decoration-color: var(--axebow-error);\n }\n\n .placeholder-gray-400::placeholder {\n color: var(--color-gray-400);\n }\n\n .opacity-0 {\n opacity: 0;\n }\n\n .opacity-40 {\n opacity: .4;\n }\n\n .opacity-50 {\n opacity: .5;\n }\n\n .opacity-60 {\n opacity: .6;\n }\n\n .opacity-70 {\n opacity: .7;\n }\n\n .opacity-100 {\n opacity: 1;\n }\n\n .shadow-\\[0_-8px_8px_-8px_rgba\\(13\\,24\\,33\\,0\\.15\\)\\] {\n --tw-shadow: 0 -8px 8px -8px var(--tw-shadow-color, #0d182126);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n\n .shadow-\\[0_2px_6px_rgba\\(0\\,0\\,0\\,0\\.2\\)\\] {\n --tw-shadow: 0 2px 6px var(--tw-shadow-color, #0003);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n\n .shadow-\\[0_4px_12px_rgba\\(0\\,0\\,0\\,0\\.1\\)\\] {\n --tw-shadow: 0 4px 12px var(--tw-shadow-color, #0000001a);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n\n .shadow-\\[0_6px_16px_rgba\\(13\\,24\\,33\\,0\\.18\\)\\] {\n --tw-shadow: 0 6px 16px var(--tw-shadow-color, #0d18212e);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n\n .shadow-\\[2px_2px_25px_0px_rgba\\(0\\,0\\,0\\,0\\.1\\)\\] {\n --tw-shadow: 2px 2px 25px 0px var(--tw-shadow-color, #0000001a);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n\n .shadow-lg {\n --tw-shadow: 0 10px 15px -3px var(--tw-shadow-color, #0000001a), 0 4px 6px -4px var(--tw-shadow-color, #0000001a);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n\n .shadow-md {\n --tw-shadow: 0 4px 6px -1px var(--tw-shadow-color, #0000001a), 0 2px 4px -2px var(--tw-shadow-color, #0000001a);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n\n .shadow-none {\n --tw-shadow: 0 0 #0000;\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n\n .shadow-sm {\n --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, #0000001a), 0 1px 2px -1px var(--tw-shadow-color, #0000001a);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n\n .axebow-shadow-hover {\n transition: box-shadow .2s ease-in-out;\n }\n\n .axebow-shadow-hover:hover {\n box-shadow: 0 4px 12px #0d182114;\n }\n\n .outline {\n outline-style: var(--tw-outline-style);\n outline-width: 1px;\n }\n\n .blur {\n --tw-blur: blur(8px);\n filter: var(--tw-blur, ) var(--tw-brightness, ) var(--tw-contrast, ) var(--tw-grayscale, ) var(--tw-hue-rotate, ) var(--tw-invert, ) var(--tw-saturate, ) var(--tw-sepia, ) var(--tw-drop-shadow, );\n }\n\n .grayscale {\n --tw-grayscale: grayscale(100%);\n filter: var(--tw-blur, ) var(--tw-brightness, ) var(--tw-contrast, ) var(--tw-grayscale, ) var(--tw-hue-rotate, ) var(--tw-invert, ) var(--tw-saturate, ) var(--tw-sepia, ) var(--tw-drop-shadow, );\n }\n\n .filter {\n filter: var(--tw-blur, ) var(--tw-brightness, ) var(--tw-contrast, ) var(--tw-grayscale, ) var(--tw-hue-rotate, ) var(--tw-invert, ) var(--tw-saturate, ) var(--tw-sepia, ) var(--tw-drop-shadow, );\n }\n\n .transition {\n transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to, opacity, box-shadow, transform, translate, scale, rotate, filter, -webkit-backdrop-filter, backdrop-filter, display, content-visibility, overlay, pointer-events;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n\n .transition-\\[filter\\] {\n transition-property: filter;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n\n .transition-all {\n transition-property: all;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n\n .transition-colors {\n transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n\n .transition-opacity {\n transition-property: opacity;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n\n .transition-shadow {\n transition-property: box-shadow;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n\n .transition-transform {\n transition-property: transform, translate, scale, rotate;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n\n .delay-100 {\n transition-delay: .1s;\n }\n\n .duration-120 {\n --tw-duration: .12s;\n transition-duration: .12s;\n }\n\n .duration-150 {\n --tw-duration: .15s;\n transition-duration: .15s;\n }\n\n .duration-200 {\n --tw-duration: .2s;\n transition-duration: .2s;\n }\n\n .duration-300 {\n --tw-duration: .3s;\n transition-duration: .3s;\n }\n\n .ease-in-out {\n --tw-ease: var(--ease-in-out);\n transition-timing-function: var(--ease-in-out);\n }\n\n .ease-out {\n --tw-ease: var(--ease-out);\n transition-timing-function: var(--ease-out);\n }\n\n .outline-none {\n --tw-outline-style: none;\n outline-style: none;\n }\n\n .select-none {\n -webkit-user-select: none;\n user-select: none;\n }\n\n .\\[font-variation-settings\\:\\'FILL\\'_0\\,\\'wght\\'_400\\,\\'GRAD\\'_0\\,\\'opsz\\'_24\\] {\n font-variation-settings: \"FILL\" 0,\"wght\" 400,\"GRAD\" 0,\"opsz\" 24;\n }\n\n .\\[font-variation-settings\\:\\'FILL\\'_1\\,\\'wght\\'_400\\,\\'GRAD\\'_0\\,\\'opsz\\'_24\\] {\n font-variation-settings: \"FILL\" 1,\"wght\" 400,\"GRAD\" 0,\"opsz\" 24;\n }\n\n @media (hover: hover) {\n .group-hover\\:translate-x-0:is(:where(.group):hover *) {\n --tw-translate-x: 0;\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n\n .group-hover\\:rotate-15:is(:where(.group):hover *) {\n rotate: 15deg;\n }\n\n .group-hover\\:font-semibold:is(:where(.group):hover *) {\n --tw-font-weight: var(--font-weight-semibold);\n font-weight: var(--font-weight-semibold);\n }\n\n .group-hover\\:text-\\(--axebow-primary\\):is(:where(.group):hover *) {\n color: var(--axebow-primary);\n }\n\n .group-hover\\:text-red-500:is(:where(.group):hover *) {\n color: var(--color-red-500);\n }\n\n .group-hover\\:opacity-100:is(:where(.group):hover *) {\n opacity: 1;\n }\n\n .group-hover\\:invert:is(:where(.group):hover *) {\n --tw-invert: invert(100%);\n filter: var(--tw-blur, ) var(--tw-brightness, ) var(--tw-contrast, ) var(--tw-grayscale, ) var(--tw-hue-rotate, ) var(--tw-invert, ) var(--tw-saturate, ) var(--tw-sepia, ) var(--tw-drop-shadow, );\n }\n }\n\n .last\\:border-b-0:last-child {\n border-bottom-style: var(--tw-border-style);\n border-bottom-width: 0;\n }\n\n .focus-within\\:border-\\(--axebow-tertiary\\):focus-within {\n border-color: var(--axebow-tertiary);\n }\n\n .focus-within\\:border-blue-500:focus-within {\n border-color: var(--color-blue-500);\n }\n\n .focus-within\\:ring-2:focus-within {\n --tw-ring-shadow: var(--tw-ring-inset, ) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n\n .focus-within\\:ring-blue-100:focus-within {\n --tw-ring-color: var(--color-blue-100);\n }\n\n @media (hover: hover) {\n .hover\\:scale-105:hover {\n --tw-scale-x: 105%;\n --tw-scale-y: 105%;\n --tw-scale-z: 105%;\n scale: var(--tw-scale-x) var(--tw-scale-y);\n }\n\n .hover\\:rounded-md:hover {\n border-radius: var(--radius-md);\n }\n\n .hover\\:border-2:hover {\n border-style: var(--tw-border-style);\n border-width: 2px;\n }\n\n .hover\\:border-solid:hover {\n --tw-border-style: solid;\n border-style: solid;\n }\n\n .hover\\:border-\\(--axebow-gray\\):hover {\n border-color: var(--axebow-gray);\n }\n\n .hover\\:border-\\(--axebow-primary\\):hover {\n border-color: var(--axebow-primary);\n }\n\n .hover\\:border-\\(--axebow-tertiary\\):hover, .hover\\:border-\\[var\\(--axebow-tertiary\\)\\]:hover {\n border-color: var(--axebow-tertiary);\n }\n\n .hover\\:border-red-300:hover {\n border-color: var(--color-red-300);\n }\n\n .hover\\:bg-\\(--axebow-anti-flash-white\\):hover {\n background-color: var(--axebow-anti-flash-white);\n }\n\n .hover\\:bg-\\(--axebow-base\\):hover {\n background-color: var(--axebow-base);\n }\n\n .hover\\:bg-\\(--axebow-gray\\):hover {\n background-color: var(--axebow-gray);\n }\n\n .hover\\:bg-\\(--axebow-light-gray\\):hover {\n background-color: var(--axebow-light-gray);\n }\n\n .hover\\:bg-\\(--axebow-primary\\):hover {\n background-color: var(--axebow-primary);\n }\n\n .hover\\:bg-\\[var\\(--axebow-anti-flash-white\\)\\]:hover {\n background-color: var(--axebow-anti-flash-white);\n }\n\n .hover\\:bg-gray-50:hover {\n background-color: var(--color-gray-50);\n }\n\n .hover\\:bg-gray-100:hover {\n background-color: var(--color-gray-100);\n }\n\n .hover\\:bg-gray-200:hover {\n background-color: var(--color-gray-200);\n }\n\n .hover\\:bg-red-50:hover {\n background-color: var(--color-red-50);\n }\n\n .hover\\:bg-white:hover {\n background-color: var(--color-white);\n }\n\n .hover\\:px-\\[1\\.375rem\\]:hover {\n padding-inline: 1.375rem;\n }\n\n .hover\\:text-\\(--axebow-gray\\):hover {\n color: var(--axebow-gray);\n }\n\n .hover\\:text-\\(--axebow-primary\\):hover {\n color: var(--axebow-primary);\n }\n\n .hover\\:text-\\(--axebow-tertiary\\):hover {\n color: var(--axebow-tertiary);\n }\n\n .hover\\:text-\\[var\\(--axebow-gray\\)\\]:hover {\n color: var(--axebow-gray);\n }\n\n .hover\\:text-black:hover {\n color: var(--color-black);\n }\n\n .hover\\:text-gray-700:hover {\n color: var(--color-gray-700);\n }\n\n .hover\\:text-red-600:hover {\n color: var(--color-red-600);\n }\n\n .hover\\:underline:hover {\n text-decoration-line: underline;\n }\n\n .hover\\:opacity-80:hover {\n opacity: .8;\n }\n\n .hover\\:opacity-100:hover {\n opacity: 1;\n }\n\n .hover\\:shadow-\\[0_2px_6px_rgba\\(13\\,24\\,33\\,0\\.14\\)\\]:hover {\n --tw-shadow: 0 2px 6px var(--tw-shadow-color, #0d182124);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n\n .hover\\:shadow-\\[0_4px_12px_0_rgba\\(13\\,24\\,33\\,0\\.08\\)\\]:hover {\n --tw-shadow: 0 4px 12px 0 var(--tw-shadow-color, #0d182114);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n\n .hover\\:shadow-lg:hover {\n --tw-shadow: 0 10px 15px -3px var(--tw-shadow-color, #0000001a), 0 4px 6px -4px var(--tw-shadow-color, #0000001a);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n }\n\n .focus\\:outline-2:focus {\n outline-style: var(--tw-outline-style);\n outline-width: 2px;\n }\n\n .focus\\:outline-offset-1:focus {\n outline-offset: 1px;\n }\n\n .focus\\:outline-blue-500:focus {\n outline-color: var(--color-blue-500);\n }\n\n .focus\\:outline-none:focus {\n --tw-outline-style: none;\n outline-style: none;\n }\n\n .focus-visible\\:ring-2:focus-visible {\n --tw-ring-shadow: var(--tw-ring-inset, ) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n\n .focus-visible\\:ring-\\[\\#006BFF\\]:focus-visible {\n --tw-ring-color: #006bff;\n }\n\n .focus-visible\\:outline-2:focus-visible {\n outline-style: var(--tw-outline-style);\n outline-width: 2px;\n }\n\n .focus-visible\\:outline-\\(--axebow-tertiary\\):focus-visible {\n outline-color: var(--axebow-tertiary);\n }\n\n .active\\:cursor-grabbing:active {\n cursor: grabbing;\n }\n\n .disabled\\:pointer-events-none:disabled {\n pointer-events: none;\n }\n\n .disabled\\:cursor-not-allowed:disabled {\n cursor: not-allowed;\n }\n\n .disabled\\:opacity-50:disabled {\n opacity: .5;\n }\n\n @media (min-width: 48rem) {\n .md\\:gap-8 {\n gap: calc(var(--spacing) * 8);\n }\n }\n\n @media (min-width: 64rem) {\n .lg\\:sticky {\n position: sticky;\n }\n\n .lg\\:block {\n display: block;\n }\n\n .lg\\:flex {\n display: flex;\n }\n\n .lg\\:hidden {\n display: none;\n }\n\n .lg\\:inline {\n display: inline;\n }\n\n .lg\\:min-h-\\(--card-height\\) {\n min-height: var(--card-height);\n }\n\n .lg\\:min-h-\\[calc\\(100vh-6\\.25rem\\)\\] {\n min-height: calc(100vh - 6.25rem);\n }\n\n .lg\\:w-\\(--card-width\\) {\n width: var(--card-width);\n }\n\n .lg\\:cursor-default {\n cursor: default;\n }\n\n .lg\\:rounded-xl {\n border-radius: var(--radius-xl);\n }\n\n .lg\\:border {\n border-style: var(--tw-border-style);\n border-width: 1px;\n }\n\n .lg\\:text-base {\n font-size: var(--text-base);\n line-height: var(--tw-leading, var(--text-base--line-height));\n }\n\n .lg\\:text-lg {\n font-size: var(--text-lg);\n line-height: var(--tw-leading, var(--text-lg--line-height));\n }\n\n .lg\\:shadow {\n --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, #0000001a), 0 1px 2px -1px var(--tw-shadow-color, #0000001a);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n }\n}\n\n:host {\n font-family: var(--font-sans);\n font-size: var(--text-base);\n line-height: var(--text-base--line-height);\n --font-sans: \"Open Sans\", sans-serif;\n --text-xs: .625rem;\n --text-xs--line-height: .875rem;\n --text-sm: .75rem;\n --text-sm--line-height: 1rem;\n --text-base: .875rem;\n --text-base--line-height: 1.25rem;\n --text-md: 1rem;\n --text-md--line-height: 1.5rem;\n --text-lg: 1.125rem;\n --text-lg--line-height: 1.75rem;\n --text-xl: 1.25rem;\n --text-xl--line-height: 1.75rem;\n --text-2xl: 1.5rem;\n --text-2xl--line-height: 2rem;\n --text-3xl: 1.875rem;\n --text-3xl--line-height: 2.25rem;\n --text-4xl: 2.25rem;\n --text-4xl--line-height: 2.5rem;\n --text-5xl: 3rem;\n --text-5xl--line-height: 1;\n --text-6xl: 3.75rem;\n --text-6xl--line-height: 1;\n --text-7xl: 4.5rem;\n --text-7xl--line-height: 1;\n --text-8xl: 4.625rem;\n --text-8xl--line-height: 1;\n --text-9xl: 6.125rem;\n --text-9xl--line-height: 1;\n}\n\n:root {\n --sl-font-sans: \"Open Sans\", sans-serif;\n --sl-font-size-2x-small: var(--text-xs);\n --sl-font-size-x-small: var(--text-xs);\n --sl-font-size-small: var(--text-sm);\n --sl-font-size-medium: var(--text-base);\n --sl-font-size-large: var(--text-md);\n --sl-font-size-x-large: var(--text-lg);\n --sl-font-size-2x-large: var(--text-xl);\n --sl-font-size-3x-large: var(--text-3xl);\n --sl-font-size-4x-large: var(--text-5xl);\n --sl-input-font-size-small: var(--text-sm);\n --sl-input-font-size-medium: var(--text-base);\n --sl-input-font-size-large: var(--text-md);\n --sl-button-font-size-small: var(--text-sm);\n --sl-button-font-size-medium: var(--text-base);\n --sl-button-font-size-large: var(--text-md);\n --sl-tooltip-font-size: var(--text-base);\n}\n\nbutton, input, select, textarea {\n font-family: inherit;\n font-size: inherit;\n}\n\ninput, select, textarea, sl-menu-item::part(label), sl-option::part(label) {\n font-size: var(--text-base);\n}\n\n.axebow-blue-button::part(base) {\n background-color: var(--axebow-tertiary);\n}\n\n.info-container-page {\n flex-wrap: wrap;\n gap: 2rem;\n display: flex;\n}\n\nsl-divider {\n background: var(--axebow-light-gray);\n height: 1px;\n margin-top: .5rem;\n margin-bottom: .5rem;\n}\n\n.axebow-shadow {\n box-shadow: 2px 2px 25px #0000001a;\n}\n\n@property --tw-translate-x {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n\n@property --tw-translate-y {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n\n@property --tw-translate-z {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n\n@property --tw-rotate-x {\n syntax: \"*\";\n inherits: false\n}\n\n@property --tw-rotate-y {\n syntax: \"*\";\n inherits: false\n}\n\n@property --tw-rotate-z {\n syntax: \"*\";\n inherits: false\n}\n\n@property --tw-skew-x {\n syntax: \"*\";\n inherits: false\n}\n\n@property --tw-skew-y {\n syntax: \"*\";\n inherits: false\n}\n\n@property --tw-space-y-reverse {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n\n@property --tw-border-style {\n syntax: \"*\";\n inherits: false;\n initial-value: solid;\n}\n\n@property --tw-leading {\n syntax: \"*\";\n inherits: false\n}\n\n@property --tw-font-weight {\n syntax: \"*\";\n inherits: false\n}\n\n@property --tw-tracking {\n syntax: \"*\";\n inherits: false\n}\n\n@property --tw-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n\n@property --tw-shadow-color {\n syntax: \"*\";\n inherits: false\n}\n\n@property --tw-shadow-alpha {\n syntax: \"<percentage>\";\n inherits: false;\n initial-value: 100%;\n}\n\n@property --tw-inset-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n\n@property --tw-inset-shadow-color {\n syntax: \"*\";\n inherits: false\n}\n\n@property --tw-inset-shadow-alpha {\n syntax: \"<percentage>\";\n inherits: false;\n initial-value: 100%;\n}\n\n@property --tw-ring-color {\n syntax: \"*\";\n inherits: false\n}\n\n@property --tw-ring-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n\n@property --tw-inset-ring-color {\n syntax: \"*\";\n inherits: false\n}\n\n@property --tw-inset-ring-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n\n@property --tw-ring-inset {\n syntax: \"*\";\n inherits: false\n}\n\n@property --tw-ring-offset-width {\n syntax: \"<length>\";\n inherits: false;\n initial-value: 0;\n}\n\n@property --tw-ring-offset-color {\n syntax: \"*\";\n inherits: false;\n initial-value: #fff;\n}\n\n@property --tw-ring-offset-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n\n@property --tw-outline-style {\n syntax: \"*\";\n inherits: false;\n initial-value: solid;\n}\n\n@property --tw-blur {\n syntax: \"*\";\n inherits: false\n}\n\n@property --tw-brightness {\n syntax: \"*\";\n inherits: false\n}\n\n@property --tw-contrast {\n syntax: \"*\";\n inherits: false\n}\n\n@property --tw-grayscale {\n syntax: \"*\";\n inherits: false\n}\n\n@property --tw-hue-rotate {\n syntax: \"*\";\n inherits: false\n}\n\n@property --tw-invert {\n syntax: \"*\";\n inherits: false\n}\n\n@property --tw-opacity {\n syntax: \"*\";\n inherits: false\n}\n\n@property --tw-saturate {\n syntax: \"*\";\n inherits: false\n}\n\n@property --tw-sepia {\n syntax: \"*\";\n inherits: false\n}\n\n@property --tw-drop-shadow {\n syntax: \"*\";\n inherits: false\n}\n\n@property --tw-drop-shadow-color {\n syntax: \"*\";\n inherits: false\n}\n\n@property --tw-drop-shadow-alpha {\n syntax: \"<percentage>\";\n inherits: false;\n initial-value: 100%;\n}\n\n@property --tw-drop-shadow-size {\n syntax: \"*\";\n inherits: false\n}\n\n@property --tw-duration {\n syntax: \"*\";\n inherits: false\n}\n\n@property --tw-ease {\n syntax: \"*\";\n inherits: false\n}\n\n@property --tw-scale-x {\n syntax: \"*\";\n inherits: false;\n initial-value: 1;\n}\n\n@property --tw-scale-y {\n syntax: \"*\";\n inherits: false;\n initial-value: 1;\n}\n\n@property --tw-scale-z {\n syntax: \"*\";\n inherits: false;\n initial-value: 1;\n}\n";
129
130
  //#endregion
130
131
  //#region \0@oxc-project+runtime@0.139.0/helpers/esm/decorate.js
131
132
  function __decorate(decorators, target, key, desc) {
@@ -4523,10 +4524,16 @@ var AxebowCardVersionSelector = class AxebowCardVersionSelector extends LitEleme
4523
4524
  super(..._args);
4524
4525
  this.revisions = [];
4525
4526
  this.displayedRevision = "";
4527
+ this.disabled = false;
4526
4528
  }
4527
4529
  static {
4528
4530
  this.styles = [unsafeCSS(tailwind_default), css`
4529
- :host { display: inline-block; width: auto; max-width: 120px; margin-block: 0.25rem; }
4531
+ :host {
4532
+ display: inline-block;
4533
+ width: auto;
4534
+ max-width: var(--axebow-card-version-selector-max-width, 120px);
4535
+ margin-block: 0.25rem;
4536
+ }
4530
4537
  sl-select {
4531
4538
  --sl-input-background-color: transparent;
4532
4539
  --sl-input-border-color: transparent;
@@ -4547,7 +4554,7 @@ var AxebowCardVersionSelector = class AxebowCardVersionSelector extends LitEleme
4547
4554
  margin: 0;
4548
4555
  min-width: 0;
4549
4556
  width: fit-content !important;
4550
- max-width: 120px !important;
4557
+ max-width: var(--axebow-card-version-selector-max-width, 120px) !important;
4551
4558
  }
4552
4559
  sl-select::part(form-control) {
4553
4560
  display: inline-block;
@@ -4613,6 +4620,11 @@ var AxebowCardVersionSelector = class AxebowCardVersionSelector extends LitEleme
4613
4620
  }
4614
4621
  `];
4615
4622
  }
4623
+ updated(changed) {
4624
+ super.updated(changed);
4625
+ if (changed.has("maxWidth")) if (this.maxWidth) this.style.setProperty("--axebow-card-version-selector-max-width", this.maxWidth);
4626
+ else this.style.removeProperty("--axebow-card-version-selector-max-width");
4627
+ }
4616
4628
  _formatRevision(id) {
4617
4629
  if (!id) return "";
4618
4630
  const parts = id.split("/");
@@ -4620,7 +4632,7 @@ var AxebowCardVersionSelector = class AxebowCardVersionSelector extends LitEleme
4620
4632
  }
4621
4633
  render() {
4622
4634
  return html`
4623
- <sl-select size="small" value=${this.displayedRevision} @sl-change=${this._onChange}>
4635
+ <sl-select size="small" value=${this.displayedRevision} ?disabled=${this.disabled} @sl-change=${this._onChange}>
4624
4636
  ${this.revisions.map((rev) => html`
4625
4637
  <sl-option value=${rev.id}>
4626
4638
  ${this._formatRevision(rev.id)}
@@ -4641,6 +4653,8 @@ var AxebowCardVersionSelector = class AxebowCardVersionSelector extends LitEleme
4641
4653
  };
4642
4654
  __decorate([property({ type: Array })], AxebowCardVersionSelector.prototype, "revisions", void 0);
4643
4655
  __decorate([property({ type: String })], AxebowCardVersionSelector.prototype, "displayedRevision", void 0);
4656
+ __decorate([property({ type: Boolean })], AxebowCardVersionSelector.prototype, "disabled", void 0);
4657
+ __decorate([property({ type: String })], AxebowCardVersionSelector.prototype, "maxWidth", void 0);
4644
4658
  AxebowCardVersionSelector = __decorate([customElement("axebow-card-version-selector")], AxebowCardVersionSelector);
4645
4659
  //#endregion
4646
4660
  //#region src/components/cards/parts/axebow-role-tooltip.ts
@@ -6063,6 +6077,8 @@ var AxebowChannelConfigPanel = class AxebowChannelConfigPanel extends LitElement
6063
6077
  this.empty = true;
6064
6078
  this.channelTypeLabel = "";
6065
6079
  this.canEditAll = true;
6080
+ this.disabled = false;
6081
+ this.height = "80vh";
6066
6082
  }
6067
6083
  static {
6068
6084
  this.styles = [
@@ -6081,20 +6097,20 @@ var AxebowChannelConfigPanel = class AxebowChannelConfigPanel extends LitElement
6081
6097
  <div
6082
6098
  class="bg-white rounded-md axebow-shadow p-2 w-62.5 flex-col gap-3 transition-all duration-300 ease-in-out overflow-hidden
6083
6099
  hidden lg:flex ${this.empty ? "justify-center items-center text-(--axebow-gray)" : ""}"
6084
- style="height: 80vh;"
6100
+ style="height: ${this.height};"
6085
6101
  >
6086
6102
  ${this.empty ? "" : html`
6087
6103
  <div
6088
6104
  class="flex flex-col gap-3 opacity-100 transition-opacity duration-300 delay-100 w-full h-full overflow-y-auto"
6089
6105
  >
6090
- <div class="flex justify-between items-center gap-2">
6106
+ <div class="flex justify-between items-center gap-2 pointer-events-auto">
6091
6107
  <h1
6092
6108
  class="font-semibold text-sm text-(--axebow-secondary) truncate m-0"
6093
6109
  style="width: 14.625rem; height: 1rem; line-height: 1rem;"
6094
6110
  >
6095
6111
  ${this.channelTypeLabel}
6096
6112
  </h1>
6097
- ${this.canEditAll ? html`
6113
+ ${this.canEditAll && !this.disabled ? html`
6098
6114
  <div
6099
6115
  class="w-4.5 h-4.5 shrink-0 flex items-center justify-center cursor-pointer"
6100
6116
  @click=${this._handleDelete}
@@ -6102,8 +6118,16 @@ var AxebowChannelConfigPanel = class AxebowChannelConfigPanel extends LitElement
6102
6118
  <axebow-icon iconName="delete" iconColor="var(--axebow-error)" size="base"></axebow-icon>
6103
6119
  </div>
6104
6120
  ` : ""}
6121
+ ${this.disabled ? html`
6122
+ <div
6123
+ class="w-4.5 h-4.5 shrink-0 flex items-center justify-center cursor-pointer pointer-events-auto"
6124
+ @click=${this._handleClose}
6125
+ >
6126
+ <axebow-icon iconName="close" iconColor="var(--axebow-gray)" size="base"></axebow-icon>
6127
+ </div>
6128
+ ` : ""}
6105
6129
  </div>
6106
- <div class="flex flex-col gap-2 w-full">
6130
+ <div class="flex flex-col gap-2 w-full ${this.disabled ? "pointer-events-none" : ""}">
6107
6131
  <slot name="name-input"></slot>
6108
6132
  <slot name="port-input"></slot>
6109
6133
  <slot name="gateway-toggle"></slot>
@@ -6120,10 +6144,18 @@ var AxebowChannelConfigPanel = class AxebowChannelConfigPanel extends LitElement
6120
6144
  composed: true
6121
6145
  }));
6122
6146
  }
6147
+ _handleClose() {
6148
+ this.dispatchEvent(new CustomEvent("close", {
6149
+ bubbles: true,
6150
+ composed: true
6151
+ }));
6152
+ }
6123
6153
  };
6124
6154
  __decorate([property({ type: Boolean })], AxebowChannelConfigPanel.prototype, "empty", void 0);
6125
6155
  __decorate([property({ type: String })], AxebowChannelConfigPanel.prototype, "channelTypeLabel", void 0);
6126
6156
  __decorate([property({ type: Boolean })], AxebowChannelConfigPanel.prototype, "canEditAll", void 0);
6157
+ __decorate([property({ type: Boolean })], AxebowChannelConfigPanel.prototype, "disabled", void 0);
6158
+ __decorate([property({ type: String })], AxebowChannelConfigPanel.prototype, "height", void 0);
6127
6159
  AxebowChannelConfigPanel = __decorate([customElement("axebow-channel-config-panel")], AxebowChannelConfigPanel);
6128
6160
  //#endregion
6129
6161
  //#region src/components/axebow-mesh-node-renderer/axebow-mesh-node-renderer.ts
@@ -7482,6 +7514,219 @@ __decorate([property({ attribute: false })], TableChart.prototype, "chartOptions
7482
7514
  __decorate([property({ type: String })], TableChart.prototype, "height", void 0);
7483
7515
  TableChart = __decorate([customElement("table-chart")], TableChart);
7484
7516
  //#endregion
7517
+ //#region src/components/axebow-service-detail-header/axebow-service-detail-header.ts
7518
+ var AxebowServiceDetailHeader = class AxebowServiceDetailHeader extends LitElement {
7519
+ constructor(..._args) {
7520
+ super(..._args);
7521
+ this.locationTitle = "";
7522
+ this.locationTenantAccount = "";
7523
+ this.locationEnvironment = "";
7524
+ this.locationProject = "";
7525
+ this.softLimitsTitle = "";
7526
+ this.hardLimitsTitle = "";
7527
+ this.vcpusLabel = "";
7528
+ this.gbRamLabel = "";
7529
+ this.gbLabel = "";
7530
+ this.gbStorageLabel = "";
7531
+ this.storageLabel = "";
7532
+ this.volatileLabel = "";
7533
+ this.nonRepPersLabel = "";
7534
+ this.persistentRepLabel = "";
7535
+ this.runningVersionTitle = "";
7536
+ this.updateZipTooltip = "";
7537
+ this.revisions = [];
7538
+ this.displayedRevision = "";
7539
+ this.revisionsDisabled = false;
7540
+ this.updateWithZipLabel = "";
7541
+ this.showActionNeeded = false;
7542
+ this.actionNeededTitle = "";
7543
+ this.deployLabel = "";
7544
+ }
7545
+ static {
7546
+ this.styles = [
7547
+ unsafeCSS(tailwind_default),
7548
+ axebowTheme,
7549
+ css`
7550
+ :host {
7551
+ display: block;
7552
+ padding-bottom: 1rem;
7553
+ }
7554
+ `
7555
+ ];
7556
+ }
7557
+ _handleUpdateWithZip() {
7558
+ this.dispatchEvent(new CustomEvent("show-zip-dialog", {
7559
+ bubbles: true,
7560
+ composed: true
7561
+ }));
7562
+ }
7563
+ _handleDeploy() {
7564
+ this.dispatchEvent(new CustomEvent("deploy", {
7565
+ bubbles: true,
7566
+ composed: true
7567
+ }));
7568
+ }
7569
+ _renderTitle(text) {
7570
+ return html`<h3 class="m-0 text-sm font-bold uppercase text-(--axebow-gray)">${text}</h3>`;
7571
+ }
7572
+ _renderLocation() {
7573
+ const widthClass = this.showActionNeeded ? "w-63.75" : "w-99.75";
7574
+ return html`
7575
+ <div class="flex flex-col gap-1 ${widthClass} shrink-0">
7576
+ ${this._renderTitle(this.locationTitle)}
7577
+ <div
7578
+ class="${widthClass} h-19.75 box-border flex items-center justify-between gap-4 bg-(--axebow-base) rounded-[0.3125rem] py-4.75 px-4"
7579
+ >
7580
+ ${this.locationLogoUrl ? html`<img src=${this.locationLogoUrl} class="h-full aspect-square object-contain shrink-0" />` : html`<div class="h-full aspect-square shrink-0"></div>`}
7581
+ <div class="flex flex-col gap-0.5 min-w-0 flex-1">
7582
+ <p class="m-0 text-base font-semibold text-(--axebow-primary) truncate">${this.locationTenantAccount}</p>
7583
+ <h5 class="m-0 text-lg font-semibold text-(--axebow-primary) truncate">${this.locationEnvironment}</h5>
7584
+ <p class="m-0 text-xs text-(--axebow-gray) truncate">${this.locationProject}</p>
7585
+ </div>
7586
+ </div>
7587
+ </div>
7588
+ `;
7589
+ }
7590
+ _renderLimitsTooltip(limits) {
7591
+ return html`
7592
+ <axebow-tooltip class="p-0" placement="right">
7593
+ <div slot="content">
7594
+ <div class="flex items-center gap-1">
7595
+ <axebow-icon iconName="database" size="md"></axebow-icon>
7596
+ <span>${this.storageLabel}</span>
7597
+ <span class="ml-auto font-bold">${limits.storage} ${this.gbLabel}</span>
7598
+ </div>
7599
+ <div class="flex items-center gap-1">
7600
+ <axebow-icon iconName="subdirectory_arrow_right" size="md"></axebow-icon>
7601
+ <span>${this.volatileLabel}</span>
7602
+ <span class="ml-auto font-bold">${limits.volatileStorage} ${this.gbLabel}</span>
7603
+ </div>
7604
+ <div class="flex items-center gap-1">
7605
+ <axebow-icon iconName="subdirectory_arrow_right" size="md"></axebow-icon>
7606
+ <span>${this.nonRepPersLabel}</span>
7607
+ <span class="ml-auto font-bold">${limits.nonReplicatedStorage} ${this.gbLabel}</span>
7608
+ </div>
7609
+ <div class="flex items-center gap-1">
7610
+ <axebow-icon iconName="subdirectory_arrow_right" size="md"></axebow-icon>
7611
+ <span>${this.persistentRepLabel}</span>
7612
+ <span class="ml-auto font-bold">${limits.persistentStorage} ${this.gbLabel}</span>
7613
+ </div>
7614
+ </div>
7615
+ <axebow-icon iconName="info" iconColor="var(--axebow-gray)" size="md"></axebow-icon>
7616
+ </axebow-tooltip>
7617
+ `;
7618
+ }
7619
+ _renderLimitsBlock(title, limits) {
7620
+ return html`
7621
+ <div class="flex flex-col gap-1 w-66 shrink-0">
7622
+ ${this._renderTitle(title)}
7623
+ <div
7624
+ class="w-66 h-19.75 box-border flex items-center justify-between gap-6 bg-(--axebow-base) rounded-[0.3125rem] py-4.75 px-4"
7625
+ >
7626
+ <div class="flex flex-col items-start gap-0.5">
7627
+ <span class="text-lg font-semibold text-(--axebow-primary)">${limits.cpu}</span>
7628
+ <span class="text-base text-(--axebow-gray) whitespace-nowrap">${this.vcpusLabel}</span>
7629
+ </div>
7630
+ <div class="flex flex-col items-start gap-0.5">
7631
+ <span class="text-lg font-semibold text-(--axebow-primary)">${limits.memory}</span>
7632
+ <span class="text-base text-(--axebow-gray) whitespace-nowrap">${this.gbRamLabel}</span>
7633
+ </div>
7634
+ <div class="flex flex-col items-start gap-0.5">
7635
+ <span class="text-lg font-semibold text-(--axebow-primary)">${limits.storage}</span>
7636
+ <div class="flex items-center gap-1">
7637
+ <span class="text-base text-(--axebow-gray) whitespace-nowrap">${this.gbStorageLabel}</span>
7638
+ ${this._renderLimitsTooltip(limits)}
7639
+ </div>
7640
+ </div>
7641
+ </div>
7642
+ </div>
7643
+ `;
7644
+ }
7645
+ _renderRunningVersion() {
7646
+ return html`
7647
+ <div class="flex flex-col gap-1 w-41.75 shrink-0">
7648
+ ${this._renderTitle(this.runningVersionTitle)}
7649
+ <div class="w-41.75 h-19.75 box-border flex flex-col gap-2">
7650
+ <axebow-card-version-selector
7651
+ .revisions=${this.revisions}
7652
+ displayedRevision=${this.displayedRevision}
7653
+ ?disabled=${this.revisionsDisabled}
7654
+ maxWidth="10.4375rem"
7655
+ ></axebow-card-version-selector>
7656
+ <div class="flex items-center gap-1.5">
7657
+ <axebow-button
7658
+ variant="primary"
7659
+ outline
7660
+ fixedWidth="8.75rem"
7661
+ fixedHeight="2.375rem"
7662
+ @click=${this._handleUpdateWithZip}
7663
+ >
7664
+ ${this.updateWithZipLabel}
7665
+ </axebow-button>
7666
+ <axebow-tooltip placement="top">
7667
+ <div slot="content" class="max-w-65">${this.updateZipTooltip}</div>
7668
+ <div class="w-4.5 h-4.5 flex items-center justify-center">
7669
+ <axebow-icon iconName="info" iconColor="var(--axebow-gray)" size="sm"></axebow-icon>
7670
+ </div>
7671
+ </axebow-tooltip>
7672
+ </div>
7673
+ </div>
7674
+ </div>
7675
+ `;
7676
+ }
7677
+ _renderActionNeeded() {
7678
+ if (!this.showActionNeeded) return "";
7679
+ return html`
7680
+ <div class="flex flex-col gap-1 w-32 shrink-0">
7681
+ ${this._renderTitle(this.actionNeededTitle)}
7682
+ <div
7683
+ class="w-32 h-24.75 box-border flex items-center justify-center border border-solid border-(--axebow-light-gray) rounded-[0.3125rem]"
7684
+ >
7685
+ <axebow-button variant="success" fixedWidth="5.625rem" fixedHeight="2.375rem" @click=${this._handleDeploy}>
7686
+ ${this.deployLabel}
7687
+ </axebow-button>
7688
+ </div>
7689
+ </div>
7690
+ `;
7691
+ }
7692
+ render() {
7693
+ return html`
7694
+ <div class="w-293.5 h-32.75 box-border flex items-start gap-4 bg-white rounded-md p-4">
7695
+ ${this._renderLocation()} ${this._renderLimitsBlock(this.softLimitsTitle, this.softLimits)}
7696
+ ${this._renderLimitsBlock(this.hardLimitsTitle, this.hardLimits)} ${this._renderRunningVersion()}
7697
+ ${this._renderActionNeeded()}
7698
+ </div>
7699
+ `;
7700
+ }
7701
+ };
7702
+ __decorate([property({ type: String })], AxebowServiceDetailHeader.prototype, "locationTitle", void 0);
7703
+ __decorate([property({ type: String })], AxebowServiceDetailHeader.prototype, "locationLogoUrl", void 0);
7704
+ __decorate([property({ type: String })], AxebowServiceDetailHeader.prototype, "locationTenantAccount", void 0);
7705
+ __decorate([property({ type: String })], AxebowServiceDetailHeader.prototype, "locationEnvironment", void 0);
7706
+ __decorate([property({ type: String })], AxebowServiceDetailHeader.prototype, "locationProject", void 0);
7707
+ __decorate([property({ type: String })], AxebowServiceDetailHeader.prototype, "softLimitsTitle", void 0);
7708
+ __decorate([property({ attribute: false })], AxebowServiceDetailHeader.prototype, "softLimits", void 0);
7709
+ __decorate([property({ type: String })], AxebowServiceDetailHeader.prototype, "hardLimitsTitle", void 0);
7710
+ __decorate([property({ attribute: false })], AxebowServiceDetailHeader.prototype, "hardLimits", void 0);
7711
+ __decorate([property({ type: String })], AxebowServiceDetailHeader.prototype, "vcpusLabel", void 0);
7712
+ __decorate([property({ type: String })], AxebowServiceDetailHeader.prototype, "gbRamLabel", void 0);
7713
+ __decorate([property({ type: String })], AxebowServiceDetailHeader.prototype, "gbLabel", void 0);
7714
+ __decorate([property({ type: String })], AxebowServiceDetailHeader.prototype, "gbStorageLabel", void 0);
7715
+ __decorate([property({ type: String })], AxebowServiceDetailHeader.prototype, "storageLabel", void 0);
7716
+ __decorate([property({ type: String })], AxebowServiceDetailHeader.prototype, "volatileLabel", void 0);
7717
+ __decorate([property({ type: String })], AxebowServiceDetailHeader.prototype, "nonRepPersLabel", void 0);
7718
+ __decorate([property({ type: String })], AxebowServiceDetailHeader.prototype, "persistentRepLabel", void 0);
7719
+ __decorate([property({ type: String })], AxebowServiceDetailHeader.prototype, "runningVersionTitle", void 0);
7720
+ __decorate([property({ type: String })], AxebowServiceDetailHeader.prototype, "updateZipTooltip", void 0);
7721
+ __decorate([property({ type: Array })], AxebowServiceDetailHeader.prototype, "revisions", void 0);
7722
+ __decorate([property({ type: String })], AxebowServiceDetailHeader.prototype, "displayedRevision", void 0);
7723
+ __decorate([property({ type: Boolean })], AxebowServiceDetailHeader.prototype, "revisionsDisabled", void 0);
7724
+ __decorate([property({ type: String })], AxebowServiceDetailHeader.prototype, "updateWithZipLabel", void 0);
7725
+ __decorate([property({ type: Boolean })], AxebowServiceDetailHeader.prototype, "showActionNeeded", void 0);
7726
+ __decorate([property({ type: String })], AxebowServiceDetailHeader.prototype, "actionNeededTitle", void 0);
7727
+ __decorate([property({ type: String })], AxebowServiceDetailHeader.prototype, "deployLabel", void 0);
7728
+ AxebowServiceDetailHeader = __decorate([customElement("axebow-service-detail-header")], AxebowServiceDetailHeader);
7729
+ //#endregion
7485
7730
  //#region src/components/axebow-tenant-card/axebow-tenant-card.ts
7486
7731
  var AxebowTenantCard = class AxebowTenantCard extends LitElement {
7487
7732
  constructor(..._args) {
@@ -8279,123 +8524,15 @@ __decorate([state()], AxebowTabSelector.prototype, "_tabCount", void 0);
8279
8524
  __decorate([state()], AxebowTabSelector.prototype, "_tabDisabled", void 0);
8280
8525
  AxebowTabSelector = __decorate([customElement("axebow-tab-selector")], AxebowTabSelector);
8281
8526
  //#endregion
8282
- //#region src/components/axebow-resource-limits/parts/axebow-resource-limit-input.ts
8283
- var AxebowResourceLimitInput = class AxebowResourceLimitInput extends LitElement {
8284
- constructor(..._args) {
8285
- super(..._args);
8286
- this.label = "";
8287
- this.unit = "";
8288
- this.value = "";
8289
- this.max = Number.MAX_SAFE_INTEGER;
8290
- this.min = 0;
8291
- this.required = false;
8292
- this.disabled = false;
8293
- this.hasError = false;
8294
- }
8295
- static {
8296
- this.styles = [unsafeCSS(tailwind_default), axebowTheme];
8297
- }
8298
- render() {
8299
- return html`
8300
- <div class="flex flex-col items-center gap-2 w-24.75 shrink-0">
8301
- <div class="flex items-center gap-1">
8302
- ${this.required ? html`<span class="text-(--axebow-error)">*</span>` : ""}
8303
- <span class="text-sm font-semibold text-center">${this.label}</span>
8304
- </div>
8305
- <axebow-input
8306
- controlType="integer"
8307
- .compact=${true}
8308
- .value=${this.value}
8309
- .max=${this.max}
8310
- .min=${this.min}
8311
- .disabled=${this.disabled}
8312
- .hasError=${this.hasError}
8313
- .callback=${this.callback}
8314
- fixedWidth="6.1875rem"
8315
- fixedHeight="2.5rem"
8316
- ></axebow-input>
8317
- <span class="text-sm text-(--axebow-secondary)">${this.unit}</span>
8318
- </div>
8319
- `;
8320
- }
8321
- };
8322
- __decorate([property({ type: String })], AxebowResourceLimitInput.prototype, "label", void 0);
8323
- __decorate([property({ type: String })], AxebowResourceLimitInput.prototype, "unit", void 0);
8324
- __decorate([property({ type: String })], AxebowResourceLimitInput.prototype, "value", void 0);
8325
- __decorate([property({ type: Number })], AxebowResourceLimitInput.prototype, "max", void 0);
8326
- __decorate([property({ type: Number })], AxebowResourceLimitInput.prototype, "min", void 0);
8327
- __decorate([property({ type: Boolean })], AxebowResourceLimitInput.prototype, "required", void 0);
8328
- __decorate([property({ type: Boolean })], AxebowResourceLimitInput.prototype, "disabled", void 0);
8329
- __decorate([property({ type: Boolean })], AxebowResourceLimitInput.prototype, "hasError", void 0);
8330
- __decorate([property({ attribute: false })], AxebowResourceLimitInput.prototype, "callback", void 0);
8331
- AxebowResourceLimitInput = __decorate([customElement("axebow-resource-limit-input")], AxebowResourceLimitInput);
8332
- //#endregion
8333
- //#region src/components/axebow-resource-limits/axebow-resource-limits-panel.ts
8334
- var AxebowResourceLimitsPanel = class AxebowResourceLimitsPanel extends LitElement {
8335
- constructor(..._args) {
8336
- super(..._args);
8337
- this.storageFields = [];
8338
- }
8339
- static {
8340
- this.styles = [unsafeCSS(tailwind_default), axebowTheme];
8341
- }
8342
- _handleChange(field, e) {
8343
- const target = e.target;
8344
- let value = Math.trunc(Number(target.value));
8345
- if (value > field.max) value = field.max;
8346
- target.value = value.toString();
8347
- this.dispatchEvent(new CustomEvent("resource-limit-change", {
8348
- detail: {
8349
- key: field.key,
8350
- value
8351
- },
8352
- bubbles: true,
8353
- composed: true
8354
- }));
8355
- }
8356
- _renderField(field) {
8357
- return html`
8358
- <axebow-resource-limit-input
8359
- label=${field.label}
8360
- unit=${field.unit}
8361
- value=${field.value?.toString() ?? ""}
8362
- .max=${field.max}
8363
- .min=${field.min ?? 0}
8364
- ?required=${field.required}
8365
- ?disabled=${field.disabled}
8366
- ?hasError=${field.hasError}
8367
- .callback=${(e) => this._handleChange(field, e)}
8368
- ></axebow-resource-limit-input>
8369
- `;
8370
- }
8371
- render() {
8372
- if (!this.cpu || !this.memory) return html``;
8373
- return html`
8374
- <div class="flex items-center flex-wrap gap-19">
8375
- <div class="flex items-start gap-6">${this._renderField(this.cpu)} ${this._renderField(this.memory)}</div>
8376
- <div class="flex items-start gap-4 w-100.5 p-4 border border-(--axebow-table-header-border) rounded-md box-border">
8377
- ${this.storageFields.map((field) => this._renderField(field))}
8378
- </div>
8379
- </div>
8380
- `;
8381
- }
8382
- };
8383
- __decorate([property({ type: Object })], AxebowResourceLimitsPanel.prototype, "cpu", void 0);
8384
- __decorate([property({ type: Object })], AxebowResourceLimitsPanel.prototype, "memory", void 0);
8385
- __decorate([property({ type: Array })], AxebowResourceLimitsPanel.prototype, "storageFields", void 0);
8386
- AxebowResourceLimitsPanel = __decorate([customElement("axebow-resource-limits-panel")], AxebowResourceLimitsPanel);
8387
- //#endregion
8388
- //#region src/components/axebow-selector-slider/axebow-selector-slider.ts
8389
- var AxebowSelectorSlider = class AxebowSelectorSlider extends LitElement {
8527
+ //#region src/components/axebow-underline-tab-selector/axebow-underline-tab-selector.ts
8528
+ var AxebowUnderlineTabSelector = class AxebowUnderlineTabSelector extends LitElement {
8390
8529
  constructor(..._args) {
8391
8530
  super(..._args);
8392
- this.quantity = 0;
8393
- this.minTag = 0;
8394
- this.mediumTag = "Y";
8395
- this.maxTag = "X";
8396
- this.step = 1;
8397
8531
  this.disabled = false;
8398
- this._isDragging = false;
8532
+ this._activeTab = 0;
8533
+ this._tabCount = 0;
8534
+ this._tabDisabled = [];
8535
+ this._observer = null;
8399
8536
  }
8400
8537
  static {
8401
8538
  this.styles = [
@@ -8404,183 +8541,110 @@ var AxebowSelectorSlider = class AxebowSelectorSlider extends LitElement {
8404
8541
  css`
8405
8542
  :host {
8406
8543
  display: block;
8407
- width: 100%;
8544
+ }
8545
+ button {
8546
+ font-family: inherit;
8547
+ }
8548
+ :host([disabled]) {
8549
+ opacity: 0.6;
8550
+ pointer-events: none;
8551
+ cursor: not-allowed;
8408
8552
  }
8409
8553
  `
8410
8554
  ];
8411
8555
  }
8412
- get value() {
8413
- return this.quantity;
8556
+ connectedCallback() {
8557
+ super.connectedCallback();
8558
+ this._observer = new MutationObserver(() => this._updateTabCount());
8559
+ this._observer.observe(this, {
8560
+ childList: true,
8561
+ attributes: true,
8562
+ attributeFilter: ["disabled"],
8563
+ subtree: true
8564
+ });
8565
+ this._updateTabCount();
8414
8566
  }
8415
- set value(val) {
8416
- this.quantity = val;
8567
+ disconnectedCallback() {
8568
+ super.disconnectedCallback();
8569
+ this._observer?.disconnect();
8417
8570
  }
8418
- get _minVal() {
8419
- if (typeof this.min === "number") return this.min;
8420
- const n = Number(this.minTag);
8421
- return isNaN(n) ? 0 : n;
8571
+ firstUpdated() {
8572
+ this._updateTabCount();
8422
8573
  }
8423
- get _maxVal() {
8424
- if (typeof this.max === "number") return this.max;
8425
- const n = Number(this.maxTag);
8426
- return isNaN(n) ? 100 : n;
8427
- }
8428
- get _numericQuantity() {
8429
- if (typeof this.quantity === "string") {
8430
- const str = this.quantity.toLowerCase();
8431
- if (str === "min") return this._minVal;
8432
- if (str === "max") return this._maxVal;
8433
- if (str === "middle") return Math.round((this._minVal + this._maxVal) / 2);
8434
- const parsed = Number(this.quantity);
8435
- if (!isNaN(parsed)) return parsed;
8436
- }
8437
- return typeof this.quantity === "number" ? this.quantity : this._minVal;
8438
- }
8439
- get _percentage() {
8440
- const min = this._minVal;
8441
- const max = this._maxVal;
8442
- if (max <= min) return 0;
8443
- return (Math.max(min, Math.min(max, this._numericQuantity)) - min) / (max - min) * 100;
8574
+ updated(changedProperties) {
8575
+ if (changedProperties.has("activeTab") && this.activeTab !== void 0 && this._activeTab !== this.activeTab) this._activeTab = this.activeTab;
8576
+ if (changedProperties.has("disabled")) this.toggleAttribute("disabled", this.disabled);
8444
8577
  }
8445
- _setValue(newValue) {
8446
- const min = this._minVal;
8447
- const max = this._maxVal;
8448
- const clamped = Math.max(min, Math.min(max, newValue));
8449
- if (this._numericQuantity !== clamped) {
8450
- this.quantity = clamped;
8451
- this.dispatchEvent(new CustomEvent("change", {
8452
- detail: {
8453
- value: clamped,
8454
- quantity: clamped
8455
- },
8456
- bubbles: true,
8457
- composed: true
8458
- }));
8578
+ _updateTabCount() {
8579
+ const count = Array.from(this.children).filter((el) => el.getAttribute("slot")?.startsWith("tab-label-")).length;
8580
+ if (count !== this._tabCount) {
8581
+ if (this._activeTab >= count) this._activeTab = 0;
8582
+ this._tabCount = count;
8459
8583
  }
8584
+ this._tabDisabled = Array.from({ length: this._tabCount }, (_, i) => {
8585
+ return this.querySelector(`[slot="tab-label-${i}"]`)?.hasAttribute("disabled") ?? false;
8586
+ });
8460
8587
  }
8461
- _handlePointerDown(e) {
8462
- if (this.disabled) return;
8463
- this._isDragging = true;
8464
- this._updateFromPointer(e);
8465
- const handlePointerMove = (moveEv) => {
8466
- if (this._isDragging) this._updateFromPointer(moveEv);
8467
- };
8468
- const handlePointerUp = () => {
8469
- this._isDragging = false;
8470
- window.removeEventListener("pointermove", handlePointerMove);
8471
- window.removeEventListener("pointerup", handlePointerUp);
8472
- };
8473
- window.addEventListener("pointermove", handlePointerMove);
8474
- window.addEventListener("pointerup", handlePointerUp);
8475
- }
8476
- _updateFromPointer(e) {
8477
- if (!this._trackContainer) return;
8478
- const rect = this._trackContainer.getBoundingClientRect();
8479
- const x = e.clientX - rect.left;
8480
- const width = rect.width;
8481
- if (width <= 0) return;
8482
- const ratio = Math.max(0, Math.min(1, x / width));
8483
- const min = this._minVal;
8484
- const rawVal = min + ratio * (this._maxVal - min);
8485
- const step = this.step || 1;
8486
- const stepped = Math.round((rawVal - min) / step) * step + min;
8487
- this._setValue(stepped);
8488
- }
8489
- _handleKeyDown(e) {
8490
- if (this.disabled) return;
8491
- const min = this._minVal;
8492
- const max = this._maxVal;
8493
- const step = this.step || 1;
8494
- const current = this._numericQuantity;
8495
- if (e.key === "ArrowRight" || e.key === "ArrowUp") {
8496
- e.preventDefault();
8497
- this._setValue(Math.min(max, current + step));
8498
- } else if (e.key === "ArrowLeft" || e.key === "ArrowDown") {
8499
- e.preventDefault();
8500
- this._setValue(Math.max(min, current - step));
8501
- } else if (e.key === "Home") {
8502
- e.preventDefault();
8503
- this._setValue(min);
8504
- } else if (e.key === "End") {
8505
- e.preventDefault();
8506
- this._setValue(max);
8507
- }
8588
+ _selectTab(index) {
8589
+ if (this.disabled || this._tabDisabled[index]) return;
8590
+ this._activeTab = index;
8591
+ this.dispatchEvent(new CustomEvent("tab-change", {
8592
+ detail: { index },
8593
+ bubbles: true,
8594
+ composed: true
8595
+ }));
8508
8596
  }
8509
8597
  render() {
8510
- const percent = this._percentage;
8511
- const currentVal = this._numericQuantity;
8512
- const min = this._minVal;
8513
- const max = this._maxVal;
8514
- const mid = Math.round((min + max) / 2);
8598
+ const tabs = Array.from({ length: this._tabCount }, (_, i) => i);
8515
8599
  return html`
8516
- <div class="w-full flex flex-col gap-2 select-none ${this.disabled ? "opacity-50 pointer-events-none" : ""}">
8517
- <!-- Slider Track Container -->
8518
- <div
8519
- class="relative w-full h-8 flex items-center cursor-pointer touch-none focus:outline-none focus-visible:ring-2 focus-visible:ring-[#006BFF] rounded-full"
8520
- tabindex=${this.disabled ? -1 : 0}
8521
- role="slider"
8522
- aria-valuemin=${min}
8523
- aria-valuemax=${max}
8524
- aria-valuenow=${currentVal}
8525
- aria-valuetext=${String(currentVal)}
8526
- @pointerdown=${this._handlePointerDown}
8527
- @keydown=${this._handleKeyDown}
8528
- >
8529
- <!-- Outer track padding container for exact knob alignment -->
8530
- <div class="slider-track-container relative w-full h-3 rounded-full bg-[#C7DCFA] overflow-visible">
8531
- <!-- Active Fill Track -->
8532
- <div
8533
- class="absolute left-0 top-0 bottom-0 rounded-full bg-[#006BFF] transition-all duration-150 ease-out"
8534
- style="width: ${percent}%;"
8535
- ></div>
8536
-
8537
- <!-- Slider Thumb Knob -->
8538
- <div
8539
- class="absolute top-1/2 -translate-y-1/2 -translate-x-1/2 w-7 h-7 rounded-full bg-[#006BFF] border-2 border-white shadow-[0_2px_6px_rgba(0,0,0,0.2)] transition-all duration-150 ease-out cursor-grab active:cursor-grabbing hover:scale-105"
8540
- style="left: ${percent}%;"
8541
- ></div>
8542
- </div>
8543
- </div>
8544
-
8545
- <!-- Labels below -->
8546
- <div class="flex justify-between items-center text-sm font-semibold text-[#78787A] px-1">
8547
- <span class="w-1/3 text-left cursor-pointer" @click=${() => !this.disabled && this._setValue(min)}>
8548
- ${this.minTag}
8549
- </span>
8550
- <span class="w-1/3 text-center cursor-pointer" @click=${() => !this.disabled && this._setValue(mid)}>
8551
- ${this.mediumTag}
8552
- </span>
8553
- <span class="w-1/3 text-right cursor-pointer" @click=${() => !this.disabled && this._setValue(max)}>
8554
- ${this.maxTag}
8555
- </span>
8556
- </div>
8600
+ <div class="w-293.5 flex">
8601
+ ${tabs.map((i) => {
8602
+ const active = this._activeTab === i;
8603
+ const isDisabled = this._tabDisabled[i];
8604
+ return html`
8605
+ <button
8606
+ class="shrink-0 h-8 px-8 flex items-center justify-center text-base bg-transparent
8607
+ transition-colors duration-200
8608
+ focus-visible:outline-2 focus-visible:outline-(--axebow-tertiary)
8609
+ ${isDisabled ? "opacity-50 cursor-not-allowed" : "cursor-pointer"}
8610
+ ${active ? "font-semibold text-(--axebow-primary) border-b-2 border-solid border-(--axebow-primary) border-t-0 border-l-0 border-r-0" : "font-medium text-[#8A94AE] border-b border-solid border-(--axebow-light-gray) border-t-0 border-l-0 border-r-0"}"
8611
+ ?disabled=${isDisabled}
8612
+ @click=${() => this._selectTab(i)}
8613
+ >
8614
+ <slot name="tab-label-${i}"></slot>
8615
+ </button>
8616
+ `;
8617
+ })}
8618
+ <div class="flex-1 border-b border-solid border-(--axebow-light-gray) border-t-0 border-l-0 border-r-0"></div>
8557
8619
  </div>
8620
+ ${tabs.map((i) => html`
8621
+ <div class="${this._activeTab === i ? "block" : "hidden"}">
8622
+ <slot name="tab-panel-${i}"></slot>
8623
+ </div>
8624
+ `)}
8558
8625
  `;
8559
8626
  }
8560
8627
  };
8561
8628
  __decorate([property({
8562
- type: Number,
8563
- reflect: true
8564
- })], AxebowSelectorSlider.prototype, "quantity", void 0);
8565
- __decorate([property()], AxebowSelectorSlider.prototype, "minTag", void 0);
8566
- __decorate([property()], AxebowSelectorSlider.prototype, "mediumTag", void 0);
8567
- __decorate([property()], AxebowSelectorSlider.prototype, "maxTag", void 0);
8568
- __decorate([property({ type: Number })], AxebowSelectorSlider.prototype, "min", void 0);
8569
- __decorate([property({ type: Number })], AxebowSelectorSlider.prototype, "max", void 0);
8570
- __decorate([property({ type: Number })], AxebowSelectorSlider.prototype, "step", void 0);
8571
- __decorate([property({ type: Boolean })], AxebowSelectorSlider.prototype, "disabled", void 0);
8572
- __decorate([property()], AxebowSelectorSlider.prototype, "value", null);
8573
- __decorate([query(".slider-track-container")], AxebowSelectorSlider.prototype, "_trackContainer", void 0);
8574
- AxebowSelectorSlider = __decorate([customElement("axebow-selector-slider")], AxebowSelectorSlider);
8629
+ type: Boolean,
8630
+ attribute: false
8631
+ })], AxebowUnderlineTabSelector.prototype, "disabled", void 0);
8632
+ __decorate([property({ type: Number })], AxebowUnderlineTabSelector.prototype, "activeTab", void 0);
8633
+ __decorate([state()], AxebowUnderlineTabSelector.prototype, "_activeTab", void 0);
8634
+ __decorate([state()], AxebowUnderlineTabSelector.prototype, "_tabCount", void 0);
8635
+ __decorate([state()], AxebowUnderlineTabSelector.prototype, "_tabDisabled", void 0);
8636
+ AxebowUnderlineTabSelector = __decorate([customElement("axebow-underline-tab-selector")], AxebowUnderlineTabSelector);
8575
8637
  //#endregion
8576
- //#region src/components/axebow-deploy-summary/axebow-deploy-summary.ts
8577
- var AxebowDeploySummary = class AxebowDeploySummary extends LitElement {
8638
+ //#region src/components/axebow-role-card/axebow-role-card.ts
8639
+ var AxebowRoleCard = class AxebowRoleCard extends LitElement {
8578
8640
  constructor(..._args) {
8579
8641
  super(..._args);
8580
- this.summaryTitle = "";
8581
- this.showDownloadButton = false;
8582
- this.downloadLabel = "";
8583
- this.currentStep = 0;
8642
+ this.name = "";
8643
+ this.logoUrl = "";
8644
+ this.descriptionPrefix = "";
8645
+ this.description = "";
8646
+ this.resourceLimitsTitle = "";
8647
+ this.resources = [];
8584
8648
  }
8585
8649
  static {
8586
8650
  this.styles = [
@@ -8589,69 +8653,850 @@ var AxebowDeploySummary = class AxebowDeploySummary extends LitElement {
8589
8653
  css`
8590
8654
  :host {
8591
8655
  display: block;
8592
- height: 100%;
8593
8656
  }
8594
- axebow-summary-card {
8595
- display: block;
8596
- height: 100%;
8657
+ sl-divider {
8658
+ --color: var(--axebow-gray);
8659
+ --width: 1px;
8597
8660
  }
8598
- /* The plain, solid divider used between every summary section -
8599
- matches whatever separates the step titles. */
8600
- sl-divider.summary-title-divider {
8601
- --color: var(--axebow-table-header-border, #dbdde4);
8602
- --spacing: 0.75rem;
8661
+ sl-input::part(base) {
8662
+ width: 100%;
8663
+ height: 2.5rem;
8603
8664
  }
8604
- /* Dashed variant used inside the autoscaling summary. */
8605
- sl-divider.summary-dashed-divider {
8606
- --color: var(--axebow-base);
8607
- --spacing: 0.75rem;
8608
- border-top-style: dashed !important;
8665
+ sl-input::part(input) {
8666
+ text-align: center;
8609
8667
  }
8610
8668
  `
8611
8669
  ];
8612
8670
  }
8613
- updated(changedProperties) {
8614
- super.updated(changedProperties);
8615
- if (changedProperties.has("currentStep")) {
8616
- const oldStep = changedProperties.get("currentStep");
8617
- if (oldStep !== void 0 && this.currentStep > oldStep) this._scrollToBottom();
8618
- }
8619
- }
8620
- _scrollToBottom() {
8621
- setTimeout(() => {
8622
- const summaryCard = this.renderRoot.querySelector("axebow-summary-card");
8623
- if (summaryCard && summaryCard.scrollToBottom) summaryCard.scrollToBottom();
8624
- const container = this.renderRoot.querySelector(".overflow-y-auto");
8625
- if (container) container.scrollTop = container.scrollHeight;
8626
- }, 100);
8671
+ _renderResource(resource) {
8672
+ return html`
8673
+ <div class="w-24.75 h-20.75 shrink-0 flex flex-col items-center justify-center gap-1">
8674
+ <h3 class="m-0 text-base font-semibold self-start">${resource.title}</h3>
8675
+ <sl-input class="w-full" type="number" value=${resource.value} disabled></sl-input>
8676
+ <p class="m-0 text-xs">${resource.unit}</p>
8677
+ </div>
8678
+ `;
8627
8679
  }
8628
8680
  render() {
8629
8681
  return html`
8630
- <axebow-summary-card title="${this.summaryTitle}">
8631
- ${this.showDownloadButton ? html`
8632
- <axebow-button slot="header-actions" variant="text" size="medium" @click=${this._handleDownloadBundle}>
8633
- <axebow-icon
8634
- iconName="download_for_offline"
8635
- slot="suffix"
8636
- iconColor="var(--axebow-tertiary)"
8637
- size="xl"
8638
- ></axebow-icon>
8639
- <span class="text-sm lg:text-base hidden lg:inline">${this.downloadLabel}</span>
8640
- </axebow-button>
8641
- ` : ""}
8642
- ${this._renderDeploymentInfo()}
8643
- <div class="h-px border-t border-dashed border-gray-400 my-4"></div>
8644
- ${this._renderResourceLimits()}
8645
- <sl-divider class="summary-title-divider"></sl-divider>
8646
- <div class="flex-1 overflow-y-auto flex flex-col">
8647
- ${this._renderIdentificationStep()} ${this._renderResourcesStep()} ${this._renderScalingStep()}
8648
- ${this._renderChannelsStep()} ${this._renderConfigurationStep()}
8682
+ <div class="w-95 h-83.25 box-border bg-white rounded-md p-4 flex flex-col">
8683
+ <div class="w-87 h-4.25 flex items-center">
8684
+ <h1 class="m-0 uppercase text-left text-base font-semibold text-(--axebow-gray) truncate">${this.name}</h1>
8649
8685
  </div>
8650
- </axebow-summary-card>
8686
+ <sl-divider></sl-divider>
8687
+ <div class="w-12.5 h-12.5 shrink-0">
8688
+ <img src=${this.logoUrl} class="w-full h-full object-contain" />
8689
+ </div>
8690
+ <div class="w-87 h-12.75 mt-4 overflow-hidden">
8691
+ <p class="m-0 wrap-break-word whitespace-normal">
8692
+ <strong>${this.descriptionPrefix}</strong> ${this.description}
8693
+ </p>
8694
+ </div>
8695
+ <div class="w-27 h-4.25 mt-4 flex items-center">
8696
+ <h4 class="m-0 text-base font-semibold text-black">${this.resourceLimitsTitle}</h4>
8697
+ </div>
8698
+ <div class="w-87 h-22.75 mt-4 flex items-center gap-2.25">
8699
+ ${this.resources.map((resource, i) => html`
8700
+ ${i === 2 ? html`<div class="w-6 h-full flex items-center justify-center shrink-0">
8701
+ <axebow-icon iconName="border_horizontal" size="md"></axebow-icon>
8702
+ </div>` : ""}
8703
+ ${this._renderResource(resource)}
8704
+ `)}
8705
+ </div>
8706
+ </div>
8651
8707
  `;
8652
8708
  }
8653
- _renderDeploymentInfo() {
8654
- const info = this.deploymentInfo;
8709
+ };
8710
+ __decorate([property({ type: String })], AxebowRoleCard.prototype, "name", void 0);
8711
+ __decorate([property({ type: String })], AxebowRoleCard.prototype, "logoUrl", void 0);
8712
+ __decorate([property({ type: String })], AxebowRoleCard.prototype, "descriptionPrefix", void 0);
8713
+ __decorate([property({ type: String })], AxebowRoleCard.prototype, "description", void 0);
8714
+ __decorate([property({ type: String })], AxebowRoleCard.prototype, "resourceLimitsTitle", void 0);
8715
+ __decorate([property({ attribute: false })], AxebowRoleCard.prototype, "resources", void 0);
8716
+ AxebowRoleCard = __decorate([customElement("axebow-role-card")], AxebowRoleCard);
8717
+ //#endregion
8718
+ //#region src/components/axebow-time-range-panel/axebow-time-range-panel.ts
8719
+ var AxebowTimeRangePanel = class AxebowTimeRangePanel extends LitElement {
8720
+ constructor(..._args) {
8721
+ super(..._args);
8722
+ this.title = "";
8723
+ this.buttonText = "";
8724
+ this.searchPlaceholder = "";
8725
+ this.searchValue = "";
8726
+ this.ranges = [];
8727
+ this.absoluteTitle = "";
8728
+ this.fromLabel = "";
8729
+ this.fromValue = "";
8730
+ this.toLabel = "";
8731
+ this.toValue = "";
8732
+ this.applyLabel = "";
8733
+ this._handleSearchChange = (e) => {
8734
+ this._emit("search-change", { value: e.detail.value });
8735
+ };
8736
+ this._handleFromChange = (e) => {
8737
+ this._emit("from-change", { value: e.target.value });
8738
+ };
8739
+ this._handleApply = () => {
8740
+ this._emit("apply");
8741
+ this.renderRoot.querySelector("sl-dropdown")?.hide();
8742
+ };
8743
+ }
8744
+ static {
8745
+ this.styles = [
8746
+ unsafeCSS(tailwind_default),
8747
+ axebowTheme,
8748
+ css`
8749
+ :host {
8750
+ display: block;
8751
+ }
8752
+ sl-input::part(input) {
8753
+ font-size: 0.95rem;
8754
+ color: var(--axebow-strong-gray);
8755
+ background-color: #f3f4f6;
8756
+ }
8757
+ sl-input::part(base) {
8758
+ background-color: #f3f4f6;
8759
+ width: 100%;
8760
+ }
8761
+ .apply-button::part(base) {
8762
+ font-size: 0.875rem !important;
8763
+ }
8764
+ `
8765
+ ];
8766
+ }
8767
+ _emit(eventName, detail) {
8768
+ this.dispatchEvent(new CustomEvent(eventName, {
8769
+ detail,
8770
+ bubbles: true,
8771
+ composed: true
8772
+ }));
8773
+ }
8774
+ _handleRangeSelect(range) {
8775
+ this._emit("range-select", { value: range.value });
8776
+ }
8777
+ _renderQuickRanges() {
8778
+ return html`
8779
+ <sl-menu class="w-53 h-112 box-border p-2 rounded-none!">
8780
+ <axebow-search
8781
+ placeholder=${this.searchPlaceholder}
8782
+ .value=${this.searchValue}
8783
+ width="12.25rem"
8784
+ height="2.5rem"
8785
+ @search-change=${this._handleSearchChange}
8786
+ ></axebow-search>
8787
+ ${this.ranges.map((range) => html`
8788
+ <sl-menu-item @click=${() => this._handleRangeSelect(range)} ?selected=${range.selected}>
8789
+ ${range.label}
8790
+ </sl-menu-item>
8791
+ `)}
8792
+ </sl-menu>
8793
+ `;
8794
+ }
8795
+ _renderAbsoluteTimeSection() {
8796
+ return html`
8797
+ <div class="w-74.75 h-112 box-border flex flex-col p-4 gap-2 bg-white border-l border-solid border-gray-100">
8798
+ <h2 class="font-bold">${this.absoluteTitle}</h2>
8799
+ <label for="from-datetime">${this.fromLabel}</label>
8800
+ <sl-input
8801
+ id="from-datetime"
8802
+ type="datetime-local"
8803
+ .value=${this.fromValue}
8804
+ @sl-change=${this._handleFromChange}
8805
+ ></sl-input>
8806
+ <label for="to-datetime">${this.toLabel}</label>
8807
+ <sl-input id="to-datetime" type="text" value=${this.toValue} disabled></sl-input>
8808
+ <axebow-button
8809
+ variant="primary"
8810
+ fixedWidth="16.421875rem"
8811
+ fixedHeight="2.5rem"
8812
+ class="mt-4 apply-button"
8813
+ @click=${this._handleApply}
8814
+ >
8815
+ ${this.applyLabel}
8816
+ </axebow-button>
8817
+ </div>
8818
+ `;
8819
+ }
8820
+ render() {
8821
+ return html`
8822
+ <div class="flex flex-col gap-2.5">
8823
+ <div class="w-70.5 h-4.25 flex items-center">
8824
+ <h1 class="m-0 text-base font-semibold">${this.title}</h1>
8825
+ </div>
8826
+ <sl-dropdown class="w-70.5">
8827
+ <axebow-button class="w-full" slot="trigger" caret fixedWidth="17.625rem" fixedHeight="2.5rem">
8828
+ ${this.buttonText}
8829
+ </axebow-button>
8830
+ <div
8831
+ class="w-127.75 h-112 box-border my-2 flex text-sm border border-solid border-(--axebow-primary) rounded-[0.375rem] overflow-hidden"
8832
+ >
8833
+ ${this._renderQuickRanges()} ${this._renderAbsoluteTimeSection()}
8834
+ </div>
8835
+ </sl-dropdown>
8836
+ </div>
8837
+ `;
8838
+ }
8839
+ };
8840
+ __decorate([property({ type: String })], AxebowTimeRangePanel.prototype, "title", void 0);
8841
+ __decorate([property({ type: String })], AxebowTimeRangePanel.prototype, "buttonText", void 0);
8842
+ __decorate([property({ type: String })], AxebowTimeRangePanel.prototype, "searchPlaceholder", void 0);
8843
+ __decorate([property({ type: String })], AxebowTimeRangePanel.prototype, "searchValue", void 0);
8844
+ __decorate([property({ attribute: false })], AxebowTimeRangePanel.prototype, "ranges", void 0);
8845
+ __decorate([property({ type: String })], AxebowTimeRangePanel.prototype, "absoluteTitle", void 0);
8846
+ __decorate([property({ type: String })], AxebowTimeRangePanel.prototype, "fromLabel", void 0);
8847
+ __decorate([property({ type: String })], AxebowTimeRangePanel.prototype, "fromValue", void 0);
8848
+ __decorate([property({ type: String })], AxebowTimeRangePanel.prototype, "toLabel", void 0);
8849
+ __decorate([property({ type: String })], AxebowTimeRangePanel.prototype, "toValue", void 0);
8850
+ __decorate([property({ type: String })], AxebowTimeRangePanel.prototype, "applyLabel", void 0);
8851
+ AxebowTimeRangePanel = __decorate([customElement("axebow-time-range-panel")], AxebowTimeRangePanel);
8852
+ //#endregion
8853
+ //#region src/components/axebow-role-container-dropdown/axebow-role-container-dropdown.ts
8854
+ var AxebowRoleContainerDropdown = class AxebowRoleContainerDropdown extends LitElement {
8855
+ constructor(..._args) {
8856
+ super(..._args);
8857
+ this.title = "";
8858
+ this.buttonText = "";
8859
+ this.allContainersLabel = "";
8860
+ this.allContainersSelected = false;
8861
+ this.roles = [];
8862
+ this.clearAllLabel = "";
8863
+ this.applyFilterLabel = "";
8864
+ this._handleClearAll = () => {
8865
+ this.dispatchEvent(new CustomEvent("clear-all", {
8866
+ bubbles: true,
8867
+ composed: true
8868
+ }));
8869
+ };
8870
+ this._handleApplyFilter = () => {
8871
+ this.dispatchEvent(new CustomEvent("apply-filter", {
8872
+ bubbles: true,
8873
+ composed: true
8874
+ }));
8875
+ this.renderRoot.querySelector("sl-dropdown")?.hide();
8876
+ };
8877
+ }
8878
+ static {
8879
+ this.styles = [
8880
+ unsafeCSS(tailwind_default),
8881
+ axebowTheme,
8882
+ css`
8883
+ :host {
8884
+ display: block;
8885
+ }
8886
+ sl-menu-item::part(base) {
8887
+ padding-top: 0.71875rem !important;
8888
+ padding-bottom: 0.71875rem !important;
8889
+ padding-left: 0.75rem !important;
8890
+ padding-right: 0.75rem !important;
8891
+ }
8892
+ sl-checkbox::part(base) {
8893
+ display: flex;
8894
+ align-items: center;
8895
+ }
8896
+ sl-checkbox::part(control) {
8897
+ margin-top: 0 !important;
8898
+ margin-bottom: 0 !important;
8899
+ }
8900
+ sl-checkbox::part(label) {
8901
+ display: flex;
8902
+ align-items: center;
8903
+ }
8904
+ .role-container-panel::part(popup) {
8905
+ z-index: var(--sl-z-index-dropdown);
8906
+ }
8907
+ `
8908
+ ];
8909
+ }
8910
+ _emitToggle(selection) {
8911
+ this.dispatchEvent(new CustomEvent("item-toggle", {
8912
+ detail: { selection },
8913
+ bubbles: true,
8914
+ composed: true
8915
+ }));
8916
+ }
8917
+ _renderAllContainersOption() {
8918
+ return html`
8919
+ <sl-menu-item @click=${(e) => this._handleItemClick(e, { type: "all" })}>
8920
+ <sl-checkbox .checked=${this.allContainersSelected} @sl-change=${(e) => e.stopPropagation()}
8921
+ >${this.allContainersLabel}</sl-checkbox
8922
+ >
8923
+ </sl-menu-item>
8924
+ `;
8925
+ }
8926
+ _handleItemClick(e, selection) {
8927
+ e.preventDefault();
8928
+ e.stopPropagation();
8929
+ this._emitToggle(selection);
8930
+ this.renderRoot.querySelector("sl-dropdown")?.hide();
8931
+ }
8932
+ _renderInstance(role, instance, instanceIdx) {
8933
+ return html`
8934
+ <sl-menu-item
8935
+ @click=${(e) => this._handleItemClick(e, {
8936
+ type: "instance",
8937
+ role: role.name,
8938
+ instanceIdx
8939
+ })}
8940
+ >
8941
+ <sl-checkbox .checked=${instance.selected} @sl-change=${(e) => e.stopPropagation()}>
8942
+ <div class="flex items-center gap-2">
8943
+ <img src="${instance.logoUrl}" alt="role-logo" class="w-8 h-8" />
8944
+ <p>${instance.name}</p>
8945
+ </div>
8946
+ </sl-checkbox>
8947
+ ${instance.containers.length ? html`
8948
+ <div class="flex flex-col ml-4">
8949
+ ${instance.containers.map((container) => this._renderContainer(role.name, instanceIdx, container))}
8950
+ </div>
8951
+ ` : ""}
8952
+ </sl-menu-item>
8953
+ `;
8954
+ }
8955
+ _renderContainer(roleName, instanceIdx, container) {
8956
+ return html`
8957
+ <div
8958
+ class="cursor-pointer hover:bg-gray-50 p-1 rounded"
8959
+ @click=${(e) => this._handleItemClick(e, {
8960
+ type: "container",
8961
+ role: roleName,
8962
+ instanceIdx,
8963
+ container: container.name
8964
+ })}
8965
+ >
8966
+ <sl-checkbox .checked=${container.selected} @sl-change=${(e) => e.stopPropagation()}>
8967
+ <div class="flex items-center gap-2">
8968
+ <axebow-icon class="font-light" iconName="subdirectory_arrow_right" size="base"></axebow-icon>
8969
+ <p>${container.name}</p>
8970
+ </div>
8971
+ </sl-checkbox>
8972
+ </div>
8973
+ `;
8974
+ }
8975
+ _renderFooter() {
8976
+ return html`
8977
+ <div class="w-70.5 h-10.25 box-border flex items-center border-t border-solid border-(--axebow-gray)">
8978
+ <div
8979
+ class="w-34.25 h-10 box-border flex items-center text-base text-(--axebow-gray) cursor-pointer"
8980
+ style="padding: 0.71875rem 1.5rem 0.71875rem 1.75rem;"
8981
+ @click=${this._handleClearAll}
8982
+ >
8983
+ ${this.clearAllLabel}
8984
+ </div>
8985
+ <span class="w-px h-full bg-(--axebow-light-gray) shrink-0"></span>
8986
+ <div
8987
+ class="w-34.25 h-10 box-border flex items-center text-base text-(--axebow-tertiary) cursor-pointer"
8988
+ style="padding: 0.71875rem 1.5rem 0.71875rem 1.75rem;"
8989
+ @click=${this._handleApplyFilter}
8990
+ >
8991
+ ${this.applyFilterLabel}
8992
+ </div>
8993
+ </div>
8994
+ `;
8995
+ }
8996
+ render() {
8997
+ return html`
8998
+ <div class="flex flex-col gap-2">
8999
+ <div class="w-70.5 h-4.25 flex items-center">
9000
+ <h1 class="m-0 text-base font-semibold">${this.title}</h1>
9001
+ </div>
9002
+ <sl-dropdown class="w-70.5">
9003
+ <axebow-button class="w-full" slot="trigger" caret fixedWidth="17.625rem" fixedHeight="2.5rem">
9004
+ ${this.buttonText}
9005
+ </axebow-button>
9006
+ <div
9007
+ class="role-container-panel w-70.5 h-89.25 box-border flex flex-col bg-white border border-solid border-(--axebow-tertiary) rounded-[0.375rem] overflow-hidden"
9008
+ >
9009
+ <sl-menu class="w-70.5 h-79 box-border overflow-y-auto">
9010
+ ${this._renderAllContainersOption()}
9011
+ ${this.roles.map((role) => role.instances.map((instance, instanceIdx) => this._renderInstance(role, instance, instanceIdx)))}
9012
+ </sl-menu>
9013
+ ${this._renderFooter()}
9014
+ </div>
9015
+ </sl-dropdown>
9016
+ </div>
9017
+ `;
9018
+ }
9019
+ };
9020
+ __decorate([property({ type: String })], AxebowRoleContainerDropdown.prototype, "title", void 0);
9021
+ __decorate([property({ type: String })], AxebowRoleContainerDropdown.prototype, "buttonText", void 0);
9022
+ __decorate([property({ type: String })], AxebowRoleContainerDropdown.prototype, "allContainersLabel", void 0);
9023
+ __decorate([property({ type: Boolean })], AxebowRoleContainerDropdown.prototype, "allContainersSelected", void 0);
9024
+ __decorate([property({ attribute: false })], AxebowRoleContainerDropdown.prototype, "roles", void 0);
9025
+ __decorate([property({ type: String })], AxebowRoleContainerDropdown.prototype, "clearAllLabel", void 0);
9026
+ __decorate([property({ type: String })], AxebowRoleContainerDropdown.prototype, "applyFilterLabel", void 0);
9027
+ AxebowRoleContainerDropdown = __decorate([customElement("axebow-role-container-dropdown")], AxebowRoleContainerDropdown);
9028
+ //#endregion
9029
+ //#region src/components/axebow-refresh-period-panel/axebow-refresh-period-panel.ts
9030
+ var AxebowRefreshPeriodPanel = class AxebowRefreshPeriodPanel extends LitElement {
9031
+ constructor(..._args) {
9032
+ super(..._args);
9033
+ this.title = "";
9034
+ this.buttonText = "";
9035
+ this.offLabel = "";
9036
+ this.offSelected = false;
9037
+ this.periods = [];
9038
+ this.refreshNowLabel = "";
9039
+ this.isManualRefreshing = false;
9040
+ this._handleRefreshNow = () => {
9041
+ this.dispatchEvent(new CustomEvent("refresh-now-click", {
9042
+ bubbles: true,
9043
+ composed: true
9044
+ }));
9045
+ };
9046
+ }
9047
+ static {
9048
+ this.styles = [
9049
+ unsafeCSS(tailwind_default),
9050
+ axebowTheme,
9051
+ css`
9052
+ :host {
9053
+ display: block;
9054
+ }
9055
+ .refresh-spin {
9056
+ animation: spin 1s linear infinite;
9057
+ }
9058
+ @keyframes spin {
9059
+ from {
9060
+ transform: rotate(0deg);
9061
+ }
9062
+ to {
9063
+ transform: rotate(360deg);
9064
+ }
9065
+ }
9066
+ `
9067
+ ];
9068
+ }
9069
+ _handleSelect(value) {
9070
+ this.dispatchEvent(new CustomEvent("period-select", {
9071
+ detail: { value },
9072
+ bubbles: true,
9073
+ composed: true
9074
+ }));
9075
+ this.renderRoot.querySelector("sl-dropdown")?.hide();
9076
+ }
9077
+ render() {
9078
+ return html`
9079
+ <div class="flex flex-col gap-2">
9080
+ <div class="w-45 h-4.25 flex items-center">
9081
+ <h1 class="m-0 text-base font-semibold">${this.title}</h1>
9082
+ </div>
9083
+ <div class="flex gap-4 items-center justify-center flex-wrap">
9084
+ <sl-dropdown class="w-45">
9085
+ <axebow-button class="w-full" slot="trigger" caret fixedWidth="11.25rem" fixedHeight="2.5rem">
9086
+ <div class="flex items-center gap-2">${this.buttonText}</div>
9087
+ </axebow-button>
9088
+ <sl-menu class="w-45 my-2">
9089
+ <sl-menu-item @click=${() => this._handleSelect(null)} ?selected=${this.offSelected}>
9090
+ <div class="flex items-center gap-2">${this.offLabel}</div>
9091
+ </sl-menu-item>
9092
+ <sl-divider></sl-divider>
9093
+ ${this.periods.map((period) => html`
9094
+ <sl-menu-item @click=${() => this._handleSelect(period.value)} ?selected=${period.selected}>
9095
+ <div class="flex items-center gap-2">${period.label}</div>
9096
+ </sl-menu-item>
9097
+ `)}
9098
+ </sl-menu>
9099
+ </sl-dropdown>
9100
+ <button
9101
+ class="text-[var(--axebow-tertiary)] flex items-center gap-2 cursor-pointer hover:opacity-80 transition-opacity ${this.isManualRefreshing ? "opacity-70" : ""}"
9102
+ @click=${this._handleRefreshNow}
9103
+ ?disabled=${this.isManualRefreshing}
9104
+ >
9105
+ <p class="font-bold">${this.refreshNowLabel}</p>
9106
+ <axebow-icon
9107
+ iconName="cached"
9108
+ size="3xl"
9109
+ iconColor="var(--axebow-tertiary)"
9110
+ class="${this.isManualRefreshing ? "refresh-spin" : ""}"
9111
+ ></axebow-icon>
9112
+ </button>
9113
+ </div>
9114
+ </div>
9115
+ `;
9116
+ }
9117
+ };
9118
+ __decorate([property({ type: String })], AxebowRefreshPeriodPanel.prototype, "title", void 0);
9119
+ __decorate([property({ type: String })], AxebowRefreshPeriodPanel.prototype, "buttonText", void 0);
9120
+ __decorate([property({ type: String })], AxebowRefreshPeriodPanel.prototype, "offLabel", void 0);
9121
+ __decorate([property({ type: Boolean })], AxebowRefreshPeriodPanel.prototype, "offSelected", void 0);
9122
+ __decorate([property({ attribute: false })], AxebowRefreshPeriodPanel.prototype, "periods", void 0);
9123
+ __decorate([property({ type: String })], AxebowRefreshPeriodPanel.prototype, "refreshNowLabel", void 0);
9124
+ __decorate([property({ type: Boolean })], AxebowRefreshPeriodPanel.prototype, "isManualRefreshing", void 0);
9125
+ AxebowRefreshPeriodPanel = __decorate([customElement("axebow-refresh-period-panel")], AxebowRefreshPeriodPanel);
9126
+ //#endregion
9127
+ //#region src/components/axebow-resource-limits/parts/axebow-resource-limit-input.ts
9128
+ var AxebowResourceLimitInput = class AxebowResourceLimitInput extends LitElement {
9129
+ constructor(..._args) {
9130
+ super(..._args);
9131
+ this.label = "";
9132
+ this.unit = "";
9133
+ this.value = "";
9134
+ this.max = Number.MAX_SAFE_INTEGER;
9135
+ this.min = 0;
9136
+ this.required = false;
9137
+ this.disabled = false;
9138
+ this.hasError = false;
9139
+ }
9140
+ static {
9141
+ this.styles = [unsafeCSS(tailwind_default), axebowTheme];
9142
+ }
9143
+ render() {
9144
+ return html`
9145
+ <div class="flex flex-col items-center gap-2 w-24.75 shrink-0">
9146
+ <div class="flex items-center gap-1">
9147
+ ${this.required ? html`<span class="text-(--axebow-error)">*</span>` : ""}
9148
+ <span class="text-sm font-semibold text-center">${this.label}</span>
9149
+ </div>
9150
+ <axebow-input
9151
+ controlType="integer"
9152
+ .compact=${true}
9153
+ .value=${this.value}
9154
+ .max=${this.max}
9155
+ .min=${this.min}
9156
+ .disabled=${this.disabled}
9157
+ .hasError=${this.hasError}
9158
+ .callback=${this.callback}
9159
+ fixedWidth="6.1875rem"
9160
+ fixedHeight="2.5rem"
9161
+ ></axebow-input>
9162
+ <span class="text-sm text-(--axebow-secondary)">${this.unit}</span>
9163
+ </div>
9164
+ `;
9165
+ }
9166
+ };
9167
+ __decorate([property({ type: String })], AxebowResourceLimitInput.prototype, "label", void 0);
9168
+ __decorate([property({ type: String })], AxebowResourceLimitInput.prototype, "unit", void 0);
9169
+ __decorate([property({ type: String })], AxebowResourceLimitInput.prototype, "value", void 0);
9170
+ __decorate([property({ type: Number })], AxebowResourceLimitInput.prototype, "max", void 0);
9171
+ __decorate([property({ type: Number })], AxebowResourceLimitInput.prototype, "min", void 0);
9172
+ __decorate([property({ type: Boolean })], AxebowResourceLimitInput.prototype, "required", void 0);
9173
+ __decorate([property({ type: Boolean })], AxebowResourceLimitInput.prototype, "disabled", void 0);
9174
+ __decorate([property({ type: Boolean })], AxebowResourceLimitInput.prototype, "hasError", void 0);
9175
+ __decorate([property({ attribute: false })], AxebowResourceLimitInput.prototype, "callback", void 0);
9176
+ AxebowResourceLimitInput = __decorate([customElement("axebow-resource-limit-input")], AxebowResourceLimitInput);
9177
+ //#endregion
9178
+ //#region src/components/axebow-resource-limits/axebow-resource-limits-panel.ts
9179
+ var AxebowResourceLimitsPanel = class AxebowResourceLimitsPanel extends LitElement {
9180
+ constructor(..._args) {
9181
+ super(..._args);
9182
+ this.storageFields = [];
9183
+ }
9184
+ static {
9185
+ this.styles = [unsafeCSS(tailwind_default), axebowTheme];
9186
+ }
9187
+ _handleChange(field, e) {
9188
+ const target = e.target;
9189
+ let value = Math.trunc(Number(target.value));
9190
+ if (value > field.max) value = field.max;
9191
+ target.value = value.toString();
9192
+ this.dispatchEvent(new CustomEvent("resource-limit-change", {
9193
+ detail: {
9194
+ key: field.key,
9195
+ value
9196
+ },
9197
+ bubbles: true,
9198
+ composed: true
9199
+ }));
9200
+ }
9201
+ _renderField(field) {
9202
+ return html`
9203
+ <axebow-resource-limit-input
9204
+ label=${field.label}
9205
+ unit=${field.unit}
9206
+ value=${field.value?.toString() ?? ""}
9207
+ .max=${field.max}
9208
+ .min=${field.min ?? 0}
9209
+ ?required=${field.required}
9210
+ ?disabled=${field.disabled}
9211
+ ?hasError=${field.hasError}
9212
+ .callback=${(e) => this._handleChange(field, e)}
9213
+ ></axebow-resource-limit-input>
9214
+ `;
9215
+ }
9216
+ render() {
9217
+ if (!this.cpu || !this.memory) return html``;
9218
+ return html`
9219
+ <div class="flex items-center flex-wrap gap-19">
9220
+ <div class="flex items-start gap-6">${this._renderField(this.cpu)} ${this._renderField(this.memory)}</div>
9221
+ <div class="flex items-start gap-4 w-100.5 p-4 border border-(--axebow-table-header-border) rounded-md box-border">
9222
+ ${this.storageFields.map((field) => this._renderField(field))}
9223
+ </div>
9224
+ </div>
9225
+ `;
9226
+ }
9227
+ };
9228
+ __decorate([property({ type: Object })], AxebowResourceLimitsPanel.prototype, "cpu", void 0);
9229
+ __decorate([property({ type: Object })], AxebowResourceLimitsPanel.prototype, "memory", void 0);
9230
+ __decorate([property({ type: Array })], AxebowResourceLimitsPanel.prototype, "storageFields", void 0);
9231
+ AxebowResourceLimitsPanel = __decorate([customElement("axebow-resource-limits-panel")], AxebowResourceLimitsPanel);
9232
+ //#endregion
9233
+ //#region src/components/axebow-selector-slider/axebow-selector-slider.ts
9234
+ var AxebowSelectorSlider = class AxebowSelectorSlider extends LitElement {
9235
+ constructor(..._args) {
9236
+ super(..._args);
9237
+ this.quantity = 0;
9238
+ this.minTag = 0;
9239
+ this.mediumTag = "Y";
9240
+ this.maxTag = "X";
9241
+ this.step = 1;
9242
+ this.disabled = false;
9243
+ this._isDragging = false;
9244
+ }
9245
+ static {
9246
+ this.styles = [
9247
+ unsafeCSS(tailwind_default),
9248
+ axebowTheme,
9249
+ css`
9250
+ :host {
9251
+ display: block;
9252
+ width: 100%;
9253
+ }
9254
+ `
9255
+ ];
9256
+ }
9257
+ get value() {
9258
+ return this.quantity;
9259
+ }
9260
+ set value(val) {
9261
+ this.quantity = val;
9262
+ }
9263
+ get _minVal() {
9264
+ if (typeof this.min === "number") return this.min;
9265
+ const n = Number(this.minTag);
9266
+ return isNaN(n) ? 0 : n;
9267
+ }
9268
+ get _maxVal() {
9269
+ if (typeof this.max === "number") return this.max;
9270
+ const n = Number(this.maxTag);
9271
+ return isNaN(n) ? 100 : n;
9272
+ }
9273
+ get _numericQuantity() {
9274
+ if (typeof this.quantity === "string") {
9275
+ const str = this.quantity.toLowerCase();
9276
+ if (str === "min") return this._minVal;
9277
+ if (str === "max") return this._maxVal;
9278
+ if (str === "middle") return Math.round((this._minVal + this._maxVal) / 2);
9279
+ const parsed = Number(this.quantity);
9280
+ if (!isNaN(parsed)) return parsed;
9281
+ }
9282
+ return typeof this.quantity === "number" ? this.quantity : this._minVal;
9283
+ }
9284
+ get _percentage() {
9285
+ const min = this._minVal;
9286
+ const max = this._maxVal;
9287
+ if (max <= min) return 0;
9288
+ return (Math.max(min, Math.min(max, this._numericQuantity)) - min) / (max - min) * 100;
9289
+ }
9290
+ _setValue(newValue) {
9291
+ const min = this._minVal;
9292
+ const max = this._maxVal;
9293
+ const clamped = Math.max(min, Math.min(max, newValue));
9294
+ if (this._numericQuantity !== clamped) {
9295
+ this.quantity = clamped;
9296
+ this.dispatchEvent(new CustomEvent("change", {
9297
+ detail: {
9298
+ value: clamped,
9299
+ quantity: clamped
9300
+ },
9301
+ bubbles: true,
9302
+ composed: true
9303
+ }));
9304
+ }
9305
+ }
9306
+ _handlePointerDown(e) {
9307
+ if (this.disabled) return;
9308
+ this._isDragging = true;
9309
+ this._updateFromPointer(e);
9310
+ const handlePointerMove = (moveEv) => {
9311
+ if (this._isDragging) this._updateFromPointer(moveEv);
9312
+ };
9313
+ const handlePointerUp = () => {
9314
+ this._isDragging = false;
9315
+ window.removeEventListener("pointermove", handlePointerMove);
9316
+ window.removeEventListener("pointerup", handlePointerUp);
9317
+ };
9318
+ window.addEventListener("pointermove", handlePointerMove);
9319
+ window.addEventListener("pointerup", handlePointerUp);
9320
+ }
9321
+ _updateFromPointer(e) {
9322
+ if (!this._trackContainer) return;
9323
+ const rect = this._trackContainer.getBoundingClientRect();
9324
+ const x = e.clientX - rect.left;
9325
+ const width = rect.width;
9326
+ if (width <= 0) return;
9327
+ const ratio = Math.max(0, Math.min(1, x / width));
9328
+ const min = this._minVal;
9329
+ const rawVal = min + ratio * (this._maxVal - min);
9330
+ const step = this.step || 1;
9331
+ const stepped = Math.round((rawVal - min) / step) * step + min;
9332
+ this._setValue(stepped);
9333
+ }
9334
+ _handleKeyDown(e) {
9335
+ if (this.disabled) return;
9336
+ const min = this._minVal;
9337
+ const max = this._maxVal;
9338
+ const step = this.step || 1;
9339
+ const current = this._numericQuantity;
9340
+ if (e.key === "ArrowRight" || e.key === "ArrowUp") {
9341
+ e.preventDefault();
9342
+ this._setValue(Math.min(max, current + step));
9343
+ } else if (e.key === "ArrowLeft" || e.key === "ArrowDown") {
9344
+ e.preventDefault();
9345
+ this._setValue(Math.max(min, current - step));
9346
+ } else if (e.key === "Home") {
9347
+ e.preventDefault();
9348
+ this._setValue(min);
9349
+ } else if (e.key === "End") {
9350
+ e.preventDefault();
9351
+ this._setValue(max);
9352
+ }
9353
+ }
9354
+ render() {
9355
+ const percent = this._percentage;
9356
+ const currentVal = this._numericQuantity;
9357
+ const min = this._minVal;
9358
+ const max = this._maxVal;
9359
+ const mid = Math.round((min + max) / 2);
9360
+ return html`
9361
+ <div class="w-full flex flex-col gap-2 select-none ${this.disabled ? "opacity-50 pointer-events-none" : ""}">
9362
+ <!-- Slider Track Container -->
9363
+ <div
9364
+ class="relative w-full h-8 flex items-center cursor-pointer touch-none focus:outline-none focus-visible:ring-2 focus-visible:ring-[#006BFF] rounded-full"
9365
+ tabindex=${this.disabled ? -1 : 0}
9366
+ role="slider"
9367
+ aria-valuemin=${min}
9368
+ aria-valuemax=${max}
9369
+ aria-valuenow=${currentVal}
9370
+ aria-valuetext=${String(currentVal)}
9371
+ @pointerdown=${this._handlePointerDown}
9372
+ @keydown=${this._handleKeyDown}
9373
+ >
9374
+ <!-- Outer track padding container for exact knob alignment -->
9375
+ <div class="slider-track-container relative w-full h-3 rounded-full bg-[#C7DCFA] overflow-visible">
9376
+ <!-- Active Fill Track -->
9377
+ <div
9378
+ class="absolute left-0 top-0 bottom-0 rounded-full bg-[#006BFF] transition-all duration-150 ease-out"
9379
+ style="width: ${percent}%;"
9380
+ ></div>
9381
+
9382
+ <!-- Slider Thumb Knob -->
9383
+ <div
9384
+ class="absolute top-1/2 -translate-y-1/2 -translate-x-1/2 w-7 h-7 rounded-full bg-[#006BFF] border-2 border-white shadow-[0_2px_6px_rgba(0,0,0,0.2)] transition-all duration-150 ease-out cursor-grab active:cursor-grabbing hover:scale-105"
9385
+ style="left: ${percent}%;"
9386
+ ></div>
9387
+ </div>
9388
+ </div>
9389
+
9390
+ <!-- Labels below -->
9391
+ <div class="flex justify-between items-center text-sm font-semibold text-[#78787A] px-1">
9392
+ <span class="w-1/3 text-left cursor-pointer" @click=${() => !this.disabled && this._setValue(min)}>
9393
+ ${this.minTag}
9394
+ </span>
9395
+ <span class="w-1/3 text-center cursor-pointer" @click=${() => !this.disabled && this._setValue(mid)}>
9396
+ ${this.mediumTag}
9397
+ </span>
9398
+ <span class="w-1/3 text-right cursor-pointer" @click=${() => !this.disabled && this._setValue(max)}>
9399
+ ${this.maxTag}
9400
+ </span>
9401
+ </div>
9402
+ </div>
9403
+ `;
9404
+ }
9405
+ };
9406
+ __decorate([property({
9407
+ type: Number,
9408
+ reflect: true
9409
+ })], AxebowSelectorSlider.prototype, "quantity", void 0);
9410
+ __decorate([property()], AxebowSelectorSlider.prototype, "minTag", void 0);
9411
+ __decorate([property()], AxebowSelectorSlider.prototype, "mediumTag", void 0);
9412
+ __decorate([property()], AxebowSelectorSlider.prototype, "maxTag", void 0);
9413
+ __decorate([property({ type: Number })], AxebowSelectorSlider.prototype, "min", void 0);
9414
+ __decorate([property({ type: Number })], AxebowSelectorSlider.prototype, "max", void 0);
9415
+ __decorate([property({ type: Number })], AxebowSelectorSlider.prototype, "step", void 0);
9416
+ __decorate([property({ type: Boolean })], AxebowSelectorSlider.prototype, "disabled", void 0);
9417
+ __decorate([property()], AxebowSelectorSlider.prototype, "value", null);
9418
+ __decorate([query(".slider-track-container")], AxebowSelectorSlider.prototype, "_trackContainer", void 0);
9419
+ AxebowSelectorSlider = __decorate([customElement("axebow-selector-slider")], AxebowSelectorSlider);
9420
+ //#endregion
9421
+ //#region src/components/axebow-deploy-summary/axebow-deploy-summary.ts
9422
+ var AxebowDeploySummary = class AxebowDeploySummary extends LitElement {
9423
+ constructor(..._args) {
9424
+ super(..._args);
9425
+ this.summaryTitle = "";
9426
+ this.showDownloadButton = false;
9427
+ this.downloadLabel = "";
9428
+ this.currentStep = 0;
9429
+ }
9430
+ static {
9431
+ this.styles = [
9432
+ unsafeCSS(tailwind_default),
9433
+ axebowTheme,
9434
+ css`
9435
+ :host {
9436
+ display: block;
9437
+ height: 100%;
9438
+ }
9439
+ axebow-summary-card {
9440
+ display: block;
9441
+ height: 100%;
9442
+ }
9443
+ /* The plain, solid divider used between every summary section -
9444
+ matches whatever separates the step titles. */
9445
+ sl-divider.summary-title-divider {
9446
+ --color: var(--axebow-table-header-border, #dbdde4);
9447
+ --spacing: 0.75rem;
9448
+ }
9449
+ /* Dashed variant used inside the autoscaling summary. */
9450
+ sl-divider.summary-dashed-divider {
9451
+ --color: var(--axebow-base);
9452
+ --spacing: 0.75rem;
9453
+ border-top-style: dashed !important;
9454
+ }
9455
+ `
9456
+ ];
9457
+ }
9458
+ updated(changedProperties) {
9459
+ super.updated(changedProperties);
9460
+ if (changedProperties.has("currentStep")) {
9461
+ const oldStep = changedProperties.get("currentStep");
9462
+ if (oldStep !== void 0 && this.currentStep > oldStep) this._scrollToBottom();
9463
+ }
9464
+ }
9465
+ _scrollToBottom() {
9466
+ setTimeout(() => {
9467
+ const summaryCard = this.renderRoot.querySelector("axebow-summary-card");
9468
+ if (summaryCard && summaryCard.scrollToBottom) summaryCard.scrollToBottom();
9469
+ const container = this.renderRoot.querySelector(".overflow-y-auto");
9470
+ if (container) container.scrollTop = container.scrollHeight;
9471
+ }, 100);
9472
+ }
9473
+ render() {
9474
+ return html`
9475
+ <axebow-summary-card title="${this.summaryTitle}">
9476
+ ${this.showDownloadButton ? html`
9477
+ <axebow-button slot="header-actions" variant="text" size="medium" @click=${this._handleDownloadBundle}>
9478
+ <axebow-icon
9479
+ iconName="download_for_offline"
9480
+ slot="suffix"
9481
+ iconColor="var(--axebow-tertiary)"
9482
+ size="xl"
9483
+ ></axebow-icon>
9484
+ <span class="text-sm lg:text-base hidden lg:inline">${this.downloadLabel}</span>
9485
+ </axebow-button>
9486
+ ` : ""}
9487
+ ${this._renderDeploymentInfo()}
9488
+ <div class="h-px border-t border-dashed border-gray-400 my-4"></div>
9489
+ ${this._renderResourceLimits()}
9490
+ <sl-divider class="summary-title-divider"></sl-divider>
9491
+ <div class="flex-1 overflow-y-auto flex flex-col">
9492
+ ${this._renderIdentificationStep()} ${this._renderResourcesStep()} ${this._renderScalingStep()}
9493
+ ${this._renderChannelsStep()} ${this._renderConfigurationStep()}
9494
+ </div>
9495
+ </axebow-summary-card>
9496
+ `;
9497
+ }
9498
+ _renderDeploymentInfo() {
9499
+ const info = this.deploymentInfo;
8655
9500
  if (!info) return "";
8656
9501
  return html`
8657
9502
  <div class="flex flex-col gap-2">
@@ -10066,275 +10911,1145 @@ var AxebowResourceBoxForm = class AxebowResourceBoxForm extends LitElement {
10066
10911
  `;
10067
10912
  }
10068
10913
  render() {
10069
- const isDeleting = this.deleting;
10070
- const computedStatusColor = isDeleting ? "var(--axebow-error)" : this.statusColor;
10914
+ const isDeleting = this.deleting;
10915
+ const computedStatusColor = isDeleting ? "var(--axebow-error)" : this.statusColor;
10916
+ return html`
10917
+ <div
10918
+ class="flex flex-col gap-3 w-70.5 p-4 bg-white rounded-xl ${isDeleting ? "border border-solid border-[var(--axebow-error)]" : ""} ${isDeleting ? "pointer-events-none opacity-70 select-none" : ""} axebow-shadow-hover box-border"
10919
+ >
10920
+ <!-- Top Status Header -->
10921
+ <axebow-status
10922
+ .statusText=${this.statusText}
10923
+ .statusColor=${computedStatusColor}
10924
+ ?showTrash=${this.showTrash}
10925
+ ?deleting=${this.deleting}
10926
+ @delete=${this._handleDelete}
10927
+ ></axebow-status>
10928
+
10929
+ <!-- Form Fields List -->
10930
+ <div class="flex flex-col gap-2.5 w-full">
10931
+ ${this.items && this.items.length > 0 ? this.items.map((item) => this._renderField(isDeleting ? {
10932
+ ...item,
10933
+ type: "disabled"
10934
+ } : item)) : html`
10935
+ <div
10936
+ class="p-3 border border-dashed border-(--axebow-border-gray) rounded-lg text-center text-(--axebow-gray) text-xs"
10937
+ >
10938
+ No items configured.
10939
+ </div>
10940
+ `}
10941
+ </div>
10942
+ </div>
10943
+ `;
10944
+ }
10945
+ };
10946
+ __decorate([property({ type: String })], AxebowResourceBoxForm.prototype, "statusText", void 0);
10947
+ __decorate([property({ type: String })], AxebowResourceBoxForm.prototype, "statusColor", void 0);
10948
+ __decorate([property({ type: Boolean })], AxebowResourceBoxForm.prototype, "showTrash", void 0);
10949
+ __decorate([property({ type: Boolean })], AxebowResourceBoxForm.prototype, "deleting", void 0);
10950
+ __decorate([property({ type: Array })], AxebowResourceBoxForm.prototype, "items", void 0);
10951
+ __decorate([state()], AxebowResourceBoxForm.prototype, "_openMenuId", void 0);
10952
+ AxebowResourceBoxForm = __decorate([customElement("axebow-resource-box-form")], AxebowResourceBoxForm);
10953
+ //#endregion
10954
+ //#region src/components/axebow-manage-hyperlinks/axebow-manage-hyperlinks.ts
10955
+ var AxebowManageHyperlinks = class AxebowManageHyperlinks extends LitElement {
10956
+ constructor(..._args) {
10957
+ super(..._args);
10958
+ this.text = "";
10959
+ this.icon = "";
10960
+ this.color = "var(--axebow-tertiary)";
10961
+ this.iconColor = "";
10962
+ this.disabled = false;
10963
+ }
10964
+ static {
10965
+ this.styles = [unsafeCSS(tailwind_default), css`
10966
+ :host {
10967
+ display: inline-block;
10968
+ }
10969
+ button:hover:not(:disabled) {
10970
+ color: var(--axebow-gray) !important;
10971
+ }
10972
+ `];
10973
+ }
10974
+ _handleClick(e) {
10975
+ if (this.disabled) {
10976
+ e.preventDefault();
10977
+ e.stopPropagation();
10978
+ return;
10979
+ }
10980
+ this.dispatchEvent(new CustomEvent("hyperlink-click", {
10981
+ bubbles: true,
10982
+ composed: true,
10983
+ detail: { text: this.text }
10984
+ }));
10985
+ }
10986
+ render() {
10987
+ const buttonColor = this.color || "var(--axebow-tertiary)";
10988
+ const iconColorProp = this.iconColor || "currentColor";
10989
+ return html`
10990
+ <button
10991
+ type="button"
10992
+ ?disabled=${this.disabled}
10993
+ @click=${this._handleClick}
10994
+ style="color: ${buttonColor};"
10995
+ class="inline-flex items-center gap-1.5 bg-transparent border-none p-0 cursor-pointer font-semibold text-sm focus:outline-none transition-colors disabled:opacity-50 disabled:cursor-not-allowed"
10996
+ >
10997
+ <span>${this.text}</span>
10998
+ ${this.icon ? html`<axebow-icon iconName="${this.icon}" iconColor="${iconColorProp}"></axebow-icon>` : ""}
10999
+ </button>`;
11000
+ }
11001
+ };
11002
+ __decorate([property({ type: String })], AxebowManageHyperlinks.prototype, "text", void 0);
11003
+ __decorate([property({ type: String })], AxebowManageHyperlinks.prototype, "icon", void 0);
11004
+ __decorate([property({ type: String })], AxebowManageHyperlinks.prototype, "color", void 0);
11005
+ __decorate([property({ type: String })], AxebowManageHyperlinks.prototype, "iconColor", void 0);
11006
+ __decorate([property({ type: Boolean })], AxebowManageHyperlinks.prototype, "disabled", void 0);
11007
+ AxebowManageHyperlinks = __decorate([customElement("axebow-manage-hyperlinks")], AxebowManageHyperlinks);
11008
+ //#endregion
11009
+ //#region src/components/axebow-box-section/axebow-box-section.ts
11010
+ var AxebowBoxSection = class AxebowBoxSection extends LitElement {
11011
+ constructor(..._args) {
11012
+ super(..._args);
11013
+ this.title = "";
11014
+ this.hyperlinks = [];
11015
+ this.showHyperlink = false;
11016
+ this.hyperlinkText = "";
11017
+ this.hyperlinkIcon = "";
11018
+ this.hyperlinkColor = "";
11019
+ this.hyperlinkDisabled = false;
11020
+ }
11021
+ static {
11022
+ this.styles = unsafeCSS(tailwind_default);
11023
+ }
11024
+ _handleItemClick(item, index) {
11025
+ if (item.onClick) item.onClick();
11026
+ this.dispatchEvent(new CustomEvent("hyperlink-click", {
11027
+ bubbles: true,
11028
+ composed: true,
11029
+ detail: {
11030
+ item,
11031
+ index,
11032
+ text: item.text
11033
+ }
11034
+ }));
11035
+ }
11036
+ render() {
11037
+ const itemsToRender = this.hyperlinks.length > 0 ? this.hyperlinks : this.showHyperlink || Boolean(this.hyperlinkText) ? [{
11038
+ text: this.hyperlinkText,
11039
+ icon: this.hyperlinkIcon,
11040
+ color: this.hyperlinkColor,
11041
+ disabled: this.hyperlinkDisabled
11042
+ }] : [];
11043
+ return html`
11044
+ <div class="flex flex-col rounded-md p-5 gap-4 bg-white">
11045
+ <div class="w-full flex justify-between items-center border-b border-solid border-[#DBDDE4] pb-3 gap-2">
11046
+ <span class="font-semibold uppercase text-(--axebow-primary)">${this.title}</span>
11047
+ <slot name="hyperlink">
11048
+ ${itemsToRender.length > 0 ? html`
11049
+ <div class="flex items-center gap-4">
11050
+ ${itemsToRender.map((item, index) => html`
11051
+ <axebow-manage-hyperlinks
11052
+ text="${item.text}"
11053
+ icon="${item.icon}"
11054
+ color="${item.color ?? ""}"
11055
+ ?disabled=${Boolean(item.disabled)}
11056
+ @hyperlink-click=${() => this._handleItemClick(item, index)}
11057
+ ></axebow-manage-hyperlinks>
11058
+ `)}
11059
+ </div>
11060
+ ` : ""}
11061
+ </slot>
11062
+ </div>
11063
+ <slot></slot>
11064
+ </div>`;
11065
+ }
11066
+ };
11067
+ __decorate([property({ type: String })], AxebowBoxSection.prototype, "title", void 0);
11068
+ __decorate([property({ type: Array })], AxebowBoxSection.prototype, "hyperlinks", void 0);
11069
+ __decorate([property({ type: Boolean })], AxebowBoxSection.prototype, "showHyperlink", void 0);
11070
+ __decorate([property({ type: String })], AxebowBoxSection.prototype, "hyperlinkText", void 0);
11071
+ __decorate([property({ type: String })], AxebowBoxSection.prototype, "hyperlinkIcon", void 0);
11072
+ __decorate([property({ type: String })], AxebowBoxSection.prototype, "hyperlinkColor", void 0);
11073
+ __decorate([property({ type: Boolean })], AxebowBoxSection.prototype, "hyperlinkDisabled", void 0);
11074
+ AxebowBoxSection = __decorate([customElement("axebow-box-section")], AxebowBoxSection);
11075
+ //#endregion
11076
+ //#region src/components/axebow-copy-box/axebow-copy-box.ts
11077
+ var AxebowCopyBox = class AxebowCopyBox extends LitElement {
11078
+ constructor(..._args) {
11079
+ super(..._args);
11080
+ this.value = "";
11081
+ this.copyValue = "";
11082
+ this.iconName = "content_copy";
11083
+ this.size = "lg";
11084
+ this.disabled = false;
11085
+ this._copied = false;
11086
+ }
11087
+ static {
11088
+ this.styles = unsafeCSS(tailwind_default);
11089
+ }
11090
+ async _handleCopy(e) {
11091
+ if (this.disabled) {
11092
+ e.preventDefault();
11093
+ e.stopPropagation();
11094
+ return;
11095
+ }
11096
+ let textToCopy = this.copyValue || this.value;
11097
+ if (!textToCopy) {
11098
+ const slot = this.shadowRoot?.querySelector("slot");
11099
+ if (slot) textToCopy = slot.assignedNodes({ flatten: true }).map((n) => n.textContent ?? "").join("").trim();
11100
+ if (!textToCopy) textToCopy = this.textContent?.trim() ?? "";
11101
+ }
11102
+ if (textToCopy) try {
11103
+ await navigator.clipboard.writeText(textToCopy);
11104
+ this._copied = true;
11105
+ setTimeout(() => {
11106
+ this._copied = false;
11107
+ }, 2e3);
11108
+ } catch (err) {
11109
+ console.error("Failed to copy text:", err);
11110
+ }
11111
+ this.dispatchEvent(new CustomEvent("copy", {
11112
+ bubbles: true,
11113
+ composed: true,
11114
+ detail: { value: textToCopy }
11115
+ }));
11116
+ }
11117
+ render() {
11118
+ const iconToShow = this._copied ? "check" : this.iconName;
11119
+ return html`
11120
+ <div
11121
+ @click=${this._handleCopy}
11122
+ class="h-10 w-10 bg-(--axebow-tertiary) hover:bg-(--axebow-gray) rounded-r-md flex items-center justify-center cursor-pointer transition-colors select-none ${this.disabled ? "opacity-50 cursor-not-allowed pointer-events-none" : ""}"
11123
+ title=${this._copied ? "Copied!" : "Copy"}
11124
+ >
11125
+ <axebow-icon iconName="${iconToShow}" iconColor="white" size="${this.size}"></axebow-icon>
11126
+ <slot class="hidden"></slot>
11127
+ </div>
11128
+ `;
11129
+ }
11130
+ };
11131
+ __decorate([property({ type: String })], AxebowCopyBox.prototype, "value", void 0);
11132
+ __decorate([property({ type: String })], AxebowCopyBox.prototype, "copyValue", void 0);
11133
+ __decorate([property({ type: String })], AxebowCopyBox.prototype, "iconName", void 0);
11134
+ __decorate([property({ type: String })], AxebowCopyBox.prototype, "size", void 0);
11135
+ __decorate([property({ type: Boolean })], AxebowCopyBox.prototype, "disabled", void 0);
11136
+ __decorate([state()], AxebowCopyBox.prototype, "_copied", void 0);
11137
+ AxebowCopyBox = __decorate([customElement("axebow-copy-box")], AxebowCopyBox);
11138
+ //#endregion
11139
+ //#region src/components/axebow-tabs-submenu/axebow-tabs-submenu.ts
11140
+ var AxebowTabsSubmenu = class AxebowTabsSubmenu extends LitElement {
11141
+ constructor(..._args) {
11142
+ super(..._args);
11143
+ this.tabs = [];
11144
+ this.activeTab = 0;
11145
+ this.disabled = false;
11146
+ this.stretch = true;
11147
+ }
11148
+ static {
11149
+ this.styles = unsafeCSS(tailwind_default);
11150
+ }
11151
+ _handleTabChange(e) {
11152
+ this.activeTab = e.detail.index;
11153
+ this.dispatchEvent(new CustomEvent("tab-change", {
11154
+ bubbles: true,
11155
+ composed: true,
11156
+ detail: e.detail
11157
+ }));
11158
+ }
11159
+ render() {
11160
+ return html`
11161
+ <axebow-tab-selector
11162
+ variant="sections-tab"
11163
+ .activeTab=${this.activeTab}
11164
+ ?disabled=${this.disabled}
11165
+ .stretch=${this.stretch}
11166
+ @tab-change=${this._handleTabChange}
11167
+ >
11168
+ ${this.tabs.map((tab, i) => html`
11169
+ <span slot="tab-label-${i}" ?disabled=${tab.disabled ?? false}>
11170
+ ${tab.label}
11171
+ </span>
11172
+ `)}
11173
+ </axebow-tab-selector>
11174
+ `;
11175
+ }
11176
+ };
11177
+ __decorate([property({ type: Array })], AxebowTabsSubmenu.prototype, "tabs", void 0);
11178
+ __decorate([property({ type: Number })], AxebowTabsSubmenu.prototype, "activeTab", void 0);
11179
+ __decorate([property({ type: Boolean })], AxebowTabsSubmenu.prototype, "disabled", void 0);
11180
+ __decorate([property({ type: Boolean })], AxebowTabsSubmenu.prototype, "stretch", void 0);
11181
+ AxebowTabsSubmenu = __decorate([customElement("axebow-tabs-submenu")], AxebowTabsSubmenu);
11182
+ //#endregion
11183
+ //#region src/components/axebow-progress-bar/axebow-progress-bar.ts
11184
+ var AxebowProgressBar = class AxebowProgressBar extends LitElement {
11185
+ constructor(..._args) {
11186
+ super(..._args);
11187
+ this.current = 0;
11188
+ this.max = 100;
11189
+ this.compact = false;
11190
+ }
11191
+ static {
11192
+ this.styles = [unsafeCSS(tailwind_default), css`
11193
+ sl-progress-bar {
11194
+ flex: 1;
11195
+ max-width: 120px;
11196
+ }
11197
+ :host([compact]) sl-progress-bar {
11198
+ flex: none;
11199
+ width: 3.75rem;
11200
+ max-width: 3.75rem;
11201
+ }
11202
+ `];
11203
+ }
11204
+ _percentage() {
11205
+ return Math.min(this.current / this.max * 100, 100);
11206
+ }
11207
+ _indicatorColor() {
11208
+ const pct = this.current / this.max * 100;
11209
+ if (pct < 70) return "var(--axebow-tertiary)";
11210
+ if (pct < 90) return "var(--axebow-warning)";
11211
+ return "var(--axebow-error)";
11212
+ }
11213
+ render() {
11214
+ return html`
11215
+ <div class="flex items-center ${this.compact ? "gap-1.25" : "gap-2 min-w-50"}">
11216
+ <span class="${this.compact ? "text-base" : "text-sm min-w-10 text-right"} text-(--axebow-gray)"
11217
+ >${this.current.toFixed(2)}</span
11218
+ >
11219
+ <sl-progress-bar
11220
+ style="--height: ${this.compact ? "0.6875rem" : "10px"}; --indicator-color: ${this._indicatorColor()};"
11221
+ value="${this._percentage()}"
11222
+ ></sl-progress-bar>
11223
+ <span class="${this.compact ? "text-base" : "text-sm min-w-10"} text-(--axebow-gray)"
11224
+ >${this.max.toFixed(2)}</span
11225
+ >
11226
+ </div>
11227
+ `;
11228
+ }
11229
+ };
11230
+ __decorate([property({ type: Number })], AxebowProgressBar.prototype, "current", void 0);
11231
+ __decorate([property({ type: Number })], AxebowProgressBar.prototype, "max", void 0);
11232
+ __decorate([property({
11233
+ type: Boolean,
11234
+ reflect: true
11235
+ })], AxebowProgressBar.prototype, "compact", void 0);
11236
+ AxebowProgressBar = __decorate([customElement("axebow-progress-bar")], AxebowProgressBar);
11237
+ //#endregion
11238
+ //#region src/components/axebow-usage-tooltip/axebow-usage-tooltip.ts
11239
+ var AxebowUsageTooltip = class AxebowUsageTooltip extends LitElement {
11240
+ constructor(..._args) {
11241
+ super(..._args);
11242
+ this.color = "var(--axebow-primary)";
11243
+ this.storageLabel = "";
11244
+ this.volatileLabel = "";
11245
+ this.nonRepPersLabel = "";
11246
+ this.persistentRepLabel = "";
11247
+ }
11248
+ static {
11249
+ this.styles = [unsafeCSS(tailwind_default), css`
11250
+ :host {
11251
+ display: flex;
11252
+ align-items: center;
11253
+ justify-content: center;
11254
+ }
11255
+ axebow-tooltip::part(body) {
11256
+ background-color: var(--axebow-white);
11257
+ color: var(--axebow-primary);
11258
+ padding: 1rem;
11259
+ border: 3px solid var(--axebow-table-border);
11260
+ width: 300px;
11261
+ }
11262
+ sl-divider.dotted-divider {
11263
+ border-top: 1.5px dashed var(--axebow-light-gray);
11264
+ }
11265
+ `];
11266
+ }
11267
+ render() {
11268
+ if (!this.usage) return null;
11269
+ const { current, limit } = this.usage;
10071
11270
  return html`
10072
- <div
10073
- class="flex flex-col gap-3 w-70.5 p-4 bg-white rounded-xl ${isDeleting ? "border border-solid border-[var(--axebow-error)]" : ""} ${isDeleting ? "pointer-events-none opacity-70 select-none" : ""} axebow-shadow-hover box-border"
10074
- >
10075
- <!-- Top Status Header -->
10076
- <axebow-status
10077
- .statusText=${this.statusText}
10078
- .statusColor=${computedStatusColor}
10079
- ?showTrash=${this.showTrash}
10080
- ?deleting=${this.deleting}
10081
- @delete=${this._handleDelete}
10082
- ></axebow-status>
10083
-
10084
- <!-- Form Fields List -->
10085
- <div class="flex flex-col gap-2.5 w-full">
10086
- ${this.items && this.items.length > 0 ? this.items.map((item) => this._renderField(isDeleting ? {
10087
- ...item,
10088
- type: "disabled"
10089
- } : item)) : html`
10090
- <div
10091
- class="p-3 border border-dashed border-(--axebow-border-gray) rounded-lg text-center text-(--axebow-gray) text-xs"
10092
- >
10093
- No items configured.
10094
- </div>
10095
- `}
11271
+ <axebow-tooltip placement="right">
11272
+ <div slot="content" class="mt-3">
11273
+ <div class="flex justify-between items-center">
11274
+ <axebow-icon iconName="database" size="xl"></axebow-icon>
11275
+ <span>${this.storageLabel} </span>
11276
+ <span class="tooltip-value"> ${current.storage} / ${limit.storage.max} GB</span>
11277
+ </div>
11278
+ <sl-divider class="dotted-divider"></sl-divider>
11279
+ <div class="flex space-between ml-2 items-center gap-1">
11280
+ <axebow-icon iconName="subdirectory_arrow_right" size="xl"></axebow-icon>
11281
+ <span>${this.volatileLabel} </span>
11282
+ <span class="tooltip-value"> ${current.volatileStorage} / ${limit.volatileStorage.max} GB</span>
11283
+ </div>
11284
+ <sl-divider class="dotted-divider"></sl-divider>
11285
+ <div class="flex space-between ml-2 items-center gap-1">
11286
+ <axebow-icon iconName="subdirectory_arrow_right" size="xl"></axebow-icon>
11287
+ <span>${this.nonRepPersLabel} </span>
11288
+ <span class="tooltip-value"> ${current.nonReplicatedStorage} / ${limit.nonReplicatedStorage.max} GB</span>
11289
+ </div>
11290
+ <sl-divider class="dotted-divider"></sl-divider>
11291
+ <div class="flex space-between ml-2 items-center gap-1">
11292
+ <axebow-icon iconName="subdirectory_arrow_right" size="xl"></axebow-icon>
11293
+ <span>${this.persistentRepLabel} </span>
11294
+ <span class="tooltip-value"> ${current.persistentStorage} / ${limit.persistentStorage.max} GB</span>
11295
+ </div>
10096
11296
  </div>
10097
- </div>
11297
+ <axebow-icon iconName="info" size="md" class="cursor-pointer" iconColor="${this.color}"></axebow-icon>
11298
+ </axebow-tooltip>
10098
11299
  `;
10099
11300
  }
10100
11301
  };
10101
- __decorate([property({ type: String })], AxebowResourceBoxForm.prototype, "statusText", void 0);
10102
- __decorate([property({ type: String })], AxebowResourceBoxForm.prototype, "statusColor", void 0);
10103
- __decorate([property({ type: Boolean })], AxebowResourceBoxForm.prototype, "showTrash", void 0);
10104
- __decorate([property({ type: Boolean })], AxebowResourceBoxForm.prototype, "deleting", void 0);
10105
- __decorate([property({ type: Array })], AxebowResourceBoxForm.prototype, "items", void 0);
10106
- __decorate([state()], AxebowResourceBoxForm.prototype, "_openMenuId", void 0);
10107
- AxebowResourceBoxForm = __decorate([customElement("axebow-resource-box-form")], AxebowResourceBoxForm);
11302
+ __decorate([property({ type: Object })], AxebowUsageTooltip.prototype, "usage", void 0);
11303
+ __decorate([property({ type: String })], AxebowUsageTooltip.prototype, "color", void 0);
11304
+ __decorate([property({ type: String })], AxebowUsageTooltip.prototype, "storageLabel", void 0);
11305
+ __decorate([property({ type: String })], AxebowUsageTooltip.prototype, "volatileLabel", void 0);
11306
+ __decorate([property({ type: String })], AxebowUsageTooltip.prototype, "nonRepPersLabel", void 0);
11307
+ __decorate([property({ type: String })], AxebowUsageTooltip.prototype, "persistentRepLabel", void 0);
11308
+ AxebowUsageTooltip = __decorate([customElement("axebow-usage-tooltip")], AxebowUsageTooltip);
10108
11309
  //#endregion
10109
- //#region src/components/axebow-manage-hyperlinks/axebow-manage-hyperlinks.ts
10110
- var AxebowManageHyperlinks = class AxebowManageHyperlinks extends LitElement {
11310
+ //#region src/components/axebow-instances-table/axebow-instances-table.ts
11311
+ var AxebowInstancesTable = class AxebowInstancesTable extends LitElement {
10111
11312
  constructor(..._args) {
10112
11313
  super(..._args);
10113
- this.text = "";
10114
- this.icon = "";
10115
- this.color = "var(--axebow-tertiary)";
10116
- this.iconColor = "";
10117
- this.disabled = false;
11314
+ this.instances = [];
11315
+ this.descriptionLabel = "";
11316
+ this.noInstancesLabel = "";
11317
+ this.colInstanceLabel = "";
11318
+ this.colCpuLabel = "";
11319
+ this.colMemoryLabel = "";
11320
+ this.colStorageLabel = "";
11321
+ this.colActionsLabel = "";
11322
+ this.rebootLabel = "";
11323
+ this.rebootAllLabel = "";
11324
+ this._expandedInstances = /* @__PURE__ */ new Set();
10118
11325
  }
10119
11326
  static {
10120
- this.styles = [unsafeCSS(tailwind_default), css`
10121
- :host {
10122
- display: inline-block;
10123
- }
10124
- button:hover:not(:disabled) {
10125
- color: var(--axebow-gray) !important;
10126
- }
10127
- `];
11327
+ this.styles = [
11328
+ unsafeCSS(tailwind_default),
11329
+ axebowTheme,
11330
+ css`
11331
+ :host {
11332
+ display: block;
11333
+ }
11334
+ .restart-button::part(base) {
11335
+ color: var(--axebow-tertiary);
11336
+ font-size: 0.875rem !important;
11337
+ }
11338
+ .restart-button::part(base):hover {
11339
+ color: var(--axebow-error);
11340
+ background-color: white;
11341
+ }
11342
+ .reboot-all-button::part(base) {
11343
+ color: var(--axebow-error);
11344
+ background-color: transparent;
11345
+ border-color: var(--axebow-error);
11346
+ }
11347
+ .reboot-all-button::part(base):hover {
11348
+ color: white;
11349
+ background-color: var(--axebow-error);
11350
+ border-color: var(--axebow-error);
11351
+ }
11352
+ `
11353
+ ];
10128
11354
  }
10129
- _handleClick(e) {
10130
- if (this.disabled) {
10131
- e.preventDefault();
10132
- e.stopPropagation();
10133
- return;
10134
- }
10135
- this.dispatchEvent(new CustomEvent("hyperlink-click", {
11355
+ _toggleInstance(instanceId) {
11356
+ if (this._expandedInstances.has(instanceId)) this._expandedInstances.delete(instanceId);
11357
+ else this._expandedInstances.add(instanceId);
11358
+ this.requestUpdate();
11359
+ }
11360
+ _isInstanceExpanded(instanceId) {
11361
+ return this._expandedInstances.has(instanceId);
11362
+ }
11363
+ _requestReboot(instanceName) {
11364
+ this.dispatchEvent(new CustomEvent("reboot-request", {
11365
+ detail: { instanceName },
10136
11366
  bubbles: true,
10137
- composed: true,
10138
- detail: { text: this.text }
11367
+ composed: true
10139
11368
  }));
10140
11369
  }
11370
+ _renderHeaderSeparator() {
11371
+ return html`<span class="w-px h-4 bg-(--axebow-gray) shrink-0"></span>`;
11372
+ }
11373
+ _renderHeader() {
11374
+ return html`
11375
+ <div class="w-186.5 h-7.25 box-border flex items-center p-1.5 gap-1 bg-white">
11376
+ <span class="w-48.5 h-4.25 text-base font-semibold text-(--axebow-primary)">${this.colInstanceLabel}</span>
11377
+ ${this._renderHeaderSeparator()}
11378
+ <span class="w-38.5 h-4.25 text-base font-semibold text-(--axebow-primary)">${this.colCpuLabel}</span>
11379
+ ${this._renderHeaderSeparator()}
11380
+ <span class="w-38.5 h-4.25 text-base font-semibold text-(--axebow-primary)">${this.colMemoryLabel}</span>
11381
+ ${this._renderHeaderSeparator()}
11382
+ <span class="w-25.5 h-4.25 text-base font-semibold text-(--axebow-primary)">${this.colStorageLabel}</span>
11383
+ ${this._renderHeaderSeparator()}
11384
+ <span class="w-25.5 h-4.25 text-base font-semibold text-(--axebow-primary)">${this.colActionsLabel}</span>
11385
+ </div>
11386
+ `;
11387
+ }
11388
+ _renderStatusBadge(text, isPositive) {
11389
+ return html`
11390
+ <div
11391
+ class="w-16.5 h-4.75 box-border flex items-center justify-center rounded ${isPositive ? "bg-(--axebow-success) text-white uppercase text-sm" : "bg-red-100 text-red-800 text-base"}"
11392
+ >
11393
+ ${text}
11394
+ </div>
11395
+ `;
11396
+ }
11397
+ _renderProgressCell(progress) {
11398
+ return html`
11399
+ <div class="w-39.5 h-4.25 box-border">
11400
+ <axebow-progress-bar compact current="${progress.current}" max="${progress.max}"></axebow-progress-bar>
11401
+ </div>
11402
+ `;
11403
+ }
11404
+ _renderStorageCell(storageLabel, usage) {
11405
+ return html`
11406
+ <div class="w-25.25 h-4.25 box-border flex items-center gap-1.5">
11407
+ <div class="w-12.75 h-4.25 box-border flex items-center text-base pl-4.25 shrink-0">${storageLabel}</div>
11408
+ <div class="w-3.5 h-3.5 flex items-center justify-center pr-3.25 shrink-0">
11409
+ <axebow-usage-tooltip
11410
+ .usage=${usage}
11411
+ storageLabel=${this.storageTooltipLabels.storage}
11412
+ volatileLabel=${this.storageTooltipLabels.volatile}
11413
+ nonRepPersLabel=${this.storageTooltipLabels.nonRepPers}
11414
+ persistentRepLabel=${this.storageTooltipLabels.persistentRep}
11415
+ ></axebow-usage-tooltip>
11416
+ </div>
11417
+ </div>
11418
+ `;
11419
+ }
11420
+ _renderInstanceRow(instance) {
11421
+ return html`
11422
+ <div
11423
+ class="w-186.5 h-14 box-border flex items-center gap-1 p-1.5 border-t border-(--axebow-table-border) cursor-pointer"
11424
+ @click="${() => this._toggleInstance(instance.id)}"
11425
+ >
11426
+ <div class="w-48 h-10 box-border flex flex-col gap-1 text-(--axebow-tertiary)">
11427
+ <div class="flex items-center gap-1 min-w-0">
11428
+ <axebow-icon
11429
+ iconName="${this._isInstanceExpanded(instance.id) ? "collapse_all" : "expand_all"}"
11430
+ iconColor="var(--axebow-tertiary)"
11431
+ size="md"
11432
+ class="shrink-0"
11433
+ ></axebow-icon>
11434
+ <span class="text-base truncate">${instance.name}</span>
11435
+ </div>
11436
+ ${this._renderStatusBadge(instance.statusLabel, instance.isRunning)}
11437
+ </div>
11438
+ ${this._renderProgressCell(instance.cpu)} ${this._renderProgressCell(instance.memory)}
11439
+ ${this._renderStorageCell(instance.storageLabel, instance.usage)}
11440
+ <div class="w-25.5 h-4.25 box-border flex items-center">
11441
+ <axebow-button
11442
+ class="restart-button"
11443
+ variant="text"
11444
+ fixedWidth="5.5625rem"
11445
+ fixedHeight="1.0625rem"
11446
+ @click="${(e) => {
11447
+ e.stopPropagation();
11448
+ this._requestReboot(instance.name);
11449
+ }}"
11450
+ >
11451
+ ${this.rebootLabel}
11452
+ </axebow-button>
11453
+ </div>
11454
+ </div>
11455
+ ${this._isInstanceExpanded(instance.id) && instance.containers.length > 0 ? instance.containers.map((container) => html`
11456
+ <div
11457
+ class="w-186.5 h-14 box-border flex items-center gap-1 p-1.5 border-t border-(--axebow-table-border)"
11458
+ >
11459
+ <div class="w-48 h-10 box-border flex flex-col gap-1">
11460
+ <div class="flex items-center gap-1 min-w-0">
11461
+ <axebow-icon iconName="subdirectory_arrow_right" size="md" class="shrink-0"></axebow-icon>
11462
+ <span class="text-base truncate">${container.name}</span>
11463
+ </div>
11464
+ ${this._renderStatusBadge(container.statusLabel, container.isReady)}
11465
+ </div>
11466
+ ${this._renderProgressCell(container.cpu)} ${this._renderProgressCell(container.memory)}
11467
+ <div class="w-25.25 h-4.25 box-border flex items-center text-base">-</div>
11468
+ <div class="w-25.5 h-4.25 box-border flex items-center text-base">-</div>
11469
+ </div>
11470
+ `) : ""}
11471
+ `;
11472
+ }
10141
11473
  render() {
10142
- const buttonColor = this.color || "var(--axebow-tertiary)";
10143
- const iconColorProp = this.iconColor || "currentColor";
11474
+ if (!this.instances.length) return html`<p>${this.noInstancesLabel}</p>`;
10144
11475
  return html`
10145
- <button
10146
- type="button"
10147
- ?disabled=${this.disabled}
10148
- @click=${this._handleClick}
10149
- style="color: ${buttonColor};"
10150
- class="inline-flex items-center gap-1.5 bg-transparent border-none p-0 cursor-pointer font-semibold text-sm focus:outline-none transition-colors disabled:opacity-50 disabled:cursor-not-allowed"
10151
- >
10152
- <span>${this.text}</span>
10153
- ${this.icon ? html`<axebow-icon iconName="${this.icon}" iconColor="${iconColorProp}"></axebow-icon>` : ""}
10154
- </button>`;
11476
+ <p class="text-black mb-4">${this.descriptionLabel}</p>
11477
+ <div class="w-full">
11478
+ <div class="w-186.5 rounded-lg overflow-hidden border border-black/10">
11479
+ ${this._renderHeader()} ${this.instances.map((instance) => this._renderInstanceRow(instance))}
11480
+ </div>
11481
+ </div>
11482
+ <div class="flex justify-end mt-4">
11483
+ <axebow-button variant="primary" outlined class="reboot-all-button" @click="${() => this._requestReboot(null)}">
11484
+ ${this.rebootAllLabel}
11485
+ </axebow-button>
11486
+ </div>
11487
+ `;
10155
11488
  }
10156
11489
  };
10157
- __decorate([property({ type: String })], AxebowManageHyperlinks.prototype, "text", void 0);
10158
- __decorate([property({ type: String })], AxebowManageHyperlinks.prototype, "icon", void 0);
10159
- __decorate([property({ type: String })], AxebowManageHyperlinks.prototype, "color", void 0);
10160
- __decorate([property({ type: String })], AxebowManageHyperlinks.prototype, "iconColor", void 0);
10161
- __decorate([property({ type: Boolean })], AxebowManageHyperlinks.prototype, "disabled", void 0);
10162
- AxebowManageHyperlinks = __decorate([customElement("axebow-manage-hyperlinks")], AxebowManageHyperlinks);
11490
+ __decorate([property({ attribute: false })], AxebowInstancesTable.prototype, "instances", void 0);
11491
+ __decorate([property({ type: String })], AxebowInstancesTable.prototype, "descriptionLabel", void 0);
11492
+ __decorate([property({ type: String })], AxebowInstancesTable.prototype, "noInstancesLabel", void 0);
11493
+ __decorate([property({ type: String })], AxebowInstancesTable.prototype, "colInstanceLabel", void 0);
11494
+ __decorate([property({ type: String })], AxebowInstancesTable.prototype, "colCpuLabel", void 0);
11495
+ __decorate([property({ type: String })], AxebowInstancesTable.prototype, "colMemoryLabel", void 0);
11496
+ __decorate([property({ type: String })], AxebowInstancesTable.prototype, "colStorageLabel", void 0);
11497
+ __decorate([property({ type: String })], AxebowInstancesTable.prototype, "colActionsLabel", void 0);
11498
+ __decorate([property({ type: String })], AxebowInstancesTable.prototype, "rebootLabel", void 0);
11499
+ __decorate([property({ type: String })], AxebowInstancesTable.prototype, "rebootAllLabel", void 0);
11500
+ __decorate([property({ attribute: false })], AxebowInstancesTable.prototype, "storageTooltipLabels", void 0);
11501
+ __decorate([state()], AxebowInstancesTable.prototype, "_expandedInstances", void 0);
11502
+ AxebowInstancesTable = __decorate([customElement("axebow-instances-table")], AxebowInstancesTable);
10163
11503
  //#endregion
10164
- //#region src/components/axebow-box-section/axebow-box-section.ts
10165
- var AxebowBoxSection = class AxebowBoxSection extends LitElement {
11504
+ //#region src/components/axebow-tenants-table/axebow-tenants-table.ts
11505
+ var AxebowTenantsTable = class AxebowTenantsTable extends LitElement {
10166
11506
  constructor(..._args) {
10167
11507
  super(..._args);
10168
- this.title = "";
10169
- this.hyperlinks = [];
10170
- this.showHyperlink = false;
10171
- this.hyperlinkText = "";
10172
- this.hyperlinkIcon = "";
10173
- this.hyperlinkColor = "";
10174
- this.hyperlinkDisabled = false;
11508
+ this.accounts = [];
11509
+ this.noAccountsLabel = "";
11510
+ this.colAccountLabel = "";
11511
+ this.colVcpuLabel = "";
11512
+ this.colMemoryLabel = "";
11513
+ this.colStorageLabel = "";
11514
+ this._expandedAccounts = /* @__PURE__ */ new Set();
10175
11515
  }
10176
11516
  static {
10177
- this.styles = unsafeCSS(tailwind_default);
11517
+ this.styles = [unsafeCSS(tailwind_default), axebowTheme];
10178
11518
  }
10179
- _handleItemClick(item, index) {
10180
- if (item.onClick) item.onClick();
10181
- this.dispatchEvent(new CustomEvent("hyperlink-click", {
10182
- bubbles: true,
10183
- composed: true,
10184
- detail: {
10185
- item,
10186
- index,
10187
- text: item.text
10188
- }
10189
- }));
11519
+ _toggleAccount(accountName) {
11520
+ if (this._expandedAccounts.has(accountName)) this._expandedAccounts.delete(accountName);
11521
+ else this._expandedAccounts.add(accountName);
11522
+ this.requestUpdate();
11523
+ }
11524
+ _isAccountExpanded(accountName) {
11525
+ return this._expandedAccounts.has(accountName);
11526
+ }
11527
+ _renderTooltip(usage) {
11528
+ return html`
11529
+ <axebow-usage-tooltip
11530
+ .usage=${usage}
11531
+ storageLabel=${this.storageTooltipLabels.storage}
11532
+ volatileLabel=${this.storageTooltipLabels.volatile}
11533
+ nonRepPersLabel=${this.storageTooltipLabels.nonRepPers}
11534
+ persistentRepLabel=${this.storageTooltipLabels.persistentRep}
11535
+ ></axebow-usage-tooltip>
11536
+ `;
11537
+ }
11538
+ render() {
11539
+ if (!this.accounts.length) return html`<p>${this.noAccountsLabel}</p>`;
11540
+ return html`
11541
+ <table class="w-full border-collapse bg-white rounded-lg">
11542
+ <thead>
11543
+ <tr>
11544
+ <th class="border border-(--axebow-table-border) p-2 text-left rounded-lg">${this.colAccountLabel}</th>
11545
+ <th class="border border-(--axebow-table-border) p-2 text-left rounded-lg">${this.colVcpuLabel}</th>
11546
+ <th class="border border-(--axebow-table-border) p-2 text-left rounded-lg">${this.colMemoryLabel}</th>
11547
+ <th class="border border-(--axebow-table-border) p-2 text-left rounded-lg">${this.colStorageLabel}</th>
11548
+ </tr>
11549
+ </thead>
11550
+ <tbody>
11551
+ ${this.accounts.map((account) => html`
11552
+ <tr class="cursor-pointer" @click="${() => this._toggleAccount(account.name)}">
11553
+ <td class="border border-(--axebow-table-border) p-2 rounded-lg text-(--axebow-tertiary)">
11554
+ ${this._isAccountExpanded(account.name) ? html`<axebow-icon
11555
+ iconName="collapse_all"
11556
+ class="mr-1"
11557
+ iconColor="var(--axebow-tertiary)"
11558
+ size="md"
11559
+ ></axebow-icon>` : html`<axebow-icon
11560
+ iconName="expand_all"
11561
+ class="mr-1"
11562
+ iconColor="var(--axebow-tertiary)"
11563
+ size="md"
11564
+ ></axebow-icon>`}
11565
+ ${account.name}
11566
+ </td>
11567
+ <td class="border border-(--axebow-table-border) p-2 rounded-lg">${account.cpu}</td>
11568
+ <td class="border border-(--axebow-table-border) p-2 rounded-lg">${account.memory}</td>
11569
+ <td class="border border-(--axebow-table-border) p-2 rounded-lg">
11570
+ ${account.storage} ${this._renderTooltip(account.usage)}
11571
+ </td>
11572
+ </tr>
11573
+ ${this._isAccountExpanded(account.name) ? account.environments.map((environment) => html`
11574
+ <tr>
11575
+ <td class="border border-(--axebow-table-border) p-2 rounded-lg">
11576
+ <axebow-icon iconName="subdirectory_arrow_right" class="mr-1" size="md"></axebow-icon>
11577
+ <span>${environment.name}</span>
11578
+ </td>
11579
+ <td class="border border-(--axebow-table-border) p-2 rounded-lg">${environment.cpu}</td>
11580
+ <td class="border border-(--axebow-table-border) p-2 rounded-lg">${environment.memory}</td>
11581
+ <td class="border border-(--axebow-table-border) p-2 rounded-lg">
11582
+ ${environment.storageTotal} ${this._renderTooltip(environment.usage)}
11583
+ </td>
11584
+ </tr>
11585
+ `) : ""}
11586
+ `)}
11587
+ </tbody>
11588
+ </table>
11589
+ `;
11590
+ }
11591
+ };
11592
+ __decorate([property({ attribute: false })], AxebowTenantsTable.prototype, "accounts", void 0);
11593
+ __decorate([property({ type: String })], AxebowTenantsTable.prototype, "noAccountsLabel", void 0);
11594
+ __decorate([property({ type: String })], AxebowTenantsTable.prototype, "colAccountLabel", void 0);
11595
+ __decorate([property({ type: String })], AxebowTenantsTable.prototype, "colVcpuLabel", void 0);
11596
+ __decorate([property({ type: String })], AxebowTenantsTable.prototype, "colMemoryLabel", void 0);
11597
+ __decorate([property({ type: String })], AxebowTenantsTable.prototype, "colStorageLabel", void 0);
11598
+ __decorate([property({ attribute: false })], AxebowTenantsTable.prototype, "storageTooltipLabels", void 0);
11599
+ __decorate([state()], AxebowTenantsTable.prototype, "_expandedAccounts", void 0);
11600
+ AxebowTenantsTable = __decorate([customElement("axebow-tenants-table")], AxebowTenantsTable);
11601
+ //#endregion
11602
+ //#region src/components/axebow-expandable-card/axebow-expandable-card.ts
11603
+ var AxebowExpandableCard = class AxebowExpandableCard extends LitElement {
11604
+ static {
11605
+ this.styles = [unsafeCSS(tailwind_default), css`
11606
+ :host {
11607
+ display: block;
11608
+ }
11609
+ `];
10190
11610
  }
10191
11611
  render() {
10192
- const itemsToRender = this.hyperlinks.length > 0 ? this.hyperlinks : this.showHyperlink || Boolean(this.hyperlinkText) ? [{
10193
- text: this.hyperlinkText,
10194
- icon: this.hyperlinkIcon,
10195
- color: this.hyperlinkColor,
10196
- disabled: this.hyperlinkDisabled
10197
- }] : [];
10198
11612
  return html`
10199
- <div class="flex flex-col rounded-md p-5 gap-4 bg-white">
10200
- <div class="w-full flex justify-between items-center border-b border-solid border-[#DBDDE4] pb-3 gap-2">
10201
- <span class="font-semibold uppercase text-(--axebow-primary)">${this.title}</span>
10202
- <slot name="hyperlink">
10203
- ${itemsToRender.length > 0 ? html`
10204
- <div class="flex items-center gap-4">
10205
- ${itemsToRender.map((item, index) => html`
10206
- <axebow-manage-hyperlinks
10207
- text="${item.text}"
10208
- icon="${item.icon}"
10209
- color="${item.color ?? ""}"
10210
- ?disabled=${Boolean(item.disabled)}
10211
- @hyperlink-click=${() => this._handleItemClick(item, index)}
10212
- ></axebow-manage-hyperlinks>
10213
- `)}
10214
- </div>
10215
- ` : ""}
10216
- </slot>
10217
- </div>
10218
- <slot></slot>
10219
- </div>`;
11613
+ <div class="box-border p-4 bg-white rounded-lg shadow-sm border border-gray-200 overflow-hidden">
11614
+ <slot></slot>
11615
+ </div>
11616
+ `;
10220
11617
  }
10221
11618
  };
10222
- __decorate([property({ type: String })], AxebowBoxSection.prototype, "title", void 0);
10223
- __decorate([property({ type: Array })], AxebowBoxSection.prototype, "hyperlinks", void 0);
10224
- __decorate([property({ type: Boolean })], AxebowBoxSection.prototype, "showHyperlink", void 0);
10225
- __decorate([property({ type: String })], AxebowBoxSection.prototype, "hyperlinkText", void 0);
10226
- __decorate([property({ type: String })], AxebowBoxSection.prototype, "hyperlinkIcon", void 0);
10227
- __decorate([property({ type: String })], AxebowBoxSection.prototype, "hyperlinkColor", void 0);
10228
- __decorate([property({ type: Boolean })], AxebowBoxSection.prototype, "hyperlinkDisabled", void 0);
10229
- AxebowBoxSection = __decorate([customElement("axebow-box-section")], AxebowBoxSection);
11619
+ AxebowExpandableCard = __decorate([customElement("axebow-expandable-card")], AxebowExpandableCard);
10230
11620
  //#endregion
10231
- //#region src/components/axebow-copy-box/axebow-copy-box.ts
10232
- var AxebowCopyBox = class AxebowCopyBox extends LitElement {
11621
+ //#region src/components/axebow-undeploy-card/axebow-undeploy-card.ts
11622
+ var AxebowUndeployCard = class AxebowUndeployCard extends LitElement {
10233
11623
  constructor(..._args) {
10234
11624
  super(..._args);
11625
+ this.title = "";
11626
+ this.deletePrefix = "";
11627
+ this.serviceName = "";
11628
+ this.deleteSuffix = "";
11629
+ this.warningPrefix = "";
11630
+ this.warningBold = "";
11631
+ this.confirmText = "";
11632
+ this.confirmLabelPrefix = "";
11633
+ this.confirmLabelHighlight = "";
11634
+ this.placeholder = "";
10235
11635
  this.value = "";
10236
- this.copyValue = "";
10237
- this.iconName = "content_copy";
10238
- this.size = "lg";
10239
- this.disabled = false;
10240
- this._copied = false;
11636
+ this.buttonLabel = "";
11637
+ this.buttonDisabled = false;
11638
+ this.isSubmitting = false;
11639
+ this.loadingLabel = "";
10241
11640
  }
10242
11641
  static {
10243
- this.styles = unsafeCSS(tailwind_default);
11642
+ this.styles = [
11643
+ unsafeCSS(tailwind_default),
11644
+ axebowTheme,
11645
+ css`
11646
+ :host {
11647
+ display: block;
11648
+ }
11649
+ `
11650
+ ];
10244
11651
  }
10245
- async _handleCopy(e) {
10246
- if (this.disabled) {
10247
- e.preventDefault();
10248
- e.stopPropagation();
10249
- return;
10250
- }
10251
- let textToCopy = this.copyValue || this.value;
10252
- if (!textToCopy) {
10253
- const slot = this.shadowRoot?.querySelector("slot");
10254
- if (slot) textToCopy = slot.assignedNodes({ flatten: true }).map((n) => n.textContent ?? "").join("").trim();
10255
- if (!textToCopy) textToCopy = this.textContent?.trim() ?? "";
10256
- }
10257
- if (textToCopy) try {
10258
- await navigator.clipboard.writeText(textToCopy);
10259
- this._copied = true;
10260
- setTimeout(() => {
10261
- this._copied = false;
10262
- }, 2e3);
10263
- } catch (err) {
10264
- console.error("Failed to copy text:", err);
10265
- }
10266
- this.dispatchEvent(new CustomEvent("copy", {
11652
+ _handleInput(e) {
11653
+ const target = e.target;
11654
+ this.dispatchEvent(new CustomEvent("confirm-input", {
11655
+ detail: { value: target.value },
10267
11656
  bubbles: true,
10268
- composed: true,
10269
- detail: { value: textToCopy }
11657
+ composed: true
11658
+ }));
11659
+ }
11660
+ _handleConfirm() {
11661
+ this.dispatchEvent(new CustomEvent("confirm", {
11662
+ bubbles: true,
11663
+ composed: true
10270
11664
  }));
10271
11665
  }
10272
11666
  render() {
10273
- const iconToShow = this._copied ? "check" : this.iconName;
10274
11667
  return html`
10275
- <div
10276
- @click=${this._handleCopy}
10277
- class="h-10 w-10 bg-(--axebow-tertiary) hover:bg-(--axebow-gray) rounded-r-md flex items-center justify-center cursor-pointer transition-colors select-none ${this.disabled ? "opacity-50 cursor-not-allowed pointer-events-none" : ""}"
10278
- title=${this._copied ? "Copied!" : "Copy"}
10279
- >
10280
- <axebow-icon iconName="${iconToShow}" iconColor="white" size="${this.size}"></axebow-icon>
10281
- <slot class="hidden"></slot>
11668
+ <div class="w-198.25 h-auto box-border bg-white rounded-md p-6 flex flex-col gap-8">
11669
+ <div class="w-186.25 flex gap-4">
11670
+ <div class="w-8 h-full flex flex-col items-start shrink-0">
11671
+ <div class="w-8 h-8 shrink-0 flex items-center justify-center">
11672
+ <axebow-icon iconName="error" iconColor="var(--axebow-error)" size="2rem"></axebow-icon>
10282
11673
  </div>
10283
- `;
11674
+ </div>
11675
+ <div class="flex-1 min-w-0 flex flex-col gap-6">
11676
+ <div class="w-full">
11677
+ <h2 class="m-0 text-[1.25rem] font-semibold text-black">${this.title}</h2>
11678
+ </div>
11679
+ <div class="w-full flex flex-col gap-2">
11680
+ <p class="m-0">${this.deletePrefix} <strong>${this.serviceName}</strong> ${this.deleteSuffix}</p>
11681
+ <p class="m-0">${this.warningPrefix} <strong>${this.warningBold}</strong></p>
11682
+ <p class="m-0">${this.confirmText}</p>
11683
+ </div>
11684
+ </div>
11685
+ </div>
11686
+ <div class="w-186.25 flex items-end gap-4 pl-11.75 box-border">
11687
+ <div class="w-102 flex flex-col gap-1">
11688
+ <p class="m-0 text-sm">
11689
+ ${this.confirmLabelPrefix} <span class="text-(--axebow-primary)">${this.confirmLabelHighlight}</span>
11690
+ </p>
11691
+ <axebow-input
11692
+ controlType="input"
11693
+ .value=${this.value}
11694
+ placeholder=${this.placeholder}
11695
+ .callback=${(e) => this._handleInput(e)}
11696
+ ></axebow-input>
11697
+ </div>
11698
+ <axebow-button variant="danger" .disabled=${this.buttonDisabled || this.isSubmitting} @click=${this._handleConfirm}>
11699
+ ${this.isSubmitting ? html`
11700
+ <div class="flex gap-1 items-center">
11701
+ <sl-spinner style="--indicator-color: red;"></sl-spinner>
11702
+ <p class="m-0">${this.loadingLabel}</p>
11703
+ </div>
11704
+ ` : this.buttonLabel}
11705
+ </axebow-button>
11706
+ </div>
11707
+ </div>
11708
+ `;
10284
11709
  }
10285
11710
  };
10286
- __decorate([property({ type: String })], AxebowCopyBox.prototype, "value", void 0);
10287
- __decorate([property({ type: String })], AxebowCopyBox.prototype, "copyValue", void 0);
10288
- __decorate([property({ type: String })], AxebowCopyBox.prototype, "iconName", void 0);
10289
- __decorate([property({ type: String })], AxebowCopyBox.prototype, "size", void 0);
10290
- __decorate([property({ type: Boolean })], AxebowCopyBox.prototype, "disabled", void 0);
10291
- __decorate([state()], AxebowCopyBox.prototype, "_copied", void 0);
10292
- AxebowCopyBox = __decorate([customElement("axebow-copy-box")], AxebowCopyBox);
11711
+ __decorate([property({ type: String })], AxebowUndeployCard.prototype, "title", void 0);
11712
+ __decorate([property({ type: String })], AxebowUndeployCard.prototype, "deletePrefix", void 0);
11713
+ __decorate([property({ type: String })], AxebowUndeployCard.prototype, "serviceName", void 0);
11714
+ __decorate([property({ type: String })], AxebowUndeployCard.prototype, "deleteSuffix", void 0);
11715
+ __decorate([property({ type: String })], AxebowUndeployCard.prototype, "warningPrefix", void 0);
11716
+ __decorate([property({ type: String })], AxebowUndeployCard.prototype, "warningBold", void 0);
11717
+ __decorate([property({ type: String })], AxebowUndeployCard.prototype, "confirmText", void 0);
11718
+ __decorate([property({ type: String })], AxebowUndeployCard.prototype, "confirmLabelPrefix", void 0);
11719
+ __decorate([property({ type: String })], AxebowUndeployCard.prototype, "confirmLabelHighlight", void 0);
11720
+ __decorate([property({ type: String })], AxebowUndeployCard.prototype, "placeholder", void 0);
11721
+ __decorate([property({ type: String })], AxebowUndeployCard.prototype, "value", void 0);
11722
+ __decorate([property({ type: String })], AxebowUndeployCard.prototype, "buttonLabel", void 0);
11723
+ __decorate([property({ type: Boolean })], AxebowUndeployCard.prototype, "buttonDisabled", void 0);
11724
+ __decorate([property({ type: Boolean })], AxebowUndeployCard.prototype, "isSubmitting", void 0);
11725
+ __decorate([property({ type: String })], AxebowUndeployCard.prototype, "loadingLabel", void 0);
11726
+ AxebowUndeployCard = __decorate([customElement("axebow-undeploy-card")], AxebowUndeployCard);
10293
11727
  //#endregion
10294
- //#region src/components/axebow-tabs-submenu/axebow-tabs-submenu.ts
10295
- var AxebowTabsSubmenu = class AxebowTabsSubmenu extends LitElement {
11728
+ //#region src/components/axebow-observability-container/axebow-observability-container.ts
11729
+ var AxebowObservabilityContainer = class AxebowObservabilityContainer extends LitElement {
10296
11730
  constructor(..._args) {
10297
11731
  super(..._args);
10298
- this.tabs = [];
10299
- this.activeTab = 0;
10300
- this.disabled = false;
10301
- this.stretch = true;
11732
+ this.containerName = "";
11733
+ this.isLogsOn = true;
11734
+ this.isTerminalOn = false;
11735
+ this.logsLabel = "";
11736
+ this.logsOnLabel = "";
11737
+ this.logsOffLabel = "";
11738
+ this.terminalLabel = "";
11739
+ this.terminalOnLabel = "";
11740
+ this.terminalOffLabel = "";
11741
+ this.logFilters = [];
11742
+ this.logFilterTitle = "";
11743
+ this.cleanFilterLabel = "";
11744
+ this.addFilterLabel = "";
11745
+ this.selectOptionLabel = "";
11746
+ this.filterPlaceholder = "";
11747
+ this.cleanHistoryLabel = "";
11748
+ this.followLogs = false;
11749
+ this.autoScrollLabel = "";
11750
+ this.autoScrollOnLabel = "";
11751
+ this.autoScrollOffLabel = "";
11752
+ this.logsTitle = "";
11753
+ this.terminalTitle = "";
11754
+ this.logsUrl = "";
11755
+ this.terminalUrl = "";
11756
+ this.logsIframeId = "";
11757
+ this.terminalIframeId = "";
10302
11758
  }
10303
11759
  static {
10304
- this.styles = unsafeCSS(tailwind_default);
10305
- }
10306
- _handleTabChange(e) {
10307
- this.activeTab = e.detail.index;
10308
- this.dispatchEvent(new CustomEvent("tab-change", {
10309
- bubbles: true,
10310
- composed: true,
10311
- detail: e.detail
10312
- }));
11760
+ this.styles = [
11761
+ unsafeCSS(tailwind_default),
11762
+ axebowTheme,
11763
+ css`
11764
+ sl-input::part(input) {
11765
+ font-size: 0.95rem;
11766
+ color: var(--axebow-strong-gray);
11767
+ background-color: #f3f4f6;
11768
+ }
11769
+ sl-input::part(base) {
11770
+ background-color: #f3f4f6;
11771
+ width: 100%;
11772
+ }
11773
+ .log-filter-dropdown {
11774
+ display: block;
11775
+ width: 100%;
11776
+ }
11777
+ .log-filter-dropdown::part(trigger) {
11778
+ display: block !important;
11779
+ width: 100% !important;
11780
+ }
11781
+ .log-filter-dropdown::part(panel) {
11782
+ width: 17rem !important;
11783
+ }
11784
+ sl-divider {
11785
+ height: 0.0625rem !important;
11786
+ border-top: none !important;
11787
+ background-color: var(--axebow-light-gray);
11788
+ margin-bottom: 0.90625rem !important;
11789
+ }
11790
+ `
11791
+ ];
10313
11792
  }
10314
11793
  render() {
10315
11794
  return html`
10316
- <axebow-tab-selector
10317
- variant="sections-tab"
10318
- .activeTab=${this.activeTab}
10319
- ?disabled=${this.disabled}
10320
- .stretch=${this.stretch}
10321
- @tab-change=${this._handleTabChange}
10322
- >
10323
- ${this.tabs.map((tab, i) => html`
10324
- <span slot="tab-label-${i}" ?disabled=${tab.disabled ?? false}>
10325
- ${tab.label}
10326
- </span>
10327
- `)}
10328
- </axebow-tab-selector>
10329
- `;
11795
+ <div class="w-full flex flex-col gap-4">
11796
+ ${this._renderHeader()} ${this.isTerminalOn ? this._renderColumns() : this._renderStacked()}
11797
+ </div>
11798
+ `;
11799
+ }
11800
+ _renderStacked() {
11801
+ return html` ${this.isLogsOn ? this._renderLogFilters() : null} ${this.isLogsOn ? this._renderLogsIframe() : null} `;
11802
+ }
11803
+ _renderColumns() {
11804
+ return html`
11805
+ <div class="flex gap-4">
11806
+ <div class="w-140.75 flex flex-col gap-4">
11807
+ ${this.isLogsOn ? this._renderLogFilters() : null} ${this.isLogsOn ? this._renderLogsIframe() : null}
11808
+ </div>
11809
+ <div class="w-148.75">${this._renderTerminalIframe()}</div>
11810
+ </div>
11811
+ `;
11812
+ }
11813
+ _renderHeader() {
11814
+ return html`
11815
+ <div class="flex justify-between w-full border-b border-solid border-gray-200 pb-2 gap-4 items-center">
11816
+ <h2 class="font-semibold text-lg text-ellipsis text-(--axebow-primary)">${this.containerName}</h2>
11817
+ <div class="flex items-center gap-4">
11818
+ ${this._renderToggle(this.logsLabel, this.isLogsOn, this.logsOnLabel, this.logsOffLabel, (checked) => this._dispatch("logs-toggle", { checked }))}
11819
+ <div class="h-full w-px bg-(--axebow-gray)"></div>
11820
+ ${this._renderToggle(this.terminalLabel, this.isTerminalOn, this.terminalOnLabel, this.terminalOffLabel, (checked) => this._dispatch("terminal-toggle", { checked }))}
11821
+ <div class="h-full w-px bg-(--axebow-gray)"></div>
11822
+ <div class="w-6 h-6 flex items-center justify-center">
11823
+ <axebow-icon
11824
+ class="cursor-pointer"
11825
+ iconName="open_in_new"
11826
+ size="2xl"
11827
+ iconColor="var(--axebow-tertiary)"
11828
+ @click=${() => this._dispatch("open-in-new")}
11829
+ ></axebow-icon>
11830
+ </div>
11831
+ <div class="h-full w-px bg-(--axebow-gray)"></div>
11832
+ <div
11833
+ class="w-6 h-6 flex items-center justify-center cursor-pointer"
11834
+ @click=${() => this._dispatch("remove-container")}
11835
+ >
11836
+ <axebow-icon iconName="cancel" size="2xl" iconColor="var(--axebow-gray)"></axebow-icon>
11837
+ </div>
11838
+ </div>
11839
+ </div>
11840
+ `;
11841
+ }
11842
+ _renderToggle(label, checked, onLabel, offLabel, onChange) {
11843
+ return html`
11844
+ <div class="flex items-center gap-2">
11845
+ <p class="m-0 text-(--axebow-tertiary) font-bold">${label}</p>
11846
+ <axebow-switch .checked=${checked} .onChange=${(checked) => onChange(checked)}></axebow-switch>
11847
+ <p class="m-0 italic text-gray-400">${checked ? onLabel : offLabel}</p>
11848
+ </div>
11849
+ `;
11850
+ }
11851
+ _renderLogFilters() {
11852
+ return html`
11853
+ <div class="flex flex-wrap gap-4 items-start">
11854
+ ${this.logFilters.map((_, index) => this._renderLogFilterDropdown(index))}
11855
+ <axebow-button
11856
+ class="shrink-0 mt-6.75"
11857
+ variant="primary"
11858
+ outline
11859
+ fixedWidth="7.4375rem"
11860
+ fixedHeight="2.5rem"
11861
+ @click=${() => this._dispatch("add-filter")}
11862
+ >
11863
+ ${this.addFilterLabel}
11864
+ </axebow-button>
11865
+ </div>
11866
+ `;
11867
+ }
11868
+ _renderLogFilterDropdown(index) {
11869
+ const filter = this.logFilters[index];
11870
+ return html`
11871
+ <div class="w-68 h-auto flex flex-col gap-2">
11872
+ <div class="w-68 h-4.75 flex items-center justify-between">
11873
+ <h1 class="m-0 font-bold">${this.logFilterTitle}</h1>
11874
+ <button
11875
+ class="m-0 text-base text-(--axebow-tertiary) cursor-pointer"
11876
+ @click=${() => this._dispatch("clean-filter", { index })}
11877
+ >
11878
+ ${this.cleanFilterLabel}
11879
+ </button>
11880
+ </div>
11881
+ <sl-dropdown class="log-filter-dropdown" id="log-filter-dropdown-${index}">
11882
+ <axebow-button slot="trigger" caret fixedWidth="17rem" fixedHeight="2.5rem">
11883
+ ${filter.selected ?? this.selectOptionLabel}
11884
+ </axebow-button>
11885
+ <sl-menu class="w-full my-2">
11886
+ <sl-input
11887
+ type="text"
11888
+ placeholder=${this.filterPlaceholder}
11889
+ clearable
11890
+ .value=${""}
11891
+ @sl-change=${(e) => this._handleFilterInputChange(e, index)}
11892
+ @keydown=${(e) => this._handleFilterInputKeydown(e, index)}
11893
+ ></sl-input>
11894
+ ${filter.options.map((option) => html`
11895
+ <sl-menu-item @click=${() => this._selectFilterOption(index, option)}>${option}</sl-menu-item>
11896
+ `)}
11897
+ ${filter.options.length > 0 ? html`
11898
+ <button
11899
+ class="p-2 w-full border-t border-solid border-gray-200 text-center text-gray-500 hover:bg-gray-100 cursor-pointer"
11900
+ @click=${() => this._cleanFilterHistory(index)}
11901
+ >
11902
+ ${this.cleanHistoryLabel}
11903
+ </button>
11904
+ ` : null}
11905
+ </sl-menu>
11906
+ </sl-dropdown>
11907
+ </div>
11908
+ `;
11909
+ }
11910
+ _renderLogsIframe() {
11911
+ return html`
11912
+ <div class="w-full h-full px-4 py-8 rounded-lg flex flex-col bg-white">
11913
+ <div class="flex justify-between items-center">
11914
+ <h1 class="m-0 text-base uppercase font-semibold text-(--axebow-gray)">${this.logsTitle}</h1>
11915
+ <div class="flex items-center gap-4">
11916
+ ${this._renderToggle(this.autoScrollLabel, this.followLogs, this.autoScrollOnLabel, this.autoScrollOffLabel, (checked) => this._dispatch("follow-logs-change", { checked }))}
11917
+ <div class="h-full w-px bg-(--axebow-gray)"></div>
11918
+ <div class="w-6 h-6 flex items-center justify-center">
11919
+ <axebow-icon
11920
+ class="cursor-pointer"
11921
+ iconName="download_for_offline"
11922
+ size="2xl"
11923
+ iconColor="var(--axebow-tertiary)"
11924
+ @click=${() => this._dispatch("download-logs")}
11925
+ ></axebow-icon>
11926
+ </div>
11927
+ <div class="h-full w-px bg-(--axebow-gray)"></div>
11928
+ <div class="w-6 h-6 flex items-center justify-center">
11929
+ <axebow-icon
11930
+ class="cursor-pointer"
11931
+ iconName="content_copy"
11932
+ size="2xl"
11933
+ iconColor="var(--axebow-tertiary)"
11934
+ @click=${() => this._copyLogs()}
11935
+ ></axebow-icon>
11936
+ </div>
11937
+ </div>
11938
+ </div>
11939
+ <sl-divider class="w-full"></sl-divider>
11940
+ <iframe
11941
+ id="${this.logsIframeId}"
11942
+ allow="storage-access"
11943
+ sandbox="${"allow-same-origin allow-scripts"}"
11944
+ class="w-full h-screen"
11945
+ src="${this.logsUrl}"
11946
+ ></iframe>
11947
+ </div>
11948
+ `;
11949
+ }
11950
+ async _copyLogs() {
11951
+ try {
11952
+ const text = (this.renderRoot?.querySelector(`#${this.logsIframeId}`))?.contentDocument?.body?.innerText ?? "";
11953
+ if (!text) {
11954
+ this._dispatch("logs-copy-failed");
11955
+ return;
11956
+ }
11957
+ await navigator.clipboard.writeText(text);
11958
+ this._dispatch("logs-copied");
11959
+ } catch (_) {
11960
+ this._dispatch("logs-copy-failed");
11961
+ }
11962
+ }
11963
+ _renderTerminalIframe() {
11964
+ return html`
11965
+ <div class="w-full h-full px-4 py-8 rounded-lg flex flex-col bg-white">
11966
+ <div class="flex justify-between items-center">
11967
+ <h1 class="m-0 text-base uppercase font-semibold text-(--axebow-gray)">${this.terminalTitle}</h1>
11968
+ </div>
11969
+ <sl-divider class="w-full"></sl-divider>
11970
+ <iframe
11971
+ id="${this.terminalIframeId}"
11972
+ allow="storage-access"
11973
+ sandbox="${"allow-same-origin allow-scripts"}"
11974
+ class="w-full h-screen"
11975
+ src="${this.terminalUrl}"
11976
+ ></iframe>
11977
+ </div>
11978
+ `;
11979
+ }
11980
+ _handleFilterInputChange(e, index) {
11981
+ const input = e.target;
11982
+ const value = input.value.trim();
11983
+ input.value = "";
11984
+ if (value) this._dispatch("filter-input-change", {
11985
+ index,
11986
+ value
11987
+ });
11988
+ }
11989
+ _handleFilterInputKeydown(e, index) {
11990
+ if (e.key !== "Enter") return;
11991
+ e.preventDefault();
11992
+ e.stopPropagation();
11993
+ const input = e.target;
11994
+ const value = input.value.trim();
11995
+ input.value = "";
11996
+ if (value) this._dispatch("filter-input-change", {
11997
+ index,
11998
+ value
11999
+ });
12000
+ this._closeDropdown(index);
12001
+ }
12002
+ _selectFilterOption(index, option) {
12003
+ this._dispatch("select-filter-option", {
12004
+ index,
12005
+ option
12006
+ });
12007
+ this._closeDropdown(index);
12008
+ }
12009
+ _cleanFilterHistory(index) {
12010
+ this._dispatch("clean-filter-history", { index });
12011
+ this._closeDropdown(index);
12012
+ }
12013
+ _closeDropdown(index) {
12014
+ const dropdown = this.renderRoot?.querySelector(`#log-filter-dropdown-${index}`);
12015
+ if (dropdown) dropdown.hide();
12016
+ }
12017
+ _dispatch(eventName, detail = {}) {
12018
+ this.dispatchEvent(new CustomEvent(eventName, {
12019
+ detail,
12020
+ bubbles: true,
12021
+ composed: true
12022
+ }));
10330
12023
  }
10331
12024
  };
10332
- __decorate([property({ type: Array })], AxebowTabsSubmenu.prototype, "tabs", void 0);
10333
- __decorate([property({ type: Number })], AxebowTabsSubmenu.prototype, "activeTab", void 0);
10334
- __decorate([property({ type: Boolean })], AxebowTabsSubmenu.prototype, "disabled", void 0);
10335
- __decorate([property({ type: Boolean })], AxebowTabsSubmenu.prototype, "stretch", void 0);
10336
- AxebowTabsSubmenu = __decorate([customElement("axebow-tabs-submenu")], AxebowTabsSubmenu);
12025
+ __decorate([property({ type: String })], AxebowObservabilityContainer.prototype, "containerName", void 0);
12026
+ __decorate([property({ type: Boolean })], AxebowObservabilityContainer.prototype, "isLogsOn", void 0);
12027
+ __decorate([property({ type: Boolean })], AxebowObservabilityContainer.prototype, "isTerminalOn", void 0);
12028
+ __decorate([property({ type: String })], AxebowObservabilityContainer.prototype, "logsLabel", void 0);
12029
+ __decorate([property({ type: String })], AxebowObservabilityContainer.prototype, "logsOnLabel", void 0);
12030
+ __decorate([property({ type: String })], AxebowObservabilityContainer.prototype, "logsOffLabel", void 0);
12031
+ __decorate([property({ type: String })], AxebowObservabilityContainer.prototype, "terminalLabel", void 0);
12032
+ __decorate([property({ type: String })], AxebowObservabilityContainer.prototype, "terminalOnLabel", void 0);
12033
+ __decorate([property({ type: String })], AxebowObservabilityContainer.prototype, "terminalOffLabel", void 0);
12034
+ __decorate([property({ attribute: false })], AxebowObservabilityContainer.prototype, "logFilters", void 0);
12035
+ __decorate([property({ type: String })], AxebowObservabilityContainer.prototype, "logFilterTitle", void 0);
12036
+ __decorate([property({ type: String })], AxebowObservabilityContainer.prototype, "cleanFilterLabel", void 0);
12037
+ __decorate([property({ type: String })], AxebowObservabilityContainer.prototype, "addFilterLabel", void 0);
12038
+ __decorate([property({ type: String })], AxebowObservabilityContainer.prototype, "selectOptionLabel", void 0);
12039
+ __decorate([property({ type: String })], AxebowObservabilityContainer.prototype, "filterPlaceholder", void 0);
12040
+ __decorate([property({ type: String })], AxebowObservabilityContainer.prototype, "cleanHistoryLabel", void 0);
12041
+ __decorate([property({ type: Boolean })], AxebowObservabilityContainer.prototype, "followLogs", void 0);
12042
+ __decorate([property({ type: String })], AxebowObservabilityContainer.prototype, "autoScrollLabel", void 0);
12043
+ __decorate([property({ type: String })], AxebowObservabilityContainer.prototype, "autoScrollOnLabel", void 0);
12044
+ __decorate([property({ type: String })], AxebowObservabilityContainer.prototype, "autoScrollOffLabel", void 0);
12045
+ __decorate([property({ type: String })], AxebowObservabilityContainer.prototype, "logsTitle", void 0);
12046
+ __decorate([property({ type: String })], AxebowObservabilityContainer.prototype, "terminalTitle", void 0);
12047
+ __decorate([property({ type: String })], AxebowObservabilityContainer.prototype, "logsUrl", void 0);
12048
+ __decorate([property({ type: String })], AxebowObservabilityContainer.prototype, "terminalUrl", void 0);
12049
+ __decorate([property({ type: String })], AxebowObservabilityContainer.prototype, "logsIframeId", void 0);
12050
+ __decorate([property({ type: String })], AxebowObservabilityContainer.prototype, "terminalIframeId", void 0);
12051
+ AxebowObservabilityContainer = __decorate([customElement("axebow-observability-container")], AxebowObservabilityContainer);
10337
12052
  //#endregion
10338
- export { AxebowActionsFooter, AxebowAdjustmentResourcesCounter, AxebowAlert, AxebowBanner, AxebowBaseCard, AxebowBoxSection, AxebowBreadcrumbHeader, AxebowButton, AxebowCardActionBanner, AxebowCardAttentionBanner, AxebowCardCloudLogo, AxebowCardFilter, AxebowCardFilterItem, AxebowCardFooter, AxebowCardHeader, AxebowCardResourceRow, AxebowCardResourceTable, AxebowCardSpecialLink, AxebowCardStatItem, AxebowCardStatsRow, AxebowCardStatus, AxebowCardTableHeader, AxebowCardVersionSelector, AxebowCarouselInput, AxebowCarouselSelectorItem, AxebowCarouselSelectorTenant, AxebowChannelConfigPanel, AxebowCheckboxInput, AxebowCollaboratorsDialog, AxebowCopyBox, AxebowDeployCard, AxebowDeploySummary, AxebowDialog, AxebowDragDropUploadFile, AxebowDraggableService, AxebowExpandableHeader, AxebowFilterBar, AxebowFooter, AxebowFormPanelField, AxebowGettingStartedCard, AxebowHeader, AxebowHelpBubble, AxebowIcon, AxebowInfrastructureCard, AxebowInput, AxebowInputBase, AxebowLimitsCounter, AxebowManageHyperlinks, AxebowMarketplaceCard, AxebowModalsConfirmation, AxebowMoreActions, AxebowNumberCard, AxebowNumbersSection, AxebowNumericInput, AxebowPill, AxebowProvidersInput, AxebowQuickTipButton, AxebowQuickTipSection, AxebowResourceBar, AxebowResourceBoxForm, AxebowResourceCard, AxebowResourceLimitInput, AxebowResourceLimitsPanel, AxebowResourcesCounter, AxebowRoleTooltip, AxebowRuntimeZipDialog, AxebowSearch, AxebowSearchBarFilters, AxebowSelectInput, AxebowSelectorSlider, AxebowServicesPanel, AxebowSidebar, AxebowStatus, AxebowStepHeader, AxebowSummaryCard, AxebowSummaryFlavors, AxebowSummaryKeyValue, AxebowSummaryLimits, AxebowSummaryStep, AxebowSummaryStepHeader, AxebowSwitch, AxebowSwitchInput, AxebowTabSelector, AxebowTabsSubmenu, AxebowTenantCard, AxebowTenantResourceTable, AxebowTextInput, AxebowTooltip, CustomHomePageBody, DEFAULT_ADD_DIALOG_LABELS, DeployModalComponent, DeployModalFooter, DeployModalHeader, DeployPageBody, STATUS_COLORS, TableChart, axebowTheme, buildAddButton, buildExternalNodeContent, buildMainNodeContent, createElement, createIcon };
12053
+ export { AxebowActionsFooter, AxebowAdjustmentResourcesCounter, AxebowAlert, AxebowBanner, AxebowBaseCard, AxebowBoxSection, AxebowBreadcrumbHeader, AxebowButton, AxebowCardActionBanner, AxebowCardAttentionBanner, AxebowCardCloudLogo, AxebowCardFilter, AxebowCardFilterItem, AxebowCardFooter, AxebowCardHeader, AxebowCardResourceRow, AxebowCardResourceTable, AxebowCardSpecialLink, AxebowCardStatItem, AxebowCardStatsRow, AxebowCardStatus, AxebowCardTableHeader, AxebowCardVersionSelector, AxebowCarouselInput, AxebowCarouselSelectorItem, AxebowCarouselSelectorTenant, AxebowChannelConfigPanel, AxebowCheckboxInput, AxebowCollaboratorsDialog, AxebowCopyBox, AxebowDeployCard, AxebowDeploySummary, AxebowDialog, AxebowDragDropUploadFile, AxebowDraggableService, AxebowExpandableCard, AxebowExpandableHeader, AxebowFilterBar, AxebowFooter, AxebowFormPanelField, AxebowGettingStartedCard, AxebowHeader, AxebowHelpBubble, AxebowIcon, AxebowInfrastructureCard, AxebowInput, AxebowInputBase, AxebowInstancesTable, AxebowLimitsCounter, AxebowManageHyperlinks, AxebowMarketplaceCard, AxebowModalsConfirmation, AxebowMoreActions, AxebowNumberCard, AxebowNumbersSection, AxebowNumericInput, AxebowObservabilityContainer, AxebowPill, AxebowProgressBar, AxebowProvidersInput, AxebowQuickTipButton, AxebowQuickTipSection, AxebowRefreshPeriodPanel, AxebowResourceBar, AxebowResourceBoxForm, AxebowResourceCard, AxebowResourceLimitInput, AxebowResourceLimitsPanel, AxebowResourcesCounter, AxebowRoleCard, AxebowRoleContainerDropdown, AxebowRoleTooltip, AxebowRuntimeZipDialog, AxebowSearch, AxebowSearchBarFilters, AxebowSelectInput, AxebowSelectorSlider, AxebowServiceDetailHeader, AxebowServicesPanel, AxebowSidebar, AxebowStatus, AxebowStepHeader, AxebowSummaryCard, AxebowSummaryFlavors, AxebowSummaryKeyValue, AxebowSummaryLimits, AxebowSummaryStep, AxebowSummaryStepHeader, AxebowSwitch, AxebowSwitchInput, AxebowTabSelector, AxebowTabsSubmenu, AxebowTenantCard, AxebowTenantResourceTable, AxebowTenantsTable, AxebowTextInput, AxebowTimeRangePanel, AxebowTooltip, AxebowUndeployCard, AxebowUnderlineTabSelector, AxebowUsageTooltip, CustomHomePageBody, DEFAULT_ADD_DIALOG_LABELS, DeployModalComponent, DeployModalFooter, DeployModalHeader, DeployPageBody, STATUS_COLORS, TableChart, axebowTheme, buildAddButton, buildExternalNodeContent, buildMainNodeContent, createElement, createIcon };
10339
12054
 
10340
12055
  //# sourceMappingURL=index.js.map