@kumori/aurora-wui-components 0.0.264-dev4114.4 → 0.0.264-dev4114.40
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/axebow-channel-config-panel/axebow-channel-config-panel.d.ts +3 -0
- package/dist/components/axebow-channel-config-panel/axebow-channel-config-panel.d.ts.map +1 -1
- package/dist/components/axebow-expandable-card/axebow-expandable-card.d.ts +6 -0
- package/dist/components/axebow-expandable-card/axebow-expandable-card.d.ts.map +1 -0
- package/dist/components/axebow-instances-table/axebow-instances-table.d.ts +56 -0
- package/dist/components/axebow-instances-table/axebow-instances-table.d.ts.map +1 -0
- package/dist/components/axebow-observability-container/axebow-observability-container.d.ts +49 -0
- package/dist/components/axebow-observability-container/axebow-observability-container.d.ts.map +1 -0
- package/dist/components/axebow-progress-bar/axebow-progress-bar.d.ts +11 -0
- package/dist/components/axebow-progress-bar/axebow-progress-bar.d.ts.map +1 -0
- package/dist/components/axebow-refresh-period-panel/axebow-refresh-period-panel.d.ts +20 -0
- package/dist/components/axebow-refresh-period-panel/axebow-refresh-period-panel.d.ts.map +1 -0
- package/dist/components/axebow-role-card/axebow-role-card.d.ts +18 -0
- package/dist/components/axebow-role-card/axebow-role-card.d.ts.map +1 -0
- package/dist/components/axebow-role-container-dropdown/axebow-role-container-dropdown.d.ts +41 -0
- package/dist/components/axebow-role-container-dropdown/axebow-role-container-dropdown.d.ts.map +1 -0
- package/dist/components/axebow-tenants-table/axebow-tenants-table.d.ts +34 -0
- package/dist/components/axebow-tenants-table/axebow-tenants-table.d.ts.map +1 -0
- package/dist/components/axebow-time-range-panel/axebow-time-range-panel.d.ts +29 -0
- package/dist/components/axebow-time-range-panel/axebow-time-range-panel.d.ts.map +1 -0
- package/dist/components/axebow-undeploy-card/axebow-undeploy-card.d.ts +23 -0
- package/dist/components/axebow-undeploy-card/axebow-undeploy-card.d.ts.map +1 -0
- package/dist/components/axebow-underline-tab-selector/axebow-underline-tab-selector.d.ts +18 -0
- package/dist/components/axebow-underline-tab-selector/axebow-underline-tab-selector.d.ts.map +1 -0
- package/dist/components/axebow-usage-tooltip/axebow-usage-tooltip.d.ts +13 -0
- package/dist/components/axebow-usage-tooltip/axebow-usage-tooltip.d.ts.map +1 -0
- package/dist/index.d.ts +12 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1961 -482
- package/dist/index.js.map +1 -1
- 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-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-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-19\\.75 {\n height: calc(var(--spacing) * 19.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-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-\\[0\\.0625rem\\] {\n height: .0625rem;\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-32 {\n width: calc(var(--spacing) * 32);\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-41\\.75 {\n width: calc(var(--spacing) * 41.75);\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-63\\.75 {\n width: calc(var(--spacing) * 63.75);\n }\n\n .w-66 {\n width: calc(var(--spacing) * 66);\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-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-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-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-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\\/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-1 {\n row-gap: var(--spacing);\n }\n\n .gap-y-\\[0\\.1875rem\\] {\n row-gap: .1875rem;\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-\\[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-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-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-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-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 {\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 .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-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-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-\\[0\\.0625rem\\] {\n height: .0625rem;\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-0\\.25 {\n width: calc(var(--spacing) * .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-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-\\[73\\.375rem\\] {\n width: 73.375rem;\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-595 {\n flex: 595;\n }\n\n .flex-\\[563\\] {\n flex: 563;\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\\/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-1 {\n row-gap: var(--spacing);\n }\n\n .gap-y-\\[0\\.1875rem\\] {\n row-gap: .1875rem;\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-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 {\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 .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) {
|
|
@@ -6017,6 +6018,8 @@ var AxebowChannelConfigPanel = class AxebowChannelConfigPanel extends LitElement
|
|
|
6017
6018
|
this.empty = true;
|
|
6018
6019
|
this.channelTypeLabel = "";
|
|
6019
6020
|
this.canEditAll = true;
|
|
6021
|
+
this.disabled = false;
|
|
6022
|
+
this.height = "80vh";
|
|
6020
6023
|
}
|
|
6021
6024
|
static {
|
|
6022
6025
|
this.styles = [
|
|
@@ -6035,20 +6038,20 @@ var AxebowChannelConfigPanel = class AxebowChannelConfigPanel extends LitElement
|
|
|
6035
6038
|
<div
|
|
6036
6039
|
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
|
|
6037
6040
|
hidden lg:flex ${this.empty ? "justify-center items-center text-(--axebow-gray)" : ""}"
|
|
6038
|
-
style="height:
|
|
6041
|
+
style="height: ${this.height};"
|
|
6039
6042
|
>
|
|
6040
6043
|
${this.empty ? "" : html`
|
|
6041
6044
|
<div
|
|
6042
6045
|
class="flex flex-col gap-3 opacity-100 transition-opacity duration-300 delay-100 w-full h-full overflow-y-auto"
|
|
6043
6046
|
>
|
|
6044
|
-
<div class="flex justify-between items-center gap-2">
|
|
6047
|
+
<div class="flex justify-between items-center gap-2 pointer-events-auto">
|
|
6045
6048
|
<h1
|
|
6046
6049
|
class="font-semibold text-sm text-(--axebow-secondary) truncate m-0"
|
|
6047
6050
|
style="width: 14.625rem; height: 1rem; line-height: 1rem;"
|
|
6048
6051
|
>
|
|
6049
6052
|
${this.channelTypeLabel}
|
|
6050
6053
|
</h1>
|
|
6051
|
-
${this.canEditAll ? html`
|
|
6054
|
+
${this.canEditAll && !this.disabled ? html`
|
|
6052
6055
|
<div
|
|
6053
6056
|
class="w-4.5 h-4.5 shrink-0 flex items-center justify-center cursor-pointer"
|
|
6054
6057
|
@click=${this._handleDelete}
|
|
@@ -6056,8 +6059,16 @@ var AxebowChannelConfigPanel = class AxebowChannelConfigPanel extends LitElement
|
|
|
6056
6059
|
<axebow-icon iconName="delete" iconColor="var(--axebow-error)" size="base"></axebow-icon>
|
|
6057
6060
|
</div>
|
|
6058
6061
|
` : ""}
|
|
6062
|
+
${this.disabled ? html`
|
|
6063
|
+
<div
|
|
6064
|
+
class="w-4.5 h-4.5 shrink-0 flex items-center justify-center cursor-pointer pointer-events-auto"
|
|
6065
|
+
@click=${this._handleClose}
|
|
6066
|
+
>
|
|
6067
|
+
<axebow-icon iconName="close" iconColor="var(--axebow-gray)" size="base"></axebow-icon>
|
|
6068
|
+
</div>
|
|
6069
|
+
` : ""}
|
|
6059
6070
|
</div>
|
|
6060
|
-
<div class="flex flex-col gap-2 w-full">
|
|
6071
|
+
<div class="flex flex-col gap-2 w-full ${this.disabled ? "pointer-events-none" : ""}">
|
|
6061
6072
|
<slot name="name-input"></slot>
|
|
6062
6073
|
<slot name="port-input"></slot>
|
|
6063
6074
|
<slot name="gateway-toggle"></slot>
|
|
@@ -6074,10 +6085,18 @@ var AxebowChannelConfigPanel = class AxebowChannelConfigPanel extends LitElement
|
|
|
6074
6085
|
composed: true
|
|
6075
6086
|
}));
|
|
6076
6087
|
}
|
|
6088
|
+
_handleClose() {
|
|
6089
|
+
this.dispatchEvent(new CustomEvent("close", {
|
|
6090
|
+
bubbles: true,
|
|
6091
|
+
composed: true
|
|
6092
|
+
}));
|
|
6093
|
+
}
|
|
6077
6094
|
};
|
|
6078
6095
|
__decorate([property({ type: Boolean })], AxebowChannelConfigPanel.prototype, "empty", void 0);
|
|
6079
6096
|
__decorate([property({ type: String })], AxebowChannelConfigPanel.prototype, "channelTypeLabel", void 0);
|
|
6080
6097
|
__decorate([property({ type: Boolean })], AxebowChannelConfigPanel.prototype, "canEditAll", void 0);
|
|
6098
|
+
__decorate([property({ type: Boolean })], AxebowChannelConfigPanel.prototype, "disabled", void 0);
|
|
6099
|
+
__decorate([property({ type: String })], AxebowChannelConfigPanel.prototype, "height", void 0);
|
|
6081
6100
|
AxebowChannelConfigPanel = __decorate([customElement("axebow-channel-config-panel")], AxebowChannelConfigPanel);
|
|
6082
6101
|
//#endregion
|
|
6083
6102
|
//#region src/components/axebow-mesh-node-renderer/axebow-mesh-node-renderer.ts
|
|
@@ -7545,15 +7564,15 @@ var AxebowServiceDetailHeader = class AxebowServiceDetailHeader extends LitEleme
|
|
|
7545
7564
|
<div
|
|
7546
7565
|
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"
|
|
7547
7566
|
>
|
|
7548
|
-
<div class="flex flex-col items-
|
|
7567
|
+
<div class="flex flex-col items-start gap-0.5">
|
|
7549
7568
|
<span class="text-lg font-semibold text-(--axebow-primary)">${limits.cpu}</span>
|
|
7550
7569
|
<span class="text-base text-(--axebow-gray) whitespace-nowrap">${this.vcpusLabel}</span>
|
|
7551
7570
|
</div>
|
|
7552
|
-
<div class="flex flex-col items-
|
|
7571
|
+
<div class="flex flex-col items-start gap-0.5">
|
|
7553
7572
|
<span class="text-lg font-semibold text-(--axebow-primary)">${limits.memory}</span>
|
|
7554
7573
|
<span class="text-base text-(--axebow-gray) whitespace-nowrap">${this.gbRamLabel}</span>
|
|
7555
7574
|
</div>
|
|
7556
|
-
<div class="flex flex-col items-
|
|
7575
|
+
<div class="flex flex-col items-start gap-0.5">
|
|
7557
7576
|
<span class="text-lg font-semibold text-(--axebow-primary)">${limits.storage}</span>
|
|
7558
7577
|
<div class="flex items-center gap-1">
|
|
7559
7578
|
<span class="text-base text-(--axebow-gray) whitespace-nowrap">${this.gbStorageLabel}</span>
|
|
@@ -7568,7 +7587,7 @@ var AxebowServiceDetailHeader = class AxebowServiceDetailHeader extends LitEleme
|
|
|
7568
7587
|
return html`
|
|
7569
7588
|
<div class="flex flex-col gap-1 w-41.75 shrink-0">
|
|
7570
7589
|
${this._renderTitle(this.runningVersionTitle)}
|
|
7571
|
-
<div class="w-41.75 h-19.75 box-border flex flex-col
|
|
7590
|
+
<div class="w-41.75 h-19.75 box-border flex flex-col gap-2">
|
|
7572
7591
|
<axebow-card-version-selector
|
|
7573
7592
|
.revisions=${this.revisions}
|
|
7574
7593
|
displayedRevision=${this.displayedRevision}
|
|
@@ -8449,123 +8468,222 @@ __decorate([state()], AxebowTabSelector.prototype, "_tabCount", void 0);
|
|
|
8449
8468
|
__decorate([state()], AxebowTabSelector.prototype, "_tabDisabled", void 0);
|
|
8450
8469
|
AxebowTabSelector = __decorate([customElement("axebow-tab-selector")], AxebowTabSelector);
|
|
8451
8470
|
//#endregion
|
|
8452
|
-
//#region src/components/axebow-
|
|
8453
|
-
var
|
|
8471
|
+
//#region src/components/axebow-underline-tab-selector/axebow-underline-tab-selector.ts
|
|
8472
|
+
var AxebowUnderlineTabSelector = class AxebowUnderlineTabSelector extends LitElement {
|
|
8454
8473
|
constructor(..._args) {
|
|
8455
8474
|
super(..._args);
|
|
8456
|
-
this.label = "";
|
|
8457
|
-
this.unit = "";
|
|
8458
|
-
this.value = "";
|
|
8459
|
-
this.max = Number.MAX_SAFE_INTEGER;
|
|
8460
|
-
this.min = 0;
|
|
8461
|
-
this.required = false;
|
|
8462
8475
|
this.disabled = false;
|
|
8463
|
-
this.
|
|
8476
|
+
this._activeTab = 0;
|
|
8477
|
+
this._tabCount = 0;
|
|
8478
|
+
this._tabDisabled = [];
|
|
8479
|
+
this._observer = null;
|
|
8464
8480
|
}
|
|
8465
8481
|
static {
|
|
8466
|
-
this.styles = [
|
|
8482
|
+
this.styles = [
|
|
8483
|
+
unsafeCSS(tailwind_default),
|
|
8484
|
+
axebowTheme,
|
|
8485
|
+
css`
|
|
8486
|
+
:host {
|
|
8487
|
+
display: block;
|
|
8488
|
+
}
|
|
8489
|
+
button {
|
|
8490
|
+
font-family: inherit;
|
|
8491
|
+
}
|
|
8492
|
+
:host([disabled]) {
|
|
8493
|
+
opacity: 0.6;
|
|
8494
|
+
pointer-events: none;
|
|
8495
|
+
cursor: not-allowed;
|
|
8496
|
+
}
|
|
8497
|
+
`
|
|
8498
|
+
];
|
|
8499
|
+
}
|
|
8500
|
+
connectedCallback() {
|
|
8501
|
+
super.connectedCallback();
|
|
8502
|
+
this._observer = new MutationObserver(() => this._updateTabCount());
|
|
8503
|
+
this._observer.observe(this, {
|
|
8504
|
+
childList: true,
|
|
8505
|
+
attributes: true,
|
|
8506
|
+
attributeFilter: ["disabled"],
|
|
8507
|
+
subtree: true
|
|
8508
|
+
});
|
|
8509
|
+
this._updateTabCount();
|
|
8510
|
+
}
|
|
8511
|
+
disconnectedCallback() {
|
|
8512
|
+
super.disconnectedCallback();
|
|
8513
|
+
this._observer?.disconnect();
|
|
8514
|
+
}
|
|
8515
|
+
firstUpdated() {
|
|
8516
|
+
this._updateTabCount();
|
|
8517
|
+
}
|
|
8518
|
+
updated(changedProperties) {
|
|
8519
|
+
if (changedProperties.has("activeTab") && this.activeTab !== void 0 && this._activeTab !== this.activeTab) this._activeTab = this.activeTab;
|
|
8520
|
+
if (changedProperties.has("disabled")) this.toggleAttribute("disabled", this.disabled);
|
|
8521
|
+
}
|
|
8522
|
+
_updateTabCount() {
|
|
8523
|
+
const count = Array.from(this.children).filter((el) => el.getAttribute("slot")?.startsWith("tab-label-")).length;
|
|
8524
|
+
if (count !== this._tabCount) {
|
|
8525
|
+
if (this._activeTab >= count) this._activeTab = 0;
|
|
8526
|
+
this._tabCount = count;
|
|
8527
|
+
}
|
|
8528
|
+
this._tabDisabled = Array.from({ length: this._tabCount }, (_, i) => {
|
|
8529
|
+
return this.querySelector(`[slot="tab-label-${i}"]`)?.hasAttribute("disabled") ?? false;
|
|
8530
|
+
});
|
|
8531
|
+
}
|
|
8532
|
+
_selectTab(index) {
|
|
8533
|
+
if (this.disabled || this._tabDisabled[index]) return;
|
|
8534
|
+
this._activeTab = index;
|
|
8535
|
+
this.dispatchEvent(new CustomEvent("tab-change", {
|
|
8536
|
+
detail: { index },
|
|
8537
|
+
bubbles: true,
|
|
8538
|
+
composed: true
|
|
8539
|
+
}));
|
|
8467
8540
|
}
|
|
8468
8541
|
render() {
|
|
8542
|
+
const tabs = Array.from({ length: this._tabCount }, (_, i) => i);
|
|
8469
8543
|
return html`
|
|
8470
|
-
<div class="
|
|
8471
|
-
|
|
8472
|
-
|
|
8473
|
-
|
|
8474
|
-
|
|
8475
|
-
|
|
8476
|
-
|
|
8477
|
-
|
|
8478
|
-
|
|
8479
|
-
|
|
8480
|
-
|
|
8481
|
-
|
|
8482
|
-
|
|
8483
|
-
|
|
8484
|
-
|
|
8485
|
-
|
|
8486
|
-
|
|
8487
|
-
|
|
8544
|
+
<div class="w-293.5 flex">
|
|
8545
|
+
${tabs.map((i) => {
|
|
8546
|
+
const active = this._activeTab === i;
|
|
8547
|
+
const isDisabled = this._tabDisabled[i];
|
|
8548
|
+
return html`
|
|
8549
|
+
<button
|
|
8550
|
+
class="shrink-0 h-8 px-8 flex items-center justify-center text-base bg-transparent
|
|
8551
|
+
transition-colors duration-200
|
|
8552
|
+
focus-visible:outline-2 focus-visible:outline-(--axebow-tertiary)
|
|
8553
|
+
${isDisabled ? "opacity-50 cursor-not-allowed" : "cursor-pointer"}
|
|
8554
|
+
${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"}"
|
|
8555
|
+
?disabled=${isDisabled}
|
|
8556
|
+
@click=${() => this._selectTab(i)}
|
|
8557
|
+
>
|
|
8558
|
+
<slot name="tab-label-${i}"></slot>
|
|
8559
|
+
</button>
|
|
8560
|
+
`;
|
|
8561
|
+
})}
|
|
8562
|
+
<div class="flex-1 border-b border-solid border-(--axebow-light-gray) border-t-0 border-l-0 border-r-0"></div>
|
|
8488
8563
|
</div>
|
|
8564
|
+
${tabs.map((i) => html`
|
|
8565
|
+
<div class="${this._activeTab === i ? "block" : "hidden"}">
|
|
8566
|
+
<slot name="tab-panel-${i}"></slot>
|
|
8567
|
+
</div>
|
|
8568
|
+
`)}
|
|
8489
8569
|
`;
|
|
8490
8570
|
}
|
|
8491
8571
|
};
|
|
8492
|
-
__decorate([property({
|
|
8493
|
-
|
|
8494
|
-
|
|
8495
|
-
|
|
8496
|
-
__decorate([property({ type: Number })],
|
|
8497
|
-
__decorate([
|
|
8498
|
-
__decorate([
|
|
8499
|
-
__decorate([
|
|
8500
|
-
__decorate([
|
|
8501
|
-
AxebowResourceLimitInput = __decorate([customElement("axebow-resource-limit-input")], AxebowResourceLimitInput);
|
|
8572
|
+
__decorate([property({
|
|
8573
|
+
type: Boolean,
|
|
8574
|
+
attribute: false
|
|
8575
|
+
})], AxebowUnderlineTabSelector.prototype, "disabled", void 0);
|
|
8576
|
+
__decorate([property({ type: Number })], AxebowUnderlineTabSelector.prototype, "activeTab", void 0);
|
|
8577
|
+
__decorate([state()], AxebowUnderlineTabSelector.prototype, "_activeTab", void 0);
|
|
8578
|
+
__decorate([state()], AxebowUnderlineTabSelector.prototype, "_tabCount", void 0);
|
|
8579
|
+
__decorate([state()], AxebowUnderlineTabSelector.prototype, "_tabDisabled", void 0);
|
|
8580
|
+
AxebowUnderlineTabSelector = __decorate([customElement("axebow-underline-tab-selector")], AxebowUnderlineTabSelector);
|
|
8502
8581
|
//#endregion
|
|
8503
|
-
//#region src/components/axebow-
|
|
8504
|
-
var
|
|
8582
|
+
//#region src/components/axebow-role-card/axebow-role-card.ts
|
|
8583
|
+
var AxebowRoleCard = class AxebowRoleCard extends LitElement {
|
|
8505
8584
|
constructor(..._args) {
|
|
8506
8585
|
super(..._args);
|
|
8507
|
-
this.
|
|
8586
|
+
this.name = "";
|
|
8587
|
+
this.logoUrl = "";
|
|
8588
|
+
this.descriptionPrefix = "";
|
|
8589
|
+
this.description = "";
|
|
8590
|
+
this.resourceLimitsTitle = "";
|
|
8591
|
+
this.resources = [];
|
|
8508
8592
|
}
|
|
8509
8593
|
static {
|
|
8510
|
-
this.styles = [
|
|
8511
|
-
|
|
8512
|
-
|
|
8513
|
-
|
|
8514
|
-
|
|
8515
|
-
|
|
8516
|
-
|
|
8517
|
-
|
|
8518
|
-
|
|
8519
|
-
|
|
8520
|
-
|
|
8521
|
-
|
|
8522
|
-
|
|
8523
|
-
|
|
8524
|
-
|
|
8594
|
+
this.styles = [
|
|
8595
|
+
unsafeCSS(tailwind_default),
|
|
8596
|
+
axebowTheme,
|
|
8597
|
+
css`
|
|
8598
|
+
:host {
|
|
8599
|
+
display: block;
|
|
8600
|
+
}
|
|
8601
|
+
sl-divider {
|
|
8602
|
+
--color: var(--axebow-gray);
|
|
8603
|
+
--width: 1px;
|
|
8604
|
+
}
|
|
8605
|
+
sl-input::part(base) {
|
|
8606
|
+
width: 100%;
|
|
8607
|
+
height: 2.5rem;
|
|
8608
|
+
}
|
|
8609
|
+
sl-input::part(input) {
|
|
8610
|
+
text-align: center;
|
|
8611
|
+
}
|
|
8612
|
+
`
|
|
8613
|
+
];
|
|
8525
8614
|
}
|
|
8526
|
-
|
|
8615
|
+
_renderResource(resource) {
|
|
8527
8616
|
return html`
|
|
8528
|
-
<
|
|
8529
|
-
|
|
8530
|
-
|
|
8531
|
-
|
|
8532
|
-
|
|
8533
|
-
.min=${field.min ?? 0}
|
|
8534
|
-
?required=${field.required}
|
|
8535
|
-
?disabled=${field.disabled}
|
|
8536
|
-
?hasError=${field.hasError}
|
|
8537
|
-
.callback=${(e) => this._handleChange(field, e)}
|
|
8538
|
-
></axebow-resource-limit-input>
|
|
8617
|
+
<div class="w-24.75 h-20.75 shrink-0 flex flex-col items-center justify-center gap-1">
|
|
8618
|
+
<h3 class="m-0 text-base font-semibold self-start">${resource.title}</h3>
|
|
8619
|
+
<sl-input class="w-full" type="number" value=${resource.value} disabled></sl-input>
|
|
8620
|
+
<p class="m-0 text-xs">${resource.unit}</p>
|
|
8621
|
+
</div>
|
|
8539
8622
|
`;
|
|
8540
8623
|
}
|
|
8541
8624
|
render() {
|
|
8542
|
-
if (!this.cpu || !this.memory) return html``;
|
|
8543
8625
|
return html`
|
|
8544
|
-
<div class="
|
|
8545
|
-
<div class="flex items-
|
|
8546
|
-
|
|
8547
|
-
|
|
8626
|
+
<div class="w-95 h-83.25 box-border bg-white rounded-md p-4 flex flex-col">
|
|
8627
|
+
<div class="w-87 h-4.25 flex items-center">
|
|
8628
|
+
<h1 class="m-0 uppercase text-left text-base font-semibold text-(--axebow-gray) truncate">${this.name}</h1>
|
|
8629
|
+
</div>
|
|
8630
|
+
<sl-divider></sl-divider>
|
|
8631
|
+
<div class="w-12.5 h-12.5 shrink-0">
|
|
8632
|
+
<img src=${this.logoUrl} class="w-full h-full object-contain" />
|
|
8633
|
+
</div>
|
|
8634
|
+
<div class="w-87 h-12.75 mt-4 overflow-hidden">
|
|
8635
|
+
<p class="m-0 wrap-break-word whitespace-normal">
|
|
8636
|
+
<strong>${this.descriptionPrefix}</strong> ${this.description}
|
|
8637
|
+
</p>
|
|
8638
|
+
</div>
|
|
8639
|
+
<div class="w-27 h-4.25 mt-4 flex items-center">
|
|
8640
|
+
<h4 class="m-0 text-base font-semibold text-black">${this.resourceLimitsTitle}</h4>
|
|
8641
|
+
</div>
|
|
8642
|
+
<div class="w-87 h-22.75 mt-4 flex items-center gap-2.25">
|
|
8643
|
+
${this.resources.map((resource, i) => html`
|
|
8644
|
+
${i === 2 ? html`<div class="w-6 h-full flex items-center justify-center shrink-0">
|
|
8645
|
+
<axebow-icon iconName="border_horizontal" size="md"></axebow-icon>
|
|
8646
|
+
</div>` : ""}
|
|
8647
|
+
${this._renderResource(resource)}
|
|
8648
|
+
`)}
|
|
8548
8649
|
</div>
|
|
8549
8650
|
</div>
|
|
8550
8651
|
`;
|
|
8551
8652
|
}
|
|
8552
8653
|
};
|
|
8553
|
-
__decorate([property({ type:
|
|
8554
|
-
__decorate([property({ type:
|
|
8555
|
-
__decorate([property({ type:
|
|
8556
|
-
|
|
8654
|
+
__decorate([property({ type: String })], AxebowRoleCard.prototype, "name", void 0);
|
|
8655
|
+
__decorate([property({ type: String })], AxebowRoleCard.prototype, "logoUrl", void 0);
|
|
8656
|
+
__decorate([property({ type: String })], AxebowRoleCard.prototype, "descriptionPrefix", void 0);
|
|
8657
|
+
__decorate([property({ type: String })], AxebowRoleCard.prototype, "description", void 0);
|
|
8658
|
+
__decorate([property({ type: String })], AxebowRoleCard.prototype, "resourceLimitsTitle", void 0);
|
|
8659
|
+
__decorate([property({ attribute: false })], AxebowRoleCard.prototype, "resources", void 0);
|
|
8660
|
+
AxebowRoleCard = __decorate([customElement("axebow-role-card")], AxebowRoleCard);
|
|
8557
8661
|
//#endregion
|
|
8558
|
-
//#region src/components/axebow-
|
|
8559
|
-
var
|
|
8662
|
+
//#region src/components/axebow-time-range-panel/axebow-time-range-panel.ts
|
|
8663
|
+
var AxebowTimeRangePanel = class AxebowTimeRangePanel extends LitElement {
|
|
8560
8664
|
constructor(..._args) {
|
|
8561
8665
|
super(..._args);
|
|
8562
|
-
this.
|
|
8563
|
-
this.
|
|
8564
|
-
this.
|
|
8565
|
-
this.
|
|
8566
|
-
this.
|
|
8567
|
-
this.
|
|
8568
|
-
this.
|
|
8666
|
+
this.title = "";
|
|
8667
|
+
this.buttonText = "";
|
|
8668
|
+
this.searchPlaceholder = "";
|
|
8669
|
+
this.searchValue = "";
|
|
8670
|
+
this.ranges = [];
|
|
8671
|
+
this.absoluteTitle = "";
|
|
8672
|
+
this.fromLabel = "";
|
|
8673
|
+
this.fromValue = "";
|
|
8674
|
+
this.toLabel = "";
|
|
8675
|
+
this.toValue = "";
|
|
8676
|
+
this.applyLabel = "";
|
|
8677
|
+
this._handleSearchChange = (e) => {
|
|
8678
|
+
this._emit("search-change", { value: e.detail.value });
|
|
8679
|
+
};
|
|
8680
|
+
this._handleFromChange = (e) => {
|
|
8681
|
+
this._emit("from-change", { value: e.target.value });
|
|
8682
|
+
};
|
|
8683
|
+
this._handleApply = () => {
|
|
8684
|
+
this._emit("apply");
|
|
8685
|
+
this.renderRoot.querySelector("sl-dropdown")?.hide();
|
|
8686
|
+
};
|
|
8569
8687
|
}
|
|
8570
8688
|
static {
|
|
8571
8689
|
this.styles = [
|
|
@@ -8574,183 +8692,301 @@ var AxebowSelectorSlider = class AxebowSelectorSlider extends LitElement {
|
|
|
8574
8692
|
css`
|
|
8575
8693
|
:host {
|
|
8576
8694
|
display: block;
|
|
8695
|
+
}
|
|
8696
|
+
sl-input::part(input) {
|
|
8697
|
+
font-size: 0.95rem;
|
|
8698
|
+
color: var(--axebow-strong-gray);
|
|
8699
|
+
background-color: #f3f4f6;
|
|
8700
|
+
}
|
|
8701
|
+
sl-input::part(base) {
|
|
8702
|
+
background-color: #f3f4f6;
|
|
8577
8703
|
width: 100%;
|
|
8578
8704
|
}
|
|
8705
|
+
.apply-button::part(base) {
|
|
8706
|
+
font-size: 0.875rem !important;
|
|
8707
|
+
}
|
|
8579
8708
|
`
|
|
8580
8709
|
];
|
|
8581
8710
|
}
|
|
8582
|
-
|
|
8583
|
-
|
|
8584
|
-
|
|
8585
|
-
|
|
8586
|
-
|
|
8711
|
+
_emit(eventName, detail) {
|
|
8712
|
+
this.dispatchEvent(new CustomEvent(eventName, {
|
|
8713
|
+
detail,
|
|
8714
|
+
bubbles: true,
|
|
8715
|
+
composed: true
|
|
8716
|
+
}));
|
|
8587
8717
|
}
|
|
8588
|
-
|
|
8589
|
-
|
|
8590
|
-
|
|
8591
|
-
|
|
8718
|
+
_handleRangeSelect(range) {
|
|
8719
|
+
this._emit("range-select", { value: range.value });
|
|
8720
|
+
}
|
|
8721
|
+
_renderQuickRanges() {
|
|
8722
|
+
return html`
|
|
8723
|
+
<sl-menu class="w-53 h-112 box-border p-2 rounded-none!">
|
|
8724
|
+
<axebow-search
|
|
8725
|
+
placeholder=${this.searchPlaceholder}
|
|
8726
|
+
.value=${this.searchValue}
|
|
8727
|
+
width="12.25rem"
|
|
8728
|
+
height="2.5rem"
|
|
8729
|
+
@search-change=${this._handleSearchChange}
|
|
8730
|
+
></axebow-search>
|
|
8731
|
+
${this.ranges.map((range) => html`
|
|
8732
|
+
<sl-menu-item @click=${() => this._handleRangeSelect(range)} ?selected=${range.selected}>
|
|
8733
|
+
${range.label}
|
|
8734
|
+
</sl-menu-item>
|
|
8735
|
+
`)}
|
|
8736
|
+
</sl-menu>
|
|
8737
|
+
`;
|
|
8592
8738
|
}
|
|
8593
|
-
|
|
8594
|
-
|
|
8595
|
-
|
|
8596
|
-
|
|
8739
|
+
_renderAbsoluteTimeSection() {
|
|
8740
|
+
return html`
|
|
8741
|
+
<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">
|
|
8742
|
+
<h2 class="font-bold">${this.absoluteTitle}</h2>
|
|
8743
|
+
<label for="from-datetime">${this.fromLabel}</label>
|
|
8744
|
+
<sl-input
|
|
8745
|
+
id="from-datetime"
|
|
8746
|
+
type="datetime-local"
|
|
8747
|
+
.value=${this.fromValue}
|
|
8748
|
+
@sl-change=${this._handleFromChange}
|
|
8749
|
+
></sl-input>
|
|
8750
|
+
<label for="to-datetime">${this.toLabel}</label>
|
|
8751
|
+
<sl-input id="to-datetime" type="text" value=${this.toValue} disabled></sl-input>
|
|
8752
|
+
<axebow-button
|
|
8753
|
+
variant="primary"
|
|
8754
|
+
fixedWidth="16.421875rem"
|
|
8755
|
+
fixedHeight="2.5rem"
|
|
8756
|
+
class="mt-4 apply-button"
|
|
8757
|
+
@click=${this._handleApply}
|
|
8758
|
+
>
|
|
8759
|
+
${this.applyLabel}
|
|
8760
|
+
</axebow-button>
|
|
8761
|
+
</div>
|
|
8762
|
+
`;
|
|
8597
8763
|
}
|
|
8598
|
-
|
|
8599
|
-
|
|
8600
|
-
|
|
8601
|
-
|
|
8602
|
-
|
|
8603
|
-
|
|
8604
|
-
|
|
8605
|
-
|
|
8606
|
-
|
|
8607
|
-
|
|
8608
|
-
|
|
8609
|
-
|
|
8610
|
-
|
|
8611
|
-
|
|
8612
|
-
|
|
8613
|
-
|
|
8764
|
+
render() {
|
|
8765
|
+
return html`
|
|
8766
|
+
<div class="flex flex-col gap-2.5">
|
|
8767
|
+
<div class="w-70.5 h-4.25 flex items-center">
|
|
8768
|
+
<h1 class="m-0 text-base font-semibold">${this.title}</h1>
|
|
8769
|
+
</div>
|
|
8770
|
+
<sl-dropdown class="w-70.5">
|
|
8771
|
+
<axebow-button class="w-full" slot="trigger" caret fixedWidth="17.625rem" fixedHeight="2.5rem">
|
|
8772
|
+
${this.buttonText}
|
|
8773
|
+
</axebow-button>
|
|
8774
|
+
<div
|
|
8775
|
+
class="w-127.75 h-112 box-border my-2 flex text-sm border border-solid border-(--axebow-primary) rounded-[0.375rem] overflow-hidden"
|
|
8776
|
+
>
|
|
8777
|
+
${this._renderQuickRanges()} ${this._renderAbsoluteTimeSection()}
|
|
8778
|
+
</div>
|
|
8779
|
+
</sl-dropdown>
|
|
8780
|
+
</div>
|
|
8781
|
+
`;
|
|
8614
8782
|
}
|
|
8615
|
-
|
|
8616
|
-
|
|
8617
|
-
|
|
8618
|
-
|
|
8619
|
-
|
|
8620
|
-
|
|
8621
|
-
|
|
8622
|
-
|
|
8623
|
-
|
|
8624
|
-
|
|
8625
|
-
|
|
8783
|
+
};
|
|
8784
|
+
__decorate([property({ type: String })], AxebowTimeRangePanel.prototype, "title", void 0);
|
|
8785
|
+
__decorate([property({ type: String })], AxebowTimeRangePanel.prototype, "buttonText", void 0);
|
|
8786
|
+
__decorate([property({ type: String })], AxebowTimeRangePanel.prototype, "searchPlaceholder", void 0);
|
|
8787
|
+
__decorate([property({ type: String })], AxebowTimeRangePanel.prototype, "searchValue", void 0);
|
|
8788
|
+
__decorate([property({ attribute: false })], AxebowTimeRangePanel.prototype, "ranges", void 0);
|
|
8789
|
+
__decorate([property({ type: String })], AxebowTimeRangePanel.prototype, "absoluteTitle", void 0);
|
|
8790
|
+
__decorate([property({ type: String })], AxebowTimeRangePanel.prototype, "fromLabel", void 0);
|
|
8791
|
+
__decorate([property({ type: String })], AxebowTimeRangePanel.prototype, "fromValue", void 0);
|
|
8792
|
+
__decorate([property({ type: String })], AxebowTimeRangePanel.prototype, "toLabel", void 0);
|
|
8793
|
+
__decorate([property({ type: String })], AxebowTimeRangePanel.prototype, "toValue", void 0);
|
|
8794
|
+
__decorate([property({ type: String })], AxebowTimeRangePanel.prototype, "applyLabel", void 0);
|
|
8795
|
+
AxebowTimeRangePanel = __decorate([customElement("axebow-time-range-panel")], AxebowTimeRangePanel);
|
|
8796
|
+
//#endregion
|
|
8797
|
+
//#region src/components/axebow-role-container-dropdown/axebow-role-container-dropdown.ts
|
|
8798
|
+
var AxebowRoleContainerDropdown = class AxebowRoleContainerDropdown extends LitElement {
|
|
8799
|
+
constructor(..._args) {
|
|
8800
|
+
super(..._args);
|
|
8801
|
+
this.title = "";
|
|
8802
|
+
this.buttonText = "";
|
|
8803
|
+
this.allContainersLabel = "";
|
|
8804
|
+
this.allContainersSelected = false;
|
|
8805
|
+
this.roles = [];
|
|
8806
|
+
this.clearAllLabel = "";
|
|
8807
|
+
this.applyFilterLabel = "";
|
|
8808
|
+
this._handleClearAll = () => {
|
|
8809
|
+
this.dispatchEvent(new CustomEvent("clear-all", {
|
|
8626
8810
|
bubbles: true,
|
|
8627
8811
|
composed: true
|
|
8628
8812
|
}));
|
|
8629
|
-
}
|
|
8630
|
-
}
|
|
8631
|
-
_handlePointerDown(e) {
|
|
8632
|
-
if (this.disabled) return;
|
|
8633
|
-
this._isDragging = true;
|
|
8634
|
-
this._updateFromPointer(e);
|
|
8635
|
-
const handlePointerMove = (moveEv) => {
|
|
8636
|
-
if (this._isDragging) this._updateFromPointer(moveEv);
|
|
8637
8813
|
};
|
|
8638
|
-
|
|
8639
|
-
this.
|
|
8640
|
-
|
|
8641
|
-
|
|
8814
|
+
this._handleApplyFilter = () => {
|
|
8815
|
+
this.dispatchEvent(new CustomEvent("apply-filter", {
|
|
8816
|
+
bubbles: true,
|
|
8817
|
+
composed: true
|
|
8818
|
+
}));
|
|
8819
|
+
this.renderRoot.querySelector("sl-dropdown")?.hide();
|
|
8642
8820
|
};
|
|
8643
|
-
window.addEventListener("pointermove", handlePointerMove);
|
|
8644
|
-
window.addEventListener("pointerup", handlePointerUp);
|
|
8645
8821
|
}
|
|
8646
|
-
|
|
8647
|
-
|
|
8648
|
-
|
|
8649
|
-
|
|
8650
|
-
|
|
8651
|
-
|
|
8652
|
-
|
|
8653
|
-
|
|
8654
|
-
|
|
8655
|
-
|
|
8656
|
-
|
|
8657
|
-
|
|
8822
|
+
static {
|
|
8823
|
+
this.styles = [
|
|
8824
|
+
unsafeCSS(tailwind_default),
|
|
8825
|
+
axebowTheme,
|
|
8826
|
+
css`
|
|
8827
|
+
:host {
|
|
8828
|
+
display: block;
|
|
8829
|
+
}
|
|
8830
|
+
sl-menu-item::part(base) {
|
|
8831
|
+
padding-top: 0.71875rem !important;
|
|
8832
|
+
padding-bottom: 0.71875rem !important;
|
|
8833
|
+
padding-left: 0.75rem !important;
|
|
8834
|
+
padding-right: 0.75rem !important;
|
|
8835
|
+
}
|
|
8836
|
+
sl-checkbox::part(base) {
|
|
8837
|
+
display: flex;
|
|
8838
|
+
align-items: center;
|
|
8839
|
+
}
|
|
8840
|
+
sl-checkbox::part(control) {
|
|
8841
|
+
margin-top: 0 !important;
|
|
8842
|
+
margin-bottom: 0 !important;
|
|
8843
|
+
}
|
|
8844
|
+
sl-checkbox::part(label) {
|
|
8845
|
+
display: flex;
|
|
8846
|
+
align-items: center;
|
|
8847
|
+
}
|
|
8848
|
+
.role-container-panel::part(popup) {
|
|
8849
|
+
z-index: var(--sl-z-index-dropdown);
|
|
8850
|
+
}
|
|
8851
|
+
`
|
|
8852
|
+
];
|
|
8658
8853
|
}
|
|
8659
|
-
|
|
8660
|
-
|
|
8661
|
-
|
|
8662
|
-
|
|
8663
|
-
|
|
8664
|
-
|
|
8665
|
-
if (e.key === "ArrowRight" || e.key === "ArrowUp") {
|
|
8666
|
-
e.preventDefault();
|
|
8667
|
-
this._setValue(Math.min(max, current + step));
|
|
8668
|
-
} else if (e.key === "ArrowLeft" || e.key === "ArrowDown") {
|
|
8669
|
-
e.preventDefault();
|
|
8670
|
-
this._setValue(Math.max(min, current - step));
|
|
8671
|
-
} else if (e.key === "Home") {
|
|
8672
|
-
e.preventDefault();
|
|
8673
|
-
this._setValue(min);
|
|
8674
|
-
} else if (e.key === "End") {
|
|
8675
|
-
e.preventDefault();
|
|
8676
|
-
this._setValue(max);
|
|
8677
|
-
}
|
|
8854
|
+
_emitToggle(selection) {
|
|
8855
|
+
this.dispatchEvent(new CustomEvent("item-toggle", {
|
|
8856
|
+
detail: { selection },
|
|
8857
|
+
bubbles: true,
|
|
8858
|
+
composed: true
|
|
8859
|
+
}));
|
|
8678
8860
|
}
|
|
8679
|
-
|
|
8680
|
-
const percent = this._percentage;
|
|
8681
|
-
const currentVal = this._numericQuantity;
|
|
8682
|
-
const min = this._minVal;
|
|
8683
|
-
const max = this._maxVal;
|
|
8684
|
-
const mid = Math.round((min + max) / 2);
|
|
8861
|
+
_renderAllContainersOption() {
|
|
8685
8862
|
return html`
|
|
8686
|
-
<
|
|
8687
|
-
|
|
8688
|
-
|
|
8689
|
-
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"
|
|
8690
|
-
tabindex=${this.disabled ? -1 : 0}
|
|
8691
|
-
role="slider"
|
|
8692
|
-
aria-valuemin=${min}
|
|
8693
|
-
aria-valuemax=${max}
|
|
8694
|
-
aria-valuenow=${currentVal}
|
|
8695
|
-
aria-valuetext=${String(currentVal)}
|
|
8696
|
-
@pointerdown=${this._handlePointerDown}
|
|
8697
|
-
@keydown=${this._handleKeyDown}
|
|
8863
|
+
<sl-menu-item @click=${(e) => this._handleItemClick(e, { type: "all" })}>
|
|
8864
|
+
<sl-checkbox .checked=${this.allContainersSelected} @sl-change=${(e) => e.stopPropagation()}
|
|
8865
|
+
>${this.allContainersLabel}</sl-checkbox
|
|
8698
8866
|
>
|
|
8699
|
-
|
|
8700
|
-
|
|
8701
|
-
|
|
8702
|
-
|
|
8703
|
-
|
|
8704
|
-
|
|
8705
|
-
|
|
8706
|
-
|
|
8707
|
-
|
|
8708
|
-
|
|
8709
|
-
|
|
8710
|
-
|
|
8711
|
-
|
|
8867
|
+
</sl-menu-item>
|
|
8868
|
+
`;
|
|
8869
|
+
}
|
|
8870
|
+
_handleItemClick(e, selection) {
|
|
8871
|
+
e.preventDefault();
|
|
8872
|
+
e.stopPropagation();
|
|
8873
|
+
this._emitToggle(selection);
|
|
8874
|
+
this.renderRoot.querySelector("sl-dropdown")?.hide();
|
|
8875
|
+
}
|
|
8876
|
+
_renderInstance(role, instance, instanceIdx) {
|
|
8877
|
+
return html`
|
|
8878
|
+
<sl-menu-item
|
|
8879
|
+
@click=${(e) => this._handleItemClick(e, {
|
|
8880
|
+
type: "instance",
|
|
8881
|
+
role: role.name,
|
|
8882
|
+
instanceIdx
|
|
8883
|
+
})}
|
|
8884
|
+
>
|
|
8885
|
+
<sl-checkbox .checked=${instance.selected} @sl-change=${(e) => e.stopPropagation()}>
|
|
8886
|
+
<div class="flex items-center gap-2">
|
|
8887
|
+
<img src="${instance.logoUrl}" alt="role-logo" class="w-8 h-8" />
|
|
8888
|
+
<p>${instance.name}</p>
|
|
8889
|
+
</div>
|
|
8890
|
+
</sl-checkbox>
|
|
8891
|
+
${instance.containers.length ? html`
|
|
8892
|
+
<div class="flex flex-col ml-4">
|
|
8893
|
+
${instance.containers.map((container) => this._renderContainer(role.name, instanceIdx, container))}
|
|
8894
|
+
</div>
|
|
8895
|
+
` : ""}
|
|
8896
|
+
</sl-menu-item>
|
|
8897
|
+
`;
|
|
8898
|
+
}
|
|
8899
|
+
_renderContainer(roleName, instanceIdx, container) {
|
|
8900
|
+
return html`
|
|
8901
|
+
<div
|
|
8902
|
+
class="cursor-pointer hover:bg-gray-50 p-1 rounded"
|
|
8903
|
+
@click=${(e) => this._handleItemClick(e, {
|
|
8904
|
+
type: "container",
|
|
8905
|
+
role: roleName,
|
|
8906
|
+
instanceIdx,
|
|
8907
|
+
container: container.name
|
|
8908
|
+
})}
|
|
8909
|
+
>
|
|
8910
|
+
<sl-checkbox .checked=${container.selected} @sl-change=${(e) => e.stopPropagation()}>
|
|
8911
|
+
<div class="flex items-center gap-2">
|
|
8912
|
+
<axebow-icon class="font-light" iconName="subdirectory_arrow_right" size="base"></axebow-icon>
|
|
8913
|
+
<p>${container.name}</p>
|
|
8712
8914
|
</div>
|
|
8915
|
+
</sl-checkbox>
|
|
8916
|
+
</div>
|
|
8917
|
+
`;
|
|
8918
|
+
}
|
|
8919
|
+
_renderFooter() {
|
|
8920
|
+
return html`
|
|
8921
|
+
<div class="w-70.5 h-10.25 box-border flex items-center border-t border-solid border-(--axebow-gray)">
|
|
8922
|
+
<div
|
|
8923
|
+
class="w-34.25 h-10 box-border flex items-center text-base text-(--axebow-gray) cursor-pointer"
|
|
8924
|
+
style="padding: 0.71875rem 1.5rem 0.71875rem 1.75rem;"
|
|
8925
|
+
@click=${this._handleClearAll}
|
|
8926
|
+
>
|
|
8927
|
+
${this.clearAllLabel}
|
|
8713
8928
|
</div>
|
|
8714
|
-
|
|
8715
|
-
|
|
8716
|
-
|
|
8717
|
-
|
|
8718
|
-
|
|
8719
|
-
|
|
8720
|
-
|
|
8721
|
-
|
|
8722
|
-
|
|
8723
|
-
|
|
8724
|
-
|
|
8725
|
-
|
|
8929
|
+
<span class="w-px h-full bg-(--axebow-light-gray) shrink-0"></span>
|
|
8930
|
+
<div
|
|
8931
|
+
class="w-34.25 h-10 box-border flex items-center text-base text-(--axebow-tertiary) cursor-pointer"
|
|
8932
|
+
style="padding: 0.71875rem 1.5rem 0.71875rem 1.75rem;"
|
|
8933
|
+
@click=${this._handleApplyFilter}
|
|
8934
|
+
>
|
|
8935
|
+
${this.applyFilterLabel}
|
|
8936
|
+
</div>
|
|
8937
|
+
</div>
|
|
8938
|
+
`;
|
|
8939
|
+
}
|
|
8940
|
+
render() {
|
|
8941
|
+
return html`
|
|
8942
|
+
<div class="flex flex-col gap-2">
|
|
8943
|
+
<div class="w-70.5 h-4.25 flex items-center">
|
|
8944
|
+
<h1 class="m-0 text-base font-semibold">${this.title}</h1>
|
|
8726
8945
|
</div>
|
|
8946
|
+
<sl-dropdown class="w-70.5">
|
|
8947
|
+
<axebow-button class="w-full" slot="trigger" caret fixedWidth="17.625rem" fixedHeight="2.5rem">
|
|
8948
|
+
${this.buttonText}
|
|
8949
|
+
</axebow-button>
|
|
8950
|
+
<div
|
|
8951
|
+
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"
|
|
8952
|
+
>
|
|
8953
|
+
<sl-menu class="w-70.5 h-79 box-border overflow-y-auto">
|
|
8954
|
+
${this._renderAllContainersOption()}
|
|
8955
|
+
${this.roles.map((role) => role.instances.map((instance, instanceIdx) => this._renderInstance(role, instance, instanceIdx)))}
|
|
8956
|
+
</sl-menu>
|
|
8957
|
+
${this._renderFooter()}
|
|
8958
|
+
</div>
|
|
8959
|
+
</sl-dropdown>
|
|
8727
8960
|
</div>
|
|
8728
8961
|
`;
|
|
8729
8962
|
}
|
|
8730
8963
|
};
|
|
8731
|
-
__decorate([property({
|
|
8732
|
-
|
|
8733
|
-
|
|
8734
|
-
})],
|
|
8735
|
-
__decorate([property()],
|
|
8736
|
-
__decorate([property()],
|
|
8737
|
-
__decorate([property()],
|
|
8738
|
-
__decorate([
|
|
8739
|
-
__decorate([property({ type: Number })], AxebowSelectorSlider.prototype, "max", void 0);
|
|
8740
|
-
__decorate([property({ type: Number })], AxebowSelectorSlider.prototype, "step", void 0);
|
|
8741
|
-
__decorate([property({ type: Boolean })], AxebowSelectorSlider.prototype, "disabled", void 0);
|
|
8742
|
-
__decorate([property()], AxebowSelectorSlider.prototype, "value", null);
|
|
8743
|
-
__decorate([query(".slider-track-container")], AxebowSelectorSlider.prototype, "_trackContainer", void 0);
|
|
8744
|
-
AxebowSelectorSlider = __decorate([customElement("axebow-selector-slider")], AxebowSelectorSlider);
|
|
8964
|
+
__decorate([property({ type: String })], AxebowRoleContainerDropdown.prototype, "title", void 0);
|
|
8965
|
+
__decorate([property({ type: String })], AxebowRoleContainerDropdown.prototype, "buttonText", void 0);
|
|
8966
|
+
__decorate([property({ type: String })], AxebowRoleContainerDropdown.prototype, "allContainersLabel", void 0);
|
|
8967
|
+
__decorate([property({ type: Boolean })], AxebowRoleContainerDropdown.prototype, "allContainersSelected", void 0);
|
|
8968
|
+
__decorate([property({ attribute: false })], AxebowRoleContainerDropdown.prototype, "roles", void 0);
|
|
8969
|
+
__decorate([property({ type: String })], AxebowRoleContainerDropdown.prototype, "clearAllLabel", void 0);
|
|
8970
|
+
__decorate([property({ type: String })], AxebowRoleContainerDropdown.prototype, "applyFilterLabel", void 0);
|
|
8971
|
+
AxebowRoleContainerDropdown = __decorate([customElement("axebow-role-container-dropdown")], AxebowRoleContainerDropdown);
|
|
8745
8972
|
//#endregion
|
|
8746
|
-
//#region src/components/axebow-
|
|
8747
|
-
var
|
|
8973
|
+
//#region src/components/axebow-refresh-period-panel/axebow-refresh-period-panel.ts
|
|
8974
|
+
var AxebowRefreshPeriodPanel = class AxebowRefreshPeriodPanel extends LitElement {
|
|
8748
8975
|
constructor(..._args) {
|
|
8749
8976
|
super(..._args);
|
|
8750
|
-
this.
|
|
8751
|
-
this.
|
|
8752
|
-
this.
|
|
8753
|
-
this.
|
|
8977
|
+
this.title = "";
|
|
8978
|
+
this.buttonText = "";
|
|
8979
|
+
this.offLabel = "";
|
|
8980
|
+
this.offSelected = false;
|
|
8981
|
+
this.periods = [];
|
|
8982
|
+
this.refreshNowLabel = "";
|
|
8983
|
+
this.isManualRefreshing = false;
|
|
8984
|
+
this._handleRefreshNow = () => {
|
|
8985
|
+
this.dispatchEvent(new CustomEvent("refresh-now-click", {
|
|
8986
|
+
bubbles: true,
|
|
8987
|
+
composed: true
|
|
8988
|
+
}));
|
|
8989
|
+
};
|
|
8754
8990
|
}
|
|
8755
8991
|
static {
|
|
8756
8992
|
this.styles = [
|
|
@@ -8759,37 +8995,420 @@ var AxebowDeploySummary = class AxebowDeploySummary extends LitElement {
|
|
|
8759
8995
|
css`
|
|
8760
8996
|
:host {
|
|
8761
8997
|
display: block;
|
|
8762
|
-
height: 100%;
|
|
8763
|
-
}
|
|
8764
|
-
axebow-summary-card {
|
|
8765
|
-
display: block;
|
|
8766
|
-
height: 100%;
|
|
8767
8998
|
}
|
|
8768
|
-
|
|
8769
|
-
|
|
8770
|
-
sl-divider.summary-title-divider {
|
|
8771
|
-
--color: var(--axebow-table-header-border, #dbdde4);
|
|
8772
|
-
--spacing: 0.75rem;
|
|
8999
|
+
.refresh-spin {
|
|
9000
|
+
animation: spin 1s linear infinite;
|
|
8773
9001
|
}
|
|
8774
|
-
|
|
8775
|
-
|
|
8776
|
-
|
|
8777
|
-
|
|
8778
|
-
|
|
9002
|
+
@keyframes spin {
|
|
9003
|
+
from {
|
|
9004
|
+
transform: rotate(0deg);
|
|
9005
|
+
}
|
|
9006
|
+
to {
|
|
9007
|
+
transform: rotate(360deg);
|
|
9008
|
+
}
|
|
8779
9009
|
}
|
|
8780
9010
|
`
|
|
8781
9011
|
];
|
|
8782
9012
|
}
|
|
8783
|
-
|
|
8784
|
-
|
|
8785
|
-
|
|
8786
|
-
|
|
8787
|
-
|
|
8788
|
-
}
|
|
9013
|
+
_handleSelect(value) {
|
|
9014
|
+
this.dispatchEvent(new CustomEvent("period-select", {
|
|
9015
|
+
detail: { value },
|
|
9016
|
+
bubbles: true,
|
|
9017
|
+
composed: true
|
|
9018
|
+
}));
|
|
9019
|
+
this.renderRoot.querySelector("sl-dropdown")?.hide();
|
|
8789
9020
|
}
|
|
8790
|
-
|
|
8791
|
-
|
|
8792
|
-
|
|
9021
|
+
render() {
|
|
9022
|
+
return html`
|
|
9023
|
+
<div class="flex flex-col gap-2">
|
|
9024
|
+
<div class="w-45 h-4.25 flex items-center">
|
|
9025
|
+
<h1 class="m-0 text-base font-semibold">${this.title}</h1>
|
|
9026
|
+
</div>
|
|
9027
|
+
<div class="flex gap-4 items-center justify-center flex-wrap">
|
|
9028
|
+
<sl-dropdown class="w-45">
|
|
9029
|
+
<axebow-button class="w-full" slot="trigger" caret fixedWidth="11.25rem" fixedHeight="2.5rem">
|
|
9030
|
+
<div class="flex items-center gap-2">${this.buttonText}</div>
|
|
9031
|
+
</axebow-button>
|
|
9032
|
+
<sl-menu class="w-45 my-2">
|
|
9033
|
+
<sl-menu-item @click=${() => this._handleSelect(null)} ?selected=${this.offSelected}>
|
|
9034
|
+
<div class="flex items-center gap-2">${this.offLabel}</div>
|
|
9035
|
+
</sl-menu-item>
|
|
9036
|
+
<sl-divider></sl-divider>
|
|
9037
|
+
${this.periods.map((period) => html`
|
|
9038
|
+
<sl-menu-item @click=${() => this._handleSelect(period.value)} ?selected=${period.selected}>
|
|
9039
|
+
<div class="flex items-center gap-2">${period.label}</div>
|
|
9040
|
+
</sl-menu-item>
|
|
9041
|
+
`)}
|
|
9042
|
+
</sl-menu>
|
|
9043
|
+
</sl-dropdown>
|
|
9044
|
+
<button
|
|
9045
|
+
class="text-[var(--axebow-tertiary)] flex items-center gap-2 cursor-pointer hover:opacity-80 transition-opacity ${this.isManualRefreshing ? "opacity-70" : ""}"
|
|
9046
|
+
@click=${this._handleRefreshNow}
|
|
9047
|
+
?disabled=${this.isManualRefreshing}
|
|
9048
|
+
>
|
|
9049
|
+
<p class="font-bold">${this.refreshNowLabel}</p>
|
|
9050
|
+
<axebow-icon
|
|
9051
|
+
iconName="cached"
|
|
9052
|
+
size="3xl"
|
|
9053
|
+
iconColor="var(--axebow-tertiary)"
|
|
9054
|
+
class="${this.isManualRefreshing ? "refresh-spin" : ""}"
|
|
9055
|
+
></axebow-icon>
|
|
9056
|
+
</button>
|
|
9057
|
+
</div>
|
|
9058
|
+
</div>
|
|
9059
|
+
`;
|
|
9060
|
+
}
|
|
9061
|
+
};
|
|
9062
|
+
__decorate([property({ type: String })], AxebowRefreshPeriodPanel.prototype, "title", void 0);
|
|
9063
|
+
__decorate([property({ type: String })], AxebowRefreshPeriodPanel.prototype, "buttonText", void 0);
|
|
9064
|
+
__decorate([property({ type: String })], AxebowRefreshPeriodPanel.prototype, "offLabel", void 0);
|
|
9065
|
+
__decorate([property({ type: Boolean })], AxebowRefreshPeriodPanel.prototype, "offSelected", void 0);
|
|
9066
|
+
__decorate([property({ attribute: false })], AxebowRefreshPeriodPanel.prototype, "periods", void 0);
|
|
9067
|
+
__decorate([property({ type: String })], AxebowRefreshPeriodPanel.prototype, "refreshNowLabel", void 0);
|
|
9068
|
+
__decorate([property({ type: Boolean })], AxebowRefreshPeriodPanel.prototype, "isManualRefreshing", void 0);
|
|
9069
|
+
AxebowRefreshPeriodPanel = __decorate([customElement("axebow-refresh-period-panel")], AxebowRefreshPeriodPanel);
|
|
9070
|
+
//#endregion
|
|
9071
|
+
//#region src/components/axebow-resource-limits/parts/axebow-resource-limit-input.ts
|
|
9072
|
+
var AxebowResourceLimitInput = class AxebowResourceLimitInput extends LitElement {
|
|
9073
|
+
constructor(..._args) {
|
|
9074
|
+
super(..._args);
|
|
9075
|
+
this.label = "";
|
|
9076
|
+
this.unit = "";
|
|
9077
|
+
this.value = "";
|
|
9078
|
+
this.max = Number.MAX_SAFE_INTEGER;
|
|
9079
|
+
this.min = 0;
|
|
9080
|
+
this.required = false;
|
|
9081
|
+
this.disabled = false;
|
|
9082
|
+
this.hasError = false;
|
|
9083
|
+
}
|
|
9084
|
+
static {
|
|
9085
|
+
this.styles = [unsafeCSS(tailwind_default), axebowTheme];
|
|
9086
|
+
}
|
|
9087
|
+
render() {
|
|
9088
|
+
return html`
|
|
9089
|
+
<div class="flex flex-col items-center gap-2 w-24.75 shrink-0">
|
|
9090
|
+
<div class="flex items-center gap-1">
|
|
9091
|
+
${this.required ? html`<span class="text-(--axebow-error)">*</span>` : ""}
|
|
9092
|
+
<span class="text-sm font-semibold text-center">${this.label}</span>
|
|
9093
|
+
</div>
|
|
9094
|
+
<axebow-input
|
|
9095
|
+
controlType="integer"
|
|
9096
|
+
.compact=${true}
|
|
9097
|
+
.value=${this.value}
|
|
9098
|
+
.max=${this.max}
|
|
9099
|
+
.min=${this.min}
|
|
9100
|
+
.disabled=${this.disabled}
|
|
9101
|
+
.hasError=${this.hasError}
|
|
9102
|
+
.callback=${this.callback}
|
|
9103
|
+
fixedWidth="6.1875rem"
|
|
9104
|
+
fixedHeight="2.5rem"
|
|
9105
|
+
></axebow-input>
|
|
9106
|
+
<span class="text-sm text-(--axebow-secondary)">${this.unit}</span>
|
|
9107
|
+
</div>
|
|
9108
|
+
`;
|
|
9109
|
+
}
|
|
9110
|
+
};
|
|
9111
|
+
__decorate([property({ type: String })], AxebowResourceLimitInput.prototype, "label", void 0);
|
|
9112
|
+
__decorate([property({ type: String })], AxebowResourceLimitInput.prototype, "unit", void 0);
|
|
9113
|
+
__decorate([property({ type: String })], AxebowResourceLimitInput.prototype, "value", void 0);
|
|
9114
|
+
__decorate([property({ type: Number })], AxebowResourceLimitInput.prototype, "max", void 0);
|
|
9115
|
+
__decorate([property({ type: Number })], AxebowResourceLimitInput.prototype, "min", void 0);
|
|
9116
|
+
__decorate([property({ type: Boolean })], AxebowResourceLimitInput.prototype, "required", void 0);
|
|
9117
|
+
__decorate([property({ type: Boolean })], AxebowResourceLimitInput.prototype, "disabled", void 0);
|
|
9118
|
+
__decorate([property({ type: Boolean })], AxebowResourceLimitInput.prototype, "hasError", void 0);
|
|
9119
|
+
__decorate([property({ attribute: false })], AxebowResourceLimitInput.prototype, "callback", void 0);
|
|
9120
|
+
AxebowResourceLimitInput = __decorate([customElement("axebow-resource-limit-input")], AxebowResourceLimitInput);
|
|
9121
|
+
//#endregion
|
|
9122
|
+
//#region src/components/axebow-resource-limits/axebow-resource-limits-panel.ts
|
|
9123
|
+
var AxebowResourceLimitsPanel = class AxebowResourceLimitsPanel extends LitElement {
|
|
9124
|
+
constructor(..._args) {
|
|
9125
|
+
super(..._args);
|
|
9126
|
+
this.storageFields = [];
|
|
9127
|
+
}
|
|
9128
|
+
static {
|
|
9129
|
+
this.styles = [unsafeCSS(tailwind_default), axebowTheme];
|
|
9130
|
+
}
|
|
9131
|
+
_handleChange(field, e) {
|
|
9132
|
+
const target = e.target;
|
|
9133
|
+
let value = Math.trunc(Number(target.value));
|
|
9134
|
+
if (value > field.max) value = field.max;
|
|
9135
|
+
target.value = value.toString();
|
|
9136
|
+
this.dispatchEvent(new CustomEvent("resource-limit-change", {
|
|
9137
|
+
detail: {
|
|
9138
|
+
key: field.key,
|
|
9139
|
+
value
|
|
9140
|
+
},
|
|
9141
|
+
bubbles: true,
|
|
9142
|
+
composed: true
|
|
9143
|
+
}));
|
|
9144
|
+
}
|
|
9145
|
+
_renderField(field) {
|
|
9146
|
+
return html`
|
|
9147
|
+
<axebow-resource-limit-input
|
|
9148
|
+
label=${field.label}
|
|
9149
|
+
unit=${field.unit}
|
|
9150
|
+
value=${field.value?.toString() ?? ""}
|
|
9151
|
+
.max=${field.max}
|
|
9152
|
+
.min=${field.min ?? 0}
|
|
9153
|
+
?required=${field.required}
|
|
9154
|
+
?disabled=${field.disabled}
|
|
9155
|
+
?hasError=${field.hasError}
|
|
9156
|
+
.callback=${(e) => this._handleChange(field, e)}
|
|
9157
|
+
></axebow-resource-limit-input>
|
|
9158
|
+
`;
|
|
9159
|
+
}
|
|
9160
|
+
render() {
|
|
9161
|
+
if (!this.cpu || !this.memory) return html``;
|
|
9162
|
+
return html`
|
|
9163
|
+
<div class="flex items-center flex-wrap gap-19">
|
|
9164
|
+
<div class="flex items-start gap-6">${this._renderField(this.cpu)} ${this._renderField(this.memory)}</div>
|
|
9165
|
+
<div class="flex items-start gap-4 w-100.5 p-4 border border-(--axebow-table-header-border) rounded-md box-border">
|
|
9166
|
+
${this.storageFields.map((field) => this._renderField(field))}
|
|
9167
|
+
</div>
|
|
9168
|
+
</div>
|
|
9169
|
+
`;
|
|
9170
|
+
}
|
|
9171
|
+
};
|
|
9172
|
+
__decorate([property({ type: Object })], AxebowResourceLimitsPanel.prototype, "cpu", void 0);
|
|
9173
|
+
__decorate([property({ type: Object })], AxebowResourceLimitsPanel.prototype, "memory", void 0);
|
|
9174
|
+
__decorate([property({ type: Array })], AxebowResourceLimitsPanel.prototype, "storageFields", void 0);
|
|
9175
|
+
AxebowResourceLimitsPanel = __decorate([customElement("axebow-resource-limits-panel")], AxebowResourceLimitsPanel);
|
|
9176
|
+
//#endregion
|
|
9177
|
+
//#region src/components/axebow-selector-slider/axebow-selector-slider.ts
|
|
9178
|
+
var AxebowSelectorSlider = class AxebowSelectorSlider extends LitElement {
|
|
9179
|
+
constructor(..._args) {
|
|
9180
|
+
super(..._args);
|
|
9181
|
+
this.quantity = 0;
|
|
9182
|
+
this.minTag = 0;
|
|
9183
|
+
this.mediumTag = "Y";
|
|
9184
|
+
this.maxTag = "X";
|
|
9185
|
+
this.step = 1;
|
|
9186
|
+
this.disabled = false;
|
|
9187
|
+
this._isDragging = false;
|
|
9188
|
+
}
|
|
9189
|
+
static {
|
|
9190
|
+
this.styles = [
|
|
9191
|
+
unsafeCSS(tailwind_default),
|
|
9192
|
+
axebowTheme,
|
|
9193
|
+
css`
|
|
9194
|
+
:host {
|
|
9195
|
+
display: block;
|
|
9196
|
+
width: 100%;
|
|
9197
|
+
}
|
|
9198
|
+
`
|
|
9199
|
+
];
|
|
9200
|
+
}
|
|
9201
|
+
get value() {
|
|
9202
|
+
return this.quantity;
|
|
9203
|
+
}
|
|
9204
|
+
set value(val) {
|
|
9205
|
+
this.quantity = val;
|
|
9206
|
+
}
|
|
9207
|
+
get _minVal() {
|
|
9208
|
+
if (typeof this.min === "number") return this.min;
|
|
9209
|
+
const n = Number(this.minTag);
|
|
9210
|
+
return isNaN(n) ? 0 : n;
|
|
9211
|
+
}
|
|
9212
|
+
get _maxVal() {
|
|
9213
|
+
if (typeof this.max === "number") return this.max;
|
|
9214
|
+
const n = Number(this.maxTag);
|
|
9215
|
+
return isNaN(n) ? 100 : n;
|
|
9216
|
+
}
|
|
9217
|
+
get _numericQuantity() {
|
|
9218
|
+
if (typeof this.quantity === "string") {
|
|
9219
|
+
const str = this.quantity.toLowerCase();
|
|
9220
|
+
if (str === "min") return this._minVal;
|
|
9221
|
+
if (str === "max") return this._maxVal;
|
|
9222
|
+
if (str === "middle") return Math.round((this._minVal + this._maxVal) / 2);
|
|
9223
|
+
const parsed = Number(this.quantity);
|
|
9224
|
+
if (!isNaN(parsed)) return parsed;
|
|
9225
|
+
}
|
|
9226
|
+
return typeof this.quantity === "number" ? this.quantity : this._minVal;
|
|
9227
|
+
}
|
|
9228
|
+
get _percentage() {
|
|
9229
|
+
const min = this._minVal;
|
|
9230
|
+
const max = this._maxVal;
|
|
9231
|
+
if (max <= min) return 0;
|
|
9232
|
+
return (Math.max(min, Math.min(max, this._numericQuantity)) - min) / (max - min) * 100;
|
|
9233
|
+
}
|
|
9234
|
+
_setValue(newValue) {
|
|
9235
|
+
const min = this._minVal;
|
|
9236
|
+
const max = this._maxVal;
|
|
9237
|
+
const clamped = Math.max(min, Math.min(max, newValue));
|
|
9238
|
+
if (this._numericQuantity !== clamped) {
|
|
9239
|
+
this.quantity = clamped;
|
|
9240
|
+
this.dispatchEvent(new CustomEvent("change", {
|
|
9241
|
+
detail: {
|
|
9242
|
+
value: clamped,
|
|
9243
|
+
quantity: clamped
|
|
9244
|
+
},
|
|
9245
|
+
bubbles: true,
|
|
9246
|
+
composed: true
|
|
9247
|
+
}));
|
|
9248
|
+
}
|
|
9249
|
+
}
|
|
9250
|
+
_handlePointerDown(e) {
|
|
9251
|
+
if (this.disabled) return;
|
|
9252
|
+
this._isDragging = true;
|
|
9253
|
+
this._updateFromPointer(e);
|
|
9254
|
+
const handlePointerMove = (moveEv) => {
|
|
9255
|
+
if (this._isDragging) this._updateFromPointer(moveEv);
|
|
9256
|
+
};
|
|
9257
|
+
const handlePointerUp = () => {
|
|
9258
|
+
this._isDragging = false;
|
|
9259
|
+
window.removeEventListener("pointermove", handlePointerMove);
|
|
9260
|
+
window.removeEventListener("pointerup", handlePointerUp);
|
|
9261
|
+
};
|
|
9262
|
+
window.addEventListener("pointermove", handlePointerMove);
|
|
9263
|
+
window.addEventListener("pointerup", handlePointerUp);
|
|
9264
|
+
}
|
|
9265
|
+
_updateFromPointer(e) {
|
|
9266
|
+
if (!this._trackContainer) return;
|
|
9267
|
+
const rect = this._trackContainer.getBoundingClientRect();
|
|
9268
|
+
const x = e.clientX - rect.left;
|
|
9269
|
+
const width = rect.width;
|
|
9270
|
+
if (width <= 0) return;
|
|
9271
|
+
const ratio = Math.max(0, Math.min(1, x / width));
|
|
9272
|
+
const min = this._minVal;
|
|
9273
|
+
const rawVal = min + ratio * (this._maxVal - min);
|
|
9274
|
+
const step = this.step || 1;
|
|
9275
|
+
const stepped = Math.round((rawVal - min) / step) * step + min;
|
|
9276
|
+
this._setValue(stepped);
|
|
9277
|
+
}
|
|
9278
|
+
_handleKeyDown(e) {
|
|
9279
|
+
if (this.disabled) return;
|
|
9280
|
+
const min = this._minVal;
|
|
9281
|
+
const max = this._maxVal;
|
|
9282
|
+
const step = this.step || 1;
|
|
9283
|
+
const current = this._numericQuantity;
|
|
9284
|
+
if (e.key === "ArrowRight" || e.key === "ArrowUp") {
|
|
9285
|
+
e.preventDefault();
|
|
9286
|
+
this._setValue(Math.min(max, current + step));
|
|
9287
|
+
} else if (e.key === "ArrowLeft" || e.key === "ArrowDown") {
|
|
9288
|
+
e.preventDefault();
|
|
9289
|
+
this._setValue(Math.max(min, current - step));
|
|
9290
|
+
} else if (e.key === "Home") {
|
|
9291
|
+
e.preventDefault();
|
|
9292
|
+
this._setValue(min);
|
|
9293
|
+
} else if (e.key === "End") {
|
|
9294
|
+
e.preventDefault();
|
|
9295
|
+
this._setValue(max);
|
|
9296
|
+
}
|
|
9297
|
+
}
|
|
9298
|
+
render() {
|
|
9299
|
+
const percent = this._percentage;
|
|
9300
|
+
const currentVal = this._numericQuantity;
|
|
9301
|
+
const min = this._minVal;
|
|
9302
|
+
const max = this._maxVal;
|
|
9303
|
+
const mid = Math.round((min + max) / 2);
|
|
9304
|
+
return html`
|
|
9305
|
+
<div class="w-full flex flex-col gap-2 select-none ${this.disabled ? "opacity-50 pointer-events-none" : ""}">
|
|
9306
|
+
<!-- Slider Track Container -->
|
|
9307
|
+
<div
|
|
9308
|
+
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"
|
|
9309
|
+
tabindex=${this.disabled ? -1 : 0}
|
|
9310
|
+
role="slider"
|
|
9311
|
+
aria-valuemin=${min}
|
|
9312
|
+
aria-valuemax=${max}
|
|
9313
|
+
aria-valuenow=${currentVal}
|
|
9314
|
+
aria-valuetext=${String(currentVal)}
|
|
9315
|
+
@pointerdown=${this._handlePointerDown}
|
|
9316
|
+
@keydown=${this._handleKeyDown}
|
|
9317
|
+
>
|
|
9318
|
+
<!-- Outer track padding container for exact knob alignment -->
|
|
9319
|
+
<div class="slider-track-container relative w-full h-3 rounded-full bg-[#C7DCFA] overflow-visible">
|
|
9320
|
+
<!-- Active Fill Track -->
|
|
9321
|
+
<div
|
|
9322
|
+
class="absolute left-0 top-0 bottom-0 rounded-full bg-[#006BFF] transition-all duration-150 ease-out"
|
|
9323
|
+
style="width: ${percent}%;"
|
|
9324
|
+
></div>
|
|
9325
|
+
|
|
9326
|
+
<!-- Slider Thumb Knob -->
|
|
9327
|
+
<div
|
|
9328
|
+
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"
|
|
9329
|
+
style="left: ${percent}%;"
|
|
9330
|
+
></div>
|
|
9331
|
+
</div>
|
|
9332
|
+
</div>
|
|
9333
|
+
|
|
9334
|
+
<!-- Labels below -->
|
|
9335
|
+
<div class="flex justify-between items-center text-sm font-semibold text-[#78787A] px-1">
|
|
9336
|
+
<span class="w-1/3 text-left cursor-pointer" @click=${() => !this.disabled && this._setValue(min)}>
|
|
9337
|
+
${this.minTag}
|
|
9338
|
+
</span>
|
|
9339
|
+
<span class="w-1/3 text-center cursor-pointer" @click=${() => !this.disabled && this._setValue(mid)}>
|
|
9340
|
+
${this.mediumTag}
|
|
9341
|
+
</span>
|
|
9342
|
+
<span class="w-1/3 text-right cursor-pointer" @click=${() => !this.disabled && this._setValue(max)}>
|
|
9343
|
+
${this.maxTag}
|
|
9344
|
+
</span>
|
|
9345
|
+
</div>
|
|
9346
|
+
</div>
|
|
9347
|
+
`;
|
|
9348
|
+
}
|
|
9349
|
+
};
|
|
9350
|
+
__decorate([property({
|
|
9351
|
+
type: Number,
|
|
9352
|
+
reflect: true
|
|
9353
|
+
})], AxebowSelectorSlider.prototype, "quantity", void 0);
|
|
9354
|
+
__decorate([property()], AxebowSelectorSlider.prototype, "minTag", void 0);
|
|
9355
|
+
__decorate([property()], AxebowSelectorSlider.prototype, "mediumTag", void 0);
|
|
9356
|
+
__decorate([property()], AxebowSelectorSlider.prototype, "maxTag", void 0);
|
|
9357
|
+
__decorate([property({ type: Number })], AxebowSelectorSlider.prototype, "min", void 0);
|
|
9358
|
+
__decorate([property({ type: Number })], AxebowSelectorSlider.prototype, "max", void 0);
|
|
9359
|
+
__decorate([property({ type: Number })], AxebowSelectorSlider.prototype, "step", void 0);
|
|
9360
|
+
__decorate([property({ type: Boolean })], AxebowSelectorSlider.prototype, "disabled", void 0);
|
|
9361
|
+
__decorate([property()], AxebowSelectorSlider.prototype, "value", null);
|
|
9362
|
+
__decorate([query(".slider-track-container")], AxebowSelectorSlider.prototype, "_trackContainer", void 0);
|
|
9363
|
+
AxebowSelectorSlider = __decorate([customElement("axebow-selector-slider")], AxebowSelectorSlider);
|
|
9364
|
+
//#endregion
|
|
9365
|
+
//#region src/components/axebow-deploy-summary/axebow-deploy-summary.ts
|
|
9366
|
+
var AxebowDeploySummary = class AxebowDeploySummary extends LitElement {
|
|
9367
|
+
constructor(..._args) {
|
|
9368
|
+
super(..._args);
|
|
9369
|
+
this.summaryTitle = "";
|
|
9370
|
+
this.showDownloadButton = false;
|
|
9371
|
+
this.downloadLabel = "";
|
|
9372
|
+
this.currentStep = 0;
|
|
9373
|
+
}
|
|
9374
|
+
static {
|
|
9375
|
+
this.styles = [
|
|
9376
|
+
unsafeCSS(tailwind_default),
|
|
9377
|
+
axebowTheme,
|
|
9378
|
+
css`
|
|
9379
|
+
:host {
|
|
9380
|
+
display: block;
|
|
9381
|
+
height: 100%;
|
|
9382
|
+
}
|
|
9383
|
+
axebow-summary-card {
|
|
9384
|
+
display: block;
|
|
9385
|
+
height: 100%;
|
|
9386
|
+
}
|
|
9387
|
+
/* The plain, solid divider used between every summary section -
|
|
9388
|
+
matches whatever separates the step titles. */
|
|
9389
|
+
sl-divider.summary-title-divider {
|
|
9390
|
+
--color: var(--axebow-table-header-border, #dbdde4);
|
|
9391
|
+
--spacing: 0.75rem;
|
|
9392
|
+
}
|
|
9393
|
+
/* Dashed variant used inside the autoscaling summary. */
|
|
9394
|
+
sl-divider.summary-dashed-divider {
|
|
9395
|
+
--color: var(--axebow-base);
|
|
9396
|
+
--spacing: 0.75rem;
|
|
9397
|
+
border-top-style: dashed !important;
|
|
9398
|
+
}
|
|
9399
|
+
`
|
|
9400
|
+
];
|
|
9401
|
+
}
|
|
9402
|
+
updated(changedProperties) {
|
|
9403
|
+
super.updated(changedProperties);
|
|
9404
|
+
if (changedProperties.has("currentStep")) {
|
|
9405
|
+
const oldStep = changedProperties.get("currentStep");
|
|
9406
|
+
if (oldStep !== void 0 && this.currentStep > oldStep) this._scrollToBottom();
|
|
9407
|
+
}
|
|
9408
|
+
}
|
|
9409
|
+
_scrollToBottom() {
|
|
9410
|
+
setTimeout(() => {
|
|
9411
|
+
const summaryCard = this.renderRoot.querySelector("axebow-summary-card");
|
|
8793
9412
|
if (summaryCard && summaryCard.scrollToBottom) summaryCard.scrollToBottom();
|
|
8794
9413
|
const container = this.renderRoot.querySelector(".overflow-y-auto");
|
|
8795
9414
|
if (container) container.scrollTop = container.scrollHeight;
|
|
@@ -10236,275 +10855,1135 @@ var AxebowResourceBoxForm = class AxebowResourceBoxForm extends LitElement {
|
|
|
10236
10855
|
`;
|
|
10237
10856
|
}
|
|
10238
10857
|
render() {
|
|
10239
|
-
const isDeleting = this.deleting;
|
|
10240
|
-
const computedStatusColor = isDeleting ? "var(--axebow-error)" : this.statusColor;
|
|
10858
|
+
const isDeleting = this.deleting;
|
|
10859
|
+
const computedStatusColor = isDeleting ? "var(--axebow-error)" : this.statusColor;
|
|
10860
|
+
return html`
|
|
10861
|
+
<div
|
|
10862
|
+
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"
|
|
10863
|
+
>
|
|
10864
|
+
<!-- Top Status Header -->
|
|
10865
|
+
<axebow-status
|
|
10866
|
+
.statusText=${this.statusText}
|
|
10867
|
+
.statusColor=${computedStatusColor}
|
|
10868
|
+
?showTrash=${this.showTrash}
|
|
10869
|
+
?deleting=${this.deleting}
|
|
10870
|
+
@delete=${this._handleDelete}
|
|
10871
|
+
></axebow-status>
|
|
10872
|
+
|
|
10873
|
+
<!-- Form Fields List -->
|
|
10874
|
+
<div class="flex flex-col gap-2.5 w-full">
|
|
10875
|
+
${this.items && this.items.length > 0 ? this.items.map((item) => this._renderField(isDeleting ? {
|
|
10876
|
+
...item,
|
|
10877
|
+
type: "disabled"
|
|
10878
|
+
} : item)) : html`
|
|
10879
|
+
<div
|
|
10880
|
+
class="p-3 border border-dashed border-(--axebow-border-gray) rounded-lg text-center text-(--axebow-gray) text-xs"
|
|
10881
|
+
>
|
|
10882
|
+
No items configured.
|
|
10883
|
+
</div>
|
|
10884
|
+
`}
|
|
10885
|
+
</div>
|
|
10886
|
+
</div>
|
|
10887
|
+
`;
|
|
10888
|
+
}
|
|
10889
|
+
};
|
|
10890
|
+
__decorate([property({ type: String })], AxebowResourceBoxForm.prototype, "statusText", void 0);
|
|
10891
|
+
__decorate([property({ type: String })], AxebowResourceBoxForm.prototype, "statusColor", void 0);
|
|
10892
|
+
__decorate([property({ type: Boolean })], AxebowResourceBoxForm.prototype, "showTrash", void 0);
|
|
10893
|
+
__decorate([property({ type: Boolean })], AxebowResourceBoxForm.prototype, "deleting", void 0);
|
|
10894
|
+
__decorate([property({ type: Array })], AxebowResourceBoxForm.prototype, "items", void 0);
|
|
10895
|
+
__decorate([state()], AxebowResourceBoxForm.prototype, "_openMenuId", void 0);
|
|
10896
|
+
AxebowResourceBoxForm = __decorate([customElement("axebow-resource-box-form")], AxebowResourceBoxForm);
|
|
10897
|
+
//#endregion
|
|
10898
|
+
//#region src/components/axebow-manage-hyperlinks/axebow-manage-hyperlinks.ts
|
|
10899
|
+
var AxebowManageHyperlinks = class AxebowManageHyperlinks extends LitElement {
|
|
10900
|
+
constructor(..._args) {
|
|
10901
|
+
super(..._args);
|
|
10902
|
+
this.text = "";
|
|
10903
|
+
this.icon = "";
|
|
10904
|
+
this.color = "var(--axebow-tertiary)";
|
|
10905
|
+
this.iconColor = "";
|
|
10906
|
+
this.disabled = false;
|
|
10907
|
+
}
|
|
10908
|
+
static {
|
|
10909
|
+
this.styles = [unsafeCSS(tailwind_default), css`
|
|
10910
|
+
:host {
|
|
10911
|
+
display: inline-block;
|
|
10912
|
+
}
|
|
10913
|
+
button:hover:not(:disabled) {
|
|
10914
|
+
color: var(--axebow-gray) !important;
|
|
10915
|
+
}
|
|
10916
|
+
`];
|
|
10917
|
+
}
|
|
10918
|
+
_handleClick(e) {
|
|
10919
|
+
if (this.disabled) {
|
|
10920
|
+
e.preventDefault();
|
|
10921
|
+
e.stopPropagation();
|
|
10922
|
+
return;
|
|
10923
|
+
}
|
|
10924
|
+
this.dispatchEvent(new CustomEvent("hyperlink-click", {
|
|
10925
|
+
bubbles: true,
|
|
10926
|
+
composed: true,
|
|
10927
|
+
detail: { text: this.text }
|
|
10928
|
+
}));
|
|
10929
|
+
}
|
|
10930
|
+
render() {
|
|
10931
|
+
const buttonColor = this.color || "var(--axebow-tertiary)";
|
|
10932
|
+
const iconColorProp = this.iconColor || "currentColor";
|
|
10933
|
+
return html`
|
|
10934
|
+
<button
|
|
10935
|
+
type="button"
|
|
10936
|
+
?disabled=${this.disabled}
|
|
10937
|
+
@click=${this._handleClick}
|
|
10938
|
+
style="color: ${buttonColor};"
|
|
10939
|
+
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"
|
|
10940
|
+
>
|
|
10941
|
+
<span>${this.text}</span>
|
|
10942
|
+
${this.icon ? html`<axebow-icon iconName="${this.icon}" iconColor="${iconColorProp}"></axebow-icon>` : ""}
|
|
10943
|
+
</button>`;
|
|
10944
|
+
}
|
|
10945
|
+
};
|
|
10946
|
+
__decorate([property({ type: String })], AxebowManageHyperlinks.prototype, "text", void 0);
|
|
10947
|
+
__decorate([property({ type: String })], AxebowManageHyperlinks.prototype, "icon", void 0);
|
|
10948
|
+
__decorate([property({ type: String })], AxebowManageHyperlinks.prototype, "color", void 0);
|
|
10949
|
+
__decorate([property({ type: String })], AxebowManageHyperlinks.prototype, "iconColor", void 0);
|
|
10950
|
+
__decorate([property({ type: Boolean })], AxebowManageHyperlinks.prototype, "disabled", void 0);
|
|
10951
|
+
AxebowManageHyperlinks = __decorate([customElement("axebow-manage-hyperlinks")], AxebowManageHyperlinks);
|
|
10952
|
+
//#endregion
|
|
10953
|
+
//#region src/components/axebow-box-section/axebow-box-section.ts
|
|
10954
|
+
var AxebowBoxSection = class AxebowBoxSection extends LitElement {
|
|
10955
|
+
constructor(..._args) {
|
|
10956
|
+
super(..._args);
|
|
10957
|
+
this.title = "";
|
|
10958
|
+
this.hyperlinks = [];
|
|
10959
|
+
this.showHyperlink = false;
|
|
10960
|
+
this.hyperlinkText = "";
|
|
10961
|
+
this.hyperlinkIcon = "";
|
|
10962
|
+
this.hyperlinkColor = "";
|
|
10963
|
+
this.hyperlinkDisabled = false;
|
|
10964
|
+
}
|
|
10965
|
+
static {
|
|
10966
|
+
this.styles = unsafeCSS(tailwind_default);
|
|
10967
|
+
}
|
|
10968
|
+
_handleItemClick(item, index) {
|
|
10969
|
+
if (item.onClick) item.onClick();
|
|
10970
|
+
this.dispatchEvent(new CustomEvent("hyperlink-click", {
|
|
10971
|
+
bubbles: true,
|
|
10972
|
+
composed: true,
|
|
10973
|
+
detail: {
|
|
10974
|
+
item,
|
|
10975
|
+
index,
|
|
10976
|
+
text: item.text
|
|
10977
|
+
}
|
|
10978
|
+
}));
|
|
10979
|
+
}
|
|
10980
|
+
render() {
|
|
10981
|
+
const itemsToRender = this.hyperlinks.length > 0 ? this.hyperlinks : this.showHyperlink || Boolean(this.hyperlinkText) ? [{
|
|
10982
|
+
text: this.hyperlinkText,
|
|
10983
|
+
icon: this.hyperlinkIcon,
|
|
10984
|
+
color: this.hyperlinkColor,
|
|
10985
|
+
disabled: this.hyperlinkDisabled
|
|
10986
|
+
}] : [];
|
|
10987
|
+
return html`
|
|
10988
|
+
<div class="flex flex-col rounded-md p-5 gap-4 bg-white">
|
|
10989
|
+
<div class="w-full flex justify-between items-center border-b border-solid border-[#DBDDE4] pb-3 gap-2">
|
|
10990
|
+
<span class="font-semibold uppercase text-(--axebow-primary)">${this.title}</span>
|
|
10991
|
+
<slot name="hyperlink">
|
|
10992
|
+
${itemsToRender.length > 0 ? html`
|
|
10993
|
+
<div class="flex items-center gap-4">
|
|
10994
|
+
${itemsToRender.map((item, index) => html`
|
|
10995
|
+
<axebow-manage-hyperlinks
|
|
10996
|
+
text="${item.text}"
|
|
10997
|
+
icon="${item.icon}"
|
|
10998
|
+
color="${item.color ?? ""}"
|
|
10999
|
+
?disabled=${Boolean(item.disabled)}
|
|
11000
|
+
@hyperlink-click=${() => this._handleItemClick(item, index)}
|
|
11001
|
+
></axebow-manage-hyperlinks>
|
|
11002
|
+
`)}
|
|
11003
|
+
</div>
|
|
11004
|
+
` : ""}
|
|
11005
|
+
</slot>
|
|
11006
|
+
</div>
|
|
11007
|
+
<slot></slot>
|
|
11008
|
+
</div>`;
|
|
11009
|
+
}
|
|
11010
|
+
};
|
|
11011
|
+
__decorate([property({ type: String })], AxebowBoxSection.prototype, "title", void 0);
|
|
11012
|
+
__decorate([property({ type: Array })], AxebowBoxSection.prototype, "hyperlinks", void 0);
|
|
11013
|
+
__decorate([property({ type: Boolean })], AxebowBoxSection.prototype, "showHyperlink", void 0);
|
|
11014
|
+
__decorate([property({ type: String })], AxebowBoxSection.prototype, "hyperlinkText", void 0);
|
|
11015
|
+
__decorate([property({ type: String })], AxebowBoxSection.prototype, "hyperlinkIcon", void 0);
|
|
11016
|
+
__decorate([property({ type: String })], AxebowBoxSection.prototype, "hyperlinkColor", void 0);
|
|
11017
|
+
__decorate([property({ type: Boolean })], AxebowBoxSection.prototype, "hyperlinkDisabled", void 0);
|
|
11018
|
+
AxebowBoxSection = __decorate([customElement("axebow-box-section")], AxebowBoxSection);
|
|
11019
|
+
//#endregion
|
|
11020
|
+
//#region src/components/axebow-copy-box/axebow-copy-box.ts
|
|
11021
|
+
var AxebowCopyBox = class AxebowCopyBox extends LitElement {
|
|
11022
|
+
constructor(..._args) {
|
|
11023
|
+
super(..._args);
|
|
11024
|
+
this.value = "";
|
|
11025
|
+
this.copyValue = "";
|
|
11026
|
+
this.iconName = "content_copy";
|
|
11027
|
+
this.size = "lg";
|
|
11028
|
+
this.disabled = false;
|
|
11029
|
+
this._copied = false;
|
|
11030
|
+
}
|
|
11031
|
+
static {
|
|
11032
|
+
this.styles = unsafeCSS(tailwind_default);
|
|
11033
|
+
}
|
|
11034
|
+
async _handleCopy(e) {
|
|
11035
|
+
if (this.disabled) {
|
|
11036
|
+
e.preventDefault();
|
|
11037
|
+
e.stopPropagation();
|
|
11038
|
+
return;
|
|
11039
|
+
}
|
|
11040
|
+
let textToCopy = this.copyValue || this.value;
|
|
11041
|
+
if (!textToCopy) {
|
|
11042
|
+
const slot = this.shadowRoot?.querySelector("slot");
|
|
11043
|
+
if (slot) textToCopy = slot.assignedNodes({ flatten: true }).map((n) => n.textContent ?? "").join("").trim();
|
|
11044
|
+
if (!textToCopy) textToCopy = this.textContent?.trim() ?? "";
|
|
11045
|
+
}
|
|
11046
|
+
if (textToCopy) try {
|
|
11047
|
+
await navigator.clipboard.writeText(textToCopy);
|
|
11048
|
+
this._copied = true;
|
|
11049
|
+
setTimeout(() => {
|
|
11050
|
+
this._copied = false;
|
|
11051
|
+
}, 2e3);
|
|
11052
|
+
} catch (err) {
|
|
11053
|
+
console.error("Failed to copy text:", err);
|
|
11054
|
+
}
|
|
11055
|
+
this.dispatchEvent(new CustomEvent("copy", {
|
|
11056
|
+
bubbles: true,
|
|
11057
|
+
composed: true,
|
|
11058
|
+
detail: { value: textToCopy }
|
|
11059
|
+
}));
|
|
11060
|
+
}
|
|
11061
|
+
render() {
|
|
11062
|
+
const iconToShow = this._copied ? "check" : this.iconName;
|
|
11063
|
+
return html`
|
|
11064
|
+
<div
|
|
11065
|
+
@click=${this._handleCopy}
|
|
11066
|
+
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" : ""}"
|
|
11067
|
+
title=${this._copied ? "Copied!" : "Copy"}
|
|
11068
|
+
>
|
|
11069
|
+
<axebow-icon iconName="${iconToShow}" iconColor="white" size="${this.size}"></axebow-icon>
|
|
11070
|
+
<slot class="hidden"></slot>
|
|
11071
|
+
</div>
|
|
11072
|
+
`;
|
|
11073
|
+
}
|
|
11074
|
+
};
|
|
11075
|
+
__decorate([property({ type: String })], AxebowCopyBox.prototype, "value", void 0);
|
|
11076
|
+
__decorate([property({ type: String })], AxebowCopyBox.prototype, "copyValue", void 0);
|
|
11077
|
+
__decorate([property({ type: String })], AxebowCopyBox.prototype, "iconName", void 0);
|
|
11078
|
+
__decorate([property({ type: String })], AxebowCopyBox.prototype, "size", void 0);
|
|
11079
|
+
__decorate([property({ type: Boolean })], AxebowCopyBox.prototype, "disabled", void 0);
|
|
11080
|
+
__decorate([state()], AxebowCopyBox.prototype, "_copied", void 0);
|
|
11081
|
+
AxebowCopyBox = __decorate([customElement("axebow-copy-box")], AxebowCopyBox);
|
|
11082
|
+
//#endregion
|
|
11083
|
+
//#region src/components/axebow-tabs-submenu/axebow-tabs-submenu.ts
|
|
11084
|
+
var AxebowTabsSubmenu = class AxebowTabsSubmenu extends LitElement {
|
|
11085
|
+
constructor(..._args) {
|
|
11086
|
+
super(..._args);
|
|
11087
|
+
this.tabs = [];
|
|
11088
|
+
this.activeTab = 0;
|
|
11089
|
+
this.disabled = false;
|
|
11090
|
+
this.stretch = true;
|
|
11091
|
+
}
|
|
11092
|
+
static {
|
|
11093
|
+
this.styles = unsafeCSS(tailwind_default);
|
|
11094
|
+
}
|
|
11095
|
+
_handleTabChange(e) {
|
|
11096
|
+
this.activeTab = e.detail.index;
|
|
11097
|
+
this.dispatchEvent(new CustomEvent("tab-change", {
|
|
11098
|
+
bubbles: true,
|
|
11099
|
+
composed: true,
|
|
11100
|
+
detail: e.detail
|
|
11101
|
+
}));
|
|
11102
|
+
}
|
|
11103
|
+
render() {
|
|
11104
|
+
return html`
|
|
11105
|
+
<axebow-tab-selector
|
|
11106
|
+
variant="sections-tab"
|
|
11107
|
+
.activeTab=${this.activeTab}
|
|
11108
|
+
?disabled=${this.disabled}
|
|
11109
|
+
.stretch=${this.stretch}
|
|
11110
|
+
@tab-change=${this._handleTabChange}
|
|
11111
|
+
>
|
|
11112
|
+
${this.tabs.map((tab, i) => html`
|
|
11113
|
+
<span slot="tab-label-${i}" ?disabled=${tab.disabled ?? false}>
|
|
11114
|
+
${tab.label}
|
|
11115
|
+
</span>
|
|
11116
|
+
`)}
|
|
11117
|
+
</axebow-tab-selector>
|
|
11118
|
+
`;
|
|
11119
|
+
}
|
|
11120
|
+
};
|
|
11121
|
+
__decorate([property({ type: Array })], AxebowTabsSubmenu.prototype, "tabs", void 0);
|
|
11122
|
+
__decorate([property({ type: Number })], AxebowTabsSubmenu.prototype, "activeTab", void 0);
|
|
11123
|
+
__decorate([property({ type: Boolean })], AxebowTabsSubmenu.prototype, "disabled", void 0);
|
|
11124
|
+
__decorate([property({ type: Boolean })], AxebowTabsSubmenu.prototype, "stretch", void 0);
|
|
11125
|
+
AxebowTabsSubmenu = __decorate([customElement("axebow-tabs-submenu")], AxebowTabsSubmenu);
|
|
11126
|
+
//#endregion
|
|
11127
|
+
//#region src/components/axebow-progress-bar/axebow-progress-bar.ts
|
|
11128
|
+
var AxebowProgressBar = class AxebowProgressBar extends LitElement {
|
|
11129
|
+
constructor(..._args) {
|
|
11130
|
+
super(..._args);
|
|
11131
|
+
this.current = 0;
|
|
11132
|
+
this.max = 100;
|
|
11133
|
+
this.compact = false;
|
|
11134
|
+
}
|
|
11135
|
+
static {
|
|
11136
|
+
this.styles = [unsafeCSS(tailwind_default), css`
|
|
11137
|
+
sl-progress-bar {
|
|
11138
|
+
flex: 1;
|
|
11139
|
+
max-width: 120px;
|
|
11140
|
+
}
|
|
11141
|
+
:host([compact]) sl-progress-bar {
|
|
11142
|
+
flex: none;
|
|
11143
|
+
width: 3.75rem;
|
|
11144
|
+
max-width: 3.75rem;
|
|
11145
|
+
}
|
|
11146
|
+
`];
|
|
11147
|
+
}
|
|
11148
|
+
_percentage() {
|
|
11149
|
+
return Math.min(this.current / this.max * 100, 100);
|
|
11150
|
+
}
|
|
11151
|
+
_indicatorColor() {
|
|
11152
|
+
const pct = this.current / this.max * 100;
|
|
11153
|
+
if (pct < 70) return "var(--axebow-tertiary)";
|
|
11154
|
+
if (pct < 90) return "var(--axebow-warning)";
|
|
11155
|
+
return "var(--axebow-error)";
|
|
11156
|
+
}
|
|
11157
|
+
render() {
|
|
11158
|
+
return html`
|
|
11159
|
+
<div class="flex items-center ${this.compact ? "gap-1.25" : "gap-2 min-w-50"}">
|
|
11160
|
+
<span class="${this.compact ? "text-base" : "text-sm min-w-10 text-right"} text-(--axebow-gray)"
|
|
11161
|
+
>${this.current.toFixed(2)}</span
|
|
11162
|
+
>
|
|
11163
|
+
<sl-progress-bar
|
|
11164
|
+
style="--height: ${this.compact ? "0.6875rem" : "10px"}; --indicator-color: ${this._indicatorColor()};"
|
|
11165
|
+
value="${this._percentage()}"
|
|
11166
|
+
></sl-progress-bar>
|
|
11167
|
+
<span class="${this.compact ? "text-base" : "text-sm min-w-10"} text-(--axebow-gray)"
|
|
11168
|
+
>${this.max.toFixed(2)}</span
|
|
11169
|
+
>
|
|
11170
|
+
</div>
|
|
11171
|
+
`;
|
|
11172
|
+
}
|
|
11173
|
+
};
|
|
11174
|
+
__decorate([property({ type: Number })], AxebowProgressBar.prototype, "current", void 0);
|
|
11175
|
+
__decorate([property({ type: Number })], AxebowProgressBar.prototype, "max", void 0);
|
|
11176
|
+
__decorate([property({
|
|
11177
|
+
type: Boolean,
|
|
11178
|
+
reflect: true
|
|
11179
|
+
})], AxebowProgressBar.prototype, "compact", void 0);
|
|
11180
|
+
AxebowProgressBar = __decorate([customElement("axebow-progress-bar")], AxebowProgressBar);
|
|
11181
|
+
//#endregion
|
|
11182
|
+
//#region src/components/axebow-usage-tooltip/axebow-usage-tooltip.ts
|
|
11183
|
+
var AxebowUsageTooltip = class AxebowUsageTooltip extends LitElement {
|
|
11184
|
+
constructor(..._args) {
|
|
11185
|
+
super(..._args);
|
|
11186
|
+
this.color = "var(--axebow-primary)";
|
|
11187
|
+
this.storageLabel = "";
|
|
11188
|
+
this.volatileLabel = "";
|
|
11189
|
+
this.nonRepPersLabel = "";
|
|
11190
|
+
this.persistentRepLabel = "";
|
|
11191
|
+
}
|
|
11192
|
+
static {
|
|
11193
|
+
this.styles = [unsafeCSS(tailwind_default), css`
|
|
11194
|
+
:host {
|
|
11195
|
+
display: flex;
|
|
11196
|
+
align-items: center;
|
|
11197
|
+
justify-content: center;
|
|
11198
|
+
}
|
|
11199
|
+
axebow-tooltip::part(body) {
|
|
11200
|
+
background-color: var(--axebow-white);
|
|
11201
|
+
color: var(--axebow-primary);
|
|
11202
|
+
padding: 1rem;
|
|
11203
|
+
border: 3px solid var(--axebow-table-border);
|
|
11204
|
+
width: 300px;
|
|
11205
|
+
}
|
|
11206
|
+
sl-divider.dotted-divider {
|
|
11207
|
+
border-top: 1.5px dashed var(--axebow-light-gray);
|
|
11208
|
+
}
|
|
11209
|
+
`];
|
|
11210
|
+
}
|
|
11211
|
+
render() {
|
|
11212
|
+
if (!this.usage) return null;
|
|
11213
|
+
const { current, limit } = this.usage;
|
|
10241
11214
|
return html`
|
|
10242
|
-
<
|
|
10243
|
-
|
|
10244
|
-
|
|
10245
|
-
|
|
10246
|
-
|
|
10247
|
-
|
|
10248
|
-
|
|
10249
|
-
|
|
10250
|
-
|
|
10251
|
-
|
|
10252
|
-
|
|
10253
|
-
|
|
10254
|
-
|
|
10255
|
-
|
|
10256
|
-
|
|
10257
|
-
|
|
10258
|
-
|
|
10259
|
-
|
|
10260
|
-
|
|
10261
|
-
|
|
10262
|
-
|
|
10263
|
-
|
|
10264
|
-
|
|
10265
|
-
|
|
11215
|
+
<axebow-tooltip placement="right">
|
|
11216
|
+
<div slot="content" class="mt-3">
|
|
11217
|
+
<div class="flex justify-between items-center">
|
|
11218
|
+
<axebow-icon iconName="database" size="xl"></axebow-icon>
|
|
11219
|
+
<span>${this.storageLabel} </span>
|
|
11220
|
+
<span class="tooltip-value"> ${current.storage} / ${limit.storage.max} GB</span>
|
|
11221
|
+
</div>
|
|
11222
|
+
<sl-divider class="dotted-divider"></sl-divider>
|
|
11223
|
+
<div class="flex space-between ml-2 items-center gap-1">
|
|
11224
|
+
<axebow-icon iconName="subdirectory_arrow_right" size="xl"></axebow-icon>
|
|
11225
|
+
<span>${this.volatileLabel} </span>
|
|
11226
|
+
<span class="tooltip-value"> ${current.volatileStorage} / ${limit.volatileStorage.max} GB</span>
|
|
11227
|
+
</div>
|
|
11228
|
+
<sl-divider class="dotted-divider"></sl-divider>
|
|
11229
|
+
<div class="flex space-between ml-2 items-center gap-1">
|
|
11230
|
+
<axebow-icon iconName="subdirectory_arrow_right" size="xl"></axebow-icon>
|
|
11231
|
+
<span>${this.nonRepPersLabel} </span>
|
|
11232
|
+
<span class="tooltip-value"> ${current.nonReplicatedStorage} / ${limit.nonReplicatedStorage.max} GB</span>
|
|
11233
|
+
</div>
|
|
11234
|
+
<sl-divider class="dotted-divider"></sl-divider>
|
|
11235
|
+
<div class="flex space-between ml-2 items-center gap-1">
|
|
11236
|
+
<axebow-icon iconName="subdirectory_arrow_right" size="xl"></axebow-icon>
|
|
11237
|
+
<span>${this.persistentRepLabel} </span>
|
|
11238
|
+
<span class="tooltip-value"> ${current.persistentStorage} / ${limit.persistentStorage.max} GB</span>
|
|
11239
|
+
</div>
|
|
10266
11240
|
</div>
|
|
10267
|
-
|
|
11241
|
+
<axebow-icon iconName="info" size="md" class="cursor-pointer" iconColor="${this.color}"></axebow-icon>
|
|
11242
|
+
</axebow-tooltip>
|
|
10268
11243
|
`;
|
|
10269
11244
|
}
|
|
10270
11245
|
};
|
|
10271
|
-
__decorate([property({ type:
|
|
10272
|
-
__decorate([property({ type: String })],
|
|
10273
|
-
__decorate([property({ type:
|
|
10274
|
-
__decorate([property({ type:
|
|
10275
|
-
__decorate([property({ type:
|
|
10276
|
-
__decorate([
|
|
10277
|
-
|
|
11246
|
+
__decorate([property({ type: Object })], AxebowUsageTooltip.prototype, "usage", void 0);
|
|
11247
|
+
__decorate([property({ type: String })], AxebowUsageTooltip.prototype, "color", void 0);
|
|
11248
|
+
__decorate([property({ type: String })], AxebowUsageTooltip.prototype, "storageLabel", void 0);
|
|
11249
|
+
__decorate([property({ type: String })], AxebowUsageTooltip.prototype, "volatileLabel", void 0);
|
|
11250
|
+
__decorate([property({ type: String })], AxebowUsageTooltip.prototype, "nonRepPersLabel", void 0);
|
|
11251
|
+
__decorate([property({ type: String })], AxebowUsageTooltip.prototype, "persistentRepLabel", void 0);
|
|
11252
|
+
AxebowUsageTooltip = __decorate([customElement("axebow-usage-tooltip")], AxebowUsageTooltip);
|
|
10278
11253
|
//#endregion
|
|
10279
|
-
//#region src/components/axebow-
|
|
10280
|
-
var
|
|
11254
|
+
//#region src/components/axebow-instances-table/axebow-instances-table.ts
|
|
11255
|
+
var AxebowInstancesTable = class AxebowInstancesTable extends LitElement {
|
|
10281
11256
|
constructor(..._args) {
|
|
10282
11257
|
super(..._args);
|
|
10283
|
-
this.
|
|
10284
|
-
this.
|
|
10285
|
-
this.
|
|
10286
|
-
this.
|
|
10287
|
-
this.
|
|
11258
|
+
this.instances = [];
|
|
11259
|
+
this.descriptionLabel = "";
|
|
11260
|
+
this.noInstancesLabel = "";
|
|
11261
|
+
this.colInstanceLabel = "";
|
|
11262
|
+
this.colCpuLabel = "";
|
|
11263
|
+
this.colMemoryLabel = "";
|
|
11264
|
+
this.colStorageLabel = "";
|
|
11265
|
+
this.colActionsLabel = "";
|
|
11266
|
+
this.rebootLabel = "";
|
|
11267
|
+
this.rebootAllLabel = "";
|
|
11268
|
+
this._expandedInstances = /* @__PURE__ */ new Set();
|
|
10288
11269
|
}
|
|
10289
11270
|
static {
|
|
10290
|
-
this.styles = [
|
|
10291
|
-
|
|
10292
|
-
|
|
10293
|
-
|
|
10294
|
-
|
|
10295
|
-
|
|
10296
|
-
|
|
10297
|
-
|
|
11271
|
+
this.styles = [
|
|
11272
|
+
unsafeCSS(tailwind_default),
|
|
11273
|
+
axebowTheme,
|
|
11274
|
+
css`
|
|
11275
|
+
:host {
|
|
11276
|
+
display: block;
|
|
11277
|
+
}
|
|
11278
|
+
.restart-button::part(base) {
|
|
11279
|
+
color: var(--axebow-tertiary);
|
|
11280
|
+
font-size: 0.875rem !important;
|
|
11281
|
+
}
|
|
11282
|
+
.restart-button::part(base):hover {
|
|
11283
|
+
color: var(--axebow-error);
|
|
11284
|
+
background-color: white;
|
|
11285
|
+
}
|
|
11286
|
+
.reboot-all-button::part(base) {
|
|
11287
|
+
color: var(--axebow-error);
|
|
11288
|
+
background-color: transparent;
|
|
11289
|
+
border-color: var(--axebow-error);
|
|
11290
|
+
}
|
|
11291
|
+
.reboot-all-button::part(base):hover {
|
|
11292
|
+
color: white;
|
|
11293
|
+
background-color: var(--axebow-error);
|
|
11294
|
+
border-color: var(--axebow-error);
|
|
11295
|
+
}
|
|
11296
|
+
`
|
|
11297
|
+
];
|
|
10298
11298
|
}
|
|
10299
|
-
|
|
10300
|
-
if (this.
|
|
10301
|
-
|
|
10302
|
-
|
|
10303
|
-
|
|
10304
|
-
|
|
10305
|
-
this.
|
|
11299
|
+
_toggleInstance(instanceId) {
|
|
11300
|
+
if (this._expandedInstances.has(instanceId)) this._expandedInstances.delete(instanceId);
|
|
11301
|
+
else this._expandedInstances.add(instanceId);
|
|
11302
|
+
this.requestUpdate();
|
|
11303
|
+
}
|
|
11304
|
+
_isInstanceExpanded(instanceId) {
|
|
11305
|
+
return this._expandedInstances.has(instanceId);
|
|
11306
|
+
}
|
|
11307
|
+
_requestReboot(instanceName) {
|
|
11308
|
+
this.dispatchEvent(new CustomEvent("reboot-request", {
|
|
11309
|
+
detail: { instanceName },
|
|
10306
11310
|
bubbles: true,
|
|
10307
|
-
composed: true
|
|
10308
|
-
detail: { text: this.text }
|
|
11311
|
+
composed: true
|
|
10309
11312
|
}));
|
|
10310
11313
|
}
|
|
11314
|
+
_renderHeaderSeparator() {
|
|
11315
|
+
return html`<span class="w-px h-4 bg-(--axebow-gray) shrink-0"></span>`;
|
|
11316
|
+
}
|
|
11317
|
+
_renderHeader() {
|
|
11318
|
+
return html`
|
|
11319
|
+
<div class="w-186.5 h-7.25 box-border flex items-center p-1.5 gap-1 bg-white">
|
|
11320
|
+
<span class="w-48.5 h-4.25 text-base font-semibold text-(--axebow-primary)">${this.colInstanceLabel}</span>
|
|
11321
|
+
${this._renderHeaderSeparator()}
|
|
11322
|
+
<span class="w-38.5 h-4.25 text-base font-semibold text-(--axebow-primary)">${this.colCpuLabel}</span>
|
|
11323
|
+
${this._renderHeaderSeparator()}
|
|
11324
|
+
<span class="w-38.5 h-4.25 text-base font-semibold text-(--axebow-primary)">${this.colMemoryLabel}</span>
|
|
11325
|
+
${this._renderHeaderSeparator()}
|
|
11326
|
+
<span class="w-25.5 h-4.25 text-base font-semibold text-(--axebow-primary)">${this.colStorageLabel}</span>
|
|
11327
|
+
${this._renderHeaderSeparator()}
|
|
11328
|
+
<span class="w-25.5 h-4.25 text-base font-semibold text-(--axebow-primary)">${this.colActionsLabel}</span>
|
|
11329
|
+
</div>
|
|
11330
|
+
`;
|
|
11331
|
+
}
|
|
11332
|
+
_renderStatusBadge(text, isPositive) {
|
|
11333
|
+
return html`
|
|
11334
|
+
<div
|
|
11335
|
+
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"}"
|
|
11336
|
+
>
|
|
11337
|
+
${text}
|
|
11338
|
+
</div>
|
|
11339
|
+
`;
|
|
11340
|
+
}
|
|
11341
|
+
_renderProgressCell(progress) {
|
|
11342
|
+
return html`
|
|
11343
|
+
<div class="w-39.5 h-4.25 box-border">
|
|
11344
|
+
<axebow-progress-bar compact current="${progress.current}" max="${progress.max}"></axebow-progress-bar>
|
|
11345
|
+
</div>
|
|
11346
|
+
`;
|
|
11347
|
+
}
|
|
11348
|
+
_renderStorageCell(storageLabel, usage) {
|
|
11349
|
+
return html`
|
|
11350
|
+
<div class="w-25.25 h-4.25 box-border flex items-center gap-1.5">
|
|
11351
|
+
<div class="w-12.75 h-4.25 box-border flex items-center text-base pl-4.25 shrink-0">${storageLabel}</div>
|
|
11352
|
+
<div class="w-3.5 h-3.5 flex items-center justify-center pr-3.25 shrink-0">
|
|
11353
|
+
<axebow-usage-tooltip
|
|
11354
|
+
.usage=${usage}
|
|
11355
|
+
storageLabel=${this.storageTooltipLabels.storage}
|
|
11356
|
+
volatileLabel=${this.storageTooltipLabels.volatile}
|
|
11357
|
+
nonRepPersLabel=${this.storageTooltipLabels.nonRepPers}
|
|
11358
|
+
persistentRepLabel=${this.storageTooltipLabels.persistentRep}
|
|
11359
|
+
></axebow-usage-tooltip>
|
|
11360
|
+
</div>
|
|
11361
|
+
</div>
|
|
11362
|
+
`;
|
|
11363
|
+
}
|
|
11364
|
+
_renderInstanceRow(instance) {
|
|
11365
|
+
return html`
|
|
11366
|
+
<div
|
|
11367
|
+
class="w-186.5 h-14 box-border flex items-center gap-1 p-1.5 border-t border-(--axebow-table-border) cursor-pointer"
|
|
11368
|
+
@click="${() => this._toggleInstance(instance.id)}"
|
|
11369
|
+
>
|
|
11370
|
+
<div class="w-48 h-10 box-border flex flex-col gap-1 text-(--axebow-tertiary)">
|
|
11371
|
+
<div class="flex items-center gap-1 min-w-0">
|
|
11372
|
+
<axebow-icon
|
|
11373
|
+
iconName="${this._isInstanceExpanded(instance.id) ? "collapse_all" : "expand_all"}"
|
|
11374
|
+
iconColor="var(--axebow-tertiary)"
|
|
11375
|
+
size="md"
|
|
11376
|
+
class="shrink-0"
|
|
11377
|
+
></axebow-icon>
|
|
11378
|
+
<span class="text-base truncate">${instance.name}</span>
|
|
11379
|
+
</div>
|
|
11380
|
+
${this._renderStatusBadge(instance.statusLabel, instance.isRunning)}
|
|
11381
|
+
</div>
|
|
11382
|
+
${this._renderProgressCell(instance.cpu)} ${this._renderProgressCell(instance.memory)}
|
|
11383
|
+
${this._renderStorageCell(instance.storageLabel, instance.usage)}
|
|
11384
|
+
<div class="w-25.5 h-4.25 box-border flex items-center">
|
|
11385
|
+
<axebow-button
|
|
11386
|
+
class="restart-button"
|
|
11387
|
+
variant="text"
|
|
11388
|
+
fixedWidth="5.5625rem"
|
|
11389
|
+
fixedHeight="1.0625rem"
|
|
11390
|
+
@click="${(e) => {
|
|
11391
|
+
e.stopPropagation();
|
|
11392
|
+
this._requestReboot(instance.name);
|
|
11393
|
+
}}"
|
|
11394
|
+
>
|
|
11395
|
+
${this.rebootLabel}
|
|
11396
|
+
</axebow-button>
|
|
11397
|
+
</div>
|
|
11398
|
+
</div>
|
|
11399
|
+
${this._isInstanceExpanded(instance.id) && instance.containers.length > 0 ? instance.containers.map((container) => html`
|
|
11400
|
+
<div
|
|
11401
|
+
class="w-186.5 h-14 box-border flex items-center gap-1 p-1.5 border-t border-(--axebow-table-border)"
|
|
11402
|
+
>
|
|
11403
|
+
<div class="w-48 h-10 box-border flex flex-col gap-1">
|
|
11404
|
+
<div class="flex items-center gap-1 min-w-0">
|
|
11405
|
+
<axebow-icon iconName="subdirectory_arrow_right" size="md" class="shrink-0"></axebow-icon>
|
|
11406
|
+
<span class="text-base truncate">${container.name}</span>
|
|
11407
|
+
</div>
|
|
11408
|
+
${this._renderStatusBadge(container.statusLabel, container.isReady)}
|
|
11409
|
+
</div>
|
|
11410
|
+
${this._renderProgressCell(container.cpu)} ${this._renderProgressCell(container.memory)}
|
|
11411
|
+
<div class="w-25.25 h-4.25 box-border flex items-center text-base">-</div>
|
|
11412
|
+
<div class="w-25.5 h-4.25 box-border flex items-center text-base">-</div>
|
|
11413
|
+
</div>
|
|
11414
|
+
`) : ""}
|
|
11415
|
+
`;
|
|
11416
|
+
}
|
|
10311
11417
|
render() {
|
|
10312
|
-
|
|
10313
|
-
const iconColorProp = this.iconColor || "currentColor";
|
|
11418
|
+
if (!this.instances.length) return html`<p>${this.noInstancesLabel}</p>`;
|
|
10314
11419
|
return html`
|
|
10315
|
-
|
|
10316
|
-
|
|
10317
|
-
|
|
10318
|
-
|
|
10319
|
-
|
|
10320
|
-
|
|
10321
|
-
|
|
10322
|
-
|
|
10323
|
-
|
|
10324
|
-
</button
|
|
11420
|
+
<p class="text-black mb-4">${this.descriptionLabel}</p>
|
|
11421
|
+
<div class="w-full">
|
|
11422
|
+
<div class="w-186.5 rounded-lg overflow-hidden border border-black/10">
|
|
11423
|
+
${this._renderHeader()} ${this.instances.map((instance) => this._renderInstanceRow(instance))}
|
|
11424
|
+
</div>
|
|
11425
|
+
</div>
|
|
11426
|
+
<div class="flex justify-end mt-4">
|
|
11427
|
+
<axebow-button variant="primary" outlined class="reboot-all-button" @click="${() => this._requestReboot(null)}">
|
|
11428
|
+
${this.rebootAllLabel}
|
|
11429
|
+
</axebow-button>
|
|
11430
|
+
</div>
|
|
11431
|
+
`;
|
|
10325
11432
|
}
|
|
10326
11433
|
};
|
|
10327
|
-
__decorate([property({
|
|
10328
|
-
__decorate([property({ type: String })],
|
|
10329
|
-
__decorate([property({ type: String })],
|
|
10330
|
-
__decorate([property({ type: String })],
|
|
10331
|
-
__decorate([property({ type:
|
|
10332
|
-
|
|
11434
|
+
__decorate([property({ attribute: false })], AxebowInstancesTable.prototype, "instances", void 0);
|
|
11435
|
+
__decorate([property({ type: String })], AxebowInstancesTable.prototype, "descriptionLabel", void 0);
|
|
11436
|
+
__decorate([property({ type: String })], AxebowInstancesTable.prototype, "noInstancesLabel", void 0);
|
|
11437
|
+
__decorate([property({ type: String })], AxebowInstancesTable.prototype, "colInstanceLabel", void 0);
|
|
11438
|
+
__decorate([property({ type: String })], AxebowInstancesTable.prototype, "colCpuLabel", void 0);
|
|
11439
|
+
__decorate([property({ type: String })], AxebowInstancesTable.prototype, "colMemoryLabel", void 0);
|
|
11440
|
+
__decorate([property({ type: String })], AxebowInstancesTable.prototype, "colStorageLabel", void 0);
|
|
11441
|
+
__decorate([property({ type: String })], AxebowInstancesTable.prototype, "colActionsLabel", void 0);
|
|
11442
|
+
__decorate([property({ type: String })], AxebowInstancesTable.prototype, "rebootLabel", void 0);
|
|
11443
|
+
__decorate([property({ type: String })], AxebowInstancesTable.prototype, "rebootAllLabel", void 0);
|
|
11444
|
+
__decorate([property({ attribute: false })], AxebowInstancesTable.prototype, "storageTooltipLabels", void 0);
|
|
11445
|
+
__decorate([state()], AxebowInstancesTable.prototype, "_expandedInstances", void 0);
|
|
11446
|
+
AxebowInstancesTable = __decorate([customElement("axebow-instances-table")], AxebowInstancesTable);
|
|
10333
11447
|
//#endregion
|
|
10334
|
-
//#region src/components/axebow-
|
|
10335
|
-
var
|
|
11448
|
+
//#region src/components/axebow-tenants-table/axebow-tenants-table.ts
|
|
11449
|
+
var AxebowTenantsTable = class AxebowTenantsTable extends LitElement {
|
|
10336
11450
|
constructor(..._args) {
|
|
10337
11451
|
super(..._args);
|
|
10338
|
-
this.
|
|
10339
|
-
this.
|
|
10340
|
-
this.
|
|
10341
|
-
this.
|
|
10342
|
-
this.
|
|
10343
|
-
this.
|
|
10344
|
-
this.
|
|
11452
|
+
this.accounts = [];
|
|
11453
|
+
this.noAccountsLabel = "";
|
|
11454
|
+
this.colAccountLabel = "";
|
|
11455
|
+
this.colVcpuLabel = "";
|
|
11456
|
+
this.colMemoryLabel = "";
|
|
11457
|
+
this.colStorageLabel = "";
|
|
11458
|
+
this._expandedAccounts = /* @__PURE__ */ new Set();
|
|
10345
11459
|
}
|
|
10346
11460
|
static {
|
|
10347
|
-
this.styles = unsafeCSS(tailwind_default);
|
|
11461
|
+
this.styles = [unsafeCSS(tailwind_default), axebowTheme];
|
|
10348
11462
|
}
|
|
10349
|
-
|
|
10350
|
-
if (
|
|
10351
|
-
this.
|
|
10352
|
-
|
|
10353
|
-
|
|
10354
|
-
|
|
10355
|
-
|
|
10356
|
-
|
|
10357
|
-
|
|
10358
|
-
|
|
10359
|
-
|
|
11463
|
+
_toggleAccount(accountName) {
|
|
11464
|
+
if (this._expandedAccounts.has(accountName)) this._expandedAccounts.delete(accountName);
|
|
11465
|
+
else this._expandedAccounts.add(accountName);
|
|
11466
|
+
this.requestUpdate();
|
|
11467
|
+
}
|
|
11468
|
+
_isAccountExpanded(accountName) {
|
|
11469
|
+
return this._expandedAccounts.has(accountName);
|
|
11470
|
+
}
|
|
11471
|
+
_renderTooltip(usage) {
|
|
11472
|
+
return html`
|
|
11473
|
+
<axebow-usage-tooltip
|
|
11474
|
+
.usage=${usage}
|
|
11475
|
+
storageLabel=${this.storageTooltipLabels.storage}
|
|
11476
|
+
volatileLabel=${this.storageTooltipLabels.volatile}
|
|
11477
|
+
nonRepPersLabel=${this.storageTooltipLabels.nonRepPers}
|
|
11478
|
+
persistentRepLabel=${this.storageTooltipLabels.persistentRep}
|
|
11479
|
+
></axebow-usage-tooltip>
|
|
11480
|
+
`;
|
|
11481
|
+
}
|
|
11482
|
+
render() {
|
|
11483
|
+
if (!this.accounts.length) return html`<p>${this.noAccountsLabel}</p>`;
|
|
11484
|
+
return html`
|
|
11485
|
+
<table class="w-full border-collapse bg-white rounded-lg">
|
|
11486
|
+
<thead>
|
|
11487
|
+
<tr>
|
|
11488
|
+
<th class="border border-(--axebow-table-border) p-2 text-left rounded-lg">${this.colAccountLabel}</th>
|
|
11489
|
+
<th class="border border-(--axebow-table-border) p-2 text-left rounded-lg">${this.colVcpuLabel}</th>
|
|
11490
|
+
<th class="border border-(--axebow-table-border) p-2 text-left rounded-lg">${this.colMemoryLabel}</th>
|
|
11491
|
+
<th class="border border-(--axebow-table-border) p-2 text-left rounded-lg">${this.colStorageLabel}</th>
|
|
11492
|
+
</tr>
|
|
11493
|
+
</thead>
|
|
11494
|
+
<tbody>
|
|
11495
|
+
${this.accounts.map((account) => html`
|
|
11496
|
+
<tr class="cursor-pointer" @click="${() => this._toggleAccount(account.name)}">
|
|
11497
|
+
<td class="border border-(--axebow-table-border) p-2 rounded-lg text-(--axebow-tertiary)">
|
|
11498
|
+
${this._isAccountExpanded(account.name) ? html`<axebow-icon
|
|
11499
|
+
iconName="collapse_all"
|
|
11500
|
+
class="mr-1"
|
|
11501
|
+
iconColor="var(--axebow-tertiary)"
|
|
11502
|
+
size="md"
|
|
11503
|
+
></axebow-icon>` : html`<axebow-icon
|
|
11504
|
+
iconName="expand_all"
|
|
11505
|
+
class="mr-1"
|
|
11506
|
+
iconColor="var(--axebow-tertiary)"
|
|
11507
|
+
size="md"
|
|
11508
|
+
></axebow-icon>`}
|
|
11509
|
+
${account.name}
|
|
11510
|
+
</td>
|
|
11511
|
+
<td class="border border-(--axebow-table-border) p-2 rounded-lg">${account.cpu}</td>
|
|
11512
|
+
<td class="border border-(--axebow-table-border) p-2 rounded-lg">${account.memory}</td>
|
|
11513
|
+
<td class="border border-(--axebow-table-border) p-2 rounded-lg">
|
|
11514
|
+
${account.storage} ${this._renderTooltip(account.usage)}
|
|
11515
|
+
</td>
|
|
11516
|
+
</tr>
|
|
11517
|
+
${this._isAccountExpanded(account.name) ? account.environments.map((environment) => html`
|
|
11518
|
+
<tr>
|
|
11519
|
+
<td class="border border-(--axebow-table-border) p-2 rounded-lg">
|
|
11520
|
+
<axebow-icon iconName="subdirectory_arrow_right" class="mr-1" size="md"></axebow-icon>
|
|
11521
|
+
<span>${environment.name}</span>
|
|
11522
|
+
</td>
|
|
11523
|
+
<td class="border border-(--axebow-table-border) p-2 rounded-lg">${environment.cpu}</td>
|
|
11524
|
+
<td class="border border-(--axebow-table-border) p-2 rounded-lg">${environment.memory}</td>
|
|
11525
|
+
<td class="border border-(--axebow-table-border) p-2 rounded-lg">
|
|
11526
|
+
${environment.storageTotal} ${this._renderTooltip(environment.usage)}
|
|
11527
|
+
</td>
|
|
11528
|
+
</tr>
|
|
11529
|
+
`) : ""}
|
|
11530
|
+
`)}
|
|
11531
|
+
</tbody>
|
|
11532
|
+
</table>
|
|
11533
|
+
`;
|
|
11534
|
+
}
|
|
11535
|
+
};
|
|
11536
|
+
__decorate([property({ attribute: false })], AxebowTenantsTable.prototype, "accounts", void 0);
|
|
11537
|
+
__decorate([property({ type: String })], AxebowTenantsTable.prototype, "noAccountsLabel", void 0);
|
|
11538
|
+
__decorate([property({ type: String })], AxebowTenantsTable.prototype, "colAccountLabel", void 0);
|
|
11539
|
+
__decorate([property({ type: String })], AxebowTenantsTable.prototype, "colVcpuLabel", void 0);
|
|
11540
|
+
__decorate([property({ type: String })], AxebowTenantsTable.prototype, "colMemoryLabel", void 0);
|
|
11541
|
+
__decorate([property({ type: String })], AxebowTenantsTable.prototype, "colStorageLabel", void 0);
|
|
11542
|
+
__decorate([property({ attribute: false })], AxebowTenantsTable.prototype, "storageTooltipLabels", void 0);
|
|
11543
|
+
__decorate([state()], AxebowTenantsTable.prototype, "_expandedAccounts", void 0);
|
|
11544
|
+
AxebowTenantsTable = __decorate([customElement("axebow-tenants-table")], AxebowTenantsTable);
|
|
11545
|
+
//#endregion
|
|
11546
|
+
//#region src/components/axebow-expandable-card/axebow-expandable-card.ts
|
|
11547
|
+
var AxebowExpandableCard = class AxebowExpandableCard extends LitElement {
|
|
11548
|
+
static {
|
|
11549
|
+
this.styles = [unsafeCSS(tailwind_default), css`
|
|
11550
|
+
:host {
|
|
11551
|
+
display: block;
|
|
11552
|
+
}
|
|
11553
|
+
`];
|
|
10360
11554
|
}
|
|
10361
11555
|
render() {
|
|
10362
|
-
const itemsToRender = this.hyperlinks.length > 0 ? this.hyperlinks : this.showHyperlink || Boolean(this.hyperlinkText) ? [{
|
|
10363
|
-
text: this.hyperlinkText,
|
|
10364
|
-
icon: this.hyperlinkIcon,
|
|
10365
|
-
color: this.hyperlinkColor,
|
|
10366
|
-
disabled: this.hyperlinkDisabled
|
|
10367
|
-
}] : [];
|
|
10368
11556
|
return html`
|
|
10369
|
-
|
|
10370
|
-
|
|
10371
|
-
|
|
10372
|
-
|
|
10373
|
-
${itemsToRender.length > 0 ? html`
|
|
10374
|
-
<div class="flex items-center gap-4">
|
|
10375
|
-
${itemsToRender.map((item, index) => html`
|
|
10376
|
-
<axebow-manage-hyperlinks
|
|
10377
|
-
text="${item.text}"
|
|
10378
|
-
icon="${item.icon}"
|
|
10379
|
-
color="${item.color ?? ""}"
|
|
10380
|
-
?disabled=${Boolean(item.disabled)}
|
|
10381
|
-
@hyperlink-click=${() => this._handleItemClick(item, index)}
|
|
10382
|
-
></axebow-manage-hyperlinks>
|
|
10383
|
-
`)}
|
|
10384
|
-
</div>
|
|
10385
|
-
` : ""}
|
|
10386
|
-
</slot>
|
|
10387
|
-
</div>
|
|
10388
|
-
<slot></slot>
|
|
10389
|
-
</div>`;
|
|
11557
|
+
<div class="box-border p-4 bg-white rounded-lg shadow-sm border border-gray-200 overflow-hidden">
|
|
11558
|
+
<slot></slot>
|
|
11559
|
+
</div>
|
|
11560
|
+
`;
|
|
10390
11561
|
}
|
|
10391
11562
|
};
|
|
10392
|
-
__decorate([
|
|
10393
|
-
__decorate([property({ type: Array })], AxebowBoxSection.prototype, "hyperlinks", void 0);
|
|
10394
|
-
__decorate([property({ type: Boolean })], AxebowBoxSection.prototype, "showHyperlink", void 0);
|
|
10395
|
-
__decorate([property({ type: String })], AxebowBoxSection.prototype, "hyperlinkText", void 0);
|
|
10396
|
-
__decorate([property({ type: String })], AxebowBoxSection.prototype, "hyperlinkIcon", void 0);
|
|
10397
|
-
__decorate([property({ type: String })], AxebowBoxSection.prototype, "hyperlinkColor", void 0);
|
|
10398
|
-
__decorate([property({ type: Boolean })], AxebowBoxSection.prototype, "hyperlinkDisabled", void 0);
|
|
10399
|
-
AxebowBoxSection = __decorate([customElement("axebow-box-section")], AxebowBoxSection);
|
|
11563
|
+
AxebowExpandableCard = __decorate([customElement("axebow-expandable-card")], AxebowExpandableCard);
|
|
10400
11564
|
//#endregion
|
|
10401
|
-
//#region src/components/axebow-
|
|
10402
|
-
var
|
|
11565
|
+
//#region src/components/axebow-undeploy-card/axebow-undeploy-card.ts
|
|
11566
|
+
var AxebowUndeployCard = class AxebowUndeployCard extends LitElement {
|
|
10403
11567
|
constructor(..._args) {
|
|
10404
11568
|
super(..._args);
|
|
11569
|
+
this.title = "";
|
|
11570
|
+
this.deletePrefix = "";
|
|
11571
|
+
this.serviceName = "";
|
|
11572
|
+
this.deleteSuffix = "";
|
|
11573
|
+
this.warningPrefix = "";
|
|
11574
|
+
this.warningBold = "";
|
|
11575
|
+
this.confirmText = "";
|
|
11576
|
+
this.confirmLabelPrefix = "";
|
|
11577
|
+
this.confirmLabelHighlight = "";
|
|
11578
|
+
this.placeholder = "";
|
|
10405
11579
|
this.value = "";
|
|
10406
|
-
this.
|
|
10407
|
-
this.
|
|
10408
|
-
this.
|
|
10409
|
-
this.
|
|
10410
|
-
this._copied = false;
|
|
11580
|
+
this.buttonLabel = "";
|
|
11581
|
+
this.buttonDisabled = false;
|
|
11582
|
+
this.isSubmitting = false;
|
|
11583
|
+
this.loadingLabel = "";
|
|
10411
11584
|
}
|
|
10412
11585
|
static {
|
|
10413
|
-
this.styles =
|
|
11586
|
+
this.styles = [
|
|
11587
|
+
unsafeCSS(tailwind_default),
|
|
11588
|
+
axebowTheme,
|
|
11589
|
+
css`
|
|
11590
|
+
:host {
|
|
11591
|
+
display: block;
|
|
11592
|
+
}
|
|
11593
|
+
`
|
|
11594
|
+
];
|
|
10414
11595
|
}
|
|
10415
|
-
|
|
10416
|
-
|
|
10417
|
-
|
|
10418
|
-
|
|
10419
|
-
return;
|
|
10420
|
-
}
|
|
10421
|
-
let textToCopy = this.copyValue || this.value;
|
|
10422
|
-
if (!textToCopy) {
|
|
10423
|
-
const slot = this.shadowRoot?.querySelector("slot");
|
|
10424
|
-
if (slot) textToCopy = slot.assignedNodes({ flatten: true }).map((n) => n.textContent ?? "").join("").trim();
|
|
10425
|
-
if (!textToCopy) textToCopy = this.textContent?.trim() ?? "";
|
|
10426
|
-
}
|
|
10427
|
-
if (textToCopy) try {
|
|
10428
|
-
await navigator.clipboard.writeText(textToCopy);
|
|
10429
|
-
this._copied = true;
|
|
10430
|
-
setTimeout(() => {
|
|
10431
|
-
this._copied = false;
|
|
10432
|
-
}, 2e3);
|
|
10433
|
-
} catch (err) {
|
|
10434
|
-
console.error("Failed to copy text:", err);
|
|
10435
|
-
}
|
|
10436
|
-
this.dispatchEvent(new CustomEvent("copy", {
|
|
11596
|
+
_handleInput(e) {
|
|
11597
|
+
const target = e.target;
|
|
11598
|
+
this.dispatchEvent(new CustomEvent("confirm-input", {
|
|
11599
|
+
detail: { value: target.value },
|
|
10437
11600
|
bubbles: true,
|
|
10438
|
-
composed: true
|
|
10439
|
-
|
|
11601
|
+
composed: true
|
|
11602
|
+
}));
|
|
11603
|
+
}
|
|
11604
|
+
_handleConfirm() {
|
|
11605
|
+
this.dispatchEvent(new CustomEvent("confirm", {
|
|
11606
|
+
bubbles: true,
|
|
11607
|
+
composed: true
|
|
10440
11608
|
}));
|
|
10441
11609
|
}
|
|
10442
11610
|
render() {
|
|
10443
|
-
const iconToShow = this._copied ? "check" : this.iconName;
|
|
10444
11611
|
return html`
|
|
10445
|
-
|
|
10446
|
-
|
|
10447
|
-
|
|
10448
|
-
|
|
10449
|
-
|
|
10450
|
-
<axebow-icon iconName="${iconToShow}" iconColor="white" size="${this.size}"></axebow-icon>
|
|
10451
|
-
<slot class="hidden"></slot>
|
|
11612
|
+
<div class="w-198.25 h-auto box-border bg-white rounded-md p-6 flex flex-col gap-8">
|
|
11613
|
+
<div class="w-186.25 flex gap-4">
|
|
11614
|
+
<div class="w-8 h-full flex flex-col items-start shrink-0">
|
|
11615
|
+
<div class="w-8 h-8 shrink-0 flex items-center justify-center">
|
|
11616
|
+
<axebow-icon iconName="error" iconColor="var(--axebow-error)" size="2rem"></axebow-icon>
|
|
10452
11617
|
</div>
|
|
10453
|
-
|
|
11618
|
+
</div>
|
|
11619
|
+
<div class="flex-1 min-w-0 flex flex-col gap-6">
|
|
11620
|
+
<div class="w-full">
|
|
11621
|
+
<h2 class="m-0 text-[1.25rem] font-semibold text-black">${this.title}</h2>
|
|
11622
|
+
</div>
|
|
11623
|
+
<div class="w-full flex flex-col gap-2">
|
|
11624
|
+
<p class="m-0">${this.deletePrefix} <strong>${this.serviceName}</strong> ${this.deleteSuffix}</p>
|
|
11625
|
+
<p class="m-0">${this.warningPrefix} <strong>${this.warningBold}</strong></p>
|
|
11626
|
+
<p class="m-0">${this.confirmText}</p>
|
|
11627
|
+
</div>
|
|
11628
|
+
</div>
|
|
11629
|
+
</div>
|
|
11630
|
+
<div class="w-186.25 flex items-end gap-4 pl-11.75 box-border">
|
|
11631
|
+
<div class="w-102 flex flex-col gap-1">
|
|
11632
|
+
<p class="m-0 text-sm">
|
|
11633
|
+
${this.confirmLabelPrefix} <span class="text-(--axebow-primary)">${this.confirmLabelHighlight}</span>
|
|
11634
|
+
</p>
|
|
11635
|
+
<axebow-input
|
|
11636
|
+
controlType="input"
|
|
11637
|
+
.value=${this.value}
|
|
11638
|
+
placeholder=${this.placeholder}
|
|
11639
|
+
.callback=${(e) => this._handleInput(e)}
|
|
11640
|
+
></axebow-input>
|
|
11641
|
+
</div>
|
|
11642
|
+
<axebow-button variant="danger" .disabled=${this.buttonDisabled || this.isSubmitting} @click=${this._handleConfirm}>
|
|
11643
|
+
${this.isSubmitting ? html`
|
|
11644
|
+
<div class="flex gap-1 items-center">
|
|
11645
|
+
<sl-spinner style="--indicator-color: red;"></sl-spinner>
|
|
11646
|
+
<p class="m-0">${this.loadingLabel}</p>
|
|
11647
|
+
</div>
|
|
11648
|
+
` : this.buttonLabel}
|
|
11649
|
+
</axebow-button>
|
|
11650
|
+
</div>
|
|
11651
|
+
</div>
|
|
11652
|
+
`;
|
|
10454
11653
|
}
|
|
10455
11654
|
};
|
|
10456
|
-
__decorate([property({ type: String })],
|
|
10457
|
-
__decorate([property({ type: String })],
|
|
10458
|
-
__decorate([property({ type: String })],
|
|
10459
|
-
__decorate([property({ type: String })],
|
|
10460
|
-
__decorate([property({ type:
|
|
10461
|
-
__decorate([
|
|
10462
|
-
|
|
11655
|
+
__decorate([property({ type: String })], AxebowUndeployCard.prototype, "title", void 0);
|
|
11656
|
+
__decorate([property({ type: String })], AxebowUndeployCard.prototype, "deletePrefix", void 0);
|
|
11657
|
+
__decorate([property({ type: String })], AxebowUndeployCard.prototype, "serviceName", void 0);
|
|
11658
|
+
__decorate([property({ type: String })], AxebowUndeployCard.prototype, "deleteSuffix", void 0);
|
|
11659
|
+
__decorate([property({ type: String })], AxebowUndeployCard.prototype, "warningPrefix", void 0);
|
|
11660
|
+
__decorate([property({ type: String })], AxebowUndeployCard.prototype, "warningBold", void 0);
|
|
11661
|
+
__decorate([property({ type: String })], AxebowUndeployCard.prototype, "confirmText", void 0);
|
|
11662
|
+
__decorate([property({ type: String })], AxebowUndeployCard.prototype, "confirmLabelPrefix", void 0);
|
|
11663
|
+
__decorate([property({ type: String })], AxebowUndeployCard.prototype, "confirmLabelHighlight", void 0);
|
|
11664
|
+
__decorate([property({ type: String })], AxebowUndeployCard.prototype, "placeholder", void 0);
|
|
11665
|
+
__decorate([property({ type: String })], AxebowUndeployCard.prototype, "value", void 0);
|
|
11666
|
+
__decorate([property({ type: String })], AxebowUndeployCard.prototype, "buttonLabel", void 0);
|
|
11667
|
+
__decorate([property({ type: Boolean })], AxebowUndeployCard.prototype, "buttonDisabled", void 0);
|
|
11668
|
+
__decorate([property({ type: Boolean })], AxebowUndeployCard.prototype, "isSubmitting", void 0);
|
|
11669
|
+
__decorate([property({ type: String })], AxebowUndeployCard.prototype, "loadingLabel", void 0);
|
|
11670
|
+
AxebowUndeployCard = __decorate([customElement("axebow-undeploy-card")], AxebowUndeployCard);
|
|
10463
11671
|
//#endregion
|
|
10464
|
-
//#region src/components/axebow-
|
|
10465
|
-
var
|
|
11672
|
+
//#region src/components/axebow-observability-container/axebow-observability-container.ts
|
|
11673
|
+
var AxebowObservabilityContainer = class AxebowObservabilityContainer extends LitElement {
|
|
10466
11674
|
constructor(..._args) {
|
|
10467
11675
|
super(..._args);
|
|
10468
|
-
this.
|
|
10469
|
-
this.
|
|
10470
|
-
this.
|
|
10471
|
-
this.
|
|
11676
|
+
this.containerName = "";
|
|
11677
|
+
this.isLogsOn = true;
|
|
11678
|
+
this.isTerminalOn = false;
|
|
11679
|
+
this.logsLabel = "";
|
|
11680
|
+
this.logsOnLabel = "";
|
|
11681
|
+
this.logsOffLabel = "";
|
|
11682
|
+
this.terminalLabel = "";
|
|
11683
|
+
this.terminalOnLabel = "";
|
|
11684
|
+
this.terminalOffLabel = "";
|
|
11685
|
+
this.logFilters = [];
|
|
11686
|
+
this.logFilterTitle = "";
|
|
11687
|
+
this.cleanFilterLabel = "";
|
|
11688
|
+
this.addFilterLabel = "";
|
|
11689
|
+
this.selectOptionLabel = "";
|
|
11690
|
+
this.filterPlaceholder = "";
|
|
11691
|
+
this.cleanHistoryLabel = "";
|
|
11692
|
+
this.followLogs = false;
|
|
11693
|
+
this.autoScrollLabel = "";
|
|
11694
|
+
this.autoScrollOnLabel = "";
|
|
11695
|
+
this.autoScrollOffLabel = "";
|
|
11696
|
+
this.logsTitle = "";
|
|
11697
|
+
this.terminalTitle = "";
|
|
11698
|
+
this.logsUrl = "";
|
|
11699
|
+
this.terminalUrl = "";
|
|
11700
|
+
this.logsIframeId = "";
|
|
11701
|
+
this.terminalIframeId = "";
|
|
10472
11702
|
}
|
|
10473
11703
|
static {
|
|
10474
|
-
this.styles =
|
|
10475
|
-
|
|
10476
|
-
|
|
10477
|
-
|
|
10478
|
-
|
|
10479
|
-
|
|
10480
|
-
|
|
10481
|
-
|
|
10482
|
-
|
|
11704
|
+
this.styles = [
|
|
11705
|
+
unsafeCSS(tailwind_default),
|
|
11706
|
+
axebowTheme,
|
|
11707
|
+
css`
|
|
11708
|
+
sl-input::part(input) {
|
|
11709
|
+
font-size: 0.95rem;
|
|
11710
|
+
color: var(--axebow-strong-gray);
|
|
11711
|
+
background-color: #f3f4f6;
|
|
11712
|
+
}
|
|
11713
|
+
sl-input::part(base) {
|
|
11714
|
+
background-color: #f3f4f6;
|
|
11715
|
+
width: 100%;
|
|
11716
|
+
}
|
|
11717
|
+
.log-filter-dropdown {
|
|
11718
|
+
display: block;
|
|
11719
|
+
width: 100%;
|
|
11720
|
+
}
|
|
11721
|
+
.log-filter-dropdown::part(trigger) {
|
|
11722
|
+
display: block !important;
|
|
11723
|
+
width: 100% !important;
|
|
11724
|
+
}
|
|
11725
|
+
.log-filter-dropdown::part(panel) {
|
|
11726
|
+
width: 17rem !important;
|
|
11727
|
+
}
|
|
11728
|
+
sl-divider {
|
|
11729
|
+
height: 0.0625rem !important;
|
|
11730
|
+
border-top: none !important;
|
|
11731
|
+
background-color: var(--axebow-light-gray);
|
|
11732
|
+
margin-bottom: 0.90625rem !important;
|
|
11733
|
+
}
|
|
11734
|
+
`
|
|
11735
|
+
];
|
|
10483
11736
|
}
|
|
10484
11737
|
render() {
|
|
10485
11738
|
return html`
|
|
10486
|
-
|
|
10487
|
-
|
|
10488
|
-
|
|
10489
|
-
|
|
10490
|
-
|
|
10491
|
-
|
|
10492
|
-
|
|
10493
|
-
|
|
10494
|
-
|
|
10495
|
-
|
|
10496
|
-
|
|
10497
|
-
|
|
10498
|
-
|
|
10499
|
-
|
|
11739
|
+
<div class="w-full flex flex-col gap-4">
|
|
11740
|
+
${this._renderHeader()} ${this.isLogsOn ? this._renderLogFilters() : ""}
|
|
11741
|
+
<div class="flex w-[73.375rem] gap-4">
|
|
11742
|
+
${this.isLogsOn ? this._renderLogsIframe() : null} ${this.isTerminalOn ? this._renderTerminalIframe() : null}
|
|
11743
|
+
</div>
|
|
11744
|
+
</div>
|
|
11745
|
+
`;
|
|
11746
|
+
}
|
|
11747
|
+
_renderHeader() {
|
|
11748
|
+
return html`
|
|
11749
|
+
<div class="flex justify-between w-full border-b border-solid border-gray-200 pb-2 gap-4 items-center">
|
|
11750
|
+
<h2 class="font-semibold text-lg text-ellipsis text-(--axebow-primary)">${this.containerName}</h2>
|
|
11751
|
+
<div class="flex items-center gap-4">
|
|
11752
|
+
${this._renderToggle(this.logsLabel, this.isLogsOn, this.logsOnLabel, this.logsOffLabel, (checked) => this._dispatch("logs-toggle", { checked }))}
|
|
11753
|
+
<div class="h-full w-0.25 bg-(--axebow-gray)"></div>
|
|
11754
|
+
${this._renderToggle(this.terminalLabel, this.isTerminalOn, this.terminalOnLabel, this.terminalOffLabel, (checked) => this._dispatch("terminal-toggle", { checked }))}
|
|
11755
|
+
<div class="h-full w-0.25 bg-(--axebow-gray)"></div>
|
|
11756
|
+
<div class="w-6 h-6 flex items-center justify-center">
|
|
11757
|
+
<axebow-icon
|
|
11758
|
+
class="cursor-pointer"
|
|
11759
|
+
iconName="open_in_new"
|
|
11760
|
+
size="2xl"
|
|
11761
|
+
iconColor="var(--axebow-tertiary)"
|
|
11762
|
+
@click=${() => this._dispatch("open-in-new")}
|
|
11763
|
+
></axebow-icon>
|
|
11764
|
+
</div>
|
|
11765
|
+
<div class="h-full w-0.25 bg-(--axebow-gray)"></div>
|
|
11766
|
+
<div
|
|
11767
|
+
class="w-6 h-6 flex items-center justify-center cursor-pointer"
|
|
11768
|
+
@click=${() => this._dispatch("remove-container")}
|
|
11769
|
+
>
|
|
11770
|
+
<axebow-icon iconName="cancel" size="2xl" iconColor="var(--axebow-gray)"></axebow-icon>
|
|
11771
|
+
</div>
|
|
11772
|
+
</div>
|
|
11773
|
+
</div>
|
|
11774
|
+
`;
|
|
11775
|
+
}
|
|
11776
|
+
_renderToggle(label, checked, onLabel, offLabel, onChange) {
|
|
11777
|
+
return html`
|
|
11778
|
+
<div class="flex items-center gap-2">
|
|
11779
|
+
<p class="m-0 text-(--axebow-tertiary) font-bold">${label}</p>
|
|
11780
|
+
<axebow-switch .checked=${checked} .onChange=${(checked) => onChange(checked)}></axebow-switch>
|
|
11781
|
+
<p class="m-0 italic text-gray-400">${checked ? onLabel : offLabel}</p>
|
|
11782
|
+
</div>
|
|
11783
|
+
`;
|
|
11784
|
+
}
|
|
11785
|
+
_renderLogFilters() {
|
|
11786
|
+
return html`
|
|
11787
|
+
<div class="flex gap-4 items-start">
|
|
11788
|
+
${this.logFilters.map((_, index) => this._renderLogFilterDropdown(index))}
|
|
11789
|
+
<axebow-button
|
|
11790
|
+
class="shrink-0 mt-6.75"
|
|
11791
|
+
variant="primary"
|
|
11792
|
+
outline
|
|
11793
|
+
fixedWidth="7.4375rem"
|
|
11794
|
+
fixedHeight="2.5rem"
|
|
11795
|
+
@click=${() => this._dispatch("add-filter")}
|
|
11796
|
+
>
|
|
11797
|
+
${this.addFilterLabel}
|
|
11798
|
+
</axebow-button>
|
|
11799
|
+
</div>
|
|
11800
|
+
`;
|
|
11801
|
+
}
|
|
11802
|
+
_renderLogFilterDropdown(index) {
|
|
11803
|
+
const filter = this.logFilters[index];
|
|
11804
|
+
return html`
|
|
11805
|
+
<div class="w-68 h-auto flex flex-col gap-2">
|
|
11806
|
+
<div class="w-68 h-4.75 flex items-center justify-between">
|
|
11807
|
+
<h1 class="m-0 font-bold">${this.logFilterTitle}</h1>
|
|
11808
|
+
<button
|
|
11809
|
+
class="m-0 text-base text-(--axebow-tertiary) cursor-pointer"
|
|
11810
|
+
@click=${() => this._dispatch("clean-filter", { index })}
|
|
11811
|
+
>
|
|
11812
|
+
${this.cleanFilterLabel}
|
|
11813
|
+
</button>
|
|
11814
|
+
</div>
|
|
11815
|
+
<sl-dropdown class="log-filter-dropdown" id="log-filter-dropdown-${index}">
|
|
11816
|
+
<axebow-button slot="trigger" caret fixedWidth="17rem" fixedHeight="2.5rem">
|
|
11817
|
+
${filter.selected ?? this.selectOptionLabel}
|
|
11818
|
+
</axebow-button>
|
|
11819
|
+
<sl-menu class="w-full my-2">
|
|
11820
|
+
<sl-input
|
|
11821
|
+
type="text"
|
|
11822
|
+
placeholder=${this.filterPlaceholder}
|
|
11823
|
+
clearable
|
|
11824
|
+
.value=${""}
|
|
11825
|
+
@sl-change=${(e) => this._handleFilterInputChange(e, index)}
|
|
11826
|
+
@keydown=${(e) => this._handleFilterInputKeydown(e, index)}
|
|
11827
|
+
></sl-input>
|
|
11828
|
+
${filter.options.map((option) => html`
|
|
11829
|
+
<sl-menu-item @click=${() => this._selectFilterOption(index, option)}>${option}</sl-menu-item>
|
|
11830
|
+
`)}
|
|
11831
|
+
${filter.options.length > 0 ? html`
|
|
11832
|
+
<button
|
|
11833
|
+
class="p-2 w-full border-t border-solid border-gray-200 text-center text-gray-500 hover:bg-gray-100 cursor-pointer"
|
|
11834
|
+
@click=${() => this._cleanFilterHistory(index)}
|
|
11835
|
+
>
|
|
11836
|
+
${this.cleanHistoryLabel}
|
|
11837
|
+
</button>
|
|
11838
|
+
` : null}
|
|
11839
|
+
</sl-menu>
|
|
11840
|
+
</sl-dropdown>
|
|
11841
|
+
</div>
|
|
11842
|
+
`;
|
|
11843
|
+
}
|
|
11844
|
+
_renderLogsIframe() {
|
|
11845
|
+
return html`
|
|
11846
|
+
<div class="flex-[563] h-full px-4 py-8 rounded-lg flex flex-col bg-white">
|
|
11847
|
+
<div class="flex justify-between items-center">
|
|
11848
|
+
<h1 class="m-0 text-base uppercase font-semibold text-(--axebow-gray)">${this.logsTitle}</h1>
|
|
11849
|
+
<div class="flex items-center gap-4">
|
|
11850
|
+
${this._renderToggle(this.autoScrollLabel, this.followLogs, this.autoScrollOnLabel, this.autoScrollOffLabel, (checked) => this._dispatch("follow-logs-change", { checked }))}
|
|
11851
|
+
<div class="h-full w-0.25 bg-(--axebow-gray)"></div>
|
|
11852
|
+
<div class="w-6 h-6 flex items-center justify-center">
|
|
11853
|
+
<axebow-icon
|
|
11854
|
+
class="cursor-pointer"
|
|
11855
|
+
iconName="download_for_offline"
|
|
11856
|
+
size="2xl"
|
|
11857
|
+
iconColor="var(--axebow-tertiary)"
|
|
11858
|
+
@click=${() => this._dispatch("download-logs")}
|
|
11859
|
+
></axebow-icon>
|
|
11860
|
+
</div>
|
|
11861
|
+
<div class="h-full w-0.25 bg-(--axebow-gray)"></div>
|
|
11862
|
+
<div class="w-6 h-6 flex items-center justify-center">
|
|
11863
|
+
<axebow-icon
|
|
11864
|
+
class="cursor-pointer"
|
|
11865
|
+
iconName="content_copy"
|
|
11866
|
+
size="2xl"
|
|
11867
|
+
iconColor="var(--axebow-tertiary)"
|
|
11868
|
+
@click=${() => this._copyLogs()}
|
|
11869
|
+
></axebow-icon>
|
|
11870
|
+
</div>
|
|
11871
|
+
</div>
|
|
11872
|
+
</div>
|
|
11873
|
+
<sl-divider class="w-full"></sl-divider>
|
|
11874
|
+
<iframe
|
|
11875
|
+
id="${this.logsIframeId}"
|
|
11876
|
+
allow="storage-access"
|
|
11877
|
+
sandbox="${"allow-same-origin allow-scripts"}"
|
|
11878
|
+
class="w-full h-screen"
|
|
11879
|
+
src="${this.logsUrl}"
|
|
11880
|
+
></iframe>
|
|
11881
|
+
</div>
|
|
11882
|
+
`;
|
|
11883
|
+
}
|
|
11884
|
+
async _copyLogs() {
|
|
11885
|
+
try {
|
|
11886
|
+
const text = (this.renderRoot?.querySelector(`#${this.logsIframeId}`))?.contentDocument?.body?.innerText ?? "";
|
|
11887
|
+
if (!text) {
|
|
11888
|
+
this._dispatch("logs-copy-failed");
|
|
11889
|
+
return;
|
|
11890
|
+
}
|
|
11891
|
+
await navigator.clipboard.writeText(text);
|
|
11892
|
+
this._dispatch("logs-copied");
|
|
11893
|
+
} catch (_) {
|
|
11894
|
+
this._dispatch("logs-copy-failed");
|
|
11895
|
+
}
|
|
11896
|
+
}
|
|
11897
|
+
_renderTerminalIframe() {
|
|
11898
|
+
return html`
|
|
11899
|
+
<div class="flex-595 h-full px-4 py-8 rounded-lg flex flex-col bg-white">
|
|
11900
|
+
<div class="flex justify-between items-center">
|
|
11901
|
+
<h1 class="m-0 text-base uppercase font-semibold text-(--axebow-gray)">${this.terminalTitle}</h1>
|
|
11902
|
+
</div>
|
|
11903
|
+
<sl-divider class="w-full"></sl-divider>
|
|
11904
|
+
<iframe
|
|
11905
|
+
id="${this.terminalIframeId}"
|
|
11906
|
+
allow="storage-access"
|
|
11907
|
+
sandbox="${"allow-same-origin allow-scripts"}"
|
|
11908
|
+
class="w-full h-screen"
|
|
11909
|
+
src="${this.terminalUrl}"
|
|
11910
|
+
></iframe>
|
|
11911
|
+
</div>
|
|
11912
|
+
`;
|
|
11913
|
+
}
|
|
11914
|
+
_handleFilterInputChange(e, index) {
|
|
11915
|
+
const input = e.target;
|
|
11916
|
+
const value = input.value.trim();
|
|
11917
|
+
input.value = "";
|
|
11918
|
+
if (value) this._dispatch("filter-input-change", {
|
|
11919
|
+
index,
|
|
11920
|
+
value
|
|
11921
|
+
});
|
|
11922
|
+
}
|
|
11923
|
+
_handleFilterInputKeydown(e, index) {
|
|
11924
|
+
if (e.key !== "Enter") return;
|
|
11925
|
+
e.preventDefault();
|
|
11926
|
+
e.stopPropagation();
|
|
11927
|
+
const input = e.target;
|
|
11928
|
+
const value = input.value.trim();
|
|
11929
|
+
input.value = "";
|
|
11930
|
+
if (value) this._dispatch("filter-input-change", {
|
|
11931
|
+
index,
|
|
11932
|
+
value
|
|
11933
|
+
});
|
|
11934
|
+
this._closeDropdown(index);
|
|
11935
|
+
}
|
|
11936
|
+
_selectFilterOption(index, option) {
|
|
11937
|
+
this._dispatch("select-filter-option", {
|
|
11938
|
+
index,
|
|
11939
|
+
option
|
|
11940
|
+
});
|
|
11941
|
+
this._closeDropdown(index);
|
|
11942
|
+
}
|
|
11943
|
+
_cleanFilterHistory(index) {
|
|
11944
|
+
this._dispatch("clean-filter-history", { index });
|
|
11945
|
+
this._closeDropdown(index);
|
|
11946
|
+
}
|
|
11947
|
+
_closeDropdown(index) {
|
|
11948
|
+
const dropdown = this.renderRoot?.querySelector(`#log-filter-dropdown-${index}`);
|
|
11949
|
+
if (dropdown) dropdown.hide();
|
|
11950
|
+
}
|
|
11951
|
+
_dispatch(eventName, detail = {}) {
|
|
11952
|
+
this.dispatchEvent(new CustomEvent(eventName, {
|
|
11953
|
+
detail,
|
|
11954
|
+
bubbles: true,
|
|
11955
|
+
composed: true
|
|
11956
|
+
}));
|
|
10500
11957
|
}
|
|
10501
11958
|
};
|
|
10502
|
-
__decorate([property({ type:
|
|
10503
|
-
__decorate([property({ type:
|
|
10504
|
-
__decorate([property({ type: Boolean })],
|
|
10505
|
-
__decorate([property({ type:
|
|
10506
|
-
|
|
11959
|
+
__decorate([property({ type: String })], AxebowObservabilityContainer.prototype, "containerName", void 0);
|
|
11960
|
+
__decorate([property({ type: Boolean })], AxebowObservabilityContainer.prototype, "isLogsOn", void 0);
|
|
11961
|
+
__decorate([property({ type: Boolean })], AxebowObservabilityContainer.prototype, "isTerminalOn", void 0);
|
|
11962
|
+
__decorate([property({ type: String })], AxebowObservabilityContainer.prototype, "logsLabel", void 0);
|
|
11963
|
+
__decorate([property({ type: String })], AxebowObservabilityContainer.prototype, "logsOnLabel", void 0);
|
|
11964
|
+
__decorate([property({ type: String })], AxebowObservabilityContainer.prototype, "logsOffLabel", void 0);
|
|
11965
|
+
__decorate([property({ type: String })], AxebowObservabilityContainer.prototype, "terminalLabel", void 0);
|
|
11966
|
+
__decorate([property({ type: String })], AxebowObservabilityContainer.prototype, "terminalOnLabel", void 0);
|
|
11967
|
+
__decorate([property({ type: String })], AxebowObservabilityContainer.prototype, "terminalOffLabel", void 0);
|
|
11968
|
+
__decorate([property({ attribute: false })], AxebowObservabilityContainer.prototype, "logFilters", void 0);
|
|
11969
|
+
__decorate([property({ type: String })], AxebowObservabilityContainer.prototype, "logFilterTitle", void 0);
|
|
11970
|
+
__decorate([property({ type: String })], AxebowObservabilityContainer.prototype, "cleanFilterLabel", void 0);
|
|
11971
|
+
__decorate([property({ type: String })], AxebowObservabilityContainer.prototype, "addFilterLabel", void 0);
|
|
11972
|
+
__decorate([property({ type: String })], AxebowObservabilityContainer.prototype, "selectOptionLabel", void 0);
|
|
11973
|
+
__decorate([property({ type: String })], AxebowObservabilityContainer.prototype, "filterPlaceholder", void 0);
|
|
11974
|
+
__decorate([property({ type: String })], AxebowObservabilityContainer.prototype, "cleanHistoryLabel", void 0);
|
|
11975
|
+
__decorate([property({ type: Boolean })], AxebowObservabilityContainer.prototype, "followLogs", void 0);
|
|
11976
|
+
__decorate([property({ type: String })], AxebowObservabilityContainer.prototype, "autoScrollLabel", void 0);
|
|
11977
|
+
__decorate([property({ type: String })], AxebowObservabilityContainer.prototype, "autoScrollOnLabel", void 0);
|
|
11978
|
+
__decorate([property({ type: String })], AxebowObservabilityContainer.prototype, "autoScrollOffLabel", void 0);
|
|
11979
|
+
__decorate([property({ type: String })], AxebowObservabilityContainer.prototype, "logsTitle", void 0);
|
|
11980
|
+
__decorate([property({ type: String })], AxebowObservabilityContainer.prototype, "terminalTitle", void 0);
|
|
11981
|
+
__decorate([property({ type: String })], AxebowObservabilityContainer.prototype, "logsUrl", void 0);
|
|
11982
|
+
__decorate([property({ type: String })], AxebowObservabilityContainer.prototype, "terminalUrl", void 0);
|
|
11983
|
+
__decorate([property({ type: String })], AxebowObservabilityContainer.prototype, "logsIframeId", void 0);
|
|
11984
|
+
__decorate([property({ type: String })], AxebowObservabilityContainer.prototype, "terminalIframeId", void 0);
|
|
11985
|
+
AxebowObservabilityContainer = __decorate([customElement("axebow-observability-container")], AxebowObservabilityContainer);
|
|
10507
11986
|
//#endregion
|
|
10508
|
-
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, AxebowServiceDetailHeader, 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 };
|
|
11987
|
+
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 };
|
|
10509
11988
|
|
|
10510
11989
|
//# sourceMappingURL=index.js.map
|